Sakura-Editor: ファイル索引

  • メインページ
  • ネームスペース
  • クラス
  • ファイル
  • 関連ページ
  • ファイル一覧
  • ファイルメンバ

Sakura-Editor ファイル一覧

これはファイル一覧です。
CAutoSave.cpp [コード] | ファイルの自動保存
CAutoSave.h [コード] | ファイルの自動保存
CBlockComment.cpp [コード] | ブロックコメントデリミタを管理する
CBlockComment.h [コード] | ブロックコメントデリミタを管理する
CBregexp.cpp [コード] | BREGEXP Library Handler
CBregexp.h [コード] | BREGEXP Library Handler
CCommandLine.cpp [コード] | コマンドラインパーサ
CCommandLine.h [コード] | コマンドラインパーサ ヘッダファイル
CControlProcess.cpp [コード] | コントロールプロセスクラス
CControlProcess.h [コード] | コントロールプロセスクラスヘッダファイル
CDialog.cpp [コード] | Dialog Boxの基底クラス
CDialog.h [コード] | Dialog Box基底クラスヘッダファイル
CDicMgr.cpp [コード] | CDicMgrクラス
CDicMgr.h [コード] | CDicMgrクラス定義
CDlgAbout.cpp [コード] | バージョン情報ダイアログ
CDlgAbout.h [コード] | バージョン情報ダイアログ
CDlgCancel.cpp [コード] | キャンセルボタンダイアログボックス
CDlgCancel.h [コード] | キャンセルボタンダイアログ
CDlgCompare.cpp [コード] | ファイル比較ダイアログボックス
CDlgCompare.h [コード] | ファイル比較ダイアログボックス
CDlgCtrlCode.cpp [コード] | コントロールコード入力ダイアログボックス
CDlgCtrlCode.h [コード] | コントロールコード入力ダイアログボックス
CDlgDebug.cpp [コード] |
CDlgDebug.h [コード] |
CDlgDiff.cpp [コード] | DIFF差分表示ダイアログボックス
CDlgDiff.h [コード] | DIFF差分表示ダイアログボックス
CDlgExec.cpp [コード] | 外部コマンド実行ダイアログ
CDlgExec.h [コード] | 外部コマンド実行ダイアログ
CDlgFavorite.cpp [コード] | 履歴の管理ダイアログボックス
CDlgFavorite.h [コード] | 履歴の管理ダイアログボックス
CDlgFileUpdateQuery.cpp [コード] | 更新通知及び確認ダイアログ
CDlgFileUpdateQuery.h [コード] | 更新通知及び確認ダイアログ
CDlgFind.cpp [コード] | 検索ダイアログボックス
CDlgFind.h [コード] | 検索ダイアログボックス
CDlgFuncList.cpp [コード] | アウトライン解析ダイアログボックス
CDlgFuncList.h [コード] | アウトライン解析ダイアログボックス
CDlgGrep.cpp [コード] | GREPダイアログボックス
CDlgGrep.h [コード] | GREPダイアログボックス
CDlgInput1.cpp [コード] | 1行入力ダイアログボックス
CDlgInput1.h [コード] | 1行入力ダイアログボックス
CDlgJump.cpp [コード] | 指定行へのジャンプダイアログボックス
CDlgJump.h [コード] | 指定行へのジャンプダイアログボックス
CDlgKeywordSelect.cpp [コード] | 強調キーワード選択ダイアログ
CDlgKeywordSelect.h [コード] | 強調キーワード選択ダイアログ
CDlgOpenFile.cpp [コード] | ファイルオープンダイアログボックス
CDlgOpenFile.h [コード] | ファイルオープンダイアログボックス
CDlgPrintPage.cpp [コード] | 印刷ダイアログボックス
CDlgPrintPage.h [コード] | 印刷ダイアログボックス
CDlgPrintSetting.cpp [コード] | 印刷設定ダイアログ
CDlgPrintSetting.h [コード] | 印刷設定ダイアログ
CDlgProperty.cpp [コード] | ファイルプロパティダイアログ
CDlgProperty.h [コード] | ファイルプロパティダイアログ
CDlgReplace.cpp [コード] | 置換ダイアログ
CDlgReplace.h [コード] | 置換ダイアログ
CDlgSameColor.cpp [コード] | 文字色／背景色統一ダイアログ
CDlgSameColor.h [コード] | 文字色／背景色統一ダイアログ
CDlgTagJumpList.cpp [コード] | タグジャンプリストダイアログボックス
CDlgTagJumpList.h [コード] | タグジャンプリストダイアログボックス
CDlgTagsMake.cpp [コード] | タグファイル作成ダイアログボックス
CDlgTagsMake.h [コード] | タグファイル作成ダイアログボックス
CDlgTypeList.cpp [コード] | ファイルタイプ一覧ダイアログ
CDlgTypeList.h [コード] | ファイルタイプ一覧ダイアログ
CDlgWinSize.cpp [コード] | ウィンドウの位置と大きさダイアログ
CDlgWinSize.h [コード] | ウィンドウの位置と大きさダイアログ
CDllHandler.cpp [コード] | DLLのロード、アンロード
CDllHandler.h [コード] | DLLのロード、アンロード
CDocLine.cpp [コード] | 文書データ1行
CDocLine.h [コード] | 文書データ1行
CDocLineMgr.cpp [コード] | 行データの管理
CDocLineMgr.h [コード] | 行データの管理
CDocLineMgr_New.cpp [コード] | 行データの管理
CDropTarget.cpp [コード] | Drag & Drop
CDropTarget.h [コード] | Drag & Drop
CEditApp.cpp [コード] | 常駐部
CEditApp.h [コード] | 常駐部
CEditDoc.cpp [コード] | 文書関連情報の管理
CEditDoc.h [コード] | 文書関連情報の管理
CEditDoc_FuncList1.cpp [コード] | アウトライン解析
CEditDoc_FuncList2.cpp [コード] | Pythonアウトライン解析
CEditDoc_new.cpp [コード] | 文書関連情報の管理
CEditView.cpp [コード] | 文書ウィンドウの管理
CEditView.h [コード] | 文書ウィンドウの管理
CEditView_Cmdgrep.cpp [コード] | CEditViewクラスのgrep関連コマンド処理系関数群
CEditView_CmdHokan.cpp [コード] | CEditViewクラスの補完関連コマンド処理系関数群
CEditView_Cmdisrch.cpp [コード] | CEditViewクラスのインクリメンタルサーチ関連コマンド処理系関数群
CEditView_Command.cpp [コード] | CEditViewクラスのコマンド処理系関数群
CEditView_Command_New.cpp [コード] | CEditViewクラスのコマンド処理系関数群
CEditView_Diff.cpp [コード] | DIFF差分表示
CEditView_New.cpp [コード] | CEditViewクラス
CEditView_New2.cpp [コード] | CEditViewクラス
CEditView_New3.cpp [コード] | 試験機能？実体無し
CEditWnd.cpp [コード] | 編集ウィンドウ（外枠）管理クラス
CEditWnd.h [コード] | 編集ウィンドウ（外枠）管理クラス
CEol.cpp [コード] | CEOLクラスの実装
CEol.h [コード] | End of Line種別の管理
CESI.cpp [コード] | 文字コード調査情報保持クラス
CESI.h [コード] | 文字コード調査情報保持クラス
CFileExt.cpp [コード] | オープンダイアログ用ファイル拡張子管理
CFileExt.h [コード] | オープンダイアログ用ファイル拡張子管理
CFileLoad.cpp [コード] | ファイル読み込みクラス
CFileLoad.h [コード] | メモリバッファクラスへのファイル入力クラス
CFileWrite.cpp [コード] | ファイル書き込み用クラス
CFileWrite.h [コード] | ファイル書き込み用クラス
CFuncInfo.cpp [コード] | アウトライン解析 データ要素
CFuncInfo.h [コード] | アウトライン解析 データ要素
CFuncInfoArr.cpp [コード] | アウトライン解析 データ配列
CFuncInfoArr.h [コード] | アウトライン解析 データ配列
CFuncKeyWnd.cpp [コード] | ファンクションキーウィンドウ
CFuncKeyWnd.h [コード] | ファンクションキーウィンドウ
CFuncLookup.cpp [コード] | 表示用文字列等の取得
CFuncLookup.h [コード] | 表示用文字列等の取得
charcode.cpp [コード] | 文字コード認識ライブラリ
charcode.h [コード] | 文字コード認識ライブラリ
CHokanMgr.cpp [コード] | キーワード補完
CHokanMgr.h [コード] | キーワード補完
CHtmlHelp.cpp [コード] | HtmpHelp動的ロード
CHtmlHelp.h [コード] | HtmpHelp動的ロード
CImageListMgr.cpp [コード] | ImageListの取り扱い
CImageListMgr.h [コード] | ImageListの取り扱い
CKeyBind.cpp [コード] | キー割り当てに関するクラス
CKeyBind.h [コード] | キー割り当てに関するクラス
CKeyMacroMgr.cpp [コード] | キーボードマクロ
CKeyMacroMgr.h [コード] | キーボードマクロ
CKeyWordSetMgr.cpp [コード] | 強調キーワード管理
CKeyWordSetMgr.h [コード] | 強調キーワード管理
CLayout.cpp [コード] | テキストのレイアウト情報
CLayout.h [コード] | テキストのレイアウト情報
CLayoutMgr.cpp [コード] | テキストのレイアウト情報管理
CLayoutMgr.h [コード] | テキストのレイアウト情報管理
CLayoutMgr_New.cpp [コード] | テキストのレイアウト情報管理
CLayoutMgr_New2.cpp [コード] | テキストのレイアウト情報管理
CLineComment.cpp [コード] | 行コメントデリミタを管理する
CLineComment.h [コード] | 行コメントデリミタを管理する
CMacro.cpp [コード] |
CMacro.h [コード] | キーボードマクロ
CMacroFactory.cpp [コード] | マクロ種別管理
CMacroFactory.h [コード] | マクロ種別管理
CMacroManagerBase.cpp [コード] | マクロエンジン
CMacroManagerBase.h [コード] | マクロエンジン
CMarkMgr.cpp [コード] | 現在行のマークを管理する
CMarkMgr.h [コード] | 現在行のマークを管理する
CMemory.cpp [コード] |
CMemory.h [コード] | メモリバッファクラス
CMemoryIterator.h [コード] | CLayoutとCDocLineのイテレータ
CMenuDrawer.cpp [コード] | メニュー管理＆表示
CMenuDrawer.h [コード] | メニュー管理＆表示
CMigemo.cpp [コード] | C/Migemo インターフェース
CMigemo.h [コード] | Migemo関連
CMRU.cpp [コード] | MRUリストと呼ばれるリストを管理する
CMRU.h [コード] | MRUリストと呼ばれるリストを管理する
CMRUFolder.cpp [コード] | MRUリストと呼ばれるリストを管理する
CMRUFolder.h [コード] | MRUリストと呼ばれるリストを管理する。フォルダ版。
CMutex.h [コード] | Mutex管理
CNormalProcess.cpp [コード] | エディタプロセスクラス
CNormalProcess.h [コード] | エディタプロセスクラスヘッダファイル
COpe.cpp [コード] | 編集操作要素
COpe.h [コード] | 編集操作要素
COpeBlk.cpp [コード] | 編集操作要素ブロック
COpeBlk.h [コード] | 編集操作要素ブロック
COpeBuf.cpp [コード] | アンドゥ・リドゥバッファ
COpeBuf.h [コード] | アンドゥ・リドゥバッファ
COsVersionInfo.h [コード] | COsVersionInfo
CPPA.cpp [コード] | PPA Library Handler
CPPA.h [コード] | PPA Library Handler
CPPAMacroMgr.cpp [コード] | キーボードマクロ
CPPAMacroMgr.h [コード] | PPA.DLLマクロ
CPrint.cpp [コード] | 印刷
CPrint.h [コード] | 印刷関連
CPrintPreview.cpp [コード] | 印刷プレビュー管理クラス
CPrintPreview.h [コード] | 印刷プレビュー管理クラス
CProcess.cpp [コード] | プロセス基底クラス
CProcess.h [コード] | プロセス基底クラスヘッダファイル
CProcessFactory.cpp [コード] | プロセス生成クラス
CProcessFactory.h [コード] | プロセス生成クラスヘッダファイル
CProfile.cpp [コード] | INIファイル入出力
CProfile.h [コード] | INIファイル入出力
CPropComBackup.cpp [コード] | 共通設定ダイアログボックス、「バックアップ」ページ
CPropComCustmenu.cpp [コード] |
CPropComEdit.cpp [コード] | 共通設定ダイアログボックス、「編集」ページ
CPropComFile.cpp [コード] | 共通設定ダイアログボックス、「書式」ページ
CPropComFileName.cpp [コード] |
CPropComFormat.cpp [コード] |
CPropComGrep.cpp [コード] | 共通設定ダイアログボックス、「Grep」ページ
CPropComHelper.cpp [コード] | 共通設定ダイアログボックス、「支援」ページ
CPropComKeybind.cpp [コード] | 共通設定ダイアログボックス、「キーバインド」ページ
CPropComKeyword.cpp [コード] | 共通設定ダイアログボックス、「強調キーワード」ページ
CPropComMacro.cpp [コード] |
CPropCommon.cpp [コード] | 共通設定ダイアログボックス、「全般」ページ
CPropCommon.h [コード] | 共通設定ダイアログボックスの処理
CPropComTab.cpp [コード] | 共通設定ダイアログボックス、「タブバー」ページ
CPropComToolbar.cpp [コード] | 共通設定ダイアログボックス、「ツールバー」ページ
CPropComWin.cpp [コード] | 共通設定ダイアログボックス、「ウィンドウ」ページ
CPropTypes.cpp [コード] | タイプ別設定ダイアログボックス
CPropTypes.h [コード] | タイプ別設定ダイアログボックス
CPropTypesKeyHelp.cpp [コード] |
CPropTypesRegex.cpp [コード] |
CRecent.cpp [コード] | 最近使ったリスト
CRecent.h [コード] | 最近使ったリスト
CRegexKeyword.cpp [コード] | CRegexKeyword Library
CRegexKeyword.h [コード] | CRegexKeyword Library
CRunningTimer.cpp [コード] | 処理所要時間の計測クラス
CRunningTimer.h [コード] | 処理所要時間の計測クラス
CShareData.cpp [コード] | プロセス間共有データへのアクセス
CShareData.h [コード] | プロセス間共有データへのアクセス
CShareData_new.cpp [コード] | プロセス間共有データのファイルへ／からの入出力
CSMacroMgr.cpp [コード] | マクロ
CSMacroMgr.h [コード] | キーボードマクロ(直接実行用)
CSortedTagJumpList.cpp [コード] | タグジャンプリスト
CSortedTagJumpList.h [コード] | タグジャンプリスト
CSplitBoxWnd.cpp [コード] | 分割ボックスウィンドウクラス
CSplitBoxWnd.h [コード] | 分割ボックスウィンドウクラス
CSplitterWnd.cpp [コード] | 分割線ウィンドウクラス
CSplitterWnd.h [コード] | 分割線ウィンドウクラス
CTabWnd.cpp [コード] | タブウィンドウ
CTabWnd.h [コード] | タブウィンドウ
CTipWnd.cpp [コード] | ツールチップ
CTipWnd.h [コード] | ツールチップ
CUxTheme.cpp [コード] | UxTheme 動的ロード
CUxTheme.h [コード] | UxTheme 動的ロード
CWaitCursor.cpp [コード] | 砂時計カーソル
CWaitCursor.h [コード] | 砂時計カーソル
CWnd.cpp [コード] | ウィンドウの基本クラス
CWnd.h [コード] | ウィンドウの基本クラス
CWSH.cpp [コード] | WSH Handler
CWSH.h [コード] | WSH Handler
CWSHManager.h [コード] | WSH Manager
Debug.cpp [コード] | デバッグ用関数
Debug.h [コード] | デバッグ用関数
etc_uty.cpp [コード] | 共通関数群
etc_uty.h [コード] | 共通関数群
Funccode.cpp [コード] | 機能分類定義
Funccode.h [コード] | 機能番号定義
global.cpp [コード] | 文字列共通定義
global.h [コード] | 共通定義
Keycode.h [コード] | キーコード定義
mrc2brc.cpp [コード] |
my_icmp.cpp [コード] | 独自文字列比較関数
my_icmp.h [コード] | 独自比較関数
MY_SP.C [コード] | 引数を正しく無視するsplitpath
MY_SP.h [コード] | 引数を正しく無視するsplitpath
my_tchar.h [コード] | My_icmp/my_stringのShift_JISとUnicodeを切り替えるための定義
mymessage.h [コード] | アプリケーション定義のメッセージ
OleTypes.h [コード] | OLE Type wrapper
RcCvt.cpp [コード] |
RcCvt.h [コード] |
sakura.hh [コード] |
sakura_rc.h [コード] |
StdAfx.cpp [コード] |
StdAfx.h [コード] |
WinMain.cpp [コード] | Entry Point
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CAutoSave.cpp

  • ファイル
  • 関連ページ
  • ファイル一覧
  • ファイルメンバ

CAutoSave.cpp

ファイルの自動保存 [詳細]

#include "stdafx.h"
#include "CAutoSave.h"

CAutoSave.cppのインクルード依存関係図

ソースコードを見る。

説明

ファイルの自動保存

作者:
genta
日付:
2000

CAutoSave.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:00 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CAutoSave.cpp ソースファイル

  • ファイルメンバ

CAutoSave.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2001, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029
00030 */
00031 #include "stdafx.h"
00032 #include "CAutoSave.h"
00033
00034 //----------------------------------------------------------
00035 //  class CPassiveTimer
00036 //
00037 //----------------------------------------------------------
00043 void CPassiveTimer::SetInterval(int m)
00044 {
00045     if( m <= 0 )
00046         m = 1;
00047     else if( m >= 35792 )   //  35792分以上だと int で表現できなくなる
00048         m = 35792;
00049
00050     nInterval = m * MSec2Min;
00051 }
00057 void CPassiveTimer::Enable(bool flag)
00058 {
00059     if( bEnabled != flag ){ //  変更があるとき
00060         bEnabled = flag;
00061         if( flag ){ //  enabled
00062             Reset();
00063         }
00064     }
00065 }
00073 bool CPassiveTimer::CheckAction(void)
00074 {
00075     if( !IsEnabled() )  //  有効でなければ何もしない
00076         return false;
00077
00078     //  時刻比較
00079     DWORD now = ::GetTickCount();
00080     int diff;
00081
00082     diff = now - nLastTick; //  TickCountが一回りしてもこれでうまくいくはず...
00083
00084     if( diff < nInterval )  //  規定時間に達していない
00085         return false;
00086
00087     Reset();
00088     return true;
00089 }
00090
00091
00092 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CAutoSave.h

CAutoSave.h

ファイルの自動保存 [詳細]

#include <windows.h>
#include "global.h"

CAutoSave.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CPassiveTimer

変数

const int | MSec2Min = 1000 * 60
分→ミリ秒に変換するための係数

説明

ファイルの自動保存

作者:
genta
日付:
2000

CAutoSave.h で定義されています。

変数

const int MSec2Min = 1000 * 60

分→ミリ秒に変換するための係数

CAutoSave.h の 36 行で定義されています。

参照元 CPassiveTimer::GetInterval()・CPassiveTimer::SetInterval().

Sakura-Editorに対してSat Oct 27 02:15:01 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CAutoSave.h ソースファイル

CAutoSave.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2001, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030 #ifndef __CAUTOSAVE_H_
00031 #define __CAUTOSAVE_H_
00032 #include <windows.h>
00033 #include "global.h"
00034
00036 const int MSec2Min = 1000 * 60;
00044 class SAKURA_CORE_API CPassiveTimer {
00045 public:
00049     CPassiveTimer() : nInterval(1), bEnabled(false){ Reset(); }
00050
00052     void SetInterval(int m);
00053
00055     int GetInterval(void) const {return nInterval / MSec2Min; }
00056
00058     void Reset(void){ nLastTick = ::GetTickCount(); }
00059
00061     void Enable(bool flag);
00063     bool IsEnabled(void) const { return bEnabled; }
00064
00066     bool CheckAction(void);
00067
00068 private:
00069     DWORD nLastTick;
00070     int  nInterval;
00071     bool bEnabled;
00072 };
00073 #endif
00074
00075
00076 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBlockComment.cpp

CBlockComment.cpp

ブロックコメントデリミタを管理する [詳細]

#include "stdafx.h"
#include "CBlockComment.h"
#include "CMemory.h"
#include "my_icmp.h"

CBlockComment.cppのインクルード依存関係図

ソースコードを見る。

説明

ブロックコメントデリミタを管理する

作者:
Yazaki
日付:
2002/09/17 新規作成

CBlockComment.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:02 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBlockComment.cpp ソースファイル

CBlockComment.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, YAZAKI, Moca
00010     Copyright (C) 2005, D.S.Koba
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015 #include "stdafx.h"
00016 #include "CBlockComment.h"
00017 #include "CMemory.h"
00018 #include "my_icmp.h" // 2002/11/30 Moca 追加
00019
00020 CBlockComment::CBlockComment()
00021 {
00022     int i;
00023     for ( i=0; i<BLOCKCOMMENT_NUM; i++ ){
00024         m_szBlockCommentFrom[ i ][ 0 ] = '\0';
00025         m_szBlockCommentTo[ i ][ 0 ] = '\0';
00026         m_nBlockFromLen[ i ] = 0;
00027         m_nBlockToLen[ i ] = 0;
00028     }
00029 }
00030
00037 void CBlockComment::CopyTo( const int n, const char* pszFrom, const char* pszTo )
00038 {
00039     int nStrLen = strlen( pszFrom );
00040     if( 0 < nStrLen && nStrLen < BLOCKCOMMENT_BUFFERSIZE ){
00041         strcpy( m_szBlockCommentFrom[n], pszFrom );
00042         m_nBlockFromLen[ n ] = nStrLen;
00043     }
00044     else {
00045         m_szBlockCommentFrom[n][0] = '\0';
00046         m_nBlockFromLen[n] = 0;
00047     }
00048     nStrLen = strlen( pszTo );
00049     if( 0 < nStrLen && nStrLen < BLOCKCOMMENT_BUFFERSIZE ){
00050         strcpy( m_szBlockCommentTo[n], pszTo );
00051         m_nBlockToLen[ n ] = nStrLen;
00052     }
00053     else {
00054         m_szBlockCommentTo[n][0] = '\0';
00055         m_nBlockToLen[n] = 0;
00056     }
00057 }
00058
00069 bool CBlockComment::Match_CommentFrom( int n, int nPos, int nLineLen, const char* pLine ) const
00070 {
00071     if (
00072         '\0' != m_szBlockCommentFrom[n][0] &&
00073         '\0' != m_szBlockCommentTo[n][0]  &&
00074         nPos <= nLineLen - m_nBlockFromLen[n] &&    /* ブロックコメントデリミタ(From) */
00075         0 == memicmp( &pLine[nPos], m_szBlockCommentFrom[n], m_nBlockFromLen[n] )
00076     ){
00077         return true;
00078     }
00079     return false;
00080 }
00081
00093 int CBlockComment::Match_CommentTo( int n, int nPos, int nLineLen, const char* pLine ) const
00094 {
00095     int i;
00096     for( i = nPos; i <= nLineLen - m_nBlockToLen[n]; ++i ){
00097         // 2005-09-02 D.S.Koba GetSizeOfChar
00098         int nCharChars_2 = CMemory::GetSizeOfChar( (const char *)pLine, nLineLen, i );
00099         if( 0 == nCharChars_2 ){
00100             nCharChars_2 = 1;
00101         }
00102         if( 0 == memicmp( &pLine[i], m_szBlockCommentTo[n], m_nBlockToLen[n] ) ){
00103             return i + m_nBlockToLen[n];
00104         }
00105         if( 2 == nCharChars_2 ){
00106             ++i;
00107         }
00108     }
00109     return nLineLen;
00110 }
00111 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBlockComment.h

CBlockComment.h

ブロックコメントデリミタを管理する [詳細]

#include "global.h"

CBlockComment.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CBlockComment

マクロ定義

#define | BLOCKCOMMENT_NUM 2
#define | BLOCKCOMMENT_BUFFERSIZE 16

説明

ブロックコメントデリミタを管理する

作者:
Yazaki
日付:
2002/09/17 新規作成

CBlockComment.h で定義されています。

マクロ定義

#define BLOCKCOMMENT_BUFFERSIZE 16

CBlockComment.h の 29 行で定義されています。

参照元 CBlockComment::CopyTo()・CPropTypes::SetData_p3_new().

#define BLOCKCOMMENT_NUM 2

ブロックコメントデリミタを管理する

覚え書き:
CBlockCommentは、共有メモリTypesに含まれるので、メンバ変数は常に実体を持っていなければならない。

CBlockComment.h の 28 行で定義されています。

参照元 CBlockComment::CBlockComment().

Sakura-Editorに対してSat Oct 27 02:15:07 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBlockComment.h ソースファイル

CBlockComment.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, Yazaki
00009     Copyright (C) 2005, Moca
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 #ifndef _CBLOCKCOMMENT_H_
00016 #define _CBLOCKCOMMENT_H_
00017
00018 //  sakura
00019 #include "global.h"
00020
00021 /*-----------------------------------------------------------------------
00022 クラスの宣言
00023 -----------------------------------------------------------------------*/
00028 #define BLOCKCOMMENT_NUM    2
00029 #define BLOCKCOMMENT_BUFFERSIZE 16
00030
00031 class SAKURA_CORE_API CBlockComment
00032 {
00033     char    m_szBlockCommentFrom[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE];
00034     char    m_szBlockCommentTo[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE];              int     m_nBlockFromLen[BLOCKCOMMENT_NUM];
00035     int     m_nBlockToLen[BLOCKCOMMENT_NUM];
00036
00037 public:
00038     /*
00039     ||  Constructors
00040     */
00041     CBlockComment();
00042
00043     void CopyTo( const int n, const char* pszFrom, const char* pszTo ); //  行コメントデリミタをコピーする
00044     bool Match_CommentFrom( int n, int nPos, int nLineLen, const char* pLine ) const;   //  行コメントに値するか確認する
00045     int Match_CommentTo( int n, int nPos, int nLineLen, const char* pLine ) const;  //  行コメントに値するか確認する
00046
00047     const char* getBlockCommentFrom( const int n ){
00048         return m_szBlockCommentFrom[n];
00049     };
00050     const char* getBlockCommentTo( const int n ){
00051         return m_szBlockCommentTo[n];
00052     };
00053     //  2005.11.10 Moca アクセス関数追加
00054     int getBlockFromLen( int n ) const {
00055         return m_nBlockFromLen[n];
00056     };
00057     int getBlockToLen( int n ) const {
00058         return m_nBlockToLen[n];
00059     };
00060 };
00061
00062
00064 #endif /* _CBLOCKCOMMENT_H_ */
00065
00066
00067 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBregexp.cpp

CBregexp.cpp

BREGEXP Library Handler [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include "CBregexp.h"
#include "etc_uty.h"

CBregexp.cppのインクルード依存関係図

ソースコードを見る。

変数

static const TCHAR | P_BREG [] = _T("BREGEXP.DLL")
static const TCHAR | P_ONIG [] = _T("bregonig.dll")

説明

BREGEXP Library Handler

Perl5互換正規表現を扱うDLLであるBREGEXP.DLLを利用するためのインターフェース

作者:
genta
日付:
Jun. 10, 2001

2002/2/1 hor ReleaseCompileBufferを適宜追加

Jul. 25, 2002 genta 行頭条件を考慮した検索を行うように．(置換はまだ)

2003.05.22 かろと 正規な正規表現に近づける

2005.03.19 かろと リファクタリング。クラス内部を隠蔽。

CBregexp.cpp で定義されています。

変数

const TCHAR P_BREG[] = _T("BREGEXP.DLL") [static]

CBregexp.cpp の 49 行で定義されています。

参照元 CBregexp::GetDllNameInOrder().

const TCHAR P_ONIG[] = _T("bregonig.dll") [static]

CBregexp.cpp の 50 行で定義されています。

参照元 CBregexp::GetDllNameInOrder().

Sakura-Editorに対してSat Oct 27 02:15:07 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBregexp.cpp ソースファイル

CBregexp.cpp

説明を見る。
00001
00013 /*
00014     Copyright (C) 2001-2002, genta
00015     Copyright (C) 2002, novice, hor, Azumaiya
00016     Copyright (C) 2003, かろと
00017     Copyright (C) 2005, かろと
00018     Copyright (C) 2006, かろと
00019     Copyright (C) 2007, ryoji
00020
00021     This software is provided 'as-is', without any express or implied
00022     warranty. In no event will the authors be held liable for any damages
00023     arising from the use of this software.
00024
00025     Permission is granted to anyone to use this software for any purpose,
00026     including commercial applications, and to alter it and redistribute it
00027     freely, subject to the following restrictions:
00028
00029         1. The origin of this software must not be misrepresented;
00030            you must not claim that you wrote the original software.
00031            If you use this software in a product, an acknowledgment
00032            in the product documentation would be appreciated but is
00033            not required.
00034
00035         2. Altered source versions must be plainly marked as such,
00036            and must not be misrepresented as being the original software.
00037
00038         3. This notice may not be removed or altered from any source
00039            distribution.
00040 */
00041
00042 #include "stdafx.h"
00043 #include <stdio.h>
00044 #include <string.h>
00045 #include "CBregexp.h"
00046 #include "etc_uty.h"
00047
00048 //  2007.07.22 genta : DLL判別用
00049 const static TCHAR P_BREG[] = _T("BREGEXP.DLL");
00050 const static TCHAR P_ONIG[] = _T("bregonig.dll");
00051
00052 // Compile時、行頭置換(len=0)の時にダミー文字列(１つに統一) by かろと
00053 const char CBregexp::m_tmpBuf[2] = "\0";
00054
00055 CBregexp::CBregexp() : m_pRegExp( NULL ),
00056     m_ePatType( PAT_NORMAL )    //  Jul, 25, 2002 genta
00057 {
00058 }
00059
00060 CBregexp::~CBregexp()
00061 {
00062     //<< 2002/03/27 Azumaiya
00063     // 一応、クラスの終了時にコンパイルバッファを解放。
00064     DeinitDll();
00065     //>> 2002/03/27 Azumaiya
00066 }
00067
00075 LPCTSTR CBregexp::GetDllNameInOrder( LPCTSTR str, int index )
00076 {
00077
00078     switch( index ){
00079     case 0:
00080         //  NULLはリストの終わりを意味するので，
00081         //  str == NULLの場合にそのまま返してはいけない．
00082         return str == NULL || str[0] == _T('\0') ? P_ONIG : str ;
00083     case 1:
00084         return str == NULL || str[0] == _T('\0') ? P_BREG : NULL;
00085     }
00086     return NULL;
00087 }
00096 int CBregexp::InitDll(void)
00097 {
00098     //  Apr. 15, 2002 genta
00099     //  CPPA.cpp を参考に設定を配列化した
00100
00101     const ImportTable table[] = {
00102         { &BMatch,      "BMatch" },
00103         { &BSubst,      "BSubst" },
00104         { &BTrans,      "BTrans" },
00105         { &BSplit,      "BSplit" },
00106         { &BRegfree,    "BRegfree" },
00107         { &BRegexpVersion,  "BRegexpVersion" },
00108         { NULL, 0 }
00109     };
00110
00111     if( ! RegisterEntries( table )){
00112         return 1;
00113     }
00114     // 2003.11.01 かろと 拡張した関数のアドレス取得
00115     BMatchEx = (BREGEXP_BMatchEx)GetProcAddress( GetInstance(), "BMatchEx" );
00116     BSubstEx = (BREGEXP_BSubstEx)GetProcAddress( GetInstance(), "BSubstEx" );
00117
00118     return 0;
00119 }
00120
00124 int CBregexp::DeinitDll( void )
00125 {
00126     ReleaseCompileBuffer();
00127     return 0;
00128 }
00129
00138 int CBregexp::CheckPattern(const char *szPattern)
00139 {
00140     static const char TOP_MATCH[] = "/^\\(*\\^/k";
00141     static const char DOL_MATCH[] = "/\\\\\\$$/k";
00142     static const char BOT_MATCH[] = "/\\$\\)*$/k";
00143     static const char TAB_MATCH[] = "/^\\(*\\^\\$\\)*$/k";
00144     static const char LOOKAHEAD[] = "/\\(\\?[=]/k";
00145     BREGEXP*    sReg = NULL;
00146     char szMsg[80] = "";
00147     int nLen;
00148     const char *szPatternEnd;
00149
00150     m_ePatType = PAT_NORMAL;
00151     nLen = strlen( szPattern );
00152     szPatternEnd = szPattern + nLen;
00153     // パターン種別の設定
00154     if( BMatch( TOP_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00155         // 行頭パターンにマッチした
00156         m_ePatType |= PAT_TOP;
00157     }
00158     BRegfree(sReg);
00159     sReg = NULL;
00160     if( BMatch( TAB_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00161         // 行頭行末パターンにマッチした
00162         m_ePatType |= PAT_TAB;
00163     }
00164     BRegfree(sReg);
00165     sReg = NULL;
00166     if( BMatch( DOL_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00167         // 行末の\$ にマッチした
00168         // PAT_NORMAL
00169     } else {
00170         BRegfree(sReg);
00171         sReg = NULL;
00172         if( BMatch( BOT_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) {
00173             // 行末パターンにマッチした
00174             m_ePatType |= PAT_BOTTOM;
00175         } else {
00176             // その他
00177             // PAT_NORMAL
00178         }
00179     }
00180     BRegfree(sReg);
00181     sReg = NULL;
00182
00183     if( BMatch( LOOKAHEAD, szPattern, szPattern + nLen, &sReg, szMsg ) > 0 ) {
00184         // 先読みパターンにマッチした
00185         m_ePatType |= PAT_LOOKAHEAD;
00186     }
00187     BRegfree(sReg);
00188     sReg = NULL;
00189     return (nLen);
00190 }
00191
00206 char* CBregexp::MakePatternSub( const char* szPattern, const char* szPattern2, const char* szAdd2, int nOption )
00207 {
00208     static const char DELIMITER = '\xFF';
00209     int nLen;
00210     int nLen2;
00211
00212     // 検索パターン作成
00213     char *szNPattern;
00214     char *pPat;
00215
00216     nLen = strlen(szPattern);
00217     if (szPattern2 == NULL) {
00218         // 検索(BMatch)時
00219         szNPattern = new char[ nLen + 15 ]; //  15：「s///option」が余裕ではいるように。
00220         pPat = szNPattern;
00221         *pPat++ = 'm';
00222     } else {
00223         // 置換(BSubst)時
00224         nLen2 = strlen(szPattern2) + strlen(szAdd2);
00225         szNPattern = new char[ nLen + nLen2 + 15 ];
00226         pPat = szNPattern;
00227         *pPat++ = 's';
00228     }
00229     *pPat++ = DELIMITER;
00230     while (*szPattern != '\0') { *pPat++ = *szPattern++; }
00231     *pPat++ = DELIMITER;
00232     if (szPattern2 != NULL) {
00233         while (*szPattern2 != '\0') { *pPat++ = *szPattern2++; }
00234         while (*szAdd2 != '\0') { *pPat++ = *szAdd2++; }
00235         *pPat++ = DELIMITER;
00236     }
00237     *pPat++ = 'k';          // 漢字対応
00238     *pPat++ = 'm';          // 複数行対応(但し、呼び出し側が複数行対応でない)
00239     // 2006.01.22 かろと 論理逆なので bIgnoreCase -> optCaseSensitiveに変更
00240     if( !(nOption & optCaseSensitive) ) {       // 2002/2/1 hor IgnoreCase オプション追加 マージ：aroka
00241         *pPat++ = 'i';      // 大文字小文字を同一視(無視)する
00242     }
00243     // 2006.01.22 かろと 行単位置換のために、全域オプション追加
00244     if( (nOption & optGlobal) ) {
00245         *pPat++ = 'g';          // 全域(global)オプション、行単位の置換をする時に使用する
00246     }
00247     *pPat = '\0';
00248     return szNPattern;
00249 }
00250
00251
00271 char* CBregexp::MakePattern( const char* szPattern, const char* szPattern2, int nOption )
00272 {
00273     static const char CRLF[] = "\r\n";
00274     static const char CR[] = "\r";
00275     static const char LF[] = "\n";
00276     static const char LFCR[] = "\n\r";
00277     static const char BOT_SUBST[] = "s/\\$(\\)*)$/([\\\\r\\\\n]+)\\$$1/k";
00278     int nLen;
00279     BREGEXP*    sReg = NULL;
00280     char szMsg[80] = "";
00281     char szAdd2[5] = "";
00282     int nParens = 0;
00283     char *szNPattern;
00284
00285     nLen = CheckPattern( szPattern );
00286     if( (m_ePatType & PAT_BOTTOM) != 0 ) {
00287         bool bJustDollar = false;           // 行末指定の$のみであるフラグ($の前に \r\nが指定されていない)
00288         szNPattern = MakePatternSub(szPattern, NULL, NULL, nOption);
00289         int matched = BMatch( szNPattern, CRLF, CRLF+sizeof(CRLF)-1, &sReg, szMsg );
00290         if( matched >= 0 ) {
00291             // szNPatternが不正なパターン等のエラーでなかった
00292             // エラー時には sRegがNULLのままなので、sReg->nparensへのアクセスは不正
00293             nParens = sReg->nparens;            // オリジナルの検索文字列中の()の数を記憶
00294             if( matched > 0 ) {
00295                 if( sReg->startp[0] == &CRLF[1] && sReg->endp[0] == &CRLF[1] ) {
00296                     if( BMatch( NULL, CR, CR+sizeof(CR)-1, &sReg, szMsg ) > 0 && sReg->startp[0] == &CR[1] && sReg->endp[0] == &CR[1] ) {
00297                         if( BMatch( NULL, LF, LF+sizeof(LF)-1, &sReg, szMsg ) > 0 && sReg->startp[0] == &LF[0] && sReg->endp[0] == &LF[0] ) {
00298                             if( BMatch( NULL, LFCR, LFCR+sizeof(LFCR)-1, &sReg, szMsg ) > 0 && sReg->startp[0] == &LFCR[0] && sReg->endp[0] == &LFCR[0] ) {
00299                                 // 検索文字列は 行末($)のみだった
00300                                 bJustDollar = true;
00301                             }
00302                         }
00303                     }
00304                 }
00305             } else {
00306                 if( BMatch( NULL, CR, CR+sizeof(CR)-1, &sReg, szMsg ) <= 0 ) {
00307                     if( BMatch( NULL, LF, LF+sizeof(LF)-1, &sReg, szMsg ) <= 0 ) {
00308                         if( BMatch( NULL, LFCR, LFCR+sizeof(LFCR)-1, &sReg, szMsg ) <= 0 ) {
00309                             // 検索文字列は、文字＋行末($)だった
00310                             bJustDollar = true;
00311                         }
00312                     }
00313                 }
00314             }
00315             BRegfree(sReg);
00316             sReg = NULL;
00317         }
00318         delete [] szNPattern;
00319
00320         if( bJustDollar == true || (m_ePatType & PAT_TAB) != 0 ) {
00321             // 行末指定の$ or 行頭行末指定 なので、検索文字列を置換
00322             if( BSubst( BOT_SUBST, szPattern, szPattern + nLen, &sReg, szMsg ) > 0 ) {
00323                 szPattern = sReg->outp;
00324                 if( szPattern2 != NULL ) {
00325                     // 置換パターンもあるので、置換パターンの最後に $(nParens+1)を追加
00326                     wsprintf( szAdd2, "$%d", nParens + 1 );
00327                 }
00328             }
00329             // sReg->outp のポインタを参照しているので、sRegを解放するのは最後に
00330         }
00331     }
00332
00333     szNPattern = MakePatternSub( szPattern, szPattern2, szAdd2, nOption );
00334     if( sReg != NULL ) {
00335         BRegfree(sReg);
00336     }
00337     return szNPattern;
00338 }
00339
00340
00352 bool CBregexp::Compile( const char *szPattern0, const char *szPattern1, int nOption )
00353 {
00354
00355     //  DLLが利用可能でないときはエラー終了
00356     if( !IsAvailable() )
00357         return false;
00358
00359     //  BREGEXP構造体の解放
00360     ReleaseCompileBuffer();
00361
00362     // ライブラリに渡す検索パターンを作成
00363     // 別関数で共通処理に変更 2003.05.03 by かろと
00364     char *szNPattern = MakePattern( szPattern0, szPattern1, nOption );
00365     m_szMsg[0] = '\0';
00366     if (szPattern1 == NULL) {
00367         // 検索実行
00368         BMatch( szNPattern, m_tmpBuf, m_tmpBuf+1, &m_pRegExp, m_szMsg );
00369     } else {
00370         // 置換実行
00371         BSubst( szNPattern, m_tmpBuf, m_tmpBuf+1, &m_pRegExp, m_szMsg );
00372     }
00373     delete [] szNPattern;
00374
00375     //  メッセージが空文字列でなければ何らかのエラー発生。
00376     //  サンプルソース参照
00377     if( m_szMsg[0] ){
00378         ReleaseCompileBuffer();
00379         return false;
00380     }
00381
00382     // 行頭条件チェックは、MakePatternに取り込み 2003.05.03 by かろと
00383
00384     return true;
00385 }
00386
00399 bool CBregexp::Match( const char* target, int len, int nStart )
00400 {
00401     int matched;
00402
00403     //  DLLが利用可能でないとき、または構造体が未設定の時はエラー終了
00404     if( (!IsAvailable()) || m_pRegExp == NULL ){
00405         return false;
00406     }
00407
00408     m_szMsg[0] = '\0';
00409     // 拡張関数がない場合は、行の先頭("^")の検索時の特別処理 by かろと
00410     if (BMatchEx == NULL) {
00411         /*
00412         ** 行頭(^)とマッチするのは、nStart=0の時だけなので、それ以外は false
00413         */
00414         if( (m_ePatType & PAT_TOP) != 0 && nStart != 0 ) {
00415             // nStart!=0でも、BMatch()にとっては行頭になるので、ここでfalseにする必要がある
00416             return false;
00417         }
00418         //  検索文字列＝NULLを指定すると前回と同一の文字列と見なされる
00419         matched = BMatch( NULL, target + nStart, target + len, &m_pRegExp, m_szMsg );
00420     } else {
00421         //  検索文字列＝NULLを指定すると前回と同一の文字列と見なされる
00422         matched = BMatchEx( NULL, target, target + nStart, target + len, &m_pRegExp, m_szMsg );
00423     }
00424     m_szTarget = target;
00425
00426     if ( matched < 0 || m_szMsg[0] ) {
00427         // BMatchエラー
00428         // エラー処理をしていなかったので、nStart>=lenのような場合に、マッチ扱いになり
00429         // 無限置換等の不具合になっていた 2003.05.03 by かろと
00430         return false;
00431     } else if ( matched == 0 ) {
00432         // 一致しなかった
00433         return false;
00434     }
00435
00436     return true;
00437 }
00438
00439
00440 //<< 2002/03/27 Azumaiya
00454 int CBregexp::Replace(const char *szTarget, int nLen, int nStart)
00455 {
00456     int result;
00457     //  DLLが利用可能でないとき、または構造体が未設定の時はエラー終了
00458     if( !IsAvailable() || m_pRegExp == NULL )
00459     {
00460         return false;
00461     }
00462
00463     //  From Here 2003.05.03 かろと
00464     // nLenが０だと、BSubst()が置換に失敗してしまうので、代用データ(m_tmpBuf)を使う
00465     //
00466     // 2007.01.19 ryoji 代用データ使用をコメントアウト
00467     // 使用すると現状では結果に１バイト余分なゴミが付加される
00468     // 置換に失敗するのはnLenが０に限らず nLen = nStart のとき（行頭マッチだけ対策しても．．．）
00469     //
00470     //if( nLen == 0 ) {
00471     //  szTarget = m_tmpBuf;
00472     //  nLen = 1;
00473     //}
00474     //  To Here 2003.05.03 かろと
00475
00476     m_szMsg[0] = '\0';
00477     if (BSubstEx == NULL) {
00478         result = BSubst( NULL, szTarget + nStart, szTarget + nLen, &m_pRegExp, m_szMsg );
00479     } else {
00480         result = BSubstEx( NULL, szTarget, szTarget + nStart, szTarget + nLen, &m_pRegExp, m_szMsg );
00481     }
00482     m_szTarget = szTarget;
00483
00484     //  メッセージが空文字列でなければ何らかのエラー発生。
00485     //  サンプルソース参照
00486     if( m_szMsg[0] ) {
00487         return 0;
00488     }
00489
00490     if( result < 0 ) {
00491         // 置換するものがなかった
00492         return 0;
00493     }
00494     return result;
00495 }
00496 //>> 2002/03/27 Azumaiya
00497
00498 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBregexp.h

CBregexp.h

BREGEXP Library Handler [詳細]

#include "CDllHandler.h"

CBregexp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | bregexp
class | CBregexp
Perl互換正規表現 BREGEXP.DLL をサポートするクラス [詳細]

型定義

typedef bregexp | BREGEXP

説明

BREGEXP Library Handler

Perl5互換正規表現を扱うDLLであるBREGEXP.DLLを利用するためのインターフェース

作者:
genta
日付:
Jun. 10, 2001

Jan. 05, 2002 genta コメント追加

2002/2/1 hor

Jul. 25, 2002 genta 行頭条件の考慮を追加

CBregexp.h で定義されています。

型定義

typedef struct bregexp BREGEXP

BREGEXP 正規表現のコンパイル結果を保持する構造体

Sakura-Editorに対してSat Oct 27 02:15:08 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CBregexp.h ソースファイル

CBregexp.h

説明を見る。
00001
00012 /*
00013     Copyright (C) 2001-2002, genta
00014     Copyright (C) 2001, novice, hor
00015     Copyright (C) 2002, novice, hor, Azumaiya
00016     Copyright (C) 2003, かろと
00017     Copyright (C) 2005, かろと, aroka
00018     Copyright (C) 2006, かろと
00019     Copyright (C) 2007, ryoji
00020
00021     This software is provided 'as-is', without any express or implied
00022     warranty. In no event will the authors be held liable for any damages
00023     arising from the use of this software.
00024
00025     Permission is granted to anyone to use this software for any purpose,
00026     including commercial applications, and to alter it and redistribute it
00027     freely, subject to the following restrictions:
00028
00029         1. The origin of this software must not be misrepresented;
00030            you must not claim that you wrote the original software.
00031            If you use this software in a product, an acknowledgment
00032            in the product documentation would be appreciated but is
00033            not required.
00034
00035         2. Altered source versions must be plainly marked as such,
00036            and must not be misrepresented as being the original software.
00037
00038         3. This notice may not be removed or altered from any source
00039            distribution.
00040 */
00041
00042 #ifndef _DLL_BREGEXP_H_
00043 #define _DLL_BREGEXP_H_
00044
00045 #include "CDllHandler.h"
00046
00050 typedef struct bregexp {
00051     const char *outp;
00052     const char *outendp;
00053     int  splitctr;
00054     const char **splitp;
00055     int rsv1;
00056     char *parap;
00057     char *paraendp;
00058     char *transtblp;
00059     char **startp;
00060     char **endp;
00061     int nparens;
00062 } BREGEXP;
00063
00082 class SAKURA_CORE_API CBregexp : public CDllHandler {
00083 public:
00084     CBregexp();
00085     virtual ~CBregexp();
00086
00087     // 2006.01.22 かろと オプション追加・名称変更
00088     enum Option {
00089         optNothing = 0,
00090         optCaseSensitive = 1,
00091         optGlobal = 2
00092     };
00094     enum Pattern {
00095         PAT_UNKNOWN = 0,
00096         PAT_NORMAL = 1,
00097         PAT_TOP = 2,
00098         PAT_BOTTOM = 4,
00099         PAT_TAB = 8,
00100         PAT_LOOKAHEAD = 16
00101     };
00102
00103     const char* GetVersion(){
00104         return IsAvailable() ? BRegexpVersion() : "";
00105     }
00106
00107     //  CJreエミュレーション関数
00109     // 2002/01/19 novice 正規表現による文字列置換
00110     // 2002.01.26 hor    置換後文字列を別引数に
00111     // 2002.02.01 hor    大文字小文字を無視するオプション追加
00112     //>> 2002/03/27 Azumaiya 正規表現置換にコンパイル関数を使う形式を追加
00113     bool Compile(const char *szPattern, int nOption = 0) {
00114         return Compile(szPattern, NULL, nOption);
00115     }
00116     bool Compile(const char *szPattern0, const char *szPattern1, int nOption = 0);
00117     bool Match(const char *szTarget, int nLen, int nStart = 0);
00118     int Replace(const char *szTarget, int nLen, int nStart = 0);
00119
00120     //-----------------------------------------
00121     // 2005.03.19 かろと クラス内部を隠蔽
00129     int GetIndex(void) {
00130         return m_pRegExp->startp[0] - m_szTarget;
00131     }
00136     int GetLastIndex(void) {
00137         return m_pRegExp->endp[0] - m_szTarget;
00138     }
00143     int GetMatchLen(void) {
00144         return m_pRegExp->endp[0] - m_pRegExp->startp[0];
00145     }
00150     int GetStringLen(void) {
00151         // 置換後文字列が０幅なら outp、outendpもNULLになる
00152         // NULLポインタの引き算は問題なく０になる。
00153         // outendpは '\0'なので、文字列長は +1不要
00154
00155         // Jun. 03, 2005 Karoto
00156         //  置換後文字列が0幅の場合にoutpがNULLでもoutendpがNULLでない場合があるので，
00157         //  outpのNULLチェックが必要
00158         if (m_pRegExp->outp == NULL) {
00159             return 0;
00160         } else {
00161             return m_pRegExp->outendp - m_pRegExp->outp;
00162         }
00163     }
00168     const char *GetString(void) {
00169         return m_pRegExp->outp;
00170     }
00172     //-----------------------------------------
00173
00177     const char* GetLastMessage(void) const { return m_szMsg; }
00183     bool IsLookAhead(void) {
00184         return m_ePatType & PAT_LOOKAHEAD ? true : false;
00185     }
00191     bool IsLookAhead(const char *pattern) {
00192         CheckPattern(pattern);
00193         return IsLookAhead();
00194     }
00195
00196 protected:
00197     //  Jul. 5, 2001 genta インターフェース変更に伴う引数追加
00198     virtual LPCTSTR GetDllNameInOrder(LPCTSTR, int);
00199     virtual int InitDll(void);
00200     virtual int DeinitDll(void);
00201
00202     //  DLL Interfaceの受け皿
00203     //  Aug. 20, 2005 Aroka : 最適化オプションでデフォルトを__fastcallに変更しても
00204     //  影響を受けないようにする．
00205     typedef int (__cdecl *BREGEXP_BMatch)(const char*,const char *,const char *,BREGEXP **,char *);
00206     typedef int (__cdecl *BREGEXP_BSubst)(const char*,const char *,const char *,BREGEXP **,char *);
00207     typedef int (__cdecl *BREGEXP_BTrans)(const char*,char *,char *,BREGEXP **,char *);
00208     typedef int (__cdecl *BREGEXP_BSplit)(const char*,char *,char *,int,BREGEXP **,char *);
00209     typedef void (__cdecl *BREGEXP_BRegfree)(BREGEXP*);
00210     typedef const char* (__cdecl *BREGEXP_BRegexpVersion)(void);
00211     // 2005.03.19 かろと 前方一致用新インターフェース
00212     typedef int (*BREGEXP_BMatchEx)(const char*,const char*, const char *,const char *,BREGEXP **,char *);
00213     typedef int (*BREGEXP_BSubstEx)(const char*,const char*, const char *,const char *,BREGEXP **,char *);
00214
00215     BREGEXP_BMatch BMatch;
00216     BREGEXP_BSubst BSubst;
00217     BREGEXP_BTrans BTrans;
00218     BREGEXP_BSplit BSplit;
00219     BREGEXP_BRegfree BRegfree;
00220     BREGEXP_BRegexpVersion BRegexpVersion;
00221     BREGEXP_BMatchEx BMatchEx;
00222     BREGEXP_BSubstEx BSubstEx;
00223
00225
00229     void ReleaseCompileBuffer(void){
00230         if( m_pRegExp ){
00231             BRegfree( m_pRegExp );
00232             m_pRegExp = NULL;
00233         }
00234         m_ePatType = PAT_UNKNOWN;
00235     }
00236
00237 private:
00238     //  内部関数
00239
00241     int CheckPattern( const char *szPattern );
00242     char* MakePatternSub( const char* szPattern, const char* szPattern2, const char* szAdd2, int nOption );
00243     char* MakePattern( const char* szPattern, const char* szPattern2, int nOption );
00244     //  メンバ変数
00245     BREGEXP*            m_pRegExp;
00246     int                 m_ePatType;
00247     const char          *m_szTarget;
00248     char                m_szMsg[80];
00249     // 静的メンバ変数
00250     static const char   m_tmpBuf[2];
00251 };
00252
00253 //  以下は関数ポインタに読み込まれる関数の解説
00360 #endif
00361 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CCommandLine.cpp

CCommandLine.cpp

コマンドラインパーサ [詳細]

#include "stdafx.h"
#include "CCommandLine.h"
#include "CMemory.h"
#include "etc_uty.h"
#include <tchar.h>
#include <io.h>
#include <string.h>
#include "CRunningTimer.h"
#include "my_icmp.h"
#include "charcode.h"
#include "debug.h"

CCommandLine.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | CMDLINEOPT_R 1002
#define | CMDLINEOPT_NOWIN 1003
#define | CMDLINEOPT_WRITEQUIT 1004
#define | CMDLINEOPT_GREPMODE 1100
#define | CMDLINEOPT_GREPDLG 1101
#define | CMDLINEOPT_DEBUGMODE 1999
#define | CMDLINEOPT_NOMOREOPT 1998
#define | CMDLINEOPT_X 1
#define | CMDLINEOPT_Y 2
#define | CMDLINEOPT_VX 3
#define | CMDLINEOPT_VY 4
#define | CMDLINEOPT_TYPE 5
#define | CMDLINEOPT_CODE 6
#define | CMDLINEOPT_SX 7
#define | CMDLINEOPT_SY 8
#define | CMDLINEOPT_WX 9
#define | CMDLINEOPT_WY 10
#define | CMDLINEOPT_GKEY 101
#define | CMDLINEOPT_GFILE 102
#define | CMDLINEOPT_GFOLDER 103
#define | CMDLINEOPT_GOPT 104
#define | CMDLINEOPT_GCODE 105
#define | CMDLINEOPT_GROUP 500

説明

コマンドラインパーサ

作者:
aroka
日付:
2002/01/08 作成

CCommandLine.cpp で定義されています。

マクロ定義

#define CMDLINEOPT_CODE 6

CCommandLine.cpp の 49 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_DEBUGMODE 1999

CCommandLine.cpp の 42 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GCODE 105

CCommandLine.cpp の 58 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GFILE 102

CCommandLine.cpp の 55 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GFOLDER 103

CCommandLine.cpp の 56 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GKEY 101

CCommandLine.cpp の 54 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GOPT 104

CCommandLine.cpp の 57 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GREPDLG 1101

CCommandLine.cpp の 41 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GREPMODE 1100

CCommandLine.cpp の 40 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_GROUP 500

CCommandLine.cpp の 59 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_NOMOREOPT 1998

CCommandLine.cpp の 43 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_NOWIN 1003

CCommandLine.cpp の 38 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_R 1002

CCommandLine.cpp の 37 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_SX 7

CCommandLine.cpp の 50 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_SY 8

CCommandLine.cpp の 51 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_TYPE 5

CCommandLine.cpp の 48 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_VX 3

CCommandLine.cpp の 46 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_VY 4

CCommandLine.cpp の 47 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_WRITEQUIT 1004

CCommandLine.cpp の 39 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_WX 9

CCommandLine.cpp の 52 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_WY 10

CCommandLine.cpp の 53 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_X 1

CCommandLine.cpp の 44 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

#define CMDLINEOPT_Y 2

CCommandLine.cpp の 45 行で定義されています。

参照元 CCommandLine::CheckCommandLine().

Sakura-Editorに対してSat Oct 27 02:15:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CCommandLine.cpp ソースファイル

CCommandLine.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, genta
00010     Copyright (C) 2002, aroka CEditAppより分離
00011     Copyright (C) 2002, genta, Moca
00012     Copyright (C) 2005, D.S.Koba, genta, susu
00013     Copyright (C) 2006, ryoji
00014     Copyright (C) 2007, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019
00020
00021 #include "stdafx.h"
00022 #include "CCommandLine.h"
00023 #include "CMemory.h"
00024 #include "etc_uty.h"
00025 #include <tchar.h>
00026 #include <io.h>
00027 #include <string.h>
00028 #include "CRunningTimer.h"
00029 // 関数をマクロ再定義するので my_icmp.h は最後に置く    // 2006.10.25 ryoji
00030 #include "my_icmp.h"
00031 #include "charcode.h"  // 2006.06.28 rastiv
00032 #include "debug.h"
00033
00034 CCommandLine* CCommandLine::_instance = NULL;
00035
00036 /* コマンドラインオプション用定数 */
00037 #define CMDLINEOPT_R            1002
00038 #define CMDLINEOPT_NOWIN        1003
00039 #define CMDLINEOPT_WRITEQUIT    1004
00040 #define CMDLINEOPT_GREPMODE     1100
00041 #define CMDLINEOPT_GREPDLG      1101
00042 #define CMDLINEOPT_DEBUGMODE    1999
00043 #define CMDLINEOPT_NOMOREOPT    1998
00044 #define CMDLINEOPT_X            1
00045 #define CMDLINEOPT_Y            2
00046 #define CMDLINEOPT_VX           3
00047 #define CMDLINEOPT_VY           4
00048 #define CMDLINEOPT_TYPE         5
00049 #define CMDLINEOPT_CODE         6
00050 #define CMDLINEOPT_SX           7
00051 #define CMDLINEOPT_SY           8
00052 #define CMDLINEOPT_WX           9
00053 #define CMDLINEOPT_WY           10
00054 #define CMDLINEOPT_GKEY         101
00055 #define CMDLINEOPT_GFILE        102
00056 #define CMDLINEOPT_GFOLDER      103
00057 #define CMDLINEOPT_GOPT         104
00058 #define CMDLINEOPT_GCODE        105
00059 #define CMDLINEOPT_GROUP        500
00060
00072 int CCommandLine::CheckCommandLine(
00073     LPSTR  str,
00074     int quotelen,
00075     char** arg
00076 )
00077 {
00081     struct _CmdLineOpt {
00082         LPCSTR opt;
00083         int len;
00084         int value;
00085     };
00086
00091     static const _CmdLineOpt _COptWoA[] = {
00092         {"R", 1,            CMDLINEOPT_R},
00093         {"-", 1,            CMDLINEOPT_NOMOREOPT},
00094         {"NOWIN", 5,        CMDLINEOPT_NOWIN},
00095         {"WQ", 2,           CMDLINEOPT_WRITEQUIT},  // 2007.05.19 ryoji sakuext用に追加
00096         {"GREPMODE", 8,     CMDLINEOPT_GREPMODE},
00097         {"GREPDLG", 7,      CMDLINEOPT_GREPDLG},
00098         {"DEBUGMODE", 9,    CMDLINEOPT_DEBUGMODE},
00099         {NULL, 0, 0}
00100     };
00101
00106     static const _CmdLineOpt _COptWithA[] = {
00107         {"X", 1,            CMDLINEOPT_X},
00108         {"Y", 1,            CMDLINEOPT_Y},
00109         {"VX", 2,           CMDLINEOPT_VX},
00110         {"VY", 2,           CMDLINEOPT_VY},
00111         {"SX", 2,           CMDLINEOPT_SX},
00112         {"SY", 2,           CMDLINEOPT_SY},
00113         {"WX", 2,           CMDLINEOPT_WX},
00114         {"WY", 2,           CMDLINEOPT_WY},
00115         {"CODE", 4,         CMDLINEOPT_CODE},   // 2002/09/20 Moca _COptWoAから移動
00116         {"TYPE", 4,         CMDLINEOPT_TYPE},
00117         {"GKEY", 4,         CMDLINEOPT_GKEY},
00118         {"GFILE", 5,        CMDLINEOPT_GFILE},
00119         {"GFOLDER", 7,      CMDLINEOPT_GFOLDER},
00120         {"GOPT", 4,         CMDLINEOPT_GOPT},
00121         {"GCODE", 5,        CMDLINEOPT_GCODE},  // 2002/09/21 Moca 追加
00122         {"GROUP", 5,        CMDLINEOPT_GROUP},  // 2007.06.26 ryoji
00123         {NULL, 0, 0}
00124     };
00125
00126     const _CmdLineOpt *ptr;
00127     int len = lstrlen( str ) - quotelen;
00128
00129     //  引数がある場合を先に確認
00130     for( ptr = _COptWithA; ptr->opt != NULL; ptr++ ){
00131         if( len >= ptr->len &&  //  長さが足りているか
00132             //  オプション部分の長さチェック
00133             ( str[ptr->len] == '=' || str[ptr->len] == ':' ) &&
00134             //  文字列の比較
00135             _memicmp( str, ptr->opt, ptr->len ) == 0 ){     // 2006.10.25 ryoji memcmp() -> _memicmp()
00136             *arg = str + ptr->len + 1;
00137             return ptr->value;
00138         }
00139     }
00140
00141     //  引数がない場合
00142     for( ptr = _COptWoA; ptr->opt != NULL; ptr++ ){
00143         if( len == ptr->len &&  //  長さチェック
00144             //  文字列の比較
00145             _memicmp( str, ptr->opt, ptr->len ) == 0 ){     // 2006.10.25 ryoji memcmp() -> _memicmp()
00146             return ptr->value;
00147         }
00148     }
00149     return 0;   //  該当無し
00150 }
00151
00166 void CCommandLine::ParseCommandLine( void )
00167 {
00168     MY_RUNNINGTIMER( cRunningTimer, "CCommandLine::Parse" );
00169
00170     //  May 30, 2000 genta
00171     //  実行ファイル名をもとに漢字コードを固定する．
00172     {
00173         char    exename[512];
00174         ::GetModuleFileName( NULL, exename, 512 );
00175
00176         int     len = strlen( exename );
00177
00178         for( char *p = exename + len - 1; p > exename; p-- ){
00179             if( *p == '.' ){
00180                 if( '0' <= p[-1] && p[-1] <= '6' )
00181                     m_fi.m_nCharCode = p[-1] - '0';
00182                 break;
00183             }
00184         }
00185     }
00186
00187
00188     TCHAR   szPath[_MAX_PATH + 1];
00189     bool    bFind = false;
00190     bool    bParseOptDisabled = false;  // 2007.09.09 genta オプション解析を行わなず，ファイル名として扱う
00191     int     nPos;
00192     int     i, j;
00193 //  WIN32_FIND_DATA w32fd;
00194 //  HANDLE          hFind;
00195     if( m_pszCmdLineSrc[0] != '-' ){
00196         memset( (char*)szPath, 0, sizeof( szPath ) );
00197         i = 0;
00198         j = 0;
00199         for( ; i < sizeof( szPath ) - 1 && i <= (int)lstrlen(m_pszCmdLineSrc); ++i ){
00200             if( m_pszCmdLineSrc[i] != ' ' && m_pszCmdLineSrc[i] != '\0' ){
00201                 szPath[j] = m_pszCmdLineSrc[i];
00202                 ++j;
00203                 continue;
00204             }
00205             /* ファイルの存在と、ファイルかどうかをチェック */
00206             if( -1 != _access( szPath, 0 ) ){
00207 //? 2000.01.18 システム属性のファイルが開けない問題
00208 //?             hFind = ::FindFirstFile( szPath, &w32fd );
00209 //?             ::FindClose( hFind );
00210 //?             if( w32fd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM ||
00211 //?                 w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
00212 //?             }else{
00213                     bFind = true;
00214                     break;
00215 //?             }
00216             }
00217             szPath[j] = m_pszCmdLineSrc[i];
00218             ++j;
00219         }
00220     }
00221     if( bFind ){
00222         strcpy( m_fi.m_szPath, szPath );    /* ファイル名 */
00223         nPos = j + 1;
00224     }else{
00225         nPos = 0;
00226     }
00227     LPSTR pszCmdLineWork = new char[lstrlen( m_pszCmdLineSrc ) + 1];
00228     strcpy( pszCmdLineWork, m_pszCmdLineSrc );
00229     int nCmdLineWorkLen = lstrlen( pszCmdLineWork );
00230     LPSTR pszToken = my_strtok( pszCmdLineWork, nCmdLineWorkLen, &nPos, " " );
00231     while( pszToken != NULL ){
00232 #ifdef _DEBUG
00233     MYTRACE( "OPT=[%s]\n", pszToken );
00234 #endif
00235         //  2007.09.09 genta オプション判定ルール変更．オプション解析停止と""で囲まれたオプションを考慮
00236         if( !bFind && ( bParseOptDisabled ||
00237             ! (pszToken[0] == '-' || pszToken[0] == '"' && pszToken[1] == '-' ) )){
00238             if( pszToken[0] == '\"' ){
00239                 CMemory cmWork;
00240                 //  Nov. 3, 2005 genta
00241                 //  末尾のクォーテーションが無い場合を考慮して，
00242                 //  最後がダブルクォートの場合のみ取り除く
00243                 //  ファイル名には使えない文字なのでファイル名に含まれている場合は考慮不要
00244                 //  またSHIFT-JISの2バイト目の考慮も不要
00245                 //  Nov. 27, 2005 genta
00246                 //  引数がダブルクォート1つの場合に，その1つを最初と最後の1つずつと
00247                 //  見間違えて，インデックス-1にアクセスしてしまうのを防ぐために長さをチェックする
00248                 //  ファイル名の後ろにあるOptionを解析するため，ループは継続
00249                 int len = lstrlen( pszToken + 1 );
00250                 if( len > 0 ){
00251                     cmWork.SetData( &pszToken[1], len - ( pszToken[len] == '"' ? 1 : 0 ));
00252                     cmWork.Replace( "\"\"", "\"" );
00253                     strcpy( m_fi.m_szPath, cmWork.GetPtr() );   /* ファイル名 */
00254                 }
00255                 else {
00256                     m_fi.m_szPath[0] = '\0';
00257                 }
00258             }else{
00259                 strcpy( m_fi.m_szPath, pszToken );                          /* ファイル名 */
00260             }
00261
00262             // Nov. 11, 2005 susu
00263             // 不正なファイル名のままだとファイル保存時ダイアログが出なくなるので
00264             // 簡単なファイルチェックを行うように修正
00265             if (!memcmp(m_fi.m_szPath, "file:///", 8)) {
00266                 char tmp_str[_MAX_PATH + 1];
00267                 strcpy(tmp_str, &(m_fi.m_szPath[8]));
00268                 strcpy(m_fi.m_szPath, tmp_str);
00269             }
00270             int len = strlen(m_fi.m_szPath);
00271             for (int i = 0; i < len ; i ++) {
00272                 if ( (m_fi.m_szPath[i] == '<' ||    //  0x3C
00273                       m_fi.m_szPath[i] == '>' ||    //  0x3E
00274                       m_fi.m_szPath[i] == '?' ||    //  0x3F
00275                       m_fi.m_szPath[i] == '"' ||    //  0x22
00276                       m_fi.m_szPath[i] == '|' ||    //  0x7C
00277                       m_fi.m_szPath[i] == '*' ||    //  0x2A
00278                       0
00279                      ) &&
00280                     ( i ==0 || (i > 0 && ! _IS_SJIS_1( (unsigned char)(m_fi.m_szPath[i - 1] )) ))){
00281                         char msg_str[_MAX_PATH + 1];
00282                         sprintf( msg_str, "%s\r\n上記のファイル名は不正です。ファイル名に \\ / : * ? \" < > | の文字は使えません。 ", m_fi.m_szPath );
00283                         MessageBox( NULL, msg_str, "FileNameError", MB_OK);
00284                         m_fi.m_szPath[0] = '\0';
00285                         break;
00286                 }
00287             }
00288
00289         }else{
00290             int qlen = 0;
00291             if( *pszToken == '"' ){
00292                 ++pszToken; // 2007.09.09 genta 先頭の"はスキップ
00293                 qlen = 1;
00294             }
00295             ++pszToken; //  先頭の'-'はskip
00296             char *arg;
00297             switch( CheckCommandLine( pszToken, qlen, &arg ) ){
00298             case CMDLINEOPT_X: //   X
00299                 /* 行桁指定を1開始にした */
00300                 m_fi.m_nX = AtoiOptionInt( arg ) - 1;
00301                 break;
00302             case CMDLINEOPT_Y:  //  Y
00303                 m_fi.m_nY = AtoiOptionInt( arg ) - 1;
00304                 break;
00305             case CMDLINEOPT_VX: // VX
00306                 /* 行桁指定を1開始にした */
00307                 m_fi.m_nViewLeftCol = AtoiOptionInt( arg ) - 1;
00308                 break;
00309             case CMDLINEOPT_VY: //  VY
00310                 /* 行桁指定を1開始にした */
00311                 m_fi.m_nViewTopLine = AtoiOptionInt( arg ) - 1;
00312                 break;
00313             case CMDLINEOPT_SX: //  SX
00314                 m_fi.m_nWindowSizeX = AtoiOptionInt( arg ) - 1;
00315                 break;
00316             case CMDLINEOPT_SY: //  SY
00317                 m_fi.m_nWindowSizeY = AtoiOptionInt( arg ) - 1;
00318                 break;
00319             case CMDLINEOPT_WX: //  WX
00320                 m_fi.m_nWindowOriginX = AtoiOptionInt( arg );
00321                 break;
00322             case CMDLINEOPT_WY: //  WY
00323                 m_fi.m_nWindowOriginY = AtoiOptionInt( arg );
00324                 break;
00325             case CMDLINEOPT_TYPE:   //  TYPE
00326                 //  Mar. 7, 2002 genta
00327                 //  ファイルタイプの強制指定
00328                 strncpy( m_fi.m_szDocType, arg, MAX_DOCTYPE_LEN );
00329                 m_fi.m_szDocType[ MAX_DOCTYPE_LEN ]= '\0';
00330                 break;
00331             case CMDLINEOPT_CODE:   //  CODE
00332                 m_fi.m_nCharCode = AtoiOptionInt( arg );
00333                 break;
00334             case CMDLINEOPT_R:  //  R
00335                 m_bReadOnly = true;
00336                 break;
00337             case CMDLINEOPT_NOWIN:  //  NOWIN
00338                 m_bNoWindow = true;
00339                 break;
00340             case CMDLINEOPT_WRITEQUIT:  //  WRITEQUIT   // 2007.05.19 ryoji sakuext用に追加
00341                 m_bWriteQuit = true;
00342                 m_bNoWindow = true; // 2007.09.05 ryoji -WQを指定されたら-NOWINも指定されたとして扱う
00343                 break;
00344             case CMDLINEOPT_GREPMODE:   //  GREPMODE
00345                 m_bGrepMode = true;
00346                 break;
00347             case CMDLINEOPT_GREPDLG:    //  GREPDLG
00348                 m_bGrepDlg = true;
00349                 break;
00350             case CMDLINEOPT_GKEY:   //  GKEY
00351                 //  前後の""を取り除く
00352                 m_gi.cmGrepKey.SetData( arg + 1,  lstrlen( arg ) - 2 );
00353                 m_gi.cmGrepKey.Replace( "\"\"", "\"" );
00354                 break;
00355             case CMDLINEOPT_GFILE:  //  GFILE
00356                 //  前後の""を取り除く
00357                 m_gi.cmGrepFile.SetData( arg + 1,  lstrlen( arg ) - 2 );
00358                 m_gi.cmGrepFile.Replace( "\"\"", "\"" );
00359                 break;
00360             case CMDLINEOPT_GFOLDER:    //  GFOLDER
00361                 m_gi.cmGrepFolder.SetData( arg + 1,  lstrlen( arg ) - 2 );
00362                 m_gi.cmGrepFolder.Replace( "\"\"", "\"" );
00363                 break;
00364             case CMDLINEOPT_GOPT:   //  GOPT
00365                 for( ; *arg != '\0' ; ++arg ){
00366                     switch( *arg ){
00367                     case 'S':   /* サブフォルダからも検索する */
00368                         m_gi.bGrepSubFolder = true; break;
00369                     case 'L':   /* 英大文字と英小文字を区別する */
00370                         m_gi.bGrepNoIgnoreCase = true;  break;
00371                     case 'R':   /* 正規表現 */
00372                         m_gi.bGrepRegularExp = true;    break;
00373                     case 'K':   /* 文字コード自動判別 */
00374                         // 2002/09/21 Moca 互換性保持のための処理
00375                         m_gi.nGrepCharSet = CODE_AUTODETECT;    break;
00376                     case 'P':   /* 行を出力するか該当部分だけ出力するか */
00377                         m_gi.bGrepOutputLine = true;    break;
00378                     case 'W':   /* 単語単位で探す */
00379                         m_gi.bGrepWordOnly = true;  break;
00380                     case '1':   /* Grep: 出力形式 */
00381                         m_gi.nGrepOutputStyle = 1;  break;
00382                     case '2':   /* Grep: 出力形式 */
00383                         m_gi.nGrepOutputStyle = 2;  break;
00384                     }
00385                 }
00386                 break;
00387             // 2002/09/21 Moca Grepでの文字コードセット 追加
00388             case CMDLINEOPT_GCODE:
00389                 m_gi.nGrepCharSet = AtoiOptionInt( arg );   break;
00390             case CMDLINEOPT_GROUP:  // GROUP    // 2007.06.26 ryoji
00391                 m_nGroup = AtoiOptionInt( arg );
00392                 break;
00393             case CMDLINEOPT_DEBUGMODE:
00394                 m_bDebugMode = true;
00395                 break;
00396             case CMDLINEOPT_NOMOREOPT:  // 2007.09.09 genta これ以降引数無効
00397                 bParseOptDisabled = true;
00398                 break;
00399             }
00400         }
00401         pszToken = my_strtok( pszCmdLineWork, nCmdLineWorkLen, &nPos, " " );
00402     }
00403     delete [] pszCmdLineWork;
00404
00405     /* ファイル名 */
00406     if( '\0' != m_fi.m_szPath[0] ){
00407         /* ショートカット(.lnk)の解決 */
00408         if( TRUE == ResolveShortcutLink( NULL, m_fi.m_szPath, szPath ) ){
00409             strcpy( m_fi.m_szPath, szPath );
00410         }
00411         /* ロングファイル名を取得する */
00412         if( TRUE == ::GetLongFileName( m_fi.m_szPath, szPath ) ){
00413             strcpy( m_fi.m_szPath, szPath );
00414         }
00415
00416         /* MRUから情報取得 */
00417
00418     }
00419
00420     return;
00421 }
00422
00426 CCommandLine* CCommandLine::Instance(LPSTR cmd)
00427 {
00428         if( !_instance ){
00429             _instance = new CCommandLine(cmd);
00430         }
00431         return _instance;
00432 }
00433
00439 CCommandLine::CCommandLine(LPSTR cmd) :
00440     m_pszCmdLineSrc(cmd)
00441 {
00442     m_bGrepMode             = false;
00443     m_bGrepDlg              = false;
00444     m_bDebugMode            = false;
00445     m_bNoWindow             = false;
00446     m_bWriteQuit            = false;
00447     m_gi.bGrepSubFolder     = false;
00448     m_gi.bGrepNoIgnoreCase  = false;
00449     m_gi.bGrepRegularExp    = false;
00450     m_gi.nGrepCharSet       = CODE_SJIS;
00451     m_gi.bGrepOutputLine    = false;
00452     m_gi.bGrepWordOnly      = false;
00453     m_gi.nGrepOutputStyle   = 1;
00454     m_bReadOnly             = false;
00455     m_nGroup                = 0;        // 2007.06.26 ryoji
00456
00457     ParseCommandLine();
00458 }
00459 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CCommandLine.h

CCommandLine.h

コマンドラインパーサ ヘッダファイル [詳細]

#include "global.h"
#include "CShareData.h"

CCommandLine.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CCommandLine
コマンドラインパーサ クラス [詳細]

説明

コマンドラインパーサ ヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CCommandLine.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CCommandLine.h ソースファイル

CCommandLine.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, genta
00010     Copyright (C) 2002, aroka CEditAppより分離
00011     Copyright (C) 2002, genta
00012     Copyright (C) 2005, D.S.Koba
00013     Copyright (C) 2007, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018
00019 #ifndef _CCOMMANDLINE_H_
00020 #define _CCOMMANDLINE_H_
00021
00022 #include "global.h"
00023 #include "CShareData.h" // FileInfo, GrepInfo
00024 class CMemory;
00025 /*-----------------------------------------------------------------------
00026 クラスの宣言
00027 -----------------------------------------------------------------------*/
00028
00032 class SAKURA_CORE_API CCommandLine {
00033 public:
00034     static CCommandLine* Instance(LPSTR cmd=NULL);
00035
00036 private:
00037     // 2005-08-24 D.S.Koba 引数削除
00038     void ParseCommandLine( void );
00039
00040     static int CheckCommandLine(
00041
00042         LPSTR  str,
00043         int quotelen,
00044         char** arg
00045     );
00046
00047     // 外から作らせない。
00048     CCommandLine();
00049     CCommandLine(LPSTR cmd);
00050
00055     static int AtoiOptionInt(const char* arg){
00056         return ( arg[0] == '"' || arg[0] == '\'' ) ?
00057             atoi( arg + 1 ) : atoi( arg );
00058     }
00059
00060 // member accessor method
00061 public:
00062     bool IsNoWindow() const {return m_bNoWindow;};
00063     bool IsWriteQuit() const {return m_bWriteQuit;};    // 2007.05.19 ryoji sakuext用に追加
00064     bool IsGrepMode() const {return m_bGrepMode;};
00065     bool IsGrepDlg() const {return m_bGrepDlg;};
00066     bool IsDebugMode() const {return m_bDebugMode;};
00067     bool IsReadOnly() const {return m_bReadOnly;};
00068     bool GetFileInfo(FileInfo& fi) const {fi = m_fi;return true;};
00069     bool GetGrepInfo(GrepInfo& gi) const {gi = m_gi;return true;};
00070     int GetGroupId() const {return m_nGroup;};  // 2007.06.26 ryoji
00071
00072 // member valiables
00073 private:
00074     static CCommandLine* _instance;
00075     LPCSTR      m_pszCmdLineSrc;
00076     bool        m_bGrepMode;
00077     bool        m_bGrepDlg;         //  Grepダイアログ
00078     bool        m_bDebugMode;
00079     bool        m_bNoWindow;
00080     bool        m_bWriteQuit;
00081     FileInfo    m_fi;
00082     GrepInfo    m_gi;
00083     bool        m_bReadOnly;
00084     int         m_nGroup;
00085 };
00086
00088 #endif /* _CCOMMANDLINE_H_ */
00089
00090
00091 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CControlProcess.cpp

CControlProcess.cpp

コントロールプロセスクラス [詳細]

#include "stdafx.h"
#include "CControlProcess.h"
#include "CCommandLine.h"
#include "CShareData.h"
#include "Debug.h"
#include "CEditApp.h"
#include "CMemory.h"
#include "etc_uty.h"
#include "sakura_rc.h"
#include <io.h>
#include <tchar.h>
#include "CRunningTimer.h"

CControlProcess.cppのインクルード依存関係図

ソースコードを見る。

説明

コントロールプロセスクラス

作者:
aroka
日付:
2002/01/07 Create

CControlProcess.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CControlProcess.cpp ソースファイル

CControlProcess.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, aroka CProcessより分離, YAZAKI
00010     Copyright (C) 2006, ryoji
00011     Copyright (C) 2007, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017
00018 #include "stdafx.h"
00019 #include "CControlProcess.h"
00020 #include "CCommandLine.h"
00021 #include "CShareData.h"
00022 #include "Debug.h"
00023 #include "CEditApp.h"
00024 #include "CMemory.h"
00025 #include "etc_uty.h"
00026 #include "sakura_rc.h"
00027 #include <io.h>
00028 #include <tchar.h>
00029 #include "CRunningTimer.h"
00030
00031
00032
00033 //-------------------------------------------------
00034
00035
00047 bool CControlProcess::Initialize()
00048 {
00049     MY_RUNNINGTIMER( cRunningTimer, "CControlProcess::Initialize" );
00050
00051     // 旧バージョン（1.2.104.1以前）との互換性：「異なるバージョン...」が二回出ないように
00052     m_hMutex = ::CreateMutex( NULL, FALSE, GSTR_MUTEX_SAKURA );
00053     if( NULL == m_hMutex ){
00054         ::MessageBeep( MB_ICONSTOP );
00055 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00056             _T("CreateMutex()失敗。\n終了します。") );
00057         return false;
00058     }
00059
00060     // 初期化完了イベントを作成する
00061     m_hEventCPInitialized = ::CreateEvent( NULL, TRUE, FALSE, GSTR_EVENT_SAKURA_CP_INITIALIZED );
00062     if( NULL == m_hEventCPInitialized )
00063     {
00064         ::MessageBeep( MB_ICONSTOP );
00065 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00066             _T("CreateEvent()失敗。\n終了します。") );
00067         return false;
00068     }
00069
00070     /* コントロールプロセスの目印 */
00071     m_hMutexCP = ::CreateMutex( NULL, TRUE, GSTR_MUTEX_SAKURA_CP );
00072     if( NULL == m_hMutexCP ){
00073         ::MessageBeep( MB_ICONSTOP );
00074 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00075             _T("CreateMutex()失敗。\n終了します。") );
00076         return false;
00077     }
00078     if( ERROR_ALREADY_EXISTS == ::GetLastError() ){
00079         return false;
00080     }
00081
00082     /* 共有メモリを初期化 */
00083     if ( CProcess::Initialize() == false ){
00084         return false;
00085     }
00086
00087     /* 共有データのロード */
00088     // 2007.05.19 ryoji 「設定を保存して終了する」オプション処理（sakuext連携用）を追加
00089     TCHAR szIniFile[_MAX_PATH];
00090     m_cShareData.LoadShareData();
00091     m_cShareData.GetIniFileName( szIniFile );   // 出力iniファイル名
00092     if( _taccess( szIniFile, 0 ) == -1 || CCommandLine::Instance()->IsWriteQuit() ){
00093         /* レジストリ項目 作成 */
00094         m_cShareData.SaveShareData();
00095         if( CCommandLine::Instance()->IsWriteQuit() ){
00096             return false;
00097         }
00098     }
00099
00100     MY_TRACETIME( cRunningTimer, "Before new CEditApp" );
00101
00102     /* タスクトレイにアイコン作成 */
00103     m_pcEditApp = new CEditApp;
00104
00105     MY_TRACETIME( cRunningTimer, "After new CEditApp" );
00106
00107     if( NULL == ( m_hWnd = m_pcEditApp->Create( m_hInstance ) ) ){
00108         ::MessageBeep( MB_ICONSTOP );
00109 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST,
00110             GSTR_APPNAME, _T("ウィンドウの作成に失敗しました。\n起動できません。") );
00111         return false;
00112     }
00113     m_pShareData->m_hwndTray = m_hWnd;
00114
00115     // 初期化完了イベントをシグナル状態にする
00116     if( !::SetEvent( m_hEventCPInitialized ) ){
00117         ::MessageBeep( MB_ICONSTOP );
00118 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00119             _T("SetEvent()失敗。\n終了します。") );
00120         return false;
00121     }
00122
00123     return true;
00124 }
00125
00132 bool CControlProcess::MainLoop()
00133 {
00134     if( NULL != m_pcEditApp && NULL != m_hWnd ){
00135         m_pcEditApp->MessageLoop(); /* メッセージループ */
00136         return true;
00137     }
00138     return false;
00139 }
00140
00148 void CControlProcess::Terminate()
00149 {
00150     m_pShareData->m_hwndTray = NULL;
00151 }
00152
00153 CControlProcess::~CControlProcess()
00154 {
00155     if( m_pcEditApp ){
00156         delete m_pcEditApp;
00157     }
00158     if( m_hEventCPInitialized ){
00159         ::ResetEvent( m_hEventCPInitialized );
00160     }
00161     ::CloseHandle( m_hEventCPInitialized );
00162     if( m_hMutexCP ){
00163         ::ReleaseMutex( m_hMutexCP );
00164     }
00165     ::CloseHandle( m_hMutexCP );
00166     // 旧バージョン（1.2.104.1以前）との互換性：「異なるバージョン...」が二回出ないように
00167     if( m_hMutex ){
00168         ::ReleaseMutex( m_hMutex );
00169     }
00170     ::CloseHandle( m_hMutex );
00171 };
00172
00173 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CControlProcess.h

CControlProcess.h

コントロールプロセスクラスヘッダファイル [詳細]

#include "global.h"
#include "CShareData.h"
#include "CProcess.h"

CControlProcess.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CControlProcess
コントロールプロセスクラス [詳細]

説明

コントロールプロセスクラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CControlProcess.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CControlProcess.h ソースファイル

CControlProcess.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, aroka 新規作成, YAZAKI
00009     Copyright (C) 2006, ryoji
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 #ifndef _CCONTROLPROCESS_H_
00016 #define _CCONTROLPROCESS_H_
00017
00018 #include "global.h"
00019 #include "CShareData.h"
00020 #include "CProcess.h"
00021
00022 class CEditApp;
00023
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00034 class SAKURA_CORE_API CControlProcess : public CProcess {
00035 public:
00036     CControlProcess( HINSTANCE hInstance, LPSTR lpCmdLine ) :
00037         CProcess( hInstance, lpCmdLine ),
00038         m_pcEditApp( 0 ),
00039         // 2006.04.10 ryoji 同期オブジェクトのハンドルを初期化
00040         m_hMutex( NULL ),
00041         m_hMutexCP( NULL ),
00042         m_hEventCPInitialized( NULL )
00043     {}
00044
00045     virtual ~CControlProcess();
00046 protected:
00047     CControlProcess();
00048     virtual bool Initialize();
00049     virtual bool MainLoop();
00050     virtual void Terminate();
00051
00052 private:
00053     HANDLE          m_hMutex;
00054     HANDLE          m_hMutexCP;
00055     HANDLE          m_hEventCPInitialized;  // コントロールプロセス初期化完了イベント 2006.04.10 ryoji
00056     CEditApp*       m_pcEditApp;
00057 };
00058
00059
00061 #endif /* _CCONTROLPROCESS_H_ */
00062
00063 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDialog.cpp

CDialog.cpp

Dialog Boxの基底クラス [詳細]

#include "stdafx.h"
#include "CDialog.h"
#include "etc_uty.h"
#include "debug.h"

CDialog.cppのインクルード依存関係図

ソースコードを見る。

関数

INT_PTR CALLBACK | MyDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

const DWORD | p_helpids []

説明

Dialog Boxの基底クラス

作者:
Norio Nakatani

CDialog.cpp で定義されています。

関数

INT_PTR CALLBACK MyDialogProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CDialog.cpp の 24 行で定義されています。

参照先 CDialog::DispatchEvent()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 CDialog::DoModal()・CDialog::DoModeless().

変数

const DWORD p_helpids[]

初期値:

 {
    0, 0
}

CDialog.cpp の 428 行で定義されています。

参照元 CDlgInput1::DispatchEvent()・CPropCommon::DispatchEvent_p2()・CPropCommon::DispatchEvent_p9()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・CDlgWinSize::GetHelpIdTable()・CDlgTypeList::GetHelpIdTable()・CDlgTagsMake::GetHelpIdTable()・CDlgTagJumpList::GetHelpIdTable()・CDlgSameColor::GetHelpIdTable()・CDlgReplace::GetHelpIdTable()・CDlgProperty::GetHelpIdTable()・CDlgPrintSetting::GetHelpIdTable()・CDlgPrintPage::GetHelpIdTable()・CDlgKeywordSelect::GetHelpIdTable()・CDlgJump::GetHelpIdTable()・CDlgGrep::GetHelpIdTable()・CDlgFuncList::GetHelpIdTable()・CDlgFind::GetHelpIdTable()・CDlgFavorite::GetHelpIdTable()・CDlgExec::GetHelpIdTable()・CDlgDiff::GetHelpIdTable()・CDlgCtrlCode::GetHelpIdTable()・CDlgCompare::GetHelpIdTable()・CDlgCancel::GetHelpIdTable()・CDlgAbout::GetHelpIdTable()・CDialog::GetHelpIdTable().

Sakura-Editorに対してSat Oct 27 02:15:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDialog.cpp ソースファイル

CDialog.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009     Copyright (C) 2001, jepro, Stonee
00010     Copyright (C) 2002, aroka, YAZAKI
00011     Copyright (C) 2003, MIK, KEITA
00012     Copyright (C) 2005, MIK
00013     Copyright (C) 2006, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018 #include "stdafx.h"
00019 #include "CDialog.h"
00020 #include "etc_uty.h"
00021 #include "debug.h"
00022
00023 /* ダイアログプロシージャ */
00024 INT_PTR CALLBACK MyDialogProc(
00025     HWND hwndDlg,   // handle to dialog box
00026     UINT uMsg,      // message
00027     WPARAM wParam,  // first message parameter
00028     LPARAM lParam   // second message parameter
00029 )
00030 {
00031     CDialog* pCDialog;
00032     switch( uMsg ){
00033     case WM_INITDIALOG:
00034         pCDialog = ( CDialog* )lParam;
00035         if( NULL != pCDialog ){
00036             return pCDialog->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00037         }else{
00038             return FALSE;
00039         }
00040     default:
00041         // Modified by KEITA for WIN64 2003.9.6
00042         pCDialog = ( CDialog* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00043         if( NULL != pCDialog ){
00044             return pCDialog->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00045         }else{
00046             return FALSE;
00047         }
00048     }
00049 }
00050
00051
00056 CDialog::CDialog()
00057 {
00058 //  MYTRACE( "CDialog::CDialog()\n" );
00059     /* 共有データ構造体のアドレスを返す */
00060     m_pShareData = CShareData::getInstance()->GetShareData();
00061
00062     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00063     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00064     m_hWnd  = NULL;         /* このダイアログのハンドル */
00065     m_hwndSizeBox = NULL;
00066     m_lParam = NULL;
00067     m_nShowCmd = SW_SHOW;
00068     m_xPos = -1;
00069     m_yPos = -1;
00070     m_nWidth = -1;
00071     m_nHeight = -1;
00072
00073     /* ヘルプファイルのフルパスを返す */
00074 	::GetHelpFilePath( m_szHelpFile );
00075
00076     return;
00077
00078 }
00079 CDialog::~CDialog()
00080 {
00081 //  MYTRACE( "CDialog::~CDialog()\n" );
00082     CloseDialog( 0 );
00083     return;
00084 }
00085
00087
00091 INT_PTR CDialog::DoModal( HINSTANCE hInstance, HWND hwndParent, int nDlgTemplete, LPARAM lParam )
00092 {
00093     m_bInited = FALSE;
00094     m_bModal = TRUE;
00095     m_hInstance = hInstance;    /* アプリケーションインスタンスのハンドル */
00096     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00097     m_lParam = lParam;
00098     return ::DialogBoxParam(
00099         m_hInstance,
00100         MAKEINTRESOURCE( nDlgTemplete ),
00101         m_hwndParent,
00102         (DLGPROC)MyDialogProc,
00103         (LPARAM)this
00104     );
00105 }
00106
00108
00112 HWND CDialog::DoModeless( HINSTANCE hInstance, HWND hwndParent, int nDlgTemplete, LPARAM lParam, int nCmdShow )
00113 {
00114     m_bInited = FALSE;
00115     m_bModal = FALSE;
00116     m_hInstance = hInstance;    /* アプリケーションインスタンスのハンドル */
00117     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00118     m_lParam = lParam;
00119     m_hWnd = ::CreateDialogParam(
00120         m_hInstance,
00121         MAKEINTRESOURCE( nDlgTemplete ),
00122         m_hwndParent,
00123         (DLGPROC)MyDialogProc,
00124         (LPARAM)this
00125     );
00126     if( NULL != m_hWnd ){
00127         ::ShowWindow( m_hWnd, nCmdShow );
00128     }
00129     return m_hWnd;
00130 }
00131
00132 void CDialog::CloseDialog( int nModalRetVal )
00133 {
00134     if( NULL != m_hWnd ){
00135         if( m_bModal ){
00136             ::EndDialog( m_hWnd, nModalRetVal );
00137         }else{
00138             ::DestroyWindow( m_hWnd );
00139         }
00140         m_hWnd = NULL;
00141     }
00142     return;
00143 }
00144
00145
00146
00147 BOOL CDialog::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00148 {
00149     m_hWnd = hwndDlg;
00150     // Modified by KEITA for WIN64 2003.9.6
00151 	::SetWindowLongPtr( m_hWnd, DWLP_USER, lParam );
00152     /* ダイアログデータの設定 */
00153     SetData();
00154
00155 #if 0
00156     /* ダイアログのサイズ、位置の再現 */
00157     if( -1 != m_xPos && -1 != m_yPos ){
00158         ::SetWindowPos( m_hWnd, NULL, m_xPos, m_yPos, 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00159 #ifdef _DEBUG
00160         MYTRACE( "CDialog::OnInitDialog() m_xPos=%d m_yPos=%d\n", m_xPos, m_yPos );
00161 #endif
00162     }
00163     if( -1 != m_nWidth && -1 != m_nHeight ){
00164         ::SetWindowPos( m_hWnd, NULL, 0, 0, m_nWidth, m_nHeight, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00165     }
00166 #endif
00167
00168     if( -1 != m_xPos && -1 != m_yPos ){
00169         /* ウィンドウ位置・サイズを再現 */
00170
00171         // 2006.06.09 ryoji
00172         // モニタのワーク領域よりも左右上下に１ドット小さい領域内に全体が収まるように位置調整する
00173         //
00174         // note: ダイアログをワーク領域境界にぴったり合わせようとすると、
00175         //       強制的に親の中央に移動させられてしまうときがある
00176         //      （マルチモニタ環境で親が非プライマリモニタにある場合だけ？）
00177         //       状況に合わせて処理を変えるのは厄介なので、一律、１ドットの空きを入れる
00178
00179         RECT rc;
00180         RECT rcWork;
00181         rc.left = m_xPos;
00182         rc.top = m_yPos;
00183         rc.right = m_xPos + m_nWidth;
00184         rc.bottom = m_yPos + m_nHeight;
00185         GetMonitorWorkRect(&rc, &rcWork);
00186         rcWork.top += 1;
00187         rcWork.bottom -= 1;
00188         rcWork.left += 1;
00189         rcWork.right -= 1;
00190         if( rc.bottom > rcWork.bottom ){
00191             rc.top -= (rc.bottom - rcWork.bottom);
00192             rc.bottom = rcWork.bottom;
00193         }
00194         if( rc.right > rcWork.right ){
00195             rc.left -= (rc.right - rcWork.right);
00196             rc.right = rcWork.right;
00197         }
00198         if( rc.top < rcWork.top ){
00199             rc.bottom += (rcWork.top - rc.top);
00200             rc.top = rcWork.top;
00201         }
00202         if( rc.left < rcWork.left ){
00203             rc.right += (rcWork.left - rc.left);
00204             rc.left = rcWork.left;
00205         }
00206         m_xPos = rc.left;
00207         m_yPos = rc.top;
00208         m_nWidth = rc.right - rc.left;
00209         m_nHeight = rc.bottom - rc.top;
00210
00211         WINDOWPLACEMENT cWindowPlacement;
00212         cWindowPlacement.length = sizeof( WINDOWPLACEMENT );
00213         cWindowPlacement.showCmd = m_nShowCmd;  //  最大化・最小化
00214         cWindowPlacement.rcNormalPosition.left = m_xPos;
00215         cWindowPlacement.rcNormalPosition.top = m_yPos;
00216         cWindowPlacement.rcNormalPosition.right = m_nWidth + m_xPos;
00217         cWindowPlacement.rcNormalPosition.bottom = m_nHeight + m_yPos;
00218         ::SetWindowPlacement( m_hWnd, &cWindowPlacement );
00219     }
00220     m_bInited = TRUE;
00221     return TRUE;
00222 }
00223
00224 BOOL CDialog::OnDestroy( void )
00225 {
00226     /* ウィンドウ位置・サイズを記憶 */
00227     WINDOWPLACEMENT cWindowPlacement;
00228     cWindowPlacement.length = sizeof( WINDOWPLACEMENT );
00229     if (::GetWindowPlacement( m_hWnd, &cWindowPlacement )){
00230         m_nShowCmd = cWindowPlacement.showCmd;  //  最大化・最小化
00231         m_xPos = cWindowPlacement.rcNormalPosition.left;
00232         m_yPos = cWindowPlacement.rcNormalPosition.top;
00233         m_nWidth = cWindowPlacement.rcNormalPosition.right - cWindowPlacement.rcNormalPosition.left;
00234         m_nHeight = cWindowPlacement.rcNormalPosition.bottom - cWindowPlacement.rcNormalPosition.top;
00235     }
00236     /* 破棄 */
00237     if( NULL != m_hwndSizeBox ){
00238         ::DestroyWindow( m_hwndSizeBox );
00239         m_hwndSizeBox = NULL;
00240     }
00241     m_hWnd = NULL;
00242     return TRUE;
00243 }
00244
00245
00246 BOOL CDialog::OnBnClicked( int wID )
00247 {
00248     switch( wID ){
00249     case IDCANCEL:
00250         CloseDialog( 0 );
00251         return TRUE;
00252     case IDOK:
00253         CloseDialog( 0 );
00254         return TRUE;
00255     }
00256     return FALSE;
00257 }
00258
00259
00260 BOOL CDialog::OnSize( WPARAM wParam, LPARAM lParam )
00261 {
00262     RECT    rc;
00263     ::GetWindowRect( m_hWnd, &rc );
00264
00265     /* ダイアログのサイズの記憶 */
00266     m_xPos = rc.left;
00267     m_yPos = rc.top;
00268     m_nWidth = rc.right - rc.left;
00269     m_nHeight = rc.bottom - rc.top;
00270
00271     /* サイズボックスの移動 */
00272     if( NULL != m_hwndSizeBox ){
00273         ::GetClientRect( m_hWnd, &rc );
00274 //      ::SetWindowPos( m_hwndSizeBox, NULL,
00275 //  Sept. 17, 2000 JEPRO_16thdot アイコンの16dot目が表示されるように次行を変更する必要ある？
00276 //  Jan. 12, 2001 JEPRO (directed by stonee) 15を16に変更するとアウトライン解析のダイアログの右下にある
00277 //  グリップサイズに`遊び'ができてしまい(移動する！)、ダイアログを大きくできないという障害が発生するので
00278 //  変更しないことにした(要するに原作版に戻しただけ)
00279 //          rc.right - rc.left - 15, rc.bottom - rc.top - 15,
00280 //          13, 13,
00281 //          SWP_NOOWNERZORDER | SWP_NOZORDER
00282 //      );
00283
00284 //  Jan. 12, 2001 Stonee (suggested by genta)
00285 //      "13"という固定値ではなくシステムから取得したスクロールバーサイズを使うように修正
00286         ::SetWindowPos( m_hwndSizeBox, NULL,
00287         rc.right - rc.left - GetSystemMetrics(SM_CXVSCROLL), //<-- stonee
00288         rc.bottom - rc.top - GetSystemMetrics(SM_CYHSCROLL), //<-- stonee
00289         GetSystemMetrics(SM_CXVSCROLL), //<-- stonee
00290         GetSystemMetrics(SM_CYHSCROLL), //<-- stonee
00291         SWP_NOOWNERZORDER | SWP_NOZORDER
00292         );
00293
00294         //  SizeBox問題テスト
00295         if( wParam == SIZE_MAXIMIZED ){
00296             ::ShowWindow( m_hwndSizeBox, SW_HIDE );
00297         }else{
00298             ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00299         }
00300         ::InvalidateRect( m_hwndSizeBox, NULL, TRUE );
00301     }
00302     return FALSE;
00303
00304 }
00305
00306 BOOL CDialog::OnMove( WPARAM wParam, LPARAM lParam )
00307 {
00308
00309     /* ダイアログの位置の記憶 */
00310     if( FALSE == m_bInited ){
00311         return TRUE;
00312     }
00313     RECT    rc;
00314     ::GetWindowRect( m_hWnd, &rc );
00315
00316     /* ダイアログのサイズの記憶 */
00317     m_xPos = rc.left;
00318     m_yPos = rc.top;
00319     m_nWidth = rc.right - rc.left;
00320     m_nHeight = rc.bottom - rc.top;
00321 #ifdef _DEBUG
00322         MYTRACE( "CDialog::OnMove() m_xPos=%d m_yPos=%d\n", m_xPos, m_yPos );
00323 #endif
00324     return TRUE;
00325
00326 }
00327
00328
00329
00330 void CDialog::CreateSizeBox( void )
00331 {
00332     /* サイズボックス */
00333     m_hwndSizeBox = ::CreateWindowEx(
00334         WS_EX_CONTROLPARENT,                                /* no extended styles */
00335         "SCROLLBAR",                                        /* scroll bar control class */
00336         (LPSTR) NULL,                                       /* text for window title bar */
00337         WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00338         0,                                                  /* horizontal position */
00339         0,                                                  /* vertical position */
00340         0,                                                  /* width of the scroll bar */
00341         0,                                                  /* default height */
00342         m_hWnd/*hdlg*/,                                     /* handle of main window */
00343         (HMENU) NULL,                                       /* no menu for a scroll bar */
00344         m_hInstance,                                        /* instance owning this window */
00345         (LPVOID) NULL                                       /* pointer not needed */
00346     );
00347     ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00348
00349 }
00350
00351
00352
00353
00354
00355
00356 /* ダイアログのメッセージ処理 */
00357 INT_PTR CDialog::DispatchEvent( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00358 {
00359 //#ifdef _DEBUG
00360 //  MYTRACE( "CDialog::DispatchEvent() uMsg == %xh\n", uMsg );
00361 //#endif
00362     switch( uMsg ){
00363     case WM_INITDIALOG: return OnInitDialog( hwndDlg, wParam, lParam );
00364     case WM_DESTROY:    return OnDestroy();
00365     case WM_COMMAND:    return OnCommand( wParam, lParam );
00366     case WM_NOTIFY:     return OnNotify( wParam, lParam );
00367     case WM_SIZE:
00368         m_hWnd = hwndDlg;
00369         return OnSize( wParam, lParam );
00370     case WM_MOVE:
00371         m_hWnd = hwndDlg;
00372         return OnMove( wParam, lParam );
00373     case WM_DRAWITEM:   return OnDrawItem( wParam, lParam );
00374     case WM_TIMER:      return OnTimer( wParam );
00375     case WM_KEYDOWN:    return OnKeyDown( wParam, lParam );
00376     case WM_KILLFOCUS:  return OnKillFocus( wParam, lParam );
00377     case WM_ACTIVATE:   return OnActivate( wParam, lParam );    //@@@ 2003.04.08 MIK
00378     case WM_VKEYTOITEM: return OnVKeyToItem( wParam, lParam );
00379     case WM_CHARTOITEM: return OnCharToItem( wParam, lParam );
00380 //  case WM_NEXTDLGCTL: return OnNextDlgCtl( wParam, lParam );
00381     case WM_HELP:       return OnPopupHelp( wParam, lParam );   //@@@ 2002.01.18 add
00382     case WM_CONTEXTMENU:return OnContextMenu( wParam, lParam ); //@@@ 2002.01.18 add
00383     }
00384     return FALSE;
00385 }
00386
00387 BOOL CDialog::OnCommand( WPARAM wParam, LPARAM lParam )
00388 {
00389     WORD    wNotifyCode;
00390     WORD    wID;
00391     HWND    hwndCtl;
00392     wNotifyCode = HIWORD(wParam);   /* 通知コード */
00393     wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00394     hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00395     switch( wNotifyCode ){
00396
00397     /* コンボボックス用メッセージ */
00398     case CBN_SELCHANGE: return OnCbnSelChange( hwndCtl, wID );
00399     // @@2005.03.31 MIK タグジャンプDialogで使うので追加
00400     case CBN_EDITCHANGE:    return OnCbnEditChange( hwndCtl, wID );
00401 //  case LBN_SELCHANGE: return OnLbnSelChange( hwndCtl, wID );
00402 //  case CBN_DROPDOWN:  return OnDbnDropDown( hwndCtl, wID );
00403 //  case CBN_CLOSEUP:   return OnDbnCloseUp( hwndCtl, wID );
00404     case LBN_DBLCLK:    return OnLbnDblclk( wID );
00405
00406     case EN_CHANGE:     return OnEditChange( hwndCtl, wID );
00407
00408     /* ボタン／チェックボックスがクリックされた */
00409     case BN_CLICKED:    return OnBnClicked( wID );
00410     }
00411     return FALSE;
00412 }
00413
00414 //@@@ 2002.01.18 add start
00415 BOOL CDialog::OnPopupHelp( WPARAM wPara, LPARAM lParam )
00416 {
00417     HELPINFO *p = (HELPINFO *)lParam;
00418     MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)GetHelpIdTable() ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00419     return TRUE;
00420 }
00421
00422 BOOL CDialog::OnContextMenu( WPARAM wPara, LPARAM lParam )
00423 {
00424     MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)GetHelpIdTable() );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00425     return TRUE;
00426 }
00427
00428 const DWORD p_helpids[] = {
00429     0, 0
00430 };
00431
00432 LPVOID CDialog::GetHelpIdTable(void)
00433 {
00434     return (LPVOID)p_helpids;
00435 }
00436 //@@@ 2002.01.18 add end
00437
00438 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDialog.h

CDialog.h

Dialog Box基底クラスヘッダファイル [詳細]

#include <windows.h>
#include <dbt.h>
#include "CShareData.h"
#include "global.h"
#include "etc_uty.h"

CDialog.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDialog
ダイアログウィンドウを扱うクラス [詳細]

説明

Dialog Box基底クラスヘッダファイル

作者:
Norio Nakatani

CDialog.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDialog.h ソースファイル

CDialog.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, YAZAKI
00009     Copyright (C) 2003, MIK
00010     Copyright (C) 2005, MIK
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 class CDialog;
00018
00019 #ifndef _CDIALOG_H_
00020 #define _CDIALOG_H_
00021
00022 #include <windows.h>
00023 #include <dbt.h>
00024 #include "CShareData.h"
00025 #include "global.h"
00026 #include "etc_uty.h"
00027
00028
00029 /*-----------------------------------------------------------------------
00030 クラスの宣言
00031 -----------------------------------------------------------------------*/
00039 class SAKURA_CORE_API CDialog
00040 {
00041 public:
00042     /*
00043     ||  Constructors
00044     */
00045     CDialog();
00046     virtual ~CDialog();
00047     /*
00048     ||  Attributes & Operations
00049     */
00050     virtual INT_PTR DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* ダイアログのメッセージ処理 */
00051     INT_PTR DoModal( HINSTANCE, HWND, int, LPARAM );    /* モーダルダイアログの表示 */
00052     HWND DoModeless( HINSTANCE, HWND, int, LPARAM, int );   /* モードレスダイアログの表示 */
00053     void CloseDialog( int );
00054
00055     virtual BOOL OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00056     virtual BOOL OnDestroy( void );
00057     virtual BOOL OnNotify( WPARAM wParam, LPARAM lParam ){return FALSE;}
00058     virtual BOOL OnSize( WPARAM wParam, LPARAM lParam );
00059     virtual BOOL OnMove( WPARAM wParam, LPARAM lParam );
00060     virtual BOOL OnDrawItem( WPARAM wParam, LPARAM lParam ){return TRUE;}
00061     virtual BOOL OnTimer( WPARAM wParam ){return TRUE;}
00062     virtual BOOL OnKeyDown( WPARAM wParam, LPARAM lParam ){return TRUE;}
00063     virtual BOOL OnDeviceChange( WPARAM wParam, LPARAM lParam ){return TRUE;}
00064     virtual int GetData( void ){return 1;}/* ダイアログデータの取得 */
00065     virtual void SetData( void ){return;}/* ダイアログデータの設定 */
00066     virtual BOOL OnBnClicked( int );
00067     virtual BOOL OnCbnSelChange( HWND hwndCtl, int wID ){return FALSE;}
00068     virtual BOOL OnCbnEditChange( HWND hwndCtl, int wID ){return FALSE;} // @@2005.03.31 MIK タグジャンプDialog
00069 //  virtual BOOL OnLbnSelChange( HWND hwndCtl, int wID ){return FALSE;}
00070 //  virtual BOOL OnDbnDropDown( HWND hwndCtl, int wID ){return FALSE;}
00071 //  virtual BOOL OnDbnCloseUp( HWND hwndCtl, int wID ){return FALSE;}
00072     virtual BOOL OnEditChange( HWND hwndCtl, int wID ){return FALSE;}
00073
00074     virtual BOOL OnLbnDblclk( int wID ){return FALSE;}
00075     virtual BOOL OnKillFocus( WPARAM wParam, LPARAM lParam ){return FALSE;}
00076     virtual BOOL OnActivate( WPARAM wParam, LPARAM lParam ){return FALSE;}  //@@@ 2003.04.08 MIK
00077     virtual int OnVKeyToItem( WPARAM wParam, LPARAM lParam ){ return -1; }
00078     virtual LRESULT OnCharToItem( WPARAM wParam, LPARAM lParam ){ return -1; }
00079 //  virtual BOOL OnNextDlgCtl( WPARAM wParam, LPARAM lParam ){ return 1; }
00080     virtual BOOL OnPopupHelp( WPARAM, LPARAM ); //@@@ 2002.01.18 add
00081     virtual BOOL OnContextMenu( WPARAM, LPARAM );   //@@@ 2002.01.18 add
00082     virtual LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00083
00084
00085 //  virtual BOOL OnLbnSelChange( HWND, int );
00086
00087
00088
00089     HINSTANCE       m_hInstance;    /* アプリケーションインスタンスのハンドル */
00090     HWND            m_hwndParent;   /* オーナーウィンドウのハンドル */
00091     HWND            m_hWnd;         /* このダイアログのハンドル */
00092     HWND            m_hwndSizeBox;
00093     LPARAM          m_lParam;
00094     BOOL            m_bModal;       /* モーダル ダイアログか */
00095     int             m_nShowCmd;     //  最大化/最小化
00096     int             m_nWidth;
00097     int             m_nHeight;
00098     int             m_xPos;
00099     int             m_yPos;
00100 //  void*           m_pcEditView;
00101     char            m_szHelpFile[_MAX_PATH + 1];
00102     DLLSHAREDATA*   m_pShareData;
00103     BOOL            m_bInited;
00104
00105
00106 protected:
00107     void CreateSizeBox( void );
00108     BOOL OnCommand( WPARAM, LPARAM );
00109
00110 };
00111
00112
00113
00115 #endif /* _CDIALOG_H_ */
00116
00117
00118 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDicMgr.cpp

CDicMgr.cpp

CDicMgrクラス [詳細]

#include "stdafx.h"
#include <stdio.h>
#include "CDicMgr.h"
#include "CMemory.h"
#include "CRunningTimer.h"
#include "etc_uty.h"
#include "my_icmp.h"

CDicMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

CDicMgrクラス

作者:
Norio Nakatani
日付:
1998/11/05 作成

CDicMgr.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDicMgr.cpp ソースファイル

CDicMgr.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, aroka, Moca
00010     Copyright (C) 2003, Moca
00011     Copyright (C) 2006, fon
00012     Copyright (C) 2007, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include <stdio.h>
00020 #include "CDicMgr.h"
00021 #include "CMemory.h" // 2002/2/10 aroka ヘッダ整理
00022 #include "CRunningTimer.h"
00023 #include "etc_uty.h"
00024 #include "my_icmp.h" // 2002/11/30 Moca 追加
00025
00026
00027 CDicMgr::CDicMgr()
00028 {
00029     return;
00030 }
00031
00032
00033
00034
00035 CDicMgr::~CDicMgr()
00036 {
00037     return;
00038 }
00039
00040
00041
00042
00056 BOOL CDicMgr::Search( const char* pszKey, const int nCmpLen, CMemory** ppcmemKey, CMemory** ppcmemMean, const char* pszKeyWordHelpFile, int *pLine )
00057 {
00058 #ifdef _DEBUG
00059     CRunningTimer cRunningTimer( (const char*)"CDicMgr::Search" );
00060 #endif
00061 //  char    szDir[_MAX_PATH];
00062 //  long    lPathLen;
00063     long    i;
00064     FILE*   pFile;
00065     char    szLine[LINEREADBUFSIZE];
00066     char*   pszDelimit = " /// ";
00067     char*   pszWork;
00068     int     nRes;
00069     char*   pszToken;
00070     char*   pszKeySeps = ",\0";
00071
00072
00073     /* 辞書ファイル */
00074     if( 0 >= lstrlen( pszKeyWordHelpFile ) ){
00075         return FALSE;
00076     }
00077     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
00078     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00079     pFile = _tfopen_absini( pszKeyWordHelpFile, "r" );
00080     if( NULL == pFile ){
00081         return FALSE;
00082     }
00083     for(int line=1 ;NULL != fgets( szLine, sizeof(szLine), pFile ); line++ ){   // 2006.04.10 fon
00084         pszWork = strstr( szLine, pszDelimit );
00085         if( NULL != pszWork && szLine[0] != ';' ){
00086             *pszWork = '\0';
00087             pszWork += lstrlen( pszDelimit );
00088
00089             /* 最初のトークンを取得します。 */
00090             pszToken = strtok( szLine, pszKeySeps );
00091             while( NULL != pszToken ){
00092                 nRes = _strnicmp( pszKey, pszToken, nCmpLen );  // 2006.04.10 fon
00093                 if( 0 == nRes ){
00094                     for( i = 0; i < (int)lstrlen(pszWork); ++i ){
00095                         if( pszWork[i] == '\r' ||
00096                             pszWork[i] == '\n' ){
00097                             pszWork[i] = '\0';
00098                             break;
00099                         }
00100                     }
00101                     //キーワードのセット
00102                     *ppcmemKey = new CMemory;   // 2006.04.10 fon
00103                     (*ppcmemKey)->SetDataSz( pszToken );
00104                     //意味のセット
00105                     *ppcmemMean = new CMemory;
00106 //                  (*ppcmemMean)->SetData( pszWork, lstrlen(pszWork) );
00107                     (*ppcmemMean)->SetDataSz( pszWork );
00108
00109                     fclose( pFile );
00110                     *pLine = line;  // 2006.04.10 fon
00111                     return TRUE;
00112                 }
00113                 pszToken = strtok( NULL, pszKeySeps );
00114             }
00115         }
00116     }
00117     fclose( pFile );
00118     return FALSE;
00119 }
00120
00121
00122
00123
00124
00125 /*
00126 ||  入力補完キーワードの検索
00127 ||
00128 ||  ・見つかった候補をすべて返す(改行で区切って返す)
00129 ||  ・指定された候補の最大数を超えると処理を中断する
00130 ||  ・見つかった数を返す
00131 ||
00132 */
00133 int CDicMgr::HokanSearch(
00134             const char* pszKey,
00135             BOOL        bHokanLoHiCase, /*英大文字小文字を同一視する*/
00136             CMemory**   ppcmemKouho,
00137             int         nMaxKouho,  //Max候補数(0==無制限)
00138             const char* pszKeyWordFile
00139 )
00140 {
00141     FILE*   pFile;
00142     char    szLine[1024];
00143     int     nKeyLen;
00144     int     nKouhoNum;
00145     int     nRet;
00146     *ppcmemKouho = NULL;
00147     if( 0 >= lstrlen( pszKeyWordFile ) ){
00148         return 0;
00149     }
00150     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
00151     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00152     pFile = _tfopen_absini( pszKeyWordFile, "r" );
00153     if( NULL == pFile ){
00154         return 0;
00155     }
00156     nKouhoNum = 0;
00157     nKeyLen = lstrlen( pszKey );
00158     while( NULL != fgets( szLine, sizeof(szLine), pFile ) ){
00159         if( nKeyLen > (int)lstrlen( szLine ) ){
00160             continue;
00161         }
00162         if( szLine[0] == ';' ){
00163             continue;
00164         }
00165         if( szLine[nKeyLen] == '\r' || szLine[nKeyLen] == '\n' ){
00166             continue;
00167         }
00168         if( bHokanLoHiCase ){   /* 英大文字小文字を同一視する */
00169             nRet = memicmp( pszKey, szLine, nKeyLen );
00170         }else{
00171             nRet = memcmp( pszKey, szLine, nKeyLen );
00172         }
00173         if( 0 == nRet ){
00174             if( NULL == *ppcmemKouho ){
00175                 *ppcmemKouho = new CMemory;
00176                 (*ppcmemKouho)->SetDataSz( szLine );
00177             }else{
00178                 (*ppcmemKouho)->AppendSz( szLine );
00179             }
00180             ++nKouhoNum;
00181             if( 0 != nMaxKouho && nMaxKouho <= nKouhoNum ){
00182                 break;
00183             }
00184         }
00185     }
00186     fclose( pFile );
00187     return nKouhoNum;
00188 }
00189
00190
00191 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDicMgr.h

CDicMgr.h

CDicMgrクラス定義 [詳細]

#include <windows.h>
#include "global.h"

CDicMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDicMgr

説明

CDicMgrクラス定義

作者:
Norio Nakatani
日付:
1998/11/05 作成

CDicMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDicMgr.h ソースファイル

CDicMgr.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class CDicMgr;
00015
00016 #ifndef _CDICMGR_H_
00017 #define _CDICMGR_H_
00018
00019 #include <windows.h>
00020 #include "global.h"
00021
00022 class CMemory;
00023
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00027 class SAKURA_CORE_API CDicMgr
00028 {
00029 public:
00030     /*
00031     ||  Constructors
00032     */
00033     CDicMgr();
00034     ~CDicMgr();
00035
00036     /*
00037     ||  Attributes & Operations
00038     */
00039 //  BOOL Open( char* );
00040     static BOOL Search( const char*, const int, CMemory**, CMemory**, const char*, int * ); // 2006.04.10 fon (const int,CMemory**,int*)引数を追加
00041     static int HokanSearch( const char* , BOOL, CMemory** , int, const char* );
00042 //  BOOL Close( char* );
00043
00044
00045 protected:
00046     /*
00047     ||  実装ヘルパ関数
00048     */
00049 };
00050
00051
00052
00054 #endif /* _CDICMGR_H_ */
00055
00056
00057 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgAbout.cpp

CDlgAbout.cpp

バージョン情報ダイアログ [詳細]

#include "stdafx.h"
#include "CDlgAbout.h"
#include "sakura_rc.h"
#include "CBREGEXP.h"
#include "CPPA.h"
#include "etc_uty.h"
#include "sakura.hh"

CDlgAbout.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | COMPILER_TYPE "U"
#define | COMPILER_VER 0

変数

const DWORD | p_helpids []

説明

バージョン情報ダイアログ

作者:
Norio Nakatani
日付:
1998/3/13 作成

CDlgAbout.cpp で定義されています。

マクロ定義

#define COMPILER_TYPE "U"

CDlgAbout.cpp の 60 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define COMPILER_VER 0

CDlgAbout.cpp の 61 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

変数

const DWORD p_helpids[]

初期値:

 {
    IDOK,                   HIDOK_ABOUT,
    IDC_EDIT_ABOUT,         HIDC_ABOUT_EDIT_ABOUT,

    0, 0
}

CDlgAbout.cpp の 31 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgAbout.cpp ソースファイル

CDlgAbout.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, genta, jepro
00010     Copyright (C) 2001, genta, jepro
00011     Copyright (C) 2002, MIK, genta, aroka
00012     Copyright (C) 2003, Moca
00013     Copyright (C) 2004, Moca
00014     Copyright (C) 2005, genta
00015     Copyright (C) 2006, Moca
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020 #include "stdafx.h"
00021 #include "CDlgAbout.h"
00022 #include "sakura_rc.h" // 2002/2/10 aroka 復帰
00023
00024 #include "CBREGEXP.h"
00025 #include "CPPA.h"
00026 //  Dec. 2, 2002 genta
00027 #include "etc_uty.h"
00028
00029 // バージョン情報 CDlgAbout.cpp //@@@ 2002.01.07 add start MIK
00030 #include "sakura.hh"
00031 const DWORD p_helpids[] = { //12900
00032     IDOK,                   HIDOK_ABOUT,
00033     IDC_EDIT_ABOUT,         HIDC_ABOUT_EDIT_ABOUT,
00034 //  IDC_STATIC_URL_UR,      12970,
00035 //  IDC_STATIC_URL_ORG,     12971,
00036 //  IDC_STATIC_UPDATE,      12972,
00037 //  IDC_STATIC_VER,         12973,
00038 //  IDC_STATIC,             -1,
00039     0, 0
00040 };  //@@@ 2002.01.07 add end MIK
00041
00042 //  From Here Feb. 7, 2002 genta
00043 // 2006.01.17 Moca COMPILER_VERを追加
00044 #if defined(__BORLANDC__)
00045 #  define COMPILER_TYPE "B"
00046 #  define COMPILER_VER  __BORLANDC__
00047 #elif defined(__GNUG__)
00048 #  define COMPILER_TYPE "G"
00049 #  define COMPILER_VER (__GNUC__ * 10000 + __GNUC_MINOR__  * 100 + __GNUC_PATCHLEVEL__)
00050 #elif defined(_MSC_VER)
00051 #  if defined(_M_IA64)
00052 #    define COMPILER_TYPE "V_I64"
00053 #  elif defined(_M_AMD64)
00054 #    define COMPILER_TYPE "V_A64"
00055 #  else
00056 #    define COMPILER_TYPE "V"
00057 #  endif
00058 #  define COMPILER_VER _MSC_VER
00059 #else
00060 #  define COMPILER_TYPE "U"
00061 #  define COMPILER_VER 0
00062 #endif
00063 //  To Here Feb. 7, 2002 genta
00064
00065 //  From Here Nov. 7, 2000 genta
00069 INT_PTR CDlgAbout::DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
00070 {
00071     INT_PTR result;
00072     result = CDialog::DispatchEvent( hWnd, wMsg, wParam, lParam );
00073     switch( wMsg ){
00074     case WM_CTLCOLORDLG:
00075     case WM_CTLCOLORSTATIC:
00076         return (INT_PTR)GetStockObject( WHITE_BRUSH );
00077     }
00078     return result;
00079 }
00080 //  To Here Nov. 7, 2000 genta
00081
00082 /* モーダルダイアログの表示 */
00083 int CDlgAbout::DoModal( HINSTANCE hInstance, HWND hwndParent )
00084 {
00085     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_ABOUT, NULL );
00086 }
00087
00088 BOOL CDlgAbout::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00089 {
00090     m_hWnd = hwndDlg;
00091
00092     char            szMsg[2048];
00093     char            szFile[_MAX_PATH];
00094     //WIN32_FIND_DATA   wfd;
00095     FILETIME        lastTime;
00096     SYSTEMTIME      systimeL;
00097
00098     /* この実行ファイルの情報 */
00099     ::GetModuleFileName( ::GetModuleHandle( NULL ), szFile, sizeof( szFile ) );
00100
00101     //  Oct. 22, 2005 genta タイムスタンプ取得の共通関数利用
00102     //  2003.10.04 Moca ハンドルのクローズ忘れ
00103     //::ZeroMemory( &wfd, sizeof( wfd ));
00104     //HANDLE hFind = ::FindFirstFile( szFile, &wfd );
00105     //if( hFind != INVALID_HANDLE_VALUE ){
00106     //  FindClose( hFind );
00107     //}
00108     if( !GetLastWriteTimestamp( szFile, lastTime )){
00109         lastTime.dwLowDateTime = lastTime.dwHighDateTime = 0;
00110     }
00111
00112     ::FileTimeToLocalFileTime( &lastTime, &lastTime );
00113     ::FileTimeToSystemTime( &lastTime, &systimeL );
00114     /* バージョン情報 */
00115     //  Nov. 6, 2000 genta  Unofficial Releaseのバージョンとして設定
00116     //  Jun. 8, 2001 genta  GPL化に伴い、OfficialなReleaseとしての道を歩み始める
00117     //  Feb. 7, 2002 genta コンパイラ情報追加
00118     //  2004.05.13 Moca バージョン番号は、プロセスごとに取得する
00119     DWORD dwVersionMS, dwVersionLS;
00120     GetAppVersionInfo( NULL, VS_VERSION_INFO,
00121         &dwVersionMS, &dwVersionLS );
00122
00123     int ComPiler_ver = COMPILER_VER;
00124     wsprintf( szMsg, "Ver. %d.%d.%d.%d (" COMPILER_TYPE " %d)",
00125         HIWORD( dwVersionMS ),
00126         LOWORD( dwVersionMS ),
00127         HIWORD( dwVersionLS ),
00128         LOWORD( dwVersionLS ),
00129         ComPiler_ver
00130     );
00131     ::SetDlgItemText( m_hWnd, IDC_STATIC_VER, szMsg );
00132
00133     /* 更新日情報 */
00134     wsprintf( szMsg, "Last Modified: %d/%d/%d %02d:%02d:%02d",
00135         systimeL.wYear,
00136         systimeL.wMonth,
00137         systimeL.wDay,
00138         systimeL.wHour,
00139         systimeL.wMinute,
00140         systimeL.wSecond
00141     );
00142     ::SetDlgItemText( m_hWnd, IDC_STATIC_UPDATE, szMsg );
00143
00144     //  From Here Jun. 8, 2001 genta
00145     //  Edit Boxにメッセージを追加する．
00146     int desclen = ::LoadString( m_hInstance, IDS_ABOUT_DESCRIPTION, szMsg, sizeof( szMsg ) );
00147     if( desclen > 0 ){
00148         ::SetDlgItemText( m_hWnd, IDC_EDIT_ABOUT, szMsg );
00149     }
00150     //  To Here Jun. 8, 2001 genta
00151
00152     //  From Here Dec. 2, 2002 genta
00153     //  アイコンをカスタマイズアイコンに合わせる
00154     HICON hIcon = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, false );
00155     HWND hIconWnd = GetDlgItem( m_hWnd, IDC_STATIC_MYICON );
00156
00157     if( hIconWnd != NULL && hIcon != NULL ){
00158         ::SendMessage( hIconWnd, STM_SETICON, (WPARAM)hIcon, 0 );
00159     }
00160     //  To Here Dec. 2, 2002 genta
00161
00162     // URLウィンドウをサブクラス化する
00163     m_UrlUrWnd.SubclassWindow( GetDlgItem( m_hWnd, IDC_STATIC_URL_UR ) );
00164
00165     //  Oct. 22, 2005 genta 原作者ホームページが無くなったので削除
00166     //m_UrlOrgWnd.SubclassWindow( GetDlgItem( m_hWnd, IDC_STATIC_URL_ORG ) );
00167
00168     /* 基底クラスメンバ */
00169     return CDialog::OnInitDialog( m_hWnd, wParam, lParam );
00170 }
00171
00172
00173 BOOL CDlgAbout::OnBnClicked( int wID )
00174 {
00175     switch( wID ){
00176     //  2006.07.27 genta 原作者連絡先のボタンを削除 (ヘルプから削除されているため)
00177     case IDC_STATIC_URL_UR:
00178     case IDC_STATIC_URL_ORG:
00179         //  Web Browserの起動
00180         {
00181             char buf[512];
00182             ::GetWindowText( ::GetDlgItem( m_hWnd, wID ), buf, 512 );
00183             ShellExecute( m_hWnd, NULL, buf, NULL, NULL, SW_SHOWNORMAL );
00184             return TRUE;
00185         }
00186 //Jan. 12, 2001 JEPRO UR1.2.20.2 (Nov. 7, 2000) から以下のボタンは削除されているのでコメントアウトした
00187 //  case IDC_BUTTON_DOWNLOAD:
00188 //      /* 「最新バージョンのダウンロード」のヘルプ  */
00189 //      ::WinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, 112 );
00190 //      return TRUE;
00191     }
00192     /* 基底クラスメンバ */
00193     return CDialog::OnBnClicked( wID );
00194 }
00195
00196 //@@@ 2002.01.18 add start
00197 LPVOID CDlgAbout::GetHelpIdTable(void)
00198 {
00199     return (LPVOID)p_helpids;
00200 }
00201
00202 BOOL CUrlWnd::SubclassWindow( HWND hWnd )
00203 {
00204     // STATICウィンドウをサブクラス化する
00205     // 元のSTATICは WS_TABSTOP, SS_NOTIFY スタイルのものを使用すること
00206     if( m_hWnd != NULL )
00207         return FALSE;
00208     if( !IsWindow( hWnd ) )
00209         return FALSE;
00210
00211     // サブクラス化を実行する
00212     LONG_PTR lptr;
00213     SetLastError( 0 );
00214     lptr = SetWindowLongPtr( hWnd, GWLP_USERDATA, (LONG_PTR)this );
00215     if( lptr == 0 && GetLastError() != 0 )
00216         return FALSE;
00217     m_pOldProc = (WNDPROC)SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)UrlWndProc );
00218     if( m_pOldProc == NULL )
00219         return FALSE;
00220     m_hWnd = hWnd;
00221
00222     // 下線付きフォントに変更する
00223     HFONT hFont;
00224     LOGFONT lf;
00225     hFont = (HFONT)SendMessage( hWnd, WM_GETFONT, (WPARAM)0, (LPARAM)0 );
00226     GetObject( hFont, sizeof(lf), &lf );
00227     lf.lfUnderline = TRUE;
00228     m_hFont = CreateFontIndirect( &lf );
00229     if(m_hFont != NULL)
00230         SendMessage( hWnd, WM_SETFONT, (WPARAM)m_hFont, (LPARAM)FALSE );
00231
00232     return TRUE;
00233 }
00234
00235 LRESULT CALLBACK CUrlWnd::UrlWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
00236 {
00237     CUrlWnd* pUrlWnd = (CUrlWnd*)GetWindowLongPtr( hWnd, GWLP_USERDATA );
00238
00239     HDC hdc;
00240     POINT pt;
00241     RECT rc;
00242
00243     switch ( msg ) {
00244     case WM_SETCURSOR:
00245         // カーソル形状変更
00246         HCURSOR hCursor;
00247         hCursor = LoadCursor( GetModuleHandle( NULL ), MAKEINTRESOURCE( IDC_CURSOR_HAND ) );
00248         SetCursor( hCursor );
00249         return (LRESULT)0;
00250     case WM_LBUTTONDOWN:
00251         // キーボードフォーカスを自分に当てる
00252         SendMessage( GetParent(hWnd), WM_NEXTDLGCTL, (WPARAM)hWnd, (LPARAM)1 );
00253         break;
00254     case WM_SETFOCUS:
00255     case WM_KILLFOCUS:
00256         // 再描画
00257         InvalidateRect( hWnd, NULL, TRUE );
00258         UpdateWindow( hWnd );
00259         break;
00260     case WM_GETDLGCODE:
00261         // デフォルトプッシュボタンのように振舞う（Enterキーの有効化）
00262         // 方向キーは無効化（IEのバージョン情報ダイアログと同様）
00263         return DLGC_DEFPUSHBUTTON | DLGC_WANTARROWS;
00264     case WM_MOUSEMOVE:
00265         // カーソルがウィンドウ内に入ったらタイマー起動
00266         // ウィンドウ外に出たらタイマー削除
00267         // 各タイミングで再描画
00268         BOOL bHilighted;
00269         pt.x = LOWORD( lParam );
00270         pt.y = HIWORD( lParam );
00271         GetClientRect( hWnd, &rc );
00272         bHilighted = PtInRect( &rc, pt );
00273         if( bHilighted != pUrlWnd->m_bHilighted ){
00274             pUrlWnd->m_bHilighted = bHilighted;
00275             InvalidateRect( hWnd, NULL, TRUE );
00276             if( pUrlWnd->m_bHilighted )
00277                 SetTimer( hWnd, 1, 200, NULL );
00278             else
00279                 KillTimer( hWnd, 1 );
00280         }
00281         break;
00282     case WM_TIMER:
00283         // カーソルがウィンドウ外にある場合にも WM_MOUSEMOVE を送る
00284         GetCursorPos( &pt );
00285         ScreenToClient( hWnd, &pt );
00286         GetClientRect( hWnd, &rc );
00287         if( !PtInRect( &rc, pt ) )
00288             SendMessage( hWnd, WM_MOUSEMOVE, 0, MAKELONG( pt.x, pt.y ) );
00289         break;
00290     case WM_PAINT:
00291         // ウィンドウの描画
00292         PAINTSTRUCT ps;
00293         HFONT hFont;
00294         HFONT hOldFont;
00295         TCHAR szText[512];
00296
00297         hdc = BeginPaint( hWnd, &ps );
00298
00299         // 現在のクライアント矩形、テキスト、フォントを取得する
00300         GetClientRect( hWnd, &rc );
00301         GetWindowText( hWnd, szText, 512 );
00302         hFont = (HFONT)SendMessage( hWnd, WM_GETFONT, (WPARAM)0, (LPARAM)0 );
00303
00304         // テキスト描画
00305         SetBkMode( hdc, TRANSPARENT );
00306         SetTextColor( hdc, pUrlWnd->m_bHilighted? RGB( 0x84, 0, 0 ): RGB( 0, 0, 0xff ) );
00307         hOldFont = (HFONT)SelectObject( hdc, (HGDIOBJ)hFont );
00308         TextOut( hdc, 2, 0, szText, lstrlen( szText ) );
00309         SelectObject( hdc, (HGDIOBJ)hOldFont );
00310
00311         // フォーカス枠描画
00312         if( GetFocus() == hWnd )
00313             DrawFocusRect( hdc, &rc );
00314
00315         EndPaint( hWnd, &ps );
00316         return (LRESULT)0;
00317     case WM_ERASEBKGND:
00318         hdc = (HDC)wParam;
00319         GetClientRect( hWnd, &rc );
00320
00321         // 背景描画
00322         if( pUrlWnd->m_bHilighted ){
00323             // ハイライト時背景描画
00324             SetBkColor( hdc, RGB( 0xff, 0xff, 0 ) );
00325             ExtTextOut( hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
00326         }else{
00327             // 親にWM_CTLCOLORSTATICを送って背景ブラシを取得し、背景描画する
00328             HBRUSH hbr;
00329             HBRUSH hbrOld;
00330             hbr = (HBRUSH)SendMessage( GetParent( hWnd ), WM_CTLCOLORSTATIC, wParam, (LPARAM)hWnd );
00331             hbrOld = (HBRUSH)SelectObject( hdc, hbr );
00332             FillRect( hdc, &rc, hbr );
00333             SelectObject( hdc, hbrOld );
00334         }
00335         return (LRESULT)1;
00336     case WM_DESTROY:
00337         // 後始末
00338         KillTimer( hWnd, 1 );
00339         SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)pUrlWnd->m_pOldProc );
00340         if( pUrlWnd->m_hFont != NULL )
00341             DeleteObject( pUrlWnd->m_hFont );
00342         pUrlWnd->m_hWnd = NULL;
00343         pUrlWnd->m_hFont = NULL;
00344         pUrlWnd->m_bHilighted = FALSE;
00345         pUrlWnd->m_pOldProc = NULL;
00346         return (LRESULT)0;
00347     }
00348
00349     return CallWindowProc( pUrlWnd->m_pOldProc, hWnd, msg, wParam, lParam );
00350 }
00351 //@@@ 2002.01.18 add end
00352
00353 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgAbout.h

CDlgAbout.h

バージョン情報ダイアログ [詳細]

#include "CDialog.h"

CDlgAbout.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CUrlWnd
About Box管理 [詳細]
class | CDlgAbout

説明

バージョン情報ダイアログ

作者:
Norio Nakatani
日付:
1998/05/22 作成

1999/12/05 再作成

CDlgAbout.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgAbout.h ソースファイル

CDlgAbout.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2000, genta
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015
00016 #ifndef _CDLGABOUT_H_
00017 #define _CDLGABOUT_H_
00018
00019 #include "CDialog.h"
00027 class CUrlWnd
00028 {
00029 public:
00030     CUrlWnd() { m_hWnd = NULL; m_hFont = NULL; m_bHilighted = FALSE; m_pOldProc = NULL; };
00031     virtual ~CUrlWnd() { ; };
00032     BOOL SubclassWindow( HWND hWnd );
00033 protected:
00034     static LRESULT CALLBACK UrlWndProc( HWND hWnd, UINT msg, WPARAM wp, LPARAM lp );
00035 protected:
00036     HWND m_hWnd;
00037     HFONT m_hFont;
00038     BOOL m_bHilighted;
00039     WNDPROC m_pOldProc;
00040 };
00041
00042 class CDlgAbout : public CDialog
00043 {
00044 public:
00045     int DoModal( HINSTANCE, HWND ); /* モーダルダイアログの表示 */
00046     //  Nov. 7, 2000 genta  標準以外のメッセージを捕捉する
00047     INT_PTR DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam );
00048 protected:
00049     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00050     BOOL OnBnClicked( int );
00051     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00052 private:
00053     CUrlWnd m_UrlUrWnd;
00054     CUrlWnd m_UrlOrgWnd;
00055 };
00056
00058 #endif /* _CDLGABOUT_H_ */
00059
00060
00061 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCancel.cpp

CDlgCancel.cpp

キャンセルボタンダイアログボックス [詳細]

#include "stdafx.h"
#include "CDlgCancel.h"
#include "debug.h"

CDlgCancel.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

キャンセルボタンダイアログボックス

作者:
Norio Nakatani

CDlgCancel.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    0, 0
}

CDlgCancel.cpp の 64 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCancel.cpp ソースファイル

CDlgCancel.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008
00009     This source code is designed for sakura editor.
00010     Please contact the copyright holder to use this code for other purpose.
00011 */
00012 #include "stdafx.h"
00013 #include "CDlgCancel.h"
00014 #include "debug.h"
00015
00016 CDlgCancel::CDlgCancel()
00017 {
00018     m_bCANCEL = FALSE;  /* IDCANCELボタンが押された */
00019     return;
00020 }
00021 /* モーダルダイアログの表示 */
00022 int CDlgCancel::DoModal( HINSTANCE hInstance, HWND hwndParent, int nDlgTemplete )
00023 {
00024     m_bCANCEL = FALSE;  /* IDCANCELボタンが押された */
00025     return (int)CDialog::DoModal( hInstance, hwndParent, nDlgTemplete, NULL );
00026 }
00027 /* モードレスダイアログの表示 */
00028 HWND CDlgCancel::DoModeless( HINSTANCE hInstance, HWND hwndParent, int nDlgTemplete )
00029 {
00030     m_bCANCEL = FALSE;  /* IDCANCELボタンが押された */
00031     return CDialog::DoModeless( hInstance, hwndParent, nDlgTemplete, NULL, SW_SHOW );
00032 }
00033
00034
00035 BOOL CDlgCancel::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00036 {
00037     m_hWnd = hwndDlg;
00038     HICON   hIcon;
00039     hIcon = ::LoadIcon( NULL, IDI_ASTERISK );
00040 //  hIcon = ::LoadIcon( m_hInstance, MAKEINTRESOURCE( IDI_ICON_GREP ) );
00041     ::SendMessage( m_hWnd, WM_SETICON, ICON_SMALL, (LPARAM)NULL );
00042     ::SendMessage( m_hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon );
00043     ::SendMessage( m_hWnd, WM_SETICON, ICON_BIG, (LPARAM)NULL );
00044     ::SendMessage( m_hWnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon );
00045
00046
00047     /* 基底クラスメンバ */
00048 //  CreateSizeBox();
00049     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00050 }
00051
00052 BOOL CDlgCancel::OnBnClicked( int wID )
00053 {
00054     switch( wID ){
00055     case IDCANCEL:
00056         m_bCANCEL = TRUE;   /* IDCANCELボタンが押された */
00057 //      CloseDialog( 0 );
00058         return TRUE;
00059     }
00060     return FALSE;
00061 }
00062
00063 //@@@ 2002.01.18 add start
00064 const DWORD p_helpids[] = {
00065     0, 0
00066 };
00067
00068 LPVOID CDlgCancel::GetHelpIdTable(void)
00069 {
00070     return (LPVOID)p_helpids;
00071 }
00072 //@@@ 2002.01.18 add end
00073
00074 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCancel.h

CDlgCancel.h

キャンセルボタンダイアログ [詳細]

#include "CDialog.h"

CDlgCancel.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgCancel
キャンセルボタンダイアログ [詳細]

説明

キャンセルボタンダイアログ

作者:
Norio Nakatani
日付:
1998/09/09 作成

1999/12/02 再作成

CDlgCancel.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCancel.h ソースファイル

CDlgCancel.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 class CDlgCancel;
00016
00017 #ifndef _CDLGCANCEL_H_
00018 #define _CDLGCANCEL_H_
00019
00020 #include "CDialog.h"
00021
00022
00026 class CDlgCancel : public CDialog
00027 {
00028 public:
00029     /*
00030     ||  Constructors
00031     */
00032     CDlgCancel();
00033 //  void Create( HINSTANCE, HWND ); /* 初期化 */
00034
00035     /*
00036     ||  Attributes & Operations
00037     */
00038     int DoModal( HINSTANCE, HWND, int );    /* モードレスダイアログの表示 */
00039     HWND DoModeless( HINSTANCE, HWND, int );    /* モードレスダイアログの表示 */
00040
00041 //  HWND Open( LPCTSTR );
00042 //  void Close( void ); /* モードレスダイアログの削除 */
00043     BOOL IsCanceled( void ){ return m_bCANCEL; } /* IDCANCELボタンが押されたか？ */
00044 //  BOOL DispatchEvent( HWND, UINT, WPARAM, LPARAM );   /* ダイアログのメッセージ処理 */
00045
00046 //  HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00047 //  HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00048 //  HWND        m_hWnd;         /* このダイアログのハンドル */
00049     BOOL        m_bCANCEL;      /* IDCANCELボタンが押された */
00050
00051 protected:
00052     /*
00053     ||  実装ヘルパ関数
00054     */
00055     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00056     BOOL OnBnClicked( int );
00057     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00058 };
00059
00060
00061
00063 #endif /* _CDLGCANCEL_H_ */
00064
00065
00066 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCompare.cpp

CDlgCompare.cpp

ファイル比較ダイアログボックス [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgCompare.h"
#include "etc_uty.h"
#include "debug.h"
#include "CEditDoc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "sakura.hh"

CDlgCompare.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

ファイル比較ダイアログボックス

作者:
Norio Nakatani

CDlgCompare.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON1,                    HIDC_CMP_BUTTON1,
    IDOK2,                          HIDOK2_CMP,
    IDOK,                           HIDOK_CMP,
    IDCANCEL,                       HIDCANCEL_CMP,
    IDC_BUTTON_HELP,                HIDC_CMP_BUTTON_HELP,
    IDC_CHECK_TILE_H,               HIDC_CMP_CHECK_TILE_H,
    IDC_LIST_FILES,                 HIDC_CMP_LIST_FILES,
    IDC_STATIC_COMPARESRC,          HIDC_CMP_STATIC_COMPARESRC,

    0, 0
}

CDlgCompare.cpp の 30 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCompare.cpp ソースファイル

CDlgCompare.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, JEPRO
00009     Copyright (C) 2001, Stonee, genta, JEPRO, YAZAKI
00010     Copyright (C) 2002, aroka, MIK, Moca
00011     Copyright (C) 2003, MIK
00012     Copyright (C) 2006, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "sakura_rc.h"
00020 #include "CDlgCompare.h"
00021 #include "etc_uty.h"
00022 #include "debug.h"
00023 #include "CEditDoc.h"
00024 #include "global.h"
00025 #include "funccode.h"       // Stonee, 2001/03/12
00026 #include "mymessage.h"
00027
00028 // ファイル内容比較 CDlgCompare.cpp //@@@ 2002.01.07 add start MIK
00029 #include "sakura.hh"
00030 const DWORD p_helpids[] = { //12300
00031     IDC_BUTTON1,                    HIDC_CMP_BUTTON1,           //上下に表示
00032     IDOK2,                          HIDOK2_CMP,                 //左右に表示
00033     IDOK,                           HIDOK_CMP,                  //OK
00034     IDCANCEL,                       HIDCANCEL_CMP,              //キャンセル
00035     IDC_BUTTON_HELP,                HIDC_CMP_BUTTON_HELP,       //ヘルプ
00036     IDC_CHECK_TILE_H,               HIDC_CMP_CHECK_TILE_H,      //左右に表示
00037     IDC_LIST_FILES,                 HIDC_CMP_LIST_FILES,        //ファイル一覧
00038     IDC_STATIC_COMPARESRC,          HIDC_CMP_STATIC_COMPARESRC, //ソースファイル
00039 //  IDC_STATIC,                     -1,
00040     0, 0
00041 };  //@@@ 2002.01.07 add end MIK
00042
00043 CDlgCompare::CDlgCompare()
00044 {
00045     m_bCompareAndTileHorz = TRUE;   /* 左右に並べて表示 */
00046 //  m_bCompareAndTileHorz = TRUE;   /* 左右に並べて表示 */  //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
00047     return;
00048 }
00049
00050
00051 /* モーダルダイアログの表示 */
00052 int CDlgCompare::DoModal(
00053     HINSTANCE   hInstance,
00054     HWND        hwndParent,
00055     LPARAM      lParam,
00056     const char* pszPath,
00057     BOOL        bIsModified,
00058     char*       pszComparePath,
00059     HWND*       phwndCompareWnd
00060 )
00061 {
00062     m_pszPath = pszPath;
00063     m_bIsModified = bIsModified;
00064     m_pszComparePath = pszComparePath;
00065     m_phwndCompareWnd = phwndCompareWnd;
00066     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_COMPARE, lParam );
00067 }
00068
00069 BOOL CDlgCompare::OnBnClicked( int wID )
00070 {
00071 //  CEditView*  pcEditView = (CEditView*)m_lParam;  //  Oct. 10, 2000 JEPRO added   //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は必要？
00072     switch( wID ){
00073     case IDC_BUTTON_HELP:
00074         /* 「内容比較」のヘルプ */
00075         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00076         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_COMPARE) );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00077         return TRUE;
00078 //  From Here Oct. 10, 2000 JEPRO added  Ref. code はCDlgFind.cpp の OnBnClicked
00079 //  チェックボックスをボタン化してCDlgCompare.cppに直接書き込んでみたが失敗
00080 //  ダイアログのボタンは下に不可視化しておいてあります。
00081 //  以下の追加コードは全部消して結構ですから誰か作ってください。水平スクロールも入れてくれるとなおうれしいです。
00082 //  case IDC_BUTTON1:   /* 上下に表示 */
00083 //      /* ダイアログデータの取得 */
00084 //      return TRUE;
00085 //  case IDOK:          /* 左右に表示 */
00086 //      /* ダイアログデータの取得 */
00087 //      HWND    hwndCompareWnd;
00088 //      HWND*   phwndArr;
00089 //      int     i;
00090 //      phwndArr = new HWND[2];
00091 //      phwndArr[0] = ::GetParent( m_hwndParent );
00092 //      phwndArr[1] = hwndCompareWnd;
00093 //      for( i = 0; i < 2; ++i ){
00094 //          if( ::IsZoomed( phwndArr[i] ) ){
00095 //              ::ShowWindow( phwndArr[i], SW_RESTORE );
00096 //          }
00097 //      }
00098 //      ::TileWindows( NULL, MDITILE_VERTICAL, NULL, 2, phwndArr );
00099 //      delete [] phwndArr;
00100 //      CloseDialog( 0 );
00101 //      return TRUE;
00102 //  To Here Oct. 10, 2000
00103     case IDOK:          /* 左右に表示 */
00104         /* ダイアログデータの取得 */
00105         ::EndDialog( m_hWnd, GetData() );
00106         return TRUE;
00107     case IDCANCEL:
00108         ::EndDialog( m_hWnd, FALSE );
00109         return TRUE;
00110     }
00111     /* 基底クラスメンバ */
00112     return CDialog::OnBnClicked( wID );
00113 }
00114
00115
00116 /* ダイアログデータの設定 */
00117 void CDlgCompare::SetData( void )
00118 {
00119     CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00120     HWND            hwndList;
00121     int             nRowNum;
00122     EditNode*       pEditNodeArr;
00123     FileInfo*       pfi;
00124     int             i;
00125     char            szMenu[512];
00126     int             nItem;
00127
00128     hwndList = :: GetDlgItem( m_hWnd, IDC_LIST_FILES );
00129
00130 //  2002/2/10 aroka ファイル名で比較しないため不用 (2001.12.26 YAZAKIさん)
00131 //  //  Oct. 15, 2001 genta ファイル名判定の stricmpをbccでも期待通り動かすため
00132 //  setlocale ( LC_ALL, "C" );
00133
00134     /* 現在開いている編集窓のリストをメニューにする */
00135     nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
00136     if( nRowNum > 0 ){
00137         for( i = 0; i < nRowNum; ++i ){
00138             /* トレイからエディタへの編集ファイル名要求通知 */
00139             ::SendMessage( pEditNodeArr[i].m_hWnd, MYWM_GETFILEINFO, 0, 0 );
00140             pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00141
00142 //@@@ 2001.12.26 YAZAKI ファイル名で比較すると(無題)だったときに問題同士の比較ができない
00143 //          if( 0 == stricmp( pfi->m_szPath, m_pszPath ) ){
00144             if (pEditNodeArr[i].m_hWnd == pCEditDoc->m_hwndParent){
00145                 continue;
00146             }
00147             wsprintf( szMenu, "%s %s",
00148                 (0 < lstrlen(pfi->m_szPath))?pfi->m_szPath:"(無題)",
00149                 pfi->m_bIsModified ? "*":" "
00150             );
00151             // gm_pszCodeNameArr_3 からコピーするように変更
00152             if( 0 < pfi->m_nCharCode && pfi->m_nCharCode < CODE_CODEMAX ){
00153                 strcat( szMenu, gm_pszCodeNameArr_3[pfi->m_nCharCode] );
00154             }
00155 #if 0
00156             if( 0 != pfi->m_nCharCode ){        /* 文字コード種別 */
00157                 switch( pfi->m_nCharCode ){
00158                 case CODE_JIS:  /* JIS */
00159                     strcat( szMenu, "  [JIS]" );
00160                     break;
00161                 case CODE_EUC:  /* EUC */
00162                     strcat( szMenu, "  [EUC]" );
00163                     break;
00164                 case CODE_UNICODE:  /* Unicode */
00165                     strcat( szMenu, "  [Unicode]" );
00166                     break;
00167                 case CODE_UTF8: /* UTF-8 */
00168                     strcat( szMenu, "  [UTF-8]" );
00169                     break;
00170                 case CODE_UTF7: /* UTF-7 */
00171                     strcat( szMenu, "  [UTF-7]" );
00172                     break;
00173                 }
00174             }
00175 #endif
00176             nItem = ::SendMessage( hwndList, LB_ADDSTRING, 0, (LPARAM)(char*)szMenu );
00177             ::SendMessage( hwndList, LB_SETITEMDATA, nItem, (LPARAM)pEditNodeArr[i].m_hWnd );
00178         }
00179         delete [] pEditNodeArr;
00180         // 2002/11/01 Moca 追加 リストビューの横幅を設定。これをやらないと水平スクロールバーが使えない
00181         ::SendMessage( hwndList, LB_SETHORIZONTALEXTENT, (WPARAM)1000, 0 );
00182     }
00183     ::SendMessage( hwndList, LB_SETCURSEL, (WPARAM)0, 0 );
00184     char    szWork[512];
00185     wsprintf( szWork, "%s %s",
00186         (0 < lstrlen( m_pszPath )?m_pszPath:"(無題)" ),
00187         m_bIsModified?"*":""
00188     );
00189     ::SetDlgItemText( m_hWnd, IDC_STATIC_COMPARESRC, szWork );
00190     /* 左右に並べて表示 */
00191     //@@@ 2003.06.12 MIK
00192     // TAB 1ウィンドウ表示のときは並べて比較できなくする
00193     if( TRUE  == m_pShareData->m_Common.m_bDispTabWnd
00194      && FALSE == m_pShareData->m_Common.m_bDispTabWndMultiWin )
00195     {
00196         m_bCompareAndTileHorz = FALSE;
00197         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_TILE_H ), FALSE );
00198     }
00199     ::CheckDlgButton( m_hWnd, IDC_CHECK_TILE_H, m_bCompareAndTileHorz );
00200 //  ::CheckDlgButton( m_hWnd, IDC_CHECK_TILE_H, m_bCompareAndTileHorz );    //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
00201     return;
00202 }
00203
00204
00205
00206
00207 /* ダイアログデータの取得 */
00208 /* TRUE==正常  FALSE==入力エラー */
00209 int CDlgCompare::GetData( void )
00210 {
00211     HWND            hwndList;
00212     int             nItem;
00213 //  HWND            hwndCompareFile;
00214     FileInfo*       pfi;
00215     hwndList = :: GetDlgItem( m_hWnd, IDC_LIST_FILES );
00216     nItem = ::SendMessage( hwndList, LB_GETCURSEL, 0, 0 );
00217     *m_phwndCompareWnd = (HWND)::SendMessage( hwndList, LB_GETITEMDATA, nItem, 0 );
00218     /* トレイからエディタへの編集ファイル名要求通知 */
00219     ::SendMessage( *m_phwndCompareWnd, MYWM_GETFILEINFO, 0, 0 );
00220 //  pfi = (FileInfo*)m_pShareData->m_szWork;
00221     pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00222
00223     strcpy( m_pszComparePath, pfi->m_szPath );
00224
00225     /* 左右に並べて表示 */
00226     m_bCompareAndTileHorz = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_TILE_H );
00227 //  m_bCompareAndTileHorz = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_TILE_H );   //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
00228
00229     return TRUE;
00230 }
00231
00232 //@@@ 2002.01.18 add start
00233 LPVOID CDlgCompare::GetHelpIdTable(void)
00234 {
00235     return (LPVOID)p_helpids;
00236 }
00237 //@@@ 2002.01.18 add end
00238
00239 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCompare.h

CDlgCompare.h

ファイル比較ダイアログボックス [詳細]

#include "CDialog.h"

CDlgCompare.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgCompare
ファイル比較ダイアログボックス [詳細]

説明

ファイル比較ダイアログボックス

作者:
Norio Nakatani

CDlgCompare.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCompare.h ソースファイル

CDlgCompare.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class CDlgCompare;
00015
00016 #ifndef _CDLGCOMPARE_H_
00017 #define _CDLGCOMPARE_H_
00018
00019 #include "CDialog.h"
00023 class CDlgCompare : public CDialog
00024 {
00025 public:
00026     /*
00027     ||  Constructors
00028     */
00029     CDlgCompare();
00030
00031     /*
00032     ||  Attributes & Operations
00033     */
00034     int DoModal( HINSTANCE, HWND, LPARAM, const char*, BOOL, char*, HWND* );    /* モーダルダイアログの表示 */
00035
00036     const char*     m_pszPath;
00037     BOOL            m_bIsModified;
00038     char*           m_pszComparePath;
00039     HWND*           m_phwndCompareWnd;
00040     BOOL            m_bCompareAndTileHorz;/* 左右に並べて表示 */
00041 //  BOOL            m_bCompareAndTileHorz;/* 左右に並べて表示 */    //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
00042
00043 protected:
00044     /*
00045     ||  実装ヘルパ関数
00046     */
00047     BOOL OnBnClicked( int );
00048     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00049
00050     void SetData( void );   /* ダイアログデータの設定 */
00051     int GetData( void );    /* ダイアログデータの取得 */
00052 };
00053
00054
00055
00057 #endif /* _CDLGCOMPARE_H_ */
00058
00059 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCtrlCode.cpp

CDlgCtrlCode.cpp

コントロールコード入力ダイアログボックス [詳細]

#include "stdafx.h"
#include <stdio.h>
#include "sakura_rc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "CDialog.h"
#include "CDlgCtrlCode.h"
#include "CEditView.h"
#include "etc_uty.h"
#include "debug.h"
#include "sakura.hh"

CDlgCtrlCode.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | ctrl_info_t

変数

const DWORD | p_helpids []
ctrl_info_t p_ctrl_list []
static const long | p_ctrl_list_num = sizeof(p_ctrl_list) / sizeof(struct ctrl_info_t)

説明

コントロールコード入力ダイアログボックス

作者:
MIK
日付:
2002.6.2

CDlgCtrlCode.cpp で定義されています。

変数

struct ctrl_info_t p_ctrl_list[]

参照元 CDlgCtrlCode::GetData()・CDlgCtrlCode::OnNotify()・CDlgCtrlCode::SetData().

const long p_ctrl_list_num = sizeof(p_ctrl_list) / sizeof(struct ctrl_info_t) [static]

CDlgCtrlCode.cpp の 98 行で定義されています。

参照元 CDlgCtrlCode::OnNotify()・CDlgCtrlCode::SetData().

const DWORD p_helpids[]

初期値:

 {
    IDC_LIST_CTRLCODE,      HIDC_LIST_CTRLCODE,
    IDOK,                   HIDC_CTRLCODE_IDOK,
    IDCANCEL,               HIDC_CTRLCODE_IDCANCEL,
    IDC_BUTTON_HELP,        HIDC_BUTTON_CTRLCODE_HELP,

    0, 0
}

CDlgCtrlCode.cpp の 45 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCtrlCode.cpp ソースファイル

CDlgCtrlCode.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002-2003, MIK
00009     Copyright (C) 2006, ryoji
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #include "stdafx.h"
00033 #include <stdio.h>
00034 #include "sakura_rc.h"
00035 #include "global.h"
00036 #include "funccode.h"
00037 #include "mymessage.h"
00038 #include "CDialog.h"
00039 #include "CDlgCtrlCode.h"
00040 #include "CEditView.h"
00041 #include "etc_uty.h"
00042 #include "debug.h"
00043
00044 #include "sakura.hh"
00045 const DWORD p_helpids[] = { //13300
00046     IDC_LIST_CTRLCODE,      HIDC_LIST_CTRLCODE,
00047     IDOK,                   HIDC_CTRLCODE_IDOK,
00048     IDCANCEL,               HIDC_CTRLCODE_IDCANCEL,
00049     IDC_BUTTON_HELP,        HIDC_BUTTON_CTRLCODE_HELP,
00050 //  IDC_STATIC,             -1,
00051     0, 0
00052 };
00053
00054 struct ctrl_info_t {
00055     unsigned char   code;       //コード
00056     unsigned int    vKey;
00057     char            name[4];    //名前
00058     char            *jname;     //日本語名
00059 } static const p_ctrl_list[] = {
00060     { 0x00, 0x00c0, "NUL", "空文字"       },
00061     { 0x01, 'A', "SOH", "ヘッダ開始"   },
00062     { 0x02, 'B', "STX", "テキスト開始" },
00063     { 0x03, 'C', "ETX", "テキスト終了" },
00064     { 0x04, 'D', "EOT", "転送終了"     },
00065     { 0x05, 'E', "ENQ", "照会"         },
00066     { 0x06, 'F', "ACK", "受信OK"       },
00067     { 0x07, 'G', "BEL", "警告(ベル)"   },
00068     { 0x08, 'H', "BS",  "後退"         },
00069     { 0x09, 'I', "HT",  "タブ"         },
00070     { 0x0a, 'J', "LF",  "改行"         },   //NL
00071     { 0x0b, 'K', "VT",  "垂直タブ"     },
00072     { 0x0c, 'L', "FF",  "改ページ"     },   //NP
00073     { 0x0d, 'M', "CR",  "復帰"         },
00074     { 0x0e, 'N', "SO",  "シフトアウト" },
00075     { 0x0f, 'O', "SI",  "シフトイン"   },
00076     { 0x10, 'P', "DLE", "データリンクエスケープ" },
00077     { 0x11, 'Q', "DC1", "装置制御1"    },
00078     { 0x12, 'R', "DC2", "装置制御2"    },
00079     { 0x13, 'S', "DC3", "装置制御3"    },
00080     { 0x14, 'T', "DC4", "装置制御4"    },
00081     { 0x15, 'U', "NAK", "受信失敗"     },
00082     { 0x16, 'V', "SYN", "同期"         },
00083     { 0x17, 'W', "ETB", "転送ブロック終了" },
00084     { 0x18, 'X', "CAN", "キャンセル"   },
00085     { 0x19, 'Y', "EM",  "メディア終了" },
00086     { 0x1a, 'Z', "SUB", "置換"         },
00087     { 0x1b, 0x00db, "ESC", "エスケープ"   },
00088     { 0x1c, 0x00dc, "FS",  "フォーム区切" },
00089     { 0x1d, 0x00dd, "GS",  "グループ区切" },
00090     { 0x1e, 0x00de, "RS",  "レコード区切" },
00091     { 0x1f, 0x00e2, "US",  "ユニット区切" },
00092     { 0x7f, 0x00bf, "DEL", "削除"         },
00093
00094     //internal data
00095     { 0x1f, 0x00df, "US",  NULL }   //PC98 "_"
00096 };
00097 // Feb. 12, 2003 MIK longが抜けていた
00098 static const long p_ctrl_list_num = sizeof(p_ctrl_list) / sizeof(struct ctrl_info_t);
00099
00100 CDlgCtrlCode::CDlgCtrlCode()
00101 {
00102     m_nCode = 0;
00103 }
00104
00105 /* モーダルダイアログの表示 */
00106 int CDlgCtrlCode::DoModal(
00107     HINSTANCE   hInstance,
00108     HWND        hwndParent,
00109     LPARAM      lParam
00110 )
00111 {
00112     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_CTRLCODE, lParam );
00113 }
00114
00115 /* ダイアログデータの設定 */
00116 void CDlgCtrlCode::SetData( void )
00117 {
00118     HWND    hwndWork;
00119     int     i, count;
00120     char    tmp[10];
00121     long    lngStyle;
00122     LV_ITEM lvi;
00123
00124     /* リスト */
00125     hwndWork = ::GetDlgItem( m_hWnd, IDC_LIST_CTRLCODE );
00126     ListView_DeleteAllItems( hwndWork );  /* リストを空にする */
00127
00128     /* 行選択 */
00129     lngStyle = ::SendMessage( hwndWork, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00130     lngStyle |= LVS_EX_FULLROWSELECT;
00131     ::SendMessage( hwndWork, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lngStyle );
00132
00133     /* データ表示 */
00134     count = 0;
00135     for( i = 0; i < p_ctrl_list_num; i++ )
00136     {
00137         if( p_ctrl_list[i].jname == NULL ) continue;
00138
00139         sprintf( tmp, "0x%02X", p_ctrl_list[i].code );
00140         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00141         lvi.pszText  = tmp;
00142         lvi.iItem    = count;
00143         lvi.iSubItem = 0;
00144         lvi.lParam   = 0;
00145         ListView_InsertItem( hwndWork, &lvi );
00146
00147         if( p_ctrl_list[i].code <= 0x1f )
00148             sprintf( tmp, "^%c", '@' + p_ctrl_list[i].code );
00149         else if( p_ctrl_list[i].code == 0x7f )
00150             strcpy( tmp, "^?" );
00151         else
00152             strcpy( tmp, "･" );
00153         lvi.mask     = LVIF_TEXT;
00154         lvi.iItem    = count;
00155         lvi.iSubItem = 1;
00156         lvi.pszText  = tmp;
00157         ListView_SetItem( hwndWork, &lvi );
00158
00159         lvi.mask     = LVIF_TEXT;
00160         lvi.iItem    = count;
00161         lvi.iSubItem = 2;
00162         lvi.pszText  = (char*)p_ctrl_list[i].name;
00163         ListView_SetItem( hwndWork, &lvi );
00164
00165         lvi.mask     = LVIF_TEXT;
00166         lvi.iItem    = count;
00167         lvi.iSubItem = 3;
00168         lvi.pszText  = p_ctrl_list[i].jname;
00169         ListView_SetItem( hwndWork, &lvi );
00170
00171         count++;
00172     }
00173     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00174
00175     return;
00176 }
00177
00178 /* ダイアログデータの取得 */
00179 /* TRUE==正常  FALSE==入力エラー */
00180 int CDlgCtrlCode::GetData( void )
00181 {
00182     int     nIndex;
00183     HWND    hwndList;
00184
00185     hwndList = GetDlgItem( m_hWnd, IDC_LIST_CTRLCODE );
00186     //選択中のキー番号を探す。
00187     nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00188     if( nIndex == -1 ) return FALSE;
00189
00190     m_nCode = p_ctrl_list[nIndex].code;
00191
00192     return TRUE;
00193 }
00194
00195 BOOL CDlgCtrlCode::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00196 {
00197     HWND        hwndList;
00198     LV_COLUMN   col;
00199     RECT        rc;
00200
00201     m_hWnd = hwndDlg;
00202
00203     hwndList = GetDlgItem( hwndDlg, IDC_LIST_CTRLCODE );
00204     ::GetWindowRect( hwndList, &rc );
00205
00206     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00207     col.fmt      = LVCFMT_LEFT;
00208     col.cx       = (rc.right - rc.left) * 15 / 100;
00209     col.pszText  = "コード";
00210     col.iSubItem = 0;
00211     ListView_InsertColumn( hwndList, 0, &col );
00212
00213     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00214     col.fmt      = LVCFMT_LEFT;
00215     col.cx       = (rc.right - rc.left) * 15 / 100;
00216     col.pszText  = "表記";
00217     col.iSubItem = 1;
00218     ListView_InsertColumn( hwndList, 1, &col );
00219
00220     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00221     col.fmt      = LVCFMT_LEFT;
00222     col.cx       = (rc.right - rc.left) * 15 / 100;
00223     col.pszText  = "名前";
00224     col.iSubItem = 2;
00225     ListView_InsertColumn( hwndList, 2, &col );
00226
00227     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00228     col.fmt      = LVCFMT_LEFT;
00229     col.cx       = (rc.right - rc.left) * 46 / 100;
00230     col.pszText  = "説明";
00231     col.iSubItem = 3;
00232     ListView_InsertColumn( hwndList, 3, &col );
00233
00234     /* 基底クラスメンバ */
00235     return CDialog::OnInitDialog( m_hWnd, wParam, lParam );
00236 }
00237
00238 BOOL CDlgCtrlCode::OnBnClicked( int wID )
00239 {
00240     switch( wID )
00241     {
00242     case IDC_BUTTON_HELP:
00243         /* ヘルプ */
00244         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_CTRL_CODE_DIALOG) ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00245         return TRUE;
00246
00247     case IDOK:          /* 左右に表示 */
00248         /* ダイアログデータの取得 */
00249         ::EndDialog( m_hWnd, GetData() );
00250         return TRUE;
00251
00252     case IDCANCEL:
00253         ::EndDialog( m_hWnd, FALSE );
00254         return TRUE;
00255
00256     }
00257
00258     /* 基底クラスメンバ */
00259     return CDialog::OnBnClicked( wID );
00260 }
00261
00262 BOOL CDlgCtrlCode::OnNotify( WPARAM wParam, LPARAM lParam )
00263 {
00264     NMHDR*  pNMHDR;
00265     HWND    hwndList;
00266
00267     pNMHDR = (NMHDR*)lParam;
00268
00269     hwndList = GetDlgItem( m_hWnd, IDC_LIST_CTRLCODE );
00270
00271     if( hwndList == pNMHDR->hwndFrom )
00272     {
00273         switch( pNMHDR->code )
00274         {
00275         case NM_DBLCLK:
00276             ::EndDialog( m_hWnd, GetData() );
00277             return TRUE;
00278
00279         case LVN_KEYDOWN:
00280             {
00281                 HWND    hwndList;
00282                 NMKEY   *p = (NMKEY*)lParam;
00283                 int     i, j;
00284                 unsigned int    c;
00285                 for( i = 0; i < p_ctrl_list_num; i++ )
00286                 {
00287                     c = p_ctrl_list[i].vKey;
00288                     if( c == (p->nVKey & 0xffff) )
00289                     {
00290                         for( j = 0; j < p_ctrl_list_num; j++ )
00291                         {
00292                             if( p_ctrl_list[i].code == p_ctrl_list[j].code )
00293                             {
00294                                 hwndList = GetDlgItem( m_hWnd, IDC_LIST_CTRLCODE );
00295                                 ListView_SetItemState( hwndList, j, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00296                                 ListView_EnsureVisible( hwndList, j, FALSE );
00297
00298                                 /* ダイアログデータの取得 */
00299                                 ::EndDialog( m_hWnd, GetData() );
00300                                 return TRUE;
00301                             }
00302                         }
00303                         break;
00304                     }
00305                 }
00306             }
00307             break;
00308         }
00309     }
00310
00311     /* 基底クラスメンバ */
00312     return CDialog::OnNotify( wParam, lParam );
00313 }
00314
00315 LPVOID CDlgCtrlCode::GetHelpIdTable( void )
00316 {
00317     return (LPVOID)p_helpids;
00318 }
00319
00320 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCtrlCode.h

CDlgCtrlCode.h

コントロールコード入力ダイアログボックス [詳細]

#include "CDialog.h"

CDlgCtrlCode.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgCtrlCode
コントロールコード入力ダイアログボックス [詳細]

説明

コントロールコード入力ダイアログボックス

作者:
MIK
日付:
2002.6.2

CDlgCtrlCode.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgCtrlCode.h ソースファイル

CDlgCtrlCode.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, MIK
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 class CDlgCtrlCode;
00032
00033 #ifndef _CDLGCTRLCODE_H_
00034 #define _CDLGCTRLCODE_H_
00035
00036 #include "CDialog.h"
00040 class CDlgCtrlCode : public CDialog
00041 {
00042 public:
00043     /*
00044     ||  Constructors
00045     */
00046     CDlgCtrlCode();
00047
00048     /*
00049     ||  Attributes & Operations
00050     */
00051     int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00052
00053     int     m_nCode;                /* コード */
00054
00055 protected:
00056     /*
00057     ||  実装ヘルパ関数
00058     */
00059     BOOL    OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00060     BOOL    OnBnClicked( int );
00061     BOOL    OnNotify( WPARAM wParam, LPARAM lParam );
00062     LPVOID  GetHelpIdTable( void );
00063
00064     void    SetData( void );    /* ダイアログデータの設定 */
00065     int     GetData( void );    /* ダイアログデータの取得 */
00066 };
00067
00068
00069
00071 #endif /* _CDLGCTRLCODE_H_ */
00072
00073 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDebug.cpp

CDlgDebug.cpp

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgDebug.h"

CDlgDebug.cppのインクルード依存関係図

ソースコードを見る。

関数

INT_PTR CALLBACK CDlgDebug_Proc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

説明

作者:
Norio Nakatani

CDlgDebug.cpp で定義されています。

関数

INT_PTR CALLBACK CDlgDebug_Proc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CDlgDebug.cpp の 18 行で定義されています。

参照先 CDlgDebug::DispatchEvent()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 CDlgDebug::DoModal().

Sakura-Editorに対してSat Oct 27 02:15:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDebug.cpp ソースファイル

CDlgDebug.cpp

説明を見る。
00001
00005 /*
00006     Copyright (C) 1998-2001, Norio Nakatani
00007     Copyright (C) 2003, KEITA
00008
00009     This source code is designed for sakura editor.
00010     Please contact the copyright holder to use this code for other purpose.
00011 */
00012
00013 #include "stdafx.h"
00014 #include "sakura_rc.h"
00015 #include "CDlgDebug.h"
00016
00017 /* ダイアログプロシージャ */
00018 INT_PTR CALLBACK CDlgDebug_Proc(
00019     HWND    hwndDlg,    // handle to dialog box
00020     UINT    uMsg,       // message
00021     WPARAM  wParam,     // first message parameter
00022     LPARAM  lParam      // second message parameter
00023 )
00024 {
00025     CDlgDebug* pCDlgDebug;
00026     switch( uMsg ){
00027     case WM_INITDIALOG:
00028         pCDlgDebug = ( CDlgDebug* )lParam;
00029         if( NULL != pCDlgDebug ){
00030             return pCDlgDebug->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00031         }else{
00032             return FALSE;
00033         }
00034     default:
00035         // Modified by KEITA for WIN64 2003.9.6
00036         pCDlgDebug = ( CDlgDebug* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00037         if( NULL != pCDlgDebug ){
00038             return pCDlgDebug->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00039         }else{
00040             return FALSE;
00041         }
00042     }
00043 }
00044
00045
00046
00047 CDlgDebug::CDlgDebug()
00048 {
00049     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00050     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00051     m_hWnd = NULL;          /* このダイアログのハンドル */
00052
00053     return;
00054 }
00055
00056
00057
00058 CDlgDebug::~CDlgDebug()
00059 {
00060 //  int i;
00061 //  for( i = 0; i < MAX_TEXTARR; ++i ){
00062 //      delete m_ppTextArr[i];
00063 //      m_ppTextArr[i] = NULL;
00064 //  }
00065     return;
00066 }
00067
00068
00069
00070
00071 /* モーダルダイアログの表示 */
00072 int CDlgDebug::DoModal( HINSTANCE hInstance, HWND hwndParent, CMemory& cmemDebugInfo )
00073 {
00074     m_hInstance = hInstance;    /* アプリケーションインスタンスのハンドル */
00075     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00076     m_cmemDebugInfo = cmemDebugInfo;
00077
00078     return (int)::DialogBoxParam(
00079         m_hInstance,
00080         MAKEINTRESOURCE( IDD_DEBUG ),
00081         m_hwndParent,
00082         (DLGPROC)CDlgDebug_Proc,
00083         (LPARAM)this
00084     );
00085 }
00086
00087
00088
00089 /* ダイアログのメッセージ処理 */
00090 INT_PTR CDlgDebug::DispatchEvent(
00091     HWND hwndDlg,   // handle to dialog box
00092     UINT uMsg,      // message
00093     WPARAM wParam,  // first message parameter
00094     LPARAM lParam   // second message parameter
00095 )
00096 {
00097     WORD    wNotifyCode;
00098     WORD    wID;
00099     HWND    hwndCtl;
00100 //  int     nRet;
00101 //  LONG    lStyle;
00102     switch( uMsg ){
00103     case WM_INITDIALOG:
00104         m_hWnd = hwndDlg;
00105         // Modified by KEITA for WIN64 2003.9.6
00106 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00107
00108         ::SetDlgItemText( hwndDlg, IDC_EDIT_DEBUG, m_cmemDebugInfo.GetPtr() );
00109
00110         return TRUE;
00111     case WM_COMMAND:
00112         wNotifyCode = HIWORD( wParam ); /* 通知コード */
00113         wID         = LOWORD( wParam ); /* 項目ID､ コントロールID､ またはアクセラレータID */
00114         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00115
00116         switch( wNotifyCode ){
00117         /* ボタン／チェックボックスがクリックされた */
00118         case BN_CLICKED:
00119             switch( wID ){
00120             case IDOK:          /* 下検索 */
00121             case IDCANCEL:
00122                 ::EndDialog( hwndDlg, 0 );
00123                 return TRUE;
00124             }
00125             break;  /* BN_CLICKED */
00126         }
00127         break;  /* WM_COMMAND */
00128     }
00129     return FALSE;
00130 }
00131
00132
00133 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDebug.h

CDlgDebug.h

#include <windows.h>
#include "CMemory.h"

CDlgDebug.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgDebug

説明

作者:
Norio Nakatani

CDlgDebug.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDebug.h ソースファイル

CDlgDebug.h

説明を見る。
00001
00005 /*
00006     Copyright (C) 1998-2001, Norio Nakatani
00007
00008     This source code is designed for sakura editor.
00009     Please contact the copyright holder to use this code for other purpose.
00010 */
00011
00012 class CDlgDebug;
00013
00014 #ifndef _CDLGDEBUG_H_
00015 #define _CDLGDEBUG_H_
00016
00017 #include <windows.h>
00018 #include "CMemory.h"
00019
00020 //#define MAX_SRCHTXT 1024
00021 //#define MAX_TEXTARR 32
00022
00023 /*-----------------------------------------------------------------------
00024 クラスの宣言
00025 -----------------------------------------------------------------------*/
00026 class CDlgDebug
00027 {
00028 public:
00029     /*
00030     ||  Constructors
00031     */
00032     CDlgDebug();
00033     ~CDlgDebug();
00034
00035     /*
00036     ||  Attributes & Operations
00037     */
00038     INT_PTR DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* ダイアログのメッセージ処理 */
00039     int DoModal( HINSTANCE, HWND, CMemory& );   /* モーダルダイアログの表示 */
00040
00041     HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00042     HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00043     HWND        m_hWnd;     /* このダイアログのハンドル */
00044
00045     CMemory     m_cmemDebugInfo;
00046
00047
00048 protected:
00049     /*
00050     ||  実装ヘルパ関数
00051     */
00052 };
00053
00054
00055
00057 #endif /* _CDLGDEBUG_H_ */
00058
00059 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDiff.cpp

CDlgDiff.cpp

DIFF差分表示ダイアログボックス [詳細]

#include "stdafx.h"
#include <string.h>
#include "sakura_rc.h"
#include "CDlgOpenFile.h"
#include "CDlgDiff.h"
#include "etc_uty.h"
#include "debug.h"
#include "CEditDoc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "sakura.hh"

CDlgDiff.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

DIFF差分表示ダイアログボックス

作者:
MIK
日付:
2002.5.27

CDlgDiff.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_DIFF_DST,        HIDC_BUTTON_DIFF_DST,
    IDC_CHECK_DIFF_OPT_BLINE,   HIDC_CHECK_DIFF_OPT_BLINE,
    IDC_CHECK_DIFF_OPT_CASE,    HIDC_CHECK_DIFF_OPT_CASE,
    IDC_CHECK_DIFF_OPT_SPACE,   HIDC_CHECK_DIFF_OPT_SPACE,
    IDC_CHECK_DIFF_OPT_SPCCHG,  HIDC_CHECK_DIFF_OPT_SPCCHG,
    IDC_CHECK_DIFF_OPT_TABSPC,  HIDC_CHECK_DIFF_OPT_TABSPC,
    IDC_EDIT_DIFF_DST,          HIDC_EDIT_DIFF_DST,
    IDC_FRAME_DIFF_FILE12,      HIDC_RADIO_DIFF_FILE1,
    IDC_RADIO_DIFF_FILE1,       HIDC_RADIO_DIFF_FILE1,
    IDC_RADIO_DIFF_FILE2,       HIDC_RADIO_DIFF_FILE2,
    IDC_FRAME_DIFF_DST,         HIDC_RADIO_DIFF_DST1,
    IDC_RADIO_DIFF_DST1,        HIDC_RADIO_DIFF_DST1,
    IDC_RADIO_DIFF_DST2,        HIDC_RADIO_DIFF_DST2,
    IDC_LIST_DIFF_FILES,        HIDC_LIST_DIFF_FILES,
    IDC_STATIC_DIFF_SRC,        HIDC_STATIC_DIFF_SRC,
    IDOK,                       HIDC_DIFF_IDOK,
    IDCANCEL,                   HIDC_DIFF_IDCANCEL,
    IDC_BUTTON_HELP,            HIDC_BUTTON_DIFF_HELP,
    IDC_CHECK_DIFF_EXEC_STATE,  HIDC_CHECK_DIFF_EXEC_STATE,
    IDC_CHECK_NOTIFYNOTFOUND,   HIDC_CHECK_DIFF_NOTIFYNOTFOUND,
    IDC_CHECK_SEARCHALL,        HIDC_CHECK_DIFF_SEARCHALL,

    0, 0
}

CDlgDiff.cpp の 32 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDiff.cpp ソースファイル

CDlgDiff.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, Stonee, genta, JEPRO, YAZAKI
00010     Copyright (C) 2002, aroka, MIK, Moca
00011     Copyright (C) 2003, MIK, genta
00012     Copyright (C) 2004, MIK, genta, じゅうじ
00013     Copyright (C) 2006, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include <string.h>
00021 #include "sakura_rc.h"
00022 #include "CDlgOpenFile.h"
00023 #include "CDlgDiff.h"
00024 #include "etc_uty.h"
00025 #include "debug.h"
00026 #include "CEditDoc.h"
00027 #include "global.h"
00028 #include "funccode.h"
00029 #include "mymessage.h"
00030
00031 #include "sakura.hh"
00032 const DWORD p_helpids[] = { //13200
00033     IDC_BUTTON_DIFF_DST,        HIDC_BUTTON_DIFF_DST,
00034     IDC_CHECK_DIFF_OPT_BLINE,   HIDC_CHECK_DIFF_OPT_BLINE,
00035     IDC_CHECK_DIFF_OPT_CASE,    HIDC_CHECK_DIFF_OPT_CASE,
00036     IDC_CHECK_DIFF_OPT_SPACE,   HIDC_CHECK_DIFF_OPT_SPACE,
00037     IDC_CHECK_DIFF_OPT_SPCCHG,  HIDC_CHECK_DIFF_OPT_SPCCHG,
00038     IDC_CHECK_DIFF_OPT_TABSPC,  HIDC_CHECK_DIFF_OPT_TABSPC,
00039     IDC_EDIT_DIFF_DST,          HIDC_EDIT_DIFF_DST,
00040     IDC_FRAME_DIFF_FILE12,      HIDC_RADIO_DIFF_FILE1,
00041     IDC_RADIO_DIFF_FILE1,       HIDC_RADIO_DIFF_FILE1,
00042     IDC_RADIO_DIFF_FILE2,       HIDC_RADIO_DIFF_FILE2,
00043     IDC_FRAME_DIFF_DST,         HIDC_RADIO_DIFF_DST1,
00044     IDC_RADIO_DIFF_DST1,        HIDC_RADIO_DIFF_DST1,
00045     IDC_RADIO_DIFF_DST2,        HIDC_RADIO_DIFF_DST2,
00046     IDC_LIST_DIFF_FILES,        HIDC_LIST_DIFF_FILES,
00047     IDC_STATIC_DIFF_SRC,        HIDC_STATIC_DIFF_SRC,
00048     IDOK,                       HIDC_DIFF_IDOK,
00049     IDCANCEL,                   HIDC_DIFF_IDCANCEL,
00050     IDC_BUTTON_HELP,            HIDC_BUTTON_DIFF_HELP,
00051     IDC_CHECK_DIFF_EXEC_STATE,  HIDC_CHECK_DIFF_EXEC_STATE, //DIFF差分が見つからないときにメッセージを表示  2003.05.12 MIK
00052     IDC_CHECK_NOTIFYNOTFOUND,   HIDC_CHECK_DIFF_NOTIFYNOTFOUND, // 見つからないときにメッセージを表示   // 2006.10.10 ryoji
00053     IDC_CHECK_SEARCHALL,        HIDC_CHECK_DIFF_SEARCHALL,      // 先頭（末尾）から再検索する   // 2006.10.10 ryoji
00054 //  IDC_FRAME_DIFF_SEARCH_MSG,  HIDC_FRAME_DIFF_SEARCH_MSG,
00055 //  IDC_STATIC,                     -1,
00056     0, 0
00057 };
00058
00059 CDlgDiff::CDlgDiff()
00060     : m_nIndexSave( 0 )
00061 {
00062     strcpy( m_szFile1, "" );
00063     strcpy( m_szFile2, "" );
00064     //m_nDiffFlgFile12 = 1;
00065     m_nDiffFlgOpt    = 0;
00066     m_bIsModified    = FALSE;
00067     m_bIsModifiedDst = FALSE;
00068     m_hWnd_Dst       = NULL;
00069     return;
00070 }
00071
00072 /* モーダルダイアログの表示 */
00073 int CDlgDiff::DoModal(
00074     HINSTANCE   hInstance,
00075     HWND        hwndParent,
00076     LPARAM      lParam,
00077     const char* pszPath,        //自ファイル
00078     BOOL        bIsModified     //自ファイル編集中？
00079 )
00080 {
00081     strcpy( m_szFile1, pszPath );
00082     m_bIsModified = bIsModified;
00083
00084     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_DIFF, lParam );
00085 }
00086
00087 BOOL CDlgDiff::OnBnClicked( int wID )
00088 {
00089     switch( wID )
00090     {
00091     case IDC_BUTTON_HELP:
00092         /* ヘルプ */
00093         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_DIFF_DIALOG) );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00094         return TRUE;
00095
00096     case IDC_BUTTON_DIFF_DST:   /* 参照 */
00097         {
00098             CDlgOpenFile    cDlgOpenFile;
00099             char            szPath[_MAX_PATH];
00100             strcpy( szPath, m_szFile2 );
00101             /* ファイルオープンダイアログの初期化 */
00102             cDlgOpenFile.Create(
00103                 m_hInstance,
00104                 m_hWnd,
00105                 "*.*",
00106                 m_szFile1 /*m_szFile2*/
00107             );
00108             if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) )
00109             {
00110                 strcpy( m_szFile2, szPath );
00111                 ::SetDlgItemText( m_hWnd, IDC_EDIT_DIFF_DST, m_szFile2 );
00112                 //外部ファイルを選択状態に
00113                 ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST1, TRUE );
00114                 ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST2, FALSE );
00115                 ::SendMessage( ::GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES), LB_SETCURSEL, (WPARAM)-1, 0 );
00116             }
00117         }
00118         return TRUE;
00119
00120     case IDOK:          /* 左右に表示 */
00121         /* ダイアログデータの取得 */
00122         ::EndDialog( m_hWnd, GetData() );
00123         return TRUE;
00124
00125     case IDCANCEL:
00126         ::EndDialog( m_hWnd, FALSE );
00127         return TRUE;
00128
00129     case IDC_RADIO_DIFF_DST1:
00130         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST2, FALSE );
00131         //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_DIFF_DST ), TRUE );
00132         //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_DIFF_DST ), TRUE );
00133         //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES ), FALSE );
00134         //  Feb. 28, 2004 genta 選択解除前に前回の位置を記憶
00135         {
00136             int n = ::SendMessage( GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES ), LB_GETCURSEL, 0, 0 );
00137             if( n != LB_ERR ){
00138                 m_nIndexSave = n;
00139             }
00140         }
00141         ::SendMessage( ::GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES), LB_SETCURSEL, (WPARAM)-1, 0 );
00142         return TRUE;
00143
00144     case IDC_RADIO_DIFF_DST2:
00145         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST1, FALSE );
00146         //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_DIFF_DST ), FALSE );
00147         //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_DIFF_DST ), FALSE );
00148         //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES ), TRUE );
00149         {
00150             //  Aug. 9, 2003 genta
00151             //  ListBoxが選択されていなかったら，先頭のファイルを選択する．
00152             HWND hwndList = GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES );
00153             if( ::SendMessage( hwndList, LB_GETCURSEL, 0, 0 ) == LB_ERR )
00154             {
00155                 ::SendMessage( hwndList, LB_SETCURSEL, m_nIndexSave, 0 );
00156             }
00157         }
00158         return TRUE;
00159
00160     case IDC_RADIO_DIFF_FILE1:
00161         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_FILE2, FALSE );
00162         return TRUE;
00163
00164     case IDC_RADIO_DIFF_FILE2:
00165         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_FILE1, FALSE );
00166         return TRUE;
00167     }
00168
00169     /* 基底クラスメンバ */
00170     return CDialog::OnBnClicked( wID );
00171 }
00172
00173 /* ダイアログデータの設定 */
00174 void CDlgDiff::SetData( void )
00175 {
00176     //自ファイル
00177     ::SetDlgItemText( m_hWnd, IDC_STATIC_DIFF_SRC, m_szFile1 );
00178
00179     //オプション
00180     m_nDiffFlgOpt = m_pShareData->m_nDiffFlgOpt;
00181     if( m_nDiffFlgOpt & 0x0001 ) ::CheckDlgButton( m_hWnd, IDC_CHECK_DIFF_OPT_CASE,   TRUE );
00182     if( m_nDiffFlgOpt & 0x0002 ) ::CheckDlgButton( m_hWnd, IDC_CHECK_DIFF_OPT_SPACE,  TRUE );
00183     if( m_nDiffFlgOpt & 0x0004 ) ::CheckDlgButton( m_hWnd, IDC_CHECK_DIFF_OPT_SPCCHG, TRUE );
00184     if( m_nDiffFlgOpt & 0x0008 ) ::CheckDlgButton( m_hWnd, IDC_CHECK_DIFF_OPT_BLINE,  TRUE );
00185     if( m_nDiffFlgOpt & 0x0010 ) ::CheckDlgButton( m_hWnd, IDC_CHECK_DIFF_OPT_TABSPC, TRUE );
00186
00187     //新旧ファイル
00188     if( m_nDiffFlgOpt & 0x0020 )
00189     {
00190         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_FILE1, FALSE );
00191         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_FILE2, TRUE );
00192     }
00193     else
00194     {
00195         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_FILE1, TRUE );
00196         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_FILE2, FALSE );
00197     }
00198     //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_FRAME_DIFF_FILE12 ), FALSE );
00199     //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_DIFF_FILE1 ), FALSE );
00200     //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_DIFF_FILE2 ), FALSE );
00201
00202     //DIFF差分が見つからないときにメッセージを表示 2003.05.12 MIK
00203     if( m_nDiffFlgOpt & 0x0040 ) ::CheckDlgButton( m_hWnd, IDC_CHECK_DIFF_EXEC_STATE, TRUE );
00204
00205     /* 見つからないときメッセージを表示 */
00206     ::CheckDlgButton( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND, m_pShareData->m_Common.m_bNOTIFYNOTFOUND );
00207
00208     /* 先頭（末尾）から再検索 */
00209     ::CheckDlgButton( m_hWnd, IDC_CHECK_SEARCHALL, m_pShareData->m_Common.m_bSearchAll );
00210
00211     /* 編集中のファイル一覧を作成する */
00212     {
00213         HWND        hwndList;
00214         int         nRowNum;
00215         EditNode    *pEditNode;
00216         FileInfo    *pFileInfo;
00217         int         i;
00218         int         nItem;
00219         char        szName[_MAX_PATH];
00220         CEditDoc*   pCEditDoc = (CEditDoc*)m_lParam;
00221         int         count = 0;
00222
00223         /* リストのハンドル取得 */
00224         hwndList = :: GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES );
00225
00226         /* 現在開いている編集窓のリストをメニューにする */
00227         nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNode, TRUE );
00228         if( nRowNum > 0 )
00229         {
00230             for( i = 0; i < nRowNum; i++ )
00231             {
00232                 /* トレイからエディタへの編集ファイル名要求通知 */
00233                 ::SendMessage( pEditNode[i].m_hWnd, MYWM_GETFILEINFO, 0, 0 );
00234                 pFileInfo = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00235
00236                 /* 自分ならスキップ */
00237                 if ( pEditNode[i].m_hWnd == pCEditDoc->m_hwndParent )
00238                 {
00239                     continue;
00240                 }
00241
00242                 /* ファイル名を作成する */
00243                 wsprintf( szName, "%s %s",
00244                     ( strlen( pFileInfo->m_szPath ) ) ? pFileInfo->m_szPath : "(無題)",
00245                     pFileInfo->m_bIsModified ? "*" : " "
00246                 );
00247
00248                 // gm_pszCodeNameArr_3 からコピーするように変更
00249                 if( 0 < pFileInfo->m_nCharCode && pFileInfo->m_nCharCode < CODE_CODEMAX ){
00250                     strcat( szName, gm_pszCodeNameArr_3[pFileInfo->m_nCharCode] );
00251                 }
00252 #if 0
00253                 /* 文字コードを付与する */
00254                 switch( pFileInfo->m_nCharCode )
00255                 {
00256                 case CODE_JIS:  /* JIS */
00257                     strcat( szName, "  [JIS]" );
00258                     break;
00259                 case CODE_EUC:  /* EUC */
00260                     strcat( szName, "  [EUC]" );
00261                     break;
00262                 case CODE_UNICODE:  /* Unicode */
00263                     strcat( szName, "  [Unicode]" );
00264                     break;
00265                 case CODE_UTF8: /* UTF-8 */
00266                     strcat( szName, "  [UTF-8]" );
00267                     break;
00268                 case CODE_UTF7: /* UTF-7 */
00269                     strcat( szName, "  [UTF-7]" );
00270                     break;
00271                 default:    /* SJIS */
00272                     break;
00273                 }
00274 #endif
00275
00276                 /* リストに登録する */
00277                 nItem = ::SendMessage( hwndList, LB_ADDSTRING, 0, (LPARAM)(char*)szName );
00278                 ::SendMessage( hwndList, LB_SETITEMDATA, nItem, (LPARAM)pEditNode[i].m_hWnd );
00279                 count++;
00280             }
00281
00282             delete [] pEditNode;
00283             // 2002/11/01 Moca 追加 リストビューの横幅を設定。これをやらないと水平スクロールバーが使えない
00284             ::SendMessage( hwndList, LB_SETHORIZONTALEXTENT, (WPARAM)1000, 0 );
00285
00286             /* 最初を選択 */
00287             //::SendMessage( hwndList, LB_SETCURSEL, (WPARAM)0, 0 );
00288         }
00289
00290         //  From Here 2004.02.22 じゅうじ
00291         //  開いているファイルがある場合には初期状態でそちらを優先
00292         if( count == 0 )
00293         {
00294             /* 相手ファイルの選択 */
00295             ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST1, TRUE );
00296             ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST2, FALSE );
00297             /* その他の編集中リストはなし */
00298             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_DIFF_DST2 ), FALSE );
00299             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES ), FALSE );
00300         }
00301         else
00302         {
00303             /* 相手ファイルの選択 */
00304             ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST1, FALSE );
00305             ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST2, TRUE );
00306             //  ListBoxが選択されていなかったら，先頭のファイルを選択する．
00307             HWND hwndList = GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES );
00308             if( ::SendMessage( hwndList, LB_GETCURSEL, 0, 0 ) == LB_ERR )
00309             {
00310                 ::SendMessage( hwndList, LB_SETCURSEL, 0 /*先頭アイテム*/, 0 );
00311             }
00312         }
00313         //  To Here 2004.02.22 じゅうじ
00314         //  Feb. 28, 2004 genta 一番上を選択位置とする．
00315         m_nIndexSave = 0;
00316     }
00317
00318     return;
00319 }
00320
00321 /* ダイアログデータの取得 */
00322 /* TRUE==正常  FALSE==入力エラー */
00323 int CDlgDiff::GetData( void )
00324 {
00325     BOOL    ret = TRUE;
00326
00327     //DIFFオプション
00328     m_nDiffFlgOpt = 0;
00329     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_DIFF_OPT_CASE   ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0001;
00330     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_DIFF_OPT_SPACE  ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0002;
00331     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_DIFF_OPT_SPCCHG ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0004;
00332     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_DIFF_OPT_BLINE  ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0008;
00333     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_DIFF_OPT_TABSPC ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0010;
00334     //ファイル新旧
00335     if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_DIFF_FILE2      ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0020;
00336     //DIFF差分が見つからないときにメッセージを表示 2003.05.12 MIK
00337     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_DIFF_EXEC_STATE ) == BST_CHECKED ) m_nDiffFlgOpt |= 0x0040;
00338     m_pShareData->m_nDiffFlgOpt = m_nDiffFlgOpt;
00339
00340     //相手ファイル名
00341     strcpy( m_szFile2, "" );
00342     m_hWnd_Dst = NULL;
00343     m_bIsModifiedDst = FALSE;
00344     if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_DIFF_DST1 ) == BST_CHECKED )
00345     {
00346         ::GetDlgItemText( m_hWnd, IDC_EDIT_DIFF_DST, m_szFile2, sizeof( m_szFile2 ) );
00347         //  2004.05.19 MIK 外部ファイルが指定されていない場合はキャンセル
00348         //相手ファイルが指定されてなければキャンセル
00349         if( m_szFile2[0] == '\0' ) ret = FALSE;
00350
00351     }
00352     else if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_DIFF_DST2 ) == BST_CHECKED )
00353     {
00354         HWND        hwndList;
00355         int         nItem;
00356         FileInfo    *pFileInfo;
00357
00358         /* リストから相手のウインドウハンドルを取得 */
00359         hwndList = :: GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES );
00360         nItem = ::SendMessage( hwndList, LB_GETCURSEL, 0, 0 );
00361         if( nItem != LB_ERR )
00362         {
00363             m_hWnd_Dst = (HWND)::SendMessage( hwndList, LB_GETITEMDATA, nItem, 0 );
00364
00365             /* トレイからエディタへの編集ファイル名要求通知 */
00366             ::SendMessage( m_hWnd_Dst, MYWM_GETFILEINFO, 0, 0 );
00367             pFileInfo = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
00368
00369             strcpy( m_szFile2, pFileInfo->m_szPath );
00370             m_bIsModifiedDst = pFileInfo->m_bIsModified;
00371         }
00372         else
00373         {
00374             ret = FALSE;
00375         }
00376     }
00377     else
00378     {
00379         ret = FALSE;
00380     }
00381
00382     /* 見つからないときメッセージを表示 */
00383     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND ) == BST_CHECKED )
00384         m_pShareData->m_Common.m_bNOTIFYNOTFOUND = TRUE;
00385     else
00386         m_pShareData->m_Common.m_bNOTIFYNOTFOUND = FALSE;
00387
00388     /* 先頭（末尾）から再検索 */
00389     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_SEARCHALL ) == BST_CHECKED )
00390         m_pShareData->m_Common.m_bSearchAll = TRUE;
00391     else
00392         m_pShareData->m_Common.m_bSearchAll = FALSE;
00393
00394     //相手ファイルが指定されてなければキャンセル
00395     //  2004.02.21 MIK 相手が無題だと比較できないので判定削除
00396     //if( m_szFile2[0] == '\0' ) ret = FALSE;
00397
00398     return ret;
00399 }
00400
00401 BOOL CDlgDiff::OnCbnSelChange( HWND hwndCtl, int wID )
00402 {
00403     HWND    hwndList;
00404
00405     hwndList = GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES );
00406
00407     if( hwndList == hwndCtl )
00408     {
00409         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST1, FALSE );
00410         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST2, TRUE );
00411         return TRUE;
00412     }
00413
00414     /* 基底クラスメンバ */
00415     return CDialog::OnCbnSelChange( hwndCtl, wID );
00416 }
00417
00418 BOOL CDlgDiff::OnEditChange( HWND hwndCtl, int wID )
00419 {
00420     HWND    hwndEdit;
00421
00422     hwndEdit = GetDlgItem( m_hWnd, IDC_EDIT_DIFF_DST );
00423
00424     if( hwndEdit == hwndCtl )
00425     {
00426         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST1, TRUE );
00427         ::CheckDlgButton( m_hWnd, IDC_RADIO_DIFF_DST2, FALSE );
00428         //  Feb. 28, 2004 genta 選択解除前に前回の位置を記憶して選択解除
00429         int n = ::SendMessage( GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES ), LB_GETCURSEL, 0, 0 );
00430         if( n != LB_ERR ){
00431             m_nIndexSave = n;
00432         }
00433         ::SendMessage( ::GetDlgItem( m_hWnd, IDC_LIST_DIFF_FILES), LB_SETCURSEL, (WPARAM)-1, 0 );
00434         return TRUE;
00435     }
00436
00437     /* 基底クラスメンバ */
00438     return CDialog::OnCbnSelChange( hwndCtl, wID );
00439 }
00440
00441 LPVOID CDlgDiff::GetHelpIdTable( void )
00442 {
00443     return (LPVOID)p_helpids;
00444 }
00445
00446 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDiff.h

CDlgDiff.h

DIFF差分表示ダイアログボックス [詳細]

#include "CDialog.h"

CDlgDiff.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgDiff
DIFF差分表示ダイアログボックス [詳細]

説明

DIFF差分表示ダイアログボックス

作者:
MIK
日付:
2002.5.27

CDlgDiff.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgDiff.h ソースファイル

CDlgDiff.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, MIK
00009     Copyright (C) 2004, genta
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 class CDlgDiff;
00033
00034 #ifndef _CDLGDIFF_H_
00035 #define _CDLGDIFF_H_
00036
00037 #include "CDialog.h"
00041 class CDlgDiff : public CDialog
00042 {
00043 public:
00044     /*
00045     ||  Constructors
00046     */
00047     CDlgDiff();
00048
00049     /*
00050     ||  Attributes & Operations
00051     */
00052     int DoModal( HINSTANCE, HWND, LPARAM, const char*, BOOL );  /* モーダルダイアログの表示 */
00053
00054     char    m_szFile1[_MAX_PATH];   /* 自ファイル */
00055     char    m_szFile2[_MAX_PATH];   /* 相手ファイル */
00056     BOOL    m_bIsModified;          /* 自ファイル更新中 */
00057     BOOL    m_bIsModifiedDst;       /* 相手ファイル更新中 */
00058     int     m_nDiffFlgOpt;          /* DIFFオプション */
00059     //int       m_nDiffFlgFile12;       /* 新旧ファイル */
00060     HWND    m_hWnd_Dst;             /* 相手ウインドウハンドル */
00061
00062 protected:
00063     /*
00064     ||  実装ヘルパ関数
00065     */
00066     BOOL    OnBnClicked( int );
00067     BOOL    OnCbnSelChange( HWND hwndCtl, int wID );
00068     BOOL    OnEditChange( HWND hwndCtl, int wID );
00069     LPVOID  GetHelpIdTable(void);
00070
00071     void    SetData( void );    /* ダイアログデータの設定 */
00072     int     GetData( void );    /* ダイアログデータの取得 */
00073
00074 private:
00075     //  Feb. 28, 2004 genta 最後に選択されていた番号を保存する
00076     int m_nIndexSave;
00077 };
00078
00079
00080
00082 #endif /* _CDLGDIFF_H_ */
00083
00084 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgExec.cpp

CDlgExec.cpp

外部コマンド実行ダイアログ [詳細]

#include "stdafx.h"
#include "CDlgExec.h"
#include "funccode.h"
#include "sakura_rc.h"
#include "etc_uty.h"
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
#include "CDlgOpenFile.h"
#include "debug.h"
#include "sakura.hh"

CDlgExec.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

外部コマンド実行ダイアログ

作者:
Norio Nakatani

CDlgExec.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_REFERENCE,           HIDC_EXEC_BUTTON_REFERENCE,
    IDOK,                           HIDOK_EXEC,
    IDCANCEL,                       HIDCANCEL_EXEC,
    IDC_BUTTON_HELP,                HIDC_EXEC_BUTTON_HELP,
    IDC_CHECK_GETSTDOUT,            HIDC_EXEC_CHECK_GETSTDOUT,
    IDC_COMBO_m_szCommand,          HIDC_EXEC_COMBO_m_szCommand,
    IDC_RADIO_OUTPUT,               HIDC_RADIO_OUTPUT,
    IDC_RADIO_EDITWINDOW,           HIDC_RADIO_EDITWINDOW,
    IDC_CHECK_SENDSTDIN,            HIDC_CHECK_SENDSTDIN,

    0, 0
}

CDlgExec.cpp の 31 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgExec.cpp ソースファイル

CDlgExec.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009     Copyright (C) 2001, jepro, Stonee
00010     Copyright (C) 2002, aroka, YAZAKI, MIK
00011     Copyright (C) 2006, ryoji
00012     Copyright (C) 2007, maru
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CDlgExec.h"
00020 #include "funccode.h"   //Stonee, 2001/03/12  コメントアウトされてたのを有効にした
00021 #include "sakura_rc.h"
00022 #include "etc_uty.h"    //Stonee, 2001/03/12
00023 #include <windows.h>        //Mar. 28, 2001 JEPRO (一応入れたが不要？)
00024 #include <stdio.h>          //Mar. 28, 2001 JEPRO (一応入れたが不要？)
00025 #include <commctrl.h>       //Mar. 28, 2001 JEPRO
00026 #include "CDlgOpenFile.h"   //Mar. 28, 2001 JEPRO
00027 #include "debug.h"// 2002/2/10 aroka ヘッダ整理
00028
00029 //外部コマンド CDlgExec.cpp //@@@ 2002.01.07 add start MIK
00030 #include "sakura.hh"
00031 const DWORD p_helpids[] = { //12100
00032     IDC_BUTTON_REFERENCE,           HIDC_EXEC_BUTTON_REFERENCE,     //参照
00033     IDOK,                           HIDOK_EXEC,                     //実行
00034     IDCANCEL,                       HIDCANCEL_EXEC,                 //キャンセル
00035     IDC_BUTTON_HELP,                HIDC_EXEC_BUTTON_HELP,          //ヘルプ
00036     IDC_CHECK_GETSTDOUT,            HIDC_EXEC_CHECK_GETSTDOUT,      //標準出力を得る
00037     IDC_COMBO_m_szCommand,          HIDC_EXEC_COMBO_m_szCommand,    //コマンド
00038     IDC_RADIO_OUTPUT,               HIDC_RADIO_OUTPUT,              //標準出力リダイレクト先：アウトプットウィンドウ
00039     IDC_RADIO_EDITWINDOW,           HIDC_RADIO_EDITWINDOW,          //標準出力リダイレクト先：編集中のウィンドウ
00040     IDC_CHECK_SENDSTDIN,            HIDC_CHECK_SENDSTDIN,           //標準入力に送る
00041 //  IDC_STATIC,                     -1,
00042     0, 0
00043 };  //@@@ 2002.01.07 add end MIK
00044
00045 CDlgExec::CDlgExec()
00046 {
00047     m_szCommand[0] = '\0';  /* コマンドライン */
00048 //  m_bGetStdout = /*FALSE*/TRUE;   // 標準出力を得る   //Mar. 21, 2001 JEPRO [得ない]をデフォルトに変更    //Jul. 03, 2001 JEPRO [得る]がデフォルトとなるように戻した
00049
00050     return;
00051 }
00052
00053
00054
00055
00056 /* モーダルダイアログの表示 */
00057 int CDlgExec::DoModal( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
00058 {
00059     m_szCommand[0] = '\0';  /* コマンドライン */
00060     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_EXEC, lParam );
00061 }
00062
00063
00064
00065
00066 /* ダイアログデータの設定 */
00067 void CDlgExec::SetData( void )
00068 {
00069 //  MYTRACE( "CDlgExec::SetData()" );
00070     int     i;
00071     HWND    hwndCombo;
00072
00073     /*****************************
00074     *           初期             *
00075     *****************************/
00076     /* ユーザーがコンボ ボックスのエディット コントロールに入力できるテキストの長さを制限する */
00077     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_m_szCommand ), CB_LIMITTEXT, (WPARAM)sizeof( m_szCommand ) - 1, 0 );
00078     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00079     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_m_szCommand ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00080
00081
00082     // 標準出力を得る
00083 //  From Here Sept. 12, 2000 jeprotest
00084 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00085 //  ::CheckDlgButton( m_hWnd, IDC_CHECK_GETSTDOUT, m_pShareData->m_bGetStdout/*m_bGetStdout*/ ? BST_CHECKED : BST_UNCHECKED );
00086 //  ::CheckDlgButton( m_hWnd, IDC_CHECK_GETSTDOUT, TRUE );
00087 //  To Here Sept. 12, 2000  うまくいかないので元に戻してある
00088
00089     {   //  From Here 2007.01.02 maru 引数を拡張のため
00090         //  マクロからの呼び出しではShareDataに保存させないように，ShareDataとの受け渡しはExecCmdの外で
00091         int nExecFlgOpt;
00092         nExecFlgOpt = m_pShareData->m_nExecFlgOpt;
00093
00094         ::CheckDlgButton( m_hWnd, IDC_CHECK_GETSTDOUT, nExecFlgOpt & 0x01 ? BST_CHECKED : BST_UNCHECKED );
00095         ::CheckDlgButton( m_hWnd, IDC_RADIO_OUTPUT, nExecFlgOpt & 0x02 ? BST_UNCHECKED : BST_CHECKED );
00096         ::CheckDlgButton( m_hWnd, IDC_RADIO_EDITWINDOW, nExecFlgOpt & 0x02 ? BST_CHECKED : BST_UNCHECKED );
00097         ::CheckDlgButton( m_hWnd, IDC_CHECK_SENDSTDIN, nExecFlgOpt & 0x04 ? BST_CHECKED : BST_UNCHECKED );
00098
00099         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_OUTPUT ), nExecFlgOpt & 0x01 ? TRUE : FALSE );
00100         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_EDITWINDOW ), nExecFlgOpt & 0x01 ? TRUE : FALSE );
00101     }   //  To Here 2007.01.02 maru 引数を拡張のため
00102
00103     /*****************************
00104     *         データ設定         *
00105     *****************************/
00106 //  HWND hwndCombo;
00107     strcpy( m_szCommand, m_pShareData->m_szCmdArr[0] );
00108     hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_m_szCommand );
00109     ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
00110     ::SetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szCommand );
00111     for( i = 0; i < m_pShareData->m_nCmdArrNum; ++i ){
00112         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szCmdArr[i] );
00113     }
00114     ::SendMessage( hwndCombo, CB_SETCURSEL, 0, 0 );
00115     return;
00116 }
00117
00118
00119
00120
00121 /* ダイアログデータの取得 */
00122 int CDlgExec::GetData( void )
00123 {
00124     ::GetDlgItemText( m_hWnd, IDC_COMBO_m_szCommand, m_szCommand, sizeof( m_szCommand ));
00125     {   //  From Here 2007.01.02 maru 引数を拡張のため
00126         //  マクロからの呼び出しではShareDataに保存させないように，ShareDataとの受け渡しはExecCmdの外で
00127         int nFlgOpt = 0;
00128         nFlgOpt |= ( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_GETSTDOUT ) ) ? 0x01 : 0;   // 標準出力を得る
00129         nFlgOpt |= ( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_EDITWINDOW ) ) ? 0x02 : 0;  // 標準出力を編集中のウインドウへ
00130         nFlgOpt |= ( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_SENDSTDIN ) ) ? 0x04 : 0;   // 編集中ファイルを標準入力へ
00131         m_pShareData->m_nExecFlgOpt = nFlgOpt;
00132     }   //  To Here 2007.01.02 maru 引数を拡張のため
00133     return 1;
00134 }
00135
00136
00137
00138 BOOL CDlgExec::OnBnClicked( int wID )
00139 {
00140 //  int nRet;
00141 //  CEditView*  pcEditView = (CEditView*)m_lParam;
00142     switch( wID ){
00143     //  From Here Sept. 12, 2000 jeprotest
00144     case IDC_CHECK_GETSTDOUT:
00145 //@@@ 2002.01.08 YAZAKI GetData()で取得するため
00146 #if 0
00147 //      if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_GETSTDOUT ) ){
00148         if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_GETSTDOUT ) ){
00149              m_pShareData->m_bGetStdout = TRUE;
00150         }else{
00151              m_pShareData->m_bGetStdout = FALSE;
00152         }
00153 #endif
00154         {   //  From Here 2007.01.02 maru 引数を拡張のため
00155             BOOL bEnabled;
00156             bEnabled = (BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_GETSTDOUT)) ? TRUE : FALSE;
00157             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_OUTPUT ), bEnabled );
00158             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_EDITWINDOW ), bEnabled );
00159         }   //  To Here 2007.01.02 maru 引数を拡張のため
00160         break;
00161     //  To Here Sept. 12, 2000 うまくいかないので元に戻してある
00162     case IDC_BUTTON_HELP:
00163         /* 「検索」のヘルプ */
00164         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00165         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_EXECCOMMAND_DIALOG) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00166         break;
00167
00168     //From Here Mar. 28, 2001 JEPRO
00169     case IDC_BUTTON_REFERENCE:  /* ファイル名の「参照...」ボタン */
00170         {
00171             CDlgOpenFile    cDlgOpenFile;
00172             char            szPath[_MAX_PATH + 1];
00173             strcpy( szPath, m_szCommand );
00174             /* ファイルオープンダイアログの初期化 */
00175             cDlgOpenFile.Create(
00176                 m_hInstance,
00177                 m_hWnd,
00178                 "*.com;*.exe;*.bat",
00179                 m_szCommand
00180             );
00181             if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00182                 strcpy( m_szCommand, szPath );
00183                 ::SetDlgItemText( m_hWnd, IDC_COMBO_m_szCommand, m_szCommand );
00184             }
00185         }
00186         return TRUE;
00187     //To Here Mar. 28, 2001
00188
00189     case IDOK:          /* 下検索 */
00190         /* ダイアログデータの取得 */
00191         GetData();
00192         CloseDialog( 1 );
00193         return TRUE;
00194     case IDCANCEL:
00195         CloseDialog( 0 );
00196         return TRUE;
00197     }
00198     return FALSE;
00199 }
00200
00201 //@@@ 2002.01.18 add start
00202 LPVOID CDlgExec::GetHelpIdTable(void)
00203 {
00204     return (LPVOID)p_helpids;
00205 }
00206 //@@@ 2002.01.18 add end
00207
00208 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgExec.h

CDlgExec.h

外部コマンド実行ダイアログ [詳細]

#include "CDialog.h"

CDlgExec.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgExec

説明

外部コマンド実行ダイアログ

作者:
Norio Nakatani

CDlgExec.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:38 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgExec.h ソースファイル

CDlgExec.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, YAZAKI
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013 #include "CDialog.h"
00014
00015 #ifndef _CDLGEXEC_H_
00016 #define _CDLGEXEC_H_
00017
00018 /*-----------------------------------------------------------------------
00019 クラスの宣言
00020 -----------------------------------------------------------------------*/
00021 class CDlgExec : public CDialog
00022 {
00023 public:
00024     /*
00025     ||  Constructors
00026     */
00027     CDlgExec();
00028     /*
00029     ||  Attributes & Operations
00030     */
00031     int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00032
00033     char    m_szCommand[1024 + 1];  /* コマンドライン */
00034 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00035 //  BOOL    m_bGetStdout;   // 標準出力を得る
00036
00037
00038 protected:
00039     /* オーバーライド? */
00040     int GetData( void );    /* ダイアログデータの取得 */
00041     void SetData( void );   /* ダイアログデータの設定 */
00042     BOOL OnBnClicked( int );
00043     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00044
00045
00046 };
00047
00048
00049
00051 #endif /* _CDLGEXEC_H_ */
00052
00053 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFavorite.cpp

CDlgFavorite.cpp

履歴の管理ダイアログボックス [詳細]

#include "stdafx.h"
#include <stdio.h>
#include "sakura_rc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "CDialog.h"
#include "CDlgFavorite.h"
#include "etc_uty.h"
#include "debug.h"
#include "my_icmp.h"
#include "sakura.hh"

CDlgFavorite.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | ListView_SetCheckState(hwndLV, i, fCheck) ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK)

変数

const DWORD | p_helpids []

説明

履歴の管理ダイアログボックス

作者:
MIK
日付:
2003.4.8

CDlgFavorite.cpp で定義されています。

マクロ定義

#define ListView_SetCheckState | ( | hwndLV,
 |  | i,
 |  | fCheck | ) | ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK)

CDlgFavorite.cpp の 69 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::SetData_KeyHelp()・CDlgFavorite::SetDataOne().

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_TAB_FAVORITE,               HIDC_TAB_FAVORITE,
    IDC_LIST_FAVORITE_FILE,         HIDC_LIST_FAVORITE_FILE,
    IDC_LIST_FAVORITE_FOLDER,       HIDC_LIST_FAVORITE_FOLDER,
    IDC_LIST_FAVORITE_SEARCH,       HIDC_LIST_FAVORITE_SEARCH,
    IDC_LIST_FAVORITE_REPLACE,      HIDC_LIST_FAVORITE_REPLACE,
    IDC_LIST_FAVORITE_GREP_FILE,    HIDC_LIST_FAVORITE_GREPFILE,
    IDC_LIST_FAVORITE_GREP_FOLDER,  HIDC_LIST_FAVORITE_GREPFOLDER,
    IDC_LIST_FAVORITE_CMD,          HIDC_LIST_FAVORITE_CMD,
    IDC_BUTTON_CLEAR,               HIDC_BUTTON_FAVORITE_CLEAR,
    IDOK,                           HIDC_FAVORITE_IDOK,
    IDCANCEL,                       HIDC_FAVORITE_IDCANCEL,
    IDC_BUTTON_HELP,                HIDC_BUTTON_FAVORITE_HELP,

    0, 0
}

CDlgFavorite.cpp の 47 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFavorite.cpp ソースファイル

CDlgFavorite.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009     Copyright (C) 2006, ryoji
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032
00033
00034 #include "stdafx.h"
00035 #include <stdio.h>
00036 #include "sakura_rc.h"
00037 #include "global.h"
00038 #include "funccode.h"
00039 #include "mymessage.h"
00040 #include "CDialog.h"
00041 #include "CDlgFavorite.h"
00042 #include "etc_uty.h"
00043 #include "debug.h"
00044 #include "my_icmp.h"
00045
00046 #include "sakura.hh"
00047 const DWORD p_helpids[] = {
00048     IDC_TAB_FAVORITE,               HIDC_TAB_FAVORITE,              //タブ
00049     IDC_LIST_FAVORITE_FILE,         HIDC_LIST_FAVORITE_FILE,        //ファイル
00050     IDC_LIST_FAVORITE_FOLDER,       HIDC_LIST_FAVORITE_FOLDER,      //フォルダ
00051     IDC_LIST_FAVORITE_SEARCH,       HIDC_LIST_FAVORITE_SEARCH,      //検索
00052     IDC_LIST_FAVORITE_REPLACE,      HIDC_LIST_FAVORITE_REPLACE,     //置換
00053     IDC_LIST_FAVORITE_GREP_FILE,    HIDC_LIST_FAVORITE_GREPFILE,    //GREPファイル
00054     IDC_LIST_FAVORITE_GREP_FOLDER,  HIDC_LIST_FAVORITE_GREPFOLDER,  //GREPフォルダ
00055     IDC_LIST_FAVORITE_CMD,          HIDC_LIST_FAVORITE_CMD,         //コマンド
00056     IDC_BUTTON_CLEAR,               HIDC_BUTTON_FAVORITE_CLEAR,     //履歴のクリア  // 2006.10.10 ryoji
00057     IDOK,                           HIDC_FAVORITE_IDOK,             //OK
00058     IDCANCEL,                       HIDC_FAVORITE_IDCANCEL,         //キャンセル
00059     IDC_BUTTON_HELP,                HIDC_BUTTON_FAVORITE_HELP,      //ヘルプ
00060 //  IDC_STATIC,                     -1,
00061     0, 0
00062 };
00063
00064
00065
00066 //SDKにしか定義されていない。
00067 #ifndef ListView_SetCheckState
00068 //#if (_WIN32_IE >= 0x0300)
00069 #define ListView_SetCheckState(hwndLV, i, fCheck) \
00070   ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK)
00071 //#endif
00072 #endif
00073
00074
00075
00076 CDlgFavorite::CDlgFavorite()
00077 {
00078     int i;
00079
00080     m_nCurrentTab = 0;
00081     strcpy( m_szMsg, "" );
00082
00083     {
00084         memset( p_favorite_info, 0, sizeof( p_favorite_info ) );
00085
00086         i = 0;
00087         p_favorite_info[i].m_pRecent    = &m_cRecentFile;
00088         p_favorite_info[i].m_pszCaption = "ファイル";
00089         p_favorite_info[i].m_nId        = IDC_LIST_FAVORITE_FILE;
00090         p_favorite_info[i].m_bHaveFavorite = true;
00091         p_favorite_info[i].m_bHaveView  = true;
00092
00093         i++;
00094         p_favorite_info[i].m_pRecent    = &m_cRecentFolder;
00095         p_favorite_info[i].m_pszCaption = "フォルダ";
00096         p_favorite_info[i].m_nId        = IDC_LIST_FAVORITE_FOLDER;
00097         p_favorite_info[i].m_bHaveFavorite = true;
00098         p_favorite_info[i].m_bHaveView  = true;
00099
00100         i++;
00101         p_favorite_info[i].m_pRecent    = &m_cRecentSearch;
00102         p_favorite_info[i].m_pszCaption = "検索";
00103         p_favorite_info[i].m_nId        = IDC_LIST_FAVORITE_SEARCH;
00104         p_favorite_info[i].m_bHaveFavorite = false;
00105         p_favorite_info[i].m_bHaveView  = false;
00106
00107         i++;
00108         p_favorite_info[i].m_pRecent    = &m_cRecentReplace;
00109         p_favorite_info[i].m_pszCaption = "置換";
00110         p_favorite_info[i].m_nId        = IDC_LIST_FAVORITE_REPLACE;
00111         p_favorite_info[i].m_bHaveFavorite = false;
00112         p_favorite_info[i].m_bHaveView  = false;
00113
00114         i++;
00115         p_favorite_info[i].m_pRecent    = &m_cRecentGrepFile;
00116         p_favorite_info[i].m_pszCaption = "GREPファイル";
00117         p_favorite_info[i].m_nId        = IDC_LIST_FAVORITE_GREP_FILE;
00118         p_favorite_info[i].m_bHaveFavorite = false;
00119         p_favorite_info[i].m_bHaveView  = false;
00120
00121         i++;
00122         p_favorite_info[i].m_pRecent    = &m_cRecentGrepFolder;
00123         p_favorite_info[i].m_pszCaption = "GREPフォルダ";
00124         p_favorite_info[i].m_nId        = IDC_LIST_FAVORITE_GREP_FOLDER;
00125         p_favorite_info[i].m_bHaveFavorite = false;
00126         p_favorite_info[i].m_bHaveView  = false;
00127
00128         i++;
00129         p_favorite_info[i].m_pRecent    = &m_cRecentCmd;
00130         p_favorite_info[i].m_pszCaption = "コマンド";
00131         p_favorite_info[i].m_nId        = IDC_LIST_FAVORITE_CMD;
00132         p_favorite_info[i].m_bHaveFavorite = false;
00133         p_favorite_info[i].m_bHaveView  = false;
00134
00135         i++;
00136         p_favorite_info[i].m_pRecent    = NULL;
00137         p_favorite_info[i].m_pszCaption = NULL;
00138         p_favorite_info[i].m_nId        = -1;
00139         p_favorite_info[i].m_bHaveFavorite = false;
00140         p_favorite_info[i].m_bHaveView  = false;
00141
00142         /* これ以上増やすときはテーブルサイズも書き換えてね */
00143     }
00144
00145     {
00146         //ファイル
00147         (void)m_cRecentFile.EasyCreate( RECENT_FOR_FILE );
00148
00149         //フォルダ
00150         (void)m_cRecentFolder.EasyCreate( RECENT_FOR_FOLDER );
00151
00152         //検索
00153         (void)m_cRecentSearch.EasyCreate( RECENT_FOR_SEARCH );
00154
00155         //置換
00156         (void)m_cRecentReplace.EasyCreate( RECENT_FOR_REPLACE );
00157
00158         //GREPファイル
00159         (void)m_cRecentGrepFile.EasyCreate( RECENT_FOR_GREP_FILE );
00160
00161         //GREPフォルダ
00162         (void)m_cRecentGrepFolder.EasyCreate( RECENT_FOR_GREP_FOLDER );
00163
00164         //コマンド
00165         (void)m_cRecentCmd.EasyCreate( RECENT_FOR_CMD );
00166     }
00167 }
00168
00169 CDlgFavorite::~CDlgFavorite()
00170 {
00171     CRecent *pRecent;
00172     int     nTab;
00173
00174     for( nTab = 0; NULL != (pRecent = p_favorite_info[nTab].m_pRecent); nTab++ )
00175     {
00176         pRecent->Terminate();
00177     }
00178 }
00179
00180 /* モーダルダイアログの表示 */
00181 int CDlgFavorite::DoModal(
00182     HINSTANCE   hInstance,
00183     HWND        hwndParent,
00184     LPARAM      lParam
00185 )
00186 {
00187     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_FAVORITE, lParam );
00188 }
00189
00190 /* ダイアログデータの設定 */
00191 void CDlgFavorite::SetData( void )
00192 {
00193     int     nTab;
00194
00195     for( nTab = 0; NULL != p_favorite_info[nTab].m_pRecent; nTab++ )
00196     {
00197         SetDataOne( nTab, 0 );
00198     }
00199
00200     ::SetDlgItemText( m_hWnd, IDC_STATIC_FAVORITE_MSG, "" );
00201
00202     return;
00203 }
00204
00205 /* ダイアログデータの設定 */
00206 void CDlgFavorite::SetDataOne( int nIndex, int nCurrentIndex )
00207 {
00208     HWND    hwndList;
00209     int     i;
00210     char    tmp[1024];
00211     int     nViewCount;
00212     const char  *p;
00213     CRecent *pRecent;
00214     LV_ITEM lvi;
00215     int     nNewFocus = -1;
00216
00217     pRecent = p_favorite_info[nIndex].m_pRecent;
00218
00219     /* リスト */
00220     hwndList = ::GetDlgItem( m_hWnd, p_favorite_info[nIndex].m_nId );
00221     ListView_DeleteAllItems( hwndList );  /* リストを空にする */
00222
00223     nViewCount = pRecent->GetViewCount();
00224     p_favorite_info[nIndex].m_nViewCount = nViewCount;
00225
00226     for( i = 0; i < pRecent->GetItemCount(); i++ )
00227     {
00228         wsprintf( tmp, "%s", (i < nViewCount) ? " " : "(非表示)" );
00229         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00230         lvi.pszText  = tmp;
00231         lvi.iItem    = i;
00232         lvi.iSubItem = 0;
00233         lvi.lParam   = 0;
00234         ListView_InsertItem( hwndList, &lvi );
00235
00236         p = pRecent->GetDataOfItem( i );
00237         wsprintf( tmp, "%s", p ? p : "" );
00238         lvi.mask     = LVIF_TEXT;
00239         lvi.iItem    = i;
00240         lvi.iSubItem = 1;
00241         lvi.pszText  = tmp;
00242         ListView_SetItem( hwndList, &lvi );
00243
00244         if( p_favorite_info[nIndex].m_bHaveFavorite )
00245         {
00246             ListView_SetCheckState( hwndList, i, (BOOL)pRecent->IsFavorite( i ) );
00247         }
00248         ListView_SetItemState( hwndList, i, 0, LVIS_SELECTED | LVIS_FOCUSED );
00249
00250         if( i == nCurrentIndex ) nNewFocus = i;
00251     }
00252
00253     //アイテムがあってどれも非選択なら最初を選択する。
00254     if( i > 0 && -1 != nCurrentIndex && nNewFocus == -1 )
00255     {
00256         nNewFocus = 0;
00257     }
00258
00259     if( -1 != nNewFocus )
00260     {
00261         ListView_SetItemState( hwndList, nNewFocus, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00262         ListView_EnsureVisible( hwndList, nNewFocus, FALSE );
00263     }
00264
00265     return;
00266 }
00267
00268 /* ダイアログデータの取得 */
00269 /* TRUE==正常  FALSE==入力エラー */
00270 int CDlgFavorite::GetData( void )
00271 {
00272     HWND    hwndList;
00273     int     nCount;
00274     int     i;
00275     BOOL    bret;
00276     CRecent *pRecent;
00277     int     nTab;
00278
00279     for( nTab = 0; NULL != (pRecent = p_favorite_info[nTab].m_pRecent); nTab++ )
00280     {
00281         if( p_favorite_info[nTab].m_bHaveFavorite )
00282         {
00283             hwndList = GetDlgItem( m_hWnd, p_favorite_info[nTab].m_nId );
00284
00285             nCount = ListView_GetItemCount( hwndList );
00286
00287             //お気に入りフラグを更新する。
00288             for( i = 0; i < nCount; i++ )
00289             {
00290                 bret = ListView_GetCheckState( hwndList, i );
00291                 (void)pRecent->SetFavorite( i, bret ? true : false );
00292             }
00293
00294             //リストを更新する。
00295             pRecent->UpdateView();
00296         }
00297     }
00298
00299     return TRUE;
00300 }
00301
00302 BOOL CDlgFavorite::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00303 {
00304     HWND        hwndList;
00305     HWND        hwndBaseList;
00306     HWND        hwndTab;
00307     TCITEM      tcitem;
00308     LV_COLUMN   col;
00309     RECT        rc;
00310     CRecent     *pRecent;
00311     int         nTab;
00312     POINT       po;
00313     long        lngStyle;
00314
00315     m_hWnd = hwndDlg;
00316
00317     hwndTab = ::GetDlgItem( hwndDlg, IDC_TAB_FAVORITE );
00318     TabCtrl_DeleteAllItems( hwndTab );
00319
00320     //リストビューの表示位置を取得する。
00321     m_nCurrentTab = 0;
00322     hwndBaseList = ::GetDlgItem( hwndDlg, p_favorite_info[0].m_nId );
00323     {
00324         rc.left = rc.top = rc.right = rc.bottom = 0;
00325         ::GetWindowRect( hwndBaseList, &rc );
00326         po.x = rc.left;
00327         po.y = rc.top;
00328         ::ScreenToClient( hwndDlg, &po );
00329         rc.left = po.x;
00330         rc.top  = po.y;
00331         po.x = rc.right;
00332         po.y = rc.bottom;
00333         ::ScreenToClient( hwndDlg, &po );
00334         rc.right  = po.x;
00335         rc.bottom = po.y;
00336     }
00337
00338     for( nTab = 0; NULL != (pRecent = p_favorite_info[nTab].m_pRecent); nTab++ )
00339     {
00340         hwndList = GetDlgItem( hwndDlg, p_favorite_info[nTab].m_nId );
00341         ::MoveWindow( hwndList, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, FALSE );
00342         ::ShowWindow( hwndList, SW_HIDE );
00343
00344         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00345         col.fmt      = LVCFMT_LEFT;
00346         col.cx       = (rc.right - rc.left) * 16 / 100;
00347         col.pszText  = "お気に入り";
00348         col.iSubItem = 0;
00349         ListView_InsertColumn( hwndList, 0, &col );
00350
00351         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00352         col.fmt      = LVCFMT_LEFT;
00353         col.cx       = (rc.right - rc.left) * 79 / 100;
00354         col.pszText  = p_favorite_info[nTab].m_pszCaption;
00355         col.iSubItem = 1;
00356         ListView_InsertColumn( hwndList, 1, &col );
00357
00358         /* 行選択 */
00359         lngStyle = ::SendMessage( hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00360         lngStyle |= LVS_EX_FULLROWSELECT;
00361         if( p_favorite_info[nTab].m_bHaveFavorite ) lngStyle |= LVS_EX_CHECKBOXES;
00362         ::SendMessage( hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lngStyle );
00363
00364         /* タブ項目追加 */
00365         tcitem.mask = TCIF_TEXT;
00366         tcitem.pszText = p_favorite_info[nTab].m_pszCaption;
00367         TabCtrl_InsertItem( hwndTab, nTab, &tcitem );
00368     }
00369
00370     hwndList = ::GetDlgItem( hwndDlg, p_favorite_info[m_nCurrentTab].m_nId );
00371     ::ShowWindow( hwndList, SW_SHOW );
00372     TabCtrl_SetCurSel( hwndTab, m_nCurrentTab );
00373     //ChangeSlider( m_nCurrentTab );
00374
00375     /* 基底クラスメンバ */
00376     return CDialog::OnInitDialog( m_hWnd, wParam, lParam );
00377 }
00378
00379 BOOL CDlgFavorite::OnBnClicked( int wID )
00380 {
00381     switch( wID )
00382     {
00383     case IDC_BUTTON_HELP:
00384         /* ヘルプ */
00385         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID( F_FAVORITE ) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00386         return TRUE;
00387
00388     case IDOK:
00389         /* ダイアログデータの取得 */
00390         ::EndDialog( m_hWnd, (BOOL)GetData() );
00391         return TRUE;
00392
00393     case IDCANCEL:
00394         ::EndDialog( m_hWnd, FALSE );
00395         return TRUE;
00396
00397     case IDC_BUTTON_CLEAR:  //履歴のクリア
00398         {
00399             ::SetDlgItemText( m_hWnd, IDC_STATIC_FAVORITE_MSG, "" );
00400             HWND    hwndTab;
00401             int     nIndex;
00402             hwndTab = ::GetDlgItem( m_hWnd, IDC_TAB_FAVORITE );
00403             nIndex = TabCtrl_GetCurSel( hwndTab );
00404             if( -1 != nIndex )
00405             {
00406                 int nRet;
00407
00408                 if( p_favorite_info[nIndex].m_bHaveFavorite )
00409                 {
00410                     nRet = ::MYMESSAGEBOX( m_hWnd,
00411                         MB_YESNOCANCEL | MB_ICONQUESTION, GSTR_APPNAME,
00412                         "最近使った%sの履歴を削除します。\n\nよろしいですか？\n\n"
00413                         "「はい」\tすべて削除します。\n"
00414                         "「いいえ」\tお気に入り以外を削除します。\n",
00415                         p_favorite_info[nIndex].m_pszCaption );
00416                 }
00417                 else
00418                 {
00419                     nRet = ::MYMESSAGEBOX( m_hWnd,
00420                         MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME,
00421                         "最近使った%sの履歴を削除します。\n\nよろしいですか？\n",
00422                         p_favorite_info[nIndex].m_pszCaption );
00423                 }
00424
00425                 CRecent *pRecent;
00426                 pRecent = p_favorite_info[nIndex].m_pRecent;
00427
00428                 switch( nRet )
00429                 {
00430                 case IDYES:
00431                 case IDOK:
00432                     if( pRecent ) pRecent->DeleteAllItem();
00433 					::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00434                         "最近使った%sの履歴を削除しました。",
00435                         p_favorite_info[nIndex].m_pszCaption );
00436                     break;
00437
00438                 case IDNO:
00439                     if( pRecent )
00440                     {
00441                         HWND hwndList = ::GetDlgItem( m_hWnd, p_favorite_info[nIndex].m_nId );
00442                         for( int i = pRecent->GetItemCount() - 1; i >= 0; i-- )
00443                         {
00444                             if( ! ListView_GetCheckState( hwndList, i ) ){
00445                                 pRecent->DeleteItem( i );
00446                             }
00447                             else {
00448                                 pRecent->SetFavorite( i );
00449                             }
00450                         }
00451                     }
00452 					::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00453                         "最近使った%sの履歴(お気に入り以外)を削除しました。",
00454                         p_favorite_info[nIndex].m_pszCaption );
00455                     break;
00456
00457                 case IDCANCEL:
00458                 default:
00459                     break;
00460                 }
00461             }
00462         }
00463         return TRUE;
00464     }
00465
00466     /* 基底クラスメンバ */
00467     return CDialog::OnBnClicked( wID );
00468 }
00469
00470 BOOL CDlgFavorite::OnNotify( WPARAM wParam, LPARAM lParam )
00471 {
00472     LPNMHDR lpnmhdr;
00473     HWND    hwndTab;
00474     HWND    hwndList;
00475     int     nIndex;
00476
00477     hwndTab = ::GetDlgItem( m_hWnd, IDC_TAB_FAVORITE );
00478     lpnmhdr = (LPNMHDR) lParam;
00479     if( lpnmhdr->hwndFrom == hwndTab )
00480     {
00481         switch( lpnmhdr->code )
00482         {
00483         case TCN_SELCHANGE:
00484             ::SetDlgItemText( m_hWnd, IDC_STATIC_FAVORITE_MSG, "" );
00485             nIndex = TabCtrl_GetCurSel( hwndTab );
00486             if( -1 != nIndex )
00487             {
00488                 //現在表示中のリストを隠す。
00489                 hwndList = GetDlgItem( m_hWnd, p_favorite_info[m_nCurrentTab].m_nId );
00490                 ::ShowWindow( hwndList, SW_HIDE );
00491
00492                 //新しく表示する。
00493                 hwndList = GetDlgItem( m_hWnd, p_favorite_info[nIndex].m_nId );
00494                 ::ShowWindow( hwndList, SW_SHOW );
00495
00496                 ::SetFocus( hwndList );
00497
00498                 m_nCurrentTab = nIndex;
00499
00500                 //ChangeSlider( nIndex );
00501             }
00502             return TRUE;
00503             //break;
00504         }
00505     }
00506
00507     /* 基底クラスメンバ */
00508     return CDialog::OnNotify( wParam, lParam );
00509 }
00510
00511 BOOL CDlgFavorite::OnActivate( WPARAM wParam, LPARAM lParam )
00512 {
00513     bool    bret;
00514
00515     switch( LOWORD( wParam ) )
00516     {
00517     case WA_ACTIVE:
00518     case WA_CLICKACTIVE:
00519         bret = RefreshList();
00520         //if( bret == true )
00521         //{
00522         //  ::MYMESSAGEBOX( m_hWnd,
00523         //      MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00524         //      "リストが更新されました。\n設定中の情報をクリアし再表示しました。" );
00525         //}
00526         ::SetDlgItemText( m_hWnd, IDC_STATIC_FAVORITE_MSG, m_szMsg );
00527         return TRUE;
00528         //break;
00529
00530     case WA_INACTIVE:
00531     default:
00532         break;
00533     }
00534
00535     /* 基底クラスメンバ */
00536     return CDialog::OnActivate( wParam, lParam );
00537 }
00538
00539 LPVOID CDlgFavorite::GetHelpIdTable( void )
00540 {
00541     return (LPVOID)p_helpids;
00542 }
00543
00544 /*
00545     リストを更新する。
00546 */
00547 bool CDlgFavorite::RefreshList( void )
00548 {
00549     int     nTab;
00550     bool    bret;
00551     bool    ret_val = false;
00552     char    msg[1024];
00553
00554     strcpy( msg, "" );
00555     strcpy( m_szMsg, "" );
00556
00557     //全リストの現在選択中のアイテムを取得する。
00558     for( nTab = 0; NULL != p_favorite_info[nTab].m_pRecent; nTab++ )
00559     {
00560         bret = RefreshListOne( nTab );
00561         if( bret == true )
00562         {
00563             ret_val = true;
00564         //  ::MYMESSAGEBOX( m_hWnd,
00565         //      MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00566         //      "最近使った%sの履歴が更新されました。\n\n設定中の情報をクリアし再表示しました。", p_favorite_info[nTab].m_pszCaption );
00567
00568             if( strlen( msg ) > 0 ) strcat( msg, "、" );
00569             strcat( msg, p_favorite_info[nTab].m_pszCaption );
00570         }
00571     }
00572
00573     if( ret_val )
00574     {
00575         wsprintf( m_szMsg,
00576             "履歴(%s)が更新されたため編集中情報を破棄し再表示しました。",
00577             msg );
00578     }
00579
00580     return ret_val;
00581 }
00582
00583 /*
00584     リストのうち1個を更新する。
00585 */
00586 bool CDlgFavorite::RefreshListOne( int nIndex )
00587 {
00588     HWND    hwndList;
00589     CRecent *pRecent;
00590     int     nCount;
00591     int     nCurrentIndex;
00592     int     nItemCount;
00593     int     i;
00594     BOOL    bret;
00595     char    szText[1024];
00596     LVITEM  lvitem;
00597
00598     pRecent       = p_favorite_info[nIndex].m_pRecent;
00599     nItemCount    = pRecent->GetItemCount();
00600     hwndList      = GetDlgItem( m_hWnd, p_favorite_info[nIndex].m_nId );
00601     nCount        = ListView_GetItemCount( hwndList );
00602     nCurrentIndex = ListView_GetNextItem( hwndList, -1, LVNI_SELECTED );
00603     if( -1 == nCurrentIndex ) nCurrentIndex = ListView_GetNextItem( hwndList, -1, LVNI_FOCUSED );
00604
00605     if( nItemCount != nCount ) goto changed;    //個数が変わったので再構築
00606
00607     //お気に入り数が変わったので再構築
00608     if( p_favorite_info[nIndex].m_nViewCount != pRecent->GetViewCount() ) goto changed;
00609
00610     for( i = 0; i < nCount; i++ )
00611     {
00612         memset( szText, 0, sizeof( szText ) );
00613         memset( &lvitem, 0, sizeof( lvitem ) );
00614         lvitem.mask       = LVIF_TEXT;
00615         lvitem.pszText    = szText;
00616         lvitem.cchTextMax = sizeof( szText );
00617         lvitem.iItem      = i;
00618         lvitem.iSubItem   = 1;
00619         bret = ListView_GetItem( hwndList, &lvitem );
00620         if( FALSE == bret ) goto changed;   //エラーなので再構築
00621
00622         //アイテム内容が変わったので再構築
00623         if( i != pRecent->FindItem( szText ) ) goto changed;
00624     }
00625
00626     return false;
00627
00628 changed:
00629     SetDataOne( nIndex, nCurrentIndex );
00630
00631 //  if( nItemCount > 0 )
00632 //  {
00633 //      ::MYMESSAGEBOX( m_hWnd,
00634 //          MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00635 //          "最近使った%sの履歴が更新されました。\n\n設定中の情報をクリアし再表示しました。", p_favorite_info[nIndex].m_pszCaption );
00636 //  }
00637
00638     return true;
00639 }
00640
00641 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFavorite.h

CDlgFavorite.h

履歴の管理ダイアログボックス [詳細]

#include "CDialog.h"

CDlgFavorite.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CDlgFavorite
struct | CDlgFavorite::FavoriteInfoTag

説明

履歴の管理ダイアログボックス

作者:
MIK
日付:
2003.4.8

CDlgFavorite.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFavorite.h ソースファイル

CDlgFavorite.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031
00032
00033 class CDlgFavorite;
00034
00035 #ifndef _CDLGFAVORITE_H_
00036 #define _CDLGFAVORITE_H_
00037
00038 #include "CDialog.h"
00039
00040 class SAKURA_CORE_API CDlgFavorite : public CDialog
00041 {
00042 public:
00043     /*
00044     ||  Constructors
00045     */
00046     CDlgFavorite();
00047     ~CDlgFavorite();
00048
00049     /*
00050     ||  Attributes & Operations
00051     */
00052     int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00053
00054 protected:
00055     /*
00056     ||  実装ヘルパ関数
00057     */
00058     BOOL    OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00059     BOOL    OnBnClicked( int );
00060     BOOL    OnNotify( WPARAM wParam, LPARAM lParam );
00061     BOOL    OnActivate( WPARAM wParam, LPARAM lParam );
00062     LPVOID  GetHelpIdTable( void );
00063
00064     void    SetData( void );    /* ダイアログデータの設定 */
00065     int     GetData( void );    /* ダイアログデータの取得 */
00066
00067     bool    RefreshList( void );
00068     void    SetDataOne( int nIndex, int CurrentIndex ); /* ダイアログデータの設定 */
00069     bool    RefreshListOne( int nIndex );
00070     //void  ChangeSlider( int nIndex );
00071
00072 private:
00073     CRecent m_cRecentFile;
00074     CRecent m_cRecentFolder;
00075     CRecent m_cRecentSearch;
00076     CRecent m_cRecentReplace;
00077     CRecent m_cRecentGrepFile;
00078     CRecent m_cRecentGrepFolder;
00079     CRecent m_cRecentCmd;
00080
00081     typedef struct FavoriteInfoTag {
00082         CRecent*    m_pRecent;          //オブジェクトへのポインタ
00083         char*       m_pszCaption;       //キャプション
00084         int         m_nId;              //コントロールのID
00085         bool        m_bHaveFavorite;    //お気に入りを持っているか？
00086         bool        m_bHaveView;        //表示数変更機能をもっているか？
00087         int         m_nViewCount;       //カレントの表示数
00088     } FavoriteInfoTag;
00089
00090     FavoriteInfoTag p_favorite_info[8];
00091
00092     int     m_nCurrentTab;
00093     char    m_szMsg[1024];
00094
00095 };
00096
00097 #endif  //_CDLGFAVORITE_H_
00098
Sakura-Editorに対してSat Oct 27 02:14:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFileUpdateQuery.cpp

CDlgFileUpdateQuery.cpp

更新通知及び確認ダイアログ [詳細]

#include "stdafx.h"
#include "CDlgFileUpdateQuery.h"
#include "sakura_rc.h"

CDlgFileUpdateQuery.cppのインクルード依存関係図

ソースコードを見る。

説明

更新通知及び確認ダイアログ

ファイルの更新通知と動作の確認を行うダイアログボックス

作者:
genta
日付:
2002.12.04

CDlgFileUpdateQuery.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:43 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFileUpdateQuery.cpp ソースファイル

CDlgFileUpdateQuery.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 2002, genta
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032
00033 #include "stdafx.h"
00034 #include "CDlgFileUpdateQuery.h"
00035 #include "sakura_rc.h"
00036
00037 BOOL CDlgFileUpdateQuery::OnInitDialog( HWND hWnd, WPARAM wParam, LPARAM lParam )
00038 {
00039     ::SetDlgItemText( hWnd, IDC_UPDATEDFILENAME, m_pFilename );
00040     ::SetDlgItemText( hWnd, IDC_QUERYRELOADMSG, m_bModified ?
00041         "再ロードを行うと変更が失われますがよろしいですか?":"再ロードしますか?" );
00042
00043     return CDialog::OnInitDialog( hWnd, wParam, lParam );
00044 }
00045
00049 BOOL CDlgFileUpdateQuery::OnBnClicked(int id)
00050 {
00051     int result;
00052     switch( id ){
00053     case IDC_BTN_RELOAD: // 再読込
00054         result = 1;
00055         break;
00056     case IDC_BTN_CLOSE: // 閉じる
00057         result = 0;
00058         break;
00059     case IDC_BTN_NOTIFYONLY: // 以後通知メッセージのみ
00060         result = 2;
00061         break;
00062     case IDC_BTN_NOSUPERVISION: // 以後更新を監視しない
00063         result = 3;
00064         break;
00065     default:
00066         result = 0;
00067         break;
00068     }
00069     CloseDialog( result );
00070
00071     return 0;
00072 }
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFileUpdateQuery.h

CDlgFileUpdateQuery.h

更新通知及び確認ダイアログ [詳細]

#include <windows.h>
#include "global.h"
#include "CDialog.h"

CDlgFileUpdateQuery.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgFileUpdateQuery

説明

更新通知及び確認ダイアログ

ファイルの更新通知と動作の確認を行うダイアログボックス

作者:
genta
日付:
2002.12.04

CDlgFileUpdateQuery.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFileUpdateQuery.h ソースファイル

CDlgFileUpdateQuery.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 2002, genta
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032 #ifndef _DLG_FILE_UPDATE_QUERY_H_
00033 #define _DLG_FILE_UPDATE_QUERY_H_
00034
00035 #include <windows.h>
00036 #include "global.h"
00037 #include "CDialog.h"
00038
00039 class SAKURA_CORE_API CDlgFileUpdateQuery : public CDialog {
00040 private:
00041     const char* m_pFilename;
00042     bool m_bModified;
00043
00044 public:
00045     CDlgFileUpdateQuery(const char* filename, bool IsModified)
00046         : m_pFilename( filename ), m_bModified( IsModified ) {}
00047     virtual BOOL OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00048     virtual BOOL OnBnClicked( int );
00049 };
00050 #endif
00051 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFind.cpp

CDlgFind.cpp

検索ダイアログボックス [詳細]

#include "stdafx.h"
#include "CDlgFind.h"
#include "funccode.h"
#include "sakura_rc.h"
#include "CBregexp.h"
#include "CEditView.h"
#include "etc_uty.h"
#include "debug.h"
#include "sakura.hh"

CDlgFind.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

検索ダイアログボックス

作者:
Norio Nakatani
日付:
1998/12/12 再作成

2001/06/23 N.Nakatani 単語単位で検索する機能を実装

CDlgFind.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_SEARCHNEXT,          HIDC_FIND_BUTTON_SEARCHNEXT,
    IDC_BUTTON_SEARCHPREV,          HIDC_FIND_BUTTON_SEARCHPREV,
    IDCANCEL,                       HIDCANCEL_FIND,
    IDC_BUTTON_HELP,                HIDC_FIND_BUTTON_HELP,
    IDC_CHK_WORD,                   HIDC_FIND_CHK_WORD,
    IDC_CHK_LOHICASE,               HIDC_FIND_CHK_LOHICASE,
    IDC_CHK_REGULAREXP,             HIDC_FIND_CHK_REGULAREXP,
    IDC_CHECK_NOTIFYNOTFOUND,       HIDC_FIND_CHECK_NOTIFYNOTFOUND,
    IDC_CHECK_bAutoCloseDlgFind,    HIDC_FIND_CHECK_bAutoCloseDlgFind,
    IDC_COMBO_TEXT,                 HIDC_FIND_COMBO_TEXT,
    IDC_STATIC_JRE32VER,            HIDC_FIND_STATIC_JRE32VER,
    IDC_BUTTON_SETMARK,             HIDC_FIND_BUTTON_SETMARK,
    IDC_CHECK_SEARCHALL,            HIDC_FIND_CHECK_SEARCHALL,

    0, 0
}

CDlgFind.cpp の 31 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFind.cpp ソースファイル

CDlgFind.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2001, genta, JEPRO, hor, Stonee
00011     Copyright (C) 2002, MIK, hor, YAZAKI, genta
00012     Copyright (C) 2005, zenryaku
00013     Copyright (C) 2006, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include "CDlgFind.h"
00021 #include "funccode.h"
00022 #include "sakura_rc.h"
00023 //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00024 #include "CBregexp.h"
00025 #include "CEditView.h"
00026 #include "etc_uty.h"    //Stonee, 2001/03/12
00027 #include "debug.h"// 2002/2/10 aroka ヘッダ整理
00028
00029 //検索 CDlgFind.cpp //@@@ 2002.01.07 add start MIK
00030 #include "sakura.hh"
00031 const DWORD p_helpids[] = { //11800
00032     IDC_BUTTON_SEARCHNEXT,          HIDC_FIND_BUTTON_SEARCHNEXT,        //次を検索
00033     IDC_BUTTON_SEARCHPREV,          HIDC_FIND_BUTTON_SEARCHPREV,        //前を検索
00034     IDCANCEL,                       HIDCANCEL_FIND,                     //キャンセル
00035     IDC_BUTTON_HELP,                HIDC_FIND_BUTTON_HELP,              //ヘルプ
00036     IDC_CHK_WORD,                   HIDC_FIND_CHK_WORD,                 //単語単位
00037     IDC_CHK_LOHICASE,               HIDC_FIND_CHK_LOHICASE,             //大文字小文字
00038     IDC_CHK_REGULAREXP,             HIDC_FIND_CHK_REGULAREXP,           //正規表現
00039     IDC_CHECK_NOTIFYNOTFOUND,       HIDC_FIND_CHECK_NOTIFYNOTFOUND,     //見つからないときに通知
00040     IDC_CHECK_bAutoCloseDlgFind,    HIDC_FIND_CHECK_bAutoCloseDlgFind,  //自動的に閉じる
00041     IDC_COMBO_TEXT,                 HIDC_FIND_COMBO_TEXT,               //検索文字列
00042     IDC_STATIC_JRE32VER,            HIDC_FIND_STATIC_JRE32VER,          //正規表現バージョン
00043     IDC_BUTTON_SETMARK,             HIDC_FIND_BUTTON_SETMARK,           //2002.01.16 hor 検索該当行をマーク
00044     IDC_CHECK_SEARCHALL,            HIDC_FIND_CHECK_SEARCHALL,          //2002.01.26 hor 先頭（末尾）から再検索
00045 //  IDC_STATIC,                     -1,
00046     0, 0
00047 };  //@@@ 2002.01.07 add end MIK
00048
00049 CDlgFind::CDlgFind()
00050 {
00051 //  MYTRACE( "CDlgFind::CDlgFind()\n" );
00052     m_bLoHiCase = FALSE;    /* 英大文字と英小文字を区別する */
00053     m_bWordOnly = FALSE;    /* 一致する単語のみ検索する */
00054     m_bRegularExp = FALSE;  /* 正規表現 */
00055     m_szText[0] = '\0';     /* 検索文字列 */
00056     return;
00057 }
00058
00059
00060
00061 //  /* モーダルダイアログの表示 */
00062 //  int CDlgFind::DoModal( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
00063 //  {
00064 //      m_bRegularExp = m_pShareData->m_Common.m_bRegularExp;           /* 1==正規表現 */
00065 //      m_bLoHiCase = m_pShareData->m_Common.m_bLoHiCase;               /* 1==英大文字小文字の区別 */
00066 //      m_bWordOnly = m_pShareData->m_Common.m_bWordOnly;               /* 1==単語のみ検索 */
00067 //      m_bNOTIFYNOTFOUND = m_pShareData->m_Common.m_bNOTIFYNOTFOUND;   /* 検索／置換  見つからないときメッセージを表示 */
00068 //      return CDialog::DoModal( hInstance, hwndParent, IDD_FIND, lParam );
00069 //  }
00070
00071
00072 /* モードレスダイアログの表示 */
00073 HWND CDlgFind::DoModeless( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
00074 {
00075     m_bRegularExp = m_pShareData->m_Common.m_bRegularExp;           /* 1==正規表現 */
00076     m_bLoHiCase = m_pShareData->m_Common.m_bLoHiCase;               /* 1==英大文字小文字の区別 */
00077     m_bWordOnly = m_pShareData->m_Common.m_bWordOnly;               /* 1==単語のみ検索 */
00078     m_bNOTIFYNOTFOUND = m_pShareData->m_Common.m_bNOTIFYNOTFOUND;   /* 検索／置換  見つからないときメッセージを表示 */
00079     m_nEscCaretPosX_PHY = ((CEditView*)lParam)->m_nCaretPosX_PHY;   /* 検索開始時のカーソル位置退避 02/07/28 ai */
00080     m_nEscCaretPosY_PHY = ((CEditView*)lParam)->m_nCaretPosY_PHY;   /* 検索開始時のカーソル位置退避 02/07/28 ai */
00081     ((CEditView*)lParam)->m_bSearch = TRUE;                         /* 検索開始位置の登録有無       02/07/28 ai */
00082     return CDialog::DoModeless( hInstance, hwndParent, IDD_FIND, lParam, SW_SHOW );
00083 }
00084
00085 /* モードレス時：検索対象となるビューの変更 */
00086 void CDlgFind::ChangeView( LPARAM pcEditView )
00087 {
00088     m_lParam = pcEditView;
00089     return;
00090 }
00091
00092
00093
00094 /* ダイアログデータの設定 */
00095 void CDlgFind::SetData( void )
00096 {
00097 //  MYTRACE( "CDlgFind::SetData()" );
00098     int     i;
00099     HWND    hwndCombo;
00100
00101     /*****************************
00102     *           初期化           *
00103     *****************************/
00104     // Here Jun. 26, 2001 genta
00105     // 正規表現ライブラリの差し替えに伴う処理の見直しによりjre.dll判定を削除
00106
00107     /* ユーザーがコンボ ボックスのエディット コントロールに入力できるテキストの長さを制限する */
00108     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00109     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00110     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00111
00112
00113     /*****************************
00114     *         データ設定         *
00115     *****************************/
00116     /* 検索文字列 */
00117     hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT );
00118     ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
00119     ::SetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText );
00120     for( i = 0; i < m_pShareData->m_nSEARCHKEYArrNum; ++i ){
00121         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szSEARCHKEYArr[i] );
00122     }
00123     /* 英大文字と英小文字を区別する */
00124     ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, m_bLoHiCase );
00125
00126     // 2001/06/23 Norio Nakatani
00127     /* 単語単位で検索 */
00128     ::CheckDlgButton( m_hWnd, IDC_CHK_WORD, m_bWordOnly );
00129
00130     /* 検索／置換  見つからないときメッセージを表示 */
00131     ::CheckDlgButton( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND, m_bNOTIFYNOTFOUND );
00132
00133     // From Here Jun. 29, 2001 genta
00134     // 正規表現ライブラリの差し替えに伴う処理の見直し
00135     // 処理フロー及び判定条件の見直し。必ず正規表現のチェックと
00136     // 無関係にCheckRegexpVersionを通過するようにした。
00137     if( CheckRegexpVersion( m_hWnd, IDC_STATIC_JRE32VER, false )
00138         && m_bRegularExp){
00139         /* 英大文字と英小文字を区別する */
00140         ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 1 );
00141 //正規表現がONでも、大文字小文字を区別する／しないを選択できるように。
00142 //      ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 1 );
00143 //      ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), FALSE );
00144
00145         // 2001/06/23 N.Nakatani
00146         /* 単語単位で探す */
00147         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), FALSE );
00148     }
00149     else {
00150         ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 0 );
00151     }
00152     // To Here Jun. 29, 2001 genta
00153
00154     /* 検索ダイアログを自動的に閉じる */
00155     ::CheckDlgButton( m_hWnd, IDC_CHECK_bAutoCloseDlgFind, m_pShareData->m_Common.m_bAutoCloseDlgFind );
00156
00157     /* 先頭（末尾）から再検索 2002.01.26 hor */
00158     ::CheckDlgButton( m_hWnd, IDC_CHECK_SEARCHALL, m_pShareData->m_Common.m_bSearchAll );
00159
00160     return;
00161 }
00162
00163
00164
00165
00166 /* ダイアログデータの取得 */
00167 int CDlgFind::GetData( void )
00168 {
00169 //  MYTRACE( "CDlgFind::GetData()" );
00170 //  int         i;
00171 //  int         j;
00172 //  CMemory*    pcmWork;
00173     //
00174
00175     /* 英大文字と英小文字を区別する */
00176     m_bLoHiCase = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_LOHICASE );
00177
00178     // 2001/06/23 Norio Nakatani
00179     /* 単語単位で検索 */
00180     m_bWordOnly = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_WORD );
00181
00182     /* 一致する単語のみ検索する */
00183     /* 正規表現 */
00184     m_bRegularExp = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP );
00185
00186     /* 検索／置換  見つからないときメッセージを表示 */
00187     m_bNOTIFYNOTFOUND = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND );
00188
00189     m_pShareData->m_Common.m_bRegularExp = m_bRegularExp;           /* 1==正規表現 */
00190     m_pShareData->m_Common.m_bLoHiCase = m_bLoHiCase;               /* 1==英大文字小文字の区別 */
00191     m_pShareData->m_Common.m_bWordOnly = m_bWordOnly;               /* 1==単語のみ検索 */
00192     m_pShareData->m_Common.m_bNOTIFYNOTFOUND = m_bNOTIFYNOTFOUND;   /* 検索／置換  見つからないときメッセージを表示 */
00193
00194     /* 検索文字列 */
00195     ::GetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText, sizeof( m_szText ));
00196
00197     /* 検索ダイアログを自動的に閉じる */
00198     m_pShareData->m_Common.m_bAutoCloseDlgFind = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_bAutoCloseDlgFind );
00199
00200     /* 先頭（末尾）から再検索 2002.01.26 hor */
00201     m_pShareData->m_Common.m_bSearchAll = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_SEARCHALL );
00202
00203     if( 0 < lstrlen( m_szText ) ){
00204         /* 正規表現？ */
00205         // From Here Jun. 26, 2001 genta
00206         //  正規表現ライブラリの差し替えに伴う処理の見直し
00207         int nFlag = 0x00;
00208         nFlag |= m_bLoHiCase ? 0x01 : 0x00;
00209         if( m_bRegularExp && !CheckRegexpSyntax( m_szText, m_hWnd, true, nFlag ) ){
00210             return -1;
00211         }
00212         // To Here Jun. 26, 2001 genta 正規表現ライブラリ差し替え
00213
00214         /* 検索文字列 */
00215         //@@@ 2002.2.2 YAZAKI CShareDataに移動
00216         CShareData::getInstance()->AddToSearchKeyArr( (const char*)m_szText );
00217         if( FALSE == m_bModal ){
00218             /* ダイアログデータの設定 */
00219             SetData();
00220         }
00221         return 1;
00222     }else{
00223         return 0;
00224     }
00225 }
00226
00227
00228
00229 BOOL CDlgFind::OnBnClicked( int wID )
00230 {
00231     int         nRet;
00232     CEditView*  pcEditView = (CEditView*)m_lParam;
00233     switch( wID ){
00234     case IDC_BUTTON_HELP:
00235         /* 「検索」のヘルプ */
00236         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00237         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_SEARCH_DIALOG) );    //Apr. 5, 2001 JEPRO 修正漏れを追加 // 2006.10.10 ryoji MyWinHelpに変更に変更
00238         break;
00239     case IDC_CHK_REGULAREXP:    /* 正規表現 */
00240 //      MYTRACE( "IDC_CHK_REGULAREXP ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) = %d\n", ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) );
00241         if( ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) ){
00242
00243             // From Here Jun. 26, 2001 genta
00244             //  正規表現ライブラリの差し替えに伴う処理の見直し
00245             if( !CheckRegexpVersion( m_hWnd, IDC_STATIC_JRE32VER, true ) ){
00246                 ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 0 );
00247             }else{
00248             // To Here Jun. 26, 2001 genta
00249
00250                 /* 英大文字と英小文字を区別する */
00251                 //  Jan. 31, 2002 genta
00252                 //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00253                 //::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 1 );
00254                 //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), FALSE );
00255
00256                 // 2001/06/23 Norio Nakatani
00257                 /* 単語単位で検索 */
00258                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), FALSE );
00259             }
00260         }else{
00261             /* 英大文字と英小文字を区別する */
00262             //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), TRUE );
00263             //  Jan. 31, 2002 genta
00264             //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00265             //::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 0 );
00266
00267             // 2001/06/23 Norio Nakatani
00268             /* 単語単位で検索 */
00269             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), TRUE );
00270         }
00271         break;
00272     case IDC_BUTTON_SEARCHPREV: /* 上検索 */    //Feb. 13, 2001 JEPRO ボタン名を[IDC_BUTTON1]→[IDC_BUTTON_SERACHPREV]に変更
00273         /* ダイアログデータの取得 */
00274         nRet = GetData();
00275         if( 0 < nRet ){
00276             if( m_bModal ){     /* モーダルダイアログか */
00277                 CloseDialog( 1 );
00278             }else{
00279
00280                 /* 前を検索 */
00281                 pcEditView->HandleCommand( F_SEARCH_PREV, TRUE, (LPARAM)m_hWnd, 0, 0, 0 );
00282                 /* 再描画 2005.04.06 zenryaku 0文字幅マッチでキャレットを表示するため */
00283                 pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00284
00285                 // 02/06/26 ai Start
00286                 // 検索開始位置を登録
00287                 if( TRUE == pcEditView->m_bSearch ){
00288                     // 検索開始時のカーソル位置登録条件変更 02/07/28 ai start
00289                     pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00290                     pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00291                     pcEditView->m_bSearch = FALSE;
00292                     // 02/07/28 ai end
00293                 }//  02/06/26 ai End
00294
00295 //              /* 再描画 */
00296 //              pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00297                 /* 検索ダイアログを自動的に閉じる */
00298                 if( m_pShareData->m_Common.m_bAutoCloseDlgFind ){
00299                     CloseDialog( 0 );
00300                 }
00301             }
00302 //From Here Feb. 20, 2001 JEPRO 「置換」ダイアログと同じように警告メッセージを表示するように変更
00303 //      }else
00304 //      if( 0 == nRet ){
00305 //          ::MessageBeep( MB_ICONHAND );
00306 //          CloseDialog( 0 );
00307 //      }
00308 //      return TRUE;
00309 //ここまでコメントアウトし、代わりに以下を追加
00310         }else{
00311 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
00312                 "検索条件を指定してください。"
00313             );
00314         }
00315         return TRUE;
00316 //To Here Feb. 20, 2001
00317     case IDC_BUTTON_SEARCHNEXT:     /* 下検索 */    //Feb. 13, 2001 JEPRO ボタン名を[IDOK]→[IDC_BUTTON_SERACHNEXT]に変更
00318         /* ダイアログデータの取得 */
00319         nRet = GetData();
00320         if( 0 < nRet ){
00321             if( m_bModal ){     /* モーダルダイアログか */
00322                 CloseDialog( 2 );
00323             }else{
00324
00325                 /* 次を検索 */
00326                 pcEditView->HandleCommand( F_SEARCH_NEXT, TRUE, (LPARAM)m_hWnd, 0, 0, 0 );
00327                 /* 再描画 2005.04.06 zenryaku 0文字幅マッチでキャレットを表示するため */
00328                 pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00329
00330                 // 02/06/26 ai Start
00331                 // 検索開始位置を登録
00332                 if( TRUE == pcEditView->m_bSearch ){
00333                     // 検索開始時のカーソル位置登録条件変更 02/07/28 ai start
00334                     pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00335                     pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00336                     pcEditView->m_bSearch = FALSE;
00337                     // 02/07/28 ai end
00338                 }//  02/06/26 ai End
00339
00340 //              /* 再描画 */
00341 //              pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00342                 /* 検索ダイアログを自動的に閉じる */
00343                 if( m_pShareData->m_Common.m_bAutoCloseDlgFind ){
00344                     CloseDialog( 0 );
00345                 }
00346                 // 2001.12.03 hor
00347                 //  ダイアログを閉じないとき、IDC_COMBO_TEXT 上で Enter した場合に
00348                 //  キャレットが表示されなくなるのを回避する
00349                 else{
00350                 ::SendMessage(m_hWnd,WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(m_hWnd,IDC_COMBO_TEXT ),TRUE);
00351                 }
00352             }
00353 //From Here Feb. 20, 2001 JEPRO 「置換」ダイアログと同じように警告メッセージを表示するように変更
00354 //      }else
00355 //      if( 0 == nRet ){
00356 //          ::MessageBeep( MB_ICONHAND );
00357 //          CloseDialog( 0 );
00358 //      }
00359 //      return TRUE;
00360 //ここまでコメントアウトし、代わりに以下を追加
00361         }else{
00362 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
00363                 "検索条件を指定してください。"
00364             );
00365         }
00366         return TRUE;
00367 //To Here Feb. 20, 2001
00368     case IDC_BUTTON_SETMARK:    //2002.01.16 hor 該当行マーク
00369         if( 0 < GetData() ){
00370             if( m_bModal ){     /* モーダルダイアログか */
00371                 CloseDialog( 2 );
00372             }else{
00373                 pcEditView->HandleCommand( F_BOOKMARK_PATTERN, FALSE, 0, 0, 0, 0 );
00374                 /* 検索ダイアログを自動的に閉じる */
00375                 if( m_pShareData->m_Common.m_bAutoCloseDlgFind ){
00376                     CloseDialog( 0 );
00377                 }
00378                 else{
00379                 ::SendMessage(m_hWnd,WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(m_hWnd,IDC_COMBO_TEXT ),TRUE);
00380                 }
00381             }
00382         }
00383         return TRUE;
00384     case IDCANCEL:
00385         CloseDialog( 0 );
00386         return TRUE;
00387     }
00388     return FALSE;
00389 }
00390
00391
00392
00393 //@@@ 2002.01.18 add start
00394 LPVOID CDlgFind::GetHelpIdTable(void)
00395 {
00396     return (LPVOID)p_helpids;
00397 }
00398 //@@@ 2002.01.18 add end
00399
00400 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFind.h

CDlgFind.h

検索ダイアログボックス [詳細]

#include "CDialog.h"

CDlgFind.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgFind

説明

検索ダイアログボックス

作者:
Norio Nakatani
日付:
1998/12/02 再作成

CDlgFind.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFind.h ソースファイル

CDlgFind.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, YAZAKI
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 #include "CDialog.h"
00015
00016 #ifndef _CDLGFIND_H_
00017 #define _CDLGFIND_H_
00018
00019
00020 /*-----------------------------------------------------------------------
00021 クラスの宣言
00022 -----------------------------------------------------------------------*/
00023 class SAKURA_CORE_API CDlgFind : public CDialog
00024 {
00025 public:
00026     /*
00027     ||  Constructors
00028     */
00029     CDlgFind();
00030     /*
00031     ||  Attributes & Operations
00032     */
00033 //  int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00034     HWND DoModeless( HINSTANCE, HWND, LPARAM ); /* モードレスダイアログの表示 */
00035 //  BOOL DispatchEvent( HWND, UINT, WPARAM, LPARAM );   /* ダイアログのメッセージ処理 */
00036
00037     void ChangeView( LPARAM );
00038
00039     int     m_bLoHiCase;    /* 英大文字と英小文字を区別する */
00040     int     m_bWordOnly;    /* 一致する単語のみ検索する */
00041     int     m_bRegularExp;  /* 正規表現 */
00042     int     m_bNOTIFYNOTFOUND;  /* 検索／置換  見つからないときメッセージを表示 */
00043     char    m_szText[_MAX_PATH + 1];    /* 検索文字列 */
00044     int     m_nEscCaretPosX_PHY;    /* 検索開始時のカーソル位置退避エリア 02/07/28 ai */
00045     int     m_nEscCaretPosY_PHY;    /* 検索開始時のカーソル位置退避エリア 02/07/28 ai */
00046
00047 protected:
00048 //@@@ 2002.2.2 YAZAKI CShareDataに移動
00049 //  void AddToSearchKeyArr( const char* );
00050     /* オーバーライド? */
00051     int GetData( void );    /* ダイアログデータの取得 */
00052     void SetData( void );   /* ダイアログデータの設定 */
00053     BOOL OnBnClicked( int );
00054
00055     // virtual BOOL OnKeyDown( WPARAM wParam, LPARAM lParam );
00056     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00057 };
00058
00059
00060
00062 #endif /* _CDLGFIND_H_ */
00063
00064
00065 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFuncList.cpp

CDlgFuncList.cpp

アウトライン解析ダイアログボックス [詳細]

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
#include "sakura_rc.h"
#include "CDlgFuncList.h"
#include "etc_uty.h"
#include "debug.h"
#include "global.h"
#include "CEditView.h"
#include "funccode.h"
#include "CFuncInfoArr.h"
#include "mymessage.h"
#include "Keycode.h"
#include "CEditDoc.h"
#include "CEditWnd.h"
#include "sakura.hh"

CDlgFuncList.cppのインクルード依存関係図

ソースコードを見る。

関数

int CALLBACK | _CompareFunc_ (LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
int CALLBACK | Compare_by_ItemData (LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)

変数

const DWORD | p_helpids []

説明

アウトライン解析ダイアログボックス

作者:
Norio Nakatani
日付:
2001/06/23 N.Nakatani Visual Basicのアウトライン解析

CDlgFuncList.cpp で定義されています。

関数

int CALLBACK _CompareFunc_ | ( | LPARAM | lParam1,
 |  | LPARAM | lParam2,
 |  | LPARAM | lParamSort
 | ) |

ソート比較用プロシージャ

CDlgFuncList.cpp の 57 行で定義されています。

参照先 CFuncInfoArr::GetAt()・CMemory::GetPtr()・CFuncInfo::m_cmemFuncName・CFuncInfo::m_nFuncLineCRLF・CFuncInfo::m_nInfo・CDlgFuncList::m_nSortCol・CDlgFuncList::m_pcFuncInfoArr・NULL.

参照元 CDlgFuncList::SortListView().

int CALLBACK Compare_by_ItemData | ( | LPARAM | lParam1,
 |  | LPARAM | lParam2,
 |  | LPARAM | lParamSort
 | ) |

CDlgFuncList.cpp の 1886 行で定義されています。

参照元 CDlgFuncList::SortTree().

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_COPY,                HIDC_FL_BUTTON_COPY,
    IDOK,                           HIDOK_FL,
    IDCANCEL,                       HIDCANCEL_FL,
    IDC_BUTTON_HELP,                HIDC_FL_BUTTON_HELP,
    IDC_CHECK_bAutoCloseDlgFuncList,    HIDC_FL_CHECK_bAutoCloseDlgFuncList,
    IDC_LIST1,                      HIDC_FL_LIST1,
    IDC_TREE1,                      HIDC_FL_TREE1,
    IDC_CHECK_bFunclistSetFocusOnJump   ,HIDC_FL_CHECK_bFunclistSetFocusOnJump,
    IDC_CHECK_bMarkUpBlankLineEnable    ,HIDC_FL_CHECK_bMarkUpBlankLineEnable,
    IDC_COMBO_nSortType,            HIDC_COMBO_nSortType,
    IDC_BUTTON_WINSIZE,             HIDC_FL_BUTTON_WINSIZE,

    0, 0
}

CDlgFuncList.cpp の 40 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFuncList.cpp ソースファイル

CDlgFuncList.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2000, genta
00011     Copyright (C) 2001, Stonee, JEPRO, genta, hor
00012     Copyright (C) 2002, MIK, aroka, hor, genta, YAZAKI, Moca, frozen
00013     Copyright (C) 2003, zenryaku, Moca, naoh, little YOSHI, genta,
00014     Copyright (C) 2004, zenryaku, Moca, novice
00015     Copyright (C) 2005, genta, zenryaku, ぜっと, D.S.Koba
00016     Copyright (C) 2006, genta, aroka, ryoji, Moca
00017
00018     This source code is designed for sakura editor.
00019     Please contact the copyright holder to use this code for other purpose.
00020 */
00021
00022 #include "stdafx.h"
00023 #include <windows.h>
00024 #include <commctrl.h>
00025 #include "sakura_rc.h"
00026 #include "CDlgFuncList.h"
00027 #include "etc_uty.h"
00028 #include "debug.h"
00029 #include "global.h"
00030 #include "CEditView.h"
00031 #include "funccode.h"       //Stonee, 2001/03/12
00032 #include "CFuncInfoArr.h"// 2002/2/3 aroka
00033 #include "mymessage.h"// 2002/2/3 aroka
00034 #include "Keycode.h"// 2002/2/10 aroka ヘッダ整理
00035 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00036 #include "CEditWnd.h"   //  2006/2/11 aroka 追加
00037
00038 //アウトライン解析 CDlgFuncList.cpp //@@@ 2002.01.07 add start MIK
00039 #include "sakura.hh"
00040 const DWORD p_helpids[] = { //12200
00041     IDC_BUTTON_COPY,                HIDC_FL_BUTTON_COPY,    //コピー
00042     IDOK,                           HIDOK_FL,               //ジャンプ
00043     IDCANCEL,                       HIDCANCEL_FL,           //キャンセル
00044     IDC_BUTTON_HELP,                HIDC_FL_BUTTON_HELP,    //ヘルプ
00045     IDC_CHECK_bAutoCloseDlgFuncList,    HIDC_FL_CHECK_bAutoCloseDlgFuncList,    //自動的に閉じる
00046     IDC_LIST1,                      HIDC_FL_LIST1,          //トピックリスト
00047     IDC_TREE1,                      HIDC_FL_TREE1,          //トピックツリー
00048     IDC_CHECK_bFunclistSetFocusOnJump   ,HIDC_FL_CHECK_bFunclistSetFocusOnJump, //ジャンプでフォーカス移動する
00049     IDC_CHECK_bMarkUpBlankLineEnable    ,HIDC_FL_CHECK_bMarkUpBlankLineEnable,  //空行を無視する
00050     IDC_COMBO_nSortType,            HIDC_COMBO_nSortType,   //順序
00051     IDC_BUTTON_WINSIZE,             HIDC_FL_BUTTON_WINSIZE, //ウィンドウ位置保存    // 2006.08.06 ryoji
00052 //  IDC_STATIC,                     -1,
00053     0, 0
00054 };  //@@@ 2002.01.07 add end MIK
00055
00057 int CALLBACK _CompareFunc_( LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort )
00058 {
00059     CFuncInfo*      pcFuncInfo1;
00060     CFuncInfo*      pcFuncInfo2;
00061     CDlgFuncList*   pcDlgFuncList;
00062     pcDlgFuncList = (CDlgFuncList*)lParamSort;
00063
00064     pcFuncInfo1 = pcDlgFuncList->m_pcFuncInfoArr->GetAt( lParam1 );
00065     if( NULL == pcFuncInfo1 ){
00066         return -1;
00067     }
00068     pcFuncInfo2 = pcDlgFuncList->m_pcFuncInfoArr->GetAt( lParam2 );
00069     if( NULL == pcFuncInfo2 ){
00070         return -1;
00071     }
00072     //  Apr. 23, 2005 genta 行番号を左端へ
00073     if( 1 == pcDlgFuncList->m_nSortCol){    /* ソートする列番号 */
00074         return strcmp( pcFuncInfo1->m_cmemFuncName.GetPtr(), pcFuncInfo2->m_cmemFuncName.GetPtr() );
00075     }
00076     //  Apr. 23, 2005 genta 行番号を左端へ
00077     if( 0 == pcDlgFuncList->m_nSortCol){    /* ソートする列番号 */
00078         if( pcFuncInfo1->m_nFuncLineCRLF < pcFuncInfo2->m_nFuncLineCRLF ){
00079             return -1;
00080         }else
00081         if( pcFuncInfo1->m_nFuncLineCRLF == pcFuncInfo2->m_nFuncLineCRLF ){
00082             return 0;
00083         }else{
00084             return 1;
00085         }
00086     }
00087     // From Here 2001.12.07 hor
00088     if( 2 == pcDlgFuncList->m_nSortCol){    /* ソートする列番号 */
00089         if( pcFuncInfo1->m_nInfo < pcFuncInfo2->m_nInfo ){
00090             return -1;
00091         }else
00092         if( pcFuncInfo1->m_nInfo == pcFuncInfo2->m_nInfo ){
00093             return 0;
00094         }else{
00095             return 1;
00096         }
00097     }
00098     // To Here 2001.12.07 hor
00099     return -1;
00100 }
00101
00102 CDlgFuncList::CDlgFuncList()
00103 {
00104     m_pcFuncInfoArr = NULL;     /* 関数情報配列 */
00105     m_nCurLine = 0;             /* 現在行 */
00106     //  Apr. 23, 2005 genta 行番号を左端へ
00107     m_nSortCol = 0;             /* ソートする列番号 2004.04.06 zenryaku 標準は行番号(1列目) */
00108     m_bLineNumIsCRLF = FALSE;   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00109     m_bWaitTreeProcess = false; // 2002.02.16 hor Treeのダブルクリックでフォーカス移動できるように 2/4
00110     m_nSortType = 0;
00111     return;
00112 }
00113
00114
00115
00116 //  /* モーダルダイアログの表示 */
00117 //  int CDlgFuncList::DoModal(
00118 //      HINSTANCE       hInstance,
00119 //      HWND            hwndParent,
00120 //      LPARAM          lParam,
00121 //      CFuncInfoArr*   pcFuncInfoArr,
00122 //      int             nCurLine,
00123 //      int             nListType,
00124 //      int             bLineNumIsCRLF  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00125 //  )
00126 //  {
00127 //      m_pcFuncInfoArr = pcFuncInfoArr;    /* 関数情報配列 */
00128 //      m_nCurLine = nCurLine;              /* 現在行 */
00129 //      m_nListType = nListType;            /* 一覧の種類 */
00130 //      m_bLineNumIsCRLF = bLineNumIsCRLF;  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00131 //      return CDialog::DoModal( hInstance, hwndParent, IDD_FUNCLIST, lParam );
00132 //  }
00133
00134
00135 /* モードレスダイアログの表示 */
00136 HWND CDlgFuncList::DoModeless(
00137     HINSTANCE       hInstance,
00138     HWND            hwndParent,
00139     LPARAM          lParam,
00140     CFuncInfoArr*   pcFuncInfoArr,
00141     int             nCurLine,
00142     int             nListType,
00143     int             bLineNumIsCRLF      /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00144 )
00145 {
00146     m_pcFuncInfoArr = pcFuncInfoArr;    /* 関数情報配列 */
00147     m_nCurLine = nCurLine;              /* 現在行 */
00148     m_nListType = nListType;            /* 一覧の種類 */
00149     m_bLineNumIsCRLF = bLineNumIsCRLF;  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00150
00151     // 2007.04.18 genta : 「フォーカスを移す」と「自動的に閉じる」がチェックされている場合に
00152     // ダブルクリックを行うと，trueのまま残ってしまうので，ウィンドウを開いたときにリセットする．
00153     m_bWaitTreeProcess = false;
00154     return CDialog::DoModeless( hInstance, hwndParent, IDD_FUNCLIST, lParam, SW_SHOW );
00155 }
00156
00157 /* モードレス時：検索対象となるビューの変更 */
00158 void CDlgFuncList::ChangeView( LPARAM pcEditView )
00159 {
00160     m_lParam = pcEditView;
00161     return;
00162 }
00163
00165 void CDlgFuncList::SetData( void/*HWND hwndDlg*/ )
00166 {
00167     int             i;
00168     char            szText[2048];
00169     CFuncInfo*      pcFuncInfo;
00170     LV_ITEM         item;
00171     HWND            hwndList;
00172     HWND            hwndTree;
00173     int             bSelected;
00174     int             nFuncLineOld;
00175     int             nSelectedLine;
00176     RECT            rc;
00177     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST1 );
00178     hwndTree = ::GetDlgItem( m_hWnd, IDC_TREE1 );
00179
00180     //2002.02.08 hor 隠しといてアイテム削除→あとで表示
00181     ::ShowWindow( hwndList, SW_HIDE );
00182     ::ShowWindow( hwndTree, SW_HIDE );
00183     ListView_DeleteAllItems( hwndList );
00184     TreeView_DeleteAllItems( hwndTree );
00185
00186     m_cmemClipText.SetDataSz( "" ); /* クリップボードコピー用テキスト */
00187
00188     if( OUTLINE_CPP == m_nListType ){   /* C++メソッドリスト */
00189         //  May 18, 2001 genta
00190         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00191         //  ::DestroyWindow( hwndList );
00192 //      ::ShowWindow( hwndList, SW_HIDE );
00193         m_nViewType = 1;
00194         /* ツリーコントロールの初期化：C++メソッドツリー */
00195         //SetTreeCpp( m_hWnd );
00196         //  Jan. 04, 2002 genta Java Method Treeに統合
00197
00198         SetTreeJava( m_hWnd, TRUE );
00199
00200         ::SetWindowText( m_hWnd, "C++ メソッドツリー" );
00201     }else
00202     if( OUTLINE_FILE == m_nListType ){  //@@@ 2002.04.01 YAZAKI アウトライン解析にルールファイル導入
00203         m_nViewType = 1;
00204         SetTree();
00205         ::SetWindowText( m_hWnd, "ルールファイル" );
00206     }else
00207     if( OUTLINE_WZTXT == m_nListType ){ //@@@ 2003.05.20 zenryaku 階層付テキストアウトライン解析
00208         m_nViewType = 1;
00209         SetTree();
00210         //  2003.06.22 Moca 名前変更
00211         ::SetWindowText( m_hWnd, "WZ階層付テキスト" );
00212     }else
00213     if( OUTLINE_HTML == m_nListType ){ //@@@ 2003.05.20 zenryaku HTMLアウトライン解析
00214         m_nViewType = 1;
00215         SetTree();
00216         ::SetWindowText( m_hWnd, "HTML" );
00217     }else
00218     if( OUTLINE_TEX == m_nListType ){ //@@@ 2003.07.20 naoh TeXアウトライン解析
00219         m_nViewType = 1;
00220         SetTree();
00221         ::SetWindowText( m_hWnd, "TeX" );
00222     }else
00223     if( OUTLINE_TEXT == m_nListType ){ /* テキスト・トピックリスト */
00224         //  May 18, 2001 genta
00225         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00226         //::DestroyWindow( hwndList );
00227 //      ::ShowWindow( hwndList, SW_HIDE );
00228         m_nViewType = 1;
00229         /* ツリーコントロールの初期化：テキストトピックツリー */
00230 //      SetTreeTxt();
00231         SetTree();  //@@@ 2002.04.01 YAZAKI テキストトピックツリーも、汎用SetTreeを呼ぶように変更。
00232         ::SetWindowText( m_hWnd, "テキスト トピックツリー" );
00233     }else
00234     if( OUTLINE_JAVA == m_nListType ){ /* Javaメソッドツリー */
00235         //  May 18, 2001 genta
00236         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00237         //  ::DestroyWindow( hwndList );
00238 //      ::ShowWindow( hwndList, SW_HIDE );
00239         m_nViewType = 1;
00240         /* ツリーコントロールの初期化：Javaメソッドツリー */
00241         SetTreeJava( m_hWnd, TRUE );
00242         ::SetWindowText( m_hWnd, "Java メソッドツリー" );
00243     }else
00244     //  2007.02.08 genta Python追加
00245     if( OUTLINE_PYTHON == m_nListType ){ /* Python メソッドツリー */
00246         m_nViewType = 1;
00247         SetTree( true );
00248         ::SetWindowText( m_hWnd, "Python メソッドツリー" );
00249     }else
00250     if( OUTLINE_COBOL == m_nListType ){ /* COBOL アウトライン */
00251         //  May 18, 2001 genta
00252         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00253         //  ::DestroyWindow( hwndList );
00254 //      ::ShowWindow( hwndList, SW_HIDE );
00255         m_nViewType = 1;
00256         /* ツリーコントロールの初期化：COBOL アウトライン */
00257         SetTreeJava( m_hWnd, FALSE );
00258         ::SetWindowText( m_hWnd, "COBOL アウトライン" );
00259     }else
00260     if( OUTLINE_VB == m_nListType ){    /* VisualBasic アウトライン */
00261         // Jul 10, 2003  little YOSHI   処理が長くなったので独立
00262         m_nViewType = 0;
00263         /* リストビューコントロールの初期化：Visual Basic アウトライン */
00264         SetListVB();
00265         ::SetWindowText( m_hWnd, "Visual Basic アウトライン" );
00266     }else{
00267         m_nViewType = 0;
00268         switch( m_nListType ){
00269         case OUTLINE_C:
00270             ::SetWindowText( m_hWnd, "C 関数一覧" );
00271             break;
00272         case OUTLINE_PLSQL:
00273             ::SetWindowText( m_hWnd, "PL/SQL 関数一覧" );
00274             break;
00275         case OUTLINE_ASM:
00276             ::SetWindowText( m_hWnd, "アセンブラ アウトライン" );
00277             break;
00278         case OUTLINE_PERL:  //  Sep. 8, 2000 genta
00279             ::SetWindowText( m_hWnd, "Perl 関数一覧" );
00280             break;
00281 // Jul 10, 2003  little YOSHI  上に移動しました--->>
00282 //      case OUTLINE_VB:    // 2001/06/23 N.Nakatani for Visual Basic
00283 //          ::SetWindowText( m_hWnd, "Visual Basic アウトライン" );
00284 //          break;
00285 // <<---ここまで
00286         case OUTLINE_BOOKMARK:
00287             LV_COLUMN col;
00288             col.mask = LVCF_TEXT;
00289             col.pszText = "テキスト";
00290             col.iSubItem = 0;
00291             //  Apr. 23, 2005 genta 行番号を左端へ
00292             ListView_SetColumn( hwndList, 1, &col );
00293             ::SetWindowText( m_hWnd, "ブックマーク" );
00294             break;
00295 //      case OUTLINE_COBOL:
00296 //          ::SetWindowText( m_hWnd, "COBOLアウトライン" );
00297 //          break;
00298         }
00299         //  May 18, 2001 genta
00300         //  Windowがいなくなると後で都合が悪いので、表示しないだけにしておく
00301         //::DestroyWindow( hwndTree );
00302 //      ::ShowWindow( hwndTree, SW_HIDE );
00303         ::EnableWindow( ::GetDlgItem( m_hWnd , IDC_BUTTON_COPY ), TRUE );
00304         nFuncLineOld = 0;
00305         bSelected = FALSE;
00306         for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00307             pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00308             if( !bSelected ){
00309                 if( i == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00310                     bSelected = TRUE;
00311                     nSelectedLine = i;
00312                 }else
00313                 if( i > 0 && nFuncLineOld <= m_nCurLine && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00314                     bSelected = TRUE;
00315                     nSelectedLine = i - 1;
00316                 }
00317             }
00318             nFuncLineOld = pcFuncInfo->m_nFuncLineLAYOUT;
00319         }
00320         if( 0 < m_pcFuncInfoArr->GetNum() && !bSelected ){
00321             bSelected = TRUE;
00322             nSelectedLine =  m_pcFuncInfoArr->GetNum() - 1;
00323         }
00324         for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00325             /* 現在の解析結果要素 */
00326             pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00327
00328             //  From Here Apr. 23, 2005 genta 行番号を左端へ
00329             /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00330             if(m_bLineNumIsCRLF ){
00331                 wsprintf( szText, "%d", pcFuncInfo->m_nFuncLineCRLF );
00332             }else{
00333                 wsprintf( szText, "%d", pcFuncInfo->m_nFuncLineLAYOUT );
00334             }
00335             item.mask = LVIF_TEXT | LVIF_PARAM;
00336             item.pszText = szText;
00337             item.iItem = i;
00338             item.lParam = i;
00339             item.iSubItem = 0;
00340             ListView_InsertItem( hwndList, &item);
00341
00342             item.mask = LVIF_TEXT;
00343             item.pszText = pcFuncInfo->m_cmemFuncName.GetPtr();
00344             item.iItem = i;
00345             item.iSubItem = 1;
00346             ListView_SetItem( hwndList, &item);
00347             //  To Here Apr. 23, 2005 genta 行番号を左端へ
00348
00349             item.mask = LVIF_TEXT;
00350             if(  1 == pcFuncInfo->m_nInfo ){item.pszText = "宣言";}else
00351             if( 10 == pcFuncInfo->m_nInfo ){item.pszText = "関数宣言";}else
00352             if( 20 == pcFuncInfo->m_nInfo ){item.pszText = "プロシージャ宣言";}else
00353             if( 11 == pcFuncInfo->m_nInfo ){item.pszText = "関数";}else
00354             if( 21 == pcFuncInfo->m_nInfo ){item.pszText = "プロシージャ";}else
00355             if( 31 == pcFuncInfo->m_nInfo ){item.pszText = "■パッケージ仕様部";}else
00356             if( 41 == pcFuncInfo->m_nInfo ){item.pszText = "■パッケージ本体部";}else
00357             if( 50 == pcFuncInfo->m_nInfo ){item.pszText = "PROC";}else
00358             if( 51 == pcFuncInfo->m_nInfo ){item.pszText = "ラベル";}else
00359             if( 52 == pcFuncInfo->m_nInfo ){item.pszText = "ENDP";}else{
00360                 // Jul 10, 2003  little YOSHI
00361                 // ここにあったVB関係の処理はSetListVB()メソッドに移動しました。
00362
00363                 item.pszText = "";
00364             }
00365             item.iItem = i;
00366             item.iSubItem = 2;
00367             ListView_SetItem( hwndList, &item);
00368
00369             /* クリップボードにコピーするテキストを編集 */
00370             if(lstrlen(item.pszText)){
00371                 // 検出結果の種類(関数,,,)があるとき
00372                 wsprintf( szText, "%s(%d): %s(%s)\r\n",
00373                     m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00374                     pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00375                     pcFuncInfo->m_cmemFuncName.GetPtr(),    /* 検出結果 */
00376                     item.pszText                                /* 検出結果の種類 */
00377                 );
00378             }else{
00379                 // 検出結果の種類(関数,,,)がないとき
00380                 wsprintf( szText, "%s(%d): %s\r\n",
00381                     m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00382                     pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00383                     pcFuncInfo->m_cmemFuncName.GetPtr() /* 検出結果 */
00384                 );
00385             }
00386             m_cmemClipText.AppendSz( (const char *)szText );                    /* クリップボードコピー用テキスト */
00387         }
00388         //2002.02.08 hor Listは列幅調整とかを実行する前に表示しとかないと変になる
00389         ::ShowWindow( hwndList, SW_SHOW );
00390         /* 列の幅をデータに合わせて調整 */
00391         ListView_SetColumnWidth( hwndList, 0, LVSCW_AUTOSIZE );
00392         ListView_SetColumnWidth( hwndList, 1, LVSCW_AUTOSIZE );
00393         ListView_SetColumnWidth( hwndList, 2, LVSCW_AUTOSIZE );
00394         ListView_SetColumnWidth( hwndList, 0, ListView_GetColumnWidth( hwndList, 0 ) + 16 );
00395         ListView_SetColumnWidth( hwndList, 1, ListView_GetColumnWidth( hwndList, 1 ) + 16 );
00396         ListView_SetColumnWidth( hwndList, 2, ListView_GetColumnWidth( hwndList, 2 ) + 16 );
00397
00398         // 2005.07.05 ぜっと
00399         DWORD dwExStyle  = ListView_GetExtendedListViewStyle( hwndList );
00400         dwExStyle |= LVS_EX_FULLROWSELECT;
00401         ListView_SetExtendedListViewStyle( hwndList, dwExStyle );
00402
00403         if( bSelected ){
00404             ListView_GetItemRect( hwndList, 0, &rc, LVIR_BOUNDS );
00405             ListView_Scroll( hwndList, 0, nSelectedLine * ( rc.bottom - rc.top ) );
00406             ListView_SetItemState( hwndList, nSelectedLine, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00407         }
00408     }
00409     /* アウトライン ダイアログを自動的に閉じる */
00410     ::CheckDlgButton( m_hWnd, IDC_CHECK_bAutoCloseDlgFuncList, m_pShareData->m_Common.m_bAutoCloseDlgFuncList );
00411     /* アウトライン ブックマーク一覧で空行を無視する */
00412     ::CheckDlgButton( m_hWnd, IDC_CHECK_bMarkUpBlankLineEnable, m_pShareData->m_Common.m_bMarkUpBlankLineEnable );
00413     /* アウトライン ジャンプしたらフォーカスを移す */
00414     ::CheckDlgButton( m_hWnd, IDC_CHECK_bFunclistSetFocusOnJump, m_pShareData->m_Common.m_bFunclistSetFocusOnJump );
00415
00416     /* アウトライン ■位置とサイズを記憶する */ // 20060201 aroka
00417     ::CheckDlgButton( m_hWnd, IDC_BUTTON_WINSIZE, m_pShareData->m_Common.m_bRememberOutlineWindowPos );
00418
00419     /* ダイアログを自動的に閉じるならフォーカス移動オプションは関係ない */
00420     if(m_pShareData->m_Common.m_bAutoCloseDlgFuncList){
00421         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_bFunclistSetFocusOnJump ), FALSE );
00422     }else{
00423         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_bFunclistSetFocusOnJump ), TRUE );
00424     }
00425
00426     //2002.02.08 hor
00427     //（IDC_LIST1もIDC_TREE1も常に存在していて、m_nViewTypeによって、どちらを表示するかを選んでいる）
00428     if(m_nViewType){
00429         ::ShowWindow( hwndTree, SW_SHOW );
00430         ::SetFocus( hwndTree );
00431     }else{
00432 //      ::ShowWindow( hwndList, SW_SHOW );
00433         ::SetFocus( hwndList );
00434     }
00435     //2002.02.08 hor
00436     //空行をどう扱うかのチェックボックスはブックマーク一覧のときだけ表示する
00437     if(OUTLINE_BOOKMARK == m_nListType){
00438         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_bMarkUpBlankLineEnable ), TRUE );
00439         ::ShowWindow( GetDlgItem( m_hWnd, IDC_CHECK_bMarkUpBlankLineEnable ), SW_SHOW );
00440     }else{
00441         ::ShowWindow( GetDlgItem( m_hWnd, IDC_CHECK_bMarkUpBlankLineEnable ), SW_HIDE );
00442         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_bMarkUpBlankLineEnable ), FALSE );
00443     }
00444     // 2002/11/1 frozen 項目のソート基準を設定するコンボボックスはブックマーク一覧の以外の時に表示する
00445     // Nov. 5, 2002 genta ツリー表示の時だけソート基準コンボボックスを表示
00446     if( m_nViewType == 1 ){
00447         HWND hWnd_Combo_Sort = ::GetDlgItem( m_hWnd, IDC_COMBO_nSortType );
00448         ::EnableWindow( hWnd_Combo_Sort , TRUE );
00449         ::ShowWindow( hWnd_Combo_Sort , SW_SHOW );
00450         ::SendMessage( hWnd_Combo_Sort , CB_RESETCONTENT, 0, 0 ); // 2002.11.10 Moca 追加
00451         ::SendMessage( hWnd_Combo_Sort , CB_ADDSTRING, 0, (LPARAM)(_T("デフォルト")));
00452         ::SendMessage( hWnd_Combo_Sort , CB_ADDSTRING, 0, (LPARAM)(_T("アルファベット順")));
00453         ::SendMessage( hWnd_Combo_Sort , CB_SETCURSEL, m_nSortType, 0L);
00454         ::ShowWindow( GetDlgItem( m_hWnd, IDC_STATIC_nSortType ), SW_SHOW );
00455         // 2002.11.10 Moca 追加 ソートする
00456         if( 1 == m_nSortType ){
00457             SortTree(::GetDlgItem( m_hWnd , IDC_TREE1),TVI_ROOT);
00458         }
00459     }
00460     else {
00461         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_nSortType ), FALSE );
00462         ::ShowWindow( GetDlgItem( m_hWnd, IDC_COMBO_nSortType ), SW_HIDE );
00463         ::ShowWindow( GetDlgItem( m_hWnd, IDC_STATIC_nSortType ), SW_HIDE );
00464         //ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );  // 2005.04.05 zenryaku ソート状態を保持
00465         SortListView( hwndList, m_nSortCol );   // 2005.04.23 genta 関数化(ヘッダ書き換えのため)
00466     }
00467
00468     return;
00469 }
00470
00471
00472
00473
00474 /* ダイアログデータの取得 */
00475 /* 0==条件未入力   0より大きい==正常   0より小さい==入力エラー */
00476 int CDlgFuncList::GetData( void )
00477 {
00478     HWND            hwndList;
00479     HWND            hwndTree;
00480     int             nItem;
00481     CFuncInfo*      pcFuncInfo;
00482     LV_ITEM         item;
00483     int             nLineTo;
00484     HTREEITEM       htiItem;
00485     TV_ITEM         tvi;
00486     char            szLabel[32];
00487
00488 //2002.02.08 hor OnBnClicked内に移動
00489 //  /* アウトライン ダイアログを自動的に閉じる */
00490 //  m_pShareData->m_Common.m_bAutoCloseDlgFuncList = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_bAutoCloseDlgFuncList );
00491
00492     nLineTo = -1;
00493     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST1 );
00494     if( m_nViewType == 0 ){
00495         //  List
00496         nItem = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00497         if( -1 == nItem ){
00498             return -1;
00499         }
00500         item.mask = LVIF_PARAM;
00501         item.iItem = nItem;
00502         item.iSubItem = 0;
00503         ListView_GetItem( hwndList, &item );
00504         pcFuncInfo = m_pcFuncInfoArr->GetAt( item.lParam );
00505         nLineTo = pcFuncInfo->m_nFuncLineCRLF;
00506     }else{
00507         hwndTree = ::GetDlgItem( m_hWnd, IDC_TREE1 );
00508         if( NULL != hwndTree ){
00509             htiItem = TreeView_GetSelection( hwndTree );
00510
00511             tvi.mask = TVIF_HANDLE | TVIF_TEXT | TVIF_PARAM;
00512             tvi.hItem = htiItem;
00513             tvi.pszText = szLabel;
00514             tvi.cchTextMax = sizeof( szLabel );
00515             if( TreeView_GetItem( hwndTree, &tvi ) ){
00516                 // lParamが-1以下は pcFuncInfoArrには含まれない項目
00517                 if( 0 <= tvi.lParam ){
00518                     pcFuncInfo = m_pcFuncInfoArr->GetAt( tvi.lParam );
00519                     nLineTo = pcFuncInfo->m_nFuncLineCRLF;
00520                 }
00521             }
00522         }
00523     }
00524     return nLineTo;
00525 }
00526
00527 #if 0
00528 Jan. 04, 2001 genta Java Treeに統合
00530 void CDlgFuncList::SetTreeCpp( HWND hwndDlg )
00531 {
00532     int             i;
00533     char            szText[2048];
00534     CFuncInfo*      pcFuncInfo;
00535     HWND            hwndTree;
00536     int             bSelected;
00537     int             nFuncLineOld;
00538     int             nSelectedLine;
00539     TV_INSERTSTRUCT tvis;
00540     char*           pWork;
00541     char*           pPos;
00542     char*           pClassName;
00543     char*           pFuncName;
00544     //  Jul. 7, 2001 genta
00545     char            szLabel[64];
00546     HTREEITEM       htiGlobal;
00547     HTREEITEM       htiClass;
00548     HTREEITEM       htiItem;
00549     HTREEITEM       htiItemOld;
00550     HTREEITEM       htiSelected;
00551     TV_ITEM         tvi;
00552 //  char            szText[2048];
00553
00554     ::EnableWindow( ::GetDlgItem( m_hWnd , IDC_BUTTON_COPY ), TRUE );
00555
00556     hwndTree = ::GetDlgItem( m_hWnd, IDC_TREE1 );
00557
00558     tvis.hParent = TVI_ROOT;
00559     tvis.hInsertAfter = TVI_LAST;
00560     tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00561     tvis.item.pszText = "グローバル";
00562     tvis.item.lParam = -1;
00563     htiGlobal = TreeView_InsertItem( hwndTree, &tvis );
00564
00565     nFuncLineOld = 0;
00566     bSelected = FALSE;
00567     htiItemOld = NULL;
00568     for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00569         pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00570
00571         pWork = pcFuncInfo->m_cmemFuncName.GetPtr();
00572
00573         /* クラス名::メソッドの場合 */
00574         if( NULL != ( pPos = strstr( pWork, "::" ) ) ){
00575             //  Apr. 1, 2000 genta
00576             //  追加文字列を全角にしたのでメモリもそれだけ必要
00577             //  6 == strlen( "クラス" ), 1 == strlen( '\0' )
00578             pClassName = new char[pPos - pWork + 6 + 1 ];
00579             memcpy( pClassName, pWork, pPos - pWork );
00580             strcpy( &pClassName[pPos - pWork], "クラス" );
00581             pFuncName = new char[ lstrlen( pPos + lstrlen( "::" ) ) + 1 ];
00582             strcpy( pFuncName, pPos + lstrlen( "::" ) );
00583
00584             /* クラス名のアイテムが登録されているか */
00585             htiClass = TreeView_GetFirstVisible( hwndTree );
00586             while( NULL != htiClass ){
00587                 tvi.mask = TVIF_HANDLE | TVIF_TEXT;
00588                 tvi.hItem = htiClass;
00589                 tvi.pszText = szLabel;
00590                 tvi.cchTextMax = sizeof(szLabel);
00591                 if( TreeView_GetItem( hwndTree, &tvi ) ){
00592                     if( 0 == strcmp( pClassName, szLabel ) ){
00593                         break;
00594                     }
00595                 }
00596                 htiClass = TreeView_GetNextSibling( hwndTree, htiClass );
00597             }
00598             /* クラス名のアイテムが登録されていないので登録 */
00599             if( NULL == htiClass ){
00600                 tvis.hParent = TVI_ROOT;
00601                 tvis.hInsertAfter = TVI_LAST;
00602                 tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00603                 tvis.item.pszText = pClassName;
00604                 tvis.item.lParam = -1;
00605                 htiClass = TreeView_InsertItem( hwndTree, &tvis );
00606             }
00607
00608             /* 該当クラス名のアイテムの子として、メソッドのアイテムを登録 */
00609             tvis.hParent = htiClass;
00610             tvis.hInsertAfter = TVI_LAST;
00611             tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00612             tvis.item.pszText = pFuncName;
00613             tvis.item.lParam = i;
00614             htiItem = TreeView_InsertItem( hwndTree, &tvis );
00615
00616             /* クリップボードにコピーするテキストを編集 */
00617             wsprintf( szText, "%s(%d): %s\r\n",
00618                 m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00619                 pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00620                 pcFuncInfo->m_cmemFuncName.GetPtr()     /* 検出結果 */
00621             );
00622 //          m_cmemClipText.Append( (const char *)szText, lstrlen( szText ) );   /* クリップボードコピー用テキスト */
00623             m_cmemClipText.AppendSz( (const char *)szText );                    /* クリップボードコピー用テキスト */
00624         }else{
00625             /* グローバル関数の場合 */
00626             pClassName = NULL;
00627             pFuncName = new char[ lstrlen( pWork ) + 1 ];
00628             strcpy( pFuncName, pWork );
00629
00630             strcpy( szText, pFuncName );
00631             /* 関数宣言か */
00632             if( 1 == pcFuncInfo->m_nInfo ){
00633                 strcat( szText, "(宣言)" );
00634             }
00635
00636             /* グローバル関数のアイテムを登録 */
00637             tvis.hParent = htiGlobal;
00638             tvis.hInsertAfter = TVI_LAST;
00639             tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00640             tvis.item.pszText = szText;
00641             tvis.item.lParam = i;
00642             htiItem = TreeView_InsertItem( hwndTree, &tvis );
00643
00644             /* 関数宣言か */
00645             if( 1 == pcFuncInfo->m_nInfo ){
00646                 /* クリップボードにコピーするテキストを編集 */
00647                 wsprintf( szText, "%s(%d): %s(宣言)\r\n",
00648                     m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00649                     pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00650                     pcFuncInfo->m_cmemFuncName.GetPtr()     /* 検出結果 */
00651                 );
00652 //              m_cmemClipText.Append( (const char *)szText, lstrlen( szText ) );   /* クリップボードコピー用テキスト */
00653                 m_cmemClipText.AppendSz( (const char *)szText );                    /* クリップボードコピー用テキスト */
00654             }else{
00655                 /* クリップボードにコピーするテキストを編集 */
00656                 wsprintf( szText, "%s(%d): %s\r\n",
00657                     m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00658                     pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00659                     pcFuncInfo->m_cmemFuncName.GetPtr()     /* 検出結果 */
00660                 );
00661 //              m_cmemClipText.Append( (const char *)szText, lstrlen( szText ) );   /* クリップボードコピー用テキスト */
00662                 m_cmemClipText.AppendSz( (const char *)szText );                    /* クリップボードコピー用テキスト */
00663             }
00664         }
00665         /* 現在カーソル位置のメソッドかどうか調べる */
00666         if( !bSelected ){
00667             if( i == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00668                 bSelected = TRUE;
00669                 nSelectedLine = i;
00670                 htiSelected = htiItem;
00671             }else
00672             if( i > 0 && nFuncLineOld <= m_nCurLine && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00673                 bSelected = TRUE;
00674                 nSelectedLine = i - 1;
00675                 htiSelected = htiItemOld;
00676             }
00677         }
00678         nFuncLineOld = pcFuncInfo->m_nFuncLineLAYOUT;
00679
00680         if( NULL != pClassName ){
00681             delete [] pClassName;
00682             pClassName = NULL;
00683         }
00684         if( NULL != pFuncName ){
00685             delete [] pFuncName;
00686             pFuncName = NULL;
00687         }
00688         htiItemOld = htiItem;
00689     }
00690     /* ソート、ノードの展開をする */
00691 //  TreeView_SortChildren( hwndTree, TVI_ROOT, 0 );
00692     htiClass = TreeView_GetFirstVisible( hwndTree );
00693     while( NULL != htiClass ){
00694 //      TreeView_SortChildren( hwndTree, htiClass, 0 );
00695         TreeView_Expand( hwndTree, htiClass, TVE_EXPAND );
00696         htiClass = TreeView_GetNextSibling( hwndTree, htiClass );
00697     }
00698     /* 現在カーソル位置のメソッドを選択状態にする */
00699     if( bSelected ){
00700         TreeView_SelectItem( hwndTree, htiSelected );
00701     }else{
00702         if( NULL != htiItemOld ){
00703             TreeView_SelectItem( hwndTree, htiItemOld );
00704         }
00705     }
00706 //  GetTreeTextNext( hwndTree, NULL, 0 );
00707     return;
00708 }
00709 #endif
00710
00711
00718 void CDlgFuncList::SetTreeJava( HWND hwndDlg, BOOL bAddClass )
00719 {
00720     int             i;
00721     char            szText[2048];
00722     CFuncInfo*      pcFuncInfo;
00723     HWND            hwndTree;
00724     int             bSelected;
00725     int             nFuncLineOld;
00726     int             nSelectedLine;
00727     TV_INSERTSTRUCT tvis;
00728     char*           pWork;
00729     char*           pPos;
00730     char*           pClassName;
00731     char*           pFuncName;
00732     char            szLabel[64+6];  // Jan. 07, 2001 genta クラス名エリアの拡大
00733     HTREEITEM       htiGlobal = NULL;   // Jan. 04, 2001 genta C++と統合
00734     HTREEITEM       htiClass;
00735     HTREEITEM       htiItem;
00736     HTREEITEM       htiItemOld;
00737     HTREEITEM       htiSelected;
00738     TV_ITEM         tvi;
00739     int             nClassNest;
00740     int             nDummylParam = -64000;  // 2002.11.10 Moca クラス名のダミーlParam ソートのため
00741     char            szClassArr[16][64]; // Jan. 04, 2001 genta クラス名エリアの拡大
00742
00743     ::EnableWindow( ::GetDlgItem( m_hWnd , IDC_BUTTON_COPY ), TRUE );
00744
00745     hwndTree = ::GetDlgItem( m_hWnd, IDC_TREE1 );
00746
00747     nFuncLineOld = 0;
00748     bSelected = FALSE;
00749     htiItemOld = NULL;
00750     for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
00751         pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
00752         pWork = pcFuncInfo->m_cmemFuncName.GetPtr();
00753         /* クラス名::メソッドの場合 */
00754         if( NULL != ( pPos = strstr( pWork, "::" ) ) ){
00755             /* インナークラスのネストレベルを調べる */
00756             int k, m;
00757             int nWorkLen;
00758             int nCharChars;
00759             nClassNest = 0;
00760             m = 0;
00761             nWorkLen = lstrlen( pWork );
00762             for( k = 0; k < nWorkLen; ++k ){
00763                 // 2005-09-02 D.S.Koba GetSizeOfChar
00764                 nCharChars = CMemory::GetSizeOfChar( pWork, nWorkLen, k );
00765                 if( 1 == nCharChars && ':' == pWork[k] ){
00766                     //  Jan. 04, 2001 genta
00767                     //  C++の統合のため、\に加えて::をクラス区切りとみなすように
00768                     if( k < nWorkLen - 1 && ':' == pWork[k+1] ){
00769                         memcpy( szClassArr[nClassNest], &pWork[m], k - m );
00770                         szClassArr[nClassNest][k - m] = '\0';
00771                         ++nClassNest;
00772                         m = k + 2;
00773                         ++k;
00774                     }
00775                     else
00776                         break;
00777                 }
00778                 else if( 1 == nCharChars && '\\' == pWork[k] ){
00779                     memcpy( szClassArr[nClassNest], &pWork[m], k - m );
00780                     szClassArr[nClassNest][k - m] = '\0';
00781                     ++nClassNest;
00782                     m = k + 1;
00783                 }
00784                 if( 2 == nCharChars ){
00785                     ++k;
00786                 }
00787             }
00788             //  Jan. 04, 2001 genta
00789             //  ::もクラス区切りとみなすので、最後の文字列は関数名として残しておく
00790             /*
00791             if( 0 < k - m ){
00792                 memcpy( szClassArr[nClassNest], &pWork[m], k - m );
00793                 szClassArr[nClassNest][k - m] = '\0';
00794                 ++nClassNest;
00795             }
00796             */
00797 //          for( k = 0; k < nClassNest; ++k ){
00798 //              MYTRACE( "%d [%s]\n", k, szClassArr[k] );
00799 //          }
00800 //          MYTRACE( "\n" );
00801             //  Jan. 04, 2001 genta
00802             //  関数先頭のセット(ツリー構築で使う)
00803             pWork = pWork + m; // 2 == lstrlen( "::" );
00804
00805             /* クラス名のアイテムが登録されているか */
00806             htiClass = TreeView_GetFirstVisible( hwndTree );
00807             HTREEITEM htiParent = TVI_ROOT;
00808             for( k = 0; k < nClassNest; ++k ){
00809                 //  Apr. 1, 2001 genta
00810                 //  追加文字列を全角にしたのでメモリもそれだけ必要
00811                 //  6 == strlen( "クラス" ), 1 == strlen( '\0' )
00812
00813                 // 2002/10/30 frozen
00814                 // bAddClass == true の場合の仕様変更
00815                 // 既存の項目は　「(クラス名)(半角スペース一個)(追加文字列)」
00816                 // となっているとみなし、szClassArr[k] が 「クラス名」と一致すれば、それを親ノードに設定。
00817                 // ただし、一致する項目が複数ある場合は最初の項目を親ノードにする。
00818                 // 一致しない場合は「(クラス名)(半角スペース一個)クラス」のノードを作成する。
00819                 size_t nClassNameLen = strlen( szClassArr[k] );
00820                 for( ; NULL != htiClass ; htiClass = TreeView_GetNextSibling( hwndTree, htiClass ))
00821                 {
00822                     tvi.mask = TVIF_HANDLE | TVIF_TEXT;
00823                     tvi.hItem = htiClass;
00824                     tvi.pszText = szLabel;
00825                     tvi.cchTextMax = sizeof(szLabel);
00826                     if( TreeView_GetItem( hwndTree, &tvi ) )
00827                     {
00828                         if( 0 == strncmp( szClassArr[k],szLabel,nClassNameLen) )
00829                         {
00830                             if(sizeof(szLabel) < (nClassNameLen +1) )
00831                                 break;// バッファ不足では無条件にマッチする
00832                             else
00833                             {
00834                                 if(bAddClass)
00835                                 {
00836                                     if(szLabel[nClassNameLen]==' ')
00837                                         break;
00838                                 }
00839                                 else
00840                                 {
00841                                     if(szLabel[nClassNameLen]=='\0')
00842                                         break;
00843                                 }
00844                             }
00845                         }
00846                     }
00847                 }
00848 //              pClassName = new char[ lstrlen( szClassArr[k] ) + 1 + 6 ];
00849 //              strcpy( pClassName, szClassArr[k] );
00850 //              if( bAddClass ){
00851 //                  strcat( pClassName, "クラス" );
00852 //              }
00853 //              while( NULL != htiClass ){
00854 //                  tvi.mask = TVIF_HANDLE | TVIF_TEXT;
00855 //                  tvi.hItem = htiClass;
00856 //                  tvi.pszText = szLabel;
00857 //                  tvi.cchTextMax = sizeof(szLabel);
00858 //                  if( TreeView_GetItem( hwndTree, &tvi ) ){
00859 //                      if( 0 == strcmp( pClassName, szLabel ) ){
00860 //                          break;
00861 //                      }
00862 //                  }
00863 //                  htiClass = TreeView_GetNextSibling( hwndTree, htiClass );
00864 //              }
00865                 /* クラス名のアイテムが登録されていないので登録 */
00866                 if( NULL == htiClass ){
00867                     // 2002/10/28 frozen 上からここへ移動
00868                     pClassName = new char[ lstrlen( szClassArr[k] ) + 1 + 9 ]; // 2002/10/28 frozen +9は追加する文字列の最大長（" 名前空間"が最大）
00869                     strcpy( pClassName, szClassArr[k] );
00870
00871                     tvis.item.lParam = -1;
00872                     if( bAddClass )
00873                     {
00874                         if( pcFuncInfo->m_nInfo == 7 )
00875                         {
00876                             strcat( pClassName, " 名前空間" );
00877                             tvis.item.lParam = i;
00878                         }
00879                         else
00880                             strcat( pClassName, " クラス" );
00881                             tvis.item.lParam = nDummylParam;
00882                             nDummylParam++;
00883                     }
00884
00885                     tvis.hParent = htiParent;
00886                     tvis.hInsertAfter = TVI_LAST;
00887                     tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00888                     tvis.item.pszText = pClassName;
00889
00890                     htiClass = TreeView_InsertItem( hwndTree, &tvis );
00891                     //  Jan. 04, 2001 genta
00892                     //  不要になったらさっさと削除
00893                     delete [] pClassName; // 2002/10/28 frozen 下からここへ移動
00894
00895                 }else{
00896                     //none
00897                 }
00898                 htiParent = htiClass;
00899                 //if( k + 1 >= nClassNest ){
00900                 //  break;
00901                 //}
00902                 htiClass = TreeView_GetChild( hwndTree, htiClass );
00903             }
00904             htiClass = htiParent;
00905         }else{
00906             //  Jan. 04, 2001 genta
00907             //  Global空間の場合 (C++のみ)
00908
00909             // 2002/10/27 frozen ここから
00910             if( 3 <= pcFuncInfo->m_nInfo  && pcFuncInfo->m_nInfo <= 7 )
00911                 htiClass = TVI_ROOT;
00912             else
00913             {
00914             // 2002/10/27 frozen ここまで
00915                 if( htiGlobal == NULL ){
00916                     TV_INSERTSTRUCT tvg;
00917
00918                     ::ZeroMemory( &tvg, sizeof(tvg));
00919                     tvg.hParent = TVI_ROOT;
00920                     tvg.hInsertAfter = TVI_LAST;
00921                     tvg.item.mask = TVIF_TEXT | TVIF_PARAM;
00922                     tvg.item.pszText = "グローバル";
00923 //                  tvg.item.lParam = -1;
00924                     tvg.item.lParam = nDummylParam;
00925                     htiGlobal = TreeView_InsertItem( hwndTree, &tvg );
00926                     nDummylParam++;
00927                 }
00928                 htiClass = htiGlobal;
00929             }
00930         }
00931         pFuncName = new char[ strlen(pWork) + 1 + 7 ];  // +6 は追加する文字列の最大長
00932         strcpy( pFuncName, pWork );
00933
00934         // 2002/10/27 frozen 追加文字列の種類を増やした
00935         switch(pcFuncInfo->m_nInfo)
00936         {// case 4以上の各追加文字列の最初にある半角スペースを省略することはできない。
00937         case 1: strcat( pFuncName, "(宣言)" );break;
00938         case 3: strcat( pFuncName, " クラス" );break;
00939         case 4: strcat( pFuncName, " 構造体" );break;
00940         case 5: strcat( pFuncName, " 列挙体" );break;
00941         case 6: strcat( pFuncName, " 共用体" );break;
00942 //      case 7: strcat( pFuncName, " 名前空間" );break;
00943         };
00944 //      }
00945         /* 該当クラス名のアイテムの子として、メソッドのアイテムを登録 */
00946         tvis.hParent = htiClass;
00947         tvis.hInsertAfter = TVI_LAST;
00948         tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
00949         tvis.item.pszText = pFuncName;
00950         tvis.item.lParam = i;
00951         htiItem = TreeView_InsertItem( hwndTree, &tvis );
00952
00953         /* クリップボードにコピーするテキストを編集 */
00954         wsprintf( szText, "%s(%d): %s %s\r\n",
00955             m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
00956             pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
00957             pcFuncInfo->m_cmemFuncName.GetPtr(),    /* 検出結果 */
00958             ( 1 == pcFuncInfo->m_nInfo ? "(宣言)" : "" )    //  Jan. 04, 2001 genta C++で使用
00959         );
00960         m_cmemClipText.AppendSz( (const char *)szText ); /* クリップボードコピー用テキスト */
00961         delete [] pFuncName;
00962
00963         /* 現在カーソル位置のメソッドかどうか調べる */
00964         if( !bSelected ){
00965             if( i == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00966                 bSelected = TRUE;
00967                 nSelectedLine = i;
00968                 htiSelected = htiItem;
00969             }else
00970             if( i > 0 && nFuncLineOld <= m_nCurLine && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
00971                 bSelected = TRUE;
00972                 nSelectedLine = i - 1;
00973                 htiSelected = htiItemOld;
00974             }
00975         }
00976         nFuncLineOld = pcFuncInfo->m_nFuncLineLAYOUT;
00977         htiItemOld = htiItem;
00978         //  Jan. 04, 2001 genta
00979         //  deleteはその都度行うのでここでは不要
00980         }
00981     /* ソート、ノードの展開をする */
00982 //  TreeView_SortChildren( hwndTree, TVI_ROOT, 0 );
00983     htiClass = TreeView_GetFirstVisible( hwndTree );
00984     while( NULL != htiClass ){
00985 //      TreeView_SortChildren( hwndTree, htiClass, 0 );
00986         TreeView_Expand( hwndTree, htiClass, TVE_EXPAND );
00987         htiClass = TreeView_GetNextSibling( hwndTree, htiClass );
00988     }
00989     /* 現在カーソル位置のメソッドを選択状態にする */
00990     if( bSelected ){
00991         TreeView_SelectItem( hwndTree, htiSelected );
00992     }else{
00993         if( NULL != htiItemOld ){
00994             TreeView_SelectItem( hwndTree, htiItemOld );
00995         }
00996     }
00997 //  GetTreeTextNext( hwndTree, NULL, 0 );
00998     return;
00999 }
01000
01001
01008 void CDlgFuncList::SetListVB (void)
01009 {
01010     int             i;
01011     char            szText[2048];
01012     char            szTypeOption[256]; // 2006.12.12 Moca wsprintfの入出力で同一変数を使わないための作業領域追加
01013     char            szType[64];
01014     char            szOption[64];
01015     CFuncInfo*      pcFuncInfo;
01016     LV_ITEM         item;
01017     HWND            hwndList;
01018     int             bSelected;
01019     int             nFuncLineOld;
01020     int             nSelectedLine;
01021     RECT            rc;
01022
01023     ::EnableWindow( ::GetDlgItem( m_hWnd , IDC_BUTTON_COPY ), TRUE );
01024
01025     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST1 );
01026
01027     nFuncLineOld = 0;
01028     bSelected = FALSE;
01029     for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
01030         pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
01031         if( !bSelected ){
01032             if( i == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
01033                 bSelected = TRUE;
01034                 nSelectedLine = i;
01035             }else
01036             if( i > 0 && nFuncLineOld <= m_nCurLine && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
01037                 bSelected = TRUE;
01038                 nSelectedLine = i - 1;
01039             }
01040         }
01041         nFuncLineOld = pcFuncInfo->m_nFuncLineLAYOUT;
01042     }
01043     if( 0 < m_pcFuncInfoArr->GetNum() && !bSelected ){
01044         bSelected = TRUE;
01045         nSelectedLine =  m_pcFuncInfoArr->GetNum() - 1;
01046     }
01047     for( i = 0; i < m_pcFuncInfoArr->GetNum(); ++i ){
01048         /* 現在の解析結果要素 */
01049         pcFuncInfo = m_pcFuncInfoArr->GetAt( i );
01050
01051         //  From Here Apr. 23, 2005 genta 行番号を左端へ
01052         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
01053         if(m_bLineNumIsCRLF ){
01054             wsprintf( szText, "%d", pcFuncInfo->m_nFuncLineCRLF );
01055         }else{
01056             wsprintf( szText, "%d", pcFuncInfo->m_nFuncLineLAYOUT );
01057         }
01058         item.mask = LVIF_TEXT | LVIF_PARAM;
01059         item.pszText = szText;
01060         item.iItem = i;
01061         item.iSubItem = 0;
01062         item.lParam = i;
01063         ListView_InsertItem( hwndList, &item);
01064
01065         item.mask = LVIF_TEXT;
01066         item.pszText = pcFuncInfo->m_cmemFuncName.GetPtr();
01067         item.iItem = i;
01068         item.iSubItem = 1;
01069         ListView_SetItem( hwndList, &item);
01070         //  To Here Apr. 23, 2005 genta 行番号を左端へ
01071
01072         item.mask = LVIF_TEXT;
01073
01074         // 2001/06/23 N.Nakatani for Visual Basic
01075         //  Jun. 26, 2001 genta 半角かな→全角に
01076         memset(szText, '\0', sizeof(szText));
01077         memset(szType, '\0', sizeof(szType));
01078         memset(szOption, '\0', sizeof(szOption));
01079         if( 1 == ((pcFuncInfo->m_nInfo >> 8) & 0x01) ){
01080             // スタティック宣言(Static)
01081             // 2006.12.12 Moca 末尾にスペース追加
01082             strcpy(szOption, "静的 ");
01083         }
01084         switch ((pcFuncInfo->m_nInfo >> 4) & 0x0f) {
01085             case 2  :   // プライベート(Private)
01086                 strncat(szOption, "プライベート", sizeof(szOption) - strlen(szOption)); //  2006.12.17 genta サイズ誤り修正
01087                 break;
01088
01089             case 3  :   // フレンド(Friend)
01090                 strncat(szOption, "フレンド", sizeof(szOption) - strlen(szOption)); //  2006.12.17 genta サイズ誤り修正
01091                 break;
01092
01093             default :   // パブリック(Public)
01094                 strncat(szOption, "パブリック", sizeof(szOption) - strlen(szOption)); //    2006.12.17 genta サイズ誤り修正
01095         }
01096         switch (pcFuncInfo->m_nInfo & 0x0f) {
01097             case 1:     // 関数(Function)
01098                 strcpy(szType, "関数");
01099                 break;
01100
01101             // 2006.12.12 Moca ステータス→プロシージャに変更
01102             case 2:     // プロシージャ(Sub)
01103                 strcpy(szType, "プロシージャ");
01104                 break;
01105
01106             case 3:     // プロパティ 取得(Property Get)
01107                 strcpy(szType, "プロパティ 取得");
01108                 break;
01109
01110             case 4:     // プロパティ 設定(Property Let)
01111                 strcpy(szType, "プロパティ 設定");
01112                 break;
01113
01114             case 5:     // プロパティ 参照(Property Set)
01115                 strcpy(szType, "プロパティ 参照");
01116                 break;
01117
01118             case 6:     // 定数(Const)
01119                 strcpy(szType, "定数");
01120                 break;
01121
01122             case 7:     // 列挙型(Enum)
01123                 strcpy(szType, "列挙型");
01124                 break;
01125
01126             case 8:     // ユーザ定義型(Type)
01127                 strcpy(szType, "ユーザ定義型");
01128                 break;
01129
01130             case 9:     // イベント(Event)
01131                 strcpy(szType, "イベント");
01132                 break;
01133
01134             default:    // 未定義なのでクリア
01135                 pcFuncInfo->m_nInfo = 0;
01136
01137         }
01138         if ( 2 == ((pcFuncInfo->m_nInfo >> 8) & 0x02) ) {
01139             // 宣言(Declareなど)
01140             strncat(szType, "宣言", sizeof(szType) - strlen(szType));
01141         }
01142
01143         if ( 0 == pcFuncInfo->m_nInfo ) {
01144             szTypeOption[0] = '\0'; //  2006.12.17 genta 全体を0で埋める必要はない
01145         } else
01146         if ( 0 == strlen(szOption) ) {
01147             wsprintf(szTypeOption, "%s", szType);
01148         } else {
01149             wsprintf(szTypeOption, "%s（%s）", szType, szOption);
01150         }
01151         item.pszText = szTypeOption;
01152         item.iItem = i;
01153         item.iSubItem = 2;
01154         ListView_SetItem( hwndList, &item);
01155
01156         /* クリップボードにコピーするテキストを編集 */
01157         if(lstrlen(item.pszText)){
01158             // 検出結果の種類(関数,,,)があるとき
01159             // 2006.12.12 Moca szText を自分自身にコピーしていたバグを修正
01160             wsprintf( szText, "%s(%d): %s(%s)\r\n",
01161                 m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
01162                 pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
01163                 pcFuncInfo->m_cmemFuncName.GetPtr(),        /* 検出結果 */
01164                 item.pszText                                /* 検出結果の種類 */
01165             );
01166         }else{
01167             // 検出結果の種類(関数,,,)がないとき
01168             wsprintf( szText, "%s(%d): %s\r\n",
01169                 m_pcFuncInfoArr->m_szFilePath,              /* 解析対象ファイル名 */
01170                 pcFuncInfo->m_nFuncLineCRLF,                /* 検出行番号 */
01171                 pcFuncInfo->m_cmemFuncName.GetPtr()         /* 検出結果 */
01172             );
01173         }
01174         m_cmemClipText.AppendSz( szText );  /* クリップボードコピー用テキスト */
01175     }
01176
01177     //2002.02.08 hor Listは列幅調整とかを実行する前に表示しとかないと変になる
01178     ::ShowWindow( hwndList, SW_SHOW );
01179     /* 列の幅をデータに合わせて調整 */
01180     ListView_SetColumnWidth( hwndList, 0, LVSCW_AUTOSIZE );
01181     ListView_SetColumnWidth( hwndList, 1, LVSCW_AUTOSIZE );
01182     ListView_SetColumnWidth( hwndList, 2, LVSCW_AUTOSIZE );
01183     ListView_SetColumnWidth( hwndList, 0, ListView_GetColumnWidth( hwndList, 0 ) + 16 );
01184     ListView_SetColumnWidth( hwndList, 1, ListView_GetColumnWidth( hwndList, 1 ) + 16 );
01185     ListView_SetColumnWidth( hwndList, 2, ListView_GetColumnWidth( hwndList, 2 ) + 16 );
01186     if( bSelected ){
01187         ListView_GetItemRect( hwndList, 0, &rc, LVIR_BOUNDS );
01188         ListView_Scroll( hwndList, 0, nSelectedLine * ( rc.bottom - rc.top ) );
01189         ListView_SetItemState( hwndList, nSelectedLine, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
01190     }
01191
01192     return;
01193 }
01194
01195 #if 0
01196 2002.04.01 YAZAKI もともと使用されていなかったため
01197 void CDlgFuncList::GetTreeTextNext(
01198         HWND        hwndTree,
01199         HTREEITEM   htiParent,
01200         int         nDepth
01201 )
01202 {
01203     HTREEITEM       htiItem;
01204     TV_ITEM         tvi;
01205     int             i;
01206     char            szWork[1024];
01207
01208     if( NULL == htiParent ){
01209         htiItem = TreeView_GetRoot( hwndTree );
01210     }else{
01211         htiItem = TreeView_GetChild( hwndTree, htiParent );
01212     }
01213     while( NULL != htiItem ){
01214         tvi.mask = TVIF_HANDLE | TVIF_TEXT;
01215         tvi.hItem = htiItem;
01216         tvi.pszText = (LPSTR)szWork;
01217         tvi.cchTextMax = sizeof( szWork );
01218         TreeView_GetItem( hwndTree, &tvi );
01219         for( i = 0; i < nDepth; ++i ){
01220 //          m_cmemClipText.Append( "  ", 2 );   /* クリップボードコピー用テキスト */
01221             m_cmemClipText.AppendSz( "  " );    /* クリップボードコピー用テキスト */
01222         }
01223 //      m_cmemClipText.Append( (const char *)tvi.pszText, lstrlen( (const char *)tvi.pszText ) );   /* クリップボードコピー用テキスト */
01224         m_cmemClipText.AppendSz( (const char *)tvi.pszText );   /* クリップボードコピー用テキスト */
01225 //      m_cmemClipText.Append( (const char *)"\r\n", 2 );       /* クリップボードコピー用テキスト */
01226         m_cmemClipText.AppendSz( (const char *)"\r\n" );        /* クリップボードコピー用テキスト */
01227         GetTreeTextNext( hwndTree, htiItem, nDepth + 1 );
01228
01229         htiItem = TreeView_GetNextSibling( hwndTree, htiItem );
01230     }
01231     return;
01232 }
01233 #endif
01234
01244 void CDlgFuncList::SetTree(bool tagjump)
01245 {
01246     HTREEITEM hItemSelected = NULL;
01247     HWND hwndTree = ::GetDlgItem( m_hWnd, IDC_TREE1 );
01248
01249     int i;
01250     int nFuncInfoArrNum = m_pcFuncInfoArr->GetNum();
01251     int nStackPointer = 0;
01252     int nStackDepth = 32; // phParentStack の確保している数
01253     HTREEITEM* phParentStack;
01254     phParentStack = (HTREEITEM*)malloc( nStackDepth * sizeof( HTREEITEM ) );
01255     phParentStack[ nStackPointer ] = TVI_ROOT;
01256
01257     for (i = 0; i < nFuncInfoArrNum; i++){
01258         CFuncInfo* pcFuncInfo = m_pcFuncInfoArr->GetAt(i);
01259
01260         /*  新しいアイテムを作成
01261             現在の親の下にぶら下げる形で、最後に追加する。
01262         */
01263         HTREEITEM hItem;
01264         TV_INSERTSTRUCT cTVInsertStruct;
01265         cTVInsertStruct.hParent = phParentStack[ nStackPointer ];
01266         cTVInsertStruct.hInsertAfter = TVI_LAST;    //  必ず最後に追加。
01267         cTVInsertStruct.item.mask = TVIF_TEXT | TVIF_PARAM;
01268         cTVInsertStruct.item.pszText = pcFuncInfo->m_cmemFuncName.GetPtr();
01269         cTVInsertStruct.item.lParam = i;    //  あとでこの数値（＝m_pcFuncInfoArrの何番目のアイテムか）を見て、目的地にジャンプするぜ!!。
01270
01271         /*  親子関係をチェック
01272         */
01273         if (nStackPointer != pcFuncInfo->m_nDepth){
01274             //  レベルが変わりました!!
01275             //  ※が、2段階深くなることは考慮していないので注意。
01276             //  　もちろん、2段階以上浅くなることは考慮済み。
01277
01278             // 2002.11.10 Moca 追加 確保したサイズでは足りなくなった。再確保
01279             if( nStackDepth <= pcFuncInfo->m_nDepth + 1 ){
01280                 nStackDepth = pcFuncInfo->m_nDepth + 4; // 多めに確保しておく
01281                 HTREEITEM* phTi;
01282                 phTi = (HTREEITEM*)realloc( phParentStack, nStackDepth * sizeof( HTREEITEM ) );
01283                 if( NULL != phTi ){
01284                     phParentStack = phTi;
01285                 }else{
01286                     goto end_of_func;
01287                 }
01288             }
01289             nStackPointer = pcFuncInfo->m_nDepth;
01290             cTVInsertStruct.hParent = phParentStack[ nStackPointer ];
01291         }
01292         hItem = TreeView_InsertItem( hwndTree, &cTVInsertStruct );
01293         phParentStack[ nStackPointer+1 ] = hItem;
01294
01295         /*  pcFuncInfoに登録されている行数を確認して、選択するアイテムを考える
01296         */
01297         if ( pcFuncInfo->m_nFuncLineLAYOUT <= m_nCurLine ){
01298             hItemSelected = hItem;
01299         }
01300
01301         /* クリップボードコピー用テキストを作成する */
01302         //  2003.06.22 Moca dummy要素はツリーに入れるがTAGJUMPには加えない
01303         if( pcFuncInfo->IsAddClipText() ){
01304             CMemory text;
01305
01306             if( tagjump ){
01307
01308                 text.AllocBuffer( pcFuncInfo->m_cmemFuncName.GetLength()
01309                     + nStackPointer * 2 + 1
01310                     + strlen( m_pcFuncInfoArr->m_szFilePath )
01311                     + 20 );
01312
01313                 //  2007.03.04 genta タグジャンプできる形式で書き込む
01314                 text.AppendSz( m_pcFuncInfoArr->m_szFilePath );
01315
01316                 char linenum[32];
01317                 int len = wsprintf( linenum, "(%d): ",
01318                     pcFuncInfo->m_nFuncLineCRLF                 /* 検出行番号 */
01319                 );
01320                 text.AppendSz( linenum );
01321             }
01322             else {
01323                 //  先に十分なサイズの領域を取っておく
01324                 text.AllocBuffer( pcFuncInfo->m_cmemFuncName.GetLength() + nStackPointer * 2 + 1 + 5 );
01325             }
01326
01327             for( int cnt = 0; cnt < nStackPointer; cnt++ ){
01328                 text.AppendSz( "  " );
01329             }
01330             text.Append( " ", 1 );
01331
01332             text.Append( &pcFuncInfo->m_cmemFuncName );
01333             text.Append( "\r\n", 2 );
01334             m_cmemClipText.Append( &text ); /* クリップボードコピー用テキスト */
01335         }
01336     }
01337
01338 end_of_func:;
01339
01340     ::EnableWindow( ::GetDlgItem( m_hWnd , IDC_BUTTON_COPY ), TRUE );
01341
01342     if( NULL != hItemSelected ){
01343         /* 現在カーソル位置のメソッドを選択状態にする */
01344         TreeView_SelectItem( hwndTree, hItemSelected );
01345     }
01346
01347     free( phParentStack );
01348 }
01349
01350 #if 0
01351 2002.04.01 YAZAKI SetTreeTxt()、SetTreeTxtNest()は廃止。汎用のSetTree()を使うようにしました。
01352 /* ツリーコントロールの初期化：テキスト トピックツリー */
01353 void CDlgFuncList::SetTreeTxt()
01354 {
01355     HWND            hwndTree;
01356     int             nBgn;
01357     HTREEITEM       htiItem;
01358     HTREEITEM       htiItemSelected;
01359     TV_INSERTSTRUCT tvis;
01360     hwndTree = ::GetDlgItem( m_hWnd, IDC_TREE1 );
01361     tvis.hParent = TVI_ROOT;
01362     tvis.hInsertAfter = TVI_LAST;
01363     tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
01364     tvis.item.pszText = "トピック";
01365     tvis.item.lParam = -1;
01366     htiItem = TreeView_InsertItem( hwndTree, &tvis );
01367     ::EnableWindow( ::GetDlgItem( m_hWnd , IDC_BUTTON_COPY ), TRUE );
01368     nBgn = 0;
01369     htiItemSelected = NULL;
01370     SetTreeTxtNest( hwndTree, htiItem, 0, m_pcFuncInfoArr->GetNum(), &htiItemSelected, 0 );
01371 //  TreeView_Expand( hwndTree, htiItem, TVE_EXPAND );
01372     if( NULL != htiItemSelected ){
01373         /* 現在カーソル位置のメソッドを選択状態にする */
01374         TreeView_SelectItem( hwndTree, htiItemSelected );
01375     }
01376     return;
01377 }
01378
01379
01380
01381
01382
01383 /* ツリーコントロールの初期化：テキスト トピックツリー  再帰サブ関数 */
01384 int CDlgFuncList::SetTreeTxtNest(
01385     HWND            hwndTree,
01386     HTREEITEM       htiParent,
01387     int             nBgn,
01388     int             nEnd,
01389     HTREEITEM*      phtiItemSelected,
01390     int             nDepth
01391 )
01392 {
01393     CFuncInfo*      pcFuncInfoNext;
01394     CFuncInfo*      pcFuncInfo;
01395     CFuncInfo*      pcFuncInfo2;
01396     unsigned char*  pWork;
01397     unsigned char*  pWork2;
01398     int             nCharChars;
01399     int             nCharChars2;
01400     int             i;
01401     TV_INSERTSTRUCT tvis;
01402     HTREEITEM       htiItem;
01403     while( nBgn < nEnd ){
01404         /* トピック情報取得 */
01405         pcFuncInfo = m_pcFuncInfoArr->GetAt( nBgn );
01406         pWork = (unsigned char*)pcFuncInfo->m_cmemFuncName.GetPtr();
01407         nCharChars = CMemory::MemCharNext( (char*)pWork, lstrlen( (char*)pWork ), (char*)pWork ) - (char*)pWork;
01408
01409         tvis.hParent = htiParent;
01410         tvis.hInsertAfter = TVI_LAST;
01411         tvis.item.mask = TVIF_TEXT | TVIF_PARAM;
01412         tvis.item.pszText = (char*)pWork;
01413         tvis.item.lParam = nBgn;
01414         htiItem = TreeView_InsertItem( hwndTree, &tvis );
01415
01416         for( i = 0; i < nDepth; ++i ){
01417 //          m_cmemClipText.Append( "  ", 2 );   /* クリップボードコピー用テキスト */
01418             m_cmemClipText.AppendSz( "  " );    /* クリップボードコピー用テキスト */
01419         }
01420 //      m_cmemClipText.Append( (const char *)pWork, lstrlen( (const char *)pWork ) );   /* クリップボードコピー用テキスト */
01421         m_cmemClipText.AppendSz( (const char *)pWork );     /* クリップボードコピー用テキスト */
01422 //      m_cmemClipText.Append( (const char *)"\r\n", 2 );   /* クリップボードコピー用テキスト */
01423         m_cmemClipText.AppendSz( (const char *)"\r\n" );    /* クリップボードコピー用テキスト */
01424
01425         /* 現在カーソル位置のメソッドかどうか調べる */
01426         if( nBgn == 0 && m_nCurLine < pcFuncInfo->m_nFuncLineLAYOUT ){
01427             /* 現在カーソル位置のメソッドを選択状態にする */
01428 //          TreeView_SelectItem( hwndTree, htiItem );
01429             *phtiItemSelected = htiItem;
01430         }else{
01431             if( nBgn + 1 < m_pcFuncInfoArr->GetNum() ){
01432                 pcFuncInfoNext = m_pcFuncInfoArr->GetAt( nBgn + 1 );
01433                 if( m_nCurLine >= pcFuncInfo->m_nFuncLineLAYOUT &&
01434                     m_nCurLine < pcFuncInfoNext->m_nFuncLineLAYOUT
01435                 ){
01436                     /* 現在カーソル位置のメソッドを選択状態にする */
01437 //                  TreeView_SelectItem( hwndTree, htiItem );
01438                     *phtiItemSelected = htiItem;
01439                 }
01440             }else{
01441                 if( m_nCurLine >= pcFuncInfo->m_nFuncLineLAYOUT ){
01442                     /* 現在カーソル位置のメソッドを選択状態にする */
01443 //                  TreeView_SelectItem( hwndTree, htiItem );
01444                     *phtiItemSelected = htiItem;
01445                 }
01446             }
01447         }
01448         for( i = nBgn + 1; i < nEnd; ++i ){
01449             pcFuncInfo2 = m_pcFuncInfoArr->GetAt( i );
01450             pWork2 = (unsigned char*)pcFuncInfo2->m_cmemFuncName.GetPtr();
01451             nCharChars2 = CMemory::MemCharNext( (char*)pWork2, lstrlen( (char*)pWork2 ), (char*)pWork2 ) - (char*)pWork2;
01452             if( nCharChars == nCharChars2 ){
01453                 if( nCharChars == 1 ){
01454                     /* 半角数字 */
01455                     if( pWork[0] >= '0' && pWork[0] <= '9' &&
01456                         pWork2[0] >= '0' && pWork2[0] <= '9' ){
01457                         break;
01458                     }
01459                 }else
01460                 if( nCharChars == 2 ){
01461                     /* 全角数字 */
01462                     if( pWork[0] == 0x82 && ( pWork[1] >= 0x4f && pWork[1] <= 0x58 ) &&
01463                         pWork2[0] == 0x82 && ( pWork2[1] >= 0x4f && pWork2[1] <= 0x58 ) ){
01464                         break;
01465                     }
01466                     /* ①～⑳ */
01467                     if( pWork[0] == 0x87 && ( pWork[1] >= 0x40 && pWork[1] <= 0x53 ) &&
01468                         pWork2[0] == 0x87 && ( pWork2[1] >= 0x40 && pWork2[1] <= 0x53 ) ){
01469                         break;
01470                     }
01471                     /* Ⅰ～Ⅹ */
01472                     if( pWork[0] == 0x87 && ( pWork[1] >= 0x54 && pWork[1] <= 0x5d ) &&
01473                         pWork2[0] == 0x87 && ( pWork2[1] >= 0x54 && pWork2[1] <= 0x5d ) ){
01474                         break;
01475                     }
01476                 }
01477                 if( 0 == memcmp( pWork, pWork2, nCharChars ) ){
01478                     break;
01479                 }
01480             }
01481         }
01482         SetTreeTxtNest( hwndTree, htiItem, nBgn + 1, i, phtiItemSelected, nDepth + 1 );
01483 //      TreeView_Expand( hwndTree, htiItem, TVE_EXPAND );
01484         nBgn = i;
01485     }
01486     return 1;
01487 }
01488 #endif
01489
01490
01491 BOOL CDlgFuncList::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
01492 {
01493     m_hWnd = hwndDlg;
01494     HWND        hwndList;
01495     int         nCxVScroll;
01496     int         nColWidthArr[3] = { 0, 46, 80 };
01497     RECT        rc;
01498     LV_COLUMN   col;
01499     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST1 );
01500     // 2005.10.21 zenryaku 1行選択
01501     SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0,
01502         SendMessage(hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) | LVS_EX_FULLROWSELECT);
01503
01504     ::GetWindowRect( hwndList, &rc );
01505     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
01506
01507     col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
01508     col.fmt = LVCFMT_LEFT;
01509     col.cx = rc.right - rc.left - ( nColWidthArr[1] + nColWidthArr[2] ) - nCxVScroll - 8;
01510     //  Apr. 23, 2005 genta 行番号を左端へ
01511     col.pszText = "行 *";
01512     col.iSubItem = 0;
01513     ListView_InsertColumn( hwndList, 0, &col);
01514
01515     col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
01516     col.fmt = LVCFMT_LEFT;
01517     col.cx = nColWidthArr[1];
01518     //  Apr. 23, 2005 genta 行番号を左端へ
01519     col.pszText = "関数名";
01520     col.iSubItem = 1;
01521     ListView_InsertColumn( hwndList, 1, &col);
01522
01523     col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
01524     col.fmt = LVCFMT_LEFT;
01525     col.cx = nColWidthArr[2];
01526     col.pszText = " ";
01527     col.iSubItem = 2;
01528     ListView_InsertColumn( hwndList, 2, &col);
01529
01530     /* アウトライン位置とサイズを初期化する */ // 20060201 aroka
01531     if( m_lParam != NULL ){
01532         CEditView* pcEditView=(CEditView*)m_lParam;
01533         if( m_pShareData->m_Common.m_bRememberOutlineWindowPos ){
01534             WINDOWPLACEMENT cWindowPlacement;
01535             cWindowPlacement.length = sizeof( WINDOWPLACEMENT );
01536             if (::GetWindowPlacement( pcEditView->m_pcEditDoc->m_pcEditWnd->m_hWnd, &cWindowPlacement )){
01537                 /* ウィンドウ位置・サイズを-1以外の値にしておくと、CDialogで使用される． */
01538                 m_xPos = m_pShareData->m_Common.m_xOutlineWindowPos + cWindowPlacement.rcNormalPosition.left;
01539                 m_yPos = m_pShareData->m_Common.m_yOutlineWindowPos + cWindowPlacement.rcNormalPosition.top;
01540                 m_nWidth =  m_pShareData->m_Common.m_widthOutlineWindow;
01541                 m_nHeight = m_pShareData->m_Common.m_heightOutlineWindow;
01542             }
01543         }
01544     }
01545     /* 基底クラスメンバ */
01546     CreateSizeBox();
01547     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
01548 }
01549
01550
01551 BOOL CDlgFuncList::OnBnClicked( int wID )
01552 {
01553     switch( wID ){
01554     case IDC_BUTTON_HELP:
01555         /* 「アウトライン解析」のヘルプ */
01556         //Apr. 5, 2001 JEPRO 修正漏れを追加 (Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした)
01557         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_OUTLINE) );  // 2006.10.10 ryoji MyWinHelpに変更に変更
01558         return TRUE;
01559     case IDOK:
01560         return OnJump();
01561     case IDCANCEL:
01562         if( m_bModal ){     /* モーダル ダイアログか */
01563             ::EndDialog( m_hWnd, 0 );
01564         }else{
01565             ::DestroyWindow( m_hWnd );
01566         }
01567         return TRUE;
01568     case IDC_BUTTON_COPY:
01569         // Windowsクリップボードにコピー
01570         // 2004.02.17 Moca 関数化
01571         SetClipboardText( m_hWnd, m_cmemClipText.GetPtr(), m_cmemClipText.GetLength() );
01572         return TRUE;
01573     case IDC_BUTTON_WINSIZE:
01574         {// ウィンドウの位置とサイズを記憶 // 20060201 aroka
01575             m_pShareData->m_Common.m_bRememberOutlineWindowPos = ::IsDlgButtonChecked( m_hWnd, IDC_BUTTON_WINSIZE );
01576         }
01577         return TRUE;
01578     //2002.02.08 オプション切替後List/Treeにフォーカス移動
01579     case IDC_CHECK_bAutoCloseDlgFuncList:
01580     case IDC_CHECK_bMarkUpBlankLineEnable:
01581     case IDC_CHECK_bFunclistSetFocusOnJump:
01582         m_pShareData->m_Common.m_bAutoCloseDlgFuncList = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_bAutoCloseDlgFuncList );
01583         m_pShareData->m_Common.m_bMarkUpBlankLineEnable = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_bMarkUpBlankLineEnable );
01584         m_pShareData->m_Common.m_bFunclistSetFocusOnJump = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_bFunclistSetFocusOnJump );
01585         if(m_pShareData->m_Common.m_bAutoCloseDlgFuncList){
01586             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_bFunclistSetFocusOnJump ), FALSE );
01587         }else{
01588             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_bFunclistSetFocusOnJump ), TRUE );
01589         }
01590         if(wID==IDC_CHECK_bMarkUpBlankLineEnable&&m_nListType==OUTLINE_BOOKMARK){
01591             CEditView* pcEditView=(CEditView*)m_lParam;
01592             pcEditView->HandleCommand( F_BOOKMARK_VIEW, TRUE, TRUE, 0, 0, 0 );
01593             m_nCurLine=pcEditView->m_nCaretPosY + 1;
01594             SetData();
01595         }else
01596         if(m_nViewType){
01597             ::SetFocus( ::GetDlgItem( m_hWnd, IDC_TREE1 ) );
01598         }else{
01599             ::SetFocus( ::GetDlgItem( m_hWnd, IDC_LIST1 ) );
01600         }
01601         return TRUE;
01602     }
01603     /* 基底クラスメンバ */
01604     return CDialog::OnBnClicked( wID );
01605 }
01606
01607 BOOL CDlgFuncList::OnNotify( WPARAM wParam, LPARAM lParam )
01608 {
01609 //  int             idCtrl;
01610     LPNMHDR         pnmh;
01611     NM_LISTVIEW*    pnlv;
01612     HWND            hwndList;
01613     HWND            hwndTree;
01614     NM_TREEVIEW*    pnmtv;
01615 //  int             nLineTo;
01616
01617 //  idCtrl = (int) wParam;
01618     pnmh = (LPNMHDR) lParam;
01619     pnlv = (NM_LISTVIEW*)lParam;
01620
01621     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST1 );
01622     hwndTree = ::GetDlgItem( m_hWnd, IDC_TREE1 );
01623
01624     if( hwndTree == pnmh->hwndFrom ){
01625         pnmtv = (NM_TREEVIEW *) lParam;
01626 //      switch( pnmh->code ){
01627 //      case TVN_BEGINDRAG:
01628 //      case TVN_BEGINLABELEDIT:
01629 //      case TVN_BEGINRDRAG:
01630 //      case TVN_DELETEITEM:
01631 //      case TVN_ENDLABELEDIT:
01632 //      case TVN_GETDISPINFO:
01633 //      case TVN_ITEMEXPANDED:
01634 //      case TVN_ITEMEXPANDING:
01635 //      case TVN_KEYDOWN:
01636 //      case TVN_SELCHANGED:
01637 //      case TVN_SELCHANGING:
01638 //      case TVN_SETDISPINFO:
01639 //          break;
01640 //      default:
01641             switch( pnmtv->hdr.code ){
01642             case NM_DBLCLK:
01643                 // 2002.02.16 hor Treeのダブルクリックでフォーカス移動できるように 3/4
01644                 OnJump();
01645                 m_bWaitTreeProcess=true;
01646                 return TRUE;
01647                 //return OnJump();
01648             case TVN_KEYDOWN:
01649                 Key2Command( ((LV_KEYDOWN *)lParam)->wVKey );
01650                 return TRUE;
01651             case TVN_SELCHANGED:
01652                 // 2005.11.04 zenryaku 画面外の選択項目を追う
01653                 ::SendMessage(hwndTree, TVM_ENSUREVISIBLE, 0, (LPARAM)((NMTREEVIEW*)lParam)->itemNew.hItem);
01654                 break;
01655 //          case NM_CLICK:
01656             case NM_KILLFOCUS:
01657                 // 2002.02.16 hor Treeのダブルクリックでフォーカス移動できるように 4/4
01658                 if(m_bWaitTreeProcess){
01659                     if(m_pShareData->m_Common.m_bFunclistSetFocusOnJump){
01660                         ::SetFocus(m_hwndParent);
01661                     }
01662                     m_bWaitTreeProcess=false;
01663                 }
01664                 return TRUE;
01665 //          case NM_OUTOFMEMORY:
01666 //          case NM_RCLICK:
01667 //          case NM_RDBLCLK:
01668 //          case NM_RETURN:
01669 //          case NM_SETFOCUS:
01670 //          default:
01671 //              break;
01672             }
01673 //          break;
01674 //      }
01675     }else
01676     if( hwndList == pnmh->hwndFrom ){
01677         switch( pnmh->code ){
01678         case LVN_COLUMNCLICK:
01679 //              MYTRACE( "LVN_COLUMNCLICK\n" );
01680             m_nSortCol =  pnlv->iSubItem;
01681             //  Apr. 23, 2005 genta 関数として独立させた
01682             SortListView( hwndList, m_nSortCol );
01683             return TRUE;
01684         case NM_DBLCLK:
01685             return OnJump();
01686         case LVN_KEYDOWN:
01687             Key2Command( ((LV_KEYDOWN *)lParam)->wVKey );
01688             return TRUE;
01689         }
01690     }
01691     return FALSE;
01692 }
01713 void CDlgFuncList::SortListView(HWND hwndList, int sortcol)
01714 {
01715     LV_COLUMN       col;
01716
01717     //  Apr. 23, 2005 genta 行番号を左端へ
01718     if( sortcol == 1 ){
01719         col.mask = LVCF_TEXT;
01720     // From Here 2001.12.03 hor
01721     //  col.pszText = "関数名 *";
01722         if(OUTLINE_BOOKMARK == m_nListType){
01723             col.pszText = "テキスト *";
01724         }else{
01725             col.pszText = "関数名 *";
01726         }
01727     // To Here 2001.12.03 hor
01728         col.iSubItem = 0;
01729         ListView_SetColumn( hwndList, 1, &col );
01730         col.mask = LVCF_TEXT;
01731         col.pszText = "行";
01732         col.iSubItem = 0;
01733         ListView_SetColumn( hwndList, 0, &col );
01734     // From Here 2001.12.07 hor
01735         col.mask = LVCF_TEXT;
01736         col.pszText = "";
01737         col.iSubItem = 0;
01738         ListView_SetColumn( hwndList, 2, &col );
01739     // To Here 2001.12.07 hor
01740         ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );
01741     }else
01742     if( sortcol == 0 ){
01743         col.mask = LVCF_TEXT;
01744     // From Here 2001.12.03 hor
01745     //  col.pszText = "関数名";
01746         if(OUTLINE_BOOKMARK == m_nListType){
01747             col.pszText = "テキスト";
01748         }else{
01749             col.pszText = "関数名";
01750         }
01751     // To Here 2001.12.03 hor
01752         col.iSubItem = 0;
01753         ListView_SetColumn( hwndList, 1, &col );
01754         col.mask = LVCF_TEXT;
01755         col.pszText = "行 *";
01756         col.iSubItem = 0;
01757         ListView_SetColumn( hwndList, 0, &col );
01758     // From Here 2001.12.07 hor
01759         col.mask = LVCF_TEXT;
01760         col.pszText = "";
01761         col.iSubItem = 0;
01762         ListView_SetColumn( hwndList, 2, &col );
01763     // To Here 2001.12.03 hor
01764         ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );
01765     // From Here 2001.12.07 hor
01766     }else
01767     if( sortcol == 2 ){
01768         col.mask = LVCF_TEXT;
01769         if(OUTLINE_BOOKMARK == m_nListType){
01770             col.pszText = "テキスト";
01771         }else{
01772             col.pszText = "関数名";
01773         }
01774         col.iSubItem = 0;
01775         ListView_SetColumn( hwndList, 1, &col );
01776         col.mask = LVCF_TEXT;
01777         col.pszText = "行";
01778         col.iSubItem = 0;
01779         ListView_SetColumn( hwndList, 0, &col );
01780         col.mask = LVCF_TEXT;
01781         col.pszText = "*";
01782         col.iSubItem = 0;
01783         ListView_SetColumn( hwndList, 2, &col );
01784         ListView_SortItems( hwndList, _CompareFunc_, (LPARAM)this );
01785     // To Here 2001.12.07 hor
01786     }
01787     //  2005.04.23 zenryaku 選択された項目が見えるようにする
01788
01789     //  Apr. 29, 2005 genta 一旦一番下にスクロールさせる
01790     ListView_EnsureVisible( hwndList,
01791         ListView_GetItemCount(hwndList) - 1,
01792         FALSE );
01793
01794     //  Jan.  9, 2006 genta 先頭から1つ目と2つ目の関数が
01795     //  選択された場合にスクロールされなかった
01796     int keypos = ListView_GetNextItem(hwndList, -1, LVNI_FOCUSED) - 2;
01797     ListView_EnsureVisible( hwndList,
01798         keypos >= 0 ? keypos : 0,
01799         FALSE );
01800 }
01801
01807 BOOL CDlgFuncList::OnSize( WPARAM wParam, LPARAM lParam )
01808 {
01809     /* 基底クラスメンバ */
01810     CDialog::OnSize( wParam, lParam );
01811
01812     static const int Controls[][2] = {
01813         {IDC_CHECK_bFunclistSetFocusOnJump, 1},
01814         {IDC_CHECK_bMarkUpBlankLineEnable , 1},
01815         {IDC_CHECK_bAutoCloseDlgFuncList, 1},
01816         {IDC_BUTTON_WINSIZE, 2}, // 20060201 aroka
01817         {IDC_BUTTON_COPY, 2},
01818         {IDOK, 2},
01819         {IDCANCEL, 2},
01820         {IDC_BUTTON_HELP, 2},
01821         {IDC_LIST1, 3},
01822         {IDC_TREE1, 3},
01823     };
01824     int     nControls = sizeof( Controls ) / sizeof( Controls[0] );
01825 //  int     fwSizeType;
01826     int     nWidth;
01827     int     nHeight;
01828     int     i;
01829     int     nHeightCheckBox;
01830     int     nHeightButton;
01831     const int   nHeightMargin = 3;
01832     RECT    rc;
01833     HWND    hwndCtrl;
01834     POINT   po;
01835
01836     nWidth = LOWORD(lParam);    // width of client area
01837     nHeight = HIWORD(lParam);   // height of client area
01838
01839
01840     ::GetWindowRect( ::GetDlgItem( m_hWnd, IDC_CHECK_bAutoCloseDlgFuncList ), &rc );
01841     nHeightCheckBox = rc.bottom -  rc.top;
01842     ::GetWindowRect( ::GetDlgItem( m_hWnd, IDOK ), &rc );
01843     nHeightButton = rc.bottom - rc.top;
01844
01845     for ( i = 0; i < nControls; ++i ){
01846         hwndCtrl = ::GetDlgItem( m_hWnd, Controls[i][0] );
01847         ::GetWindowRect( hwndCtrl, &rc );
01848         po.x = rc.left;
01849         po.y = rc.top;
01850         ::ScreenToClient( m_hWnd, &po );
01851         rc.left = po.x;
01852         rc.top  = po.y;
01853         po.x = rc.right;
01854         po.y = rc.bottom;
01855         ::ScreenToClient( m_hWnd, &po );
01856         rc.right = po.x;
01857         rc.bottom  = po.y;
01858         //  2003.06.22 Moca テーブル上の種別によって処理方法を変える
01859         switch( Controls[i][1] ){
01860         case 1:
01861             ::SetWindowPos( hwndCtrl, NULL,
01862                 rc.left,
01863                 nHeight - nHeightCheckBox - nHeightMargin,
01864                 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01865             break;
01866 // 2002/11/1 frozen ここから
01867         case 2:
01868             ::SetWindowPos( hwndCtrl, NULL,
01869                 rc.left,
01870                 nHeight - nHeightCheckBox - nHeightButton - nHeightMargin * 2,
01871                 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01872             break;
01873         case 3:
01874             ::SetWindowPos( hwndCtrl, NULL, 0, 0,
01875                 nWidth - 2 * rc.left,
01876                 nHeight - rc.top - nHeightCheckBox - nHeightButton - 3 * nHeightMargin,
01877                 SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01878             break;
01879         }
01880 // 2002/11/1 frozen ここまで
01881         ::InvalidateRect( hwndCtrl, NULL, TRUE );
01882     }
01883     return TRUE;
01884 }
01885
01886 int CALLBACK Compare_by_ItemData(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
01887 {
01888     if( lParam1< lParam2 )
01889         return -1;
01890     if( lParam1 > lParam2 )
01891         return 1;
01892     else
01893         return 0;
01894 }
01895
01896 BOOL CDlgFuncList::OnDestroy( void )
01897 {
01898     CDialog::OnDestroy();
01899
01900     /* アウトライン ■位置とサイズを記憶する */ // 20060201 aroka
01901     // 前提条件：m_lParam が CDialog::OnDestroy でクリアされないこと
01902     CEditView* pcEditView=(CEditView*)m_lParam;
01903     if( m_pShareData->m_Common.m_bRememberOutlineWindowPos ){
01904         /* 親のウィンドウ位置・サイズを記憶 */
01905         WINDOWPLACEMENT cWindowPlacement;
01906         cWindowPlacement.length = sizeof( WINDOWPLACEMENT );
01907         if (::GetWindowPlacement( pcEditView->m_pcEditDoc->m_pcEditWnd->m_hWnd, &cWindowPlacement )){
01908             /* ウィンドウ位置・サイズを記憶 */
01909             m_pShareData->m_Common.m_xOutlineWindowPos = m_xPos - cWindowPlacement.rcNormalPosition.left;
01910             m_pShareData->m_Common.m_yOutlineWindowPos = m_yPos - cWindowPlacement.rcNormalPosition.top;
01911             m_pShareData->m_Common.m_widthOutlineWindow = m_nWidth;
01912             m_pShareData->m_Common.m_heightOutlineWindow = m_nHeight;
01913         }
01914
01915     }
01916     return TRUE;
01917 }
01918
01919
01920 BOOL CDlgFuncList::OnCbnSelChange( HWND hwndCtl, int wID )
01921 {
01922     int nSelect = ::SendMessage(hwndCtl,CB_GETCURSEL, 0, 0L);
01923     switch(wID)
01924     {
01925     case IDC_COMBO_nSortType:
01926         if( m_nSortType != nSelect )
01927         {
01928             m_nSortType = nSelect;
01929             SortTree(::GetDlgItem( m_hWnd , IDC_TREE1),TVI_ROOT);
01930         }
01931         return TRUE;
01932     };
01933     return FALSE;
01934
01935 }
01936 void  CDlgFuncList::SortTree(HWND hWndTree,HTREEITEM htiParent)
01937 {
01938     if( m_nSortType == 1 )
01939         TreeView_SortChildren(hWndTree,htiParent,TRUE);
01940     else
01941     {
01942         TVSORTCB sort;
01943         sort.hParent =  htiParent;
01944         sort.lpfnCompare = Compare_by_ItemData;
01945         sort.lParam = 0;
01946         TreeView_SortChildrenCB(hWndTree , &sort , TRUE);
01947     }
01948     for(HTREEITEM htiItem = TreeView_GetChild( hWndTree, htiParent ); NULL != htiItem ; htiItem = TreeView_GetNextSibling( hWndTree, htiItem ))
01949         SortTree(hWndTree,htiItem);
01950 }
01951
01952
01953
01954 BOOL CDlgFuncList::OnJump( bool bCheckAutoClose )   //2002.02.08 hor 引数追加
01955 {
01956     int             nLineTo;
01957     /* ダイアログデータの取得 */
01958     if( 0 < ( nLineTo = GetData() ) ){
01959         if( m_bModal ){     /* モーダル ダイアログか */
01960             ::EndDialog( m_hWnd, nLineTo );
01961         }else{
01962             /* カーソルを移動させる */
01963             POINT   poCaret;
01964             poCaret.x = 0;
01965             poCaret.y = nLineTo - 1;
01966             memcpy( m_pShareData->m_szWork, (void*)&poCaret, sizeof(poCaret) );
01967             //  2006.07.09 genta 移動時に選択状態を保持するように
01968             ::SendMessage( ::GetParent( ::GetParent( m_hwndParent ) ),
01969                 MYWM_SETCARETPOS, 0, PM_SETCARETPOS_KEEPSELECT );
01970             if( bCheckAutoClose ){
01971                 /* アウトライン ダイアログを自動的に閉じる */
01972                 if( m_pShareData->m_Common.m_bAutoCloseDlgFuncList ){
01973                     ::DestroyWindow( m_hWnd );
01974                 }else
01975                 if( m_pShareData->m_Common.m_bFunclistSetFocusOnJump ){
01976                     ::SetFocus( m_hwndParent );
01977                 }
01978             }
01979         }
01980     }
01981     return TRUE;
01982 }
01983
01984
01985 //@@@ 2002.01.18 add start
01986 LPVOID CDlgFuncList::GetHelpIdTable(void)
01987 {
01988     return (LPVOID)p_helpids;
01989 }
01990 //@@@ 2002.01.18 add end
01991
01992
01996 void CDlgFuncList::Key2Command(WORD KeyCode)
01997 {
01998     CEditView*  pcEditView;
01999     int nIdx, nFuncCode;
02000 // novice 2004/10/10
02001     /* Shift,Ctrl,Altキーが押されていたか */
02002     nIdx = getCtrlKeyState();
02003     nFuncCode=CKeyBind::GetFuncCode(
02004             ((WORD)(((BYTE)(KeyCode)) | ((WORD)((BYTE)(nIdx))) << 8)),
02005             m_pShareData->m_nKeyNameArrNum,
02006             m_pShareData->m_pKeyNameArr
02007     );
02008     switch( nFuncCode ){
02009     case F_REDRAW:
02010         nFuncCode=(m_nListType==OUTLINE_BOOKMARK)?F_BOOKMARK_VIEW:F_OUTLINE;
02011         /*FALLTHROUGH*/
02012     case F_OUTLINE:
02013     case F_OUTLINE_TOGGLE: // 20060201 aroka フォーカスがあるときはリロード
02014     case F_BOOKMARK_VIEW:
02015         pcEditView=(CEditView*)m_lParam;
02016         pcEditView->HandleCommand( nFuncCode, TRUE, SHOW_RELOAD, 0, 0, 0 ); // 引数の変更 20060201 aroka
02017
02018         // 2002.11.11 Moca CEditView::HandleCommand→Readrawと回ってくるため更新しなくてよい
02019 //      m_nListType=(nFuncCode==F_BOOKMARK_VIEW)?OUTLINE_BOOKMARK:pcEditView->m_pcEditDoc->GetDocumentAttribute().m_nDefaultOutline;
02020 //      m_nCurLine=pcEditView->m_nCaretPosY + 1;
02021 //      SetData();
02022         break;
02023     case F_BOOKMARK_SET:
02024         OnJump( false );
02025         pcEditView=(CEditView*)m_lParam;
02026         pcEditView->HandleCommand( nFuncCode, TRUE, 0, 0, 0, 0 );
02027     //  if( m_pShareData->m_Common.m_bAutoCloseDlgFuncList ){
02028     //      OnBnClicked( IDCANCEL );
02029     //  }else
02030     //  if( m_pShareData->m_Common.m_bFunclistSetFocusOnJump ){
02031     //      ::SetFocus( m_hwndParent );
02032     //  }
02033         break;
02034     case F_COPY:
02035     case F_CUT:
02036         OnBnClicked( IDC_BUTTON_COPY );
02037         break;
02038     }
02039 }
02040
02044 void CDlgFuncList::Redraw( int nOutLineType, CFuncInfoArr* pcFuncInfoArr, int nCurLine )
02045 {
02046     m_nListType = nOutLineType;
02047     m_pcFuncInfoArr = pcFuncInfoArr;    /* 関数情報配列 */
02048     m_nCurLine = nCurLine;              /* 現在行 */
02049     SetData();
02050 }
02051
02052 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFuncList.h

CDlgFuncList.h

アウトライン解析ダイアログボックス [詳細]

#include <windows.h>
#include "CDialog.h"

CDlgFuncList.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgFuncList
アウトライン解析ダイアログボックス [詳細]

説明

アウトライン解析ダイアログボックス

作者:
Norio Nakatani
日付:
1998/06/23 新規作成

1998/12/04 再作成

CDlgFuncList.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgFuncList.h ソースファイル

CDlgFuncList.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2001, genta, hor
00011     Copyright (C) 2002, aroka, hor, YAZAKI, frozen
00012     Copyright (C) 2003, little YOSHI
00013     Copyright (C) 2005, genta
00014     Copyright (C) 2006, aroka
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019
00020 class CDlgFuncList;
00021
00022 #ifndef _CDLGFUNCLIST_H_
00023 #define _CDLGFUNCLIST_H_
00024
00025 #include <windows.h>
00026 #include "CDialog.h"
00027 class CFuncInfoArr; // 2002/2/10 aroka
00028
00029
00031 class SAKURA_CORE_API CDlgFuncList : public CDialog
00032 {
00033 public:
00034     /*
00035     ||  Constructors
00036     */
00037     CDlgFuncList();
00038     /*
00039     ||  Attributes & Operations
00040     */
00041     HWND DoModeless( HINSTANCE, HWND, LPARAM, CFuncInfoArr*, int, int, int );/* モードレスダイアログの表示 */
00042     void ChangeView( LPARAM );  /* モードレス時：検索対象となるビューの変更 */
00043
00046     bool CheckListType( int nOutLineType ) const { return nOutLineType == m_nListType; }
00047     void Redraw( int nOutLineType, CFuncInfoArr*, int nCurLine );
00048
00049     CFuncInfoArr*   m_pcFuncInfoArr;    /* 関数情報配列 */
00050     int             m_nCurLine;         /* 現在行 */
00051     int             m_nSortCol;         /* ソートする列番号 */
00052     int             m_nListType;        /* 一覧の種類 */
00053     CMemory         m_cmemClipText;     /* クリップボードコピー用テキスト */
00054     int             m_bLineNumIsCRLF;   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00055 protected:
00056     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00057     BOOL OnBnClicked( int );
00058     BOOL OnNotify( WPARAM, LPARAM );
00059     BOOL OnSize( WPARAM, LPARAM );
00060     BOOL OnDestroy(void); // 20060201 aroka
00061     BOOL OnCbnSelChange( HWND hwndCtl, int wID ); // 2002/11/1 frozen
00062     void SetData( void );   /* ダイアログデータの設定 */
00063     int GetData( void );    /* ダイアログデータの取得 */
00064
00065     /*
00066     ||  実装ヘルパ関数
00067     */
00068     BOOL OnJump( bool bCheckAutoClose = true ); //  bCheckAutoClose：「このダイアログを自動的に閉じる」をチェックするかどうか
00069     void SetTreeCpp( HWND );    /* ツリーコントロールの初期化：C++メソッドツリー */
00070     void SetTreeJava( HWND, BOOL ); /* ツリーコントロールの初期化：Javaメソッドツリー */
00071     void SetTree(bool tagjump = false);     /* ツリーコントロールの初期化：汎用品 */
00072     void SetListVB( void );         /* リストビューコントロールの初期化：VisualBasic */     // Jul 10, 2003  little YOSHI
00073
00074     // 2002/11/1 frozen
00075     void SortTree(HWND hWndTree,HTREEITEM htiParent);
00076 #if 0
00077 2002.04.01 YAZAKI SetTreeTxt()、SetTreeTxtNest()は廃止。GetTreeTextNextはもともと使用されていなかった。
00078     void SetTreeTxt( HWND );    /* ツリーコントロールの初期化：テキストトピックツリー */
00079     int SetTreeTxtNest( HWND, HTREEITEM, int, int, HTREEITEM*, int );
00080     void GetTreeTextNext( HWND, HTREEITEM, int );
00081 #endif
00082
00083     //  Apr. 23, 2005 genta リストビューのソートを関数として独立させた
00084     void SortListView(HWND hwndList, int sortcol);
00085
00086     // 2001.12.03 hor
00087 //  void SetTreeBookMark( HWND );       /* ツリーコントロールの初期化：ブックマーク */
00088     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00089     void Key2Command( WORD );       //  キー操作→コマンド変換
00090
00091 private:
00092     //  May 18, 2001 genta
00098     int m_nViewType;
00099
00100     // 2002.02.16 hor Treeのダブルクリックでフォーカス移動できるように 1/4
00101     // (無理矢理なのでどなたか修正お願いします)
00102     bool m_bWaitTreeProcess;
00103
00104     // 2002/11/1 frozen
00106     // 0 デフォルト(ノードに関連づけれられた値順)
00107     // 1 アルファベット順
00108     int m_nSortType;
00109 };
00110
00111
00112
00114 #endif /* _CDLGFUNCLIST_H_ */
00115
00116
00117 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgGrep.cpp

CDlgGrep.cpp

GREPダイアログボックス [詳細]

#include "stdafx.h"
#include <windows.h>
#include "sakura_rc.h"
#include "CDlgGrep.h"
#include "debug.h"
#include "etc_uty.h"
#include "global.h"
#include "funccode.h"
#include "sakura.hh"

CDlgGrep.cppのインクルード依存関係図

ソースコードを見る。

関数

LRESULT CALLBACK | OnFolderProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
フォルダ指定EditBoxのコールバック関数

変数

const DWORD | p_helpids []
WNDPROC | g_pOnFolderProc

説明

GREPダイアログボックス

作者:
Norio Nakatani

CDlgGrep.cpp で定義されています。

関数

LRESULT CALLBACK OnFolderProc | ( | HWND | hwnd,
 |  | UINT | msg,
 |  | WPARAM | wparam,
 |  | LPARAM | lparam
 | ) |

フォルダ指定EditBoxのコールバック関数

日付:
2007.02.09 bosagami 新規作成

2007.09.02 genta ディレクトリチェックを強化

CDlgGrep.cpp の 158 行で定義されています。

参照先 g_pOnFolderProc・GetLongFileName()・IsFileExists()・NULL・ResolveShortcutLink()・SplitPath_FolderAndFile()・TRUE.

変数

WNDPROC g_pOnFolderProc

CDlgGrep.cpp の 107 行で定義されています。

参照元 OnFolderProc().

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_FOLDER,              HIDC_GREP_BUTTON_FOLDER,
    IDC_BUTTON_CURRENTFOLDER,       HIDC_GREP_BUTTON_CURRENTFOLDER,
    IDOK,                           HIDOK_GREP,
    IDCANCEL,                       HIDCANCEL_GREP,
    IDC_BUTTON_HELP,                HIDC_GREP_BUTTON_HELP,
    IDC_CHK_WORD,                   HIDC_GREP_CHK_WORD,
    IDC_CHK_SUBFOLDER,              HIDC_GREP_CHK_SUBFOLDER,
    IDC_CHK_FROMTHISTEXT,           HIDC_GREP_CHK_FROMTHISTEXT,
    IDC_CHK_LOHICASE,               HIDC_GREP_CHK_LOHICASE,
    IDC_CHK_REGULAREXP,             HIDC_GREP_CHK_REGULAREXP,
    IDC_COMBO_CHARSET,              HIDC_GREP_COMBO_CHARSET,
    IDC_COMBO_TEXT,                 HIDC_GREP_COMBO_TEXT,
    IDC_COMBO_FILE,                 HIDC_GREP_COMBO_FILE,
    IDC_COMBO_FOLDER,               HIDC_GREP_COMBO_FOLDER,
    IDC_RADIO_OUTPUTLINE,           HIDC_GREP_RADIO_OUTPUTLINE,
    IDC_RADIO_OUTPUTMARKED,         HIDC_GREP_RADIO_OUTPUTMARKED,
    IDC_RADIO_OUTPUTSTYLE1,         HIDC_GREP_RADIO_OUTPUTSTYLE1,
    IDC_RADIO_OUTPUTSTYLE2,         HIDC_GREP_RADIO_OUTPUTSTYLE2,
    IDC_STATIC_JRE32VER,            HIDC_GREP_STATIC_JRE32VER,
    IDC_CHK_DEFAULTFOLDER,          HIDC_GREP_CHK_DEFAULTFOLDER,

    0, 0
}

CDlgGrep.cpp の 30 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgGrep.cpp ソースファイル

CDlgGrep.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, Stonee, genta
00009     Copyright (C) 2002, MIK, genta, Moca, YAZAKI
00010     Copyright (C) 2003, Moca
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016 #include "stdafx.h"
00017 #include <windows.h>
00018
00019
00020 #include "sakura_rc.h"
00021 #include "CDlgGrep.h"
00022 #include "debug.h"
00023
00024 #include "etc_uty.h"
00025 #include "global.h"
00026 #include "funccode.h"       // Stonee, 2001/03/12
00027
00028 //GREP CDlgGrep.cpp //@@@ 2002.01.07 add start MIK
00029 #include "sakura.hh"
00030 const DWORD p_helpids[] = { //12000
00031     IDC_BUTTON_FOLDER,              HIDC_GREP_BUTTON_FOLDER,            //フォルダ
00032     IDC_BUTTON_CURRENTFOLDER,       HIDC_GREP_BUTTON_CURRENTFOLDER,     //現フォルダ
00033     IDOK,                           HIDOK_GREP,                         //検索
00034     IDCANCEL,                       HIDCANCEL_GREP,                     //キャンセル
00035     IDC_BUTTON_HELP,                HIDC_GREP_BUTTON_HELP,              //ヘルプ
00036     IDC_CHK_WORD,                   HIDC_GREP_CHK_WORD,                 //単語単位
00037     IDC_CHK_SUBFOLDER,              HIDC_GREP_CHK_SUBFOLDER,            //サブフォルダも検索
00038     IDC_CHK_FROMTHISTEXT,           HIDC_GREP_CHK_FROMTHISTEXT,         //このファイルから
00039     IDC_CHK_LOHICASE,               HIDC_GREP_CHK_LOHICASE,             //大文字小文字
00040     IDC_CHK_REGULAREXP,             HIDC_GREP_CHK_REGULAREXP,           //正規表現
00041     IDC_COMBO_CHARSET,              HIDC_GREP_COMBO_CHARSET,            //文字コードセット
00042     IDC_COMBO_TEXT,                 HIDC_GREP_COMBO_TEXT,               //条件
00043     IDC_COMBO_FILE,                 HIDC_GREP_COMBO_FILE,               //ファイル
00044     IDC_COMBO_FOLDER,               HIDC_GREP_COMBO_FOLDER,             //フォルダ
00045     IDC_RADIO_OUTPUTLINE,           HIDC_GREP_RADIO_OUTPUTLINE,         //結果出力：行単位
00046     IDC_RADIO_OUTPUTMARKED,         HIDC_GREP_RADIO_OUTPUTMARKED,       //結果出力：該当部分
00047     IDC_RADIO_OUTPUTSTYLE1,         HIDC_GREP_RADIO_OUTPUTSTYLE1,       //結果出力形式：ノーマル
00048     IDC_RADIO_OUTPUTSTYLE2,         HIDC_GREP_RADIO_OUTPUTSTYLE2,       //結果出力形式：ファイル毎
00049     IDC_STATIC_JRE32VER,            HIDC_GREP_STATIC_JRE32VER,          //正規表現バージョン
00050     IDC_CHK_DEFAULTFOLDER,          HIDC_GREP_CHK_DEFAULTFOLDER,        //フォルダの初期値をカレントフォルダにする
00051 //  IDC_STATIC,                     -1,
00052     0, 0
00053 };  //@@@ 2002.01.07 add end MIK
00054
00055 CDlgGrep::CDlgGrep()
00056 {
00057     m_bSubFolder = FALSE;               /* サブフォルダからも検索する */
00058     m_bFromThisText = FALSE;            /* この編集中のテキストから検索する */
00059     m_bLoHiCase = FALSE;                /* 英大文字と英小文字を区別する */
00060     m_bRegularExp = FALSE;              /* 正規表現 */
00061     m_nGrepCharSet = CODE_SJIS;         /* 文字コードセット */
00062     m_bGrepOutputLine = TRUE;           /* 行を出力するか該当部分だけ出力するか */
00063     m_nGrepOutputStyle = 1;             /* Grep: 出力形式 */
00064
00065     strcpy( m_szText, m_pShareData->m_szSEARCHKEYArr[0] );      /* 検索文字列 */
00066     strcpy( m_szFile, m_pShareData->m_szGREPFILEArr[0] );       /* 検索ファイル */
00067     strcpy( m_szFolder, m_pShareData->m_szGREPFOLDERArr[0] );   /* 検索フォルダ */
00068     return;
00069 }
00070
00071
00072
00073 /* モーダルダイアログの表示 */
00074 int CDlgGrep::DoModal( HINSTANCE hInstance, HWND hwndParent, const char* pszCurrentFilePath )
00075 {
00076     m_bSubFolder = m_pShareData->m_Common.m_bGrepSubFolder;                         /* Grep: サブフォルダも検索 */
00077     m_bRegularExp = m_pShareData->m_Common.m_bRegularExp;                           /* 1==正規表現 */
00078     m_nGrepCharSet = m_pShareData->m_Common.m_nGrepCharSet;                         /* 文字コードセット */
00079     m_bLoHiCase = m_pShareData->m_Common.m_bLoHiCase;                               /* 1==大文字小文字の区別 */
00080     m_bGrepOutputLine = m_pShareData->m_Common.m_bGrepOutputLine;                   /* 行を出力するか該当部分だけ出力するか */
00081     m_nGrepOutputStyle = m_pShareData->m_Common.m_nGrepOutputStyle;                 /* Grep: 出力形式 */
00082
00083     //2001/06/23 N.Nakatani add
00084     m_bWordOnly = m_pShareData->m_Common.m_bWordOnly;                   /* 単語単位で検索 */
00085
00086     lstrcpy( m_szCurrentFilePath, pszCurrentFilePath );
00087
00088     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_GREP, NULL );
00089 }
00090
00091 //  /* モードレスダイアログの表示 */
00092 //  HWND CDlgGrep::DoModeless( HINSTANCE hInstance, HWND hwndParent, const char* pszCurrentFilePath )
00093 //  {
00094 //      m_bSubFolder = m_pShareData->m_Common.m_bGrepSubFolder;                         /* Grep: サブフォルダも検索 */
00095 //      m_bRegularExp = m_pShareData->m_Common.m_bRegularExp;                           /* 1==正規表現 */
00096 //      m_nGrepCharSet = m_pShareData->m_Common.m_nGrepCharSet;                         /* 文字コードセット */
00097 //      m_bLoHiCase = m_pShareData->m_Common.m_bLoHiCase;                               /* 1==英大文字小文字の区別 */
00098 //      m_bGrepOutputLine = m_pShareData->m_Common.m_bGrepOutputLine;                   /* 行を出力するか該当部分だけ出力するか */
00099 //      m_nGrepOutputStyle = m_pShareData->m_Common.m_nGrepOutputStyle;                 /* Grep: 出力形式 */
00100 //      lstrcpy( m_szCurrentFilePath, pszCurrentFilePath );
00101 //
00102 //      return CDialog::DoModeless( hInstance, hwndParent, IDD_GREP, NULL );
00103 //  }
00104
00105 //  2007.02.09 bosagami
00106 LRESULT CALLBACK OnFolderProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam);
00107 WNDPROC g_pOnFolderProc;
00108
00109 BOOL CDlgGrep::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00110 {
00111     m_hWnd = hwndDlg;
00112
00113     /* ユーザーがコンボボックスのエディット コントロールに入力できるテキストの長さを制限する */
00114     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00115     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_FILE ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00116     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00117
00118     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00119     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00120     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_FILE ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00121     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00122 //  ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_CHARSET ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00123
00124     /* ダイアログのアイコン */
00125 //  ::SendMessage( m_hWnd, WM_SETICON, ICON_BIG, (LPARAM)::LoadIcon( m_hInstance, IDI_QUESTION ) );
00126 //2002.02.08 Grepアイコンも大きいアイコンと小さいアイコンを別々にする。
00127     HICON   hIconBig, hIconSmall;
00128     //  Dec, 2, 2002 genta アイコン読み込み方法変更
00129     hIconBig = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, false );
00130     hIconSmall = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, true );
00131     ::SendMessage( m_hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hIconSmall );
00132     ::SendMessage( m_hWnd, WM_SETICON, ICON_BIG, (LPARAM)hIconBig );
00133
00134     // 2002/09/22 Moca Add
00135     int i;
00136     /* 文字コードセット選択コンボボックス初期化 */
00137     for( i = 0; i < gm_nCodeComboNameArrNum; ++i ){
00138         int idx = ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_CHARSET ), CB_ADDSTRING,   0, (LPARAM)gm_pszCodeComboNameArr[i] );
00139         ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_CHARSET ), CB_SETITEMDATA, idx, gm_nCodeComboValueArr[i] );
00140     }
00141     //  2007.02.09 bosagami
00142     HWND hFolder = ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER );
00143     DragAcceptFiles(hFolder, true);
00144     g_pOnFolderProc = (WNDPROC)GetWindowLong(hFolder, GWL_WNDPROC);
00145     SetWindowLong(hFolder, GWL_WNDPROC, (DWORD)OnFolderProc);
00146
00147
00148     /* 基底クラスメンバ */
00149 //  CreateSizeBox();
00150     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00151 }
00152
00158 LRESULT CALLBACK OnFolderProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
00159 {
00160     if(msg == WM_DROPFILES)
00161     do {
00162         //  From Here 2007.09.02 genta
00163         char sPath[MAX_PATH + 1];
00164         char szWork[MAX_PATH + 1];
00165         if( DragQueryFile((HDROP)wparam, 0, NULL, 0 ) > sizeof(sPath) - 1 ){
00166             // skip if the length of the path exceeds buffer capacity
00167             break;
00168         }
00169         DragQueryFile((HDROP)wparam, 0, sPath, sizeof(sPath) - 1);
00170
00171         /* ショートカット(.lnk)の解決 */
00172         //  ショートカットの先は別のディレクトリかもしれないので
00173         //  ファイル名を切り捨てる前に変換する
00174         if( TRUE == ResolveShortcutLink( NULL, sPath, szWork ) ){
00175             strcpy( sPath, szWork );
00176         }
00177
00178         //  ファイルがドロップされた場合はフォルダを切り出す
00179         //  フォルダの場合は最後が失われるのでsplitしてはいけない．
00180         if( IsFileExists( sPath, true )){   //  第2引数がtrueだとディレクトリは対象外
00181             SplitPath_FolderAndFile( sPath, szWork, NULL );
00182             strcpy( sPath, szWork );
00183         }
00184         /* ロングファイル名を取得する */
00185         if( TRUE == ::GetLongFileName( sPath, szWork ) ){
00186             strcpy( sPath, szWork );
00187         }
00188         SetWindowText(hwnd, szWork);
00189     } while(0);
00190     return  CallWindowProc((WNDPROC)g_pOnFolderProc,hwnd,msg,wparam,lparam);
00191 }
00192
00193 BOOL CDlgGrep::OnBnClicked( int wID )
00194 {
00195     switch( wID ){
00196     case IDC_BUTTON_HELP:
00197         /* 「Grep」のヘルプ */
00198         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00199         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_GREP_DIALOG) );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00200         return TRUE;
00201     case IDC_CHK_FROMTHISTEXT:  /* この編集中のテキストから検索する */
00202         if( 0 < (int)lstrlen(m_szCurrentFilePath ) ){
00203             if( ::IsDlgButtonChecked( m_hWnd, IDC_CHK_FROMTHISTEXT ) ){
00204                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FILE ), FALSE );
00205                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER ), FALSE );
00206                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_FOLDER ), FALSE );
00207                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_SUBFOLDER ), FALSE );
00208                 ::CheckDlgButton( m_hWnd, IDC_CHK_SUBFOLDER, 0 );
00209             }else{
00210                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FILE ), TRUE );
00211                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER ), TRUE );
00212                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_FOLDER ), TRUE );
00213                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_SUBFOLDER ), TRUE );
00214             }
00215             char    szWorkFolder[MAX_PATH];
00216             char    szWorkFile[MAX_PATH];
00217             // 2003.08.01 Moca ファイル名はスペースなどは区切り記号になるので、""で囲い、エスケープする
00218             szWorkFile[0] = '"';
00219             SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile + 1 );
00220             strcat( szWorkFile, "\"" ); // 2003.08.01 Moca
00221             ::SetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, szWorkFolder );
00222             ::SetDlgItemText( m_hWnd, IDC_COMBO_FILE, szWorkFile );
00223         }
00224         return TRUE;
00225     case IDC_BUTTON_CURRENTFOLDER:  /* 現在編集中のファイルのフォルダ */
00226         /* ファイルを開いているか */
00227         if( 0 < lstrlen( m_szCurrentFilePath ) ){
00228             char    szWorkFolder[MAX_PATH];
00229             char    szWorkFile[MAX_PATH];
00230             SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile );
00231             ::SetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, szWorkFolder );
00232         }else{
00233             /* 現在のプロセスのカレントディレクトリを取得します */
00234             char    szWorkFolder[MAX_PATH];
00235             ::GetCurrentDirectory( sizeof( szWorkFolder ) - 1, szWorkFolder );
00236             ::SetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, szWorkFolder );
00237 //          ::MessageBeep( MB_ICONEXCLAMATION );
00238         }
00239         return TRUE;
00240
00241
00242 //  case IDC_CHK_LOHICASE:  /* 英大文字と英小文字を区別する */
00243 //      MYTRACE( "IDC_CHK_LOHICASE\n" );
00244 //      return TRUE;
00245     case IDC_CHK_REGULAREXP:    /* 正規表現 */
00246 //      MYTRACE( "IDC_CHK_REGULAREXP ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) = %d\n", ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) );
00247         if( ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) ){
00248             // From Here Jun. 26, 2001 genta
00249             //  正規表現ライブラリの差し替えに伴う処理の見直し
00250             if( !CheckRegexpVersion( m_hWnd, IDC_STATIC_JRE32VER, true ) ){
00251                 ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 0 );
00252             }else{
00253                 //  To Here Jun. 26, 2001 genta
00254                 /* 英大文字と英小文字を区別する */
00255                 //  正規表現のときも選択できるように。
00256 //              ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 1 );
00257 //              ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), FALSE );
00258
00259                 //2001/06/23 N.Nakatani
00260                 /* 単語単位で検索 */
00261                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), FALSE );
00262             }
00263         }else{
00264             /* 英大文字と英小文字を区別する */
00265             //  正規表現のときも選択できるように。
00266 //          ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), TRUE );
00267 //          ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 0 );
00268
00269
00270 //2001/06/23 N.Nakatani
00271 //単語単位のgrepが実装されたらコメントを外すと思います
00272 //2002/03/07実装してみた。
00273             /* 単語単位で検索 */
00274             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), TRUE );
00275
00276         }
00277         return TRUE;
00278
00279     case IDC_BUTTON_FOLDER:
00280         /* フォルダ参照ボタン */
00281         {
00282             char    szFolder[MAX_PATH];
00283             /* 検索フォルダ */
00284             ::GetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, szFolder, _MAX_PATH - 1 );
00285             if( 0 == lstrlen( szFolder ) ){
00286                 ::GetCurrentDirectory( sizeof( szFolder ), szFolder );
00287             }
00288             if( SelectDir( m_hWnd, "検索するフォルダを選んでください", szFolder, szFolder ) ){
00289                 ::SetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, szFolder );
00290             }
00291         }
00292
00293         return TRUE;
00294     case IDC_CHK_DEFAULTFOLDER:
00295         /* フォルダの初期値をカレントフォルダにする */
00296         {
00297             m_pShareData->m_Common.m_bGrepDefaultFolder = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_DEFAULTFOLDER );
00298         }
00299         return TRUE;
00300     case IDOK:
00301         /* ダイアログデータの取得 */
00302         if( GetData() ){
00303 //          ::EndDialog( hwndDlg, TRUE );
00304             CloseDialog( TRUE );
00305         }
00306         return TRUE;
00307     case IDCANCEL:
00308 //      ::EndDialog( hwndDlg, FALSE );
00309         CloseDialog( FALSE );
00310         return TRUE;
00311     }
00312
00313     /* 基底クラスメンバ */
00314     return CDialog::OnBnClicked( wID );
00315 }
00316
00317
00318
00319 /* ダイアログデータの設定 */
00320 void CDlgGrep::SetData( void )
00321 {
00322     int     i;
00323     HWND    hwndCombo;
00324 //  char    szWorkPath[_MAX_PATH + 1];
00325 //  m_hWnd = hwndDlg;   /* このダイアログのハンドル */
00326
00327     m_pShareData = CShareData::getInstance()->GetShareData();
00328
00329     /* 検索文字列 */
00330     ::SetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText );
00331     hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT );
00332     for( i = 0; i < m_pShareData->m_nSEARCHKEYArrNum; ++i ){
00333         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szSEARCHKEYArr[i] );
00334     }
00335
00336     /* 検索ファイル */
00337     ::SetDlgItemText( m_hWnd, IDC_COMBO_FILE, m_szFile );
00338     hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_FILE );
00339     for( i = 0; i < m_pShareData->m_nGREPFILEArrNum; ++i ){
00340         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szGREPFILEArr[i] );
00341     }
00342
00343     /* 検索フォルダ */
00344     ::SetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, m_szFolder );
00345     hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER );
00346     for( i = 0; i < m_pShareData->m_nGREPFOLDERArrNum; ++i ){
00347         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szGREPFOLDERArr[i] );
00348     }
00349
00350     if((0 == lstrlen( m_pShareData->m_szGREPFOLDERArr[0] ) || m_pShareData->m_Common.m_bGrepDefaultFolder ) &&
00351         0 < lstrlen( m_szCurrentFilePath )
00352     ){
00353         char    szWorkFolder[MAX_PATH];
00354         char    szWorkFile[MAX_PATH];
00355         SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile );
00356         ::SetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, szWorkFolder );
00357     }
00358
00359     /* この編集中のテキストから検索する */
00360     ::CheckDlgButton( m_hWnd, IDC_CHK_FROMTHISTEXT, m_bFromThisText );
00361     if( 0 < lstrlen( m_szCurrentFilePath ) ){
00362         if( m_bFromThisText ){
00363             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FILE ), FALSE );
00364             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER ), FALSE );
00365             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_FOLDER ), FALSE );
00366             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_SUBFOLDER ), FALSE );
00367             char    szWorkFolder[MAX_PATH];
00368             char    szWorkFile[MAX_PATH];
00369             SplitPath_FolderAndFile( m_szCurrentFilePath, szWorkFolder, szWorkFile );
00370             ::SetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, szWorkFolder );
00371             ::SetDlgItemText( m_hWnd, IDC_COMBO_FILE, szWorkFile );
00372         }else{
00373             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FILE ), TRUE );
00374             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_FOLDER ), TRUE );
00375             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_FOLDER ), TRUE );
00376             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_SUBFOLDER ), TRUE );
00377         }
00378     }
00379
00380     /* サブフォルダからも検索する */
00381     ::CheckDlgButton( m_hWnd, IDC_CHK_SUBFOLDER, m_bSubFolder );
00382
00383     /* 英大文字と英小文字を区別する */
00384     ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, m_bLoHiCase );
00385
00386     // 2001/06/23 N.Nakatani 現時点ではGrepでは単語単位の検索はサポートできていません
00387     // 2002/03/07 テストサポート
00388     /* 一致する単語のみ検索する */
00389     ::CheckDlgButton( m_hWnd, IDC_CHK_WORD, m_bWordOnly );
00390 //  ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ) , false ); //チェックボックスを使用不可にすも
00391
00392
00393     /* 文字コード自動判別 */
00394 //  ::CheckDlgButton( m_hWnd, IDC_CHK_KANJICODEAUTODETECT, m_bKanjiCode_AutoDetect );
00395
00396     // 2002/09/22 Moca Add
00397     /* 文字コードセット */
00398     {
00399         int     nIdx, nCurIdx, nCharSet;
00400         HWND    hWndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_CHARSET );
00401         nCurIdx = ::SendMessage( hWndCombo , CB_GETCURSEL, 0, 0 );
00402         for( nIdx = 0; nIdx < gm_nCodeComboNameArrNum; nIdx++ ){
00403             nCharSet = ::SendMessage( hWndCombo, CB_GETITEMDATA, nIdx, 0 );
00404             if( nCharSet == m_nGrepCharSet ){
00405                 nCurIdx = nIdx;
00406             }
00407         }
00408         ::SendMessage( hWndCombo, CB_SETCURSEL, (WPARAM)nCurIdx, 0 );
00409     }
00410
00411     /* 行を出力するか該当部分だけ出力するか */
00412     if( m_bGrepOutputLine ){
00413         ::CheckDlgButton( m_hWnd, IDC_RADIO_OUTPUTLINE, TRUE );
00414     }else{
00415         ::CheckDlgButton( m_hWnd, IDC_RADIO_OUTPUTMARKED, TRUE );
00416     }
00417
00418     /* Grep: 出力形式 */
00419     if( 1 == m_nGrepOutputStyle ){
00420         ::CheckDlgButton( m_hWnd, IDC_RADIO_OUTPUTSTYLE1, TRUE );
00421     }else
00422     if( 2 == m_nGrepOutputStyle ){
00423         ::CheckDlgButton( m_hWnd, IDC_RADIO_OUTPUTSTYLE2, TRUE );
00424     }else{
00425         ::CheckDlgButton( m_hWnd, IDC_RADIO_OUTPUTSTYLE1, TRUE );
00426     }
00427
00428     // From Here Jun. 29, 2001 genta
00429     // 正規表現ライブラリの差し替えに伴う処理の見直し
00430     // 処理フロー及び判定条件の見直し。必ず正規表現のチェックと
00431     // 無関係にCheckRegexpVersionを通過するようにした。
00432     if( CheckRegexpVersion( m_hWnd, IDC_STATIC_JRE32VER, false )
00433         && m_bRegularExp){
00434         /* 英大文字と英小文字を区別する */
00435         ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 1 );
00436         //  正規表現のときも選択できるように。
00437 //      ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 1 );
00438 //      ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), FALSE );
00439
00440         // 2001/06/23 N.Nakatani
00441         /* 単語単位で探す */
00442         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), FALSE );
00443     }
00444     else {
00445         ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 0 );
00446     }
00447     // To Here Jun. 29, 2001 genta
00448
00449     if( 0 < lstrlen( m_szCurrentFilePath ) ){
00450         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_FROMTHISTEXT ), TRUE );
00451     }else{
00452         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_FROMTHISTEXT ), FALSE );
00453     }
00454
00455     // フォルダの初期値をカレントフォルダにする
00456     ::CheckDlgButton( m_hWnd, IDC_CHK_DEFAULTFOLDER, m_pShareData->m_Common.m_bGrepDefaultFolder );
00457     if( m_pShareData->m_Common.m_bGrepDefaultFolder ) OnBnClicked( IDC_BUTTON_CURRENTFOLDER );
00458
00459     return;
00460 }
00461
00462
00463
00464
00465 /* ダイアログデータの取得 */
00466 /* TRUE==正常  FALSE==入力エラー  */
00467 int CDlgGrep::GetData( void )
00468 {
00469 //  int         i;
00470 //  int         j;
00471 //  CMemory*    pcmWork;
00472
00473     m_pShareData = CShareData::getInstance()->GetShareData();
00474
00475     /* サブフォルダからも検索する*/
00476     m_bSubFolder = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_SUBFOLDER );
00477
00478     m_pShareData->m_Common.m_bGrepSubFolder = m_bSubFolder;     /* Grep：サブフォルダも検索 */
00479
00480     /* この編集中のテキストから検索する */
00481     m_bFromThisText = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_FROMTHISTEXT );
00482     /* 英大文字と英小文字を区別する */
00483     m_bLoHiCase = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_LOHICASE );
00484
00485     //2001/06/23 N.Nakatani
00486     /* 単語単位で検索 */
00487     m_bWordOnly = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_WORD );
00488
00489     /* 正規表現 */
00490     m_bRegularExp = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP );
00491
00492     /* 文字コード自動判別 */
00493 //  m_bKanjiCode_AutoDetect = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_KANJICODEAUTODETECT );
00494
00495     /* 文字コードセット */
00496     {
00497         int     nIdx;
00498         HWND    hWndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_CHARSET );
00499         nIdx = ::SendMessage( hWndCombo, CB_GETCURSEL, 0, 0 );
00500         m_nGrepCharSet = ::SendMessage( hWndCombo, CB_GETITEMDATA, nIdx, 0 );
00501     }
00502
00503
00504     /* 行を出力するか該当部分だけ出力するか */
00505     m_bGrepOutputLine = ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_OUTPUTLINE );
00506
00507     /* Grep: 出力形式 */
00508     if( TRUE == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_OUTPUTSTYLE1 ) ){
00509         m_nGrepOutputStyle = 1;             /* Grep: 出力形式 */
00510     }
00511     if( TRUE == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_OUTPUTSTYLE2 ) ){
00512         m_nGrepOutputStyle = 2;             /* Grep: 出力形式 */
00513     }
00514
00515
00516
00517     /* 検索文字列 */
00518     ::GetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText, _MAX_PATH - 1 );
00519     /* 検索ファイル */
00520     ::GetDlgItemText( m_hWnd, IDC_COMBO_FILE, m_szFile, _MAX_PATH - 1 );
00521     /* 検索フォルダ */
00522     ::GetDlgItemText( m_hWnd, IDC_COMBO_FOLDER, m_szFolder, _MAX_PATH - 1 );
00523
00524     m_pShareData->m_Common.m_bRegularExp = m_bRegularExp;                           /* 1==正規表現 */
00525     m_pShareData->m_Common.m_nGrepCharSet = m_nGrepCharSet;                             /* 文字コード自動判別 */
00526     m_pShareData->m_Common.m_bLoHiCase = m_bLoHiCase;                               /* 1==英大文字小文字の区別 */
00527     m_pShareData->m_Common.m_bGrepOutputLine = m_bGrepOutputLine;                   /* 行を出力するか該当部分だけ出力するか */
00528     m_pShareData->m_Common.m_nGrepOutputStyle = m_nGrepOutputStyle;                 /* Grep: 出力形式 */
00529     //2001/06/23 N.Nakatani add
00530     m_pShareData->m_Common.m_bWordOnly = m_bWordOnly;       /* 1==単語のみ検索 */
00531
00532
00533 //やめました
00534 //  if( 0 == lstrlen( m_szText ) ){
00535 //      ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00536 //          "検索のキーワードを指定してください。"
00537 //      );
00538 //      return FALSE;
00539 //  }
00540     /* この編集中のテキストから検索する */
00541     if( 0 == lstrlen( m_szFile ) ){
00542         //  Jun. 16, 2003 Moca
00543         //  検索パターンが指定されていない場合のメッセージ表示をやめ、
00544         //  「*.*」が指定されたものと見なす．
00545         strcpy( m_szFile, "*.*" );
00546     }
00547     if( 0 == lstrlen( m_szFolder ) ){
00548 		::MYMESSAGEBOX(   m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00549             "検索対象フォルダを指定してください。"
00550         );
00551         return FALSE;
00552     }
00553
00554     char szCurDirOld[MAX_PATH];
00555     ::GetCurrentDirectory( MAX_PATH, szCurDirOld );
00556     /* 相対パス→絶対パス */
00557     if( 0 == ::SetCurrentDirectory( m_szFolder ) ){
00558 		::MYMESSAGEBOX(   m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00559             "検索対象フォルダが正しくありません。"
00560         );
00561         ::SetCurrentDirectory( szCurDirOld );
00562         return FALSE;
00563     }
00564     ::GetCurrentDirectory( MAX_PATH, m_szFolder );
00565     ::SetCurrentDirectory( szCurDirOld );
00566
00567 //@@@ 2002.2.2 YAZAKI CShareData.AddToSearchKeyArr()追加に伴う変更
00568     /* 検索文字列 */
00569     if( 0 < lstrlen( m_szText ) ){
00570         // From Here Jun. 26, 2001 genta
00571         //  正規表現ライブラリの差し替えに伴う処理の見直し
00572         int nFlag = 0;
00573         nFlag |= m_bLoHiCase ? 0x01 : 0x00;
00574         if( m_bRegularExp  && !CheckRegexpSyntax( m_szText, m_hWnd, true, nFlag) ){
00575             return FALSE;
00576         }
00577         // To Here Jun. 26, 2001 genta 正規表現ライブラリ差し替え
00578         CShareData::getInstance()->AddToSearchKeyArr( m_szText );
00579     }
00580
00581     /* 検索ファイル */
00582     CShareData::getInstance()->AddToGrepFileArr( m_szFile );
00583
00584     /* 検索フォルダ */
00585     CShareData::getInstance()->AddToGrepFolderArr( m_szFolder );
00586
00587     return TRUE;
00588 }
00589
00590 //@@@ 2002.01.18 add start
00591 LPVOID CDlgGrep::GetHelpIdTable(void)
00592 {
00593     return (LPVOID)p_helpids;
00594 }
00595 //@@@ 2002.01.18 add end
00596
00597 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgGrep.h

CDlgGrep.h

GREPダイアログボックス [詳細]

#include "CDialog.h"

CDlgGrep.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgGrep
GREPダイアログボックス [詳細]

説明

GREPダイアログボックス

作者:
Norio Nakatani
日付:
1998.09/07 新規作成

1999.12/05 再作成

CDlgGrep.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgGrep.h ソースファイル

CDlgGrep.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2002, Moca
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015
00016 class CDlgGrep;
00017
00018 #ifndef _CDLGGREP_H_
00019 #define _CDLGGREP_H_
00020
00021 #include "CDialog.h"
00022
00024 class SAKURA_CORE_API CDlgGrep : public CDialog
00025 {
00026 public:
00027     /*
00028     ||  Constructors
00029     */
00030     CDlgGrep();
00031     /*
00032     ||  Attributes & Operations
00033     */
00034     int DoModal( HINSTANCE, HWND, const char* );    /* モーダルダイアログの表示 */
00035 //  HWND DoModeless( HINSTANCE, HWND, const char* );    /* モードレスダイアログの表示 */
00036
00037
00038     BOOL        m_bSubFolder;
00039     BOOL        m_bFromThisText;
00040     int         m_bLoHiCase;
00041     int         m_bRegularExp;
00042     BOOL        m_bGrepOutputLine;
00044     //2001/06/23 N.Nakatani add
00045     BOOL        m_bWordOnly;
00046     // 2002/09/22 Moca Add
00047     int         m_nGrepCharSet;
00049     int         m_nGrepOutputStyle;
00050     char        m_szText[_MAX_PATH + 1];
00051     char        m_szFile[_MAX_PATH + 1];
00052     char        m_szFolder[_MAX_PATH + 1];
00053     char        m_szCurrentFilePath[_MAX_PATH + 1];
00054 protected:
00055     /*
00056     ||  実装ヘルパ関数
00057     */
00058     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00059     BOOL OnBnClicked( int );
00060     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00061
00062     void SetData( void );   /* ダイアログデータの設定 */
00063     int GetData( void );    /* ダイアログデータの取得 */
00064
00065 };
00066
00067
00068
00070 #endif /* _CDLGGREP_H_ */
00071
00072
00073 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgInput1.cpp

CDlgInput1.cpp

1行入力ダイアログボックス [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgInput1.h"
#include "debug.h"
#include "etc_uty.h"
#include "sakura.hh"

CDlgInput1.cppのインクルード依存関係図

ソースコードを見る。

関数

INT_PTR CALLBACK | CDlgInput1Proc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

static const DWORD | p_helpids []

説明

1行入力ダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/31 作成

CDlgInput1.cpp で定義されています。

関数

INT_PTR CALLBACK CDlgInput1Proc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CDlgInput1.cpp の 35 行で定義されています。

参照先 CDlgInput1::DispatchEvent()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 CDlgInput1::DoModal().

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDOK,                   HIDOK_DLG1,
    IDCANCEL,               HIDCANCEL_DLG1,
    IDC_EDIT1,              HIDC_DLG1_EDIT1,
    IDC_STATIC_MSG,         HIDC_DLG1_EDIT1,

    0, 0
}

CDlgInput1.cpp の 24 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgInput1.cpp ソースファイル

CDlgInput1.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, MIK
00010     Copyright (C) 2003, KEITA
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016 #include "stdafx.h"
00017 #include "sakura_rc.h"
00018 #include "CDlgInput1.h"
00019 #include "debug.h"
00020
00021 // 入力 CDlgInput1.cpp  //@@@ 2002.01.07 add start MIK
00022 #include "etc_uty.h"
00023 #include "sakura.hh"
00024 static const DWORD p_helpids[] = {  //13000
00025     IDOK,                   HIDOK_DLG1,
00026     IDCANCEL,               HIDCANCEL_DLG1,
00027     IDC_EDIT1,              HIDC_DLG1_EDIT1,    //入力フィールド
00028     IDC_STATIC_MSG,         HIDC_DLG1_EDIT1,    //メッセージ
00029 //  IDC_STATIC,             -1,
00030     0, 0
00031 };  //@@@ 2002.01.07 add end MIK
00032
00033
00034 /* ダイアログプロシージャ */
00035 INT_PTR CALLBACK CDlgInput1Proc(
00036     HWND hwndDlg,   // handle to dialog box
00037     UINT uMsg,      // message
00038     WPARAM wParam,  // first message parameter
00039     LPARAM lParam   // second message parameter
00040 )
00041 {
00042     CDlgInput1* pCDlgInput1;
00043     switch( uMsg ){
00044     case WM_INITDIALOG:
00045         pCDlgInput1 = ( CDlgInput1* )lParam;
00046         if( NULL != pCDlgInput1 ){
00047             return pCDlgInput1->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00048         }else{
00049             return FALSE;
00050         }
00051     default:
00052         // Modified by KEITA for WIN64 2003.9.6
00053         pCDlgInput1 = ( CDlgInput1* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00054         if( NULL != pCDlgInput1 ){
00055             return pCDlgInput1->DispatchEvent( hwndDlg, uMsg, wParam, lParam );
00056         }else{
00057             return FALSE;
00058         }
00059     }
00060 }
00061
00062
00063
00064 CDlgInput1::CDlgInput1()
00065 {
00066     /* ヘルプファイルのフルパスを返す */
00067 	::GetHelpFilePath( m_szHelpFile ); //@@@ 2002.01.07 add
00068
00069     return;
00070 }
00071
00072
00073
00074 CDlgInput1::~CDlgInput1()
00075 {
00076     return;
00077 }
00078
00079
00080
00081 /* モードレスダイアログの表示 */
00082 BOOL CDlgInput1::DoModal( HINSTANCE hInstApp, HWND hwndParent, const char* pszTitle, const char* pszMessage, int nMaxTextLen, char* pszText )
00083 {
00084     BOOL bRet;
00085     m_hInstance = hInstApp;     /* アプリケーションインスタンスのハンドル */
00086     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00087     m_pszTitle = pszTitle;      /* ダイアログタイトル */
00088     m_pszMessage = pszMessage;      /* メッセージ */
00089     m_nMaxTextLen = nMaxTextLen;    /* 入力サイズ上限 */
00090 //  m_pszText = pszText;            /* テキスト */
00091     m_cmemText.SetDataSz( pszText );
00092     bRet = (BOOL)::DialogBoxParam(
00093         m_hInstance,
00094         MAKEINTRESOURCE( IDD_INPUT1 ),
00095         m_hwndParent,
00096         CDlgInput1Proc,
00097         (LPARAM)this
00098     );
00099     strcpy( pszText, m_cmemText.GetPtr() );
00100     return bRet;
00101 }
00102
00103
00104
00105 /* ダイアログのメッセージ処理 */
00106 INT_PTR CDlgInput1::DispatchEvent(
00107     HWND hwndDlg,   // handle to dialog box
00108     UINT uMsg,      // message
00109     WPARAM wParam,  // first message parameter
00110     LPARAM lParam   // second message parameter
00111 )
00112 {
00113     WORD    wNotifyCode;
00114     WORD    wID;
00115     HWND    hwndCtl;
00116 //  int     nRet;
00117     switch( uMsg ){
00118     case WM_INITDIALOG:
00119         /* ダイアログデータの設定 */
00120         // Modified by KEITA for WIN64 2003.9.6
00121 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00122
00123         ::SetWindowText( hwndDlg, m_pszTitle ); /* ダイアログタイトル */
00124         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT1 ), EM_LIMITTEXT, m_nMaxTextLen, 0 );    /* 入力サイズ上限 */
00125         ::SetWindowText( ::GetDlgItem( hwndDlg, IDC_EDIT1 ), m_cmemText.GetPtr() ); /* テキスト */
00126         ::SetWindowText( ::GetDlgItem( hwndDlg, IDC_STATIC_MSG ), m_pszMessage );   /* メッセージ */
00127
00128         return TRUE;
00129     case WM_COMMAND:
00130         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00131         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00132         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00133         switch( wNotifyCode ){
00134         /* ボタン／チェックボックスがクリックされた */
00135         case BN_CLICKED:
00136             switch( wID ){
00137             case IDOK:
00138                 m_cmemText.AllocBuffer( ::GetWindowTextLength( ::GetDlgItem( hwndDlg, IDC_EDIT1 ) ) );
00139                 ::GetWindowText( ::GetDlgItem( hwndDlg, IDC_EDIT1 ), m_cmemText.GetPtr(), m_nMaxTextLen + 1 );  /* テキスト */
00140                 ::EndDialog( hwndDlg, TRUE );
00141                 return TRUE;
00142             case IDCANCEL:
00143                 ::EndDialog( hwndDlg, FALSE );
00144                 return TRUE;
00145             }
00146             break;  //@@@ 2002.01.07 add
00147         }
00148         break;  //@@@ 2002.01.07 add
00149     //@@@ 2002.01.07 add start
00150     case WM_HELP:
00151         {
00152             HELPINFO *p = (HELPINFO *)lParam;
00153             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00154         }
00155         return TRUE;
00156
00157     //Context Menu
00158     case WM_CONTEXTMENU:
00159         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00160         return TRUE;
00161     //@@@ 2002.01.07 add end
00162     }
00163     return FALSE;
00164 }
00165
00166
00167 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgInput1.h

CDlgInput1.h

1行入力ダイアログボックス [詳細]

#include <windows.h>
#include "CMemory.h"

CDlgInput1.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgInput1
１行入力ダイアログボックス [詳細]

説明

1行入力ダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/31 作成

CDlgInput1.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgInput1.h ソースファイル

CDlgInput1.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class CDlgInput1;
00015
00016 #ifndef _CDLGINPUT1_H_
00017 #define _CDLGINPUT1_H_
00018
00019 #include <windows.h>
00020 #include "CMemory.h"
00021
00022
00023 /*-----------------------------------------------------------------------
00024 クラスの宣言
00025 -----------------------------------------------------------------------*/
00029 class CDlgInput1
00030 {
00031 public:
00032     /*
00033     ||  Constructors
00034     */
00035     CDlgInput1();
00036     ~CDlgInput1();
00037     BOOL DoModal( HINSTANCE , HWND , const char* , const char* , int , char*  );    /* モードレスダイアログの表示 */
00038     /*
00039     ||  Attributes & Operations
00040     */
00041     INT_PTR DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* ダイアログのメッセージ処理 */
00042
00043     HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00044     HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00045     HWND        m_hWnd;         /* このダイアログのハンドル */
00046
00047     const char* m_pszTitle;     /* ダイアログタイトル */
00048     const char* m_pszMessage;   /* メッセージ */
00049     int         m_nMaxTextLen;  /* 入力サイズ上限 */
00050 //  char*       m_pszText;      /* テキスト */
00051     CMemory     m_cmemText;     /* テキスト */
00052     char            m_szHelpFile[_MAX_PATH + 1];    //@@@ 2002.01.07 add
00053 protected:
00054     /*
00055     ||  実装ヘルパ関数
00056     */
00057 };
00058
00059
00060
00062 #endif /* _CDLGINPUT1_H_ */
00063
00064 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgJump.cpp

CDlgJump.cpp

指定行へのジャンプダイアログボックス [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgJump.h"
#include "etc_uty.h"
#include "debug.h"
#include "CEditDoc.h"
#include "funccode.h"
#include "CFuncInfoArr.h"
#include "sakura.hh"

CDlgJump.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

指定行へのジャンプダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/31 作成

CDlgJump.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_JUMP,                HIDC_JUMP_BUTTON_JUMP,
    IDCANCEL,                       HIDCANCEL_JUMP,
    IDC_BUTTON_HELP,                HIDC_JUMP_BUTTON_HELP,
    IDC_CHECK_PLSQL,                HIDC_JUMP_CHECK_PLSQL,
    IDC_COMBO_PLSQLBLOCKS,          HIDC_JUMP_COMBO_PLSQLBLOCKS,
    IDC_EDIT_LINENUM,               HIDC_JUMP_EDIT_LINENUM,
    IDC_EDIT_PLSQL_E1,              HIDC_JUMP_EDIT_PLSQL_E1,
    IDC_RADIO_LINENUM_LAYOUT,       HIDC_JUMP_RADIO_LINENUM_LAYOUT,
    IDC_RADIO_LINENUM_CRLF,         HIDC_JUMP_RADIO_LINENUM_CRLF,
    IDC_SPIN_LINENUM,               HIDC_JUMP_EDIT_LINENUM,
    IDC_SPIN_PLSQL_E1,              HIDC_JUMP_EDIT_PLSQL_E1,

    0, 0
}

CDlgJump.cpp の 29 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:15:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgJump.cpp ソースファイル

CDlgJump.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, jepro
00010     Copyright (C) 2001, jepro, Stonee
00011     Copyright (C) 2002, aroka, MIK, YAZAKI
00012     Copyright (C) 2004, genta
00013     Copyright (C) 2006, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018 #include "stdafx.h"
00019 #include "sakura_rc.h"
00020 #include "CDlgJump.h"
00021 #include "etc_uty.h"
00022 #include "debug.h"
00023 #include "CEditDoc.h"
00024 #include "funccode.h"       // Stonee, 2001/03/12
00025 #include "CFuncInfoArr.h"// 2002/2/10 aroka ヘッダ整理
00026
00027 // ジャンプ CDlgJump.cpp    //@@@ 2002.01.07 add start MIK
00028 #include "sakura.hh"
00029 const DWORD p_helpids[] = { //12800
00030     IDC_BUTTON_JUMP,                HIDC_JUMP_BUTTON_JUMP,          //ジャンプ
00031     IDCANCEL,                       HIDCANCEL_JUMP,                 //キャンセル
00032     IDC_BUTTON_HELP,                HIDC_JUMP_BUTTON_HELP,          //ヘルプ
00033     IDC_CHECK_PLSQL,                HIDC_JUMP_CHECK_PLSQL,          //PL/SQL
00034     IDC_COMBO_PLSQLBLOCKS,          HIDC_JUMP_COMBO_PLSQLBLOCKS,    //
00035     IDC_EDIT_LINENUM,               HIDC_JUMP_EDIT_LINENUM,         //行番号
00036     IDC_EDIT_PLSQL_E1,              HIDC_JUMP_EDIT_PLSQL_E1,        //
00037     IDC_RADIO_LINENUM_LAYOUT,       HIDC_JUMP_RADIO_LINENUM_LAYOUT, //折り返し単位
00038     IDC_RADIO_LINENUM_CRLF,         HIDC_JUMP_RADIO_LINENUM_CRLF,   //改行単位
00039     IDC_SPIN_LINENUM,               HIDC_JUMP_EDIT_LINENUM,         //12870,    //
00040     IDC_SPIN_PLSQL_E1,              HIDC_JUMP_EDIT_PLSQL_E1,        //12871,    //
00041 //  IDC_STATIC,                     -1,
00042     0, 0
00043 };  //@@@ 2002.01.07 add end MIK
00044
00045 CDlgJump::CDlgJump()
00046 {
00047     m_nLineNum = 0;         /* 行番号 */
00048     m_bPLSQL = FALSE;       /* PL/SQLソースの有効行か */
00049     m_nPLSQL_E1 = 1;
00050     m_nPLSQL_E2 = 1;
00051
00052
00053     return;
00054 }
00055
00056 /* モーダルダイアログの表示 */
00057 int CDlgJump::DoModal(
00058     HINSTANCE   hInstance,
00059     HWND        hwndParent,
00060     LPARAM      lParam
00061 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00062 //  BOOL        bLineNumIsCRLF  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00063 )
00064 {
00065 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00066 //  m_bLineNumIsCRLF = bLineNumIsCRLF;  /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00067     return CDialog::DoModal( hInstance, hwndParent, IDD_JUMP, lParam );
00068 }
00069
00070
00071 // From Here Oct. 6, 2000 JEPRO added 行番号入力ボックスにスピンコントロールを付けるため
00072 // CDlgPrintSetting.cppのOnNotifyとOnSpin及びCpropComFile.cppのDispatchEvent_p2内のcase WM_NOTIFYを参考にした
00073 BOOL CDlgJump::OnNotify( WPARAM wParam, LPARAM lParam )
00074 {
00075     NMHDR*          pNMHDR;
00076     NM_UPDOWN*      pMNUD;
00077     int             idCtrl;
00078     int             nData;
00079     idCtrl = (int)wParam;
00080     pNMHDR = (NMHDR*)lParam;
00081     pMNUD  = (NM_UPDOWN*)lParam;
00082 /* スピンコントロールの処理 */
00083     switch( idCtrl ){
00084     case IDC_SPIN_LINENUM:
00085     /* ジャンプしたい行番号の指定 */
00086         nData = ::GetDlgItemInt( m_hWnd, IDC_EDIT_LINENUM, NULL, FALSE );
00087         if( pMNUD->iDelta < 0 ){
00088             ++nData;
00089         }else
00090         if( pMNUD->iDelta > 0 ){
00091             nData--;
00092         }
00093         if( nData < 1 ){
00094             nData = 1;
00095         }
00096         ::SetDlgItemInt( m_hWnd, IDC_EDIT_LINENUM, nData, FALSE );
00097         break;
00098     case IDC_SPIN_PLSQL_E1:
00099         nData = ::GetDlgItemInt( m_hWnd, IDC_EDIT_PLSQL_E1, NULL, FALSE );
00100         if( pMNUD->iDelta < 0 ){
00101             ++nData;
00102         }else
00103         if( pMNUD->iDelta > 0 ){
00104             nData--;
00105         }
00106         if( nData < 1 ){
00107             nData = 1;
00108         }
00109         ::SetDlgItemInt( m_hWnd, IDC_EDIT_PLSQL_E1, nData, FALSE );
00110         break;
00111     default:
00112         break;
00113     }
00114     return TRUE;
00115 }
00116 // To Here Oct. 6, 2000
00117
00118
00119 BOOL CDlgJump::OnCbnSelChange( HWND hwndCtl, int wID )
00120 {
00121     int nIndex;
00122     int nWorkLine;
00123     switch( wID ){
00124     case IDC_COMBO_PLSQLBLOCKS:
00125         nIndex = ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_PLSQLBLOCKS ), CB_GETCURSEL, 0, 0 );
00126         nWorkLine = (int)::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_PLSQLBLOCKS ), CB_GETITEMDATA, nIndex, 0 );
00127         ::SetDlgItemInt( m_hWnd, IDC_EDIT_PLSQL_E1, nWorkLine, FALSE );
00128         return TRUE;
00129     }
00130     return FALSE;
00131 }
00132
00133 BOOL CDlgJump::OnBnClicked( int wID )
00134 {
00135     switch( wID ){
00136     case IDC_BUTTON_HELP:
00137         /* 「指定行へジャンプ」のヘルプ */
00138         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00139         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_JUMP_DIALOG) );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00140         return TRUE;
00141     case IDC_CHECK_PLSQL:       /* PL/SQLソースの有効行か */
00142         if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_PLSQL ) ){
00143             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL1 ), TRUE );   //Sept. 12, 2000 JEPRO
00144             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL2 ), TRUE );   //Sept. 12, 2000 JEPRO
00145             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL3 ), TRUE );   //Sept. 12, 2000 JEPRO
00146             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_PLSQL_E1 ), TRUE );
00147             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_SPIN_PLSQL_E1 ), TRUE );  //Oct. 6, 2000 JEPRO
00148             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_PLSQLBLOCKS ), TRUE );
00149 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00150             m_pShareData->m_bLineNumIsCRLF = TRUE;
00151             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_LAYOUT ), FALSE );
00152             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_CRLF ), FALSE );
00153         }else{
00154             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL1 ), FALSE );  //Sept. 12, 2000 JEPRO
00155             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL2 ), FALSE );  //Sept. 12, 2000 JEPRO
00156             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL3 ), FALSE );  //Sept. 12, 2000 JEPRO
00157             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_PLSQL_E1 ), FALSE );
00158             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_SPIN_PLSQL_E1 ), FALSE ); //Oct. 6, 2000 JEPRO
00159             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_PLSQLBLOCKS ), FALSE );
00160             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_LAYOUT ), TRUE );
00161             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_CRLF ), TRUE );
00162         }
00163         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00164 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00165         if( m_pShareData->m_bLineNumIsCRLF ){
00166             ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_LAYOUT, FALSE );
00167             ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_CRLF, TRUE );
00168         }else{
00169             ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_LAYOUT, TRUE );
00170             ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_CRLF, FALSE );
00171         }
00172         return TRUE;
00173     case IDC_BUTTON_JUMP:           /* 指定行へジャンプ */  //Feb. 20, 2001 JEPRO ボタン名を[IDOK]→[IDC_BUTTON_JUMP]に変更
00174         /* ダイアログデータの取得 */
00175         //From Here Feb. 20, 2001 JEPRO 次行をコメントアウト (CEditView_Command.cpp の Command_JUMP も関係しているので参照のこと)
00176 //      ::EndDialog( m_hWnd, GetData() );
00177 //      次行から追加
00178         if( 0 < GetData() ){
00179             CloseDialog( 1 );
00180         }else{
00181 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
00182                 "正しく行番号を入力してください。"
00183             );
00184         }
00185 //To Here Feb. 20, 2001
00186         {   //@@@ 2002.2.2 YAZAKI 指定行へジャンプを、ダイアログを表示するコマンドと、実際にジャンプするコマンドに分離。
00187             CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00188             pCEditDoc->m_cEditViewArr[pCEditDoc->m_nActivePaneIndex].HandleCommand(F_JUMP, TRUE, 0, 0, 0, 0);   //  ジャンプコマンド発行
00189         }
00190         return TRUE;
00191     case IDCANCEL:
00192         ::EndDialog( m_hWnd, FALSE );
00193         return TRUE;
00194     }
00195     /* 基底クラスメンバ */
00196     return CDialog::OnBnClicked( wID );
00197 }
00198
00199
00200
00201 /* ダイアログデータの設定 */
00202 void CDlgJump::SetData( void )
00203 {
00204     CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00205     CFuncInfoArr    cFuncInfoArr;
00206     int             i;
00207     HWND            hwndCtrl;
00208     char            szText[1024];
00209     int             nIndexCurSel = 0;   //  Sep. 11, 2004 genta 初期化
00210     int             nIndex;
00211     int             nWorkLine;
00212     int             nPLSQLBlockNum;
00213
00214 //  m_hWnd = hwndDlg;
00215 //From Here Oct. 7, 2000 JEPRO 前回入力した行番号を保持するように下行を変更
00216 //  ::SetDlgItemText( m_hWnd, IDC_EDIT_LINENUM, "" );   /* 行番号 */
00217     if( 0 == m_nLineNum ){
00218         ::SetDlgItemText( m_hWnd, IDC_EDIT_LINENUM, "" );   /* 行番号 */
00219     }else{
00220         ::SetDlgItemInt( m_hWnd, IDC_EDIT_LINENUM, m_nLineNum, FALSE ); /* 前回の行番号 */
00221     }
00222 //To Here Oct. 7, 2000
00223     ::SetDlgItemInt( m_hWnd, IDC_EDIT_PLSQL_E1, m_nPLSQL_E1, FALSE );
00224
00225     /* PL/SQL関数リスト作成 */
00226     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_PLSQLBLOCKS );
00227
00228 /* タイプ別に設定されたアウトライン解析方法 */
00229     if( OUTLINE_PLSQL == pCEditDoc->GetDocumentAttribute().m_nDefaultOutline ){
00230         pCEditDoc->MakeFuncList_PLSQL( &cFuncInfoArr );
00231     }
00232     nWorkLine = -1;
00233     nIndex = 0;
00234     nPLSQLBlockNum = 0;
00235     for( i = 0; i < cFuncInfoArr.GetNum(); ++i ){
00236         if( 31 == cFuncInfoArr.GetAt( i )->m_nInfo ||
00237             41 == cFuncInfoArr.GetAt( i )->m_nInfo ){
00238 //          MYTRACE( "cFuncInfoArr.GetAt( i )->m_cmemFuncName=%s(%d)\n",
00239 //              (char*)(cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetPtr() ),
00240 //              cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF
00241 //          );
00242         }
00243         if( 31 == cFuncInfoArr.GetAt( i )->m_nInfo ){
00244 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00245             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00246                 wsprintf( szText, "%d 行  %s  パッケージ仕様部",
00247                     cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF,
00248                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetPtr()
00249                 );
00250             }else{
00251                 wsprintf( szText, "%d 行  %s  パッケージ仕様部",
00252                     cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT,
00253                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetPtr()
00254                 );
00255             }
00256             nIndex = ::SendMessage( hwndCtrl, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)szText );
00257 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00258             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00259                 ::SendMessage( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (DWORD)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF );
00260             }else{
00261                 ::SendMessage( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (DWORD)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT );
00262             }
00263             nPLSQLBlockNum++;
00264         }
00265         if( 41 == cFuncInfoArr.GetAt( i )->m_nInfo ){
00266 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00267             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00268                 wsprintf( szText, "%d 行  %s  パッケージ本体部",
00269                     cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF,
00270                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetPtr()
00271                 );
00272             }else{
00273                 wsprintf( szText, "%d 行  %s  パッケージ本体部",
00274                     cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT,
00275                     cFuncInfoArr.GetAt( i )->m_cmemFuncName.GetPtr()
00276                 );
00277             }
00278             nIndexCurSel = nIndex = ::SendMessage( hwndCtrl, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)szText );
00279 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00280             if( m_pShareData->m_bLineNumIsCRLF ){   /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00281                 nWorkLine = cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF;
00282                 ::SendMessage( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (DWORD)cFuncInfoArr.GetAt( i )->m_nFuncLineCRLF );
00283             }else{
00284                 nWorkLine = cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT;
00285                 ::SendMessage( hwndCtrl, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM) (DWORD)cFuncInfoArr.GetAt( i )->m_nFuncLineLAYOUT );
00286             }
00287             ++nPLSQLBlockNum;
00288         }
00289     }
00290     ::SendMessage( hwndCtrl, CB_SETCURSEL, nIndexCurSel, 0 );
00291
00292     /* PL/SQLのパッケージ本体が検出された場合 */
00293     if( -1 != nWorkLine ){
00294         m_nPLSQL_E1 = nWorkLine;
00295         ::SetDlgItemInt( m_hWnd, IDC_EDIT_PLSQL_E1, m_nPLSQL_E1, FALSE );
00296     }
00297     /* PL/SQLのパッケージブロックが検出された場合 */
00298     if( 0 < nPLSQLBlockNum ){
00299         m_bPLSQL = TRUE;
00300     }
00301     ::CheckDlgButton( m_hWnd, IDC_CHECK_PLSQL, m_bPLSQL );  /* PL/SQLソースの有効行か */
00302     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_PLSQL ) ){
00303         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL1 ), TRUE );   //Sept. 12, 2000 JEPRO
00304         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL2 ), TRUE );   //Sept. 12, 2000 JEPRO
00305         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL3 ), TRUE );   //Sept. 12, 2000 JEPRO
00306         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_PLSQL_E1 ), TRUE );
00307         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_SPIN_PLSQL_E1 ), TRUE );  //Oct. 6, 2000 JEPRO
00308         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_PLSQLBLOCKS ), TRUE );
00309 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00310         m_pShareData->m_bLineNumIsCRLF = TRUE;
00311         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_LAYOUT ), FALSE );
00312         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_CRLF ), FALSE );
00313     }else{
00314         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL1 ), FALSE );  //Sept. 12, 2000 JEPRO
00315         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL2 ), FALSE );  //Sept. 12, 2000 JEPRO
00316         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_PLSQL3 ), FALSE );  //Sept. 12, 2000 JEPRO
00317         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_PLSQL_E1 ), FALSE );
00318         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_SPIN_PLSQL_E1 ), FALSE ); //Oct. 6, 2000 JEPRO
00319         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_PLSQLBLOCKS ), FALSE );
00320         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_LAYOUT ), TRUE );
00321         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_RADIO_LINENUM_CRLF ), TRUE );
00322     }
00323     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00324 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00325     if( m_pShareData->m_bLineNumIsCRLF ){
00326         ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_LAYOUT, FALSE );
00327         ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_CRLF, TRUE );
00328     }else{
00329         ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_LAYOUT, TRUE );
00330         ::CheckDlgButton( m_hWnd, IDC_RADIO_LINENUM_CRLF, FALSE );
00331     }
00332     return;
00333 }
00334
00335
00336
00337
00338 /* ダイアログデータの取得 */
00339 /*   TRUE==正常   FALSE==入力エラー  */
00340 int CDlgJump::GetData( void )
00341 {
00342     BOOL    pTranslated;
00343
00344     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00345 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00346     if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_LINENUM_LAYOUT ) ){
00347         m_pShareData->m_bLineNumIsCRLF = FALSE;
00348     }else{
00349         m_pShareData->m_bLineNumIsCRLF = TRUE;
00350     }
00351
00352     /* PL/SQLソースの有効行か */
00353     m_bPLSQL = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_PLSQL );
00354     m_nPLSQL_E1 = ::GetDlgItemInt( m_hWnd, IDC_EDIT_PLSQL_E1, &pTranslated, FALSE );
00355     if( m_nPLSQL_E1 == 0 && FALSE == pTranslated ){
00356         m_nPLSQL_E1 = 1;
00357     }
00358
00359 //  m_nPLSQL_E2 = ::GetDlgItemInt( m_hWnd, IDC_EDIT_PLSQL_E2, &pTranslated, FALSE );
00360 //  if( m_nPLSQL_E2 == 0 && FALSE == pTranslated ){
00361 //      m_nPLSQL_E2 = 1;
00362 //  }
00363
00364     /* 行番号 */
00365     m_nLineNum = ::GetDlgItemInt( m_hWnd, IDC_EDIT_LINENUM, &pTranslated, FALSE );
00366     if( m_nLineNum == 0 && FALSE == pTranslated ){
00367         return FALSE;
00368     }
00369     return TRUE;
00370 }
00371
00372 //@@@ 2002.01.18 add start
00373 LPVOID CDlgJump::GetHelpIdTable(void)
00374 {
00375     return (LPVOID)p_helpids;
00376 }
00377 //@@@ 2002.01.18 add end
00378
00379 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgJump.h

CDlgJump.h

指定行へのジャンプダイアログボックス [詳細]

#include "CDialog.h"

CDlgJump.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgJump
指定行へのジャンプダイアログボックス [詳細]

説明

指定行へのジャンプダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/31 作成

1999/12/05 再作成

CDlgJump.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:00 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgJump.h ソースファイル

CDlgJump.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2000, jepro
00011     Copyright (C) 2002, YAZAKI
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 class CDlgJump;
00018
00019 #ifndef _CDLGJUMP_H_
00020 #define _CDLGJUMP_H_
00021
00022 #include "CDialog.h"
00024 class SAKURA_CORE_API CDlgJump : public CDialog
00025 {
00026 public:
00027     /*
00028     ||  Constructors
00029     */
00030     CDlgJump();
00031     /*
00032     ||  Attributes & Operations
00033     */
00034 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00035     int DoModal( HINSTANCE, HWND, LPARAM/* , BOOL */);  /* モーダルダイアログの表示 */
00036
00037     int         m_nLineNum;
00038     BOOL        m_bPLSQL;
00039     int         m_nPLSQL_E1;
00040     int         m_nPLSQL_E2;
00041 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00042 //  BOOL        m_bLineNumIsCRLF;   /*!< 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00043 protected:
00044     /*
00045     ||  実装ヘルパ関数
00046     */
00047     BOOL OnNotify( WPARAM,  LPARAM );   //  Oct. 6, 2000 JEPRO added for Spin control
00048     BOOL OnCbnSelChange( HWND, int );
00049     BOOL OnBnClicked( int );
00050     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00051     void SetData( void );   /* ダイアログデータの設定 */
00052     int GetData( void );    /* ダイアログデータの取得 */
00053 };
00054
00055
00056
00058 #endif /* _CDLGJUMP_H_ */
00059
00060
00061 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgKeywordSelect.cpp

CDlgKeywordSelect.cpp

強調キーワード選択ダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "sakura.hh"
#include "CDlgKeywordSelect.h"

CDlgKeywordSelect.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD | p_helpids []
static const int | keyword_select_target_combo [KEYWORD_SELECT_NUM]

説明

強調キーワード選択ダイアログ

作者:
MIK
日付:
2005/01/13 作成

CDlgKeywordSelect.cpp で定義されています。

変数

const int keyword_select_target_combo[KEYWORD_SELECT_NUM] [static]

初期値:

 {
    IDC_COMBO1,
    IDC_COMBO2,
    IDC_COMBO3,
    IDC_COMBO4,
    IDC_COMBO5,
    IDC_COMBO6,
    IDC_COMBO7,
    IDC_COMBO8,
    IDC_COMBO9,
    IDC_COMBO10
}

CDlgKeywordSelect.cpp の 53 行で定義されています。

参照元 CDlgKeywordSelect::GetData()・CDlgKeywordSelect::SetData().

const DWORD p_helpids[] [static]

初期値:

 {
    IDOK,               HIDOK_KEYWORD_SELECT,
    IDCANCEL,           HIDCANCEL_KEYWORD_SELECT,
    IDC_COMBO1,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO2,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO3,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO4,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO5,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO6,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO7,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO8,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO9,         HIDC_COMBO_KEYWORD_SELECT,
    IDC_COMBO10,        HIDC_COMBO_KEYWORD_SELECT,
    0, 0
}

CDlgKeywordSelect.cpp の 37 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:01 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgKeywordSelect.cpp ソースファイル

CDlgKeywordSelect.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2005, MIK
00009     Copyright (C) 2006, ryoji
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #include "stdafx.h"
00033 #include "sakura_rc.h"
00034 #include "sakura.hh"
00035 #include "CDlgKeywordSelect.h"
00036
00037 static const DWORD p_helpids[] = {  // 2006.10.10 ryoji
00038     IDOK,               HIDOK_KEYWORD_SELECT,
00039     IDCANCEL,           HIDCANCEL_KEYWORD_SELECT,
00040     IDC_COMBO1,         HIDC_COMBO_KEYWORD_SELECT,
00041     IDC_COMBO2,         HIDC_COMBO_KEYWORD_SELECT,
00042     IDC_COMBO3,         HIDC_COMBO_KEYWORD_SELECT,
00043     IDC_COMBO4,         HIDC_COMBO_KEYWORD_SELECT,
00044     IDC_COMBO5,         HIDC_COMBO_KEYWORD_SELECT,
00045     IDC_COMBO6,         HIDC_COMBO_KEYWORD_SELECT,
00046     IDC_COMBO7,         HIDC_COMBO_KEYWORD_SELECT,
00047     IDC_COMBO8,         HIDC_COMBO_KEYWORD_SELECT,
00048     IDC_COMBO9,         HIDC_COMBO_KEYWORD_SELECT,
00049     IDC_COMBO10,        HIDC_COMBO_KEYWORD_SELECT,
00050     0, 0
00051 };
00052
00053 static const int keyword_select_target_combo[ KEYWORD_SELECT_NUM ] = {
00054     IDC_COMBO1,
00055     IDC_COMBO2,
00056     IDC_COMBO3,
00057     IDC_COMBO4,
00058     IDC_COMBO5,
00059     IDC_COMBO6,
00060     IDC_COMBO7,
00061     IDC_COMBO8,
00062     IDC_COMBO9,
00063     IDC_COMBO10
00064 };
00065
00066
00067 CDlgKeywordSelect::CDlgKeywordSelect()
00068 {
00069     m_pCKeyWordSetMgr = &(m_pShareData->m_CKeyWordSetMgr);
00070
00071     return;
00072 }
00073
00074 CDlgKeywordSelect::~CDlgKeywordSelect()
00075 {
00076     return;
00077 }
00078
00079
00080 /* !モーダルダイアログの表示
00081 */
00082 int CDlgKeywordSelect::DoModal( HINSTANCE hInstance, HWND hwndParent, int* pnSet )
00083 {
00084     int i;
00085
00086     for( i = 0; i < KEYWORD_SELECT_NUM; i++ ){
00087         m_nSet[ i ] = pnSet[ i ];
00088     }
00089
00090     (void)CDialog::DoModal( hInstance, hwndParent, IDD_DIALOG_KEYWORD_SELECT, NULL );
00091
00092     for( i = 0; i < KEYWORD_SELECT_NUM; i++ ){
00093         pnSet[ i ] = m_nSet[ i ];
00094     }
00095
00096     return TRUE;
00097 }
00098
00101 BOOL CDlgKeywordSelect::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00102 {
00103     m_hWnd = hwndDlg;
00104
00105     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00106 }
00107
00108
00109 BOOL CDlgKeywordSelect::OnBnClicked( int wID )
00110 {
00111     switch( wID ){
00112     case IDOK:
00113         GetData();
00114         break;
00115     case IDCANCEL:
00116         break;
00117     }
00118     return CDialog::OnBnClicked( wID );
00119 }
00120
00123 void CDlgKeywordSelect::SetData( void )
00124 {
00125     HWND    hwndCombo;
00126     int     i;
00127     int     index;
00128
00129     for( index = 0; index < KEYWORD_SELECT_NUM; index++ )
00130     {
00131         hwndCombo = ::GetDlgItem( m_hWnd, keyword_select_target_combo[ index ] );
00132
00133         /* コンボボックスを空にする */
00134         ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
00135
00136         /* 一行目は空白 */
00137         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)_T(" ") );
00138
00139         if( m_pCKeyWordSetMgr->m_nKeyWordSetNum > 0 )
00140         {
00141             for( i = 0; i < m_pCKeyWordSetMgr->m_nKeyWordSetNum; i++ )
00142             {
00143                 ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)m_pCKeyWordSetMgr->GetTypeName( i ) );
00144             }
00145
00146             if( -1 == m_nSet[ index ] )
00147             {
00148                 /* セット名コンボボックスのデフォルト選択 */
00149                 ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)0, 0 );
00150             }
00151             else
00152             {
00153                 /* セット名コンボボックスのデフォルト選択 */
00154                 ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)(m_nSet[ index ] + 1), 0 );
00155             }
00156         }
00157     }
00158 }
00159
00160
00163 int CDlgKeywordSelect::GetData( void )
00164 {
00165     HWND    hwndCombo;
00166     int     index;
00167     int     n;
00168
00169     for( index = 0; index < KEYWORD_SELECT_NUM; index++ )
00170     {
00171         hwndCombo = ::GetDlgItem( m_hWnd, keyword_select_target_combo[ index ] );
00172
00173         n = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
00174         if( CB_ERR == n || 0 == n )
00175         {
00176             m_nSet[ index ] = -1;
00177         }
00178         else
00179         {
00180             m_nSet[ index ] = n - 1;
00181         }
00182     }
00183
00184     return TRUE;
00185 }
00186
00187 LPVOID CDlgKeywordSelect::GetHelpIdTable( void )
00188 {
00189     return (LPVOID)p_helpids;
00190 }
00191
00192 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgKeywordSelect.h

CDlgKeywordSelect.h

強調キーワード選択ダイアログ [詳細]

#include "CDialog.h"

CDlgKeywordSelect.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CDlgKeywordSelect

変数

const int | KEYWORD_SELECT_NUM = MAX_KEYWORDSET_PER_TYPE

説明

強調キーワード選択ダイアログ

作者:
MIK
日付:
2005/01/13 作成

CDlgKeywordSelect.h で定義されています。

変数

const int KEYWORD_SELECT_NUM = MAX_KEYWORDSET_PER_TYPE

CDlgKeywordSelect.h の 43 行で定義されています。

参照元 CDlgKeywordSelect::DoModal()・CDlgKeywordSelect::GetData()・CDlgKeywordSelect::SetData().

Sakura-Editorに対してSat Oct 27 02:16:03 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgKeywordSelect.h ソースファイル

CDlgKeywordSelect.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2005, MIK, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef SC_CDLGKEYWORDSELECT_H__
00032 #define SC_CDLGKEYWORDSELECT_H__
00033
00034 #include "CDialog.h"
00035
00036 /*
00037     強調キーワード選択可能数
00038     1～10個の範囲で指定できる。
00039     ただし、ソースの修正は必要です。
00040 */
00041
00042 //  2005.01.13 genta ShareDataの定義と連動させる
00043 const int KEYWORD_SELECT_NUM = MAX_KEYWORDSET_PER_TYPE;
00044
00045 class CDlgKeywordSelect : public CDialog
00046 {
00047 public:
00048     CDlgKeywordSelect();
00049     ~CDlgKeywordSelect();
00050     int DoModal( HINSTANCE, HWND, int* pnSet );
00051
00052 protected:
00053
00054     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00055     BOOL OnBnClicked( int );
00056     int  GetData( void );
00057     void SetData( void );
00058     LPVOID GetHelpIdTable( void );
00059
00060     int m_nSet[ KEYWORD_SELECT_NUM ];
00061     CKeyWordSetMgr* m_pCKeyWordSetMgr;
00062 };
00063
00064 #endif
00065
00066 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgOpenFile.cpp

CDlgOpenFile.cpp

ファイルオープンダイアログボックス [詳細]

#include "stdafx.h"
#include "CDlgOpenFile.h"
#include "debug.h"
#include "sakura_rc.h"
#include "etc_uty.h"
#include "global.h"
#include "funccode.h"
#include "MY_SP.h"
#include "CFileExt.h"
#include "my_icmp.h"
#include <dlgs.h>
#include <cderr.h>
#include "sakura.hh"

CDlgOpenFile.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | OFN_ENABLESIZING 0x00800000

関数

LRESULT APIENTRY | OFNHookProcMain (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
UINT_PTR CALLBACK | OFNHookProc (HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)

変数

static const DWORD | p_helpids []
WNDPROC | m_wpOpenDialogProc
const char ** | m_ppszMRU
const char ** | m_ppszOPENFOLDER
char | m_szHelpFile [_MAX_PATH+1]
int | m_nHelpTopicID
BOOL | m_bReadOnly
BOOL | m_bIsSaveDialog

説明

ファイルオープンダイアログボックス

作者:
Norio Nakatani
日付:
1998/08/10 作成

CDlgOpenFile.cpp で定義されています。

マクロ定義

#define OFN_ENABLESIZING 0x00800000

CDlgOpenFile.cpp の 49 行で定義されています。

参照元 CDlgOpenFile::DoModalSaveDlg().

関数

UINT_PTR CALLBACK OFNHookProc | ( | HWND | hdlg,
 |  | UINT | uiMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

開くダイアログのフックプロシージャ

CDlgOpenFile.cpp の 133 行で定義されています。

参照先 _MAX_PATH・BOOL・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF8・DWLP_USER・EOL_CR・EOL_CRLF・EOL_LF・EOL_NONE・FALSE・gm_nCodeComboNameArrNum・gm_nCodeComboValueArr・gm_pszCodeComboNameArr・GWLP_WNDPROC・IDC_CHECK_BOM・IDC_COMBO_CODE・IDC_COMBO_EOL・IDC_COMBO_MRU・IDC_COMBO_OPENFOLDER・IDC_STATIC_EOL・CDlgOpenFile::InitLayout()・LONG_PTR・CDlgOpenFile::m_bBom・m_bIsSaveDialog・CDlgOpenFile::m_bUseBom・CDlgOpenFile::m_bUseEol・DLLSHAREDATA::m_Common・CDlgOpenFile::m_nCharCode・CDlgOpenFile::m_pShareData・Common::m_rcOpenDialog・m_wpOpenDialogProc・OFNHookProcMain()・SetWindowLongPtr・TRUE.

LRESULT APIENTRY OFNHookProcMain | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CDlgOpenFile.cpp の 71 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・m_bReadOnly・DLLSHAREDATA::m_Common・m_nHelpTopicID・Common::m_rcOpenDialog・m_szHelpFile・m_wpOpenDialogProc・MyWinHelp().

参照元 OFNHookProc().

変数

BOOL m_bIsSaveDialog

CDlgOpenFile.cpp の 59 行で定義されています。

参照元 OFNHookProc().

BOOL m_bReadOnly

CDlgOpenFile.cpp の 58 行で定義されています。

参照元 CEditDoc::IsReadOnly()・CCommandLine::IsReadOnly()・OFNHookProcMain()・CEditDoc::SetReadOnly().

int m_nHelpTopicID

CDlgOpenFile.cpp の 57 行で定義されています。

参照元 CDlgOpenFile::CDlgOpenFile()・CDlgOpenFile::DoModalSaveDlg()・OFNHookProcMain().

const char** m_ppszMRU

CDlgOpenFile.cpp の 54 行で定義されています。

参照元 CDlgOpenFile::Create().

const char** m_ppszOPENFOLDER

CDlgOpenFile.cpp の 55 行で定義されています。

参照元 CDlgOpenFile::Create().

char m_szHelpFile[_MAX_PATH+1]

CDlgOpenFile.cpp の 56 行で定義されています。

参照元 CDlgOpenFile::CDlgOpenFile()・OFNHookProcMain().

WNDPROC m_wpOpenDialogProc

CDlgOpenFile.cpp の 52 行で定義されています。

参照元 OFNHookProc()・OFNHookProcMain().

const DWORD p_helpids[] [static]

初期値:

 {

    IDC_COMBO_CODE,         HIDC_OPENDLG_COMBO_CODE,
    IDC_COMBO_MRU,          HIDC_OPENDLG_COMBO_MRU,
    IDC_COMBO_OPENFOLDER,   HIDC_OPENDLG_COMBO_OPENFOLDER,
    IDC_COMBO_EOL,          HIDC_OPENDLG_COMBO_EOL,
    IDC_CHECK_BOM,          HIDC_OPENDLG_CHECK_BOM,

    0, 0
}

CDlgOpenFile.cpp の 35 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgOpenFile.cpp ソースファイル

CDlgOpenFile.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, jepro, Stonee, genta
00010     Copyright (C) 2002, MIK, YAZAKI, genta
00011     Copyright (C) 2003, MIK, KEITA, Moca, ryoji
00012     Copyright (C) 2004, genta
00013     Copyright (C) 2005, novice, ryoji
00014     Copyright (C) 2006, ryoji, Moca
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019
00020 #include "stdafx.h"
00021 #include "CDlgOpenFile.h"
00022 #include "debug.h"
00023 #include "sakura_rc.h"
00024 #include "etc_uty.h"
00025 #include "global.h"
00026 #include "funccode.h"   //Stonee, 2001/05/18
00027 #include "MY_SP.h"  // Jun. 23, 2002 genta
00028 #include "CFileExt.h"
00029 #include "my_icmp.h"
00030 #include <dlgs.h>    // stc3,...
00031 #include <cderr.h>   // FNERR...,CDERR...
00032
00033 // オープンファイル CDlgOpenFile.cpp    //@@@ 2002.01.07 add start MIK
00034 #include "sakura.hh"
00035 static const DWORD p_helpids[] = {  //13100
00036 //  IDOK,                   HIDOK_OPENDLG,      //Winのヘルプで勝手に出てくる
00037 //  IDCANCEL,               HIDCANCEL_OPENDLG,      //Winのヘルプで勝手に出てくる
00038 //  IDC_BUTTON_HELP,        HIDC_OPENDLG_BUTTON_HELP,       //ヘルプボタン
00039     IDC_COMBO_CODE,         HIDC_OPENDLG_COMBO_CODE,        //文字コードセット
00040     IDC_COMBO_MRU,          HIDC_OPENDLG_COMBO_MRU,         //最近のファイル
00041     IDC_COMBO_OPENFOLDER,   HIDC_OPENDLG_COMBO_OPENFOLDER,  //最近のフォルダ
00042     IDC_COMBO_EOL,          HIDC_OPENDLG_COMBO_EOL,         //改行コード
00043     IDC_CHECK_BOM,          HIDC_OPENDLG_CHECK_BOM,         //BOM   // 2006.08.06 ryoji
00044 //  IDC_STATIC,             -1,
00045     0, 0
00046 };  //@@@ 2002.01.07 add end MIK
00047
00048 #ifndef OFN_ENABLESIZING
00049     #define OFN_ENABLESIZING    0x00800000
00050 #endif
00051
00052 WNDPROC         m_wpOpenDialogProc;
00053
00054 const char**    m_ppszMRU;
00055 const char**    m_ppszOPENFOLDER;
00056 char            m_szHelpFile[_MAX_PATH + 1];
00057 int             m_nHelpTopicID;
00058 BOOL            m_bReadOnly;        /* 読み取り専用か */
00059 BOOL            m_bIsSaveDialog;    /* 保存のダイアログか */
00060
00061 COsVersionInfo CDlgOpenFile::m_cOsVer;  // 2005.11.02 ryoji
00062
00063
00064
00065
00066 /*
00067 ||  開くダイアログのサブクラスプロシージャ
00068
00069     @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00070 */
00071 LRESULT APIENTRY OFNHookProcMain( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00072 {
00073 //  WPARAM                  wCtlFocus;  /* フォーカスを持つコントロールのID */
00074 //  BOOL                    fHandle;    /* wParamが処理するフラグ */
00075     int                     idCtrl;
00076     OFNOTIFY*               pofn;
00077 //  int                     nIdx;
00078 //  char*                   pszWork;
00079     WORD                    wNotifyCode;
00080     WORD                    wID;
00081     HWND                    hwndCtl;
00082 //  HWND                    hwndFrame;
00083     static DLLSHAREDATA*    pShareData;
00084     switch( uMsg ){
00085     case WM_MOVE:
00086         /* 「開く」ダイアログのサイズと位置 */
00087         pShareData = CShareData::getInstance()->GetShareData();
00088         ::GetWindowRect( hwnd, &pShareData->m_Common.m_rcOpenDialog );
00089 //      MYTRACE( "WM_MOVE 1\n" );
00090         break;
00091     case WM_COMMAND:
00092         wNotifyCode = HIWORD(wParam);   // notification code
00093         wID = LOWORD(wParam);           // item, control, or accelerator identifier
00094         hwndCtl = (HWND) lParam;        // handle of control
00095         switch( wNotifyCode ){
00096 //          break;
00097         /* ボタン／チェックボックスがクリックされた */
00098         case BN_CLICKED:
00099             switch( wID ){
00100             case pshHelp:
00101                 /* ヘルプ */
00102                 MyWinHelp( hwnd, m_szHelpFile, HELP_CONTEXT, m_nHelpTopicID );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00103                 break;
00104             case chx1:  // The read-only check box
00105                 m_bReadOnly = ::IsDlgButtonChecked( hwnd , chx1 );
00106                 break;
00107             }
00108             break;
00109         }
00110         break;
00111     case WM_NOTIFY:
00112         idCtrl = (int) wParam;
00113         pofn = (OFNOTIFY*) lParam;
00114 //      MYTRACE( "=========WM_NOTIFY=========\n" );
00115 //      MYTRACE( "pofn->hdr.hwndFrom=%xh\n", pofn->hdr.hwndFrom );
00116 //      MYTRACE( "pofn->hdr.idFrom=%xh(%d)\n", pofn->hdr.idFrom, pofn->hdr.idFrom );
00117 //      MYTRACE( "pofn->hdr.code=%xh(%d)\n", pofn->hdr.code, pofn->hdr.code );
00118         break;
00119     }
00120 //  return ::CallWindowProc( (int (__stdcall *)( void ))(WNDPROC)m_wpOpenDialogProc, hwnd, uMsg, wParam, lParam );
00121     return ::CallWindowProc( (WNDPROC)m_wpOpenDialogProc, hwnd, uMsg, wParam, lParam );
00122 }
00123
00124
00125
00126
00130 // Modified by KEITA for WIN64 2003.9.6
00131 // APIENTRY -> CALLBACK Moca 2003.09.09
00132 //UINT APIENTRY OFNHookProc(
00133 UINT_PTR CALLBACK OFNHookProc(
00134     HWND hdlg,      // handle to child dialog window
00135     UINT uiMsg,     // message identifier
00136     WPARAM wParam,  // message parameter
00137     LPARAM lParam   // message parameter
00138 )
00139 {
00140     POINT                   po;
00141 //  RECT                    rc0;
00142     RECT                    rc;
00143     static OPENFILENAME*    pOf;
00144     static HWND             hwndOpenDlg;
00145     static HWND             hwndComboMRU;
00146     static HWND             hwndComboOPENFOLDER;
00147     static HWND             hwndComboCODES;
00148     static HWND             hwndComboEOL;   //  Feb. 9, 2001 genta
00149     static HWND             hwndCheckBOM;   //  Jul. 26, 2003 ryoji BOMチェックボックス
00150     static CDlgOpenFile*    pcDlgOpenFile;
00151     int                     i;
00152     OFNOTIFY*               pofn;
00153     int                     idCtrl;
00154 //  HWND                    hwndCtrl;
00155     char                    szFolder[_MAX_PATH];
00156     LRESULT                 lRes;
00157     const int               nExtraSize = 100;
00158     const int               nControls = 9;
00159     char                    szWork[_MAX_PATH + 1];
00160     WORD                    wNotifyCode;
00161     WORD                    wID;
00162     HWND                    hwndCtl;
00163     HWND                    hwndFilebox;    // 2005.11.02 ryoji
00164     int                     nIdx;
00165     int                     nIdxSel;
00166     int                     fwSizeType;
00167     int                     nWidth;
00168     int                     nHeight;
00169     WPARAM                  fCheck; //  Jul. 26, 2003 ryoji BOM状態用
00170
00171     //  From Here   Feb. 9, 2001 genta
00172     const int           nEolValueArr[] = {
00173         EOL_NONE,
00174         EOL_CRLF,
00175         EOL_LF,
00176         EOL_CR,
00177     };
00178     //  文字列はResource内に入れる
00179     const char* const   pEolNameArr[] = {
00180         "変換なし",
00181         "CR+LF",
00182         "LF (UNIX)",
00183         "CR (Mac)",
00184     };
00185     int nEolNameArrNum = (int) (sizeof( pEolNameArr ) / sizeof( pEolNameArr[0] ) );
00186 //  To Here Feb. 9, 2001 genta
00187     int Controls[nControls] = {
00188         stc3, stc2,     // The two label controls
00189         edt1, cmb1,     // The edit control and the drop-down box
00190         IDOK, IDCANCEL,
00191         pshHelp,        // The Help command button (push button)
00192         lst1,           // The Explorer window
00193         chx1            // The read-only check box
00194     };
00195     int nRightMargin = 24;
00196     HWND    hwndFrame;
00197
00198     switch( uiMsg ){
00199     case WM_MOVE:
00200 //      MYTRACE( "WM_MOVE 2\n" );
00201         break;
00202     case WM_SIZE:
00203         fwSizeType = wParam;        // resizing flag
00204         nWidth = LOWORD(lParam);    // width of client area
00205         nHeight = HIWORD(lParam);   // height of client area
00206
00207         /* 「開く」ダイアログのサイズと位置 */
00208         hwndFrame = ::GetParent( hdlg );
00209         ::GetWindowRect( hwndFrame, &pcDlgOpenFile->m_pShareData->m_Common.m_rcOpenDialog );
00210
00211         // 2005.10.29 ryoji 最近のファイル／フォルダ コンボの右端を子ダイアログの右端に合わせる
00212         ::GetWindowRect( hwndComboMRU, &rc );
00213         po.x = rc.left;
00214         po.y = rc.top;
00215         ::ScreenToClient( hdlg, &po );
00216         ::SetWindowPos( hwndComboMRU, 0, 0, 0, nWidth - po.x - nRightMargin, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00217         ::SetWindowPos( hwndComboOPENFOLDER, 0, 0, 0, nWidth - po.x - nRightMargin, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00218         return 0;
00219     case WM_INITDIALOG:
00220         // Save off the long pointer to the OPENFILENAME structure.
00221         // Modified by KEITA for WIN64 2003.9.6
00222 		::SetWindowLongPtr(hdlg, DWLP_USER, lParam);
00223         pOf = (OPENFILENAME*)lParam;
00224         pcDlgOpenFile = (CDlgOpenFile*)pOf->lCustData;
00225
00226
00227         /* Explorerスタイルの「開く」ダイアログのハンドル */
00228         hwndOpenDlg = ::GetParent( hdlg );
00229         /* コントロールのハンドル */
00230         hwndComboCODES = ::GetDlgItem( hdlg, IDC_COMBO_CODE );
00231         hwndComboMRU = ::GetDlgItem( hdlg, IDC_COMBO_MRU );
00232         hwndComboOPENFOLDER = ::GetDlgItem( hdlg, IDC_COMBO_OPENFOLDER );
00233         hwndComboEOL = ::GetDlgItem( hdlg, IDC_COMBO_EOL );
00234         hwndCheckBOM = ::GetDlgItem( hdlg, IDC_CHECK_BOM );//   Jul. 26, 2003 ryoji BOMチェックボックス
00235
00236         // 2005.11.02 ryoji 初期レイアウト設定
00237         CDlgOpenFile::InitLayout( hwndOpenDlg, hdlg, hwndComboCODES );
00238
00239         /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00240         ::SendMessage( hwndComboCODES, CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00241         ::SendMessage( hwndComboMRU, CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00242         ::SendMessage( hwndComboOPENFOLDER, CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00243         ::SendMessage( hwndComboEOL, CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00244
00245         //  From Here Feb. 9, 2001 genta
00246         //  改行コードの選択コンボボックス初期化
00247         //  必要なときのみ利用する
00248         if( pcDlgOpenFile->m_bUseEol ){
00249             //  値の設定
00250             for( i = 0; i < nEolNameArrNum; ++i ){
00251                 nIdx = ::SendMessage( hwndComboEOL, CB_ADDSTRING, 0, (LPARAM)pEolNameArr[i] );
00252                 ::SendMessage( hwndComboEOL, CB_SETITEMDATA, nIdx, nEolValueArr[i] );
00253             }
00254             //  使うときは先頭の要素を選択状態にする
00255             ::SendMessage( hwndComboEOL, CB_SETCURSEL, (WPARAM)0, 0 );
00256         }
00257         else {
00258             //  使わないときは隠す
00259             ::ShowWindow( ::GetDlgItem( hdlg, IDC_STATIC_EOL ), SW_HIDE );
00260             ::ShowWindow( hwndComboEOL, SW_HIDE );
00261         }
00262         //  To Here Feb. 9, 2001 genta
00263
00264         //  From Here Jul. 26, 2003 ryoji BOMチェックボックスの初期化
00265         if( pcDlgOpenFile->m_bUseBom ){
00266             //  使うときは有効／無効を切り替え、チェック状態を初期値に設定する
00267             switch( pcDlgOpenFile->m_nCharCode ){
00268             case CODE_UNICODE:
00269             case CODE_UTF8:
00270             case CODE_UNICODEBE:
00271                 ::EnableWindow( hwndCheckBOM, TRUE );
00272                 fCheck = pcDlgOpenFile->m_bBom? BST_CHECKED: BST_UNCHECKED;
00273                 break;
00274             default:
00275                 ::EnableWindow( hwndCheckBOM, FALSE );
00276                 fCheck = BST_UNCHECKED;
00277                 break;
00278             }
00279             ::SendMessage( hwndCheckBOM, BM_SETCHECK, fCheck, 0 );
00280         }
00281         else {
00282             //  使わないときは隠す
00283             ::ShowWindow( hwndCheckBOM, SW_HIDE );
00284         }
00285         //  To Here Jul. 26, 2003 ryoji BOMチェックボックスの初期化
00286
00287         /* Explorerスタイルの「開く」ダイアログをフック */
00288         // Modified by KEITA for WIN64 2003.9.6
00289         m_wpOpenDialogProc = (WNDPROC) ::SetWindowLongPtr( hwndOpenDlg, GWLP_WNDPROC, (LONG_PTR) OFNHookProcMain );
00290
00291 //      /* Explorerスタイルの「開く」ダイアログのスタイル */
00292 //      lStyle = ::GetWindowLong( hwndOpenDlg, GWL_STYLE );
00293 //      if( lStyle & WS_BORDER )    lStyle = WS_BORDER;
00294 //      if( lStyle & WS_DLGFRAME )  lStyle = WS_DLGFRAME;
00295 //      if( lStyle & WS_SYSMENU )   lStyle = WS_SYSMENU;
00296 //      ::SetWindowLong( hwndOpenDlg, GWL_STYLE, lStyle );
00297
00298 //      lStyle = ::GetWindowLong( hwndOpenDlg, GWL_EXSTYLE );
00299 //      lStyle =~ WS_EX_DLGMODALFRAME;
00300 //      ::SetWindowLong( hwndOpenDlg, GWL_EXSTYLE, lStyle );
00301
00302
00303         /* 文字コード選択コンボボックス初期化 */
00304         nIdxSel = 0;
00305         if( m_bIsSaveDialog ){  /* 保存のダイアログか */
00306             i = 1;
00307         }else{
00308             i = 0;
00309         }
00310         for( /*i = 0*/; i < gm_nCodeComboNameArrNum; ++i ){
00311             nIdx = ::SendMessage( hwndComboCODES, CB_ADDSTRING, 0, (LPARAM)gm_pszCodeComboNameArr[i] );
00312             ::SendMessage( hwndComboCODES, CB_SETITEMDATA, nIdx, gm_nCodeComboValueArr[i] );
00313             if( gm_nCodeComboValueArr[i] == pcDlgOpenFile->m_nCharCode ){
00314                 nIdxSel = nIdx;
00315             }
00316         }
00317         ::SendMessage( hwndComboCODES, CB_SETCURSEL, (WPARAM)nIdxSel, 0 );
00318
00319
00320
00321 //      ::GetWindowRect( hwndOpenDlg, &rc0 );
00322 //      for( i = 0; i < nControls; ++i ){
00323 //          hwndCtrl = ::GetDlgItem( hwndOpenDlg, Controls[i] );
00324 //          ::GetWindowRect( hwndCtrl, &rc );
00325 //          po.x = rc.left;
00326 //          po.y = rc.top;
00327 //          ::ScreenToClient( hwndOpenDlg, &po );
00328 //          rc.left = po.x;
00329 //          rc.top  = po.y;
00330 //          po.x = rc.right;
00331 //          po.y = rc.bottom;
00332 //          ::ScreenToClient( hwndOpenDlg, &po );
00333 //          rc.right = po.x;
00334 //          rc.bottom  = po.y;
00335 //          if( Controls[i] != lst1 ){
00336 //              ::SetWindowPos( hwndCtrl, NULL, rc.left, rc.top + nExtraSize, 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00337 //          }else{
00338 //              ::SetWindowPos( hwndCtrl, NULL, 0, 0, rc.right - rc.left, rc.bottom - rc.top + nExtraSize, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
00339 //          }
00340 //      }
00341 //      ::SetWindowPos(
00342 //          hwndOpenDlg,
00343 //          HWND_TOP,
00344 //          0, 0,
00345 //          rc0.right - rc0.left,
00346 //          (rc0.bottom - rc0.top)+ nExtraSize,
00347 //          SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER
00348 //      );
00349
00350
00351         /* 読み取り専用の初期値セット */
00352         ::CheckDlgButton( hwndOpenDlg, chx1, m_bReadOnly );
00353
00354         /* 最近開いたファイル コンボボックス初期値設定 */
00355         //  2003.06.22 Moca m_ppszMRU がNULLの場合を考慮する
00356         if( NULL != m_ppszMRU ){
00357             for( i = 0; m_ppszMRU[i] != NULL; ++i ){
00358                 ::SendMessage( hwndComboMRU, CB_ADDSTRING, 0, (LPARAM)m_ppszMRU[i] );
00359             }
00360         }
00361         /* 最近開いたフォルダ コンボボックス初期値設定 */
00362         //  2003.06.22 Moca m_ppszOPENFOLDER がNULLの場合を考慮する
00363         if( NULL != m_ppszOPENFOLDER ){
00364             for( i = 0; m_ppszOPENFOLDER[i] != NULL; ++i ){
00365                 ::SendMessage( hwndComboOPENFOLDER, CB_ADDSTRING, 0, (LPARAM)m_ppszOPENFOLDER[i] );
00366             }
00367         }
00368
00369
00370 //      ::SetWindowLong( hwndOpenDlg, DWLP_USER, (LONG)pcDlgOpenFile );
00371
00372         /* サイズボックス */
00373 //      m_hwndSizeBox = ::CreateWindowEx(
00374 //          WS_EX_CONTROLPARENT,                                /* no extended styles */
00375 //          "SCROLLBAR",                                        /* scroll bar control class */
00376 //          (LPSTR) NULL,                                       /* text for window title bar */
00377 //          WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00378 //          0,                                                  /* horizontal position */
00379 //          0,                                                  /* vertical position */
00380 //          0,                                                  /* width of the scroll bar */
00381 //          0,                                                  /* default height */
00382 //          hwndOpenDlg/*hdlg*/,                                /* handle of main window */
00383 //          (HMENU) NULL,                                       /* no menu for a scroll bar */
00384 //          pcDlgOpenFile->m_hInstance,                         /* instance owning this window */
00385 //          (LPVOID) NULL                                       /* pointer not needed */
00386 //      );
00387 //      ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00388
00389         break;
00390
00391
00392     case WM_DESTROY:
00393         /* フック解除 */
00394         // Modified by KEITA for WIN64 2003.9.6
00395 		::SetWindowLongPtr( hwndOpenDlg, GWLP_WNDPROC, (LONG_PTR) m_wpOpenDialogProc );
00396         return FALSE;
00397
00398     case WM_NOTIFY:
00399         idCtrl = (int) wParam;
00400         pofn = (OFNOTIFY*) lParam;
00401 //      MYTRACE( "=========WM_NOTIFY=========\n" );
00402 //      MYTRACE( "pofn->hdr.hwndFrom=%xh\n", pofn->hdr.hwndFrom );
00403 //      MYTRACE( "pofn->hdr.idFrom=%xh(%d)\n", pofn->hdr.idFrom, pofn->hdr.idFrom );
00404 //      MYTRACE( "pofn->hdr.code=%xh(%d)\n", pofn->hdr.code, pofn->hdr.code );
00405
00406         switch( pofn->hdr.code ){
00407         case CDN_FILEOK:
00408             // 拡張子の補完を自前で行う // 2006.11.10 ryoji
00409             if( m_bIsSaveDialog ){
00410                 TCHAR szDefExt[_MAX_EXT];   // 補完する拡張子
00411                 TCHAR szBuf[_MAX_PATH + _MAX_EXT];  // ワーク
00412                 LPTSTR pszCur, pszNext;
00413                 int i;
00414
00415                 CommDlg_OpenSave_GetSpec(hwndOpenDlg, szBuf, _MAX_PATH);    // ファイル名入力ボックス内の文字列
00416                 pszCur = szBuf;
00417                 while( *pszCur == _T(' ') ) // 空白を読み飛ばす
00418                     pszCur = ::CharNext(pszCur);
00419                 if( *pszCur == _T('\"') ){  // 二重引用部で始まっている
00420                     ::lstrcpyn(pcDlgOpenFile->m_szPath, pOf->lpstrFile, _MAX_PATH);
00421                 }
00422                 else{
00423                     _tsplitpath( pOf->lpstrFile, NULL, NULL, NULL, szDefExt );
00424                     if( szDefExt[0] == _T('.') && szDefExt[1] != _T('\0') ){    // 既に拡張子がついている
00425                         ::lstrcpyn(pcDlgOpenFile->m_szPath, pOf->lpstrFile, _MAX_PATH);
00426                     }
00427                     else{
00428                         switch( pOf->nFilterIndex ) // 選択されているファイルの種類
00429                         {
00430                         case 1:     // ユーザー定義
00431                             pszCur = pcDlgOpenFile->m_szDefaultWildCard;
00432                             while( *pszCur != _T('.') && *pszCur != _T('\0') )  // '.'まで読み飛ばす
00433                                 pszCur = ::CharNext(pszCur);
00434                             i = 0;
00435                             while( *pszCur != _T(';') && *pszCur != _T('\0') ){ // ';'までコピーする
00436                                 pszNext = ::CharNext(pszCur);
00437                                 while( pszCur < pszNext )
00438                                     szDefExt[i++] = *pszCur++;
00439                             }
00440                             szDefExt[i] = _T('\0');
00441                             if( ::lstrlen(szDefExt) < 2 || szDefExt[1] == _T('*') ) // 無効な拡張子?
00442                                 szDefExt[0] = _T('\0');
00443                             break;
00444                         case 2:     // *.txt
00445                             ::lstrcpy(szDefExt, _T(".txt"));
00446                             break;
00447                         case 3:     // *.*
00448                         default:    // 不明
00449                             szDefExt[0] = _T('\0');
00450                             break;
00451                         }
00452                         ::lstrcpyn(szBuf, pOf->lpstrFile, _MAX_PATH + 1);
00453                         ::lstrcat(szBuf, szDefExt);
00454                         ::lstrcpyn(pcDlgOpenFile->m_szPath, szBuf, _MAX_PATH);
00455                     }
00456                 }
00457
00458                 // ファイルの上書き確認を自前で行う // 2006.11.10 ryoji
00459                 if( IsFileExists(pcDlgOpenFile->m_szPath, true) ){
00460                     TCHAR szText[_MAX_PATH + 100];
00461                     ::lstrcpyn(szText, pcDlgOpenFile->m_szPath, _MAX_PATH);
00462                     ::lstrcat(szText, _T(" は既に存在します。\r\n上書きしますか？"));
00463                     if( IDYES != ::MessageBox( hwndOpenDlg, szText, _T("名前を付けて保存"), MB_YESNO | MB_ICONEXCLAMATION) ){
00464                         ::SetWindowLong( hdlg, DWL_MSGRESULT, TRUE );
00465                         return TRUE;
00466                     }
00467                 }
00468             }
00469
00470             /* 文字コード選択コンボボックス 値を取得 */
00471             nIdx = ::SendMessage( hwndComboCODES, CB_GETCURSEL, 0, 0 );
00472             lRes = ::SendMessage( hwndComboCODES, CB_GETITEMDATA, nIdx, 0 );
00473 //          lRes = ::SendMessage( hwndComboCODES, CB_GETCURSEL, 0, 0 );
00474             pcDlgOpenFile->m_nCharCode = lRes;  /* 文字コード */
00475             //  Feb. 9, 2001 genta
00476             if( pcDlgOpenFile->m_bUseEol ){
00477                 nIdx = ::SendMessage( hwndComboEOL, CB_GETCURSEL, 0, 0 );
00478                 lRes = ::SendMessage( hwndComboEOL, CB_GETITEMDATA, nIdx, 0 );
00479 //          lRes = ::SendMessage( hwndComboCODES, CB_GETCURSEL, 0, 0 );
00480                 pcDlgOpenFile->m_cEol = (enumEOLType)lRes;  /* 文字コード */
00481             }
00482             //  From Here Jul. 26, 2003 ryoji
00483             //  BOMチェックボックスの状態を取得
00484             if( pcDlgOpenFile->m_bUseBom ){
00485                 lRes = ::SendMessage( hwndCheckBOM, BM_GETCHECK, 0, 0 );
00486                 pcDlgOpenFile->m_bBom = (lRes == BST_CHECKED);  /* BOM */
00487             }
00488             //  To Here Jul. 26, 2003 ryoji
00489
00490 //          MYTRACE( "文字コード  lRes=%d\n", lRes );
00491 //          MYTRACE( "pofn->hdr.code=CDN_FILEOK        \n" );break;
00492             break;  /* CDN_FILEOK */
00493
00494         case CDN_FOLDERCHANGE  :
00495 //          MYTRACE( "pofn->hdr.code=CDN_FOLDERCHANGE  \n" );
00496             lRes = ::SendMessage( hwndOpenDlg, CDM_GETFOLDERPATH, sizeof( szFolder ), (LPARAM)szFolder );
00497 //          MYTRACE( "\tlRes=%d\tszFolder=[%s]\n", lRes, szFolder );
00498
00499             break;
00500 //      case CDN_HELP           :   MYTRACE( "pofn->hdr.code=CDN_HELP          \n" );break;
00501 //      case CDN_INITDONE       :   MYTRACE( "pofn->hdr.code=CDN_INITDONE      \n" );break;
00502 //      case CDN_SELCHANGE      :   MYTRACE( "pofn->hdr.code=CDN_SELCHANGE     \n" );break;
00503 //      case CDN_SHAREVIOLATION :   MYTRACE( "pofn->hdr.code=CDN_SHAREVIOLATION\n" );break;
00504 //      case CDN_TYPECHANGE     :   MYTRACE( "pofn->hdr.code=CDN_TYPECHANGE    \n" );break;
00505 //      default:                    MYTRACE( "pofn->hdr.code=???\n" );break;
00506 // 2005/02/20 novice 拡張子を省略したら補完する(不要な処理)
00507 #if 0
00508         case CDN_TYPECHANGE:    //@@@ 2002.1.24 YAZAKI 名前を付けて保存するときに「テキストファイル（*.txt）」を選択したら、拡張子txtを補うように変更
00509             switch (pOf->nFilterIndex){
00510             case 1:
00511                 pOf->lpstrDefExt = NULL;
00512                 break;
00513             case 2:
00514                 pOf->lpstrDefExt = "txt";
00515                 break;
00516             case 3:
00517                 pOf->lpstrDefExt = NULL;
00518                 break;
00519             }
00520             ::SendMessage( hwndOpenDlg, CDM_SETDEFEXT, 0, (LPARAM)pOf->lpstrDefExt );
00521             break;
00522 #endif
00523         }
00524
00525 //      MYTRACE( "=======================\n" );
00526         break;
00527     case WM_COMMAND:
00528         wNotifyCode = HIWORD(wParam);   // notification code
00529         wID = LOWORD(wParam);           // item, control, or accelerator identifier
00530         hwndCtl = (HWND) lParam;        // handle of control
00531         switch( wNotifyCode ){
00532         case CBN_SELCHANGE:
00533             switch( (int) LOWORD(wParam) ){
00534             //  From Here Jul. 26, 2003 ryoji
00535             //  文字コードの変更をBOMチェックボックスに反映
00536             case IDC_COMBO_CODE:
00537                 nIdx = ::SendMessage( (HWND) lParam, CB_GETCURSEL, 0, 0 );
00538                 lRes = ::SendMessage( (HWND) lParam, CB_GETITEMDATA, nIdx, 0 );
00539                 switch( lRes ){
00540                 case CODE_UNICODE:
00541                 case CODE_UTF8:
00542                 case CODE_UNICODEBE:
00543                     ::EnableWindow( hwndCheckBOM, TRUE );
00544                     if (lRes == pcDlgOpenFile->m_nCharCode){
00545                         fCheck = pcDlgOpenFile->m_bBom? BST_CHECKED: BST_UNCHECKED;
00546                     }else{
00547                         fCheck = (lRes == CODE_UTF8)? BST_UNCHECKED: BST_CHECKED;
00548                     }
00549                     break;
00550                 default:
00551                     ::EnableWindow( hwndCheckBOM, FALSE );
00552                     fCheck = BST_UNCHECKED;
00553                     break;
00554                 }
00555                 ::SendMessage( hwndCheckBOM, BM_SETCHECK, fCheck, 0 );
00556                 break;
00557             //  To Here Jul. 26, 2003 ryoji
00558             case IDC_COMBO_MRU:
00559             case IDC_COMBO_OPENFOLDER:
00560                 nIdx = ::SendMessage( (HWND) lParam, CB_GETCURSEL, 0, 0 );
00561                 if( CB_ERR != ::SendMessage( (HWND) lParam, CB_GETLBTEXT, nIdx, (LPARAM) (LPCSTR)szWork ) ){
00562 //                  MYTRACE( "szWork=%s\n", szWork );
00563                     // 2005.11.02 ryoji ファイル名指定のコントロールを確認する
00564                     hwndFilebox = ::GetDlgItem( hwndOpenDlg, cmb13 );       // ファイル名コンボ（Windows 2000タイプ）
00565                     if( !::IsWindow( hwndFilebox ) )
00566                         hwndFilebox = ::GetDlgItem( hwndOpenDlg, edt1 );    // ファイル名エディット（レガシータイプ）
00567                     if( ::IsWindow( hwndFilebox ) ){
00568                         ::SetWindowText( hwndFilebox, szWork );
00569                         if( IDC_COMBO_OPENFOLDER == wID )
00570                             ::PostMessage( hwndFilebox, WM_KEYDOWN, VK_RETURN, (LPARAM)0 );
00571                     }
00572                 }
00573                 break;
00574             }
00575             break;  /* CBN_SELCHANGE */
00576         case CBN_DROPDOWN:
00577             switch( wID ){
00578             case IDC_COMBO_MRU:
00579             case IDC_COMBO_OPENFOLDER:
00580                 CDlgOpenFile::OnCmbDropdown( hwndCtl );
00581                 break;
00582             }
00583             break;  /* CBN_DROPDOWN */
00584         }
00585         break;  /* WM_COMMAND */
00586
00587     //@@@ 2002.01.08 add start
00588     case WM_HELP:
00589         {
00590             HELPINFO *p = (HELPINFO *)lParam;
00591             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00592         }
00593         return TRUE;
00594
00595     //Context Menu
00596     case WM_CONTEXTMENU:
00597         MyWinHelp( hdlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00598         return TRUE;
00599     //@@@ 2002.01.08 add end
00600
00601     default:
00602         return FALSE;
00603     }
00604     return TRUE;
00605 }
00606
00607
00608
00609
00610
00611 CDlgOpenFile::CDlgOpenFile()
00612 {
00613     /* メンバの初期化 */
00614     long    lPathLen;
00615     char    szFile[_MAX_PATH + 1];
00616 //  int     nCharChars;
00617     char    szDrive[_MAX_DRIVE];
00618     char    szDir[_MAX_DIR];
00619
00620     m_nCharCode = CODE_AUTODETECT;  /* 文字コード *//* 文字コード自動判別 */
00621
00622
00623     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00624     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00625     m_hWnd = NULL;          /* このダイアログのハンドル */
00626
00627     /* 共有データ構造体のアドレスを返す */
00628     m_pShareData = CShareData::getInstance()->GetShareData();
00629
00630     /* OPENFILENAMEの初期化 */
00631     InitOfn( m_ofn );       // 2005.10.29 ryoji
00632     m_ofn.nFilterIndex = 1; //Jul. 09, 2001 JEPRO       /* 「開く」での最初のワイルドカード */
00633
00634 //  ::GetCurrentDirectory( _MAX_PATH, m_szInitialDir ); /* 「開く」での初期ディレクトリ */
00635     lPathLen = ::GetModuleFileName(
00636         ::GetModuleHandle( NULL ),
00637         szFile, sizeof( szFile )
00638     );
00639     _splitpath( szFile, szDrive, szDir, NULL, NULL );
00640     strcpy( m_szInitialDir, szDrive );
00641     strcat( m_szInitialDir, szDir );
00642
00643
00644
00645     strcpy( m_szDefaultWildCard, "*.*" );   /*「開く」での最初のワイルドカード（保存時の拡張子補完でも使用される） */
00646
00647     /* ヘルプファイルのフルパスを返す */
00648 	::GetHelpFilePath( m_szHelpFile );
00649     m_nHelpTopicID = 0;
00650
00651     return;
00652 }
00653
00654
00655
00656
00657
00658 CDlgOpenFile::~CDlgOpenFile()
00659 {
00660     return;
00661 }
00662
00663
00664 #if 0
00665
00671 void CDlgOpenFile::Create(
00672     HINSTANCE       hInstance,
00673     HWND            hwndParent,
00674     const char*     pszUserWildCard,
00675     const char*     pszDefaultPath
00676 )
00677 {
00678     Create(
00679         hInstance,
00680         hwndParent,
00681         pszUserWildCard,
00682         pszDefaultPath,
00683         NULL,
00684         NULL
00685     );
00686 }
00687 #endif
00688
00689 /* 初期化 */
00690 void CDlgOpenFile::Create(
00691     HINSTANCE       hInstance,
00692     HWND            hwndParent,
00693     const char*     pszUserWildCard,
00694     const char*     pszDefaultPath,
00695     const char**    ppszMRU,
00696     const char**    ppszOPENFOLDER
00697 )
00698 {
00699     m_hInstance = hInstance;
00700     m_hwndParent = hwndParent;
00701
00702     /* ユーザー定義ワイルドカード（保存時の拡張子補完でも使用される） */
00703     if( NULL != pszUserWildCard ){
00704         strcpy( m_szDefaultWildCard, pszUserWildCard );
00705     }
00706     /* 「開く」での初期フォルダ */
00707     if( pszDefaultPath && 0 < lstrlen( pszDefaultPath ) ){  //現在編集中のファイルのパス    //@@@ 2002.04.18
00708         char szDrive[_MAX_DRIVE];
00709         char szDir[_MAX_DIR];
00710         //  Jun. 23, 2002 genta
00711         my_splitpath( pszDefaultPath, szDrive, szDir, NULL, NULL );
00712         wsprintf( m_szInitialDir, "%s%s", szDrive, szDir );
00713     }
00714     m_ppszMRU = ppszMRU;
00715     m_ppszOPENFOLDER = ppszOPENFOLDER;
00716     return;
00717 }
00718
00719
00720
00721
00731 BOOL CDlgOpenFile::DoModal_GetOpenFileName( char* pszPath , bool bSetCurDir )
00732 {
00733     TCHAR   szCurDir[_MAX_PATH];
00734     bool    bGetCurDirSuc = false;
00735     if( false == bSetCurDir ){
00736         int nRetVal;
00737         nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
00738         if( 0 < nRetVal && _MAX_PATH > nRetVal ){
00739             bGetCurDirSuc = true;
00740         }
00741     }
00742
00743     //  2003.05.12 MIK
00744     CFileExt    cFileExt;
00745     cFileExt.AppendExtRaw( "ユーザー指定",     m_szDefaultWildCard );
00746     cFileExt.AppendExtRaw( "テキストファイル", "*.txt" );
00747     cFileExt.AppendExtRaw( "すべてのファイル", "*.*" );
00748
00749     /* 構造体の初期化 */
00750     InitOfn( m_ofn );       // 2005.10.29 ryoji
00751     m_ofn.hwndOwner = m_hwndParent;
00752     m_ofn.hInstance = m_hInstance;
00753     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00754     // From Here Jun. 23, 2002 genta
00755     // 「開く」での初期フォルダチェック強化
00756 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00757     char szDrive[_MAX_DRIVE];
00758     char szDir[_MAX_DIR];
00759     char szName[_MAX_FNAME];
00760     char szExt  [_MAX_EXT];
00761
00762     //  Jun. 23, 2002 Thanks to sui
00763     my_splitpath( pszPath, szDrive, szDir, szName, szExt );
00764
00765     //  指定されたファイルが存在しないとき szName == NULL
00766     //  ファイルの場所にディレクトリを指定するとエラーになるので
00767     //  ファイルが無い場合は全く指定しないことにする．
00768     if( szName[0] == '\0' ){
00769         pszPath[0] = '\0';
00770     }
00771     else {
00772         wsprintf( pszPath, "%s%s%s%s", szDrive, szDir, szName, szExt );
00773     }
00774     m_ofn.lpstrFile = pszPath;
00775     // To Here Jun. 23, 2002 genta
00776     m_ofn.nMaxFile = _MAX_PATH;
00777     m_ofn.lpstrInitialDir = m_szInitialDir;
00778 //  m_ofn.Flags =
00779 //      /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00780 //      /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00781     m_ofn.Flags =
00782         /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00783         /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00784         ;
00785 // 2005/02/20 novice 拡張子を省略したら補完する
00786     m_ofn.lpstrDefExt = "";
00787     if( GetOpenFileNameRecover( m_ofn ) ){
00788         // 変わってしまった可能性のあるカレントディレクトリを元に戻す
00789         if( bGetCurDirSuc ){
00790             ::SetCurrentDirectory( szCurDir );
00791         }
00792         return TRUE;
00793     }else{
00794         //  May 29, 2004 genta 関数にまとめた
00795         DlgOpenFail();
00796         return FALSE;
00797     }
00798 }
00799
00800
00809 BOOL CDlgOpenFile::DoModal_GetSaveFileName( char* pszPath, bool bSetCurDir )
00810 {
00811     TCHAR   szCurDir[_MAX_PATH];
00812     bool    bGetCurDirSuc = false;
00813     if( false == bSetCurDir ){
00814         int nRetVal;
00815         nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
00816         if( 0 < nRetVal && _MAX_PATH > nRetVal ){
00817             bGetCurDirSuc = true;
00818         }
00819     }
00820
00821     //  2003.05.12 MIK
00822     CFileExt    cFileExt;
00823     cFileExt.AppendExtRaw( "ユーザー指定",     m_szDefaultWildCard );
00824     cFileExt.AppendExtRaw( "テキストファイル", "*.txt" );
00825     cFileExt.AppendExtRaw( "すべてのファイル", "*.*" );
00826
00827     /* 構造体の初期化 */
00828     InitOfn( m_ofn );       // 2005.10.29 ryoji
00829     m_ofn.hwndOwner = m_hwndParent;
00830     m_ofn.hInstance = m_hInstance;
00831     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00832 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00833     m_ofn.lpstrFile = pszPath;
00834     m_ofn.nMaxFile = _MAX_PATH;
00835     m_ofn.lpstrInitialDir = m_szInitialDir;
00836 //  m_ofn.Flags =
00837 //      /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00838 //      /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00839 //  m_ofn.Flags =
00840 //      /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00841 //      /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00842 //      ;
00843     m_ofn.Flags =
00844         OFN_CREATEPROMPT | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
00845          /*| OFN_ENABLETEMPLATE | OFN_ENABLEHOOK*/;
00846 // 2005/02/20 novice 拡張子を省略したら補完する
00847     m_ofn.lpstrDefExt = "";
00848     if( GetSaveFileNameRecover( m_ofn ) ){
00849         // 変わってしまった可能性のあるカレントディレクトリを元に戻す
00850         if( bGetCurDirSuc ){
00851             ::SetCurrentDirectory( szCurDir );
00852         }
00853         return TRUE;
00854     }else{
00855         //  May 29, 2004 genta 関数にまとめた
00856         DlgOpenFail();
00857         return FALSE;
00858     }
00859 }
00860
00861
00862
00863
00864
00870 BOOL CDlgOpenFile::DoModalOpenDlg( char* pszPath, int* pnCharCode, BOOL* pbReadOnly )
00871 {
00872     m_bIsSaveDialog = FALSE;    /* 保存のダイアログか */
00873
00874     int     i;
00875
00876     //  2003.05.12 MIK
00877     CFileExt    cFileExt;
00878     cFileExt.AppendExtRaw( "すべてのファイル", "*.*" );
00879     cFileExt.AppendExtRaw( "テキストファイル", "*.txt" );
00880     for( i = 0; i < MAX_TYPES; i++ )
00881     {
00882         cFileExt.AppendExt( m_pShareData->m_Types[i].m_szTypeName, m_pShareData->m_Types[i].m_szTypeExts );
00883     }
00884
00885     /* 構造体の初期化 */
00886     InitOfn( m_ofn );       // 2005.10.29 ryoji
00887     m_ofn.hwndOwner = m_hwndParent;
00888     m_ofn.hInstance = m_hInstance;
00889     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00890 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00891     m_ofn.lpstrFile = pszPath;
00892     m_ofn.nMaxFile = _MAX_PATH;
00893     m_ofn.lpstrInitialDir = m_szInitialDir;
00894 //  m_ofn.Flags =
00895 //      /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00896 //      /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00897     m_ofn.Flags =
00898         /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_CREATEPROMPT | OFN_FILEMUSTEXIST  /*| OFN_HIDEREADONLY*/
00899          | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK /*| OFN_READONLY*/ | OFN_SHOWHELP | OFN_ENABLESIZING /*| OFN_ALLOWMULTISELECT*/
00900         ;
00901     if( NULL != pbReadOnly ){
00902         m_bReadOnly = *pbReadOnly;
00903         if( TRUE == *pbReadOnly ){
00904             m_ofn.Flags |= OFN_READONLY;
00905         }
00906     }
00907 // 2005/02/20 novice 拡張子を省略したら補完する
00908     m_ofn.lpstrDefExt = "";
00909
00910     m_nCharCode = CODE_AUTODETECT;  /* 文字コード自動判別 */
00911     //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
00912     m_nHelpTopicID = ::FuncID_To_HelpContextID(F_FILEOPEN);
00913     m_bUseEol = false;  //  Feb. 9, 2001 genta
00914     m_bUseBom = false;  //  Jul. 26, 2003 ryoji
00915     // 2002/08/22 カレントディレクトリを保存
00916     TCHAR   szCurDir[_MAX_PATH];
00917     bool    bGetCurDirSuc = false;
00918     int nRetVal;
00919     nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
00920     if( 0 < nRetVal && _MAX_PATH > nRetVal ){
00921         bGetCurDirSuc = true;
00922     }
00923
00924
00925     if( GetOpenFileNameRecover( m_ofn ) ){
00926
00927 //      MYTRACE( "m_nCharCode = %d\n", m_nCharCode );   /* 文字コード */
00928
00929         if( NULL != pnCharCode ){
00930             *pnCharCode = m_nCharCode;
00931         }
00932         if( NULL != pbReadOnly ){
00933             *pbReadOnly = m_bReadOnly;
00934         }
00935         if( bGetCurDirSuc ){
00936             ::SetCurrentDirectory( szCurDir );
00937         }
00938         return TRUE;
00939     }else{
00940         //  May 29, 2004 genta 関数にまとめた
00941         DlgOpenFail();
00942         return FALSE;
00943     }
00944 }
00945
00963 BOOL CDlgOpenFile::DoModalSaveDlg( char* pszPath, int* pnCharCode, CEOL* pcEol, BOOL* pbBom )
00964 {
00965     m_bIsSaveDialog = TRUE; /* 保存のダイアログか */
00966
00967     //  2003.05.12 MIK
00968     CFileExt    cFileExt;
00969     cFileExt.AppendExtRaw( "ユーザー指定",     m_szDefaultWildCard );
00970     cFileExt.AppendExtRaw( "テキストファイル", "*.txt" );
00971     cFileExt.AppendExtRaw( "すべてのファイル", "*.*" );
00972
00973     // ファイル名の初期設定 // 2006.11.10 ryoji
00974     if( pszPath[0] == '\0' )
00975         ::lstrcpyn(pszPath, _T("無題"), _MAX_PATH);
00976
00977     /* 構造体の初期化 */
00978     InitOfn( m_ofn );       // 2005.10.29 ryoji
00979     m_ofn.hwndOwner = m_hwndParent;
00980     m_ofn.hInstance = m_hInstance;
00981     m_ofn.lpstrFilter = cFileExt.GetExtFilter();
00982 // 2005/02/20 novice デフォルトのファイル名は何も設定しない
00983     m_ofn.lpstrFile = pszPath;
00984     m_ofn.nMaxFile = _MAX_PATH;
00985     m_ofn.lpstrInitialDir = m_szInitialDir;
00986 //  m_ofn.Flags =
00987 //      /*OFN_CREATEPROMPT |*/ OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY
00988 //      /* | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK */
00989     m_ofn.Flags =
00990         OFN_CREATEPROMPT | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
00991          /*| OFN_ENABLETEMPLATE | OFN_ENABLEHOOK*/ | OFN_SHOWHELP | OFN_ENABLESIZING;
00992     if( NULL != pnCharCode || NULL != pcEol ){
00993         m_ofn.Flags = m_ofn.Flags | OFN_ENABLETEMPLATE | OFN_ENABLEHOOK;
00994         m_ofn.Flags &= ~OFN_OVERWRITEPROMPT;    // 2006.11.10 ryoji 上書き確認もフックの中で自前で処理する
00995     }
00996
00997
00998 // 2005/02/20 novice 拡張子を省略したら補完する
00999 //  m_ofn.lpstrDefExt = "";
01000     m_ofn.lpstrDefExt = (m_ofn.Flags & OFN_ENABLEHOOK)? NULL: _T("");   // 2006.11.10 ryoji フックを使うときは自前で拡張子を補完する
01001
01002     // 2002/08/22 カレントディレクトリを保存
01003     TCHAR   szCurDir[_MAX_PATH];
01004     bool    bGetCurDirSuc = false;
01005     int nRetVal;
01006     nRetVal = ::GetCurrentDirectory( _MAX_PATH, szCurDir );
01007     if( 0 < nRetVal && _MAX_PATH > nRetVal ){
01008         bGetCurDirSuc = true;
01009     }
01010
01011     if( NULL != pnCharCode ){
01012         m_nCharCode = *pnCharCode;
01013     }
01014     //  From Here Feb. 9, 2001 genta
01015     if( NULL != pcEol ){
01016         m_cEol = EOL_NONE;  //  初期値は「改行コードを保存」に固定
01017         m_bUseEol = true;
01018     }
01019     else{
01020         m_bUseEol = false;
01021     }
01022     //  To Here Feb. 9, 2001 genta
01023     //  Jul. 26, 2003 ryoji BOM設定
01024     if( NULL != pbBom ){
01025         m_bBom = *pbBom;
01026         m_bUseBom = true;
01027     }
01028     else{
01029         m_bUseBom = false;
01030     }
01031
01032     m_nHelpTopicID = ::FuncID_To_HelpContextID(F_FILESAVEAS_DIALOG);    //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
01033     if( GetSaveFileNameRecover( m_ofn ) ){
01034         if( m_ofn.Flags & OFN_ENABLEHOOK )
01035             ::lstrcpyn(pszPath, m_szPath, _MAX_PATH);   // 自前で拡張子の補完を行ったときのファイルパス // 2006.11.10 ryoji
01036
01037 //      MYTRACE( "m_nCharCode = %d\n", m_nCharCode );   /* 文字コード */
01038
01039         if( NULL != pnCharCode ){
01040             *pnCharCode = m_nCharCode;
01041         }
01042         //  Feb. 9, 2001 genta
01043         if( m_bUseEol ){
01044             *pcEol = m_cEol;
01045         }
01046         //  Jul. 26, 2003 ryoji BOM設定
01047         if( m_bUseBom ){
01048             *pbBom = m_bBom;
01049         }
01050         if( bGetCurDirSuc ){
01051             ::SetCurrentDirectory( szCurDir );
01052         }
01053         return TRUE;
01054     }else{
01055         //  May 29, 2004 genta 関数にまとめた
01056         DlgOpenFail();
01057         return FALSE;
01058     }
01059 }
01060
01069 void CDlgOpenFile::DlgOpenFail(void)
01070 {
01071     const char* pszError;
01072     DWORD dwError = ::CommDlgExtendedError();
01073     if( dwError == 0 ){
01074         //  ユーザキャンセルによる
01075         return;
01076     }
01077
01078     switch( dwError ){
01079     case CDERR_DIALOGFAILURE  : pszError = "CDERR_DIALOGFAILURE  "; break;
01080     case CDERR_FINDRESFAILURE : pszError = "CDERR_FINDRESFAILURE "; break;
01081     case CDERR_NOHINSTANCE    : pszError = "CDERR_NOHINSTANCE    "; break;
01082     case CDERR_INITIALIZATION : pszError = "CDERR_INITIALIZATION "; break;
01083     case CDERR_NOHOOK         : pszError = "CDERR_NOHOOK         "; break;
01084     case CDERR_LOCKRESFAILURE : pszError = "CDERR_LOCKRESFAILURE "; break;
01085     case CDERR_NOTEMPLATE     : pszError = "CDERR_NOTEMPLATE     "; break;
01086     case CDERR_LOADRESFAILURE : pszError = "CDERR_LOADRESFAILURE "; break;
01087     case CDERR_STRUCTSIZE     : pszError = "CDERR_STRUCTSIZE     "; break;
01088     case CDERR_LOADSTRFAILURE : pszError = "CDERR_LOADSTRFAILURE "; break;
01089     case FNERR_BUFFERTOOSMALL : pszError = "FNERR_BUFFERTOOSMALL "; break;
01090     case CDERR_MEMALLOCFAILURE: pszError = "CDERR_MEMALLOCFAILURE"; break;
01091     case FNERR_INVALIDFILENAME: pszError = "FNERR_INVALIDFILENAME"; break;
01092     case CDERR_MEMLOCKFAILURE : pszError = "CDERR_MEMLOCKFAILURE "; break;
01093     case FNERR_SUBCLASSFAILURE: pszError = "FNERR_SUBCLASSFAILURE"; break;
01094     default: pszError = "UNKNOWN_ERRORCODE"; break;
01095     }
01096
01097     ::MessageBeep( MB_ICONSTOP );
01098 	::MYMESSAGEBOX( m_hwndParent, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
01099         "ダイアログが開けません。\n\nエラー:%s", pszError
01100     );
01101 }
01102
01110 void CDlgOpenFile::InitOfn( OPENFILENAMEZ& ofn )
01111 {
01112     memset(&ofn, 0, sizeof(m_ofn));
01113
01114     ofn.lStructSize = IsOfnV5()? sizeof(OPENFILENAMEZ): OPENFILENAME_SIZE_VERSION_400;
01115     ofn.lCustData = (LPARAM)this;
01116     ofn.lpfnHook = OFNHookProc;
01117     ofn.lpTemplateName = "IDD_FILEOPEN";
01118 }
01119
01131 void CDlgOpenFile::InitLayout( HWND hwndOpenDlg, HWND hwndDlg, HWND hwndBaseCtrl )
01132 {
01133     HWND hwndFilelabel;
01134     HWND hwndFilebox;
01135     HWND hwndCtrl;
01136     RECT rcBase;
01137     RECT rc;
01138     POINT po;
01139     int nLeft;
01140     int nShift;
01141     int nWidth;
01142
01143     // ファイル名ラベルとファイル名ボックスを取得する
01144     if( !::IsWindow( hwndFilelabel = ::GetDlgItem( hwndOpenDlg, stc3 ) ) )      // ファイル名ラベル
01145         return;
01146     if( !::IsWindow( hwndFilebox = ::GetDlgItem( hwndOpenDlg, cmb13 ) ) ){      // ファイル名コンボ（Windows 2000タイプ）
01147         if( !::IsWindow( hwndFilebox = ::GetDlgItem( hwndOpenDlg, edt1 ) ) )    // ファイル名エディット（レガシータイプ）
01148             return;
01149     }
01150
01151     // コントロールの基準位置、移動量を決定する
01152     ::GetWindowRect( hwndFilelabel, &rc );
01153     nLeft = rc.left;                        // 左端に揃えるコントロールの位置
01154     ::GetWindowRect( hwndFilebox, &rc );
01155     ::GetWindowRect( hwndBaseCtrl, &rcBase );
01156     nShift = rc.left - rcBase.left;         // 左端以外のコントロールの右方向への相対移動量
01157
01158     // 追加コントロールをすべて移動する
01159     // ・基準コントロールよりも左にあるものはファイル名ラベルに合わせて左端に移動
01160     // ・その他は移動基準コントロール（ファイル名ボックスと左端を合わせるコントロール）と同じだけ右方向へ相対移動
01161     hwndCtrl = ::GetWindow( hwndDlg, GW_CHILD );
01162     while( hwndCtrl ){
01163         if( ::GetDlgCtrlID(hwndCtrl) != stc32 ){
01164             ::GetWindowRect( hwndCtrl, &rc );
01165             po.x = ( rc.right < rcBase.left )? nLeft: rc.left + nShift;
01166             po.y = rc.top;
01167             ::ScreenToClient( hwndDlg, &po );
01168             ::SetWindowPos( hwndCtrl, 0, po.x, po.y, 0, 0, SWP_NOSIZE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01169         }
01170         hwndCtrl = ::GetWindow( hwndCtrl, GW_HWNDNEXT );
01171     }
01172
01173
01174     // 標準コントロールのプレースフォルダ（stc32）と子ダイアログの幅をオープンダイアログの幅にあわせる
01175     //     WM_INITDIALOG を抜けるとさらにオープンダイアログ側で現在の位置関係からレイアウト調整が行われる
01176     //     ここで以下の処理をやっておかないとコントロールが意図しない場所に動いてしまうことがある
01177     //     （例えば、BOM のチェックボックスが画面外に飛んでしまうなど）
01178
01179     // オープンダイアログのクライアント領域の幅を取得する
01180     ::GetClientRect( hwndOpenDlg, &rc );
01181     nWidth = rc.right - rc.left;
01182
01183     // 標準コントロールプレースフォルダの幅を変更する
01184     hwndCtrl = ::GetDlgItem( hwndDlg, stc32 );
01185     ::GetWindowRect( hwndCtrl, &rc );
01186     ::SetWindowPos( hwndCtrl, 0, 0, 0, nWidth, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01187
01188     // 子ダイアログの幅を変更する
01189     // ※この SetWindowPos() の中で WM_SIZE が発生する
01190     ::GetWindowRect( hwndDlg, &rc );
01191     ::SetWindowPos( hwndDlg, 0, 0, 0, nWidth, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01192 }
01193
01204 void CDlgOpenFile::OnCmbDropdown( HWND hwnd )
01205 {
01206     HDC hDC;
01207     HFONT hFont;
01208     LONG nWidth;
01209     RECT rc;
01210     TCHAR *pszText;
01211     SIZE sizeText;
01212     int nTextLen;
01213     int iItem;
01214     int nItem;
01215
01216     hDC = ::GetDC( hwnd );
01217     if( NULL == hDC )
01218         return;
01219     hFont = (HFONT)::SendMessage( hwnd, WM_GETFONT, 0, NULL );
01220     hFont = (HFONT)::SelectObject( hDC, hFont );
01221     nItem = ::SendMessage( hwnd, CB_GETCOUNT, 0, NULL );
01222     ::GetWindowRect( hwnd, &rc );
01223     nWidth = rc.right - rc.left - 8;
01224     for( iItem = 0; iItem < nItem; iItem++ ){
01225         nTextLen = ::SendMessage( hwnd, CB_GETLBTEXTLEN, (WPARAM)iItem, NULL );
01226         if( 0 < nTextLen ) {
01227             pszText = new TCHAR[nTextLen + sizeof(TCHAR)];
01228             ::SendMessage( hwnd, CB_GETLBTEXT, (WPARAM)iItem, (LPARAM)pszText );
01229             if( ::GetTextExtentPoint32( hDC, pszText, nTextLen, &sizeText ) ){
01230                 if ( nWidth < sizeText.cx )
01231                     nWidth = sizeText.cx;
01232             }
01233             delete []pszText;
01234         }
01235     }
01236     ::SendMessage( hwnd, CB_SETDROPPEDWIDTH, (WPARAM)(nWidth + 8), NULL );
01237     ::SelectObject( hDC, hFont );
01238     ::ReleaseDC( hwnd, hDC );
01239 }
01240
01245 BOOL CDlgOpenFile::GetOpenFileNameRecover( OPENFILENAMEZ& ofn )
01246 {
01247     BOOL ret;
01248     ret = ::GetOpenFileName( &ofn );
01249     if( FALSE == ret  ){
01250         if( FNERR_INVALIDFILENAME == ::CommDlgExtendedError() ){
01251             strcpy( ofn.lpstrFile, "" );
01252             ofn.lpstrInitialDir = "";
01253             ret = ::GetOpenFileName( &ofn );
01254         }
01255     }
01256     return ret;
01257 }
01258
01263 BOOL CDlgOpenFile::GetSaveFileNameRecover( OPENFILENAMEZ& ofn )
01264 {
01265     BOOL ret;
01266     ret = ::GetSaveFileName( &ofn );
01267     if( FALSE == ret  ){
01268         if( FNERR_INVALIDFILENAME == ::CommDlgExtendedError() ){
01269             strcpy( ofn.lpstrFile, "" );
01270             ofn.lpstrInitialDir = "";
01271             ret = ::GetSaveFileName( &ofn );
01272         }
01273     }
01274     return ret;
01275 }
01276
01277 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgOpenFile.h

CDlgOpenFile.h

ファイルオープンダイアログボックス [詳細]

#include <windows.h>
#include "CShareData.h"
#include "CEol.h"
#include "COsVersionInfo.h"

CDlgOpenFile.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | OPENFILENAMEZ
class | CDlgOpenFile

マクロ定義

#define | OPENFILENAME_SIZE_VERSION_400 sizeof(OPENFILENAME)

説明

ファイルオープンダイアログボックス

作者:
Norio Nakatani
日付:
1998/08/10 作成

CDlgOpenFile.h で定義されています。

マクロ定義

#define OPENFILENAME_SIZE_VERSION_400 sizeof(OPENFILENAME)

CDlgOpenFile.h の 43 行で定義されています。

参照元 CDlgOpenFile::InitOfn().

Sakura-Editorに対してSat Oct 27 02:16:06 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgOpenFile.h ソースファイル

CDlgOpenFile.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, genta
00010     Copyright (C) 2002, YAZAKI, Moca
00011     Copyright (C) 2003, ryoji
00012     Copyright (C) 2004, genta, MIK
00013     Copyright (C) 2005, ryoji
00014     Copyright (C) 2006, Moca, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019
00020 class CDlgOpenFile;
00021
00022 #ifndef _CDLGOPENFILE_H_
00023 #define _CDLGOPENFILE_H_
00024
00025 #include <windows.h>
00026 #include "CShareData.h"
00027 #include "CEol.h"
00028 #include "COsVersionInfo.h" // 2005.11.02 ryoji
00029
00030 // 2005.10.29 ryoji
00031 // Windows 2000 version of OPENFILENAME.
00032 // The new version has three extra members.
00033 // See commdlg.h
00034 #if (_WIN32_WINNT >= 0x0500)
00035 struct OPENFILENAMEZ : public OPENFILENAME {
00036 };
00037 #else
00038 struct OPENFILENAMEZ : public OPENFILENAME {
00039   void *        pvReserved;
00040   DWORD         dwReserved;
00041   DWORD         FlagsEx;
00042 };
00043 #define OPENFILENAME_SIZE_VERSION_400 sizeof(OPENFILENAME)
00044 #endif // (_WIN32_WINNT >= 0x0500)
00045
00046
00051 class SAKURA_CORE_API CDlgOpenFile
00052 {
00053 public:
00054     /*
00055     ||  Constructors
00056     */
00057     CDlgOpenFile();
00058     ~CDlgOpenFile();
00059     /*
00060     ||  Attributes & Operations
00061     */
00062     void Create( HINSTANCE, HWND, const char*, const char*, const char** = NULL,const char** = NULL);
00063     //void Create( HINSTANCE, HWND, const char*, const char* );
00064     //  2002/08/21 moca 引数追加
00065     BOOL DoModal_GetOpenFileName( char*, bool bSetCurDir = false ); /* 開くダイアログ モーダルダイアログの表示 */
00066     //  2002/08/21 30,2002 moca 引数追加
00067     BOOL DoModal_GetSaveFileName( char*, bool bSetCurDir = false ); /* 保存ダイアログ モーダルダイアログの表示 */
00068     BOOL DoModalOpenDlg( char* , int*, BOOL* ); /* 開くダイアグ モーダルダイアログの表示 */
00069     //  Feb. 9, 2001 genta  引数追加
00070     //  Jul. 26, 2003 ryoji BOM用引数追加
00071     BOOL DoModalSaveDlg( char* , int*, CEOL*, BOOL* );  /* 保存ダイアログ モーダルダイアログの表示 */
00072
00073 //  INT_PTR DispatchEvent(  HWND, UINT, WPARAM, LPARAM );   /* ダイアログのメッセージ処理 */
00074
00075     HINSTANCE       m_hInstance;    /* アプリケーションインスタンスのハンドル */
00076     HWND            m_hwndParent;   /* オーナーウィンドウのハンドル */
00077     HWND            m_hWnd;         /* このダイアログのハンドル */
00078
00079     DLLSHAREDATA*   m_pShareData;
00080 //  int             m_nSettingType;
00081
00082     char            m_szDefaultWildCard[_MAX_PATH + 1]; /* 「開く」での最初のワイルドカード（保存時の拡張子補完でも使用される） */
00083     char            m_szInitialDir[_MAX_PATH + 1];      /* 「開く」での初期ディレクトリ */
00084     OPENFILENAMEZ   m_ofn;                          /* 2005.10.29 ryoji OPENFILENAMEZ「ファイルを開く」ダイアログ用構造体 */
00085     int             m_nCharCode;                    /* 文字コード */
00086 //  char            m_szHelpFile[_MAX_PATH + 1];
00087 //  int             m_nHelpTopicID;
00088     CEOL            m_cEol; //  Feb. 9, 2001 genta
00089     bool            m_bUseEol;  //  Feb. 9, 2001 genta
00090
00091     //  Jul. 26, 2003 ryoji BOM
00092     BOOL            m_bBom;
00093     bool            m_bUseBom;
00094
00095     TCHAR           m_szPath[_MAX_PATH];    // 拡張子の補完を自前で行ったときのファイルパス // 2006.11.10 ryoji
00096
00097 protected:
00098     /*
00099     ||  実装ヘルパ関数
00100     */
00101
00102     //  May 29, 2004 genta エラー処理をまとめる (advised by MIK)
00103     void    DlgOpenFail(void);
00104
00105     // 2005.11.02 ryoji OS バージョン対応の OPENFILENAME 初期化用関数
00106     static COsVersionInfo m_cOsVer;
00107     BOOL IsOfnV5( void ) { return ( m_cOsVer.GetVersion() && (m_cOsVer.IsWin2000_or_later() || m_cOsVer.IsWinMe()) ); }
00108     void InitOfn( OPENFILENAMEZ& );
00109
00110     // 2005.11.02 ryoji 初期レイアウト設定処理
00111     static void InitLayout( HWND hwndOpenDlg, HWND hwndDlg, HWND hwndBaseCtrl );
00112
00113     // 2005.10.29 ryoji コンボボックスのドロップダウン時処理
00114     static void OnCmbDropdown( HWND hwnd );
00115
00116     // 2006.09.03 Moca ファイルダイアログのエラー回避
00118     BOOL GetOpenFileNameRecover( OPENFILENAMEZ& ofn );
00120     BOOL GetSaveFileNameRecover( OPENFILENAMEZ& ofn );
00121
00122     friend UINT_PTR CALLBACK OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam );
00123 };
00124
00125
00126
00128 #endif /* _CDLGOPENFILE_H_ */
00129
00130
00131 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintPage.cpp

CDlgPrintPage.cpp

印刷ダイアログボックス [詳細]

#include "stdafx.h"
#include "CDlgPrintPage.h"
#include "sakura_rc.h"
#include "Debug.h"
#include "sakura.hh"

CDlgPrintPage.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

印刷ダイアログボックス

作者:
Norio Nakatani

CDlgPrintPage.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDOK,                           HIDOK_PP,
    IDCANCEL,                       HIDCANCEL_PP,
    IDC_EDIT_FROM,                  HIDC_PP_EDIT_FROM,
    IDC_EDIT_TO,                    HIDC_PP_EDIT_TO,
    IDC_RADIO_ALL,                  HIDC_PP_RADIO_ALL,
    IDC_RADIO_FROMTO,               HIDC_PP_RADIO_FROMTO,

    0, 0
}

CDlgPrintPage.cpp の 21 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:07 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintPage.cpp ソースファイル

CDlgPrintPage.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009     Copyright (C) 2002, aroka, MIK
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 #include "stdafx.h"
00015 #include "CDlgPrintPage.h"
00016 #include "sakura_rc.h"
00017 #include "Debug.h"// 2002/2/10 aroka
00018
00019 // 印刷 CDlgPrintPage.cpp   //@@@ 2002.01.07 add start MIK
00020 #include "sakura.hh"
00021 const DWORD p_helpids[] = { //12400
00022     IDOK,                           HIDOK_PP,               //OK
00023     IDCANCEL,                       HIDCANCEL_PP,           //キャンセル
00024     IDC_EDIT_FROM,                  HIDC_PP_EDIT_FROM,      //ページから
00025     IDC_EDIT_TO,                    HIDC_PP_EDIT_TO,        //ページまで
00026     IDC_RADIO_ALL,                  HIDC_PP_RADIO_ALL,      //すべて
00027     IDC_RADIO_FROMTO,               HIDC_PP_RADIO_FROMTO,   //指定
00028 //  IDC_STATIC,                     -1,
00029     0, 0
00030 };  //@@@ 2002.01.07 add end MIK
00031
00032 CDlgPrintPage::CDlgPrintPage()
00033 {
00034     return;
00035 }
00036
00037
00038
00039
00040 /* モーダルダイアログの表示 */
00041 int CDlgPrintPage::DoModal( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
00042 {
00043     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_PRINTPAGE, lParam );
00044 }
00045
00046
00047
00048
00049 /* ダイアログデータの設定 */
00050 void CDlgPrintPage::SetData( void )
00051 {
00052     char szText[100];
00053 //  From Here Sept. 12, 2000 JEPRO スタイルを少し変更(指定を選んだ時だけ印刷範囲を入力できるようにした)
00054 //  一度設定したページ設定値を保存できるようにしたいがまだできてない
00055 //  ::CheckDlgButton( m_hWnd, IDC_RADIO_ALL, m_bAllPage?BST_CHECKED:BST_UNCHECKED );
00056 //  wsprintf( szText, "%d ～ %d 頁", m_nPageMin, m_nPageMax );
00057 //  ::SetDlgItemText( m_hWnd, IDC_STATIC_ALL, szText );
00058 //
00059 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_FROM, m_nPageFrom, FALSE );
00060 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_TO, m_nPageTo, FALSE );
00061 //
00062     if( TRUE == m_bAllPage ){
00063         ::CheckDlgButton( m_hWnd, IDC_RADIO_ALL, BST_CHECKED );
00064     }else{
00065         ::CheckDlgButton( m_hWnd, IDC_RADIO_FROMTO, BST_CHECKED );
00066     }
00067     wsprintf( szText, "%d ～ %d ページ", m_nPageMin, m_nPageMax );
00068     ::SetDlgItemText( m_hWnd, IDC_STATIC_ALL, szText );
00069
00070     ::SetDlgItemInt( m_hWnd, IDC_EDIT_FROM, m_nPageFrom, FALSE );
00071     ::SetDlgItemInt( m_hWnd, IDC_EDIT_TO, m_nPageTo, FALSE );
00072
00073     //  印刷範囲を指定するかどうか
00074     if( FALSE == m_bAllPage ){
00075         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), TRUE );
00076         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), TRUE );
00077         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), TRUE );
00078         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), TRUE );
00079     }else{
00080         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), FALSE );
00081         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), FALSE );
00082         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), FALSE );
00083         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), FALSE );
00084     }
00085 //  To Here Sept. 12, 2000
00086
00087     return;
00088 }
00089
00090
00091
00092
00093 /* ダイアログデータの取得 */
00094 int CDlgPrintPage::GetData( void )
00095 {
00096     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_ALL ) ){
00097         m_bAllPage = TRUE;
00098     }else{
00099         m_bAllPage = FALSE;
00100     }
00101     m_nPageFrom = ::GetDlgItemInt( m_hWnd, IDC_EDIT_FROM, NULL, FALSE );
00102     m_nPageTo   = ::GetDlgItemInt( m_hWnd, IDC_EDIT_TO  , NULL, FALSE );
00103     /* 頁範囲チェック */
00104     if( FALSE == m_bAllPage ){
00105         if( m_nPageMin <= m_nPageFrom && m_nPageFrom <= m_nPageMax &&
00106             m_nPageMin <= m_nPageTo   && m_nPageTo <= m_nPageMax &&
00107             m_nPageFrom <= m_nPageTo
00108         ){
00109         }else{
00110 			::MYMESSAGEBOX(  m_hWnd, MB_OK | MB_ICONSTOP | MB_TOPMOST, "入力エラー", "ページ範囲指定が正しくありません。" );
00111             return FALSE;
00112         }
00113     }
00114     return TRUE;
00115 }
00116
00117
00118
00119
00120 BOOL CDlgPrintPage::OnBnClicked( int wID )
00121 {
00122     switch( wID ){
00123 //  From Here Sept. 12, 2000 JEPRO スタイルを少し変更(指定を選んだ時だけ印刷範囲を入力できるようにした)
00124 //  一度設定したページ設定値を保存できるようにしたいがまだできてない
00125     case IDC_RADIO_ALL:
00126     case IDC_RADIO_FROMTO:
00127     //  印刷範囲を指定するかどうか
00128         if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_FROMTO ) ){
00129             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), TRUE );
00130             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), TRUE );
00131             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), TRUE );
00132             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), TRUE );
00133         }else{
00134             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_FROM ), FALSE );
00135             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_FROM ), FALSE );
00136             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_LABEL_TO ), FALSE );
00137             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_TO ), FALSE );
00138         }
00139         return TRUE;
00140 //  To Here Sept. 12, 2000
00141
00142     case IDOK:          /* 下検索 */
00143         /* ダイアログデータの取得 */
00144         if( GetData() ){
00145             CloseDialog( 1 );
00146         }
00147         return TRUE;
00148     case IDCANCEL:
00149         CloseDialog( 0 );
00150         return TRUE;
00151     }
00152     return FALSE;
00153 }
00154
00155 //@@@ 2002.01.18 add start
00156 LPVOID CDlgPrintPage::GetHelpIdTable(void)
00157 {
00158     return (LPVOID)p_helpids;
00159 }
00160 //@@@ 2002.01.18 add end
00161
00162 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintPage.h

CDlgPrintPage.h

印刷ダイアログボックス [詳細]

#include "CDialog.h"

CDlgPrintPage.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgPrintPage

説明

印刷ダイアログボックス

作者:
Norio Nakatani

CDlgPrintPage.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintPage.h ソースファイル

CDlgPrintPage.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008
00009     This source code is designed for sakura editor.
00010     Please contact the copyright holder to use this code for other purpose.
00011 */
00012 #include "CDialog.h"
00013
00014 #ifndef _CDLGPRINTPAGE_H_
00015 #define _CDLGPRINTPAGE_H_
00016
00017 /*-----------------------------------------------------------------------
00018 クラスの宣言
00019 -----------------------------------------------------------------------*/
00020 class CDlgPrintPage : public CDialog
00021 {
00022 public:
00023     /*
00024     ||  Constructors
00025     */
00026     CDlgPrintPage();
00027     /*
00028     ||  Attributes & Operations
00029     */
00030     int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00031
00032
00033     int m_nPageMin;
00034     int m_nPageMax;
00035
00036     BOOL m_bAllPage;
00037     int m_nPageFrom;
00038     int m_nPageTo;
00039
00040
00041
00042 protected:
00043     /* オーバーライド? */
00044     int GetData( void );    /* ダイアログデータの取得 */
00045     void SetData( void );   /* ダイアログデータの設定 */
00046     BOOL OnBnClicked( int );
00047     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00048
00049
00050 };
00051
00052
00053
00055 #endif /* _CDLGPRINTPAGE_H_ */
00056
00057 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintSetting.cpp

CDlgPrintSetting.cpp

印刷設定ダイアログ [詳細]

#include "stdafx.h"
#include <stdio.h>
#include "CDlgPrintSetting.h"
#include "CPrint.h"
#include "CDlgInput1.h"
#include "funccode.h"
#include "etc_uty.h"
#include "sakura_rc.h"
#include "debug.h"
#include "sakura.hh"

CDlgPrintSetting.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | IDT_PRINTSETTING 1467

関数

int CALLBACK | SetData_EnumFontFamProc (ENUMLOGFONT *pelf, NEWTEXTMETRIC *pntm, int nFontType, LPARAM lParam)

変数

const DWORD | p_helpids []

説明

印刷設定ダイアログ

作者:
Norio Nakatani
日付:
2006.08.14 Moca 用紙方向コンボボックスを廃止し、ボタンを有効化． 用紙名一覧の重複削除．

CDlgPrintSetting.cpp で定義されています。

マクロ定義

#define IDT_PRINTSETTING 1467

CDlgPrintSetting.cpp の 72 行で定義されています。

参照元 CDlgPrintSetting::OnDestroy()・CDlgPrintSetting::OnInitDialog()・CDlgPrintSetting::OnTimer().

関数

int CALLBACK SetData_EnumFontFamProc | ( | ENUMLOGFONT * | pelf,
 |  | NEWTEXTMETRIC * | pntm,
 |  | int | nFontType,
 |  | LPARAM | lParam
 | ) |

CDlgPrintSetting.cpp の 74 行で定義されています。

参照先 IDC_COMBO_FONT_HAN・IDC_COMBO_FONT_ZEN・CDialog::m_hWnd.

参照元 CDlgPrintSetting::SetData().

変数

const DWORD p_helpids[]

CDlgPrintSetting.cpp の 31 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintSetting.cpp ソースファイル

CDlgPrintSetting.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2001, hor, Stonee
00012     Copyright (C) 2002, MIK, aroka, YAZAKI
00013     Copyright (C) 2003, かろと
00014     Copyright (C) 2006, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019 #include "stdafx.h"
00020 #include <stdio.h>
00021 #include "CDlgPrintSetting.h"
00022 #include "CPrint.h"
00023 #include "CDlgInput1.h"
00024 #include "funccode.h"       // Stonee, 2001/03/12
00025 #include "etc_uty.h"        // Stonee, 2001/03/12
00026 #include "sakura_rc.h"  // 2002/2/10 aroka
00027 #include "debug.h"      // 2002/2/10 aroka
00028
00029 // 印刷設定 CDlgPrintSetting.cpp    //@@@ 2002.01.07 add start MIK
00030 #include "sakura.hh"
00031 const DWORD p_helpids[] = { //12500
00032     IDC_BUTTON_EDITSETTINGNAME,     HIDC_PS_BUTTON_EDITSETTINGNAME, //設定名変更
00033     IDOK,                           HIDOK_PS,                   //OK
00034     IDCANCEL,                       HIDCANCEL_PS,               //キャンセル
00035     IDC_BUTTON_HELP,                HIDC_PS_BUTTON_HELP,        //ヘルプ
00036     IDC_CHECK_WORDWRAP,             HIDC_PS_CHECK_WORDWRAP,     //ワードラップ
00037     IDC_CHECK_LINENUMBER,           HIDC_PS_CHECK_LINENUMBER,   //行番号
00038     IDC_COMBO_FONT_HAN,             HIDC_PS_COMBO_FONT_HAN,     //半角フォント
00039     IDC_COMBO_FONT_ZEN,             HIDC_PS_COMBO_FONT_ZEN,     //全角フォント
00040     IDC_COMBO_SETTINGNAME,          HIDC_PS_COMBO_SETTINGNAME,  //ページ設定
00041     IDC_COMBO_PAPER,                HIDC_PS_COMBO_PAPER,        //用紙サイズ
00042     IDC_EDIT_FONTWIDTH,             HIDC_PS_EDIT_FONTWIDTH,     //フォント幅
00043     IDC_EDIT_LINESPACE,             HIDC_PS_EDIT_LINESPACE,     //行送り
00044     IDC_EDIT_DANSUU,                HIDC_PS_EDIT_DANSUU,        //段数
00045     IDC_EDIT_DANSPACE,              HIDC_PS_EDIT_DANSPACE,      //段の隙間
00046     IDC_EDIT_MARGINTY,              HIDC_PS_EDIT_MARGINTY,      //余白上
00047     IDC_EDIT_MARGINBY,              HIDC_PS_EDIT_MARGINBY,      //余白下
00048     IDC_EDIT_MARGINLX,              HIDC_PS_EDIT_MARGINLX,      //余白左
00049     IDC_EDIT_MARGINRX,              HIDC_PS_EDIT_MARGINRX,      //余白右
00050     IDC_SPIN_FONTWIDTH,             HIDC_PS_EDIT_FONTWIDTH,     //12570,
00051     IDC_SPIN_LINESPACE,             HIDC_PS_EDIT_LINESPACE,     //12571,
00052     IDC_SPIN_DANSUU,                HIDC_PS_EDIT_DANSUU,        //12572,
00053     IDC_SPIN_DANSPACE,              HIDC_PS_EDIT_DANSPACE,      //12573,
00054     IDC_SPIN_MARGINTY,              HIDC_PS_EDIT_MARGINTY,      //12574,
00055     IDC_SPIN_MARGINBY,              HIDC_PS_EDIT_MARGINBY,      //12575,
00056     IDC_SPIN_MARGINLX,              HIDC_PS_EDIT_MARGINLX,      //12576,
00057     IDC_SPIN_MARGINRX,              HIDC_PS_EDIT_MARGINRX,      //12577,
00058     IDC_CHECK_PS_KINSOKUHEAD,       HIDC_PS_CHECK_KINSOKUHEAD,  //行頭禁則  //@@@ 2002.04.09 MIK
00059     IDC_CHECK_PS_KINSOKUTAIL,       HIDC_PS_CHECK_KINSOKUTAIL,  //行末禁則  //@@@ 2002.04.09 MIK
00060     IDC_CHECK_PS_KINSOKURET,        HIDC_PS_CHECK_KINSOKURET,   //改行文字をぶら下げる  //@@@ 2002.04.14 MIK
00061     IDC_CHECK_PS_KINSOKUKUTO,       HIDC_PS_CHECK_KINSOKUKUTO,  //句読点をぶら下げる    //@@@ 2002.04.17 MIK
00062     IDC_EDIT_HEAD1,                 HIDC_PS_EDIT_HEAD1,         //ヘッダー(左寄せ)      // 2006.10.11 ryoji
00063     IDC_EDIT_HEAD2,                 HIDC_PS_EDIT_HEAD2,         //ヘッダー(中央寄せ)    // 2006.10.11 ryoji
00064     IDC_EDIT_HEAD3,                 HIDC_PS_EDIT_HEAD3,         //ヘッダー(右寄せ)      // 2006.10.11 ryoji
00065     IDC_EDIT_FOOT1,                 HIDC_PS_EDIT_FOOT1,         //フッター(左寄せ)      // 2006.10.11 ryoji
00066     IDC_EDIT_FOOT2,                 HIDC_PS_EDIT_FOOT2,         //フッター(中央寄せ)    // 2006.10.11 ryoji
00067     IDC_EDIT_FOOT3,                 HIDC_PS_EDIT_FOOT3,         //フッター(右寄せ)      // 2006.10.11 ryoji
00068 //  IDC_STATIC,                     -1,
00069     0, 0
00070 };  //@@@ 2002.01.07 add end MIK
00071
00072 #define IDT_PRINTSETTING 1467
00073
00074 int CALLBACK SetData_EnumFontFamProc(
00075     ENUMLOGFONT*    pelf,   // pointer to logical-font data
00076     NEWTEXTMETRIC*  pntm,   // pointer to physical-font data
00077     int             nFontType,  // type of font
00078     LPARAM          lParam  // address of application-defined data
00079 )
00080 {
00081     CDlgPrintSetting*   pCDlgPrintSetting;
00082     HWND                hwndComboFontHan;
00083     HWND                hwndComboFontZen;
00084     pCDlgPrintSetting = (CDlgPrintSetting*)lParam;
00085     hwndComboFontHan = ::GetDlgItem( pCDlgPrintSetting->m_hWnd, IDC_COMBO_FONT_HAN );
00086     hwndComboFontZen = ::GetDlgItem( pCDlgPrintSetting->m_hWnd, IDC_COMBO_FONT_ZEN );
00087
00088     /* LOGFONT */
00089     if( FIXED_PITCH & pelf->elfLogFont.lfPitchAndFamily ){
00090 //      MYTRACE( pelf->elfLogFont.lfFaceName, "%s\n\n", pelf->elfLogFont.lfFaceName );
00091         ::SendMessage( hwndComboFontHan, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)pelf->elfLogFont.lfFaceName  );
00092         ::SendMessage( hwndComboFontZen, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)pelf->elfLogFont.lfFaceName  );
00093     }
00094     return 1;
00095 }
00096
00097 /* モーダルダイアログの表示 */
00098 int CDlgPrintSetting::DoModal(
00099     HINSTANCE       hInstance,
00100     HWND            hwndParent,
00101     int*            pnCurrentPrintSetting,
00102     PRINTSETTING*   pPrintSettingArr
00103 )
00104 {
00105     int     nRet;
00106     int     i;
00107     m_nCurrentPrintSetting = *pnCurrentPrintSetting;
00108     for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00109         m_PrintSettingArr[i] = pPrintSettingArr[i];
00110     }
00111
00112     nRet = (int)CDialog::DoModal( hInstance, hwndParent, IDD_PRINTSETTING, NULL );
00113 //  nRet = ::DialogBoxParam(
00114 //      m_hInstance,
00115 //      MAKEINTRESOURCE( IDD_PRINTSETTING ),
00116 //      m_hwndParent,
00117 //      (DLGPROC)PrintSettingDialogProc,
00118 //      (LPARAM)this
00119 //  );
00120     if( TRUE == nRet ){
00121         *pnCurrentPrintSetting = m_nCurrentPrintSetting;
00122         for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00123             pPrintSettingArr[i] = m_PrintSettingArr[i];
00124         }
00125     }
00126     return nRet;
00127 }
00128
00129 BOOL CDlgPrintSetting::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00130 {
00131     m_hWnd = hwndDlg;
00132 //  hwndComboSettingName = ::GetDlgItem( m_hWnd, IDC_COMBO_SETTINGNAME );
00133
00134 //  /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00135 //  ::SendMessage( ::GetDlgItem( m_hWnd, IDC_EDIT_LINENUM ), EM_LIMITTEXT, (WPARAM)9, 0 );
00136
00137     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00138     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_SETTINGNAME ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00139     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_HAN ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00140     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_ZEN ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00141     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_PAPER ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00142
00143     ::SetTimer( m_hWnd, IDT_PRINTSETTING, 500, NULL );
00144
00145     /* 基底クラスメンバ */
00146     return CDialog::OnInitDialog( m_hWnd, wParam, lParam );
00147 }
00148
00149 BOOL CDlgPrintSetting::OnDestroy( void )
00150 {
00151     ::KillTimer( m_hWnd, IDT_PRINTSETTING );
00152     /* 基底クラスメンバ */
00153     return CDialog::OnDestroy();
00154 }
00155
00156
00157 BOOL CDlgPrintSetting::OnNotify( WPARAM wParam, LPARAM lParam )
00158 {
00159 //  WORD            wNotifyCode;
00160 //  WORD            wID;
00161 //  HWND            hwndCtl;
00162 //  int             nRet;
00163 //  int             nIndex;
00164 //  char*           pszWork;
00165 //  int             nWorkLine;
00166 //  HWND            hwndComboSettingName;
00167     CDlgInput1      cDlgInput1;
00168 //  HWND            hwndCtl;
00169     NMHDR*          pNMHDR;
00170     NM_UPDOWN*      pMNUD;
00171     int             idCtrl;
00172     BOOL            bSpinDown;
00173 //  char            szWork[256];
00174     idCtrl = (int)wParam;
00175     pNMHDR = (NMHDR*)lParam;
00176     pMNUD  = (NM_UPDOWN*)lParam;
00177     if( pMNUD->iDelta < 0 ){
00178         bSpinDown = FALSE;
00179     }else{
00180         bSpinDown = TRUE;
00181     }
00182     switch( idCtrl ){
00183     case IDC_SPIN_FONTWIDTH:
00184     case IDC_SPIN_LINESPACE:
00185     case IDC_SPIN_DANSUU:
00186     case IDC_SPIN_DANSPACE:
00187     case IDC_SPIN_MARGINTY:
00188     case IDC_SPIN_MARGINBY:
00189     case IDC_SPIN_MARGINLX:
00190     case IDC_SPIN_MARGINRX:
00191         /* スピンコントロールの処理 */
00192         OnSpin( idCtrl, bSpinDown );
00193         break;
00194     }
00195     return TRUE;
00196 }
00197
00198 BOOL CDlgPrintSetting::OnCbnSelChange( HWND hwndCtl, int wID )
00199 {
00200     if( ::GetDlgItem( m_hWnd, IDC_COMBO_SETTINGNAME ) == hwndCtl ){
00201         /* 設定のタイプが変わった */
00202         OnChangeSettingType( TRUE );
00203         return TRUE;
00204     }
00205     return FALSE;
00206
00207 }
00208
00209 BOOL CDlgPrintSetting::OnBnClicked( int wID )
00210 {
00211     char            szWork[256];
00212     CDlgInput1      cDlgInput1;
00213     HWND            hwndComboSettingName;
00214     switch( wID ){
00215     case IDC_BUTTON_HELP:
00216         /* 「印刷ページ設定」のヘルプ */
00217         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00218         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_PRINT_PAGESETUP) );  // 2006.10.10 ryoji MyWinHelpに変更に変更
00219         return TRUE;
00220     case IDC_BUTTON_EDITSETTINGNAME:
00221         strcpy( szWork, m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName );
00222         if( FALSE == cDlgInput1.DoModal( m_hInstance, m_hWnd, "設定名の変更", "設定の名称を入力してください。", sizeof( m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName ) - 1, szWork ) ){
00223             return TRUE;
00224         }
00225         if( 0 < lstrlen( szWork ) ){
00226             strcpy( m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintSettingName, szWork );
00227             /* 印刷設定名一覧 */
00228             hwndComboSettingName = ::GetDlgItem( m_hWnd, IDC_COMBO_SETTINGNAME );
00229             ::SendMessage( hwndComboSettingName, CB_RESETCONTENT, 0, 0 );
00230             int     nSelectIdx;
00231             int     i;
00232             int     nItemIdx;
00233             nSelectIdx = 0;
00234             for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00235                 nItemIdx = ::SendMessage(
00236                     hwndComboSettingName, CB_ADDSTRING, 0,
00237                     (LPARAM)(LPCTSTR)m_PrintSettingArr[i].m_szPrintSettingName
00238                 );
00239                 ::SendMessage( hwndComboSettingName, CB_SETITEMDATA, nItemIdx, (LPARAM)i );
00240                 if( i == m_nCurrentPrintSetting ){
00241                     nSelectIdx = nItemIdx;
00242                 }
00243             }
00244             ::SendMessage( hwndComboSettingName, CB_SETCURSEL, nSelectIdx, 0 );
00245         }
00246         return TRUE;
00247     case IDOK:          /* 下検索 */
00248         /* ダイアログデータの取得 */
00249         ::EndDialog( m_hWnd, GetData() );
00250         return TRUE;
00251     case IDCANCEL:
00252         ::EndDialog( m_hWnd, FALSE );
00253         return TRUE;
00254     }
00255     /* 基底クラスメンバ */
00256     return CDialog::OnBnClicked( wID );
00257 }
00258
00259
00260 /* ダイアログデータの設定 */
00261 void CDlgPrintSetting::SetData( void )
00262 {
00263     HDC     hdc;
00264     HWND    hwndComboFont;
00265     HWND    hwndComboPaper;
00266     HWND    hwndComboSettingName;
00267     int i;
00268     int nItemIdx;
00269     int nSelectIdx;
00270
00271
00272     /* フォント一覧 */
00273     hdc = ::GetDC( m_hwndParent );
00274     hwndComboFont = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_HAN );
00275     ::SendMessage( hwndComboFont, CB_RESETCONTENT, 0, 0 );
00276     hwndComboFont = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_ZEN );
00277     ::SendMessage( hwndComboFont, CB_RESETCONTENT, 0, 0 );
00278     ::EnumFontFamilies(
00279         hdc,
00280         NULL,
00281         (FONTENUMPROC)SetData_EnumFontFamProc,
00282         (LPARAM)this
00283     );
00284     ::ReleaseDC( m_hwndParent, hdc );
00285
00286     /* 用紙サイズ一覧 */
00287     hwndComboPaper = ::GetDlgItem( m_hWnd, IDC_COMBO_PAPER );
00288     ::SendMessage( hwndComboPaper, CB_RESETCONTENT, 0, 0 );
00289     // 2006.08.14 Moca 用紙名一覧の重複削除
00290     for( i = 0; i < CPrint::m_nPaperInfoArrNum; ++i ){
00291         nItemIdx = ::SendMessage( hwndComboPaper, CB_ADDSTRING, 0, (LPARAM)CPrint::m_paperInfoArr[i].m_pszName );
00292         ::SendMessage( hwndComboPaper, CB_SETITEMDATA, nItemIdx, CPrint::m_paperInfoArr[i].m_nId );
00293     }
00294
00295
00296     /* 印刷設定名一覧 */
00297     hwndComboSettingName = ::GetDlgItem( m_hWnd, IDC_COMBO_SETTINGNAME );
00298     ::SendMessage( hwndComboSettingName, CB_RESETCONTENT, 0, 0 );
00299     nSelectIdx = 0;
00300     for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00301         nItemIdx = ::SendMessage( hwndComboSettingName, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)m_PrintSettingArr[i].m_szPrintSettingName );
00302         ::SendMessage( hwndComboSettingName, CB_SETITEMDATA, nItemIdx, (LPARAM)i );
00303         if( i == m_nCurrentPrintSetting ){
00304             nSelectIdx = nItemIdx;
00305         }
00306     }
00307     ::SendMessage( hwndComboSettingName, CB_SETCURSEL, nSelectIdx, 0 );
00308 //  ::SendMessage( m_hWnd, WM_COMMAND, MAKELONG( IDC_COMBO_SETTINGNAME, CBN_SELCHANGE ), (LPARAM)hwndComboSettingName );
00309
00310     /* 設定のタイプが変わった */
00311     OnChangeSettingType( FALSE );
00312
00313     return;
00314 }
00315
00316
00317
00318
00319 /* ダイアログデータの取得 */
00320 /* TRUE==正常 FALSE==入力エラー */
00321 int CDlgPrintSetting::GetData( void )
00322 {
00323     HWND    hwndCtrl;
00324     int     nIdx1;
00325     int     nWork;
00326
00327     /* フォント一覧 */
00328     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_HAN );
00329     nIdx1 = ::SendMessage( hwndCtrl, CB_GETCURSEL, 0, 0 );
00330     ::SendMessage( hwndCtrl, CB_GETLBTEXT, nIdx1,
00331         (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceHan
00332     );
00333     /* フォント一覧 */
00334     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_ZEN );
00335     nIdx1 = ::SendMessage( hwndCtrl, CB_GETCURSEL, 0, 0 );
00336     ::SendMessage( hwndCtrl, CB_GETLBTEXT, nIdx1,
00337         (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceZen
00338     );
00339
00340     /* 用紙サイズ一覧 */
00341     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_PAPER );
00342     nIdx1 = ::SendMessage( hwndCtrl, CB_GETCURSEL, 0, 0 );
00343     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperSize =
00344         ::SendMessage( hwndCtrl, CB_GETITEMDATA, nIdx1, 0 );
00345
00346     // 用紙の向き
00347     // 2006.08.14 Moca 用紙方向コンボボックスを廃止し、ボタンを有効化
00348     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_PORTRAIT ) ){
00349         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperOrientation = DMORIENT_PORTRAIT;
00350     }else{
00351         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperOrientation = DMORIENT_LANDSCAPE;
00352     }
00353
00354     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth = ::GetDlgItemInt( m_hWnd, IDC_EDIT_FONTWIDTH, NULL, FALSE );
00355     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontHeight = m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth * 2;
00356     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing = ::GetDlgItemInt( m_hWnd, IDC_EDIT_LINESPACE, NULL, FALSE );
00357     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu = ::GetDlgItemInt( m_hWnd, IDC_EDIT_DANSUU, NULL, FALSE );
00358     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace = ::GetDlgItemInt( m_hWnd, IDC_EDIT_DANSPACE, NULL, FALSE ) * 10;
00359     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY = ::GetDlgItemInt( m_hWnd, IDC_EDIT_MARGINTY, NULL, FALSE ) * 10;
00360     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY = ::GetDlgItemInt( m_hWnd, IDC_EDIT_MARGINBY, NULL, FALSE ) * 10;
00361     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX = ::GetDlgItemInt( m_hWnd, IDC_EDIT_MARGINLX, NULL, FALSE ) * 10;
00362     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX = ::GetDlgItemInt( m_hWnd, IDC_EDIT_MARGINRX, NULL, FALSE ) * 10;
00363
00364     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_WORDWRAP ) ){
00365         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintWordWrap = TRUE;
00366     }else{
00367         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintWordWrap = FALSE;
00368     }
00369     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_LINENUMBER ) ){
00370         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintLineNumber = TRUE;
00371     }else{
00372         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintLineNumber = FALSE;
00373     }
00374
00375
00376     /* 入力値(数値)のエラーチェックをして正しい値を返す */
00377     nWork = DataCheckAndCrrect( IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu );
00378     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu ){
00379         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu = nWork;
00380         ::SetDlgItemInt( m_hWnd, IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu, FALSE );
00381     }
00382
00383     nWork = DataCheckAndCrrect( IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth );
00384     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth ){
00385         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth = nWork;
00386         ::SetDlgItemInt( m_hWnd, IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth, FALSE );
00387     }
00388     nWork = DataCheckAndCrrect( IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing );
00389     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing ){
00390         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing = nWork;
00391         ::SetDlgItemInt( m_hWnd, IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing, FALSE );
00392     }
00393     nWork = DataCheckAndCrrect( IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10 );
00394     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10 ){
00395         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace = nWork * 10;
00396         ::SetDlgItemInt( m_hWnd, IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10, FALSE );
00397     }
00398     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10 );
00399     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10 ){
00400         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY = nWork * 10;
00401         ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10, FALSE );
00402     }
00403     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10 );
00404     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10 ){
00405         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY = nWork * 10;
00406         ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10, FALSE );
00407     }
00408     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10 );
00409     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10 ){
00410         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX = nWork * 10;
00411         ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10, FALSE );
00412     }
00413     nWork = DataCheckAndCrrect( IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10 );
00414     if( nWork != m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10 ){
00415         m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX = nWork * 10;
00416         ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10, FALSE );
00417     }
00418
00419
00420 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu = DataCheckAndCrrect( IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu );
00421 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth = DataCheckAndCrrect( IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth );
00422 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing = DataCheckAndCrrect( IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing );
00423 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace = DataCheckAndCrrect( IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace );
00424 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY = DataCheckAndCrrect( IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY );
00425 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY = DataCheckAndCrrect( IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY );
00426 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX = DataCheckAndCrrect( IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX );
00427 //  m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX = DataCheckAndCrrect( IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX );
00428 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu, FALSE );
00429 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth, FALSE );
00430 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing, FALSE );
00431 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10, FALSE );
00432 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10, FALSE );
00433 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10, FALSE );
00434 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10, FALSE );
00435 //  ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10, FALSE );
00436
00437     m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontHeight = m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth * 2;
00438
00439     //@@@ 2002.2.4 YAZAKI
00440     /* ヘッダー */
00441     ::GetDlgItemText( m_hWnd, IDC_EDIT_HEAD1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[0], HEADER_MAX );    //  100文字で制限しないと。。。
00442     ::GetDlgItemText( m_hWnd, IDC_EDIT_HEAD2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[1], HEADER_MAX );    //  100文字で制限しないと。。。
00443     ::GetDlgItemText( m_hWnd, IDC_EDIT_HEAD3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[2], HEADER_MAX );    //  100文字で制限しないと。。。
00444
00445     /* フッター */
00446     ::GetDlgItemText( m_hWnd, IDC_EDIT_FOOT1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[0], HEADER_MAX );    //  100文字で制限しないと。。。
00447     ::GetDlgItemText( m_hWnd, IDC_EDIT_FOOT2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[1], HEADER_MAX );    //  100文字で制限しないと。。。
00448     ::GetDlgItemText( m_hWnd, IDC_EDIT_FOOT3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[2], HEADER_MAX );    //  100文字で制限しないと。。。
00449
00450     //行頭禁則  //@@@ 2002.04.09 MIK
00451     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_PS_KINSOKUHEAD ) ){
00452         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuHead = TRUE;
00453     }else{
00454         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuHead = FALSE;
00455     }
00456     //行末禁則  //@@@ 2002.04.09 MIK
00457     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_PS_KINSOKUTAIL ) ){
00458         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuTail = TRUE;
00459     }else{
00460         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuTail = FALSE;
00461     }
00462     //改行文字をぶら下げる  //@@@ 2002.04.13 MIK
00463     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_PS_KINSOKURET ) ){
00464         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuRet = TRUE;
00465     }else{
00466         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuRet = FALSE;
00467     }
00468     //句読点をぶら下げる    //@@@ 2002.04.17 MIK
00469     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_PS_KINSOKUKUTO ) ){
00470         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuKuto = TRUE;
00471     }else{
00472         m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuKuto = FALSE;
00473     }
00474
00475     return TRUE;
00476 }
00477
00478
00479 /* 設定のタイプが変わった */
00480 void CDlgPrintSetting::OnChangeSettingType( BOOL bGetData )
00481 {
00482     HWND    hwndComboSettingName;
00483     HWND    hwndCtrl;
00484     int     nIdx1;
00485     int     nItemNum;
00486     int     nItemData;
00487     int     i;
00488
00489     if( bGetData ){
00490         GetData();
00491     }
00492
00493     hwndComboSettingName = ::GetDlgItem( m_hWnd, IDC_COMBO_SETTINGNAME );
00494     nIdx1 = ::SendMessage( hwndComboSettingName, CB_GETCURSEL, 0, 0 );
00495     if( CB_ERR == nIdx1 ){
00496         return;
00497     }
00498     m_nCurrentPrintSetting = ::SendMessage( hwndComboSettingName, CB_GETITEMDATA, nIdx1, 0 );
00499
00500     ::SetDlgItemInt( m_hWnd, IDC_EDIT_FONTWIDTH, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintFontWidth, FALSE );
00501     ::SetDlgItemInt( m_hWnd, IDC_EDIT_LINESPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintLineSpacing, FALSE );
00502     ::SetDlgItemInt( m_hWnd, IDC_EDIT_DANSUU, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDansuu, FALSE );
00503     ::SetDlgItemInt( m_hWnd, IDC_EDIT_DANSPACE, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintDanSpace / 10, FALSE );
00504     ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINTY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginTY / 10, FALSE );
00505     ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINBY, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginBY / 10, FALSE );
00506     ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINLX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginLX / 10, FALSE );
00507     ::SetDlgItemInt( m_hWnd, IDC_EDIT_MARGINRX, m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintMarginRX / 10, FALSE );
00508
00509     /* ヘッダー */
00510     ::SetDlgItemText( m_hWnd, IDC_EDIT_HEAD1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_LEFT] ); //  100文字で制限しないと。。。
00511     ::SetDlgItemText( m_hWnd, IDC_EDIT_HEAD2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_CENTER] );   //  100文字で制限しないと。。。
00512     ::SetDlgItemText( m_hWnd, IDC_EDIT_HEAD3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szHeaderForm[POS_RIGHT] );    //  100文字で制限しないと。。。
00513
00514     /* フッター */
00515     ::SetDlgItemText( m_hWnd, IDC_EDIT_FOOT1, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_LEFT] ); //  100文字で制限しないと。。。
00516     ::SetDlgItemText( m_hWnd, IDC_EDIT_FOOT2, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_CENTER] );   //  100文字で制限しないと。。。
00517     ::SetDlgItemText( m_hWnd, IDC_EDIT_FOOT3, m_PrintSettingArr[m_nCurrentPrintSetting].m_szFooterForm[POS_RIGHT] );    //  100文字で制限しないと。。。
00518
00519     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintWordWrap ){
00520         ::CheckDlgButton( m_hWnd, IDC_CHECK_WORDWRAP, BST_CHECKED );
00521     }else{
00522         ::CheckDlgButton( m_hWnd, IDC_CHECK_WORDWRAP, BST_UNCHECKED );
00523     }
00524     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintLineNumber ){
00525         ::CheckDlgButton( m_hWnd, IDC_CHECK_LINENUMBER, BST_CHECKED );
00526     }else{
00527         ::CheckDlgButton( m_hWnd, IDC_CHECK_LINENUMBER, BST_UNCHECKED );
00528     }
00529
00530
00531
00532     /* フォント一覧 */
00533     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_HAN );
00534     nIdx1 = ::SendMessage( hwndCtrl, CB_FINDSTRING, 0, (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceHan );
00535     ::SendMessage( hwndCtrl, CB_SETCURSEL, nIdx1, 0 );
00536
00537     /* フォント一覧 */
00538     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_FONT_ZEN );
00539     nIdx1 = ::SendMessage( hwndCtrl, CB_FINDSTRING, 0, (LPARAM)m_PrintSettingArr[m_nCurrentPrintSetting].m_szPrintFontFaceZen );
00540     ::SendMessage( hwndCtrl, CB_SETCURSEL, nIdx1, 0 );
00541
00542     /* 用紙サイズ一覧 */
00543     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_COMBO_PAPER );
00544     nItemNum = ::SendMessage( hwndCtrl, CB_GETCOUNT, 0, 0 );
00545     for( i = 0; i < nItemNum; ++i ){
00546         nItemData = ::SendMessage( hwndCtrl, CB_GETITEMDATA, i, 0 );
00547         if( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperSize == nItemData ){
00548             ::SendMessage( hwndCtrl, CB_SETCURSEL, i, 0 );
00549             break;
00550         }
00551     }
00552
00553     // 用紙の向き
00554     // 2006.08.14 Moca 用紙方向コンボボックスを廃止し、ボタンを有効化
00555     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_nPrintPaperOrientation == DMORIENT_PORTRAIT ){
00556         ::CheckDlgButton( m_hWnd, IDC_RADIO_PORTRAIT, BST_CHECKED );
00557     }else{
00558         ::CheckDlgButton( m_hWnd, IDC_RADIO_LANDSCAPE, BST_CHECKED );
00559     }
00560
00561     // 行頭禁則 //@@@ 2002.04.09 MIK
00562     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuHead ){
00563         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUHEAD, BST_CHECKED );
00564     }else{
00565         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUHEAD, BST_UNCHECKED );
00566     }
00567     // 行末禁則 //@@@ 2002.04.09 MIK
00568     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuTail ){
00569         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUTAIL, BST_CHECKED );
00570     }else{
00571         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUTAIL, BST_UNCHECKED );
00572     }
00573     // 改行文字をぶら下げる //@@@ 2002.04.13 MIK
00574     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuRet ){
00575         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKURET, BST_CHECKED );
00576     }else{
00577         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKURET, BST_UNCHECKED );
00578     }
00579     // 句読点をぶら下げる   //@@@ 2002.04.17 MIK
00580     if( m_PrintSettingArr[m_nCurrentPrintSetting].m_bPrintKinsokuKuto ){
00581         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUKUTO, BST_CHECKED );
00582     }else{
00583         ::CheckDlgButton( m_hWnd, IDC_CHECK_PS_KINSOKUKUTO, BST_UNCHECKED );
00584     }
00585
00586     return;
00587 }
00588
00589 /* スピンコントロールの処理 */
00590 void CDlgPrintSetting::OnSpin( int nCtrlId, BOOL bDown )
00591 {
00592     int     nData;
00593     BOOL    bUnknown;
00594     int     nCtrlIdEDIT;
00595     bUnknown = FALSE;
00596     switch( nCtrlId ){
00597     case IDC_SPIN_FONTWIDTH:
00598         nCtrlIdEDIT = IDC_EDIT_FONTWIDTH;
00599         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00600         if( bDown ){
00601             nData-=1;
00602         }else{
00603             nData+=1;
00604         }
00605         break;
00606     case IDC_SPIN_LINESPACE:
00607         nCtrlIdEDIT = IDC_EDIT_LINESPACE;
00608         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00609         if( bDown ){
00610             nData-=10;
00611         }else{
00612             nData+=10;
00613         }
00614         break;
00615     case IDC_SPIN_DANSUU:
00616         nCtrlIdEDIT = IDC_EDIT_DANSUU;
00617         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00618         if( bDown ){
00619             nData--;
00620         }else{
00621             ++nData;
00622         }
00623         break;
00624     case IDC_SPIN_DANSPACE:
00625         nCtrlIdEDIT = IDC_EDIT_DANSPACE;
00626         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00627         if( bDown ){
00628             nData--;
00629         }else{
00630             ++nData;
00631         }
00632         break;
00633     case IDC_SPIN_MARGINTY:
00634         nCtrlIdEDIT = IDC_EDIT_MARGINTY;
00635         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00636         if( bDown ){
00637             nData--;
00638         }else{
00639             ++nData;
00640         }
00641         break;
00642     case IDC_SPIN_MARGINBY:
00643         nCtrlIdEDIT = IDC_EDIT_MARGINBY;
00644         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00645         if( bDown ){
00646             nData--;
00647         }else{
00648             ++nData;
00649         }
00650         break;
00651     case IDC_SPIN_MARGINLX:
00652         nCtrlIdEDIT = IDC_EDIT_MARGINLX;
00653         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00654         if( bDown ){
00655             nData--;
00656         }else{
00657             ++nData;
00658         }
00659         break;
00660     case IDC_SPIN_MARGINRX:
00661         nCtrlIdEDIT = IDC_EDIT_MARGINRX;
00662         nData = ::GetDlgItemInt( m_hWnd, nCtrlIdEDIT, NULL, FALSE );
00663         if( bDown ){
00664             nData--;
00665         }else{
00666             ++nData;
00667         }
00668         break;
00669     default:
00670         bUnknown = TRUE;
00671         break;
00672     }
00673     if( !bUnknown ){
00674         /* 入力値(数値)のエラーチェックをして正しい値を返す */
00675         nData = DataCheckAndCrrect( nCtrlIdEDIT, nData );
00676         ::SetDlgItemInt( m_hWnd, nCtrlIdEDIT, nData, FALSE );
00677     }
00678     return;
00679 }
00680
00681
00682 /* 入力値(数値)のエラーチェックをして正しい値を返す */
00683 int CDlgPrintSetting::DataCheckAndCrrect( int nCtrlId, int nData )
00684 {
00685 //  int     nData;
00686     switch( nCtrlId ){
00687     case IDC_EDIT_FONTWIDTH:
00688         if( 7 >= nData ){
00689             nData = 7;
00690         }
00691         if( 100 < nData ){
00692             nData = 100;
00693         }
00694         break;
00695     case IDC_EDIT_LINESPACE:
00696         if( 0 >= nData ){
00697             nData = 0;
00698         }
00699         if( 150 < nData ){
00700             nData = 150;
00701         }
00702         break;
00703     case IDC_EDIT_DANSUU:
00704         if( 1 >= nData ){
00705             nData = 1;
00706         }
00707         if( 4 < nData ){
00708             nData = 4;
00709         }
00710         break;
00711     case IDC_EDIT_DANSPACE:
00712         if( 0 >= nData ){
00713             nData = 0;
00714         }
00715         if( 30 < nData ){
00716             nData = 30;
00717         }
00718         break;
00719     case IDC_EDIT_MARGINTY:
00720         if( 0 >= nData ){
00721             nData = 0;
00722         }
00723         if( 50 < nData ){
00724             nData = 50;
00725         }
00726         break;
00727     case IDC_EDIT_MARGINBY:
00728         if( 0 >= nData ){
00729             nData = 0;
00730         }
00731         if( 50 < nData ){
00732             nData = 50;
00733         }
00734         break;
00735     case IDC_EDIT_MARGINLX:
00736         if( 0 >= nData ){
00737             nData = 0;
00738         }
00739         if( 50 < nData ){
00740             nData = 50;
00741         }
00742         break;
00743     case IDC_EDIT_MARGINRX:
00744         if( 0 >= nData ){
00745             nData = 0;
00746         }
00747         if( 50 < nData ){
00748             nData = 50;
00749         }
00750         break;
00751     }
00752     return nData;
00753 }
00754
00755 /* タイマー処理 */
00756 BOOL CDlgPrintSetting::OnTimer( WPARAM wParam )
00757 {
00758     int nTimer;
00759     int             nEnableColmns;      /* 行あたりの文字数 */
00760     int             nEnableLines;       /* 縦方向の行数 */
00761 //  int             nEnableLinesAll;    /* ページあたりの行数 */
00762     MYDEVMODE       dmDummy;            // 2003.05.18 かろと 型変更
00763     int             nPaperAllWidth;     /* 用紙幅 */
00764     int             nPaperAllHeight;    /* 用紙高さ */
00765     PRINTSETTING*   pPS;
00766     nTimer = (int)wParam;
00767
00768     if( nTimer != IDT_PRINTSETTING ){
00769         return FALSE;
00770     }
00771     /* ダイアログデータの取得 */
00772     GetData();
00773 //  SetData( m_hWnd );
00774     pPS = &m_PrintSettingArr[m_nCurrentPrintSetting];
00775
00776     dmDummy.dmFields = DM_PAPERSIZE | DMORIENT_LANDSCAPE;
00777     dmDummy.dmPaperSize = pPS->m_nPrintPaperSize;
00778     dmDummy.dmOrientation = pPS->m_nPrintPaperOrientation;
00779     /* 用紙の幅、高さ */
00780     if( FALSE == CPrint::GetPaperSize(
00781         &nPaperAllWidth,
00782         &nPaperAllHeight,
00783         &dmDummy
00784     ) ){
00785     // 2001.12.21 hor GetPaperSize失敗時はそのまま終了
00786     //  nPaperAllWidth = 210 * 10;      /* 用紙幅 */
00787     //  nPaperAllHeight = 297 * 10;     /* 用紙高さ */
00788         return FALSE;
00789     }
00790     /* 行あたりの文字数(行番号込み) */
00791     nEnableColmns =
00792         ( nPaperAllWidth - pPS->m_nPrintMarginLX - pPS->m_nPrintMarginRX
00793         - ( pPS->m_nPrintDansuu - 1 ) * pPS->m_nPrintDanSpace
00794 //      - ( pPS->m_nPrintDansuu ) *  ( ( m_nPreview_LineNumberColmns /*+ (m_nPreview_LineNumberColmns?1:0)*/ ) * pPS->m_nPrintFontWidth )
00795         ) / pPS->m_nPrintFontWidth / pPS->m_nPrintDansuu;   /* 印字可能桁数/ページ */
00796     /* 縦方向の行数 */
00797     nEnableLines =
00798         ( nPaperAllHeight - pPS->m_nPrintMarginTY - pPS->m_nPrintMarginBY ) /
00799         ( pPS->m_nPrintFontHeight + ( pPS->m_nPrintFontHeight * pPS->m_nPrintLineSpacing / 100 ) ) - 4; /* 印字可能行数/ページ */
00800 //  /* ページあたりの行数 */
00801 //  nEnableLinesAll = nEnableLines * pPS->m_nPrintDansuu;
00802
00803     ::SetDlgItemInt( m_hWnd, IDC_STATIC_ENABLECOLMNS, nEnableColmns, FALSE );
00804     ::SetDlgItemInt( m_hWnd, IDC_STATIC_ENABLELINES, nEnableLines, FALSE );
00805 //  ::SetDlgItemInt( m_hWnd, IDC_STATIC_ENABLELINESALL, nEnableLinesAll, FALSE );
00806     return TRUE;
00807 }
00808
00809 //@@@ 2002.01.18 add start
00810 LPVOID CDlgPrintSetting::GetHelpIdTable(void)
00811 {
00812     return (LPVOID)p_helpids;
00813 }
00814 //@@@ 2002.01.18 add end
00815
00816 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintSetting.h

CDlgPrintSetting.h

印刷設定ダイアログ [詳細]

#include "CDialog.h"

CDlgPrintSetting.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgPrintSetting

説明

印刷設定ダイアログ

作者:
Norio Nakatani

CDlgPrintSetting.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgPrintSetting.h ソースファイル

CDlgPrintSetting.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, YAZAKI
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class CDlgPrintSetting;
00015
00016 #ifndef _CDLGPRINTSETTING_H_
00017 #define _CDLGPRINTSETTING_H_
00018
00019 #include "CDialog.h"
00020
00025 class CDlgPrintSetting : public CDialog
00026 {
00027 public:
00028     /*
00029     ||  Constructors
00030     */
00031
00032     /*
00033     ||  Attributes & Operations
00034     */
00035     int DoModal( HINSTANCE, HWND, int*, PRINTSETTING* );    /* モーダルダイアログの表示 */
00036
00037     int             m_nCurrentPrintSetting;
00038     PRINTSETTING    m_PrintSettingArr[MAX_PRINTSETTINGARR];
00039
00040
00041 protected:
00042     /*
00043     ||  実装ヘルパ関数
00044     */
00045     void SetData( void );   /* ダイアログデータの設定 */
00046     int GetData( void );    /* ダイアログデータの取得 */
00047     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00048     BOOL OnDestroy( void );
00049     BOOL OnNotify( WPARAM,  LPARAM );
00050     BOOL OnCbnSelChange( HWND, int );
00051     BOOL OnBnClicked( int );
00052     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00053
00054     void OnChangeSettingType( BOOL );   /* 設定のタイプが変わった */
00055     void OnSpin( int , BOOL );  /* スピンコントロールの処理 */
00056     int DataCheckAndCrrect( int , int );    /* 入力値(数値)のエラーチェックをして正しい値を返す */
00057     BOOL OnTimer( WPARAM ); /* タイマー処理 */
00058
00059 };
00060
00061
00062
00064 #endif /* _CDLGPRINTSETTING_H_ */
00065
00066
00067 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgProperty.cpp

CDlgProperty.cpp

ファイルプロパティダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgProperty.h"
#include "debug.h"
#include "CEditDoc.h"
#include "etc_uty.h"
#include "funccode.h"
#include "global.h"
#include "charcode.h"
#include "sakura.hh"

CDlgProperty.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

ファイルプロパティダイアログ

作者:
Norio Nakatani

CDlgProperty.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDOK,                   HIDOK_PROP,
    IDCANCEL,               HIDCANCEL_PROP,
    IDC_BUTTON_HELP,        HIDC_PROP_BUTTON_HELP,
    IDC_EDIT1,              HIDC_PROP_EDIT1,

    0, 0
}

CDlgProperty.cpp の 28 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgProperty.cpp ソースファイル

CDlgProperty.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, genta
00009     Copyright (C) 2001, Stonee
00010     Copyright (C) 2002, Moca, MIK, YAZAKI
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016 #include "stdafx.h"
00017 #include "sakura_rc.h"
00018 #include "CDlgProperty.h"
00019 #include "debug.h"
00020 #include "CEditDoc.h"
00021 #include "etc_uty.h"
00022 #include "funccode.h"       // Stonee, 2001/03/12
00023 #include "global.h"     // Moca, 2002/05/26
00024 #include "charcode.h"   // rastiv, 2006/06/28
00025
00026 // プロパティ CDlgProperty.cpp  //@@@ 2002.01.07 add start MIK
00027 #include "sakura.hh"
00028 const DWORD p_helpids[] = { //12600
00029     IDOK,                   HIDOK_PROP,
00030     IDCANCEL,               HIDCANCEL_PROP,
00031     IDC_BUTTON_HELP,        HIDC_PROP_BUTTON_HELP,
00032     IDC_EDIT1,              HIDC_PROP_EDIT1,
00033 //  IDC_STATIC,             -1,
00034     0, 0
00035 };  //@@@ 2002.01.07 add end MIK
00036
00037 /* モーダルダイアログの表示 */
00038 int CDlgProperty::DoModal( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam )
00039 {
00040     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_PROPERTY_FILE, lParam );
00041 }
00042
00043 BOOL CDlgProperty::OnBnClicked( int wID )
00044 {
00045     switch( wID ){
00046     case IDC_BUTTON_HELP:
00047         /* 「ファイルのプロパティ」のヘルプ */
00048         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00049         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_PROPERTY_FILE) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00050         return TRUE;
00051     case IDOK:          /* 下検索 */
00052         /* ダイアログデータの取得 */
00053         ::EndDialog( m_hWnd, FALSE );
00054         return TRUE;
00055     case IDCANCEL:
00056         ::EndDialog( m_hWnd, FALSE );
00057         return TRUE;
00058     }
00059     /* 基底クラスメンバ */
00060     return CDialog::OnBnClicked( wID );
00061 }
00062
00063
00068 void CDlgProperty::SetData( void )
00069 {
00070     CEditDoc*       pCEditDoc = (CEditDoc*)m_lParam;
00071     CMemory         cmemProp;
00072 //  char*           pWork;
00073 //  char            szWork[100];
00074     char            szWork[500];
00075
00076 //  gm_pszCodeNameArr_1[] を参照するように変更 Moca, 2002/05/26
00077 #if 0
00078     char*           pCodeNameArr[] = {
00079         "SJIS",
00080         "JIS",
00081         "EUC",
00082         "Unicode",
00083         "UTF-8",
00084         "UTF-7"
00085     };
00086 #endif
00087 //  1回も使われていない Moca
00088 //  int             nCodeNameArrNum = sizeof( pCodeNameArr ) / sizeof( pCodeNameArr[0] );
00089     HANDLE          nFind;
00090     WIN32_FIND_DATA wfd;
00091     SYSTEMTIME      systimeL;
00092     /* 共有データ構造体のアドレスを返す */
00093     m_pShareData = CShareData::getInstance()->GetShareData();
00094
00095     //  Aug. 16, 2000 genta 全角化
00096     cmemProp.AppendSz( "ファイル名  " );
00097     cmemProp.AppendSz( pCEditDoc->GetFilePath() );
00098     cmemProp.AppendSz( "\r\n" );
00099
00100     cmemProp.AppendSz( "設定のタイプ  " );
00101     cmemProp.AppendSz( pCEditDoc->GetDocumentAttribute().m_szTypeName );
00102     cmemProp.AppendSz( "\r\n" );
00103
00104     cmemProp.AppendSz( "文字コード  " );
00105     cmemProp.AppendSz( gm_pszCodeNameArr_1[pCEditDoc->m_nCharCode] );
00106     cmemProp.AppendSz( "\r\n" );
00107
00108     wsprintf( szWork, "行数  %d行\r\n", pCEditDoc->m_cDocLineMgr.GetLineCount() );
00109     cmemProp.AppendSz( szWork );
00110
00111     wsprintf( szWork, "レイアウト行数  %d行\r\n", pCEditDoc->m_cLayoutMgr.GetLineCount() );
00112     cmemProp.AppendSz( szWork );
00113
00114     if( pCEditDoc->m_bReadOnly ){
00115         cmemProp.AppendSz( "上書き禁止モードで開いています。\r\n" );
00116     }
00117     if( pCEditDoc->IsModified() ){
00118         cmemProp.AppendSz( "変更されています。\r\n" );
00119     }else{
00120         cmemProp.AppendSz( "変更されていません。\r\n" );
00121     }
00122
00123     wsprintf( szWork, "\r\nコマンド実行回数    %d回\r\n", pCEditDoc->m_nCommandExecNum );
00124     cmemProp.AppendSz( szWork );
00125
00126     wsprintf( szWork, "--ファイル情報-----------------\r\n", pCEditDoc->m_cDocLineMgr.GetLineCount() );
00127     cmemProp.AppendSz( szWork );
00128
00129     if( INVALID_HANDLE_VALUE != ( nFind = ::FindFirstFile( pCEditDoc->GetFilePath(), (WIN32_FIND_DATA*)&wfd ) ) ){
00130         if( pCEditDoc->m_hLockedFile ){
00131             if( m_pShareData->m_Common.m_nFileShareMode == OF_SHARE_DENY_WRITE ){
00132                 wsprintf( szWork, "あなたはこのファイルを、他プロセスからの上書き禁止モードでロックしています。\r\n" );
00133             }else
00134             if( m_pShareData->m_Common.m_nFileShareMode == OF_SHARE_EXCLUSIVE ){
00135                 wsprintf( szWork, "あなたはこのファイルを、他プロセスからの読み書き禁止モードでロックしています。\r\n" );
00136             }else{
00137                 wsprintf( szWork, "あなたはこのファイルをロックしています。\r\n" );
00138             }
00139             cmemProp.AppendSz( szWork );
00140         }else{
00141             wsprintf( szWork, "あなたはこのファイルをロックしていません。\r\n" );
00142             cmemProp.AppendSz( szWork );
00143         }
00144
00145         wsprintf( szWork, "ファイル属性  ", pCEditDoc->m_cDocLineMgr.GetLineCount() );
00146         cmemProp.AppendSz( szWork );
00147         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE ){
00148             cmemProp.AppendSz( "/アーカイブ" );
00149         }
00150         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED ){
00151             cmemProp.AppendSz( "/圧縮" );
00152         }
00153         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
00154             cmemProp.AppendSz( "/フォルダ" );
00155         }
00156         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN ){
00157             cmemProp.AppendSz( "/隠し" );
00158         }
00159         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_NORMAL ){
00160             cmemProp.AppendSz( "/ノーマル" );
00161         }
00162         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE ){
00163             cmemProp.AppendSz( "/オフライン" );
00164         }
00165         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_READONLY ){
00166             cmemProp.AppendSz( "/読み取り専用" );
00167         }
00168         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM ){
00169             cmemProp.AppendSz( "/システム" );
00170         }
00171         if( wfd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY ){
00172             cmemProp.AppendSz( "/テンポラリ" );
00173         }
00174         cmemProp.AppendSz( "\r\n" );
00175
00176
00177         cmemProp.AppendSz( "作成日時  " );
00178         ::FileTimeToLocalFileTime( &wfd.ftCreationTime, &wfd.ftCreationTime );
00179         ::FileTimeToSystemTime( &wfd.ftCreationTime, &systimeL );
00180         wsprintf( szWork, "%d年%d月%d日 %02d:%02d:%02d",
00181             systimeL.wYear,
00182             systimeL.wMonth,
00183             systimeL.wDay,
00184             systimeL.wHour,
00185             systimeL.wMinute,
00186             systimeL.wSecond
00187         );
00188         cmemProp.AppendSz( szWork );
00189         cmemProp.AppendSz( "\r\n" );
00190
00191         cmemProp.AppendSz( "更新日時  " );
00192         ::FileTimeToLocalFileTime( &wfd.ftLastWriteTime, &wfd.ftLastWriteTime );
00193         ::FileTimeToSystemTime( &wfd.ftLastWriteTime, &systimeL );
00194         wsprintf( szWork, "%d年%d月%d日 %02d:%02d:%02d",
00195             systimeL.wYear,
00196             systimeL.wMonth,
00197             systimeL.wDay,
00198             systimeL.wHour,
00199             systimeL.wMinute,
00200             systimeL.wSecond
00201         );
00202         cmemProp.AppendSz( szWork );
00203         cmemProp.AppendSz( "\r\n" );
00204
00205
00206         cmemProp.AppendSz( "アクセス日  " );
00207         ::FileTimeToLocalFileTime( &wfd.ftLastAccessTime, &wfd.ftLastAccessTime );
00208         ::FileTimeToSystemTime( &wfd.ftLastAccessTime, &systimeL );
00209         wsprintf( szWork, "%d年%d月%d日",
00210             systimeL.wYear,
00211             systimeL.wMonth,
00212             systimeL.wDay
00213         );
00214         cmemProp.AppendSz( szWork );
00215         cmemProp.AppendSz( "\r\n" );
00216
00217         wsprintf( szWork, "MS-DOSファイル名  %s\r\n", wfd.cAlternateFileName );
00218         cmemProp.AppendSz( szWork );
00219
00220         wsprintf( szWork, "ファイルサイズ  %d バイト\r\n", wfd.nFileSizeLow );
00221         cmemProp.AppendSz( szWork );
00222
00223         ::FindClose( nFind );
00224     }
00225
00226
00227
00228
00229 #ifdef _DEBUG
00230     MBCODE_INFO     mbci_tmp;
00231     UNICODE_INFO    uci_tmp;
00232
00233     HFILE                   hFile;
00234     HGLOBAL                 hgData;
00235 //  const unsigned char*    pBuf;
00236     const char*             pBuf;
00237     int                     nBufLen;
00238     /* メモリ確保 & ファイル読み込み */
00239     hgData = NULL;
00240     hFile = _lopen( pCEditDoc->GetFilePath(), OF_READ );
00241     if( HFILE_ERROR == hFile ){
00242         goto end_of_CodeTest;
00243     }
00244     nBufLen = _llseek( hFile, 0, FILE_END );
00245     _llseek( hFile, 0, FILE_BEGIN );
00246     if( nBufLen > CheckKanjiCode_MAXREADLENGTH ){
00247         nBufLen = CheckKanjiCode_MAXREADLENGTH;
00248     }
00249     hgData = ::GlobalAlloc( GHND, nBufLen + 1 );
00250     if( NULL == hgData ){
00251         _lclose( hFile );
00252         goto end_of_CodeTest;
00253     }
00254 //  pBuf = (const unsigned char*)::GlobalLock( hgData );
00255     pBuf = (const char*)::GlobalLock( hgData );
00256     _lread( hFile, (void *)pBuf, nBufLen );
00257     _lclose( hFile );
00258
00259 // From Here  2006.12.17  rastiv
00260     /*
00261     ||ファイルの日本語コードセット判別: Unicodeか？
00262     */
00263     /*
00264     ||ファイルの日本語コードセット判別: UnicodeBEか？
00265     */
00266     Charcode::GetEncdInf_Uni( pBuf, nBufLen, &uci_tmp );
00267     wsprintf( szWork, "Unicodeコード調査：改行バイト数=%d  BE改行バイト数=%d ASCII改行バイト数=%d\r\n"
00268         , uci_tmp.Uni.nCRorLF, uci_tmp.UniBe.nCRorLF, uci_tmp.nCRorLF_ascii );
00269     cmemProp.AppendSz( szWork );
00270
00271     /*
00272     ||ファイルの日本語コードセット判別: EUCか？
00273     */
00274     Charcode::GetEncdInf_EucJp( pBuf, nBufLen, &mbci_tmp );
00275     wsprintf( szWork, "EUCJPコード検査：特有バイト数=%d  ポイント数=%d\r\n"
00276         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00277     cmemProp.AppendSz( szWork );
00278
00279     /*
00280     ||ファイルの日本語コードセット判別: SJISか？
00281     */
00282     Charcode::GetEncdInf_SJis( pBuf, nBufLen, &mbci_tmp );
00283     wsprintf( szWork, "SJISコード検査：特有バイト数=%d  ポイント数=%d\r\n"
00284         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00285     cmemProp.AppendSz( szWork );
00286
00287     /*
00288     ||ファイルの日本語コードセット判別: JISか？
00289     */
00290     Charcode::GetEncdInf_Jis( pBuf, nBufLen, &mbci_tmp );
00291     wsprintf( szWork, "JISコード検査：特有バイト数=%d  ポイント数=%d\r\n"
00292         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00293     cmemProp.AppendSz( szWork );
00294
00295     /*
00296     ||ファイルの日本語コードセット判別: UTF-8Sか？
00297     */
00298     Charcode::GetEncdInf_Utf8( pBuf, nBufLen, &mbci_tmp );
00299     wsprintf( szWork, "UTF-8コード検査：特有バイト数=%d  ポイント数=%d\r\n"
00300         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00301     cmemProp.AppendSz( szWork );
00302
00303     /*
00304     ||ファイルの日本語コードセット判別: UTF-7Sか？
00305     */
00306     Charcode::GetEncdInf_Utf7( pBuf, nBufLen, &mbci_tmp );
00307     wsprintf( szWork, "UTF-7コード検査：特有バイト数=%d  ポイント数=%d\r\n"
00308         , mbci_tmp.nSpecBytes, mbci_tmp.nDiff );
00309     cmemProp.AppendSz( szWork );
00310 // To Here rastiv 2006.12.17
00311
00312     if( NULL != hgData ){
00313         ::GlobalUnlock( hgData );
00314         ::GlobalFree( hgData );
00315         hgData = NULL;
00316     }
00317 end_of_CodeTest:;
00318 #endif //ifdef _DEBUG
00319     ::SetDlgItemText( m_hWnd, IDC_EDIT1, cmemProp.GetPtr() );
00320
00321     return;
00322 }
00323
00324 //@@@ 2002.01.18 add start
00325 LPVOID CDlgProperty::GetHelpIdTable(void)
00326 {
00327     return (LPVOID)p_helpids;
00328 }
00329 //@@@ 2002.01.18 add end
00330
00331 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgProperty.h

CDlgProperty.h

ファイルプロパティダイアログ [詳細]

#include "CDialog.h"

CDlgProperty.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgProperty

説明

ファイルプロパティダイアログ

作者:
Norio Nakatani
日付:
1999/02/31 新規作成

1999/12/05 再作成

CDlgProperty.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgProperty.h ソースファイル

CDlgProperty.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 class CDlgProperty;
00016
00017 #ifndef _CDLGPROPERTY_H_
00018 #define _CDLGPROPERTY_H_
00019
00020 #include "CDialog.h"
00021 /*-----------------------------------------------------------------------
00022 クラスの宣言
00023 -----------------------------------------------------------------------*/
00024 class CDlgProperty : public CDialog
00025 {
00026 public:
00027     int DoModal( HINSTANCE, HWND, LPARAM  );    /* モーダルダイアログの表示 */
00028 protected:
00029     /*
00030     ||  実装ヘルパ関数
00031     */
00032     BOOL OnBnClicked( int );
00033     void SetData( void );   /* ダイアログデータの設定 */
00034     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00035 };
00037 #endif /* _CDLGPROPERTY_H_ */
00038
00039 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgReplace.cpp

CDlgReplace.cpp

置換ダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CDlgReplace.h"
#include "debug.h"
#include "CEditView.h"
#include "etc_uty.h"
#include "global.h"
#include "funccode.h"
#include "CLayout.h"
#include "CEditDoc.h"
#include "sakura.hh"

CDlgReplace.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

置換ダイアログ

作者:
Norio Nakatani
日付:
2001/06/23 N.Nakatani 単語単位で検索する機能を実装

CDlgReplace.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_SEARCHNEXT,          HIDC_REP_BUTTON_SEARCHNEXT,
    IDC_BUTTON_SEARCHPREV,          HIDC_REP_BUTTON_SEARCHPREV,
    IDC_BUTTON_REPALCE,             HIDC_REP_BUTTON_REPALCE,
    IDC_BUTTON_REPALCEALL,          HIDC_REP_BUTTON_REPALCEALL,
    IDCANCEL,                       HIDCANCEL_REP,
    IDC_BUTTON_HELP,                HIDC_REP_BUTTON_HELP,
    IDC_CHK_PASTE,                  HIDC_REP_CHK_PASTE,
    IDC_CHK_WORD,                   HIDC_REP_CHK_WORD,
    IDC_CHK_LOHICASE,               HIDC_REP_CHK_LOHICASE,
    IDC_CHK_REGULAREXP,             HIDC_REP_CHK_REGULAREXP,
    IDC_CHECK_NOTIFYNOTFOUND,       HIDC_REP_CHECK_NOTIFYNOTFOUND,
    IDC_CHECK_bAutoCloseDlgReplace, HIDC_REP_CHECK_bAutoCloseDlgReplace,
    IDC_COMBO_TEXT,                 HIDC_REP_COMBO_TEXT,
    IDC_COMBO_TEXT2,                HIDC_REP_COMBO_TEXT2,
    IDC_RADIO_REPLACE,              HIDC_REP_RADIO_REPLACE,
    IDC_RADIO_INSERT,               HIDC_REP_RADIO_INSERT,
    IDC_RADIO_ADD,                  HIDC_REP_RADIO_ADD,
    IDC_RADIO_SELECTEDAREA,         HIDC_REP_RADIO_SELECTEDAREA,
    IDC_RADIO_ALLAREA,              HIDC_REP_RADIO_ALLAREA,
    IDC_STATIC_JRE32VER,            HIDC_REP_STATIC_JRE32VER,
    IDC_BUTTON_SETMARK,             HIDC_REP_BUTTON_SETMARK,
    IDC_CHECK_SEARCHALL,            HIDC_REP_CHECK_SEARCHALL,
    IDC_CHECK_CONSECUTIVEALL,       HIDC_REP_CHECK_CONSECUTIVEALL,

    0, 0
}

CDlgReplace.cpp の 30 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgReplace.cpp ソースファイル

CDlgReplace.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, genta, Stonee, hor, YAZAKI
00010     Copyright (C) 2002, MIK, hor, novice, genta, aroka, YAZAKI
00011     Copyright (C) 2006, かろと, ryoji
00012     Copyright (C) 2007, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017 #include "stdafx.h"
00018 #include "sakura_rc.h"
00019 #include "CDlgReplace.h"
00020 #include "debug.h"
00021 #include "CEditView.h"
00022 #include "etc_uty.h"
00023 #include "global.h"
00024 #include "funccode.h"       // Stonee, 2001/03/12
00025 #include "CLayout.h"
00026 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00027
00028 //置換 CDlgReplace.cpp  //@@@ 2002.01.07 add start MIK
00029 #include "sakura.hh"
00030 const DWORD p_helpids[] = { //11900
00031     IDC_BUTTON_SEARCHNEXT,          HIDC_REP_BUTTON_SEARCHNEXT,         //下検索
00032     IDC_BUTTON_SEARCHPREV,          HIDC_REP_BUTTON_SEARCHPREV,         //上検索
00033     IDC_BUTTON_REPALCE,             HIDC_REP_BUTTON_REPALCE,            //置換
00034     IDC_BUTTON_REPALCEALL,          HIDC_REP_BUTTON_REPALCEALL,         //全置換
00035     IDCANCEL,                       HIDCANCEL_REP,                      //キャンセル
00036     IDC_BUTTON_HELP,                HIDC_REP_BUTTON_HELP,               //ヘルプ
00037     IDC_CHK_PASTE,                  HIDC_REP_CHK_PASTE,                 //クリップボードから貼り付け
00038     IDC_CHK_WORD,                   HIDC_REP_CHK_WORD,                  //単語単位
00039     IDC_CHK_LOHICASE,               HIDC_REP_CHK_LOHICASE,              //大文字小文字
00040     IDC_CHK_REGULAREXP,             HIDC_REP_CHK_REGULAREXP,            //正規表現
00041     IDC_CHECK_NOTIFYNOTFOUND,       HIDC_REP_CHECK_NOTIFYNOTFOUND,      //見つからないときに通知
00042     IDC_CHECK_bAutoCloseDlgReplace, HIDC_REP_CHECK_bAutoCloseDlgReplace,    //自動的に閉じる
00043     IDC_COMBO_TEXT,                 HIDC_REP_COMBO_TEXT,                //置換前
00044     IDC_COMBO_TEXT2,                HIDC_REP_COMBO_TEXT2,               //置換後
00045     IDC_RADIO_REPLACE,              HIDC_REP_RADIO_REPLACE,             //置換対象：置換
00046     IDC_RADIO_INSERT,               HIDC_REP_RADIO_INSERT,              //置換対象：挿入
00047     IDC_RADIO_ADD,                  HIDC_REP_RADIO_ADD,                 //置換対象：追加
00048     IDC_RADIO_SELECTEDAREA,         HIDC_REP_RADIO_SELECTEDAREA,        //範囲：全体
00049     IDC_RADIO_ALLAREA,              HIDC_REP_RADIO_ALLAREA,             //範囲：選択範囲
00050     IDC_STATIC_JRE32VER,            HIDC_REP_STATIC_JRE32VER,           //正規表現バージョン
00051     IDC_BUTTON_SETMARK,             HIDC_REP_BUTTON_SETMARK,            //2002.01.16 hor 検索該当行をマーク
00052     IDC_CHECK_SEARCHALL,            HIDC_REP_CHECK_SEARCHALL,           //2002.01.26 hor 先頭（末尾）から再検索
00053     IDC_CHECK_CONSECUTIVEALL,       HIDC_REP_CHECK_CONSECUTIVEALL,      //「すべて置換」は置換の繰返し  // 2007.01.16 ryoji
00054 //  IDC_STATIC,                     -1,
00055     0, 0
00056 };  //@@@ 2002.01.07 add end MIK
00057
00058 CDlgReplace::CDlgReplace()
00059 {
00060     m_bLoHiCase = FALSE;        /* 英大文字と英小文字を区別する */
00061     m_bWordOnly = FALSE;        /* 一致する単語のみ検索する */
00062     m_bConsecutiveAll = FALSE;  /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
00063     m_bRegularExp = FALSE;      /* 正規表現 */
00064     m_bSelectedArea = FALSE;    /* 選択範囲内置換 */
00065     m_szText[0] = '\0';         /* 検索文字列 */
00066     m_szText2[0] = '\0';        /* 置換後文字列 */
00067     m_nReplaceTarget = 0;       /* 置換対象 */      // 2001.12.03 hor
00068     m_nPaste = FALSE;           /* 貼り付ける？ */  // 2001.12.03 hor
00069     m_nReplaceCnt = 0;          //すべて置換の実行結果      // 2002.02.08 hor
00070     m_bCanceled = false;        //すべて置換を中断したか    // 2002.02.08 hor
00071     return;
00072 }
00073
00074 /* モードレスダイアログの表示 */
00075 HWND CDlgReplace::DoModeless( HINSTANCE hInstance, HWND hwndParent, LPARAM lParam, BOOL bSelected )
00076 {
00077     m_bRegularExp = m_pShareData->m_Common.m_bRegularExp;           /* 1==正規表現 */
00078     m_bLoHiCase = m_pShareData->m_Common.m_bLoHiCase;               /* 1==英大文字小文字の区別 */
00079     m_bWordOnly = m_pShareData->m_Common.m_bWordOnly;               /* 1==単語のみ検索 */
00080     m_bConsecutiveAll = m_pShareData->m_Common.m_bConsecutiveAll;   /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
00081     m_bSelectedArea = m_pShareData->m_Common.m_bSelectedArea;       /* 選択範囲内置換 */
00082     m_bNOTIFYNOTFOUND = m_pShareData->m_Common.m_bNOTIFYNOTFOUND;   /* 検索／置換  見つからないときメッセージを表示 */
00083     m_bSelected = bSelected;
00084     m_nEscCaretPosX_PHY = ((CEditView*)lParam)->m_nCaretPosX_PHY;   /* 検索/置換開始時のカーソル位置退避    02/07/28 ai */
00085     m_nEscCaretPosY_PHY = ((CEditView*)lParam)->m_nCaretPosY_PHY;   /* 検索/置換開始時のカーソル位置退避    02/07/28 ai */
00086     ((CEditView*)lParam)->m_bSearch = TRUE;                         /* 検索/置換開始位置の登録有無          02/07/28 ai */
00087     return CDialog::DoModeless( hInstance, hwndParent, IDD_REPLACE, lParam, SW_SHOW );
00088 }
00089
00090 /* モードレス時：置換・検索対象となるビューの変更 */
00091 void CDlgReplace::ChangeView( LPARAM pcEditView )
00092 {
00093     m_lParam = pcEditView;
00094     return;
00095 }
00096
00097
00098
00099
00100 /* ダイアログデータの設定 */
00101 void CDlgReplace::SetData( void )
00102 {
00103     int     i;
00104     HWND    hwndCombo;
00105 //  m_hWnd = hwndDlg;   /* このダイアログのハンドル */
00106
00107     /* 検索文字列 */
00108     ::SetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText );
00109     hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT );
00110     for( i = 0; i < m_pShareData->m_nSEARCHKEYArrNum; ++i ){
00111         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szSEARCHKEYArr[i] );
00112     }
00113
00114     /* 置換後文字列 */
00115     ::SetDlgItemText( m_hWnd, IDC_COMBO_TEXT2, m_szText2 );
00116     hwndCombo = ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 );
00117     for( i = 0; i < m_pShareData->m_nREPLACEKEYArrNum; ++i ){
00118         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szREPLACEKEYArr[i] );
00119     }
00120
00121     /* 英大文字と英小文字を区別する */
00122     ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, m_bLoHiCase );
00123
00124     // 2001/06/23 N.Nakatani
00125     /* 単語単位で探す */
00126     ::CheckDlgButton( m_hWnd, IDC_CHK_WORD, m_bWordOnly );
00127
00128     /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
00129     ::CheckDlgButton( m_hWnd, IDC_CHECK_CONSECUTIVEALL, m_bConsecutiveAll );
00130
00131 // From Here 2001.12.03 hor
00132 //  /* 選択範囲内置換 */
00133 //  if( m_pShareData->m_Common.m_bSelectedArea ){
00134 //      ::CheckDlgButton( m_hWnd, IDC_RADIO_SELECTEDAREA, TRUE );
00135 //  }else{
00136 //      ::CheckDlgButton( m_hWnd, IDC_RADIO_ALLAREA, TRUE );
00137 //  }
00138 // To Here 2001.12.03 hor
00139
00140     // From Here Jun. 29, 2001 genta
00141     // 正規表現ライブラリの差し替えに伴う処理の見直し
00142     // 処理フロー及び判定条件の見直し。必ず正規表現のチェックと
00143     // 無関係にCheckRegexpVersionを通過するようにした。
00144     if( CheckRegexpVersion( m_hWnd, IDC_STATIC_JRE32VER, false )
00145         && m_bRegularExp){
00146         /* 英大文字と英小文字を区別する */
00147         ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 1 );
00148         //  正規表現のときも選択できるように。
00149 //      ::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 1 );
00150 //      ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), FALSE );
00151
00152         // 2001/06/23 N.Nakatani
00153         /* 単語単位で探す */
00154         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), FALSE );
00155     }
00156     else {
00157         ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 0 );
00158
00159         /*「すべて置換」は置換の繰返し */
00160         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_CONSECUTIVEALL ), FALSE );  // 2007.01.16 ryoji
00161     }
00162     // To Here Jun. 29, 2001 genta
00163
00164     /* 検索／置換  見つからないときメッセージを表示 */
00165     ::CheckDlgButton( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND, m_bNOTIFYNOTFOUND );
00166
00167
00168     /* 置換 ダイアログを自動的に閉じる */
00169     ::CheckDlgButton( m_hWnd, IDC_CHECK_bAutoCloseDlgReplace, m_pShareData->m_Common.m_bAutoCloseDlgReplace );
00170
00171     /* 先頭（末尾）から再検索 2002.01.26 hor */
00172     ::CheckDlgButton( m_hWnd, IDC_CHECK_SEARCHALL, m_pShareData->m_Common.m_bSearchAll );
00173
00174     // From Here 2001.12.03 hor
00175     // クリップボードから貼り付ける？
00176     ::CheckDlgButton( m_hWnd, IDC_CHK_PASTE, m_nPaste );
00177     // 置換対象
00178     if(m_nReplaceTarget==0){
00179         ::CheckDlgButton( m_hWnd, IDC_RADIO_REPLACE, TRUE );
00180     }else
00181     if(m_nReplaceTarget==1){
00182         ::CheckDlgButton( m_hWnd, IDC_RADIO_INSERT, TRUE );
00183     }else
00184     if(m_nReplaceTarget==2){
00185         ::CheckDlgButton( m_hWnd, IDC_RADIO_ADD, TRUE );
00186     }
00187     // To Here 2001.12.03 hor
00188
00189     return;
00190 }
00191
00192
00193
00194
00195 /* ダイアログデータの取得 */
00196 /* 0==条件未入力  0より大きい==正常   0より小さい==入力エラー */
00197 int CDlgReplace::GetData( void )
00198 {
00199 //  int         i;
00200 //  int         j;
00201 //  CMemory*    pcmWork;
00202
00203     /* 英大文字と英小文字を区別する */
00204     m_bLoHiCase = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_LOHICASE );
00205
00206     // 2001/06/23 N.Nakatani
00207     /* 単語単位で探す */
00208     m_bWordOnly = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_WORD );
00209
00210     /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
00211     m_bConsecutiveAll = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_CONSECUTIVEALL );
00212
00213     /* 正規表現 */
00214     m_bRegularExp = ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP );
00215     /* 選択範囲内置換 */
00216     m_bSelectedArea = ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_SELECTEDAREA );
00217     /* 検索／置換  見つからないときメッセージを表示 */
00218     m_bNOTIFYNOTFOUND = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_NOTIFYNOTFOUND );
00219
00220     m_pShareData->m_Common.m_bRegularExp = m_bRegularExp;           /* 1==正規表現 */
00221     m_pShareData->m_Common.m_bLoHiCase = m_bLoHiCase;               /* 1==英大文字小文字の区別 */
00222     m_pShareData->m_Common.m_bWordOnly = m_bWordOnly;               /* 1==単語のみ検索 */
00223     m_pShareData->m_Common.m_bConsecutiveAll = m_bConsecutiveAll;   /* 1==「すべて置換」は置換の繰返し */   // 2007.01.16 ryoji
00224     m_pShareData->m_Common.m_bSelectedArea = m_bSelectedArea;       /* 選択範囲内置換 */
00225     m_pShareData->m_Common.m_bNOTIFYNOTFOUND = m_bNOTIFYNOTFOUND;   /* 検索／置換  見つからないときメッセージを表示 */
00226
00227     /* 検索文字列 */
00228     ::GetDlgItemText( m_hWnd, IDC_COMBO_TEXT, m_szText, sizeof( m_szText ));
00229     /* 置換後文字列 */
00230     ::GetDlgItemText( m_hWnd, IDC_COMBO_TEXT2, m_szText2, sizeof( m_szText2 ));
00231
00232     /* 置換 ダイアログを自動的に閉じる */
00233     m_pShareData->m_Common.m_bAutoCloseDlgReplace = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_bAutoCloseDlgReplace );
00234
00235     /* 先頭（末尾）から再検索 2002.01.26 hor */
00236     m_pShareData->m_Common.m_bSearchAll = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_SEARCHALL );
00237
00238     if( 0 < lstrlen( m_szText ) ){
00239         /* 正規表現？ */
00240         // From Here Jun. 26, 2001 genta
00241         //  正規表現ライブラリの差し替えに伴う処理の見直し
00242         int nFlag = 0x00;
00243         nFlag |= m_bLoHiCase ? 0x01 : 0x00;
00244         if( m_bRegularExp && !CheckRegexpSyntax( m_szText, m_hWnd, true, nFlag ) ){
00245             return -1;
00246         }
00247         // To Here Jun. 26, 2001 genta 正規表現ライブラリ差し替え
00248
00249         /* 検索文字列 */
00250         //@@@ 2002.2.2 YAZAKI CShareData.AddToSearchKeyArr()追加に伴う変更
00251         CShareData::getInstance()->AddToSearchKeyArr( m_szText );
00252
00253         /* 置換後文字列 */
00254         //@@@ 2002.2.2 YAZAKI CShareData.AddToReplaceKeyArr()追加に伴う変更
00255         CShareData::getInstance()->AddToReplaceKeyArr( m_szText2 );
00256
00257         // From Here 2001.12.03 hor
00258         // クリップボードから貼り付ける？
00259         m_nPaste=IsDlgButtonChecked( m_hWnd, IDC_CHK_PASTE );
00260         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), !m_nPaste );
00261         // 置換対象
00262         m_nReplaceTarget=0;
00263         if(::IsDlgButtonChecked( m_hWnd, IDC_RADIO_INSERT )){
00264             m_nReplaceTarget=1;
00265         }else
00266         if(::IsDlgButtonChecked( m_hWnd, IDC_RADIO_ADD )){
00267             m_nReplaceTarget=2;
00268         }
00269         // To Here 2001.12.03 hor
00270
00271         return 1;
00272     }else{
00273         return 0;
00274     }
00275 }
00276
00277
00278
00279
00280 BOOL CDlgReplace::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00281 {
00282     m_hWnd = hwndDlg;
00283     //  Jun. 26, 2001 genta
00284     //  この位置で正規表現の初期化をする必要はない
00285     //  他との一貫性を保つため削除
00286
00287     /* ユーザーがコンボ ボックスのエディット コントロールに入力できるテキストの長さを制限する */
00288     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00289     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00290
00291     /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00292     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00293     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00294
00295
00296     /* テキスト選択中か */
00297     if( m_bSelected ){
00298         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SEARCHPREV ), FALSE );    // 2001.12.03 hor コメント解除
00299         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SEARCHNEXT ), FALSE );    // 2001.12.03 hor コメント解除
00300         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_REPALCE ), FALSE );       // 2001.12.03 hor コメント解除
00301         ::CheckDlgButton( m_hWnd, IDC_RADIO_SELECTEDAREA, TRUE );
00302 //      ::CheckDlgButton( m_hWnd, IDC_RADIO_ALLAREA, FALSE );                       // 2001.12.03 hor コメント
00303     }else{
00304 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_SELECTEDAREA ), FALSE );   // 2001.12.03 hor コメント
00305 //      ::CheckDlgButton( m_hWnd, IDC_RADIO_SELECTEDAREA, FALSE );                  // 2001.12.03 hor コメント
00306         ::CheckDlgButton( m_hWnd, IDC_RADIO_ALLAREA, TRUE );
00307     }
00308     /* 基底クラスメンバ */
00309     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00310
00311 }
00312
00313
00314
00315
00316 BOOL CDlgReplace::OnBnClicked( int wID )
00317 {
00318     CEditView*  pcEditView = (CEditView*)m_lParam;
00319 //  int         nNewPos;
00320 //  int         nReplaceNum;
00321 //  char        szLabel[64];
00322 //  int         nAllLineNum;
00323 //  HWND        hwndProgress;
00324 //  HWND        hwndStatic;
00325 //  MSG         msg;
00326
00327 // From Here 2001.12.03 hor
00328 //  int         colFrom;        //選択範囲開始桁
00329 //  int         linFrom;        //選択範囲開始行
00330 //  int         colTo,colToP;   //選択範囲終了桁
00331 //  int         linTo,linToP;   //選択範囲終了行
00332 //  int         colDif = 0;     //置換後の桁調整
00333 //  int         linDif = 0;     //置換後の行調整
00334 //  int         colOld = 0;     //検索後の選択範囲次桁
00335 //  int         linOld = 0;     //検索後の行
00336 //  int         lineCnt;        //置換前の行数
00337 //  int         linPrev = 0;    //前回の検索行(矩形) @@@2001.12.31 YAZAKI warning退治
00338 //  int         linNext;        //次回の検索行(矩形)
00339 //  int         colTmp,linTmp,colLast,linLast;
00340 //  int         bBeginBoxSelect; // 矩形選択？
00341 //  const char* pLine;
00342 //  int         nLineLen;
00343 //  const CLayout* pcLayout;
00344 //  int         bLineOffset=FALSE;
00345 //  int         bLineChecked=FALSE;
00346
00347     switch( wID ){
00348     case IDC_CHK_PASTE:
00349         /* テキストの貼り付け */
00350         if( ::IsDlgButtonChecked( m_hWnd, IDC_CHK_PASTE ) &&
00351             !pcEditView->m_pcEditDoc->IsEnablePaste() ){
00352             ::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,"クリップボードに有効なデータがありません！");
00353             ::CheckDlgButton( m_hWnd, IDC_CHK_PASTE, FALSE );
00354         }
00355         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), !(::IsDlgButtonChecked( m_hWnd, IDC_CHK_PASTE)) );
00356         return TRUE;
00357     case IDC_RADIO_SELECTEDAREA:
00358         /* 範囲範囲 */
00359         if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_ALLAREA ) ){
00360             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHPREV ), TRUE );
00361             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHNEXT ), TRUE );
00362             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_REPALCE ), TRUE );
00363         }else{
00364             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHPREV ), FALSE );
00365             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHNEXT ), FALSE );
00366             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_REPALCE ), FALSE );
00367         }
00368         return TRUE;
00369     case IDC_RADIO_ALLAREA:
00370         /* ファイル全体 */
00371         if( ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_ALLAREA ) ){
00372             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHPREV ), TRUE );
00373             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHNEXT ), TRUE );
00374             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_REPALCE ), TRUE );
00375         }else{
00376             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHPREV ), FALSE );
00377             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_SEARCHNEXT ), FALSE );
00378             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_BUTTON_REPALCE ), FALSE );
00379         }
00380         return TRUE;
00381 // To Here 2001.12.03 hor
00382     case IDC_BUTTON_HELP:
00383         /* 「置換」のヘルプ */
00384         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00385         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_REPLACE_DIALOG) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00386         return TRUE;
00387 //  case IDC_CHK_LOHICASE:  /* 大文字と小文字を区別する */
00388 //      MYTRACE( "IDC_CHK_LOHICASE\n" );
00389 //      return TRUE;
00390 //  case IDC_CHK_WORDONLY:  /* 一致する単語のみ検索 */
00391 //      MYTRACE( "IDC_CHK_WORDONLY\n" );
00392 //      break;
00393     case IDC_CHK_REGULAREXP:    /* 正規表現 */
00394 //      MYTRACE( "IDC_CHK_REGULAREXP ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) = %d\n", ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) );
00395         if( ::IsDlgButtonChecked( m_hWnd, IDC_CHK_REGULAREXP ) ){
00396             // From Here Jun. 26, 2001 genta
00397             //  正規表現ライブラリの差し替えに伴う処理の見直し
00398             if( !CheckRegexpVersion( m_hWnd, IDC_STATIC_JRE32VER, true ) ){
00399                 ::CheckDlgButton( m_hWnd, IDC_CHK_REGULAREXP, 0 );
00400             }else{
00401             // To Here Jun. 26, 2001 genta
00402
00403                 /* 英大文字と英小文字を区別する */
00404                 //  Jan. 31, 2002 genta
00405                 //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00406                 //::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 1 );
00407                 //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), FALSE );
00408
00409                 // 2001/06/23 N.Nakatani
00410                 /* 単語単位で探す */
00411                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), FALSE );
00412
00413                 /*「すべて置換」は置換の繰返し */
00414                 ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_CONSECUTIVEALL ), TRUE );   // 2007.01.16 ryoji
00415             }
00416         }else{
00417             /* 英大文字と英小文字を区別する */
00418             //::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_LOHICASE ), TRUE );
00419             //  Jan. 31, 2002 genta
00420             //  大文字・小文字の区別は正規表現の設定に関わらず保存する
00421             //::CheckDlgButton( m_hWnd, IDC_CHK_LOHICASE, 0 );
00422
00423             // 2001/06/23 N.Nakatani
00424             /* 単語単位で探す */
00425             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHK_WORD ), TRUE );
00426
00427             /*「すべて置換」は置換の繰返し */
00428             ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_CONSECUTIVEALL ), FALSE );  // 2007.01.16 ryoji
00429         }
00430         return TRUE;
00431 //  case IDOK:          /* 下検索 */
00432 //      /* ダイアログデータの取得 */
00433 //      nRet = GetData();
00434 //      if( 0 < nRet ){
00435 //          ::EndDialog( hwndDlg, 2 );
00436 //      }else
00437 //      if( 0 == nRet ){
00438 //          ::EndDialog( hwndDlg, 0 );
00439 //      }
00440 //      return TRUE;
00441
00442
00443     case IDC_BUTTON_SEARCHPREV: /* 上検索 */
00444         if( 0 < GetData() ){
00445
00446             // 検索開始位置を登録 02/07/28 ai start
00447             if( TRUE == pcEditView->m_bSearch ){
00448                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00449                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00450                 pcEditView->m_bSearch = FALSE;
00451             }// 02/07/28 ai end
00452
00453             /* コマンドコードによる処理振り分け */
00454             /* 前を検索 */
00455             pcEditView->HandleCommand( F_SEARCH_PREV, TRUE, (LPARAM)m_hWnd, 0, 0, 0 );
00456             /* 再描画 */
00457             pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00458         }else{
00459 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
00460                 "文字列を指定してください。"
00461             );
00462         }
00463         return TRUE;
00464     case IDC_BUTTON_SEARCHNEXT: /* 下検索 */
00465         if( 0 < GetData() ){
00466
00467             // 検索開始位置を登録 02/07/28 ai start
00468             if( TRUE == pcEditView->m_bSearch ){
00469                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00470                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00471                 pcEditView->m_bSearch = FALSE;
00472             }// 02/07/28 ai end
00473
00474             /* コマンドコードによる処理振り分け */
00475             /* 次を検索 */
00476             pcEditView->HandleCommand( F_SEARCH_NEXT, TRUE, (LPARAM)m_hWnd, 0, 0, 0 );
00477             /* 再描画 */
00478             pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00479
00480             // 2001.12.03 hor
00481             //  ダイアログを閉じないとき、IDC_COMBO_TEXT 上で Enter した場合に
00482             //  キャレットが表示されなくなるのを回避する
00483             ::SendMessage(m_hWnd,WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(m_hWnd,IDC_COMBO_TEXT ),TRUE);
00484             // To Here 2001.12.03 hor
00485
00486         }else{
00487 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
00488                 "文字列を指定してください。"
00489             );
00490         }
00491         return TRUE;
00492
00493     case IDC_BUTTON_SETMARK:    //2002.01.16 hor 該当行マーク
00494         if( 0 < GetData() ){
00495             pcEditView->HandleCommand( F_BOOKMARK_PATTERN, FALSE, 0, 0, 0, 0 );
00496             ::SendMessage(m_hWnd,WM_NEXTDLGCTL,(WPARAM)::GetDlgItem(m_hWnd,IDC_COMBO_TEXT ),TRUE);
00497         }
00498         return TRUE;
00499
00500     case IDC_BUTTON_REPALCE:    /* 置換 */
00501         if( 0 < GetData() ){
00502
00503             // 置換開始位置を登録 02/07/28 ai start
00504             if( TRUE == pcEditView->m_bSearch ){
00505                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00506                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00507                 pcEditView->m_bSearch = FALSE;
00508             }// 02/07/28 ai end
00509
00510             /* 置換 */
00511             //@@@ 2002.2.2 YAZAKI 置換コマンドをCEditViewに新設
00512             //@@@ 2002/04/08 YAZAKI 親ウィンドウのハンドルを渡すように変更。
00513             pcEditView->HandleCommand( F_REPLACE, TRUE, (LPARAM)m_hWnd, 0, 0, 0 );
00514             /* 再描画 */
00515             pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00516         }else{
00517 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
00518                 "文字列を指定してください。"
00519             );
00520         }
00521         return TRUE;
00522     case IDC_BUTTON_REPALCEALL: /* すべて置換 */
00523         if( 0 < GetData() ){
00524             // 置換開始位置を登録 02/07/28 ai start
00525             if( TRUE == pcEditView->m_bSearch ){
00526                 pcEditView->m_nSrchStartPosX_PHY = m_nEscCaretPosX_PHY;
00527                 pcEditView->m_nSrchStartPosY_PHY = m_nEscCaretPosY_PHY;
00528                 pcEditView->m_bSearch = FALSE;
00529             }// 02/07/28 ai end
00530
00531             /* すべて行置換時の処置は「すべて置換」は置換の繰返しオプションOFFの場合にして削除 2007.01.16 ryoji */
00532             pcEditView->HandleCommand( F_REPLACE_ALL, TRUE, 0, 0, 0, 0 );
00533             pcEditView->HandleCommand( F_REDRAW, TRUE, 0, 0, 0, 0 );
00534
00535             /* アクティブにする */
00536             ActivateFrameWindow( m_hWnd );
00537
00538 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_TOPMOST, GSTR_APPNAME,
00539                 "%d箇所を置換しました。", m_nReplaceCnt);
00540
00541 //          nNewPos = 100;
00542 //          ::SendMessage( ::GetDlgItem( m_hWnd, IDC_PROGRESS_REPLACE ), PBM_SETPOS, nNewPos, 0 );
00543
00544 //          ::ShowWindow( ::GetDlgItem( m_hWnd, IDC_PROGRESS_REPLACE ), SW_HIDE );
00545
00546 //          if( !cDlgCancel.IsCanceled() ){
00547             if( !m_bCanceled ){
00548                 if( m_bModal ){     /* モーダルダイアログか */
00549                     /* 置換ダイアログを閉じる */
00550                     ::EndDialog( m_hWnd, 0 );
00551                 }else{
00552                     /* 置換 ダイアログを自動的に閉じる */
00553                     if( m_pShareData->m_Common.m_bAutoCloseDlgReplace ){
00554                         ::DestroyWindow( m_hWnd );
00555                     }
00556                 }
00557             }
00558             return TRUE;
00559         }else{
00560 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
00561                 "置換条件を指定してください。"
00562             );
00563         }
00564         return TRUE;
00565 //  case IDCANCEL:
00566 //      ::EndDialog( hwndDlg, 0 );
00567 //      return TRUE;
00568     }
00569
00570     /* 基底クラスメンバ */
00571     return CDialog::OnBnClicked( wID );
00572 }
00573
00574 //@@@ 2002.01.18 add start
00575 LPVOID CDlgReplace::GetHelpIdTable(void)
00576 {
00577     return (LPVOID)p_helpids;
00578 }
00579 //@@@ 2002.01.18 add end
00580
00581 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgReplace.h

CDlgReplace.h

置換ダイアログ [詳細]

#include "CDialog.h"

CDlgReplace.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgReplace
置換ダイアログボックス [詳細]

説明

置換ダイアログ

作者:
Norio Nakatani
日付:
1998/10/02 新規作成

CDlgReplace.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgReplace.h ソースファイル

CDlgReplace.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, hor
00010     Copyright (C) 2002, hor
00011     Copyright (C) 2007, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 class CDlgReplace;
00018
00019 #ifndef _CDLGREPLACE_H_
00020 #define _CDLGREPLACE_H_
00021
00022 #include "CDialog.h"
00023 /*-----------------------------------------------------------------------
00024 クラスの宣言
00025 -----------------------------------------------------------------------*/
00029 class SAKURA_CORE_API CDlgReplace : public CDialog
00030 {
00031 public:
00032     /*
00033     ||  Constructors
00034     */
00035     CDlgReplace();
00036     /*
00037     ||  Attributes & Operations
00038     */
00039     HWND DoModeless( HINSTANCE, HWND, LPARAM, BOOL );   /* モーダルダイアログの表示 */
00040     void ChangeView( LPARAM );  /* モードレス時：置換・検索対象となるビューの変更 */
00041
00042     int             m_bLoHiCase;    /* 英大文字と英小文字を区別する */
00043     int             m_bWordOnly;    /* 一致する単語のみ検索する */
00044     int             m_bConsecutiveAll;  /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
00045     int             m_bRegularExp;  /* 正規表現 */
00046     char            m_szText[_MAX_PATH + 1];    /* 検索文字列 */
00047     char            m_szText2[_MAX_PATH + 1];   /* 置換後文字列 */
00048     BOOL            m_bSelectedArea;    /* 選択範囲内置換 */
00049     int             m_bNOTIFYNOTFOUND;              /* 検索／置換  見つからないときメッセージを表示 */
00050     int             m_nSettingType;
00051     BOOL            m_bSelected;    /* テキスト選択中か */
00052     int             m_nReplaceTarget;   /* 置換対象 */  // 2001.12.03 hor
00053     int             m_nPaste;           /* 貼り付け？ */    // 2001.12.03 hor
00054     int             m_nReplaceCnt;      //すべて置換の実行結果      // 2002.02.08 hor
00055     bool            m_bCanceled;        //すべて置換で中断したか    // 2002.02.08 hor
00056     int             m_nEscCaretPosX_PHY;    /* 検索/置換開始時のカーソル位置退避エリア 02/07/28 ai */
00057     int             m_nEscCaretPosY_PHY;    /* 検索/置換開始時のカーソル位置退避エリア 02/07/28 ai */
00058
00059 protected:
00060     /*
00061     ||  実装ヘルパ関数
00062     */
00063     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00064     BOOL OnBnClicked( int );
00065     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00066
00067     void SetData( void );   /* ダイアログデータの設定 */
00068     int GetData( void );    /* ダイアログデータの取得 */
00069 };
00070
00071
00072
00074 #endif /* _CDLGREPLACE_H_ */
00075
00076
00077 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgSameColor.cpp

CDlgSameColor.cpp

文字色／背景色統一ダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "sakura.hh"
#include "CDlgSameColor.h"

CDlgSameColor.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

文字色／背景色統一ダイアログ

作者:
ryoji
日付:
2006/04/26 作成

CDlgSameColor.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDOK,                       HIDOK_SAMECOLOR,
    IDCANCEL,                   HIDCANCEL_SAMECOLOR,
    IDC_BUTTON_HELP,            HIDC_BUTTON_SAMECOLOR_HELP,
    IDC_LIST_COLORS,            HIDC_LIST_SAMECOLOR_COLORS,
    IDC_BUTTON_SELALL,          HIDC_BUTTON_SAMECOLOR_SELALL,
    IDC_BUTTON_SELNOTING,       HIDC_BUTTON_SAMECOLOR_SELNOTING,
    IDC_LIST_ITEMINFO,          HIDC_LIST_SAMECOLOR_ITEMINFO,
    IDC_STATIC_COLOR,           HIDC_STATIC_COLOR,
    0, 0
}

CDlgSameColor.cpp の 36 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgSameColor.cpp ソースファイル

CDlgSameColor.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2006, ryoji
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #include "stdafx.h"
00032 #include "sakura_rc.h"
00033 #include "sakura.hh"
00034 #include "CDlgSameColor.h"
00035
00036 static const DWORD p_helpids[] = {  // 2006.10.10 ryoji
00037     IDOK,                       HIDOK_SAMECOLOR,                        // OK
00038     IDCANCEL,                   HIDCANCEL_SAMECOLOR,                    // キャンセル
00039     IDC_BUTTON_HELP,            HIDC_BUTTON_SAMECOLOR_HELP,             // ヘルプ
00040     IDC_LIST_COLORS,            HIDC_LIST_SAMECOLOR_COLORS,             // 変更対象の色
00041     IDC_BUTTON_SELALL,          HIDC_BUTTON_SAMECOLOR_SELALL,           // 全チェック
00042     IDC_BUTTON_SELNOTING,       HIDC_BUTTON_SAMECOLOR_SELNOTING,        // 全解除
00043     IDC_LIST_ITEMINFO,          HIDC_LIST_SAMECOLOR_ITEMINFO,           // 選択中の色に対応する項目のリスト
00044     IDC_STATIC_COLOR,           HIDC_STATIC_COLOR,                      // 統一色
00045     0, 0
00046 };
00047
00048 LPVOID CDlgSameColor::GetHelpIdTable( void )
00049 {
00050     return (LPVOID)p_helpids;
00051 }
00052
00053 CDlgSameColor::CDlgSameColor() :
00054     m_wpColorStaticProc(NULL),
00055     m_wpColorListProc(NULL),
00056     m_wID(0),
00057     m_pTypes(NULL),
00058     m_cr(0)
00059 {
00060     return;
00061 }
00062
00063 CDlgSameColor::~CDlgSameColor()
00064 {
00065     return;
00066 }
00067
00071 INT_PTR CDlgSameColor::DispatchEvent( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
00072 {
00073     INT_PTR result;
00074     result = CDialog::DispatchEvent( hWnd, wMsg, wParam, lParam );
00075     switch( wMsg ){
00076     case WM_COMMAND:
00077         // 色選択リストボックスの選択が変更された場合の処理
00078         if( IDC_LIST_COLORS == LOWORD(wParam) && LBN_SELCHANGE == HIWORD(wParam) ){
00079             OnSelChangeListColors( (HWND)lParam );
00080         }
00081         break;
00082
00083     case WM_CTLCOLORLISTBOX:
00084         {
00085             // 項目リストの背景色を設定する処理
00086             HWND hwndLB = (HWND)lParam;
00087             if( IDC_LIST_ITEMINFO == ::GetDlgCtrlID( hwndLB ) ){
00088                 HDC hdcLB = (HDC)wParam;
00089                 ::SetTextColor( hdcLB, ::GetSysColor( COLOR_WINDOWTEXT ) );
00090                 ::SetBkMode( hdcLB, TRANSPARENT );
00091                 return (INT_PTR)::GetSysColorBrush( COLOR_BTNFACE );
00092             }
00093         }
00094         break;
00095
00096     default:
00097         break;
00098     }
00099     return result;
00100 }
00101
00109 int CDlgSameColor::DoModal( HINSTANCE hInstance, HWND hwndParent, WORD wID, Types* pTypes, COLORREF cr )
00110 {
00111     m_wID = wID;
00112     m_pTypes = pTypes;
00113     m_cr = cr;
00114
00115     (void)CDialog::DoModal( hInstance, hwndParent, IDD_SAMECOLOR, NULL );
00116
00117     return TRUE;
00118 }
00119
00123 BOOL CDlgSameColor::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00124 {
00125     BOOL bRet = CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00126
00127     HWND hwndStatic = ::GetDlgItem( m_hWnd, IDC_STATIC_COLOR );
00128     HWND hwndList = ::GetDlgItem( m_hWnd, IDC_LIST_COLORS );
00129
00130     // 指定色スタティック、色選択リストをサブクラス化
00131 	::SetWindowLongPtr( hwndStatic, GWLP_USERDATA, (LONG_PTR)this );
00132     m_wpColorStaticProc = (WNDPROC)::SetWindowLongPtr( hwndStatic, GWLP_WNDPROC, (LONG_PTR)ColorStatic_SubclassProc );
00133 	::SetWindowLongPtr( hwndList, GWLP_USERDATA, (LONG_PTR)this );
00134     m_wpColorListProc = (WNDPROC)::SetWindowLongPtr( hwndList, GWLP_WNDPROC, (LONG_PTR)ColorList_SubclassProc );
00135
00136
00137     TCHAR szText[30];
00138     int nItem;
00139     int i;
00140
00141     switch( m_wID ) // タイプ別設定ダイアログで押されたボタンID
00142     {
00143     case IDC_BUTTON_SAMETEXTCOLOR:
00144         // タイプ別設定から文字色を重複しないように取り出す
00145         ::SetWindowText( m_hWnd, _T("文字色統一") );
00146         for( i = 0; i < COLORIDX_LAST; ++i ){
00147             if( m_cr != m_pTypes->m_ColorInfoArr[i].m_colTEXT ){
00148                 _ultot( m_pTypes->m_ColorInfoArr[i].m_colTEXT, szText, 10 );
00149                 if( LB_ERR == ::SendMessage( hwndList, LB_FINDSTRING, (WPARAM)-1, (LPARAM)szText ) ){
00150                     nItem = ::SendMessage( hwndList, LB_ADDSTRING, (WPARAM)0, (LPARAM)szText );
00151                     ::SendMessage( hwndList, LB_SETITEMDATA, (WPARAM)nItem, (LPARAM)FALSE );
00152                 }
00153             }
00154         }
00155         break;
00156
00157     case IDC_BUTTON_SAMEBKCOLOR:
00158         // タイプ別設定から背景色を重複しないように取り出す
00159         ::SetWindowText( m_hWnd, _T("背景色統一") );
00160         for( i = 0; i < COLORIDX_LAST; ++i ){
00161             if( 0 != (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )   // 2006.12.18 ryoji フラグ利用で簡素化
00162                 continue;
00163             if( m_cr != m_pTypes->m_ColorInfoArr[i].m_colBACK ){
00164                 _ultot( m_pTypes->m_ColorInfoArr[i].m_colBACK, szText, 10 );
00165                 if( LB_ERR == ::SendMessage( hwndList, LB_FINDSTRING, (WPARAM)-1, (LPARAM)szText ) ){
00166                     nItem = ::SendMessage( hwndList, LB_ADDSTRING, (WPARAM)0, (LPARAM)szText );
00167                     ::SendMessage( hwndList, LB_SETITEMDATA, (WPARAM)nItem, (LPARAM)FALSE );
00168                 }
00169             }
00170         }
00171         break;
00172
00173     default:
00174         CloseDialog( IDCANCEL );
00175         break;
00176     }
00177
00178     if( 0 < ::SendMessage( hwndList, LB_GETCOUNT, (WPARAM)0, (LPARAM)0 ) ){
00179         ::SendMessage( hwndList, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00180         OnSelChangeListColors( hwndList );
00181     }
00182
00183     return bRet;
00184 }
00185
00189 BOOL CDlgSameColor::OnBnClicked( int wID )
00190 {
00191     HWND hwndList = ::GetDlgItem( m_hWnd, IDC_LIST_COLORS );
00192     int nItemNum = ::SendMessage( hwndList, LB_GETCOUNT, 0, 0 );
00193     BOOL bCheck;
00194     int i;
00195     int j;
00196
00197     switch( wID ){
00198     case IDC_BUTTON_HELP:
00199         // ヘルプ   // 2006.10.07 ryoji
00200         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, HLP000316 ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00201         return TRUE;
00202
00203     case IDC_BUTTON_SELALL:
00204     case IDC_BUTTON_SELNOTING:
00205         // 全選択／全解除の処理
00206         bCheck = (wID == IDC_BUTTON_SELALL);
00207         for( i = 0; i < nItemNum; ++i ){
00208             ::SendMessage( hwndList, LB_SETITEMDATA, (WPARAM)i, (LPARAM)bCheck );
00209         }
00210         ::InvalidateRect( hwndList, NULL, TRUE );
00211         break;
00212
00213     case IDOK:
00214         // タイプ別設定から選択色と同色のものを取り出して指定色に一括変更する
00215         TCHAR szText[30];
00216         LPTSTR pszStop;
00217         COLORREF cr;
00218
00219         for( i = 0; i < nItemNum; ++i ){
00220             bCheck = (BOOL)::SendMessage( hwndList, LB_GETITEMDATA, (WPARAM)i, (LPARAM)0 );
00221             if( bCheck ){
00222                 ::SendMessage( hwndList, LB_GETTEXT, (WPARAM)i, (LPARAM)szText );
00223                 cr = _tcstoul( szText, &pszStop, 10 );
00224
00225                 switch( m_wID )
00226                 {
00227                 case IDC_BUTTON_SAMETEXTCOLOR:
00228                     for( j = 0; j < COLORIDX_LAST; ++j ){
00229                         if( cr == m_pTypes->m_ColorInfoArr[j].m_colTEXT ){
00230                             m_pTypes->m_ColorInfoArr[j].m_colTEXT = m_cr;
00231                         }
00232                     }
00233                     break;
00234
00235                 case IDC_BUTTON_SAMEBKCOLOR:
00236                     for( j = 0; j < COLORIDX_LAST; ++j ){
00237                         if( cr == m_pTypes->m_ColorInfoArr[j].m_colBACK ){
00238                             m_pTypes->m_ColorInfoArr[j].m_colBACK = m_cr;
00239                         }
00240                     }
00241                     break;
00242
00243                 default:
00244                     break;
00245                 }
00246             }
00247         }
00248         break;
00249
00250     case IDCANCEL:
00251         break;
00252     }
00253     return CDialog::OnBnClicked( wID );
00254 }
00255
00259 BOOL CDlgSameColor::OnDrawItem( WPARAM wParam, LPARAM lParam )
00260 {
00261     LPDRAWITEMSTRUCT pDis = (LPDRAWITEMSTRUCT)lParam;   // 項目描画情報
00262     if( IDC_LIST_COLORS != pDis->CtlID )    // オーナー描画にしているのは色選択リストだけ
00263         return TRUE;
00264
00265     //
00266     // 色選択リストの描画処理
00267     //
00268     HBRUSH      hBrush;
00269     HBRUSH      hBrushOld;
00270     HPEN        hPen;
00271     HPEN        hPenOld;
00272     RECT        rc;
00273     TCHAR       szText[30];
00274     LPTSTR      pszStop;
00275     COLORREF    cr;
00276
00277     ::SendMessage( pDis->hwndItem, LB_GETTEXT, pDis->itemID, (LPARAM)szText );
00278     cr = _tcstoul( szText, &pszStop, 10 );
00279
00280     rc = pDis->rcItem;
00281
00282     // アイテム矩形塗りつぶし
00283     ::FillRect( pDis->hDC, &pDis->rcItem, ::GetSysColorBrush( COLOR_WINDOW ) );
00284
00285     // アイテムが選択状態
00286     if( pDis->itemState & ODS_SELECTED ){
00287         rc = pDis->rcItem;
00288         rc.left += (rc.bottom - rc.top);
00289         ::FillRect( pDis->hDC, &rc, ::GetSysColorBrush( COLOR_HIGHLIGHT ) );
00290     }
00291
00292     // アイテムにフォーカスがある
00293     if( pDis->itemState & ODS_FOCUS ){
00294         ::DrawFocusRect( pDis->hDC, &pDis->rcItem );
00295     }
00296
00297     // チェックボックス表示
00298     rc = pDis->rcItem;
00299     rc.top += 2;
00300     rc.bottom -= 2;
00301     rc.left += 2;
00302     rc.right = rc.left + (rc.bottom - rc.top);
00303     UINT uState =  DFCS_BUTTONCHECK | DFCS_FLAT;
00304     if( TRUE == (BOOL)pDis->itemData )
00305         uState |= DFCS_CHECKED;     // チェック状態
00306     ::DrawFrameControl( pDis->hDC, &rc, DFC_BUTTON, uState );
00307
00308     // 色見本矩形
00309     rc = pDis->rcItem;
00310     rc.left += rc.bottom - rc.top + 2;
00311     rc.top += 2;
00312     rc.bottom -= 2;
00313     rc.right -= 2;
00314     hBrush = ::CreateSolidBrush( cr );
00315     hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
00316     hPen = ::CreatePen( PS_SOLID, 1, ::GetSysColor( COLOR_3DSHADOW ) );
00317     hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00318     ::RoundRect( pDis->hDC, rc.left, rc.top, rc.right, rc.bottom , 5, 5 );
00319     ::SelectObject( pDis->hDC, hPenOld );
00320     ::SelectObject( pDis->hDC, hBrushOld );
00321     ::DeleteObject( hPen );
00322     ::DeleteObject( hBrush );
00323
00324     return TRUE;
00325 }
00326
00330 BOOL CDlgSameColor::OnSelChangeListColors( HWND hwndCtl )
00331 {
00332     // 色選択リストで現在フォーカスのある色について
00333     // タイプ別設定から同色の項目を取り出して項目リストに表示する
00334     HWND hwndListInfo;
00335     COLORREF cr;
00336     TCHAR szText[30];
00337     LPTSTR pszStop;
00338     int i;
00339     int j;
00340
00341     hwndListInfo = ::GetDlgItem( m_hWnd, IDC_LIST_ITEMINFO );
00342     ::SendMessage( hwndListInfo, LB_RESETCONTENT, (WPARAM)0, (LPARAM)0 );
00343
00344     i = ::SendMessage( hwndCtl, LB_GETCARETINDEX, (WPARAM)0, (LPARAM)0 );
00345     if( LB_ERR != i ){
00346         ::SendMessage( hwndCtl, LB_GETTEXT, (WPARAM)i, (LPARAM)szText );
00347         cr = _tcstoul( szText, &pszStop, 10 );
00348
00349         switch( m_wID )
00350         {
00351         case IDC_BUTTON_SAMETEXTCOLOR:
00352             for( j = 0; j < COLORIDX_LAST; ++j ){
00353                 if( cr == m_pTypes->m_ColorInfoArr[j].m_colTEXT ){
00354                     ::SendMessage( hwndListInfo, LB_ADDSTRING, (WPARAM)0, (LPARAM)m_pTypes->m_ColorInfoArr[j].m_szName);
00355                 }
00356             }
00357             break;
00358
00359         case IDC_BUTTON_SAMEBKCOLOR:
00360             for( j = 0; j < COLORIDX_LAST; ++j ){
00361             if( 0 != (g_ColorAttributeArr[j].fAttribute & COLOR_ATTRIB_NO_BACK) )   // 2006.12.18 ryoji フラグ利用で簡素化
00362                     continue;
00363                 if( cr == m_pTypes->m_ColorInfoArr[j].m_colBACK ){
00364                     ::SendMessage( hwndListInfo, LB_ADDSTRING, (WPARAM)0, (LPARAM)m_pTypes->m_ColorInfoArr[j].m_szName);
00365                 }
00366             }
00367             break;
00368
00369         default:
00370             break;
00371         }
00372     }
00373
00374     return TRUE;
00375 }
00376
00380 LRESULT CALLBACK CDlgSameColor::ColorStatic_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00381 {
00382     HDC         hDC;
00383     HBRUSH      hBrush;
00384     HBRUSH      hBrushOld;
00385     HPEN        hPen;
00386     HPEN        hPenOld;
00387     RECT        rc;
00388
00389     CDlgSameColor* pCDlgSameColor;
00390     pCDlgSameColor = (CDlgSameColor*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00391
00392     switch( uMsg ){
00393     case WM_PAINT:
00394         // ウィンドウ描画
00395         PAINTSTRUCT ps;
00396
00397         hDC = ::BeginPaint( hwnd, &ps );
00398
00399         // 色見本矩形
00400         ::GetClientRect( hwnd, &rc );
00401         rc.left += 2;
00402         rc.top += 2;
00403         rc.right -=2;
00404         rc.bottom -= 2;
00405         hBrush = ::CreateSolidBrush( pCDlgSameColor->m_cr );
00406         hBrushOld = (HBRUSH)::SelectObject( hDC, hBrush );
00407         hPen = ::CreatePen( PS_SOLID, 1, ::GetSysColor( COLOR_3DSHADOW ) );
00408         hPenOld = (HPEN)::SelectObject( hDC, hPen );
00409         ::RoundRect( hDC, rc.left, rc.top, rc.right, rc.bottom, 5, 5 );
00410         ::SelectObject( hDC, hPenOld );
00411         ::SelectObject( hDC, hBrushOld );
00412         ::DeleteObject( hPen );
00413         ::DeleteObject( hBrush );
00414
00415         ::EndPaint( hwnd, &ps );
00416         return (LRESULT)0;
00417
00418     case WM_ERASEBKGND:
00419         // 背景描画
00420         hDC = (HDC)wParam;
00421         ::GetClientRect( hwnd, &rc );
00422
00423         // 親にWM_CTLCOLORSTATICを送って背景ブラシを取得し、背景描画する
00424         hBrush = (HBRUSH)::SendMessage( GetParent( hwnd ), WM_CTLCOLORSTATIC, wParam, (LPARAM)hwnd );
00425         hBrushOld = (HBRUSH)::SelectObject( hDC, hBrush );
00426         ::FillRect( hDC, &rc, hBrush );
00427         ::SelectObject( hDC, hBrushOld );
00428
00429         return (LRESULT)1;
00430
00431     case WM_DESTROY:
00432         // サブクラス化解除
00433 		::SetWindowLongPtr( hwnd, GWLP_WNDPROC, (LONG_PTR)pCDlgSameColor->m_wpColorStaticProc );
00434         pCDlgSameColor->m_wpColorStaticProc = NULL;
00435         return (LRESULT)0;
00436
00437     default:
00438         break;
00439     }
00440
00441     return CallWindowProc( (WNDPROC)pCDlgSameColor->m_wpColorStaticProc, hwnd, uMsg, wParam, lParam );
00442 }
00443
00447 LRESULT CALLBACK CDlgSameColor::ColorList_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00448 {
00449     POINT po;
00450     RECT rcItem;
00451     RECT rc;
00452     int nItemNum;
00453     int i;
00454
00455     CDlgSameColor* pCDlgSameColor;
00456     pCDlgSameColor = (CDlgSameColor*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00457
00458     switch( uMsg ){
00459     case WM_LBUTTONUP:
00460         // マウスボタン下にある項目の選択／選択解除をトグルする
00461         po.x = LOWORD(lParam);  // horizontal position of cursor
00462         po.y = HIWORD(lParam);  // vertical position of cursor
00463         nItemNum = ::SendMessage( hwnd, LB_GETCOUNT, 0, 0 );
00464         for( i = 0; i < nItemNum; ++i ){
00465             ::SendMessage( hwnd, LB_GETITEMRECT, i, (LPARAM)&rcItem );
00466             rc = rcItem;
00467             rc.top += 2;
00468             rc.bottom -= 2;
00469             rc.left += 2;
00470             rc.right = rc.left + (rc.bottom - rc.top);
00471             if( ::PtInRect( &rc, po ) ){
00472                 BOOL bCheck;
00473                 bCheck = !(BOOL)::SendMessage( hwnd, LB_GETITEMDATA, (WPARAM)i, (LPARAM)0 );
00474                 ::SendMessage( hwnd, LB_SETITEMDATA, (WPARAM)i, (LPARAM)bCheck );
00475                 ::InvalidateRect( hwnd, &rcItem, TRUE );
00476                 break;
00477             }
00478         }
00479         break;
00480
00481     case WM_KEYUP:
00482         // フォーカス項目の選択／選択解除をトグルする
00483         if( VK_SPACE == wParam ){
00484             BOOL bCheck;
00485             i = ::SendMessage( hwnd, LB_GETCARETINDEX, (WPARAM)0, (LPARAM)0 );
00486             if( LB_ERR != i ){
00487                 bCheck = !(BOOL)::SendMessage( hwnd, LB_GETITEMDATA, (WPARAM)i, (LPARAM)0 );
00488                 ::SendMessage( hwnd, LB_SETITEMDATA, (WPARAM)i, (LPARAM)bCheck );
00489                 ::InvalidateRect( hwnd, NULL, TRUE );
00490             }
00491         }
00492         break;
00493
00494     case WM_DESTROY:
00495         // サブクラス化解除
00496 		::SetWindowLongPtr( hwnd, GWLP_WNDPROC, (LONG_PTR)pCDlgSameColor->m_wpColorListProc );
00497         pCDlgSameColor->m_wpColorListProc = NULL;
00498         return (LRESULT)0;
00499
00500     default:
00501         break;
00502     }
00503
00504     return ::CallWindowProc( (WNDPROC)pCDlgSameColor->m_wpColorListProc, hwnd, uMsg, wParam, lParam );
00505 }
00506
00507 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgSameColor.h

CDlgSameColor.h

文字色／背景色統一ダイアログ [詳細]

#include "CDialog.h"
#include "CShareData.h"

CDlgSameColor.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgSameColor
文字色／背景色統一ダイアログ [詳細]

説明

文字色／背景色統一ダイアログ

作者:
ryoji
日付:
2006/04/26 作成

CDlgSameColor.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgSameColor.h ソースファイル

CDlgSameColor.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2006, ryoji
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef SC_CDLGSAMECOLOR_H__
00032 #define SC_CDLGSAMECOLOR_H__
00033
00034 #include "CDialog.h"
00035 #include "CShareData.h"
00036
00042 class CDlgSameColor : public CDialog
00043 {
00044 public:
00045     CDlgSameColor();
00046     ~CDlgSameColor();
00047     int DoModal( HINSTANCE, HWND, WORD, Types*, COLORREF );
00048
00049 protected:
00050
00051     virtual LPVOID GetHelpIdTable( void );
00052     virtual INT_PTR DispatchEvent( HWND, UINT, WPARAM, LPARAM );
00053     virtual BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00054     virtual BOOL OnBnClicked( int );
00055     virtual BOOL OnDrawItem( WPARAM wParam, LPARAM lParam );
00056     BOOL OnSelChangeListColors( HWND hwndCtl );
00057
00058     static LRESULT CALLBACK ColorStatic_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
00059     static LRESULT CALLBACK ColorList_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
00060
00061     WNDPROC m_wpColorStaticProc;
00062     WNDPROC m_wpColorListProc;
00063
00064     WORD m_wID;
00065     Types* m_pTypes;
00066     COLORREF m_cr;
00067 };
00068
00069 #endif
00070
00071 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagJumpList.cpp

CDlgTagJumpList.cpp

タグジャンプリストダイアログボックス [詳細]

#include "stdafx.h"
#include <stdio.h>
#include "sakura_rc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "CDialog.h"
#include "CDlgTagJumpList.h"
#include "CSortedTagJumpList.h"
#include "CRecent.h"
#include "etc_uty.h"
#include "debug.h"
#include "my_icmp.h"
#include "charcode.h"
#include "sakura.hh"

CDlgTagJumpList.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD | p_helpids []
static const char * | p_extentions []

説明

タグジャンプリストダイアログボックス

作者:
MIK
日付:
2003.4.13

2005.03.31 MIK キーワード指定TagJump対応のため大幅に変更

CDlgTagJumpList.cpp で定義されています。

変数

const char* p_extentions[] [static]

CDlgTagJumpList.cpp の 66 行で定義されています。

参照元 CDlgTagJumpList::GetNameByType().

const DWORD p_helpids[]

初期値:

 {
    IDC_LIST_TAGJUMP,       HIDC_LIST_TAGJUMPLIST,
    IDOK,                   HIDC_TAGJUMPLIST_IDOK,
    IDCANCEL,               HIDC_TAGJUMPLIST_IDCANCEL,
    IDC_BUTTON_HELP,        HIDC_BUTTON_TAGJUMPLIST_HELP,
    IDC_KEYWORD,            HDIC_TAGJUMPLIST_KEYWORD,

    0, 0
}

CDlgTagJumpList.cpp の 53 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:22 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagJumpList.cpp ソースファイル

CDlgTagJumpList.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 2003, MIK
00010     Copyright (C) 2005, MIK
00011     Copyright (C) 2006, genta, ryoji
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00033
00034
00035
00036 #include "stdafx.h"
00037 #include <stdio.h>
00038 #include "sakura_rc.h"
00039 #include "global.h"
00040 #include "funccode.h"
00041 #include "mymessage.h"
00042 #include "CDialog.h"
00043 #include "CDlgTagJumpList.h"
00044 #include "CSortedTagJumpList.h"
00045 //#include <Shlwapi.h> // 2006.01.08 genta Not used
00046 #include "CRecent.h"
00047 #include "etc_uty.h"
00048 #include "debug.h"
00049 #include "my_icmp.h"
00050 #include "charcode.h"  // 2006.06.28 rastiv
00051
00052 #include "sakura.hh"
00053 const DWORD p_helpids[] = {
00054     IDC_LIST_TAGJUMP,       HIDC_LIST_TAGJUMPLIST,          //ファイル
00055     IDOK,                   HIDC_TAGJUMPLIST_IDOK,          //OK
00056     IDCANCEL,               HIDC_TAGJUMPLIST_IDCANCEL,      //キャンセル
00057     IDC_BUTTON_HELP,        HIDC_BUTTON_TAGJUMPLIST_HELP,   //ヘルプ
00058     IDC_KEYWORD,            HDIC_TAGJUMPLIST_KEYWORD,       //キーワード
00059 //  IDC_STATIC,             -1,
00060     0, 0
00061 };
00062
00063 /*
00064     ctags.exe が出力する、拡張子と対応する種類
00065 */
00066 static const char *p_extentions[] = {
00067     /*asm*/         "asm,s",                                "d=define,l=label,m=macro,t=type",
00068     /*asp*/         "asp,asa",                              "f=function,s=sub",
00069     /*awk*/         "awk,gawk,mawk",                        "f=function",
00070     /*beta*/        "bet",                                  "f=fragment,p=pattern,s=slot,v=virtual",
00071     /*c*/           "c,h",                                  "c=class,d=macro,e=enumerator,f=function,g=enum,m=member,n=namespace,p=prototype,s=struct,t=typedef,u=union,v=variable,x=externvar",
00072     /*c++*/         "c++,cc,cp,cpp,cxx,h++,hh,hp,hpp,hxx",  "c=class,d=macro,e=enumerator,f=function,g=enum,m=member,n=namespace,p=prototype,s=struct,t=typedef,u=union,v=variable,x=externvar",
00073     /*java*/        "java",                                 "c=class,d=macro,e=enumerator,f=function,g=enum,m=member,n=namespace,p=prototype,s=struct,t=typedef,u=union,v=variable,x=externvar",
00074     /*vera*/        "vr,vri,vrh",                           "c=class,d=macro,e=enumerator,f=function,g=enum,m=member,n=namespace,p=prototype,s=struct,t=typedef,u=union,v=variable,x=externvar",
00075     /*cobol*/       "cbl,cob",                              "d=data,f=file,g=group,p=paragraph,P=program,s=section",
00076     /*eiffel*/      "e",                                    "c=class,f=feature,l=local",
00077     /*fortran*/     "f,for,ftn,f77,f90,f95",                "b=block data,c=common,e=entry,f=function,i=interface,k=component,l=label,L=local,m=module,n=namelist,p=program,s=subroutine,t=type,v=variable",
00078     /*lisp*/        "cl,clisp,el,l,lisp,lsp,ml",            "f=function",
00079     /*lua*/         "lua",                                  "f=function",
00080     /*makefile*/    "mak",                                  "m=macro",
00081     /*pascal*/      "p,pas",                                "f=function,p=procedure",
00082     /*perl*/        "pl,pm,perl",                           "s=subroutine,p=package",
00083     /*php*/         "php,php3,phtml",                       "c=class,f=function",
00084     /*python*/      "py,python",                            "c=class,f=function,m=member",
00085     /*rexx*/        "cmd,rexx,rx",                          "s=subroutine",
00086     /*ruby*/        "rb",                                   "c=class,f=method,F=singleton method,m=mixin",
00087     /*scheme*/      "sch,scheme,scm,sm",                    "f=function,s=set",
00088     /*sh*/          "sh,bsh,bash,ksh,zsh",                  "f=function",
00089     /*slang*/       "sl",                                   "f=function,n=namespace",
00090     /*sql*/         "sql",                                  "c=cursor,d=prototype,f=function,F=field,l=local,P=package,p=procedure,r=record,s=subtype,t=table,T=trigger,v=variable",
00091     /*tcl*/         "tcl,tk,wish,itcl",                     "p=procedure,c=class,f=method",
00092     /*verilog*/     "v",                                    "f=function,m=module,P=parameter,p=port,r=reg,t=task,v=variable,w=wire",
00093     /*vim*/         "vim",                                  "f=function,v=variable",
00094     /*yacc*/        "y",                                    "l=label",
00095 //  /*vb*/          "bas,cls,ctl,dob,dsr,frm,pag",          "a=attribute,c=class,f=function,l=label,s=procedure,v=variable",
00096                     NULL,                                   NULL
00097 };
00098
00099
00100
00101 CDlgTagJumpList::CDlgTagJumpList()
00102     : m_cList( 100 ),
00103       m_nIndex( -1 ),
00104       m_nLoop( -1 ),
00105       m_pszFileName( NULL ),
00106       m_pszKeyword( NULL ),
00107       m_bTagJumpICase( FALSE ),
00108       m_bTagJumpAnyWhere( FALSE ),
00109       m_nTimerId( 0 )
00110 {
00111 }
00112
00113 CDlgTagJumpList::~CDlgTagJumpList()
00114 {
00115     Empty();
00116     m_nLoop = 0;
00117
00118     if( m_pszFileName ) free( m_pszFileName );
00119     m_pszFileName = NULL;
00120     if( m_pszKeyword ) free( m_pszKeyword );
00121     m_pszKeyword = NULL;
00122
00123     StopTimer();
00124 }
00125
00132 void CDlgTagJumpList::StopTimer( void )
00133 {
00134     if( m_nTimerId != 0 ){
00135         ::KillTimer( m_hWnd, m_nTimerId );
00136         m_nTimerId = 0;
00137     }
00138 }
00139
00149 void CDlgTagJumpList::StartTimer( void )
00150 {
00151     StopTimer();
00152     m_nTimerId = ::SetTimer( m_hWnd, 12345, TAGJUMP_TIMER_DELAY, NULL );
00153 }
00154
00161 void CDlgTagJumpList::Empty( void )
00162 {
00163     m_nIndex = -1;
00164     m_cList.Empty();
00165 }
00166
00167 /*
00168     モーダルダイアログの表示
00169
00170     @param[in] lParam 0=ダイレクトタグジャンプ, 1=キーワードを指定してタグジャンプ
00171 */
00172 int CDlgTagJumpList::DoModal(
00173     HINSTANCE   hInstance,
00174     HWND        hwndParent,
00175     LPARAM      lParam
00176 )
00177 {
00178     int ret = (int)CDialog::DoModal( hInstance, hwndParent, IDD_TAGJUMPLIST, lParam );
00179     StopTimer();
00180     return ret;
00181 }
00182
00183 /* ダイアログデータの設定 */
00184 void CDlgTagJumpList::SetData( void )
00185 {
00186     //  From Here 2005.04.03 MIK 設定値の読み込み
00187     if( 0 != m_lParam )
00188     {
00189         HWND hwndKey;
00190         hwndKey = ::GetDlgItem( m_hWnd, IDC_KEYWORD );
00191
00192         m_bTagJumpICase = m_pShareData->m_bTagJumpICase;
00193         ::CheckDlgButton( m_hWnd, IDC_CHECK_ICASE, m_bTagJumpICase ? BST_CHECKED : BST_UNCHECKED );
00194         m_bTagJumpAnyWhere = m_pShareData->m_bTagJumpAnyWhere;
00195         ::CheckDlgButton( m_hWnd, IDC_CHECK_ANYWHERE, m_bTagJumpAnyWhere ? BST_CHECKED : BST_UNCHECKED );
00196         ::SendMessage( hwndKey, CB_LIMITTEXT, (WPARAM)_MAX_PATH-1, 0 );
00197         CRecent cRecent;
00198         cRecent.EasyCreate( RECENT_FOR_TAGJUMP_KEYWORD );
00199         for( int i = 0; i < cRecent.GetItemCount(); i++ ){
00200             ::SendMessage( hwndKey, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)cRecent.GetItem(i) );
00201         }
00202         if( m_pszKeyword != NULL ){
00203             ::SetDlgItemText( m_hWnd, IDC_KEYWORD, m_pszKeyword );
00204         }
00205         else if( cRecent.GetItemCount() > 0 ){
00206             ::SendMessage( hwndKey, CB_SETCURSEL, 0, 0 );
00207         }
00208         cRecent.Terminate();
00209         StartTimer();
00210     }
00211     //  To Here 2005.04.03 MIK 設定値の読み込み
00212
00213     UpdateData();
00214 }
00215
00221 void CDlgTagJumpList::UpdateData( void )
00222 {
00223     HWND    hwndList;
00224     LV_ITEM lvi;
00225     char    tmp[32];
00226     int     nIndex;
00227     char    *p;
00228     int     count;
00229
00230     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST_TAGJUMP );
00231     ListView_DeleteAllItems( hwndList );
00232
00233     count = m_cList.GetCount();
00234
00235     for( nIndex = 0; nIndex < count; nIndex++ )
00236     {
00237         CSortedTagJumpList::TagJumpInfo* item;
00238         item = m_cList.GetPtr( nIndex );
00239         if( NULL == item ) break;
00240
00241         lvi.mask     = LVIF_TEXT;
00242         lvi.iItem    = nIndex;
00243         lvi.iSubItem = 0;
00244         lvi.pszText  = item->keyword;
00245         ListView_InsertItem( hwndList, &lvi );
00246
00247         wsprintf( tmp, "%d", item->depth );
00248         ListView_SetItemText( hwndList, nIndex, 1, tmp );
00249
00250         wsprintf( tmp, "%d", item->no );
00251         ListView_SetItemText( hwndList, nIndex, 2, tmp );
00252
00253         p = GetNameByType( item->type, item->filename );
00254         ListView_SetItemText( hwndList, nIndex, 3, p );
00255         free( p );
00256
00257         ListView_SetItemText( hwndList, nIndex, 4, item->filename );
00258
00259         ListView_SetItemText( hwndList, nIndex, 5, item->note );
00260
00261         ListView_SetItemState( hwndList, nIndex, 0, LVIS_SELECTED | LVIS_FOCUSED );
00262     }
00263
00264     //  数が多すぎる場合は切り捨てた旨を末尾に挿入
00265     if( m_cList.IsOverflow() )
00266     {
00267         lvi.mask     = LVIF_TEXT;
00268         lvi.iItem    = nIndex;
00269         lvi.iSubItem = 0;
00270         lvi.pszText  = "(通知)";
00271         ListView_InsertItem( hwndList, &lvi );
00272         ListView_SetItemText( hwndList, nIndex, 1, "" );
00273         ListView_SetItemText( hwndList, nIndex, 2, "" );
00274         ListView_SetItemText( hwndList, nIndex, 3, "" );
00275         ListView_SetItemText( hwndList, nIndex, 4, "(これ以降は切り捨てました)" );
00276         ListView_SetItemText( hwndList, nIndex, 5, "" );
00277     }
00278
00279     m_nIndex = SearchBestTag();
00280     if( m_nIndex != -1 )
00281     {
00282         ListView_SetItemState( hwndList, m_nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00283         ListView_EnsureVisible( hwndList, m_nIndex, FALSE );
00284     }
00285
00286     return;
00287 }
00288
00295 int CDlgTagJumpList::GetData( void )
00296 {
00297     HWND    hwndList;
00298
00299     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST_TAGJUMP );
00300     m_nIndex = ListView_GetNextItem( hwndList, -1, LVIS_SELECTED );
00301     if( m_nIndex == -1 || m_nIndex >= m_cList.GetCapacity() ) return FALSE;
00302
00303     //  From Here 2005.04.03 MIK 設定値の保存
00304     if( 0 != m_lParam )
00305     {
00306         m_pShareData->m_bTagJumpICase = m_bTagJumpICase;
00307         m_pShareData->m_bTagJumpAnyWhere = m_bTagJumpAnyWhere;
00308
00309         char    tmp[MAX_TAG_STRING_LENGTH];
00310         strcpy( tmp, "" );
00311         ::GetDlgItemText( m_hWnd, IDC_KEYWORD, tmp, sizeof( tmp ) / sizeof( char ) );
00312         SetKeyword( tmp );
00313
00314         //設定を保存
00315         CRecent cRecentTagJumpKeyword;
00316         cRecentTagJumpKeyword.EasyCreate( RECENT_FOR_TAGJUMP_KEYWORD );
00317         cRecentTagJumpKeyword.AppendItem( m_pszKeyword );
00318         cRecentTagJumpKeyword.Terminate();
00319     }
00320     //  To Here 2005.04.03 MIK
00321
00322     return TRUE;
00323 }
00324
00329 BOOL CDlgTagJumpList::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00330 {
00331     HWND        hwndList;
00332     LV_COLUMN   col;
00333     RECT        rc;
00334     long        lngStyle;
00335     BOOL        bRet;
00336
00337     m_hWnd = hwndDlg;
00338
00339     //リストビューの表示位置を取得する。
00340     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST_TAGJUMP );
00341     //ListView_DeleteAllItems( hwndList );
00342     rc.left = rc.top = rc.right = rc.bottom = 0;
00343     ::GetWindowRect( hwndList, &rc );
00344
00345     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00346     col.fmt      = LVCFMT_LEFT;
00347     col.cx       = (rc.right - rc.left) * 19 / 100;
00348     col.pszText  = "キーワード";
00349     col.iSubItem = 0;
00350     ListView_InsertColumn( hwndList, 0, &col );
00351
00352     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00353     col.fmt      = LVCFMT_CENTER;
00354     col.cx       = (rc.right - rc.left) * 6 / 100;
00355     col.pszText  = "階層";
00356     col.iSubItem = 1;
00357     ListView_InsertColumn( hwndList, 1, &col );
00358
00359     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00360     col.fmt      = LVCFMT_RIGHT;
00361     col.cx       = (rc.right - rc.left) * 8 / 100;
00362     col.pszText  = "行番号";
00363     col.iSubItem = 2;
00364     ListView_InsertColumn( hwndList, 2, &col );
00365
00366     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00367     col.fmt      = LVCFMT_LEFT;
00368     col.cx       = (rc.right - rc.left) * 9 / 100;
00369     col.pszText  = "種類";
00370     col.iSubItem = 3;
00371     ListView_InsertColumn( hwndList, 3, &col );
00372
00373     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00374     col.fmt      = LVCFMT_LEFT;
00375     col.cx       = (rc.right - rc.left) * 35 / 100;
00376     col.pszText  = "ファイル名";
00377     col.iSubItem = 4;
00378     ListView_InsertColumn( hwndList, 4, &col );
00379
00380     col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00381     col.fmt      = LVCFMT_LEFT;
00382     col.cx       = (rc.right - rc.left) * 20 / 100;
00383     col.pszText  = "備考";
00384     col.iSubItem = 5;
00385     ListView_InsertColumn( hwndList, 5, &col );
00386
00387     /* 行選択 */
00388     lngStyle = ::SendMessage( hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00389     lngStyle |= LVS_EX_FULLROWSELECT;
00390     ::SendMessage( hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, lngStyle );
00391
00392     HWND hwndKey;
00393     hwndKey = ::GetDlgItem( m_hWnd, IDC_KEYWORD );
00394     if( m_lParam == 0 ){
00395         //標準
00396         ::ShowWindow( ::GetDlgItem( m_hWnd, IDC_STATIC_KEYWORD ), FALSE );
00397         ::ShowWindow( hwndKey, FALSE );
00398         ::ShowWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_ICASE ), FALSE );
00399         ::ShowWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_ANYWHERE ), FALSE );
00400         bRet = TRUE;
00401     }else{
00402         //キーワード指定
00403         ::ShowWindow( ::GetDlgItem( m_hWnd, IDC_STATIC_KEYWORD ), TRUE );
00404         ::ShowWindow( hwndKey, TRUE );
00405         ::ShowWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_ICASE ), TRUE );
00406         ::ShowWindow( ::GetDlgItem( m_hWnd, IDC_CHECK_ANYWHERE ), TRUE );
00407         ::SetFocus( hwndKey );
00408         bRet = FALSE;   //for set focus
00409     }
00410
00411     /* 基底クラスメンバ */
00412     CDialog::OnInitDialog( m_hWnd, wParam, lParam );
00413
00414     return bRet;
00415 }
00416
00417 BOOL CDlgTagJumpList::OnBnClicked( int wID )
00418 {
00419     switch( wID )
00420     {
00421     case IDC_BUTTON_HELP:
00422         /* ヘルプ */
00423         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID( F_TAGJUMP_LIST ) );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00424         return TRUE;
00425
00426     case IDOK:          /* 左右に表示 */
00427         StopTimer();
00428         /* ダイアログデータの取得 */
00429         ::EndDialog( m_hWnd, (BOOL)GetData() );
00430         return TRUE;
00431
00432     case IDCANCEL:
00433         StopTimer();
00434         ::EndDialog( m_hWnd, FALSE );
00435         return TRUE;
00436
00437     // From Here 2005.04.03 MIK 検索条件設定
00438     case IDC_CHECK_ICASE:
00439         StartTimer();
00440         m_bTagJumpICase = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_ICASE ) == BST_CHECKED ? TRUE : FALSE;
00441         return TRUE;
00442
00443     case IDC_CHECK_ANYWHERE:
00444         StartTimer();
00445         m_bTagJumpAnyWhere = ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_ANYWHERE ) == BST_CHECKED ? TRUE : FALSE;
00446         return TRUE;
00447     // To Here 2005.04.03 MIK 検索条件設定
00448     }
00449
00450     /* 基底クラスメンバ */
00451     return CDialog::OnBnClicked( wID );
00452 }
00453
00454 BOOL CDlgTagJumpList::OnNotify( WPARAM wParam, LPARAM lParam )
00455 {
00456     NMHDR*  pNMHDR;
00457     HWND    hwndList;
00458
00459     pNMHDR = (NMHDR*)lParam;
00460
00461     hwndList = GetDlgItem( m_hWnd, IDC_LIST_TAGJUMP );
00462
00463     //  候補一覧リストボックス
00464     if( hwndList == pNMHDR->hwndFrom )
00465     {
00466         switch( pNMHDR->code )
00467         {
00468         case NM_DBLCLK:
00469             m_nIndex = ListView_GetNextItem( hwndList, -1, LVIS_SELECTED );
00470             if( m_nIndex == -1 || m_nIndex >= m_cList.GetCount() ) return TRUE;
00471
00472             StopTimer();
00473             ::EndDialog( m_hWnd, GetData() );
00474             return TRUE;
00475
00476         }
00477     }
00478
00479     /* 基底クラスメンバ */
00480     return CDialog::OnNotify( wParam, lParam );
00481 }
00482
00488 BOOL CDlgTagJumpList::OnTimer( WPARAM wParam )
00489 {
00490     StopTimer();
00491
00492     char    szKey[ MAX_TAG_STRING_LENGTH ];
00493     strcpy( szKey, "" );
00494     ::GetDlgItemText( m_hWnd, IDC_KEYWORD, szKey, sizeof( szKey ) );
00495     find_key( szKey );
00496     UpdateData();
00497
00498     return TRUE;
00499 }
00500
00506 BOOL CDlgTagJumpList::OnCbnEditChange( HWND hwndCtl, int wID )
00507 {
00508     StartTimer();
00509
00510     /* 基底クラスメンバ */
00511     return CDialog::OnCbnEditChange( hwndCtl, wID );
00512 }
00513
00514 BOOL CDlgTagJumpList::OnCbnSelChange( HWND hwndCtl, int wID )
00515 {
00516     StartTimer();
00517
00518     /* 基底クラスメンバ */
00519     return CDialog::OnCbnSelChange( hwndCtl, wID );
00520 }
00521
00522 #if 0
00523 BOOL CDlgTagJumpList::OnEditChange( HWND hwndCtl, int wID )
00524 {
00525     StartTimer();
00526
00527     /* 基底クラスメンバ */
00528     return CDialog::OnEditChange( hwndCtl, wID );
00529 }
00530 #endif
00531
00532 LPVOID CDlgTagJumpList::GetHelpIdTable( void )
00533 {
00534     return (LPVOID)p_helpids;
00535 }
00536
00537 bool CDlgTagJumpList::AddParam( char *s0, char *s1, int n2, char *s3, char *s4, int depth )
00538 {
00539     if( -1 == m_nIndex ) m_nIndex = 0;  //規定値
00540
00541     m_cList.AddParam( s0, s1, n2, s3[0], s4, depth );
00542
00543     return true;
00544 }
00545
00546 bool CDlgTagJumpList::GetSelectedParam( char *s0, char *s1, int *n2, char *s3, char *s4, int *depth )
00547 {
00548     if( -1 == m_nIndex || m_nIndex >= m_cList.GetCount() ) return false;
00549
00550     m_cList.GetParam( m_nIndex, s0, s1, n2, &s3[0], s4, depth );
00551
00552     return true;
00553 }
00554
00555 char *CDlgTagJumpList::GetNameByType( const char type, const char *name )
00556 {
00557     const char  *p;
00558     char    *token;
00559     int     i;
00560     //  2005.03.31 MIK
00561     char    tmp[MAX_TAG_STRING_LENGTH];
00562
00563     p = strrchr( name, '.' );
00564     if( ! p ) p = ".c"; //見つからないときは ".c" と想定する。
00565     p++;
00566
00567     for( i = 0; p_extentions[i]; i += 2 )
00568     {
00569         strcpy( tmp, p_extentions[i] );
00570         token = strtok( tmp, "," );
00571         while( token )
00572         {
00573             if( stricmp( p, token ) == 0 )
00574             {
00575                 strcpy( tmp, p_extentions[i+1] );
00576                 token = strtok( tmp, "," );
00577                 while( token )
00578                 {
00579                     if( token[0] == type )
00580                     {
00581                         return strdup( &token[2] );
00582                     }
00583
00584                     token = strtok( NULL, "," );
00585                 }
00586
00587                 return strdup( "" );
00588             }
00589
00590             token = strtok( NULL, "," );
00591         }
00592     }
00593
00594     return strdup( "" );
00595 }
00596
00600 void CDlgTagJumpList::SetFileName( const char *pszFileName )
00601 {
00602     if( NULL == pszFileName ) return;
00603
00604     if( m_pszFileName ) free( m_pszFileName );
00605
00606     m_pszFileName = strdup( pszFileName );
00607
00608     m_nLoop = CalcDirectoryDepth( m_pszFileName );
00609     if( m_nLoop <  0 ) m_nLoop =  0;
00610     if( m_nLoop > (_MAX_PATH/2) ) m_nLoop = (_MAX_PATH/2);  //\A\B\C...のようなとき1フォルダで2文字消費するので...
00611
00612     return;
00613 }
00614
00619 void CDlgTagJumpList::SetKeyword( const char *pszKeyword )
00620 {
00621     if( NULL == pszKeyword ) return;
00622
00623     if( m_pszKeyword ) free( m_pszKeyword );
00624
00625     m_pszKeyword = strdup( pszKeyword );
00626
00627     return;
00628 }
00629
00637 int CDlgTagJumpList::SearchBestTag( void )
00638 {
00639     if( m_cList.GetCount() <= 0 ) return -1;    //選べません。
00640     if( NULL == m_pszFileName ) return 0;
00641
00642     char    szFileSrc[1024];
00643     char    szFileDst[1024];
00644     char    szExtSrc[1024];
00645     char    szExtDst[1024];
00646     int     nMatch = -1;
00647     int     i;
00648     int     count;
00649
00650     strcpy( szFileSrc, "" );
00651     strcpy( szExtSrc,  "" );
00652     _splitpath( m_pszFileName, NULL, NULL, szFileSrc, szExtSrc );
00653
00654     count = m_cList.GetCount();
00655
00656     for( i = 0; i < count; i++ )
00657     {
00658         CSortedTagJumpList::TagJumpInfo* item;
00659         item = m_cList.GetPtr( i );
00660
00661         strcpy( szFileDst, "" );
00662         strcpy( szExtDst,  "" );
00663         _splitpath( item->filename, NULL, NULL, szFileDst, szExtDst );
00664
00665         if( stricmp( szFileSrc, szFileDst ) == 0 )
00666         {
00667             if( stricmp( szExtSrc, szExtDst ) == 0 ) return i;
00668             if( nMatch == -1 ) nMatch = i;
00669         }
00670     }
00671
00672     if( nMatch != -1 ) return nMatch;
00673
00674     return 0;
00675 }
00676
00683 void CDlgTagJumpList::find_key( const char* keyword )
00684 {
00685     char    szCurrentPath[1024];    //カレントフォルダ
00686     char    szTagFile[1024];        //タグファイル
00687     char    szLineData[1024];       //行バッファ
00688     char    s[5][1024];
00689     int     n2;
00690     int length = strlen( keyword );
00691     int nMatch;
00692     int i;
00693     FILE*   fp;
00694     int nRet;
00695     int cmp;
00696
00697     Empty();
00698
00699     if( length == 0 ) return;
00700
00701     strcpy( szCurrentPath, GetFilePath() );
00702     szCurrentPath[ strlen( szCurrentPath ) - strlen( GetFileName() ) ] = '\0';
00703
00704     for( i = 0; i <= m_nLoop; i++ )
00705     {
00706         //タグファイル名を作成する。
00707         wsprintf( szTagFile, "%s%s", szCurrentPath, TAG_FILENAME );
00708
00709         //タグファイルを開く。
00710         fp = fopen( szTagFile, "r" );
00711         if( fp )
00712         {
00713             nMatch = 0;
00714             while( fgets( szLineData, sizeof( szLineData ), fp ) )
00715             {
00716                 if( szLineData[0] <= '!' ) goto next_line;  //コメントならスキップ
00717                 //chop( szLineData );
00718
00719                 s[0][0] = s[1][0] = s[2][0] = s[3][0] = s[4][0] = '\0';
00720                 n2 = 0;
00721                 nRet = sscanf( szLineData,
00722                     TAG_FORMAT, //tagsフォーマット
00723                     s[0], s[1], &n2, s[3], s[4]
00724                     );
00725                 if( nRet < 4 ) goto next_line;
00726                 if( n2 <= 0 ) goto next_line;   //行番号不正(-excmd=nが指定されてないかも)
00727
00728                 if( m_bTagJumpAnyWhere ){
00729                     if( m_bTagJumpICase )
00730                         cmp = strstri( s[0], keyword ) != NULL ? 0 : -1;
00731                     else
00732                         cmp = strstr( s[0], keyword ) != NULL ? 0 : -1;
00733                 }else{
00734                     if( m_bTagJumpICase )
00735                         cmp = strnicmp( s[0], keyword, length );
00736                     else
00737                         cmp = strncmp( s[0], keyword, length );
00738                 }
00739
00740                 if( 0 == cmp )
00741                 {
00742                     m_cList.AddParam( s[0], s[1], n2, s[3][0], s[4], i );
00743                     nMatch++;
00744                 }else if( 0 < cmp ){
00745                     //  tagsはソートされているので，先頭からのcase sensitiveな
00746                     //  比較結果によって検索の時は処理の打ち切りが可能
00747                     //  2005.04.05 MIK バグ修正
00748                     if( (!m_bTagJumpICase) && (!m_bTagJumpAnyWhere) ) break;
00749                 }
00750 next_line:
00751                 //if( nMatch >= 10 ) break;
00752                 ;
00753             }
00754
00755             //ファイルを閉じる。
00756             fclose( fp );
00757
00758         }
00759
00760         strcat( szCurrentPath, "..\\" );
00761     }
00762 }
00763
00767 const char * CDlgTagJumpList::GetFileName( void )
00768 {
00769     const char *p, *pszName;
00770     pszName = p = GetFilePath();
00771     while( *p != '\0'  ){
00772         if( _IS_SJIS_1( (unsigned char)*p ) && _IS_SJIS_2( (unsigned char)p[1] ) ){
00773             p+=2;
00774         }else if( *p == '\\' ){
00775             pszName = p + 1;
00776             p++;
00777         }else{
00778             p++;
00779         }
00780     }
00781     return pszName;
00782 }
00783
00784 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagJumpList.h

CDlgTagJumpList.h

タグジャンプリストダイアログボックス [詳細]

#include "CDialog.h"
#include "CSortedTagJumpList.h"

CDlgTagJumpList.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CDlgTagJumpList
ダイレクトタグジャンプ候補一覧ダイアログ [詳細]

マクロ定義

#define | TAGJUMP_EDITBOX_IS_COMBO
#define | TAGJUMP_TIMER_DELAY 700
#define | TAG_FILENAME "tags"
#define | TAG_FORMAT "%[^\t\r\n]\t%[^\t\r\n]\t%d;\"\t%s\t%s"

説明

タグジャンプリストダイアログボックス

作者:
MIK
日付:
2003.4.13

CDlgTagJumpList.h で定義されています。

マクロ定義

#define TAG_FILENAME "tags"

CDlgTagJumpList.h の 49 行で定義されています。

参照元 CEditView::Command_TagJumpByTagsFile()・CDlgTagJumpList::find_key().

#define TAG_FORMAT "%[^\t\r\n]\t%[^\t\r\n]\t%d;\"\t%s\t%s"

CDlgTagJumpList.h の 52 行で定義されています。

参照元 CEditView::Command_TagJumpByTagsFile()・CDlgTagJumpList::find_key().

#define TAGJUMP_EDITBOX_IS_COMBO

CDlgTagJumpList.h の 44 行で定義されています。

#define TAGJUMP_TIMER_DELAY 700

CDlgTagJumpList.h の 47 行で定義されています。

参照元 CDlgTagJumpList::StartTimer().

Sakura-Editorに対してSat Oct 27 02:16:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagJumpList.h ソースファイル

CDlgTagJumpList.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009     Copyright (C) 2005, MIK
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032
00033
00034 class CDlgTagJumpList;
00035
00036 #ifndef _CDLGTAGJUMPLIST_H_
00037 #define _CDLGTAGJUMPLIST_H_
00038
00039 #include "CDialog.h"
00040 #include "CSortedTagJumpList.h"
00041
00042 //  @@ 2005.03.31 MIK
00043 //編集ボックスがコンボかどうか
00044 #define TAGJUMP_EDITBOX_IS_COMBO
00045
00046 //キーワードを入力して該当する情報を表示するまでの時間(ミリ秒)
00047 #define TAGJUMP_TIMER_DELAY 700
00048 //タグファイル名    //  @@ 2005.03.31 MIK 定数化
00049 #define TAG_FILENAME        "tags"
00050 //タグファイルのフォーマット    //  @@ 2005.03.31 MIK 定数化
00051 //  @@ 2005.04.03 MIK キーワードに空白が含まれる場合の考慮
00052 #define TAG_FORMAT          "%[^\t\r\n]\t%[^\t\r\n]\t%d;\"\t%s\t%s"
00053
00059 class SAKURA_CORE_API CDlgTagJumpList : public CDialog
00060 {
00061 public:
00062     /*
00063     ||  Constructors
00064     */
00065     CDlgTagJumpList();
00066     ~CDlgTagJumpList();
00067
00068     /*
00069     ||  Attributes & Operations
00070     */
00071     int DoModal( HINSTANCE, HWND, LPARAM ); /* モーダルダイアログの表示 */
00072
00073     //  @@ 2005.03.31 MIK 階層パラメータを追加
00074     bool AddParam( char *s0, char *s1, int n2, char *s3, char *s4, int depth ); //登録
00075     bool GetSelectedParam( char *s0, char *s1, int *n2, char *s3, char *s4, int *depth );   //取得
00076     void SetFileName( const char *pszFileName );
00077     void SetKeyword( const char *pszKeyword );  //  @@ 2005.03.31 MIK
00078
00079 protected:
00080     /*
00081     ||  実装ヘルパ関数
00082     */
00083     BOOL    OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00084     BOOL    OnBnClicked( int );
00085     BOOL    OnNotify( WPARAM wParam, LPARAM lParam );
00086     //  @@ 2005.03.31 MIK キーワード入力エリアのイベント処理
00087     BOOL    OnCbnSelChange( HWND hwndCtl, int wID );
00088     BOOL    OnCbnEditChange( HWND hwndCtl, int wID );
00089     //BOOL  OnEditChange( HWND hwndCtl, int wID );
00090     BOOL    OnTimer( WPARAM wParam );
00091     LPVOID  GetHelpIdTable( void );
00092     void    StopTimer( void );
00093     void    StartTimer( void );
00094
00095     void    SetData( void );    /* ダイアログデータの設定 */
00096     int     GetData( void );    /* ダイアログデータの取得 */
00097     void    UpdateData( void ); //  @@ 2005.03.31 MIK
00098
00099     char    *GetNameByType( const char type, const char *name );    //タイプを名前に変換する。
00100     int     SearchBestTag( void );  //もっとも確率の高そうなインデックスを返す。
00101     //  @@ 2005.03.31 MIK
00102     const char *GetFileName( void );
00103     const char *GetFilePath( void ){ return m_pszFileName != NULL ? m_pszFileName : ""; }
00104     void find_key( const char* keyword );
00105     void Empty( void );
00106
00107
00108
00109 private:
00110
00111     int     m_nIndex;
00112     char    *m_pszFileName;
00113     char    *m_pszKeyword;
00114     int     m_nLoop;
00115     CSortedTagJumpList  m_cList;
00116     UINT    m_nTimerId;
00117     BOOL    m_bTagJumpICase;
00118     BOOL    m_bTagJumpAnyWhere;
00119
00120 };
00121
00122 #endif  //_CDLGTAGJUMPLIST_H_
00123
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagsMake.cpp

CDlgTagsMake.cpp

タグファイル作成ダイアログボックス [詳細]

#include "stdafx.h"
#include <string.h>
#include "sakura_rc.h"
#include "CDlgTagsMake.h"
#include "etc_uty.h"
#include "debug.h"
#include "CEditDoc.h"
#include "global.h"
#include "funccode.h"
#include "mymessage.h"
#include "sakura.hh"

CDlgTagsMake.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

タグファイル作成ダイアログボックス

作者:
MIK
日付:
2003.5.12

CDlgTagsMake.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_EDIT_TAG_MAKE_FOLDER,   HIDC_EDIT_TAG_MAKE_FOLDER,
    IDC_BUTTON_TAG_MAKE_REF,    HIDC_BUTTON_TAG_MAKE_REF,
    IDC_EDIT_TAG_MAKE_CMDLINE,  HIDC_EDIT_TAG_MAKE_CMDLINE,
    IDC_CHECK_TAG_MAKE_RECURSE, HIDC_CHECK_TAG_MAKE_RECURSE,
    IDOK,                       HIDC_TAG_MAKE_IDOK,
    IDCANCEL,                   HIDC_TAG_MAKE_IDCANCEL,
    IDC_BUTTON_HELP,            HIDC_BUTTON_TAG_MAKE_HELP,

    0, 0
}

CDlgTagsMake.cpp の 44 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagsMake.cpp ソースファイル

CDlgTagsMake.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009     Copyright (C) 2006, ryoji
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #include "stdafx.h"
00033 #include <string.h>
00034 #include "sakura_rc.h"
00035 #include "CDlgTagsMake.h"
00036 #include "etc_uty.h"
00037 #include "debug.h"
00038 #include "CEditDoc.h"
00039 #include "global.h"
00040 #include "funccode.h"
00041 #include "mymessage.h"
00042
00043 #include "sakura.hh"
00044 const DWORD p_helpids[] = { //13700
00045     IDC_EDIT_TAG_MAKE_FOLDER,   HIDC_EDIT_TAG_MAKE_FOLDER,  //タグ作成フォルダ
00046     IDC_BUTTON_TAG_MAKE_REF,    HIDC_BUTTON_TAG_MAKE_REF,   //参照
00047     IDC_EDIT_TAG_MAKE_CMDLINE,  HIDC_EDIT_TAG_MAKE_CMDLINE, //コマンドライン
00048     IDC_CHECK_TAG_MAKE_RECURSE, HIDC_CHECK_TAG_MAKE_RECURSE,    //サブフォルダも対象
00049     IDOK,                       HIDC_TAG_MAKE_IDOK,
00050     IDCANCEL,                   HIDC_TAG_MAKE_IDCANCEL,
00051     IDC_BUTTON_HELP,            HIDC_BUTTON_TAG_MAKE_HELP,
00052 //  IDC_STATIC,                     -1,
00053     0, 0
00054 };
00055
00056 CDlgTagsMake::CDlgTagsMake()
00057 {
00058     strcpy( m_szPath, "" );
00059     strcpy( m_szTagsCmdLine, "" );
00060     m_nTagsOpt = 0;
00061     return;
00062 }
00063
00064 /* モーダルダイアログの表示 */
00065 int CDlgTagsMake::DoModal(
00066     HINSTANCE   hInstance,
00067     HWND        hwndParent,
00068     LPARAM      lParam,
00069     const char* pszPath     //パス
00070 )
00071 {
00072     strcpy( m_szPath, pszPath );
00073
00074     return (int)CDialog::DoModal( hInstance, hwndParent, IDD_TAG_MAKE, lParam );
00075 }
00076
00077 BOOL CDlgTagsMake::OnBnClicked( int wID )
00078 {
00079     switch( wID )
00080     {
00081     case IDC_BUTTON_HELP:
00082         /* ヘルプ */
00083         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_TAGS_MAKE) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00084         return TRUE;
00085
00086     case IDC_BUTTON_TAG_MAKE_REF:   /* 参照 */
00087         SelectFolder( m_hWnd );
00088         return TRUE;
00089
00090     case IDOK:
00091         /* ダイアログデータの取得 */
00092         ::EndDialog( m_hWnd, GetData() );
00093         return TRUE;
00094
00095     case IDCANCEL:
00096         ::EndDialog( m_hWnd, FALSE );
00097         return TRUE;
00098
00099     }
00100
00101     /* 基底クラスメンバ */
00102     return CDialog::OnBnClicked( wID );
00103 }
00104
00110 void CDlgTagsMake::SelectFolder( HWND hwndDlg )
00111 {
00112     char    szPath[_MAX_PATH + 1];
00113
00114     /* フォルダ */
00115     ::GetDlgItemText( hwndDlg, IDC_EDIT_TAG_MAKE_FOLDER, szPath, _MAX_PATH );
00116
00117     if( SelectDir( hwndDlg, "タグ作成フォルダの選択", szPath, szPath ) )
00118     {
00119         //末尾に\\マークを追加する．
00120         int pos = strlen( szPath );
00121         if( pos > 0 && szPath[ pos - 1 ] != '\\' )
00122         {
00123             szPath[ pos     ] = '\\';
00124             szPath[ pos + 1 ] = '\0';
00125         }
00126
00127         ::SetDlgItemText( hwndDlg, IDC_EDIT_TAG_MAKE_FOLDER, szPath );
00128     }
00129 }
00130
00131 /* ダイアログデータの設定 */
00132 void CDlgTagsMake::SetData( void )
00133 {
00134     //作成フォルダ
00135     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_EDIT_TAG_MAKE_FOLDER ), CB_LIMITTEXT, (WPARAM)sizeof( m_szPath ), 0 );
00136     ::SetDlgItemText( m_hWnd, IDC_EDIT_TAG_MAKE_FOLDER, m_szPath );
00137
00138     //オプション
00139     m_nTagsOpt = m_pShareData->m_nTagsOpt;
00140     if( m_nTagsOpt & 0x0001 ) ::CheckDlgButton( m_hWnd, IDC_CHECK_TAG_MAKE_RECURSE, TRUE );
00141
00142     //コマンドライン
00143     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_EDIT_TAG_MAKE_CMDLINE ), CB_LIMITTEXT, (WPARAM)sizeof( m_pShareData->m_szTagsCmdLine ), 0 );
00144     strcpy( m_szTagsCmdLine, m_pShareData->m_szTagsCmdLine );
00145     ::SetDlgItemText( m_hWnd, IDC_EDIT_TAG_MAKE_CMDLINE, m_pShareData->m_szTagsCmdLine );
00146
00147     return;
00148 }
00149
00150 /* ダイアログデータの取得 */
00151 /* TRUE==正常  FALSE==入力エラー */
00152 int CDlgTagsMake::GetData( void )
00153 {
00154     //フォルダ
00155     ::GetDlgItemText( m_hWnd, IDC_EDIT_TAG_MAKE_FOLDER, m_szPath, sizeof( m_szPath ) );
00156     int length = strlen( m_szPath );
00157     if( length > 0 )
00158     {
00159         if( m_szPath[ length - 1 ] != '\\' ) strcat( m_szPath, "\\" );
00160     }
00161
00162     //CTAGSオプション
00163     m_nTagsOpt = 0;
00164     if( ::IsDlgButtonChecked( m_hWnd, IDC_CHECK_TAG_MAKE_RECURSE ) == BST_CHECKED ) m_nTagsOpt |= 0x0001;
00165     m_pShareData->m_nTagsOpt = m_nTagsOpt;
00166
00167     //コマンドライン
00168     ::GetDlgItemText( m_hWnd, IDC_EDIT_TAG_MAKE_CMDLINE, m_szTagsCmdLine, sizeof( m_szTagsCmdLine ) );
00169     strcpy( m_pShareData->m_szTagsCmdLine, m_szTagsCmdLine );
00170
00171     return TRUE;
00172 }
00173
00174 LPVOID CDlgTagsMake::GetHelpIdTable( void )
00175 {
00176     return (LPVOID)p_helpids;
00177 }
00178
00179 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagsMake.h

CDlgTagsMake.h

タグファイル作成ダイアログボックス [詳細]

#include "CDialog.h"

CDlgTagsMake.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgTagsMake
タグファイル作成ダイアログボックス [詳細]

説明

タグファイル作成ダイアログボックス

作者:
MIK
日付:
2003.5.12

CDlgTagsMake.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTagsMake.h ソースファイル

CDlgTagsMake.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 class CDlgTagsMake;
00032
00033 #ifndef _CDLGTAGSMAKE_H_
00034 #define _CDLGTAGSMAKE_H_
00035
00036 #include "CDialog.h"
00040 class CDlgTagsMake : public CDialog
00041 {
00042 public:
00043     /*
00044     ||  Constructors
00045     */
00046     CDlgTagsMake();
00047
00048     /*
00049     ||  Attributes & Operations
00050     */
00051     int DoModal( HINSTANCE, HWND, LPARAM, const char* );    /* モーダルダイアログの表示 */
00052
00053     char    m_szPath[_MAX_PATH+1];  /* フォルダ */
00054     char    m_szTagsCmdLine[_MAX_PATH]; /* コマンドラインオプション(個別) */
00055     int     m_nTagsOpt;             /* CTAGSオプション(チェック) */
00056
00057 protected:
00058     /*
00059     ||  実装ヘルパ関数
00060     */
00061     BOOL    OnBnClicked( int );
00062     LPVOID  GetHelpIdTable(void);
00063
00064     void    SetData( void );    /* ダイアログデータの設定 */
00065     int     GetData( void );    /* ダイアログデータの取得 */
00066
00067 private:
00068     void SelectFolder( HWND hwndDlg );
00069
00070 };
00071
00072
00073
00075 #endif /* _CDLGTAGSMAKE_H_ */
00076
00077 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTypeList.cpp

CDlgTypeList.cpp

ファイルタイプ一覧ダイアログ [詳細]

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
#include "sakura_rc.h"
#include "CDlgTypeList.h"
#include "etc_uty.h"
#include "debug.h"
#include "funccode.h"
#include "sakura.hh"

CDlgTypeList.cppのインクルード依存関係図

ソースコードを見る。

変数

const DWORD p_helpids []

説明

ファイルタイプ一覧ダイアログ

作者:
Norio Nakatani

CDlgTypeList.cpp で定義されています。

変数

const DWORD p_helpids[]

初期値:

 {
    IDC_BUTTON_TEMPCHANGE,  HIDC_TL_BUTTON_TEMPCHANGE,
    IDOK,                   HIDOK_TL,
    IDCANCEL,               HIDCANCEL_TL,
    IDC_BUTTON_HELP,        HIDC_TL_BUTTON_HELP,
    IDC_LIST_TYPES,         HIDC_TL_LIST_TYPES,

    0, 0
}

CDlgTypeList.cpp の 27 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTypeList.cpp ソースファイル

CDlgTypeList.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, genta
00009     Copyright (C) 2001, Stonee
00010     Copyright (C) 2002, MIK
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016 #include "stdafx.h"
00017 #include <windows.h>
00018 #include <commctrl.h>
00019 #include "sakura_rc.h"
00020 #include "CDlgTypeList.h"
00021 #include "etc_uty.h"
00022 #include "debug.h"
00023 #include "funccode.h"   //Stonee, 2001/03/12
00024
00025 // タイプ別設定一覧 CDlgTypeList.cpp    //@@@ 2002.01.07 add start MIK
00026 #include "sakura.hh"
00027 const DWORD p_helpids[] = { //12700
00028     IDC_BUTTON_TEMPCHANGE,  HIDC_TL_BUTTON_TEMPCHANGE,  //一時適用
00029     IDOK,                   HIDOK_TL,                   //設定
00030     IDCANCEL,               HIDCANCEL_TL,               //キャンセル
00031     IDC_BUTTON_HELP,        HIDC_TL_BUTTON_HELP,        //ヘルプ
00032     IDC_LIST_TYPES,         HIDC_TL_LIST_TYPES,         //リスト
00033 //  IDC_STATIC,             -1,
00034     0, 0
00035 };  //@@@ 2002.01.07 add end MIK
00036
00037 /* モーダルダイアログの表示 */
00038 int CDlgTypeList::DoModal( HINSTANCE hInstance, HWND hwndParent, int* pnSettingType )
00039 {
00040     int nRet;
00041     m_nSettingType = *pnSettingType;
00042     nRet = (int)CDialog::DoModal( hInstance, hwndParent, IDD_TYPELIST, NULL );
00043     if( -1 == nRet ){
00044         return FALSE;
00045     }else{
00046         *pnSettingType = nRet;
00047         return TRUE;
00048     }
00049     return nRet;
00050 }
00051
00052 BOOL CDlgTypeList::OnLbnDblclk( int wID )
00053 {
00054     switch( wID ){
00055     case IDC_LIST_TYPES:
00056         //  Nov. 29, 2000   genta
00057         //  動作変更: 指定タイプの設定ダイアログ→一時的に別の設定を適用
00058         ::EndDialog( m_hWnd, ::SendMessage( GetDlgItem( m_hWnd, IDC_LIST_TYPES ), LB_GETCURSEL, (WPARAM)0, (LPARAM)0 )
00059             | PROP_TEMPCHANGE_FLAG );
00060         return TRUE;
00061     }
00062     return FALSE;
00063 }
00064
00065 BOOL CDlgTypeList::OnBnClicked( int wID )
00066 {
00067     switch( wID ){
00068     case IDC_BUTTON_HELP:
00069         /* 「タイプ別設定一覧」のヘルプ */
00070         //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
00071         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_TYPE_LIST) );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00072         return TRUE;
00073     //  Nov. 29, 2000   From Here   genta
00074     //  適用する型の一時的変更
00075     case IDC_BUTTON_TEMPCHANGE:
00076         ::EndDialog( m_hWnd, ::SendMessage( GetDlgItem( m_hWnd, IDC_LIST_TYPES ), LB_GETCURSEL, (WPARAM)0, (LPARAM)0 )
00077             | PROP_TEMPCHANGE_FLAG );
00078         return TRUE;
00079     //  Nov. 29, 2000   To Here
00080     case IDOK:
00081         ::EndDialog( m_hWnd, ::SendMessage( GetDlgItem( m_hWnd, IDC_LIST_TYPES ), LB_GETCURSEL, (WPARAM)0, (LPARAM)0 ) );
00082         return TRUE;
00083     case IDCANCEL:
00084         ::EndDialog( m_hWnd, -1 );
00085         return TRUE;
00086     }
00087     /* 基底クラスメンバ */
00088     return CDialog::OnBnClicked( wID );
00089
00090 }
00091
00092
00093 /* ダイアログデータの設定 */
00094 void CDlgTypeList::SetData( void )
00095 {
00096     int     nIdx;
00097     HWND    hwndList;
00098     char    szText[130];
00099     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST_TYPES );
00100     for( nIdx = 0; nIdx < MAX_TYPES; ++nIdx ){
00101         if( 0 < lstrlen( m_pShareData->m_Types[nIdx].m_szTypeExts ) ){      /* タイプ属性：拡張子リスト */
00102             wsprintf( szText, "%s ( %s )",
00103                 m_pShareData->m_Types[nIdx].m_szTypeName,   /* タイプ属性：名称 */
00104                 m_pShareData->m_Types[nIdx].m_szTypeExts    /* タイプ属性：拡張子リスト */
00105             );
00106         }else{
00107             wsprintf( szText, "%s",
00108                 m_pShareData->m_Types[nIdx].m_szTypeName    /* タイプ属性：拡称 */
00109             );
00110         }
00111         ::SendMessage( hwndList, LB_ADDSTRING, 0, (LPARAM)szText );
00112     }
00113     ::SendMessage( hwndList, LB_SETCURSEL, (WPARAM)m_nSettingType, (LPARAM)0 );
00114     return;
00115 }
00116
00117 //@@@ 2002.01.18 add start
00118 LPVOID CDlgTypeList::GetHelpIdTable(void)
00119 {
00120     return (LPVOID)p_helpids;
00121 }
00122 //@@@ 2002.01.18 add end
00123
00124 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTypeList.h

CDlgTypeList.h

ファイルタイプ一覧ダイアログ [詳細]

#include "CDialog.h"

CDlgTypeList.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CDlgTypeList
ファイルタイプ一覧ダイアログ [詳細]

変数

const int | PROP_TEMPCHANGE_FLAG = 0x10000

説明

ファイルタイプ一覧ダイアログ

作者:
Norio Nakatani
日付:
1998/12/23 新規作成

1999/12/05 再作成

CDlgTypeList.h で定義されています。

変数

const int PROP_TEMPCHANGE_FLAG = 0x10000

CDlgTypeList.h の 20 行で定義されています。

参照元 CEditView::Command_TYPE_LIST()・CDlgTypeList::OnBnClicked()・CDlgTypeList::OnLbnDblclk().

Sakura-Editorに対してSat Oct 27 02:16:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgTypeList.h ソースファイル

CDlgTypeList.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 class CDlgTypeList;
00016
00017 #ifndef _CDLGTYPELIST_H_
00018 #define _CDLGTYPELIST_H_
00019
00020 const int PROP_TEMPCHANGE_FLAG = 0x10000;
00021
00022 #include "CDialog.h"
00023 /*-----------------------------------------------------------------------
00024 クラスの宣言
00025 -----------------------------------------------------------------------*/
00029 class CDlgTypeList : public CDialog
00030 {
00031 public:
00032     int DoModal( HINSTANCE, HWND, int* );   /* モーダルダイアログの表示 */
00033
00034     int             m_nSettingType;
00035 protected:
00036     /*
00037     ||  実装ヘルパ関数
00038     */
00039     BOOL OnLbnDblclk( int );
00040     BOOL OnBnClicked( int );
00041     void SetData(); /* ダイアログデータの設定 */
00042     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00043
00044 };
00045
00046
00047
00049 #endif /* _CDLGTYPELIST_H_ */
00050
00051
00052 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgWinSize.cpp

CDlgWinSize.cpp

ウィンドウの位置と大きさダイアログ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "sakura.hh"
#include "CDlgWinSize.h"

CDlgWinSize.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

ウィンドウの位置と大きさダイアログ

作者:
Moca
日付:
2004/05/13 作成

CDlgWinSize.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDOK,                       HIDOK_WINSIZE,
    IDC_BUTTON_HELP,            HIDC_BUTTON_WINSIZE_HELP,
    IDC_EDIT_WX,                HIDC_EDIT_WX,
    IDC_EDIT_WY,                HIDC_EDIT_WY,
    IDC_EDIT_SX,                HIDC_EDIT_SX,
    IDC_EDIT_SY,                HIDC_EDIT_SY,

    IDC_RADIO_WINSIZE_DEF,      HIDC_RADIO_WINSIZE_DEF,
    IDC_RADIO_WINSIZE_SAVE,     HIDC_RADIO_WINSIZE_SAVE,
    IDC_RADIO_WINSIZE_SET,      HIDC_RADIO_WINSIZE_SET,
    IDC_RADIO_WINPOS_DEF,       HIDC_RADIO_WINPOS_DEF,
    IDC_RADIO_WINPOS_SAVE,      HIDC_RADIO_WINPOS_SAVE,
    IDC_RADIO_WINPOS_SET,       HIDC_RADIO_WINPOS_SET,
    IDC_COMBO_WINTYPE,          HIDC_COMBO_WINTYPE,
    0, 0
}

CDlgWinSize.cpp の 37 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgWinSize.cpp ソースファイル

CDlgWinSize.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2004, genta, Moca
00009     Copyright (C) 2006, ryoji
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #include "stdafx.h"
00033 #include "sakura_rc.h"
00034 #include "sakura.hh"
00035 #include "CDlgWinSize.h"
00036
00037 static const DWORD p_helpids[] = {  // 2006.10.10 ryoji
00038     IDOK,                       HIDOK_WINSIZE,              // 閉じる
00039     IDC_BUTTON_HELP,            HIDC_BUTTON_WINSIZE_HELP,   // ヘルプ
00040     IDC_EDIT_WX,                HIDC_EDIT_WX,               // 幅
00041     IDC_EDIT_WY,                HIDC_EDIT_WY,               // 高さ
00042     IDC_EDIT_SX,                HIDC_EDIT_SX,               // X座標
00043     IDC_EDIT_SY,                HIDC_EDIT_SY,               // Y座標
00044 //  IDC_CHECK_WINPOS,           HIDC_CHECK_WINPOS,
00045     IDC_RADIO_WINSIZE_DEF,      HIDC_RADIO_WINSIZE_DEF,     // 大きさ/指定しない
00046     IDC_RADIO_WINSIZE_SAVE,     HIDC_RADIO_WINSIZE_SAVE,    // 大きさ/継承する
00047     IDC_RADIO_WINSIZE_SET,      HIDC_RADIO_WINSIZE_SET,     // 大きさ/直接指定
00048     IDC_RADIO_WINPOS_DEF,       HIDC_RADIO_WINPOS_DEF,      // 位置/指定しない
00049     IDC_RADIO_WINPOS_SAVE,      HIDC_RADIO_WINPOS_SAVE,     // 位置/継承する
00050     IDC_RADIO_WINPOS_SET,       HIDC_RADIO_WINPOS_SET,      // 位置/直接指定
00051     IDC_COMBO_WINTYPE,          HIDC_COMBO_WINTYPE,
00052     0, 0
00053 };
00054
00055 CDlgWinSize::CDlgWinSize()
00056 {
00057     return;
00058 }
00059
00060 CDlgWinSize::~CDlgWinSize()
00061 {
00062     return;
00063 }
00064
00065
00066 /* !モーダルダイアログの表示
00067     @param nSaveWinSize [in/out] ウィンドウ位置継承
00068     @param nSaveWinPos  [in/out] ウィンドウサイズ継承
00069     @param nWinSizeType [in/out] ウィンドウの実行時の大きさ
00070     @param rc [in/out] 幅、高さ、左、上
00071 */
00072 int CDlgWinSize::DoModal( HINSTANCE hInstance, HWND hwndParent,
00073     int &nSaveWinSize, int &nSaveWinPos, int &nWinSizeType, RECT &rc )
00074 {
00075     m_nSaveWinSize = nSaveWinSize;
00076     m_nSaveWinPos  = nSaveWinPos;
00077     m_nWinSizeType = nWinSizeType;
00078     m_rc = rc;
00079     (void)CDialog::DoModal( hInstance, hwndParent, IDD_WINPOSSIZE, NULL );
00080     nSaveWinSize = m_nSaveWinSize;
00081     nSaveWinPos  = m_nSaveWinPos;
00082     nWinSizeType = m_nWinSizeType;
00083     rc = m_rc;
00084     return TRUE;
00085 }
00086
00089 BOOL CDlgWinSize::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00090 {
00091     m_hWnd = hwndDlg;
00092
00093     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_WINTYPE ), CB_ADDSTRING, 0, (LPARAM)_T("普通") );
00094     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_WINTYPE ), CB_ADDSTRING, 0, (LPARAM)_T("最大化") );
00095     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_WINTYPE ), CB_ADDSTRING, 0, (LPARAM)_T("(最小化)") );
00096
00097     LPARAM range = (LPARAM) MAKELONG((short) 30000, (short) 0 );
00098     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_SPIN_SX ), UDM_SETRANGE, 0, range );
00099     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_SPIN_SY ), UDM_SETRANGE, 0, range );
00100     // ウィンドウの座標は、マイナス値も有効。
00101     range = (LPARAM) MAKELONG((short) 30000, (short) -30000 );
00102     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_SPIN_WX ), UDM_SETRANGE, 0, range );
00103     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_SPIN_WY ), UDM_SETRANGE, 0, range );
00104
00105     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00106 }
00107
00108
00109 BOOL CDlgWinSize::OnBnClicked( int wID )
00110 {
00111     switch( wID ){
00112     case IDC_BUTTON_HELP:   // 2006/09/09 novice id修正
00113         MyWinHelp( m_hWnd, m_szHelpFile, HELP_CONTEXT, HLP000286 ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00114         return TRUE;
00115     case IDC_RADIO_WINPOS_DEF:
00116     case IDC_RADIO_WINPOS_SAVE:
00117     case IDC_RADIO_WINPOS_SET:
00118     case IDC_RADIO_WINSIZE_DEF:
00119     case IDC_RADIO_WINSIZE_SAVE:
00120     case IDC_RADIO_WINSIZE_SET:
00121         RenewItemState();
00122         return TRUE;
00123     case IDOK:
00124     case IDCANCEL:
00125         GetData();
00126     }
00127     return CDialog::OnBnClicked( wID );
00128 }
00129
00132 void CDlgWinSize::SetData( void )
00133 {
00134     switch( m_nSaveWinSize ){
00135     case 1:
00136         ::CheckDlgButton( m_hWnd, IDC_RADIO_WINSIZE_SAVE, TRUE );
00137         break;
00138     case 2:
00139         ::CheckDlgButton( m_hWnd, IDC_RADIO_WINSIZE_SET, TRUE );
00140         break;
00141     default:
00142         ::CheckDlgButton( m_hWnd, IDC_RADIO_WINSIZE_DEF, TRUE );
00143     }
00144
00145     switch( m_nSaveWinPos ){
00146     case 1:
00147         ::CheckDlgButton( m_hWnd, IDC_RADIO_WINPOS_SAVE, TRUE );
00148         break;
00149     case 2:
00150         ::CheckDlgButton( m_hWnd, IDC_RADIO_WINPOS_SET, TRUE );
00151         break;
00152     default:
00153         ::CheckDlgButton( m_hWnd, IDC_RADIO_WINPOS_DEF, TRUE );
00154     }
00155
00156     int nCurIdx = 0;
00157     switch( m_nWinSizeType ){
00158     case SIZE_MINIMIZED:
00159         nCurIdx = 2;
00160         break;
00161     case SIZE_MAXIMIZED:
00162         nCurIdx = 1;
00163         break;
00164     default:
00165         nCurIdx = 0;
00166     }
00167     ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_WINTYPE ), CB_SETCURSEL, (WPARAM)nCurIdx, 0 );
00168     ::SetDlgItemInt( m_hWnd, IDC_EDIT_SX, m_rc.right,  TRUE );
00169     ::SetDlgItemInt( m_hWnd, IDC_EDIT_SY, m_rc.bottom, TRUE );
00170     ::SetDlgItemInt( m_hWnd, IDC_EDIT_WX, m_rc.top,  TRUE );
00171     ::SetDlgItemInt( m_hWnd, IDC_EDIT_WY, m_rc.left, TRUE );
00172     RenewItemState();
00173 }
00174
00175
00178 int CDlgWinSize::GetData( void )
00179 {
00180     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINSIZE_DEF ) ){
00181         m_nSaveWinSize = 0;
00182     }else
00183     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINSIZE_SAVE ) ){
00184         m_nSaveWinSize = 1;
00185     }else
00186     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINSIZE_SET ) ){
00187         m_nSaveWinSize = 2;
00188     }
00189
00190     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINPOS_DEF ) ){
00191         m_nSaveWinPos = 0;
00192     }else
00193     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINPOS_SAVE ) ){
00194         m_nSaveWinPos = 1;
00195     }else
00196     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINPOS_SET ) ){
00197         m_nSaveWinPos = 2;
00198     }
00199
00200     int nCurIdx;
00201     nCurIdx = ::SendMessage( ::GetDlgItem( m_hWnd, IDC_COMBO_WINTYPE ), CB_GETCURSEL, 0, 0 );
00202     switch( nCurIdx ){
00203     case 2:
00204         m_nWinSizeType = SIZE_MINIMIZED;
00205         break;
00206     case 1:
00207         m_nWinSizeType = SIZE_MAXIMIZED;
00208         break;
00209     default:
00210         m_nWinSizeType = SIZE_RESTORED;
00211     }
00212     m_rc.right  = ::GetDlgItemInt( m_hWnd, IDC_EDIT_SX, NULL, TRUE );
00213     m_rc.bottom = ::GetDlgItemInt( m_hWnd, IDC_EDIT_SY, NULL, TRUE );
00214     m_rc.top    = ::GetDlgItemInt( m_hWnd, IDC_EDIT_WX, NULL, TRUE );
00215     m_rc.left   = ::GetDlgItemInt( m_hWnd, IDC_EDIT_WY, NULL, TRUE );
00216     return TRUE;
00217 }
00218
00219
00222 void CDlgWinSize::RenewItemState( void )
00223 {
00224     BOOL state;
00225     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINPOS_SET ) ){
00226         state = TRUE;
00227     }else{
00228         state = FALSE;
00229     }
00230     ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_WX ), state );
00231     ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_WY ), state );
00232
00233     if( BST_CHECKED == ::IsDlgButtonChecked( m_hWnd, IDC_RADIO_WINSIZE_SET ) ){
00234         state = TRUE;
00235     }else{
00236         state = FALSE;
00237     }
00238     ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_WINTYPE ), state );
00239     ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_SX ), state );
00240     ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_EDIT_SY ), state );
00241 }
00242
00243 LPVOID CDlgWinSize::GetHelpIdTable( void )
00244 {
00245     return (LPVOID)p_helpids;
00246 }
00247
00248 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgWinSize.h

CDlgWinSize.h

ウィンドウの位置と大きさダイアログ [詳細]

#include "CDialog.h"

CDlgWinSize.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CDlgWinSize
位置と大きさの設定ダイアログ [詳細]

説明

ウィンドウの位置と大きさダイアログ

作者:
Moca
日付:
2004/05/13 作成

CDlgWinSize.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDlgWinSize.h ソースファイル

CDlgWinSize.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2004, Moca
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef SC_CDLGWINPOSSIZE_H__
00032 #define SC_CDLGWINPOSSIZE_H__
00033
00034 #include "CDialog.h"
00035
00041 class CDlgWinSize : public CDialog
00042 {
00043 public:
00044     CDlgWinSize();
00045     ~CDlgWinSize();
00046     int DoModal( HINSTANCE, HWND, int&, int&, int&, RECT& );
00047
00048 protected:
00049
00050     BOOL OnInitDialog( HWND, WPARAM, LPARAM );
00051     BOOL OnBnClicked( int );
00052     int  GetData( void );
00053     void SetData( void );
00054     LPVOID GetHelpIdTable( void );
00055
00056     void RenewItemState( void );
00057
00058     int m_nSaveWinSize;
00059     int m_nSaveWinPos;
00060     int m_nWinSizeType;
00061     RECT m_rc;
00062 };
00063
00064 #endif
00065
00066 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDllHandler.cpp

CDllHandler.cpp

DLLのロード、アンロード [詳細]

#include "stdafx.h"
#include "CDllHandler.h"

CDllHandler.cppのインクルード依存関係図

ソースコードを見る。

説明

DLLのロード、アンロード

作者:
genta
日付:
Jun. 10, 2001

CDllHandler.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDllHandler.cpp ソースファイル

CDllHandler.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2001, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #include "stdafx.h"
00032 #include "CDllHandler.h"
00033
00034 CDllHandler::CDllHandler()
00035     : m_hInstance( NULL )
00036 {}
00037
00041 CDllHandler::~CDllHandler()
00042 {
00043     if( IsAvailable() ){
00044         FreeLibrary(true);
00045     }
00046 }
00047
00048 int CDllHandler::LoadLibrary(const char* str)
00049 {
00050     if( IsAvailable() ){
00051         //  既に利用可能で有れば何もしない．
00052         return 0;
00053     }
00054
00055     for( int i = 0; m_hInstance == NULL ; i++ ){
00056         LPCTSTR name = GetDllNameInOrder(str, i);
00057         if( name == NULL ){
00058             if( i == 0 ){
00059                 //  1周目ならファイル名異常
00060                 return -1;
00061             }
00062             else {
00063                 //  2周目以降ならロード失敗
00064                 return -2;
00065             }
00066         }
00067
00068         m_hInstance = ::LoadLibrary( name );
00069     }
00070
00071     int ret = InitDll();
00072     if( ret != 0 ){
00073         ::FreeLibrary( m_hInstance );
00074         m_hInstance = NULL;
00075     }
00076     return ret;
00077 }
00078
00079 int CDllHandler::FreeLibrary(bool force)
00080 {
00081     if( m_hInstance == NULL || (!IsAvailable()) ){
00082         //  DLLが読み込まれていなければ何もしない
00083         return 0;
00084     }
00085
00086     int ret = DeinitDll();
00087     if( ret == 0 || force ){
00088 		::FreeLibrary( m_hInstance );
00089         m_hInstance = NULL;
00090     }
00091     return ret;
00092 }
00096 int CDllHandler::DeinitDll(void)
00097 {
00098     return 0;
00099 }
00100
00109 bool CDllHandler::RegisterEntries(const ImportTable table[])
00110 {
00111     int i;
00112     for (i=0; table[i].proc!=NULL; i++)
00113     {
00114         FARPROC proc;
00115         if ((proc = ::GetProcAddress(GetInstance(), table[i].name)) == NULL)
00116         {
00117             return false;
00118         }
00119         *((FARPROC*)table[i].proc) = proc;
00120     }
00121     return true;
00122 }
00123
00124 LPCTSTR CDllHandler::GetDllName(LPCTSTR)
00125 {
00126     return NULL;
00127 }
00128
00129 LPCTSTR CDllHandler::GetDllNameInOrder(LPCTSTR str, int index)
00130 {
00131     if( index == 0 ){
00132         return GetDllName(str);
00133     }
00134     return NULL;
00135 }
00136 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDllHandler.h

CDllHandler.h

DLLのロード、アンロード [詳細]

#include <windows.h>
#include "global.h"

CDllHandler.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CDllHandler
DLLの動的なLoad/Unloadを行うためのクラス [詳細]
struct | CDllHandler::ImportTable

説明

DLLのロード、アンロード

作者:
genta
日付:
Jun. 10, 2001

CDllHandler.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDllHandler.h ソースファイル

CDllHandler.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2001, genta
00009     Copyright (C) 2002, YAZAKI, genta
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #ifndef _LOAD_LIBRARY_H_
00033 #define _LOAD_LIBRARY_H_
00034
00035 #include <windows.h>
00036 #include "global.h"
00037
00039
00044 class SAKURA_CORE_API CDllHandler {
00045 public:
00046     CDllHandler();
00047     virtual ~CDllHandler();
00048
00050
00056     virtual bool IsAvailable(void) const { return m_hInstance != NULL; }
00058
00065     int LoadLibrary(const char* str = NULL);
00067
00070     int FreeLibrary(bool force = false);
00071
00073     bool operator!(void) const { return IsAvailable(); }
00074
00076
00079     bool Init(const char* str = NULL){ return LoadLibrary(str) == 0; }
00080
00082     HINSTANCE GetInstance() const { return m_hInstance; }
00083 protected:
00084
00090     struct ImportTable
00091     {
00092         void* proc;
00093         const char* name;
00094     };
00095
00097
00106     virtual int InitDll(void) = 0;
00108
00130     virtual int DeinitDll(void);
00132
00137     virtual LPCTSTR GetDllName(LPCTSTR);
00138
00140
00157     virtual LPCTSTR GetDllNameInOrder(LPCTSTR str, int index);
00158
00159     bool RegisterEntries(const ImportTable table[]);
00160
00161 private:
00162     HINSTANCE m_hInstance;
00163 };
00164
00165 #endif
00166
00167
00168 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLine.cpp

CDocLine.cpp

文書データ1行 [詳細]

#include "stdafx.h"
#include "CDocLine.h"
#include "CMemory.h"

CDocLine.cppのインクルード依存関係図

ソースコードを見る。

説明

文書データ1行

作者:
Norio Nakatani

CDocLine.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:38 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLine.cpp ソースファイル

CDocLine.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, hor, genta
00009     Copyright (C) 2002, MIK, YAZAKI
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 #include "stdafx.h"
00016 #include "CDocLine.h"
00017 #include "CMemory.h"
00018
00019 CDocLine::CDocLine()
00020     : m_pPrev( NULL ), m_pNext( NULL ), m_pLine( NULL )
00021 {
00022 //  m_bMark.m_bAllMark  = 0;
00023     m_bMark.m_bMarkArray.m_bModify   = 1;   //true
00024     m_bMark.m_bMarkArray.m_bBookMark = 0;   //false
00025     m_bMark.m_bMarkArray.m_bDiffMark = 0;
00026 }
00027
00028 CDocLine::~CDocLine()
00029 {
00030     //  deleteはNULLを単純に無視するのでNULL判定は不要
00031     delete m_pLine;
00032 }
00033
00034 /* 空行（スペース、タブ、改行記号のみの行）かどうかを取得する
00035     true：空行だ。
00036     false：空行じゃないぞ。
00037
00038     2002/04/26 YAZAKI
00039 */
00040 bool CDocLine::IsEmptyLine( void )
00041 {
00042     char* pLine = GetPtr();
00043     int nLineLen = GetLengthWithoutEOL();
00044     int i;
00045     for ( i = 0; i < nLineLen; i++ ){
00046         if (pLine[i] != ' ' && pLine[i] != '\t'){
00047             return false;   //  スペースでもタブでもない文字があったらfalse。
00048         }
00049     }
00050     return true;    //  すべてスペースかタブだけだったらtrue。
00051 }
00052
00053 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLine.h

CDocLine.h

文書データ1行 [詳細]

#include "CEOL.h"
#include "CMemory.h"

CDocLine.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CDocLine
文書データ1行 [詳細]

マクロ定義

#define | MARK_DIFF_APPEND 1
#define | MARK_DIFF_CHANGE 2
#define | MARK_DIFF_DELETE 3
#define | MARK_DIFF_DEL_EX 4

説明

文書データ1行

作者:
Norio Nakatani
日付:
2001/12/03 hor しおり(bookmark)機能追加に伴うメンバー追加

2001/12/18 hor bookmark, 修正フラグのアクセス関数化

CDocLine.h で定義されています。

マクロ定義

#define MARK_DIFF_APPEND 1

CDocLine.h の 28 行で定義されています。

#define MARK_DIFF_CHANGE 2

CDocLine.h の 29 行で定義されています。

#define MARK_DIFF_DEL_EX 4

CDocLine.h の 31 行で定義されています。

参照元 CDocLineMgr::SetDiffMarkRange().

#define MARK_DIFF_DELETE 3

CDocLine.h の 30 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLine.h ソースファイル

CDocLine.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2001, hor
00012     Copyright (C) 2002, MIK
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 class CDocLine;
00019
00020 #ifndef _CDOCLINE_H_
00021 #define _CDOCLINE_H_
00022
00023 #include "CEOL.h"
00024 #include "CMemory.h"
00025
00026
00027 //@@@ 2002.05.25 MIK
00028 #define MARK_DIFF_APPEND    1   //追加
00029 #define MARK_DIFF_CHANGE    2   //変更
00030 #define MARK_DIFF_DELETE    3   //削除
00031 #define MARK_DIFF_DEL_EX    4   //削除(EOF以降)
00032
00034 class CDocLine
00035 {
00036 public:
00037     /*
00038     ||  Constructors
00039     */
00040     CDocLine();
00041     ~CDocLine();
00042
00043
00044     CDocLine*   m_pPrev;
00045     CDocLine*   m_pNext;
00046     CMemory*    m_pLine;
00047     CEOL        m_cEol;
00049     bool        IsModifyed  ( void ) const { return m_bMark.m_bMarkArray.m_bModify ? true : false; }    // 変更フラグの状態を取得する   //@@@ 2002.05.25 MIK
00050     void        SetModifyFlg( bool bFlg )  { m_bMark.m_bMarkArray.m_bModify = bFlg ? 1 : 0; }   // 変更フラグの状態を指定する   //@@@ 2002.05.25 MIK
00051
00052     bool        IsBookMarked( void ) const { return m_bMark.m_bMarkArray.m_bBookMark ? true : false; }  // ブックマークの状態を取得する //@@@ 2002.05.25 MIK
00053     void        SetBookMark ( bool bFlg )  { m_bMark.m_bMarkArray.m_bBookMark = bFlg ? 1 : 0; } // ブックマークの状態を指定する //@@@ 2002.05.25 MIK
00054
00055     int         IsDiffMarked( void ) const { return (int)m_bMark.m_bMarkArray.m_bDiffMark; }    //差分状態を取得する    //@@@ 2002.05.25 MIK
00056     void        SetDiffMark( int type )    { m_bMark.m_bMarkArray.m_bDiffMark = type; }     //差分状態を設定する    //@@@ 2002.05.25 MIK
00057
00058     bool        IsEmptyLine( void );    //  このCDocLineが空行（スペース、タブ、改行記号のみの行）かどうか。
00059     int         GetLengthWithoutEOL( void ) const { return m_pLine->GetLength() - m_cEol.GetLen(); }
00060     char*       GetPtr( void ) const              { return m_pLine->GetPtr(); }
00061     int         GetLength( void ) const           { return m_pLine->GetLength(); }  //  CMemoryIterator用
00062     int         GetIndent( void ) const           { return 0; }                     //  CMemoryIterator用
00063 protected:
00064     //マーク情報
00065     union {
00066         unsigned char   m_bAllMark;
00067         struct Mark_tag {
00068             unsigned m_bModify      : 1;    //変更フラグ
00069             unsigned m_bBookMark    : 1;    //ブックマーク
00070             unsigned m_bDiffMark    : 3;    //DIFF差分情報
00071         } m_bMarkArray;
00072     } m_bMark;
00073 };
00074
00075
00077 #endif /* _CDOCLINE_H_ */
00078
00079
00080 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLineMgr.cpp

CDocLineMgr.cpp

行データの管理 [詳細]

#include "stdafx.h"
#include "charcode.h"
#include "CDocLineMgr.h"
#include "debug.h"
#include <stdio.h>
#include <io.h>
#include "CBregexp.h"
#include <commctrl.h>
#include "global.h"
#include "etc_uty.h"
#include "CRunningTimer.h"
#include "CEol.h"
#include "CDocLine.h"
#include "CMemory.h"
#include "CFileWrite.h"
#include "CFileLoad.h"
#include "my_icmp.h"

CDocLineMgr.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | CK_NULL 0
#define | CK_TAB 1
#define | CK_CR 2
#define | CK_LF 3
#define | CK_SPACE 4
#define | CK_CSYM 5
#define | CK_KATA 6
#define | CK_ETC 7
#define | CK_MBC_SPACE 12
#define | CK_MBC_NOVASU 13
#define | CK_MBC_CSYM 14
#define | CK_MBC_KIGO 15
#define | CK_MBC_HIRA 16
#define | CK_MBC_KATA 17
#define | CK_MBC_GIRI 18
#define | CK_MBC_ROS 19
#define | CK_MBC_SKIGO 20
#define | CK_MBC_ETC 21

説明

行データの管理

作者:
Norio Nakatani
日付:
1998/03/05 新規作成

2001/06/23 N.Nakatani 単語単位で検索する機能を実装

2001/06/23 N.Nakatani WhereCurrentWord()変更 WhereCurrentWord_2をコールするようにした

2005/09/25 D.S.Koba GetSizeOfCharで書き換え

CDocLineMgr.cpp で定義されています。

マクロ定義

#define CK_CR 2

CR = 0x0d

CDocLineMgr.cpp の 59 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_CSYM 5

半角の英字、アンダースコア、数字のいずれか

CDocLineMgr.cpp の 63 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_ETC 7

半角のその他

CDocLineMgr.cpp の 65 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_KATA 6

半角のカタカナ 0xA1<=c<=0xFD

CDocLineMgr.cpp の 64 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_LF 3

LF = 0x0a

CDocLineMgr.cpp の 60 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_MBC_CSYM 14

2バイトの英字、アンダースコア、数字のいずれか 0x8151<=c<=0x8151 全角アンダースコア 0x824F<=c<=0x8258 全角数字 0x8260<=c<=0x8279 全角英字大文字 0x8281<=c<=0x829a 全角英字小文字

CDocLineMgr.cpp の 70 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_MBC_ETC 21

2バイトのその他（漢字など）

CDocLineMgr.cpp の 88 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_MBC_GIRI 18

2バイトのギリシャ文字 0x839F<=c<=0x83D6 全角ギリシャ文字

CDocLineMgr.cpp の 81 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_MBC_HIRA 16

2バイトのひらがな 0x829F<=c<=0x82F1 全角ひらがな

CDocLineMgr.cpp の 77 行で定義されています。

参照元 CDocLineMgr::PrevOrNextWord()・CDocLineMgr::SearchNextWordPosition()・CDocLineMgr::WhatKindOfChar()・CDocLineMgr::WhereCurrentWord_2().

#define CK_MBC_KATA 17

2バイトのカタカナ 0x8340<=c<=0x8396 全角カタカナ

CDocLineMgr.cpp の 79 行で定義されています。

参照元 CDocLineMgr::PrevOrNextWord()・CDocLineMgr::SearchNextWordPosition()・CDocLineMgr::WhatKindOfChar()・CDocLineMgr::WhereCurrentWord_2().

#define CK_MBC_KIGO 15

2バイトの記号 0x8141<=c<=0x81FD

CDocLineMgr.cpp の 75 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_MBC_NOVASU 13

伸ばす記号 0x815B<=c<=0x815B 'ー'

CDocLineMgr.cpp の 69 行で定義されています。

参照元 CDocLineMgr::PrevOrNextWord()・CDocLineMgr::SearchNextWordPosition()・CDocLineMgr::WhatKindOfChar()・CDocLineMgr::WhereCurrentWord_2().

#define CK_MBC_ROS 19

2バイトのロシア文字: 0x8440<=c<=0x8460 全角ロシア文字大文字 0x8470<=c<=0x8491 全角ロシア文字小文字

CDocLineMgr.cpp の 83 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_MBC_SKIGO 20

2バイトの特殊記号 0x849F<=c<=0x879C 全角特殊記号

CDocLineMgr.cpp の 86 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_MBC_SPACE 12

2バイトのスペース 0x8140<=c<=0x8140 全角スペース

CDocLineMgr.cpp の 67 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_NULL 0

NULL 0x0<=c<=0x0

CDocLineMgr.cpp の 57 行で定義されています。

参照元 CDocLineMgr::WhatKindOfChar().

#define CK_SPACE 4

半角のスペース 0x20<=c<=0x20

CDocLineMgr.cpp の 62 行で定義されています。

参照元 CDocLineMgr::PrevOrNextWord()・CDocLineMgr::SearchNextWordPosition()・CDocLineMgr::WhatKindOfChar().

#define CK_TAB 1

タブ 0x9<=c<=0x9

CDocLineMgr.cpp の 58 行で定義されています。

参照元 CDocLineMgr::PrevOrNextWord()・CDocLineMgr::SearchNextWordPosition()・CDocLineMgr::WhatKindOfChar().

Sakura-Editorに対してSat Oct 27 02:16:41 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLineMgr.cpp ソースファイル

CDocLineMgr.cpp

説明を見る。
00001
00010 /*
00011     Copyright (C) 1998-2001, Norio Nakatani
00012     Copyright (C) 2000, genta, ao
00013     Copyright (C) 2001, genta, jepro, hor
00014     Copyright (C) 2002, hor, aroka, MIK, Moca, genta, frozen, Azumaiya, YAZAKI
00015     Copyright (C) 2003, Moca, ryoji, genta, かろと
00016     Copyright (C) 2004, genta, Moca
00017     Copyright (C) 2005, D.S.Koba, ryoji, かろと
00018
00019     This source code is designed for sakura editor.
00020     Please contact the copyright holder to use this code for other purpose.
00021 */
00022
00023 /* for TRACE() of MFC */
00024 //#ifdef _DEBUG
00025 //  #include <afx.h>
00026 //#endif
00027 //#ifndef _DEBUG
00028 //  #include <windows.h>
00029 //#endif
00030
00031
00032 #include "stdafx.h"
00033 #include "charcode.h"
00034 #include "CDocLineMgr.h"
00035 #include "debug.h"
00036 #include "charcode.h"
00037 // Oct 6, 2000 ao
00038 #include <stdio.h>
00039 #include <io.h>
00040 //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00041 #include "CBregexp.h"
00042 #include <commctrl.h>
00043 #include "global.h"
00044 #include "etc_uty.h"
00045 #include "CRunningTimer.h"
00046
00047 //  May 15, 2000 genta
00048 #include "CEol.h"
00049 #include "CDocLine.h"// 2002/2/10 aroka ヘッダ整理
00050 #include "CMemory.h"// 2002/2/10 aroka
00051
00052 #include "CFileWrite.h" //2002/05/22 Frozen
00053 #include "CFileLoad.h" // 2002/08/30 Moca
00054 #include "my_icmp.h" // Nov. 29, 2002 genta/moca
00055
00056 /* 文字種類識別子 */
00057 #define CK_NULL         0
00058 #define CK_TAB          1
00059 #define CK_CR           2
00060 #define CK_LF           3
00062 #define CK_SPACE        4
00063 #define CK_CSYM         5
00064 #define CK_KATA         6
00065 #define CK_ETC          7
00067 #define CK_MBC_SPACE    12
00069 #define CK_MBC_NOVASU   13
00070 #define CK_MBC_CSYM     14
00075 #define CK_MBC_KIGO     15
00077 #define CK_MBC_HIRA     16
00079 #define CK_MBC_KATA     17
00081 #define CK_MBC_GIRI     18
00083 #define CK_MBC_ROS      19
00086 #define CK_MBC_SKIGO    20
00088 #define CK_MBC_ETC      21
00094 CDocLineMgr::CDocLineMgr()
00095 {
00096     Init();
00097 }
00098
00099
00100
00101
00102 CDocLineMgr::~CDocLineMgr()
00103 {
00104     Empty();
00105 }
00106
00107
00108
00109
00110
00111 void CDocLineMgr::Init()
00112 {
00113     m_pDocLineTop = NULL;
00114     m_pDocLineBot = NULL;
00115     m_nLines = 0;
00116     m_nPrevReferLine = 0;
00117     m_pCodePrevRefer = NULL;
00118     m_bIsDiffUse = false;   /* DIFF使用中 */    //@@@ 2002.05.25 MIK
00119     return;
00120 }
00121
00127 void CDocLineMgr::Empty()
00128 {
00129     CDocLine* pDocLine;
00130     CDocLine* pDocLineNext;
00131     pDocLine = m_pDocLineTop;
00132     while( NULL != pDocLine ){
00133         pDocLineNext = pDocLine->m_pNext;
00134         delete pDocLine;
00135         pDocLine = pDocLineNext;
00136     }
00137     return;
00138 }
00139
00140
00141
00142
00143
00144 const char* CDocLineMgr::GetLineStr( int nLine, int* pnLineLen )
00145 {
00146     CDocLine* pDocLine;
00147     pDocLine = GetLineInfo( nLine );
00148     if( NULL == pDocLine ){
00149         *pnLineLen = 0;
00150         return NULL;
00151     }
00152     // 2002/2/10 aroka CMemory のメンバ変数に直接アクセスしない(inline化されているので速度的な問題はない)
00153     return pDocLine->m_pLine->GetPtr( pnLineLen );
00154 //  *pnLineLen = pDocLine->m_pLine->m_nDataLen;
00155 //  return pDocLine->m_pLine->m_pData;
00156 }
00157
00164 const char* CDocLineMgr::GetLineStrWithoutEOL( int nLine, int* pnLineLen )
00165 {
00166     const CDocLine* pDocLine = GetLineInfo( nLine );
00167     if( NULL == pDocLine ){
00168         *pnLineLen = 0;
00169         return NULL;
00170     }
00171     *pnLineLen = pDocLine->GetLengthWithoutEOL();
00172     return pDocLine->m_pLine->GetPtr();
00173 }
00174
00181 CDocLine* CDocLineMgr::GetLineInfo( int nLine )
00182 {
00183     int nCounter;
00184     CDocLine* pDocLine;
00185     if( 0 == m_nLines ){
00186         return NULL;
00187     }
00188     // 2004.03.28 Moca nLineが負の場合のチェックを追加
00189     if( 0 > nLine || nLine >= m_nLines ){
00190         return NULL;
00191     }
00192     // 2004.03.28 Moca m_pCodePrevReferより、Top,Botのほうが近い場合は、そちらを利用する
00193     int nPrevToLineNumDiff = abs( m_nPrevReferLine - nLine );
00194     if( m_pCodePrevRefer == NULL
00195       || nLine < nPrevToLineNumDiff
00196       || m_nLines - nLine < nPrevToLineNumDiff
00197     ){
00198         if( m_pCodePrevRefer == NULL ){
00199             MY_RUNNINGTIMER( cRunningTimer, "CDocLineMgr::GetLineInfo()     m_pCodePrevRefer == NULL" );
00200         }
00201
00202
00203
00204
00205 #if 0
00206         nCounter = 0;
00207         pDocLine = m_pDocLineTop;
00208         do{
00209             if( nLine == nCounter ){
00210                 m_nPrevReferLine = nLine;
00211                 m_pCodePrevRefer = pDocLine;
00212                 m_pDocLineCurrent = pDocLine->m_pNext;
00213                 return pDocLine;
00214             }
00215             pDocLine = pDocLine->m_pNext;
00216             ++nCounter;
00217         }while( NULL != pDocLine );
00218 #endif
00219         if( nLine < (m_nLines / 2) ){
00220             nCounter = 0;
00221             pDocLine = m_pDocLineTop;
00222             while( NULL != pDocLine ){
00223                 if( nLine == nCounter ){
00224                     m_nPrevReferLine = nLine;
00225                     m_pCodePrevRefer = pDocLine;
00226                     m_pDocLineCurrent = pDocLine->m_pNext;
00227                     return pDocLine;
00228                 }
00229                 pDocLine = pDocLine->m_pNext;
00230                 nCounter++;
00231             }
00232         }else{
00233             nCounter = m_nLines - 1;
00234             pDocLine = m_pDocLineBot;
00235             while( NULL != pDocLine ){
00236                 if( nLine == nCounter ){
00237                     m_nPrevReferLine = nLine;
00238                     m_pCodePrevRefer = pDocLine;
00239                     m_pDocLineCurrent = pDocLine->m_pNext;
00240                     return pDocLine;
00241                 }
00242                 pDocLine = pDocLine->m_pPrev;
00243                 nCounter--;
00244             }
00245         }
00246
00247     }else{
00248         if( nLine == m_nPrevReferLine ){
00249             m_nPrevReferLine = nLine;
00250             m_pDocLineCurrent = m_pCodePrevRefer->m_pNext;
00251             return m_pCodePrevRefer;
00252         }else
00253         if( nLine > m_nPrevReferLine ){
00254             nCounter = m_nPrevReferLine + 1;
00255             pDocLine = m_pCodePrevRefer->m_pNext;
00256             while( NULL != pDocLine ){
00257                 if( nLine == nCounter ){
00258                     m_nPrevReferLine = nLine;
00259                     m_pCodePrevRefer = pDocLine;
00260                     m_pDocLineCurrent = pDocLine->m_pNext;
00261                     return pDocLine;
00262                 }
00263                 pDocLine = pDocLine->m_pNext;
00264                 ++nCounter;
00265             }
00266         }else{
00267             nCounter = m_nPrevReferLine - 1;
00268             pDocLine = m_pCodePrevRefer->m_pPrev;
00269             while( NULL != pDocLine ){
00270                 if( nLine == nCounter ){
00271                     m_nPrevReferLine = nLine;
00272                     m_pCodePrevRefer = pDocLine;
00273                     m_pDocLineCurrent = pDocLine->m_pNext;
00274                     return pDocLine;
00275                 }
00276                 pDocLine = pDocLine->m_pPrev;
00277                 nCounter--;
00278             }
00279         }
00280     }
00281     return NULL;
00282 }
00283
00284
00285
00286
00287
00295 const char* CDocLineMgr::GetFirstLinrStr( int* pnLineLen )
00296 {
00297     char* pszLine;
00298     if( 0 == m_nLines ){
00299         pszLine = NULL;
00300         *pnLineLen = 0;
00301     }else{
00302         pszLine = m_pDocLineTop->m_pLine->GetPtr( pnLineLen );
00303
00304         m_pDocLineCurrent = m_pDocLineTop->m_pNext;
00305     }
00306     return (const char*)pszLine;
00307 }
00308
00309
00310
00311
00312
00321 const char* CDocLineMgr::GetNextLinrStr( int* pnLineLen )
00322 {
00323     char* pszLine;
00324     if( NULL == m_pDocLineCurrent ){
00325         pszLine = NULL;
00326         *pnLineLen = 0;
00327     }else{
00328         pszLine = m_pDocLineCurrent->m_pLine->GetPtr( pnLineLen );
00329
00330         m_pDocLineCurrent = m_pDocLineCurrent->m_pNext;
00331     }
00332     return (const char*)pszLine;
00333 }
00334
00335
00336
00337
00338 #if 0
00339     /* 末尾に行を追加 Ver0 */
00340     void CDocLineMgr::AddLineStrSz( const char* pszStr )
00341     {
00342     #ifdef _DEBUG
00343         CRunningTimer cRunningTimer( (const char*)"CDocLineMgr::AddLineStrSz" );
00344     #endif
00345         CDocLine* pDocLine;
00346         if( 0 == m_nLines ){
00347             m_pDocLineBot = m_pDocLineTop = new CDocLine;
00348             m_pDocLineTop->m_pPrev = NULL;
00349             m_pDocLineTop->m_pNext = NULL;
00350             m_pDocLineTop->m_pLine = new CMemory( pszStr, lstrlen( pszStr ) );
00351         }else{
00352             pDocLine = new CDocLine;
00353             pDocLine->m_pPrev = m_pDocLineBot;
00354             pDocLine->m_pNext = NULL;
00355             pDocLine->m_pLine = new CMemory( pszStr, lstrlen( pszStr ) );
00356             m_pDocLineBot->m_pNext = pDocLine;
00357             m_pDocLineBot = pDocLine;
00358         }
00359         ++m_nLines;
00360     }
00361     /* 末尾に行を追加 Ver1 */
00362     void CDocLineMgr::AddLineStr( const char* pData, int nDataLen )
00363     {
00364     #ifdef _DEBUG
00365         CRunningTimer cRunningTimer( (const char*)"CDocLineMgr::AddLineStr(const char*, int)" );
00366     #endif
00367         CDocLine* pDocLine;
00368         if( 0 == m_nLines ){
00369             m_pDocLineBot = m_pDocLineTop = new CDocLine;
00370             m_pDocLineTop->m_pPrev = NULL;
00371             m_pDocLineTop->m_pNext = NULL;
00372             m_pDocLineTop->m_pLine = new CMemory( pData, nDataLen );
00373         }else{
00374             pDocLine = new CDocLine;
00375             pDocLine->m_pPrev = m_pDocLineBot;
00376             pDocLine->m_pNext = NULL;
00377             pDocLine->m_pLine = new CMemory( pData, nDataLen );
00378             m_pDocLineBot->m_pNext = pDocLine;
00379             m_pDocLineBot = pDocLine;
00380         }
00381         ++m_nLines;
00382     }
00383     /* 末尾に行を追加 Ver2 */
00384     void CDocLineMgr::AddLineStr( CMemory& cmemData )
00385     {
00386     //#ifdef _DEBUG
00387     //  CRunningTimer cRunningTimer( (const char*)"CDocLineMgr::AddLineStr(CMemory&)" );
00388     //#endif
00389         char*   pData;
00390         int     nDataLen;
00391         pData = cmemData.GetPtr( &nDataLen );
00392     //  AddLineStr( pData, nDataLen );
00393
00394         CDocLine* pDocLine;
00395         if( 0 == m_nLines ){
00396             m_pDocLineBot = m_pDocLineTop = new CDocLine;
00397             m_pDocLineTop->m_pPrev = NULL;
00398             m_pDocLineTop->m_pNext = NULL;
00399             m_pDocLineTop->m_pLine = new CMemory( pData, nDataLen );
00400         }else{
00401             pDocLine = new CDocLine;
00402             pDocLine->m_pPrev = m_pDocLineBot;
00403             pDocLine->m_pNext = NULL;
00404             pDocLine->m_pLine = new CMemory( pData, nDataLen );
00405             m_pDocLineBot->m_pNext = pDocLine;
00406             m_pDocLineBot = pDocLine;
00407         }
00408         ++m_nLines;
00409         return;
00410     }
00411 #endif
00412
00423 void CDocLineMgr::AddLineStrX( const char* pData, int nDataLen, CEOL cEol )
00424 {
00425 #ifdef _DEBUG
00426 //  CRunningTimer cRunningTimer( (const char*)"CDocLineMgr::AddLineStrX(const char*, int, int)" );
00427 #endif
00428     CDocLine* pDocLine;
00429     if( 0 == m_nLines ){
00430         m_pDocLineBot = m_pDocLineTop = new CDocLine;
00431         m_pDocLineTop->m_pPrev = NULL;
00432         m_pDocLineTop->m_pNext = NULL;
00433 //      if( bCRLF ){
00434
00435 //      if( EOL_NONE != nEOLType ){
00436 //          m_pDocLineTop->m_pLine->m_pData[nDataLen] = '\r';
00437 //          m_pDocLineTop->m_pLine->m_pData[nDataLen + 1] = '\0';
00438 //          ++m_pDocLineTop->m_pLine->m_nDataLen;
00439 //      }
00440         m_pDocLineTop->m_cEol = cEol;   /* 改行コードの種類 */
00441         m_pDocLineTop->m_pLine = new CMemory( pData, nDataLen/* - m_pDocLineTop->m_nEOLLen*/ );
00442     }else{
00443         pDocLine = new CDocLine;
00444         pDocLine->m_pPrev = m_pDocLineBot;
00445         pDocLine->m_pNext = NULL;
00446 //      if( bCRLF ){
00447
00448 //      if( EOL_NONE != nEOLType ){
00449 //          pDocLine->m_pLine->m_pData[nDataLen] = '\r';
00450 //          pDocLine->m_pLine->m_pData[nDataLen + 1] = '\0';
00451 //          ++pDocLine->m_pLine->m_nDataLen;
00452 //      }
00453         pDocLine->m_cEol = cEol;    /* 改行コードの種類 */
00454         pDocLine->m_pLine = new CMemory( pData, nDataLen/* - pDocLine->m_nEOLLen*/ );
00455         m_pDocLineBot->m_pNext = pDocLine;
00456         m_pDocLineBot = pDocLine;
00457     }
00458     ++m_nLines;
00459     return;
00460 }
00461
00474 int CDocLineMgr::ReadFile( const char* pszPath, HWND hWndParent, HWND hwndProgress, int nCharCode, FILETIME* pFileTime, int nFlags, BOOL* pbBomExist)
00475 {
00476 #ifdef _DEBUG
00477     MYTRACE( "pszPath=[%s]\n", pszPath );
00478     MY_RUNNINGTIMER( cRunningTimer, "CDocLineMgr::ReadFile" );
00479 #endif
00480     int         nRetVal = TRUE;
00481     int         nLineNum = 0;
00482     //  May 15, 2000 genta
00483     CEOL cEol;
00484     CFileLoad cfl;  //  2002/08/30 Moca Add
00485     const char* pLine;
00486     int         nLineLen;
00487
00488     /* 既存データのクリア */
00489     Empty();
00490     Init();
00491
00492     /* 処理中のユーザー操作を可能にする */
00493     if( !::BlockingHook( NULL ) ){
00494         return FALSE;
00495     }
00496
00497     try{
00498     // ファイルを開く
00499     // ファイルを閉じるにはFileCloseメンバ又はデストラクタのどちらかで処理できます
00500     //  Jul. 28, 2003 ryoji BOMパラメータ追加
00501     cfl.FileOpen( pszPath, nCharCode, nFlags, pbBomExist );
00502
00503     /* ファイル時刻の取得 */
00504     FILETIME    FileTime;
00505     if( FALSE != cfl.GetFileTime( NULL, NULL, &FileTime ) ){
00506         *pFileTime = FileTime;
00507 //      SYSTEMTIME  systimeL;
00508 //      ::FileTimeToLocalFileTime( &FileTime, &FileTime );
00509 //      ::FileTimeToSystemTime( &FileTime, &systimeL );
00510 //      MYTRACE( "Last Update: %d/%d/%d %02d:%02d:%02d\n",
00511 //          systimeL.wYear,
00512 //          systimeL.wMonth,
00513 //          systimeL.wDay,
00514 //          systimeL.wHour,
00515 //          systimeL.wMinute,
00516 //          systimeL.wSecond
00517 //      );
00518     }else{
00519 //      MYTRACE( "GetFileTime() error.\n" );
00520     }
00521
00522     if( NULL != hwndProgress ){
00523         ::PostMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, 100 ) );
00524         ::PostMessage( hwndProgress, PBM_SETPOS, 0, 0 );
00525     }
00526
00527     // ReadLineはファイルから 文字コード変換された1行を読み出します
00528     // エラー時はthrow CError_FileRead を投げます
00529     while( NULL != ( pLine = cfl.ReadLine( &nLineLen, &cEol ) ) ){
00530         ++nLineNum;
00531         AddLineStrX( pLine, nLineLen, cEol );
00532         if( NULL != hwndProgress && 0 == ( nLineNum % 512 ) ){
00533             ::PostMessage( hwndProgress, PBM_SETPOS, cfl.GetPercent(), 0 );
00534             /* 処理中のユーザー操作を可能にする */
00535             if( !::BlockingHook( NULL ) ){
00536                 return FALSE;
00537             }
00538         }
00539     }
00540
00541     // ファイルをクローズする
00542     cfl.FileClose();
00543     } // try
00544     catch( CError_FileOpen ){
00545         nRetVal = FALSE;
00546         if( -1 == _access( pszPath, 0 )){
00547             // ファイルがない
00548 			::MYMESSAGEBOX(
00549                 hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00550                 _T("%s\nというファイルを開けません。\nファイルが存在しません。"),   //Mar. 24, 2001 jepro 若干修正
00551                 pszPath
00552              );
00553         }
00554         else if( -1 == _access( pszPath, 4 )){
00555             // 読み込みアクセス権がない
00556 			::MYMESSAGEBOX(
00557                 hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00558                 _T("\'%s\'\nというファイルを開けません。\n読み込みアクセス権がありません。"),
00559                 pszPath
00560              );
00561         }
00562 //      else if( ファイルサイズ > 2GB ){
00563 //          nRetVal = FALSE;
00564 //          ::MYMESSAGEBOX(
00565 //              hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00566 //              _("\'%s\'\nというファイルを開けません。\n2GB以上のファイルサイズは開けません。"),
00567 //              pszPath
00568 //           );
00569 //      }
00570         else{
00571 			::MYMESSAGEBOX(
00572                 hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00573                 _T("\'%s\'\nというファイルを開けません。\n他のアプリケーションで使用されている可能性があります。"),
00574                 pszPath
00575              );
00576         }
00577     }
00578     catch( CError_FileRead ){
00579         nRetVal = FALSE;
00580 		::MYMESSAGEBOX(
00581             hWndParent, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00582             _T("\'%s\'というファイルの読み込み中にエラーが発生しました。\nファイルの読み込みを中止します。"),
00583             pszPath
00584          );
00585         /* 既存データのクリア */
00586         Empty();
00587         Init();
00588         nRetVal = FALSE;
00589     } // 例外処理終わり
00590
00591     if( NULL != hwndProgress ){
00592         ::PostMessage( hwndProgress, PBM_SETPOS, 0, 0 );
00593     }
00594     /* 処理中のユーザー操作を可能にする */
00595     if( !::BlockingHook( NULL ) ){
00596         return FALSE;
00597     }
00598
00599     /* 行変更状態をすべてリセット */
00600     ResetAllModifyFlag();
00601     return nRetVal;
00602 }
00603
00604
00605
00606
00615 int CDocLineMgr::WriteFile( const char* pszPath, HWND hWndParent, HWND hwndProgress, int nCharCode, FILETIME* pFileTime, CEOL cEol, BOOL bBomExist)
00616 {
00617     const char*     pLine;
00618 //  char*           pLineUnicode;
00619     int             nLineLen;
00620     int             nRetVal;
00621     int             nLineNumber;
00622 //  int             i;
00623     int             nWriteLen;
00624 //  int             bCRLF;
00625 //  int             nLineUnicodeLen;
00626 //  char*           pszCRLF_UNICODE = "\x0d\x0\x0a\x0";
00627 //  char*           pszCRLF_LF = "\x0a";
00628     CMemory         cmemBuf;
00629     CDocLine*       pCDocLine;
00630
00631     /*
00632     || バッファサイズの調整
00633     */
00634     cmemBuf.AllocBuffer( 32000 );
00635
00636 //#ifdef _DEBUG
00637 //      if( IDYES != MYMESSAGEBOX(
00638 //          hWndParent,
00639 //          MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
00640 //          "_DEBUG テスト機能",
00641 //          "改行コードを LFCR にして保存します。\nよろしいですか？"
00642 //      ) ){
00643 //          return FALSE;
00644 //      }
00645 //#endif
00646 //  int             nCharCode = CODE_SJIS;
00647 //  int             nCharCode = CODE_EUC;
00648 //  int             nCharCode = CODE_JIS;
00649 //  int             nCharCode = CODE_UNICODE;
00650
00651
00652     if( NULL != hwndProgress ){
00653         ::PostMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, 100 ) );
00654         ::PostMessage( hwndProgress, PBM_SETPOS, 0, 0 );
00655     }
00656
00657     nRetVal = TRUE;
00658
00659 // 2002/05/22 Frozen　ここから削除（CFileWrite_Cのコンストラクタへ移動）----
00660 // CFileWriteクラスで代用
00661 //
00662 //  //<< 2002/04/13 Azumaiya
00663 //  //  WriteFile を直に使ってしまうと、書き込み速度が劇的に遅くなるので、やはり、
00664 //  // WriteFile をラッピングしてある標準関数に戻す。
00665 //  // ファイル属性を取得する。
00666 //  DWORD dwFileAttribute;
00667 //  dwFileAttribute = ::GetFileAttributes(pszPath);
00668 //  if ( dwFileAttribute != (DWORD)-1 )
00669 //  {
00670 //      // 読取専用属性だけ残す(ノーマル属性が付いていたらそれも残す)。
00671 //      BOOL bRes = ::SetFileAttributes(pszPath, dwFileAttribute & (FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_NORMAL));
00672 //  }
00673 //  else
00674 //  {
00675 //      dwFileAttribute = FILE_ATTRIBUTE_NORMAL;    //@@@ 2002.04.15 MIK
00676 //  }
00677 //  //>> 2002/04/13 Azumaiya
00678 //
00679 //
00680 //
00681 //  ///* ファイルを書き込み用にオープンする */
00684 //  // 改行コードを勝手に制御されない様、バイナリモードで開く
00685 //  FILE *sFile= fopen(pszPath,"wb"); /*add*/
00686 //
00687 //  2002/05/22 Frozen ここまで削除-----------------------------
00688
00689     try
00690     {
00691     {//この括弧に対応する閉じ括弧でfileのデストラクタが呼び出され、ファイルが閉じられます。
00692         CFileWrite file(pszPath);// 2002/05/22 Frozen
00693
00695 //- hFile = _lopen( pszPath, OF_WRITE );
00696 //- if( HFILE_ERROR == hFile ){
00697 //- }else{
00698 //-     _lclose( hFile );
00699 //- }
00700 //- hFile = _lcreat(pszPath, 0);
00701 //- if( HFILE_ERROR == hFile ){
00702
00703
00704
00705 //  2002/05/22 Frozen ファイルのオープンに失敗した場合は例外が起きるようにしたためここから削除----
00706 //  代わりにここにかかれている文の一部をcatch節へ移動
00707 //
00708 //  if( !sFile ){ /*add*/
00710 //      ::MYMESSAGEBOX(
00711 //          hWndParent,
00712 //          MB_OK | MB_ICONSTOP,
00713 //          GSTR_APPNAME,
00714 //          "\'%s\'\nファイルを保存できません。\nパスが存在しないか、他のアプリケーションで使用されている可能性があります。",
00715 //          pszPath
00716 //       );
00717 //      nRetVal = FALSE;
00718 //      //<< 2002/04/13 Azumaiya
00719 //      if ( dwFileAttribute != (DWORD)-1 )
00720 //      {
00721 //          // ファイル属性を元に戻す。
00722 //          ::SetFileAttributes(pszPath, dwFileAttribute);
00723 //      }
00724 //      //>> 2002/04/13 Azumaiya
00725 //      goto _RETURN_;
00726 //  }
00727 //
00728 //　2002/05/22 Frozen ここまで削除
00729
00730     //  Jul. 26, 2003 ryoji bBomExitによってBOMを付けるかどうかを決める
00731     if (bBomExist) {
00732         switch( nCharCode ){
00733         case CODE_UNICODE:
00734             file.Write("\xff\xfe",sizeof(char)*2);
00735             break;
00736         case CODE_UNICODEBE:
00737             file.Write( "\xfe\xff", sizeof(char) * 2 );
00738             break;
00739         case CODE_UTF8: // 2003.05.04 Moca BOMの間違いを訂正
00740             file.Write( "\xef\xbb\xbf", sizeof(char) * 3 );
00741             break;
00742         default:
00743             //  genta ここに来るのはバグだ
00744             ;
00745         }
00746     }
00747
00748     nLineNumber = 0;
00749 //  pLine = GetFirstLinrStr( &nLineLen );
00750     pCDocLine = m_pDocLineTop;
00751
00752 //  while( NULL != pLine ){
00753     while( NULL != pCDocLine ){
00754         ++nLineNumber;
00755         pLine = pCDocLine->m_pLine->GetPtr( &nLineLen );
00756
00757
00758         if( NULL != hwndProgress && 0 < m_nLines && 0 == ( nLineNumber % 1024 ) ){
00759             ::PostMessage( hwndProgress, PBM_SETPOS, nLineNumber * 100 / m_nLines , 0 );
00760             /* 処理中のユーザー操作を可能にする */
00761             if( !::BlockingHook( NULL ) ){
00762                 return FALSE;
00763             }
00764         }
00765
00766         nWriteLen = nLineLen - pCDocLine->m_cEol.GetLen();
00767         cmemBuf.SetDataSz( "" );
00768         if( 0 < nWriteLen ){
00769             cmemBuf.SetData( pLine, nWriteLen );
00770
00771             /* 書き込み時のコード変換 */
00772             switch( nCharCode ){
00773             case CODE_UNICODE:
00774                 /* SJIS→Unicodeコード変換 */
00775                 cmemBuf.SJISToUnicode();
00776                 break;
00777             case CODE_UTF8: /* UTF-8 */
00778                 /* SJIS→UTF-8コード変換 */
00779                 cmemBuf.SJISToUTF8();
00780                 break;
00781             case CODE_UTF7: /* UTF-7 */
00782                 /* SJIS→UTF-7コード変換 */
00783                 cmemBuf.SJISToUTF7();
00784                 break;
00785             case CODE_EUC:
00786                 /* SJIS→EUCコード変換 */
00787                 cmemBuf.SJISToEUC();
00788                 break;
00789             case CODE_JIS:
00790                 /* SJIS→JISコード変換 */
00791                 cmemBuf.SJIStoJIS();
00792                 break;
00793             case CODE_UNICODEBE:
00794                 /* SJIS→UnicodeBEコード変換 */
00795                 cmemBuf.SJISToUnicodeBE();
00796                 break;
00797             case CODE_SJIS:
00798             default:
00799                 break;
00800             }
00801         }
00802 //      if( bCRLF ){
00803         if( EOL_NONE != pCDocLine->m_cEol ){
00804
00805 // 2002/05/09 Frozen ここから
00806             if( nCharCode == CODE_UNICODE ){
00807                 if( cEol==EOL_NONE )
00808                     cmemBuf.Append( pCDocLine->m_cEol.GetUnicodeValue(), pCDocLine->m_cEol.GetLen()*sizeof(wchar_t));
00809                 else
00810                     cmemBuf.Append( cEol.GetUnicodeValue(), cEol.GetLen()*sizeof(wchar_t));
00811             }else if( nCharCode == CODE_UNICODEBE ){
00812                 /* UnicodeBE の改行コード設定 Moca, 2002/05/26 */
00813                 if( cEol == EOL_NONE ) /*  */
00814                     cmemBuf.Append( pCDocLine->m_cEol.GetUnicodeBEValue(), pCDocLine->m_cEol.GetLen()*sizeof(wchar_t) );
00815                 else
00816                     cmemBuf.Append( cEol.GetUnicodeBEValue(), cEol.GetLen()*sizeof(wchar_t) );
00817             }else{
00818                 if( cEol == EOL_NONE )
00819                     cmemBuf.Append(pCDocLine->m_cEol.GetValue(),pCDocLine->m_cEol.GetLen());
00820                 else
00821                     cmemBuf.Append(cEol.GetValue(),cEol.GetLen());
00822             }
00823 // 2002/05/09 Frozen ここまで
00824
00825 // 2002/05/09 Frozen ここから削除
00826
00827 //          /* 書き込み時の改行コード変換 */
00828 //          switch( nCharCode ){
00829 //          case CODE_UNICODE:
00830 //              /* ASCII+SJIS→Unicode変換 */
00831 //              //  May 15, 2000 genta
00832 //              {
00833 //                  CEOL ue( EOL_CRLF_UNICODE );
00834 //                  cmemBuf.Append( ue.GetValue(), ue.GetLen() );
00835 //              }
00836 //              break;
00841 //          default:
00842 //              //  From Here Feb. 8, 2001 genta 改行コード変換処理を追加
00843 //              if( cEol == EOL_NONE ){
00847 //                  /* 改行コードを変換しない */
00848 //                  cmemBuf.Append( pCDocLine->m_cEol.GetValue(), pCDocLine->m_cEol.GetLen() );
00849 //                  break;
00850 //              }
00851 //              else {
00852 //                  /* 改行コードを指定されたものに変換 */
00853 //                  cmemBuf.Append( cEol.GetValue(), cEol.GetLen() );
00854 //              }
00855 //              //  To Here Feb. 8, 2001 genta
00856 //          }
00857 // 2002/05/09 Frozen ここまで削除
00858
00859         }
00860         if( 0 < cmemBuf.GetLength() )//{
00861             file.Write(cmemBuf.GetPtr(),sizeof(char)*cmemBuf.GetLength());//2002/05/22 Frozen gotoの次の}までをこの一行で置き換え
00863 //          if( fwrite( cmemBuf.GetPtr(), sizeof( char ), cmemBuf. GetLength(), sFile ) /* add */
00864 //                  < (size_t)cmemBuf.GetLength() ){ /* add */
00866 //              nRetVal = FALSE;
00867 //              goto _CLOSEFILE_;
00868 //          }
00869 //      }
00870
00871
00872 //      pLine = GetNextLinrStr( &nLineLen );
00873         pCDocLine = pCDocLine->m_pNext;
00874
00875     }
00876     }//この括弧でCFileWriteのデストラクタが呼び出され、ファイルが閉じられます。
00877
00878 // 2002/05/22 Frozen ここから削除（同様の処理はCFileWriteのデストラクタで代わりに行っています）------
00879 //
00880 //_CLOSEFILE_:;
00882 //  fflush( sFile );/* add */
00883 //  fclose( sFile );/* add */
00884 //  //<< 2002/04/13 Azumaiya
00885 //  // ファイル属性を元に戻す。
00886 //  ::SetFileAttributes(pszPath, dwFileAttribute);
00887 //  //>> 2002/04/13 Azumaiya
00888 //
00889 // Oct 6, 2000 ao end
00890 /* ファイル出力に関する変更はここまで。
00891     この後変更後のファイル情報を開くためにファイルアクセスしているが、ここまで無理に変更する必要はないでしょう。*/
00892
00893 // 2002/05/22 Frozen　ここまで削除---------------------------------------------------------
00894
00895
00896     /* 更新後のファイル時刻の取得
00897      * CloseHandle前ではFlushFileBuffersを呼んでもタイムスタンプが更新
00898      * されないことがある。
00899      */
00900
00901         // 2005.10.20 ryoji FindFirstFileを使うように変更（ファイルがロックされていてもタイムスタンプ取得可能）
00902         FILETIME ftime;
00903         if( GetLastWriteTimestamp( pszPath, ftime )){
00904             *pFileTime = ftime;
00905         }
00906
00907     }
00908     catch(CError_FileOpen)
00909     {
00910 		::MYMESSAGEBOX(
00911             hWndParent,
00912             MB_OK | MB_ICONSTOP,
00913             GSTR_APPNAME,
00914             "\'%s\'\nファイルを保存できません。\nパスが存在しないか、他のアプリケーションで使用されている可能性があります。",
00915             pszPath);
00916         nRetVal = FALSE;
00917     }
00918     catch(CError_FileWrite)
00919     {
00920         nRetVal = FALSE;
00921     }
00922
00923 //_RETURN_:; 2002/05/22 Frozen 削除（例外処理を使用するのでgoto用のラベルは使用しない）
00924     if( NULL != hwndProgress ){
00925         ::PostMessage( hwndProgress, PBM_SETPOS, 0, 0 );
00926         /* 処理中のユーザー操作を可能にする */
00927         if( !::BlockingHook( NULL ) ){
00928             return FALSE;
00929         }
00930     }
00931
00932     /* 行変更状態をすべてリセット */
00933 //  if ( nRetVal ) ResetAllModifyFlag();    // ここでむじょうけんにリセットしてはいけません。2002/04/28 YAZAKI
00934
00935     return nRetVal;
00936 }
00937
00938
00939
00940
00941
00942 /* データの削除 */
00943 /*
00944 || 指定行内の文字しか削除できません
00945 || データ変更によって影響のあった、変更前と変更後の行の範囲を返します
00946 || この情報をもとに、レイアウト情報などを更新してください。
00947 ||
00948     @date 2002/03/24 YAZAKI bUndo削除
00949 */
00950 void CDocLineMgr::DeleteData_CDocLineMgr(
00951             int         nLine,
00952             int         nDelPos,
00953             int         nDelLen,
00954             int*        pnModLineOldFrom,   /* 影響のあった変更前の行(from) */
00955             int*        pnModLineOldTo,     /* 影響のあった変更前の行(to) */
00956             int*        pnDelLineOldFrom,   /* 削除された変更前論理行(from) */
00957             int*        pnDelLineOldNum,    /* 削除された行数 */
00958             CMemory&    cmemDeleted         /* 削除されたデータ */
00959 //          int         bUndo               /* Undo操作かどうか */
00960 )
00961 {
00962 #ifdef _DEBUG
00963     CRunningTimer cRunningTimer( (const char*)"CDocLineMgr::DeleteData" );
00964 #endif
00965     CDocLine*   pDocLine;
00966     CDocLine*   pDocLine2;
00967     char*       pData;
00968     int         nDeleteLength;
00969     char*       pLine;
00970     int         nLineLen;
00971     char*       pLine2;
00972     int         nLineLen2;
00973     *pnModLineOldFrom = nLine;  /* 影響のあった変更前の行(from) */
00974     *pnModLineOldTo = nLine;    /* 影響のあった変更前の行(to) */
00975     *pnDelLineOldFrom = 0;      /* 削除された変更前論理行(from) */
00976     *pnDelLineOldNum = 0;       /* 削除された行数 */
00977 //  cmemDeleted.SetData( "", lstrlen( "" ) );
00978     cmemDeleted.SetDataSz( "" );
00979
00980     pDocLine = GetLineInfo( nLine );
00981     if( NULL == pDocLine ){
00982         return;
00983     }
00984
00985     pDocLine->SetModifyFlg(true);       /* 変更フラグ */
00986
00987     pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
00988
00989     if( nDelPos >= nLineLen ){
00990         return;
00991     }
00992     /* 「改行」を削除する場合は、次の行と連結する */
00993 //  if( ( nDelPos == nLineLen -1 && ( pLine[nDelPos] == CR || pLine[nDelPos] == LF ) )
00994 //   || nDelPos + nDelLen >= nLineLen
00995     if( ( EOL_NONE != pDocLine->m_cEol && nDelPos == nLineLen - pDocLine->m_cEol.GetLen() )
00996      || ( EOL_NONE != pDocLine->m_cEol && nDelPos + nDelLen >  nLineLen - pDocLine->m_cEol.GetLen() )
00997      || ( EOL_NONE == pDocLine->m_cEol && nDelPos + nDelLen >= nLineLen - pDocLine->m_cEol.GetLen() )
00998     ){
00999         /* 実際に削除するバイト数 */
01000         nDeleteLength = nLineLen - nDelPos;
01001
01002         /* 削除されるデータ */
01003         cmemDeleted.SetData( &pLine[nDelPos], nDeleteLength );
01004
01005         /* 次の行の情報 */
01006         if( NULL == ( pDocLine2 = pDocLine->m_pNext ) ){
01007             pData = new char[nLineLen + 1];
01008             if( nDelPos > 0 ){
01009                 memcpy( pData, pLine, nDelPos );
01010             }
01011             if( 0 < nLineLen - ( nDelPos + nDeleteLength ) ){
01012                 memcpy(
01013                     pData + nDelPos,
01014                     pLine + nDelPos + nDeleteLength,
01015                     nLineLen - ( nDelPos + nDeleteLength )
01016                 );
01017             }
01018             pData[ nLineLen - nDeleteLength ] = '\0';
01019             /* 改行コードの情報を更新 */
01020             pDocLine->m_cEol.SetType( EOL_NONE );
01021
01022             if( 0 < nLineLen - nDeleteLength ){
01023                 pDocLine->m_pLine->SetData( pData, nLineLen - nDeleteLength );
01024             }else{
01025                 // 行の削除
01026                 // 2004.03.18 Moca 関数を使う
01027                 DeleteNode( pDocLine );
01028                 pDocLine = NULL;
01029                 *pnDelLineOldFrom = nLine;  /* 削除された変更前論理行(from) */
01030                 *pnDelLineOldNum = 1;       /* 削除された行数 */
01031             }
01032             delete [] pData;
01033         }else{
01034             *pnModLineOldTo = nLine + 1;    /* 影響のあった変更前の行(to) */
01035             pLine2 = pDocLine2->m_pLine->GetPtr( &nLineLen2 );
01036             pData = new char[nLineLen + nLineLen2 + 1];
01037             if( nDelPos > 0 ){
01038                 memcpy( pData, pLine, nDelPos );
01039             }
01040             if( 0 < nLineLen - ( nDelPos + nDeleteLength ) ){
01041                 memcpy(
01042                     pData + nDelPos,
01043                     pLine + nDelPos + nDeleteLength,
01044                     nLineLen - ( nDelPos + nDeleteLength )
01045                 );
01046             }
01047             /* 次の行のデータを連結 */
01048             memcpy( pData + (nLineLen - nDeleteLength), pLine2, nLineLen2 );
01049             pData[ nLineLen - nDeleteLength + nLineLen2 ] = '\0';
01050             pDocLine->m_pLine->SetData( pData, nLineLen - nDeleteLength + nLineLen2 );
01051             /* 改行コードの情報を更新 */
01052             pDocLine->m_cEol = pDocLine2->m_cEol;
01053
01054             /* 次の行を削除 && 次次行とのリストの連結*/
01055             // 2004.03.18 Moca DeleteNode を使う
01056             DeleteNode( pDocLine2 );
01057             pDocLine2 = NULL;
01058             *pnDelLineOldFrom = nLine + 1;  /* 削除された変更前論理行(from) */
01059             *pnDelLineOldNum = 1;           /* 削除された行数 */
01060             delete [] pData;
01061         }
01062     }else{
01063         /* 実際に削除するバイト数 */
01064         nDeleteLength = nDelLen;
01065
01066         /* 削除されるデータ */
01067         cmemDeleted.SetData( &pLine[nDelPos], nDeleteLength );
01068
01069         pData = new char[nLineLen + 1];
01070         if( nDelPos > 0 ){
01071             memcpy( pData, pLine, nDelPos );
01072         }
01073         if( 0 < nLineLen - ( nDelPos + nDeleteLength ) ){
01074             memcpy(
01075                 pData + nDelPos,
01076                 pLine + nDelPos + nDeleteLength,
01077                 nLineLen - ( nDelPos + nDeleteLength )
01078             );
01079         }
01080         pData[ nLineLen - nDeleteLength ] = '\0';
01081         if( 0 < nLineLen - nDeleteLength ){
01082             pDocLine->m_pLine->SetData( pData, nLineLen - nDeleteLength );
01083         }else{
01084         }
01085         delete [] pData;
01086     }
01087 //  DUMP();
01088     return;
01089 }
01090
01091
01092
01093
01094
01099 void CDocLineMgr::InsertData_CDocLineMgr(
01100             int         nLine,
01101             int         nInsPos,
01102             const char* pInsData,
01103             int         nInsDataLen,
01104             int*        pnInsLineNum,   /* 挿入によって増えた行の数 */
01105             int*        pnNewLine,      /* 挿入された部分の次の位置の行 */
01106             int*        pnNewPos        /* 挿入された部分の次の位置のデータ位置 */
01107 //          int         bUndo           /* Undo操作かどうか */
01108 )
01109 {
01110     CDocLine*   pDocLine;
01111     CDocLine*   pDocLineNew;
01112     char*       pLine;
01113     int         nLineLen;
01114     int         nBgn;
01115     int         nPos;
01116     CMemory     cmemPrevLine;
01117     CMemory     cmemCurLine;
01118     CMemory     cmemNextLine;
01119     int         nAllLinesOld = m_nLines;
01120     int         nCount;
01121
01122     //  May 15, 2000 genta
01123     CEOL        cEOLType;
01124     CEOL        cEOLTypeNext;
01125     //enumEOLType nEOLType;
01126     //enumEOLType nEOLTypeNext;
01127
01128     bool        bBookMarkNext;  // 2001.12.03 hor 挿入によるマーク行の制御
01129
01130     *pnNewLine = nLine; /* 挿入された部分の次の位置の行 */
01131     //  Jan. 25, 2004 genta
01132     //  挿入文字列長が0の場合に最後までpnNewPosが設定されないので
01133     //  初期値として0ではなく開始位置と同じ値を入れておく．
01134     *pnNewPos  = nInsPos;       /* 挿入された部分の次の位置のデータ位置 */
01135
01136     /* 挿入データを行終端で区切った行数カウンタ */
01137     nCount = 0;
01138     *pnInsLineNum = 0;
01139     pDocLine = GetLineInfo( nLine );
01140     if( NULL == pDocLine ){
01141         /* ここでNULLが帰ってくるということは、*/
01142         /* 全テキストの最後の次の行を追加しようとしていることを示す */
01143         cmemPrevLine.SetDataSz( "" );
01144         cmemNextLine.SetDataSz( "" );
01145         cEOLTypeNext.SetType( EOL_NONE );
01146         bBookMarkNext=false;    // 2001.12.03 hor
01147     }else{
01148         pDocLine->SetModifyFlg(true);       /* 変更フラグ */
01149
01150         pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01151         cmemPrevLine.SetData( pLine, nInsPos );
01152         cmemNextLine.SetData( &pLine[nInsPos], nLineLen - nInsPos );
01153
01154         cEOLTypeNext = pDocLine->m_cEol;
01155         bBookMarkNext= pDocLine->IsBookMarked();    // 2001.12.03 hor
01156     }
01157     nBgn = 0;
01158     nPos = 0;
01159     for( nPos = 0; nPos < nInsDataLen; ){
01160         if( pInsData[nPos] == '\n' || pInsData[nPos] == '\r' ){
01161             /* 行終端子の種類を調べる */
01162             cEOLType.GetTypeFromString( &pInsData[nPos], nInsDataLen - nPos );
01163             /* 行終端子も含めてテキストをバッファに格納 */
01164             cmemCurLine.SetData( &pInsData[nBgn], nPos - nBgn + cEOLType.GetLen() );
01165             nBgn = nPos + cEOLType.GetLen();
01166             nPos = nBgn;
01167             if( NULL == pDocLine ){
01168                 pDocLineNew = new CDocLine;
01169
01170                 pDocLineNew->m_pLine = new CMemory;
01171                 /* 挿入データを行終端で区切った行数カウンタ */
01172                 if( 0 == nCount ){
01173                     if( NULL == m_pDocLineTop ){
01174                         m_pDocLineTop = pDocLineNew;
01175                     }
01176                     pDocLineNew->m_pPrev = m_pDocLineBot;
01177                     if( NULL != m_pDocLineBot ){
01178                         m_pDocLineBot->m_pNext = pDocLineNew;
01179                     }
01180                     m_pDocLineBot = pDocLineNew;
01181                     pDocLineNew->m_pNext = NULL;
01182                     pDocLineNew->m_pLine->SetData( &cmemPrevLine );
01183                     *(pDocLineNew->m_pLine) += cmemCurLine;
01184
01185                     pDocLineNew->m_cEol = cEOLType;                         /* 改行コードの種類 */
01186                     // pDocLineNew->m_nEOLLen = gm_pnEolLenArr[nEOLType];   /* 改行コードの長さ */
01187                 }else{
01188                     if( NULL != m_pDocLineBot ){
01189                         m_pDocLineBot->m_pNext = pDocLineNew;
01190                     }
01191                     pDocLineNew->m_pPrev = m_pDocLineBot;
01192                     m_pDocLineBot = pDocLineNew;
01193                     pDocLineNew->m_pNext = NULL;
01194                     pDocLineNew->m_pLine->SetData( &cmemCurLine );
01195
01196                     pDocLineNew->m_cEol = cEOLType;                         /* 改行コードの種類 */
01197                     // pDocLineNew->m_nEOLLen = gm_pnEolLenArr[nEOLType];   /* 改行コードの長さ */
01198                 }
01199                 pDocLine = NULL;
01200                 ++m_nLines;
01201             }else{
01202                 /* 挿入データを行終端で区切った行数カウンタ */
01203                 if( 0 == nCount ){
01204                     pDocLine->m_pLine->SetData( &cmemPrevLine );
01205                     *(pDocLine->m_pLine) += cmemCurLine;
01206
01207                     pDocLine->m_cEol = cEOLType;                        /* 改行コードの種類 */
01208                     // pDocLine->m_nEOLLen = gm_pnEolLenArr[nEOLType];  /* 改行コードの長さ */
01209
01210                     // 2001.12.13 hor
01211                     // 行頭で改行したら元の行のマークを新しい行に移動する
01212                     // それ以外なら元の行のマークを維持して新しい行にはマークを付けない
01213                     if(nInsPos==0){
01214                         pDocLine->SetBookMark(false);
01215                     }else{
01216                         bBookMarkNext=false;
01217                     }
01218
01219                     pDocLine = pDocLine->m_pNext;
01220                 }else{
01221                     pDocLineNew = new CDocLine;
01222                     pDocLineNew->m_pLine = new CMemory;
01223                     pDocLineNew->m_pPrev = pDocLine->m_pPrev;
01224                     pDocLineNew->m_pNext = pDocLine;
01225                     pDocLine->m_pPrev->m_pNext = pDocLineNew;
01226                     pDocLine->m_pPrev = pDocLineNew;
01227                     pDocLineNew->m_pLine->SetData( &cmemCurLine );
01228
01229                     pDocLineNew->m_cEol = cEOLType;                         /* 改行コードの種類 */
01230                     // pDocLineNew->m_nEOLLen = gm_pnEolLenArr[nEOLType];   /* 改行コードの長さ */
01231
01232                     ++m_nLines;
01233                 }
01234             }
01235
01236             /* 挿入データを行終端で区切った行数カウンタ */
01237             ++nCount;
01238             ++(*pnNewLine); /* 挿入された部分の次の位置の行 */
01239         }else{
01240             ++nPos;
01241         }
01242     }
01243 //  nEOLType = EOL_NONE;
01244     if( 0 < nPos - nBgn || 0 < cmemNextLine.GetLength() ){
01245         cmemCurLine.SetData( &pInsData[nBgn], nPos - nBgn );
01246         cmemCurLine += cmemNextLine;
01247         if( NULL == pDocLine ){
01248             pDocLineNew = new CDocLine;
01249             pDocLineNew->m_pLine = new CMemory;
01250             /* 挿入データを行終端で区切った行数カウンタ */
01251             if( 0 == nCount ){
01252                 if( NULL == m_pDocLineTop ){
01253                     m_pDocLineTop = pDocLineNew;
01254                 }
01255                 pDocLineNew->m_pPrev = m_pDocLineBot;
01256                 if( NULL != m_pDocLineBot ){
01257                     m_pDocLineBot->m_pNext = pDocLineNew;
01258                 }
01259                 m_pDocLineBot = pDocLineNew;
01260                 pDocLineNew->m_pNext = NULL;
01261                 pDocLineNew->m_pLine->SetData( &cmemPrevLine );
01262                 *(pDocLineNew->m_pLine) += cmemCurLine;
01263
01264                 pDocLineNew->m_cEol = cEOLTypeNext;                         /* 改行コードの種類 */
01265                 // pDocLineNew->m_nEOLLen = gm_pnEolLenArr[nEOLTypeNext];   /* 改行コードの長さ */
01266
01267             }else{
01268                 if( NULL != m_pDocLineBot ){
01269                     m_pDocLineBot->m_pNext = pDocLineNew;
01270                 }
01271                 pDocLineNew->m_pPrev = m_pDocLineBot;
01272                 m_pDocLineBot = pDocLineNew;
01273                 pDocLineNew->m_pNext = NULL;
01274                 pDocLineNew->m_pLine->SetData( &cmemCurLine );
01275
01276                 pDocLineNew->m_cEol = cEOLTypeNext;                         /* 改行コードの種類 */
01277                 // pDocLineNew->m_nEOLLen = gm_pnEolLenArr[nEOLTypeNext];   /* 改行コードの長さ */
01278
01279             }
01280             pDocLine = NULL;
01281             ++m_nLines;
01282             *pnNewPos = nPos - nBgn;    /* 挿入された部分の次の位置のデータ位置 */
01283         }else{
01284             /* 挿入データを行終端で区切った行数カウンタ */
01285             if( 0 == nCount ){
01286                 pDocLine->m_pLine->SetData( &cmemPrevLine );
01287                 *(pDocLine->m_pLine) += cmemCurLine;
01288
01289                 pDocLine->m_cEol = cEOLTypeNext;                        /* 改行コードの種類 */
01290                 // pDocLine->m_nEOLLen = gm_pnEolLenArr[nEOLTypeNext];  /* 改行コードの長さ */
01291
01292                 pDocLine = pDocLine->m_pNext;
01293                 *pnNewPos = cmemPrevLine.GetLength() + nPos - nBgn;     /* 挿入された部分の次の位置のデータ位置 */
01294             }else{
01295                 pDocLineNew = new CDocLine;
01296                 pDocLineNew->m_pLine = new CMemory;
01297                 pDocLineNew->m_pPrev = pDocLine->m_pPrev;
01298                 pDocLineNew->m_pNext = pDocLine;
01299                 pDocLine->m_pPrev->m_pNext = pDocLineNew;
01300                 pDocLine->m_pPrev = pDocLineNew;
01301                 pDocLineNew->m_pLine->SetData( &cmemCurLine );
01302
01303                 pDocLineNew->m_cEol = cEOLTypeNext;                         /* 改行コードの種類 */
01304                 // pDocLineNew->m_nEOLLen = gm_pnEolLenArr[nEOLTypeNext];   /* 改行コードの長さ */
01305                 pDocLineNew->SetBookMark(bBookMarkNext);    // 2001.12.03 hor ブックマークを復元
01306
01307
01308                 ++m_nLines;
01309                 *pnNewPos = nPos - nBgn;    /* 挿入された部分の次の位置のデータ位置 */
01310             }
01311         }
01312     }
01313     *pnInsLineNum = m_nLines - nAllLinesOld;
01314     return;
01315 }
01316
01317 //nEOLType nEOLType nEOLTypeNext
01318
01319
01320
01321 /* 現在位置の単語の範囲を調べる */
01322 // 2001/06/23 N.Nakatani WhereCurrentWord()変更 WhereCurrentWord_2をコールするようにした
01323 int CDocLineMgr::WhereCurrentWord(
01324     int         nLineNum,
01325     int         nIdx,
01326     int*        pnIdxFrom,
01327     int*        pnIdxTo,
01328     CMemory*    pcmcmWord,
01329     CMemory*    pcmcmWordLeft
01330 )
01331 {
01332     CDocLine*   pDocLine;
01333     char*       pLine;
01334     int         nLineLen;
01335     *pnIdxFrom = nIdx;
01336     *pnIdxTo = nIdx;
01337     pDocLine = GetLineInfo( nLineNum );
01338     if( NULL == pDocLine ){
01339         return FALSE;
01340     }
01341     pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01342     /* 現在位置の単語の範囲を調べる */
01343     return CDocLineMgr::WhereCurrentWord_2( pLine, nLineLen, nIdx, pnIdxFrom, pnIdxTo, pcmcmWord, pcmcmWordLeft );
01344
01345 }
01346
01347
01348
01349 //@@@ 2001.06.23 N.Nakatani
01366 int CDocLineMgr::WhereCurrentWord_2(
01367     const char* pLine,
01368     int         nLineLen,
01369     int         nIdx,
01370     int*        pnIdxFrom,
01371     int*        pnIdxTo,
01372     CMemory*    pcmcmWord,
01373     CMemory*    pcmcmWordLeft
01374 )
01375 {
01376     int         nCharKind;
01377     int         nCharKindNext;
01378     int         nIdxNext;
01379     int         nIdxNextPrev;
01380     int         nCharChars;
01381     *pnIdxFrom = nIdx;
01382     *pnIdxTo = nIdx;
01383 //  pDocLine = GetLineInfo( nLineNum );
01384 //  if( NULL == pDocLine ){
01385 //      return FALSE;
01386 //  }
01387 //  pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01388     if( NULL == pLine ){
01389         return FALSE;
01390     }
01391     if( nIdx >= nLineLen ){
01392         return FALSE;
01393     }
01394     /* 現在位置の文字の種類によっては選択不能 */
01395     if( pLine[nIdx] == CR || pLine[nIdx] == LF ){
01396         return FALSE;
01397     }
01398     /* 現在位置の文字の種類を調べる */
01399     nCharKind = WhatKindOfChar( (char*)pLine, nLineLen, nIdx );
01400     /* 文字種類が変わるまで前方へサーチ */
01401     nIdxNext = nIdx;
01402     nCharChars = &pLine[nIdxNext] - CMemory::MemCharPrev( pLine, nLineLen, &pLine[nIdxNext] );
01403     while( nCharChars > 0 ){
01404         nIdxNextPrev = nIdxNext;
01405         nIdxNext -= nCharChars;
01406         nCharKindNext = WhatKindOfChar( (char*)pLine, nLineLen, nIdxNext );
01407         if( nCharKind == CK_MBC_NOVASU ){
01408             if( nCharKindNext == CK_MBC_HIRA ||
01409                 nCharKindNext == CK_MBC_KATA ){
01410                 nCharKind = nCharKindNext;
01411             }
01412         }else
01413         if( nCharKind == CK_MBC_HIRA ||
01414             nCharKind == CK_MBC_KATA ){
01415             if( nCharKindNext == CK_MBC_NOVASU ){
01416                 nCharKindNext = nCharKind;
01417             }
01418         }
01419         if( nCharKind != nCharKindNext ){
01420             nIdxNext = nIdxNextPrev;
01421             break;
01422         }
01423         nCharChars = &pLine[nIdxNext] - CMemory::MemCharPrev( pLine, nLineLen, &pLine[nIdxNext] );
01424     }
01425     *pnIdxFrom = nIdxNext;
01426
01427     if( NULL != pcmcmWordLeft ){
01428         pcmcmWordLeft->SetData( &pLine[*pnIdxFrom], nIdx - *pnIdxFrom );
01429     }
01430
01431     /* 文字種類が変わるまで後方へサーチ */
01432     nIdxNext = nIdx;
01433     // 2005-09-02 D.S.Koba GetSizeOfChar
01434     nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nIdxNext );
01435     while( nCharChars > 0 ){
01436         nIdxNext += nCharChars;
01437         nCharKindNext = WhatKindOfChar( (char*)pLine, nLineLen, nIdxNext );
01438         if( nCharKind == CK_MBC_NOVASU ){
01439             if( nCharKindNext == CK_MBC_HIRA ||
01440                 nCharKindNext == CK_MBC_KATA ){
01441                 nCharKind = nCharKindNext;
01442             }
01443         }else
01444         if( nCharKind == CK_MBC_HIRA ||
01445             nCharKind == CK_MBC_KATA ){
01446             if( nCharKindNext == CK_MBC_NOVASU ){
01447                 nCharKindNext = nCharKind;
01448             }
01449         }
01450         if( nCharKind != nCharKindNext ){
01451             break;
01452         }
01453         // 2005-09-02 D.S.Koba GetSizeOfChar
01454         nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nIdxNext );
01455     }
01456     *pnIdxTo = nIdxNext;
01457
01458     if( NULL != pcmcmWord ){
01459         pcmcmWord->SetData( &pLine[*pnIdxFrom], *pnIdxTo - *pnIdxFrom );
01460     }
01461     return TRUE;
01462 }
01463
01464
01465
01470 int CDocLineMgr::SearchNextWordPosition(
01471     const char* pLine,
01472     int         nLineLen,
01473     int         nIdx,       //  桁数
01474     int*        pnColmNew,  //  見つかった位置
01475     BOOL        bStopsBothEnds  //  単語の両端で止まる
01476 )
01477 {
01478     /* 文字種類が変わるまで後方へサーチ */
01479     /* 空白とタブは無視する */
01480
01481     /* 現在位置の文字の種類を調べる */
01482     int nCharKind = WhatKindOfChar( pLine, nLineLen, nIdx );
01483
01484     int nIdxNext = nIdx;
01485     // 2005-09-02 D.S.Koba GetSizeOfChar
01486     int nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nIdxNext );
01487     while( nCharChars > 0 ){
01488         nIdxNext += nCharChars;
01489         int nCharKindNext = WhatKindOfChar( pLine, nLineLen, nIdxNext );
01490         /* 空白とタブは無視する */
01491         if( nCharKindNext == CK_TAB || nCharKindNext == CK_SPACE ){
01492             if ( bStopsBothEnds && nCharKind != nCharKindNext ){
01493                 *pnColmNew = nIdxNext;
01494                 return TRUE;
01495             }
01496             nCharKind = nCharKindNext;
01497         }
01498         else {
01499             if( nCharKind == CK_MBC_NOVASU ){
01500                 if( nCharKindNext == CK_MBC_HIRA ||
01501                     nCharKindNext == CK_MBC_KATA ){
01502                     nCharKind = nCharKindNext;
01503                 }
01504             }else
01505             if( nCharKind == CK_MBC_HIRA ||
01506                 nCharKind == CK_MBC_KATA ){
01507                 if( nCharKindNext == CK_MBC_NOVASU ){
01508                     nCharKindNext = nCharKind;
01509                 }
01510             }
01511             if( nCharKind != nCharKindNext ){
01512                 *pnColmNew = nIdxNext;
01513                 return TRUE;
01514             }
01515         }
01516         // 2005-09-02 D.S.Koba GetSizeOfChar
01517         nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nIdxNext );
01518     }
01519     return FALSE;
01520 }
01521
01522 /* 現在位置の左右の単語の先頭位置を調べる */
01523 int CDocLineMgr::PrevOrNextWord(
01524     int         nLineNum,   //  行数
01525     int         nIdx,       //  桁数
01526     int*        pnColmNew,  //  見つかった位置
01527     BOOL        bLEFT,      //  TRUE:前方（左）へ向かう。FALSE:後方（右）へ向かう。
01528     BOOL        bStopsBothEnds  //  単語の両端で止まる
01529 )
01530 {
01531     CDocLine*   pDocLine;
01532     char*       pLine;
01533     int         nLineLen;
01534     int         nCharKind;
01535     int         nCharKindNext;
01536     int         nIdxNext;
01537     int         nIdxNextPrev;
01538     int         nCharChars;
01539     int         nCount;
01540     pDocLine = GetLineInfo( nLineNum );
01541     if( NULL == pDocLine ){
01542         return FALSE;
01543     }
01544     pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01545
01546     // ABC D[EOF]となっていたときに、Dの後ろにカーソルを合わせ、単語の左端に移動すると、Aにカーソルがあうバグ修正。YAZAKI
01547     if( nIdx >= nLineLen ){
01548         if (bLEFT && nIdx == nLineLen){
01549
01550         }
01551         else {
01552             nIdx = nLineLen - 1;
01553         }
01554     }
01555     /* 現在位置の文字の種類によっては選択不能 */
01556     if( FALSE == bLEFT && ( pLine[nIdx] == CR || pLine[nIdx] == LF ) ){
01557         return FALSE;
01558     }
01559     /* 前の単語か？後ろの単語か？ */
01560     if( bLEFT ){
01561         /* 現在位置の文字の種類を調べる */
01562         nCharKind = WhatKindOfChar( pLine, nLineLen, nIdx );
01563         if( nIdx == 0 ){
01564             return FALSE;
01565         }
01566         /* 文字種類が変わるまで前方へサーチ */
01567         /* 空白とタブは無視する */
01568         nCount = 0;
01569         nIdxNext = nIdx;
01570         nCharChars = &pLine[nIdxNext] - CMemory::MemCharPrev( pLine, nLineLen, &pLine[nIdxNext] );
01571         while( nCharChars > 0 ){
01572             nIdxNextPrev = nIdxNext;
01573             nIdxNext -= nCharChars;
01574             nCharKindNext = WhatKindOfChar( pLine, nLineLen, nIdxNext );
01575             /* 空白とタブは無視する */
01576             if( nCharKind == CK_MBC_NOVASU ){
01577                 if( nCharKindNext == CK_MBC_HIRA ||
01578                     nCharKindNext == CK_MBC_KATA ){
01579                     nCharKind = nCharKindNext;
01580                 }
01581             }else
01582             if( nCharKind == CK_MBC_HIRA ||
01583                 nCharKind == CK_MBC_KATA ){
01584                 if( nCharKindNext == CK_MBC_NOVASU ){
01585                     nCharKindNext = nCharKind;
01586                 }
01587             }
01588             if( nCharKind != nCharKindNext ){
01589                 /* サーチ開始位置の文字が空白またはタブの場合 */
01590                 if( nCharKind == CK_TAB || nCharKind == CK_SPACE ){
01591                     if ( bStopsBothEnds && nCount ){
01592                         nIdxNext = nIdxNextPrev;
01593                         break;
01594                     }
01595                     nCharKind = nCharKindNext;
01596                 }else{
01597                     if( nCount == 0){
01598                         nCharKind = nCharKindNext;
01599                     }else{
01600                         nIdxNext = nIdxNextPrev;
01601                         break;
01602                     }
01603                 }
01604             }
01605             nCharChars = &pLine[nIdxNext] - CMemory::MemCharPrev( pLine, nLineLen, &pLine[nIdxNext] );
01606             ++nCount;
01607         }
01608         *pnColmNew = nIdxNext;
01609     }else{
01610         CDocLineMgr::SearchNextWordPosition(pLine, nLineLen, nIdx, pnColmNew, bStopsBothEnds);
01611     }
01612     return TRUE;
01613 }
01614
01615
01616
01617
01618
01624 /* 見つからない場合は０を返す */
01625 int CDocLineMgr::SearchWord(
01626     int         nLineNum,       /* 検索開始行 */
01627     int         nIdx,           /* 検索開始位置 */
01628     const char* pszPattern,     /* 検索条件 */
01629     int         bPrevOrNext,    /* 0==前方検索 1==後方検索 */
01630     int         bRegularExp,    /* 1==正規表現 */
01631     int         bLoHiCase,      /* 1==英大文字小文字の区別 */
01632     int         bWordOnly,      /* 1==単語のみ検索 */
01633     int*        pnLineNum,      /* マッチ行 */
01634     int*        pnIdxFrom,      /* マッチ位置from */
01635     int*        pnIdxTo,        /* マッチ位置to */
01636     //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
01637     CBregexp*   pRegexp
01638 )
01639 {
01640 //#ifdef _DEBUG
01641 //  CRunningTimer cRunningTimer( (const char*)"CDocLineMgr::SearchWord" );
01642 //#endif
01643     CDocLine*   pDocLine;
01644     int         nLinePos;
01645     int         nIdxPos;
01646     int         nIdxPosOld;
01647     const char* pLine;
01648     int         nLineLen;
01649     char*       pszRes;
01650     int         nHitTo;
01651     int         nHitPos;
01652     int         nHitPosOld;
01653     int         nRetVal = 0;
01654     int*        pnKey_CharCharsArr;
01655     //  Jun. 10, 2003 Moca
01656     //  lstrlenを毎回呼ばずにnPatternLenを使うようにする
01657     const int   nPatternLen = lstrlen( pszPattern );    //2001/06/23 N.Nakatani
01658     pnKey_CharCharsArr = NULL;
01659 //  int*        pnKey_CharUsedArr;
01660 //  pnKey_CharUsedArr = NULL;
01661     /* 検索条件の情報 */
01662     CDocLineMgr::CreateCharCharsArr(
01663         (const unsigned char *)pszPattern,
01664         nPatternLen,
01665         &pnKey_CharCharsArr
01666     );
01667 //  /* 検索条件の情報(キー文字列の使用文字表)作成 */
01668 //  CDocLineMgr::CreateCharUsedArr(
01669 //      (const unsigned char *)pszPattern,
01670 //      lstrlen( pszPattern ),
01671 //      pnKey_CharCharsArr,
01672 //      &pnKey_CharUsedArr
01673 //  );
01674
01675     /* 1==正規表現 */
01676     if( bRegularExp ){
01677         nLinePos = nLineNum;        // 検索行＝検索開始行
01678         pDocLine = GetLineInfo( nLinePos );
01679         /* 0==前方検索 1==後方検索 */
01680         if( 0 == bPrevOrNext ){
01681             //
01682             // 前方(↑)検索(正規表現)
01683             //
01684             nHitTo = nIdx;              // 検索開始位置
01685             nIdxPos = 0;
01686             while( NULL != pDocLine ){
01687                 pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01688                 nHitPos     = -1;   // -1:この行でマッチ位置なし
01689                 while( 1 ){
01690                     nHitPosOld = nHitPos;
01691                     nIdxPosOld = nIdxPos;
01692                     if (    nIdxPos <= pDocLine->GetLengthWithoutEOL()
01693                         &&  pRegexp->Match( pLine, nLineLen, nIdxPos ) ){
01694                         // 検索にマッチした！
01695                         nHitPos = pRegexp->GetIndex();
01696                         nIdxPos = pRegexp->GetLastIndex();
01697                         // 長さ０でマッチしたので、この位置で再度マッチしないように、１文字進める
01698                         if (nIdxPos == nHitPos) {
01699                             // 2005-09-02 D.S.Koba GetSizeOfChar
01700                             nIdxPos += (CMemory::GetSizeOfChar( pLine, nLineLen, nIdxPos ) == 2 ? 2 : 1);
01701                         }
01702                         if( nHitPos >= nHitTo ){
01703                             // マッチしたのは、カーソル位置以降だった
01704                             // すでにマッチした位置があれば、それを返し、なければ前の行へ
01705                             break;
01706                         }
01707                     } else {
01708                         // マッチしなかった
01709                         // すでにマッチした位置があれば、それを返し、なければ前の行へ
01710                         break;
01711                     }
01712                 }
01713                 if ( -1 != nHitPosOld ) {
01714                     // この行でマッチした位置が存在するので、この行で検索終了
01715                     *pnIdxFrom = nHitPosOld;            /* マッチ位置from */
01716                     *pnIdxTo = nIdxPosOld;              /* マッチ位置to */
01717                     break;
01718                 } else {
01719                     // この行でマッチした位置が存在しないので、前の行を検索へ
01720                     nLinePos--;
01721                     pDocLine = pDocLine->m_pPrev;
01722                     nIdxPos = 0;
01723                     if( NULL != pDocLine ){
01724 //                      nHitTo = pDocLine->m_pLine->GetLength();
01725                         nHitTo = pDocLine->m_pLine->GetLength() + 1;        // 前の行のNULL文字(\0)にもマッチさせるために+1 2003.05.16 かろと
01726                     }
01727                 }
01728             }
01729         } else {
01730             //
01731             // 後方検索(正規表現)
01732             //
01733             nIdxPos = nIdx;
01734             while( NULL != pDocLine ){
01735                 pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01736                 if(     nIdxPos <= pDocLine->GetLengthWithoutEOL()
01737                     &&  pRegexp->Match( pLine, nLineLen, nIdxPos ) ){
01738                     // マッチした
01739                     *pnIdxFrom = pRegexp->GetIndex();                   /* マッチ位置from */
01740                     *pnIdxTo = pRegexp->GetLastIndex();                 /* マッチ位置to */
01741                     break;
01742                 }
01743                 ++nLinePos;
01744                 pDocLine = pDocLine->m_pNext;
01745                 nIdxPos = 0;
01746             }
01747         }
01748         //
01749         // 正規表現検索の後処理
01750         if ( pDocLine != NULL ) {
01751             // マッチした行がある
01752             *pnLineNum = nLinePos;              /* マッチ行 */
01753             nRetVal = 1;
01754             // レイアウト行では改行文字内の位置を表現できないため、マッチ開始位置を補正
01755             if (*pnIdxFrom > pDocLine->GetLengthWithoutEOL()) {
01756                 // \r\n改行時に\nにマッチすると置換できない不具合となるため
01757                 // 改行文字内でマッチした場合、改行文字の始めからマッチしたことにする
01758                 *pnIdxFrom = pDocLine->GetLengthWithoutEOL();
01759             }
01760         }
01761     }else
01762     /* 1==単語のみ検索 */
01763     if( bWordOnly ){
01764         /*
01765             2001/06/23 Norio Nakatani
01766             単語単位の検索を試験的に実装。単語はWhereCurrentWord()で判別してますので、
01767             英単語やC/C++識別子などの検索条件ならヒットします。
01768         */
01769
01770         /* 0==前方検索 1==後方検索 */
01771         if( 0 == bPrevOrNext ){
01772             nLinePos = nLineNum;
01773             pDocLine = GetLineInfo( nLinePos );
01774             int nNextWordFrom;
01775             int nNextWordFrom2;
01776             int nNextWordTo2;
01777 //          int bState;
01778             int nWork;
01779 //          CMemory cmemTest;
01780             nNextWordFrom = nIdx;
01781             while( NULL != pDocLine ){
01782                 if( TRUE == PrevOrNextWord( nLinePos, nNextWordFrom, &nWork, TRUE, FALSE ) ){
01783                     nNextWordFrom = nWork;
01784                     if( WhereCurrentWord( nLinePos, nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL ) ){
01785                         if( nPatternLen == nNextWordTo2 - nNextWordFrom2 ){
01786                             const char* pData = pDocLine->m_pLine->GetPtr();    // 2002/2/10 aroka CMemory変更
01787                             /* 1==大文字小文字の区別 */
01788                             if( (FALSE == bLoHiCase && 0 == _memicmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) ) ||
01789                                 (TRUE  == bLoHiCase && 0 ==  memcmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) )
01790                             ){
01791                                 *pnLineNum = nLinePos;  /* マッチ行 */
01792                                 *pnIdxFrom = nNextWordFrom2;    /* マッチ位置from */
01793                                 *pnIdxTo = *pnIdxFrom + nPatternLen;    /* マッチ位置to */
01794                                 nRetVal = 1;
01795                                 goto end_of_func;
01796                             }
01797                         }
01798                         continue;
01799                     }
01800                 }
01801                 /* 前の行を見に行く */
01802                 nLinePos--;
01803                 pDocLine = pDocLine->m_pPrev;
01804                 if( NULL != pDocLine ){
01805                     nNextWordFrom = pDocLine->m_pLine->GetLength() - pDocLine->m_cEol.GetLen();
01806                     if( 0 > nNextWordFrom ){
01807                         nNextWordFrom = 0;
01808                     }
01809                 }
01810             }
01811         }else{
01812             nLinePos = nLineNum;
01813             pDocLine = GetLineInfo( nLinePos );
01814             int nNextWordFrom;
01815
01816             int nNextWordFrom2;
01817             int nNextWordTo2;
01818 //          int bState;
01819             nNextWordFrom = nIdx;
01820             while( NULL != pDocLine ){
01821                 if( TRUE ==
01822                     WhereCurrentWord( nLinePos, nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL )
01823                 ){
01824                     if( nPatternLen == nNextWordTo2 - nNextWordFrom2 ){
01825                         const char* pData = pDocLine->m_pLine->GetPtr();    // 2002/2/10 aroka CMemory変更
01826                         /* 1==大文字小文字の区別 */
01827                         if( (FALSE == bLoHiCase && 0 == _memicmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) ) ||
01828                             (TRUE  == bLoHiCase && 0 ==   memcmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen ) )
01829                         ){
01830                             *pnLineNum = nLinePos;  /* マッチ行 */
01831                             *pnIdxFrom = nNextWordFrom2;    /* マッチ位置from */
01832                             *pnIdxTo = *pnIdxFrom + nPatternLen;    /* マッチ位置to */
01833                             nRetVal = 1;
01834                             goto end_of_func;
01835                         }
01836                     }
01837                     /* 現在位置の左右の単語の先頭位置を調べる */
01838                     if( PrevOrNextWord( nLinePos, nNextWordFrom, &nNextWordFrom, FALSE, FALSE ) ){
01839                         continue;
01840                     }
01841                 }
01842                 /* 次の行を見に行く */
01843                 nLinePos++;
01844                 pDocLine = pDocLine->m_pNext;
01845                 nNextWordFrom = 0;
01846             }
01847         }
01848
01849         nRetVal = 0;
01850         goto end_of_func;
01851     }else{
01852         /* 0==前方検索 1==後方検索 */
01853         if( 0 == bPrevOrNext ){
01854             nLinePos = nLineNum;
01855             nHitTo = nIdx;
01856
01857             nIdxPos = 0;
01858             pDocLine = GetLineInfo( nLinePos );
01859             while( NULL != pDocLine ){
01860                 pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01861                 nHitPos = -1;
01862                 while( 1 ){
01863                     nHitPosOld = nHitPos;
01864                     nIdxPosOld = nIdxPos;
01865                     pszRes = SearchString(
01866                         (const unsigned char *)pLine,
01867                         nLineLen,
01868                         nIdxPos,
01869                         (const unsigned char *)pszPattern,
01870                         nPatternLen,
01871                         pnKey_CharCharsArr,
01872 //                      pnKey_CharUsedArr,
01873                         bLoHiCase
01874                     );
01875                     if( NULL != pszRes ){
01876                         nHitPos = pszRes - pLine;
01877                         nIdxPos = nHitPos + nPatternLen;    // マッチ文字列長進めるように変更 2005.10.28 Karoto
01878                         if( nHitPos >= nHitTo ){
01879                             if( -1 != nHitPosOld ){
01880                                 *pnLineNum = nLinePos;                          /* マッチ行 */
01881                                 *pnIdxFrom = nHitPosOld;                        /* マッチ位置from */
01882                                 *pnIdxTo = nIdxPosOld;                          /* マッチ位置to */
01883                                 nRetVal = 1;
01884                                 goto end_of_func;
01885                             }else{
01886                                 break;
01887                             }
01888                         }
01889                     }else{
01890                         if( -1 != nHitPosOld ){
01891                             *pnLineNum = nLinePos;                          /* マッチ行 */
01892                             *pnIdxFrom = nHitPosOld;                        /* マッチ位置from */
01893                             *pnIdxTo = nIdxPosOld;                          /* マッチ位置to */
01894                             nRetVal = 1;
01895                             goto end_of_func;
01896                         }else{
01897                             break;
01898                         }
01899                     }
01900                 }
01901                 nLinePos--;
01902                 pDocLine = pDocLine->m_pPrev;
01903                 nIdxPos = 0;
01904                 if( NULL != pDocLine ){
01905 //                  nHitTo = lstrlen( pDocLine->m_pLine->GetPtr() );
01906                     nHitTo = pDocLine->m_pLine->GetLength();
01907                 }
01908             }
01909             nRetVal = 0;
01910             goto end_of_func;
01911         }else{
01912             nIdxPos = nIdx;
01913             nLinePos = nLineNum;
01914             pDocLine = GetLineInfo( nLinePos );
01915             while( NULL != pDocLine ){
01916                 pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
01917                 pszRes = SearchString(
01918                     (const unsigned char *)pLine,
01919                     nLineLen,
01920                     nIdxPos,
01921                     (const unsigned char *)pszPattern,
01922                     nPatternLen,
01923                     pnKey_CharCharsArr,
01924 //                  pnKey_CharUsedArr,
01925                     bLoHiCase
01926                 );
01927                 if( NULL != pszRes ){
01928                     *pnLineNum = nLinePos;                          /* マッチ行 */
01929                     *pnIdxFrom = pszRes - pLine;                    /* マッチ位置from */
01930                     *pnIdxTo = *pnIdxFrom + nPatternLen;    /* マッチ位置to */
01931                     nRetVal = 1;
01932                     goto end_of_func;
01933                 }
01934                 ++nLinePos;
01935                 pDocLine = pDocLine->m_pNext;
01936                 nIdxPos = 0;
01937             }
01938             nRetVal = 0;
01939             goto end_of_func;
01940         }
01941     }
01942 end_of_func:;
01943     if( NULL != pnKey_CharCharsArr ){
01944         delete [] pnKey_CharCharsArr;
01945         pnKey_CharCharsArr = NULL;
01946     }
01947 //  if( NULL != pnKey_CharUsedArr ){
01948 //      delete [] pnKey_CharUsedArr;
01949 //      pnKey_CharUsedArr = NULL;
01950 //  }
01951     return nRetVal;
01952
01953 }
01954
01955 /* 検索条件の情報(キー文字列の全角か半角かの配列)作成 */
01956 void CDocLineMgr::CreateCharCharsArr(
01957     const unsigned char*    pszPattern,
01958     int                     nSrcLen,
01959     int**                   ppnCharCharsArr
01960 )
01961 {
01962     int     i;
01963     int*    pnCharCharsArr;
01964     pnCharCharsArr = new int[nSrcLen];
01965     for( i = 0; i < nSrcLen; /*i++*/ ){
01966         // 2005-09-02 D.S.Koba GetSizeOfChar
01967         pnCharCharsArr[i] = CMemory::GetSizeOfChar( (const char *)pszPattern, nSrcLen, i );
01968         if( 0 == pnCharCharsArr[i] ){
01969             pnCharCharsArr[i] = 1;
01970         }
01971         if( 2 == pnCharCharsArr[i] ){
01972             pnCharCharsArr[i + 1] = pnCharCharsArr[i];
01973         }
01974         i+= pnCharCharsArr[i];
01975     }
01976     *ppnCharCharsArr = pnCharCharsArr;
01977     return;
01978 }
01979
01980
01981 //  /* 検索条件の情報(キー文字列の使用文字表)作成 */
01982 //  void CDocLineMgr::CreateCharUsedArr(
01983 //      const unsigned char*    pszPattern,
01984 //      int                     nSrcLen,
01985 //      const int*              pnCharCharsArr,
01986 //      int**                   ppnCharUsedArr
01987 //  )
01988 //  {
01989 //      int     i;
01990 //      int*    pnCharUsedArr;
01991 //      int     nCharCode;
01992 //      pnCharUsedArr = new int[0x0000ffff];
01993 //
01994 //      i = 0xffff;//TEST
01995 //
01996 //      for( i = 0; i < 0x0000ffff; ++i ){
01997 //          pnCharUsedArr[i] = nSrcLen;
01998 //      }
01999 //      for( i = 0; i < nSrcLen; /*i++*/ ){
02000 //          if( 2 == pnCharCharsArr[i] ){
02001 //  //          nCharCode = *((WORD*)(&pszPattern[i]));
02002 //              nCharCode = MAKEWORD( pszPattern[i + 1], pszPattern[i] );
02003 //          }else{
02004 //              nCharCode = (int)pszPattern[i];
02005 //          }
02006 //          if( nSrcLen == pnCharUsedArr[nCharCode] ){
02007 //              pnCharUsedArr[nCharCode] = i;
02008 //          }
02009 //          i+= pnCharCharsArr[i];
02010 //      }
02011 //      *ppnCharUsedArr = pnCharUsedArr;
02012 //      return;
02013 //  }
02014
02015
02016 /* 文字列検索 */
02017 char* CDocLineMgr::SearchString(
02018         const unsigned char*    pLine,
02019         int                     nDesLen,
02020         int                     nIdxPos,
02021         const unsigned char*    pszPattern,
02022         int                     nSrcLen,
02023         int*                    pnCharCharsArr,
02024 //      int*                    pnCharUsedArr,
02025         int                     bLoHiCase
02026 )
02027 {
02028 //#ifdef _DEBUG
02029 //  CRunningTimer cRunningTimer( (const char*)"CDocLineMgr::SearchString" );
02030 //#endif
02031     if( nDesLen < nSrcLen ){
02032         return NULL;
02033     }
02034     if( 0 >= nSrcLen || 0 >= nDesLen){
02035         return NULL;
02036     }
02037
02038     int nPos;
02039     int i;
02040     int j;
02041     int nWork;
02042     int nCharChars;
02043     int nCharChars1;
02044     int nCharChars2;
02045     int nCompareTo;
02046
02047 //  Mar. 4, 2001 genta
02048 #if 0
02049     if( !bLoHiCase ){
02050         nCompareTo = nDesLen - nSrcLen;
02051         for( nPos = nIdxPos; nPos <= nCompareTo; /*nPos++*/ ){
02052             nCharChars = CMemory::MemCharNext( (const char *)pLine, nDesLen, (const char *)&pLine[nPos] ) - (const char *)&pLine[nPos];
02053             nCharChars1 = nCharChars;
02054             for( i = 0; i < nSrcLen; /*i++*/ ){
02055                 if( NULL != pnCharCharsArr ){
02056                     nCharChars2 = pnCharCharsArr[i];
02057                 }else{
02058                     nCharChars2 = CMemory::MemCharNext( (const char *)pszPattern, nSrcLen, (const char *)&pszPattern[i] ) - (const char *)&pszPattern[i];
02059                 }
02060                 if( nCharChars1 != nCharChars2 ){
02061                     break;
02062                 }
02063                 if( 0 == nCharChars1 ){
02064                     nWork =1;
02065                 }else{
02066                     nWork = nCharChars1;
02067                 }
02068
02069                 for( j = 0; j < nWork; ++j ){
02070                     if( islower( pLine[nPos + i + j] ) ){
02071                         if( islower( pszPattern[i + j] ) ){
02072                             if( toupper( pLine[nPos + i + j] ) != toupper( pszPattern[i + j] ) ){
02073                                 break;
02074                             }
02075                         }else{
02076                             if( toupper( pLine[nPos + i + j] ) != pszPattern[i + j] ){
02077                                 break;
02078                             }
02079                         }
02080                     }else{
02081                         if( islower( pszPattern[i + j] ) ){
02082                             if( pLine[nPos + i + j] != toupper( pszPattern[i + j] ) ){
02083                                 break;
02084                             }
02085                         }else{
02086                             if( pLine[nPos + i + j] != pszPattern[i + j] ){
02087                                 break;
02088                             }
02089                         }
02090                     }
02091                 }
02092                 if( j < nWork ){
02093                     break;
02094                 }
02095                 if( 0 == nCharChars2 ){
02096                     ++i;
02097                 }else{
02098                     i+= nCharChars2;
02099                 }
02100                 nCharChars1 = CMemory::MemCharNext( (const char *)pLine, nDesLen, (const char *)&pLine[nPos + i] ) - (const char *)&pLine[nPos + i];
02101             }
02102             if( i >= nSrcLen ){
02103                 return (char *)&pLine[nPos];
02104             }
02105             if( 0 == nCharChars ){
02106                 ++nPos;
02107             }else{
02108                 nPos+= nCharChars;
02109             }
02110         }
02111         return NULL;
02112     }else{
02113 //  Mar. 4, 2001 genta
02114 #endif
02115         /* 線形探索 */
02116         nCompareTo = nDesLen - nSrcLen; //  Mar. 4, 2001 genta
02117         for( nPos = nIdxPos; nPos <= nCompareTo; /*nPos++*/ ){
02118             // 2005-09-02 D.S.Koba GetSizeOfChar
02119             nCharChars = CMemory::GetSizeOfChar( (const char *)pLine, nDesLen, nPos );
02120             nCharChars1 = nCharChars;
02121             for( i = 0; i < nSrcLen; /*i++*/ ){
02122                 if( NULL != pnCharCharsArr ){
02123                     nCharChars2 = pnCharCharsArr[i];
02124                 }else{
02125                     // 2005-09-02 D.S.Koba GetSizeOfChar
02126                     nCharChars2 = CMemory::GetSizeOfChar( (const char *)pszPattern, nSrcLen, i );
02127                 }
02128                 if( nCharChars1 != nCharChars2 ){
02129                     break;
02130                 }
02131                 if( 0 == nCharChars1 ){
02132                     nWork =1;
02133                 }else{
02134                     nWork = nCharChars1;
02135                 }
02136                 //  From Here Mar. 4, 2001 genta
02137                 if( !bLoHiCase && nWork == 1 ){ //  英大小文字の同一視
02138                     if( toupper( pLine[nPos + i] ) != toupper( pszPattern[i] ) )
02139                         break;
02140                 }
02141                 else {
02142                     for( j = 0; j < nWork; ++j ){
02143                         if( pLine[nPos + i + j] != pszPattern[i + j] ){
02144                             break;
02145                         }
02146                     }
02147                     if( j < nWork ){
02148                         break;
02149                     }
02150                 }
02151                 //  To Here
02152                 if( 0 == nCharChars2 ){
02153                     ++i;
02154                 }else{
02155                     i+= nCharChars2;
02156                 }
02157                 // 2005-09-02 D.S.Koba GetSizeOfChar
02158                 nCharChars1 = CMemory::GetSizeOfChar( (const char *)pLine, nDesLen, nPos + i );
02159             }
02160             if( i >= nSrcLen ){
02161                 return (char *)&pLine[nPos];
02162             }
02163             if( 0 == nCharChars ){
02164                 ++nPos;
02165             }else{
02166                 nPos+= nCharChars;
02167             }
02168         }
02169         return NULL;
02170     //  Mar. 4, 2001 genta  : comment out
02171 #if 0
02172     }
02173 #endif
02174 }
02175
02176
02177
02178 /* 現在位置の文字の種類を調べる */
02179 int CDocLineMgr::WhatKindOfChar(
02180         const char* pData,
02181         int     pDataLen,
02182         int     nIdx
02183 )
02184 {
02185     int     nCharChars;
02186     WORD    wChar;
02187     // 2005-09-02 D.S.Koba GetSizeOfChar
02188     nCharChars = CMemory::GetSizeOfChar( pData, pDataLen, nIdx );
02189     if( nCharChars == 0 ){
02190         return CK_NULL; /* NULL 0x0<=c<=0x0 */
02191     }else
02192     if( nCharChars == 1 ){  /* 半角文字 */
02193         if( pData[nIdx] == CR ){
02194             return CK_CR;   /* CR = 0x0d */
02195         }
02196         if( pData[nIdx] == LF ){
02197             return CK_LF;   /* LF = 0x0a */
02198         }
02199         if( pData[nIdx] == TAB ){
02200             return CK_TAB;  /* タブ 0x9<=c<=0x9 */
02201         }
02202         if( pData[nIdx] == SPACE ){
02203             return CK_SPACE;    /* 半角のスペース 0x20<=c<=0x20 */
02204         }
02205         if( __iscsym( pData[nIdx] ) ){
02206             return CK_CSYM; /* 半角の英字、アンダースコア、数字のいずれか */
02207         }
02208         if( pData[nIdx] >= (char)0xa1 && pData[nIdx] <= (char)0xdf ){ // Mar. 30, 2003 genta fd->df
02209             return CK_KATA; /* 半角のカタカナ 0xA1<=c<=0xFD */
02210         }
02211         return CK_ETC;  /* 半角のその他 */
02212
02213     }else
02214     if( nCharChars == 2 ){  /* 全角文字 */
02215         //<< 2002/03/28 Azumaiya
02216         // 判定条件部分の比較回数を少なくして最適化。
02217         wChar =  MAKEWORD(pData[nIdx + 1], pData[nIdx]);
02218 //      MYTRACE( "wChar=%0xh\n", wChar );
02219         if( wChar == (WORD)0x8140 ){
02220             return CK_MBC_SPACE;    /* 2バイトのスペース */
02221         }
02222         if( wChar == (WORD)0x815B ){
02223             return CK_MBC_NOVASU;   /* 伸ばす記号 0x815B<=c<=0x815B 'ー' */
02224         }
02225 //      if( wChar == (WORD)0x8151 ||                                /* 0x8151<=c<=0x8151 全角アンダースコア */
02226 //          (wChar >= (WORD)0x824F && wChar <= (WORD)0x8258 ) ||    /* 0x824F<=c<=0x8258 全角数字 */
02227 //          (wChar >= (WORD)0x8260 && wChar <= (WORD)0x8279 ) ||    /* 0x8260<=c<=0x8279 全角英大文字 */
02228 //          (wChar >= (WORD)0x8281 && wChar <= (WORD)0x829a )       /* 0x8281<=c<=0x829a 全角英小文字 */
02229 //      ){
02230         if (
02231             (WORD)wChar == 0x8151 ||            /* 0x8151<=c<=0x8151 全角アンダースコア */
02232             (WORD)(wChar - 0x824F) <= 0x09 ||   /* 0x824F<=c<=0x8258 全角数字 */
02233             (WORD)(wChar - 0x8260) <= 0x19 ||   /* 0x8260<=c<=0x8279 全角英大文字 */
02234             (WORD)(wChar - 0x8281) <= 0x19      /* 0x8281<=c<=0x829a 全角英小文字 */
02235            ){
02236             return CK_MBC_CSYM; /* 2バイトの英字、アンダースコア、数字のいずれか */
02237         }
02238 //      if( wChar >= (WORD)0x8140 && wChar <= (WORD)0x81FD ){
02239         if( (WORD)(wChar - 0x8140) <= 0xBD ){ /* 0x8140<=c<=0x81FD 2バイトの記号 */
02240             return CK_MBC_KIGO; /* 2バイトの記号 */
02241         }
02242 //      if( wChar >= (WORD)0x829F && wChar <= (WORD)0x82F1 ){
02243         if( (WORD)(wChar - 0x829F) <= 0x52 ){   /* 0x829F<=c<=0x82F1 2バイトのひらがな */
02244             return CK_MBC_HIRA; /* 2バイトのひらがな */
02245         }
02246 //      if( wChar >= (WORD)0x8340 && wChar <= (WORD)0x8396 ){
02247         if( (WORD)(wChar - 0x8340) <= 0x56 ){   /* 0x8340<=c<=0x8396 2バイトのカタカナ */
02248             return CK_MBC_KATA; /* 2バイトのカタカナ */
02249         }
02250 //      if( wChar >= (WORD)0x839F && wChar <= (WORD)0x83D6 ){
02251         if( (WORD)(wChar - 0x839F) <= 0x37 ){   /* 0x839F<=c<=0x83D6 2バイトのギリシャ文字 */
02252             return CK_MBC_GIRI; /* 2バイトのギリシャ文字 */
02253         }
02254 //      if( ( wChar >= (WORD)0x8440 && wChar <= (WORD)0x8460 ) ||   /* 0x8440<=c<=0x8460 全角ロシア文字大文字 */
02255 //          ( wChar >= (WORD)0x8470 && wChar <= (WORD)0x8491 ) ){   /* 0x8470<=c<=0x8491 全角ロシア文字小文字 */
02256         if(
02257             (WORD)(wChar - 0x8440) <= 0x20 ||   /* 0x8440<=c<=0x8460 全角ロシア文字大文字 */
02258             (WORD)(wChar - 0x8470) <= 0x21      /* 0x8470<=c<=0x8491 全角ロシア文字小文字 */
02259            ){
02260             return CK_MBC_ROS;  /* 2バイトのロシア文字: */
02261         }
02262 //      if( wChar >= (WORD)0x849F && wChar <= (WORD)0x879C ){
02263         if( (WORD)(wChar - 0x849F) <= 0x02FD ){ /* 0x849F<=c<=0x879C 2バイトの特殊記号 */
02264             return CK_MBC_SKIGO;    /* 2バイトの特殊記号 */
02265         }
02266         return CK_MBC_ETC;  /* 2バイトのその他(漢字など) */
02267         //>> 2002/03/28 Azumaiya
02268     }else{
02269         return CK_NULL; /* NULL 0x0<=c<=0x0 */
02270     }
02271 }
02272
02273
02281 void CDocLineMgr::DUMP( void )
02282 {
02283 #ifdef _DEBUG
02284     MYTRACE( "------------------------\n" );
02285
02286     CDocLine* pDocLine;
02287     CDocLine* pDocLineNext;
02288     CDocLine* pDocLineEnd = NULL;
02289     pDocLine = m_pDocLineTop;
02290
02291     // 正当性を調べる
02292     bool bIncludeCurrent = false;
02293     bool bIncludePrevRefer = false;
02294     int nNum = 0;
02295     if( m_pDocLineTop->m_pPrev != NULL ){
02296         MYTRACE( "error: m_pDocLineTop->m_pPrev != NULL\n");
02297     }
02298     if( m_pDocLineBot->m_pNext != NULL ){
02299         MYTRACE( "error: m_pDocLineBot->m_pNext != NULL\n" );
02300     }
02301     while( NULL != pDocLine ){
02302         if( m_pDocLineCurrent == pDocLine ){
02303             bIncludeCurrent = true;
02304         }
02305         if( m_pCodePrevRefer == pDocLine ){
02306             bIncludePrevRefer = true;
02307         }
02308         if( NULL != pDocLine->m_pNext ){
02309             if( pDocLine->m_pNext == pDocLine ){
02310                 MYTRACE( "error: pDocLine->m_pPrev Invalid value.\n" );
02311                 break;
02312             }
02313             if( pDocLine->m_pNext->m_pPrev != pDocLine ){
02314                 MYTRACE( "error: pDocLine->m_pNext->m_pPrev != pDocLine.\n" );
02315                 break;
02316             }
02317         }else{
02318             pDocLineEnd = pDocLine;
02319         }
02320         pDocLine = pDocLine->m_pNext;
02321         nNum++;
02322     }
02323
02324     if( pDocLineEnd != m_pDocLineBot ){
02325         MYTRACE( "error: pDocLineEnd != m_pDocLineBot" );
02326     }
02327
02328     if( nNum != m_nLines ){
02329         MYTRACE( "error: nNum(%d) != m_nLines(%d)\n", nNum, m_nLines );
02330     }
02331     if( false == bIncludeCurrent && m_pDocLineCurrent != NULL ){
02332         MYTRACE( "error: m_pDocLineCurrent=%08lxh Invalid value.\n", m_pDocLineCurrent );
02333     }
02334     if( false == bIncludePrevRefer && m_pCodePrevRefer != NULL ){
02335         MYTRACE( "error: m_pCodePrevRefer =%08lxh Invalid value.\n", m_pCodePrevRefer );
02336     }
02337
02338     // DUMP
02339     MYTRACE( "m_nLines=%d\n", m_nLines );
02340     MYTRACE( "m_pDocLineTop=%08lxh\n", m_pDocLineTop );
02341     MYTRACE( "m_pDocLineBot=%08lxh\n", m_pDocLineBot );
02342     pDocLine = m_pDocLineTop;
02343     while( NULL != pDocLine ){
02344         pDocLineNext = pDocLine->m_pNext;
02345         MYTRACE( "\t-------\n" );
02346         MYTRACE( "\tthis=%08lxh\n", pDocLine );
02347         MYTRACE( "\tpPrev; =%08lxh\n", pDocLine->m_pPrev );
02348         MYTRACE( "\tpNext; =%08lxh\n", pDocLine->m_pNext );
02349
02350         MYTRACE( "\tm_enumEOLType =%s\n", pDocLine->m_cEol.GetName() );
02351         MYTRACE( "\tm_nEOLLen =%d\n", pDocLine->m_cEol.GetLen() );
02352
02353
02354 //      MYTRACE( "\t[%s]\n", (char*)*(pDocLine->m_pLine) );
02355         MYTRACE( "\tpDocLine->m_pLine->GetLength()=[%d]\n", pDocLine->m_pLine->GetLength() );
02356         MYTRACE( "\t[%s]\n", pDocLine->m_pLine->GetPtr() );
02357
02358
02359         pDocLine = pDocLineNext;
02360     }
02361     MYTRACE( "------------------------\n" );
02362 #endif
02363     return;
02364 }
02365
02366 /* 行変更状態をすべてリセット */
02367 /*
02368
02369   ・変更フラグCDocLineオブジェクト作成時にはTRUEである
02370   ・変更回数はCDocLineオブジェクト作成時には1である
02371
02372   ファイルを読み込んだときは変更フラグを FALSEにする
02373   ファイルを読み込んだときは変更回数を 0にする
02374
02375   ファイルを上書きした時は変更フラグを FALSEにする
02376   ファイルを上書きした時は変更回数は変えない
02377
02378   変更回数はUndoしたときに-1される
02379   変更回数が0になった場合は変更フラグをFALSEにする
02380
02381
02382
02383 */
02384 void CDocLineMgr::ResetAllModifyFlag( void )
02385 //      BOOL bResetModifyCount /* 変更回数を0にするかどうか */
02386 //)
02387 {
02388     CDocLine* pDocLine;
02389     CDocLine* pDocLineNext;
02390     pDocLine = m_pDocLineTop;
02391     while( NULL != pDocLine ){
02392         pDocLineNext = pDocLine->m_pNext;
02393         pDocLine->SetModifyFlg(false);      /* 変更フラグ */
02394 //      if( bResetModifyCount ){            /* 変更回数を0にするかどうか */
02395 //          pDocLine->m_nModifyCount = 0;   /* 変更回数 */
02396 //      }
02397
02398         pDocLine = pDocLineNext;
02399     }
02400     return;
02401 }
02402
02403
02404 /* 全行データを返す
02405     改行コードは、CFLF統一される。
02406     @retval 全行データ。freeで開放しなければならない。
02407     @note   Debug版のテストにのみ使用している。
02408 */
02409 char* CDocLineMgr::GetAllData( int* pnDataLen )
02410 {
02411     int         nDataLen;
02412     char*       pLine;
02413     int         nLineLen;
02414     CDocLine*   pDocLine;
02415
02416     pDocLine = m_pDocLineTop;
02417     nDataLen = 0;
02418     while( NULL != pDocLine ){
02419         //  Oct. 7, 2002 YAZAKI
02420         nDataLen += pDocLine->GetLengthWithoutEOL() + 2;    //  \r\nを追加して返すため+2する。
02421         pDocLine = pDocLine->m_pNext;
02422     }
02423
02424     char*   pData;
02425     pData = (char*)malloc( nDataLen + 1 );
02426     if( NULL == pData ){
02427 		::MYMESSAGEBOX(
02428             NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
02429             "CDocLineMgr::GetAllData()\nメモリ確保に失敗しました。\n%dバイト",
02430             nDataLen + 1
02431         );
02432         return NULL;
02433     }
02434     pDocLine = m_pDocLineTop;
02435
02436     nDataLen = 0;
02437     while( NULL != pDocLine ){
02438         //  Oct. 7, 2002 YAZAKI
02439         nLineLen = pDocLine->GetLengthWithoutEOL();
02440         if( 0 < nLineLen ){
02441             pLine = pDocLine->m_pLine->GetPtr();
02442             memcpy( &pData[nDataLen], pLine, nLineLen );
02443             nDataLen += nLineLen;
02444         }
02445         pData[nDataLen++] = '\r';
02446         pData[nDataLen++] = '\n';
02447         pDocLine = pDocLine->m_pNext;
02448     }
02449     pData[nDataLen] = '\0';
02450     *pnDataLen = nDataLen;
02451     return (char*)pData;
02452 }
02453
02454
02455 /* 行オブジェクトの削除、リスト変更、行数-- */
02456 void CDocLineMgr::DeleteNode( CDocLine* pCDocLine )
02457 {
02458     m_nLines--; /* 全行数 */
02459     if( 0 == m_nLines ){
02460         /* データがなくなった */
02461         Init();
02462         return;
02463     }
02464     if( NULL == pCDocLine->m_pPrev ){
02465         m_pDocLineTop = pCDocLine->m_pNext;
02466     }else{
02467         pCDocLine->m_pPrev->m_pNext = pCDocLine->m_pNext;
02468     }
02469     if( NULL == pCDocLine->m_pNext ){
02470         m_pDocLineBot = pCDocLine->m_pPrev;
02471     }else{
02472         pCDocLine->m_pNext->m_pPrev = pCDocLine->m_pPrev;
02473     }
02474     if( m_pCodePrevRefer == pCDocLine ){
02475         m_pCodePrevRefer = pCDocLine->m_pNext;
02476     }
02477     delete pCDocLine;
02478
02479     return;
02480 }
02481
02482
02483
02484 /* 行オブジェクトの挿入、リスト変更、行数++ */
02485 /* pCDocLinePrevの次にpCDocLineを挿入する */
02486 /* NULL==pCDocLinePrevのときリストの先頭に挿入 */
02487 void CDocLineMgr::InsertNode( CDocLine* pCDocLinePrev, CDocLine* pCDocLine )
02488 {
02489     pCDocLine->m_pPrev = pCDocLinePrev;
02490     if( NULL != pCDocLinePrev ){
02491         pCDocLine->m_pNext = pCDocLinePrev->m_pNext;
02492         pCDocLinePrev->m_pNext = pCDocLine;
02493     }else{
02494         pCDocLine->m_pNext = m_pDocLineTop;
02495         m_pDocLineTop = pCDocLine;
02496     }
02497     if( NULL != pCDocLine->m_pNext ){
02498         pCDocLine->m_pNext->m_pPrev = pCDocLine;
02499     }else{
02500         m_pDocLineBot = pCDocLine;
02501     }
02502     m_pDocLineTop = pCDocLine;
02503     m_nLines++; /* 全行数 */
02504     return;
02505
02506 }
02507
02508
02509 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLineMgr.h

CDocLineMgr.h

行データの管理 [詳細]

#include <windows.h>
#include "global.h"
#include "CEol.h"

CDocLineMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | DocLineReplaceArg
class | CDocLineMgr

説明

行データの管理

作者:
Norio Nakatani
日付:
1998/3/5 新規作成

2001/06/23 N.Nakatani WhereCurrentWord_2()追加 staticメンバ

2001/12/03 hor しおり(bookmark)機能追加に伴う関数追加

CDocLineMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLineMgr.h ソースファイル

CDocLineMgr.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2000, genta
00012     Copyright (C) 2001, hor, genta
00013     Copyright (C) 2002, aroka, MIK, hor
00014     Copyright (C) 2003, Moca, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019
00020 class CDocLineMgr;
00021
00022 #ifndef _CDOCLINEMGR_H_
00023 #define _CDOCLINEMGR_H_
00024
00025 #include <windows.h>
00026 #include "global.h" // 2002/2/10 aroka
00027 #include "CEol.h" // 2002/2/10 aroka
00028 class CDocLine; // 2002/2/10 aroka
00029 class CMemory; // 2002/2/10 aroka
00030 class CBregexp; // 2002/2/10 aroka
00031
00032 struct DocLineReplaceArg {
00033     int         nDelLineFrom;       /* 削除範囲行  From 改行単位の行番号 0開始) */
00034     int         nDelPosFrom;        /* 削除範囲位置From 改行単位の行頭からのバイト位置 0開始) */
00035     int         nDelLineTo;         /* 削除範囲行  To   改行単位の行番号 0開始) */
00036     int         nDelPosTo;          /* 削除範囲位置To   改行単位の行頭からのバイト位置 0開始) */
00037     CMemory*    pcmemDeleted;       /* 削除されたデータを保存 */
00038     int         nDeletedLineNum;    /* 削除した行の総数 */
00039     const char* pInsData;           /* 挿入するデータ */
00040     int         nInsDataLen;        /* 挿入するデータの長さ */
00041     int         nInsLineNum;        /* 挿入によって増えた行の数 */
00042     int         nNewLine;           /* 挿入された部分の次の位置の行 */
00043     int         nNewPos;            /* 挿入された部分の次の位置のデータ位置 */
00044 };
00045
00046 /*-----------------------------------------------------------------------
00047 クラスの宣言
00048 -----------------------------------------------------------------------*/
00049 class SAKURA_CORE_API CDocLineMgr
00050 {
00051 public:
00052     /*
00053     ||  Constructors
00054     */
00055     CDocLineMgr();
00056     ~CDocLineMgr();
00057
00058     /*
00059     ||  参照系
00060     */
00061     char* GetAllData( int* );   /* 全行データを返す */
00062     int GetLineCount( void ) { return m_nLines; }   /* 全行数を返す */
00063     const char* GetLineStr( int , int* );
00064     const char* GetLineStrWithoutEOL( int , int* ); // 2003.06.22 Moca
00065     const char* GetFirstLinrStr( int* );    /* 順アクセスモード：先頭行を得る */
00066     const char* GetNextLinrStr( int* ); /* 順アクセスモード：次の行を得る */
00067
00068     int WhereCurrentWord( int , int , int* , int*, CMemory*, CMemory* );    /* 現在位置の単語の範囲を調べる */
00069     // 2001/06/23 N.Nakatani WhereCurrentWord_2()追加 staticメンバ
00070     static int WhereCurrentWord_2( const char*, int, int , int* , int*, CMemory*, CMemory* );   /* 現在位置の単語の範囲を調べる */
00071
00072     static int WhatKindOfChar( const char*, int, int ); /* 現在位置の文字の種類を調べる */
00073     int PrevOrNextWord( int , int , int* , BOOL bLEFT, BOOL bStopsBothEnds );   /* 現在位置の左右の単語の先頭位置を調べる */
00074     //  pLine（長さ：nLineLen）の文字列から次の単語を探す。探し始める位置はnIdxで指定。
00075     static int SearchNextWordPosition(
00076         const char* pLine,
00077         int         nLineLen,
00078         int         nIdx,       //  桁数
00079         int*        pnColmNew,  //  見つかった位置
00080         BOOL        bStopsBothEnds  //  単語の両端で止まる
00081     );
00082     //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00083     int SearchWord( int , int , const char* , int , int , int , int , int* , int* , int*, CBregexp* ); /* 単語検索 */
00084 //  static char* SearchString( const unsigned char*, int, int , const unsigned char* , int, int*, int*, int ); /* 文字列検索 */
00085     static char* SearchString( const unsigned char*, int, int , const unsigned char* , int, int*, int ); /* 文字列検索 */
00086     static void CreateCharCharsArr( const unsigned char*, int, int** ); /* 検索条件の情報 */
00087 //  static void CreateCharUsedArr( const unsigned char*, int, const int*, int** ); /* 検索条件の情報(キー文字列の使用文字表)作成 */
00088
00089
00090
00091     void DUMP( void );
00092 //  void ResetAllModifyFlag( BOOL );    /* 行変更状態をすべてリセット */
00093     void ResetAllModifyFlag( void );    /* 行変更状態をすべてリセット */
00094
00095
00096 // From Here 2001.12.03 hor
00097     void ResetAllBookMark( void );          /* ブックマークの全解除 */
00098     int SearchBookMark( int , int , int* ); /* ブックマーク検索 */
00099 // To Here 2001.12.03 hor
00100
00101     //@@@ 2002.05.25 MIK
00102     void ResetAllDiffMark( void );          /* 差分表示の全解除 */
00103     int SearchDiffMark( int , int , int* ); /* 差分検索 */
00104     void SetDiffMarkRange( int nMode, int nStartLine, int nEndLine );   /* 差分範囲の登録 */
00105     bool IsDiffUse( void ) const { return m_bIsDiffUse; }   /* DIFF使用中 */
00106
00107 // From Here 2002.01.16 hor
00108     void MarkSearchWord( const char* , int , int , int , CBregexp* ); /* 検索条件に該当する行にブックマークをセットする */
00109     void SetBookMarks( char* ); /* 物理行番号のリストからまとめて行マーク */
00110     char* GetBookMarks( void ); /* 行マークされてる物理行番号のリストを作る */
00111 // To Here 2001.01.16 hor
00112
00113     /*
00114     || 更新系
00115     */
00116     void Init();
00117     void Empty();
00118 //  void InsertLineStr( int );  /* 指定行の前に追加する */
00119
00120 #if 0
00121     void AddLineStrSz( const char* );   /* 末尾に行を追加 Ver0 */
00122     void AddLineStr( const char*, int );    /* 末尾に行を追加 Ver1 */
00123     void AddLineStr( CMemory& );    /* 末尾に行を追加 Ver2 */
00124 #endif
00125     //  May 15, 2000 genta
00126     void AddLineStrX( const char*, int, CEOL ); /* 末尾に行を追加 Ver1.5 */
00127
00128     void DeleteData_CDocLineMgr(
00129         int         nLine,
00130         int         nDelPos,
00131         int         nDelLen,
00132         int*        pnModLineOldFrom,   /* 影響のあった変更前の行(from) */
00133         int*        pnModLineOldTo,     /* 影響のあった変更前の行(to) */
00134         int*        pnDelLineOldFrom,   /* 削除された変更前論理行(from) */
00135         int*        pnDelLineOldNum,    /* 削除された行数 */
00136         CMemory&    cmemDeleted         /* 削除されたデータ */
00137     );
00138
00139     /* 指定範囲のデータを置換(削除 & データを挿入)
00140       Fromを含む位置からToの直前を含むデータを削除する
00141       Fromの位置へテキストを挿入する
00142     */
00143     void CDocLineMgr::ReplaceData(
00144         DocLineReplaceArg*
00145 #if 0
00146         int         nDelLineFrom,       /* 削除範囲行  From 改行単位の行番号 0開始) */
00147         int         nDelPosFrom,        /* 削除範囲位置From 改行単位の行頭からのバイト位置 0開始) */
00148         int         nDelLineTo,         /* 削除範囲行  To   改行単位の行番号 0開始) */
00149         int         nDelPosTo,          /* 削除範囲位置To   改行単位の行頭からのバイト位置 0開始) */
00150         CMemory*    pcmemDeleted,       /* 削除されたデータを保存 */
00151         int*        pnDeletedLineNum,   /* 削除した行の総数 */
00152         const char* pInsData,           /* 挿入するデータ */
00153         int         nInsDataLen,        /* 挿入するデータの長さ */
00154         int*        pnInsLineNum,       /* 挿入によって増えた行の数 */
00155         int*        pnNewLine,          /* 挿入された部分の次の位置の行 */
00156         int*        pnNewPos            /* 挿入された部分の次の位置のデータ位置 */
00157 #endif
00158     );
00159     void DeleteNode( CDocLine* );/* 行オブジェクトの削除、リスト変更、行数-- */
00160     void InsertNode( CDocLine*, CDocLine* );    /* 行オブジェクトの挿入、リスト変更、行数++ */
00161
00162     /* データの挿入 */
00163     void InsertData_CDocLineMgr(
00164         int         nLine,
00165         int         nInsPos,
00166         const char* pInsData,
00167         int         nInsDataLen,
00168         int*        pnInsLineNum,   /* 挿入によって増えた行の数 */
00169         int*        pnNewLine,      /* 挿入された部分の次の位置の行 */
00170         int*        pnNewPos        /* 挿入された部分の次の位置のデータ位置 */
00171     );
00172
00173     //  Nov. 12, 2000 genta 引数追加
00174     //  Jul. 26, 2003 ryoji BOM引数追加
00175     int ReadFile( const char*, HWND, HWND, int, FILETIME*, int extraflag, BOOL* pbBomExist = NULL );
00176     //  Feb. 6, 2001 genta 引数追加(改行コード設定)
00177     //  Jul. 26, 2003 ryoji BOM引数追加
00178     int WriteFile( const char*, HWND, HWND, int, FILETIME*, CEOL, BOOL bBomExist = FALSE );
00179     CDocLine* GetLineInfo( int );
00180     // 2002/2/10 aroka メンバを private にしてアクセサ追加
00181     CDocLine* GetDocLineTop() const { return m_pDocLineTop; }
00182     CDocLine* GetDocLineBottom() const { return m_pDocLineBot; }
00183
00184 private:
00185
00186     /*
00187     || メンバ変数
00188     */
00189     CDocLine*   m_pDocLineTop;
00190     CDocLine*   m_pDocLineBot;
00191     CDocLine*   m_pDocLineCurrent;  /* 順アクセス時の現在位置 */
00192     int         m_nLines;       /* 全行数 */
00193     int         m_nPrevReferLine;
00194     CDocLine*   m_pCodePrevRefer;
00195     bool        m_bIsDiffUse;   /* DIFF差分表示実施中 */    //@@@ 2002.05.25 MIK
00196 protected:
00197
00198     /*
00199     || 実装ヘルパ系
00200     */
00201 protected:
00202
00203
00204
00205 };
00206
00207
00209 #endif /* _CDOCLINEMGR_H_ */
00210
00211
00212 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLineMgr_New.cpp

CDocLineMgr_New.cpp

行データの管理 [詳細]

#include "stdafx.h"
#include "charcode.h"
#include "CDocLineMgr.h"
#include "debug.h"
#include <io.h>
#include <commctrl.h>
#include "global.h"
#include "etc_uty.h"
#include "CRunningTimer.h"
#include "CDlgCancel.h"
#include "CDocLine.h"
#include "CMemory.h"
#include "CBregexp.h"
#include "sakura_rc.h"
#include "my_icmp.h"

CDocLineMgr_New.cppのインクルード依存関係図

ソースコードを見る。

説明

行データの管理

作者:
Norio Nakatani
日付:
1999/12/17 新規作成

2001/12/03 hor Bookmark機能追加

CDocLineMgr_New.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:43 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDocLineMgr_New.cpp ソースファイル

CDocLineMgr_New.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2001, hor
00011     Copyright (C) 2002, hor, aroka, MIK, Moca, genta
00012     Copyright (C) 2003, Moca, genta
00013     Copyright (C) 2005, かろと
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018 #include "stdafx.h"
00019 #include "charcode.h"
00020 #include "CDocLineMgr.h"
00021 #include "debug.h"
00022 #include "charcode.h"
00023 #include <io.h>
00024 #include <commctrl.h>
00025 #include "global.h"
00026 #include "etc_uty.h"
00027 #include "CRunningTimer.h"
00028 #include "CDlgCancel.h"
00029 #include "CDocLine.h"// 2002/2/10 aroka
00030 #include "CMemory.h"// 2002/2/10 aroka
00031 #include "CBregexp.h"// 2002/2/10 aroka
00032 #include "sakura_rc.h"// 2002/2/10 aroka
00033 #include "my_icmp.h" // 2002/11/30 Moca 追加
00034
00035 /* 指定範囲のデータを置換(削除 & データを挿入)
00036   Fromを含む位置からToの直前を含むデータを削除する
00037   Fromの位置へテキストを挿入する
00038 */
00039 void CDocLineMgr::ReplaceData( DocLineReplaceArg* pArg )
00040 {
00041     MY_RUNNINGTIMER( cRunningTimer, "CDocLineMgr::ReplaceData()" );
00042
00043     /* 挿入によって増えた行の数 */
00044     pArg->nInsLineNum = 0;
00045     /* 削除した行の総数 */
00046     pArg->nDeletedLineNum = 0;
00047     /* 削除されたデータ */
00048     pArg->pcmemDeleted->SetDataSz( "" );
00049
00050     CDocLine* pCDocLine;
00051     CDocLine* pCDocLinePrev;
00052     CDocLine* pCDocLineNext;
00053     CDocLine* pCDocLineNew;
00054     int nWorkPos;
00055     int nWorkLen;
00056     char* pLine;
00057     int nLineLen;
00058 // 2002/2/10 aroka 未使用
00059 //  char* pLine2;
00060 //  int nLineLen2;
00061     int i;
00062     int         nBgn;
00063     int         nPos;
00064     int         nAllLinesOld;
00065     int         nCount;
00066     int         nProgress;
00067     CMemory     cmemPrevLine;
00068     CMemory     cmemCurLine;
00069     CMemory     cmemNextLine;
00070     //  May 15, 2000
00071     CEOL cEOLType;
00072     CEOL cEOLTypeNext;
00073     CDlgCancel* pCDlgCancel = NULL;
00074     HWND        hwndCancel = NULL;  //  初期化
00075     HWND        hwndProgress = NULL;    //  初期化
00076
00077     pArg->nNewLine = pArg->nDelLineFrom;
00078     pArg->nNewPos =  pArg->nDelPosFrom;
00079
00080     /* 大量のデータを操作するとき */
00081     if( 3000 < pArg->nDelLineTo - pArg->nDelLineFrom
00082      || 1024000 < pArg->nInsDataLen
00083     ){
00084
00085         /* 進捗ダイアログの表示 */
00086         pCDlgCancel = new CDlgCancel;
00087         if( NULL != ( hwndCancel = pCDlgCancel->DoModeless( ::GetModuleHandle( NULL ), NULL, IDD_OPERATIONRUNNING ) ) ){
00088             hwndProgress = ::GetDlgItem( hwndCancel, IDC_PROGRESS );
00089             ::SendMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, 100) );
00090             ::SendMessage( hwndProgress, PBM_SETPOS, 0, 0 );
00091         }
00092     }
00093
00094
00095     // 削除データの取得のループ
00096     /* 前から処理していく */
00097     /* 現在行の情報を得る */
00098     pCDocLine = GetLineInfo( pArg->nDelLineFrom );
00099     for( i = pArg->nDelLineFrom; i <= pArg->nDelLineTo && NULL != pCDocLine; i++ ){
00100         pLine = pCDocLine->m_pLine->GetPtr(); // 2002/2/10 aroka CMemory変更
00101         nLineLen = pCDocLine->m_pLine->GetLength(); // 2002/2/10 aroka CMemory変更
00102         pCDocLinePrev = pCDocLine->m_pPrev;
00103         pCDocLineNext = pCDocLine->m_pNext;
00104         /* 現在行の削除開始位置を調べる */
00105         if( i == pArg->nDelLineFrom ){
00106             nWorkPos = pArg->nDelPosFrom;
00107         }else{
00108             nWorkPos = 0;
00109         }
00110         /* 現在行の削除データ長を調べる */
00111         if( i == pArg->nDelLineTo ){
00112             nWorkLen = pArg->nDelPosTo - nWorkPos;
00113         }else{
00114             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00115         }
00116         if( 0 == nWorkLen ){
00117             /* 前の行へ */
00118             goto next_line;
00119         }
00120         if( 0 > nWorkLen ){
00121 			::MYMESSAGEBOX(  NULL, MB_OK | MB_ICONINFORMATION, "作者に教えて欲しいエラー",
00122                 "CDocLineMgr::ReplaceData()\n\n0 > nWorkLen\nnWorkLen=%d\ni=%d\npArg->nDelLineTo=%d", nWorkLen, i, pArg->nDelLineTo
00123             );
00124         }
00125
00126         /* 改行も削除するんかぃのぉ・・・？ */
00127         if( EOL_NONE != pCDocLine->m_cEol &&
00128             nWorkPos + nWorkLen > nLineLen - pCDocLine->m_cEol.GetLen() // 2002/2/10 aroka CMemory変更
00129         ){
00130             /* 削除する長さに改行も含める */
00131             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00132         }
00133         /* 削除されたデータを保存 */
00134         // 2002/2/10 aroka from here CMemory変更 念のため。
00135         if( pLine != pCDocLine->m_pLine->GetPtr() ){
00136             ::MYMESSAGEBOX( NULL, MB_OK | MB_ICONINFORMATION, "作者に教えて欲しいエラー",
00137                 "CDocLineMgr::ReplaceData()\n\npLine != pCDocLine->m_pLine->GetPtr() =%d\ni=%d\npArg->nDelLineTo=%d", pLine, i, pArg->nDelLineTo
00138             );
00139         }
00140         // 2002/2/10 aroka to here CMemory変更
00141         if( NULL == pArg->pcmemDeleted->Append( &pLine[nWorkPos], nWorkLen ) ){
00142             /* メモリ確保に失敗した */
00143             pArg->pcmemDeleted->SetDataSz( "" );
00144             break;
00145         }
00146 next_line:;
00147         /* 次の行のオブジェクトのポインタ */
00148         pCDocLine = pCDocLineNext;
00149         /* 最近参照した行番号と行データ */
00150         ++m_nPrevReferLine;
00151         m_pCodePrevRefer = pCDocLine;
00152
00153         if( NULL != hwndCancel){
00154             if( 0 != (i - pArg->nDelLineFrom) && ( 0 == ((i - pArg->nDelLineFrom) % 32)) ){
00155                 nProgress = (i - pArg->nDelLineFrom) * 100 / (pArg->nDelLineTo - pArg->nDelLineFrom) / 2;
00156                 ::SendMessage( hwndProgress, PBM_SETPOS, nProgress, 0 );
00157
00158             }
00159         }
00160     } // 削除データの取得のループ
00161
00162
00163     /* 現在行の情報を得る */
00164     pCDocLine = GetLineInfo( pArg->nDelLineTo );
00165     i = pArg->nDelLineTo;
00166     if( 0 < pArg->nDelLineTo && NULL == pCDocLine ){
00167         pCDocLine = GetLineInfo( pArg->nDelLineTo - 1 );
00168         i--;
00169     }
00170     /* 後ろから処理していく */
00171     for( ; i >= pArg->nDelLineFrom && NULL != pCDocLine; i-- ){
00172         pLine = pCDocLine->m_pLine->GetPtr(); // 2002/2/10 aroka CMemory変更
00173         nLineLen = pCDocLine->m_pLine->GetLength(); // 2002/2/10 aroka CMemory変更
00174         pCDocLinePrev = pCDocLine->m_pPrev;
00175         pCDocLineNext = pCDocLine->m_pNext;
00176         /* 現在行の削除開始位置を調べる */
00177         if( i == pArg->nDelLineFrom ){
00178             nWorkPos = pArg->nDelPosFrom;
00179         }else{
00180             nWorkPos = 0;
00181         }
00182         /* 現在行の削除データ長を調べる */
00183         if( i == pArg->nDelLineTo ){
00184             nWorkLen = pArg->nDelPosTo - nWorkPos;
00185         }else{
00186             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00187         }
00188
00189         if( 0 == nWorkLen ){
00190             /* 前の行へ */
00191             goto prev_line;
00192         }
00193         /* 改行も削除するんかぃのぉ・・・？ */
00194         if( EOL_NONE != pCDocLine->m_cEol &&
00195             nWorkPos + nWorkLen > nLineLen - pCDocLine->m_cEol.GetLen() // 2002/2/10 aroka CMemory変更
00196         ){
00197             /* 削除する長さに改行も含める */
00198             nWorkLen = nLineLen - nWorkPos; // 2002/2/10 aroka CMemory変更
00199         }
00200
00201
00202         /* 行全体の削除 */
00203         if( nWorkLen >= nLineLen ){ // 2002/2/10 aroka CMemory変更
00204             /* 削除した行の総数 */
00205             ++(pArg->nDeletedLineNum);
00206             /* 行オブジェクトの削除、リスト変更、行数-- */
00207             DeleteNode( pCDocLine );
00208             pCDocLine = NULL;
00209         }else
00210         /* 次の行と連結するような削除 */
00211         if( nWorkPos + nWorkLen >= nLineLen ){ // 2002/2/10 aroka CMemory変更
00212
00213             /* 行内データ削除 */
00214             {// 20020119 aroka ブロック内に pWork を閉じ込めた
00215                 char* pWork = new char[nWorkPos + 1];
00216                 memcpy( pWork, pLine, nWorkPos ); // 2002/2/10 aroka 何度も GetPtr を呼ばない
00217                 pCDocLine->m_pLine->SetData( pWork, nWorkPos );
00218                 delete [] pWork;
00219             }
00220
00221             /* 次の行がある */
00222             if( NULL != pCDocLineNext ){
00223                 /* 改行コードの情報を更新 (次の行からもらう) */
00224                 pCDocLine->m_cEol = pCDocLineNext->m_cEol;  /* 改行コードの種類 */
00225
00226                 /* 次の行のデータを最後に追加 */
00227                 // 2002/2/10 aroka 直接 CMemory を Append
00228                 //pLine2 = pCDocLineNext->m_pLine->GetPtr();
00229                 //nLineLen2 = pCDocLineNext->m_pLine->GetLength();
00230                 pCDocLine->m_pLine->Append( pCDocLineNext->m_pLine );
00231                 /* 次の行 行オブジェクトの削除 */
00232                 DeleteNode( pCDocLineNext );
00233                 pCDocLineNext = NULL;
00234                 /* 削除した行の総数 */
00235                 ++(pArg->nDeletedLineNum);
00236             }else{
00237                 /* 改行コードの情報を更新 */
00238                 pCDocLine->m_cEol.SetType( EOL_NONE );
00239             }
00240             pCDocLine->SetModifyFlg(true);  /* 変更フラグ */
00241         }else{
00242         /* 行内だけの削除 */
00243             {// 20020119 aroka ブロック内に pWork を閉じ込めた
00244                 // 2002/2/10 aroka CMemory変更 何度も GetLength,GetPtr をよばない。
00245                 int nLength = pCDocLine->m_pLine->GetLength();
00246                 char* pWork = new char[nLength - nWorkLen + 1];
00247                 memcpy( pWork, pLine, nWorkPos );
00248
00249                 memcpy( &pWork[nWorkPos], &pLine[nWorkPos + nWorkLen], nLength - ( nWorkPos + nWorkLen ) );
00250
00251                 pCDocLine->m_pLine->SetData( pWork, nLength - nWorkLen );
00252                 delete [] pWork;
00253             }
00254             pCDocLine->SetModifyFlg(true);  /* 変更フラグ */
00255         }
00256
00257 prev_line:;
00258         /* 直前の行のオブジェクトのポインタ */
00259         pCDocLine = pCDocLinePrev;
00260         /* 最近参照した行番号と行データ */
00261         --m_nPrevReferLine;
00262         m_pCodePrevRefer = pCDocLine;
00263
00264         if( NULL != hwndCancel){
00265             if( 0 != (pArg->nDelLineTo - i) && ( 0 == ((pArg->nDelLineTo - i) % 32) ) ){
00266                 nProgress = (pArg->nDelLineTo - i) * 100 / (pArg->nDelLineTo - pArg->nDelLineFrom) / 2 + 50;
00267                 ::SendMessage( hwndProgress, PBM_SETPOS, nProgress, 0 );
00268             }
00269         }
00270     }
00271
00272
00273     /* データ挿入処理 */
00274     if( 0 == pArg->nInsDataLen ){
00275         goto end_of_func;
00276     }
00277     nAllLinesOld = m_nLines;
00278     pArg->nNewLine = pArg->nDelLineFrom;    /* 挿入された部分の次の位置の行 */
00279     pArg->nNewPos  = 0; /* 挿入された部分の次の位置のデータ位置 */
00280
00281     /* 挿入データを行終端で区切った行数カウンタ */
00282     nCount = 0;
00283     pArg->nInsLineNum = 0;
00284     pCDocLine = GetLineInfo( pArg->nDelLineFrom );
00285
00286
00287
00288     if( NULL == pCDocLine ){
00289         /* ここでNULLが帰ってくるということは、*/
00290         /* 全テキストの最後の次の行を追加しようとしていることを示す */
00291         cmemPrevLine.SetDataSz( "" );
00292         cmemNextLine.SetDataSz( "" );
00293         cEOLTypeNext.SetType( EOL_NONE );
00294         // ::MessageBox( NULL, "pDocLine==NULL","Warning",MB_OK);
00295     }else{
00296         pCDocLine->SetModifyFlg(true);  /* 変更フラグ */
00297
00298         // 2002/2/10 aroka 何度も GetPtr を呼ばない
00299         pLine = pCDocLine->m_pLine->GetPtr( &nLineLen );
00300         cmemPrevLine.SetData( pLine, pArg->nDelPosFrom );
00301         cmemNextLine.SetData( &pLine[pArg->nDelPosFrom], nLineLen - pArg->nDelPosFrom );
00302
00303         cEOLTypeNext = pCDocLine->m_cEol;
00304     }
00305     nBgn = 0;
00306     for( nPos = 0; nPos < pArg->nInsDataLen; ){
00307         if( pArg->pInsData[nPos] == '\n' || pArg->pInsData[nPos] == '\r' ){
00308             /* 行終端子の種類を調べる */
00309             cEOLType.GetTypeFromString( &(pArg->pInsData[nPos]), pArg->nInsDataLen - nPos );
00310             /* 行終端子も含めてテキストをバッファに格納 */
00311             cmemCurLine.SetData( &(pArg->pInsData[nBgn]), nPos - nBgn + cEOLType.GetLen() );
00312             nBgn = nPos + cEOLType.GetLen();
00313             nPos = nBgn;
00314             if( NULL == pCDocLine){
00315                 pCDocLineNew = new CDocLine;
00316
00317                 pCDocLineNew->m_pLine = new CMemory;
00318                 /* 挿入データを行終端で区切った行数カウンタ */
00319                 if( 0 == nCount ){
00320                     if( NULL == m_pDocLineTop ){
00321                         m_pDocLineTop = pCDocLineNew;
00322                     }
00323                     pCDocLineNew->m_pPrev = m_pDocLineBot;
00324                     if( NULL != m_pDocLineBot ){
00325                         m_pDocLineBot->m_pNext = pCDocLineNew;
00326                     }
00327                     m_pDocLineBot = pCDocLineNew;
00328                     pCDocLineNew->m_pNext = NULL;
00329                     pCDocLineNew->m_pLine->SetData( &cmemPrevLine );
00330                     *(pCDocLineNew->m_pLine) += cmemCurLine;
00331
00332                     pCDocLineNew->m_cEol = cEOLType;    /* 改行コードの種類 */
00333                 }else{
00334                     if( NULL != m_pDocLineBot ){
00335                         m_pDocLineBot->m_pNext = pCDocLineNew;
00336                     }
00337                     pCDocLineNew->m_pPrev = m_pDocLineBot;
00338                     m_pDocLineBot = pCDocLineNew;
00339                     pCDocLineNew->m_pNext = NULL;
00340                     pCDocLineNew->m_pLine->SetData( &cmemCurLine );
00341
00342                     pCDocLineNew->m_cEol = cEOLType;    /* 改行コードの種類 */
00343                 }
00344                 pCDocLine = NULL;
00345                 ++m_nLines;
00346             }else{
00347                 /* 挿入データを行終端で区切った行数カウンタ */
00348                 if( 0 == nCount ){
00349                     pCDocLine->m_pLine->SetData( &cmemPrevLine );
00350                     *(pCDocLine->m_pLine) += cmemCurLine;
00351
00352                     pCDocLine->m_cEol = cEOLType;   /* 改行コードの種類 */
00353                     pCDocLine = pCDocLine->m_pNext;
00354                 }else{
00355                     pCDocLineNew = new CDocLine;
00356                     pCDocLineNew->m_pLine = new CMemory;
00357                     pCDocLineNew->m_pPrev = pCDocLine->m_pPrev;
00358                     pCDocLineNew->m_pNext = pCDocLine;
00359                     pCDocLine->m_pPrev->m_pNext = pCDocLineNew;
00360                     pCDocLine->m_pPrev = pCDocLineNew;
00361                     pCDocLineNew->m_pLine->SetData( &cmemCurLine );
00362
00363                     pCDocLineNew->m_cEol = cEOLType;    /* 改行コードの種類 */
00364
00365                     ++m_nLines;
00366                 }
00367             }
00368
00369             /* 挿入データを行終端で区切った行数カウンタ */
00370             ++nCount;
00371             ++(pArg->nNewLine); /* 挿入された部分の次の位置の行 */
00372             if( NULL != hwndCancel ){
00373                 if( 0 != pArg->nInsDataLen && ( 0 == (nPos % 1024) ) ){
00374                     nProgress = nPos * 100 / pArg->nInsDataLen;
00375                     ::SendMessage( hwndProgress, PBM_SETPOS, nProgress, 0 );
00376                 }
00377             }
00378
00379         }else{
00380             ++nPos;
00381         }
00382     }
00383     if( 0 < nPos - nBgn || 0 < cmemNextLine.GetLength() ){
00384         cmemCurLine.SetData( &(pArg->pInsData[nBgn]), nPos - nBgn );
00385         cmemCurLine += cmemNextLine;
00386         if( NULL == pCDocLine){
00387             pCDocLineNew = new CDocLine;
00388             pCDocLineNew->m_pLine = new CMemory;
00389             /* 挿入データを行終端で区切った行数カウンタ */
00390             if( 0 == nCount ){
00391                 if( NULL == m_pDocLineTop ){
00392                     m_pDocLineTop = pCDocLineNew;
00393                 }
00394                 pCDocLineNew->m_pPrev = m_pDocLineBot;
00395                 if( NULL != m_pDocLineBot ){
00396                     m_pDocLineBot->m_pNext = pCDocLineNew;
00397                 }
00398                 m_pDocLineBot = pCDocLineNew;
00399                 pCDocLineNew->m_pNext = NULL;
00400                 pCDocLineNew->m_pLine->SetData( &cmemPrevLine );
00401                 *(pCDocLineNew->m_pLine) += cmemCurLine;
00402
00403                 pCDocLineNew->m_cEol = cEOLTypeNext;    /* 改行コードの種類 */
00404
00405             }else{
00406                 if( NULL != m_pDocLineBot ){
00407                     m_pDocLineBot->m_pNext = pCDocLineNew;
00408                 }
00409                 pCDocLineNew->m_pPrev = m_pDocLineBot;
00410                 m_pDocLineBot = pCDocLineNew;
00411                 pCDocLineNew->m_pNext = NULL;
00412                 pCDocLineNew->m_pLine->SetData( &cmemCurLine );
00413
00414                 pCDocLineNew->m_cEol = cEOLTypeNext;    /* 改行コードの種類 */
00415             }
00416             pCDocLine = NULL;
00417             ++m_nLines;
00418             pArg->nNewPos = nPos - nBgn;    /* 挿入された部分の次の位置のデータ位置 */
00419         }else{
00420             /* 挿入データを行終端で区切った行数カウンタ */
00421             if( 0 == nCount ){
00422                 pCDocLine->m_pLine->SetData( &cmemPrevLine );
00423                 *(pCDocLine->m_pLine) += cmemCurLine;
00424
00425                 pCDocLine->m_cEol = cEOLTypeNext;   /* 改行コードの種類 */
00426
00427                 pCDocLine = pCDocLine->m_pNext;
00428                 pArg->nNewPos = cmemPrevLine.GetLength() + nPos - nBgn; /* 挿入された部分の次の位置のデータ位置 */
00429             }else{
00430                 pCDocLineNew = new CDocLine;
00431                 pCDocLineNew->m_pLine = new CMemory;
00432                 pCDocLineNew->m_pPrev = pCDocLine->m_pPrev;
00433                 pCDocLineNew->m_pNext = pCDocLine;
00434                 pCDocLine->m_pPrev->m_pNext = pCDocLineNew;
00435                 pCDocLine->m_pPrev = pCDocLineNew;
00436                 pCDocLineNew->m_pLine->SetData( &cmemCurLine );
00437
00438                 pCDocLineNew->m_cEol = cEOLTypeNext;    /* 改行コードの種類 */
00439
00440                 ++m_nLines;
00441                 pArg->nNewPos = nPos - nBgn;    /* 挿入された部分の次の位置のデータ位置 */
00442             }
00443         }
00444     }
00445     pArg->nInsLineNum = m_nLines - nAllLinesOld;
00446 end_of_func:;
00447     if( NULL != pCDlgCancel ){
00448         delete pCDlgCancel;
00449     }
00450     return;
00451 }
00452
00453
00455 /*
00456     @date 2001.12.03 hor
00457 */
00458 void CDocLineMgr::ResetAllBookMark( void )
00459 {
00460     CDocLine* pDocLine;
00461     pDocLine = m_pDocLineTop;
00462     while( NULL != pDocLine ){
00463         pDocLine->SetBookMark(false);
00464         pDocLine = pDocLine->m_pNext;
00465     }
00466     return;
00467 }
00468
00469
00471 /*
00472     @date 2001.12.03 hor
00473 */
00474 int CDocLineMgr::SearchBookMark(
00475     int         nLineNum,       /* 検索開始行 */
00476     int         bPrevOrNext,    /* 0==前方検索 1==後方検索 */
00477     int*        pnLineNum       /* マッチ行 */
00478 )
00479 {
00480     CDocLine*   pDocLine;
00481     int         nLinePos=nLineNum;
00482
00483     /* 0==前方検索 1==後方検索 */
00484     if( 0 == bPrevOrNext ){
00485         nLinePos--;
00486         pDocLine = GetLineInfo( nLinePos );
00487         while( NULL != pDocLine ){
00488             if(pDocLine->IsBookMarked()){
00489                 *pnLineNum = nLinePos;              /* マッチ行 */
00490                 return TRUE;
00491             }
00492             nLinePos--;
00493             pDocLine = pDocLine->m_pPrev;
00494         }
00495     }else{
00496         nLinePos++;
00497         pDocLine = GetLineInfo( nLinePos );
00498         while( NULL != pDocLine ){
00499             if(pDocLine->IsBookMarked()){
00500                 *pnLineNum = nLinePos;              /* マッチ行 */
00501                 return TRUE;
00502             }
00503             nLinePos++;
00504             pDocLine = pDocLine->m_pNext;
00505         }
00506     }
00507     return FALSE;
00508 }
00509
00510
00512 /*
00513     @date 2002.01.16 hor
00514 */
00515 void CDocLineMgr::MarkSearchWord(
00516     const char* pszPattern,     /* 検索条件 */
00517     int         bRegularExp,    /* 1==正規表現 */
00518     int         bLoHiCase,      /* 1==英大文字小文字の区別 */
00519     int         bWordOnly,      /* 1==単語のみ検索 */
00520     CBregexp*   pRegexp
00521 )
00522 {
00523     CDocLine*   pDocLine;
00524     const char* pLine;
00525     int         nLineLen;
00526     char*       pszRes;
00527     int*        pnKey_CharCharsArr;
00528     //  Jun. 10, 2003 Moca
00529     //  lstrlenを毎回呼ばずにnPatternLenを使うようにする
00530     const int   nPatternLen = lstrlen( pszPattern );
00531
00532     /* 1==正規表現 */
00533     if( bRegularExp ){
00534         pDocLine = GetLineInfo( 0 );
00535         while( NULL != pDocLine ){
00536             if(!pDocLine->IsBookMarked()){
00537                 pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
00538                 // 2005.03.19 かろと 前方一致サポートのためのメソッド変更
00539                 if( pRegexp->Match( pLine, nLineLen, 0 ) ){
00540                     pDocLine->SetBookMark(true);
00541                 }
00542             }
00543             pDocLine = pDocLine->m_pNext;
00544         }
00545     }else
00546     /* 1==単語のみ検索 */
00547     if( bWordOnly ){
00548         pDocLine = GetLineInfo( 0 );
00549         int nLinePos = 0;
00550         int nNextWordFrom = 0;
00551         int nNextWordFrom2;
00552         int nNextWordTo2;
00553         while( NULL != pDocLine ){
00554             if(!pDocLine->IsBookMarked() &&
00555                 WhereCurrentWord( nLinePos, nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL )) {
00556                 const char* pData = pDocLine->m_pLine->GetPtr(); // 2002/2/10 aroka CMemory変更
00557
00558                 if(( nPatternLen == nNextWordTo2 - nNextWordFrom2 ) &&
00559                    (( FALSE == bLoHiCase && 0 == _memicmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen )) ||
00560                     ( TRUE  == bLoHiCase && 0 ==   memcmp( &(pData[nNextWordFrom2]) , pszPattern, nPatternLen )))){
00561                     pDocLine->SetBookMark(true);
00562                 }else
00563                 if( PrevOrNextWord( nLinePos, nNextWordFrom, &nNextWordFrom, FALSE, FALSE) ){
00564                     continue;
00565                 }
00566             }
00567             /* 次の行を見に行く */
00568             nLinePos++;
00569             pDocLine = pDocLine->m_pNext;
00570             nNextWordFrom = 0;
00571         }
00572     }else{
00573         /* 検索条件の情報 */
00574         pnKey_CharCharsArr = NULL;
00575         CDocLineMgr::CreateCharCharsArr(
00576             (const unsigned char *)pszPattern,
00577             nPatternLen,
00578             &pnKey_CharCharsArr
00579         );
00580         pDocLine = GetLineInfo( 0 );
00581         while( NULL != pDocLine ){
00582             if(!pDocLine->IsBookMarked()){
00583                 pLine = pDocLine->m_pLine->GetPtr( &nLineLen );
00584                 pszRes = SearchString(
00585                     (const unsigned char *)pLine,
00586                     nLineLen,
00587                     0,
00588                     (const unsigned char *)pszPattern,
00589                     nPatternLen,
00590                     pnKey_CharCharsArr,
00591                     bLoHiCase
00592                 );
00593                 if( NULL != pszRes ){
00594                     pDocLine->SetBookMark(true);
00595                 }
00596             }
00597             pDocLine = pDocLine->m_pNext;
00598         }
00599         if( NULL != pnKey_CharCharsArr ){
00600             delete [] pnKey_CharCharsArr;
00601             pnKey_CharCharsArr = NULL;
00602         }
00603     }
00604     return;
00605
00606 }
00607
00609 /*
00610     @date 2002.01.16 hor
00611 */
00612 void CDocLineMgr::SetBookMarks( char* pMarkLines )
00613 {
00614     CDocLine*   pCDocLine;
00615     char *p;
00616     char delim[] = ", ";
00617     p = pMarkLines;
00618     while(strtok(p, delim) != NULL) {
00619         while(strchr(delim, *p) != NULL)p++;
00620         pCDocLine=GetLineInfo( atol(p) );
00621         if(NULL!=pCDocLine)pCDocLine->SetBookMark(true);
00622         p += strlen(p) + 1;
00623     }
00624     return;
00625 }
00626
00627
00629 /*
00630     @date 2002.01.16 hor
00631 */
00632 char* CDocLineMgr::GetBookMarks( void )
00633 {
00634     CDocLine*   pCDocLine;
00635     static char szText[MAX_MARKLINES_LEN + 1];  //2002.01.17 // Feb. 17, 2003 genta staticに
00636     char szBuff[10];
00637     int nLinePos=0;
00638     pCDocLine = GetLineInfo( nLinePos );
00639     strcpy( szText, "" );
00640     while( NULL != pCDocLine ){
00641         if(pCDocLine->IsBookMarked()){
00642             wsprintf( szBuff, "%d,",nLinePos );
00643             if(lstrlen(szBuff)+lstrlen(szText)>MAX_MARKLINES_LEN)break; //2002.01.17
00644             strcat( szText, szBuff);
00645         }
00646         nLinePos++;
00647         pCDocLine = pCDocLine->m_pNext;
00648     }
00649     return szText; // Feb. 17, 2003 genta
00650 }
00651
00656 void CDocLineMgr::ResetAllDiffMark( void )
00657 {
00658     CDocLine* pDocLine;
00659
00660     pDocLine = m_pDocLineTop;
00661     while( NULL != pDocLine )
00662     {
00663         pDocLine->SetDiffMark( 0 );
00664         pDocLine = pDocLine->m_pNext;
00665     }
00666
00667     m_bIsDiffUse = false;
00668
00669     return;
00670 }
00671
00676 int CDocLineMgr::SearchDiffMark(
00677     int         nLineNum,       /* 検索開始行 */
00678     int         bPrevOrNext,    /* 0==前方検索 1==後方検索 */
00679     int*        pnLineNum       /* マッチ行 */
00680 )
00681 {
00682     CDocLine*   pDocLine;
00683     int         nLinePos = nLineNum;
00684
00685     /* 0==前方検索 1==後方検索 */
00686     if( 0 == bPrevOrNext )
00687     {
00688         nLinePos--;
00689         pDocLine = GetLineInfo( nLinePos );
00690         while( NULL != pDocLine )
00691         {
00692             if( pDocLine->IsDiffMarked() )
00693             {
00694                 *pnLineNum = nLinePos;              /* マッチ行 */
00695                 return TRUE;
00696             }
00697             nLinePos--;
00698             pDocLine = pDocLine->m_pPrev;
00699         }
00700     }
00701     else
00702     {
00703         nLinePos++;
00704         pDocLine = GetLineInfo( nLinePos );
00705         while( NULL != pDocLine )
00706         {
00707             if( pDocLine->IsDiffMarked() )
00708             {
00709                 *pnLineNum = nLinePos;              /* マッチ行 */
00710                 return TRUE;
00711             }
00712             nLinePos++;
00713             pDocLine = pDocLine->m_pNext;
00714         }
00715     }
00716     return FALSE;
00717 }
00718
00723 void CDocLineMgr::SetDiffMarkRange( int nMode, int nStartLine, int nEndLine )
00724 {
00725     int i;
00726     int nLines;
00727     CDocLine    *pCDocLine;
00728
00729     m_bIsDiffUse = true;
00730
00731     if( nStartLine < 0 ) nStartLine = 0;
00732
00733     //最終行より後に削除行あり
00734     nLines = GetLineCount();
00735     if( nLines <= nEndLine )
00736     {
00737         nEndLine = nLines - 1;
00738         pCDocLine = GetLineInfo( nEndLine );
00739         if( NULL != pCDocLine ) pCDocLine->SetDiffMark( MARK_DIFF_DEL_EX );
00740     }
00741
00742     //行範囲にマークをつける
00743     for( i = nStartLine; i <= nEndLine; i++ )
00744     {
00745         pCDocLine = GetLineInfo( i );
00746         if( NULL != pCDocLine ) pCDocLine->SetDiffMark( nMode );
00747     }
00748
00749     return;
00750 }
00751
00752 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDropTarget.cpp

CDropTarget.cpp

Drag & Drop [詳細]

#include "stdafx.h"
#include "CEditView.h"
#include "CDropTarget.h"
#include "global.h"
#include "debug.h"

CDropTarget.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define DECLARE_YB_INTERFACEIMPL(BASEINTERFACE) template<> REFIID CYbInterfaceImpl<BASEINTERFACE>::m_owniid = IID_##BASEINTERFACE;

説明

Drag & Drop

作者:
Norio Nakatani

CDropTarget.cpp で定義されています。

マクロ定義

#define DECLARE_YB_INTERFACEIMPL ( BASEINTERFACE ) template<> REFIID CYbInterfaceImpl<BASEINTERFACE>::m_owniid = IID_##BASEINTERFACE;

CDropTarget.cpp の 82 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDropTarget.cpp ソースファイル

CDropTarget.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani, Yebisuya Sugoroku
00008     Copyright (C) 2002, aroka
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holders to use this code for other purpose.
00012 */
00013
00014 #include "stdafx.h"
00015 #include "CEditView.h"// 2002/2/3 aroka
00016 #include "CDropTarget.h"
00017 #include "global.h"
00018 #include "debug.h"// 2002/2/3 aroka
00019
00020
00021 COleLibrary CYbInterfaceBase::m_olelib;
00022
00023 CYbInterfaceBase::CYbInterfaceBase()
00024 {
00025     m_olelib.Initialize();
00026     return;
00027 }
00028 CYbInterfaceBase::~CYbInterfaceBase()
00029 {
00030     m_olelib.UnInitialize();
00031     return;
00032 }
00033
00034 HRESULT CYbInterfaceBase::QueryInterfaceImpl(
00035     IUnknown*   pThis,
00036     REFIID      owniid,
00037     REFIID      riid,
00038     void**      ppvObj
00039 )
00040 {
00041     if( riid == IID_IUnknown || riid == owniid ){
00042         pThis->AddRef();
00043         *ppvObj = pThis;
00044         return S_OK;
00045     }
00046     *ppvObj = NULL;
00047     return E_NOINTERFACE;
00048 }
00049
00051
00052
00053
00054 COleLibrary::COleLibrary():m_dwCount(0)
00055 {
00056     return;
00057 }
00058 COleLibrary::~COleLibrary()
00059 {
00060     if( m_dwCount > 0 )
00061         ::OleUninitialize();
00062     return;
00063 }
00064
00065
00066 void COleLibrary::Initialize()
00067 {
00068     if( m_dwCount++ == 0 )
00069         ::OleInitialize( NULL );
00070     return;
00071 }
00072
00073
00074 void COleLibrary::UnInitialize()
00075 {
00076     if( m_dwCount > 0 && --m_dwCount == 0 )
00077         ::OleUninitialize();
00078     return;
00079 }
00080
00081
00082 #define DECLARE_YB_INTERFACEIMPL( BASEINTERFACE ) \
00083 template<> REFIID CYbInterfaceImpl<BASEINTERFACE>::m_owniid = IID_##BASEINTERFACE;
00084
00085 DECLARE_YB_INTERFACEIMPL( IDataObject )
00086 DECLARE_YB_INTERFACEIMPL( IDropSource )
00087 DECLARE_YB_INTERFACEIMPL( IDropTarget )
00088
00089
00090
00091
00092 CDropTarget::CDropTarget( CEditView* pCEditView )
00093 {
00094     m_pCEditView = pCEditView;
00095     m_hWnd_DropTarget = NULL;
00096     m_pDataObject = NULL;
00097     return;
00098 }
00099
00100
00101 CDropTarget::~CDropTarget()
00102 {
00103     Revoke_DropTarget();
00104     return;
00105 }
00106
00107
00108 BOOL CDropTarget::Register_DropTarget( HWND hWnd )
00109 {
00110     if( FAILED( ::RegisterDragDrop( hWnd, this ) ) ){
00111 		::MYMESSAGEBOX( hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00112             "::RegisterDragDrop()\n失敗"
00113         );
00114         return FALSE;
00115     }
00116     m_hWnd_DropTarget = hWnd;
00117     return TRUE;
00118 }
00119
00120
00121 BOOL CDropTarget::Revoke_DropTarget( void )
00122 {
00123     BOOL bResult = TRUE;
00124     if( m_hWnd_DropTarget != NULL ){
00125         bResult = SUCCEEDED( ::RevokeDragDrop( m_hWnd_DropTarget ) );
00126         m_hWnd_DropTarget = NULL;
00127     }
00128     return bResult;
00129 }
00130 STDMETHODIMP CDropTarget::DragEnter( LPDATAOBJECT pDataObject, DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
00131 {
00132 #ifdef _DEBUG
00133     MYTRACE( "CDropTarget::DragEnter()\n" );
00134 #endif
00135 //  if( pDataObject == NULL || pdwEffect == NULL )
00136 //      return E_INVALIDARG;
00137 //  if( IsDataAvailable( pDataObject, CF_TEXT ) ){
00138 //      m_pDataObject = pDataObject;
00139 //      *pdwEffect = DROPEFFECT_COPY;
00140 //      ::SetFocus( m_hWnd_DropTarget );
00141 //  }else{
00142 //      *pdwEffect = DROPEFFECT_NONE;
00143 //  }
00144     return m_pCEditView->DragEnter( pDataObject, dwKeyState, pt, pdwEffect );
00145 //  return S_OK;
00146 }
00147 STDMETHODIMP CDropTarget::DragOver( DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
00148 {
00149 //  MYTRACE( "CDropTarget::DragOver()\n" );
00150 //  if( pdwEffect == NULL )
00151 //      return E_INVALIDARG;
00152 //  ::ScreenToClient( m_hWnd_DropTarget, (LPPOINT)&pt );
00153 //  DWORD dwIndex = LOWORD( ::SendMessage( m_hWnd_DropTarget, EM_CHARFROMPOS, 0, MAKELPARAM( pt.x, pt.y ) ) );
00154 //  if( dwIndex != (WORD) -1 ){
00155 //      ::SendMessage( m_hWnd_DropTarget, EM_SETSEL, dwIndex, dwIndex );
00156 //      ::SendMessage( m_hWnd_DropTarget, EM_SCROLLCARET, 0, 0 );
00157 //  }
00158 //  *pdwEffect = (m_pDataObject != NULL) ? DROPEFFECT_COPY : DROPEFFECT_NONE;
00159     return m_pCEditView->DragOver( dwKeyState, pt, pdwEffect );
00160 //  return S_OK;
00161 }
00162 STDMETHODIMP CDropTarget::DragLeave( void )
00163 {
00164 //  MYTRACE( "CDropTarget::DragLeave()\n" );
00165 //  m_pDataObject = NULL;
00166 //  ::SetFocus(NULL);
00167     return m_pCEditView->DragLeave();
00168 //  return S_OK;
00169 }
00170
00171
00172 STDMETHODIMP CDropTarget::Drop( LPDATAOBJECT pDataObject, DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
00173 {
00174 //  MYTRACE( "CDropTarget::Drop()\n" );
00175 //  if( pDataObject == NULL || pdwEffect == NULL )
00176 //      return E_INVALIDARG;
00177 //  *pdwEffect = DROPEFFECT_NONE;
00178 //  if( IsDataAvailable( pDataObject, CF_TEXT ) ){
00179 //      HGLOBAL hData = GetGlobalData(pDataObject, CF_TEXT);
00180 //      if( hData != NULL ){
00181 //          DWORD nSize = 0;
00182 //          LPCTSTR lpszSource = (LPCTSTR) ::GlobalLock( hData );
00183 //          LPCTSTR lpsz = lpszSource;
00184 //          while( *lpsz != _T('\0') ){
00185 //              if( *lpsz == _T('\n') && (lpsz == lpszSource || *(lpsz - 1) != _T('\r')) )
00186 //                  ++nSize;
00187 //              ++nSize;
00188 //              ++lpsz;
00189 //          }
00190 //          lpsz = lpszSource;
00191 //          LPTSTR lpszDest = (LPTSTR) alloca( (nSize + 1) * sizeof( TCHAR ) );
00192 //          LPTSTR lpsz2 = lpszDest;
00193 //          while( *lpsz != _T('\0') ){
00194 //              if( *lpsz == _T('\n') && (lpsz == lpszSource || *(lpsz - 1) != _T('\r')) )
00195 //                  *lpsz2++ = _T('\r');
00196 //              *lpsz2++ = *lpsz++;
00197 //          }
00198 //          *lpsz2++ = _T('\0');
00199 //
00200 //          ::SendMessage( m_hWnd_DropTarget, EM_REPLACESEL, 0, (LPARAM) lpszDest );
00201 //          ::GlobalUnlock( hData );
00202 //          *pdwEffect = DROPEFFECT_COPY;
00203 //      }
00204 //  }
00205 //  m_pDataObject = NULL;
00206 //  ::SetFocus( NULL );
00207     return m_pCEditView->Drop( pDataObject, dwKeyState, pt, pdwEffect );
00208 //  return S_OK;
00209 }
00210
00211
00212 STDMETHODIMP CDropSource::QueryContinueDrag( BOOL bEscapePressed, DWORD dwKeyState )
00213 {
00214     if( bEscapePressed || (dwKeyState & (m_bLeft ? MK_RBUTTON : MK_LBUTTON)) )
00215         return DRAGDROP_S_CANCEL;
00216     if( !(dwKeyState & (m_bLeft ? MK_LBUTTON : MK_RBUTTON)) )
00217         return DRAGDROP_S_DROP;
00218     return S_OK;
00219 }
00220
00221
00222 STDMETHODIMP CDropSource::GiveFeedback( DWORD dropEffect )
00223 {
00224     return DRAGDROP_S_USEDEFAULTCURSORS;
00225 }
00226
00227
00228
00229
00230 void CDataObject::SetText( LPCTSTR lpszText )
00231 {
00232     //Feb. 26, 2001, fixed by yebisuya sugoroku
00233     if( data != NULL ){
00234         delete[] data;
00235         data = NULL;
00236         size = 0;
00237         m_cfFormat = 0;
00238     }
00239     if( lpszText != NULL ){
00240         size = (strlen( lpszText ) + 1) * sizeof( TCHAR );
00241         data = new BYTE[size];
00242         memcpy( data, lpszText, size) ;
00243         m_cfFormat = CF_TEXT;
00244     }
00245 }
00246
00247 DWORD CDataObject::DragDrop( BOOL bLeft, DWORD dwEffects )
00248 {
00249     DWORD dwEffect;
00250     CDropSource drop( bLeft );
00251     if( SUCCEEDED( ::DoDragDrop( this, &drop, dwEffects, &dwEffect ) ) )
00252         return dwEffect;
00253     return DROPEFFECT_NONE;
00254 }
00255
00256 STDMETHODIMP CDataObject::GetData( LPFORMATETC lpfe, LPSTGMEDIUM lpsm )
00257 {
00258     //Feb. 26, 2001, fixed by yebisuya sugoroku
00259     if( lpfe == NULL || lpsm == NULL )
00260         return E_INVALIDARG;
00261     if( data == NULL )
00262         return OLE_E_NOTRUNNING;
00263     if( lpfe->lindex != -1 )
00264         return DV_E_LINDEX;
00265     if( (lpfe->tymed & TYMED_HGLOBAL) == 0 )
00266         return DV_E_TYMED;
00267     if( lpfe->dwAspect != DVASPECT_CONTENT )
00268         return DV_E_DVASPECT;
00269     if( lpfe->cfFormat != m_cfFormat )
00270         return DV_E_FORMATETC;
00271     if( lpfe->cfFormat != m_cfFormat
00272         || !(lpfe->tymed & TYMED_HGLOBAL)
00273         || lpfe->lindex != -1
00274         || lpfe->dwAspect != DVASPECT_CONTENT )
00275         return DV_E_FORMATETC;
00276
00277     lpsm->tymed = TYMED_HGLOBAL;
00278     lpsm->hGlobal = ::GlobalAlloc( GHND | GMEM_DDESHARE, size );
00279     memcpy( (LPTSTR) ::GlobalLock( lpsm->hGlobal ), data, size );
00280     ::GlobalUnlock( lpsm->hGlobal );
00281     lpsm->pUnkForRelease = NULL;
00282
00283     return S_OK;
00284 }
00285
00286 STDMETHODIMP CDataObject::GetDataHere( LPFORMATETC lpfe, LPSTGMEDIUM lpsm )
00287 {
00288     //Feb. 26, 2001, fixed by yebisuya sugoroku
00289     if( lpfe == NULL || lpsm == NULL || lpsm->hGlobal == NULL )
00290         return E_INVALIDARG;
00291     if( data == NULL )
00292         return OLE_E_NOTRUNNING;
00293
00294     if( lpfe->lindex != -1 )
00295         return DV_E_LINDEX;
00296     if( lpfe->tymed != TYMED_HGLOBAL
00297         || lpsm->tymed != TYMED_HGLOBAL )
00298         return DV_E_TYMED;
00299     if( size > ::GlobalSize( lpsm->hGlobal ) )
00300         return STG_E_MEDIUMFULL;
00301     if( lpfe->dwAspect != DVASPECT_CONTENT )
00302         return DV_E_DVASPECT;
00303     if( lpfe->cfFormat != m_cfFormat )
00304         return DV_E_FORMATETC;
00305
00306     memcpy( ::GlobalLock( lpsm->hGlobal ), data, size );
00307     ::GlobalUnlock( lpsm->hGlobal );
00308
00309     return S_OK;
00310 }
00311
00312 STDMETHODIMP CDataObject::QueryGetData( LPFORMATETC lpfe )
00313 {
00314     if( lpfe == NULL )
00315         return E_INVALIDARG;
00316     //Feb. 26, 2001, fixed by yebisuya sugoroku
00317     if( data == NULL )
00318         return OLE_E_NOTRUNNING;
00319
00320     if( lpfe->cfFormat != m_cfFormat
00321         || lpfe->ptd != NULL
00322         || lpfe->dwAspect != DVASPECT_CONTENT
00323         || lpfe->lindex != -1
00324         || !(lpfe->tymed & TYMED_HGLOBAL) )
00325         return DATA_E_FORMATETC;
00326     return S_OK;
00327 }
00328
00329 STDMETHODIMP CDataObject::GetCanonicalFormatEtc( LPFORMATETC, LPFORMATETC )
00330 {
00331     return DATA_S_SAMEFORMATETC;
00332 }
00333
00334 STDMETHODIMP CDataObject::SetData( LPFORMATETC, LPSTGMEDIUM, BOOL )
00335 {
00336     return E_NOTIMPL;
00337 }
00338
00339 STDMETHODIMP CDataObject::EnumFormatEtc( DWORD, LPENUMFORMATETC* )
00340 {
00341     return E_NOTIMPL;
00342 }
00343
00344 STDMETHODIMP CDataObject::DAdvise( LPFORMATETC, DWORD, LPADVISESINK, LPDWORD )
00345 {
00346     return OLE_E_ADVISENOTSUPPORTED;
00347 }
00348
00349 STDMETHODIMP CDataObject::DUnadvise( DWORD )
00350 {
00351     return OLE_E_ADVISENOTSUPPORTED;
00352 }
00353
00354 STDMETHODIMP CDataObject::EnumDAdvise( LPENUMSTATDATA* )
00355 {
00356     return OLE_E_ADVISENOTSUPPORTED;
00357 }
00358
00359
00360 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDropTarget.h

CDropTarget.h

Drag & Drop [詳細]

#include <windows.h>

CDropTarget.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | COleLibrary
class | CYbInterfaceBase
class | CYbInterfaceImpl< BASEINTERFACE >
class | CDropTarget
class | CDropSource
class | CDataObject

説明

Drag & Drop

作者:
Norio Nakatani

CDropTarget.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CDropTarget.h ソースファイル

CDropTarget.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani, Yebisuya Sugoroku
00008     Copyright (C) 2002, aroka
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class CDropTarget;
00015 class CYbInterfaceBase;
00016 class COleLibrary;
00017
00018 #ifndef _CEDITDROPTARGET_H_
00019 #define _CEDITDROPTARGET_H_
00020
00021 #include <windows.h>
00022 class CEditView;// 2002/2/3 aroka ヘッダ軽量化
00023
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00027 class COleLibrary
00028 {
00029     friend class CYbInterfaceBase;
00030 private:
00031     DWORD m_dwCount;
00032     COleLibrary();
00033 public:
00034     ~COleLibrary();
00035 private:
00036     void Initialize();
00037     void UnInitialize();
00038 };
00039
00040
00041
00042 class CYbInterfaceBase
00043 {
00044 private:
00045     static COleLibrary m_olelib;
00046 protected:
00047     CYbInterfaceBase();
00048     ~CYbInterfaceBase();
00049     static HRESULT QueryInterfaceImpl( IUnknown*, REFIID, REFIID, void** );
00050 };
00051
00052
00053 template<class BASEINTERFACE>
00054 class CYbInterfaceImpl : public BASEINTERFACE, public CYbInterfaceBase
00055 {
00056 private:
00057     static REFIID m_owniid;
00058 public:
00059     CYbInterfaceImpl(){AddRef();}
00060     STDMETHOD( QueryInterface )( REFIID riid, void** ppvObj )
00061     {return QueryInterfaceImpl( this, m_owniid, riid, ppvObj );}
00062     STDMETHOD_( ULONG, AddRef )( void )
00063     {return 1;}
00064     STDMETHOD_( ULONG, Release )( void )
00065     {return 0;}
00066 };
00067
00068
00069 class CDropTarget : public CYbInterfaceImpl<IDropTarget>
00070 {
00071 public:
00072     /*
00073     ||  Constructors
00074     */
00075     CDropTarget( CEditView* );
00076     ~CDropTarget();
00077     /*
00078     ||  Attributes & Operations
00079     */
00080 private: // 2002/2/10 aroka アクセス権変更
00081     HWND            m_hWnd_DropTarget;
00082     CEditView*      m_pCEditView;
00083 //  void*           m_pCEditView;
00084     //  static REFIID   m_owniid;
00085 public:
00086     LPDATAOBJECT    m_pDataObject;// 2002/2/10 aroka ここに移動
00087     BOOL            Register_DropTarget( HWND );
00088     BOOL            Revoke_DropTarget( void );
00089     STDMETHODIMP    DragEnter( LPDATAOBJECT, DWORD, POINTL , LPDWORD );
00090     STDMETHODIMP    DragOver( DWORD, POINTL, LPDWORD );
00091     STDMETHODIMP    DragLeave( void );
00092     STDMETHODIMP    Drop( LPDATAOBJECT, DWORD, POINTL, LPDWORD );
00093 protected:
00094     /*
00095     ||  実装ヘルパ関数
00096     */
00097 };
00098
00099
00100 class CDropSource : public CYbInterfaceImpl<IDropSource> {
00101 private:
00102     BOOL m_bLeft;
00103 public:
00104     CDropSource( BOOL bLeft ):m_bLeft( bLeft ){}
00105
00106     STDMETHOD( QueryContinueDrag )( BOOL bEscapePressed, DWORD dwKeyState );
00107     STDMETHOD( GiveFeedback )( DWORD dropEffect );
00108 };
00109
00110
00111 class CDataObject : public CYbInterfaceImpl<IDataObject> {
00112 private:
00113     CLIPFORMAT m_cfFormat;
00114     //Feb. 26, 2001, fixed by yebisuya sugoroku
00115     LPBYTE          data;
00116     unsigned int    size;// 2002/2/3 aroka 警告対策：型変換
00117
00118 public:
00119     CDataObject (LPCTSTR lpszText ):m_cfFormat( 0 ),
00120     data( NULL ), size( 0 ) //Feb. 26, 2001, fixed by yebisuya sugoroku
00121     {SetText( lpszText );}
00122     ~CDataObject(){SetText( NULL );}
00123     void    SetText( LPCTSTR lpszText );
00124     DWORD   DragDrop( BOOL bLeft, DWORD dwEffects );
00125
00126     STDMETHOD( GetData )( LPFORMATETC, LPSTGMEDIUM );
00127     STDMETHOD( GetDataHere )( LPFORMATETC, LPSTGMEDIUM );
00128     STDMETHOD( QueryGetData )( LPFORMATETC );
00129     STDMETHOD( GetCanonicalFormatEtc )( LPFORMATETC, LPFORMATETC );
00130     STDMETHOD( SetData )( LPFORMATETC, LPSTGMEDIUM, BOOL );
00131     STDMETHOD( EnumFormatEtc )( DWORD, LPENUMFORMATETC* );
00132     STDMETHOD( DAdvise )( LPFORMATETC, DWORD, LPADVISESINK, LPDWORD );
00133     STDMETHOD( DUnadvise )( DWORD );
00134     STDMETHOD( EnumDAdvise )( LPENUMSTATDATA* );
00135 };
00136
00138 #endif /* _CEDITDROPTARGET_H_ */
00139
00140
00141 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditApp.cpp

CEditApp.cpp

常駐部 [詳細]

#include "stdafx.h"
#include <windows.h>
#include <io.h>
#include "debug.h"
#include "CEditApp.h"
#include "CEditWnd.h"
#include "CDlgAbout.h"
#include "sakura_rc.h"
#include "mymessage.h"
#include "CDlgOpenFile.h"
#include "global.h"
#include "etc_uty.h"
#include "CRunningTimer.h"
#include <htmlhelp.h>

CEditApp.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | ID_HOTKEY_TRAYMENU 0x1234

関数

LRESULT CALLBACK | CEditAppWndProc (HWND, UINT, WPARAM, LPARAM)

変数

CEditApp * g_m_pCEditApp

説明

常駐部

タスクトレイアイコンの管理，タスクトレイメニューのアクション， MRU、キー割り当て、共通設定、編集ウィンドウの管理など

作者:
Norio Nakatani
日付:
1998/05/13 新規作成

2001/06/03 N.Nakatani grep単語単位で検索を実装するときのためにコマンドラインオプションの処理追加

CEditApp.cpp で定義されています。

マクロ定義

#define ID_HOTKEY_TRAYMENU 0x1234

CEditApp.cpp の 27 行で定義されています。

参照元 CEditApp::DispatchEvent().

関数

LRESULT CALLBACK CEditAppWndProc | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditApp.cpp の 171 行で定義されています。

参照先 CEditApp::DispatchEvent()・g_m_pCEditApp・GetWindowLongPtr・GWLP_USERDATA・NULL.

参照元 CEditApp::Create().

変数

CEditApp* g_m_pCEditApp

CEditApp.cpp の 51 行で定義されています。

参照元 CEditAppWndProc()・CEditApp::Create().

Sakura-Editorに対してSat Oct 27 02:16:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditApp.cpp ソースファイル

CEditApp.cpp

説明を見る。
00001
00011 /*
00012     Copyright (C) 1998-2001, Norio Nakatani
00013     Copyright (C) 2000, jepro, genta
00014     Copyright (C) 2001, Stonee, jepro, genta, aroka, hor, YAZAKI
00015     Copyright (C) 2002, MIK, Moca, genta, YAZAKI, towest
00016     Copyright (C) 2003, MIK, Moca, KEITA, genta, aroka
00017     Copyright (C) 2004, Moca
00018     Copyright (C) 2005, genta
00019     Copyright (C) 2006, ryoji
00020     Copyright (C) 2007, ryoji
00021
00022     This source code is designed for sakura editor.
00023     Please contact the copyright holders to use this code for other purpose.
00024 */
00025
00026 #include "stdafx.h"
00027 #define ID_HOTKEY_TRAYMENU  0x1234
00028
00029 #include <windows.h>
00030 #include <io.h>
00031 #include "debug.h"
00032 #include "CEditApp.h"
00033 // #include "CEditView.h"       //Nov. 21, 2000 JEPROtest
00034 // #include "CEditDoc.h"        //Nov. 21, 2000 JEPROtest
00035 #include "CEditWnd.h"       //Nov. 21, 2000 JEPROtest
00036 #include "CDlgAbout.h"      //Nov. 21, 2000 JEPROtest
00037 // #include "CDlgTypeList.h"    //Nov. 21, 2000 JEPROtest
00038 #include "sakura_rc.h"
00039 #include "mymessage.h"
00040 #include "CDlgOpenFile.h"
00041 #include "global.h"
00042 #include "etc_uty.h"
00043 #include "CRunningTimer.h"
00044 #include <htmlhelp.h>
00045
00046
00048 LRESULT CALLBACK CEditAppWndProc( HWND, UINT, WPARAM, LPARAM );
00049
00050
00051 CEditApp*   g_m_pCEditApp;
00052
00053 //Stonee, 2001/03/21
00054 //Stonee, 2001/07/01  多重起動された場合は前回のダイアログを前面に出すようにした。
00055 void CEditApp::DoGrep()
00056 {
00057 //  CDlgGrep    cDlgGrep;   // Jul. 2, 2001 genta
00058     char*           pCmdLine;
00059     char*           pOpt;
00060 //      int             nDataLen;
00061     int             nRet;
00062     CMemory         cmWork1;
00063     CMemory         cmWork2;
00064     CMemory         cmWork3;
00065
00066     /* Grep */
00067     /*Grepダイアログの初期化１ */
00068 //  cDlgGrep.Create( m_hInstance, /*m_hWnd*/NULL );
00069
00070     //Stonee, 2001/06/30
00071     //前回のダイアログがあれば前面に (suggested by genta)
00072     if ( ::IsWindow(m_cDlgGrep.m_hWnd) ){
00073         ::OpenIcon(m_cDlgGrep.m_hWnd);
00074         ::BringWindowToTop(m_cDlgGrep.m_hWnd);
00075         return;
00076     }
00077
00078     strcpy( m_cDlgGrep.m_szText, m_pShareData->m_szSEARCHKEYArr[0] );
00079
00080     /* Grepダイアログの表示 */
00081     nRet = m_cDlgGrep.DoModal( m_hInstance, /*m_hWnd*/NULL, "" );
00082 //                  MYTRACE( "nRet=%d\n", nRet );
00083     if( FALSE == nRet || m_hWnd == NULL ){
00084         return;
00085     }
00086
00087 //                  MYTRACE( "cDlgGrep.m_szText  =[%s]\n", cDlgGrep.m_szText );
00088 //                  MYTRACE( "cDlgGrep.m_szFile  =[%s]\n", cDlgGrep.m_szFile );
00089 //                  MYTRACE( "cDlgGrep.m_szFolder=[%s]\n", cDlgGrep.m_szFolder );
00090
00091     /*======= Grepの実行 =============*/
00092     /* Grep結果ウィンドウの表示 */
00093
00094     pCmdLine = new char[1024];
00095     pOpt = new char[64];
00096
00097     cmWork1.SetDataSz( m_cDlgGrep.m_szText );
00098     cmWork2.SetDataSz( m_cDlgGrep.m_szFile );
00099     cmWork3.SetDataSz( m_cDlgGrep.m_szFolder );
00100     cmWork1.Replace( "\"", "\"\"" );
00101     cmWork2.Replace( "\"", "\"\"" );
00102     cmWork3.Replace( "\"", "\"\"" );
00103
00104     /*
00105     || -GREPMODE -GKEY="1" -GFILE="*.*;*.c;*.h" -GFOLDER="c:\" -GCODE=0 -GOPT=S
00106     */
00107     wsprintf( pCmdLine, "-GREPMODE -GKEY=\"%s\" -GFILE=\"%s\" -GFOLDER=\"%s\" -GCODE=%d",
00108         cmWork1.GetPtr(),
00109         cmWork2.GetPtr(),
00110         cmWork3.GetPtr(),
00111         m_cDlgGrep.m_nGrepCharSet
00112     );
00113
00114     pOpt[0] = '\0';
00115     if( m_cDlgGrep.m_bSubFolder ){          /* サブフォルダからも検索する */
00116         strcat( pOpt, "S" );
00117     }
00118
00119     if( m_cDlgGrep.m_bLoHiCase ){               /* 英大文字と英小文字を区別する */
00120         strcat( pOpt, "L" );
00121     }
00122     if( m_cDlgGrep.m_bRegularExp ){         /* 正規表現 */
00123         strcat( pOpt, "R" );
00124     }
00125 //  2002/09/20 Moca 文字コードセットオプションに統合
00126 //  if( m_cDlgGrep.m_bKanjiCode_AutoDetect ){   /* 文字コード自動判別 */
00127 //      strcat( pOpt, "K" );
00128 //  }
00129     if( m_cDlgGrep.m_bGrepOutputLine ){     /* 行を出力するか該当部分だけ出力するか */
00130         strcat( pOpt, "P" );
00131     }
00132     if( m_cDlgGrep.m_bWordOnly ){               /* 単語単位で探す */
00133         strcat( pOpt, "W" );
00134     }
00135     if( 1 == m_cDlgGrep.m_nGrepOutputStyle ){   /* Grep: 出力形式 */
00136         strcat( pOpt, "1" );
00137     }
00138     if( 2 == m_cDlgGrep.m_nGrepOutputStyle ){   /* Grep: 出力形式 */
00139         strcat( pOpt, "2" );
00140     }
00141
00142
00143     if( 0 < lstrlen( pOpt ) ){
00144         strcat( pCmdLine, " -GOPT=" );
00145         strcat( pCmdLine, pOpt );
00146     }
00147
00148     /* 新規編集ウィンドウの追加 ver 0 */
00149     CEditApp::OpenNewEditor( m_hInstance, m_pShareData->m_hwndTray, pCmdLine, 0, FALSE );
00150
00151     delete [] pCmdLine;
00152     delete [] pOpt;
00153 }
00154
00155 //  BOOL CALLBACK ExitingDlgProc(
00156 //    HWND hwndDlg, // handle to dialog box
00157 //    UINT uMsg,    // message
00158 //    WPARAM wParam,// first message parameter
00159 //    LPARAM lParam // second message parameter
00160 //  )
00161 //  {
00162 //      switch( uMsg ){
00163 //      case WM_INITDIALOG:
00164 //          return TRUE;
00165 //      }
00166 //      return FALSE;
00167 //  }
00168
00169
00170 /* ウィンドウプロシージャじゃ */
00171 LRESULT CALLBACK CEditAppWndProc(
00172     HWND    hwnd,   // handle of window
00173     UINT    uMsg,   // message identifier
00174     WPARAM  wParam, // first message parameter
00175     LPARAM  lParam  // second message parameter
00176 )
00177 {
00178     CEditApp* pSApp;
00179     switch( uMsg ){
00180     case WM_CREATE:
00181         pSApp = ( CEditApp* )g_m_pCEditApp;
00182         return pSApp->DispatchEvent( hwnd, uMsg, wParam, lParam );
00183     default:
00184         // Modified by KEITA for WIN64 2003.9.6
00185         pSApp = ( CEditApp* )::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00186         if( NULL != pSApp ){
00187             return pSApp->DispatchEvent( hwnd, uMsg, wParam, lParam );
00188         }
00189         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00190     }
00191 }
00192
00193
00194
00195
00197 // CEditApp
00198 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00199 CEditApp::CEditApp() :
00200     //  Apr. 24, 2001 genta
00201     m_uCreateTaskBarMsg( ::RegisterWindowMessage( TEXT("TaskbarCreated") ) ),
00202     m_bCreatedTrayIcon( FALSE ),    //トレイにアイコンを作った
00203     m_hInstance( NULL ),
00204     m_hWnd( NULL )
00205 {
00206     /* 共有データ構造体のアドレスを返す */
00207     m_pShareData = CShareData::getInstance()->GetShareData();
00208     if( m_pShareData->m_hAccel != NULL ){
00209         ::DestroyAcceleratorTable( m_pShareData->m_hAccel );
00210         m_pShareData->m_hAccel = NULL;
00211     }
00212     m_pShareData->m_hAccel =
00213         CKeyBind::CreateAccerelator(
00214             m_pShareData->m_nKeyNameArrNum,
00215             m_pShareData->m_pKeyNameArr
00216         );
00217     if( NULL == m_pShareData->m_hAccel ){
00218         ::MessageBox( NULL, "CEditApp::CEditApp()\nアクセラレータ テーブルが作成できません。\nシステムリソースが不足しています。", GSTR_APPNAME, MB_OK | MB_ICONSTOP );
00219     }
00220
00221 //  #ifdef _DEBUG
00222 //      m_pszAppName = "CEditApp[デバッグバージョン]";
00223 //  #endif
00224 //  #ifndef _DEBUG
00225         m_pszAppName = GSTR_CEDITAPP;
00226 //  #endif
00227
00228     m_bUseTrayMenu = false;
00229
00230     return;
00231 }
00232
00233
00234 CEditApp::~CEditApp()
00235 {
00236 //  if( NULL != m_pEditArr ){
00237 //      free( m_pEditArr );
00238 //      m_pEditArr = NULL;
00239 //      m_nEditArrNum = 0;
00240 //  }
00241     return;
00242 }
00243
00245 // CEditApp メンバ関数
00246
00247
00248
00249
00250 /* 作成 */
00251 HWND CEditApp::Create( HINSTANCE hInstance )
00252 {
00253     MY_RUNNINGTIMER( cRunningTimer, "CEditApp::Create" );
00254
00255     WNDCLASS    wc;
00256 //  HANDLE      hMutex;
00257 //  HWND        hWnd;
00258 //  MSG         msg;
00259     ATOM        atom;
00260 //  char        szMutexName[260];
00261 //  HICON       hIcon;
00262 //  HACCEL      hAccel;
00263 //  int         nRet;
00264     HWND        hwndWork;
00265 //  const char *pszTitle="sakura new UR1.2.20.0";   //Nov. 12, 2000 JEPROtestnow トレイにバージョンが表示されなくなってしまったので修正してみたが失敗
00266 //  const char *pszTips ="sakura tipsUR1.2.20.0";   //Nov. 12, 2000 JEPROtestnow トレイにバージョンが表示されなくなってしまったので修正してみたが失敗
00267
00268     m_hInstance = hInstance;
00269     hwndWork = ::FindWindow( m_pszAppName, m_pszAppName );
00270     if( NULL != hwndWork ){
00271         return NULL;
00272     }
00273
00274
00275
00276 //  wsprintf( szMutexName, "%sIsAlreadyExist", m_pszAppName );
00277 //  hMutex = CreateMutex( NULL, TRUE, szMutexName );
00278 //  if( ERROR_ALREADY_EXISTS != GetLastError() ){
00279         wc.style            =   CS_HREDRAW |
00280                                 CS_VREDRAW |
00281                                 CS_DBLCLKS |
00282                                 CS_BYTEALIGNCLIENT |
00283                                 CS_BYTEALIGNWINDOW;
00284         wc.lpfnWndProc      = CEditAppWndProc;
00285         wc.cbClsExtra       = 0;
00286         wc.cbWndExtra       = 0;
00287         wc.hInstance        = m_hInstance;
00288         wc.hIcon            = LoadIcon( NULL, IDI_APPLICATION );
00289         wc.hCursor          = LoadCursor( NULL, IDC_ARROW );
00290         wc.hbrBackground    = (HBRUSH)(COLOR_WINDOW + 1);
00291         wc.lpszMenuName     = NULL;
00292         wc.lpszClassName    = m_pszAppName;
00293         atom = RegisterClass( &wc );
00294         if( 0 == atom ){
00295             ::MessageBox( NULL, "CEditApp::Create()\nウィンドウクラスを登録できませんでした。",
00296                     GSTR_APPNAME, MB_OK | MB_ICONSTOP );
00297         }
00298 //  }else{
00299 //      return NULL;
00300 //  }
00301     g_m_pCEditApp = this;
00302
00303     /*hWnd =*/ ::CreateWindow(
00304         m_pszAppName,                       // pointer to registered class name
00305 //      pszTitle,                           // pointer to registered class name //Nov. 12, 2000 JEPROtestnow トレイにバージョンが表示されなくなってしまったので修正してみたが失敗
00306         m_pszAppName,                       // pointer to window name
00307 //      pszTips,                            // pointer to window name           //Nov. 12, 2000 JEPROtestnow トレイにバージョンが表示されなくなってしまったので修正してみたが失敗
00308         WS_OVERLAPPEDWINDOW/*WS_VISIBLE *//*| WS_CHILD *//* | WS_CLIPCHILDREN*/ ,   // window style
00309         CW_USEDEFAULT,                      // horizontal position of window
00310         0,                                  // vertical position of window
00311         100,                                // window width
00312         100,                                // window height
00313         NULL,                               // handle to parent or owner window
00314         NULL,                               // handle to menu or child-window identifier
00315         m_hInstance,                        // handle to application instance
00316         NULL                                // pointer to window-creation data
00317     );
00318
00319     // 最前面にする（トレイからのポップアップウィンドウが最前面になるように）
00320     ::SetWindowPos( m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00321 //  m_hWnd = hWnd;
00322 //  MYMESSAGEBOX( "m_hWnd=%08xH \n", m_hWnd );
00323     MY_TRACETIME( cRunningTimer, "Window is created" );
00324
00325     //  Oct. 16, 2000 genta
00326     m_hIcons.Create( m_hInstance, m_hWnd );
00327
00328     MY_TRACETIME( cRunningTimer, "Icons are created" );
00329
00330     m_CMenuDrawer.Create( m_hInstance, m_hWnd, &m_hIcons );
00331
00332     if( NULL != m_hWnd ){
00333         CreateTrayIcon( m_hWnd );
00334     }else{
00335     }
00336 //  ::ShowWindow( m_hWnd, SW_SHOW );
00337
00338     /* Windows アクセラレータの作成 */
00339 //  m_CKeyBind.Create( m_hInstance );
00340 //  m_hAccel = m_CKeyBind.CreateAccerelator();
00341     return m_hWnd;
00342 }
00343
00345 bool CEditApp::CreateTrayIcon( HWND hWnd )
00346 {
00347     HICON hIcon;
00348 //      ::SetWindowLongPtr( m_hWnd, GWLP_USERDATA, (LONG)this );
00349         /* タスクトレイのアイコンを作る */
00350         if( TRUE == m_pShareData->m_Common.m_bUseTaskTray ){    /* タスクトレイのアイコンを使う */
00351             //  Dec. 02, 2002 genta
00352             hIcon = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, true );
00353 //From Here Jan. 12, 2001 JEPRO トレイアイコンにポイントするとバージョンno.が表示されるように修正
00354 //          TrayMessage( m_hWnd, NIM_ADD, 0,  hIcon, GSTR_APPNAME );
00355             /* バージョン情報 */
00356             //  UR version no.を設定 (cf. cDlgAbout.cpp)
00357             char    pszTips[64];
00358             //  2004.05.13 Moca バージョン番号は、プロセスごとに取得する
00359             DWORD dwVersionMS, dwVersionLS;
00360             GetAppVersionInfo( NULL, VS_VERSION_INFO,
00361                 &dwVersionMS, &dwVersionLS );
00362
00363             wsprintf( pszTips, "%s %d.%d.%d.%d",        //Jul. 06, 2001 jepro UR はもう付けなくなったのを忘れていた
00364                 GSTR_APPNAME,
00365                 HIWORD( dwVersionMS ),
00366                 LOWORD( dwVersionMS ),
00367                 HIWORD( dwVersionLS ),
00368                 LOWORD( dwVersionLS )
00369             );
00370             TrayMessage( m_hWnd, NIM_ADD, 0,  hIcon, pszTips );
00371 //To Here Jan. 12, 2001
00372             m_bCreatedTrayIcon = TRUE;  /* トレイにアイコンを作った */
00373         }
00374     return true;
00375 }
00376
00377
00378
00379
00380 /* メッセージループ */
00381 void CEditApp::MessageLoop( void )
00382 {
00383 //複数プロセス版
00384     MSG msg;
00385     int ret;
00386
00387     //2004.02.17 Moca GetMessageのエラーチェック
00388     while ( m_hWnd != NULL && (ret = ::GetMessage(&msg, NULL, 0, 0 )) ){
00389         if( ret == -1 ){
00390             break;
00391         }
00392         ::TranslateMessage( &msg );
00393         ::DispatchMessage( &msg );
00394     }
00395     return;
00396
00397
00398 //シングルプロセス版
00399 //  MSG         msg;
00400 //  MSG         msg2;
00401 //  CEditWnd*   pCEditWnd;
00402 //  char        szClassName[64];
00403 //  BOOL        bFromEditWnd;
00404 //  while ( m_hWnd != NULL && ::GetMessage(&msg, NULL/*m_hWnd*/, 0, 0 ) ){
00405 //      bFromEditWnd = FALSE;
00406 //      if( 0 != ::GetClassName( msg.hwnd, szClassName, sizeof(szClassName) - 1 ) ){
00407 //          if( 0 == strcmp( GSTR_EDITWINDOWNAME, szClassName ) ){
00408 //              bFromEditWnd = TRUE;
00409 //              pCEditWnd = ( CEditWnd* )::GetWindowLongPtr( msg.hwnd, GWLP_USERDATA );
00410 //          }
00411 //      }
00412 //      if( bFromEditWnd ){
00413 //          if( NULL != pCEditWnd->m_hwndPrintPreviewBar && ::IsDialogMessage( pCEditWnd->m_hwndPrintPreviewBar, &msg )  ){ /* 印刷プレビュー 操作バー */
00414 //          }else{
00415 //              if( NULL != pCEditWnd->m_pShareData->m_hAccel ){
00416 //                  msg2 = msg;
00417 //                  if( ::TranslateAccelerator( msg.hwnd, pCEditWnd->m_pShareData->m_hAccel, &msg ) ){
00418 //                  }else{
00419 //                      ::TranslateMessage( &msg );
00420 //                      ::DispatchMessage( &msg );
00421 //                  }
00422 //              }else{
00423 //                  ::TranslateMessage( &msg );
00424 //                  ::DispatchMessage( &msg );
00425 //              }
00426 //          }
00427 //      }else{
00428 //          ::TranslateMessage( &msg );
00429 //          ::DispatchMessage( &msg );
00430 //      }
00431 //  }
00432 //  return;
00433 }
00434
00435
00436
00437
00438 /* タスクトレイのアイコンに関する処理 */
00439 BOOL CEditApp::TrayMessage( HWND hDlg, DWORD dwMessage, UINT uID, HICON hIcon, const char* pszTip )
00440 {
00441     BOOL            res;
00442     NOTIFYICONDATA  tnd;
00443     tnd.cbSize              = sizeof( NOTIFYICONDATA );
00444     tnd.hWnd                = hDlg;
00445     tnd.uID                 = uID;
00446     tnd.uFlags              = NIF_MESSAGE|NIF_ICON|NIF_TIP;
00447     tnd.uCallbackMessage    = MYWM_NOTIFYICON;
00448     tnd.hIcon               = hIcon;
00449     if( pszTip ){
00450         lstrcpyn( tnd.szTip, pszTip, sizeof( tnd.szTip ) );
00451     }else{
00452         tnd.szTip[0] = '\0';
00453     }
00454     res = Shell_NotifyIcon( dwMessage, &tnd );
00455     if( hIcon ){
00456         DestroyIcon( hIcon );
00457     }
00458     return res;
00459 }
00460
00461
00462
00463
00464
00465 /* メッセージ処理 */
00466 LRESULT CEditApp::DispatchEvent(
00467     HWND    hwnd,   // handle of window
00468     UINT    uMsg,   // message identifier
00469     WPARAM  wParam, // first message parameter
00470     LPARAM  lParam  // second message parameter
00471 )
00472 {
00473     int             nId;
00474 //  int             i;
00475 //  int             j;
00476     HWND            hwndWork;
00477     //static CDlgGrep   cDlgGrep;  //Stonee, 2001/03/21 Grepを多重起動したときエラーになるのでGrep部分を別関数にした
00478     LPHELPINFO      lphi;
00479
00480 //  CEditWnd*   pCEditWnd_Test;
00481 //  char*       pszCmdLine;
00482     int         nRowNum;
00483     EditNode*   pEditNodeArr;
00484 //  HWND        hwndNew;
00485     static HWND hwndHtmlHelp;
00486
00487     static WORD     wHotKeyMods;
00488     static WORD     wHotKeyCode;
00489 //  UINT                idCtl;  /* コントロールのID */
00490     LPMEASUREITEMSTRUCT lpmis;  /* 項目サイズ情報 */
00491     LPDRAWITEMSTRUCT    lpdis;  /* 項目描画情報 */
00492     int                 nItemWidth;
00493     int                 nItemHeight;
00494     static bool         bLDClick = false;   /* 左ダブルクリックをしたか 03/02/20 ai */
00495
00496     switch ( uMsg ){
00497     case WM_MENUCHAR:
00498         /* メニューアクセスキー押下時の処理(WM_MENUCHAR処理) */
00499         return m_CMenuDrawer.OnMenuChar( hwnd, uMsg, wParam, lParam );
00500     case WM_DRAWITEM:
00501 //      idCtl = (UINT) wParam;              /* コントロールのID */
00502         lpdis = (DRAWITEMSTRUCT*) lParam;   /* 項目描画情報 */
00503         switch( lpdis->CtlType ){
00504         case ODT_MENU:  /* オーナー描画メニュー */
00505             /* メニューアイテム描画 */
00506             m_CMenuDrawer.DrawItem( lpdis );
00507             return TRUE;
00508         }
00509         return FALSE;
00510     case WM_MEASUREITEM:
00511 //      idCtl = (UINT) wParam;                  // control identifier
00512         lpmis = (MEASUREITEMSTRUCT*) lParam;    // item-size information
00513         switch( lpmis->CtlType ){
00514         case ODT_MENU:  /* オーナー描画メニュー */
00515 //          CMenuDrawer* pCMenuDrawer;
00516 //          pCMenuDrawer = (CMenuDrawer*)lpmis->itemData;
00517
00518
00519 //          MYTRACE( "WM_MEASUREITEM  lpmis->itemID=%d\n", lpmis->itemID );
00520             /* メニューアイテムの描画サイズを計算 */
00521             nItemWidth = m_CMenuDrawer.MeasureItem( lpmis->itemID, &nItemHeight );
00522             if( -1 == nItemWidth ){
00523             }else{
00524                 lpmis->itemWidth = nItemWidth;
00525                 lpmis->itemHeight = nItemHeight;
00526             }
00527             return TRUE;
00528         }
00529         return FALSE;
00530
00531     /* タスクトレイ左クリックメニューへのショートカットキー登録 */
00532     case WM_HOTKEY:
00533         {
00534             int     idHotKey = (int) wParam;                // identifier of hot key
00535             UINT    fuModifiers = (UINT) LOWORD(lParam);    // key-modifier flags
00536             UINT    uVirtKey = (UINT) HIWORD(lParam);       // virtual-key code
00537             char    szClassName[100];
00538             char    szText[256];
00539
00540             hwndWork = ::GetForegroundWindow();
00541             szClassName[0] = '\0';
00542             ::GetClassName( hwndWork, szClassName, sizeof( szClassName ) - 1 );
00543             ::GetWindowText( hwndWork, szText, sizeof( szText ) - 1 );
00544             if( 0 == strcmp( szText, "共通設定" ) ){
00545                 return -1;
00546             }
00547
00548             if( ID_HOTKEY_TRAYMENU == idHotKey
00549              && ( wHotKeyMods )  == fuModifiers
00550              && wHotKeyCode == uVirtKey
00551             ){
00552                 // Jan. 1, 2003 AROKA
00553                 // タスクトレイメニューの表示タイミングをLBUTTONDOWN→LBUTTONUPに変更したことによる
00554                 ::PostMessage( m_hWnd, MYWM_NOTIFYICON, 0, WM_LBUTTONUP );
00555             }
00556         }
00557         return 0;
00558
00559     case MYWM_UIPI_CHECK:
00560         /* エディタ－トレイ間でのUI特権分離の確認メッセージ */  // 2007.06.07 ryoji
00561         ::SendMessage( (HWND)lParam, MYWM_UIPI_CHECK,  (WPARAM)0, (LPARAM)0 );  // 返事を返す
00562         return 0L;
00563
00564     case MYWM_HTMLHELP:
00565         {
00566             HH_AKLINK   link;
00567             char        szHtmlHelpFile[1024];
00568             int         nLen;
00569             int         nLenKey;
00570             char*       pszKey;
00571             strcpy( szHtmlHelpFile, m_pShareData->m_szWork );
00572             nLen = lstrlen( szHtmlHelpFile );
00573             nLenKey = lstrlen( &m_pShareData->m_szWork[nLen + 1] );
00574             pszKey = new char[ nLenKey + 1 ];
00575             strcpy( pszKey, &m_pShareData->m_szWork[nLen + 1] );
00576
00577 //          if( NULL != hwndHtmlHelp ){
00578 //              ::BringWindowToTop( hwndHtmlHelp );
00579 //          }
00580
00581             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
00582             hwndHtmlHelp = OpenHtmlHelp(
00583                 /*hwnd*/NULL/*hwndFrame*//*m_pShareData->m_hwndTray*/,
00584                 szHtmlHelpFile,
00585                 HH_DISPLAY_TOPIC,
00586                 (DWORD_PTR)0,
00587                 true
00588             );
00589
00590             link.cbStruct       = sizeof(HH_AKLINK);
00591             link.fReserved      = FALSE;
00592             link.pszKeywords    = (char*)pszKey;
00593             link.pszUrl         = NULL;
00594             link.pszMsgText     = NULL;
00595             link.pszMsgTitle    = NULL;
00596             link.pszWindow      = NULL;
00597             link.fIndexOnFail   = TRUE;
00598
00599 //          if( NULL != hwndHtmlHelp ){
00600 //              hwndHtmlHelpChild = ::FindWindow( "#32770", "Topics Found"/*NULL*/ );
00601 //              if( NULL != hwndHtmlHelpChild ){
00602 //                  HWND    hwndWork;
00603 //                  hwndWork = ::GetParent( hwndHtmlHelpChild );
00604 //                  if( hwndHtmlHelp == hwndWork ){
00605 //                      hwndHtmlHelp = hwndHtmlHelpChild;
00606 //                  }
00607 //              }else{
00608 //              }
00609 //          }
00610 //          if( hwndHtmlHelp != NULL ){
00611 //              DWORD   dwPID;
00612 //              DWORD   dwTID = ::GetWindowThreadProcessId( hwndHtmlHelp, &dwPID );
00613 //              ::AttachThreadInput( ::GetCurrentThreadId(), dwTID, TRUE );
00614 //              ::SetFocus( hwndHtmlHelp );
00615 //              ::AttachThreadInput( ::GetCurrentThreadId(), dwTID, FALSE );
00616 //          }
00617
00618             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
00619             hwndHtmlHelp = OpenHtmlHelp(
00620                 /*hwnd*/NULL/*hwndFrame*//*m_pShareData->m_hwndTray*/,
00621                 szHtmlHelpFile,
00622                 HH_KEYWORD_LOOKUP,
00623                 (DWORD_PTR)&link,
00624                 false
00625             );
00626             delete [] pszKey;
00627         }
00628         return (LRESULT)hwndHtmlHelp;;
00629
00630
00631 //シングルプロセス版
00632 //  /* 新しい編集ウィンドウの作成依頼(コマンドラインを渡す) */
00633 //  case MYWM_OPENNEWEDITOR:
00634 //      pszCmdLine = new char[lstrlen( m_pShareData->m_szWork ) + 1];
00635 //      strcpy( pszCmdLine, m_pShareData->m_szWork );
00636 //      hwndNew = OpenNewEditor3( m_hInstance, hwnd, pszCmdLine, FALSE );
00637 //      delete [] pszCmdLine;
00638 //      return (LONG)hwndNew;
00639
00640 //  /* 編集ウィンドウオブジェクトからのアクティブ要求 */
00641 //  case MYWM_ACTIVATE_ME:
00642 //      {
00643 //          CRunningTimer   cRunningTimer;
00644 //          cRunningTimer.Reset();
00645 //          while( 3000 > cRunningTimer.Read() ){
00646 //              ::BlockingHook();
00647 //          }
00648 //          /* アクティブにする */
00649 //          ActivateFrameWindow( (HWND)wParam );
00650 //      }
00651 //      return 0;
00652
00653     /* 編集ウィンドウオブジェクトからのオブジェクト削除要求 */
00654     case MYWM_DELETE_ME:
00655 //シングルプロセス版
00656 //      pCEditWnd_Test = (CEditWnd*)lParam;
00657 //      delete pCEditWnd_Test;
00658
00659         /* タスクトレイのアイコンを常駐しない場合 */
00660         if( FALSE == m_pShareData->m_Common.m_bStayTaskTray /* タスクトレイのアイコンを常駐 */
00661          || FALSE == m_bCreatedTrayIcon                     /* トレイにアイコンを作っていない */
00662          ){
00663             /* 現在開いている編集窓のリスト */
00664             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
00665             if( 0 < nRowNum ){
00666                 delete [] pEditNodeArr;
00667             }
00668             /* 編集ウィンドウの数が0になったら終了 */
00669             if( 0 == nRowNum ){
00670                 ::SendMessage( hwnd, WM_CLOSE, 0, 0 );
00671             }
00672         }
00673         return 0;
00674
00675 //  case WM_RASDIALEVENT:
00676 //      {
00677 //          RASCONNSTATE    rasconnstate;
00678 //          DWORD           dwError;
00679 //
00680 //          rasconnstate    = (RASCONNSTATE) wParam;    // connection state about to be entered
00681 //          dwError         = (DWORD) lParam;           // error that may have occurred
00682 //      }
00683 //      break;
00684     case WM_CREATE:
00685         m_hWnd = hwnd;
00686         hwndHtmlHelp = NULL;
00687         // Modified by KEITA for WIN64 2003.9.6
00688 		::SetWindowLongPtr( m_hWnd, GWLP_USERDATA, (LONG_PTR)this );
00689
00690 //      for( i = 0; i < 16; ++i ){
00691 //          HWND    hwndWork;
00692 //          pCEditWnd_Test = NULL;
00693 //          pCEditWnd_Test = new CEditWnd;
00694 //          if( NULL == pCEditWnd_Test ){
00695 //              MYTRACE( "オブジェクト確保失敗\n" );
00696 //              break;
00697 //          }
00698 //          hwndWork = pCEditWnd_Test->Create( m_hInstance, hwnd/*pShareData->m_hwndTray*/, NULL, 0, FALSE );
00699 //          if( NULL == hwndWork ){
00700 //              MYTRACE( "NULL == hwndWork\n" );
00701 //              break;
00702 //          }
00703 //      }
00704
00705         /* タスクトレイ左クリックメニューへのショートカットキー登録 */
00706         wHotKeyMods = 0;
00707         if( HOTKEYF_SHIFT & m_pShareData->m_Common.m_wTrayMenuHotKeyMods ){
00708             wHotKeyMods |= MOD_SHIFT;
00709         }
00710         if( HOTKEYF_CONTROL & m_pShareData->m_Common.m_wTrayMenuHotKeyMods ){
00711             wHotKeyMods |= MOD_CONTROL;
00712         }
00713         if( HOTKEYF_ALT & m_pShareData->m_Common.m_wTrayMenuHotKeyMods ){
00714             wHotKeyMods |= MOD_ALT;
00715         }
00716         wHotKeyCode = m_pShareData->m_Common.m_wTrayMenuHotKeyCode;
00717         ::RegisterHotKey(
00718             m_hWnd,
00719             ID_HOTKEY_TRAYMENU,
00720             wHotKeyMods,
00721             wHotKeyCode
00722         );
00723
00724         // 2006.07.09 ryoji 最後の方でシャットダウンするアプリケーションにする
00725         BOOL (WINAPI *pfnSetProcessShutdownParameters)( DWORD dwLevel, DWORD dwFlags );
00726         HINSTANCE hDll;
00727         hDll = ::GetModuleHandle(_T("KERNEL32"));
00728         if( NULL != hDll ){
00729             *(FARPROC*)&pfnSetProcessShutdownParameters = ::GetProcAddress( hDll, "SetProcessShutdownParameters" );
00730             if( NULL != pfnSetProcessShutdownParameters ){
00731                 pfnSetProcessShutdownParameters( 0x180, 0 );
00732             }
00733         }
00734         return 0L;
00735
00736 //  case WM_QUERYENDSESSION:
00737     case WM_HELP:
00738         lphi = (LPHELPINFO) lParam;
00739         switch( lphi->iContextType ){
00740         case HELPINFO_MENUITEM:
00741             CEditWnd::OnHelp_MenuItem( hwnd, lphi->iCtrlId );
00742             break;
00743         }
00744         return TRUE;
00745         case WM_COMMAND:
00746             OnCommand( HIWORD(wParam), LOWORD(wParam), (HWND) lParam );
00747             return 0L;
00748
00749 //      case MYWM_SETFILEINFO:
00750 //          return 0L;
00751         case MYWM_CHANGESETTING:
00752             ::UnregisterHotKey( m_hWnd, ID_HOTKEY_TRAYMENU );
00753             /* タスクトレイ左クリックメニューへのショートカットキー登録 */
00754             wHotKeyMods = 0;
00755             if( HOTKEYF_SHIFT & m_pShareData->m_Common.m_wTrayMenuHotKeyMods ){
00756                 wHotKeyMods |= MOD_SHIFT;
00757             }
00758             if( HOTKEYF_CONTROL & m_pShareData->m_Common.m_wTrayMenuHotKeyMods ){
00759                 wHotKeyMods |= MOD_CONTROL;
00760             }
00761             if( HOTKEYF_ALT & m_pShareData->m_Common.m_wTrayMenuHotKeyMods ){
00762                 wHotKeyMods |= MOD_ALT;
00763             }
00764             wHotKeyCode = m_pShareData->m_Common.m_wTrayMenuHotKeyCode;
00765             ::RegisterHotKey(
00766                 m_hWnd,
00767                 ID_HOTKEY_TRAYMENU,
00768                 wHotKeyMods,
00769                 wHotKeyCode
00770             );
00771
00772 //@@        /* 共有データの保存 */
00773 //@@        m_cShareData.SaveShareData();
00774
00775             /* アクセラレータテーブルの再作成 */
00776             if( m_pShareData->m_hAccel != NULL ){
00777                 ::DestroyAcceleratorTable( m_pShareData->m_hAccel );
00778                 m_pShareData->m_hAccel = NULL;
00779             }
00780             m_pShareData->m_hAccel =
00781                 CKeyBind::CreateAccerelator(
00782                     m_pShareData->m_nKeyNameArrNum,
00783                     m_pShareData->m_pKeyNameArr
00784                 );
00785             if( NULL == m_pShareData->m_hAccel ){
00786                 ::MessageBox( NULL, "CEditApp::DispatchEvent()\nアクセラレータ テーブルが作成できません。\nシステムリソースが不足しています。", GSTR_APPNAME, MB_OK | MB_ICONSTOP );
00787             }
00788
00789             return 0L;
00790
00791         case MYWM_NOTIFYICON:
00792 //          MYTRACE( "MYWM_NOTIFYICON\n" );
00793             switch (lParam){
00794 //キーワード：トレイ右クリックメニュー設定
00795 //  From Here Oct. 12, 2000 JEPRO 左右とも同一処理になっていたのを別々に処理するように変更
00796             case WM_RBUTTONUP:  // Dec. 24, 2002 towest UPに変更
00797                 ::SetActiveWindow( m_hWnd );
00798                 ::SetForegroundWindow( m_hWnd );
00799                 /* ポップアップメニュー(トレイ右ボタン) */
00800                 nId = CreatePopUpMenu_R();
00801                 switch( nId ){
00802 // Nov. 21, 2000 JEPROtestnow
00803 #if 0
00804                 case F_FONT:
00805                     /* フォント設定 */
00806                     {
00807 //                      HWND    hwndFrame;
00808 //                      hwndFrame = ::GetParent( m_hwndParent );
00809                         /* フォント設定ダイアログ */
00810 //                      if( m_pcEditDoc->SelectFont( &(m_pShareData->m_Common.m_lf) ) ){
00811                             if( m_pShareData->m_Common.m_lf.lfPitchAndFamily & FIXED_PITCH ){
00812                                 m_pShareData->m_Common.m_bFontIs_FIXED_PITCH = TRUE;    /* 現在のフォントは固定幅フォントである */
00813                             }else{
00814                                 m_pShareData->m_Common.m_bFontIs_FIXED_PITCH = FALSE;   /* 現在のフォントは固定幅フォントである */
00815                             }
00816                             /* 設定変更を反映させる */
00817                             /* 全編集ウィンドウへメッセージをポストする */
00818 //                          m_cShareData.PostMessageToAllEditors(
00819 //                              MYWM_CHANGESETTING,
00820 //                              (WPARAM)0, (LPARAM)0, hwndFrame
00821 //                          );
00822 //                      }
00823                     }
00824                     break;
00825 //              case F_OPTION:
00826                     /* 共通設定 */
00827 //                  {
00828                         /* 設定プロパティシート テスト用 */
00829 //                      m_pcEditDoc->bOpenPropertySheet( -1/*, -1*/ );
00830 //                  }
00831 //                  break;
00832 //              case F_OPTION_TYPE:
00833                     /* タイプ別設定 */
00834 //                  {
00835 //                      CEditDoc::OpenPropertySheetTypes( -1, m_nSettingType );
00836 //                  }
00837 //                  break;
00838 //              case F_TYPE_LIST:
00839                     /* タイプ別設定一覧 */
00840 //                  {
00841 //                      CDlgTypeList    cDlgTypeList;
00842 //                      int             nSettingType;
00843 //                      nSettingType = m_pcEditDoc->m_nSettingType;
00844 //                      if( cDlgTypeList.DoModal( m_hInstance, m_hWnd, &nSettingType ) ){
00845 //                          /* タイプ別設定 */
00846 //                          m_pcEditDoc->OpenPropertySheetTypes( -1, nSettingType );
00847 //                      }
00848 //                  }
00849 //                  break;
00850 #endif
00851
00852                 case F_HELP_CONTENTS:
00853                     /* ヘルプ目次 */
00854                     {
00855                         char    szHelp[_MAX_PATH + 1];
00856                         /* ヘルプファイルのフルパスを返す */
00857 						::GetHelpFilePath( szHelp );
00858                         ShowWinHelpContents( m_hWnd, szHelp );  //  目次を表示する
00859                     }
00860                     break;
00861                 case F_HELP_SEARCH:
00862                     /* ヘルプキーワード検索 */
00863                     {
00864                         char    szHelp[_MAX_PATH + 1];
00865                         /* ヘルプファイルのフルパスを返す */
00866 						::GetHelpFilePath( szHelp );
00867                         MyWinHelp( m_hWnd, szHelp, HELP_KEY, (ULONG_PTR)"" );   // 2006.10.10 ryoji MyWinHelpに変更に変更
00868                     }
00869                     break;
00870 //              case F_MENU_ALLFUNC:    //Jan. 12, 2001 JEPRO コマンド一覧は右クリックメニューから一応除外
00871 //                  /* コマンド一覧 */
00872 //                      CEditView::Command_MENU_ALLFUNC();
00873 //                  break;
00874                 case F_EXTHELP1:
00875                     /* 外部ヘルプ１ */
00876 //                  {
00877 //                      CEditView::Command_EXTHELP1();
00878 //                  }
00879 //                  break;
00880                     do{
00881                         if( CShareData::getInstance()->ExtWinHelpIsSet() ) {    //  共通設定のみ確認
00882                             break;
00883                         }else
00884                         {
00885                             ::MessageBeep( MB_ICONHAND );
00886                         }
00887                     }while(IDYES == ::MYMESSAGEBOX(
00888                             NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST,
00889                             GSTR_APPNAME,
00890                             "外部ヘルプ１が設定されていません。\n今すぐ設定しますか?")
00891                     );/*do-while*/
00892 #if 0
00893                     {
00894                     retry:;
00895                         if( 0 == strlen( m_pShareData->m_Common.m_szExtHelp1 ) ){
00896                             ::MessageBeep( MB_ICONHAND );
00897                             if( IDYES == ::MYMESSAGEBOX( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME,
00898                                 "外部ヘルプ１が設定されていません。\n今すぐ設定しますか?"
00899                             ) ){
00900                                 /* 共通設定 プロパティシート */
00901 //                              if( !m_pcEditDoc->OpenPropertySheet( ID_PAGENUM_HELPER/*, IDC_EDIT_EXTHELP1*/ ) ){
00902 //                                  break;
00903 //                              }
00904                                 goto retry;
00905                             }
00906                             else {
00907                                 break;
00908                             }
00909                         }
00910
00911 //                      CMemory     cmemCurText;
00912                         /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
00913 //                      GetCurrentTextForSearch( cmemCurText );
00914 //                      ::WinHelp( m_hwndParent, m_pShareData->m_Common.m_szExtHelp1, HELP_KEY, (ULONG_PTR)(char*)cmemCurText.GetPtr() );
00915 //                      break;
00916                     }
00917 #endif
00918                     break;
00919                 case F_EXTHTMLHELP:
00920                     /* 外部HTMLヘルプ */
00921                     {
00922 //                      CEditView::Command_EXTHTMLHELP();
00923                     }
00924                     break;
00925                 case F_ABOUT:
00926                     /* バージョン情報 */
00927                     {
00928                         CDlgAbout cDlgAbout;
00929                         cDlgAbout.DoModal( m_hInstance, m_hWnd );
00930                     }
00931                     break;
00932 //              case IDM_EXITALL:
00933                 case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
00934                     /* サクラエディタの全終了 */
00935                     CEditApp::TerminateApplication( m_hWnd );   // 2006.12.25 ryoji 引数追加
00936                     break;
00937                 default:
00938                     break;
00939                 }
00940                 return 0L;
00941 //  To Here Oct. 12, 2000
00942
00943             case WM_LBUTTONDOWN:
00944                 //  Mar. 29, 2003 genta 念のためフラグクリア
00945                 bLDClick = false;
00946                 return 0L;
00947             case WM_LBUTTONUP:  // Dec. 24, 2002 towest UPに変更
00948 //              MYTRACE( "WM_LBUTTONDOWN\n" );
00949                 /* 03/02/20 左ダブルクリック後はメニューを表示しない ai Start */
00950                 if( bLDClick ){
00951                     bLDClick = false;
00952                     return 0L;
00953                 }
00954                 /* 03/02/20 ai End */
00955                 ::SetActiveWindow( m_hWnd );
00956                 ::SetForegroundWindow( m_hWnd );
00957                 /* ポップアップメニュー(トレイ左ボタン) */
00958 //              MYTRACE( "CreatePopUpMenu_L START\n" );
00959                 nId = CreatePopUpMenu_L();
00960 //              MYTRACE( "CreatePopUpMenu_L END\n" );
00961                 switch( nId ){
00962                 case F_FILENEW: /* 新規作成 */
00963 //                  MYTRACE( "F_FILENEW\n" );
00964                     /* 新規編集ウィンドウの追加 */
00965                     OnNewEditor();
00966                     break;
00967                 case F_FILEOPEN:    /* 開く */
00968 //                  MYTRACE( "F_FILEOPEN\n" );
00969                     {
00970                         CDlgOpenFile    cDlgOpenFile;
00971 //                      char*           pszMRU = NULL;;
00972                         char            szPath[_MAX_PATH + 1];
00973                         int             nCharCode;
00974                         BOOL            bReadOnly;
00975                         HWND            hWndOwner;
00976 //                      FileInfo*       pfi;
00977 //                      int             i;
00978 //                      int             j;
00979                         char**          ppszMRU;
00980                         char**          ppszOPENFOLDER;
00981
00982                         /* MRUリストのファイルのリスト */
00983 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUにすべて依頼する
00984                         CMRU cMRU;
00985 //                      ppszMRU = NULL;
00986                         ppszMRU = new char*[ cMRU.Length() + 1 ];
00987                         cMRU.GetPathList(ppszMRU);
00988
00989                         /* OPENFOLDERリストのファイルのリスト */
00990 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00991                         CMRUFolder cMRUFolder;
00992 //                      ppszOPENFOLDER = NULL;
00993                         ppszOPENFOLDER = new char*[ cMRUFolder.Length() + 1 ];
00994                         cMRUFolder.GetPathList(ppszOPENFOLDER);
00995
00996                         /* ファイルオープンダイアログの初期化 */
00997                         strcpy( szPath, "" );
00998                         nCharCode = CODE_AUTODETECT;    /* 文字コード自動判別 */
00999                         bReadOnly = FALSE;
01000                         cDlgOpenFile.Create(
01001                             m_hInstance,
01002                             NULL/*m_hWnd*/,
01003                             "*.*",
01004                             ppszMRU[0],//@@@ 2001.12.26 YAZAKI m_fiMRUArrにはアクセスしない
01005                             (const char **)ppszMRU,
01006                             (const char **)ppszOPENFOLDER
01007                         );
01008                         if( !cDlgOpenFile.DoModalOpenDlg( szPath, &nCharCode, &bReadOnly ) ){
01009                             delete [] ppszMRU;
01010                             delete [] ppszOPENFOLDER;
01011                             break;
01012                         }
01013                         if( NULL == m_hWnd ){
01014                             delete [] ppszMRU;
01015                             delete [] ppszOPENFOLDER;
01016                             break;
01017                         }
01018                         delete [] ppszMRU;
01019                         delete [] ppszOPENFOLDER;
01020                         /* 指定ファイルが開かれているか調べる */
01021                         if( CShareData::getInstance()->IsPathOpened( szPath, &hWndOwner, nCharCode )){
01022                             // 2007.03.13 maru 多重オープンに対する処理はCShareData::IsPathOpenedへ移動
01023                         }else{
01024                             if( strchr( szPath, ' ' ) ){
01025                                 char    szFile2[_MAX_PATH + 3];
01026                                 wsprintf( szFile2, "\"%s\"", szPath );
01027                                 strcpy( szPath, szFile2 );
01028                             }
01029                             /* 新たな編集ウィンドウを起動 */
01030                             CEditApp::OpenNewEditor( m_hInstance, m_hWnd, szPath, nCharCode, bReadOnly );
01031                         }
01032                     }
01033                     break;
01034                 case F_GREP_DIALOG:
01035                     /* Grep */
01036                     DoGrep();  //Stonee, 2001/03/21  Grepを別関数に
01037                     break;
01038                 case F_FILESAVEALL: // Jan. 24, 2005 genta 全て上書き保存
01039                     CShareData::getInstance()->PostMessageToAllEditors(
01040                         WM_COMMAND, MAKELONG( F_FILESAVE_QUIET, 0 ), (LPARAM)0, NULL);
01041                     break;
01042                 case F_EXITALLEDITORS:  //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)    // 2007.02.13 ryoji →F_EXITALLEDITORS
01043                     /* 編集の全終了 */
01044                     CEditApp::CloseAllEditor( TRUE, m_hWnd, TRUE, 0 );  // 2006.12.25, 2007.02.13 ryoji 引数追加
01045                     break;
01046                 case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
01047                     /* サクラエディタの全終了 */
01048                     CEditApp::TerminateApplication( m_hWnd );   // 2006.12.25 ryoji 引数追加
01049                     break;
01050                 default:
01051                     if( nId - IDM_SELWINDOW  >= 0 &&
01052                         nId - IDM_SELWINDOW  < m_pShareData->m_nEditArrNum ){
01053                         hwndWork = m_pShareData->m_pEditArr[nId - IDM_SELWINDOW].m_hWnd;
01054
01055                         /* アクティブにする */
01056                         ActivateFrameWindow( hwndWork );
01057 //                      if( ::IsIconic( hwndWork ) ){
01058 //                          ::ShowWindow( hwndWork, SW_RESTORE );
01059 //                      }else{
01060 //                          ::ShowWindow( hwndWork, SW_SHOW );
01061 //                      }
01062 //                      ::SetForegroundWindow( hwndWork );
01063 //                      ::SetActiveWindow( hwndWork );
01064                     }else
01065                     if( nId - IDM_SELMRU  >= 0 &&
01066 //                      nId - IDM_SELMRU  < (( m_pShareData->m_nMRUArrNum < m_pShareData->m_Common.m_nMRUArrNum_MAX )?m_pShareData->m_nMRUArrNum :m_pShareData->m_Common.m_nMRUArrNum_MAX )
01067                         nId - IDM_SELMRU  < 999
01068                     ){
01069
01070 //                      char    szPath[_MAX_PATH + 3];
01071 //                      strcpy( szPath, &(m_pShareData->m_fiMRUArr[nId - IDM_SELMRU]) );
01072 //                      if( strchr( szPath, ' ' ) ){
01073 //                          char    pszFile2[_MAX_PATH + 3];
01074 //                          sprintf( pszFile2, "\"%s\"", szPath );
01075 //                          strcpy( szPath, pszFile2 );
01076 //                      }
01077                         /* 新しい編集ウィンドウを開く */
01078                         //  From Here Oct. 27, 2000 genta   カーソル位置を復元しない機能
01079 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01080                         CMRU cMRU;
01081                         FileInfo openFileInfo;
01082                         cMRU.GetFileInfo(nId - IDM_SELMRU, &openFileInfo);
01083
01084                         if( m_pShareData->m_Common.GetRestoreCurPosition() ){
01085                             CEditApp::OpenNewEditor2( m_hInstance, m_hWnd, &openFileInfo, FALSE );
01086                         }
01087                         else {
01088                             CEditApp::OpenNewEditor( m_hInstance, m_hWnd,
01089                                 openFileInfo.m_szPath,
01090                                 openFileInfo.m_nCharCode,
01091                                 FALSE );
01092
01093                         }
01094                         //  To Here Oct. 27, 2000 genta
01095                     }else
01096                     if( nId - IDM_SELOPENFOLDER  >= 0 &&
01097                         nId - IDM_SELOPENFOLDER  < 999
01098                     ){
01099                         {
01100                             CDlgOpenFile    cDlgOpenFile;
01101 //                          char*           pszMRU = NULL;;
01102                             char            szPath[_MAX_PATH + 1];
01103                             int             nCharCode;
01104                             BOOL            bReadOnly;
01105                             HWND            hWndOwner;
01106 //                          FileInfo*       pfi;
01107 //                          int             i;
01108 //                          int             j;
01109                             char**          ppszMRU;
01110                             char**          ppszOPENFOLDER;
01111
01112                             /* MRUリストのファイルのリスト */
01113 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01114                             CMRU cMRU;
01115                             ppszMRU = NULL;
01116                             ppszMRU = new char*[ cMRU.Length() + 1 ];
01117                             cMRU.GetPathList(ppszMRU);
01118                             /* OPENFOLDERリストのファイルのリスト */
01119 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
01120                             CMRUFolder cMRUFolder;
01121 //                          ppszOPENFOLDER = NULL;
01122                             ppszOPENFOLDER = new char*[ cMRUFolder.Length() + 1 ];
01123                             cMRUFolder.GetPathList(ppszOPENFOLDER);
01124
01125                             //Stonee, 2001/12/21 UNCであれば接続を試みる
01126                             NetConnect( cMRUFolder.GetPath( nId - IDM_SELOPENFOLDER ) );
01127
01128                             /* ファイルオープンダイアログの初期化 */
01129                             strcpy( szPath, "" );
01130                             nCharCode = CODE_AUTODETECT;    /* 文字コード自動判別 */
01131                             bReadOnly = FALSE;
01132                             cDlgOpenFile.Create(
01133                                 m_hInstance,
01134                                 NULL/*m_hWnd*/,
01135                                 "*.*",
01136                                 ppszOPENFOLDER[ nId - IDM_SELOPENFOLDER ],
01137                                 (const char **)ppszMRU,
01138                                 (const char **)ppszOPENFOLDER
01139                             );
01140                             if( !cDlgOpenFile.DoModalOpenDlg( szPath, &nCharCode, &bReadOnly ) ){
01141                                 delete [] ppszMRU;
01142                                 delete [] ppszOPENFOLDER;
01143                                 break;
01144                             }
01145                             if( NULL == m_hWnd ){
01146                                 delete [] ppszMRU;
01147                                 delete [] ppszOPENFOLDER;
01148                                 break;
01149                             }
01150                             delete [] ppszMRU;
01151                             delete [] ppszOPENFOLDER;
01152                             /* 指定ファイルが開かれているか調べる */
01153                             if( CShareData::getInstance()->IsPathOpened( szPath, &hWndOwner, nCharCode )){
01154                                 // 2007.03.13 maru 多重オープンに対する処理はCShareData::IsPathOpenedへ移動
01155                             } else {
01156                                 if( strchr( szPath, ' ' ) ){
01157                                     char    szFile2[_MAX_PATH + 3];
01158                                     wsprintf( szFile2, "\"%s\"", szPath );
01159                                     strcpy( szPath, szFile2 );
01160                                 }
01161                                 /* 新たな編集ウィンドウを起動 */
01162                                 CEditApp::OpenNewEditor( m_hInstance, m_hWnd, szPath, nCharCode, bReadOnly );
01163                             }
01164                         }
01165                     }else{
01166
01167                     }
01168                     break;
01169                 }
01170                 return 0L;
01171             case WM_LBUTTONDBLCLK:
01172 //              MYTRACE( "WM_LBUTTONDBLCLK\n" );
01173                 bLDClick = true;        /* 03/02/20 ai */
01174                 /* 新規編集ウィンドウの追加 */
01175                 OnNewEditor();
01176                 // Apr. 1, 2003 genta この後で表示されたメニューは閉じる
01177                 ::PostMessage( m_hWnd, WM_CANCELMODE, 0, 0 );
01178                 return 0L;
01179             case WM_RBUTTONDBLCLK:
01180 //              MYTRACE( "WM_RBUTTONDBLCLK\n" );
01181                 return 0L;
01182             }
01183             break;
01184
01185         case WM_QUERYENDSESSION:
01186             /* すべてのウィンドウを閉じる */    //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
01187             if( CloseAllEditor( FALSE, m_hWnd, TRUE, 0 ) ){ // 2006.12.25, 2007.02.13 ryoji 引数追加
01188                 //  Jan. 31, 2000 genta
01189                 //  この時点ではWindowsの終了が確定していないので常駐解除すべきではない．
01190                 //  DestroyWindow( hwnd );
01191                 return TRUE;
01192             }else{
01193                 return FALSE;
01194             }
01195         case WM_CLOSE:
01196             /* すべてのウィンドウを閉じる */    //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
01197             if( CloseAllEditor( FALSE, m_hWnd, TRUE, 0 ) ){ // 2006.12.25, 2007.02.13 ryoji 引数追加
01198                 DestroyWindow( hwnd );
01199             }
01200             return 0L;
01201
01202         //  From Here Jan. 31, 2000 genta   Windows終了時の後処理．
01203         //  Windows終了時はWM_CLOSEが呼ばれない上，DestroyWindowを
01204         //  呼び出す必要もない．また，メッセージループに戻らないので
01205         //  メッセージループの後ろの処理をここで完了させる必要がある．
01206         case WM_ENDSESSION:
01207             //  もしWindowsの終了が中断されたのなら何もしない
01208             if( wParam == TRUE )
01209                 OnDestroy();    // 2006.07.09 ryoji WM_DESTROY と同じ処理をする（トレイアイコンの破棄などもNT系では必要）
01210
01211             return 0;   //  もうこのプロセスに制御が戻ることはない
01212         //  To Here Jan. 31, 2000 genta
01213         case WM_DESTROY:
01214             OnDestroy();
01215
01216             /* Windows にスレッドの終了を要求します。*/
01217             ::PostQuitMessage( 0 );
01218             return 0L;
01219         default:
01220 // << 20010412 by aroka
01221 //  Apr. 24, 2001 genta RegisterWindowMessageを使うように修正
01222             if( uMsg == m_uCreateTaskBarMsg ){
01223                 /* TaskTray Iconの再登録を要求するメッセージ．
01224                     Explorerが再起動したときに送出される．*/
01225                 CreateTrayIcon( m_hWnd ) ;
01226             }
01227             break;  /* default */
01228 // >> by aroka
01229     }
01230     return DefWindowProc( hwnd, uMsg, wParam, lParam );
01231 }
01232
01233
01234
01235
01236 /* WM_COMMANDメッセージ処理 */
01237 void CEditApp::OnCommand( WORD wNotifyCode, WORD wID , HWND hwndCtl )
01238 {
01239     switch( wNotifyCode ){
01240     /* メニューからのメッセージ */
01241     case 0:
01242         break;
01243     }
01244     return;
01245 }
01246
01260 void CEditApp::OnNewEditor(void)
01261 {
01262
01263     const char* szCurDir = NULL;
01264
01265     //  最近使ったフォルダを順番にたどる
01266     CMRUFolder mrufolder;
01267
01268     int nCount = mrufolder.Length();
01269     for( int i = 0; i < nCount ; i++ ){
01270         const char* recentdir = mrufolder.GetPath( i );
01271         DWORD attr = GetFileAttributes( recentdir );
01272
01273         if( attr != -1 ){
01274             if(( attr & FILE_ATTRIBUTE_DIRECTORY ) != 0 ){
01275                 szCurDir = recentdir;
01276                 break;
01277             }
01278             else {
01279             //  ::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
01280             //      "Not directory: %d - %s", i, recentdir ? recentdir : NULL );
01281             }
01282         }
01283         else {
01284         //  ::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
01285         //      "Not found: %d - %s", i, recentdir ? recentdir : NULL );
01286         }
01287     }
01288
01289     OpenNewEditor( m_hInstance, m_hWnd, (char*)NULL, 0, FALSE, false, szCurDir );
01290 }
01291
01292
01308 bool CEditApp::OpenNewEditor( HINSTANCE hInstance, HWND hWndParent, const char* pszPath, int nCharCode, BOOL bReadOnly, bool sync, const char* szCurDir )
01309 {
01310     DLLSHAREDATA*   pShareData;
01311     char szCmdLineBuf[1024];    //  コマンドライン
01312     char szEXE[MAX_PATH + 1];   //  アプリケーションパス名
01313     int nPos = 0;               //  コマンドライン構築用ポインタ
01314
01315     /* 共有データ構造体のアドレスを返す */
01316     pShareData = CShareData::getInstance()->GetShareData();
01317
01318     /* 編集ウィンドウの上限チェック */
01319     if( pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){ //最大値修正    //@@@ 2003.05.31 MIK
01320         char szMsg[512];
01321         wsprintf( szMsg, "編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。", MAX_EDITWINDOWS );
01322         ::MessageBox( NULL, szMsg, GSTR_APPNAME, MB_OK );
01323         return false;
01324     }
01325
01326     ::GetModuleFileName( ::GetModuleHandle( NULL ), szEXE, sizeof( szEXE ) );
01327     nPos += wsprintf( szCmdLineBuf + nPos, "\"%s\"", szEXE );
01328
01329     //  ファイル名が指定されている場合
01330     //  コマンドライン引数が指定されているので，全体を""で囲んではいけない
01331     if( pszPath != NULL ){
01332         nPos += wsprintf( szCmdLineBuf + nPos, " %s", pszPath );
01333     }
01334     //  コード指定がある場合
01335     if( nCharCode != CODE_AUTODETECT ){
01336         nPos += wsprintf( szCmdLineBuf + nPos, " -CODE=%d", nCharCode );
01337     }
01338     //  読み取り専用指定がある場合      //From Here Feb. 26, 2001 JEPRO 追加 (direcited by genta)
01339     if( bReadOnly ){
01340         nPos += wsprintf( szCmdLineBuf + nPos, " -R" );
01341     }       //To Here Feb. 26, 2001
01342
01343     // 親ウィンドウからグループIDを取得する
01344     HWND hwndAncestor = MyGetAncestor( hWndParent, GA_ROOTOWNER );
01345     int nGroup = CShareData::getInstance()->GetGroupId( hwndAncestor );
01346     if( nGroup > 0 ){
01347         nPos += wsprintf( szCmdLineBuf + nPos, " -GROUP=%d", nGroup );
01348     }
01349
01350 //: do error check nPos
01351
01352     //  DEBUG
01353     //  ::MessageBox( NULL, szCmdLineBuf, "OpenNewEditor", MB_OK );
01354
01355     //  プロセスの起動
01356     PROCESS_INFORMATION p;
01357     STARTUPINFO s;
01358
01359     s.cb = sizeof( s );
01360     s.lpReserved = NULL;
01361     s.lpDesktop = NULL;
01362     s.lpTitle = NULL;
01363     /*
01364     s.dwX = CW_USEDEFAULT;
01365     s.dwY = CW_USEDEFAULT;
01366     s.dwXSize = CW_USEDEFAULT;
01367     s.dwYSize = CW_USEDEFAULT;
01368     */
01369
01370     s.dwFlags = STARTF_USESHOWWINDOW;
01371     s.wShowWindow = SW_SHOWDEFAULT;
01372     s.cbReserved2 = 0;
01373     s.lpReserved2 = NULL;
01374
01375     //  May 30, 2003 genta カレントディレクトリ指定を可能に
01376     if( CreateProcess( szEXE, szCmdLineBuf, NULL, NULL, FALSE,
01377         CREATE_DEFAULT_ERROR_MODE, NULL, szCurDir, &s, &p ) == 0 ){
01378         //  失敗
01379         LPVOID pMsg;
01380         FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
01381                         FORMAT_MESSAGE_IGNORE_INSERTS |
01382                         FORMAT_MESSAGE_FROM_SYSTEM,
01383                         NULL,
01384                         GetLastError(),
01385                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
01386                         (LPTSTR) &pMsg,
01387                         0,
01388                         NULL
01389         );
01390 		::MYMESSAGEBOX(
01391             hWndParent,
01392             MB_OK | MB_ICONSTOP,
01393             GSTR_APPNAME,
01394             "\'%s\'\nプロセスの起動に失敗しました。\n%s",
01395             szEXE,
01396             (char*)pMsg
01397         );
01398         ::LocalFree( (HLOCAL)pMsg );    //  エラーメッセージバッファを解放
01399         return false;
01400     }
01401
01402     if( sync ){
01403         //  起動したプロセスが完全に立ち上がるまでちょっと待つ．
01404         int nResult = WaitForInputIdle( p.hProcess, 10000 );    //  最大10秒間待つ
01405         if( nResult != 0 ){
01406 			::MYMESSAGEBOX(
01407                 hWndParent,
01408                 MB_OK | MB_ICONSTOP,
01409                 GSTR_APPNAME,
01410                 "\'%s\'\nプロセスの起動に失敗しました。",
01411                 szEXE
01412             );
01413             CloseHandle( p.hThread );
01414             CloseHandle( p.hProcess );
01415             return false;
01416         }
01417     }else{
01418         // タブまとめ時は起動したプロセスが立ち上がるまでしばらくタイトルバーをアクティブに保つ // 2007.02.03 ryoji
01419         if( pShareData->m_Common.m_bDispTabWnd && !pShareData->m_Common.m_bDispTabWndMultiWin ){
01420             WaitForInputIdle( p.hProcess, 3000 );
01421         }
01422     }
01423
01424     CloseHandle( p.hThread );
01425     CloseHandle( p.hProcess );
01426
01427     return true;
01428 }
01429
01430
01435 bool CEditApp::OpenNewEditor2( HINSTANCE hInstance, HWND hWndParent, const FileInfo* pfi, BOOL bReadOnly, bool sync )
01436 {
01437     char            pszCmdLine[1024];
01438     DLLSHAREDATA*   pShareData;
01439     int             nPos = 0;       //  引数作成用ポインタ
01440
01441     /* 共有データ構造体のアドレスを返す */
01442     pShareData = CShareData::getInstance()->GetShareData();
01443
01444     /* 編集ウィンドウの上限チェック */
01445     if( pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){ //最大値修正    //@@@ 2003.05.31 MIK
01446         char szMsg[512];
01447         wsprintf( szMsg, "編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。", MAX_EDITWINDOWS );
01448         ::MessageBox( NULL, szMsg, GSTR_APPNAME, MB_OK );
01449         return false;
01450     }
01451
01452     if( pfi != NULL ){
01453         if( pfi->m_szPath != NULL ){
01454             if( strlen( pfi->m_szPath ) > 0 ){
01455                 nPos += wsprintf( pszCmdLine + nPos, " \"%s\"", pfi->m_szPath );
01456             }
01457         }
01458         if( pfi->m_nX >= 0 ){
01459             nPos += wsprintf( pszCmdLine + nPos, " -X=%d", pfi->m_nX +1 );
01460         }
01461         if( pfi->m_nY >= 0 ){
01462             nPos += wsprintf( pszCmdLine + nPos, " -Y=%d", pfi->m_nY +1 );
01463         }
01464         if( pfi->m_nViewLeftCol >= 0 ){
01465             nPos += wsprintf( pszCmdLine + nPos, " -VX=%d", pfi->m_nViewLeftCol +1 );
01466         }
01467         if( pfi->m_nViewTopLine >= 0 ){
01468             nPos += wsprintf( pszCmdLine + nPos, " -VY=%d", pfi->m_nViewTopLine +1 );
01469         }
01470         if( pfi->m_nCharCode >= 0 && pfi->m_nCharCode != CODE_AUTODETECT ){
01471             nPos += wsprintf( pszCmdLine + nPos, " -CODE=%d", pfi->m_nCharCode );
01472         }
01473         if( bReadOnly ){
01474             nPos += wsprintf( pszCmdLine + nPos, " -R" );
01475         }
01476 //: do error check nPos
01477     }
01478     //  ::MessageBox( NULL, pszCmdLine, "OpenNewEditor", MB_OK );
01479     return OpenNewEditor( hInstance, hWndParent, pszCmdLine, CODE_AUTODETECT, bReadOnly, sync );
01480
01481 }
01482 //  To Here Oct. 24, 2000 genta
01483
01484
01485
01486
01487
01495 void CEditApp::TerminateApplication( HWND hWndFrom )
01496 {
01497     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();   /* 共有データ構造体のアドレスを返す */
01498
01499     /* 現在の編集ウィンドウの数を調べる */
01500     if( pShareData->m_Common.m_bExitConfirm ){  //終了時の確認
01501         if( 0 < CShareData::getInstance()->GetEditorWindowsNum( 0 ) ){
01502             if( IDYES != ::MYMESSAGEBOX(
01503                 hWndFrom,
01504                 MB_YESNO | MB_APPLMODAL | MB_ICONQUESTION,
01505                 GSTR_APPNAME,
01506                 "現在開いている編集用のウィンドウをすべて閉じて終了しますか?"
01507             ) ){
01508                 return;
01509             }
01510         }
01511     }
01512     /* 「すべてのウィンドウを閉じる」要求 */    //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
01513     BOOL bCheckConfirm = (pShareData->m_Common.m_bExitConfirm)? FALSE: TRUE;    // 2006.12.25 ryoji 終了確認済みならそれ以上は確認しない
01514     if( CloseAllEditor( bCheckConfirm, hWndFrom, TRUE, 0 ) ){   // 2006.12.25, 2007.02.13 ryoji 引数追加
01515         ::PostMessage( pShareData->m_hwndTray, WM_CLOSE, 0, 0 );
01516     }
01517     return;
01518 }
01519
01520
01521
01522
01536 BOOL CEditApp::CloseAllEditor( BOOL bCheckConfirm, HWND hWndFrom, BOOL bExit, int nGroup )
01537 {
01538     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();   /* 共有データ構造体のアドレスを返す */
01539
01540     /* 現在の編集ウィンドウの数を調べる */
01541     if( bCheckConfirm && pShareData->m_Common.m_bCloseAllConfirm ){ //[すべて閉じる]で他に編集用のウィンドウがあれば確認する
01542         int nCount = CShareData::getInstance()->IsEditWnd( hWndFrom )? 1: 0;    // 呼び出し元が編集ウィンドウなら編集ウィンドウが複数の場合に確認する
01543         if( nCount < CShareData::getInstance()->GetEditorWindowsNum( nGroup ) ){
01544             if( IDYES != ::MYMESSAGEBOX(
01545                 hWndFrom,
01546                 MB_YESNO | MB_APPLMODAL | MB_ICONQUESTION,
01547                 GSTR_APPNAME,
01548                 "同時に複数の編集用ウィンドウを閉じようとしています。これらを閉じますか?"
01549             ) ){
01550                 return FALSE;
01551             }
01552         }
01553     }
01554
01555     /* 全編集ウィンドウへ終了要求を出す */
01556     if( !CShareData::getInstance()->RequestCloseAllEditor( bExit, nGroup ) ){   // 2007.02.13 ryoji bExitを引き継ぐ
01557         return FALSE;
01558     }else{
01559         return TRUE;
01560     }
01561 }
01562
01563
01564
01565
01567 int CEditApp::CreatePopUpMenu_L( void )
01568 {
01569     int         i;
01570     int         j;
01571     int         nId;
01572     HMENU       hMenuTop;
01573     HMENU       hMenu;
01574     HMENU       hMenuPopUp;
01575     char        szMemu[100 + MAX_PATH * 2]; //  Jan. 19, 2001 genta
01576     char        szMenu2[MAX_PATH * 2];  //  Jan. 19, 2001 genta
01577     POINT       po;
01578     RECT        rc;
01579 //  HWND        hwndDummy;
01580     int         nMenuNum;
01581     FileInfo*   pfi;
01582
01583     //本当はセマフォにしないとだめ
01584     if( m_bUseTrayMenu ) return -1;
01585     m_bUseTrayMenu = true;
01586
01587     m_CMenuDrawer.ResetContents();
01588     CShareData::getInstance()->TransformFileName_MakeCache();
01589
01590     hMenuTop = ::LoadMenu( m_hInstance, MAKEINTRESOURCE( IDR_TRAYMENU_L ) );
01591     hMenu = ::GetSubMenu( hMenuTop, 0 );
01592     nMenuNum = ::GetMenuItemCount( hMenu )/* - 1*/;
01593     for( i = nMenuNum - 1; i >= 0; i-- ){
01594         ::DeleteMenu( hMenu, i, MF_BYPOSITION );
01595     }
01596
01597     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILENEW, "新規作成(&N)", FALSE );
01598     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILEOPEN, "開く(&O)...", FALSE );
01599
01600     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GREP_DIALOG, "Grep(&G)...", FALSE );
01601     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01602
01603     /* MRUリストのファイルのリストをメニューにする */
01604 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01605     CMRU cMRU;
01606     hMenuPopUp = cMRU.CreateMenu( &m_CMenuDrawer ); //  ファイルメニュー
01607     if ( cMRU.Length() > 0 ){
01608         //  アクティブ
01609         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "最近使ったファイル(&F)" );
01610     }
01611     else {
01612         //  非アクティブ
01613         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp , "最近使ったファイル(&F)" );
01614     }
01615
01616     /* 最近使ったフォルダのメニューを作成 */
01617 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
01618     CMRUFolder cMRUFolder;
01619     hMenuPopUp = cMRUFolder.CreateMenu( &m_CMenuDrawer );
01620     if ( cMRUFolder.Length() > 0 ){
01621         //  アクティブ
01622         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, "最近使ったフォルダ(&D)" );
01623     }
01624     else {
01625         //  非アクティブ
01626         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp, "最近使ったフォルダ(&D)" );
01627     }
01628
01629     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01630     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVEALL, "すべて上書き保存(&Z)", FALSE );   // Jan. 24, 2005 genta
01631
01632     /* 現在開いている編集窓のリストをメニューにする */
01633     j = 0;
01634     for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01635         if( CShareData::IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) ){
01636             ++j;
01637         }
01638     }
01639
01640     if( j > 0 ){
01641         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01642         j = 0;
01643         for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01644             if( CShareData::IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) ){
01645                 /* トレイからエディタへの編集ファイル名要求通知 */
01646                 ::SendMessage( m_pShareData->m_pEditArr[i].m_hWnd, MYWM_GETFILEINFO, 0, 0 );
01647 //              pfi = (FileInfo*)m_pShareData->m_szWork;
01648                 pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01649                     if( pfi->m_bIsGrep ){
01650                         /* データを指定バイト数以内に切り詰める */
01651                         CMemory     cmemDes;
01652 //                      int         nDesLen;
01653 //                      const char* pszDes;
01654                         LimitStringLengthB( pfi->m_szGrepKey, lstrlen( pfi->m_szGrepKey ), 64, cmemDes );
01655                         //  Jan. 19, 2002 genta
01656                         //  メニュー文字列の&を考慮
01657                         dupamp( cmemDes.GetPtr(), szMenu2 );
01658 //  From Here Oct. 4, 2000 JEPRO commented out & modified
01659 //      j >= 10 + 26 の時の考慮を省いた(に近い)が開くファイル数が36個を越えることはまずないので事実上OKでしょう
01660                         //  Jan. 19, 2002 genta
01661                         //  &の重複処理を追加したため継続判定を若干変更
01662                         wsprintf( szMemu, "&%c 【Grep】\"%s%s\"", ((1 + i) <= 9)?('1' + i):('A' + i - 9),
01663                             szMenu2, ( (int)lstrlen( pfi->m_szGrepKey ) > cmemDes.GetLength() ) ? "…":""
01664                         );
01665                     }else{
01666                         char szFileName[_MAX_PATH];
01667                         // 2003/01/27 Moca ファイル名の簡易表示
01668                         CShareData::getInstance()->GetTransformFileNameFast( pfi->m_szPath, szFileName, MAX_PATH );
01669                         //  Jan. 19, 2002 genta
01670                         //  メニュー文字列の&を考慮
01671                         dupamp( szFileName, szMenu2 );
01672                         wsprintf( szMemu, "&%c %s %s", ((1 + i) <= 9)?('1' + i):('A' + i - 9),
01673                             (0 < lstrlen( szMenu2 ))? szMenu2:"（無題）",
01674                             pfi->m_bIsModified ? "*":" "
01675                         );
01676 //      To Here Oct. 4, 2000
01677                         // gm_pszCodeNameArr_3 からコピーするように変更
01678                         if( 0 < pfi->m_nCharCode && pfi->m_nCharCode < CODE_CODEMAX ){
01679                             strcat( szMemu, gm_pszCodeNameArr_3[pfi->m_nCharCode] );
01680                         }
01681                     }
01682
01683 //              ::InsertMenu( hMenu, IDM_EXITALL, MF_BYCOMMAND | MF_STRING, IDM_SELWINDOW + i, szMemu );
01684                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_SELWINDOW + i, szMemu, FALSE );
01685                 ++j;
01686             }
01687         }
01688     }
01689     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01690     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALLEDITORS, "編集の全終了(&Q)", FALSE );    //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)    //Feb. 18, 2001 JEPRO アクセスキー変更(L→Q)    // 2006.10.21 ryoji 表示文字列変更  // 2007.02.13 ryoji →F_EXITALLEDITORS
01691     if( j == 0 ){
01692         ::EnableMenuItem( hMenu, F_EXITALLEDITORS, MF_BYCOMMAND | MF_GRAYED );  //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)    // 2007.02.13 ryoji →F_EXITALLEDITORS
01693         ::EnableMenuItem( hMenu, F_FILESAVEALL, MF_BYCOMMAND | MF_GRAYED ); // Jan. 24, 2005 genta
01694     }
01695
01696     //  Jun. 9, 2001 genta ソフトウェア名改称
01697     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL, "サクラエディタの全終了(&X)", FALSE ); //Dec. 26, 2000 JEPRO F_に変更
01698
01699     po.x = 0;
01700     po.y = 0;
01701     ::GetCursorPos( &po );
01702     po.y -= 4;
01703
01704     rc.left = 0;
01705     rc.right = 0;
01706     rc.top = 0;
01707     rc.bottom = 0;
01708
01709     ::SetForegroundWindow( m_hWnd );
01710     nId = ::TrackPopupMenu(
01711         hMenu,
01712         TPM_BOTTOMALIGN
01713         | TPM_RIGHTALIGN
01714         | TPM_RETURNCMD
01715         | TPM_LEFTBUTTON
01716         /*| TPM_RIGHTBUTTON*/
01717         ,
01718         po.x,
01719         po.y,
01720         0,
01721         m_hWnd,
01722         &rc
01723     );
01724     ::PostMessage( m_hWnd, WM_USER + 1, 0, 0 );
01725     ::DestroyMenu( hMenuTop );
01726 //  MYTRACE( "nId=%d\n", nId );
01727
01728     m_bUseTrayMenu = false;
01729
01730     return nId;
01731 }
01732
01733 //キーワード：トレイ右クリックメニュー順序
01734 //  Oct. 12, 2000 JEPRO ポップアップメニュー(トレイ左ボタン) を参考にして新たに追加した部分
01735
01737 int CEditApp::CreatePopUpMenu_R( void )
01738 {
01739     int     i;
01740     int     nId;
01741     HMENU   hMenuTop;
01742     HMENU   hMenu;
01743     POINT   po;
01744     RECT    rc;
01745     int     nMenuNum;
01746
01747     //本当はセマフォにしないとだめ
01748     if( m_bUseTrayMenu ) return -1;
01749     m_bUseTrayMenu = true;
01750
01751     m_CMenuDrawer.ResetContents();
01752
01753     hMenuTop = ::LoadMenu( m_hInstance, MAKEINTRESOURCE( IDR_TRAYMENU_L ) );
01754     hMenu = ::GetSubMenu( hMenuTop, 0 );
01755     nMenuNum = ::GetMenuItemCount( hMenu )/* - 1*/;
01756     for( i = nMenuNum - 1; i >= 0; i-- ){
01757         ::DeleteMenu( hMenu, i, MF_BYPOSITION );
01758     }
01759
01760 #if 0
01761     2002/04/26 YAZAKI 使えないものは表示しない
01762
01763     /* トレイ右クリックの「オプション」メニュー */
01764     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_TYPE_LIST, "タイプ別設定一覧(&L)...", FALSE );  //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01765     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_OPTION_TYPE, "タイプ別設定(&Y)...", FALSE );    //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01766     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_OPTION, "共通設定(&C)...", FALSE );             //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01767     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_FONT, "フォント設定(&F)...", FALSE );           //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01768     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01769 #endif
01770
01771     /* トレイ右クリックの「ヘルプ」メニュー */
01772     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_CONTENTS , "ヘルプ目次(&O)", FALSE );
01773     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_SEARCH , "ヘルプキーワード検索(&S)", FALSE );  //Nov. 25, 2000 JEPRO 「トピックの」→「キーワード」に変更
01774 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01775 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MENU_ALLFUNC , "コマンド一覧(&M)", FALSE ); //Jan. 12, 2001 JEPRO まずコメントアウト第一号 (T_T)
01776     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01777
01778 #if 0
01779     2002/04/26 YAZAKI 使えないものは表示しない
01780
01781     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_EXTHELP1 , "外部ヘルプ１(&E)", FALSE );         //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01782     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_EXTHTMLHELP , "外部HTMLヘルプ(&H)", FALSE );    //Jan. 12, 2001 JEPRO このメニュー項目を無効化した
01783     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01784 #endif
01785
01786 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_ABOUT, "バージョン情報(&A)", FALSE );
01787     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_ABOUT, "バージョン情報(&A)", FALSE );   //Dec. 25, 2000 JEPRO F_に変更
01788
01789     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
01790 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_EXITALL, "テキストエディタの全終了(&X)", FALSE );
01791 //  m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL, "テキストエディタの全終了(&X)", FALSE );   //Dec. 26, 2000 JEPRO F_に変更
01792     //  Jun. 18, 2001 genta ソフトウェア名改称
01793     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL, "サクラエディタの全終了(&X)", FALSE ); //De
01794
01795     po.x = 0;
01796     po.y = 0;
01797     ::GetCursorPos( &po );
01798     po.y -= 4;
01799
01800     rc.left = 0;
01801     rc.right = 0;
01802     rc.top = 0;
01803     rc.bottom = 0;
01804
01805     ::SetForegroundWindow( m_hWnd );
01806     nId = ::TrackPopupMenu(
01807         hMenu,
01808         TPM_BOTTOMALIGN
01809         | TPM_RIGHTALIGN
01810         | TPM_RETURNCMD
01811         | TPM_LEFTBUTTON
01812         /*| TPM_RIGHTBUTTON*/
01813         ,
01814         po.x,
01815         po.y,
01816         0,
01817         m_hWnd,
01818         &rc
01819     );
01820     ::PostMessage( m_hWnd, WM_USER + 1, 0, 0 );
01821     ::DestroyMenu( hMenuTop );
01822 //  MYTRACE( "nId=%d\n", nId );
01823
01824     m_bUseTrayMenu = false;
01825
01826     return nId;
01827 }
01828
01833 void CEditApp::OnDestroy()
01834 {
01835     HWND hwndExitingDlg;
01836
01837     if (m_hWnd == NULL)
01838         return; // 既に破棄されている
01839
01840     // ホットキーの破棄
01841     ::UnregisterHotKey( m_hWnd, ID_HOTKEY_TRAYMENU );
01842
01843     // 2006.07.09 ryoji 共有データ保存を CControlProcess::Terminate() から移動
01844     //
01845     // 「タスクトレイに常駐しない」設定でエディタ画面（Normal Process）を立ち上げたまま
01846     // セッション終了するような場合でも共有データ保存が行われなかったり中断されることが
01847     // 無いよう、ここでウィンドウが破棄される前に保存する
01848     //
01849
01850     /* 終了ダイアログを表示する */
01851     if( TRUE == m_pShareData->m_Common.m_bDispExitingDialog ){
01852         /* 終了中ダイアログの表示 */
01853         hwndExitingDlg = ::CreateDialog(
01854             m_hInstance,
01855             MAKEINTRESOURCE( IDD_EXITING ),
01856             m_hWnd/*::GetDesktopWindow()*/,
01857             (DLGPROC)ExitingDlgProc
01858         );
01859         ::ShowWindow( hwndExitingDlg, SW_SHOW );
01860     }
01861
01862     /* 共有データの保存 */
01863     CShareData::getInstance()->SaveShareData();
01864
01865     /* 終了ダイアログを表示する */
01866     if( TRUE == m_pShareData->m_Common.m_bDispExitingDialog ){
01867         /* 終了中ダイアログの破棄 */
01868         ::DestroyWindow( hwndExitingDlg );
01869     }
01870
01871     if( m_bCreatedTrayIcon ){   /* トレイにアイコンを作った */
01872         TrayMessage( m_hWnd, NIM_DELETE, 0, NULL, NULL );
01873     }
01874
01875     /* アクセラレータテーブルの削除 */
01876     if( m_pShareData->m_hAccel != NULL ){
01877         ::DestroyAcceleratorTable( m_pShareData->m_hAccel );
01878         m_pShareData->m_hAccel = NULL;
01879     }
01880
01881     m_hWnd = NULL;
01882 }
01883
01888 INT_PTR CALLBACK CEditApp::ExitingDlgProc(
01889     HWND    hwndDlg,    // handle to dialog box
01890     UINT    uMsg,       // message
01891     WPARAM  wParam,     // first message parameter
01892     LPARAM  lParam      // second message parameter
01893 )
01894 {
01895     switch( uMsg ){
01896     case WM_INITDIALOG:
01897         return TRUE;
01898     }
01899     return FALSE;
01900 }
01901 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditApp.h

CEditApp.h

常駐部 [詳細]

#include <windows.h>
#include "CShareData.h"
#include "CMenuDrawer.h"
#include "CDlgGrep.h"
#include "CImageListMgr.h"

CEditApp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CEditApp
常駐部の管理 [詳細]

説明

常駐部

タスクトレイアイコンの管理，タスクトレイメニューのアクション， MRU、キー割り当て、共通設定、編集ウィンドウの管理など

作者:
Norio Nakatani
日付:
1998/05/13 新規作成

2001/06/03 N.Nakatani grep単語単位で検索を実装するときのためにコマンドラインオプションの処理追加

CEditApp.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditApp.h ソースファイル

CEditApp.h

説明を見る。
00001
00011 /*
00012     Copyright (C) 1998-2001, Norio Nakatani
00013     Copyright (C) 2000, jepro
00014     Copyright (C) 2001, Stonee, aroka, genta
00015     Copyright (C) 2002, MIK, YAZAKI, aroka
00016     Copyright (C) 2003, genta
00017     Copyright (C) 2006, ryoji
00018     Copyright (C) 2007, ryoji
00019
00020     This source code is designed for sakura editor.
00021     Please contact the copyright holder to use this code for other purpose.
00022 */
00023
00024 class CEditApp;
00025
00026 #ifndef _CEDITAPP_H_
00027 #define _CEDITAPP_H_
00028
00029
00030
00031
00032
00033 #include <windows.h>
00034 #include "CShareData.h"
00035 #include "CMenuDrawer.h"
00036 #include "CDlgGrep.h" // 2002/2/10 aroka
00037 #include "CImageListMgr.h" // 2002/2/10 aroka
00038
00040
00046 class SAKURA_CORE_API CEditApp
00047 {
00048 public:
00049     /*
00050     ||  Constructors
00051     */
00052     CEditApp();
00053     ~CEditApp();
00054
00055     /*
00056     || メンバ関数
00057     */
00058     HWND Create( HINSTANCE );   /* 作成 */
00059     bool CreateTrayIcon( HWND );    // 20010412 by aroka
00060     LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* メッセージ処理 */
00061     void MessageLoop( void );   /* メッセージループ */
00062     void OnDestroy( void );     /* WM_DESTROY 処理 */   // 2006.07.09 ryoji
00063     int CreatePopUpMenu_L( void );  /* ポップアップメニュー(トレイ左ボタン) */
00064     int CreatePopUpMenu_R( void );  /* ポップアップメニュー(トレイ右ボタン) */
00065
00066     static bool OpenNewEditor( HINSTANCE, HWND, const char*, int, BOOL, bool sync = false, const char* szCurDir = NULL );       /* 新規編集ウィンドウの追加 ver 0 */
00067     static bool OpenNewEditor2( HINSTANCE, HWND , const FileInfo*, BOOL, bool sync = false );   /* 新規編集ウィンドウの追加 ver 1 */
00068
00069     static BOOL CloseAllEditor( BOOL bCheckConfirm, HWND hWndFrom, BOOL bExit, int nGroup );    /* すべてのウィンドウを閉じる */    //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更 // 2006.12.25, 2007.02.13 ryoji 引数追加
00070     static void TerminateApplication( HWND hWndFrom );  /* サクラエディタの全終了 */    // 2006.12.25 ryoji 引数追加
00071
00072     /*
00073     || メンバ変数
00074     */
00075
00076 private:
00077     CMenuDrawer     m_CMenuDrawer;
00078     bool            m_bUseTrayMenu; //トレイメニュー表示中
00079     HINSTANCE       m_hInstance;
00080     HWND            m_hWnd;
00081     char*           m_pszAppName;
00082     BOOL            m_bCreatedTrayIcon;
00084     DLLSHAREDATA*   m_pShareData;
00085     CDlgGrep        m_cDlgGrep; // Jul. 2, 2001 genta
00086
00087     CImageListMgr   m_hIcons;
00088
00089     void    DoGrep();   //Stonee, 2001/03/21
00090 #if 0
00091     //  Apr. 6, 2001 genta コマンドラインオプションの解析
00092     static int CheckCommandLine( char *str, char** arg );
00093 #endif
00094     //  Apr. 24, 2001 genta
00096     UINT    m_uCreateTaskBarMsg;
00097
00098     /*
00099     || 実装ヘルパ系
00100     */
00101 protected:
00102     BOOL TrayMessage(HWND , DWORD , UINT , HICON , const char* );
00103     void OnCommand( WORD , WORD  , HWND );
00104     void OnNewEditor( void );
00105
00106     static INT_PTR CALLBACK ExitingDlgProc(     // 2006.07.02 ryoji CControlProcess から移動
00107         HWND    hwndDlg,    // handle to dialog box
00108         UINT    uMsg,       // message
00109         WPARAM  wParam,     // first message parameter
00110         LPARAM  lParam      // second message parameter
00111     );
00112 };
00113
00114
00116 #endif /* _CEDITAPP_H_ */
00117
00118
00119 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc.cpp

CEditDoc.cpp

文書関連情報の管理 [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <io.h>
#include <Cderr.h>
#include "CEditDoc.h"
#include "debug.h"
#include "funccode.h"
#include "CRunningTimer.h"
#include "charcode.h"
#include "mymessage.h"
#include "CWaitCursor.h"
#include <DLGS.H>
#include "CShareData.h"
#include "CEditWnd.h"
#include "sakura_rc.h"
#include "etc_uty.h"
#include "global.h"
#include "CFuncInfoArr.h"
#include "CSMacroMgr.h"
#include "CMarkMgr.h"
#include "CDocLine.h"
#include "CPrintPreview.h"
#include "CDlgFileUpdateQuery.h"
#include <assert.h>
#include "my_icmp.h"
#include "my_sp.h"
#include "CLayout.h"
#include "CMemoryIterator.h"

CEditDoc.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | oneRule

マクロ定義

#define | IDT_ROLLMOUSE 1
2002/11/2 frozen
#define | MAX_ASM_TOKEN 2

説明

文書関連情報の管理

作者:
Norio Nakatani
日付:
1998/03/13 作成

CEditDoc.cpp で定義されています。

マクロ定義

#define IDT_ROLLMOUSE 1

2002/11/2 frozen

CEditDoc.cpp の 54 行で定義されています。

#define MAX_ASM_TOKEN 2

参照元 CEditDoc::MakeTopicList_asm().

Sakura-Editorに対してSat Oct 27 02:16:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc.cpp ソースファイル

CEditDoc.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, genta
00010     Copyright (C) 2001, genta, YAZAKI, jepro, novice, asa-o, MIK,
00011     Copyright (C) 2002, YAZAKI, hor, genta, aroka, frozen, Moca, MIK
00012     Copyright (C) 2003, MIK, genta, ryoji, Moca, zenryaku, naoh, wmlhq
00013     Copyright (C) 2004, genta, novice, Moca, MIK, zenryaku
00014     Copyright (C) 2005, genta, naoh, FILE, Moca, ryoji, D.S.Koba, aroka
00015     Copyright (C) 2006, genta, ryoji, aroka
00016     Copyright (C) 2007, ryoji, maru
00017
00018     This source code is designed for sakura editor.
00019     Please contact the copyright holders to use this code for other purpose.
00020 */
00021
00022 #include "stdafx.h"
00023 #include <stdlib.h>
00024 #include <time.h>
00025 #include <string.h> // Apr. 03, 2003 genta
00026 #include <io.h>
00027 #include <Cderr.h> // Nov. 3, 2005 genta
00028 #include "CEditDoc.h"
00029 #include "debug.h"
00030 #include "funccode.h"
00031 #include "CRunningTimer.h"
00032 #include "charcode.h"
00033 #include "mymessage.h"
00034 #include "CWaitCursor.h"
00035 #include <DLGS.H>
00036 #include "CShareData.h"
00037 #include "CEditWnd.h"
00038 #include "sakura_rc.h"
00039 #include "etc_uty.h"
00040 #include "global.h"
00041 #include "CFuncInfoArr.h"
00042 #include "CSMacroMgr.h"
00043 #include "CMarkMgr.h"
00044 #include "CDocLine.h"
00045 #include "CPrintPreview.h"
00046 #include "CDlgFileUpdateQuery.h"
00047 #include <assert.h>
00048 #include "my_icmp.h" // 2002/11/30 Moca 追加
00049 #include "my_sp.h" // 2005/11/22 aroka 追加
00050 #include "CLayout.h"    // 2007.08.22 ryoji 追加
00051 #include "CMemoryIterator.h"    // 2007.08.22 ryoji 追加
00052
00053
00054 #define IDT_ROLLMOUSE   1
00055
00061 CEditDoc::CEditDoc() :
00062     m_cNewLineCode( EOL_CRLF ),     //  New Line Type
00063     m_cSaveLineCode( EOL_NONE ),        //  保存時のLine Type
00064     m_bGrepRunning( FALSE ),        /* Grep処理中 */
00065 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00066 //  m_bPrintPreviewMode( FALSE ),   /* 印刷プレビューモードか */
00067     m_nCommandExecNum( 0 ),         /* コマンド実行回数 */
00068 // 2004/06/21 novice タグジャンプ機能追加
00069 #if 0
00070     m_hwndReferer( NULL ),          /* 参照元ウィンドウ */
00071     m_nRefererX( 0 ),               /* 参照元 行頭からのバイト位置桁 */
00072     m_nRefererLine( 0 ),            /* 参照元行 折り返し無しの物理行位置 */
00073 #endif
00074     m_bReadOnly( FALSE ),           /* 読み取り専用モード */
00075     m_bDebugMode( FALSE ),          /* デバッグモニタモード */
00076     m_bGrepMode( FALSE ),           /* Grepモードか */
00077     m_nCharCode( 0 ),               /* 文字コード種別 */
00078     m_bBomExist( FALSE ),           //  Jul. 26, 2003 ryoji BOM
00079     m_nActivePaneIndex( 0 ),
00080 //@@@ 2002.01.14 YAZAKI 不使用のため
00081 //  m_pcOpeBlk( NULL ),             /* 操作ブロック */
00082     m_bDoing_UndoRedo( FALSE ),     /* アンドゥ・リドゥの実行中か */
00083     m_nFileShareModeOld( 0 ),       /* ファイルの排他制御モード */
00084     m_hLockedFile( NULL ),          /* ロックしているファイルのハンドル */
00085     m_pszAppName( "EditorClient" ),
00086     m_hInstance( NULL ),
00087     m_hWnd( NULL ),
00088     m_eWatchUpdate( CEditDoc::WU_QUERY ),
00089     m_nSettingTypeLocked( false ),  //  設定値変更可能フラグ
00090     m_nSettingType( 0 ),    // Sep. 11, 2002 genta
00091     m_bInsMode( true ), // Oct. 2, 2005 genta
00092     m_bIsModified( false )  /* 変更フラグ */ // Jan. 22, 2002 genta 型変更
00093 {
00094     MY_RUNNINGTIMER( cRunningTimer, "CEditDoc::CEditDoc" );
00095 //  m_pcDlgTest = new CDlgTest;
00096
00097     m_szFilePath[0] = '\0';         /* 現在編集中のファイルのパス */
00098     strcpy( m_szGrepKey, "" );
00099     /* 共有データ構造体のアドレスを返す */
00100
00101     m_pShareData = CShareData::getInstance()->GetShareData();
00102     //  Sep. 11, 2002 genta 削除
00103     //  SetDocumentTypeはコンストラクタ中では使わない．
00104     //int doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
00105     //SetDocumentType( doctype, true );
00106
00107
00108     /* レイアウト管理情報の初期化 */
00109     m_cLayoutMgr.Create( this, &m_cDocLineMgr );
00110     /* レイアウト情報の変更 */
00111     Types& ref = GetDocumentAttribute();
00112     m_cLayoutMgr.SetLayoutInfo(
00113         TRUE,
00114         NULL,/*hwndProgress*/
00115         ref
00116     );
00117 //  MYTRACE( "CEditDoc::CEditDoc()おわり\n" );
00118
00119     //  Aug, 21, 2000 genta
00120     //  自動保存の設定
00121     ReloadAutoSaveParam();
00122
00123     //  Sep, 29, 2001 genta
00124     //  マクロ
00125     m_pcSMacroMgr = new CSMacroMgr;
00126     //strcpy(m_pszCaption, "sakura");   //@@@   YAZAKI
00127
00128     //  m_FileTimeの初期化
00129     m_FileTime.dwLowDateTime = 0;
00130     m_FileTime.dwHighDateTime = 0;
00131
00132     //  Oct. 2, 2005 genta 挿入モード
00133     SetInsMode( m_pShareData->m_Common.m_bIsINSMode != FALSE );
00134
00135     return;
00136 }
00137
00138
00139 CEditDoc::~CEditDoc()
00140 {
00141 //  delete (CDialog*)m_pcDlgTest;
00142 //  m_pcDlgTest = NULL;
00143
00144     if( m_hWnd != NULL ){
00145         DestroyWindow( m_hWnd );
00146     }
00147     /* ファイルの排他ロック解除 */
00148     delete m_pcSMacroMgr;
00149     DoFileUnLock();
00150     return;
00151 }
00152
00153
00154
00155
00156
00158 //
00159 //  CEditDoc::Create
00160 //  BOOL Create(HINSTANCE hInstance, HWND hwndParent)
00161 //
00162 //  説明
00163 //    ウィンドウの作成等
00164 //
00165 //  @date Sep. 29, 2001 genta マクロクラスを渡すように
00166 //  @date 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00168 BOOL CEditDoc::Create(
00169     HINSTANCE hInstance,
00170     HWND hwndParent,
00171     CImageListMgr* pcIcons
00172  )
00173 {
00174     MY_RUNNINGTIMER( cRunningTimer, "CEditDoc::Create" );
00175
00176     HWND        hWndArr[4];
00177     CEditWnd*   pCEditWnd;
00178     m_hInstance = hInstance;
00179     m_hwndParent = hwndParent;
00180
00181     /* 分割フレーム作成 */
00182     pCEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
00183     m_cSplitterWnd.Create( m_hInstance, m_hwndParent, pCEditWnd );
00184
00185     /* ビュー */
00186     m_cEditViewArr[0].Create( m_hInstance, m_cSplitterWnd.m_hWnd, this, 0, /*FALSE,*/ TRUE  );
00187     m_cEditViewArr[1].Create( m_hInstance, m_cSplitterWnd.m_hWnd, this, 1, /*TRUE ,*/ FALSE );
00188     m_cEditViewArr[2].Create( m_hInstance, m_cSplitterWnd.m_hWnd, this, 2, /*TRUE ,*/ FALSE );
00189     m_cEditViewArr[3].Create( m_hInstance, m_cSplitterWnd.m_hWnd, this, 3, /*TRUE ,*/ FALSE );
00190
00191 #if 0
00192     YAZAKI 不要な処理と思われる。
00193     m_cEditViewArr[0].OnKillFocus();
00194     m_cEditViewArr[1].OnKillFocus();
00195     m_cEditViewArr[2].OnKillFocus();
00196     m_cEditViewArr[3].OnKillFocus();
00197 #endif
00198
00199     m_cEditViewArr[0].OnSetFocus();
00200
00201     /* 子ウィンドウの設定 */
00202     hWndArr[0] = m_cEditViewArr[0].m_hWnd;
00203     hWndArr[1] = m_cEditViewArr[1].m_hWnd;
00204     hWndArr[2] = m_cEditViewArr[2].m_hWnd;
00205     hWndArr[3] = m_cEditViewArr[3].m_hWnd;
00206     m_cSplitterWnd.SetChildWndArr( hWndArr );
00207     m_hWnd = m_cSplitterWnd.m_hWnd;
00208
00209     MY_TRACETIME( cRunningTimer, "View created" );
00210
00211     //  Oct. 2, 2001 genta
00212     m_cFuncLookup.Init( m_hInstance, m_pcSMacroMgr, &m_pShareData->m_Common );
00213
00214     /* 設定プロパティシートの初期化１ */
00215     m_cPropCommon.Create( m_hInstance, m_hWnd, pcIcons, m_pcSMacroMgr, &(pCEditWnd->m_CMenuDrawer) );
00216     m_cPropTypes.Create( m_hInstance, m_hWnd );
00217
00218     MY_TRACETIME( cRunningTimer, "End: PropSheet" );
00219
00220     /* 入力補完ウィンドウ作成 */
00221     m_cHokanMgr.DoModeless( m_hInstance, m_cEditViewArr[0].m_hWnd, (LPARAM)&(m_cEditViewArr[0]) );
00222
00223     return TRUE;
00224 }
00225
00226
00227
00228
00229
00230 /*
00231 || メッセージディスパッチャ
00232 */
00233 LRESULT CEditDoc::DispatchEvent(
00234     HWND    hwnd,   // handle of window
00235     UINT    uMsg,   // message identifier
00236     WPARAM  wParam, // first message parameter
00237     LPARAM  lParam  // second message parameter
00238 )
00239 {
00240     switch( uMsg ){
00241     case WM_ENTERMENULOOP:
00242     case WM_EXITMENULOOP:
00243         m_cEditViewArr[0].DispatchEvent( hwnd, uMsg, wParam, lParam );
00244         m_cEditViewArr[1].DispatchEvent( hwnd, uMsg, wParam, lParam );
00245         m_cEditViewArr[2].DispatchEvent( hwnd, uMsg, wParam, lParam );
00246         m_cEditViewArr[3].DispatchEvent( hwnd, uMsg, wParam, lParam );
00247         return 0L;
00248     default:
00249         return m_cEditViewArr[m_nActivePaneIndex].DispatchEvent( hwnd, uMsg, wParam, lParam );
00250     }
00251 }
00252
00253
00254
00255 void CEditDoc::OnMove( int x, int y, int nWidth, int nHeight )
00256 {
00257 //  m_cSplitterWnd.OnMove( x, y, nWidth, nHeight );
00258     ::MoveWindow( m_cSplitterWnd.m_hWnd, x, y, nWidth, nHeight, TRUE );
00259
00260     return;
00261 }
00262
00263
00264
00265
00267 BOOL CEditDoc::IsTextSelected( void )
00268 {
00269     return m_cEditViewArr[m_nActivePaneIndex].IsTextSelected();
00270 }
00271
00272
00273
00274
00275 BOOL CEditDoc::SelectFont( LOGFONT* plf )
00276 {
00277     // 2004.02.16 Moca CHOOSEFONTをメンバから外す
00278     CHOOSEFONT cf;
00279     /* CHOOSEFONTの初期化 */
00280     ::ZeroMemory( &cf, sizeof( CHOOSEFONT ) );
00281     cf.lStructSize = sizeof( cf );
00282     cf.hwndOwner = m_hWnd;
00283     cf.hDC = NULL;
00284 //  cf.lpLogFont = &(m_pShareData->m_Common.m_lf);
00285     cf.Flags = CF_FIXEDPITCHONLY | CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
00286 //#ifdef _DEBUG
00287 //  cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
00288 //#endif
00289     cf.lpLogFont = plf;
00290     if( FALSE == ChooseFont( &cf ) ){
00291 #ifdef _DEBUG
00292         DWORD nErr;
00293         nErr = CommDlgExtendedError();
00294         switch( nErr ){
00295         case CDERR_FINDRESFAILURE:  MYTRACE( "CDERR_FINDRESFAILURE \n" );   break;
00296         case CDERR_INITIALIZATION:  MYTRACE( "CDERR_INITIALIZATION \n" );   break;
00297         case CDERR_LOCKRESFAILURE:  MYTRACE( "CDERR_LOCKRESFAILURE \n" );   break;
00298         case CDERR_LOADRESFAILURE:  MYTRACE( "CDERR_LOADRESFAILURE \n" );   break;
00299         case CDERR_LOADSTRFAILURE:  MYTRACE( "CDERR_LOADSTRFAILURE \n" );   break;
00300         case CDERR_MEMALLOCFAILURE: MYTRACE( "CDERR_MEMALLOCFAILURE\n" );   break;
00301         case CDERR_MEMLOCKFAILURE:  MYTRACE( "CDERR_MEMLOCKFAILURE \n" );   break;
00302         case CDERR_NOHINSTANCE:     MYTRACE( "CDERR_NOHINSTANCE \n" );      break;
00303         case CDERR_NOHOOK:          MYTRACE( "CDERR_NOHOOK \n" );           break;
00304         case CDERR_NOTEMPLATE:      MYTRACE( "CDERR_NOTEMPLATE \n" );       break;
00305         case CDERR_STRUCTSIZE:      MYTRACE( "CDERR_STRUCTSIZE \n" );       break;
00306         case CFERR_MAXLESSTHANMIN:  MYTRACE( "CFERR_MAXLESSTHANMIN \n" );   break;
00307         case CFERR_NOFONTS:         MYTRACE( "CFERR_NOFONTS \n" );          break;
00308         }
00309 #endif
00310         return FALSE;
00311     }else{
00312 //      MYTRACE( "LOGFONT.lfPitchAndFamily = " );
00313 //      if( plf->lfPitchAndFamily & DEFAULT_PITCH ){
00314 //          MYTRACE( "DEFAULT_PITCH " );
00315 //      }
00316 //      if( plf->lfPitchAndFamily & FIXED_PITCH ){
00317 //          MYTRACE( "FIXED_PITCH " );
00318 //      }
00319 //      if( plf->lfPitchAndFamily & VARIABLE_PITCH ){
00320 //          MYTRACE( "VARIABLE_PITCH " );
00321 //      }
00322 //      if( plf->lfPitchAndFamily & FF_DECORATIVE  ){
00323 //          MYTRACE( "FF_DECORATIVE " );
00324 //      }
00325 //      if( plf->lfPitchAndFamily & FF_DONTCARE ){
00326 //          MYTRACE( "FF_DONTCARE " );
00327 //      }
00328 //      if( plf->lfPitchAndFamily & FF_MODERN ){
00329 //          MYTRACE( "FF_MODERN " );
00330 //      }
00331 //      if( plf->lfPitchAndFamily & FF_ROMAN ){
00332 //          MYTRACE( "FF_ROMAN " );
00333 //      }
00334 //      if( plf->lfPitchAndFamily & FF_SCRIPT ){
00335 //          MYTRACE( "FF_SCRIPT " );
00336 //      }
00337 //      if( plf->lfPitchAndFamily & FF_SWISS ){
00338 //          MYTRACE( "FF_SWISS " );
00339 //      }
00340 //      MYTRACE( "\n" );
00341
00342 //      MYTRACE( "/* LOGFONTの初期化 */\n" );
00343 //      MYTRACE( "memset( &m_pShareData->m_Common.m_lf, 0, sizeof(LOGFONT) );\n" );
00344 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfHeight          = %d;\n", m_pShareData->m_Common.m_lf.lfHeight          );
00345 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfWidth           = %d;\n", m_pShareData->m_Common.m_lf.lfWidth           );
00346 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfEscapement      = %d;\n", m_pShareData->m_Common.m_lf.lfEscapement      );
00347 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfOrientation     = %d;\n", m_pShareData->m_Common.m_lf.lfOrientation     );
00348 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfWeight          = %d;\n", m_pShareData->m_Common.m_lf.lfWeight          );
00349 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfItalic          = %d;\n", m_pShareData->m_Common.m_lf.lfItalic          );
00350 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfUnderline       = %d;\n", m_pShareData->m_Common.m_lf.lfUnderline       );
00351 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfStrikeOut       = %d;\n", m_pShareData->m_Common.m_lf.lfStrikeOut       );
00352 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfCharSet         = %d;\n", m_pShareData->m_Common.m_lf.lfCharSet         );
00353 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfOutPrecision    = %d;\n", m_pShareData->m_Common.m_lf.lfOutPrecision    );
00354 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfClipPrecision   = %d;\n", m_pShareData->m_Common.m_lf.lfClipPrecision   );
00355 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfQuality         = %d;\n", m_pShareData->m_Common.m_lf.lfQuality         );
00356 //      MYTRACE( "m_pShareData->m_Common.m_lf.lfPitchAndFamily  = %d;\n", m_pShareData->m_Common.m_lf.lfPitchAndFamily  );
00357 //      MYTRACE( "strcpy( m_pShareData->m_Common.m_lf.lfFaceName, \"%s\" );\n", m_pShareData->m_Common.m_lf.lfFaceName  );
00358
00359     }
00360
00361     return TRUE;
00362 }
00363
00364
00365
00366
00392 BOOL CEditDoc::FileRead(
00393     char*   pszPath,
00394     BOOL*   pbOpened,
00395     int     nCharCode,
00396     BOOL    bReadOnly,
00397     BOOL    bConfirmCodeChange
00398 )
00399 {
00400     int             i;
00401     HWND            hWndOwner;
00402     BOOL            bRet;
00403     FileInfo        fi;
00404 //  FileInfo*       pfi;
00405     HWND            hwndProgress;
00406     CWaitCursor     cWaitCursor( m_hWnd );
00407     BOOL            bIsExistInMRU;
00408     int             nRet;
00409     BOOL            bFileIsExist;
00410     int             doctype;
00411
00412     *pbOpened = FALSE;  // 2004.06.18 Moca 初期化ミス
00413     m_bReadOnly = bReadOnly;    /* 読み取り専用モード */
00414
00415 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00416     CMRU            cMRU;
00417
00418     /* ファイルの存在チェック */
00419     bFileIsExist = FALSE;
00420     if( -1 == _access( pszPath, 0 ) ){
00421     }else{
00422         HANDLE          hFind;
00423         WIN32_FIND_DATA w32fd;
00424         hFind = ::FindFirstFile( pszPath, &w32fd );
00425         ::FindClose( hFind );
00426 //? 2000.01.18 システム属性のファイルが開けない問題
00427 //?     if( w32fd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM ){
00428 //?     }else{
00429             bFileIsExist = TRUE;
00430 //?     }
00431         /* フォルダが指定された場合 */
00432         if( w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
00433             /* 指定フォルダで「開くダイアログ」を表示 */
00434             {
00435                 char*       pszPathNew = new char[_MAX_PATH];
00436 //              int         nCharCode;
00437 //              BOOL        bReadOnly;
00438
00439                 strcpy( pszPathNew, "" );
00440
00441                 /* 「ファイルを開く」ダイアログ */
00442                 nCharCode = CODE_AUTODETECT;    /* 文字コード自動判別 */
00443                 bReadOnly = FALSE;
00444 //              ::ShowWindow( m_hWnd, SW_SHOW );
00445                 if( !OpenFileDialog( m_hWnd, pszPath, pszPathNew, &nCharCode, &bReadOnly ) ){
00446                     delete [] pszPathNew;
00447                     return FALSE;
00448                 }
00449                 strcpy( pszPath, pszPathNew );
00450                 delete [] pszPathNew;
00451                 if( -1 == _access( pszPath, 0 ) ){
00452                     bFileIsExist = FALSE;
00453                 }else{
00454                     bFileIsExist = TRUE;
00455                 }
00456             }
00457         }
00458
00459     }
00460
00461     //  From Here Oct. 19, 2002 genta
00462     //  読み込みアクセス権が無い場合には漢字コード判定でファイルを
00463     //  開けないので文字コード判別エラーと出てしまう．
00464     //  より適切なメッセージを出すため，読めないファイルは
00465     //  事前に判定・排除する
00466     //
00467     //  _accessではロックされたファイルの状態を取得できないので
00468     //  実際にファイルを開いて確認する
00469     if( bFileIsExist){
00470         HANDLE hTest =  CreateFile( pszPath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
00471             NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL );
00472         if( hTest == INVALID_HANDLE_VALUE ){
00473             // 読み込みアクセス権がない
00474 			::MYMESSAGEBOX(
00475                 m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00476                 _T("\'%s\'\nというファイルを開けません。\n読み込みアクセス権がありません。"),
00477                 pszPath
00478              );
00479             return FALSE;
00480         }
00481         else {
00482             CloseHandle( hTest );
00483         }
00484     }
00485     //  To Here Oct. 19, 2002 genta
00486
00487     CEditWnd*   pCEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
00488     if( NULL != pCEditWnd ){
00489         hwndProgress = pCEditWnd->m_hwndProgressBar;
00490     }else{
00491         hwndProgress = NULL;
00492     }
00493     bRet = TRUE;
00494     if( NULL == pszPath ){
00495         MYMESSAGEBOX(
00496             m_hWnd,
00497             MB_YESNO | MB_ICONEXCLAMATION | MB_TOPMOST,
00498             "バグじゃぁあああ！！！",
00499             "CEditDoc::FileRead()\n\nNULL == pszPath\n【対処】エラーの出た状況を作者に連絡してくださいね。"
00500         );
00501         return FALSE;
00502     }
00503     /* 指定ファイルが開かれているか調べる */
00504     if( CShareData::getInstance()->IsPathOpened(pszPath, &hWndOwner, nCharCode) ){  /* 2007.03.12 maru 多重オープン処理はIsPathOpenedにまとめる */
00505         *pbOpened = TRUE;
00506         bRet = FALSE;
00507         goto end_of_func;
00508     }
00509     for( i = 0; i < 4; ++i ){
00510         if( m_cEditViewArr[i].IsTextSelected() ){   /* テキストが選択されているか */
00511             /* 現在の選択範囲を非選択状態に戻す */
00512             m_cEditViewArr[i].DisableSelectArea( TRUE );
00513         }
00514     }
00515
00516     //  Sep. 10, 2002 genta
00517     SetFilePath( pszPath ); /* 現在編集中のファイルのパス */
00518
00519
00520     /* 指定された文字コード種別に変更する */
00521     //  Oct. 25, 2000 genta
00522     //  文字コードとして異常な値が設定された場合の対応
00523     //  -1以上CODE_MAX未満のみ受け付ける
00524     //  Oct. 26, 2000 genta
00525     //  CODE_AUTODETECTはこの範囲から外れているから個別にチェック
00526     if( ( -1 <= nCharCode && nCharCode < CODE_CODEMAX ) || nCharCode == CODE_AUTODETECT )
00527         m_nCharCode = nCharCode;
00528
00529     /* MRUリストに存在するか調べる  存在するならばファイル情報を返す */
00530 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00531     if ( cMRU.GetFileInfo( pszPath, &fi ) ){
00532         bIsExistInMRU = TRUE;
00533
00534         if( -1 == m_nCharCode ){
00535             /* 前回に指定された文字コード種別に変更する */
00536             m_nCharCode = fi.m_nCharCode;
00537         }
00538
00539         if( !bConfirmCodeChange && ( CODE_AUTODETECT == m_nCharCode ) ){    // 文字コード指定の再オープンなら前回を無視
00540             m_nCharCode = fi.m_nCharCode;
00541         }
00542         if( (FALSE == bFileIsExist) && (CODE_AUTODETECT == m_nCharCode) ){
00543             /* 存在しないファイルの文字コード指定なしなら前回を継承 */
00544             m_nCharCode = fi.m_nCharCode;
00545         }
00546     } else {
00547         bIsExistInMRU = FALSE;
00548     }
00549
00550     /* 文字コード自動判別 */
00551     if( CODE_AUTODETECT == m_nCharCode ) {
00552         if( FALSE == bFileIsExist ){    /* ファイルが存在しない */
00553             m_nCharCode = 0;
00554         } else {
00555             m_nCharCode = CMemory::CheckKanjiCodeOfFile( pszPath );
00556             if( -1 == m_nCharCode ){
00557 				::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00558                     "%s\n文字コードの判別処理でエラーが発生しました。",
00559                     pszPath
00560                 );
00561                 //  Sep. 10, 2002 genta
00562                 SetFilePath( "" );
00563                 bRet = FALSE;
00564                 goto end_of_func;
00565             }
00566         }
00567     }
00568     /* 文字コードが異なるときに確認する */
00569     if( bConfirmCodeChange && bIsExistInMRU ){
00570         if (m_nCharCode != fi.m_nCharCode ) {   // MRU の文字コードと判別が異なる
00571             char*   pszCodeName = NULL;
00572             char*   pszCodeNameNew = NULL;
00573
00574             // gm_pszCodeNameArr_1 を使うように変更 Moca. 2002/05/26
00575             if( -1 < fi.m_nCharCode && fi.m_nCharCode < CODE_CODEMAX ){
00576                 pszCodeName = (char*)gm_pszCodeNameArr_1[fi.m_nCharCode];
00577             }
00578             if( -1 < m_nCharCode && m_nCharCode < CODE_CODEMAX ){
00579                 pszCodeNameNew = (char*)gm_pszCodeNameArr_1[m_nCharCode];
00580             }
00581             if( pszCodeName != NULL ){
00582                 ::MessageBeep( MB_ICONQUESTION );
00583                 nRet = MYMESSAGEBOX(
00584                     m_hWnd,
00585                     MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
00586                     "文字コード情報",
00587                     "%s\n\nこのファイルは、前回は別の文字コード %s で開かれています。\n前回と同じ文字コードを使いますか？\n\n・[はい(Y)]  ＝%s\n・[いいえ(N)]＝%s\n・[キャンセル]＝開きません",
00588                     GetFilePath(), pszCodeName, pszCodeName, pszCodeNameNew
00589                 );
00590                 if( IDYES == nRet ){
00591                     /* 前回に指定された文字コード種別に変更する */
00592                     m_nCharCode = fi.m_nCharCode;
00593                 }else
00594                 if( IDCANCEL == nRet ){
00595                     m_nCharCode = 0;
00596                     //  Sep. 10, 2002 genta
00597                     SetFilePath( "" );
00598                     bRet = FALSE;
00599                     goto end_of_func;
00600                 }
00601             }else{
00602                 MYMESSAGEBOX(
00603                     m_hWnd,
00604                     MB_YESNO | MB_ICONEXCLAMATION | MB_TOPMOST,
00605                     "バグじゃぁあああ！！！",
00606                     "【対処】エラーの出た状況を作者に連絡してください。"
00607                 );
00608                 //  Sep. 10, 2002 genta
00609                 SetFilePath( "" );
00610                 bRet = FALSE;
00611                 goto end_of_func;
00612             }
00613         }
00614     }
00615     if( -1 == m_nCharCode ){
00616         m_nCharCode = 0;
00617     }
00618
00619 //      if( (_access( pszPath, 0 )) == -1 ){
00620 //          ::MYMESSAGEBOX(
00621 //              m_hwndParent,
00622 //              MB_OK | MB_ICONSTOP | MB_TOPMOST,
00623 //              GSTR_APPNAME,
00624 //              "\'%s\'\nファイルは存在しません。 新規に作成します。",
00625 //              pszPath
00626 //          );
00627 //
00628 //          strcpy( m_szFilePath, pszPath ); /* 現在編集中のファイルのパス */
00629 //          m_nCharCode = CODE_SJIS;
00630 //
00631 //          return TRUE;
00632 //      }
00633
00634     //  Nov. 12, 2000 genta ロングファイル名の取得を前方に移動
00635     char szWork[MAX_PATH];
00636     /* ロングファイル名を取得する */
00637     if( TRUE == ::GetLongFileName( pszPath, szWork ) ){
00638         //  Sep. 10, 2002 genta
00639         SetFilePath( szWork );
00640     }
00641
00642     /* 共有データ構造体のアドレスを返す */
00643     m_pShareData = CShareData::getInstance()->GetShareData();
00644     doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
00645     SetDocumentType( doctype, true );
00646
00647     //  From Here Jul. 26, 2003 ryoji BOMの有無の初期状態を設定
00648     switch( m_nCharCode ){
00649     case CODE_UNICODE:
00650     case CODE_UNICODEBE:
00651         m_bBomExist = TRUE;
00652         break;
00653     case CODE_UTF8:
00654     default:
00655         m_bBomExist = FALSE;
00656         break;
00657     }
00658     //  To Here Jul. 26, 2003 ryoji BOMの有無の初期状態を設定
00659
00660     /* ファイルが存在しない */
00661     if( FALSE == bFileIsExist ){
00662
00663         //  Oct. 09, 2004 genta フラグに応じて警告を出す（以前の動作）ように
00664         if( m_pShareData->m_Common.GetAlertIfFileNotExist() ){
00665             ::MessageBeep( MB_ICONINFORMATION );
00666
00667             //  Feb. 15, 2003 genta Popupウィンドウを表示しないように．
00668             //  ここでステータスメッセージを使っても画面に表示されない．
00669 			::MYMESSAGEBOX(
00670                 m_hwndParent,
00671                 MB_OK | MB_ICONINFORMATION | MB_TOPMOST,
00672                 GSTR_APPNAME,
00673                 "%s\nというファイルは存在しません。\n\nファイルを保存したときに、ディスク上にこのファイルが作成されます。", //Mar. 24, 2001 jepro 若干修正
00674                 pszPath
00675             );
00676         }
00677     }else{
00678         /* ファイルを読む */
00679         if( NULL != hwndProgress ){
00680             ::ShowWindow( hwndProgress, SW_SHOW );
00681         }
00682         //  Jul. 26, 2003 ryoji BOM引数追加
00683         if( FALSE == m_cDocLineMgr.ReadFile( GetFilePath(), m_hWnd, hwndProgress,
00684             m_nCharCode, &m_FileTime, m_pShareData->m_Common.GetAutoMIMEdecode(), &m_bBomExist ) ){
00685             //  Sep. 10, 2002 genta
00686             SetFilePath( "" );
00687             bRet = FALSE;
00688             goto end_of_func;
00689         }
00690 //#ifdef _DEBUG
00691 //      m_cDocLineMgr.DUMP();
00692 //#endif
00693
00694     }
00695
00696     /* レイアウト情報の変更 */
00697     {
00698         Types& ref = GetDocumentAttribute();
00699         m_cLayoutMgr.SetLayoutInfo(
00700             TRUE,
00701             hwndProgress,
00702             ref
00703         );
00704     }
00705
00706     /* 全ビューの初期化：ファイルオープン/クローズ時等に、ビューを初期化する */
00707     InitAllView();
00708
00709     //  Nov. 20, 2000 genta
00710     //  IME状態の設定
00711     SetImeMode( GetDocumentAttribute().m_nImeState );
00712
00713     if( bIsExistInMRU && m_pShareData->m_Common.GetRestoreCurPosition() ){
00714         /*
00715           カーソル位置変換
00716           物理位置(行頭からのバイト数、折り返し無し行位置)
00717           →
00718           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00719         */
00720         int     nCaretPosX;
00721         int     nCaretPosY;
00722         m_cLayoutMgr.CaretPos_Phys2Log(
00723             fi.m_nX,
00724             fi.m_nY,
00725             &nCaretPosX,
00726             &nCaretPosY
00727         );
00728         if( nCaretPosY >= m_cLayoutMgr.GetLineCount() ){
00729             /*ファイルの最後に移動 */
00730 //          m_cEditViewArr[m_nActivePaneIndex].Command_GOFILEEND(FALSE);
00731             m_cEditViewArr[m_nActivePaneIndex].HandleCommand( F_GOFILEEND, 0, 0, 0, 0, 0 );
00732         }else{
00733             m_cEditViewArr[m_nActivePaneIndex].m_nViewTopLine = fi.m_nViewTopLine; // 2001/10/20 novice
00734             m_cEditViewArr[m_nActivePaneIndex].m_nViewLeftCol = fi.m_nViewLeftCol; // 2001/10/20 novice
00735             // From Here Mar. 28, 2003 MIK
00736             // 改行の真ん中にカーソルが来ないように。
00737             const CDocLine *pTmpDocLine = m_cDocLineMgr.GetLineInfo( fi.m_nY ); // 2008.08.22 ryoji 改行単位の行番号を渡すように修正
00738             if( pTmpDocLine ){
00739                 if( pTmpDocLine->GetLengthWithoutEOL() < fi.m_nX ) nCaretPosX--;
00740             }
00741             // To Here Mar. 28, 2003 MIK
00742             m_cEditViewArr[m_nActivePaneIndex].MoveCursor( nCaretPosX, nCaretPosY, TRUE );
00743             m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX_Prev =
00744                 m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX;
00745         }
00746     }
00747     // 2002.01.16 hor ブックマーク復元
00748     if( bIsExistInMRU ){
00749         if( m_pShareData->m_Common.GetRestoreBookmarks() ){
00750             m_cDocLineMgr.SetBookMarks(fi.m_szMarkLines);
00751         }
00752     }else{
00753         strcpy(fi.m_szMarkLines,"");
00754     }
00755     SetFileInfo( &fi );
00756
00757     //  May 12, 2000 genta
00758     //  改行コードの設定
00759     {
00760         SetNewLineCode( EOL_CRLF );
00761         CDocLine*   pFirstlineinfo = m_cDocLineMgr.GetLineInfo( 0 );
00762         if( pFirstlineinfo != NULL ){
00763             enumEOLType t = (enumEOLType)pFirstlineinfo->m_cEol;
00764             if( t != EOL_NONE && t != EOL_UNKNOWN ){
00765                 SetNewLineCode( t );
00766             }
00767         }
00768     }
00769
00770     /* MRUリストへの登録 */
00771 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00772     cMRU.Add( &fi );
00773
00774     /* カレントディレクトリの変更 */
00775     {
00776         char    szCurDir[_MAX_PATH];
00777         char    szDrive[_MAX_DRIVE], szDir[_MAX_DIR];
00778         _splitpath( GetFilePath(), szDrive, szDir, NULL, NULL );
00779         strcpy( szCurDir, szDrive);
00780         strcat( szCurDir, szDir );
00781         ::SetCurrentDirectory( szCurDir );
00782     }
00783
00784 end_of_func:;
00785     //  2004.05.13 Moca 改行コードの設定内からここに移動
00786     m_cEditViewArr[m_nActivePaneIndex].DrawCaretPosInfo();
00787
00788     if( NULL != hwndProgress ){
00789         ::ShowWindow( hwndProgress, SW_HIDE );
00790     }
00791     if( TRUE == bRet && IsFilePathAvailable() ){
00792         /* ファイルの排他ロック */
00793         DoFileLock();
00794     }
00795     //  From Here Jul. 26, 2003 ryoji エラーの時は規定のBOM設定とする
00796     if( FALSE == bRet ){
00797         switch( m_nCharCode ){
00798         case CODE_UNICODE:
00799         case CODE_UNICODEBE:
00800             m_bBomExist = TRUE;
00801             break;
00802         case CODE_UTF8:
00803         default:
00804             m_bBomExist = FALSE;
00805             break;
00806         }
00807     }
00808     //  To Here Jul. 26, 2003 ryoji
00809     return bRet;
00810 }
00811
00812
00822 BOOL CEditDoc::FileWrite( const char* pszPath, enumEOLType cEolType )
00823 {
00824     BOOL        bRet;
00825     FileInfo    fi;
00826     HWND        hwndProgress;
00827 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00828     CMRU        cMRU;
00829     //  Feb. 9, 2001 genta
00830     CEOL    cEol( cEolType );
00831
00832     //  Jun.  5, 2004 genta ここでReadOnlyチェックをすると，ファイル名を変更しても
00833     //  保存できなくなってしまうので，チェックを上書き保存処理へ移動．
00834
00835     //  Sep. 7, 2003 genta
00836     //  保存が完了するまではファイル更新の通知を抑制する
00837     WatchUpdate wuSave = m_eWatchUpdate;
00838     m_eWatchUpdate = WU_NONE;
00839
00840     bRet = TRUE;
00841
00842     CEditWnd*   pCEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
00843     if( NULL != pCEditWnd ){
00844         hwndProgress = pCEditWnd->m_hwndProgressBar;
00845     }else{
00846         hwndProgress = NULL;
00847     }
00848     if( NULL != hwndProgress ){
00849         ::ShowWindow( hwndProgress, SW_SHOW );
00850     }
00851
00852
00853     /* ファイルの排他ロック解除 */
00854     DoFileUnLock();
00855
00856     if( m_pShareData->m_Common.m_bBackUp ){ /* バックアップの作成 */
00857         //  Jun.  5, 2004 genta ファイル名を与えるように．戻り値に応じた処理を追加．
00858         switch( MakeBackUp( pszPath )){
00859         case 2: //  中断指示
00860             return FALSE;
00861         case 3: //  ファイルエラー
00862             if( IDYES != ::MYMESSAGEBOX(
00863                 m_hWnd,
00864                 MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
00865                 "ファイル保存",
00866                 "バックアップの作成に失敗しました．元ファイルへの上書きを継続して行いますか．"
00867             )){
00868                 return FALSE;
00869             }
00870         break;
00871         }
00872     }
00873
00874     CWaitCursor cWaitCursor( m_hWnd );
00875     //  Jul. 26, 2003 ryoji BOM引数追加
00876     if( FALSE == m_cDocLineMgr.WriteFile( pszPath, m_hWnd, hwndProgress,
00877         m_nCharCode, &m_FileTime, cEol , m_bBomExist ) ){
00878         bRet = FALSE;
00879         goto end_of_func;
00880     }
00881     /* 行変更状態をすべてリセット */
00882     m_cDocLineMgr.ResetAllModifyFlag();
00883
00884 #if 0
00885     /* ロングファイル名を取得する。（上書き保存のときのみ） */
00886     char szWork[MAX_PATH];
00887     if( TRUE == ::GetLongFileName( GetFilePath(), szWork ) ){
00888         //  Sep. 10, 2002 genta
00889         SetFilePath( szWork );
00890     }
00891 #endif
00892
00893     int v;
00894     for( v = 0; v < 4; ++v ){
00895         if( m_nActivePaneIndex != v ){
00896             m_cEditViewArr[v].RedrawAll();
00897         }
00898     }
00899     m_cEditViewArr[m_nActivePaneIndex].RedrawAll();
00900
00901     //  Sep. 10, 2002 genta
00902     SetFilePath( pszPath ); /* 現在編集中のファイルのパス */
00903
00904     SetModified(false,false);   //  Jan. 22, 2002 genta 関数化 更新フラグのクリア
00905
00906     //  Mar. 30, 2003 genta サブルーチンにまとめた
00907     AddToMRU();
00908
00909     /* 現在位置で無変更な状態になったことを通知 */
00910     m_cOpeBuf.SetNoModified();
00911
00912     m_bReadOnly = FALSE;    /* 読み取り専用モード */
00913
00914     /* 親ウィンドウのタイトルを更新 */
00915     SetParentCaption();
00916 end_of_func:;
00917
00918     if( IsFilePathAvailable() &&
00919         FALSE == m_bReadOnly && /* 読み取り専用モード ではない */
00920         TRUE == bRet
00921     ){
00922         /* ファイルの排他ロック */
00923         DoFileLock();
00924     }
00925     if( NULL != hwndProgress ){
00926         ::ShowWindow( hwndProgress, SW_HIDE );
00927     }
00928     //  Sep. 7, 2003 genta
00929     //  ファイル更新の通知を元に戻す
00930     m_eWatchUpdate = wuSave;
00931
00932
00933     return bRet;
00934 }
00935
00936
00937
00938 /* 「ファイルを開く」ダイアログ */
00939 //  Mar. 30, 2003 genta ファイル名未定時の初期ディレクトリをカレントフォルダに
00940 BOOL CEditDoc::OpenFileDialog(
00941     HWND        hwndParent,
00942     const char* pszOpenFolder,  //<! [in]  NULL以外を指定すると初期フォルダを指定できる
00943     char*       pszPath,        //<! [out] 開くファイルのパスを受け取るアドレス
00944     int*        pnCharCode,     //<! [out] 指定された文字コード種別を受け取るアドレス
00945     BOOL*       pbReadOnly      //<! [out] 読み取り専用か
00946 )
00947 {
00948     /* アクティブにする */
00949     ActivateFrameWindow( hwndParent );
00950
00951     const char* pszDefFolder;
00952     char*   pszCurDir = NULL;
00953     char**  ppszMRU;
00954     char**  ppszOPENFOLDER;
00955     BOOL    bRet;
00956
00957     /* MRUリストのファイルのリスト */
00958 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00959     CMRU cMRU;
00960     ppszMRU = NULL;
00961     ppszMRU = new char*[ cMRU.Length() + 1 ];
00962     cMRU.GetPathList(ppszMRU);
00963
00964
00965     /* OPENFOLDERリストのファイルのリスト */
00966 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00967     CMRUFolder cMRUFolder;
00968     ppszOPENFOLDER = NULL;
00969     ppszOPENFOLDER = new char*[ cMRUFolder.Length() + 1 ];
00970     cMRUFolder.GetPathList(ppszOPENFOLDER);
00971
00972     /* 初期フォルダの設定 */
00973     // pszFolderはフォルダ名だが、ファイル名付きパスを渡してもCDlgOpenFile側で処理してくれる
00974     if( NULL != pszOpenFolder ){
00975         pszDefFolder = pszOpenFolder;
00976     }else{
00977         if( IsFilePathAvailable() ){
00978             pszDefFolder = GetFilePath();
00979         // Mar. 28, 2003 genta カレントディレクトリをMRUより優先させる
00980         //}else if( ppszMRU[0] != NULL && ppszMRU[0][0] != '\0' ){ // Sep. 9, 2002 genta
00981         //  pszDefFolder = ppszMRU[0];
00982         }else{ // 2002.10.25 Moca
00983             int nCurDir;
00984             pszCurDir = new char[_MAX_PATH];
00985             nCurDir = ::GetCurrentDirectory( _MAX_PATH, pszCurDir );
00986             if( 0 == nCurDir || _MAX_PATH < nCurDir ){
00987                 pszDefFolder = "";
00988             }else{
00989                 pszDefFolder = pszCurDir;
00990             }
00991         }
00992     }
00993     /* ファイルオープンダイアログの初期化 */
00994     m_cDlgOpenFile.Create(
00995         m_hInstance,
00996         hwndParent,
00997         "*.*",
00998         pszDefFolder,
00999         (const char **)ppszMRU,
01000         (const char **)ppszOPENFOLDER
01001     );
01002
01003     bRet = m_cDlgOpenFile.DoModalOpenDlg( pszPath, pnCharCode, pbReadOnly );
01004
01005     delete [] ppszMRU;
01006     delete [] ppszOPENFOLDER;
01007     delete [] pszCurDir;
01008     return bRet;
01009 }
01010
01011
01012 //pszOpenFolder pszOpenFolder
01013
01014
01026 BOOL CEditDoc::SaveFileDialog( char* pszPath, int* pnCharCode, CEOL* pcEol, BOOL* pbBomExist )
01027 {
01028     char**  ppszMRU;        //  最近のファイル
01029     char**  ppszOPENFOLDER; //  最近のフォルダ
01030     const char* pszDefFolder; // デフォルトフォルダ
01031     char*   pszCurDir = NULL;
01032     char    szDefaultWildCard[_MAX_PATH + 10];  // ユーザー指定拡張子
01033     char    szExt[_MAX_EXT];
01034     BOOL    bret;
01035
01036     /* MRUリストのファイルのリスト */
01037     CMRU cMRU;
01038     ppszMRU = NULL;
01039     ppszMRU = new char*[ cMRU.Length() + 1 ];
01040     cMRU.GetPathList(ppszMRU);
01041
01042     /* OPENFOLDERリストのファイルのリスト */
01043     CMRUFolder cMRUFolder;
01044     ppszOPENFOLDER = NULL;
01045     ppszOPENFOLDER = new char*[ cMRUFolder.Length() + 1 ];
01046     cMRUFolder.GetPathList(ppszOPENFOLDER);
01047
01048     /* ファイル保存ダイアログの初期化 */
01049     /* ファイル名の無いファイルだったら、ppszMRU[0]をデフォルトファイル名として？ppszOPENFOLDERじゃない？ */
01050     // ファイル名の無いときはカレントフォルダをデフォルトにします。Mar. 30, 2003 genta
01051     // 掲示板要望 No.2699 (2003/02/05)
01052     if( !IsFilePathAvailable() ){
01053         // 2002.10.25 Moca さんのコードを流用 Mar. 23, 2003 genta
01054         int nCurDir;
01055         pszCurDir = new char[_MAX_PATH];
01056         nCurDir = ::GetCurrentDirectory( _MAX_PATH, pszCurDir );
01057         if( 0 == nCurDir || _MAX_PATH < nCurDir ){
01058             pszDefFolder = "";
01059         }else{
01060             pszDefFolder = pszCurDir;
01061         }
01062         strcpy(szDefaultWildCard, "*.txt");
01063         if( m_pShareData->m_Common.m_bNoFilterSaveNew )
01064             strcat(szDefaultWildCard, ";*.*");  // 全ファイル表示
01065     }else{
01066         pszDefFolder = GetFilePath();
01067         _splitpath(GetFilePath(), NULL, NULL, NULL, szExt);
01068         if( szExt[0] == _T('.') && szExt[1] != _T('\0') ){
01069             strcpy(szDefaultWildCard, "*");
01070             strcat(szDefaultWildCard, szExt);
01071             if( m_pShareData->m_Common.m_bNoFilterSaveFile )
01072                 strcat(szDefaultWildCard, ";*.*");  // 全ファイル表示
01073         }else{
01074             strcpy(szDefaultWildCard, "*.*");
01075         }
01076     }
01077     m_cDlgOpenFile.Create( m_hInstance, /*NULL*/m_hWnd, szDefaultWildCard, pszDefFolder,
01078         (const char **)ppszMRU, (const char **)ppszOPENFOLDER );
01079
01080     /* ダイアログを表示 */
01081     //  Jul. 26, 2003 ryoji pbBomExist追加
01082     bret = m_cDlgOpenFile.DoModalSaveDlg( pszPath, pnCharCode, pcEol, pbBomExist );
01083
01084     delete [] ppszMRU;
01085     delete [] ppszOPENFOLDER;
01086     delete [] pszCurDir;
01087     return bret;
01088 }
01089
01090
01091
01092
01093
01095 BOOL CEditDoc::OpenPropertySheet( int nPageNum/*, int nActiveItem*/ )
01096 {
01097     int     i;
01098 //  BOOL    bModify;
01099
01100     // 2002.12.11 Moca この部分で行われていたデータのコピーをCPropCommonに移動・関数化
01101     // 共通設定の一時設定領域にSharaDataをコピーする
01102     m_cPropCommon.InitData();
01103
01104     /* プロパティシートの作成 */
01105     if( m_cPropCommon.DoPropertySheet( nPageNum/*, nActiveItem*/ ) ){
01106
01107         // 2002.12.11 Moca この部分で行われていたデータのコピーをCPropCommonに移動・関数化
01108         // ShareData に 設定を適用・コピーする
01109         // 2007.06.20 ryoji グループ化に変更があったときはグループIDをリセットする
01110         BOOL bGroup = (m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin);
01111         m_cPropCommon.ApplyData();
01112         if( bGroup != (m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin ) ){
01113             CShareData::getInstance()->ResetGroupId();
01114         }
01115
01116         /* アクセラレータテーブルの再作成 */
01117         ::SendMessage( m_pShareData->m_hwndTray, MYWM_CHANGESETTING,  (WPARAM)0, (LPARAM)0 );
01118
01119         /* フォントが変わった */
01120         for( i = 0; i < 4; ++i ){
01121             m_cEditViewArr[i].m_cTipWnd.ChangeFont( &(m_pShareData->m_Common.m_lf_kh) );
01122         }
01123
01124         /* 設定変更を反映させる */
01125         CShareData::getInstance()->SendMessageToAllEditors( MYWM_CHANGESETTING, (WPARAM)0, (LPARAM)m_hwndParent, m_hwndParent );    /* 全編集ウィンドウへメッセージをポストする */
01126
01127         return TRUE;
01128     }else{
01129         return FALSE;
01130     }
01131 }
01132
01133
01134
01136 BOOL CEditDoc::OpenPropertySheetTypes( int nPageNum, int nSettingType )
01137 {
01138     m_cPropTypes.SetTypeData( m_pShareData->m_Types[nSettingType] );
01139     // Mar. 31, 2003 genta メモリ削減のためポインタに変更しProperySheet内で取得するように
01140     //m_cPropTypes.m_CKeyWordSetMgr = m_pShareData->m_CKeyWordSetMgr;
01141
01142     /* プロパティシートの作成 */
01143     if( m_cPropTypes.DoPropertySheet( nPageNum ) ){
01144 //      /* 変更されたか？ */
01145 //      if( 0 == memcmp( &m_pShareData->m_Types[nSettingType], &m_cPropTypes.m_Types, sizeof( Types ) ) ){
01146 //          /* 無変更 */
01147 //          return FALSE;
01148 //      }
01149 //      /* 変更フラグ(タイプ別設定) のセット */
01150 //      m_pShareData->m_nTypesModifyArr[nSettingType] = TRUE;
01151         /* 変更された設定値のコピー */
01152         m_cPropTypes.GetTypeData( m_pShareData->m_Types[nSettingType] );
01153
01154 //      /* 折り返し桁数が変更された */
01155 //      if( m_cPropTypes.m_nMaxLineSize_org != m_cPropTypes.m_Types.m_nMaxLineSize){
01156 //          /*アンドゥ・リドゥバッファのクリア */
01157 //          /* 全要素のクリア */
01158 //          m_cOpeBuf.ClearAll();
01159 //      }
01160         /* アクセラレータテーブルの再作成 */
01161         ::SendMessage( m_pShareData->m_hwndTray, MYWM_CHANGESETTING,  (WPARAM)0, (LPARAM)0 );
01162
01163         /* 設定変更を反映させる */
01164         CShareData::getInstance()->SendMessageToAllEditors( MYWM_CHANGESETTING, (WPARAM)0, (LPARAM)m_hwndParent, m_hwndParent );    /* 全編集ウィンドウへメッセージをポストする */
01165
01166         return TRUE;
01167     }else{
01168         return FALSE;
01169     }
01170 }
01171
01172
01173
01174 /* Undo(元に戻す)可能な状態か？ */
01175 BOOL CEditDoc::IsEnableUndo( void )
01176 {
01177     return m_cOpeBuf.IsEnableUndo();
01178 }
01179
01180
01181
01183 BOOL CEditDoc::IsEnableRedo( void )
01184 {
01185     return m_cOpeBuf.IsEnableRedo();
01186 }
01187
01188
01189
01190
01192 BOOL CEditDoc::IsEnablePaste( void )
01193 {
01194     UINT uFormatSakuraClip;
01195     uFormatSakuraClip = ::RegisterClipboardFormat( "SAKURAClip" );
01196     if( ::IsClipboardFormatAvailable( CF_OEMTEXT )
01197      || ::IsClipboardFormatAvailable( uFormatSakuraClip )
01198     ){
01199         return TRUE;
01200     }
01201     return FALSE;
01202 }
01203
01204
01205
01206
01207
01212 void CEditDoc::SetParentCaption( void )
01213 {
01214     if( NULL == m_hWnd ){
01215         return;
01216     }
01217     if( !m_cEditViewArr[m_nActivePaneIndex].m_bDrawSWITCH ){
01218         return;
01219     }
01220
01221     char    pszCap[1024];   //  Nov. 6, 2000 genta オーバーヘッド軽減のためHeap→Stackに変更
01222
01223 //  /* アイコン化されていない時はフルパス */
01224 //  /* アイコン化されている時はファイル名のみ */
01225 //  if( ::IsIconic( m_hWnd ) ){
01226 //      bKillFocus = TRUE;
01227 //  }else{
01228 //      bKillFocus = FALSE;
01229 //  }
01230
01231     // From Here Apr. 04, 2003 genta / Apr.05 ShareDataのパラメータ利用に
01232     if( !m_pcEditWnd->IsActiveApp() ){  // 2007.03.08 ryoji bKillFocusをIsActiveApp()に変更
01233         ExpandParameter( m_pShareData->m_Common.m_szWindowCaptionInactive,
01234             pszCap, sizeof( pszCap ));
01235     }
01236     else {
01237         ExpandParameter( m_pShareData->m_Common.m_szWindowCaptionActive,
01238             pszCap, sizeof( pszCap ));
01239     }
01240     // To Here Apr. 04, 2003 genta
01241
01242     ::SetWindowText( m_hwndParent, pszCap );
01243
01244     //@@@ From Here 2003.06.13 MIK
01245     //タブウインドウのファイル名を通知
01246     ExpandParameter( m_pShareData->m_Common.m_szTabWndCaption, pszCap, sizeof( pszCap ));
01247     m_pcEditWnd->ChangeFileNameNotify( pszCap, m_szFilePath, m_bGrepMode ); // 2006.01.28 ryoji ファイル名、Grepモードパラメータを追加
01248     //@@@ To Here 2003.06.13 MIK
01249
01250     return;
01251 }
01252
01253
01254
01255
01273 int CEditDoc::MakeBackUp( const char* target_file )
01274 {
01275     char    szPath[_MAX_PATH];
01276     int     nRet;
01277     char*   pBase;
01278
01279     /* バックアップソースの存在チェック */
01280     //  Aug. 21, 2005 genta 書き込みアクセス権がない場合も
01281     //  ファイルがない場合と同様に何もしない
01282     if( (_access( target_file, 2 )) == -1 ){
01283         return 0;
01284     }
01285
01286     if( m_pShareData->m_Common.m_bBackUpFolder ){   /* 指定フォルダにバックアップを作成する */
01287         //  Aug. 21, 2005 genta 指定フォルダがない場合に警告
01288         if( (_access( m_pShareData->m_Common.m_szBackUpFolder, 0 )) == -1 ){
01289             if( ::MYMESSAGEBOX(
01290                 m_hWnd,
01291                 MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
01292                 "バックアップエラー",
01293                 "以下のバックアップフォルダが見つかりません．\n%s\n"
01294                 "バックアップを作成せずに上書き保存してよろしいですか．",
01295                 m_pShareData->m_Common.m_szBackUpFolder
01296             ) == IDYES ){
01297                 return 0;// 保存継続
01298             }
01299             else {
01300                 return 2;// 保存中断
01301             }
01302         }
01303     }
01304
01305     FormatBackUpPath( szPath, target_file );
01306
01307     //@@@ 2002.03.23 start ネットワーク・リムーバブルドライブの場合はごみ箱に放り込まない
01308     bool dustflag = false;
01309     if( m_pShareData->m_Common.m_bBackUpDustBox ){
01310         dustflag = !IsLocalDrive( szPath );
01311     }
01312     //@@@ 2002.03.23 end
01313
01314     if( m_pShareData->m_Common.m_bBackUpDialog ){   /* バックアップの作成前に確認 */
01315         ::MessageBeep( MB_ICONQUESTION );
01316 //From Here Feb. 27, 2001 JEPROtest キャンセルもできるようにし、メッセージを追加した
01317 //      if( IDYES != MYMESSAGEBOX(
01318 //          m_hWnd,
01319 //          MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
01320 //          "バックアップ作成の確認",
01321 //          "変更される前に、バックアップファイルを作成します。\nよろしいですか？\n\n%s\n    ↓\n%s\n\n",
01322 //          IsFilePathAvailable() ? GetFilePath() : "（無題）",
01323 //          szPath
01324 //      ) ){
01325 //          return FALSE;
01326 //      }
01327         if( m_pShareData->m_Common.m_bBackUpDustBox && dustflag == false ){ //@@@ 2001.12.11 add start MIK  //2002.03.23
01328             nRet = ::MYMESSAGEBOX(
01329                 m_hWnd,
01330                 MB_YESNO/*CANCEL*/ | MB_ICONQUESTION | MB_TOPMOST,
01331                 "バックアップ作成の確認",
01332                 "変更される前に、バックアップファイルを作成します。\nよろしいですか？  [いいえ(N)] を選ぶと作成せずに上書き（または名前を付けて）保存になります。\n\n%s\n    ↓\n%s\n\n作成したバックアップファイルをごみ箱に放り込みます。\n",
01333                 target_file,
01334                 szPath
01335             );
01336         }else{  //@@@ 2001.12.11 add end MIK
01337             nRet = ::MYMESSAGEBOX(
01338                 m_hWnd,
01339                 MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
01340                 "バックアップ作成の確認",
01341                 "変更される前に、バックアップファイルを作成します。\nよろしいですか？  [いいえ(N)] を選ぶと作成せずに上書き（または名前を付けて）保存になります。\n\n%s\n    ↓\n%s\n\n",
01342                 //IsFilePathAvailable() ? GetFilePath() : "（無題）",
01343                 //  Aug. 21, 2005 genta 現在のファイルではなくターゲットファイルをバックアップするように
01344                 target_file,
01345                 szPath
01346             );  //Jul. 06, 2001 jepro [名前を付けて保存] の場合もあるのでメッセージを修正
01347         }   //@@@ 2001.12.11 add MIK
01348         //  Jun.  5, 2005 genta 戻り値変更
01349         if( IDNO == nRet ){
01350             return 0;// 保存継続
01351         }else if( IDCANCEL == nRet ){
01352             return 2;// 保存中断
01353         }
01354 //To Here Feb. 27, 2001
01355     }
01356
01357     //  From Here Aug. 16, 2000 genta
01358     //  Jun.  5, 2005 genta 1の拡張子を残す版を追加
01359     if( m_pShareData->m_Common.GetBackupType() == 3 ||
01360         m_pShareData->m_Common.GetBackupType() == 6 ){
01361         //  既に存在するBackupをずらす処理
01362         int             i;
01363
01364         //  ファイル検索用
01365         HANDLE          hFind;
01366         WIN32_FIND_DATA fData;
01367
01368         pBase = szPath + strlen( szPath ) - 2;  //  2: 拡張子の最後の2桁の意味
01369         //::MessageBox( NULL, pBase, "書き換え場所", MB_OK );
01370
01371         //------------------------------------------------------------------
01372         //  1. 該当ディレクトリ中のbackupファイルを1つずつ探す
01373         for( i = 0; i <= 99; i++ ){ //  最大値に関わらず，99（2桁の最大値）まで探す
01374             //  ファイル名をセット
01375             wsprintf( pBase, "%02d", i );
01376
01377             hFind = ::FindFirstFile( szPath, &fData );
01378             if( hFind == INVALID_HANDLE_VALUE ){
01379                 //  検索に失敗した == ファイルは存在しない
01380                 break;
01381             }
01382             ::FindClose( hFind );
01383             //  見つかったファイルの属性をチェック
01384             //  は面倒くさいからしない．
01385             //  同じ名前のディレクトリがあったらどうなるのだろう...
01386         }
01387         --i;
01388
01389         //------------------------------------------------------------------
01390         //  2. 最大値から制限数-1番までを削除
01391         int boundary = m_pShareData->m_Common.GetBackupCount();
01392         boundary = boundary > 0 ? boundary - 1 : 0; //  最小値は0
01393         //::MessageBox( NULL, pBase, "書き換え場所", MB_OK );
01394
01395         for( ; i >= boundary; --i ){
01396             //  ファイル名をセット
01397             wsprintf( pBase, "%02d", i );
01398             if( ::DeleteFile( szPath ) == 0 ){
01399                 ::MessageBox( m_hWnd, szPath, "削除失敗", MB_OK );
01400                 //  Jun.  5, 2005 genta 戻り値変更
01401                 //  失敗しても保存は継続
01402                 return 0;
01403                 //  失敗した場合
01404                 //  後で考える
01405             }
01406         }
01407
01408         //  この位置でiは存在するバックアップファイルの最大番号を表している．
01409
01410         //  3. そこから0番まではコピーしながら移動
01411         char szNewPath[MAX_PATH];
01412         char *pNewNrBase;
01413
01414         strcpy( szNewPath, szPath );
01415         pNewNrBase = szNewPath + strlen( szNewPath ) - 2;
01416
01417         for( ; i >= 0; --i ){
01418             //  ファイル名をセット
01419             wsprintf( pBase, "%02d", i );
01420             wsprintf( pNewNrBase, "%02d", i + 1 );
01421
01422             //  ファイルの移動
01423             if( ::MoveFile( szPath, szNewPath ) == 0 ){
01424                 //  失敗した場合
01425                 //  後で考える
01426                 ::MessageBox( m_hWnd, szPath, "移動失敗", MB_OK );
01427                 //  Jun.  5, 2005 genta 戻り値変更
01428                 //  失敗しても保存は継続
01429                 return 0;
01430             }
01431         }
01432     }
01433     //  To Here Aug. 16, 2000 genta
01434
01435     //::MessageBox( NULL, szPath, "直前のバックアップファイル", MB_OK );
01436     /* バックアップの作成 */
01437     //  Aug. 21, 2005 genta 現在のファイルではなくターゲットファイルをバックアップするように
01438     char    szDrive[_MAX_DIR];
01439     char    szDir[_MAX_DIR];
01440     char    szFname[_MAX_FNAME];
01441     char    szExt[_MAX_EXT];
01442     _splitpath( szPath, szDrive, szDir, szFname, szExt );
01443     char szPath2[MAX_PATH];
01444     wsprintf( szPath2, "%s%s", szDrive, szDir );
01445         HANDLE          hFind;
01446         WIN32_FIND_DATA fData;
01447
01448     hFind = ::FindFirstFile( szPath2, &fData );
01449     if( hFind == INVALID_HANDLE_VALUE ){
01450         //  検索に失敗した == ファイルは存在しない
01451         ::CreateDirectory( szPath2, NULL );
01452     }
01453     ::FindClose( hFind );
01454
01455     if( ::CopyFile( target_file, szPath, FALSE ) ){
01456         /* 正常終了 */
01457         //@@@ 2001.12.11 start MIK
01458         if( m_pShareData->m_Common.m_bBackUpDustBox && dustflag == false ){ //@@@ 2002.03.23 ネットワーク・リムーバブルドライブでない
01459             char    szDustPath[_MAX_PATH+1];
01460             strcpy(szDustPath, szPath);
01461             szDustPath[strlen(szDustPath) + 1] = '\0';
01462             SHFILEOPSTRUCT  fos;
01463             fos.hwnd   = m_hWnd;
01464             fos.wFunc  = FO_DELETE;
01465             fos.pFrom  = szDustPath;
01466             fos.pTo    = NULL;
01467             fos.fFlags = FOF_ALLOWUNDO | FOF_SIMPLEPROGRESS | FOF_NOCONFIRMATION;   //ダイアログなし
01468             //fos.fFlags = FOF_ALLOWUNDO | FOF_FILESONLY;
01469             //fos.fFlags = FOF_ALLOWUNDO;   //ダイアログが表示される。
01470             fos.fAnyOperationsAborted = true; //false;
01471             fos.hNameMappings = NULL;
01472             fos.lpszProgressTitle = NULL; //"バックアップファイルをごみ箱に移動しています...";
01473             if( ::SHFileOperation(&fos) == 0 ){
01474                 /* 正常終了 */
01475             }else{
01476                 /* エラー終了 */
01477             }
01478         }
01479         //@@@ 2001.12.11 end MIK
01480     }else{
01481         /* エラー終了 */
01482         //  Jun.  5, 2005 genta 戻り値変更
01483         return 3;
01484     }
01485     //  Jun.  5, 2005 genta 戻り値変更
01486     return 1;
01487 }
01488
01502 bool CEditDoc::FormatBackUpPath( char* szNewPath, const char* target_file )
01503 {
01504     char    szDrive[_MAX_DIR];
01505     char    szDir[_MAX_DIR];
01506     char    szFname[_MAX_FNAME];
01507     char    szExt[_MAX_EXT];
01508
01509     /* パスの分解 */
01510     _splitpath( target_file, szDrive, szDir, szFname, szExt );
01511
01512     if( m_pShareData->m_Common.m_bBackUpFolder ){   /* 指定フォルダにバックアップを作成する */
01513         strcpy( szNewPath, m_pShareData->m_Common.m_szBackUpFolder );
01514         /* フォルダの最後が半角かつ'\\'でない場合は、付加する */
01515         AddLastYenFromDirectoryPath( szNewPath );
01516     }
01517     else{
01518         wsprintf( szNewPath, "%s%s", szDrive, szDir );
01519     }
01520
01521     /* 相対フォルダを挿入 */
01522     if( !m_pShareData->m_Common.m_bBackUpPathAdvanced ){
01523         time_t  ltime;
01524         struct  tm *today, *gmt;
01525         char    szTime[64];
01526         char    szForm[64];
01527         char*   pBase;
01528
01529         pBase = szNewPath + strlen( szNewPath );
01530
01531         /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
01532         switch( m_pShareData->m_Common.GetBackupType() ){
01533         case 1:
01534             wsprintf( pBase, "%s.bak", szFname );
01535             break;
01536         case 5: //  Jun.  5, 2005 genta 1の拡張子を残す版
01537             wsprintf( pBase, "%s%s.bak", szFname, szExt );
01538             break;
01539         case 2: //  日付，時刻
01540             _tzset();
01541             _strdate( szTime );
01542             time( &ltime );             /* システム時刻を得ます */
01543             gmt = gmtime( &ltime );     /* 万国標準時に変換する */
01544             today = localtime( &ltime );/* 現地時間に変換する */
01545
01546             strcpy( szForm, "" );
01547             if( m_pShareData->m_Common.GetBackupOpt(BKUP_YEAR) ){   /* バックアップファイル名：日付の年 */
01548                 strcat( szForm, "%Y" );
01549             }
01550             if( m_pShareData->m_Common.GetBackupOpt(BKUP_MONTH) ){  /* バックアップファイル名：日付の月 */
01551                 strcat( szForm, "%m" );
01552             }
01553             if( m_pShareData->m_Common.GetBackupOpt(BKUP_DAY) ){    /* バックアップファイル名：日付の日 */
01554                 strcat( szForm, "%d" );
01555             }
01556             if( m_pShareData->m_Common.GetBackupOpt(BKUP_HOUR) ){   /* バックアップファイル名：日付の時 */
01557                 strcat( szForm, "%H" );
01558             }
01559             if( m_pShareData->m_Common.GetBackupOpt(BKUP_MIN) ){    /* バックアップファイル名：日付の分 */
01560                 strcat( szForm, "%M" );
01561             }
01562             if( m_pShareData->m_Common.GetBackupOpt(BKUP_SEC) ){    /* バックアップファイル名：日付の秒 */
01563                 strcat( szForm, "%S" );
01564             }
01565             /* YYYYMMDD時分秒 形式に変換 */
01566             strftime( szTime, sizeof( szTime ) - 1, szForm, today );
01567             wsprintf( pBase, "%s_%s%s", szFname, szTime, szExt );
01568             break;
01569     //  2001/06/12 Start by asa-o: ファイルに付ける日付を前回の保存時(更新日時)にする
01570         case 4: //  日付，時刻
01571             {
01572                 FILETIME    LastWriteTime,
01573                             LocalTime;
01574                 SYSTEMTIME  SystemTime;
01575
01576                 // 2005.10.20 ryoji FindFirstFileを使うように変更
01577                 if( ! GetLastWriteTimestamp( target_file, LastWriteTime )){
01578                     LastWriteTime.dwHighDateTime = LastWriteTime.dwLowDateTime = 0;
01579                 }
01580                 ::FileTimeToLocalFileTime(&LastWriteTime,&LocalTime);   // 現地時刻に変換
01581                 ::FileTimeToSystemTime(&LocalTime,&SystemTime);         // システムタイムに変換
01582
01583                 strcpy( szTime, "" );
01584                 if( m_pShareData->m_Common.GetBackupOpt(BKUP_YEAR) ){   /* バックアップファイル名：日付の年 */
01585                     wsprintf(szTime,"%d",SystemTime.wYear);
01586                 }
01587                 if( m_pShareData->m_Common.GetBackupOpt(BKUP_MONTH) ){  /* バックアップファイル名：日付の月 */
01588                     wsprintf(szTime,"%s%02d",szTime,SystemTime.wMonth);
01589                 }
01590                 if( m_pShareData->m_Common.GetBackupOpt(BKUP_DAY) ){    /* バックアップファイル名：日付の日 */
01591                     wsprintf(szTime,"%s%02d",szTime,SystemTime.wDay);
01592                 }
01593                 if( m_pShareData->m_Common.GetBackupOpt(BKUP_HOUR) ){   /* バックアップファイル名：日付の時 */
01594                     wsprintf(szTime,"%s%02d",szTime,SystemTime.wHour);
01595                 }
01596                 if( m_pShareData->m_Common.GetBackupOpt(BKUP_MIN) ){    /* バックアップファイル名：日付の分 */
01597                     wsprintf(szTime,"%s%02d",szTime,SystemTime.wMinute);
01598                 }
01599                 if( m_pShareData->m_Common.GetBackupOpt(BKUP_SEC) ){    /* バックアップファイル名：日付の秒 */
01600                     wsprintf(szTime,"%s%02d",szTime,SystemTime.wSecond);
01601                 }
01602                 wsprintf( pBase, "%s_%s%s", szFname, szTime, szExt );
01603             }
01604             break;
01605     // 2001/06/12 End
01606
01607         case 3: //  ?xx : xx = 00~99, ?は任意の文字
01608         case 6: //  Jun.  5, 2005 genta 3の拡張子を残す版
01609             //  Aug. 15, 2000 genta
01610             //  ここでは作成するバックアップファイル名のみ生成する．
01611             //  ファイル名のRotationは確認ダイアログの後で行う．
01612             {
01613                 //  Jun.  5, 2005 genta 拡張子を残せるように処理起点を操作する
01614                 char* ptr;
01615                 if( m_pShareData->m_Common.GetBackupType() == 3 ){
01616                     ptr = szExt;
01617                 }
01618                 else {
01619                     ptr = szExt + strlen( szExt );
01620                 }
01621                 *ptr   = '.';
01622                 *++ptr = m_pShareData->m_Common.GetBackupExtChar();
01623                 *++ptr = '0';
01624                 *++ptr = '0';
01625                 *++ptr = '\0';
01626             }
01627             wsprintf( pBase, "%s%s", szFname, szExt );
01628             break;
01629         }
01630
01631     }else{ // 詳細設定使用する
01632         char szFormat[1024];
01633
01634         switch( m_pShareData->m_Common.GetBackupTypeAdv() ){
01635         case 4: //  ファイルの日付，時刻
01636             {
01637                 FILETIME    LastWriteTime,
01638                             LocalTime;
01639                 SYSTEMTIME  SystemTime;
01640
01641                 // 2005.10.20 ryoji FindFirstFileを使うように変更
01642                 if( ! GetLastWriteTimestamp( target_file, LastWriteTime )){
01643                     LastWriteTime.dwHighDateTime = LastWriteTime.dwLowDateTime = 0;
01644                 }
01645                 ::FileTimeToLocalFileTime(&LastWriteTime,&LocalTime);   // 現地時刻に変換
01646                 ::FileTimeToSystemTime(&LocalTime,&SystemTime);         // システムタイムに変換
01647
01648                 GetDateTimeFormat( szFormat, sizeof(szFormat), m_pShareData->m_Common.m_szBackUpPathAdvanced , SystemTime );
01649             }
01650             break;
01651         case 2: //  現在の日付，時刻
01652         default:
01653             {
01654                 time_t  ltime;
01655                 struct  tm *today;
01656
01657                 time( &ltime );             /* システム時刻を得ます */
01658                 today = localtime( &ltime );/* 現地時間に変換する */
01659
01660                 /* YYYYMMDD時分秒 形式に変換 */
01661                 strftime( szFormat, sizeof( szFormat ) - 1, m_pShareData->m_Common.m_szBackUpPathAdvanced , today );
01662             }
01663             break;
01664         }
01665
01666         {
01667             // make keys
01668             // $0-$9に対応するフォルダ名を切り出し
01669             char keybuff[1024];
01670             strcpy( keybuff, szDir );
01671             CutLastYenFromDirectoryPath( keybuff );
01672
01673             char *folders[10];
01674             {
01675                 //  Jan. 9, 2006 genta VC6対策
01676                 int idx;
01677                 for( idx=0; idx<10; ++idx ){
01678                     folders[idx] = 0;
01679                 }
01680                 folders[0] = szFname;
01681
01682                 for( idx=1; idx<10; ++idx ){
01683                     char *cp;
01684                     cp =sjis_strrchr2((unsigned char*)keybuff, '\\', '\\');
01685                     if( cp != NULL ){
01686                         folders[idx] = cp+1;
01687                         *cp = '\0';
01688                     }
01689                     else{
01690                         break;
01691                     }
01692                 }
01693             }
01694             {
01695                 // $0-$9を置換
01696                 //strcpy( szNewPath, "" );
01697                 char *q= szFormat;
01698                 char *q2 = szFormat;
01699                 while( *q ){
01700                     if( *q=='$' ){
01701                         ++q;
01702                         if( isdigit(*q) ){
01703                             q[-1] = '\0';
01704                             strcat( szNewPath, q2 );
01705                             if( folders[*q-'0'] != 0 ){
01706                                 strcat( szNewPath, folders[*q-'0'] );
01707                             }
01708                             q2 = q+1;
01709                         }
01710                     }
01711                     ++q;
01712                 }
01713                 strcat( szNewPath, q2 );
01714             }
01715         }
01716         {
01717             char temp[1024];
01718             char *cp;
01719             //  2006.03.25 Aroka szExt[0] == '\0'のときのオーバラン問題を修正
01720             char *ep = (szExt[0]!=0) ? &szExt[1] : &szExt[0];
01721
01722             while( strchr( szNewPath, '*' ) ){
01723                 strcpy( temp, szNewPath );
01724                 cp = strchr( temp, '*' );
01725                 *cp = 0;
01726                 wsprintf( szNewPath, "%s%s%s", temp, ep, cp+1 );
01727             }
01728             //  ??はバックアップ連番にしたいところではあるが，
01729             //  連番処理は末尾の2桁にしか対応していないので
01730             //  使用できない文字?を_に変換してお茶を濁す
01731             while(( cp = strchr( szNewPath, '?' ) ) != NULL){
01732                 *cp = '_';
01733 //              strcpy( temp, szNewPath );
01734 //              cp = strchr( temp, '?' );
01735 //              *cp = 0;
01736 //              wsprintf( szNewPath, "%s00%s", temp, cp+2 );
01737             }
01738         }
01739     }
01740     return true;
01741 }
01742
01743 /* ファイルの排他ロック */
01744 void CEditDoc::DoFileLock( void )
01745 {
01746     char*   pszMode;
01747     int     nAccessMode;
01748     BOOL    bCheckOnly;
01749
01750     /* ロックしている */
01751     if( NULL != m_hLockedFile ){
01752         /* ロック解除 */
01753         ::_lclose( m_hLockedFile );
01754         m_hLockedFile = NULL;
01755     }
01756
01757     /* ファイルが存在しない */
01758     if( -1 == _access( GetFilePath(), 0 ) ){
01759         /* ファイルの排他制御モード */
01760         m_nFileShareModeOld = 0;
01761         return;
01762     }else{
01763         /* ファイルの排他制御モード */
01764         m_nFileShareModeOld = m_pShareData->m_Common.m_nFileShareMode;
01765     }
01766
01767
01768     /* ファイルを開いていない */
01769     if( ! IsFilePathAvailable() ){
01770         return;
01771     }
01772     /* 読み取り専用モード */
01773     if( TRUE == m_bReadOnly ){
01774         return;
01775     }
01776
01777
01778     nAccessMode = 0;
01779     if( m_pShareData->m_Common.m_nFileShareMode == OF_SHARE_DENY_WRITE ||
01780         m_pShareData->m_Common.m_nFileShareMode == OF_SHARE_EXCLUSIVE ){
01781         bCheckOnly = FALSE;
01782     }else{
01783         /* 排他制御しないけどロックされているかのチェックは行うのでreturnしない */
01784 //      return;
01785         bCheckOnly = TRUE;
01786     }
01787     /* 書込み禁止かどうか調べる */
01788     if( -1 == _access( GetFilePath(), 2 ) ){    /* アクセス権：書き込み許可 */
01789 #if 0
01790         // Apr. 28, 2000 genta: Request from Koda
01791
01792         ::MessageBeep( MB_ICONEXCLAMATION );
01793         MYMESSAGEBOX(
01794             m_hWnd,
01795             MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST,
01796             GSTR_APPNAME,
01797             "現在\n%s\nは読取専用に設定されています。 または、書き込みのアクセス権がありません。",
01798             IsFilePathAvailable() ? GetFilePath() : "（無題）"
01799         );
01800 #endif
01801         m_hLockedFile = NULL;
01802         /* 親ウィンドウのタイトルを更新 */
01803         SetParentCaption();
01804         return;
01805     }
01806
01807
01808     m_hLockedFile = ::_lopen( GetFilePath(), OF_READWRITE );
01809     _lclose( m_hLockedFile );
01810     if( HFILE_ERROR == m_hLockedFile ){
01811         ::MessageBeep( MB_ICONEXCLAMATION );
01812         MYMESSAGEBOX(
01813             m_hWnd,
01814             MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST,
01815             GSTR_APPNAME,
01816             "%s\nは現在他のプロセスによって書込みが禁止されています。",
01817             IsFilePathAvailable() ? GetFilePath() : "（無題）"
01818         );
01819         m_hLockedFile = NULL;
01820         /* 親ウィンドウのタイトルを更新 */
01821         SetParentCaption();
01822         return;
01823     }
01824     m_hLockedFile = ::_lopen( GetFilePath(), nAccessMode | m_pShareData->m_Common.m_nFileShareMode );
01825     if( HFILE_ERROR == m_hLockedFile ){
01826         switch( m_pShareData->m_Common.m_nFileShareMode ){
01827         case OF_SHARE_EXCLUSIVE:    /* 読み書き */
01828             pszMode = "読み書き禁止モード";
01829             break;
01830         case OF_SHARE_DENY_WRITE:   /* 書き */
01831             pszMode = "書き込み禁止モード";
01832             break;
01833         default:
01834             pszMode = "未定義のモード（問題があります）";
01835             break;
01836         }
01837         ::MessageBeep( MB_ICONEXCLAMATION );
01838         MYMESSAGEBOX(
01839             m_hWnd,
01840             MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST,
01841             GSTR_APPNAME,
01842             "%s\nを%sでロックできませんでした。\n現在このファイルに対する排他制御は無効となります。",
01843             IsFilePathAvailable() ? GetFilePath() : "（無題）",
01844             pszMode
01845         );
01846         /* 親ウィンドウのタイトルを更新 */
01847         SetParentCaption();
01848         return;
01849     }
01850     /* 排他制御しないけどロックされているかのチェックは行う場合 */
01851     if( bCheckOnly ){
01852         /* ロックを解除する */
01853         DoFileUnLock();
01854
01855     }
01856     return;
01857 }
01858
01859
01860 /* ファイルの排他ロック解除 */
01861 void CEditDoc::DoFileUnLock( void )
01862 {
01863     if( NULL != m_hLockedFile ){
01864         /* ロック解除 */
01865         ::_lclose( m_hLockedFile );
01866         m_hLockedFile = NULL;
01867         /* ファイルの排他制御モード */
01868         m_nFileShareModeOld = 0;
01869     }
01870     return;
01871 }
01872
01873 /*
01874     C関数リスト作成はCEditDoc_FuncList1.cppへ移動
01875 */
01876
01878 void CEditDoc::MakeFuncList_PLSQL( CFuncInfoArr* pcFuncInfoArr )
01879 {
01880     const char* pLine;
01881     int         nLineLen;
01882     int         nLineCount;
01883     int         i;
01884     int         nCharChars;
01885     char        szWordPrev[100];
01886     char        szWord[100];
01887     int         nWordIdx = 0;
01888     int         nMaxWordLeng = 70;
01889     int         nMode;
01890     char        szFuncName[80];
01891     int         nFuncLine;
01892     int         nFuncId;
01893     int         nFuncNum;
01894     int         nFuncOrProc = 0;
01895     int         nParseCnt = 0;
01896
01897     szWordPrev[0] = '\0';
01898     szWord[nWordIdx] = '\0';
01899     nMode = 0;
01900     nFuncNum = 0;
01901     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
01902         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
01903         for( i = 0; i < nLineLen; ++i ){
01904             /* 1バイト文字だけを処理する */
01905             // 2005-09-02 D.S.Koba GetSizeOfChar
01906             nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
01907             if( 0 == nCharChars ){
01908                 nCharChars = 1;
01909             }
01910 //          if( 1 < nCharChars ){
01911 //              i += (nCharChars - 1);
01912 //              continue;
01913 //          }
01914             /* シングルクォーテーション文字列読み込み中 */
01915             if( 20 == nMode ){
01916                 if( '\'' == pLine[i] ){
01917                     if( i + 1 < nLineLen && '\'' == pLine[i + 1] ){
01918                         ++i;
01919                     }else{
01920                         nMode = 0;
01921                         continue;
01922                     }
01923                 }else{
01924                 }
01925             }else
01926             /* コメント読み込み中 */
01927             if( 8 == nMode ){
01928                 if( i + 1 < nLineLen && '*' == pLine[i] &&  '/' == pLine[i + 1] ){
01929                     ++i;
01930                     nMode = 0;
01931                     continue;
01932                 }else{
01933                 }
01934             }else
01935             /* 単語読み込み中 */
01936             if( 1 == nMode ){
01937                 if( (1 == nCharChars && (
01938                     '_' == pLine[i] ||
01939                     '~' == pLine[i] ||
01940                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
01941                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
01942                     ('0' <= pLine[i] && pLine[i] <= '9' )
01943                     ) )
01944                  || 2 == nCharChars
01945                 ){
01946 //                  ++nWordIdx;
01947                     if( nWordIdx >= nMaxWordLeng ){
01948                         nMode = 999;
01949                         continue;
01950                     }else{
01951 //                      szWord[nWordIdx] = pLine[i];
01952 //                      szWord[nWordIdx + 1] = '\0';
01953                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
01954                         szWord[nWordIdx + nCharChars] = '\0';
01955                         nWordIdx += (nCharChars);
01956                     }
01957                 }else{
01958                     if( 0 == nParseCnt && 0 == _stricmp( szWord, "FUNCTION" ) ){
01959                         nFuncOrProc = 1;
01960                         nParseCnt = 1;
01961                         nFuncLine = nLineCount + 1;
01962
01963                     }else
01964                     if( 0 == nParseCnt && 0 == _stricmp( szWord, "PROCEDURE" ) ){
01965                         nFuncOrProc = 2;
01966                         nParseCnt = 1;
01967                         nFuncLine = nLineCount + 1;
01968                     }else
01969                     if( 0 == nParseCnt && 0 == _stricmp( szWord, "PACKAGE" ) ){
01970                         nFuncOrProc = 3;
01971                         nParseCnt = 1;
01972                         nFuncLine = nLineCount + 1;
01973                     }else
01974                     if( 1 == nParseCnt && 3 == nFuncOrProc && 0 == _stricmp( szWord, "BODY" ) ){
01975                         nFuncOrProc = 4;
01976                         nParseCnt = 1;
01977                     }else
01978                     if( 1 == nParseCnt ){
01979                         if( 1 == nFuncOrProc ||
01980                             2 == nFuncOrProc ||
01981                             3 == nFuncOrProc ||
01982                             4 == nFuncOrProc ){
01983                             ++nParseCnt;
01984                             strcpy( szFuncName, szWord );
01985                         }else
01986                         if( 3 == nFuncOrProc ){
01987
01988                         }
01989                     }else
01990                     if( 2 == nParseCnt ){
01991                         if( 0 == _stricmp( szWord, "IS" ) ){
01992                             if( 1 == nFuncOrProc ){
01993                                 nFuncId = 11;   /* ファンクション本体 */
01994                             }else
01995                             if( 2 == nFuncOrProc ){
01996                                 nFuncId = 21;   /* プロシージャ本体 */
01997                             }else
01998                             if( 3 == nFuncOrProc ){
01999                                 nFuncId = 31;   /* パッケージ仕様部 */
02000                             }else
02001                             if( 4 == nFuncOrProc ){
02002                                 nFuncId = 41;   /* パッケージ本体 */
02003                             }
02004                             ++nFuncNum;
02005                             /*
02006                               カーソル位置変換
02007                               物理位置(行頭からのバイト数、折り返し無し行位置)
02008                               →
02009                               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02010                             */
02011                             int     nPosX;
02012                             int     nPosY;
02013                             m_cLayoutMgr.CaretPos_Phys2Log(
02014                                 0,
02015                                 nFuncLine - 1,
02016                                 &nPosX,
02017                                 &nPosY
02018                             );
02019                             pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1, szFuncName, nFuncId );
02020                             nParseCnt = 0;
02021                         }
02022                         if( 0 == _stricmp( szWord, "AS" ) ){
02023                             if( 3 == nFuncOrProc ){
02024                                 nFuncId = 31;   /* パッケージ仕様部 */
02025                                 ++nFuncNum;
02026                                 /*
02027                                   カーソル位置変換
02028                                   物理位置(行頭からのバイト数、折り返し無し行位置)
02029                                   →
02030                                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02031                                 */
02032                                 int     nPosX;
02033                                 int     nPosY;
02034                                 m_cLayoutMgr.CaretPos_Phys2Log(
02035                                     0,
02036                                     nFuncLine - 1,
02037                                     &nPosX,
02038                                     &nPosY
02039                                 );
02040                                 pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1 , szFuncName, nFuncId );
02041                                 nParseCnt = 0;
02042                             }else
02043                             if( 4 == nFuncOrProc ){
02044                                 nFuncId = 41;   /* パッケージ本体 */
02045                                 ++nFuncNum;
02046                                 /*
02047                                   カーソル位置変換
02048                                   物理位置(行頭からのバイト数、折り返し無し行位置)
02049                                   →
02050                                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02051                                 */
02052                                 int     nPosX;
02053                                 int     nPosY;
02054                                 m_cLayoutMgr.CaretPos_Phys2Log(
02055                                     0,
02056                                     nFuncLine - 1,
02057                                     &nPosX,
02058                                     &nPosY
02059                                 );
02060                                 pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1 , szFuncName, nFuncId );
02061                                 nParseCnt = 0;
02062                             }
02063                         }
02064                     }
02065                     strcpy( szWordPrev, szWord );
02066                     nWordIdx = 0;
02067                     szWord[0] = '\0';
02068                     nMode = 0;
02069                     i--;
02070                     continue;
02071                 }
02072             }else
02073             /* 記号列読み込み中 */
02074             if( 2 == nMode ){
02075                 if( '_' == pLine[i] ||
02076                     '~' == pLine[i] ||
02077                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
02078                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
02079                     ('0' <= pLine[i] && pLine[i] <= '9' )||
02080                     '\t' == pLine[i] ||
02081                      ' ' == pLine[i] ||
02082                       CR == pLine[i] ||
02083                       LF == pLine[i] ||
02084                      '{' == pLine[i] ||
02085                      '}' == pLine[i] ||
02086                      '(' == pLine[i] ||
02087                      ')' == pLine[i] ||
02088                      ';' == pLine[i] ||
02089                     '\'' == pLine[i] ||
02090                      '/' == pLine[i] ||
02091                      '-' == pLine[i]
02092                 ){
02093                     strcpy( szWordPrev, szWord );
02094                     nWordIdx = 0;
02095                     szWord[0] = '\0';
02096                     nMode = 0;
02097                     i--;
02098                     continue;
02099                 }else{
02100 //                  ++nWordIdx;
02101                     if( nWordIdx >= nMaxWordLeng ){
02102                         nMode = 999;
02103                         continue;
02104                     }else{
02105 //                      szWord[nWordIdx] = pLine[i];
02106 //                      szWord[nWordIdx + 1] = '\0';
02107                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
02108                         szWord[nWordIdx + nCharChars] = '\0';
02109                         nWordIdx += (nCharChars);
02110                     }
02111                 }
02112             }else
02113             /* 長過ぎる単語無視中 */
02114             if( 999 == nMode ){
02115                 /* 空白やタブ記号等を飛ばす */
02116                 if( '\t' == pLine[i] ||
02117                      ' ' == pLine[i] ||
02118                       CR == pLine[i] ||
02119                       LF == pLine[i]
02120                 ){
02121                     nMode = 0;
02122                     continue;
02123                 }
02124             }else
02125             /* ノーマルモード */
02126             if( 0 == nMode ){
02127                 /* 空白やタブ記号等を飛ばす */
02128                 if( '\t' == pLine[i] ||
02129                      ' ' == pLine[i] ||
02130                       CR == pLine[i] ||
02131                       LF == pLine[i]
02132                 ){
02133                     continue;
02134                 }else
02135                 if( i < nLineLen - 1 && '-' == pLine[i] &&  '-' == pLine[i + 1] ){
02136                     break;
02137                 }else
02138                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '*' == pLine[i + 1] ){
02139                     ++i;
02140                     nMode = 8;
02141                     continue;
02142                 }else
02143                 if( '\'' == pLine[i] ){
02144                     nMode = 20;
02145                     continue;
02146                 }else
02147                 if( ';' == pLine[i] ){
02148                     if( 2 == nParseCnt ){
02149                         if( 1 == nFuncOrProc ){
02150                             nFuncId = 10;   /* ファンクション宣言 */
02151                         }else{
02152                             nFuncId = 20;   /* プロシージャ宣言 */
02153                         }
02154                         ++nFuncNum;
02155                         /*
02156                           カーソル位置変換
02157                           物理位置(行頭からのバイト数、折り返し無し行位置)
02158                           →
02159                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02160                         */
02161                         int     nPosX;
02162                         int     nPosY;
02163                         m_cLayoutMgr.CaretPos_Phys2Log(
02164                             0,
02165                             nFuncLine - 1,
02166                             &nPosX,
02167                             &nPosY
02168                         );
02169                         pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1 , szFuncName, nFuncId );
02170                         nParseCnt = 0;
02171                     }
02172                     nMode = 0;
02173                     continue;
02174                 }else{
02175                     if( (1 == nCharChars && (
02176                         '_' == pLine[i] ||
02177                         '~' == pLine[i] ||
02178                         ('a' <= pLine[i] && pLine[i] <= 'z' )||
02179                         ('A' <= pLine[i] && pLine[i] <= 'Z' )||
02180                         ('0' <= pLine[i] && pLine[i] <= '9' )
02181                         ) )
02182                      || 2 == nCharChars
02183                     ){
02184                         strcpy( szWordPrev, szWord );
02185                         nWordIdx = 0;
02186
02187 //                      szWord[nWordIdx] = pLine[i];
02188 //                      szWord[nWordIdx + 1] = '\0';
02189                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
02190                         szWord[nWordIdx + nCharChars] = '\0';
02191                         nWordIdx += (nCharChars);
02192
02193                         nMode = 1;
02194                     }else{
02195                         strcpy( szWordPrev, szWord );
02196                         nWordIdx = 0;
02197 //                      szWord[nWordIdx] = pLine[i];
02198 //                      szWord[nWordIdx + 1] = '\0';
02199
02200                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
02201                         szWord[nWordIdx + nCharChars] = '\0';
02202                         nWordIdx += (nCharChars);
02203
02204                         nMode = 2;
02205                     }
02206                 }
02207             }
02208             i += (nCharChars - 1);
02209         }
02210     }
02211     return;
02212 }
02213
02214
02215
02216
02217
02224 void CEditDoc::MakeTopicList_txt( CFuncInfoArr* pcFuncInfoArr )
02225 {
02226     const unsigned char*    pLine;
02227     int                     nLineLen;
02228     int                     nLineCount;
02229     int                     i;
02230     int                     j;
02231     int                     nCharChars;
02232     int                     nCharChars2;
02233     const char*             pszStarts;
02234     int                     nStartsLen;
02235     char*                   pszText;
02236
02237
02238     pszStarts = m_pShareData->m_Common.m_szMidashiKigou;    /* 見出し記号 */
02239     nStartsLen = lstrlen( pszStarts );
02240
02241     /*  ネストの深さは、nMaxStackレベルまで、ひとつのヘッダは、最長32文字まで区別
02242         （32文字まで同じだったら同じものとして扱います）
02243     */
02244     const int nMaxStack = 32;   //  ネストの最深
02245     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
02246     char pszStack[nMaxStack][32];
02247     char szTitle[32];           //  一時領域
02248     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
02249         pLine = (const unsigned char *)m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02250         if( NULL == pLine ){
02251             break;
02252         }
02253         for( i = 0; i < nLineLen; ++i ){
02254             if( pLine[i] == ' ' ||
02255                 pLine[i] == '\t'){
02256                 continue;
02257             }else
02258             if( i + 1 < nLineLen && pLine[i] == 0x81 && pLine[i + 1] == 0x40 ){
02259                 ++i;
02260                 continue;
02261             }
02262             break;
02263         }
02264         if( i >= nLineLen ){
02265             continue;
02266         }
02267         // 2005-09-02 D.S.Koba GetSizeOfChar
02268         nCharChars = CMemory::GetSizeOfChar( (const char *)pLine, nLineLen, i );
02269         for( j = 0; j < nStartsLen; j+=nCharChars2 ){
02270             // 2005-09-02 D.S.Koba GetSizeOfChar
02271             nCharChars2 = CMemory::GetSizeOfChar( pszStarts, nStartsLen, j );
02272             if( nCharChars == nCharChars2 ){
02273                 if( 0 == memcmp( &pLine[i], &pszStarts[j], nCharChars ) ){
02274                     strncpy( szTitle, &pszStarts[j], nCharChars);   //  szTitleに保持。
02275                     szTitle[nCharChars] = '\0';
02276                     break;
02277                 }
02278             }
02279         }
02280         if( j >= nStartsLen ){
02281             continue;
02282         }
02283         /* 見出し文字に(が含まれていることが前提になっている! */
02284         if( nCharChars == 1 && pLine[i] == '(' ){
02285             if( pLine[i + 1] >= '0' && pLine[i + 1] <= '9' )  {
02286                 strcpy( szTitle, "(0)" );
02287             }
02288             else if ( pLine[i + 1] >= 'A' && pLine[i + 1] <= 'Z' ) {
02289                 strcpy( szTitle, "(A)" );
02290             }
02291             else if ( pLine[i + 1] >= 'a' && pLine[i + 1] <= 'z' ) {
02292                 strcpy( szTitle, "(a)" );
02293             }
02294             else {
02295                 continue;
02296             }
02297         }else
02298         if( 2 == nCharChars ){
02299             // 2003.06.28 Moca 1桁目から始まっていないと同一レベルと認識されずに
02300             //  どんどん子ノードになってしまうのを，字下げによらず同一レベルと認識されるように
02301             /* 全角数字 */
02302             if( pLine[i] == 0x82 && ( pLine[i + 1] >= 0x4f && pLine[i + 1] <= 0x58 ) ) {
02303                 strcpy( szTitle, "０" );
02304             }
02305             /* ①～⑳ */
02306             else if( pLine[i] == 0x87 && ( pLine[i + 1] >= 0x40 && pLine[i + 1] <= 0x53 ) ){
02307                 strcpy( szTitle, "①" );
02308             }
02309             /* Ⅰ～Ⅹ */
02310             else if( pLine[i] == 0x87 && ( pLine[i + 1] >= 0x54 && pLine[i + 1] <= 0x5d ) ){
02311                 strcpy( szTitle, "Ⅰ" );
02312             }
02313             // 2003.06.28 Moca 漢数字も同一階層に
02314             //  漢数字が異なる＝番号が異なると異なる見出し記号と認識されていたのを
02315             //  皆同じ階層と識別されるように
02316             else{
02317                 char szCheck[3];
02318                 szCheck[0] = pLine[i];
02319                 szCheck[1] = pLine[i + 1];
02320                 szCheck[2] = '\0';
02321                 /* 一～十 */
02322                 if( NULL != strstr( "〇一二三四五六七八九十百零壱弐参伍", szCheck ) ){
02323                     strcpy( szTitle, "一" );
02324                 }
02325             }
02326         }
02327         /*  「見出し記号」に含まれる文字で始まるか、
02328             (0、(1、...(9、(A、(B、...(Z、(a、(b、...(z
02329             で始まる行は、アウトライン結果に表示する。
02330         */
02331         pszText = new char[nLineLen + 1];
02332         memcpy( pszText, (const char *)&pLine[i], nLineLen );
02333         pszText[nLineLen] = '\0';
02334         for( i = 0; i < (int)lstrlen(pszText); ++i ){
02335             if( pszText[i] == CR ||
02336                 pszText[i] == LF ){
02337                 pszText[i] = '\0';
02338             }
02339         }
02340         /*
02341           カーソル位置変換
02342           物理位置(行頭からのバイト数、折り返し無し行位置)
02343           →
02344           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02345         */
02346         int     nPosX;
02347         int     nPosY;
02348         m_cLayoutMgr.CaretPos_Phys2Log(
02349             0,
02350             nLineCount,
02351             &nPosX,
02352             &nPosY
02353         );
02354         /* nDepthを計算 */
02355         int k;
02356         BOOL bAppend;
02357         bAppend = TRUE;
02358         for ( k = 0; k < nDepth; k++ ){
02359             int nResult = strcmp( pszStack[k], szTitle );
02360             if ( nResult == 0 ){
02361                 break;
02362             }
02363         }
02364         if ( k < nDepth ){
02365             //  ループ途中でbreak;してきた。＝今までに同じ見出しが存在していた。
02366             //  ので、同じレベルに合わせてAppendData.
02367             nDepth = k;
02368         }
02369         else if( nMaxStack > k ){
02370             //  いままでに同じ見出しが存在しなかった。
02371             //  ので、pszStackにコピーしてAppendData.
02372             strcpy(pszStack[nDepth], szTitle);
02373         }else{
02374             // 2002.11.03 Moca 最大値を超えるとバッファオーバーラン
02375             // nDepth = nMaxStack;
02376             bAppend = FALSE;
02377         }
02378
02379         if( FALSE != bAppend ){
02380             pcFuncInfoArr->AppendData( nLineCount + 1, nPosY + 1 , (char *)pszText, 0, nDepth );
02381             nDepth++;
02382         }
02383         delete [] pszText;
02384
02385     }
02386     return;
02387 }
02388
02389
02394 struct oneRule {
02395     char szMatch[256];
02396     int  nLength;
02397     char szGroupName[256];
02398 };
02399
02405 int CEditDoc::ReadRuleFile( const char* pszFilename, oneRule* pcOneRule, int nMaxCount )
02406 {
02407     long    i;
02408     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
02409     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
02410     FILE*   pFile = _tfopen_absini( pszFilename, "r" );
02411     if( NULL == pFile ){
02412         return 0;
02413     }
02414     char    szLine[LINEREADBUFSIZE];
02415     const char* pszDelimit = " /// ";
02416     const char* pszKeySeps = ",\0";
02417     char*   pszWork;
02418     int nDelimitLen = strlen( pszDelimit );
02419     int nCount = 0;
02420     while( NULL != fgets( szLine, sizeof(szLine), pFile ) && nCount < nMaxCount ){
02421         pszWork = strstr( szLine, pszDelimit );
02422         if( NULL != pszWork && szLine[0] != ';' ){
02423             *pszWork = '\0';
02424             pszWork += nDelimitLen;
02425
02426             /* 最初のトークンを取得します。 */
02427             char* pszToken = strtok( szLine, pszKeySeps );
02428             while( NULL != pszToken ){
02429 //              nRes = _stricmp( pszKey, pszToken );
02430                 for( i = 0; i < (int)lstrlen(pszWork); ++i ){
02431                     if( pszWork[i] == '\r' ||
02432                         pszWork[i] == '\n' ){
02433                         pszWork[i] = '\0';
02434                         break;
02435                     }
02436                 }
02437                 strncpy( pcOneRule[nCount].szMatch, pszToken, 255 );
02438                 strncpy( pcOneRule[nCount].szGroupName, pszWork, 255 );
02439                 pcOneRule[nCount].szMatch[255] = '\0';
02440                 pcOneRule[nCount].szGroupName[255] = '\0';
02441                 pcOneRule[nCount].nLength = strlen(pcOneRule[nCount].szMatch);
02442                 nCount++;
02443                 pszToken = strtok( NULL, pszKeySeps );
02444             }
02445         }
02446     }
02447     fclose( pFile );
02448     return nCount;
02449 }
02450
02457 void CEditDoc::MakeFuncList_RuleFile( CFuncInfoArr* pcFuncInfoArr )
02458 {
02459     const unsigned char*    pLine;
02460     int                     nLineLen;
02461     int                     nLineCount;
02462     int                     i;
02463     int                     j;
02464     char*                   pszText;
02465
02466     /* ルールファイルの内容をバッファに読み込む */
02467     oneRule test[1024]; //  1024個許可。
02468     int nCount = ReadRuleFile(GetDocumentAttribute().m_szOutlineRuleFilename, test, 1024 );
02469     if ( nCount < 1 ){
02470         return;
02471     }
02472
02473     /*  ネストの深さは、32レベルまで、ひとつのヘッダは、最長256文字まで区別
02474         （256文字まで同じだったら同じものとして扱います）
02475     */
02476     const int nMaxStack = 32;   //  ネストの最深
02477     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
02478     char pszStack[nMaxStack][256];
02479     char szTitle[256];          //  一時領域
02480     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
02481         pLine = (const unsigned char *)m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02482         if( NULL == pLine ){
02483             break;
02484         }
02485         for( i = 0; i < nLineLen; ++i ){
02486             if( pLine[i] == ' ' ||
02487                 pLine[i] == '\t'){
02488                 continue;
02489             }else
02490             if( i + 1 < nLineLen && pLine[i] == 0x81 && pLine[i + 1] == 0x40 ){
02491                 ++i;
02492                 continue;
02493             }
02494             break;
02495         }
02496         if( i >= nLineLen ){
02497             continue;
02498         }
02499         for( j = 0; j < nCount; j++ ){
02500             if ( 0 == strncmp( (const char*)&pLine[i], test[j].szMatch, test[j].nLength ) ){
02501                 strcpy( szTitle, test[j].szGroupName );
02502                 break;
02503             }
02504         }
02505         if( j >= nCount ){
02506             continue;
02507         }
02508         /*  ルールにマッチした行は、アウトライン結果に表示する。
02509         */
02510         pszText = new char[nLineLen + 1];
02511         memcpy( pszText, (const char *)&pLine[i], nLineLen );
02512         pszText[nLineLen] = '\0';
02513         int nTextLen = lstrlen( pszText );
02514         for( i = 0; i < nTextLen; ++i ){
02515             if( pszText[i] == CR ||
02516                 pszText[i] == LF ){
02517                 pszText[i] = '\0';
02518                 break;
02519             }
02520         }
02521         /*
02522           カーソル位置変換
02523           物理位置(行頭からのバイト数、折り返し無し行位置)
02524           →
02525           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02526         */
02527         int     nPosX;
02528         int     nPosY;
02529         m_cLayoutMgr.CaretPos_Phys2Log(
02530             0,
02531             nLineCount,
02532             &nPosX,
02533             &nPosY
02534         );
02535         /* nDepthを計算 */
02536         int k;
02537         BOOL bAppend;
02538         bAppend = TRUE;
02539         for ( k = 0; k < nDepth; k++ ){
02540             int nResult = strcmp( pszStack[k], szTitle );
02541             if ( nResult == 0 ){
02542                 break;
02543             }
02544         }
02545         if ( k < nDepth ){
02546             //  ループ途中でbreak;してきた。＝今までに同じ見出しが存在していた。
02547             //  ので、同じレベルに合わせてAppendData.
02548             nDepth = k;
02549         }
02550         else if( nMaxStack> k ){
02551             //  いままでに同じ見出しが存在しなかった。
02552             //  ので、pszStackにコピーしてAppendData.
02553             strcpy(pszStack[nDepth], szTitle);
02554         }else{
02555             // 2002.11.03 Moca 最大値を超えるとバッファオーバーランするから規制する
02556             // nDepth = nMaxStack;
02557             bAppend = FALSE;
02558         }
02559
02560         if( FALSE != bAppend ){
02561             pcFuncInfoArr->AppendData( nLineCount + 1, nPosY + 1 , (char *)pszText, 0, nDepth );
02562             nDepth++;
02563         }
02564         delete [] pszText;
02565
02566     }
02567     return;
02568 }
02569
02570
02571
02573 void CEditDoc::MakeTopicList_cobol( CFuncInfoArr* pcFuncInfoArr )
02574 {
02575     const unsigned char*    pLine;
02576     int                     nLineLen;
02577     int                     nLineCount;
02578     int                     i;
02579 //  int                     j;
02580 //  int                     nCharChars;
02581 //  int                     nCharChars2;
02582 //  int                     nStartsLen;
02583 //  char*                   pszText;
02584     int                     k;
02585 //  int                     m;
02586     char                    szDivision[1024];
02587     char                    szLabel[1024];
02588     const char*             pszKeyWord;
02589     int                     nKeyWordLen;
02590     BOOL                    bDivision;
02591
02592     szDivision[0] = '\0';
02593     szLabel[0] =  '\0';
02594
02595
02596     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
02597         pLine = (const unsigned char *)m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02598         if( NULL == pLine ){
02599             break;
02600         }
02601         /* コメント行か */
02602         if( 7 <= nLineLen && pLine[6] == '*' ){
02603             continue;
02604         }
02605         /* ラベル行か */
02606         if( 8 <= nLineLen && pLine[7] != ' ' ){
02607             k = 0;
02608             for( i = 7; i < nLineLen; ){
02609                 if( pLine[i] == '.'
02610                  || pLine[i] == CR
02611                  || pLine[i] == LF
02612                 ){
02613                     break;
02614                 }
02615                 szLabel[k] = pLine[i];
02616                 ++k;
02617                 ++i;
02618                 if( pLine[i - 1] == ' ' ){
02619                     for( ; i < nLineLen; ++i ){
02620                         if( pLine[i] != ' ' ){
02621                             break;
02622                         }
02623                     }
02624                 }
02625             }
02626             szLabel[k] = '\0';
02627 //          MYTRACE( "szLabel=[%s]\n", szLabel );
02628
02629
02630
02631             pszKeyWord = "division";
02632             nKeyWordLen = lstrlen( pszKeyWord );
02633             bDivision = FALSE;
02634             for( i = 0; i <= (int)lstrlen( szLabel ) - nKeyWordLen; ++i ){
02635                 if( 0 == memicmp( &szLabel[i], pszKeyWord, nKeyWordLen ) ){
02636                     szLabel[i + nKeyWordLen] = '\0';
02637                     strcpy( szDivision, szLabel );
02638                     bDivision = TRUE;
02639                     break;
02640                 }
02641             }
02642             if( bDivision ){
02643                 continue;
02644             }
02645             /*
02646               カーソル位置変換
02647               物理位置(行頭からのバイト数、折り返し無し行位置)
02648               →
02649               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02650             */
02651
02652             int     nPosX;
02653             int     nPosY;
02654             char    szWork[1024];
02655             m_cLayoutMgr.CaretPos_Phys2Log(
02656                 0,
02657                 nLineCount,
02658                 &nPosX,
02659                 &nPosY
02660             );
02661             wsprintf( szWork, "%s::%s", szDivision, szLabel );
02662             pcFuncInfoArr->AppendData( nLineCount + 1, nPosY + 1 , (char *)szWork, 0 );
02663         }
02664     }
02665     return;
02666 }
02667
02668
02674 void CEditDoc::MakeTopicList_asm( CFuncInfoArr* pcFuncInfoArr )
02675 {
02676     int nTotalLine;
02677
02678     nTotalLine = m_cDocLineMgr.GetLineCount();
02679
02680     for( int nLineCount = 0; nLineCount < nTotalLine; nLineCount++ ){
02681         const TCHAR* pLine;
02682         int nLineLen;
02683         TCHAR* pTmpLine;
02684         int length;
02685         int offset;
02686 #define MAX_ASM_TOKEN 2
02687         TCHAR* token[MAX_ASM_TOKEN];
02688         int j;
02689         TCHAR* p;
02690
02691         //1行取得する。
02692         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
02693         if( pLine == NULL ) break;
02694
02695         //作業用にコピーを作成する。バイナリがあったらその後ろは知らない。
02696         pTmpLine = _tcsdup( pLine );
02697         if( pTmpLine == NULL ) break;
02698         if( _tcslen( pTmpLine ) >= (unsigned int)nLineLen ){    //バイナリを含んでいたら短くなるので...
02699             pTmpLine[ nLineLen ] = _T('\0');    //指定長で切り詰め
02700         }
02701
02702         //行コメント削除
02703         p = _tcsstr( pTmpLine, _T(";") );
02704         if( p ) *p = _T('\0');
02705
02706         length = _tcslen( pTmpLine );
02707         offset = 0;
02708
02709         //トークンに分割
02710         for( j = 0; j < MAX_ASM_TOKEN; j++ ) token[ j ] = NULL;
02711         for( j = 0; j < MAX_ASM_TOKEN; j++ ){
02712             token[ j ] = my_strtok( pTmpLine, length, &offset, _T(" \t\r\n") );
02713             if( token[ j ] == NULL ) break;
02714             //トークンに含まれるべき文字でないか？
02715             if( _tcsstr( token[ j ], _T("\"")) != NULL
02716              || _tcsstr( token[ j ], _T("\\")) != NULL
02717              || _tcsstr( token[ j ], _T("'" )) != NULL ){
02718                 token[ j ] = NULL;
02719                 break;
02720             }
02721         }
02722
02723         if( token[ 0 ] != NULL ){   //トークンが1個以上ある
02724             int nFuncId = -1;
02725             TCHAR* entry_token = NULL;
02726
02727             length = _tcslen( token[ 0 ] );
02728             if( length >= 2
02729              && token[ 0 ][ length - 1 ] == _T(':') ){  //ラベル
02730                 token[ 0 ][ length - 1 ] = _T('\0');
02731                 nFuncId = 51;
02732                 entry_token = token[ 0 ];
02733             }else
02734             if( token[ 1 ] != NULL ){   //トークンが2個以上ある
02735                 if( my_stricmp( token[ 1 ], _T("proc") ) == 0 ){    //関数
02736                     nFuncId = 50;
02737                     entry_token = token[ 0 ];
02738                 }else
02739                 if( my_stricmp( token[ 1 ], _T("endp") ) == 0 ){    //関数終了
02740                     nFuncId = 52;
02741                     entry_token = token[ 0 ];
02742                 //}else
02743                 //if( my_stricmp( token[ 1 ], _T("macro") ) == 0 ){ //マクロ
02744                 //  nFuncId = -1;
02745                 //  entry_token = token[ 0 ];
02746                 //}else
02747                 //if( my_stricmp( token[ 1 ], _T("struc") ) == 0 ){ //構造体
02748                 //  nFuncId = -1;
02749                 //  entry_token = token[ 0 ];
02750                 }
02751             }
02752
02753             if( nFuncId >= 0 ){
02754                 /*
02755                   カーソル位置変換
02756                   物理位置(行頭からのバイト数、折り返し無し行位置)
02757                   →
02758                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02759                 */
02760                 int     nPosX;
02761                 int     nPosY;
02762                 m_cLayoutMgr.CaretPos_Phys2Log(
02763                     0,
02764                     nLineCount/*nFuncLine - 1*/,
02765                     &nPosX,
02766                     &nPosY
02767                 );
02768                 pcFuncInfoArr->AppendData( nLineCount + 1/*nFuncLine*/, nPosY + 1, entry_token, nFuncId );
02769             }
02770         }
02771
02772         free( pTmpLine );
02773     }
02774
02775     return;
02776 }
02777
02778
02779
02787 void CEditDoc::MakeTopicList_wztxt(CFuncInfoArr* pcFuncInfoArr)
02788 {
02789     int levelPrev = 0;
02790
02791     for(int nLineCount=0;nLineCount<m_cDocLineMgr.GetLineCount();nLineCount++)
02792     {
02793         const char* pLine;
02794         int         nLineLen;
02795
02796         pLine = m_cDocLineMgr.GetLineStr(nLineCount,&nLineLen);
02797         if(!pLine)
02798         {
02799             break;
02800         }
02801         //  May 25, 2003 genta 判定順序変更
02802         if( *pLine == '.' )
02803         {
02804             const char* pPos;   //  May 25, 2003 genta
02805             int         nLength;
02806             char        szTitle[1024];
02807
02808             //  ピリオドの数＝階層の深さを数える
02809             for( pPos = pLine + 1 ; *pPos == '.' ; ++pPos )
02810                 ;
02811
02812             int nPosX;
02813             int nPosY;
02814             m_cLayoutMgr.CaretPos_Phys2Log(
02815                 0,
02816                 nLineCount,
02817                 &nPosX,
02818                 &nPosY
02819             );
02820
02821             int level = pPos - pLine;
02822
02823             // 2003.06.27 Moca 階層が2段位上深くなるときは、無題の要素を追加
02824             if( levelPrev < level && level != levelPrev + 1  ){
02825                 int dummyLevel;
02826                 // (無題)を挿入
02827                 //  ただし，TAG一覧には出力されないように
02828                 for( dummyLevel = levelPrev + 1; dummyLevel < level; dummyLevel++ ){
02829                     pcFuncInfoArr->AppendData( nLineCount+1, nPosY+1,
02830                         "(無題)", FUNCINFO_NOCLIPTEXT, dummyLevel - 1 );
02831                 }
02832             }
02833             levelPrev = level;
02834
02835             nLength = wsprintf(szTitle,"%d - ", level );
02836
02837             char *pDest = szTitle + nLength; // 書き込み先
02838             char *pDestEnd = szTitle + sizeof(szTitle) - 2;
02839
02840             while( pDest < pDestEnd )
02841             {
02842                 if( *pPos =='\r' || *pPos =='\n' || *pPos == '\0')
02843                 {
02844                     break;
02845                 }
02846                 //  May 25, 2003 genta 2バイト文字の切断を防ぐ
02847                 else if( _IS_SJIS_1( *pPos )){
02848                     *pDest++ = *pPos++;
02849                     *pDest++ = *pPos++;
02850                 }
02851                 else {
02852                     *pDest++ = *pPos++;
02853                 }
02854             }
02855             *pDest = '\0';
02856             pcFuncInfoArr->AppendData(nLineCount+1,nPosY+1,szTitle, 0, level - 1);
02857         }
02858     }
02859 }
02860
02868 void CEditDoc::MakeTopicList_html(CFuncInfoArr* pcFuncInfoArr)
02869 {
02870     const unsigned char*    pLine;
02871     int                     nLineLen;
02872     int                     nLineCount;
02873     int                     i;
02874     int                     j;
02875     int                     k;
02876     BOOL                    bEndTag;
02877     BOOL                    bCommentTag = FALSE;
02878
02879     /*  ネストの深さは、nMaxStackレベルまで、ひとつのヘッダは、最長32文字まで区別
02880         （32文字まで同じだったら同じものとして扱います）
02881     */
02882     const int nMaxStack = 32;   //  ネストの最深
02883     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
02884     char pszStack[nMaxStack][32];
02885     char szTitle[32];           //  一時領域
02886     for(nLineCount=0;nLineCount<m_cDocLineMgr.GetLineCount();nLineCount++)
02887     {
02888         pLine   =   (const unsigned char *)m_cDocLineMgr.GetLineStr(nLineCount,&nLineLen);
02889         if(!pLine)
02890         {
02891             break;
02892         }
02893         for(i=0;i<nLineLen-1;i++)
02894         {
02895             // 2004.04.20 Moca コメントを処理する
02896             if( bCommentTag )
02897             {
02898                 if( i < nLineLen - 3 && 0 == memcmp( "-->", pLine + i , 3 ) )
02899                 {
02900                     bCommentTag = FALSE;
02901                     i += 2;
02902                 }
02903                 continue;
02904             }
02905             // 2004.04.20 Moca To Here
02906             if(pLine[i]!='<' || nDepth>=nMaxStack)
02907             {
02908                 continue;
02909             }
02910             bEndTag =   FALSE;
02911             if(pLine[++i]=='/')
02912             {
02913                 i++;
02914                 bEndTag =   TRUE;
02915             }
02916             for(j=0;i+j<nLineLen && j<sizeof(szTitle)-1;j++)
02917             {
02918                 if((pLine[i+j]<'a' || pLine[i+j]>'z') &&
02919                     (pLine[i+j]<'A' || pLine[i+j]>'Z') &&
02920                     !(j!=0 && pLine[i+j]>='0' && pLine[i+j]<='9'))
02921                 {
02922                     break;
02923                 }
02924                 szTitle[j]  =   pLine[i+j];
02925             }
02926             if(j==0)
02927             {
02928                 // 2004.04.20 Moca From Here コメントを処理する
02929                 if( i < nLineLen - 3 && 0 == memcmp( "!--", pLine + i, 3 ) )
02930                 {
02931                     bCommentTag = TRUE;
02932                     i += 3;
02933                 }
02934                 // 2004.04.20 Moca To Here
02935                 continue;
02936             }
02937             szTitle[j]  =   '\0';
02938             if(bEndTag)
02939             {
02940                 int nDepthOrg = nDepth; // 2004.04.20 Moca 追加
02941                 // 終了タグ
02942                 while(nDepth>0)
02943                 {
02944                     nDepth--;
02945                     if(!_stricmp(pszStack[nDepth],szTitle))
02946                     {
02947                         break;
02948                     }
02949                 }
02950                 // 2004.04.20 Moca ツリー中と一致しないときは、この終了タグは無視
02951                 if( nDepth == 0 )
02952                 {
02953                     if(_stricmp(pszStack[nDepth],szTitle))
02954                     {
02955                         nDepth = nDepthOrg;
02956                     }
02957                 }
02958             }
02959             else
02960             {
02961                 if(_stricmp(szTitle,"br") && _stricmp(szTitle,"area") &&
02962                     _stricmp(szTitle,"base") && _stricmp(szTitle,"frame") && _stricmp(szTitle,"param"))
02963                 {
02964                     int     nPosX;
02965                     int     nPosY;
02966
02967                     m_cLayoutMgr.CaretPos_Phys2Log(
02968                         i,
02969                         nLineCount,
02970                         &nPosX,
02971                         &nPosY
02972                     );
02973
02974                     if(_stricmp(szTitle,"hr") && _stricmp(szTitle,"meta") && _stricmp(szTitle,"link") &&
02975                         _stricmp(szTitle,"input") && _stricmp(szTitle,"img") && _stricmp(szTitle,"area") &&
02976                         _stricmp(szTitle,"base") && _stricmp(szTitle,"frame") && _stricmp(szTitle,"param"))
02977                     {
02978                         // 終了タグなしを除く全てのタグらしきものを判定
02979                         strcpy(pszStack[nDepth],szTitle);
02980                         k   =   j;
02981                         if(j<sizeof(szTitle)-3)
02982                         {
02983                             for(;i+j<nLineLen;j++)
02984                             {
02985                                 if(pLine[i+j]=='/' && pLine[i+j+1]=='>')
02986                                 {
02987                                     bEndTag =   TRUE;
02988                                     break;
02989                                 }
02990                                 else if(pLine[i+j]=='>')
02991                                 {
02992                                     break;
02993                                 }
02994                             }
02995                             if(!bEndTag)
02996                             {
02997                                 szTitle[k++]    =   ' ';
02998                                 for(j-=k-1;i+j+k<nLineLen && k<sizeof(szTitle)-1;k++)
02999                                 {
03000                                     if(pLine[i+j+k]=='<' || pLine[i+j+k]=='\r' || pLine[i+j+k]=='\n')
03001                                     {
03002                                         break;
03003                                     }
03004                                     szTitle[k]  =   pLine[i+j+k];
03005                                 }
03006                             j += k-1;
03007                             }
03008                         }
03009                         szTitle[k]  =   '\0';
03010                         pcFuncInfoArr->AppendData(nLineCount+1,nPosY+1,szTitle,0,(bEndTag ? nDepth : nDepth++));
03011                     }
03012                     else
03013                     {
03014                         for(;i+j<nLineLen && j<sizeof(szTitle)-1;j++)
03015                         {
03016                             if(pLine[i+j]=='>')
03017                             {
03018                                 break;
03019                             }
03020                             szTitle[j]  =   pLine[i+j];
03021                         }
03022                         szTitle[j]  =   '\0';
03023                         pcFuncInfoArr->AppendData(nLineCount+1,nPosY+1,szTitle,0,nDepth);
03024                     }
03025                 }
03026             }
03027             i   +=  j;
03028         }
03029     }
03030 }
03031
03038 void CEditDoc::MakeTopicList_tex(CFuncInfoArr* pcFuncInfoArr)
03039 {
03040     const char* pLine;
03041     int                     nLineLen;
03042     int                     nLineCount;
03043     int                     i;
03044     int                     j;
03045     int                     k;
03046
03047     const int nMaxStack = 8;    //  ネストの最深
03048     int nDepth = 0;             //  いまのアイテムの深さを表す数値。
03049     char szTag[32], szTitle[256];           //  一時領域
03050     int thisSection=0, lastSection = 0; // 現在のセクション種類と一つ前のセクション種類
03051     int stackSection[nMaxStack];        // 各深さでのセクションの番号
03052     int nStartTitlePos;                 // \section{dddd} の dddd の部分の始まる番号
03053     int bNoNumber;                      // * 付の場合はセクション番号を付けない
03054
03055     // 一行ずつ
03056     for(nLineCount=0;nLineCount<m_cDocLineMgr.GetLineCount();nLineCount++)
03057     {
03058         pLine   =   (const char *)m_cDocLineMgr.GetLineStr(nLineCount,&nLineLen);
03059         if(!pLine) break;
03060         // 一文字ずつ
03061         for(i=0;i<nLineLen-1;i++)
03062         {
03063             if(pLine[i] == '%' && !(i>0 && _IS_SJIS_1(pLine[i-1])) ) break; // コメントなら以降はいらない
03064             if(pLine[i] != '\\'
03065                 && !(i>0 && _IS_SJIS_1(pLine[i-1])) // 「\」の前の文字がSJISの1バイト目なら次の文字へ
03066                 || nDepth>=nMaxStack) continue; // 「\」がないなら次の文字へ
03067             ++i;
03068             // 見つかった「\」以降の文字列チェック
03069             for(j=0;i+j<nLineLen && j<sizeof(szTag)-1;j++)
03070             {
03071                 if(pLine[i+j] == '{' && !(i+j>0 && _IS_SJIS_1((unsigned char)pLine[i+j-1])) ) { // SJIS1チェック
03072                     bNoNumber = (pLine[i+j-1] == '*');
03073                     nStartTitlePos = j+i+1;
03074                     break;
03075                 }
03076                 szTag[j] = pLine[i+j];
03077             }
03078             if(j==0) continue;
03079             if(bNoNumber){
03080                 szTag[j-1] = '\0';
03081             }else{
03082                 szTag[j]   = '\0';
03083             }
03084 //          MessageBox(NULL, szTitle, "", MB_OK);
03085
03086             thisSection = 0;
03087             if(!strcmp(szTag,"subsubsection")) thisSection = 4;
03088             else if(!strcmp(szTag,"subsection")) thisSection = 3;
03089             else if(!strcmp(szTag,"section")) thisSection = 2;
03090             else if(!strcmp(szTag,"chapter")) thisSection = 1;
03091             else if(!strcmp(szTag,"begin")) {       // beginなら prosperのslideの可能性も考慮
03092                 // さらに{slide}{}まで読みとっておく
03093                 if(strstr(pLine, "{slide}")){
03094                     k=0;
03095                     for(j=nStartTitlePos+1;i+j<nLineLen && j<sizeof(szTag)-1;j++)
03096                     {
03097                         if(pLine[i+j] == '{' && !(i+j>0 && _IS_SJIS_1((unsigned char)pLine[i+j-1])) ) { // SJIS1チェック
03098                             nStartTitlePos = j+i+1;
03099                             break;
03100                         }
03101                         szTag[k++]  =   pLine[i+j];
03102                     }
03103                     szTag[k] = '\0';
03104                     thisSection = 1;
03105                 }
03106             }
03107
03108             if( thisSection > 0)
03109             {
03110                 // sectionの中身取得
03111                 for(k=0;nStartTitlePos+k<nLineLen && k<sizeof(szTitle)-1;k++)
03112                 {
03113                     if(_IS_SJIS_1((unsigned char)pLine[k+nStartTitlePos])) {
03114                         szTitle[k] = pLine[k+nStartTitlePos];
03115                         k++;    // 次はチェック不要
03116                     } else if(pLine[k+nStartTitlePos] == '}') {
03117                         break;
03118                     }
03119                     szTitle[k] = pLine[k+nStartTitlePos];
03120                 }
03121                 szTitle[k] = '\0';
03122
03123                 int     nPosX;
03124                 int     nPosY;
03125                 TCHAR tmpstr[256];
03126                 TCHAR secstr[4];
03127
03128                 m_cLayoutMgr.CaretPos_Phys2Log(
03129                     i,
03130                     nLineCount,
03131                     &nPosX,
03132                     &nPosY
03133                 );
03134
03135                 int sabunSection = thisSection - lastSection;
03136                 if(lastSection == 0){
03137                     nDepth = 0;
03138                     stackSection[0] = 1;
03139                 }else{
03140                     nDepth += sabunSection;
03141                     if(sabunSection > 0){
03142                         if(nDepth >= nMaxStack) nDepth=nMaxStack-1;
03143                         stackSection[nDepth] = 1;
03144                     }else{
03145                         if(nDepth < 0) nDepth=0;
03146                         ++stackSection[nDepth];
03147                     }
03148                 }
03149                 tmpstr[0] = '\0';
03150                 if(!bNoNumber){
03151                     for(k=0; k<=nDepth; k++){
03152                         sprintf(secstr, "%d.", stackSection[k]);
03153                         strcat(tmpstr, secstr);
03154                     }
03155                     strcat(tmpstr, " ");
03156                 }
03157                 strcat(tmpstr, szTitle);
03158                 pcFuncInfoArr->AppendData(nLineCount+1,nPosY+1, tmpstr, 0, nDepth);
03159                 if(!bNoNumber) lastSection = thisSection;
03160             }
03161             i   +=  j;
03162         }
03163     }
03164 }
03165
03166
03167
03168
03169 /* アクティブなペインを設定 */
03170 void  CEditDoc::SetActivePane( int nIndex )
03171 {
03172     m_cEditViewArr[m_nActivePaneIndex].OnKillFocus();
03173     m_cEditViewArr[m_nActivePaneIndex].m_cUnderLine.CaretUnderLineOFF(TRUE);    //  2002/05/11 YAZAKI
03174
03175     /* アクティブなビューを切り替える */
03176     m_nActivePaneIndex = nIndex;
03177
03178     m_cEditViewArr[m_nActivePaneIndex].OnSetFocus();
03179
03180     m_cEditViewArr[m_nActivePaneIndex].RedrawAll(); /* フォーカス移動時の再描画 */
03181
03182     m_cSplitterWnd.SetActivePane( nIndex );
03183
03184     if( NULL != m_cDlgFind.m_hWnd ){        /* 「検索」ダイアログ */
03185         /* モードレス時：検索対象となるビューの変更 */
03186         m_cDlgFind.ChangeView( (LPARAM)&m_cEditViewArr[m_nActivePaneIndex] );
03187     }
03188     if( NULL != m_cDlgReplace.m_hWnd ){ /* 「置換」ダイアログ */
03189         /* モードレス時：検索対象となるビューの変更 */
03190         m_cDlgReplace.ChangeView( (LPARAM)&m_cEditViewArr[m_nActivePaneIndex] );
03191     }
03192     if( NULL != m_cHokanMgr.m_hWnd ){   /* 「入力補完」ダイアログ */
03193         m_cHokanMgr.Hide();
03194         /* モードレス時：検索対象となるビューの変更 */
03195         m_cHokanMgr.ChangeView( (LPARAM)&m_cEditViewArr[m_nActivePaneIndex] );
03196     }
03197     if( NULL != m_cDlgFuncList.m_hWnd ){    /* 「アウトライン」ダイアログ */ // 20060201 aroka
03198         /* モードレス時：現在位置表示の対象となるビューの変更 */
03199         m_cDlgFuncList.ChangeView( (LPARAM)&m_cEditViewArr[m_nActivePaneIndex] );
03200     }
03201
03202     //  2002/05/08 YAZAKI OnKillFocus()とOnSetFocus()で、アンダーラインを制御するようにした。
03203     //  2001/06/20 Start by asa-o:  アクティブでないペインのカーソルアンダーバーを非表示
03204     //  m_cEditViewArr[m_nActivePaneIndex].CaretUnderLineON(TRUE);
03205     //  m_cEditViewArr[m_nActivePaneIndex^1].CaretUnderLineOFF(TRUE);
03206     //  m_cEditViewArr[m_nActivePaneIndex^2].CaretUnderLineOFF(TRUE);
03207     //  m_cEditViewArr[(m_nActivePaneIndex^2)^1].CaretUnderLineOFF(TRUE);
03208     //  2001/06/20 End
03209
03210     return;
03211 }
03212
03213
03214
03215 /* アクティブなペインを取得 */
03216 int CEditDoc::GetActivePane( void )
03217 {
03218     return m_nActivePaneIndex;
03219 }
03220
03221
03222
03228 void CEditDoc::RedrawInactivePane(void)
03229 {
03230     if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
03231         m_cEditViewArr[m_nActivePaneIndex^1].AdjustScrollBars();
03232         m_cEditViewArr[m_nActivePaneIndex^1].Redraw();
03233     }
03234     if ( m_cSplitterWnd.GetAllSplitRows() == 2 ){
03235         m_cEditViewArr[m_nActivePaneIndex^2].AdjustScrollBars();
03236         m_cEditViewArr[m_nActivePaneIndex^2].Redraw();
03237         if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
03238             m_cEditViewArr[(m_nActivePaneIndex^1)^2].AdjustScrollBars();
03239             m_cEditViewArr[(m_nActivePaneIndex^1)^2].Redraw();
03240         }
03241     }
03242 }
03243
03244 /* すべてのペインで、行番号表示に必要な幅を再設定する（必要なら再描画する） */
03245 BOOL CEditDoc::DetectWidthOfLineNumberAreaAllPane( BOOL bRedraw )
03246 {
03247     if ( m_cEditViewArr[m_nActivePaneIndex].DetectWidthOfLineNumberArea( bRedraw ) ){
03248         /* ActivePaneで計算したら、再設定・再描画が必要と判明した */
03249         if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
03250             m_cEditViewArr[m_nActivePaneIndex^1].DetectWidthOfLineNumberArea( bRedraw );
03251         }
03252         else {
03253             //  表示されていないので再描画しない
03254             m_cEditViewArr[m_nActivePaneIndex^1].DetectWidthOfLineNumberArea( FALSE );
03255         }
03256         if ( m_cSplitterWnd.GetAllSplitRows() == 2 ){
03257             m_cEditViewArr[m_nActivePaneIndex^2].DetectWidthOfLineNumberArea( bRedraw );
03258             if ( m_cSplitterWnd.GetAllSplitCols() == 2 ){
03259                 m_cEditViewArr[(m_nActivePaneIndex^1)^2].DetectWidthOfLineNumberArea( bRedraw );
03260             }
03261         }
03262         else {
03263             m_cEditViewArr[m_nActivePaneIndex^2].DetectWidthOfLineNumberArea( FALSE );
03264             m_cEditViewArr[(m_nActivePaneIndex^1)^2].DetectWidthOfLineNumberArea( FALSE );
03265         }
03266         return TRUE;
03267     }
03268     return FALSE;
03269 }
03270
03278 BOOL CEditDoc::HandleCommand( int nCommand )
03279 {
03280     int             i;
03281     int             j;
03282     int             nGroup;
03283     int             nRowNum;
03284     int             nPane;
03285     HWND            hwndWork;
03286     EditNode*       pEditNodeArr;
03287     //  May. 19, 2006 genta 上位16bitに送信元の識別子が入るように変更したので
03288     //  下位16ビットのみを取り出す
03289     switch( LOWORD( nCommand )){
03290     case F_PREVWINDOW:  //前のウィンドウ
03291         nPane = m_cSplitterWnd.GetPrevPane();
03292         if( -1 != nPane ){
03293             SetActivePane( nPane );
03294         }else{
03295             /* 現在開いている編集窓のリストを得る */
03296             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
03297             if(  nRowNum > 0 ){
03298                 /* 自分のウィンドウを調べる */
03299                 nGroup = 0;
03300                 for( i = 0; i < nRowNum; ++i )
03301                 {
03302                     if( m_hwndParent == pEditNodeArr[i].m_hWnd )
03303                     {
03304                         nGroup = pEditNodeArr[i].m_nGroup;
03305                         break;
03306                     }
03307                 }
03308                 if( i < nRowNum )
03309                 {
03310                     // 前のウィンドウ
03311                     for( j = i - 1; j >= 0; --j )
03312                     {
03313                         if( nGroup == pEditNodeArr[j].m_nGroup )
03314                             break;
03315                     }
03316                     if( j < 0 )
03317                     {
03318                         for( j = nRowNum - 1; j > i; --j )
03319                         {
03320                             if( nGroup == pEditNodeArr[j].m_nGroup )
03321                                 break;
03322                         }
03323                     }
03324                     /* 前のウィンドウをアクティブにする */
03325                     hwndWork = pEditNodeArr[j].m_hWnd;
03326                     /* アクティブにする */
03327                     ActivateFrameWindow( hwndWork );
03328                     /* 最後のペインをアクティブにする */
03329                     ::PostMessage( hwndWork, MYWM_SETACTIVEPANE, (WPARAM)-1, 1 );
03330                 }
03331                 delete [] pEditNodeArr;
03332             }
03333         }
03334         return TRUE;
03335     case F_NEXTWINDOW:  //次のウィンドウ
03336         nPane = m_cSplitterWnd.GetNextPane();
03337         if( -1 != nPane ){
03338             SetActivePane( nPane );
03339         }else{
03340             /* 現在開いている編集窓のリストを得る */
03341             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
03342             if(  nRowNum > 0 ){
03343                 /* 自分のウィンドウを調べる */
03344                 nGroup = 0;
03345                 for( i = 0; i < nRowNum; ++i )
03346                 {
03347                     if( m_hwndParent == pEditNodeArr[i].m_hWnd )
03348                     {
03349                         nGroup = pEditNodeArr[i].m_nGroup;
03350                         break;
03351                     }
03352                 }
03353                 if( i < nRowNum )
03354                 {
03355                     // 次のウィンドウ
03356                     for( j = i + 1; j < nRowNum; ++j )
03357                     {
03358                         if( nGroup == pEditNodeArr[j].m_nGroup )
03359                             break;
03360                     }
03361                     if( j >= nRowNum )
03362                     {
03363                         for( j = 0; j < i; ++j )
03364                         {
03365                             if( nGroup == pEditNodeArr[j].m_nGroup )
03366                                 break;
03367                         }
03368                     }
03369                     /* 次のウィンドウをアクティブにする */
03370                     hwndWork = pEditNodeArr[j].m_hWnd;
03371                     /* アクティブにする */
03372                     ActivateFrameWindow( hwndWork );
03373                     /* 最初のペインをアクティブにする */
03374                     ::PostMessage( hwndWork, MYWM_SETACTIVEPANE, (WPARAM)-1, 0 );
03375                 }
03376                 delete [] pEditNodeArr;
03377             }
03378         }
03379         return TRUE;
03380
03381     default:
03382         return m_cEditViewArr[m_nActivePaneIndex].HandleCommand( nCommand, TRUE, 0, 0, 0, 0 );
03383     }
03384 }
03385
03396 int* CEditDoc::SavePhysPosOfAllView(void)
03397 {
03398     const int NUM_OF_VIEW = 4;
03399     const int NUM_OF_POS = 5;
03400     const int XY = 2;
03401
03402     int* posary = new int[ NUM_OF_VIEW * NUM_OF_POS * XY ];
03403
03404     for( int i = 0; i < NUM_OF_VIEW; ++i ){
03405         m_cLayoutMgr.CaretPos_Log2Phys(
03406             m_cEditViewArr[i].m_nCaretPosX,
03407             m_cEditViewArr[i].m_nCaretPosY,
03408             &posary[i * ( NUM_OF_POS * XY ) + 0 * XY + 0 ],
03409             &posary[i * ( NUM_OF_POS * XY ) + 0 * XY + 1 ]
03410         );
03411         if( m_cEditViewArr[i].m_nSelectLineBgnFrom >= 0 ){
03412             m_cLayoutMgr.CaretPos_Log2Phys(
03413                 m_cEditViewArr[i].m_nSelectColmBgnFrom,
03414                 m_cEditViewArr[i].m_nSelectLineBgnFrom,
03415                 &posary[i * ( NUM_OF_POS * XY ) + 1 * XY + 0 ],
03416                 &posary[i * ( NUM_OF_POS * XY ) + 1 * XY + 1 ]
03417             );
03418         }
03419         if( m_cEditViewArr[i].m_nSelectLineBgnTo >= 0 ){
03420             m_cLayoutMgr.CaretPos_Log2Phys(
03421                 m_cEditViewArr[i].m_nSelectColmBgnTo,
03422                 m_cEditViewArr[i].m_nSelectLineBgnTo,
03423                 &posary[i * ( NUM_OF_POS * XY ) + 2 * XY + 0 ],
03424                 &posary[i * ( NUM_OF_POS * XY ) + 2 * XY + 1 ]
03425             );
03426         }
03427         if( m_cEditViewArr[i].m_nSelectLineFrom >= 0 ){
03428             m_cLayoutMgr.CaretPos_Log2Phys(
03429                 m_cEditViewArr[i].m_nSelectColmFrom,
03430                 m_cEditViewArr[i].m_nSelectLineFrom,
03431                 &posary[i * ( NUM_OF_POS * XY ) + 3 * XY + 0 ],
03432                 &posary[i * ( NUM_OF_POS * XY ) + 3 * XY + 1 ]
03433             );
03434         }
03435         if( m_cEditViewArr[i].m_nSelectLineTo >= 0 ){
03436             m_cLayoutMgr.CaretPos_Log2Phys(
03437                 m_cEditViewArr[i].m_nSelectColmTo,
03438                 m_cEditViewArr[i].m_nSelectLineTo,
03439                 &posary[i * ( NUM_OF_POS * XY ) + 4 * XY + 0 ],
03440                 &posary[i * ( NUM_OF_POS * XY ) + 4 * XY + 1 ]
03441             );
03442         }
03443     }
03444     return posary;
03445 }
03446
03453 void CEditDoc::RestorePhysPosOfAllView( int* posary )
03454 {
03455     const int NUM_OF_VIEW = 4;
03456     const int NUM_OF_POS = 5;
03457     const int XY = 2;
03458
03459     for( int i = 0; i < NUM_OF_VIEW; ++i ){
03460         int     nPosX;
03461         int     nPosY;
03462         m_cLayoutMgr.CaretPos_Phys2Log(
03463             posary[i * ( NUM_OF_POS * XY ) + 0 * XY + 0 ],
03464             posary[i * ( NUM_OF_POS * XY ) + 0 * XY + 1 ],
03465             &nPosX,
03466             &nPosY
03467         );
03468         m_cEditViewArr[i].MoveCursor( nPosX, nPosY, TRUE );
03469         m_cEditViewArr[i].m_nCaretPosX_Prev = m_cEditViewArr[i].m_nCaretPosX;
03470
03471         if( m_cEditViewArr[i].m_nSelectLineBgnFrom >= 0 ){
03472             m_cLayoutMgr.CaretPos_Phys2Log(
03473                 posary[i * ( NUM_OF_POS * XY ) + 1 * XY + 0 ],
03474                 posary[i * ( NUM_OF_POS * XY ) + 1 * XY + 1 ],
03475                 &m_cEditViewArr[i].m_nSelectColmBgnFrom,
03476                 &m_cEditViewArr[i].m_nSelectLineBgnFrom
03477             );
03478         }
03479         if( m_cEditViewArr[i].m_nSelectLineBgnTo >= 0 ){
03480             m_cLayoutMgr.CaretPos_Phys2Log(
03481                 posary[i * ( NUM_OF_POS * XY ) + 2 * XY + 0 ],
03482                 posary[i * ( NUM_OF_POS * XY ) + 2 * XY + 1 ],
03483                 &m_cEditViewArr[i].m_nSelectColmBgnTo,
03484                 &m_cEditViewArr[i].m_nSelectLineBgnTo
03485             );
03486         }
03487         if( m_cEditViewArr[i].m_nSelectLineFrom >= 0 ){
03488             m_cLayoutMgr.CaretPos_Phys2Log(
03489                 posary[i * ( NUM_OF_POS * XY ) + 3 * XY + 0 ],
03490                 posary[i * ( NUM_OF_POS * XY ) + 3 * XY + 1 ],
03491                 &m_cEditViewArr[i].m_nSelectColmFrom,
03492                 &m_cEditViewArr[i].m_nSelectLineFrom
03493             );
03494         }
03495         if( m_cEditViewArr[i].m_nSelectLineTo >= 0 ){
03496             m_cLayoutMgr.CaretPos_Phys2Log(
03497                 posary[i * ( NUM_OF_POS * XY ) + 4 * XY + 0 ],
03498                 posary[i * ( NUM_OF_POS * XY ) + 4 * XY + 1 ],
03499                 &m_cEditViewArr[i].m_nSelectColmTo,
03500                 &m_cEditViewArr[i].m_nSelectLineTo
03501             );
03502         }
03503     }
03504     delete[] posary;
03505 }
03506
03512 void CEditDoc::OnChangeSetting( void )
03513 {
03514 //  return;
03515     int         i;
03516     HWND        hwndProgress = NULL;
03517
03518     CEditWnd*   pCEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
03519
03520     //pCEditWnd->m_CFuncKeyWnd.Timer_ONOFF( FALSE ); // 20060126 aroka
03521
03522     if( NULL != pCEditWnd ){
03523         hwndProgress = pCEditWnd->m_hwndProgressBar;
03524         //  Status Barが表示されていないときはm_hwndProgressBar == NULL
03525     }
03526
03527     if( hwndProgress ){
03528         ::ShowWindow( hwndProgress, SW_SHOW );
03529     }
03530
03531     /* ファイルの排他モード変更 */
03532     if( m_nFileShareModeOld != m_pShareData->m_Common.m_nFileShareMode ){
03533         /* ファイルの排他ロック解除 */
03534         DoFileUnLock();
03535         /* ファイルの排他ロック */
03536         DoFileLock();
03537     }
03538     /* 共有データ構造体のアドレスを返す */
03539     m_pShareData = CShareData::getInstance()->GetShareData();
03540     CShareData::getInstance()->TransformFileName_MakeCache();
03541     int doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
03542     SetDocumentType( doctype, false );
03543
03544     int* posSaveAry = SavePhysPosOfAllView();
03545
03546     /* レイアウト情報の作成 */
03547     Types& ref = GetDocumentAttribute();
03548     m_cLayoutMgr.SetLayoutInfo(
03549         TRUE,
03550         hwndProgress,
03551         ref
03552     ); /* レイアウト情報の変更 */
03553
03554     /* ビューに設定変更を反映させる */
03555     for( i = 0; i < 4; ++i ){
03556         m_cEditViewArr[i].OnChangeSetting();
03557     }
03558     RestorePhysPosOfAllView( posSaveAry );
03559     if( hwndProgress ){
03560         ::ShowWindow( hwndProgress, SW_HIDE );
03561     }
03562 }
03563
03564
03565
03566
03567 /* 編集ファイル情報を格納 */
03568 void CEditDoc::SetFileInfo( FileInfo* pfi )
03569 {
03570     int     nX;
03571     int     nY;
03572
03573     strcpy( pfi->m_szPath, GetFilePath() );
03574     pfi->m_nViewTopLine = m_cEditViewArr[m_nActivePaneIndex].m_nViewTopLine;    /* 表示域の一番上の行(0開始) */
03575     pfi->m_nViewLeftCol = m_cEditViewArr[m_nActivePaneIndex].m_nViewLeftCol;    /* 表示域の一番左の桁(0開始) */
03576     //  pfi->m_nCaretPosX = m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX;    /* ビュー左端からのカーソル桁位置(０開始) */
03577     //  pfi->m_nCaretPosY = m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosY;    /* ビュー上端からのカーソル行位置(０開始) */
03578
03579     /*
03580       カーソル位置変換
03581       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03582       →
03583       物理位置(行頭からのバイト数、折り返し無し行位置)
03584     */
03585     m_cLayoutMgr.CaretPos_Log2Phys(
03586         m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX,    /* ビュー左端からのカーソル桁位置(０開始) */
03587         m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosY,    /* ビュー上端からのカーソル行位置(０開始) */
03588         &nX,
03589         &nY
03590     );
03591     pfi->m_nX = nX;     /* カーソル 物理位置(行頭からのバイト数) */
03592     pfi->m_nY = nY;     /* カーソル 物理位置(折り返し無し行位置) */
03593
03594
03595     pfi->m_bIsModified = IsModified() ? TRUE : FALSE;           /* 変更フラグ */
03596     pfi->m_nCharCode = m_nCharCode;             /* 文字コード種別 */
03597 //  pfi->m_bPLSQL = m_cDlgJump.m_bPLSQL,        /* 行ジャンプが PL/SQLモードか */
03598 //  pfi->m_nPLSQL_E1 = m_cDlgJump.m_nPLSQL_E1;  /* 行ジャンプが PL/SQLモードのときの基点 */
03599
03600     pfi->m_bIsGrep = m_bGrepMode;
03601     strcpy( pfi->m_szGrepKey, m_szGrepKey );
03602
03603     //デバッグモニタ(アウトプットウインドウ)
03604     pfi->m_bIsDebug = m_bDebugMode;
03605
03606     return;
03607
03608 }
03609
03610
03611 // 2004/06/21 novice タグジャンプ機能追加
03612 #if 0
03613 /* タグジャンプ元など参照元の情報を保持する */
03614 void CEditDoc::SetReferer( HWND hwndReferer, int nRefererX, int nRefererLine )
03615 {
03616     m_hwndReferer   = hwndReferer;  /* 参照元ウィンドウ */
03617     m_nRefererX     = nRefererX;    /* 参照元  行頭からのバイト位置桁 */
03618     m_nRefererLine  = nRefererLine; /* 参照元行  折り返し無しの物理行位置 */
03619     return;
03620 }
03621 #endif
03622
03623
03624
03629 BOOL CEditDoc::OnFileClose( void )
03630 {
03631     int         nRet;
03632     int         nBool;
03633     HWND        hwndMainFrame;
03634     hwndMainFrame = ::GetParent( m_hWnd );
03635
03636     //  Mar. 30, 2003 genta サブルーチンにまとめた
03637     AddToMRU();
03638
03639     if( m_bGrepRunning ){       /* Grep処理中 */
03640         /* アクティブにする */
03641         ActivateFrameWindow( hwndMainFrame );   //@@@ 2003.06.25 MIK
03642 		::MYMESSAGEBOX(
03643             hwndMainFrame,
03644             MB_OK | MB_ICONINFORMATION | MB_TOPMOST,
03645             GSTR_APPNAME,
03646             "Grepの処理中です。\n"
03647         );
03648         return FALSE;
03649     }
03650
03651
03652     /* テキストが変更されている場合 */
03653     if( IsModified()
03654     && FALSE == m_bDebugMode    /* デバッグモニタモードのときは保存確認しない */
03655 //  && FALSE == m_bReadOnly     /* 読み取り専用モード */
03656     ){
03657         if( TRUE == m_bGrepMode ){  /* Grepモードのとき */
03658             /* Grepモードで保存確認するか */
03659             if( FALSE == m_pShareData->m_Common.m_bGrepExitConfirm ){
03660                 return TRUE;
03661             }
03662         }
03663         /* ウィンドウをアクティブにする */
03664         /* アクティブにする */
03665         ActivateFrameWindow( hwndMainFrame );
03666         if( m_bReadOnly ){  /* 読み取り専用モード */
03667             ::MessageBeep( MB_ICONQUESTION );
03668             nRet = ::MYMESSAGEBOX(
03669                 hwndMainFrame,
03670                 MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
03671                 GSTR_APPNAME,
03672                 "%s\nは変更されています。 閉じる前に保存しますか？\n\n読み取り専用で開いているので、名前を付けて保存すればいいと思います。\n",
03673                 IsFilePathAvailable() ? GetFilePath() : "（無題）"
03674             );
03675             switch( nRet ){
03676             case IDYES:
03677 //              if( IsFilePathAvailable() ){
03678 //                  nBool = HandleCommand( F_FILESAVE );
03679 //              }else{
03680                     //nBool = HandleCommand( F_FILESAVEAS_DIALOG );
03681                     nBool = FileSaveAs_Dialog();    // 2006.12.30 ryoji
03682 //              }
03683                 return nBool;
03684             case IDNO:
03685                 return TRUE;
03686             case IDCANCEL:
03687             default:
03688                 return FALSE;
03689             }
03690         }else{
03691             ::MessageBeep( MB_ICONQUESTION );
03692             nRet = ::MYMESSAGEBOX(
03693                 hwndMainFrame,
03694                 MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
03695                 GSTR_APPNAME,
03696                 "%s\nは変更されています。 閉じる前に保存しますか？",
03697                 IsFilePathAvailable() ? GetFilePath() : "（無題）"
03698             );
03699             switch( nRet ){
03700             case IDYES:
03701                 if( IsFilePathAvailable() ){
03702                     //nBool = HandleCommand( F_FILESAVE );
03703                     nBool = FileSave(); // 2006.12.30 ryoji
03704                 }else{
03705                     //nBool = HandleCommand( F_FILESAVEAS_DIALOG );
03706                     nBool = FileSaveAs_Dialog();    // 2006.12.30 ryoji
03707                 }
03708                 return nBool;
03709             case IDNO:
03710                 return TRUE;
03711             case IDCANCEL:
03712             default:
03713                 return FALSE;
03714             }
03715         }
03716     }else{
03717         return TRUE;
03718     }
03719 }
03720
03721
03722 /* 既存データのクリア */
03723 void CEditDoc::Init( void )
03724 {
03725 //  int types;
03726
03727     m_bReadOnly = FALSE;    /* 読み取り専用モード */
03728     strcpy( m_szGrepKey, "" );
03729     m_bGrepMode = FALSE;    /* Grepモード */
03730     m_eWatchUpdate = WU_QUERY; // Dec. 4, 2002 genta 更新監視方法
03731
03732     // 2005.06.24 Moca バグ修正
03733     //  アウトプットウィンドウで「閉じて(無題)」を行ってもアウトプットウィンドウのまま
03734     if( m_bDebugMode ){
03735         m_pcEditWnd->SetDebugModeOFF();
03736     }
03737
03738 //  Sep. 10, 2002 genta
03739 //  アイコン設定はファイル名設定と一体化のためここからは削除
03740
03741     /* ファイルの排他ロック解除 */
03742     DoFileUnLock();
03743
03744     /* ファイルの排他制御モード */
03745     m_nFileShareModeOld = 0;
03746
03747
03748     /*アンドゥ・リドゥバッファのクリア */
03749     /* 全要素のクリア */
03750     m_cOpeBuf.ClearAll();
03751
03752     /* テキストデータのクリア */
03753     m_cDocLineMgr.Empty();
03754     m_cDocLineMgr.Init();
03755
03756     /* 現在編集中のファイルのパス */
03757     //  Sep. 10, 2002 genta
03758     //  アイコンも同時に初期化される
03759     SetFilePath( "" );
03760
03761     /* 現在編集中のファイルのタイムスタンプ */
03762     m_FileTime.dwLowDateTime = 0;
03763     m_FileTime.dwHighDateTime = 0;
03764
03765
03766     /* 共有データ構造体のアドレスを返す */
03767     m_pShareData = CShareData::getInstance()->GetShareData();
03768     int doctype = CShareData::getInstance()->GetDocumentType( GetFilePath() );
03769     SetDocumentType( doctype, true );
03770
03771     /* レイアウト管理情報の初期化 */
03772     /* レイアウト情報の変更 */
03773     Types& ref = GetDocumentAttribute();
03774     m_cLayoutMgr.SetLayoutInfo(
03775         TRUE,
03776         NULL,/*hwndProgress*/
03777         ref
03778     );
03779
03780
03781     /* 変更フラグ */
03782     SetModified(false,false);   //  Jan. 22, 2002 genta
03783
03784     /* 文字コード種別 */
03785     m_nCharCode = 0;
03786     m_bBomExist = FALSE;    //  Jul. 26, 2003 ryoji
03787
03788     //  May 12, 2000
03789     m_cNewLineCode.SetType( EOL_CRLF );
03790
03791     //  Oct. 2, 2005 genta 挿入モード
03792     SetInsMode( m_pShareData->m_Common.m_bIsINSMode != FALSE );
03793
03794     return;
03795 }
03796
03797 /* 全ビューの初期化：ファイルオープン/クローズ時等に、ビューを初期化する */
03798 void CEditDoc::InitAllView( void )
03799 {
03800     int     i;
03801
03802     m_nCommandExecNum = 0;  /* コマンド実行回数 */
03803     /* 先頭へカーソルを移動 */
03804     for( i = 0; i < 4; ++i ){
03805         //  Apr. 1, 2001 genta
03806         // 移動履歴の消去
03807         m_cEditViewArr[i].m_cHistory->Flush();
03808
03809         /* 現在の選択範囲を非選択状態に戻す */
03810         m_cEditViewArr[i].DisableSelectArea( FALSE );
03811
03812         m_cEditViewArr[i].OnChangeSetting();
03813         m_cEditViewArr[i].MoveCursor( 0, 0, TRUE );
03814         m_cEditViewArr[i].m_nCaretPosX_Prev = 0;
03815     }
03816
03817     return;
03818 }
03819
03820
03821 /* ファイルのタイムスタンプのチェック処理 */
03822 void CEditDoc::CheckFileTimeStamp( void )
03823 {
03824     HWND        hwndActive;
03825     BOOL        bUpdate;
03826     bUpdate = FALSE;
03827     if( m_pShareData->m_Common.m_bCheckFileTimeStamp    /* 更新の監視 */
03828      // Dec. 4, 2002 genta
03829      && m_eWatchUpdate != WU_NONE
03830      && m_pShareData->m_Common.m_nFileShareMode == 0    /* ファイルの排他制御モード */
03831      && NULL != ( hwndActive = ::GetActiveWindow() )    /* アクティブ? */
03832      && hwndActive == m_hwndParent
03833      && IsFilePathAvailable()
03834      && ( m_FileTime.dwLowDateTime != 0 || m_FileTime.dwHighDateTime != 0 )     /* 現在編集中のファイルのタイムスタンプ */
03835
03836     ){
03837         /* ファイルスタンプをチェックする */
03838
03839         // 2005.10.20 ryoji FindFirstFileを使うように変更（ファイルがロックされていてもタイムスタンプ取得可能）
03840         FILETIME ftime;
03841         if( GetLastWriteTimestamp( GetFilePath(), ftime )){
03842             if( 0 != ::CompareFileTime( &m_FileTime, &ftime ) ) //  Aug. 13, 2003 wmlhq タイムスタンプが古く変更されている場合も検出対象とする
03843             {
03844                 bUpdate = TRUE;
03845                 m_FileTime = ftime;
03846             }
03847         }
03848     }
03849
03850     //  From Here Dec. 4, 2002 genta
03851     if( bUpdate ){
03852         switch( m_eWatchUpdate ){
03853         case WU_NOTIFY:
03854             {
03855                 char szText[40];
03856                 //  現在時刻の取得
03857                 SYSTEMTIME st;
03858                 FILETIME lft;
03859                 if( ::FileTimeToLocalFileTime( &m_FileTime, &lft ) &&
03860                     ::FileTimeToSystemTime( &lft, &st )){
03861                     // nothing to do
03862                 }
03863                 else {
03864                     //  ファイル時刻の変換に失敗した場合は
03865                     //  現在時刻でごまかす
03866                     ::GetLocalTime( &st );
03867                 }
03868                 wsprintf( szText, "★ファイル更新 %02d:%02d:%02d", st.wHour, st.wMinute, st.wSecond );
03869                 m_pcEditWnd->SendStatusMessage( szText );
03870             }
03871             break;
03872         default:
03873             {
03874                 m_eWatchUpdate = WU_NONE; // 更新監視の抑制
03875
03876                 CDlgFileUpdateQuery dlg( GetFilePath(), IsModified() );
03877                 int result = dlg.DoModal( m_hInstance, m_hWnd, IDD_FILEUPDATEQUERY, 0 );
03878
03879                 switch( result ){
03880                 case 1: // 再読込
03881                     /* 同一ファイルの再オープン */
03882                     ReloadCurrentFile( m_nCharCode, m_bReadOnly );
03883                     m_eWatchUpdate = WU_QUERY;
03884                     break;
03885                 case 2: // 以後通知メッセージのみ
03886                     m_eWatchUpdate = WU_NOTIFY;
03887                     break;
03888                 case 3: // 以後更新を監視しない
03889                     m_eWatchUpdate = WU_NONE;
03890                     break;
03891                 case 0: // CLOSE
03892                 default:
03893                     m_eWatchUpdate = WU_QUERY;
03894                     break;
03895                 }
03896             }
03897             break;
03898         }
03899     }
03900     //  To Here Dec. 4, 2002 genta
03901     return;
03902 }
03903
03904
03905
03906
03907
03909 void CEditDoc::ReloadCurrentFile(
03910     BOOL    nCharCode,
03911     BOOL    bReadOnly
03912 )
03913 {
03914     if( -1 == _access( GetFilePath(), 0 ) ){
03915         /* ファイルが存在しない */
03916         //  Jul. 26, 2003 ryoji BOMを標準設定に
03917         m_nCharCode = nCharCode;
03918         switch( m_nCharCode ){
03919         case CODE_UNICODE:
03920         case CODE_UNICODEBE:
03921             m_bBomExist = TRUE;
03922             break;
03923         case CODE_UTF8:
03924         default:
03925             m_bBomExist = FALSE;
03926             break;
03927         }
03928         return;
03929     }
03930
03931
03932     BOOL    bOpened;
03933     char    szFilePath[MAX_PATH];
03934     int     nViewTopLine;
03935     int     nViewLeftCol;
03936     int     nCaretPosX;
03937     int     nCaretPosY;
03938     nViewTopLine = m_cEditViewArr[m_nActivePaneIndex].m_nViewTopLine;   /* 表示域の一番上の行(0開始) */
03939     nViewLeftCol = m_cEditViewArr[m_nActivePaneIndex].m_nViewLeftCol;   /* 表示域の一番左の桁(0開始) */
03940     nCaretPosX = m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX;
03941     nCaretPosY = m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosY;
03942
03943     strcpy( szFilePath, GetFilePath() );
03944
03945     // Mar. 30, 2003 genta ブックマーク保存のためMRUへ登録
03946     AddToMRU();
03947
03948     /* 既存データのクリア */
03949     Init();
03950
03951     /* 全ビューの初期化 */
03952     InitAllView();
03953
03954     /* 親ウィンドウのタイトルを更新 */
03955     SetParentCaption();
03956
03957     /* ファイル読み込み */
03958     FileRead(
03959         szFilePath,
03960         &bOpened,
03961         nCharCode,  /* 文字コード自動判別 */
03962         bReadOnly,  /* 読み取り専用か */
03963         FALSE       /* 文字コード変更時の確認をするかどうか */
03964     );
03965
03966     // レイアウト行単位のカーソル位置復元
03967     // ※ここではオプションのカーソル位置復元（＝改行単位）が指定されていない場合でも復元する
03968     // 2007.08.23 ryoji 表示領域復元
03969     if( nCaretPosY < m_cLayoutMgr.GetLineCount() ){
03970         m_cEditViewArr[m_nActivePaneIndex].m_nViewTopLine = nViewTopLine;
03971         m_cEditViewArr[m_nActivePaneIndex].m_nViewLeftCol = nViewLeftCol;
03972     }
03973     m_cEditViewArr[m_nActivePaneIndex].MoveCursorProperly( nCaretPosX, nCaretPosY, TRUE );  // 2007.08.23 ryoji MoveCursor()->MoveCursorProperly()
03974     m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX_Prev = m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX;
03975
03976 }
03977
03978 //  From Here Nov. 20, 2000 genta
03985 void CEditDoc::SetImeMode( int mode )
03986 {
03987     DWORD   conv, sent;
03988     HIMC    hIme;
03989
03990     hIme = ImmGetContext( m_hwndParent );
03991
03992     //  最下位ビットはIME自身のOn/Off制御
03993     if( ( mode & 3 ) == 2 ){
03994         ImmSetOpenStatus( hIme, FALSE );
03995     }
03996     if( ( mode >> 2 ) > 0 ){
03997         ImmGetConversionStatus( hIme, &conv, &sent );
03998
03999         switch( mode >> 2 ){
04000         case 1: //  FullShape
04001             conv |= IME_CMODE_FULLSHAPE;
04002             conv &= ~IME_CMODE_NOCONVERSION;
04003             break;
04004         case 2: //  FullShape & Hiragana
04005             conv |= IME_CMODE_FULLSHAPE | IME_CMODE_NATIVE;
04006             conv &= ~( IME_CMODE_KATAKANA | IME_CMODE_NOCONVERSION );
04007             break;
04008         case 3: //  FullShape & Katakana
04009             conv |= IME_CMODE_FULLSHAPE | IME_CMODE_NATIVE | IME_CMODE_KATAKANA;
04010             conv &= ~IME_CMODE_NOCONVERSION;
04011             break;
04012         case 4: //  Non-Conversion
04013             conv |= IME_CMODE_NOCONVERSION;
04014             break;
04015         }
04016         ImmSetConversionStatus( hIme, conv, sent );
04017     }
04018     if( ( mode & 3 ) == 1 ){
04019         ImmSetOpenStatus( hIme, TRUE );
04020     }
04021     ImmReleaseContext( m_hwndParent, hIme );
04022 }
04023 //  To Here Nov. 20, 2000 genta
04024
04025
04053 void CEditDoc::ExpandParameter(const char* pszSource, char* pszBuffer, int nBufferLen)
04054 {
04055
04056     // Apr. 03, 2003 genta 固定文字列をまとめる
04057     static const char PRINT_PREVIEW_ONLY[] = "(印刷プレビューでのみ使用できます)";
04058     const int PRINT_PREVIEW_ONLY_LEN = sizeof( PRINT_PREVIEW_ONLY ) - 1;
04059     static const char NO_TITLE[] = "(無題)";
04060     const int NO_TITLE_LEN = sizeof( NO_TITLE ) - 1;
04061     static const char NOT_SAVED[] = "(保存されていません)";
04062     const int NOT_SAVED_LEN = sizeof( NOT_SAVED ) - 1;
04063
04064     const char *p, *r;  //  p：目的のバッファ。r：作業用のポインタ。
04065     char *q, *q_max;
04066     for( p = pszSource, q = pszBuffer, q_max = pszBuffer + nBufferLen; *p != '\0' && q < q_max;){
04067         if( *p != '$' ){
04068             *q++ = *p++;
04069             continue;
04070         }
04071         switch( *(++p) ){
04072         case '$':   //   $$ -> $
04073             *q++ = *p++;
04074             break;
04075         case 'F':   //  開いているファイルの名前（フルパス）
04076             if ( !IsFilePathAvailable() ){
04077                 q = strncpy_ex( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
04078                 ++p;
04079             }
04080             else {
04081                 r = GetFilePath();
04082                 q = strncpy_ex( q, q_max - q, r, strlen( r ));
04083                 ++p;
04084             }
04085             break;
04086         case 'f':   //  開いているファイルの名前（ファイル名+拡張子のみ）
04087             // Oct. 28, 2001 genta
04088             //  ファイル名のみを渡すバージョン
04089             //  ポインタを末尾に
04090             if ( ! IsFilePathAvailable() ){
04091                 q = strncpy_ex( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
04092                 ++p;
04093             }
04094             else {
04095                 r = GetFileName(); // 2002.10.13 Moca ファイル名(パスなし)を取得。日本語対応
04096                 //  万一\\が末尾にあってもその後ろには\0があるのでアクセス違反にはならない。
04097                 q = strncpy_ex( q, q_max - q, r, strlen( r ));
04098                 ++p;
04099             }
04100             break;
04101         case 'g':   //  開いているファイルの名前（拡張子を除くファイル名のみ）
04102             //  From Here Sep. 16, 2002 genta
04103             if ( ! IsFilePathAvailable() ){
04104                 q = strncpy_ex( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
04105                 ++p;
04106             }
04107             else {
04108                 //  ポインタを末尾に
04109                 const char *dot_position, *end_of_path;
04110                 r = GetFileName(); // 2002.10.13 Moca ファイル名(パスなし)を取得。日本語対応
04111                 end_of_path = dot_position =
04112                     r + strlen( r );
04113                 //  後ろから.を探す
04114                 for( --dot_position ; dot_position > r && *dot_position != '.'
04115                     ; --dot_position )
04116                     ;
04117                 //  rと同じ場所まで行ってしまった⇔.が無かった
04118                 if( dot_position == r )
04119                     dot_position = end_of_path;
04120
04121                 q = strncpy_ex( q, q_max - q, r, dot_position - r );
04122                 ++p;
04123             }
04124             break;
04125             //  To Here Sep. 16, 2002 genta
04126         case '/':   //  開いているファイルの名前（フルパス。パスの区切りが/）
04127             // Oct. 28, 2001 genta
04128             if ( !IsFilePathAvailable() ){
04129                 q = strncpy_ex( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
04130                 ++p;
04131             }
04132             else {
04133                 //  パスの区切りとして'/'を使うバージョン
04134                 for( r = GetFilePath(); *r != '\0' && q < q_max; ++r, ++q ){
04135                     if( *r == '\\' )
04136                         *q = '/';
04137                     else
04138                         *q = *r;
04139                 }
04140                 ++p;
04141             }
04142             break;
04143         //  From Here 2003/06/21 Moca
04144         case 'N':
04145             if( !IsFilePathAvailable() ){
04146                 q = strncpy_ex( q, q_max - q, NO_TITLE, NO_TITLE_LEN );
04147                 ++p;
04148             }
04149             else {
04150                 char szText[1024];
04151                 CShareData::getInstance()->GetTransformFileNameFast( GetFilePath(), szText, 1023 );
04152                 q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04153                 ++p;
04154             }
04155             break;
04156         //  To Here 2003/06/21 Moca
04157         //  From Here Jan. 15, 2002 hor
04158         case 'C':   //  現在選択中のテキスト
04159             {
04160                 CMemory cmemCurText;
04161                 m_cEditViewArr[m_nActivePaneIndex].GetCurrentTextForSearch( cmemCurText );
04162                 q = strncpy_ex( q, q_max - q, cmemCurText.GetPtr(), cmemCurText.GetLength());
04163                 ++p;
04164             }
04165         //  To Here Jan. 15, 2002 hor
04166             break;
04167         //  From Here 2002/12/04 Moca
04168         case 'x':   //  現在の物理桁位置(先頭からのバイト数1開始)
04169             {
04170                 char szText[11];
04171                 _itot( m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosX_PHY + 1, szText, 10 );
04172                 q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04173                 ++p;
04174             }
04175             break;
04176         case 'y':   //  現在の物理行位置(1開始)
04177             {
04178                 char szText[11];
04179                 _itot( m_cEditViewArr[m_nActivePaneIndex].m_nCaretPosY_PHY + 1, szText, 10 );
04180                 q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04181                 ++p;
04182             }
04183             break;
04184         //  To Here 2002/12/04 Moca
04185         case 'd':   //  共通設定の日付書式
04186             {
04187                 char szText[1024];
04188                 SYSTEMTIME systime;
04189                 ::GetLocalTime( &systime );
04190                 CShareData::getInstance()->MyGetDateFormat( systime, szText, sizeof( szText ) - 1 );
04191                 q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04192                 ++p;
04193             }
04194             break;
04195         case 't':   //  共通設定の時刻書式
04196             {
04197                 char szText[1024];
04198                 SYSTEMTIME systime;
04199                 ::GetLocalTime( &systime );
04200                 CShareData::getInstance()->MyGetTimeFormat( systime, szText, sizeof( szText ) - 1 );
04201                 q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04202                 ++p;
04203             }
04204             break;
04205         case 'p':   //  現在のページ
04206             {
04207                 CEditWnd*   pcEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
04208                 if (pcEditWnd->m_pPrintPreview){
04209                     char szText[1024];
04210                     itoa(pcEditWnd->m_pPrintPreview->GetCurPageNum() + 1, szText, 10);
04211                     q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04212                     ++p;
04213                 }
04214                 else {
04215                     q = strncpy_ex( q, q_max - q, PRINT_PREVIEW_ONLY, PRINT_PREVIEW_ONLY_LEN );
04216                     ++p;
04217                 }
04218             }
04219             break;
04220         case 'P':   //  総ページ
04221             {
04222                 CEditWnd*   pcEditWnd = m_pcEditWnd;    //  Sep. 10, 2002 genta
04223                 if (pcEditWnd->m_pPrintPreview){
04224                     char szText[1024];
04225                     itoa(pcEditWnd->m_pPrintPreview->GetAllPageNum(), szText, 10);
04226                     q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04227                     ++p;
04228                 }
04229                 else {
04230                     q = strncpy_ex( q, q_max - q, PRINT_PREVIEW_ONLY, PRINT_PREVIEW_ONLY_LEN );
04231                     ++p;
04232                 }
04233             }
04234             break;
04235         case 'D':   //  タイムスタンプ
04236             if (m_FileTime.dwLowDateTime){
04237                 FILETIME    FileTime;
04238                 SYSTEMTIME  systimeL;
04239                 ::FileTimeToLocalFileTime( &m_FileTime, &FileTime );
04240                 ::FileTimeToSystemTime( &FileTime, &systimeL );
04241                 char szText[1024];
04242                 CShareData::getInstance()->MyGetDateFormat( systimeL, szText, sizeof( szText ) - 1 );
04243                 q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04244                 ++p;
04245             }
04246             else {
04247                 q = strncpy_ex( q, q_max - q, NOT_SAVED, NOT_SAVED_LEN );
04248                 ++p;
04249             }
04250             break;
04251         case 'T':   //  タイムスタンプ
04252             if (m_FileTime.dwLowDateTime){
04253                 FILETIME    FileTime;
04254                 SYSTEMTIME  systimeL;
04255                 ::FileTimeToLocalFileTime( &m_FileTime, &FileTime );
04256                 ::FileTimeToSystemTime( &FileTime, &systimeL );
04257                 char szText[1024];
04258                 CShareData::getInstance()->MyGetTimeFormat( systimeL, szText, sizeof( szText ) - 1 );
04259                 q = strncpy_ex( q, q_max - q, szText, strlen(szText));
04260                 ++p;
04261             }
04262             else {
04263                 q = strncpy_ex( q, q_max - q, NOT_SAVED, NOT_SAVED_LEN );
04264                 ++p;
04265             }
04266             break;
04267         case 'V':   // Apr. 4, 2003 genta
04268             // Version number
04269             {
04270                 char buf[28]; // 6(符号含むWORDの最大長) * 4 + 4(固定部分)
04271                 //  2004.05.13 Moca バージョン番号は、プロセスごとに取得する
04272                 DWORD dwVersionMS, dwVersionLS;
04273                 GetAppVersionInfo( NULL, VS_VERSION_INFO,
04274                     &dwVersionMS, &dwVersionLS );
04275                 int len = sprintf( buf, "%d.%d.%d.%d",
04276                     HIWORD( dwVersionMS ),
04277                     LOWORD( dwVersionMS ),
04278                     HIWORD( dwVersionLS ),
04279                     LOWORD( dwVersionLS )
04280                 );
04281                 q = strncpy_ex( q, q_max - q, buf, len );
04282                 ++p;
04283             }
04284             break;
04285         case 'h':   //  Apr. 4, 2003 genta
04286             //  Grep Key文字列 MAX 32文字
04287             //  中身はSetParentCaption()より移植
04288             {
04289                 CMemory     cmemDes;
04290                 LimitStringLengthB( m_szGrepKey, lstrlen( m_szGrepKey ),
04291                     (q_max - q > 32 ? 32 : q_max - q - 3), cmemDes );
04292                 if( (int)lstrlen( m_szGrepKey ) > cmemDes.GetLength() ){
04293                     cmemDes.Append( "...", 3 );
04294                 }
04295                 q = strncpy_ex( q, q_max - q, cmemDes.GetPtr(), cmemDes.GetLength());
04296                 ++p;
04297             }
04298             break;
04299         case 'S':   //  Sep. 15, 2005 FILE
04300             //  サクラエディタのフルパス
04301             {
04302                 char    szPath[_MAX_PATH + 1];
04303
04304                 ::GetModuleFileName( ::GetModuleHandle( NULL ), szPath, sizeof(szPath) );
04305                 q = strncpy_ex( q, q_max - q, szPath, strlen(szPath) );
04306                 ++p;
04307             }
04308             break;
04309         case 'I':   //  May. 19, 2007 ryoji
04310             //  iniファイルのフルパス
04311             {
04312                 char    szPath[_MAX_PATH + 1];
04313
04314                 CShareData::getInstance()->GetIniFileName( szPath );
04315                 q = strncpy_ex( q, q_max - q, szPath, strlen(szPath) );
04316                 ++p;
04317             }
04318             break;
04319         case 'M':   //  Sep. 15, 2005 FILE
04320             //  現在実行しているマクロファイルパスの取得
04321             {
04322                 // 実行中マクロのインデックス番号 (INVALID_MACRO_IDX:無効 / STAND_KEYMACRO:標準マクロ)
04323                 switch( m_pcSMacroMgr->GetCurrentIdx() ){
04324                 case INVALID_MACRO_IDX:
04325                     break;
04326                 case STAND_KEYMACRO:
04327                     {
04328                         char* pszMacroFilePath = CShareData::getInstance()->GetShareData()->m_szKeyMacroFileName;
04329                         q = strncpy_ex( q, q_max - q, pszMacroFilePath, strlen(pszMacroFilePath) );
04330                     }
04331                     break;
04332                 default:
04333                     {
04334                         char szMacroFilePath[_MAX_PATH * 2];
04335                         int n = CShareData::getInstance()->GetMacroFilename( m_pcSMacroMgr->GetCurrentIdx(), szMacroFilePath, sizeof(szMacroFilePath) );
04336                         if ( 0 < n ){
04337                             q = strncpy_ex( q, q_max - q, szMacroFilePath, strlen(szMacroFilePath) );
04338                         }
04339                     }
04340                     break;
04341                 }
04342                 ++p;
04343             }
04344             break;
04345         //  Mar. 31, 2003 genta
04346         //  条件分岐
04347         //  ${cond:string1$:string2$:string3$}
04348         //
04349         case '{':   // 条件分岐
04350             {
04351                 int cond;
04352                 cond = ExParam_Evaluate( p + 1 );
04353                 while( *p != '?' && *p != '\0' )
04354                     ++p;
04355                 if( *p == '\0' )
04356                     break;
04357                 p = ExParam_SkipCond( p + 1, cond );
04358             }
04359             break;
04360         case ':':   // 条件分岐の中間
04361             //  条件分岐の末尾までSKIP
04362             p = ExParam_SkipCond( p + 1, -1 );
04363             break;
04364         case '}':   // 条件分岐の末尾
04365             //  特にすることはない
04366             ++p;
04367             break;
04368         default:
04369             *q++ = '$';
04370             *q++ = *p++;
04371             break;
04372         }
04373     }
04374     *q = '\0';
04375 }
04376
04393 const char* CEditDoc::ExParam_SkipCond(const char* pszSource, int part)
04394 {
04395     if( part == 0 )
04396         return pszSource;
04397
04398     int nest = 0;   // 入れ子のレベル
04399     bool next = true;   // 継続フラグ
04400     const char *p;
04401     for( p = pszSource; next && *p != '\0'; ++p ) {
04402         if( *p == '$' && p[1] != '\0' ){ // $が末尾なら無視
04403             switch( *(++p)){
04404             case '{':   // 入れ子の開始
04405                 ++nest;
04406                 break;
04407             case '}':
04408                 if( nest == 0 ){
04409                     //  終了ポイントに達した
04410                     next = false;
04411                 }
04412                 else {
04413                     //  ネストレベルを下げる
04414                     --nest;
04415                 }
04416                 break;
04417             case ':':
04418                 if( nest == 0 && --part == 0){ // 入れ子でない場合のみ
04419                     //  目的のポイント
04420                     next = false;
04421                 }
04422                 break;
04423             }
04424         }
04425     }
04426     return p;
04427 }
04428
04442 int CEditDoc::ExParam_Evaluate( const char* pCond )
04443 {
04444     switch( *pCond ){
04445     case 'R': // 読みとり専用
04446         if( m_bReadOnly ){  /* 読み取り専用モード */
04447             return 0;
04448         }else
04449         if( 0 != m_nFileShareModeOld && /* ファイルの排他制御モード */
04450             NULL == m_hLockedFile       /* ロックしていない */
04451         ){
04452             return 1;
04453         }else{
04454             return 2;
04455         }
04456     case 'w': // Grepモード/Output Mode
04457         if( m_bGrepMode ){
04458             return 0;
04459         }else if( m_bDebugMode ){
04460             return 1;
04461         }else {
04462             return 2;
04463         }
04464     case 'M': // キーボードマクロの記録中
04465         if( TRUE == m_pShareData->m_bRecordingKeyMacro &&
04466         m_pShareData->m_hwndRecordingKeyMacro == m_hwndParent ){ /* ウィンドウ */
04467             return 0;
04468         }else {
04469             return 1;
04470         }
04471     case 'U': // 更新
04472         if( IsModified()){
04473             return 0;
04474         }
04475         else {
04476             return 1;
04477         }
04478     case 'I': // アイコン化されているか
04479         if( ::IsIconic( m_hwndParent )){
04480             return 0;
04481         } else {
04482             return 1;
04483         }
04484     default:
04485         return 0;
04486     }
04487     return 0;
04488 }
04489
04490 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc.h

CEditDoc.h

文書関連情報の管理 [詳細]

#include "global.h"
#include "CAutoSave.h"
#include "CDlgFind.h"
#include "CDlgFuncList.h"
#include "CDlgGrep.h"
#include "CDlgJump.h"
#include "CDlgOpenFile.h"
#include "CDlgReplace.h"
#include "CDocLineMgr.h"
#include "CEditView.h"
#include "CEol.h"
#include "CFuncLookup.h"
#include "CHokanMgr.h"
#include "CLayoutMgr.h"
#include "COpeBuf.h"
#include "CPropCommon.h"
#include "CPropTypes.h"
#include "CShareData.h"
#include "CSplitterWnd.h"

CEditDoc.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CEditDoc
文書関連情報の管理 [詳細]

説明

文書関連情報の管理

作者:
Norio Nakatani
日付:
1998/03/13 作成

CEditDoc.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc.h ソースファイル

CEditDoc.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, genta
00010     Copyright (C) 2001, genta, MIK, hor
00011     Copyright (C) 2002, genta, Moca, YAZAKI
00012     Copyright (C) 2003, genta, ryoji, zenryaku, naoh
00013     Copyright (C) 2004, Moca, novice, genta
00014     Copyright (C) 2005, Moca, genta, aroka
00015     Copyright (C) 2006, ryoji
00016     Copyright (C) 2007, ryoji
00017
00018     This source code is designed for sakura editor.
00019     Please contact the copyright holder to use this code for other purpose.
00020 */
00021
00022 #ifndef _CEDITDOC_H_
00023 #define _CEDITDOC_H_
00024
00025
00026 #include "global.h"
00027 #include "CAutoSave.h"
00028 #include "CDlgFind.h"
00029 #include "CDlgFuncList.h"
00030 #include "CDlgGrep.h"
00031 #include "CDlgJump.h"
00032 #include "CDlgOpenFile.h"
00033 #include "CDlgReplace.h"
00034 #include "CDocLineMgr.h"
00035 #include "CEditView.h"
00036 #include "CEol.h"
00037 #include "CFuncLookup.h"
00038 #include "CHokanMgr.h"
00039 #include "CLayoutMgr.h"
00040 #include "COpeBuf.h"
00041 #include "CPropCommon.h"
00042 #include "CPropTypes.h"
00043 #include "CShareData.h"
00044 #include "CSplitterWnd.h"
00045 //#include <windows.h>
00046 class CImageListMgr; // 2002/2/10 aroka
00047 class CSMacroMgr; // 2002/2/10 aroka
00048 class CEditWnd; // Sep. 10, 2002 genta
00049 struct FileInfo; // 20050705 aroka
00050 class CFuncInfoArr;
00051 struct oneRule; // 2004.04.11 genta パラメータ内のstructを削除するため．doxygen対策
00052
00054 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00055 class SAKURA_CORE_API CEditDoc
00056 {
00057 public:
00058     /*
00059     ||  Constructors
00060     */
00061     CEditDoc();
00062     ~CEditDoc();
00063
00064     /*
00065     ||  初期化系メンバ関数
00066     */
00067     BOOL Create( HINSTANCE, HWND, CImageListMgr* /*, int, int, int, int*/ );
00068     void Init( void );  /* 既存データのクリア */
00069     void InitAllView(); /* 全ビューの初期化：ファイルオープン/クローズ時等に、ビューを初期化する */
00070
00071     /*
00072     || 状態
00073     */
00074     BOOL IsTextSelected( void );    /* テキストが選択されているか */
00075     BOOL IsEnableUndo( void );      /* Undo(元に戻す)可能な状態か？ */
00076     BOOL IsEnableRedo( void );      /* Redo(やり直し)可能な状態か？ */
00077     BOOL IsEnablePaste( void );     /* クリップボードから貼り付け可能か？ */
00078     void SetFileInfo( FileInfo* );  /* 編集ファイル情報を格納 */
00079
00080     /* いろいろ */
00081     LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* メッセージディスパッチャ */
00082     void OnMove( int , int , int , int );
00083     BOOL OnFileClose( void );   /* ファイルを閉じるときのMRU登録 & 保存確認 ＆ 保存実行 */
00084     BOOL HandleCommand( int );
00085     void SetActivePane( int );  /* アクティブなペインを設定 */
00086     int GetActivePane( void );  /* アクティブなペインを取得 */
00087     void RedrawInactivePane( void );    /* 非アクティブなペインをRedrawする */
00088     BOOL DetectWidthOfLineNumberAreaAllPane( BOOL bRedraw );    /* すべてのペインで、行番号表示に必要な幅を再設定する（必要なら再描画する） */
00089     BOOL SelectFont( LOGFONT* );
00090     BOOL FileRead( /*const*/ char* , BOOL*, int, BOOL, BOOL );  /* ファイルを開く */
00091     //  Feb. 9, 2001 genta 引数追加
00092     BOOL FileWrite( const char*, enumEOLType cEolType );
00093     bool SaveFile( const char* path );  //  ファイルの保存（に伴ういろいろ）
00094     void OpenFile( const char *filename = NULL, int nCharCode = CODE_AUTODETECT,
00095         BOOL bReadOnly = FALSE );   //  Oct. 9, 2004 genta CEditViewより移動
00096     void FileClose( void ); /* 閉じて(無題) */  // 2006.12.30 ryoji
00097     void FileCloseOpen( const char *filename = NULL, int nCharCode = CODE_AUTODETECT, BOOL bReadOnly = FALSE ); /* 閉じて開く */    // 2006.12.30 ryoji
00098     BOOL FileSave( bool warnbeep = true, bool askname = true ); /* 上書き保存 */    // 2006.12.30 ryoji
00099     BOOL FileSaveAs_Dialog( void );             /* 名前を付けて保存ダイアログ */    // 2006.12.30 ryoji
00100     BOOL FileSaveAs( const char *filename );    /* 名前を付けて保存 */  // 2006.12.30 ryoji
00101
00102     int MakeBackUp( const char* target_file );  /* バックアップの作成 */
00103     void SetParentCaption( void );  /* 親ウィンドウのタイトルを更新 */  // 2007.03.08 ryoji bKillFocusパラメータを除去
00104     BOOL OpenPropertySheet( int/*, int*/ ); /* 共通設定 */
00105     BOOL OpenPropertySheetTypes( int, int );    /* タイプ別設定 */
00106
00107     BOOL OpenFileDialog( HWND, const char*, char*, int*, BOOL* );   /* 「ファイルを開く」ダイアログ */
00108     void OnChangeSetting( void );   /* ビューに設定変更を反映させる */
00109 // 2004/06/21 novice タグジャンプ機能追加
00110 #if 0
00111     void SetReferer( HWND , int, int ); /* タグジャンプ元など参照元の情報を保持する */
00112 #endif
00113     //  Jul. 26, 2003 ryoji BOMオプション追加
00114     BOOL SaveFileDialog( char*, int*, CEOL* pcEol = NULL, BOOL* pbBomExist = NULL );    /* 「ファイル名を付けて保存」ダイアログ */
00115
00116     void CheckFileTimeStamp( void );    /* ファイルのタイムスタンプのチェック処理 */
00117     void ReloadCurrentFile( BOOL, BOOL );/* 同一ファイルの再オープン */
00118
00119     //  May 15, 2000 genta
00120     CEOL  GetNewLineCode() const { return m_cNewLineCode; }
00121     void  SetNewLineCode(const CEOL& t){ m_cNewLineCode = t; }
00122
00123     //  Aug. 14, 2000 genta
00124     bool IsModificationForbidden( int nCommand );
00125
00126     //  Aug. 21, 2000 genta
00127     CPassiveTimer   m_cAutoSave;
00128     void    CheckAutoSave(void);
00129     void    ReloadAutoSaveParam(void);  //  設定をSharedAreaから読み出す
00130
00131     //  Aug. 31, 2000 genta
00132     const CEditView& ActiveView(void) const { return m_cEditViewArr[m_nActivePaneIndex]; }
00133     CEditView& ActiveView(void) { return m_cEditViewArr[m_nActivePaneIndex]; }
00134     //  Nov. 20, 2000 genta
00135     void SetImeMode(int mode);  //  IME状態の設定
00136
00137     //  Sep. 9, 2002 genta
00138     const char* GetFilePath(void) const { return m_szFilePath; }
00139     bool IsFilePathAvailable(void) const { return m_szFilePath[0] != '\0'; }
00140     //  2002.10.13 Moca
00141     const char* GetFileName(void) const;
00142     void SetDocumentIcon(void); // Sep. 10, 2002 genta
00143
00144     //  Nov. 29, 2000 From Here genta
00145     //  設定の一時変更時に拡張子による強制的な設定変更を無効にする
00146     void LockDocumentType(void){ m_nSettingTypeLocked = true; }
00147     void UnlockDocumentType(void){ m_nSettingTypeLocked = false; }
00148     bool GetDocumentLockState(void){ return m_nSettingTypeLocked; }
00149     //  Nov. 29, 2000 To Here
00150     //  Nov. 23, 2000 From Here genta
00151     //  文書種別情報の設定，取得Interface
00152     void SetDocumentType(int type, bool force)  //  文書種別の設定
00153     {
00154         if( (!m_nSettingTypeLocked) || force ){
00155             m_nSettingType = type;
00156             UnlockDocumentType();
00157             m_pShareData->m_Types[m_nSettingType].m_nRegexKeyMagicNumber++; //@@@ 2001.11.17 add MIK
00158             SetDocumentIcon();  // Sep. 11, 2002 genta
00159         }
00160     }
00161     int GetDocumentType(void) const
00162     {
00163         return m_nSettingType;
00164     }
00165     Types& GetDocumentAttribute(void) const
00166     {
00167         return m_pShareData->m_Types[m_nSettingType];
00168     }
00169     //  Nov. 23, 2000 To Here
00170
00171     //  May 18, 2001 genta
00173     BOOL IsReadOnly( void ){ return m_bReadOnly; }
00175     void SetReadOnly( BOOL flag){ m_bReadOnly = flag; }
00176
00177     //  Jan. 22, 2002 genta Modified Flagの設定
00178     void SetModified( bool flag, bool redraw);
00183     bool IsModified( void ) const { return m_bIsModified; }
00184
00185     //  Jan. 28, 2002 genta Modified Flagの設定 (暫定BOOL Version)
00186     void SetModified( bool flag, BOOL redraw){
00187         SetModified( flag, redraw != FALSE );
00188     }
00189     void SetModified( BOOL flag, bool redraw){
00190         SetModified( flag != FALSE, redraw );
00191     }
00192
00202     bool IsFileOpenInThisWindow( void ){
00203         return !( IsModified() || IsFilePathAvailable() || m_bGrepMode || m_bDebugMode );
00204     }
00205
00206     void AddToMRU(void); // Mar. 30, 2003 genta
00207     // Mar. 31, 2003 genta ExpandParameter補助関数
00208     const char* ExParam_SkipCond(const char* pszSource, int part);
00209     int ExParam_Evaluate( const char* pCond );
00210
00211     //  Aug. 14, 2005 genta TAB幅と折り返し位置の更新
00212     void ChangeLayoutParam( bool bShowProgress, int nTabSize, int nMaxLineSize );
00213
00214     //  Oct. 2, 2005 genta 挿入モードの設定
00215     bool IsInsMode() const { return m_bInsMode; }
00216     void SetInsMode(bool mode) { m_bInsMode = mode; }
00217
00218 protected:
00219     int             m_nSettingType;
00220     bool            m_nSettingTypeLocked;   //  文書種別の一時設定状態
00221     //  Jan. 22, 2002 genta public -> protectedに移動
00225     bool            m_bIsModified;
00226     //  Sep. 9, 2002 genta protectedに移動
00227     char            m_szFilePath[_MAX_PATH];    /* 現在編集中のファイルのパス */
00228
00229     void SetFilePath(const char*);  // Sep. 9, 2002 genta
00230
00231 public: /* テスト用にアクセス属性を変更 */
00232     /* 入力補完 */
00233     CHokanMgr       m_cHokanMgr;
00234     BOOL            m_bGrepRunning;             /* Grep処理中 */
00235 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00236 //  BOOL            m_bPrintPreviewMode;        /* 印刷プレビューモードか */
00237     int             m_nCommandExecNum;          /* コマンド実行回数 */
00238     FILETIME        m_FileTime;                 /* ファイルの最終更新日付 */
00239     CDocLineMgr     m_cDocLineMgr;
00240     CLayoutMgr      m_cLayoutMgr;
00241     int             m_nCharCode;                /* 文字コード種別 */
00242     BOOL            m_bBomExist;
00243     bool            m_bInsMode;
00244
00245     //  May 15, 2000 genta
00246 protected:
00247     CEOL            m_cNewLineCode;             //  Enter押下時に挿入する改行コード種別
00248 public:
00249     CEOL            m_cSaveLineCode;            //  保存時の改行コード種別（EOL_NONE:変換なし）
00250
00251
00252     BOOL            m_bReadOnly;                /* 読み取り専用モード */
00253     BOOL            m_bDebugMode;               /* デバッグモニタモード */
00254     BOOL            m_bGrepMode;                /* Grepモードか */
00255     char            m_szGrepKey[1024];          /* Grepモードの場合、その検索キー */
00256     HWND            m_hWnd;                     /* 編集ウィンドウハンドル（CSplitterWndが管理） */
00257     COpeBuf         m_cOpeBuf;                  /* アンドゥバッファ */
00258 public:
00259     void            MakeFuncList_C( CFuncInfoArr*,bool bVisibleMemberFunc = true );     /* C/C++関数リスト作成 */
00260     void            MakeFuncList_PLSQL( CFuncInfoArr* );    /* PL/SQL関数リスト作成 */
00261     void            MakeTopicList_txt( CFuncInfoArr* );     /* テキスト・トピックリスト作成 */
00262     void            MakeFuncList_Java( CFuncInfoArr* );     /* Java関数リスト作成 */
00263     void            MakeTopicList_cobol( CFuncInfoArr* );   /* COBOL アウトライン解析 */
00264     void            MakeTopicList_asm( CFuncInfoArr* );     /* アセンブラ アウトライン解析 */
00265     void            MakeFuncList_Perl( CFuncInfoArr* );     /* Perl関数リスト作成 */    //  Sep. 8, 2000 genta
00266     void            MakeFuncList_VisualBasic( CFuncInfoArr* );/* Visual Basic関数リスト作成 */ //June 23, 2001 N.Nakatani
00267     void            MakeFuncList_python( CFuncInfoArr* pcFuncInfoArr ); /* Python アウトライン解析*/ // 2007.02.08 genta
00268     void            MakeTopicList_wztxt(CFuncInfoArr*);     /* 階層付きテキスト アウトライン解析 */ // 2003.05.20 zenryaku
00269     void            MakeTopicList_html(CFuncInfoArr*);      /* HTML アウトライン解析 */ // 2003.05.20 zenryaku
00270     void            MakeTopicList_tex(CFuncInfoArr*);       /* TeX アウトライン解析 */ // 2003.07.20 naoh
00271     void            MakeFuncList_RuleFile( CFuncInfoArr* ); /* ルールファイルを使ってリスト作成 2002.04.01 YAZAKI */
00272     int             ReadRuleFile( const char* pszFilename, oneRule* pcOneRule, int nMaxCount ); /* ルールファイル読込 2002.04.01 YAZAKI */
00273
00274 // From Here 2001.12.03 hor
00275     void            MakeFuncList_BookMark( CFuncInfoArr* ); /* ブックマークリスト作成 */
00276 // To Here 2001.12.03 hor
00277
00278     CSplitterWnd    m_cSplitterWnd;             /* 分割フレーム */
00279     CEditView       m_cEditViewArr[4];          /* ビュー */
00280     int             m_nActivePaneIndex;         /* アクティブなビュー */
00281 //  HWND            m_hwndActiveDialog;         /* アクティブな子ダイアログ */
00282     CDlgFind        m_cDlgFind;                 /* 「検索」ダイアログ */
00283     CDlgReplace     m_cDlgReplace;              /* 「置換」ダイアログ */
00284     CDlgJump        m_cDlgJump;                 /* 「指定行へジャンプ」ダイアログ */
00285 //  CDlgSendMail    m_cDlgSendMail;             /* メール送信ダイアログ */
00286     CDlgGrep        m_cDlgGrep;                 /* Grepダイアログ */
00287     CDlgFuncList    m_cDlgFuncList;             /* アウトライン解析結果ダイアログ */
00288     CEditWnd*       m_pcEditWnd;    //  Sep. 10, 2002
00289     /*
00290     ||  メンバ変数
00291     */
00292     char*           m_pszAppName;       /* Mutex作成用・ウィンドウクラス名 */
00293     HINSTANCE       m_hInstance;        /* インスタンスハンドル */
00294     HWND            m_hwndParent;       /* 親ウィンドウ（CEditWndが管理）ハンドル */
00295
00296     DLLSHAREDATA*   m_pShareData;
00297
00298 //@@@ 2002.01.14 YAZAKI 不使用のため
00299 //  COpeBlk*        m_pcOpeBlk;         /* 操作ブロック */
00300     BOOL            m_bDoing_UndoRedo;  /* アンドゥ・リドゥの実行中か */
00301     CDlgOpenFile    m_cDlgOpenFile; /* ファイルオープンダイアログ */
00302 //  2004.03.28 Moca 未使用変数削除
00303
00304 //  2004.02.16 Moca メンバから外す
00305 //  CHOOSEFONT      m_cf;               /* フォント選択ダイアログ用 */
00306
00307 //@@    CProp1          m_cProp1;           /* 設定プロパティシート */
00308     CPropCommon     m_cPropCommon;
00309     CPropTypes      m_cPropTypes;
00310
00311     int             m_nFileShareModeOld;    /* ファイルの排他制御モード */
00312     HFILE           m_hLockedFile;          /* ロックしているファイルのハンドル */
00313
00314 // 2004/06/21 novice タグジャンプ機能追加
00315 #if 0
00316     HWND            m_hwndReferer;  /* 参照元ウィンドウ */
00317     int             m_nRefererX;    /* 参照元 行頭からのバイト位置桁 */
00318     int             m_nRefererLine; /* 参照元行 折り返し無しの物理行位置 */
00319 #endif
00320
00321     //  Sep. 29, 2001 genta
00322     CSMacroMgr*     m_pcSMacroMgr;
00323 //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一。
00324 //  CKeyMacroMgr    m_CKeyMacroMgr; //  キーボードマクロ @@@ 2002.1.24 YAZAKI DLLSHAREDATAから移動
00325     //  Oct. 2, 2001 genta
00326     CFuncLookup     m_cFuncLookup;
00327
00328     //  From Here Dec. 4, 2002 genta
00329     //  更新監視と更新通知
00333     enum WatchUpdate {
00334         WU_QUERY,
00335         WU_NOTIFY,
00336         WU_NONE
00337     };
00338     WatchUpdate     m_eWatchUpdate;
00339     //  To Here Dec. 4, 2002 genta
00340
00341 //  CDlgTest*       m_pcDlgTest;
00342
00343     /*
00344     ||  実装ヘルパ関数
00345     */
00346     void ExpandParameter(const char* pszSource, char* pszBuffer, int nBufferLen);   //  pszSourceを展開して、pszBufferにコピー。
00347 protected:
00348     void DoFileLock( void );    /* ファイルの排他ロック */
00349     void DoFileUnLock( void );  /* ファイルの排他ロック解除 */
00350     //char          m_pszCaption[1024]; //@@@ YAZAKI
00351
00352     //  Aug. 14, 2005 genta
00353     int* SavePhysPosOfAllView(void);
00354     void RestorePhysPosOfAllView( int* posary );
00355
00356     // 2005.11.21 aroka
00357     bool FormatBackUpPath( char* szNewPath, const char* target_file );  /* バックアップパスの作成 */
00358 };
00359
00360
00361
00363 #endif /* _CEDITDOC_H_ */
00364
00365
00366 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc_FuncList1.cpp

CEditDoc_FuncList1.cpp

アウトライン解析 [詳細]

#include "stdafx.h"
#include <string.h>
#include "global.h"
#include "CEditDoc.h"
#include "CFuncInfoArr.h"
#include "CDocLine.h"
#include "charcode.h"

CEditDoc_FuncList1.cppのインクルード依存関係図

ソースコードを見る。

構成

class | CCppPreprocessMng

関数

bool | C_IsSpace (char c)
bool | C_IsWordChar (char c)
static bool | C_IsOperator (char *szStr, int nLen)
static bool | C_IsLineEsc (const char *s, int len)

説明

アウトライン解析

作者:
genta
日付:
2004.08.08 作成

CEditDoc_FuncList1.cpp で定義されています。

関数

static bool C_IsLineEsc | ( | const char * | s,
 |  | int | len
 | ) | [static]

改行直前を \ でエスケープしているかどうか判定

日付:
2005.12.06 じゅうじ 最後の1文字しか見ないと2バイトコードの後半がバックスラッシュの場合に誤認する

CEditDoc_FuncList1.cpp の 87 行で定義されています。

参照先 CMemory::GetSizeOfChar().

参照元 CCppPreprocessMng::ScanLine().

static bool C_IsOperator | ( | char * | szStr,
 |  | int | nLen
 | ) | [static]

特殊な関数名 "operator" かどうかを判定する。

文字列が"operator"それ自身か、あるいは::の後ろにoperatorと続いて 終わっているときにoperatorと判定。

演算子の評価順序を保証するため2つのif文に分けてある

引数:
szStr | 判定対象の文字列
nLen | 文字列の長さ。 本質的には不要であるが、高速化のために既にある値を利用する。

CEditDoc_FuncList1.cpp の 68 行で定義されています。

bool C_IsSpace ( char c ) [inline]

スペースの判定

CEditDoc_FuncList1.cpp の 33 行で定義されています。

参照先 CR・LF.

参照元 CCppPreprocessMng::ScanLine().

bool C_IsWordChar ( char c ) [inline]

関数に用いることができる文字かどうかの判定

CEditDoc_FuncList1.cpp の 44 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:16:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc_FuncList1.cpp ソースファイル

CEditDoc_FuncList1.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, genta
00010     Copyright (C) 2001, genta
00011     Copyright (C) 2002, frozen
00012     Copyright (C) 2003, zenryaku
00013     Copyright (C) 2005, genta, D.S.Koba, じゅうじ
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holders to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include <string.h>
00021 #include "global.h"
00022
00023 #include "CEditDoc.h"
00024 #include "CFuncInfoArr.h"
00025 #include "CDocLine.h"
00026 #include "charcode.h"
00027
00028 //  Mar. 15, 2000 genta
00029 //  From Here
00033 inline bool C_IsSpace( char c ){
00034     return ('\t' == c ||
00035              ' ' == c ||
00036               CR == c ||
00037               LF == c
00038     );
00039 }
00040
00044 inline bool C_IsWordChar( char c ){
00045     return ( '_' == c ||
00046              ':' == c ||
00047              '~' == c ||
00048             ('a' <= c && c <= 'z' )||
00049             ('A' <= c && c <= 'Z' )||
00050             ('0' <= c && c <= '9' )
00051         );
00052 }
00053 //  To Here
00054
00055 //  From Here Apr. 1, 2001 genta
00068 static bool C_IsOperator( char* szStr, int nLen )
00069 {
00070     if( nLen >= 8 && szStr[ nLen - 1 ] == 'r' ){
00071         if( nLen > 8 ?
00072                 strcmp( szStr + nLen - 9, ":operator" ) == 0 :  // メンバー関数による定義
00073                 strcmp( szStr, "operator" ) == 0    // friend関数による定義
00074          ){
00075             return true;
00076         }
00077     }
00078     return false;
00079 }
00080 //  To Here Apr. 1, 2001 genta
00081
00087 static bool C_IsLineEsc(const char *s, int len)
00088 {
00089     if ( len > 0 && s[len-1] == '\n' ) len--;
00090     if ( len > 0 && s[len-1] == '\r' ) len--;
00091     if ( len > 0 && s[len-1] == '\n' ) len--;
00092
00093     if ( len > 0 && s[len-1] == '\\' ) {
00094         if ( len == 1 ) {
00095             return(true);
00096         } else if ( len == 2 ) {
00097             if ( CMemory::GetSizeOfChar( s, 2 , 0 ) == 1 )
00098                 return(true);
00099         } else {                /* 残り３バイト以上 */
00100             if ( CMemory::GetSizeOfChar( s, len , len-2 ) == 1 )
00101                 return(true);
00102             if ( CMemory::GetSizeOfChar( s, len , len-3 ) == 2 )
00103                 return(true);
00104         }
00105     }
00106     return(false);
00107 }
00108
00115 class CCppPreprocessMng {
00116 public:
00117     CCppPreprocessMng(void) :
00118         m_stackptr( 0 ), m_bitpattern( 1 ), m_enablebuf( 0 ), m_maxnestlevel( 32 ), m_ismultiline( false )
00119     {}
00120
00121     int ScanLine(const char*, int);
00122
00123 private:
00124     bool m_ismultiline;
00125     int m_maxnestlevel;
00126
00127     int m_stackptr;
00128
00133     unsigned int m_bitpattern;
00134     unsigned int m_enablebuf;
00135 };
00136
00164 int CCppPreprocessMng::ScanLine( const char* str, int length )
00165 {
00166     const char* lastptr = str + length; //  処理文字列末尾
00167     const char* p;  //  処理中の位置
00168
00169     //  skip whitespace
00170     for( p = str; C_IsSpace( *p ) && p < lastptr ; ++p )
00171         ;
00172     if( lastptr <= p )
00173         return length;  //  空行のため処理不要
00174
00175     if(m_ismultiline){ // 複数行のディレクティブは無視
00176         m_ismultiline = C_IsLineEsc(str, length); // 行末が \ で終わっていないか
00177         return length;
00178     }
00179
00180     if( *p != '#' ){    //  プリプロセッサ以外の処理はメイン部に任せる
00181         if( m_enablebuf ){
00182             return length;  //  1ビットでも1となっていたら無視
00183         }
00184         return p - str;
00185     }
00186
00187     ++p; // #をスキップ
00188
00189     //  skip whitespace
00190     for( ; C_IsSpace( *p ) && p < lastptr ; ++p )
00191         ;
00192
00193     //  ここからPreprocessor directive解析
00194     if( p + 2 + 2 < lastptr && strncmp( p, "if", 2 ) == 0 ){    //  sizeof( "if" ) == 2
00195         // if
00196         p += 2;
00197
00198         int enable = 0; //  0: 処理しない, 1: else以降が有効, 2: 最初が有効,
00199
00200         //  if 0は最初が無効部分とみなす．
00201         //  それ以外のif/ifdef/ifndefは最初が有効部分と見なす
00202         //  最初の条件によってこの時点ではp < lastptrなので判定省略
00203         if( C_IsSpace( *p ) ){
00204             //  if 0 チェック
00205             //  skip whitespace
00206             for( ; C_IsSpace( *p ) && p < lastptr ; ++p )
00207                 ;
00208             if( *p == '0' ){
00209                 enable = 1;
00210             }
00211             else {
00212                 enable = 2;
00213             }
00214         }
00215         else if(
00216             ( p + 3 < lastptr && strncmp( p, "def", 3 ) == 0 ) ||
00217             ( p + 4 < lastptr && strncmp( p, "ndef", 4 ) == 0 )){
00218             enable = 2;
00219         }
00220
00221         //  保存領域の確保とビットパターンの設定
00222         if( enable > 0 ){
00223             m_bitpattern = 1 << m_stackptr;
00224             ++m_stackptr;
00225             if( enable == 1 ){
00226                 m_enablebuf |= m_bitpattern;
00227             }
00228         }
00229     }
00230     else if( p + 4 < lastptr && strncmp( p, "else", 4 ) == 0 ){ //  sizeof( "else" ) == 4
00231         if( m_stackptr < m_maxnestlevel ){
00232             m_enablebuf ^= m_bitpattern;
00233         }
00234     }
00235     else if( p + 5 < lastptr && strncmp( p, "endif", 5 ) == 0 ){    //  sizeof( "endif" ) == 5
00236         if( m_stackptr > 0 ){
00237             --m_stackptr;
00238             m_enablebuf &= ~m_bitpattern;
00239             m_bitpattern = ( 1 << ( m_stackptr - 1 ));
00240         }
00241     }
00242     else{
00243         m_ismultiline = C_IsLineEsc(str, length); // 行末が \ で終わっていないか
00244     }
00245
00246     return length;  //  基本的にプリプロセッサ指令は無視
00247 }
00248
00277 void CEditDoc::MakeFuncList_C( CFuncInfoArr* pcFuncInfoArr ,bool bVisibleMemberFunc )
00278 {
00279     const char* pLine;
00280     int         nLineLen;
00281     int         nLineCount;
00282     int         i;
00283
00284     // 2002/10/27 frozen　ここから
00285     // nNestLevelを nNestLevel_global を nNestLevel_func に分割した。
00286     int         nNestLevel_global = 0;  // nNestLevel_global 関数外の {}のレベル
00287     int         nNestLevel_func   = 0;  //  nNestLevel_func 関数の定義、および関数内の  {}のレベル
00288 //  int         nNestLevel2;            //  nNestLevel2 ()に対する位置 // 2002/10/27 frozen nNastLevel_fparamとnMode2のM2_FUNC_NAME_ENDで代用
00289     int         nNestLevel_fparam = 0;  // ()のレベル
00290     int         nNestPoint_class = 0;   // 外側から何番目の{がクラスの定義を囲む{か？ (一番外側なら1、0なら無し。bVisibleMemberFuncがfalseの時のみ有効。trueでは常に0)
00291     // 2002/10/27 frozen　ここまで
00292
00293     int         nCharChars;         //  多バイト文字を読み飛ばすためのもの
00294     char        szWordPrev[256];    //  1つ前のword
00295     char        szWord[256];        //  現在解読中のwordを入れるところ
00296     int         nWordIdx = 0;
00297     int         nMaxWordLeng = 100; //  許容されるwordの最大長さ
00298     int         nMode;              //  現在のstate
00299
00300     // 2002/10/27 frozen　ここから
00302     enum MODE2
00303     {
00304         M2_NORMAL           = 0x00,
00305         M2_NAMESPACE_SAVE   = 0x11,
00306             // 「通常」状態で単語 "class" "struct" "union" "enum" "namespace"を読み込むと、この状態になり、';' '{' ',' '>' '='を読み込むと「通常」になる。
00307             //
00308             // ':' を読み込むと「ネームスペース名調査完了」へ移行すると同時に
00309             // szWordをszTokenNameに保存し、あとで ':' 又は '{' の直前の単語が調べられるようにしている。
00310             // これは "__declspec( dllexport )"のように"class"とクラス名の間にキーワードが書いてある場合でもクラス名を取得できるようにするため。
00311             //
00312             // '<' を読み込むと「テンプレートクラス名調査中」に移行する。
00313         M2_TEMPLATE_SAVE    = 0x12,
00314             // ';' '{'を読み込むと「通常」になる。
00315             // また、この状態の間は単語を区切る方法を一時的に変更し、
00316             // 「template_name <paramA,paramB>」のような文字列を一つの単語をみなすようにする。
00317             // これは特殊化したクラステンプレートを実装する際の構文で有効に働く。
00318         M2_NAMESPACE_END    = 0x13,
00319         M2_FUNC_NAME_END    = 0x14,
00320         M2_AFTER_EQUAL      = 0x05,
00321             //「通常」かつ nNestLevel_fparam==0 で'='が見つかるとこの状態になる。（ただし "opreator"の直後は除く）
00322             // ';'が見つかると「通常」に戻る。
00323             // int val=abs(-1);
00324             // のような文が関数とみなされないようにするために使用する。
00325         M2_KR_FUNC          = 0x16,
00326         M2_AFTER_ITEM       = 0x10,
00327     } nMode2 = M2_NORMAL;
00328 //  char        szFuncName[256];    //  関数名
00329
00330     const int   nNamespaceNestMax   = 32;
00331     int         nNamespaceLen[nNamespaceNestMax+1];
00332     const int   nNamespaceLenMax    = 512;
00333     char        szNamespace[nNamespaceLenMax];
00334     const int   nItemNameLenMax     = 256;
00335     char        szItemName[nItemNameLenMax];
00336     // 例えば下のコードの←の部分での
00337     // szNamespaceは"Namespace\ClassName\"
00338     // nMamespaceLenは{10,20}
00339     // nNestLevel_globalは2となる。
00340     //
00341     //　namespace Namespace{
00342     //　class ClassName{
00343     //　←
00344     //　}}
00345
00346     int         nItemLine;
00347     int         nItemFuncId;
00348
00349 //  int         nFuncLine;
00350 //  int         nFuncId;
00351
00352 //  int         nFuncNum;           // 使っていないようなので削除
00353     // 2002/10/27 frozen　ここまで
00354
00355     //  Mar. 4, 2001 genta
00356 //  bool        bCppInitSkip;       //  C++のメンバー変数、親クラスの初期化子をSKIP // 2002/10/27 frozen nMode2の機能で代用
00357     szWordPrev[0] = '\0';
00358     szWord[nWordIdx] = '\0';
00359     szNamespace[0] = '\0';  // 2002/10/27 frozen
00360     nNamespaceLen[0] = 0;   // 2002/10/27 frozen
00361     nMode = 0;
00362
00363     //  Aug. 10, 2004 genta プリプロセス処理クラス
00364     CCppPreprocessMng cCppPMng;
00365
00366 //  FuncNum = 0;
00367 //  bCppInitSkip = false;
00368 //  for( nLineCount = 0; nLineCount <  m_cLayoutMgr.GetLineCount(); ++nLineCount ){
00369     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00370 //      pLine = m_cLayoutMgr.GetLineStr( nLineCount, &nLineLen );
00371         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00372
00373         //  From Here Aug. 10, 2004 genta
00374         //  プリプロセス処理
00375         //  コメント中でなければプリプロセッサ指令を先に判定させる
00376         if( 8 != nMode && 10 != nMode ){    /* chg 2005/12/6 じゅうじ 次の行が空白でもよい  */
00377             i = cCppPMng.ScanLine( pLine, nLineLen );
00378         }
00379         else {
00380             i = 0;
00381         }
00382         //  C/C++としての処理が不要なケースでは i == nLineLenとなっているので
00383         //  以下の解析処理はSKIPされる．
00384         //  To Here Aug. 10, 2004 genta
00385
00386         for( ; i < nLineLen; ++i ){
00387             /* 1バイト文字だけを処理する */
00388             // 2005-09-02 D.S.Koba GetSizeOfChar
00389             nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00390             if( 1 < nCharChars ){
00391                 i += (nCharChars - 1);
00392                 continue;
00393             }
00394 /* del start 2005/12/6 じゅうじ */
00395             /* エスケープシーケンスは常に取り除く */
00396             /* シングルクォーテーション文字列読み込み中 */
00397             /* ダブルクォーテーション文字列読み込み中 */
00398             // いずれもコメント処理の後へ移動
00399 /* del end 2005/12/6 じゅうじ   */
00400             /* コメント読み込み中 */
00401             if( 8 == nMode ){
00402                 if( i < nLineLen - 1 && '*' == pLine[i] &&  '/' == pLine[i + 1] ){
00403                     ++i;
00404                     nMode = 0;
00405                     continue;
00406                 }else{
00407                 }
00408             }else
00409             /* ラインコメント読み込み中 */
00410             // 2003/06/24 zenryaku
00411             if( 10 == nMode)
00412             {
00413                 if(!C_IsLineEsc(pLine, nLineLen)){
00414                     nMode = 0;
00415                 }
00416                 i = nLineLen;
00417                 continue;
00418             }else
00419 /* add start 2005/12/6 じゅうじ */
00420             /* エスケープシーケンスは常に取り除く */
00421             if( '\\' == pLine[i] ){
00422                 ++i;
00423             }else
00424             /* シングルクォーテーション文字列読み込み中 */
00425             if( 20 == nMode ){
00426                 if( '\'' == pLine[i] ){
00427                     nMode = 0;
00428                     continue;
00429                 }else{
00430                 }
00431             }else
00432             /* ダブルクォーテーション文字列読み込み中 */
00433             if( 21 == nMode ){
00434                 if( '"' == pLine[i] ){
00435                     nMode = 0;
00436                     continue;
00437                 }else{
00438                 }
00439             }else
00440 /* add end 2005/12/6 じゅうじ   */
00441             /* 単語読み込み中 */
00442             if( 1 == nMode ){
00443                 if( C_IsWordChar( pLine[i] ) ){
00444                     ++nWordIdx;
00445                     if( nWordIdx >= nMaxWordLeng ){
00446                         nMode = 999;
00447                         continue;
00448                     }else{
00449                         if( pLine[i] == ':')
00450                         {
00451                             if(nMode2 == M2_NAMESPACE_SAVE)
00452                             {
00453                                 if(szWord[0]!='\0')
00454                                     strcpy( szItemName, szWord );
00455                                 nMode2 = M2_NAMESPACE_END;
00456                             }
00457                             else if( nMode2 == M2_TEMPLATE_SAVE)
00458                             {
00459                                 strncat( szItemName, szWord, nItemNameLenMax - strlen(szItemName) );
00460                                 szItemName[ nItemNameLenMax - 1 ] = '\0';
00461                                 nMode2 = M2_NAMESPACE_END;
00462                             }
00463                         }
00464                         szWord[nWordIdx] = pLine[i];
00465                         szWord[nWordIdx + 1] = '\0';
00466                     }
00467                 }else{
00468                     //  From Here Mar. 31, 2001 genta
00469                     //  operatorキーワード(演算子overload)の対応
00470                     //  ただし、operatorキーワードの後ろにスペースが入っているとうまく動かない。
00471                     if( C_IsOperator( szWord, nWordIdx + 1 ) ){
00472                         //  operatorだ！
00473                         /*  overloadする演算子一覧
00474                             & && &=
00475                             | || |=
00476                             + ++ +=
00477                             - -- -= -> ->*
00478                             * *=
00479                             / /=
00480                             % %=
00481                             ^ ^=
00482                             ! !=
00483                             = ==
00484                             < <= << <<=
00485                             > >= >> >>=
00486                             ()
00487                             []
00488                             ~
00489                             ,
00490                         */
00491                         int oplen = 0;  // 演算子本体部の文字列長
00492                         switch( pLine[i] ){
00493                         case '&': // no break
00494                         case '|': // no break
00495                         case '+':
00496                             oplen = 1;
00497                             if( i + 1 < nLineLen ){
00498                                 if( pLine[ i + 1 ] == pLine[ i ] ||
00499                                     pLine[ i + 1 ] == '=' )
00500                                     oplen = 2;
00501                             }
00502                             break;
00503                         case '-':
00504                             oplen = 1;
00505                             if( i + 1 < nLineLen ){
00506                                 if( pLine[ i + 1 ] == '-' ||
00507                                     pLine[ i + 1 ] == '=' )
00508                                     oplen = 2;
00509                                 else if( pLine[ i + 1 ] == '>' ){
00510                                     oplen = 2;
00511                                     if( i + 2 < nLineLen ){
00512                                         if( pLine[ i + 2 ] == '*' )
00513                                             oplen = 3;
00514                                     }
00515                                 }
00516                             }
00517                             break;
00518                         case '*': // no break
00519                         case '/': // no break
00520                         case '%': // no break
00521                         case '^': // no break
00522                         case '!': // no break
00523                         case '=':
00524                             oplen = 1;
00525                             if( i + 1 < nLineLen ){
00526                                 if( pLine[ i + 1 ] == '=' )
00527                                     oplen = 2;
00528                             }
00529                             break;
00530                         case '<': // no break
00531                         case '>':
00532                             oplen = 1;
00533                             if( i + 1 < nLineLen ){
00534                                 if( pLine[ i + 1 ] == pLine[ i ] ){
00535                                     oplen = 2;
00536                                     if( i + 2 < nLineLen ){
00537                                         if( pLine[ i + 2 ] == '=' )
00538                                             oplen = 3;
00539                                     }
00540                                 }
00541                                 else if( pLine[ i + 1 ] == '=' )
00542                                     oplen = 2;
00543                             }
00544                             break;
00545                         case '(':
00546                             if( i + 1 < nLineLen )
00547                                 if( pLine[ i + 1 ] == /* 括弧対応対策 ( */ ')' )
00548                                     oplen = 2;
00549                             break;
00550                         case '[':
00551                             if( i + 1 < nLineLen )
00552                                 if( pLine[ i + 1 ] == /* 括弧対応対策 [ */ ']' )
00553                                     oplen = 2;
00554                             break;
00555                         case '~': // no break
00556                         case ',':
00557                             oplen = 2;
00558                             break;
00559                         }
00560
00561                         //  oplen の長さだけキーワードに追加
00562                         for( ; oplen > 0 ; oplen--, i++ ){
00563                             ++nWordIdx;
00564                             szWord[nWordIdx] = pLine[i];
00565                         }
00566                         szWord[nWordIdx + 1] = '\0';
00567                             // 記号列の処理を行う前は記号列のiは記号列の先頭を指していた。
00568                             // この時点でiは記号列の1つ後を指している
00569
00570                             // operatorの後ろに不正な文字がある場合の動作
00571                             // ( で始まる場合はoperatorという関数と認識される
00572                             // それ以外の記号だと従来通り記号列がglobalのしたに現れる。
00573
00574                             // 演算子が抜けている場合の動作
00575                             // 引数部が()の場合はそれが演算子と見なされるため、その行は関数定義と認識されない
00576                             // それ以外の場合はoperatorという関数と認識される
00577                     }
00578                     // 2002/10/27 frozen　ここから
00579                     if( nMode2 == M2_NAMESPACE_SAVE )
00580                         strcpy( szItemName, szWord );
00581                     else if( nMode2 == M2_TEMPLATE_SAVE)
00582                     {
00583                         strncat( szItemName, szWord, nItemNameLenMax - strlen(szItemName) );
00584                         szItemName[ nItemNameLenMax - 1 ] = '\0';
00585                     }
00586                     else if( nNestLevel_func == 0 && nMode2 == M2_NORMAL )
00587                     {
00588                         nItemFuncId = 0;
00589                         if( strcmp(szWord,"class")==0 )
00590                             nItemFuncId = 3;
00591                         if( strcmp(szWord,"struct")==0 )
00592                             nItemFuncId = 4;
00593                         else if( strcmp(szWord,"namespace")==0 )
00594                             nItemFuncId = 7;
00595                         else if( strcmp(szWord,"enum")==0 )
00596                             nItemFuncId = 5;
00597                         else if( strcmp(szWord,"union")==0 )
00598                             nItemFuncId = 6;
00599                         if( nItemFuncId != 0 )
00600                         {
00601                             nMode2 = M2_NAMESPACE_SAVE;
00602                             nItemLine = nLineCount + 1;
00603                             strcpy(szItemName,"無名");
00604                         }
00605                     }
00606                     else if( nMode2 == M2_FUNC_NAME_END )
00607                     {
00608                         nMode2 = M2_KR_FUNC;
00609                     }
00610                     // 2002/10/27 frozen　ここまで
00611
00612                     //  To Here Mar. 31, 2001 genta
00613                     // 2004/03/12 zenryaku キーワードに _ と PARAMS を使わせない (GNUのコードが見にくくなるから)
00614                     if( !( strcmp("PARAMS",szWord) == 0 || strcmp("_",szWord) == 0 ) )
00615                         strcpy( szWordPrev, szWord );
00616                     nWordIdx = 0;
00617                     szWord[0] = '\0';
00618                     nMode = 0;
00619                     i--;
00620                     continue;
00621                 }
00622             }else
00623             /* 記号列読み込み中 */
00624             if( 2 == nMode ){
00625                 if( C_IsWordChar( pLine[i] ) ||
00626                     C_IsSpace( pLine[i] ) ||
00627                      '{' == pLine[i] ||
00628                      '}' == pLine[i] ||
00629                      '(' == pLine[i] ||
00630                      ')' == pLine[i] ||
00631                      ';' == pLine[i] ||
00632                     '\'' == pLine[i] ||
00633                      '"' == pLine[i] ||
00634                      '/' == pLine[i]
00635                 ){
00636                     strcpy( szWordPrev, szWord );
00637                     nWordIdx = 0;
00638                     szWord[0] = '\0';
00639                     nMode = 0;
00640                     i--;
00641                     continue;
00642                 }else{
00643                     ++nWordIdx;
00644                     if( nWordIdx >= nMaxWordLeng ){
00645                         nMode = 999;
00646                         continue;
00647                     }else{
00648                         szWord[nWordIdx] = pLine[i];
00649                         szWord[nWordIdx + 1] = '\0';
00650                     }
00651                 }
00652             }else
00653             /* 長過ぎる単語無視中 */
00654             if( 999 == nMode ){
00655                 /* 空白やタブ記号等を飛ばす */
00656                 if( C_IsSpace( pLine[i] ) ){
00657                     nMode = 0;
00658                     continue;
00659                 }
00660             }else
00661             /* ノーマルモード */
00662             if( 0 == nMode ){
00663                 /* 空白やタブ記号等を飛ばす */
00664                 if( C_IsSpace( pLine[i] ) )
00665                     continue;
00666
00667                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '/' == pLine[i + 1] ){
00668                     ++i;
00669                     nMode = 10;
00670                     continue;
00671                 }else
00672                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '*' == pLine[i + 1] ){
00673                     ++i;
00674                     nMode = 8;
00675                     continue;
00676                 }else
00677                 if( '\'' == pLine[i] ){
00678                     nMode = 20;
00679                     continue;
00680                 }else
00681                 if( '"' == pLine[i] ){
00682                     nMode = 21;
00683                     continue;
00684                 }else
00685
00686                 // 2002/10/27 frozen ここから
00687                 if( '{' == pLine[i] )
00688                 {
00689                     int nItemNameLen;
00690                     if( nNestLevel_func !=0)
00691                         ++nNestLevel_func;
00692                     else if(
00693                             (nMode2 & M2_AFTER_ITEM) != 0  &&
00694                             nNestLevel_global < nNamespaceNestMax &&
00695                             (nNamespaceLen[nNestLevel_global] +  (nItemNameLen = strlen(szItemName)) + 10 + 1) < nNamespaceLenMax)
00696                     // ３番目の(&&の後の)条件
00697                     // バッファが足りない場合は項目の追加を行わない。
00698                     // +10は追加する文字列の最大長(追加する文字列は"::定義位置"が最長)
00699                     // +1は終端NUL文字
00700                     {
00701                         strcpy( &szNamespace[nNamespaceLen[nNestLevel_global]] , szItemName);
00702                         //  Jan. 30, 2005 genta M2_KR_FUNC 追加
00703                         //  関数の後ろにconst, throw または初期化子があると
00704                         //  M2_KR_FUNCに遷移して，';'が見つからないとその状態のまま
00705                         //  中括弧に遭遇する．
00706                         if( nMode2 == M2_FUNC_NAME_END || nMode2 == M2_KR_FUNC )
00707                             ++ nNestLevel_func;
00708                         else
00709                         {
00710                             ++ nNestLevel_global;
00711                             nNamespaceLen[nNestLevel_global] = nNamespaceLen[nNestLevel_global-1] + nItemNameLen;
00712                             if( nItemFuncId == 7)
00713                                 strcpy(&szNamespace[nNamespaceLen[nNestLevel_global]],"::定義位置");
00714                             else
00715                             {
00716                                 szNamespace[nNamespaceLen[nNestLevel_global]] = '\0';
00717                                 szNamespace[nNamespaceLen[nNestLevel_global]+1] = ':';
00718                                 if(bVisibleMemberFunc == false && nNestPoint_class == 0)
00719                                     nNestPoint_class = nNestLevel_global;
00720                             }
00721                         }
00722                         /*
00723                           カーソル位置変換
00724                           物理位置(行頭からのバイト数、折り返し無し行位置)
00725                           →
00726                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00727                         */
00728                         int     nPosX;
00729                         int     nPosY;
00730                         m_cLayoutMgr.CaretPos_Phys2Log(
00731                             0,
00732                             nItemLine - 1,
00733                             &nPosX,
00734                             &nPosY
00735                         );
00736                         pcFuncInfoArr->AppendData( nItemLine, nPosY + 1 , szNamespace, nItemFuncId);
00737                         //  Jan. 30, 2005 genta M2_KR_FUNC 追加
00738                         if( nMode2 != M2_FUNC_NAME_END && nMode2 != M2_KR_FUNC )
00739                         {
00740                             szNamespace[nNamespaceLen[nNestLevel_global]] = ':';
00741                             nNamespaceLen[nNestLevel_global] += 2;
00742                         }
00743                     }
00744                     else
00745                     {
00746                         //  Jan. 30, 2005 genta M2_KR_FUNC 追加
00747                         if(nMode2 == M2_FUNC_NAME_END || nMode2 == M2_KR_FUNC)
00748                             ++ nNestLevel_func;
00749                         else
00750                         {
00751                             ++ nNestLevel_global;
00752                             if ( nNestLevel_global <= nNamespaceNestMax )
00753                                 nNamespaceLen[nNestLevel_global]=nNamespaceLen[nNestLevel_global-1];
00754                         }
00755                     }
00756                     // bCppInitSkip = false;    //  Mar. 4, 2001 genta
00757                     nMode = 0;
00758                     nMode2 = M2_NORMAL;
00759                     // nNestLevel2 = 0;
00760                     continue;
00761                 }else
00762                 // 2002/10/27 frozen ここまで
00763
00764                 if( '}' == pLine[i] ){
00765                     //  2002/10/27 frozen ここから
00766 //                  nNestLevel2 = 0;
00767                     if(nNestLevel_func == 0)
00768                     {
00769                         if(nNestLevel_global!=0)
00770                         {
00771                             if(nNestLevel_global == nNestPoint_class)
00772                                 nNestPoint_class = 0;
00773                             --nNestLevel_global;
00774                         }
00775                     }
00776                     else
00777                         --nNestLevel_func;
00778                     //  2002/10/27 frozen ここまで
00779                     nMode = 0;
00780                     nMode2 = M2_NORMAL;
00781                     continue;
00782                 }else
00783                 if( '(' == pLine[i] ){
00784                     //  2002/10/27 frozen ここから
00785 //                  if( nNestLevel == 0 && !bCppInitSkip ){
00786 //                      strcpy( szFuncName, szWordPrev );
00787 //                      nFuncLine = nLineCount + 1;
00788 //                      nNestLevel2 = 1;
00789 //                  }
00790 //                  nMode = 0;
00791                     if( nNestLevel_func == 0 && (nMode2 == M2_NORMAL || nMode2 == M2_NAMESPACE_SAVE || nMode2 == M2_NAMESPACE_END) )
00792                     {
00793                         if( strcmp(szWordPrev, "__declspec") == 0 ) {continue;}
00794                         if(nNestLevel_fparam==0)
00795                         {
00796                             strcpy( szItemName, szWordPrev);
00797                             nItemLine = nLineCount + 1;
00798                         }
00799                         ++ nNestLevel_fparam;
00800                     }
00801                     //  2002/10/27 frozen ここまで
00802
00803                     //  From Here Jan. 30, 2005 genta
00804                     if( nNestLevel_func == 0 && nMode2 == M2_KR_FUNC ){
00805                         //  throwなら (例外の型,...) を読み飛ばす
00806                         if(nNestLevel_fparam==0)
00807                             ++ nNestLevel_fparam;
00808                     }
00809                     //  To Here Jan. 30, 2005 genta
00810                     continue;
00811                 }else
00812                 if( ')' == pLine[i] ){
00813                     //  2002/10/27 frozen ここから
00814 //                  if( 1 == nNestLevel2 ){
00815 //                      nNestLevel2 = 2;
00816 //                  }
00817 //                  nMode = 0;
00818                     if( nNestLevel_fparam > 0)
00819                     {
00820                         --nNestLevel_fparam;
00821                         if( nNestLevel_fparam == 0)
00822                         {
00823                             nMode2 = M2_FUNC_NAME_END;
00824                             nItemFuncId = 2;
00825                         }
00826                     }
00827                     //  2002/10/27 frozen ここまで
00828                     continue;
00829                 }else
00830                 if( ';' == pLine[i] ){
00831                     //  2002/10/27 frozen ここから
00832 //                  if( 2 == nNestLevel2 ){
00833 //                      //  閉じ括弧')'の後の';' すなわち関数宣言
00834 //                      if( 0 != strcmp( "sizeof", szFuncName ) ){
00835 //                          nFuncId = 1;
00836 //                          ++nFuncNum;
00837 //                          /*
00838 //                            カーソル位置変換
00839 //                            物理位置(行頭からのバイト数、折り返し無し行位置)
00840 //                            →
00841 //                            レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00842 //                          */
00843 //                          int     nPosX;
00844 //                          int     nPosY;
00845 //                          m_cLayoutMgr.CaretPos_Phys2Log(
00846 //                              0,
00847 //                              nFuncLine - 1,
00848 //                              &nPosX,
00849 //                              &nPosY
00850 //                          );
00851 //                          pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1, szFuncName, nFuncId);
00853 //                      }
00854 //                  }
00855 //                  nNestLevel2 = 0;
00856                     if( nMode2 == M2_KR_FUNC )
00857                     {
00858                         //  Jan. 30, 2005 genta 関数後の const, throwの後ろの
00859                         //  ';'はK&R形式宣言の終わりでなく関数宣言の終わり
00860                         if( strcmp( szWordPrev, "const" ) == 0 ||
00861                             strcmp( szWordPrev, "throw" ) == 0 ){
00862                                 nMode2 = M2_FUNC_NAME_END;
00863                                 //  すぐ下のif文に引っかかりますように
00864                         }
00865                         else {
00866                             // zenryaku K&Rスタイルの関数宣言の終了後 M2_FUNC_NAME_END にもどす
00867                             nMode2 = M2_FUNC_NAME_END;
00868                             continue;
00869                         }
00870                     } //    Jan. 30, 2005 genta K&R処理に引き続いて宣言処理も行う．
00871                     if( nMode2 == M2_FUNC_NAME_END &&
00872                         nNestLevel_global < nNamespaceNestMax &&
00873                         (nNamespaceLen[nNestLevel_global] + strlen(szItemName)) < nNamespaceLenMax &&
00874                         nNestPoint_class == 0)
00875                     // ３番目の(&&の後の)条件
00876                     // バッファが足りない場合は項目の追加を行わない。
00877                     {
00878                         strcpy( &szNamespace[nNamespaceLen[ nNestLevel_global]] , szItemName);
00879
00880                         nItemFuncId = 1;
00881                         /*
00882                           カーソル位置変換
00883                           物理位置(行頭からのバイト数、折り返し無し行位置)
00884                           →
00885                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00886                         */
00887                         int     nPosX;
00888                         int     nPosY;
00889                         m_cLayoutMgr.CaretPos_Phys2Log(
00890                             0,
00891                             nItemLine - 1,
00892                             &nPosX,
00893                             &nPosY
00894                         );
00895                         pcFuncInfoArr->AppendData( nItemLine, nPosY + 1, szNamespace, nItemFuncId);
00896                     }
00897                     nMode2 = M2_NORMAL;
00898                     //  2002/10/27 frozen ここまで
00899                     nMode = 0;
00900                     continue;
00901                 }else if( nNestLevel_fparam == 0 ){
00902                     if( C_IsWordChar( pLine[i] ) ){
00903                         //  2002/10/27 frozen ここから削除
00904 //                      if( 2 == nNestLevel2 ){
00905 //                          //  閉じ括弧が無いけどとりあえず登録しちゃう
00906 //                          if( 0 != strcmp( "sizeof", szFuncName ) ){
00907 //                              nFuncId = 2;
00908 //                              ++nFuncNum;
00909 //                              /*
00910 //                                カーソル位置変換
00911 //                                物理位置(行頭からのバイト数、折り返し無し行位置)
00912 //                                →
00913 //                                レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00914 //                              */
00915 //                              int     nPosX;
00916 //                              int     nPosY;
00917 //                              m_cLayoutMgr.CaretPos_Phys2Log(
00918 //                                  0,
00919 //                                  nFuncLine - 1,
00920 //                                  &nPosX,
00921 //                                  &nPosY
00922 //                              );
00923 //                              pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1 , szFuncName, nFuncId );
00924 //                          }
00925 //                          nNestLevel2 = 0;
00926 //                          //  Mar 4, 2001 genta   初期化子だったときはそれ以降の登録を制限する
00927 //                          if( pLine[i] == ':' )
00928 //                              bCppInitSkip = true;
00929 //                      }
00930                         //  2002/10/27 frozen ここまで削除
00931
00932                         //  //  Mar. 15, 2000 genta
00933                         //  From Here
00934                         //  直前のwordの最後が::か，あるいは直後のwordの先頭が::なら
00935                         //  クラス限定子と考えて両者を接続する．
00936
00937                         {
00938                             int pos = strlen( szWordPrev ) - 2;
00939                             if( //  前の文字列の末尾チェック
00940                                 ( pos > 0 &&    szWordPrev[pos] == ':' &&
00941                                 szWordPrev[pos + 1] == ':' ) ||
00942                                 //  次の文字列の先頭チェック
00943                                 ( i < nLineLen - 1 && pLine[i] == ':' &&
00944                                     pLine[i+1] == ':' )
00945                             ){
00946                                 //  前の文字列に続ける
00947                                 strcpy( szWord, szWordPrev );
00948                                 nWordIdx = strlen( szWord );
00949                             }
00950                             //  From Here Apr. 1, 2001 genta
00951                             //  operator new/delete 演算子の対応
00952                             else if( C_IsOperator( szWordPrev, pos + 2 ) ){
00953                                 //  スペースを入れて、前の文字列に続ける
00954                                 szWordPrev[pos + 2] = ' ';
00955                                 szWordPrev[pos + 3] = '\0';
00956                                 strcpy( szWord, szWordPrev );
00957                                 nWordIdx = strlen( szWord );
00958                             }
00959                             //  To Here Apr. 1, 2001 genta
00960                             else{
00961                                 nWordIdx = 0;
00962                             }
00963                         }
00964                         //  strcpy( szWordPrev, szWord );   不要？
00965                         //  To Here
00966
00967                         if( pLine[i] == ':')
00968                         {
00969                             if(nMode2 == M2_NAMESPACE_SAVE)
00970                             {
00971                                 if(szWord[0]!='\0')
00972                                     strcpy( szItemName, szWord );
00973                                 nMode2 = M2_NAMESPACE_END;
00974                             }
00975                             else if( nMode2 == M2_TEMPLATE_SAVE)
00976                             {
00977                                 strncat( szItemName, szWord, nItemNameLenMax - strlen(szItemName) );
00978                                 szItemName[ nItemNameLenMax - 1 ] = '\0';
00979                                 nMode2 = M2_NAMESPACE_END;
00980                             }
00981                         }
00982
00983                         szWord[nWordIdx] = pLine[i];
00984                         szWord[nWordIdx + 1] = '\0';
00985                         //  //  Mar. 15, 2000 genta
00986                         //  From Here
00987                         //  長さチェックは必須
00988                         if( nWordIdx < nMaxWordLeng ){
00989                             nMode = 1;
00990                         }
00991                         else{
00992                             nMode = 999;
00993                         }
00994                         //  To Here
00995                     }else{
00996                         //  Aug. 13, 2004 genta
00997                         //  szWordPrevが失われないうちにoperatorの判定を行う
00998                         //  operatorの判定は前にクラス名が付いている可能性があるので
00999                         //  専用の判定関数を使うべし．
01000                         //  operatorで無ければ=は代入なのでここは宣言文ではない．
01001                         if( pLine[i] == '=' && nNestLevel_func == 0 && nNestLevel_fparam==0
01002                             && nMode2 == M2_NORMAL && ! C_IsOperator(szWordPrev,strlen(szWordPrev)) ){
01003                             nMode2 = M2_AFTER_EQUAL;
01004                         }
01005                         strcpy( szWordPrev, szWord );
01006                         nWordIdx = 0;
01007                         szWord[nWordIdx] = pLine[i];
01008                         szWord[nWordIdx + 1] = '\0';
01009                         nMode = 2;
01010
01011                         // 2002/10/27 frozen ここから
01012                         if( nMode2 == M2_NAMESPACE_SAVE )
01013                         {
01014                             if( pLine[i] == '>' || pLine[i] == ',' || pLine[i] == '=')
01015                                 // '<' の前に '>' , ',' , '=' があったので、おそらく
01016                                 // 前にあった"class"はテンプレートパラメータの型を表していたと考えられる。
01017                                 // よって、クラス名の調査は終了。
01018                                 // '>' はテンプレートパラメータの終了
01019                                 // ',' はテンプレートパラメータの区切り
01020                                 // '=' はデフォルトテンプレートパラメータの指定
01021                                 nMode2 = M2_NORMAL;
01022                             else if( pLine[i] == '<' )
01023                                 nMode2 = M2_TEMPLATE_SAVE;
01024                         }
01025
01026                         if( nMode2 == M2_TEMPLATE_SAVE)
01027                         {
01028                             int nItemNameLen = strlen(szItemName);
01029                             if(nItemNameLen + 1 < nItemNameLenMax )
01030                             {
01031                                 szItemName[nItemNameLen] = pLine[i];
01032                                 szItemName[nItemNameLen + 1 ] = '\0';
01033                             }
01034                         }
01035                         // 2002/10/27 frozen ここまで
01036                     }
01037                 }
01038             }
01039         }
01040     }
01041     return;
01042 }
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc_FuncList2.cpp

CEditDoc_FuncList2.cpp

Pythonアウトライン解析 [詳細]

#include "stdafx.h"
#include <string.h>
#include "global.h"
#include <assert.h>
#include "CEditDoc.h"
#include "CFuncInfoArr.h"
#include "CDocLine.h"
#include "charcode.h"

CEditDoc_FuncList2.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | COutlinePython

関数

bool | C_IsSpace (char c)
bool | Python_IsWordChar (char c)

説明

Pythonアウトライン解析

作者:
genta
日付:
2007.02.24 新規作成

CEditDoc_FuncList2.cpp で定義されています。

関数

bool C_IsSpace ( char c ) [inline]

スペースの判定

CEditDoc_FuncList2.cpp の 46 行で定義されています。

参照先 CR・LF.

bool Python_IsWordChar ( char c ) [inline]

関数に用いることができる文字かどうかの判定

日付:
2007.02.08 genta
覚え書き:
厳密には1文字目に数字を使うことは出来ないが， それは実行してみれば明らかにわかることなので そこまで厳密にチェックしない

CEditDoc_FuncList2.cpp の 63 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:02 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc_FuncList2.cpp ソースファイル

CEditDoc_FuncList2.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2007, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029
00030 */
00031
00032 #include "stdafx.h"
00033 #include <string.h>
00034 #include "global.h"
00035 #include <assert.h>
00036
00037 #include "CEditDoc.h"
00038 #include "CFuncInfoArr.h"
00039 #include "CDocLine.h"
00040 #include "charcode.h"
00041
00042
00046 inline bool C_IsSpace( char c ){
00047     return ('\t' == c ||
00048              ' ' == c ||
00049               CR == c ||
00050               LF == c
00051     );
00052 }
00053
00063 inline bool Python_IsWordChar( char c ){
00064     return ( '_' == c ||
00065             ('a' <= c && c <= 'z' )||
00066             ('A' <= c && c <= 'Z' )||
00067             ('0' <= c && c <= '9' )
00068         );
00069 }
00070
00097 struct COutlinePython {
00098     enum {
00099         STATE_NORMAL,
00100         STATE_STRING,
00101         STATE_CONTINUE,
00102     } m_state;
00103
00104     int m_quote_char;
00105     bool m_raw_string;
00106     bool m_long_string;
00107
00108     COutlinePython();
00109
00110     /*  各状態における文字列スキャンを行う
00111         Scan*が呼びだされるときは既にその状態になっていることが前提．
00112         ある状態から別の状態に移るところまでを扱う．
00113         別の状態に移る判定がややこしいばあいは，Enter*として関数にする．
00114     */
00115     int ScanNormal( const char* data, int linelen, int start_offset );
00116     int ScanString( const char* data, int linelen, int start_offset );
00117     int EnterString( const char* data, int linelen, int start_offset );
00118     void DoScanLine( const char* data, int linelen, int start_offset );
00119
00120     bool IsLogicalLineTop(void) const { return STATE_NORMAL == m_state; }
00121 };
00122
00127 COutlinePython::COutlinePython()
00128     : m_state( STATE_NORMAL ),
00129     m_raw_string( false ),
00130     m_long_string( false )
00131 {
00132 }
00133
00155 int COutlinePython::EnterString( const char* data, int linelen, int start_offset )
00156 {
00157     assert( m_state != STATE_STRING );
00158
00159     int col = start_offset;
00160     //  文字列開始チェック
00161     if( data[ col ] == '\"' || data[ col ] == '\'' ){
00162         int quote_char = data[ col ];
00163         m_state = STATE_STRING;
00164         m_quote_char = quote_char;
00165         //  文字列の開始
00166         if( col >= 1 &&
00167             ( data[ col - 1 ] == 'r' || data[ col - 1 ] == 'R' )){
00168             //  厳密には直前がSHIFT_JISの2バイト目だと誤判定する可能性があるが
00169             //  そういう動かないコードは相手にしない
00170             m_raw_string = true;
00171         }
00172         else {
00173             m_raw_string = false;
00174         }
00175         if( col + 2 < linelen &&
00176             data[ col + 1 ] == quote_char &&
00177             data[ col + 2 ] == quote_char ){
00178                 m_long_string = true;
00179                 col += 2;
00180         }
00181         else {
00182             m_long_string = false;
00183         }
00184         ++col;
00185     }
00186     return col;
00187 }
00188
00209 int COutlinePython::ScanNormal( const char* data, int linelen, int start_offset )
00210 {
00211     assert( m_state == STATE_NORMAL || m_state == STATE_CONTINUE );
00212
00213     for( int col = start_offset; col < linelen; ++col ){
00214         int nCharChars = CMemory::GetSizeOfChar( data, linelen, col );
00215         if( 1 < nCharChars ){
00216             col += (nCharChars - 1);
00217             continue;
00218         }
00219         //  コメント
00220         if( data[col] == '#' ){
00221             //  コメントは行末と同じ扱いなので
00222             //  わざわざ独立して扱う必要性が薄い
00223             //  ここで片を付けてしまおう
00224             m_state = STATE_NORMAL;
00225             break;
00226         }
00227         //  文字列
00228         else if( data[col] == '\"' || data[col] == '\'' ){
00229             return EnterString( data, linelen, col );
00230         }
00231         else if( data[col] == '\\' ){   //  継続行かもしれない
00232             //  CRかCRLFかLFで行末
00233             //  最終行には改行コードがないことがあるが，それ以降には何もないので影響しない
00234             if(
00235                 ( linelen - 2 == col &&
00236                 ( data[ col + 1 ] == CR && data[ col + 2 ] == LF )) ||
00237                 ( linelen - 1 == col &&
00238                 ( data[ col + 1 ] == CR || data[ col + 1 ] == LF ))
00239             ){
00240                 m_state = STATE_CONTINUE;
00241                 break;
00242             }
00243         }
00244     }
00245     return linelen;
00246 }
00247
00248
00274 int COutlinePython::ScanString( const char* data, int linelen, int start_offset )
00275 {
00276     assert( m_state == STATE_STRING );
00277
00278     int quote_char = m_quote_char;
00279     for( int col = start_offset; col < linelen; ++col ){
00280         int nCharChars = CMemory::GetSizeOfChar( data, linelen, col );
00281         if( 1 < nCharChars ){
00282             col += (nCharChars - 1);
00283             continue;
00284         }
00285         //  rawモード以外ではエスケープをチェック
00286         //  rawモードでも継続行はチェック
00287         if( data[ col ] == '\\' && col + 1 < linelen ){
00288             int key = data[ col + 1 ];
00289             if( ! m_raw_string ){
00290                 if( key == '\\' ||
00291                     key == '\"' ||
00292                     key == '\'' ){
00293                     ++col;
00294                     //  ignore
00295                     continue;
00296                 }
00297             }
00298             if( key == CR || key == LF ){
00299                 // \r\nをまとめて\nとして扱う必要がある
00300                 if( col + 1 >= linelen ||
00301                     data[ col + 2 ] == key ){
00302                     // 本当に行末
00303                     ++col;
00304                     continue;
00305                 }
00306                 else if( data[ col + 2 ] == CR || data[ col + 2 ] == LF ){
00307                     col += 2;   //   CRLF or LFCR
00308                 }
00309             }
00310         }
00311         //  short string + 改行の場合はエラーから強制復帰
00312         else if( data[ col ] == CR || data[ col ] == LF ){
00313             //あとで
00314             if( ! m_long_string ){
00315                 //  文字列の末尾を発見した
00316                 m_state = STATE_NORMAL;
00317                 return col + 1;
00318             }
00319         }
00320         //  引用符が見つかったら終了チェック
00321         else if( data[ col ] == quote_char ){
00322             if( ! m_long_string ){
00323                 //  文字列の末尾を発見した
00324                 m_state = STATE_NORMAL;
00325                 return col + 1;
00326             }
00327             //  long stringの場合
00328             if( col + 2 < linelen &&
00329                 data[ col + 1 ] == quote_char &&
00330                 data[ col + 2 ] == quote_char ){
00331                 m_state = STATE_NORMAL;
00332                 return col + 3;
00333             }
00334         }
00335     }
00336     return linelen;
00337 }
00338
00355 void COutlinePython::DoScanLine( const char* data, int linelen, int start_offset )
00356 {
00357     int col = start_offset;
00358     while( col < linelen ){
00359         if( STATE_NORMAL == m_state || STATE_CONTINUE == m_state){
00360             col = ScanNormal( data, linelen, col );
00361         }
00362         else if( STATE_STRING == m_state ){
00363             col = ScanString( data, linelen, col );
00364         }
00365         else {
00366             //  ありえないエラー
00367             return;
00368         }
00369     }
00370 }
00371
00372
00400 void CEditDoc::MakeFuncList_python( CFuncInfoArr* pcFuncInfoArr )
00401 {
00402     int         nLineLen;
00403     int         nLineCount;
00404
00405     COutlinePython python_analyze_state;
00406
00407     const int MAX_DEPTH = 10;
00408
00409     int indent_level[ MAX_DEPTH ]; // 各レベルのインデント桁位置()
00410     indent_level[0] = 0;    // do as python does.
00411     int depth_index = 0;
00412
00413     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00414         const char* pLine;
00415         int depth;  //  indent depth
00416         int col = 0;    //  current working column position
00417
00418         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00419
00420         if( python_analyze_state.IsLogicalLineTop() ){
00421             //  indent check
00422             //  May 15, 2007 genta 桁位置colはデータオフセットdと独立にしないと
00423             //  文字列比較がおかしくなる
00424             for( depth = 0, col = 0; col < nLineLen; ++col ){
00425                 //  calculate indent level
00426                 if( pLine[col] == ' ' ){
00427                     ++depth;
00428                 }
00429                 else if( pLine[col] == '\t' ){
00430                     depth = ( depth + 8 ) & ~7;
00431                 }
00432                 else {
00433                     break;
00434                 }
00435             }
00436             if( pLine[col] == '\r' ||
00437                 pLine[col] == '\n' ||
00438                 pLine[col] == '\0' ||
00439                 pLine[col] == '#' ){
00440                 //  blank line or comment line are ignored
00441                 continue;
00442             }
00443
00444             int nItemFuncId = 0;    // topic type
00445             if( nLineLen - col > 3 + 1 && strncmp( pLine + col, "def", 3 ) == 0 ){
00446                 //  "def"
00447                 nItemFuncId = 1;
00448                 col += 3; // strlen( def )
00449             }
00450             else if( nLineLen - col > 5 + 1 && strncmp( pLine + col, "class", 5 ) == 0 ){
00451                 // class
00452                 nItemFuncId = 4;
00453                 col += 5; // strlen( class )
00454             }
00455             else {
00456                 python_analyze_state.DoScanLine( pLine, nLineLen, col );
00457                 continue;
00458             }
00459
00460             //  2006.02.28 genta 区切りチェック
00461             //  define, classic等が対象にならないように，後ろにスペースかタブが
00462             //  続くことを確認．
00463             //  本当は継続行として次の行に関数名を書くことも文法上は可能だが
00464             //  複雑になるので対応しない．
00465             int c = pLine[col];
00466             if(  c != ' ' && c != '\t' ){
00467                 python_analyze_state.DoScanLine( pLine, nLineLen, col );
00468                 continue;
00469             }
00470
00471             //  adjust current depth level
00472             //  関数内部の実行文のさらに奧に関数があるケースを考慮
00473             //  def/class以外のインデントは記録しない方がいいので
00474             //  見出し行と確定してからインデントレベルの判定を行う
00475             int i;
00476             for( i = depth_index; i >= 0; --i ){
00477                 if( depth == indent_level[ i ] ){
00478                     depth_index = i;
00479                     break;
00480                 }
00481                 else if( depth > indent_level[ i ] && i < MAX_DEPTH - 1 ){
00482                     depth_index = i + 1;
00483                     indent_level[ depth_index ] = depth;
00484                     break;
00485                 }
00486             }
00487
00488             //  2007.02.08 genta 手抜きコメント
00489             //  厳密には，ここで継続行を入れることが可能だが，
00490             //  そんなレアなケースは考慮しない
00491
00492             //  skip whitespace
00493             while( col < nLineLen && C_IsSpace( pLine[col] ))
00494                 ++col;
00495
00496             int w_end;
00497             for( w_end = col; w_end < nLineLen
00498                     && Python_IsWordChar( pLine[w_end] ); ++w_end )
00499                 ;
00500
00501             //  2007.02.08 genta 手抜きコメント
00502             //  厳密には，この後に括弧に囲まれた引数あるいは継承元クラスが
00503             //  括弧に囲まれて入り，さらに:と続くが
00504             //  継続行の可能性があるので，そこまでチェックしない
00505
00506             //  ここまでで登録要件OKとみなす
00507
00508             //  このあたりは暫定
00509
00510             char szWord[512];   // 適当に大きな数(pythonでは名前の長さの上限があるのか？)
00511             int len = w_end - col;
00512
00513             if( len > 0 ){
00514                 if( len > sizeof( szWord ) - 1){
00515                     len = sizeof( szWord ) - 1;
00516                 }
00517                 strncpy( szWord, pLine + col, len );
00518                 szWord[ len ] = '\0';
00519             }
00520             else {
00521                 strcpy( szWord, "名称未定" );
00522                 len = 8;
00523             }
00524             if( nItemFuncId == 4  ){
00525                 if( sizeof( szWord ) - 8  < len ){
00526                     //  後ろを削って入れる
00527                     len = sizeof( szWord ) - 8;
00528                 }
00529                 // class
00530                 strcpy( szWord + len, " クラス" );
00531             }
00532
00533             /*
00534               カーソル位置変換
00535               物理位置(行頭からのバイト数、折り返し無し行位置)
00536               →
00537               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00538             */
00539             int     nPosX;
00540             int     nPosY;
00541             m_cLayoutMgr.CaretPos_Phys2Log(
00542                 0,
00543                 nLineCount/*nFuncLine - 1*/,
00544                 &nPosX,
00545                 &nPosY
00546             );
00547             pcFuncInfoArr->AppendData( nLineCount + 1, nPosY + 1, szWord, nItemFuncId, depth_index );
00548             col = w_end; // クラス・関数定義の続きはここから
00549         }
00550         python_analyze_state.DoScanLine( pLine, nLineLen, col );
00551     }
00552 }
Sakura-Editorに対してSat Oct 27 02:14:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc_new.cpp

CEditDoc_new.cpp

文書関連情報の管理 [詳細]

#include "stdafx.h"
#include "CEditDoc.h"
#include "charcode.h"
#include "CFuncInfoArr.h"
#include "CDocLine.h"
#include "CEditWnd.h"
#include "Debug.h"
#include "etc_uty.h"
#include "my_icmp.h"
#include "mymessage.h"
#include "CEditApp.h"

CEditDoc_new.cppのインクルード依存関係図

ソースコードを見る。

説明

文書関連情報の管理

作者:
Norio Nakatani
日付:
aroka 警告対策で変数除去

CEditDoc_new.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:06 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditDoc_new.cpp ソースファイル

CEditDoc_new.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2000, genta
00011     Copyright (C) 2001, Stonee, Misaka, hor, YAZAKI
00012     Copyright (C) 2002, hor, genta, aroka, Moca, MIK, ai
00013     Copyright (C) 2003, MIK, zenryaku, genta, little YOSHI
00014     Copyright (C) 2004, genta
00015     Copyright (C) 2005, genta, D.S.Koba, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 #include "stdafx.h"
00022 #include "CEditDoc.h"
00023 #include "charcode.h"
00024 #include "CFuncInfoArr.h"// 2002/2/10 aroka
00025 #include "CDocLine.h"// 2002/2/10 aroka
00026 #include "CEditWnd.h"
00027 #include "Debug.h"
00028 #include "etc_uty.h"
00029 #include "my_icmp.h" // Nov. 29, 2002 genta/moca
00030 #include "mymessage.h"  //  Oct. 9, 2004 genta
00031 #include "CEditApp.h"   //  Oct. 9, 2004 genta
00032
00033 /* Java関数リスト作成 */
00034 void CEditDoc::MakeFuncList_Java( CFuncInfoArr* pcFuncInfoArr )
00035 {
00036     const char* pLine;
00037     int         nLineLen;
00038     int         nLineCount;
00039     int         i;
00040     int         nNestLevel;
00041     int         nCharChars;
00042     char        szWordPrev[100];
00043     char        szWord[100];
00044     int         nWordIdx = 0;
00045     int         nMaxWordLeng = 70;
00046     int         nMode;
00047     char        szFuncName[80];
00048     int         nFuncLine = 0;
00049     int         nFuncId;
00050     int         nFuncNum;
00051     char        szClass[1024];
00052
00053     int         nClassNestArr[16];
00054     int         nClassNestArrNum;
00055     int         nNestLevel2Arr[16];
00056
00057     nNestLevel = 0;
00058     szWordPrev[0] = '\0';
00059     szWord[nWordIdx] = '\0';
00060     nMode = 0;
00061     nNestLevel2Arr[0] = 0;
00062     nFuncNum = 0;
00063     szClass[0] = '\0';
00064     nClassNestArrNum = 0;
00065     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00066         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00067         for( i = 0; i < nLineLen; ++i ){
00068             /* 1バイト文字だけを処理する */
00069             //nCharChars = CMemory::MemCharNext( pLine, nLineLen, &pLine[i] ) - &pLine[i];
00070             nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00071             if( 1 < nCharChars ){
00072                 i += (nCharChars - 1);
00073                 continue;
00074             }
00075
00076             /* エスケープシーケンスは常に取り除く */
00077             if( '\\' == pLine[i] ){
00078                 ++i;
00079             }else
00080             /* シングルクォーテーション文字列読み込み中 */
00081             if( 20 == nMode ){
00082                 if( '\'' == pLine[i] ){
00083                     nMode = 0;
00084                     continue;
00085                 }else{
00086                 }
00087             }else
00088             /* ダブルクォーテーション文字列読み込み中 */
00089             if( 21 == nMode ){
00090                 if( '"' == pLine[i] ){
00091                     nMode = 0;
00092                     continue;
00093                 }else{
00094                 }
00095             }else
00096             /* コメント読み込み中 */
00097             if( 8 == nMode ){
00098                 if( i < nLineLen - 1 && '*' == pLine[i] &&  '/' == pLine[i + 1] ){
00099                     ++i;
00100                     nMode = 0;
00101                     continue;
00102                 }else{
00103                 }
00104             }else
00105             /* 単語読み込み中 */
00106             if( 1 == nMode ){
00107                 if( '_' == pLine[i] ||
00108                     ':' == pLine[i] ||
00109                     '~' == pLine[i] ||
00110                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
00111                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
00112                     ('0' <= pLine[i] && pLine[i] <= '9' )||
00113                     '.' == pLine[i]
00114                 ){
00115                     ++nWordIdx;
00116                     if( nWordIdx >= nMaxWordLeng ){
00117                         nMode = 999;
00118                         continue;
00119                     }else{
00120                         szWord[nWordIdx] = pLine[i];
00121                         szWord[nWordIdx + 1] = '\0';
00122                     }
00123                 }else{
00124                     /* クラス宣言部分を見つけた */
00125                     //  Oct. 10, 2002 genta interfaceも対象に
00126                     if( 0 == strcmp( "class", szWordPrev ) ||
00127                         0 == strcmp( "interface", szWordPrev )
00128                      ){
00129                         nClassNestArr[nClassNestArrNum] = nNestLevel;
00130                         ++nClassNestArrNum;
00131                         if( 0 < nNestLevel  ){
00132                             strcat( szClass, "\\" );
00133                         }
00134                         strcat( szClass, szWord );
00135
00136
00137
00138
00139                         nFuncId = 0;
00140                         ++nFuncNum;
00141                         /*
00142                           カーソル位置変換
00143                           物理位置(行頭からのバイト数、折り返し無し行位置)
00144                           →
00145                           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00146                         */
00147                         int     nPosX;
00148                         int     nPosY;
00149                         m_cLayoutMgr.CaretPos_Phys2Log(
00150                             0,
00151                             nLineCount/*nFuncLine - 1*/,
00152                             &nPosX,
00153                             &nPosY
00154                         );
00155                         char szWork[256];
00156                         wsprintf( szWork, "%s::%s", szClass, "定義位置" );
00157                         pcFuncInfoArr->AppendData( nPosY + 1/*nFuncLine*/, nPosY + 1, szWork, nFuncId );
00158
00159                     }
00160
00161
00162 //                  strcpy( szWordPrev, szWord );
00163 //                  nWordIdx = 0;
00164 //                  szWord[0] = '\0';
00165                     nMode = 0;
00166                     i--;
00167                     continue;
00168                 }
00169             }else
00170             /* 記号列読み込み中 */
00171             if( 2 == nMode ){
00172                 if( '_' == pLine[i] ||
00173                     ':' == pLine[i] ||
00174                     '~' == pLine[i] ||
00175                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
00176                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
00177                     ('0' <= pLine[i] && pLine[i] <= '9' )||
00178                     '\t' == pLine[i] ||
00179                     ' ' == pLine[i] ||
00180                     CR == pLine[i] ||
00181                     LF == pLine[i] ||
00182                     '{' == pLine[i] ||
00183                     '}' == pLine[i] ||
00184                     '(' == pLine[i] ||
00185                     ')' == pLine[i] ||
00186                     ';' == pLine[i] ||
00187                     '\'' == pLine[i] ||
00188                     '"' == pLine[i] ||
00189                     '/' == pLine[i] ||
00190                     '.' == pLine[i]
00191                 ){
00192                     nMode = 0;
00193                     i--;
00194                     continue;
00195                 }else{
00196                 }
00197             }else
00198             /* 長過ぎる単語無視中 */
00199             if( 999 == nMode ){
00200                 /* 空白やタブ記号等を飛ばす */
00201                 if( '\t' == pLine[i] ||
00202                     ' ' == pLine[i] ||
00203                     CR == pLine[i] ||
00204                     LF == pLine[i]
00205                 ){
00206                     nMode = 0;
00207                     continue;
00208                 }
00209             }else
00210             /* ノーマルモード */
00211             if( 0 == nMode ){
00212                 /* 空白やタブ記号等を飛ばす */
00213                 if( '\t' == pLine[i] ||
00214                     ' ' == pLine[i] ||
00215                     CR == pLine[i] ||
00216                     LF == pLine[i]
00217                 ){
00218                     continue;
00219                 }else
00220                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '/' == pLine[i + 1] ){
00221                     break;
00222                 }else
00223                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '*' == pLine[i + 1] ){
00224                     ++i;
00225                     nMode = 8;
00226                     continue;
00227                 }else
00228                 if( '\'' == pLine[i] ){
00229                     nMode = 20;
00230                     continue;
00231                 }else
00232                 if( '"' == pLine[i] ){
00233                     nMode = 21;
00234                     continue;
00235                 }else
00236                 if( '{' == pLine[i] ){
00237                     if( 0 < nClassNestArrNum && 2 == nNestLevel2Arr[nClassNestArrNum - 1] ){
00238                         //  Oct. 10, 2002 genta
00239                         //  メソッド中でさらにメソッドを定義することはないので
00240                         //  ネストレベル判定追加 class/interfaceの直下の場合のみ判定する
00241                         if( nClassNestArr[nClassNestArrNum - 1] == nNestLevel - 1
00242                          && 0 != strcmp( "sizeof", szFuncName )
00243                          && 0 != strcmp( "if", szFuncName )
00244                          && 0 != strcmp( "for", szFuncName )
00245                          && 0 != strcmp( "do", szFuncName )
00246                          && 0 != strcmp( "while", szFuncName )
00247                          && 0 != strcmp( "catch", szFuncName )
00248                          && 0 != strcmp( "switch", szFuncName )
00249                          && 0 != strcmp( "return", szFuncName )
00250                         ){
00251                             nFuncId = 2;
00252                             ++nFuncNum;
00253                             /*
00254                               カーソル位置変換
00255                               物理位置(行頭からのバイト数、折り返し無し行位置)
00256                               →
00257                               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00258                             */
00259                             int     nPosX;
00260                             int     nPosY;
00261                             m_cLayoutMgr.CaretPos_Phys2Log(
00262                                 0,
00263                                 nFuncLine - 1,
00264                                 &nPosX,
00265                                 &nPosY
00266                             );
00267                             char szWork[256];
00268                             wsprintf( szWork, "%s::%s", szClass, szFuncName );
00269                             pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1, szWork, nFuncId );
00270                         }
00271                     }
00272                     if( 0 < nClassNestArrNum ){
00273                         nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00274                     }
00275                     ++nNestLevel;
00276                     nMode = 0;
00277                     continue;
00278                 }else
00279                 if( '}' == pLine[i] ){
00280                     if( 0 < nClassNestArrNum ){
00281                         nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00282                     }
00283
00284                     nNestLevel--;
00285                     if( 0 < nClassNestArrNum &&
00286                         nClassNestArr[nClassNestArrNum - 1] == nNestLevel
00287                     ){
00288                         nClassNestArrNum--;
00289                         int k;
00290                         for( k = lstrlen( szClass ) - 1; k >= 0; k-- ){
00291                             if( '\\' == szClass[k] ){
00292                                 break;
00293                             }
00294                         }
00295                         if( 0 > k ){
00296                             k = 0;
00297                         }
00298                         szClass[k] = '\0';
00299                     }
00300                     nMode = 0;
00301                     continue;
00302                 }else
00303                 if( '(' == pLine[i] ){
00304                     if( 0 < nClassNestArrNum /*nNestLevel == 1*/ &&
00305                         0 != strcmp( "new", szWordPrev )
00306                     ){
00307                         strcpy( szFuncName, szWord );
00308                         nFuncLine = nLineCount + 1;
00309                         if( 0 < nClassNestArrNum ){
00310                             nNestLevel2Arr[nClassNestArrNum - 1] = 1;
00311                         }
00312                     }
00313                     nMode = 0;
00314                     continue;
00315                 }else
00316                 if( ')' == pLine[i] ){
00317                     int         k;
00318                     const char* pLine2;
00319                     int         nLineLen2;
00320                     int         nLineCount2;
00321                     nLineCount2 = nLineCount;
00322                     pLine2 = pLine;
00323                     nLineLen2 = nLineLen;
00324                     k = i + 1;
00325                     BOOL        bCommentLoop;
00326                     bCommentLoop = FALSE;
00327                 loop_is_func:;
00328                     for( ; k < nLineLen2; ++k ){
00329                         if( !bCommentLoop ){
00330                             if( pLine2[k] != ' ' && pLine2[k] != TAB && pLine2[k] != CR && pLine2[k] != LF ){
00331                                 if( k + 1 < nLineLen2 && pLine2[k] == '/' && pLine2[k + 1] == '*' ){
00332                                     bCommentLoop = TRUE;
00333                                     ++k;
00334                                 }else
00335                                 if( k + 1 < nLineLen2 && pLine2[k] == '/' && pLine2[k + 1] == '/' ){
00336                                     k = nLineLen2 + 1;
00337                                     break;
00338                                 }else{
00339                                     break;
00340                                 }
00341                             }
00342                         }else{
00343                             if( k + 1 < nLineLen2 && pLine2[k] == '*' && pLine2[k + 1] == '/' ){
00344                                 bCommentLoop = FALSE;
00345                                 ++k;
00346                             }
00347                         }
00348                     }
00349                     if( k >= nLineLen2 ){
00350                         k = 0;
00351                         ++nLineCount2;
00352                         pLine2 = m_cDocLineMgr.GetLineStr( nLineCount2, &nLineLen2 );
00353                         if( NULL != pLine2 ){
00354                             goto loop_is_func;
00355                         }
00356                         if( 0 < nClassNestArrNum ){
00357                             nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00358                         }
00359                     }else{
00360                         //  Oct. 10, 2002 genta
00361                         //  abscract にも対応
00362                         if( pLine2[k] == '{' || pLine2[k] == ';' ||
00363                             __iscsym( pLine2[k] ) ){
00364                             if( 0 < nClassNestArrNum ){
00365                                 if( 1 == nNestLevel2Arr[nClassNestArrNum - 1] ){
00366                                     nNestLevel2Arr[nClassNestArrNum - 1] = 2;
00367                                 }
00368                             }
00369                         }else{
00370                             if( 0 < nClassNestArrNum ){
00371                                 nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00372                             }
00373                         }
00374                     }
00375                     nMode = 0;
00376                     continue;
00377                 }else
00378                 if( ';' == pLine[i] ){
00379                     if( 0 < nClassNestArrNum && 2 == nNestLevel2Arr[nClassNestArrNum - 1] ){
00380                         //  Oct. 10, 2002 genta
00381                         // 関数の中で別の関数の宣言部を使うことって，Javaであるの？
00382                         if( nClassNestArr[nClassNestArrNum - 1] == nNestLevel - 1
00383                          && 0 != strcmp( "sizeof", szFuncName )
00384                          && 0 != strcmp( "if", szFuncName )
00385                          && 0 != strcmp( "for", szFuncName )
00386                          && 0 != strcmp( "do", szFuncName )
00387                          && 0 != strcmp( "while", szFuncName )
00388                          && 0 != strcmp( "catch", szFuncName )
00389                          && 0 != strcmp( "switch", szFuncName )
00390                          && 0 != strcmp( "return", szFuncName )
00391                         ){
00392                             nFuncId = 1;
00393                             ++nFuncNum;
00394                             /*
00395                               カーソル位置変換
00396                               物理位置(行頭からのバイト数、折り返し無し行位置)
00397                               →
00398                               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00399                             */
00400                             int     nPosX;
00401                             int     nPosY;
00402                             m_cLayoutMgr.CaretPos_Phys2Log(
00403                                 0,
00404                                 nFuncLine - 1,
00405                                 &nPosX,
00406                                 &nPosY
00407                             );
00408                             char szWork[256];
00409                             wsprintf( szWork, "%s::%s", szClass, szFuncName );
00410                             pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1, szWork, nFuncId );
00411                         }
00412                     }
00413                     if( 0 < nClassNestArrNum ){
00414                         nNestLevel2Arr[nClassNestArrNum - 1] = 0;
00415                     }
00416                     nMode = 0;
00417                     continue;
00418                 }else{
00419                     if( '_' == pLine[i] ||
00420                         ':' == pLine[i] ||
00421                         '~' == pLine[i] ||
00422                         ('a' <= pLine[i] && pLine[i] <= 'z' )||
00423                         ('A' <= pLine[i] && pLine[i] <= 'Z' )||
00424                         ('0' <= pLine[i] && pLine[i] <= '9' )||
00425                         '.' == pLine[i]
00426                     ){
00427                         strcpy( szWordPrev, szWord );
00428                         nWordIdx = 0;
00429                         szWord[nWordIdx] = pLine[i];
00430                         szWord[nWordIdx + 1] = '\0';
00431                         nMode = 1;
00432                     }else{
00433                         nMode = 0;
00434                     }
00435                 }
00436             }
00437         }
00438     }
00439 #ifdef _DEBUG
00440     pcFuncInfoArr->DUMP();
00441 #endif
00442     return;
00443 }
00444
00445 //  From Here Aug. 14, 2000 genta
00446 //
00447 //  書き換えが禁止されているかどうか
00448 //  戻り値: true: 禁止 / false: 許可
00449 //
00450 bool CEditDoc::IsModificationForbidden( int nCommand )
00451 {
00452     if( m_bReadOnly == FALSE && //  読みとり専用でも
00453         !( 0 != m_nFileShareModeOld && m_hLockedFile == NULL ) )    //  上書き禁止でもなければ
00454         return false;           //  常に書き換え許可
00455
00456     //  上書き禁止モードの場合
00457     //  暫定Case文: 実際にはもっと効率の良い方法を使うべき
00458     switch( nCommand ){
00459     //  ファイルを書き換えるコマンドは使用禁止
00460     case F_CHAR:
00461     case F_IME_CHAR:
00462     case F_DELETE:
00463     case F_DELETE_BACK:
00464     case F_WordDeleteToEnd:
00465     case F_WordDeleteToStart:
00466     case F_WordDelete:
00467     case F_WordCut:
00468     case F_LineDeleteToStart:
00469     case F_LineDeleteToEnd:
00470     case F_LineCutToStart:
00471     case F_LineCutToEnd:
00472     case F_DELETE_LINE:
00473     case F_CUT_LINE:
00474     case F_DUPLICATELINE:
00475     case F_INDENT_TAB:
00476     case F_UNINDENT_TAB:
00477     case F_INDENT_SPACE:
00478     case F_UNINDENT_SPACE:
00479     case F_CUT:
00480     case F_PASTE:
00481     case F_INS_DATE:
00482     case F_INS_TIME:
00483     case F_CTRL_CODE_DIALOG:    //@@@ 2002.06.02 MIK
00484     case F_INSTEXT:
00485     case F_ADDTAIL:
00486     case F_PASTEBOX:
00487     case F_REPLACE_DIALOG:
00488     case F_REPLACE:
00489     case F_REPLACE_ALL:
00490     case F_CODECNV_EMAIL:
00491     case F_CODECNV_EUC2SJIS:
00492     case F_CODECNV_UNICODE2SJIS:
00493     case F_CODECNV_UNICODEBE2SJIS:
00494     case F_CODECNV_SJIS2JIS:
00495     case F_CODECNV_SJIS2EUC:
00496     case F_CODECNV_UTF82SJIS:
00497     case F_CODECNV_UTF72SJIS:
00498     case F_CODECNV_SJIS2UTF7:
00499     case F_CODECNV_SJIS2UTF8:
00500     case F_CODECNV_AUTO2SJIS:
00501     case F_TOLOWER:
00502     case F_TOUPPER:
00503     case F_TOHANKAKU:
00504     case F_TOHANKATA:               // 2002/08/29 ai
00505     case F_TOZENEI:                 // 2001/07/30 Misaka
00506     case F_TOHANEI:
00507     case F_TOZENKAKUKATA:
00508     case F_TOZENKAKUHIRA:
00509     case F_HANKATATOZENKAKUKATA:
00510     case F_HANKATATOZENKAKUHIRA:
00511     case F_TABTOSPACE:
00512     case F_SPACETOTAB:  //#### Stonee, 2001/05/27
00513     case F_HOKAN:
00514     case F_CHGMOD_INS:
00515     case F_LTRIM:       // 2001.12.03 hor
00516     case F_RTRIM:       // 2001.12.03 hor
00517     case F_SORT_ASC:    // 2001.12.11 hor
00518     case F_SORT_DESC:   // 2001.12.11 hor
00519     case F_MERGE:       // 2001.12.11 hor
00520     case F_UNDO:        // 2007.10.12 genta
00521     case F_REDO:        // 2007.10.12 genta
00522 //      ::MessageBox( m_hWnd, "Operation is forbidden.", "DEBUG", MB_OK | MB_ICONEXCLAMATION );
00523         return true;
00524     }
00525     return false;   //  デフォルトで書き換え許可
00526 }
00527 //  To Here Aug. 14, 2000 genta
00528
00529 //  From Here Aug. 21, 2000 genta
00530 //
00531 //  自動保存を行うかどうかのチェック
00532 //
00533 void CEditDoc::CheckAutoSave(void)
00534 {
00535     if( m_cAutoSave.CheckAction() ){
00536         //  上書き保存
00537
00538         bool en;
00539         if( !IsModified() ) //  変更無しなら何もしない
00540             return;             //  ここでは，「無変更でも保存」は無視する
00541
00542         //  2003.10.09 zenryaku 保存失敗エラーの抑制
00543         if( !IsFilePathAvailable() )    //  まだファイル名が設定されていなければ保存しない
00544             return;
00545
00546         en = m_cAutoSave.IsEnabled();
00547         m_cAutoSave.Enable(false);  //  2重呼び出しを防ぐため
00548         SaveFile( GetFilePath() );  //  保存（m_nCharCode, m_cSaveLineCodeを変更しない）
00549         m_cAutoSave.Enable(en);
00550     }
00551 }
00552
00553 //
00554 //  設定変更を自動保存動作に反映する
00555 //
00556 void CEditDoc::ReloadAutoSaveParam(void)
00557 {
00558     m_cAutoSave.SetInterval( m_pShareData->m_Common.GetAutoBackupInterval() );
00559     m_cAutoSave.Enable( m_pShareData->m_Common.IsAutoBackupEnabled() );
00560 }
00561
00562
00563 //  ファイルの保存機能をEditViewから移動
00564 //
00565 bool CEditDoc::SaveFile( const char* pszPath )
00566 {
00567     if( FileWrite( pszPath, m_cSaveLineCode ) ){
00568         SetModified(false,true);    //  Jan. 22, 2002 genta
00569
00570         /* 現在位置で無変更な状態になったことを通知 */
00571         m_cOpeBuf.SetNoModified();
00572         return true;
00573     }
00574     return false;
00575 }
00576
00577 //  To Here Aug. 21, 2000 genta
00578
00579 //  From Here Sep 8, 2000 genta
00580 //
00582
00594 void CEditDoc::MakeFuncList_Perl( CFuncInfoArr* pcFuncInfoArr )
00595 {
00596     const char* pLine;
00597     int         nLineLen;
00598     int         nLineCount;
00599     int         i;
00600     int         nCharChars;
00601     char        szWord[100];
00602     int         nWordIdx = 0;
00603     int         nMaxWordLeng = 70;
00604     int         nMode;
00605
00606     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00607         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00608         nMode = 0;
00609         for( i = 0; i < nLineLen; ++i ){
00610             /* 1バイト文字だけを処理する */
00611             // 2005-09-02 D.S.Koba GetSizeOfChar
00612             nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00613             if( 1 < nCharChars ){
00614                 break;
00615             }
00616
00617             /* 単語読み込み中 */
00618             if( 0 == nMode ){
00619                 /* 空白やタブ記号等を飛ばす */
00620                 if( '\t' == pLine[i] ||
00621                     ' ' == pLine[i] ||
00622                     CR == pLine[i] ||
00623                     LF == pLine[i]
00624                 ){
00625                     continue;
00626                 }
00627                 if( 's' != pLine[i] )
00628                     break;
00629                 //  sub の一文字目かもしれない
00630                 if( nLineLen - i < 4 )
00631                     break;
00632                 if( strncmp( pLine + i, "sub", 3 ) )
00633                     break;
00634                 int c = pLine[ i + 3 ];
00635                 if( c == ' ' || c == '\t' ){
00636                     nMode = 2;  //  発見
00637                     i += 3;
00638                 }
00639                 else
00640                     break;
00641             }
00642             else if( 2 == nMode ){
00643                 if( '\t' == pLine[i] ||
00644                     ' ' == pLine[i] ||
00645                     CR == pLine[i] ||
00646                     LF == pLine[i]
00647                 ){
00648                     continue;
00649                 }
00650                 if( '_' == pLine[i] ||
00651                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
00652                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
00653                     ('0' <= pLine[i] && pLine[i] <= '9' )
00654                 ){
00655                     //  関数名の始まり
00656                     nWordIdx = 0;
00657                     szWord[nWordIdx] = pLine[i];
00658                     szWord[nWordIdx + 1] = '\0';
00659                     nMode = 1;
00660                     continue;
00661                 }
00662                 else
00663                     break;
00664
00665             }
00666             else if( 1 == nMode ){
00667                 if( '_' == pLine[i] ||
00668                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
00669                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
00670                     ('0' <= pLine[i] && pLine[i] <= '9' )||
00671                     //  Jun. 18, 2005 genta パッケージ修飾子を考慮
00672                     //  コロンは2つ連続しないといけないのだが，そこは手抜き
00673                     ':' == pLine[i] || '\'' == pLine[i]
00674                 ){
00675                     ++nWordIdx;
00676                     if( nWordIdx >= nMaxWordLeng ){
00677                         break;
00678                     }else{
00679                         szWord[nWordIdx] = pLine[i];
00680                         szWord[nWordIdx + 1] = '\0';
00681                     }
00682                 }else{
00683                     //  関数名取得
00684                     /*
00685                       カーソル位置変換
00686                       物理位置(行頭からのバイト数、折り返し無し行位置)
00687                       →
00688                       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00689                     */
00690                     int     nPosX;
00691                     int     nPosY;
00692                     m_cLayoutMgr.CaretPos_Phys2Log(
00693                         0,
00694                         nLineCount/*nFuncLine - 1*/,
00695                         &nPosX,
00696                         &nPosY
00697                     );
00698                     //  Mar. 9, 2001
00699                     pcFuncInfoArr->AppendData( nLineCount + 1/*nFuncLine*/, nPosY + 1, szWord, 0 );
00700
00701                     break;
00702                 }
00703             }
00704         }
00705     }
00706 #ifdef _DEBUG
00707     pcFuncInfoArr->DUMP();
00708 #endif
00709     return;
00710 }
00711 //  To HERE Sep. 8, 2000 genta
00712
00713
00714
00715
00716
00717
00718
00719
00720 //  From Here June 23, 2001 N.Nakatani
00722
00733 void CEditDoc::MakeFuncList_VisualBasic( CFuncInfoArr* pcFuncInfoArr )
00734 {
00735     const int   nMaxWordLeng = 255; // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00736     const char* pLine;
00737     int         nLineLen = 0;//: 2002/2/3 aroka 警告対策：初期化
00738     int         nLineCount;
00739     int         i;
00740     int         nCharChars;
00741     char        szWordPrev[256];    // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00742     char        szWord[256];        // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00743     int         nWordIdx = 0;
00744 //  int         nMaxWordLeng = 70;  // Aug 7, 2003 little YOSHI  定数に変更↑
00745     int         nMode;
00746     char        szFuncName[256];    // Aug 7, 2003 little YOSHI  VBの名前付け規則より255文字に拡張
00747     int         nFuncLine;
00748     int         nFuncId;
00749     int         nParseCnt = 0;
00750     bool        bClass;         // クラスモジュールフラグ
00751     bool        bProcedure;     // プロシージャフラグ（プロシージャ内ではTrue）
00752     bool        bDQuote;        // ダブルクォーテーションフラグ（ダブルクォーテーションがきたらTrue）
00753
00754     // 調べるファイルがクラスモジュールのときはType、Constの挙動が異なるのでフラグを立てる
00755     bClass  = false;
00756     int filelen = strlen(GetFilePath());
00757     if ( 4 < filelen ) {
00758         if ( 0 == _stricmp((GetFilePath() + filelen - 4), ".cls") ) {
00759             bClass  = true;
00760         }
00761     }
00762
00763     szWordPrev[0] = '\0';
00764     szWord[nWordIdx] = '\0';
00765     nMode = 0;
00766     pLine = NULL;
00767     bProcedure  = false;
00768     for( nLineCount = 0; nLineCount <  m_cDocLineMgr.GetLineCount(); ++nLineCount ){
00769         if( NULL != pLine ){
00770             if( '_' != pLine[nLineLen-1]){
00771                 nParseCnt = 0;
00772             }
00773         }
00774         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
00775         nFuncId = 0;
00776         bDQuote = false;
00777         for( i = 0; i < nLineLen; ++i ){
00778             /* 1バイト文字だけを処理する */
00779             // 2005-09-02 D.S.Koba GetSizeOfChar
00780             nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00781             if( 0 == nCharChars ){
00782                 nCharChars = 1;
00783             }
00784             /* 単語読み込み中 */
00785             if( 1 == nMode ){
00786                 if( (1 == nCharChars && (
00787                     '_' == pLine[i] ||
00788                     '~' == pLine[i] ||
00789                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
00790                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
00791                     ('0' <= pLine[i] && pLine[i] <= '9' )
00792                     ) )
00793                  || 2 == nCharChars
00794                 ){
00795                     if( nWordIdx >= nMaxWordLeng ){
00796                         nMode = 999;
00797                         continue;
00798                     }else{
00799                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
00800                         szWord[nWordIdx + nCharChars] = '\0';
00801                         nWordIdx += (nCharChars);
00802                     }
00803                 } else if (1 == nCharChars && '"' == pLine[i]) {
00804                     // Aug 7, 2003 little YOSHI  追加
00805                     // テキストの中は無視します。
00806                     nMode   = 3;
00807                 }else{
00808                     if ( 0 == nParseCnt && 0 == stricmp(szWord, "Public") ) {
00809                         // パブリック宣言を見つけた！
00810                         nFuncId |= 0x10;
00811                     }else
00812                     if ( 0 == nParseCnt && 0 == stricmp(szWord, "Private") ) {
00813                         // プライベート宣言を見つけた！
00814                         nFuncId |= 0x20;
00815                     }else
00816                     if ( 0 == nParseCnt && 0 == stricmp(szWord, "Friend") ) {
00817                         // フレンド宣言を見つけた！
00818                         nFuncId |= 0x30;
00819                     }else
00820                     if ( 0 == nParseCnt && 0 == stricmp(szWord, "Static") ) {
00821                         // スタティック宣言を見つけた！
00822                         nFuncId |= 0x100;
00823                     }else
00824                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Function" ) ){
00825                         if ( 0 == stricmp( szWordPrev, "End" ) ){
00826                             // プロシージャフラグをクリア
00827                             bProcedure  = false;
00828                         }else
00829                         if( 0 != stricmp( szWordPrev, "Exit" ) ){
00830                             if( 0 == stricmp( szWordPrev, "Declare" ) ){
00831                                 nFuncId |= 0x200;   // DLL参照宣言
00832                             }else{
00833                                 bProcedure  = true; // プロシージャフラグをセット
00834                             }
00835                             nFuncId |= 0x01;        // 関数
00836                             nParseCnt = 1;
00837                             nFuncLine = nLineCount + 1;
00838                         }
00839                     }else
00840                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Sub" ) ){
00841                         if ( 0 == stricmp( szWordPrev, "End" ) ){
00842                             // プロシージャフラグをクリア
00843                             bProcedure  = false;
00844                         }else
00845                         if( 0 != stricmp( szWordPrev, "Exit" ) ){
00846                             if( 0 == stricmp( szWordPrev, "Declare" ) ){
00847                                 nFuncId |= 0x200;   // DLL参照宣言
00848                             }else{
00849                                 bProcedure  = true; // プロシージャフラグをセット
00850                             }
00851                             nFuncId |= 0x02;        // 関数
00852                             nParseCnt = 1;
00853                             nFuncLine = nLineCount + 1;
00854                         }
00855                     }else
00856                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Get" )
00857                      && 0 == stricmp( szWordPrev, "Property" )
00858                     ){
00859                         bProcedure  = true; // プロシージャフラグをセット
00860                         nFuncId |= 0x03;        // プロパティ取得
00861                         nParseCnt = 1;
00862                         nFuncLine = nLineCount + 1;
00863                     }else
00864                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Let" )
00865                      && 0 == stricmp( szWordPrev, "Property" )
00866                     ){
00867                         bProcedure  = true; // プロシージャフラグをセット
00868                         nFuncId |= 0x04;        // プロパティ設定
00869                         nParseCnt = 1;
00870                         nFuncLine = nLineCount + 1;
00871                     }else
00872                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Set" )
00873                      && 0 == stricmp( szWordPrev, "Property" )
00874                     ){
00875                         bProcedure  = true; // プロシージャフラグをセット
00876                         nFuncId |= 0x05;        // プロパティ参照
00877                         nParseCnt = 1;
00878                         nFuncLine = nLineCount + 1;
00879                     }else
00880                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Const" )
00881                      && 0 != stricmp( szWordPrev, "#" )
00882                     ){
00883                         if ( bClass || bProcedure || 0 == ((nFuncId >> 4) & 0x0f) ) {
00884                             // クラスモジュールでは強制的にPrivate
00885                             // プロシージャ内では強制的にPrivate
00886                             // Publicの指定がないとき、デフォルトでPrivateになる
00887                             nFuncId &= 0x0f2f;
00888                             nFuncId |= 0x20;
00889                         }
00890                         nFuncId |= 0x06;        // 定数
00891                         nParseCnt = 1;
00892                         nFuncLine = nLineCount + 1;
00893                     }else
00894                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Enum" )
00895                     ){
00896                         nFuncId |= 0x207;       // 列挙型宣言
00897                         nParseCnt = 1;
00898                         nFuncLine = nLineCount + 1;
00899                     }else
00900                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Type" )
00901                     ){
00902                         if ( bClass ) {
00903                             // クラスモジュールでは強制的にPrivate
00904                             nFuncId &= 0x0f2f;
00905                             nFuncId |= 0x20;
00906                         }
00907                         nFuncId |= 0x208;       // ユーザ定義型宣言
00908                         nParseCnt = 1;
00909                         nFuncLine = nLineCount + 1;
00910                     }else
00911                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Event" )
00912                     ){
00913                         nFuncId |= 0x209;       // イベント宣言
00914                         nParseCnt = 1;
00915                         nFuncLine = nLineCount + 1;
00916                     }else
00917                     if( 0 == nParseCnt && 0 == stricmp( szWord, "Property" )
00918                      && 0 == stricmp( szWordPrev, "End")
00919                     ){
00920                         bProcedure  = false;    // プロシージャフラグをクリア
00921                     }else
00922                     if( 1 == nParseCnt ){
00923                         strcpy( szFuncName, szWord );
00924                         /*
00925                           カーソル位置変換
00926                           物理位置(行頭からのバイト数、折り返し無し行位置)
00927                           → レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00928                         */
00929                         int     nPosX;
00930                         int     nPosY;
00931                         m_cLayoutMgr.CaretPos_Phys2Log( 0, nFuncLine - 1, &nPosX, &nPosY );
00932                         pcFuncInfoArr->AppendData( nFuncLine, nPosY + 1 , szFuncName, nFuncId );
00933                         nParseCnt = 0;
00934                         nFuncId = 0;    // Jul 10, 2003  little YOSHI  論理和を使用するため、必ず初期化
00935                     }
00936
00937                     strcpy( szWordPrev, szWord );
00938                     nWordIdx = 0;
00939                     szWord[0] = '\0';
00940                     nMode = 0;
00941                     i--;
00942                     continue;
00943                 }
00944             }else
00945             /* 記号列読み込み中 */
00946             if( 2 == nMode ){
00947                 // Jul 10, 2003  little YOSHI
00948                 // 「#Const」と「Const」を区別するために、「#」も識別するように変更
00949                 if( '_' == pLine[i] ||
00950                     '~' == pLine[i] ||
00951                     ('a' <= pLine[i] && pLine[i] <= 'z' )||
00952                     ('A' <= pLine[i] && pLine[i] <= 'Z' )||
00953                     ('0' <= pLine[i] && pLine[i] <= '9' )||
00954                     '\t' == pLine[i] ||
00955                     ' ' == pLine[i] ||
00956                     CR == pLine[i] ||
00957                     LF == pLine[i] ||
00958                     '{' == pLine[i] ||
00959                     '}' == pLine[i] ||
00960                     '(' == pLine[i] ||
00961                     ')' == pLine[i] ||
00962                     ';' == pLine[i] ||
00963                     '\'' == pLine[i] ||
00964                     '/' == pLine[i] ||
00965                     '-' == pLine[i] ||
00966                     '#' == pLine[i]
00967                 ){
00968                     strcpy( szWordPrev, szWord );
00969                     nWordIdx = 0;
00970                     szWord[0] = '\0';
00971                     nMode = 0;
00972                     i--;
00973                     continue;
00974                 } else if (1 == nCharChars && '"' == pLine[i]) {
00975                     // Aug 7, 2003 little YOSHI  追加
00976                     // テキストの中は無視します。
00977                     nMode   = 3;
00978                 }else{
00979                     if( nWordIdx >= nMaxWordLeng ){
00980                         nMode = 999;
00981                         continue;
00982                     }else{
00983                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
00984                         szWord[nWordIdx + nCharChars] = '\0';
00985                         nWordIdx += (nCharChars);
00986                     }
00987                 }
00988             }else
00989             /* 長過ぎる単語無視中 */
00990             if( 999 == nMode ){
00991                 /* 空白やタブ記号等を飛ばす */
00992                 if( '\t' == pLine[i] ||
00993                     ' ' == pLine[i] ||
00994                     CR == pLine[i] ||
00995                     LF == pLine[i]
00996                 ){
00997                     nMode = 0;
00998                     continue;
00999                 }
01000             }else
01001             /* ノーマルモード */
01002             if( 0 == nMode ){
01003                 /* 空白やタブ記号等を飛ばす */
01004                 if( '\t' == pLine[i] ||
01005                     ' ' == pLine[i] ||
01006                     CR == pLine[i] ||
01007                     LF == pLine[i]
01008                 ){
01009                     continue;
01010                 }else
01011                 if( i < nLineLen && '\'' == pLine[i] ){
01012                     break;
01013                 } else if (1 == nCharChars && '"' == pLine[i]) {
01014                     // Aug 7, 2003 little YOSHI  追加
01015                     // テキストの中は無視します。
01016                     nMode   = 3;
01017                 }else{
01018                     if( (1 == nCharChars && (
01019                         '_' == pLine[i] ||
01020                         '~' == pLine[i] ||
01021                         ('a' <= pLine[i] && pLine[i] <= 'z' )||
01022                         ('A' <= pLine[i] && pLine[i] <= 'Z' )||
01023                         ('0' <= pLine[i] && pLine[i] <= '9' )
01024                         ) )
01025                      || 2 == nCharChars
01026                     ){
01027                         nWordIdx = 0;
01028
01029                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
01030                         szWord[nWordIdx + nCharChars] = '\0';
01031                         nWordIdx += (nCharChars);
01032
01033                         nMode = 1;
01034                     }else{
01035                         nWordIdx = 0;
01036                         memcpy( &szWord[nWordIdx], &pLine[i], nCharChars );
01037                         szWord[nWordIdx + nCharChars] = '\0';
01038                         nWordIdx += (nCharChars);
01039
01040                         nMode = 2;
01041                     }
01042                 }
01043             } else
01044             /* テキストが閉じるまで読み飛ばす */    // Aug 7, 2003 little YOSHI  追加
01045             if (nMode == 3) {
01046                 // 連続するダブルクォーテーションは無視する
01047                 if (1 == nCharChars && '"' == pLine[i]) {
01048                     // ダブルクォーテーションが現れたらフラグを反転する
01049                     bDQuote = !bDQuote;
01050                 } else if (bDQuote) {
01051                     // ダブルクォーテーションの次に
01052                     // ダブルクォーテーション以外の文字が現れたらノーマルモードに移行
01053                     --i;
01054                     nMode   = 0;
01055                     bDQuote = false;
01056                     continue;
01057                 }
01058             }
01059             i += (nCharChars - 1);
01060         }
01061     }
01062     return;
01063 }
01064 //  To Here June 23, 2001 N.Nakatani
01065
01066
01067 // From Here 2001.12.03 hor
01074 void CEditDoc::MakeFuncList_BookMark( CFuncInfoArr* pcFuncInfoArr )
01075 {
01076     const char* pLine;
01077     int     nLineLen;
01078     int     nLineCount;
01079     int     leftspace, pos_wo_space, k,nX,nY;
01080     char*   pszText;
01081     BOOL    bMarkUpBlankLineEnable = m_pShareData->m_Common.m_bMarkUpBlankLineEnable;
01082     int     nNewLineLen = m_cNewLineCode.GetLen();
01083     int     nLineLast   = m_cDocLineMgr.GetLineCount();
01084     int     nCharChars;
01085
01086     for( nLineCount = 0; nLineCount <  nLineLast; ++nLineCount ){
01087         if(!m_cDocLineMgr.GetLineInfo(nLineCount)->IsBookMarked())continue;
01088         pLine = m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
01089         if( NULL == pLine ){
01090             break;
01091         }
01092         // Jan, 16, 2002 hor
01093         if( bMarkUpBlankLineEnable ){// 20020119 aroka
01094             if( nLineLen<=nNewLineLen && nLineCount< nLineLast ){
01095               continue;
01096             }
01097         }// LTrim
01098         for( leftspace = 0; leftspace < nLineLen; ++leftspace ){
01099             if( pLine[leftspace] == ' ' ||
01100                 pLine[leftspace] == '\t'){
01101                 continue;
01102             }else if( (unsigned char)pLine[leftspace] == (unsigned char)0x81
01103                 && (unsigned char)pLine[leftspace + 1] == (unsigned char)0x40 ){
01104                 ++leftspace;
01105                 continue;
01106             }
01107             break;
01108         }
01109
01110         if( bMarkUpBlankLineEnable ){// 20020119 aroka
01111             if(( leftspace >= nLineLen-nNewLineLen && nLineCount< nLineLast )||
01112                 ( leftspace >= nLineLen )) {
01113                 continue;
01114             }
01115         }// RTrim
01116         // 2005.10.11 ryoji 右から遡るのではなく左から探すように修正（"ａ@" の右２バイトが全角空白と判定される問題の対処）
01117         k = pos_wo_space = leftspace;
01118         while( k < nLineLen ){
01119             nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, k );
01120             if( 1 == nCharChars ){
01121                 if( !(pLine[k] == CR ||
01122                         pLine[k] == LF ||
01123                         pLine[k] == SPACE ||
01124                         pLine[k] == TAB ||
01125                         pLine[k] == '\0') )
01126                     pos_wo_space = k + nCharChars;
01127             }
01128             else if( 2 == nCharChars ){
01129                 if( !((unsigned char)pLine[k] == (unsigned char)0x81 && (unsigned char)pLine[k + 1] == (unsigned char)0x40) )
01130                     pos_wo_space = k + nCharChars;
01131             }
01132             k += nCharChars;
01133         }
01134         //  Nov. 3, 2005 genta 文字列長計算式の修正
01135         nLineLen = pos_wo_space - leftspace;
01136         pszText = new char[nLineLen + 1];
01137         memcpy( pszText, (const char *)&pLine[leftspace], nLineLen );
01138         pszText[nLineLen] = '\0';
01139         m_cLayoutMgr.CaretPos_Phys2Log( 0, nLineCount, &nX, &nY );
01140         pcFuncInfoArr->AppendData( nLineCount+1, nY+1 , (char *)pszText, 0 );
01141         delete [] pszText;
01142     }
01143     return;
01144 }
01145 // To Here 2001.12.03 hor
01146
01147 // From Here Jan. 22, 2002 genta
01156 void CEditDoc::SetModified( bool flag, bool redraw)
01157 {
01158     if( m_bIsModified == flag ) //  変更がなければ何もしない
01159         return;
01160
01161     m_bIsModified = flag;
01162     if( redraw )
01163         SetParentCaption();
01164 }
01165 // From Here Jan. 22, 2002 genta
01166
01177 void CEditDoc::SetFilePath(const char* szFile)
01178 {
01179     strcpy( m_szFilePath, szFile );
01180     SetDocumentIcon();
01181
01182     //@@@ From Here 2003.05.31 MIK
01183     //タブウインドウ    //SetParentCaptionで実施
01184     //m_pcEditWnd->ChangeFileNameNotify( szFile );
01185     //@@@ To Here 2003.05.31 MIK
01186 }
01187
01192 const char * CEditDoc::GetFileName( void ) const
01193 {
01194     const char *p, *pszName;
01195     pszName = p = GetFilePath();
01196     while( *p != '\0'  ){
01197         if( _IS_SJIS_1( (unsigned char)*p ) && _IS_SJIS_2( (unsigned char)p[1] ) ){
01198             p+=2;
01199         }else if( *p == '\\' ){
01200             pszName = p + 1;
01201             p++;
01202         }else{
01203             p++;
01204         }
01205     }
01206     return pszName;
01207 }
01208
01218 void CEditDoc::SetDocumentIcon(void)
01219 {
01220     HICON   hIconBig, hIconSmall;
01221
01222     if( m_bGrepMode )   // Grepモードの時はアイコンを変更しない
01223         return;
01224
01225     if( GetDocumentAttribute().m_bUseDocumentIcon )
01226         m_pcEditWnd->GetRelatedIcon( GetFilePath(), hIconBig, hIconSmall );
01227     else
01228         m_pcEditWnd->GetDefaultIcon( hIconBig, hIconSmall );
01229
01230     m_pcEditWnd->SetWindowIcon( hIconBig, ICON_BIG );
01231     m_pcEditWnd->SetWindowIcon( hIconSmall, ICON_SMALL );
01232 }
01233
01241 void CEditDoc::AddToMRU(void)
01242 {
01243     FileInfo    fi;
01244     CMRU        cMRU;
01245
01246     SetFileInfo( &fi );
01247     strcpy( fi.m_szMarkLines, m_cDocLineMgr.GetBookMarks() );
01248
01249     //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
01250     cMRU.Add( &fi );
01251 }
01252
01253
01267 void CEditDoc::OpenFile( const char *filename, int nCharCode, BOOL bReadOnly )
01268 {
01269     char        pszPath[_MAX_PATH];
01270     BOOL        bOpened;
01271     HWND        hWndOwner;
01272
01273     /* 「ファイルを開く」ダイアログ */
01274     if( filename == NULL ){
01275         pszPath[0] = '\0';
01276         if( !OpenFileDialog( m_hWnd, NULL, pszPath, &nCharCode, &bReadOnly ) ){
01277             return;
01278         }
01279     }
01280     else {
01281         //  2007.10.01 genta 相対パスを絶対パスに変換
01282         //  変換しないとIsPathOpenedで正しい結果が得られず，
01283         //  同一ファイルを複数開くことがある．
01284         if( ! GetLongFileName( filename, pszPath )){
01285             //  ファイル名の変換に失敗
01286 			::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,
01287                 "ファイル名の変換に失敗しました [%s]", filename );
01288             return;
01289         }
01290     }
01291     /* 指定ファイルが開かれているか調べる */
01292     if( CShareData::getInstance()->IsPathOpened(pszPath, &hWndOwner, nCharCode) ){      // 開いていればアクティブにする
01293         /* 2007.03.12 maru 開いていたときの処理はCShareData::IsPathOpenedに移動 */
01294     }else{
01295         /* ファイルが開かれていない */
01296         /* 変更フラグがオフで、ファイルを読み込んでいない場合 */
01297 //@@@ 2001.12.26 YAZAKI Grep結果で無い場合も含める。
01298         if( IsFileOpenInThisWindow()
01299         ){
01300             /* ファイル読み込み */
01301             //  Oct. 03, 2004 genta コード確認は設定に依存
01302             FileRead( pszPath, &bOpened, nCharCode, bReadOnly,
01303                             m_pShareData->m_Common.m_bQueryIfCodeChange );
01304         }else{
01305             if( strchr( pszPath, ' ' ) ){
01306                 char    szFile2[_MAX_PATH + 3];
01307                 wsprintf( szFile2, "\"%s\"", pszPath );
01308                 strcpy( pszPath, szFile2 );
01309             }
01310             /* 新たな編集ウィンドウを起動 */
01311             CEditApp::OpenNewEditor( m_hInstance, m_hWnd, pszPath, nCharCode, bReadOnly );
01312         }
01313     }
01314     return;
01315 }
01316
01324 void CEditDoc::ChangeLayoutParam( bool bShowProgress, int nTabSize, int nMaxLineSize )
01325 {
01326     HWND        hwndProgress = NULL;
01327     if( bShowProgress && NULL != m_pcEditWnd ){
01328         hwndProgress = m_pcEditWnd->m_hwndProgressBar;
01329         //  Status Barが表示されていないときはm_hwndProgressBar == NULL
01330     }
01331
01332     if( hwndProgress ){
01333         ::ShowWindow( hwndProgress, SW_SHOW );
01334     }
01335
01336     //  座標の保存
01337     int* posSave = SavePhysPosOfAllView();
01338
01339     //  レイアウトの更新
01340     m_cLayoutMgr.ChangeLayoutParam( NULL, nTabSize, nMaxLineSize );
01341
01342     //  座標の復元
01343     RestorePhysPosOfAllView( posSave );
01344
01345     for( int i = 0; i < 4; i++ ){
01346         if( m_cEditViewArr[i].m_hWnd ){
01347             InvalidateRect( m_cEditViewArr[i].m_hWnd, NULL, TRUE );
01348         }
01349     }
01350
01351     if( hwndProgress ){
01352         ::ShowWindow( hwndProgress, SW_HIDE );
01353     }
01354 }
01355
01356 /* 閉じて(無題)
01357
01358     @date 2006.12.30 ryoji CEditView::Command_FILESAVEAS()から処理本体を切り出し
01359 */
01360 void CEditDoc::FileClose( void )
01361 {
01362     /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
01363     if( !OnFileClose() ){
01364         return;
01365     }
01366     /* 既存データのクリア */
01367     Init();
01368
01369     /* 全ビューの初期化 */
01370     InitAllView();
01371
01372     /* 親ウィンドウのタイトルを更新 */
01373     SetParentCaption();
01374
01375     return;
01376 }
01377
01378 /* 閉じて開く
01379
01380     @param filename [in] ファイル名
01381     @param nCharCode    [in] 文字コード
01382     @param bReadOnly    [in] 読み取り専用か
01383
01384     @date 2006.12.30 ryoji CEditView::Command_FILESAVEAS()から処理本体を切り出し
01385 */
01386 void CEditDoc::FileCloseOpen( const char *filename, int nCharCode, BOOL bReadOnly )
01387 {
01388     /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
01389     if( !OnFileClose() ){
01390         return;
01391     }
01392
01393     // Mar. 30, 2003 genta
01394     char    pszPath[_MAX_PATH];
01395
01396     if( filename == NULL ){
01397         pszPath[0] = '\0';
01398         if( !OpenFileDialog( m_hWnd, NULL, pszPath, &nCharCode, &bReadOnly ) ){
01399             return;
01400         }
01401     }
01402
01403     /* 既存データのクリア */
01404     Init();
01405
01406     /* 全ビューの初期化 */
01407     InitAllView();
01408
01409     /* 親ウィンドウのタイトルを更新 */
01410     SetParentCaption();
01411
01412     /* ファイルを開く */
01413     // Mar. 30, 2003 genta
01414     // Oct.  9, 2004 genta CEditDocへ移動したことによる変更
01415     OpenFile(( filename ? filename : pszPath ), nCharCode, bReadOnly );
01416 }
01417
01425 BOOL CEditDoc::FileSave( bool warnbeep, bool askname )
01426 {
01427
01428     /* 無変更でも上書きするか */
01429     if( FALSE == m_pShareData->m_Common.m_bEnableUnmodifiedOverwrite
01430      && !IsModified()   // 変更フラグ
01431      ){
01432         //  Feb. 28, 2004 genta
01433         //  保存不要でも警告音を出して欲しくない場合がある
01434         if( warnbeep ){
01435             ::MessageBeep( MB_ICONHAND );
01436         }
01437         return TRUE;
01438     }
01439
01440     if( !IsFilePathAvailable() ){
01441         if( ! askname ){
01442             return FALSE;
01443         }
01444         //  Feb. 28, 2004 genta SAVEASの結果が正しく返されていなかった
01445         //  次の処理と組み合わせるときに問題が生じる
01446         //return Command_FILESAVEAS_DIALOG();
01447         FileSaveAs_Dialog();
01448     }
01449     else {
01450         //  Jun.  5, 2004 genta
01451         //  読みとり専用のチェックをCEditDocから上書き保存処理に移動
01452         if( m_bReadOnly ){  /* 読み取り専用モード */
01453             if( warnbeep ){
01454                 ::MessageBeep( MB_ICONHAND );
01455                 MYMESSAGEBOX(
01456                     m_hWnd,
01457                     MB_OK | MB_ICONSTOP | MB_TOPMOST,
01458                     GSTR_APPNAME,
01459                     "%s\n\nは読み取り専用モードで開いています。 上書き保存はできません。\n\n"
01460                     "名前を付けて保存をすればいいと思います。",
01461                     IsFilePathAvailable() ? GetFilePath() : "（無題）"
01462                 );
01463             }
01464             return FALSE;
01465         }
01466
01467         if( SaveFile( GetFilePath() ) ){    //  m_nCharCode, m_cSaveLineCodeを変更せずに保存
01468             /* キャレットの行桁位置を表示する */
01469             m_cEditViewArr[m_nActivePaneIndex].DrawCaretPosInfo();
01470             return TRUE;
01471         }
01472     }
01473     return FALSE;
01474 }
01475
01480 BOOL CEditDoc::FileSaveAs_Dialog( void )
01481 {
01482     //  Aug. 16, 2000 genta
01483     //  現在のファイル名を初期値で与えない
01484     //  May 18, 2001 genta
01485     //  現在のファイル名を与えないのは上書き禁止の時のみ
01486     //  そうでない場合には現在のファイル名を初期値として設定する。
01487     char szPath[_MAX_PATH + 1];
01488     if( IsReadOnly() )
01489         szPath[0] = '\0';
01490     else
01491         strcpy( szPath, GetFilePath() );
01492
01493     //  Feb. 9, 2001 genta
01494     //  Jul. 26, 2003 ryoji BOMの有無を与えるパラメータ
01495     if( SaveFileDialog( szPath, &m_nCharCode, &m_cSaveLineCode, &m_bBomExist ) ){
01496         //  Jun.  5, 2004 genta
01497         //  読みとり専用のチェックをCEditDocから上書き保存処理に移動
01498         //  同名で上書きされるのを防ぐ
01499         if( m_bReadOnly && strcmp( szPath, GetFilePath()) == 0 ){
01500             ::MessageBeep( MB_ICONHAND );
01501             MYMESSAGEBOX(
01502                 m_hWnd,
01503                 MB_OK | MB_ICONSTOP | MB_TOPMOST,
01504                 GSTR_APPNAME,
01505                 "読み取り専用モードでは同一ファイルへの上書き保存はできません。"
01506             );
01507         }
01508         else {
01509             //Command_FILESAVEAS( szPath );
01510             FileSaveAs( szPath );
01511             return TRUE;
01512         }
01513     }
01514     return FALSE;
01515 }
01516
01517 /* 名前を付けて保存
01518
01519     @param filename [in] ファイル名
01520
01521     @date 2006.12.30 ryoji CEditView::Command_FILESAVEAS()から処理本体を切り出し
01522 */
01523 BOOL CEditDoc::FileSaveAs( const char *filename )
01524 {
01525     if( SaveFile( filename ) ){
01526         /* キャレットの行桁位置を表示する */
01527         m_cEditViewArr[m_nActivePaneIndex].DrawCaretPosInfo();
01528         OnChangeSetting();  //  タイプ別設定の変更を指示。
01529         //  再オープン
01530         //  Jul. 26, 2003 ryoji 現在開いているのと同じコードで開き直す
01531         ReloadCurrentFile( m_nCharCode, FALSE );
01532         return TRUE;
01533     }
01534     return FALSE;
01535 }
01536
01537 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView.cpp

CEditView.cpp

文書ウィンドウの管理 [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <io.h>
#include "CEditView.h"
#include "debug.h"
#include "CRunningTimer.h"
#include "charcode.h"
#include "mymessage.h"
#include "CWaitCursor.h"
#include "CEditWnd.h"
#include "CDlgCancel.h"
#include "etc_uty.h"
#include "CLayout.h"
#include "COpe.h"
#include "COpeBlk.h"
#include "CDropTarget.h"
#include "CSplitBoxWnd.h"
#include "CRegexKeyword.h"
#include "CMarkMgr.h"
#include "COsVersionInfo.h"
#include "CFileLoad.h"
#include "CMemoryIterator.h"

CEditView.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | WM_MOUSEWHEEL 0x020A
#define | WM_XBUTTONDOWN 0x020B
#define | WM_XBUTTONUP 0x020C
#define | WM_XBUTTONDBLCLK 0x020D
#define | XBUTTON1 0x0001
#define | XBUTTON2 0x0002
#define | IMR_RECONVERTSTRING 0x0004
#define | IMR_CONFIRMRECONVERTSTRING 0x0005
#define | IDT_ROLLMOUSE 1
#define | BFT_BITMAP 0x4d42
#define | ISDIB(bft) ((bft) == BFT_BITMAP)
#define | WIDTHBYTES(i) ((i+31)/32*4)

関数

LRESULT CALLBACK | EditViewWndProc (HWND, UINT, WPARAM, LPARAM)
VOID CALLBACK | EditViewTimerProc (HWND, UINT, UINT, DWORD)
BOOL | IsDataAvailable (LPDATAOBJECT pDataObject, CLIPFORMAT cfFormat)
HGLOBAL | GetGlobalData (LPDATAOBJECT pDataObject, CLIPFORMAT cfFormat)

変数

const int | STRNCMP_MAX = 100
CEditView * g_m_pcEditView

説明

文書ウィンドウの管理

作者:
Norio Nakatani
日付:
1998/03/13 作成

2005/09/02 D.S.Koba GetSizeOfCharで書き換え

CEditView.cpp で定義されています。

マクロ定義

#define BFT_BITMAP 0x4d42

CEditView.cpp の 89 行で定義されています。

#define IDT_ROLLMOUSE 1

CEditView.cpp の 86 行で定義されています。

#define IMR_CONFIRMRECONVERTSTRING 0x0005

CEditView.cpp の 77 行で定義されています。

#define IMR_RECONVERTSTRING 0x0004

CEditView.cpp の 72 行で定義されています。

#define ISDIB ( bft ) ((bft) == BFT_BITMAP)

CEditView.cpp の 92 行で定義されています。

#define WIDTHBYTES ( i ) ((i+31)/32*4)

CEditView.cpp の 95 行で定義されています。

#define WM_MOUSEWHEEL 0x020A

CEditView.cpp の 57 行で定義されています。

参照元 CWnd::DispatchEvent()・CEditWnd::DispatchEvent()・CEditView::DispatchEvent().

#define WM_XBUTTONDBLCLK 0x020D

CEditView.cpp の 64 行で定義されています。

#define WM_XBUTTONDOWN 0x020B

CEditView.cpp の 62 行で定義されています。

#define WM_XBUTTONUP 0x020C

CEditView.cpp の 63 行で定義されています。

#define XBUTTON1 0x0001

CEditView.cpp の 67 行で定義されています。

#define XBUTTON2 0x0002

CEditView.cpp の 68 行で定義されています。

関数

VOID CALLBACK EditViewTimerProc | ( | HWND | ,
 |  | UINT | ,
 |  | UINT | ,
 |  | DWORD |
 | ) |

CEditView.cpp の 195 行で定義されています。

参照先 GetWindowLongPtr・NULL・CEditView::OnTimer().

LRESULT CALLBACK EditViewWndProc | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditView.cpp の 160 行で定義されています。

参照先 CEditView::DispatchEvent()・g_m_pcEditView・GetWindowLongPtr・CEditView::m_hwndParent・NULL.

HGLOBAL GetGlobalData | ( | LPDATAOBJECT | pDataObject,
 |  | CLIPFORMAT | cfFormat
 | ) |

CEditView.cpp の 119 行で定義されています。

参照先 NULL.

参照元 CEditView::Drop().

BOOL IsDataAvailable | ( | LPDATAOBJECT | pDataObject,
 |  | CLIPFORMAT | cfFormat
 | ) |

CEditView.cpp の 105 行で定義されています。

参照先 NULL.

参照元 CEditView::Drop().

変数

CEditView* g_m_pcEditView

CEditView.cpp の 82 行で定義されています。

参照元 EditViewWndProc().

const int STRNCMP_MAX = 100

CEditView.cpp の 80 行で定義されています。

参照元 CEditView::KeySearchCore().

Sakura-Editorに対してSat Oct 27 02:17:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView.cpp ソースファイル

CEditView.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2002, Norio Nakatani
00010     Copyright (C) 2000, genta, JEPRO, MIK
00011     Copyright (C) 2001, genta, GAE, MIK, hor, asa-o, Stonee, Misaka, novice, YAZAKI
00012     Copyright (C) 2002, YAZAKI, hor, aroka, MIK, Moca, minfu, KK, novice, ai, Azumaiya, genta
00013     Copyright (C) 2003, MIK, ai, ryoji, Moca, wmlhq, genta
00014     Copyright (C) 2004, genta, Moca, novice, naoh, isearch, fotomo
00015     Copyright (C) 2005, genta, MIK, novice, aroka, D.S.Koba, かろと, Moca
00016     Copyright (C) 2006, Moca, aroka, ryoji, fon, genta
00017     Copyright (C) 2007, ryoji, じゅうじ, maru
00018
00019     This source code is designed for sakura editor.
00020     Please contact the copyright holders to use this code for other purpose.
00021 */
00022
00023 #include "stdafx.h"
00024 #include <stdlib.h>
00025 #include <time.h>
00026 #include <io.h>
00027 #include "CEditView.h"
00028 #include "debug.h"
00029 //#include "keycode.h"
00030 //#include "funccode.h"
00031 #include "CRunningTimer.h"
00032 #include "charcode.h"
00033 #include "mymessage.h"
00034 #include "CWaitCursor.h"
00035 #include "CEditWnd.h"
00036 //#include "CShareData.h"
00037 #include "CDlgCancel.h"
00038 //#include "sakura_rc.h"
00039 #include "etc_uty.h"
00040 //#include "global.h"
00041 //#include "CAutoSave.h"
00042 #include "CLayout.h"
00043 #include "COpe.h"
00044 #include "COpeBlk.h"
00045 #include "CDropTarget.h"
00046 #include "CSplitBoxWnd.h"
00047 #include "CRegexKeyword.h"
00048 #include "CMarkMgr.h"
00049 #include "COsVersionInfo.h"
00050 //#include "CDocLine.h"   // 2002.04.09 minfu
00051 #include "CFileLoad.h" // 2002/08/30 Moca
00052 #include "CMemoryIterator.h"    // @@@ 2002.09.28 YAZAKI
00053 //#include "my_icmp.h" // 2002/11/30 Moca 追加
00054 //#include "CMigemo.h"
00055
00056 #ifndef WM_MOUSEWHEEL
00057     #define WM_MOUSEWHEEL   0x020A
00058 #endif
00059
00060 // novice 2004/10/10 マウスサイドボタン対応
00061 #ifndef WM_XBUTTONDOWN
00062     #define WM_XBUTTONDOWN   0x020B
00063     #define WM_XBUTTONUP     0x020C
00064     #define WM_XBUTTONDBLCLK 0x020D
00065 #endif
00066 #ifndef XBUTTON1
00067     #define XBUTTON1 0x0001
00068     #define XBUTTON2 0x0002
00069 #endif
00070
00071 #ifndef IMR_RECONVERTSTRING
00072 #define IMR_RECONVERTSTRING             0x0004
00073 #endif // IMR_RECONVERTSTRING
00074
00075 /* 2002.04.09 minfu 再変換調整 */
00076 #ifndef IMR_CONFIRMRECONVERTSTRING
00077 #define IMR_CONFIRMRECONVERTSTRING             0x0005
00078 #endif // IMR_CONFIRMRECONVERTSTRING
00079
00080 const int STRNCMP_MAX = 100;    /* MAXキーワード長：strnicmp文字列比較最大値(CEditView::KeySearchCore) */   // 2006.04.10 fon
00081
00082 CEditView*  g_m_pcEditView;
00083 LRESULT CALLBACK EditViewWndProc( HWND, UINT, WPARAM, LPARAM );
00084 VOID CALLBACK EditViewTimerProc( HWND, UINT, UINT, DWORD );
00085
00086 #define IDT_ROLLMOUSE   1
00087
00088 /* リソースヘッダー */
00089 #define  BFT_BITMAP     0x4d42    /* 'BM' */
00090
00091 /* リソースがDIBかどうかを判断するマクロ */
00092 #define  ISDIB(bft)     ((bft) == BFT_BITMAP)
00093
00094 /* 指定された値を最も近いバイト境界に整列させるマクロ */
00095 #define  WIDTHBYTES(i)  ((i+31)/32*4)
00096
00097
00098 //@@@2002.01.14 YAZAKI staticにしてメモリの節約（(10240+10) * 3 バイト）
00099 int CEditView::m_pnDx[MAXLINESIZE + 10];
00100
00101 /*
00102     @date 2006.01.16 Moca 他のTYMEDが利用可能でも、取得できるように変更。
00103     @note IDataObject::GetData() で tymed = TYMED_HGLOBAL を指定すること。
00104 */
00105 BOOL IsDataAvailable( LPDATAOBJECT pDataObject, CLIPFORMAT cfFormat )
00106 {
00107     FORMATETC   fe;
00108
00109     // 2006.01.16 Moca 他のTYMEDが利用可能でも、IDataObject::GetData()で
00110     //  tymed = TYMED_HGLOBALを指定すれば問題ない
00111     fe.cfFormat = cfFormat;
00112     fe.ptd = NULL;
00113     fe.dwAspect = DVASPECT_CONTENT;
00114     fe.lindex = -1;
00115     fe.tymed = TYMED_HGLOBAL;
00116     // 2006.03.16 Moca S_FALSEでも受け入れてしまうバグを修正(ファイルのドロップ等)
00117     return S_OK == pDataObject->QueryGetData( &fe );
00118 }
00119 HGLOBAL GetGlobalData( LPDATAOBJECT pDataObject, CLIPFORMAT cfFormat )
00120 {
00121     FORMATETC fe;
00122     fe.cfFormat = cfFormat;
00123     fe.ptd = NULL;
00124     fe.dwAspect = DVASPECT_CONTENT;
00125     fe.lindex = -1;
00126     // 2006.01.16 Moca fe.tymed = -1からTYMED_HGLOBALに変更。
00127     fe.tymed = TYMED_HGLOBAL;
00128
00129     HGLOBAL hDest = NULL;
00130     STGMEDIUM stgMedium;
00131     // 2006.03.16 Moca SUCCEEDEDマクロではS_FALSEのとき困るので、S_OKに変更
00132     if( S_OK == pDataObject->GetData( &fe, &stgMedium ) ){
00133         if( stgMedium.pUnkForRelease == NULL ){
00134             if( stgMedium.tymed == TYMED_HGLOBAL )
00135                 hDest = stgMedium.hGlobal;
00136         }else{
00137             if( stgMedium.tymed == TYMED_HGLOBAL ){
00138                 DWORD nSize = ::GlobalSize( stgMedium.hGlobal );
00139                 hDest = ::GlobalAlloc( GMEM_SHARE|GMEM_MOVEABLE, nSize );
00140                 if( hDest != NULL ){
00141                     // copy the bits
00142                     LPVOID lpSource = ::GlobalLock( stgMedium.hGlobal );
00143                     LPVOID lpDest = ::GlobalLock( hDest );
00144                     memcpy( lpDest, lpSource, nSize );
00145                     ::GlobalUnlock( hDest );
00146                     ::GlobalUnlock( stgMedium.hGlobal );
00147                 }
00148             }
00149             ::ReleaseStgMedium( &stgMedium );
00150         }
00151     }
00152     return hDest;
00153 }
00154
00155
00156 /*
00157 || ウィンドウプロシージャ
00158 ||
00159 */
00160 LRESULT CALLBACK EditViewWndProc(
00161     HWND        hwnd,   // handle of window
00162     UINT        uMsg,   // message identifier
00163     WPARAM      wParam, // first message parameter
00164     LPARAM      lParam  // second message parameter
00165 )
00166 {
00167     CEditView*  pCEdit;
00168     switch( uMsg ){
00169     case WM_CREATE:
00170         pCEdit = ( CEditView* )g_m_pcEditView;
00171         return pCEdit->DispatchEvent( hwnd, uMsg, wParam, lParam );
00172     default:
00173         pCEdit = ( CEditView* )::GetWindowLongPtr( hwnd, 0 );
00174         if( NULL != pCEdit ){
00175             //  May 16, 2000 genta
00176             //  From Here
00177             if( uMsg == WM_COMMAND ){
00178                 ::SendMessage( ::GetParent( pCEdit->m_hwndParent ), WM_COMMAND, wParam,  lParam );
00179             }
00180             else{
00181                 return pCEdit->DispatchEvent( hwnd, uMsg, wParam, lParam );
00182             }
00183             //  To Here
00184         }
00185         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00186     }
00187 }
00188
00189
00190 /*
00191 ||  タイマーメッセージのコールバック関数
00192 ||
00193 ||  現在は、マウスによる領域選択時のスクロール処理のためにタイマーを使用しています。
00194 */
00195 VOID CALLBACK EditViewTimerProc(
00196     HWND hwnd,      // handle of window for timer messages
00197     UINT uMsg,      // WM_TIMER message
00198     UINT idEvent,   // timer identifier
00199     DWORD dwTime    // current system time
00200 )
00201 {
00202     CEditView*  pCEditView;
00203     pCEditView = ( CEditView* )::GetWindowLongPtr( hwnd, 0 );
00204     if( NULL != pCEditView ){
00205         pCEditView->OnTimer( hwnd, uMsg, idEvent, dwTime );
00206     }
00207     return;
00208 }
00209
00210
00211
00212 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00213 CEditView::CEditView() :
00214     m_cHistory( new CAutoMarkMgr ),
00215     m_bActivateByMouse( FALSE ),    // 2007.10.02 nasukoji
00216     m_cRegexKeyword( NULL )             // 2007.04.08 ryoji
00217 // 20020331 aroka 再変換対応 for 95/NT
00218 // 2002.04.09 コンストラクタのなかに移動しました。 minfu
00219 //  m_uMSIMEReconvertMsg( ::RegisterWindowMessage( RWM_RECONVERT ) ),
00220 //  m_uATOKReconvertMsg( ::RegisterWindowMessage( MSGNAME_ATOK_RECONVERT ) )
00221 {
00222     LOGFONT     lf;
00223
00224     m_bDrawSWITCH = TRUE;
00225     m_pcDropTarget = new CDropTarget( this );
00226     m_bDragSource = FALSE;
00227     m_bDragMode = FALSE;                    /* 選択テキストのドラッグ中か */
00228     m_bCurSrchKeyMark = FALSE;              /* 検索文字列 */
00229     //  Jun. 27, 2001 genta
00230     m_szCurSrchKey[0] = '\0';
00231     //strcpy( m_szCurSrchKey, "" );         /**/
00232     m_bCurSrchRegularExp = 0;               /* 検索／置換  1==正規表現 */
00233     m_bCurSrchLoHiCase = 0;                 /* 検索／置換  1==英大文字小文字の区別 */
00234     m_bCurSrchWordOnly = 0;                 /* 検索／置換  1==単語のみ検索 */
00235
00236     m_bExecutingKeyMacro = FALSE;           /* キーボードマクロの実行中 */
00237     m_bPrevCommand = 0;
00238     m_nMyIndex = 0;
00239
00240     //  Dec. 4, 2002 genta
00241     //  メニューバーへのメッセージ表示機能はCEditWndへ移管
00242
00243     /* 共有データ構造体のアドレスを返す */
00244     m_pShareData = CShareData::getInstance()->GetShareData();
00245     m_bCommandRunning = FALSE;  /* コマンドの実行中 */
00246     m_pcOpeBlk = NULL;          /* 操作ブロック */
00247     m_bDoing_UndoRedo = FALSE;  /* アンドゥ・リドゥの実行中か */
00248     m_pcsbwVSplitBox = NULL;    /* 垂直分割ボックス */
00249     m_pcsbwHSplitBox = NULL;    /* 水平分割ボックス */
00250     m_pszAppName = "EditorClient";
00251     m_hInstance = NULL;
00252     m_hWnd = NULL;
00253     m_hwndVScrollBar = NULL;
00254     m_nVScrollRate = 1;         /* 垂直スクロールバーの縮尺 */
00255     m_hwndHScrollBar = NULL;
00256     m_hwndSizeBox = NULL;
00257     m_nCaretPosX = 0;           /* ビュー左端からのカーソル桁位置(０オリジン) */
00258     m_nCaretPosX_Prev = 0;      /* ビュー左端からのカーソル桁直前の位置(０オリジン) */
00259     m_nCaretPosY = 0;           /* ビュー上端からのカーソル行位置(０オリジン) */
00260
00261     m_nCaretPosX_PHY = 0;       /* カーソル位置 改行単位行先頭からのバイト数(０開始) */
00262     m_nCaretPosY_PHY = 0;       /* カーソル位置 改行単位行の行番号(０開始) */
00263
00264     m_nSrchStartPosX_PHY = -1;  /* 検索/置換開始時のカーソル位置  改行単位行先頭からのバイト数(0開始) */    // 02/06/26 ai
00265     m_nSrchStartPosY_PHY = -1;  /* 検索/置換開始時のカーソル位置  改行単位行の行番号(0開始) */              // 02/06/26 ai
00266     m_bSearch = FALSE;          /* 検索/置換開始位置を登録するか */                                         // 02/06/26 ai
00267     m_nBracketPairPosX_PHY = -1;/* 対括弧の位置 改行単位行先頭からのバイト数(0開始) */  // 02/12/13 ai
00268     m_nBracketPairPosY_PHY = -1;/* 対括弧の位置 改行単位行の行番号(0開始) */            // 02/12/13 ai
00269     m_nBracketCaretPosX_PHY = -1;   /* 03/02/18 ai */
00270     m_nBracketCaretPosY_PHY = -1;   /* 03/02/18 ai */
00271     m_bDrawBracketPairFlag = FALSE; /* 03/02/18 ai */
00272     m_bDrawSelectArea = FALSE;  /* 選択範囲を描画したか */  // 02/12/13 ai
00273
00274     m_nCaretWidth = 0;          /* キャレットの幅 */
00275     m_nCaretHeight = 0;         /* キャレットの高さ */
00276     m_crCaret = -1;             /* キャレットの色 */            // 2006.12.16 ryoji
00277     m_crBack = -1;              /* テキストの背景色 */          // 2006.12.16 ryoji
00278     m_hbmpCaret = NULL;         /* キャレット用ビットマップ */  // 2006.11.28 ryoji
00279
00280     m_bSelectingLock = FALSE;   /* 選択状態のロック */
00281     m_bBeginSelect = FALSE;     /* 範囲選択中 */
00282     m_bBeginBoxSelect = FALSE;  /* 矩形範囲選択中 */
00283     m_bBeginLineSelect = FALSE; /* 行単位選択中 */
00284     m_bBeginWordSelect = FALSE; /* 単語単位選択中 */
00285
00286     m_nSelectLineBgnFrom = -1;  /* 範囲選択開始行(原点) */
00287     m_nSelectColmBgnFrom = -1;  /* 範囲選択開始桁(原点) */
00288     m_nSelectLineBgnTo = -1;    /* 範囲選択開始行(原点) */
00289     m_nSelectColmBgnTo = -1;    /* 範囲選択開始桁(原点) */
00290
00291     m_nSelectLineFrom = -1;     /* 範囲選択開始行 */
00292     m_nSelectColmFrom = -1;     /* 範囲選択開始桁 */
00293     m_nSelectLineTo = -1;       /* 範囲選択終了行 */
00294     m_nSelectColmTo = -1;       /* 範囲選択終了桁 */
00295
00296     m_nSelectLineFromOld = 0;   /* 範囲選択開始行 */
00297     m_nSelectColmFromOld = 0;   /* 範囲選択開始桁 */
00298     m_nSelectLineToOld = 0;     /* 範囲選択終了行 */
00299     m_nSelectColmToOld = 0;     /* 範囲選択終了桁 */
00300     m_nViewAlignLeft = 0;       /* 表示域の左端座標 */
00301     m_nViewAlignLeftCols = 0;   /* 行番号域の桁数 */
00302     m_nTopYohaku = m_pShareData->m_Common.m_nRulerBottomSpace;  /* ルーラーとテキストの隙間 */
00303     m_nViewAlignTop = m_nTopYohaku;     /* 表示域の上端座標 */
00304
00305     /* ルーラー表示 */
00306     m_nViewAlignTop += m_pShareData->m_Common.m_nRulerHeight;   /* ルーラー高さ */
00307     m_nOldCaretPosX = 0;    // 前回描画したルーラーのキャレット位置 2002.02.25 Add By KK
00308     m_nOldCaretWidth = 0;   // 前回描画したルーラーのキャレット幅   2002.02.25 Add By KK
00309     m_bRedrawRuler = true;  // ルーラー全体を描き直す時=true   2002.02.25 Add By KK
00310     m_nViewCx = 0;              /* 表示域の幅 */
00311     m_nViewCy = 0;              /* 表示域の高さ */
00312     m_nViewColNum = 0;          /* 表示域の桁数 */
00313     m_nViewRowNum = 0;          /* 表示域の行数 */
00314     m_nViewTopLine = 0;         /* 表示域の一番上の行 */
00315     m_nViewLeftCol = 0;         /* 表示域の一番左の桁 */
00316     m_hdcCompatDC = NULL;       /* 再描画用コンパチブルＤＣ */
00317     m_hbmpCompatBMP = NULL;     /* 再描画用メモリＢＭＰ */
00318     m_hbmpCompatBMPOld = NULL;  /* 再描画用メモリＢＭＰ(OLD) */
00319     m_nCharWidth = 10;          /* 半角文字の幅 */
00320     m_nCharHeight = 18;         /* 文字の高さ */
00321
00322     /* フォント作成 */
00323     m_hFont_HAN = CreateFontIndirect( &(m_pShareData->m_Common.m_lf) );
00324
00325     /* 太字フォント作成 */
00326     lf = m_pShareData->m_Common.m_lf;
00327     lf.lfWeight += 300;
00328     if( 1000 < lf.lfWeight ){
00329         lf.lfWeight = 1000;
00330     }
00331     m_hFont_HAN_FAT = CreateFontIndirect( &lf );
00332
00333     /* 下線フォント作成 */
00334     lf = m_pShareData->m_Common.m_lf;
00335     lf.lfUnderline = TRUE;
00336     m_hFont_HAN_UL = CreateFontIndirect( &lf );
00337
00338     /* 太字下線フォント作成 */
00339     lf = m_pShareData->m_Common.m_lf;
00340     lf.lfUnderline = TRUE;
00341     lf.lfWeight += 300;
00342     if( 1000 < lf.lfWeight ){
00343         lf.lfWeight = 1000;
00344     }
00345     m_hFont_HAN_FAT_UL = CreateFontIndirect( &lf );
00346
00347     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
00348     //  2007.08.12 genta 初期化にShareDataの値が必要になった
00349     m_CurRegexp.Init(m_pShareData->m_Common.m_szRegexpLib );
00350
00351     // 2004.02.08 m_hFont_ZENは未使用により削除
00352     m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
00353     m_bInMenuLoop = FALSE;              /* メニュー モーダル ループに入っています */
00354 //  MYTRACE( "CEditView::CEditView()おわり\n" );
00355     m_bHokan = FALSE;
00356
00357     m_hFontOld = NULL;
00358
00359     //  Aug. 31, 2000 genta
00360     m_cHistory->SetMax( 30 );
00361
00362     // from here  2002.04.09 minfu OSによって再変換の方式を変える
00363     //  YAZAKI COsVersionInfoのカプセル化は守りましょ。
00364     COsVersionInfo  cOs;
00365 //  POSVERSIONINFO pOsVer;
00366
00367 //  pOsVer =  cOs.GetOsVersionInfo();
00368     if( cOs.OsDoesNOTSupportReconvert() ){
00369         // 95 or NTならば
00370         m_uMSIMEReconvertMsg = ::RegisterWindowMessage( RWM_RECONVERT );
00371         m_uATOKReconvertMsg = ::RegisterWindowMessage( MSGNAME_ATOK_RECONVERT ) ;
00372         m_uWM_MSIME_RECONVERTREQUEST = ::RegisterWindowMessage("MSIMEReconvertRequest");
00373
00374         m_hAtokModule = LoadLibrary("ATOK10WC.DLL");
00375         AT_ImmSetReconvertString = NULL;
00376         if ( NULL != m_hAtokModule ) {
00377             AT_ImmSetReconvertString =(BOOL (WINAPI *)( HIMC , int ,PRECONVERTSTRING , DWORD  ) ) GetProcAddress(m_hAtokModule,"AT_ImmSetReconvertString");
00378         }
00379     }else{
00380         // それ以外のOSのときはOS標準を使用する
00381         m_uMSIMEReconvertMsg = 0;
00382         m_uATOKReconvertMsg = 0 ;
00383         m_hAtokModule = 0;  //@@@ 2002.04.14 MIK
00384     }
00385     // to here  2002.04.10 minfu
00386
00387 // 2002/07/22 novice
00388 //  m_bCaretShowFlag = false;
00389
00390     //2004.10.23 isearch
00391     m_nISearchMode = 0;
00392     //m_pcmigemo = CMigemo::getInstance();
00393     //m_pcmigemo->Init();
00394     m_pcmigemo = NULL;
00395
00396     return;
00397 }
00398
00399
00400 CEditView::~CEditView()
00401 {
00402     DeleteObject( m_hFont_HAN );
00403     DeleteObject( m_hFont_HAN_FAT );
00404     DeleteObject( m_hFont_HAN_UL );
00405     DeleteObject( m_hFont_HAN_FAT_UL );
00406
00407     // キャレット用ビットマップ // 2006.11.28 ryoji
00408     if( m_hbmpCaret != NULL )
00409         DeleteObject( m_hbmpCaret );
00410
00411     if( m_hWnd != NULL ){
00412         DestroyWindow( m_hWnd );
00413     }
00414
00415     /* 再描画用メモリＢＭＰ */
00416     if( m_hbmpCompatBMP != NULL ){
00417         /* 再描画用メモリＢＭＰ(OLD) */
00418         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );
00419         ::DeleteObject( m_hbmpCompatBMP );
00420     }
00421     /* 再描画用コンパチブルＤＣ */
00422     if( m_hdcCompatDC != NULL ){
00423         ::DeleteDC( m_hdcCompatDC );
00424     }
00425
00426     delete m_pcDropTarget;
00427     m_pcDropTarget = NULL;
00428
00429     delete m_cHistory;
00430
00431     delete m_cRegexKeyword; //@@@ 2001.11.17 add MIK
00432
00433     //再変換 2002.04.10 minfu
00434     if(m_hAtokModule)
00435         FreeLibrary(m_hAtokModule);
00436
00437     return;
00438 }
00439
00440
00441
00442 BOOL CEditView::Create(
00443     HINSTANCE   hInstance,
00444     HWND        hwndParent,
00445     CEditDoc*   pcEditDoc,
00446     int         nMyIndex,
00447     BOOL        bShow
00448 )
00449 {
00450     WNDCLASS    wc;
00451     HDC         hdc;
00452     m_hInstance = hInstance;
00453     m_hwndParent = hwndParent;
00454     m_pcEditDoc = pcEditDoc;
00455     m_nMyIndex = nMyIndex;
00456
00457     //  2007.08.18 genta 初期化にShareDataの値が必要になった
00458     m_cRegexKeyword = new CRegexKeyword( m_pShareData->m_Common.m_szRegexpLib );    //@@@ 2001.11.17 add MIK
00459     m_cRegexKeyword->RegexKeySetTypes(&(m_pcEditDoc->GetDocumentAttribute()));  //@@@ 2001.11.17 add MIK
00460
00461     m_nTopYohaku = m_pShareData->m_Common.m_nRulerBottomSpace;  /* ルーラーとテキストの隙間 */
00462     m_nViewAlignTop = m_nTopYohaku;                             /* 表示域の上端座標 */
00463     /* ルーラー表示 */
00464 //  if( m_pShareData->m_Common.m_bRulerDisp ){
00465     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_bDisp ){
00466         m_nViewAlignTop += m_pShareData->m_Common.m_nRulerHeight;   /* ルーラー高さ */
00467     }
00468
00469
00470     /* ウィンドウクラスの登録 */
00471     //  Apr. 27, 2000 genta
00472     //  サイズ変更時のちらつきを抑えるためCS_HREDRAW | CS_VREDRAW を外した
00473     wc.style            = CS_DBLCLKS | CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
00474     wc.lpfnWndProc      = (WNDPROC)EditViewWndProc;
00475     wc.cbClsExtra       = 0;
00476     wc.cbWndExtra       = sizeof( LONG_PTR );
00477     wc.hInstance        = m_hInstance;
00478     wc.hIcon            = LoadIcon( NULL, IDI_APPLICATION );
00479     wc.hCursor          = NULL/*LoadCursor( NULL, IDC_IBEAM )*/;
00480     wc.hbrBackground    = (HBRUSH)NULL/*(COLOR_WINDOW + 1)*/;
00481     wc.lpszMenuName     = NULL;
00482     wc.lpszClassName    = m_pszAppName;
00483     if( 0 == ::RegisterClass( &wc ) ){
00484     }
00485     /* エディタウィンドウの作成 */
00486     g_m_pcEditView = this;
00487     m_hWnd = ::CreateWindowEx(
00488         0
00489         /*| WS_EX_CLIENTEDGE */
00490         | WS_EX_STATICEDGE
00491         ,   // extended window style
00492
00493         m_pszAppName,           // pointer to registered class name
00494         m_pszAppName,           // pointer to window name
00495         0
00496         | WS_VISIBLE
00497         | WS_CHILD
00498         | WS_CLIPCHILDREN
00499         /*| WS_BORDER*/
00500         , // window style
00501
00502         CW_USEDEFAULT,          // horizontal position of window
00503         0,                      // vertical position of window
00504         CW_USEDEFAULT,          // window width
00505         0,                      // window height
00506         hwndParent,             // handle to parent or owner window
00507         NULL,                   // handle to menu or child-window identifier
00508         m_hInstance,            // handle to application instance
00509         (LPVOID)this            // pointer to window-creation data
00510     );
00511     if( NULL == m_hWnd ){
00512         return FALSE;
00513     }
00514
00515 //  CDropTarget::Register_DropTarget( m_hWnd );
00516     m_pcDropTarget->Register_DropTarget( m_hWnd );
00517 //  ::OleInitialize(NULL);
00518 //  if( FAILED( ::RegisterDragDrop( m_hWnd, this ) ) ){
00519 //      ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00520 //          "::RegisterDragDrop()\n失敗"
00521 //      );
00522 //
00523 //  }
00524
00525     /* 辞書Tip表示ウィンドウ作成 */
00526     m_cTipWnd.Create( m_hInstance, m_hWnd/*m_pShareData->m_hwndTray*/ );
00527
00528     /* 再描画用コンパチブルＤＣ */
00529     hdc = ::GetDC( m_hWnd );
00530     m_hdcCompatDC = ::CreateCompatibleDC( hdc );
00531     ::ReleaseDC( m_hWnd, hdc );
00532
00533     /* 垂直分割ボックス */
00534     m_pcsbwVSplitBox = new CSplitBoxWnd;
00535     m_pcsbwVSplitBox->Create( m_hInstance, m_hWnd, TRUE );
00536     /* 水平分割ボックス */
00537     m_pcsbwHSplitBox = new CSplitBoxWnd;
00538     m_pcsbwHSplitBox->Create( m_hInstance, m_hWnd, FALSE );
00539
00540     /* スクロールバー作成 */
00541     CreateScrollBar();      // 2006.12.19 ryoji
00542
00543     SetFont();
00544     /* スクロールバーの状態を更新する */
00545 //  AdjustScrollBars();
00546
00547     if( bShow ){
00548         ShowWindow( m_hWnd, SW_SHOW );
00549     }
00550
00551     /* 親ウィンドウのタイトルを更新 */
00552     SetParentCaption();
00553
00554 //  /* 入力補完ウィンドウ作成 */
00555 //  m_cHokanMgr.DoModeless( m_hInstance , m_hWnd, (LPARAM)this );
00556
00557     /* キーボードの現在のリピート間隔を取得 */
00558     int nKeyBoardSpeed;
00559     SystemParametersInfo( SPI_GETKEYBOARDSPEED, 0, &nKeyBoardSpeed, 0 );
00560 //  nKeyBoardSpeed *= 2;
00561     /* タイマー起動 */
00562     if( 0 == ::SetTimer( m_hWnd, IDT_ROLLMOUSE, nKeyBoardSpeed, (TIMERPROC)EditViewTimerProc ) ){
00563 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00564             "CEditView::Create()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。"
00565         );
00566     }
00567
00568     /* アンダーライン */
00569     m_cUnderLine.SetView( this );
00570     return TRUE;
00571 }
00572
00573
00577 BOOL CEditView::CreateScrollBar( void )
00578 {
00579     SCROLLINFO  si;
00580
00581     /* スクロールバーの作成 */
00582     m_hwndVScrollBar = ::CreateWindowEx(
00583         0L,                                 /* no extended styles */
00584         "SCROLLBAR",                        /* scroll bar control class */
00585         (LPSTR) NULL,                       /* text for window title bar */
00586         WS_VISIBLE | WS_CHILD | SBS_VERT,   /* scroll bar styles */
00587         0,                                  /* horizontal position */
00588         0,                                  /* vertical position */
00589         200,                                /* width of the scroll bar */
00590         CW_USEDEFAULT,                      /* default height */
00591         m_hWnd,                             /* handle of main window */
00592         (HMENU) NULL,                       /* no menu for a scroll bar */
00593         m_hInstance,                        /* instance owning this window */
00594         (LPVOID) NULL                       /* pointer not needed */
00595     );
00596     si.cbSize = sizeof( si );
00597     si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
00598     si.nMin  = 0;
00599     si.nMax  = 29;
00600     si.nPage = 10;
00601     si.nPos  = 0;
00602     si.nTrackPos = 1;
00603     ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
00604     ::ShowScrollBar( m_hwndVScrollBar, SB_CTL, TRUE );
00605
00606     /* スクロールバーの作成 */
00607     m_hwndHScrollBar = NULL;
00608     if( m_pShareData->m_Common.m_bScrollBarHorz ){  /* 水平スクロールバーを使う */
00609         m_hwndHScrollBar = ::CreateWindowEx(
00610             0L,                                 /* no extended styles */
00611             "SCROLLBAR",                        /* scroll bar control class */
00612             (LPSTR) NULL,                       /* text for window title bar */
00613             WS_VISIBLE | WS_CHILD | SBS_HORZ,   /* scroll bar styles */
00614             0,                                  /* horizontal position */
00615             0,                                  /* vertical position */
00616             200,                                /* width of the scroll bar */
00617             CW_USEDEFAULT,                      /* default height */
00618             m_hWnd,                             /* handle of main window */
00619             (HMENU) NULL,                       /* no menu for a scroll bar */
00620             m_hInstance,                        /* instance owning this window */
00621             (LPVOID) NULL                       /* pointer not needed */
00622         );
00623         si.cbSize = sizeof( si );
00624         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
00625         si.nMin  = 0;
00626         si.nMax  = 29;
00627         si.nPage = 10;
00628         si.nPos  = 0;
00629         si.nTrackPos = 1;
00630         ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
00631         ::ShowScrollBar( m_hwndHScrollBar, SB_CTL, TRUE );
00632     }
00633
00634
00635     /* サイズボックス */
00636     if( m_pShareData->m_Common.m_nFUNCKEYWND_Place == 0 ){  /* ファンクションキー表示位置／0:上 1:下 */
00637         m_hwndSizeBox = ::CreateWindowEx(
00638             WS_EX_CONTROLPARENT/*0L*/,          /* no extended styles */
00639             "SCROLLBAR",                        /* scroll bar control class */
00640             (LPSTR) NULL,                       /* text for window title bar */
00641             WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00642             0,                                  /* horizontal position */
00643             0,                                  /* vertical position */
00644             200,                                /* width of the scroll bar */
00645             CW_USEDEFAULT,                      /* default height */
00646             m_hWnd,                             /* handle of main window */
00647             (HMENU) NULL,                       /* no menu for a scroll bar */
00648             m_hInstance,                        /* instance owning this window */
00649             (LPVOID) NULL                       /* pointer not needed */
00650         );
00651     }else{
00652         m_hwndSizeBox = ::CreateWindowEx(
00653             0L,                                 /* no extended styles */
00654             "STATIC",                           /* scroll bar control class */
00655             (LPSTR) NULL,                       /* text for window title bar */
00656             WS_VISIBLE | WS_CHILD/* | SBS_SIZEBOX | SBS_SIZEGRIP*/, /* scroll bar styles */
00657             0,                                  /* horizontal position */
00658             0,                                  /* vertical position */
00659             200,                                /* width of the scroll bar */
00660             CW_USEDEFAULT,                      /* default height */
00661             m_hWnd,                             /* handle of main window */
00662             (HMENU) NULL,                       /* no menu for a scroll bar */
00663             m_hInstance,                        /* instance owning this window */
00664             (LPVOID) NULL                       /* pointer not needed */
00665         );
00666     }
00667     return TRUE;
00668 }
00669
00670
00671
00675 void CEditView::DestroyScrollBar( void )
00676 {
00677     if( m_hwndVScrollBar )
00678     {
00679         ::DestroyWindow( m_hwndVScrollBar );
00680         m_hwndVScrollBar = NULL;
00681     }
00682
00683     if( m_hwndHScrollBar )
00684     {
00685         ::DestroyWindow( m_hwndHScrollBar );
00686         m_hwndHScrollBar = NULL;
00687     }
00688
00689     if( m_hwndSizeBox )
00690     {
00691         ::DestroyWindow( m_hwndSizeBox );
00692         m_hwndSizeBox = NULL;
00693     }
00694 }
00695
00696
00697
00698
00699
00700 /*
00701 || メッセージディスパッチャ
00702 */
00703 LRESULT CEditView::DispatchEvent(
00704     HWND    hwnd,   // handle of window
00705     UINT    uMsg,   // message identifier
00706     WPARAM  wParam, // first message parameter
00707     LPARAM  lParam  // second message parameter
00708 )
00709 {
00710
00711
00712     HDC         hdc;
00713     PAINTSTRUCT ps;
00714 //  int         nPos;
00715     int         nPosX;
00716     int         nPosY;
00717 //  WORD        fwKeys;
00718 //  short       zDelta;
00719 //  short       xPos;
00720 //  short       yPos;
00721 //  int         i;
00722 //  int         nScrollCode;
00723     switch ( uMsg ){
00724 //- case WM_DESTROYCLIPBOARD:
00725 //-     MYTRACE( "CEditView WM_DESTROYCLIPBOARD\n" );
00726 //-     return 0;
00727     case WM_MOUSEWHEEL:
00728         return OnMOUSEWHEEL( wParam, lParam );
00729
00730
00731
00732     case WM_CREATE:
00733 		::SetWindowLongPtr( hwnd, 0, (LONG_PTR) this );
00734
00735 //      /* キーボードの現在のリピート間隔を取得 */
00736 //      int nKeyBoardSpeed;
00737 //      SystemParametersInfo( SPI_GETKEYBOARDSPEED, 0, &nKeyBoardSpeed, 0 );
00738 //      /* タイマー起動 */
00739 //      ::SetTimer( hwnd, IDT_ROLLMOUSE, nKeyBoardSpeed, (TIMERPROC)EditViewTimerProc );
00740
00741         return 0L;
00742
00743     case WM_SIZE:
00744 //      MYTRACE( "  WM_SIZE\n" );
00745         OnSize( LOWORD( lParam ), HIWORD( lParam ) );
00746         return 0L;
00747
00748
00749
00750     case WM_SETFOCUS:
00751 //      MYTRACE( "  WM_SETFOCUS m_nMyIndex=%d\n", m_nMyIndex );
00752         OnSetFocus();
00753
00754         /* 親ウィンドウのタイトルを更新 */
00755         SetParentCaption();
00756
00757         return 0L;
00758     case WM_KILLFOCUS:
00759         OnKillFocus();
00760
00761 //      /* 親ウィンドウのタイトルを更新 */
00762 //      SetParentCaption( TRUE );
00763
00764         return 0L;
00765     case WM_CHAR:
00766 //      MYTRACE( "WM_CHAR\n" );
00767         HandleCommand( F_CHAR, TRUE, wParam, 0, 0, 0 );
00768         return 0L;
00769
00770     case WM_IME_COMPOSITION:
00771         if( IsInsMode() /* Oct. 2, 2005 genta */
00772          && lParam & GCS_RESULTSTR
00773         ){
00774             HIMC hIMC;
00775             DWORD dwSize;
00776             HGLOBAL hstr;
00777             LPSTR lpstr;
00778             hIMC = ImmGetContext( hwnd );
00779
00780             if( !hIMC ){
00781                 return 0;
00782 //              MyError( ERROR_NULLCONTEXT );
00783             }
00784
00785             // Get the size of the result string.
00786             dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);
00787
00788             // increase buffer size for NULL terminator,
00789             //  maybe it is in Unicode
00790             dwSize += sizeof( WCHAR );
00791
00792             hstr = GlobalAlloc( GHND, dwSize );
00793             if( hstr == NULL ){
00794                 return 0;
00795 //               MyError( ERROR_GLOBALALLOC );
00796             }
00797
00798             lpstr = (LPSTR)GlobalLock( hstr );
00799             if( lpstr == NULL ){
00800                 return 0;
00801 //               MyError( ERROR_GLOBALLOCK );
00802             }
00803
00804             // Get the result strings that is generated by IME into lpstr.
00805             ImmGetCompositionString(hIMC, GCS_RESULTSTR, lpstr, dwSize);
00806
00807 //          MYTRACE( "lpstr=[%s]", lpstr );
00808             /* テキストを貼り付け */
00809             HandleCommand( F_INSTEXT, TRUE, (LPARAM)lpstr, TRUE, 0, 0 );
00810
00811             ImmReleaseContext( hwnd, hIMC );
00812
00813             // add this string into text buffer of application
00814
00815             GlobalUnlock( hstr );
00816             GlobalFree( hstr );
00817             return DefWindowProc( hwnd, uMsg, wParam, lParam );
00818 //          return 0;
00819         }else{
00820             return DefWindowProc( hwnd, uMsg, wParam, lParam );
00821         }
00822     case WM_IME_CHAR:
00823         if( ! IsInsMode() /* Oct. 2, 2005 genta */ ){ /* 上書きモードか？ */
00824             HandleCommand( F_IME_CHAR, TRUE, wParam, 0, 0, 0 );
00825         }
00826         return 0L;
00827
00828 //      if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00829 //          return 1L;
00830 //      }
00831 //      /* コマンドの実行中 */
00832 //      m_bCommandRunning = TRUE;
00833 //
00834 //      if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00836 //          delete m_pcOpeBlk;
00837 //      }
00838 //      m_pcOpeBlk = new COpeBlk;
00839 //
00840 //      Command_IME_CHAR( (WORD)( (((WORD)wParam&0x00ff)<<8) | (((WORD)wParam&0xff00)>>8) ) ); /* ２バイト文字入力 */
00841 //
00842 //      /* アンドゥバッファの処理 */
00843 //      if( 0 < m_pcOpeBlk->GetNum() ){ /* 操作の数を返す */
00844 //          /* 操作の追加 */
00845 //          m_pcEditDoc->m_cOpeBuf.AppendOpeBlk( m_pcOpeBlk );
00846 //      }else{
00847 //          delete m_pcOpeBlk;
00848 //      }
00849 //      m_pcOpeBlk = NULL;
00850 //      m_bCommandRunning = FALSE;
00851 //          return 0L;
00852
00853     case WM_KEYUP:
00854         /* キーリピート状態 */
00855         m_bPrevCommand = 0;
00856         return 0L;
00857
00858     // 2004.04.27 Moca From Here ALT+xでALTを押したままだとキーリピートがOFFにならない対策
00859     case WM_SYSKEYUP:
00860         m_bPrevCommand = 0;
00861         // 念のため呼ぶ
00862         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00863     // 2004.04.27 To Here
00864
00865 //  case WM_MBUTTONDBLCLK:
00866     case WM_LBUTTONDBLCLK:
00867
00868         // 2007.10.02 nasukoji  非アクティブウィンドウのダブルクリック時はここでカーソルを移動する
00869         // 2007.10.12 genta フォーカス移動のため，OnLBUTTONDBLCLKより移動
00870         if(m_bActivateByMouse){
00871             ::SetFocus( ::GetParent( m_hwndParent ) );
00872
00873             if( m_nMyIndex != m_pcEditDoc->GetActivePane() ){
00874                 /* アクティブなペインを設定 */
00875                 m_pcEditDoc->SetActivePane( m_nMyIndex );
00876             }
00877             // カーソルをクリック位置へ移動する
00878             OnLBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00879             // 2007.10.02 nasukoji
00880             m_bActivateByMouse = FALSE;     // マウスによるアクティベートを示すフラグをOFF
00881         }
00882 //      MYTRACE( " WM_LBUTTONDBLCLK wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00883         OnLBUTTONDBLCLK( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00884         return 0L;
00885
00886 // novice 2004/10/11 マウス中ボタン対応
00887     case WM_MBUTTONDOWN:
00888         OnMBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00889
00890         return 0L;
00891
00892     case WM_LBUTTONDOWN:
00893 //  case WM_RBUTTONDOWN:
00894         ::SetFocus( ::GetParent( m_hwndParent ) );
00895
00896         if( m_nMyIndex != m_pcEditDoc->GetActivePane() ){
00897             /* アクティブなペインを設定 */
00898             m_pcEditDoc->SetActivePane( m_nMyIndex );
00899         }
00900         // 2007.10.02 nasukoji
00901         m_bActivateByMouse = FALSE;     // マウスによるアクティベートを示すフラグをOFF
00902 //      MYTRACE( " WM_LBUTTONDOWN wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00903         OnLBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00904         return 0L;
00905 //  case WM_MBUTTONUP:
00906     case WM_LBUTTONUP:
00907
00908 //      MYTRACE( " WM_LBUTTONUP wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00909         OnLBUTTONUP( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00910         return 0L;
00911     case WM_MOUSEMOVE:
00912         OnMOUSEMOVE( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00913         return 0L;
00914
00915     case WM_RBUTTONDBLCLK:
00916         ::SetFocus( ::GetParent( m_hwndParent ) );
00917 //      MYTRACE( " WM_RBUTTONDBLCLK wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00918         return 0L;
00919 //  case WM_RBUTTONDOWN:
00920 //      MYTRACE( " WM_RBUTTONDOWN wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00921 //      OnRBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00922 //      if( m_nMyIndex != m_pcEditDoc->GetActivePane() ){
00923 //          /* アクティブなペインを設定 */
00924 //          m_pcEditDoc->SetActivePane( m_nMyIndex );
00925 //      }
00926 //      return 0L;
00927     case WM_RBUTTONUP:
00928 //      MYTRACE( " WM_RBUTTONUP wParam=%08xh, x=%d y=%d\n", wParam, LOWORD( lParam ), HIWORD( lParam ) );
00929         OnRBUTTONUP( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00930         return 0L;
00931
00932 // novice 2004/10/10 マウスサイドボタン対応
00933     case WM_XBUTTONDOWN:
00934         switch ( HIWORD(wParam) ){
00935         case XBUTTON1:
00936             OnXLBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00937             break;
00938         case XBUTTON2:
00939             OnXRBUTTONDOWN( wParam, (short)LOWORD( lParam ), (short)HIWORD( lParam ) );
00940             break;
00941         }
00942
00943         return 0L;
00944
00945     case WM_VSCROLL:
00946         ::SetFocus( ::GetParent( m_hwndParent ) );
00947
00948 //      MYTRACE( "  WM_VSCROLL nPos=%d\n", GetScrollPos( m_hwndVScrollBar, SB_CTL ) );
00949         //  Sep. 11, 2004 genta 同期スクロールの関数化
00950         {
00951             int Scroll = OnVScroll(
00952                 (int) LOWORD( wParam ), ((int) HIWORD( wParam )) * m_nVScrollRate );
00953
00954             //  シフトキーが押されていないときだけ同期スクロール
00955             if(( ::GetKeyState( VK_SHIFT ) & 0x8000 ) == 0 ){
00956                 SyncScrollV( Scroll );
00957             }
00958         }
00959         if( m_nMyIndex != m_pcEditDoc->GetActivePane() ){
00960             /* アクティブなペインを設定 */
00961             m_pcEditDoc->SetActivePane( m_nMyIndex );
00962         }
00963
00964         return 0L;
00965
00966     case WM_HSCROLL:
00967         ::SetFocus( ::GetParent( m_hwndParent ) );
00968 //      MYTRACE( "  WM_HSCROLL nPos=%d\n", GetScrollPos( m_hwndHScrollBar, SB_CTL ) );
00969         //  Sep. 11, 2004 genta 同期スクロールの関数化
00970         {
00971             int Scroll = OnHScroll(
00972                 (int) LOWORD( wParam ), ((int) HIWORD( wParam )) );
00973
00974             //  シフトキーが押されていないときだけ同期スクロール
00975             if(( ::GetKeyState( VK_SHIFT ) & 0x8000 ) == 0 ){
00976                 SyncScrollH( Scroll );
00977             }
00978         }
00979
00980         if( m_nMyIndex != m_pcEditDoc->GetActivePane() ){
00981             /* アクティブなペインを設定 */
00982             m_pcEditDoc->SetActivePane( m_nMyIndex );
00983         }
00984
00985         return 0L;
00986
00987     case WM_ENTERMENULOOP:
00988         m_bInMenuLoop = TRUE;   /* メニュー モーダル ループに入っています */
00989
00990         /* 辞書Tipが起動されている */
00991         if( 0 == m_dwTipTimer ){
00992             /* 辞書Tipを消す */
00993             m_cTipWnd.Hide();
00994             m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
00995         }
00996         if( m_bHokan ){
00997             m_pcEditDoc->m_cHokanMgr.Hide();
00998             m_bHokan = FALSE;
00999         }
01000         return 0L;
01001
01002     case WM_EXITMENULOOP:
01003         m_bInMenuLoop = FALSE;  /* メニュー モーダル ループに入っています */
01004         return 0L;
01005
01006
01007     case WM_PAINT:
01008         hdc = ::BeginPaint( hwnd, &ps );
01009         OnPaint( hdc, &ps, FALSE );
01010         ::EndPaint(hwnd, &ps);
01011         return 0L;
01012
01013     case WM_CLOSE:
01014 //      MYTRACE( "  WM_CLOSE\n" );
01015         DestroyWindow( hwnd );
01016         return 0L;
01017     case WM_DESTROY:
01018 //      CDropTarget::Revoke_DropTarget();
01019         m_pcDropTarget->Revoke_DropTarget();
01020 //      ::RevokeDragDrop( m_hWnd );
01021 //      ::OleUninitialize();
01022
01023         /* タイマー終了 */
01024         ::KillTimer( m_hWnd, IDT_ROLLMOUSE );
01025
01026
01027 //      MYTRACE( "  WM_DESTROY\n" );
01028         /*
01029         ||子ウィンドウの破棄
01030         */
01031         if( NULL != m_hwndVScrollBar ){ // Aug. 20, 2005 Aroka
01032             DestroyWindow( m_hwndVScrollBar );
01033             m_hwndVScrollBar = NULL;
01034         }
01035         if( NULL != m_hwndHScrollBar ){
01036             DestroyWindow( m_hwndHScrollBar );
01037             m_hwndHScrollBar = NULL;
01038         }
01039         if( NULL != m_hwndSizeBox ){
01040             DestroyWindow( m_hwndSizeBox );
01041             m_hwndSizeBox = NULL;
01042         }
01043         if( NULL != m_pcsbwVSplitBox ){ /* 垂直分割ボックス */
01044             delete m_pcsbwVSplitBox;
01045             m_pcsbwVSplitBox = NULL;
01046         }
01047
01048         if( NULL != m_pcsbwHSplitBox ){ /* 垂直分割ボックス */
01049             delete m_pcsbwHSplitBox;
01050             m_pcsbwHSplitBox = NULL;
01051         }
01052
01053
01054         m_hWnd = NULL;
01055         return 0L;
01056
01057     case MYWM_DOSPLIT:
01058         nPosX = (int)wParam;
01059         nPosY = (int)lParam;
01060 //      MYTRACE( "MYWM_DOSPLIT nPosX=%d nPosY=%d\n", nPosX, nPosY );
01061         ::SendMessage( m_hwndParent, MYWM_DOSPLIT, wParam, lParam );
01062         return 0L;
01063
01064     case MYWM_SETACTIVEPANE:
01065         m_pcEditDoc->SetActivePane( m_nMyIndex );
01066         ::PostMessage( m_hwndParent, MYWM_SETACTIVEPANE, (WPARAM)m_nMyIndex, 0 );
01067         return 0L;
01068
01069     case MYWM_IME_REQUEST:  /* 再変換  by minfu 2002.03.27 */ // 20020331 aroka
01070
01071         //if( (wParam == IMR_RECONVERTSTRING) &&  IsTextSelected() && ( !m_bBeginBoxSelect) ){
01072         //  // lParamにIMEが用意した再変換用構造体のポインタが入っている。
01073         //  return RequestedReconversion((PRECONVERTSTRING)lParam);
01074         //}
01075         // 2002.04.09 switch case に変更  minfu
01076         switch ( wParam ){
01077         case IMR_RECONVERTSTRING:
01078             return SetReconvertStruct((PRECONVERTSTRING)lParam, false);
01079
01080         case IMR_CONFIRMRECONVERTSTRING:
01081             return SetSelectionFromReonvert((PRECONVERTSTRING)lParam, false);
01082
01083         }
01084
01085         return 0L;
01086
01087     // 2007.10.02 nasukoji  マウスクリックにてアクティベートされた時はカーソル位置を移動しない
01088     case WM_MOUSEACTIVATE:
01089         // マウスクリックによりバックグラウンドウィンドウがアクティベートされた
01090         //  2007.10.08 genta オプション追加
01091         if( m_pShareData->m_Common.m_bNoCaretMoveByActivation &&
01092            (! m_pcEditDoc->m_pcEditWnd->IsActiveApp()))
01093         {
01094             m_bActivateByMouse = TRUE;      // マウスによるアクティベート
01095             return MA_ACTIVATEANDEAT;       // アクティベート後イベントを破棄
01096         }
01097
01098         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01099
01100     default:
01101 // << 20020331 aroka 再変換対応 for 95/NT
01102         if( (m_uMSIMEReconvertMsg && (uMsg == m_uMSIMEReconvertMsg))
01103             || (m_uATOKReconvertMsg && (uMsg == m_uATOKReconvertMsg))){
01104         // 2002.04.08 switch case に変更 minfu
01105             switch ( wParam ){
01106             case IMR_RECONVERTSTRING:
01107                 return SetReconvertStruct((PRECONVERTSTRING)lParam, true);
01108
01109             case IMR_CONFIRMRECONVERTSTRING:
01110                 return SetSelectionFromReonvert((PRECONVERTSTRING)lParam, true);
01111
01112             }
01113 //      if( uMsg == m_uMSIMEReconvertMsg || uMsg == m_uATOKReconvertMsg){
01114 //          if( (wParam == IMR_RECONVERTSTRING) &&  IsTextSelected() && ( !m_bBeginBoxSelect) ){
01115 //              // lParamにIMEが用意した再変換用構造体のポインタが入っている。
01116 //              return RequestedReconversionW((PRECONVERTSTRING)lParam);
01117 //          }
01118             return 0L;
01119         }
01120 // >> by aroka
01121
01122         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01123     }
01124 }
01125
01126
01127
01128
01129 void CEditView::OnMove( int x, int y, int nWidth, int nHeight )
01130 {
01131     MoveWindow( m_hWnd, x, y, nWidth, nHeight, TRUE );
01132     return;
01133 }
01134
01135
01136
01137
01138 /* ウィンドウサイズの変更処理 */
01139 void CEditView::OnSize( int cx, int cy )
01140 {
01141     if( NULL == m_hWnd ){
01142         return;
01143     }
01144     if( cx == 0 && cy == 0 ){
01145         return;
01146     }
01147
01148     int nCxHScroll;
01149     int nCyHScroll;
01150     int nCxVScroll;
01151     int nCyVScroll;
01152     int nVSplitHeight;  /* 垂直分割ボックスの高さ */
01153     int nHSplitWidth;   /* 水平分割ボックスの幅 */
01154
01155
01156     nVSplitHeight = 0;  /* 垂直分割ボックスの高さ */
01157     nHSplitWidth = 0;   /* 水平分割ボックスの幅 */
01158
01159     HDC hdc;
01160     nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
01161     nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
01162     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
01163     nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
01164
01165
01166     hdc = ::GetDC( m_hWnd );
01167
01168     /* 垂直分割ボックス */
01169     if( NULL != m_pcsbwVSplitBox ){
01170         nVSplitHeight = 7;
01171         ::MoveWindow( m_pcsbwVSplitBox->m_hWnd, cx - nCxVScroll , 0, nCxVScroll, nVSplitHeight, TRUE );
01172     }
01173     /* 水平分割ボックス */
01174     if( NULL != m_pcsbwHSplitBox ){
01175         nHSplitWidth = 7;
01176         ::MoveWindow( m_pcsbwHSplitBox->m_hWnd,0, cy - nCyHScroll, nHSplitWidth, nCyHScroll, TRUE );
01177     }
01178     /* 垂直スクロールバー */
01179     if( NULL != m_hwndVScrollBar ){
01180         ::MoveWindow( m_hwndVScrollBar, cx - nCxVScroll , 0 + nVSplitHeight, nCxVScroll, cy - nCyVScroll - nVSplitHeight, TRUE );
01181     }
01182     /* 水平スクロールバー */
01183     if( NULL != m_hwndHScrollBar ){
01184         ::MoveWindow( m_hwndHScrollBar, 0 + nHSplitWidth, cy - nCyHScroll, cx - nCxVScroll - nHSplitWidth, nCyHScroll, TRUE );
01185     }
01186
01187     /* サイズボックス */
01188     if( NULL != m_hwndSizeBox ){
01189         ::MoveWindow( m_hwndSizeBox, cx - nCxVScroll, cy - nCyHScroll, nCxHScroll, nCyVScroll, TRUE );
01190     }else{
01191     }
01192
01193
01194     m_nViewCx = cx - nCxVScroll - m_nViewAlignLeft;                                                     /* 表示域の幅 */
01195     m_nViewCy = cy - ((NULL != m_hwndHScrollBar)?nCyHScroll:0) - m_nViewAlignTop;                       /* 表示域の高さ */
01196     m_nViewColNum = m_nViewCx / ( m_nCharWidth  + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );   /* 表示域の桁数 */
01197     m_nViewRowNum = m_nViewCy / ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace );   /* 表示域の行数 */
01198
01199 //1999.12.1 仕様変更
01200 //  /* ウィンドウリサイズ時にキャレット位置へスクロール */
01201 //  MoveCursor( m_nCaretPosX, m_nCaretPosY, TRUE );
01202
01203     /* スクロールバーの状態を更新する */
01204     AdjustScrollBars();
01205
01206     /* 再描画用メモリＢＭＰ */
01207     if( m_hbmpCompatBMP != NULL ){
01208         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );    /* 再描画用メモリＢＭＰ(OLD) */
01209         ::DeleteObject( m_hbmpCompatBMP );
01210     }
01211     m_hbmpCompatBMP = ::CreateCompatibleBitmap( hdc, cx, cy );
01212     m_hbmpCompatBMPOld = (HBITMAP)::SelectObject( m_hdcCompatDC, m_hbmpCompatBMP );
01213     ::ReleaseDC( m_hWnd, hdc );
01214
01215     /* 親ウィンドウのタイトルを更新 */
01216     SetParentCaption(); //  [Q] genta 本当に必要？
01217
01218     return;
01219 }
01220
01221
01226 bool CEditView::IsImeON( void )
01227 {
01228     bool bRet;
01229     HIMC    hIme;
01230     DWORD   conv, sent;
01231
01232     //  From here Nov. 26, 2006 genta
01233     hIme = ImmGetContext( m_hwndParent );
01234     if( ImmGetOpenStatus( hIme ) != FALSE ){
01235         ImmGetConversionStatus( hIme, &conv, &sent );
01236 //#ifdef _DEBUG
01237 //  MYTRACE( "ImeMode = %X\n", conv );
01238 //#endif
01239         if(( conv & IME_CMODE_NOCONVERSION ) == 0 ){
01240             bRet = true;
01241         }
01242         else {
01243             bRet = false;
01244         }
01245     }
01246     else {
01247         bRet = false;
01248     }
01249     ImmReleaseContext( m_hwndParent, hIme );
01250     //  To here Nov. 26, 2006 genta
01251
01252     return bRet;
01253 }
01254
01255
01264 void CEditView::CreateEditCaret( COLORREF crCaret, COLORREF crBack, int nWidth, int nHeight )
01265 {
01266     //
01267     // キャレット用のビットマップを作成する
01268     //
01269     // Note: ウィンドウ互換のメモリ DC 上で PatBlt を用いてキャレット色と背景色を XOR 結合
01270     //       することで，目的のビットマップを得る．
01271     //       ※ 256 色環境では RGB 値を単純に直接演算してもキャレット色を出すための正しい
01272     //          ビットマップ色は得られない．
01273     //       参考: [HOWTO] キャレットの色を制御する方法
01274     //             http://support.microsoft.com/kb/84054/ja
01275     //
01276
01277     HBITMAP hbmpCaret;  // キャレット用のビットマップ
01278
01279     HDC hdc = ::GetDC( m_hWnd );
01280
01281     hbmpCaret = ::CreateCompatibleBitmap( hdc, nWidth, nHeight );
01282     HDC hdcMem = ::CreateCompatibleDC( hdc );
01283     HBITMAP hbmpOld = (HBITMAP)::SelectObject( hdcMem, hbmpCaret );
01284     HBRUSH hbrCaret = ::CreateSolidBrush( crCaret );
01285     HBRUSH hbrBack = ::CreateSolidBrush( crBack );
01286     HBRUSH hbrOld = (HBRUSH)::SelectObject( hdcMem, hbrCaret );
01287     ::PatBlt( hdcMem, 0, 0, nWidth, nHeight, PATCOPY );
01288     ::SelectObject( hdcMem, hbrBack );
01289     ::PatBlt( hdcMem, 0, 0, nWidth, nHeight, PATINVERT );
01290     ::SelectObject( hdcMem, hbrOld );
01291     ::SelectObject( hdcMem, hbmpOld );
01292     ::DeleteObject( hbrCaret );
01293     ::DeleteObject( hbrBack );
01294     ::DeleteDC( hdcMem );
01295
01296     ::ReleaseDC( m_hWnd, hdc );
01297
01298     // 以前のビットマップを破棄する
01299     if( m_hbmpCaret != NULL )
01300         ::DeleteObject( m_hbmpCaret );
01301     m_hbmpCaret = hbmpCaret;
01302
01303     // キャレットを作成する
01304     ::CreateCaret( m_hWnd, hbmpCaret, nWidth, nHeight );
01305     return;
01306 }
01307
01308
01309 /* キャレットの表示・更新 */
01310 void CEditView::ShowEditCaret( void )
01311 {
01312     const char*     pLine;
01313     int             nLineLen;
01314     int             nCaretWidth = 0;
01315     int             nCaretHeight = 0;
01316     int             nIdxFrom;
01317     int             nCharChars;
01318 //  HDC             hdc;
01319 //  const CLayout*  pcLayout;
01320 //  HPEN            hPen, hPenOld;
01321
01322
01323 //if( m_nMyIndex == 0 && m_nCaretPosX == 0 && m_nCaretPosY == 0 ){
01324 //  MYTRACE( "ShowEditCaret() m_nMyIndex=%d m_nCaretWidth=%d\n", m_nMyIndex, m_nCaretWidth );
01325 //}
01326
01327 /*
01328         なんかフレームウィンドウがアクティブでないときに内部的にカーソル移動すると
01329         カーソルがないのに、カーソルがあるということになってしまう
01330         のでアクティブにしてもカーソルが出てこないときがある
01331         フレームウィンドウがアクティブでないときは、カーソルがないことにする
01332 */
01333     if( ::GetActiveWindow() != ::GetParent( m_hwndParent ) ){
01334         m_nCaretWidth = 0;
01335 //      MYTRACE( "アクティブでないのにカーソル作っちゃったから消しちゃった。\n" );
01336         return;
01337     }
01338
01339     /* アクティブなペインを取得 */
01340     if( m_nMyIndex != m_pcEditDoc->GetActivePane() ){
01341         m_nCaretWidth = 0;
01342 //if( m_nMyIndex == 0 && m_nCaretPosX == 0 && m_nCaretPosY == 0 ){
01343 //  MYTRACE( "m_nMyIndex[%s] != m_pcEditDoc->GetActivePane()\n", m_nMyIndex, m_pcEditDoc->GetActivePane() );
01344 //}
01345         return;
01346     }
01347     /* キャレットの幅、高さを決定 */
01348     if( 0 == m_pShareData->m_Common.GetCaretType() ){   /* カーソルのタイプ 0=win 1=dos */
01349         nCaretHeight = m_nCharHeight;                   /* キャレットの高さ */
01350         if( IsInsMode() /* Oct. 2, 2005 genta */ ){
01351             nCaretWidth = 2;
01352         }else{
01353             const CLayout* pcLayout;
01354             nCaretWidth = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
01355             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
01356             if( NULL != pLine ){
01357                 /* 指定された桁に対応する行のデータ内の位置を調べる */
01358                 nIdxFrom = LineColmnToIndex( pcLayout, m_nCaretPosX );
01359                 if( nIdxFrom >= nLineLen ||
01360                     pLine[nIdxFrom] == CR || pLine[nIdxFrom] == LF ||
01361                     pLine[nIdxFrom] == TAB ){
01362                     nCaretWidth = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
01363                 }else{
01364                     // 2005-09-02 D.S.Koba GetSizeOfChar
01365                     nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nIdxFrom );
01366                     if( 0 < nCharChars ){
01367                         nCaretWidth = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) * nCharChars;
01368                     }
01369                 }
01370             }
01371         }
01372     }else
01373     if( 1 == m_pShareData->m_Common.GetCaretType() ){   /* カーソルのタイプ 0=win 1=dos */
01374         if( IsInsMode() /* Oct. 2, 2005 genta */ ){
01375             nCaretHeight = m_nCharHeight / 2;           /* キャレットの高さ */
01376         }else{
01377             nCaretHeight = m_nCharHeight;               /* キャレットの高さ */
01378         }
01379         const CLayout* pcLayout;
01380         nCaretWidth = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
01381         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
01382         if( NULL != pLine ){
01383             /* 指定された桁に対応する行のデータ内の位置を調べる */
01384             nIdxFrom = LineColmnToIndex( pcLayout, m_nCaretPosX );
01385             if( nIdxFrom >= nLineLen ||
01386                 pLine[nIdxFrom] == CR || pLine[nIdxFrom] == LF ||
01387                 pLine[nIdxFrom] == TAB ){
01388                 nCaretWidth = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
01389             }else{
01390                 // 2005-09-02 D.S.Koba GetSizeOfChar
01391                 nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nIdxFrom );
01392                 if( 0 < nCharChars ){
01393                     nCaretWidth = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) * nCharChars;
01394                 }
01395             }
01396         }
01397
01398     }
01399
01400 #if 0
01401     hdc = ::GetDC( m_hWnd );
01402 #endif
01403     //  キャレット色の取得
01404     ColorInfo* ColorInfoArr = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr;
01405     int nCaretColor = ( ColorInfoArr[COLORIDX_CARET_IME].m_bDisp && IsImeON() )? COLORIDX_CARET_IME: COLORIDX_CARET;
01406     COLORREF crCaret = ColorInfoArr[nCaretColor].m_colTEXT;
01407     COLORREF crBack = ColorInfoArr[COLORIDX_TEXT].m_colBACK;
01408
01409     if( m_nCaretWidth == 0 ){
01410         /* キャレットがなかった場合 */
01411         /* キャレットの作成 */
01412         CreateEditCaret( crCaret, crBack, nCaretWidth, nCaretHeight );  // 2006.12.07 ryoji
01413         m_bCaretShowFlag = false; // 2002/07/22 novice
01414     }else{
01415         if( m_nCaretWidth != nCaretWidth || m_nCaretHeight != nCaretHeight ||
01416             m_crCaret != crCaret || m_crBack != crBack ){
01417             /* キャレットはあるが、大きさや色が変わった場合 */
01418             /* 現在のキャレットを削除 */
01419             ::DestroyCaret();
01420
01421             /* キャレットの作成 */
01422             CreateEditCaret( crCaret, crBack, nCaretWidth, nCaretHeight );  // 2006.12.07 ryoji
01423             m_bCaretShowFlag = false; // 2002/07/22 novice
01424         }else{
01425             /* キャレットはあるし、大きさも変わっていない場合 */
01426             /* キャレットを隠す */
01427             HideCaret_( m_hWnd ); // 2002/07/22 novice
01428         }
01429     }
01430     /* キャレットの位置を調整 */
01431     int nPosX = m_nViewAlignLeft + (m_nCaretPosX - m_nViewLeftCol) * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
01432     int nPosY = m_nViewAlignTop  + (m_nCaretPosY - m_nViewTopLine) * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight ) + m_nCharHeight - nCaretHeight;
01433     ::SetCaretPos( nPosX, nPosY );
01434     if ( m_nViewAlignLeft <= nPosX && m_nViewAlignTop <= nPosY ){
01435         /* キャレットの表示 */
01436         ShowCaret_( m_hWnd ); // 2002/07/22 novice
01437     }
01438
01439     m_nCaretWidth = nCaretWidth;
01440     m_nCaretHeight = nCaretHeight;  /* キャレットの高さ */
01441     m_crCaret = crCaret;    //  2006.12.07 ryoji
01442     m_crBack = crBack;      //  2006.12.07 ryoji
01443     SetIMECompFormPos();
01444
01445 #if 0
01446     2002/05/12 YAZAKI ShowEditCaretで仕事をしすぎ。
01447     //2002.02.27 Add By KK アンダーラインのちらつきを低減
01448     if (m_nOldUnderLineY != m_nViewAlignTop  + (m_nCaretPosY - m_nViewTopLine) * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight ) + m_nCharHeight) {
01449         //アンダーラインの描画位置が、前回のアンダーライン描画位置と異なっていたら、アンダーラインを描き直す。
01450         CaretUnderLineOFF(TRUE);
01451         CaretUnderLineON(TRUE);
01452     }
01453
01454     /* ルーラー描画 */
01455     DispRuler( hdc );
01456     ::ReleaseDC( m_hWnd, hdc );
01457 #endif
01458
01459     return;
01460 }
01461
01462
01463
01464
01465
01466 /* 入力フォーカスを受け取ったときの処理 */
01467 void CEditView::OnSetFocus( void )
01468 {
01469 //NG    /* 1999.11.15 */
01470 //NG    ::SetFocus( m_hwndParent );
01471 //NG    ::SetFocus( m_hWnd );
01472
01473     // 2004.04.02 Moca EOFのみのレイアウト行は、0桁目のみ有効.EOFより下の行のある場合は、EOF位置にする
01474     {
01475         int nPosX = m_nCaretPosX;
01476         int nPosY = m_nCaretPosY;
01477         if( GetAdjustCursorPos( &nPosX, &nPosY ) ){
01478             MoveCursor( nPosX, nPosY, FALSE );
01479             m_nCaretPosX_Prev = m_nCaretPosX;
01480         }
01481     }
01482
01483     ShowEditCaret();
01484
01485 //  SetIMECompFormPos();    YAZAKI ShowEditCaretで作業済み
01486     SetIMECompFormFont();
01487
01488     /* ルーラのカーソルをグレーから黒に変更する */
01489     HDC hdc = ::GetDC( m_hWnd );
01490     DispRuler( hdc );
01491     ::ReleaseDC( m_hWnd, hdc );
01492
01493     // 03/02/18 対括弧の強調表示(描画) ai
01494     m_bDrawBracketPairFlag = TRUE;
01495     DrawBracketPair( true );
01496
01497     return;
01498 }
01499
01500
01501
01502
01503
01504 /* 入力フォーカスを失ったときの処理 */
01505 void CEditView::OnKillFocus( void )
01506 {
01507     // 03/02/18 対括弧の強調表示(消去) ai
01508     DrawBracketPair( false );
01509     m_bDrawBracketPairFlag = FALSE;
01510
01511     DestroyCaret();
01512
01513     /* ルーラー描画 */
01514     /* ルーラのカーソルを黒からグレーに変更する */
01515     HDC hdc = ::GetDC( m_hWnd );
01516     DispRuler( hdc );
01517     ::ReleaseDC( m_hWnd, hdc );
01518
01519     /* 辞書Tipが起動されている */
01520     if( 0 == m_dwTipTimer ){
01521         /* 辞書Tipを消す */
01522         m_cTipWnd.Hide();
01523         m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
01524     }
01525
01526     if( m_bHokan ){
01527         m_pcEditDoc->m_cHokanMgr.Hide();
01528         m_bHokan = FALSE;
01529     }
01530
01531     return;
01532 }
01533
01534
01535
01536
01537
01547 int CEditView::OnVScroll( int nScrollCode, int nPos )
01548 {
01549     int nScrollVal = 0;
01550
01551     switch( nScrollCode ){
01552     case SB_LINEDOWN:
01553 //      for( i = 0; i < 4; ++i ){
01554 //          ScrollAtV( m_nViewTopLine + 1 );
01555 //      }
01556         nScrollVal = ScrollAtV( m_nViewTopLine + m_pShareData->m_Common.m_nRepeatedScrollLineNum );
01557         break;
01558     case SB_LINEUP:
01559 //      for( i = 0; i < 4; ++i ){
01560 //          ScrollAtV( m_nViewTopLine - 1 );
01561 //      }
01562         nScrollVal = ScrollAtV( m_nViewTopLine - m_pShareData->m_Common.m_nRepeatedScrollLineNum );
01563         break;
01564     case SB_PAGEDOWN:
01565         nScrollVal = ScrollAtV( m_nViewTopLine + m_nViewRowNum );
01566         break;
01567     case SB_PAGEUP:
01568         nScrollVal = ScrollAtV( m_nViewTopLine - m_nViewRowNum );
01569         break;
01570     case SB_THUMBPOSITION:
01571         nScrollVal = ScrollAtV( nPos );
01572         break;
01573     case SB_THUMBTRACK:
01574         nScrollVal = ScrollAtV( nPos );
01575         break;
01576     case SB_TOP:
01577         nScrollVal = ScrollAtV( 0 );
01578         break;
01579     case SB_BOTTOM:
01580         nScrollVal = ScrollAtV(( m_pcEditDoc->m_cLayoutMgr.GetLineCount() ) - m_nViewRowNum );
01581         break;
01582     default:
01583         break;
01584     }
01585     return nScrollVal;
01586 }
01587
01597 int CEditView::OnHScroll( int nScrollCode, int nPos )
01598 {
01599     int nScrollVal = 0;
01600
01601     m_bRedrawRuler = true; // YAZAKI
01602     switch( nScrollCode ){
01603     case SB_LINELEFT:
01604         nScrollVal = ScrollAtH( m_nViewLeftCol - 4 );
01605         break;
01606     case SB_LINERIGHT:
01607         nScrollVal = ScrollAtH( m_nViewLeftCol + 4 );
01608         break;
01609     case SB_PAGELEFT:
01610         nScrollVal = ScrollAtH( m_nViewLeftCol - m_nViewColNum );
01611         break;
01612     case SB_PAGERIGHT:
01613         nScrollVal = ScrollAtH( m_nViewLeftCol + m_nViewColNum );
01614         break;
01615     case SB_THUMBPOSITION:
01616         nScrollVal = ScrollAtH( nPos );
01617 //      MYTRACE( "nPos=%d\n", nPos );
01618         break;
01619     case SB_THUMBTRACK:
01620         nScrollVal = ScrollAtH( nPos );
01621 //      MYTRACE( "nPos=%d\n", nPos );
01622         break;
01623     case SB_LEFT:
01624         nScrollVal = ScrollAtH( 0 );
01625         break;
01626     case SB_RIGHT:
01627         //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
01628         nScrollVal = ScrollAtH( m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - m_nViewColNum );
01629         break;
01630     }
01631     return nScrollVal;
01632 }
01633
01634
01635
01636 //void CEditView::Draw3dRect( HDC hdc, int x, int y, int cx, int cy,
01637 //  COLORREF clrTopLeft, COLORREF clrBottomRight )
01638 //{
01639 //  return;
01640 //}
01641 //
01642 //void CEditView::FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr )
01643 //{
01644 //  RECT    rc;
01645 //  ::SetBkColor( hdc, clr );
01646 //  ::SetRect( &rc, x, y, x + cx, y + cy );
01647 //  ::ExtTextOut( hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
01648 //  return;
01649 //}
01650
01651 #if 0
01652 /************************************************************************
01653  *
01654  *  関数:   OpenDIB( LPSTR szFile )
01655  *
01656  *  目的:   DIBファイルを開いてメモリDIBを作成します。また、BITMAPINFO、
01657  *  パレットデータ、ビットを含むメモリハンドルを作成します。
01658  *
01659  *  戻り値: DIBを識別するハンドル
01660  *
01661  ************************************************************************/
01662 HANDLE CEditView::OpenDIB ( LPCSTR szFile )
01663 {
01664     unsigned            fh;
01665     BITMAPINFOHEADER    bi;
01666     LPBITMAPINFOHEADER  lpbi;
01667     DWORD               dwLen = 0;
01668     DWORD               dwBits;
01669     HANDLE              hdib;
01670     HANDLE              h;
01671     OFSTRUCT            of;
01672
01673     /* ファイルを開いてDIB情報を読み取る */
01674     fh = OpenFile( szFile, &of, OF_READ );
01675     if( fh == -1 )
01676         return NULL;
01677
01678     hdib = ReadDibBitmapInfo( fh );
01679     if( !hdib )
01680         return NULL;
01681     DibInfo( hdib, &bi );
01682
01683     /* DIBの保持に必要なメモリ量を計算 */
01684     dwBits = bi.biSizeImage;
01685     dwLen  = bi.biSize + (DWORD)PaletteSize( &bi ) + dwBits;
01686
01687     /* DIBを保持するビットマップ情報バッファサイズを増やす */
01688     h = GlobalReAlloc( hdib, dwLen, GHND );
01689     if( !h ){
01690         GlobalFree( hdib );
01691         hdib = NULL;
01692     }
01693     else
01694         hdib = h;
01695     /* ビットを読み取る */
01696     if( hdib ){
01697         lpbi = (LPBITMAPINFOHEADER)GlobalLock( hdib );
01698         lread( fh, (LPSTR)lpbi + (WORD)lpbi->biSize + PaletteSize(lpbi), dwBits );
01699         GlobalUnlock( hdib );
01700     }
01701     _lclose( fh );
01702     return hdib;
01703 }
01704
01705 /************************************************************************
01706  *
01707  *  関数:   ReadDibBitmapInfo( int fh )
01708  *
01709  *  目的:   DIB形式のファイルを読み取り、そのBITMAPINFOの
01710  *  グローバルハンドルを返します。
01711  *  この関数は以前の(BITMAPCOREHEADER)形式と新しい(BITMAPINFOHEADER)形式の
01712  *  両方を処理できますが、返すのはつねに新しいBITMAPINFOです。
01713  *
01714  *   戻り値: ファイル内のDIBのBITMAPINFOを識別するハンドル
01715  *
01716  ************************************************************************/
01717 HANDLE CEditView::ReadDibBitmapInfo ( int fh )
01718 {
01719     DWORD               off;
01720     HANDLE              hbi = NULL;
01721     int                 size;
01722     int                 i;
01723     WORD                nNumColors;
01724
01725     RGBQUAD FAR         *pRgb;
01726     BITMAPINFOHEADER    bi;
01727     BITMAPCOREHEADER    bc;
01728     LPBITMAPINFOHEADER  lpbi;
01729     BITMAPFILEHEADER    bf;
01730     DWORD               dwWidth = 0;
01731     DWORD               dwHeight = 0;
01732     WORD                wPlanes, wBitCount;
01733
01734     if( fh == -1 )
01735         return NULL;
01736
01737     /* ファイルポインタをリセットし、ファイルヘッダーを読み取る */
01738     off = _llseek( fh, 0L, SEEK_CUR );
01739     if( sizeof( bf ) != _lread( fh, (LPSTR)&bf, sizeof( bf ) ) )
01740         return FALSE;
01741
01742     /* RCヘッダーがあるか調べる */
01743     if( !ISDIB( bf.bfType ) ){
01744         bf.bfOffBits = 0L;
01745         _llseek( fh, off, SEEK_SET );
01746     }
01747     if( sizeof( bi ) != _lread( fh, (LPSTR)&bi, sizeof( bi ) ) )
01748         return FALSE;
01749
01750     nNumColors = DibNumColors( &bi );
01751
01752     /*
01753      * 情報ブロックの内容(BITMAPINFOまたはBITMAPCORE)をチェックし、
01754      * それに従って情報を取得する。BITMAPCOREHEADERならば、情報を
01755      * BITMAPINFOHEADER形式のブロックに転送する。
01756      */
01757     switch ( size = (int)bi.biSize ){
01758       case sizeof( BITMAPINFOHEADER ):
01759         break;
01760       case  sizeof( BITMAPCOREHEADER ):
01761
01762         bc = *(BITMAPCOREHEADER*)&bi;
01763
01764         dwWidth     = (DWORD)bc.bcWidth;
01765         dwHeight    = (DWORD)bc.bcHeight;
01766         wPlanes     = bc.bcPlanes;
01767         wBitCount   = bc.bcBitCount;
01768
01769         bi.biSize       = sizeof( BITMAPINFOHEADER );
01770         bi.biWidth      = dwWidth;
01771         bi.biHeight     = dwHeight;
01772         bi.biPlanes     = wPlanes;
01773         bi.biBitCount   = wBitCount;
01774
01775         bi.biCompression    = BI_RGB;
01776         bi.biSizeImage      = 0;
01777         bi.biXPelsPerMeter  = 0;
01778         bi.biYPelsPerMeter  = 0;
01779         bi.biClrUsed        = nNumColors;
01780         bi.biClrImportant   = nNumColors;
01781         _llseek( fh, (LONG)sizeof( BITMAPCOREHEADER ) - sizeof( BITMAPINFOHEADER ), SEEK_CUR );
01782         break;
01783       default:
01784         /* DIBではない */
01785         return NULL;
01786     }
01787     /* 0ならばデフォルト値を設定 */
01788     if( bi.biSizeImage == 0 ){
01789         bi.biSizeImage = WIDTHBYTES( (DWORD)bi.biWidth * bi.biBitCount ) * bi.biHeight;
01790     }
01791     if( bi.biClrUsed == 0 )
01792         bi.biClrUsed = DibNumColors(&bi);
01793     /* BITMAPINFO構造体とカラーテーブルを割り当てる */
01794     hbi = GlobalAlloc( GHND, (LONG)bi.biSize + nNumColors * sizeof( RGBQUAD ) );
01795     if( !hbi )
01796         return NULL;
01797     lpbi = (LPBITMAPINFOHEADER)GlobalLock( hbi );
01798     *lpbi = bi;
01799     /* カラーテーブルを指すポインタを取得 */
01800     pRgb = (RGBQUAD FAR *)( (LPSTR)lpbi + bi.biSize );
01801     if (nNumColors){
01802         if( size == sizeof( BITMAPCOREHEADER ) ){
01803             /*
01804              * 古いカラーテーブル(3バイトのRGBTRIPLE)を新しいカラーテーブル(4バイトのRGBQUAD)に変換
01805              */
01806             _lread( fh, (LPSTR)pRgb, nNumColors * sizeof( RGBTRIPLE ) );
01807             for( i = nNumColors - 1; i >= 0; i-- ){
01808                 RGBQUAD rgb;
01809                 rgb.rgbRed      = ((RGBTRIPLE FAR *)pRgb)[i].rgbtRed;
01810                 rgb.rgbBlue     = ((RGBTRIPLE FAR *)pRgb)[i].rgbtBlue;
01811                 rgb.rgbGreen    = ((RGBTRIPLE FAR *)pRgb)[i].rgbtGreen;
01812                 rgb.rgbReserved = (BYTE)0;
01813                 pRgb[i]         = rgb;
01814             }
01815         }
01816         else
01817             _lread( fh, (LPSTR)pRgb, nNumColors * sizeof( RGBQUAD ) );
01818     }
01819     if( bf.bfOffBits != 0L )
01820         _llseek( fh, off + bf.bfOffBits, SEEK_SET );
01821     GlobalUnlock( hbi );
01822     return hbi;
01823 }
01824
01825
01826 /************************************************************************
01827  *
01828  *  関数:   DibInfo( HANDLE hbi, LPBITMAPINFOHEADER lpbi )
01829  *
01830  *  目的:   CF_DIB形式のメモリブロックに関連付けられているDIB情報を取得します。
01831  *
01832  *  戻り値: TRUE    - 正常に終了した場合
01833  *          FALSE   - それ以外の場合
01834  *
01835  ************************************************************************/
01836 BOOL CEditView::DibInfo( HANDLE hbi, LPBITMAPINFOHEADER lpbi )
01837 {
01838     if( hbi ){
01839         *lpbi = *(LPBITMAPINFOHEADER)GlobalLock( hbi );
01840
01841         /* デフォルトのメンバ設定 */
01842         if( lpbi->biSize != sizeof( BITMAPCOREHEADER ) ){
01843             if( lpbi->biSizeImage == 0L )
01844                 lpbi->biSizeImage =
01845                     WIDTHBYTES( lpbi->biWidth*lpbi->biBitCount ) * lpbi->biHeight;
01846
01847             if( lpbi->biClrUsed == 0L )
01848                 lpbi->biClrUsed = DibNumColors( lpbi );
01849         }
01850         GlobalUnlock( hbi );
01851         return TRUE;
01852     }
01853     return FALSE;
01854 }
01855
01856 /********************************************************************************
01857  *
01858  *  関数:   PaletteSize( VOID FAR * pv )
01859  *
01860  *  目的:   パレットのバイト数を計算します。情報ブロックがBITMAPCOREHEADER型
01861  *          ならば、色数の3倍がパレットサイズになります。それ以外の場合は、
01862  *          色数の4倍がパレットサイズになります。
01863  *
01864  *  戻り値: パレットのバイト数
01865  *
01866  *******************************************************************************/
01867 WORD CEditView::PaletteSize ( VOID FAR * pv )
01868 {
01869     LPBITMAPINFOHEADER lpbi;
01870     WORD        NumColors;
01871     lpbi        = (LPBITMAPINFOHEADER)pv;
01872     NumColors   = DibNumColors(lpbi);
01873
01874     if( lpbi->biSize == sizeof( BITMAPCOREHEADER ) )
01875         return NumColors * sizeof( RGBTRIPLE );
01876     else
01877         return NumColors * sizeof( RGBQUAD );
01878 }
01879
01880
01881
01882
01883
01884 /********************************************************************************
01885  *
01886  *  関数:   DibNumColors( VOID FAR * pv )
01887  *
01888  *  目的:   情報ブロックのBitCountメンバを参照して、DIBの色数を判断します。
01889  *
01890  *  戻り値: DIBの色数
01891  *
01892  *******************************************************************************/
01893 WORD CEditView::DibNumColors ( VOID FAR * pv)
01894 {
01895     int                 bits;
01896     LPBITMAPINFOHEADER lpbi;
01897     LPBITMAPCOREHEADER lpbc;
01898     lpbi = ( (LPBITMAPINFOHEADER)pv );
01899     lpbc = ( (LPBITMAPCOREHEADER)pv );
01900     /*
01901      *  BITMAPINFO形式ヘッダーの場合、パレットのサイズはBITMAPCORE形式の
01902      *  ヘッダーのbiClrUsedが示している。パレットのサイズは、ピクセル当たり
01903      *  のビット数により異なる。
01904      */
01905     if( lpbi->biSize != sizeof( BITMAPCOREHEADER ) ){
01906         if( lpbi->biClrUsed != 0 )
01907             return (WORD)lpbi->biClrUsed;
01908         bits = lpbi->biBitCount;
01909     }
01910     else
01911         bits = lpbc->bcBitCount;
01912
01913     switch ( bits ){
01914         case 1: return 2;
01915         case 4: return 16;
01916         case 8: return 256;
01917         /* 24ビットDIBにはカラーテーブルはない */
01918         default:    return 0;
01919     }
01920 }
01921
01922  /********** 64Kバイト以上の読み書きを行うプライベートルーチン *********/
01923 /************************************************************************
01924  *
01925  *  関数:   lread( int fh, VOID FAR *pv, DWORD ul )
01926  *
01927  *  目的:   データをすべて読み取るまで32Kバイトずつデータを読み取ります。
01928  *
01929  *  戻り値: 0           - 正常に読み取れなかった場合
01930  *  読み取ったバイト数  - それ以外の場合
01931  *
01932  ************************************************************************/
01933 DWORD CEditView::lread( int fh, void* pv, DWORD ul )
01934 {
01935     DWORD   ulT = ul;
01936     BYTE    *hp = (BYTE *)pv;
01937
01938 #define  MAXREAD_BYTES  32768   /* 読み取り処理時の読み取り可能なバイト数 */
01939
01940     while( ul > (DWORD)MAXREAD_BYTES ){
01941         if( _lread( fh, (LPSTR)hp, (WORD)MAXREAD_BYTES ) != MAXREAD_BYTES )
01942             return 0;
01943         ul -= MAXREAD_BYTES;
01944         hp += MAXREAD_BYTES;
01945     }
01946     if( _lread(fh, (LPSTR)hp, (WORD)ul) != (WORD)ul )
01947         return 0;
01948     return ulT;
01949 }
01950
01951
01952 /************************************************************************
01953  * 関数:  PrintBitmap(int , int , int , int , LPCSTR );
01954  *
01955  *  目的:   指定したDIBファイルを読み込んで指定文字桁範囲に伸縮印刷します。
01956  *          印刷位置は現在のフォントサイズに影響されます。
01957  *
01958  *  戻り値: なし
01959  *
01960  ************************************************************************/
01961 void CEditView::PrintBitmap( HDC hdc, int x1, int y1, const char* szFile )
01962 {
01963     HANDLE              hdib;
01964     BITMAPINFOHEADER    bi;
01965     LPBITMAPINFOHEADER  lpbi;
01966     LPSTR               pBuf;
01967
01968     /* DIBファイルを開いてメモリDIBを作成 */
01969     hdib = OpenDIB ( szFile );
01970     if( hdib == NULL ){
01971 //      MYTRACE( " OpenDIB()の実行に失敗  \n" );
01972         return;
01973     }
01974     DibInfo( hdib, &bi );
01975
01976     /* DIBをプリンタDCに伸縮して転送 */
01977     lpbi = (LPBITMAPINFOHEADER)GlobalLock( hdib );
01978     if( !lpbi ){
01979         GlobalFree( (HGLOBAL)hdib );
01980         return ;
01981     }
01982     pBuf = (LPSTR)lpbi + (WORD)lpbi->biSize + PaletteSize( lpbi );
01983     StretchDIBits ( hdc,
01984         x1,
01985         y1,
01986         bi.biWidth,
01987         bi.biHeight,
01988         0,
01989         0,
01990         bi.biWidth,
01991         bi.biHeight,
01992         pBuf,
01993         (LPBITMAPINFO)lpbi,
01994         DIB_RGB_COLORS,
01995         SRCCOPY
01996     );
01997     GlobalUnlock( hdib );
01998     GlobalFree( hdib );
01999     return;
02000 }
02001
02002 #endif
02003
02004
02005
02006
02007
02008
02009
02010
02011 /* 2点を対角とする矩形を求める */
02012 void CEditView::TwoPointToRect(
02013         RECT*   prcRect,
02014     int     nLineFrom,
02015     int     nColmFrom,
02016     int     nLineTo,
02017     int     nColmTo
02018 )
02019 {
02020     if( nLineFrom < nLineTo ){
02021         prcRect->top    = nLineFrom;
02022         prcRect->bottom = nLineTo;
02023     }else{
02024         prcRect->top    = nLineTo;
02025         prcRect->bottom = nLineFrom;
02026     }
02027     if( nColmFrom < nColmTo ){
02028         prcRect->left   = nColmFrom;
02029         prcRect->right  = nColmTo;
02030     }else{
02031         prcRect->left   = nColmTo;
02032         prcRect->right  = nColmFrom;
02033     }
02034     return;
02035
02036 }
02037
02038 #if 0
02039 /* デバッグ用 リージョン矩形のダンプ */
02040 void CEditView::TraceRgn( HRGN hrgn )
02041 {
02042 //  unsigned int    i;
02043     char*           pBuf;
02044     int             nRgnDataSize;
02045     RGNDATA*        pRgnData;
02046     RECT*           pRect;
02047     nRgnDataSize = ::GetRegionData( hrgn, 0, NULL );
02048     pBuf = new char[nRgnDataSize];
02049     pRgnData = (RGNDATA*)pBuf;
02050     nRgnDataSize = ::GetRegionData( hrgn, nRgnDataSize, pRgnData );
02051     pRect = (RECT*)&pRgnData->Buffer[0];
02052 //  if( 0 < pRgnData->rdh.nCount ){
02053 //      m_cShareData.TraceOut( "---------\n" );;
02054 //      for( i = 0; i < pRgnData->rdh.nCount; ++i ){
02055 //          m_cShareData.TraceOut( "\t(%d, %d, %d, %d \n", pRect[i].left, pRect[i].right, pRect[i].top, pRect[i].bottom );;
02056 //      }
02057 //  }
02058     delete [] pBuf;
02059     return;
02060 }
02061 #endif //#if 0
02062
02063
02064
02065
02070 void CEditView::DrawSelectArea( void )
02071 {
02072     if( !m_bDrawSWITCH ){
02073         return;
02074     }
02075
02076     int         nFromLine;
02077     int         nFromCol;
02078     int         nToLine;
02079     int         nToCol;
02080     int         nLineNum;
02081
02082     m_bDrawSelectArea = TRUE;   // 2002/12/13 ai
02083
02084     // 2006.10.01 Moca 重複コード統合
02085     HDC         hdc = ::GetDC( m_hWnd );
02086     HBRUSH      hBrush = ::CreateSolidBrush( SELECTEDAREA_RGB );
02087     HBRUSH      hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
02088     int         nROP_Old = ::SetROP2( hdc, SELECTEDAREA_ROP2 );
02089
02090 //  MYTRACE( "DrawSelectArea()  m_bBeginBoxSelect=%s\n", m_bBeginBoxSelect?"TRUE":"FALSE" );
02091     if( m_bBeginBoxSelect ){        /* 矩形範囲選択中 */
02092         // 2001.12.21 hor 矩形エリアにEOFがある場合、RGN_XORで結合すると
02093         // EOF以降のエリアも反転してしまうので、この場合はRedrawを使う
02094         // 2002.02.16 hor ちらつきを抑止するためEOF以降のエリアが反転したらもう一度反転して元に戻すことにする
02095         //if((m_nViewTopLine+m_nViewRowNum+1>=m_pcEditDoc->m_cLayoutMgr.GetLineCount()) &&
02096         //   (m_nSelectLineTo+1 >= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ||
02097         //  m_nSelectLineToOld+1 >= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ) ) {
02098         //  Redraw();
02099         //  return;
02100         //}
02101
02102         const int nCharWidth = m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace;
02103         const int nCharHeight = m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace;
02104
02105         RECT  rcOld;
02106         RECT  rcNew;
02107         HRGN  hrgnOld = NULL;
02108         HRGN  hrgnNew = NULL;
02109         HRGN  hrgnDraw = NULL;
02110
02111         /* 2点を対角とする矩形を求める */
02112         TwoPointToRect(
02113             &rcOld,
02114             m_nSelectLineFromOld,   /* 範囲選択開始行 */
02115             m_nSelectColmFromOld,   /* 範囲選択開始桁 */
02116             m_nSelectLineToOld,     /* 範囲選択終了行 */
02117             m_nSelectColmToOld      /* 範囲選択終了桁 */
02118         );
02119         if( rcOld.left  < m_nViewLeftCol ){
02120             rcOld.left = m_nViewLeftCol;
02121         }
02122         if( rcOld.right < m_nViewLeftCol ){
02123             rcOld.right = m_nViewLeftCol;
02124         }
02125         if( rcOld.right > m_nViewLeftCol + m_nViewColNum + 1 ){
02126             rcOld.right = m_nViewLeftCol + m_nViewColNum + 1;
02127         }
02128         if( rcOld.top < m_nViewTopLine ){
02129             rcOld.top = m_nViewTopLine;
02130         }
02131         if( rcOld.bottom > m_nViewTopLine + m_nViewRowNum ){
02132             rcOld.bottom = m_nViewTopLine + m_nViewRowNum;
02133         }
02134         rcOld.left      = (m_nViewAlignLeft - m_nViewLeftCol * nCharWidth) + rcOld.left  * nCharWidth;
02135         rcOld.right     = (m_nViewAlignLeft - m_nViewLeftCol * nCharWidth) + rcOld.right * nCharWidth;
02136         rcOld.top       = ( rcOld.top - m_nViewTopLine ) * nCharHeight + m_nViewAlignTop;
02137         rcOld.bottom    = ( rcOld.bottom + 1 - m_nViewTopLine ) * nCharHeight + m_nViewAlignTop;
02138         hrgnOld = ::CreateRectRgnIndirect( &rcOld );
02139
02140         /* 2点を対角とする矩形を求める */
02141         TwoPointToRect(
02142             &rcNew,
02143             m_nSelectLineFrom,      /* 範囲選択開始行 */
02144             m_nSelectColmFrom,      /* 範囲選択開始桁 */
02145             m_nSelectLineTo,        /* 範囲選択終了行 */
02146             m_nSelectColmTo         /* 範囲選択終了桁 */
02147         );
02148         if( rcNew.left  < m_nViewLeftCol ){
02149             rcNew.left = m_nViewLeftCol;
02150         }
02151         if( rcNew.right < m_nViewLeftCol ){
02152             rcNew.right = m_nViewLeftCol;
02153         }
02154         if( rcNew.right > m_nViewLeftCol + m_nViewColNum + 1 ){
02155             rcNew.right = m_nViewLeftCol + m_nViewColNum + 1;
02156         }
02157         if( rcNew.top < m_nViewTopLine ){
02158             rcNew.top = m_nViewTopLine;
02159         }
02160         if( rcNew.bottom > m_nViewTopLine + m_nViewRowNum ){
02161             rcNew.bottom = m_nViewTopLine + m_nViewRowNum;
02162         }
02163         rcNew.left      = (m_nViewAlignLeft - m_nViewLeftCol * nCharWidth) + rcNew.left  * nCharWidth;
02164         rcNew.right     = (m_nViewAlignLeft - m_nViewLeftCol * nCharWidth) + rcNew.right * nCharWidth;
02165         rcNew.top       = (rcNew.top - m_nViewTopLine) * nCharHeight + m_nViewAlignTop;
02166         rcNew.bottom    = (rcNew.bottom + 1 - m_nViewTopLine) * nCharHeight + m_nViewAlignTop;
02167         hrgnNew = ::CreateRectRgnIndirect( &rcNew );
02168
02169         // 矩形作画。
02170         {
02171             /* ::CombineRgn()の結果を受け取るために、適当なリージョンを作る */
02172             hrgnDraw = ::CreateRectRgnIndirect( &rcNew );
02173
02174             /* 旧選択矩形と新選択矩形のリージョンを結合し､ 重なりあう部分だけを除去します */
02175             if( NULLREGION != ::CombineRgn( hrgnDraw, hrgnOld, hrgnNew, RGN_XOR ) ){
02176
02177                 // 2002.02.16 hor
02178                 // 結合後のエリアにEOFが含まれる場合はEOF以降の部分を除去します
02179                 // 2006.10.01 Moca リーソースリークを修正したら、チラつくようになったため、
02180                 // 抑えるために EOF以降をリージョンから削除して1度の作画にする
02181
02182                 // 2006.10.01 Moca Start EOF位置計算をGetEndLayoutPosに書き換え。
02183                 int  nLastLen;
02184                 int  nLastLine;
02185                 m_pcEditDoc->m_cLayoutMgr.GetEndLayoutPos( nLastLen, nLastLine );
02186                 // 2006.10.01 Moca End
02187                 if(m_nSelectLineFrom>=nLastLine || m_nSelectLineTo>=nLastLine ||
02188                     m_nSelectLineFromOld>=nLastLine || m_nSelectLineToOld>=nLastLine){
02189                     //  Jan. 24, 2004 genta nLastLenは物理桁なので変換必要
02190                     //  最終行にTABが入っていると反転範囲が不足する．
02191                     //  2006.10.01 Moca GetEndLayoutPosで処理するためColumnToIndexは不要に。
02192                     rcNew.left = m_nViewAlignLeft + (m_nViewLeftCol + nLastLen) * nCharWidth;
02193                     rcNew.right = m_nViewAlignLeft + m_nViewCx;
02194                     rcNew.top = (nLastLine - m_nViewTopLine) * nCharHeight + m_nViewAlignTop;
02195                     rcNew.bottom = rcNew.top + nCharHeight;
02196                     // 2006.10.01 Moca GDI(リージョン)リソースリーク修正
02197                     HRGN hrgnEOFNew = ::CreateRectRgnIndirect( &rcNew );
02198                     ::CombineRgn( hrgnDraw, hrgnDraw, hrgnEOFNew, RGN_DIFF );
02199                     ::DeleteObject( hrgnEOFNew );
02200                 }
02201                 ::PaintRgn( hdc, hrgnDraw );
02202             }
02203         }
02204
02206         /* デバッグ用 リージョン矩形のダンプ */
02207 //@@        TraceRgn( hrgnDraw );
02208
02209
02210         if( NULL != hrgnDraw ){
02211             ::DeleteObject( hrgnDraw );
02212         }
02213         if( NULL != hrgnNew ){
02214             ::DeleteObject( hrgnNew );
02215         }
02216         if( NULL != hrgnOld ){
02217             ::DeleteObject( hrgnOld );
02218         }
02219     }else{
02220
02221         /* 現在描画されている範囲と始点が同じ */
02222         if( m_nSelectLineFrom == m_nSelectLineFromOld &&
02223             m_nSelectColmFrom  == m_nSelectColmFromOld ){
02224             /* 範囲が後方に拡大された */
02225             if( m_nSelectLineTo > m_nSelectLineToOld ||
02226                (m_nSelectLineTo == m_nSelectLineToOld &&
02227                 m_nSelectColmTo > m_nSelectColmToOld ) ){
02228                 nFromLine   = m_nSelectLineToOld;
02229                 nFromCol    = m_nSelectColmToOld;
02230                 nToLine     = m_nSelectLineTo;
02231                 nToCol      = m_nSelectColmTo;
02232             }else{
02233                 nFromLine   = m_nSelectLineTo;
02234                 nFromCol    = m_nSelectColmTo;
02235                 nToLine     = m_nSelectLineToOld;
02236                 nToCol      = m_nSelectColmToOld;
02237             }
02238             for( nLineNum = nFromLine; nLineNum <= nToLine; ++nLineNum ){
02239                 if( nLineNum >= m_nViewTopLine && nLineNum <= m_nViewTopLine + m_nViewRowNum + 1 ){
02240                     DrawSelectAreaLine( hdc, nLineNum, nFromLine, nFromCol, nToLine, nToCol );
02241                 }
02242             }
02243         }else
02244         if( m_nSelectLineTo == m_nSelectLineToOld &&
02245             m_nSelectColmTo  == m_nSelectColmToOld ){
02246             /* 範囲が前方に拡大された */
02247             if( m_nSelectLineFrom < m_nSelectLineFromOld ||
02248                (m_nSelectLineFrom == m_nSelectLineFromOld &&
02249                 m_nSelectColmFrom < m_nSelectColmFromOld ) ){
02250                 nFromLine   = m_nSelectLineFrom;
02251                 nFromCol    = m_nSelectColmFrom;
02252                 nToLine     = m_nSelectLineFromOld;
02253                 nToCol      = m_nSelectColmFromOld;
02254             }else{
02255                 nFromLine   = m_nSelectLineFromOld;
02256                 nFromCol    = m_nSelectColmFromOld;
02257                 nToLine     = m_nSelectLineFrom;
02258                 nToCol      = m_nSelectColmFrom;
02259             }
02260             for( nLineNum = nFromLine; nLineNum <= nToLine; ++nLineNum ){
02261                 if( nLineNum >= m_nViewTopLine && nLineNum <= m_nViewTopLine + m_nViewRowNum + 1 ){
02262                     DrawSelectAreaLine( hdc, nLineNum, nFromLine, nFromCol, nToLine, nToCol );
02263                 }
02264             }
02265         }else{
02266             nFromLine       = m_nSelectLineFromOld;
02267             nFromCol        = m_nSelectColmFromOld;
02268             nToLine         = m_nSelectLineToOld;
02269             nToCol          = m_nSelectColmToOld;
02270             for( nLineNum   = nFromLine; nLineNum <= nToLine; ++nLineNum ){
02271                 if( nLineNum >= m_nViewTopLine && nLineNum <= m_nViewTopLine + m_nViewRowNum + 1 ){
02272                     DrawSelectAreaLine( hdc, nLineNum, nFromLine, nFromCol, nToLine, nToCol );
02273                 }
02274             }
02275             nFromLine   = m_nSelectLineFrom;
02276             nFromCol    = m_nSelectColmFrom;
02277             nToLine     = m_nSelectLineTo;
02278             nToCol      = m_nSelectColmTo;
02279             for( nLineNum = nFromLine; nLineNum <= nToLine; ++nLineNum ){
02280                 if( nLineNum >= m_nViewTopLine && nLineNum <= m_nViewTopLine + m_nViewRowNum + 1 ){
02281                     DrawSelectAreaLine( hdc, nLineNum, nFromLine, nFromCol, nToLine, nToCol );
02282                 }
02283             }
02284         }
02285     }
02286     // 2006.10.01 Moca 重複コード統合
02287     ::SetROP2( hdc, nROP_Old );
02288     ::SelectObject( hdc, hBrushOld );
02289     ::DeleteObject( hBrush );
02290     ::ReleaseDC( m_hWnd, hdc );
02291     //  Jul. 9, 2005 genta 選択領域の情報を表示
02292     PrintSelectionInfoMsg();
02293     return;
02294 }
02295
02296
02297
02298
02314 void CEditView::DrawSelectAreaLine(
02315         HDC hdc, int nLineNum, int nFromLine, int nFromCol, int nToLine, int nToCol
02316 )
02317 {
02318 //  MYTRACE( "CEditView::DrawSelectAreaLine()\n" );
02319     RECT            rcClip;
02320     int             nSelectFrom;    // 描画行の選択開始桁位置
02321     int             nSelectTo;      // 描画行の選択開始終了位置
02322
02323     if( nFromLine == nToLine ){
02324         nSelectFrom = nFromCol;
02325         nSelectTo   = nToCol;
02326     }else{
02327         // 2006.03.29 Moca 行末までの長さを求める位置を上からここに移動
02328         int nPosX = 0;
02329         const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNum );
02330         CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
02331         while( !it.end() ){
02332             it.scanNext();
02333             if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
02334                 nPosX ++;
02335                 break;
02336             }
02337             // 2006.03.28 Moca 画面外まで求めたら打ち切る
02338             if( it.getColumn() > m_nViewLeftCol + m_nViewColNum ){
02339 #ifdef _DEBUG
02340                 TCHAR szHoge[1024];
02341                 wsprintf( szHoge, "break %d > %d  len=%d\n", it.getColumn(),
02342                     m_nViewLeftCol + m_nViewColNum, pcLayout->GetLengthWithoutEOL() );
02343                 ::OutputDebugString( szHoge );
02344 #endif
02345                 break;
02346             }
02347             it.addDelta();
02348         }
02349         nPosX += it.getColumn();
02350
02351         if( nLineNum == nFromLine ){
02352             nSelectFrom = nFromCol;
02353             nSelectTo   = nPosX;
02354         }else
02355         if( nLineNum == nToLine ){
02356             nSelectFrom = pcLayout ? pcLayout->GetIndent() : 0;
02357             nSelectTo   = nToCol;
02358         }else{
02359             nSelectFrom = pcLayout ? pcLayout->GetIndent() : 0;
02360             nSelectTo   = nPosX;
02361         }
02362         // 2006.05.24 Mocaフリーカーソル選択(選択開始/終了行)で
02363         // To < From になることがある。必ず From < To になるように入れ替える。
02364         if( nSelectTo < nSelectFrom ){
02365             int t = nSelectFrom;
02366             nSelectFrom = nSelectTo;
02367             nSelectTo = t;
02368         }
02369     }
02370
02371     // 2006.03.28 Moca ウィンドウ幅が大きいと正しく反転しない問題を修正
02372     if( nSelectFrom < m_nViewLeftCol ){
02373         nSelectFrom = m_nViewLeftCol;
02374     }
02375     int     nLineHeight = m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace;
02376     int     nCharWidth = m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace;
02377     rcClip.left     = (m_nViewAlignLeft - m_nViewLeftCol * nCharWidth) + nSelectFrom * nCharWidth;
02378     rcClip.right    = (m_nViewAlignLeft - m_nViewLeftCol * nCharWidth) + nSelectTo   * nCharWidth;
02379     rcClip.top      = (nLineNum - m_nViewTopLine) * nLineHeight + m_nViewAlignTop;
02380     rcClip.bottom   = rcClip.top + nLineHeight;
02381     if( rcClip.right > m_nViewAlignLeft + m_nViewCx ){
02382         rcClip.right = m_nViewAlignLeft + m_nViewCx;
02383     }
02384     //  必要なときだけ。
02385     if ( rcClip.right != rcClip.left ){
02386         m_cUnderLine.CaretUnderLineOFF( TRUE ); //  YAZAKI
02387
02388         // 2006.03.28 Moca 表示域内のみ処理する
02389         if( nSelectFrom <= m_nViewLeftCol + m_nViewColNum && m_nViewLeftCol < nSelectTo ){
02390             HRGN hrgnDraw = ::CreateRectRgn( rcClip.left, rcClip.top, rcClip.right, rcClip.bottom );
02391             ::PaintRgn( hdc, hrgnDraw );
02392             ::DeleteObject( hrgnDraw );
02393         }
02394     }
02395
02396 //  ::Rectangle( hdc, rcClip.left, rcClip.top, rcClip.right + 1, rcClip.bottom + 1);
02397 //  ::FillRect( hdc, &rcClip, hBrushTextCol );
02398
02399 //  //  /* デバッグモニタに出力 */
02400 //  m_cShareData.TraceOut( "DrawSelectAreaLine() rcClip.left=%d, rcClip.top=%d, rcClip.right=%d, rcClip.bottom=%d\n", rcClip.left, rcClip.top, rcClip.right, rcClip.bottom );
02401
02402     return;
02403 }
02404
02405
02406
02407
02408
02409 /* テキストが選択されているか */
02410 // 2002/03/29 Azumaiya
02411 // インライン関数に変更(ヘッダに記述)。
02412 /*BOOL CEditView::IsTextSelected( void )
02413 {
02414     if(
02415         m_nSelectLineFrom   == -1 ||
02416         m_nSelectLineTo     == -1 ||
02417         m_nSelectColmFrom   == -1 ||
02418         m_nSelectColmTo     == -1
02419     )
02420     {
02421 //  if( m_nSelectLineFrom == m_nSelectLineTo &&
02422 //      m_nSelectColmFrom  == m_nSelectColmTo ){
02423         return FALSE;
02424     }
02425     return TRUE;
02426
02427 //  return ~(m_nSelectLineFrom|m_nSelectLineTo|m_nSelectColmFrom|m_nSelectColmTo) >> 31;
02428 }*/
02429
02430
02431 /* テキストの選択中か */
02432 // 2002/03/29 Azumaiya
02433 // インライン関数に変更(ヘッダに記述)。
02434 /*BOOL CEditView::IsTextSelecting( void )
02435 {
02436     if( m_bBeginSelect ||
02437         IsTextSelected()
02438     ){
02439 //      MYTRACE( "m_bBeginSelect=%d IsTextSelected()=%d TRUE==IsTextSelecting()\n", m_bBeginSelect, IsTextSelected() );
02440         return TRUE;
02441     }
02442 //  MYTRACE( "m_bBeginSelect=%d IsTextSelected()=%d FALSE==IsTextSelecting()\n", m_bBeginSelect, IsTextSelected() );
02443     return FALSE;
02444
02445 //  return m_bSelectingLock|IsTextSelected();
02446 }*/
02447
02448
02449 /* フォントの変更 */
02450 void CEditView::SetFont( void )
02451 {
02452     HDC         hdc;
02453     HFONT       hFontOld;
02454     TEXTMETRIC  tm;
02455     int         i;
02456     SIZE        sz;
02457
02458     hdc = ::GetDC( m_hWnd );
02459     hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN );
02460 //  hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN_FAT );
02461     ::GetTextMetrics( hdc, &tm );
02462
02463
02464 // 1999.12.9
02465 //  m_nCharWidth = tm.tmAveCharWidth - 1;
02466 //  m_nCharHeight = tm.tmHeight + tm.tmExternalLeading;
02467     /* 文字の大きさを調べる */
02468 // 2000.2.8
02469 //  ::GetTextExtentPoint32( hdc, "X", 1, &sz );
02470 //  m_nCharHeight = sz.cy;
02471 //  m_nCharWidth = sz.cx;
02472     ::GetTextExtentPoint32( hdc, "大", 2, &sz );
02473     m_nCharHeight = sz.cy;
02474     m_nCharWidth = sz.cx / 2;
02475
02476
02477 // 行の高さを2の倍数にする
02478 //  if( ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace ) % 2 ){
02479 //      ++m_nCharHeight;
02480 //  }
02481
02482     m_nViewColNum = m_nViewCx / ( m_nCharWidth  + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );   /* 表示域の桁数 */
02483     m_nViewRowNum = m_nViewCy / ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace );   /* 表示域の行数 */
02484     /* 行番号表示に必要な幅を設定 */
02485     DetectWidthOfLineNumberArea( FALSE );
02486     /* 文字列描画用文字幅配列 */
02487     for( i = 0; i < ( sizeof(m_pnDx) / sizeof(m_pnDx[0]) ); ++i ){
02488         m_pnDx[i] = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
02489     }
02490     ::SelectObject( hdc, hFontOld );
02491     ::ReleaseDC( m_hWnd, hdc );
02492     ::InvalidateRect( m_hWnd, NULL, TRUE );
02493 //  2002/05/12 YAZAKI 不要と思われたので。
02494 //  if( m_nCaretWidth == 0 ){   /* キャレットがなかった場合 */
02495 //  }else{
02496 //      OnKillFocus();
02497 //      OnSetFocus();
02498 //  }
02499     //  Oct. 11, 2002 genta IMEのフォントも変更
02500     SetIMECompFormFont();
02501     return;
02502 }
02503
02504
02505
02506 /* 行番号表示に必要な桁数を計算 */
02507 int CEditView::DetectWidthOfLineNumberArea_calculate( void )
02508 {
02509     int         i;
02510     int         nAllLines;
02511     int         nWork;
02512     if( m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF ){ /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
02513         nAllLines = m_pcEditDoc->m_cDocLineMgr.GetLineCount();
02514     }else{
02515         nAllLines = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
02516     }
02517     if( 0 < nAllLines ){
02518         nWork = 100;
02519         for( i = 3; i < 12; ++i ){
02520             if( nWork > nAllLines ){    // Oct. 18, 2003 genta 式を整理
02521                 break;
02522             }
02523             nWork *= 10;
02524         }
02525     }else{
02526         //  2003.09.11 wmlhq 行番号が1桁のときと幅を合わせる
02527         i = 3;
02528     }
02529     return i;
02530
02531 }
02532
02533
02534 /*
02535 行番号表示に必要な幅を設定幅が変更された場合はTRUEを返す
02536 */
02537 BOOL CEditView::DetectWidthOfLineNumberArea( BOOL bRedraw )
02538 {
02539     int             i;
02540     PAINTSTRUCT     ps;
02541     HDC             hdc;
02542 //  int             nAllLines;
02543 //  int             nWork;
02544     int             m_nViewAlignLeftNew;
02545     int             nCxVScroll;
02546     RECT            rc;
02547
02548     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_GYOU].m_bDisp ){
02549         /* 行番号表示に必要な桁数を計算 */
02550         i = DetectWidthOfLineNumberArea_calculate();
02551         m_nViewAlignLeftNew = ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) * (i + 1);    /* 表示域の左端座標 */
02552         m_nViewAlignLeftCols = i + 1;
02553     }else{
02554         m_nViewAlignLeftNew = 8;
02555         m_nViewAlignLeftCols = 0;
02556     }
02557     //  Sep 18, 2002 genta
02558     m_nViewAlignLeftNew += m_pShareData->m_Common.m_nLineNumRightSpace;
02559     if( m_nViewAlignLeftNew != m_nViewAlignLeft ){
02560         m_nViewAlignLeft = m_nViewAlignLeftNew;
02561         ::GetClientRect( m_hWnd, &rc );
02562         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
02563         m_nViewCx = (rc.right - rc.left) - nCxVScroll - m_nViewAlignLeft;   /* 表示域の幅 */
02564
02565
02566         if( bRedraw ){
02567             /* 再描画 */
02568             hdc = ::GetDC( m_hWnd );
02569             ps.rcPaint.left = 0;
02570             ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
02571             ps.rcPaint.top = 0;
02572             ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
02573 //          OnKillFocus();
02574             m_cUnderLine.Lock();
02575             OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
02576             m_cUnderLine.UnLock();
02577 //          OnSetFocus();
02578 //          DispRuler( hdc );
02579             ShowEditCaret();
02580             ::ReleaseDC( m_hWnd, hdc );
02581         }
02582         m_bRedrawRuler = true;
02583         return TRUE;
02584     }else{
02585         return FALSE;
02586     }
02587 }
02588
02589
02590
02591
02592
02593 /* スクロールバーの状態を更新する */
02594 void CEditView::AdjustScrollBars( void )
02595 {
02596     if( !m_bDrawSWITCH ){
02597         return;
02598     }
02599
02600
02601     int         nAllLines;
02602     int         nVScrollRate;
02603     SCROLLINFO  si;
02604 //  int         nNowPos;
02605
02606     if( NULL != m_hwndVScrollBar ){
02607         /* 垂直スクロールバー */
02608         /* nAllLines / nVScrollRate < 65535 となる整数nVScrollRateを求める */
02609         nAllLines = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
02610         nAllLines+=2;
02611         nVScrollRate = 1;
02612         while( nAllLines / nVScrollRate > 65535 ){
02613             ++nVScrollRate;
02614         }
02615         si.cbSize = sizeof( si );
02616         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
02617         si.nMin  = 0;
02618         si.nMax  = nAllLines / nVScrollRate - 1;    /* 全行数 */
02619         si.nPage = m_nViewRowNum / nVScrollRate;    /* 表示域の行数 */
02620         si.nPos  = m_nViewTopLine / nVScrollRate;   /* 表示域の一番上の行(0開始) */
02621         si.nTrackPos = nVScrollRate;
02622         ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
02623         m_nVScrollRate = nVScrollRate;              /* 垂直スクロールバーの縮尺 */
02624
02625         //  Nov. 16, 2002 genta
02626         //  縦スクロールバーがDisableになったときは必ず全体が画面内に収まるように
02627         //  スクロールさせる
02628         //  2005.11.01 aroka 判定条件誤り修正 (バーが消えてもスクロールしない)
02629         if( m_nViewRowNum >= nAllLines ){
02630             ScrollAtV( 0 );
02631         }
02632     }
02633     if( NULL != m_hwndHScrollBar ){
02634         si.cbSize = sizeof( si );
02635         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
02636
02637 //@@        ::GetScrollInfo( m_hwndHScrollBar, SB_CTL, &si );
02638 //@@        if( si.nMax == m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - 1
02639 //@@         && si.nPage == (UINT)m_nViewColNum
02640 //@@         && si.nPos  == m_nViewLeftCol
02641 //@@       /*&& si.nTrackPos == 1*/ ){
02642 //@@        }else{
02643             /* 水平スクロールバー */
02644 //          si.cbSize = sizeof( si );
02645 //          si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
02646             si.nMin  = 0;
02647             //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
02648             si.nMax  = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - 1;
02649             si.nPage = m_nViewColNum;       /* 表示域の桁数 */
02650             si.nPos  = m_nViewLeftCol;      /* 表示域の一番左の桁(0開始) */
02651             si.nTrackPos = 1;
02652             ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
02653         //  2006.1.28 aroka 判定条件誤り修正 (バーが消えてもスクロールしない)
02654         if( m_nViewColNum >= m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() ){
02655             ScrollAtH( 0 );
02656         }
02657 //@@        }
02658     }
02659
02660     return;
02661 }
02662
02684 void CEditView::MoveCursorSelecting( int nWk_CaretPosX, int nWk_CaretPosY, BOOL bSelect, int nCaretMarginRate )
02685 {
02686     if( bSelect ){
02687         if( !IsTextSelected() ){    /* テキストが選択されているか */
02688             /* 現在のカーソル位置から選択を開始する */
02689             BeginSelectArea();
02690         }
02691     }else{
02692         if( IsTextSelected() ){ /* テキストが選択されているか */
02693             /* 現在の選択範囲を非選択状態に戻す */
02694             DisableSelectArea( TRUE );
02695         }
02696     }
02697     MoveCursor( nWk_CaretPosX, nWk_CaretPosY, TRUE, nCaretMarginRate ); // 2007.08.22 ryoji nCaretMarginRateが使われていなかった
02698     m_nCaretPosX_Prev = m_nCaretPosX;
02699     if( bSelect ){
02700         /*  現在のカーソル位置によって選択範囲を変更．
02701
02702             2004.04.02 Moca
02703             キャレット位置が不正だった場合にMoveCursorの移動結果が
02704             引数で与えた座標とは異なることがあるため，
02705             nPosX, nPosYの代わりに実際の移動結果を使うように．
02706         */
02707         ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
02708     }
02709
02710 }
02711
02712
02713
02714
02738 int CEditView::MoveCursor( int nWk_CaretPosX, int nWk_CaretPosY, BOOL bScroll, int nCaretMarginRate )
02739 {
02740
02741     /* スクロール処理 */
02742     int     nScrollRowNum = 0;
02743     int     nScrollColNum = 0;
02744     RECT    rcScrol;
02745     RECT    rcClip;
02746     RECT    rcClip2;
02747 //  int     nIndextY = 8;
02748     int     nCaretMarginY;
02749     HDC     hdc;
02750 //  HPEN    hPen, hPenOld;
02751     int     nScrollMarginRight;
02752     int     nScrollMarginLeft;
02753
02754     if( 0 >= m_nViewColNum ){
02755         return 0;
02756     }
02757     hdc = ::GetDC( m_hWnd );
02758
02759     /* カーソル行アンダーラインのOFF */
02760 //  if (IsTextSelected()) { //2002.02.27 Add By KK アンダーラインのちらつきを低減 - ここではテキスト選択時のみアンダーラインを消す。
02761         m_cUnderLine.CaretUnderLineOFF( bScroll );  //  YAZAKI
02762 //  }   2002/04/04 YAZAKI 半ページスクロール時にアンダーラインが残ったままスクロールしてしまう問題に対処。
02763
02764     if( m_bBeginSelect ){   /* 範囲選択中 */
02765         nCaretMarginY = 0;
02766     }else{
02767         //  2001/10/20 novice
02768         nCaretMarginY = m_nViewRowNum / nCaretMarginRate;
02769         if( 1 > nCaretMarginY ){
02770             nCaretMarginY = 1;
02771         }
02772     }
02773     // 2004.04.02 Moca 行だけ有効な座標に修正するのを厳密に処理する
02774     GetAdjustCursorPos( &nWk_CaretPosX, &nWk_CaretPosY );
02775
02776
02777     /* 水平スクロール量（文字数）の算出 */
02778     nScrollColNum = 0;
02779     nScrollMarginRight = 4;
02780     nScrollMarginLeft = 4;
02781     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
02782     if( m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() > m_nViewColNum &&
02783         nWk_CaretPosX > m_nViewLeftCol + m_nViewColNum - nScrollMarginRight ){
02784         nScrollColNum =
02785             ( m_nViewLeftCol + m_nViewColNum - nScrollMarginRight ) - nWk_CaretPosX;
02786     }else
02787     if( 0 < m_nViewLeftCol &&
02788         nWk_CaretPosX < m_nViewLeftCol + nScrollMarginLeft
02789     ){
02790         nScrollColNum = m_nViewLeftCol + nScrollMarginLeft - nWk_CaretPosX;
02791         if( 0 > m_nViewLeftCol - nScrollColNum ){
02792             nScrollColNum = m_nViewLeftCol;
02793         }
02794
02795     }
02796
02797     m_nViewLeftCol -= nScrollColNum;
02798
02799     //  From Here 2007.07.28 じゅうじ : 表示行数が3行以下の場合の動作改善
02800     /* 垂直スクロール量（行数）の算出 */
02801                                         // 画面が３行以下
02802     if( m_nViewRowNum <= 3 ){
02803                             // 移動先は、画面のスクロールラインより上か？（up キー）
02804         if( nWk_CaretPosY - m_nViewTopLine < nCaretMarginY ){
02805             if( nWk_CaretPosY < nCaretMarginY ){    //１行目に移動
02806                 nScrollRowNum = m_nViewTopLine;
02807             }else
02808             if( m_nViewRowNum <= 1 ){   // 画面が１行
02809                 nScrollRowNum = m_nViewTopLine - nWk_CaretPosY;
02810             }else
02811 #if !(0)    // COMMENTにすると、上下の空きを死守しない為、縦移動はgoodだが、横移動の場合上下にぶれる
02812             if( m_nViewRowNum <= 2 ){   // 画面が２行
02813                 nScrollRowNum = m_nViewTopLine - nWk_CaretPosY;
02814             }else
02815 #endif
02816             {                       // 画面が３行
02817                 nScrollRowNum = m_nViewTopLine - nWk_CaretPosY + 1;
02818             }
02819         }else
02820                             // 移動先は、画面の最大行数－２より下か？（down キー）
02821         if( nWk_CaretPosY - m_nViewTopLine >= (m_nViewRowNum - nCaretMarginY - 2) ){
02822             int ii = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
02823             if( ii - nWk_CaretPosY < nCaretMarginY + 1 &&
02824                 ii - m_nViewTopLine < m_nViewRowNum ) {
02825             } else
02826             if( m_nViewRowNum <= 2 ){   // 画面が２行、１行
02827                 nScrollRowNum = m_nViewTopLine - nWk_CaretPosY;
02828             }else{                      // 画面が３行
02829                 nScrollRowNum = m_nViewTopLine - nWk_CaretPosY + 1;
02830             }
02831         }
02832     }else                           // 移動先は、画面のスクロールラインより上か？（up キー）
02833     if( nWk_CaretPosY - m_nViewTopLine < nCaretMarginY ){
02834         if( nWk_CaretPosY < nCaretMarginY ){    //１行目に移動
02835             nScrollRowNum = m_nViewTopLine;
02836         }else{
02837             nScrollRowNum = -(nWk_CaretPosY - m_nViewTopLine) + nCaretMarginY;
02838         }
02839     } else
02840                             // 移動先は、画面の最大行数－２より下か？（down キー）
02841     if( nWk_CaretPosY - m_nViewTopLine >= m_nViewRowNum - nCaretMarginY - 2 ){
02842         int ii = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
02843         if( ii - nWk_CaretPosY < nCaretMarginY + 1 &&
02844             ii - m_nViewTopLine < m_nViewRowNum ) {
02845         } else
02846         {
02847             nScrollRowNum =
02848                 -(nWk_CaretPosY - m_nViewTopLine) + (m_nViewRowNum - nCaretMarginY - 2);
02849         }
02850     }
02851     //  To Here 2007.07.28 じゅうじ
02852     if( bScroll ){
02853         /* スクロール */
02854         if( abs( nScrollColNum ) >= m_nViewColNum ||
02855             abs( nScrollRowNum ) >= m_nViewRowNum ){
02856             m_nViewTopLine -= nScrollRowNum;
02857             ::InvalidateRect( m_hWnd, NULL, TRUE );
02858         }else
02859         if( nScrollRowNum != 0 || nScrollColNum != 0 ){
02860             rcScrol.left = 0;
02861             rcScrol.right = m_nViewCx + m_nViewAlignLeft;
02862             rcScrol.top = m_nViewAlignTop;
02863             rcScrol.bottom = m_nViewCy + m_nViewAlignTop;
02864             if( nScrollRowNum > 0 ){
02865                 rcScrol.bottom =
02866                     m_nViewCy + m_nViewAlignTop -
02867                     nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
02868                 m_nViewTopLine -= nScrollRowNum;
02869                 rcClip.left = 0;
02870                 rcClip.right = m_nViewCx + m_nViewAlignLeft;
02871                 rcClip.top = m_nViewAlignTop;
02872                 rcClip.bottom =
02873                     m_nViewAlignTop + nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
02874             }else
02875             if( nScrollRowNum < 0 ){
02876                 rcScrol.top =
02877                     m_nViewAlignTop - nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
02878                 m_nViewTopLine -= nScrollRowNum;
02879                 rcClip.left = 0;
02880                 rcClip.right = m_nViewCx + m_nViewAlignLeft;
02881                 rcClip.top =
02882                     m_nViewCy + m_nViewAlignTop +
02883                     nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
02884                 rcClip.bottom = m_nViewCy + m_nViewAlignTop;
02885             }
02886             if( nScrollColNum > 0 ){
02887                 rcScrol.left = m_nViewAlignLeft;
02888                 rcScrol.right =
02889                     m_nViewCx + m_nViewAlignLeft - nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
02890                 rcClip2.left = m_nViewAlignLeft;
02891                 rcClip2.right = m_nViewAlignLeft + nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
02892                 rcClip2.top = m_nViewAlignTop;
02893                 rcClip2.bottom = m_nViewCy + m_nViewAlignTop;
02894             }else
02895             if( nScrollColNum < 0 ){
02896                 rcScrol.left = m_nViewAlignLeft - nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
02897                 rcClip2.left =
02898                     m_nViewCx + m_nViewAlignLeft + nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
02899                 rcClip2.right = m_nViewCx + m_nViewAlignLeft;
02900                 rcClip2.top = m_nViewAlignTop;
02901                 rcClip2.bottom = m_nViewCy + m_nViewAlignTop;
02902             }
02903             if( m_bDrawSWITCH ){
02904                 ::ScrollWindowEx(
02905                     m_hWnd,
02906                     nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ),    /* 水平スクロール量 */
02907                     nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight ),   /* 垂直スクロール量 */
02908                     &rcScrol,   /* スクロール長方形の構造体のアドレス */
02909                     NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE
02910                 );
02911
02912                 if( nScrollRowNum != 0 ){
02913                     ::InvalidateRect( m_hWnd, &rcClip, TRUE );
02914                     if( nScrollColNum != 0 ){
02915                         rcClip.left = 0;
02916                         rcClip.right = m_nViewAlignLeft;
02917                         rcClip.top = 0;
02918                         rcClip.bottom = m_nViewCy + m_nViewAlignTop;
02919                         ::InvalidateRect( m_hWnd, &rcClip, TRUE );
02920                     }
02921                 }
02922                 if( nScrollColNum != 0 ){
02923                     ::InvalidateRect( m_hWnd, &rcClip2, TRUE );
02924                 }
02925             }
02926         }
02927
02928         /* スクロールバーの状態を更新する */
02929         AdjustScrollBars(); // 2001/10/20 novice
02930     }
02931
02932     /* キャレット移動 */
02933     m_nCaretPosX = nWk_CaretPosX;
02934     m_nCaretPosY = nWk_CaretPosY;
02935
02936     /* カーソル位置変換
02937     ||  レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02938     ||  →物理位置(行頭からのバイト数、折り返し無し行位置)
02939     */
02940     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02941         m_nCaretPosX,
02942         m_nCaretPosY,
02943         &m_nCaretPosX_PHY,  /* カーソル位置 改行単位行先頭からのバイト数(０開始) */
02944         &m_nCaretPosY_PHY   /* カーソル位置 改行単位行の行番号(０開始) */
02945     );
02946     // 横スクロールが発生したら、ルーラー全体を再描画 2002.02.25 Add By KK
02947     if (nScrollColNum != 0 ){
02948         //次回DispRuler呼び出し時に再描画。（bDraw=falseのケースを考慮した。）
02949         m_bRedrawRuler = true;
02950     }
02951
02952     /* カーソル行アンダーラインのON */
02953     //CaretUnderLineON( bDraw ); //2002.02.27 Del By KK アンダーラインのちらつきを低減
02954     if( bScroll ){
02955         /* キャレットの表示・更新 */
02956         ShowEditCaret();
02957
02958         /* ルーラの再描画 */
02959         DispRuler( hdc );
02960
02961         /* アンダーラインの再描画 */
02962         m_cUnderLine.CaretUnderLineON(TRUE);
02963
02964         /* キャレットの行桁位置を表示する */
02965         DrawCaretPosInfo();
02966
02967         //  Sep. 11, 2004 genta 同期スクロールの関数化
02968         //  bScroll == FALSEの時にはスクロールしないので，実行しない
02969         SyncScrollV( -nScrollRowNum );  //  方向が逆なので符号反転が必要
02970         SyncScrollH( -nScrollColNum );  //  方向が逆なので符号反転が必要
02971
02972     }
02973     ::ReleaseDC( m_hWnd, hdc );
02974
02975
02976 // 02/09/18 対括弧の強調表示 ai Start   03/02/18 ai mod S
02977     DrawBracketPair( false );
02978     SetBracketPairPos( true );
02979     DrawBracketPair( true );
02980 // 02/09/18 対括弧の強調表示 ai End     03/02/18 ai mod E
02981
02982     return nScrollRowNum;
02983
02984
02985 }
02986
02996 BOOL CEditView::GetAdjustCursorPos( int* pnPosX, int* pnPosY ){
02997     // 2004.03.28 Moca EOFのみのレイアウト行は、0桁目のみ有効.EOFより下の行のある場合は、EOF位置にする
02998     int nLayoutLineCount = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
02999     int nPosX2 = *pnPosX;
03000     int nPosY2 = *pnPosY;
03001     BOOL ret = FALSE;
03002     if( nPosY2 >= nLayoutLineCount ){
03003         if( 0 < nLayoutLineCount ){
03004             nPosY2 = nLayoutLineCount - 1;
03005             const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nPosY2 );
03006             if( pcLayout->m_cEol == EOL_NONE ){
03007                 nPosX2 = LineIndexToColmn( pcLayout, pcLayout->GetLength() );
03008                 // EOFだけ折り返されているか
03009                 //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
03010                 if( nPosX2 >= m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() ){
03011                     nPosY2++;
03012                     nPosX2 = 0;
03013                 }
03014             }else{
03015                 // EOFだけの行
03016                 nPosY2++;
03017                 nPosX2 = 0;
03018             }
03019         }else{
03020             // 空のファイル
03021             nPosX2 = 0;
03022             nPosY2 = 0;
03023         }
03024         if( *pnPosX != nPosX2 || *pnPosY != nPosY2 ){
03025             *pnPosX = nPosX2;
03026             *pnPosY = nPosY2;
03027             ret = TRUE;
03028         }
03029     }
03030     return ret;
03031 }
03032
03033
03034 /* IME編集エリアの位置を変更 */
03035 void CEditView::SetIMECompFormPos( void )
03036 {
03037     //
03038     // If current composition form mode is near caret operation,
03039     // application should inform IME UI the caret position has been
03040     // changed. IME UI will make decision whether it has to adjust
03041     // composition window position.
03042     //
03043     //
03044     RECT            rc;
03045     POINT           po;
03046     COMPOSITIONFORM CompForm;
03047     HIMC            hIMC = ::ImmGetContext( m_hWnd );
03048     POINT           point;
03049     HWND            hwndFrame;
03050     hwndFrame = ::GetParent( m_hwndParent );
03051
03052     ::GetCaretPos( &point );
03053     CompForm.dwStyle = CFS_POINT;
03054     CompForm.ptCurrentPos.x = (long) point.x + 1;
03055     CompForm.ptCurrentPos.y = (long) point.y + 1 + m_nCaretHeight - m_nCharHeight;
03056
03057     ::GetWindowRect( m_hWnd, &rc );
03058     po.x = 0;
03059     po.y = 0;
03060     ::ClientToScreen( hwndFrame, &po );
03061     CompForm.ptCurrentPos.x += ( rc.left - po.x );
03062     CompForm.ptCurrentPos.y += ( rc.top  - po.y );
03063
03064     if ( hIMC ){
03065         ::ImmSetCompositionWindow( hIMC, &CompForm );
03066     }
03067     ::ImmReleaseContext( m_hWnd , hIMC );
03068     return;
03069 }
03070
03071
03072
03073
03074
03075 /* IME編集エリアの表示フォントを変更 */
03076 void CEditView::SetIMECompFormFont( void )
03077 {
03078     //
03079     // If current composition form mode is near caret operation,
03080     // application should inform IME UI the caret position has been
03081     // changed. IME UI will make decision whether it has to adjust
03082     // composition window position.
03083     //
03084     //
03085     HIMC    hIMC = ::ImmGetContext( m_hWnd );
03086     if ( hIMC ){
03087         ::ImmSetCompositionFont( hIMC, &(m_pShareData->m_Common.m_lf) );
03088     }
03089     ::ImmReleaseContext( m_hWnd , hIMC );
03090     return;
03091 }
03092
03093
03094
03095
03096
03110 int CEditView::MoveCursorProperly( int nNewX, int nNewY, BOOL bScroll, int nCaretMarginRate, int dx )
03111 {
03112     const char*     pLine;
03113     int             nLineLen;
03114     const CLayout*  pcLayout;
03115
03116     if( 0 > nNewY ){
03117         nNewY = 0;
03118     }
03119     /* カーソルがテキスト最下端行にあるか */
03120     if( nNewY >= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
03121         // 2004.04.03 Moca EOFより後ろの座標調整は、MoveCursor内でやってもらうので、削除
03122     }else
03123     /* カーソルがテキスト最上端行にあるか */
03124     if( nNewY < 0 ){
03125         nNewX = 0;
03126         nNewY = 0;
03127     }else{
03128         /* 移動先の行のデータを取得 */
03129         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nNewY, &nLineLen, &pcLayout );
03130
03131         int nColWidth = m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace;
03132         int nPosX = 0;
03133         int i = 0;
03134         CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
03135         while( !it.end() ){
03136             it.scanNext();
03137             if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
03138                 i = nLineLen;
03139                 break;
03140             }
03141             if( it.getColumn() + it.getColumnDelta() > nNewX ){
03142                 if (nNewX >= (pcLayout ? pcLayout->GetIndent() : 0) && ((nNewX - it.getColumn()) * nColWidth + dx) * 2 >= it.getColumnDelta() * nColWidth){
03143                     nPosX += it.getColumnDelta();
03144                 }
03145                 i = it.getIndex();
03146                 break;
03147             }
03148             it.addDelta();
03149         }
03150         nPosX += it.getColumn();
03151         if ( it.end() ){
03152             i = it.getIndex();
03153             nPosX -= it.getColumnDelta();
03154         }
03155
03156         if( i >= nLineLen ){
03157 // From 2001.12.21 hor フリーカーソルOFFでEOFのある行の直前がマウスで選択できないバグの修正
03158             if( nNewY +1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() &&
03159                 EOL_NONE == pcLayout->m_cEol.GetLen() ){
03160                 nPosX = LineIndexToColmn( pcLayout, nLineLen );
03161             }else
03162 // To 2001.12.21 hor
03163             /* フリーカーソルモードか */
03164             if( m_pShareData->m_Common.m_bIsFreeCursorMode
03165               || ( m_bBeginSelect && m_bBeginBoxSelect )    /* マウス範囲選択中 && 矩形範囲選択中 */
03166 //            || m_bDragMode /* OLE DropTarget */
03167               || ( m_bDragMode && m_bBeginBoxSelect ) /* OLE DropTarget && 矩形範囲選択中 */
03168             ){
03169 // From 2001.12.21 hor
03170 //              if( nNewY + 1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() &&
03171 //                  pLine[ nLineLen - 1 ] != '\n' && pLine[ nLineLen - 1 ] != '\r'
03172 //              ){
03173 //                  nPosX = LineIndexToColmn( pLine, nLineLen, nLineLen );
03174 //              }else{
03175 // To 2001.12.21 hor
03176                     nPosX = nNewX;
03177                     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
03178                     if( nPosX < 0 ){
03179                         nPosX = 0;
03180                     }else
03181                     if( nPosX > m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() ){   /* 折り返し文字数 */
03182                         nPosX = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
03183                     }
03184 //              }
03185             }
03186         }
03187         nNewX = nPosX;
03188     }
03189
03190     return MoveCursor( nNewX, nNewY, bScroll, nCaretMarginRate );
03191 }
03192
03193
03194
03195 /* マウス等による座標指定によるカーソル移動
03196 || 必要に応じて縦/横スクロールもする
03197 || 垂直スクロールをした場合はその行数を返す(正／負)
03198 */
03199 int CEditView::MoveCursorToPoint( int xPos, int yPos )
03200 {
03201     int             nScrollRowNum;
03202     int             nNewX;
03203     int             nNewY;
03204     int             dx;
03205
03206     nNewX = m_nViewLeftCol + (xPos - m_nViewAlignLeft) / ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
03207     nNewY = m_nViewTopLine + (yPos - m_nViewAlignTop) / ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace );
03208     dx = (xPos - m_nViewAlignLeft) % ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
03209
03210     nScrollRowNum = MoveCursorProperly( nNewX, nNewY, TRUE, 1000, dx );
03211     m_nCaretPosX_Prev = m_nCaretPosX;
03212     return nScrollRowNum;
03213 }
03214 //_CARETMARGINRATE_CARETMARGINRATE_CARETMARGINRATE
03215
03216
03217
03218 /* マウス左ボタン押下 */
03219 void CEditView::OnLBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
03220 {
03221
03222     if( m_bHokan ){
03223         m_pcEditDoc->m_cHokanMgr.Hide();
03224         m_bHokan = FALSE;
03225     }
03226
03227     //isearch 2004.10.22 isearchをキャンセルする
03228     if (m_nISearchMode > 0 ){
03229         ISearchExit();
03230     }
03231
03232 //  DWORD   nKeyBoardSpeed;
03233     int         nCaretPosY_Old;
03234     CMemory     cmemCurText;
03235     const char* pLine;
03236     int         nLineLen;
03237     int         nLineFrom;
03238     int         nColmFrom;
03239     int         nLineTo;
03240     int         nColmTo;
03241     int         nIdx;
03242     int         nWork;
03243
03244     if( m_pcEditDoc->m_cLayoutMgr.GetLineCount() == 0 ){
03245         return;
03246     }
03247     if( m_nCaretWidth == 0 ){ //フォーカスがないとき
03248         return;
03249     }
03250     nCaretPosY_Old = m_nCaretPosY;
03251
03252     /* 辞書Tipが起動されている */
03253     if( 0 == m_dwTipTimer ){
03254         /* 辞書Tipを消す */
03255         m_cTipWnd.Hide();
03256         m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
03257     }else{
03258         m_dwTipTimer = ::GetTickCount();        /* 辞書Tip起動タイマー */
03259     }
03260
03261     /* 現在のマウスカーソル位置→レイアウト位置 */
03262     int nNewX = m_nViewLeftCol + (xPos - m_nViewAlignLeft) / ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
03263     int nNewY = m_nViewTopLine + (yPos - m_nViewAlignTop) / ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace );
03264 //  MYTRACE( "OnLBUTTONDOWN() nNewX=%d nNewY=%d\n", nNewX, nNewY );
03265
03266     if( TRUE == m_pShareData->m_Common.m_bUseOLE_DragDrop ){    /* OLEによるドラッグ & ドロップを使う */
03267         if( m_pShareData->m_Common.m_bUseOLE_DropSource ){      /* OLEによるドラッグ元にするか */
03268             /* 行選択エリアをドラッグした */
03269             if( xPos < m_nViewAlignLeft - ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) ){
03270                 goto normal_action;
03271             }
03272             /* 指定カーソル位置が選択エリア内にあるか */
03273             if( 0 == IsCurrentPositionSelected(
03274                 nNewX,      // カーソル位置X
03275                 nNewY       // カーソル位置Y
03276                 )
03277             ){
03278                 /* 選択範囲のデータを取得 */
03279                 if( GetSelectedData( cmemCurText, FALSE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy ) ){
03280                     DWORD dwEffects;
03281                     m_bDragSource = TRUE;
03282                     CDataObject data( cmemCurText.GetPtr() );
03283                     dwEffects = data.DragDrop( TRUE, DROPEFFECT_COPY | DROPEFFECT_MOVE );
03284                     m_bDragSource = FALSE;
03285 //                  MYTRACE( "dwEffects=%d\n", dwEffects );
03286                     if( 0 == dwEffects ){
03287                         if( IsTextSelected() ){ /* テキストが選択されているか */
03288                             /* 現在の選択範囲を非選択状態に戻す */
03289                             DisableSelectArea( TRUE );
03290
03291 //@@@ 2002.01.08 YAZAKI フリーカーソルOFFで複数行選択し、行の後ろをクリックするとそこにキャレットが置かれてしまうバグ修正
03292                             /* カーソル移動。 */
03293                             if( yPos >= m_nViewAlignTop && yPos < m_nViewAlignTop  + m_nViewCy ){
03294                                 if( xPos >= m_nViewAlignLeft && xPos < m_nViewAlignLeft + m_nViewCx ){
03295                                     MoveCursorToPoint( xPos, yPos );
03296                                 }else
03297                                 if( xPos < m_nViewAlignLeft ){
03298                                     MoveCursorToPoint( m_nViewAlignLeft - m_nViewLeftCol * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ), yPos );
03299                                 }
03300                             }
03301                         }
03302                     }
03303                 }
03304                 return;
03305             }
03306         }
03307     }
03308
03309 normal_action:;
03310
03311     /* ALTキーが押されていたか */
03312     if( (SHORT)0x8000 & ::GetKeyState( VK_MENU ) ){
03313         if( IsTextSelected() ){ /* テキストが選択されているか */
03314             /* 現在の選択範囲を非選択状態に戻す */
03315             DisableSelectArea( TRUE );
03316         }
03317         if( yPos >= m_nViewAlignTop  && yPos < m_nViewAlignTop  + m_nViewCy ){
03318             if( xPos >= m_nViewAlignLeft && xPos < m_nViewAlignLeft + m_nViewCx ){
03319                 MoveCursorToPoint( xPos, yPos );
03320             }else
03321             if( xPos < m_nViewAlignLeft ){
03322                 MoveCursorToPoint( m_nViewAlignLeft - m_nViewLeftCol * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ), yPos );
03323             }else{
03324                 return;
03325             }
03326         }
03327         m_nMouseRollPosXOld = xPos;     /* マウス範囲選択前回位置(X座標) */
03328         m_nMouseRollPosYOld = yPos;     /* マウス範囲選択前回位置(Y座標) */
03329         /* 範囲選択開始 & マウスキャプチャー */
03330         m_bBeginSelect = TRUE;          /* 範囲選択中 */
03331         m_bBeginBoxSelect = TRUE;       /* 矩形範囲選択中 */
03332         m_bBeginLineSelect = FALSE;     /* 行単位選択中 */
03333         m_bBeginWordSelect = FALSE;     /* 単語単位選択中 */
03334
03335 //      if( m_pShareData->m_Common.m_bFontIs_FIXED_PITCH ){ /* 現在のフォントは固定幅フォントである */
03336 //          /* ALTキーが押されていたか */
03337 //          if( (SHORT)0x8000 & ::GetKeyState( VK_MENU ) ){
03338 //              m_bBeginBoxSelect = TRUE;   /* 矩形範囲選択中 */
03339 //          }
03340 //      }
03341         ::SetCapture( m_hWnd );
03342         HideCaret_( m_hWnd ); // 2002/07/22 novice
03343         /* 現在のカーソル位置から選択を開始する */
03344         BeginSelectArea( );
03345         m_cUnderLine.CaretUnderLineOFF( TRUE );
03346         m_cUnderLine.Lock();
03347         if( xPos < m_nViewAlignLeft ){
03348             /* カーソル下移動 */
03349             Command_DOWN( TRUE, FALSE );
03350         }
03351     }else{
03352         /* カーソル移動 */
03353         if( yPos >= m_nViewAlignTop && yPos < m_nViewAlignTop  + m_nViewCy ){
03354             if( xPos >= m_nViewAlignLeft && xPos < m_nViewAlignLeft + m_nViewCx ){
03355             }else
03356             if( xPos < m_nViewAlignLeft ){
03357             }else{
03358                 return;
03359             }
03360         }
03361         else
03362         if( yPos < m_nViewAlignTop ){
03363             //  ルーラクリック
03364             return;
03365         }
03366         else {
03367             return;
03368         }
03369
03370         /* マウスのキャプチャなど */
03371         m_nMouseRollPosXOld = xPos;     /* マウス範囲選択前回位置(X座標) */
03372         m_nMouseRollPosYOld = yPos;     /* マウス範囲選択前回位置(Y座標) */
03373         /* 範囲選択開始 & マウスキャプチャー */
03374         m_bBeginSelect = TRUE;          /* 範囲選択中 */
03375 //      m_bBeginBoxSelect = FALSE;      /* 矩形範囲選択中でない */
03376         m_bBeginLineSelect = FALSE;     /* 行単位選択中 */
03377         m_bBeginWordSelect = FALSE;     /* 単語単位選択中 */
03378         ::SetCapture( m_hWnd );
03379         HideCaret_( m_hWnd ); // 2002/07/22 novice
03380
03381
03382         /* 選択開始処理 */
03383         /* SHIFTキーが押されていたか */
03384         if( (SHORT)0x8000 & ::GetKeyState( VK_SHIFT ) ){
03385             if( IsTextSelected() ){         /* テキストが選択されているか */
03386                 if( m_bBeginBoxSelect ){    /* 矩形範囲選択中 */
03387                     /* 現在の選択範囲を非選択状態に戻す */
03388                     DisableSelectArea( TRUE );
03389                     /* 現在のカーソル位置から選択を開始する */
03390                     BeginSelectArea( );
03391                 }else{
03392                 }
03393             }else{
03394                 /* 現在のカーソル位置から選択を開始する */
03395                 BeginSelectArea( );
03396             }
03397
03398             /* カーソル移動 */
03399             if( yPos >= m_nViewAlignTop && yPos < m_nViewAlignTop  + m_nViewCy ){
03400                 if( xPos >= m_nViewAlignLeft && xPos < m_nViewAlignLeft + m_nViewCx ){
03401                     MoveCursorToPoint( xPos, yPos );
03402                 }else
03403                 if( xPos < m_nViewAlignLeft ){
03404                     MoveCursorToPoint( m_nViewAlignLeft - m_nViewLeftCol * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ), yPos );
03405                 }
03406             }
03407         }else{
03408             if( IsTextSelected() ){ /* テキストが選択されているか */
03409                 /* 現在の選択範囲を非選択状態に戻す */
03410                 DisableSelectArea( TRUE );
03411             }
03412             /* カーソル移動 */
03413             if( yPos >= m_nViewAlignTop && yPos < m_nViewAlignTop  + m_nViewCy ){
03414                 if( xPos >= m_nViewAlignLeft && xPos < m_nViewAlignLeft + m_nViewCx ){
03415                     MoveCursorToPoint( xPos, yPos );
03416                 }else
03417                 if( xPos < m_nViewAlignLeft ){
03418                     MoveCursorToPoint( m_nViewAlignLeft - m_nViewLeftCol * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ), yPos );
03419                 }
03420             }
03421             /* 現在のカーソル位置から選択を開始する */
03422             BeginSelectArea( );
03423         }
03424
03425
03426         /******* この時点で必ず true == IsTextSelected() の状態になる ****:*/
03427         if( !IsTextSelected() ){
03428 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
03429                 "バグってる"
03430             );
03431             return;
03432         }
03433
03434         int nWorkRel;
03435         nWorkRel = IsCurrentPositionSelected(
03436             m_nCaretPosX,   // カーソル位置X
03437             m_nCaretPosY    // カーソル位置Y
03438         );
03439 //      MYTRACE( "◆◆◆nWorkRel = %d\n", nWorkRel );
03440
03441
03442         /* 現在のカーソル位置によって選択範囲を変更 */
03443         ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
03444
03445
03446         /* CTRLキーが押されていたか */
03447         if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL ) ){
03448             m_bBeginWordSelect = TRUE;      /* 単語単位選択中 */
03449             if( !IsTextSelected() ){
03450                 /* 現在位置の単語選択 */
03451                 if ( Command_SELECTWORD() ){
03452                     m_nSelectLineBgnFrom = m_nSelectLineFrom;   /* 範囲選択開始行(原点) */
03453                     m_nSelectColmBgnFrom = m_nSelectColmFrom;   /* 範囲選択開始桁(原点) */
03454                     m_nSelectLineBgnTo = m_nSelectLineTo;       /* 範囲選択開始行(原点) */
03455                     m_nSelectColmBgnTo = m_nSelectColmTo;       /* 範囲選択開始桁(原点) */
03456                 }
03457             }else{
03458
03459                 /* 選択領域描画 */
03460                 DrawSelectArea();
03461
03462
03463                 /* 指定された桁に対応する行のデータ内の位置を調べる */
03464                 const CLayout* pcLayout;
03465                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nSelectLineFrom, &nLineLen, &pcLayout );
03466                 if( NULL != pLine ){
03467                     nIdx = LineColmnToIndex( pcLayout, m_nSelectColmFrom );
03468                     /* 現在位置の単語の範囲を調べる */
03469                     if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
03470                         m_nSelectLineFrom, nIdx, &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, NULL, NULL )
03471                     ){
03472                         /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
03473                         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineFrom, &nLineLen, &pcLayout );
03474                         nColmFrom = LineIndexToColmn( pcLayout, nColmFrom );
03475                         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineTo, &nLineLen, &pcLayout );
03476                         nColmTo = LineIndexToColmn( pcLayout, nColmTo );
03477
03478
03479                         nWork = IsCurrentPositionSelected(
03480                             nColmFrom,  // カーソル位置X
03481                             nLineFrom   // カーソル位置Y
03482                         );
03483                         if( -1 == nWork || 0 == nWork ){
03484                             m_nSelectLineFrom = nLineFrom;
03485                             m_nSelectColmFrom = nColmFrom;
03486                             if( 1 == nWorkRel ){
03487                                 m_nSelectLineBgnFrom = nLineFrom;   /* 範囲選択開始行(原点) */
03488                                 m_nSelectColmBgnFrom = nColmFrom;   /* 範囲選択開始桁(原点) */
03489                                 m_nSelectLineBgnTo = nLineTo;       /* 範囲選択開始行(原点) */
03490                                 m_nSelectColmBgnTo = nColmTo;       /* 範囲選択開始桁(原点) */
03491                             }
03492                         }
03493     //                  if( 1 == IsCurrentPositionSelected(
03494     //                      nColmTo,    // カーソル位置X
03495     //                      nLineTo     // カーソル位置Y
03496     //                  ) ){
03497     //                      m_nSelectLineFrom = nLineTo;
03498     //                      m_nSelectColmFrom = nColmTo;
03499     //                  }
03500                     }
03501                 }
03502                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nSelectLineTo, &nLineLen, &pcLayout );
03503                 if( NULL != pLine ){
03504                     nIdx = LineColmnToIndex( pcLayout, m_nSelectColmTo );
03505                     /* 現在位置の単語の範囲を調べる */
03506                     if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
03507                         m_nSelectLineTo, nIdx,
03508                         &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, NULL, NULL )
03509                     ){
03510                         /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
03511                         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineFrom, &nLineLen, &pcLayout );
03512                         nColmFrom = LineIndexToColmn( pcLayout, nColmFrom );
03513                         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineTo, &nLineLen, &pcLayout );
03514                         nColmTo = LineIndexToColmn( pcLayout, nColmTo );
03515
03516                         nWork = IsCurrentPositionSelected(
03517                             nColmFrom,  // カーソル位置X
03518                             nLineFrom   // カーソル位置Y
03519                         );
03520                         if( -1 == nWork || 0 == nWork ){
03521                             m_nSelectLineTo = nLineFrom;
03522                             m_nSelectColmTo = nColmFrom;
03523                         }
03524                         if( 1 == IsCurrentPositionSelected(
03525                             nColmTo,    // カーソル位置X
03526                             nLineTo     // カーソル位置Y
03527                         ) ){
03528                             m_nSelectLineTo = nLineTo;
03529                             m_nSelectColmTo = nColmTo;
03530                         }
03531                         if( -1 == nWorkRel || 0 == nWorkRel ){
03532                             m_nSelectLineBgnFrom = nLineFrom;   /* 範囲選択開始行(原点) */
03533                             m_nSelectColmBgnFrom = nColmFrom;   /* 範囲選択開始桁(原点) */
03534                             m_nSelectLineBgnTo = nLineTo;       /* 範囲選択開始行(原点) */
03535                             m_nSelectColmBgnTo = nColmTo;       /* 範囲選択開始桁(原点) */
03536                         }
03537                     }
03538                 }
03539
03540                 if( 0 < nWorkRel ){
03541
03542                 }
03543                 /* 選択領域描画 */
03544                 DrawSelectArea();
03545             }
03546         }
03547         if( xPos < m_nViewAlignLeft ){
03548             /* 現在のカーソル位置から選択を開始する */
03549 //          BeginSelectArea( );
03550             m_bBeginLineSelect = TRUE;
03551
03552             // 2002.10.07 YAZAKI 折り返し行をインデントしているときに選択がおかしいバグの対策
03553             Command_GOLINEEND( TRUE, FALSE );
03554             Command_RIGHT( TRUE, FALSE, FALSE );
03555
03556             //  Apr. 14, 2003 genta
03557             //  行番号の下をクリックしてドラッグを開始するとおかしくなるのを修正
03558             //  行番号をクリックした場合にはChangeSelectAreaByCurrentCursor()にて
03559             //  m_nSelectColmTo/m_nSelectLineToに-1が設定されるが、上の
03560             //  Command_GOLINEEND(), Command_RIGHT()によって行選択が行われる。
03561             //  しかしキャレットが末尾にある場合にはキャレットが移動しないので
03562             //  m_nSelectColmTo/m_nSelectLineToが-1のまま残ってしまい、それが
03563             //  原点に設定されるためにおかしくなっていた。
03564             //  なので、範囲選択が行われていない場合は起点末尾の設定を行わないようにする
03565             if( IsTextSelected() ){
03566                 m_nSelectLineBgnTo = m_nSelectLineTo;   /* 範囲選択開始行(原点) */
03567                 m_nSelectColmBgnTo = m_nSelectColmTo;   /* 範囲選択開始桁(原点) */
03568             }
03569         }else{
03570 //          /* 現在のカーソル位置から選択を開始する */
03571 //          BeginSelectArea( );
03572 //          m_bBeginLineSelect = FALSE;
03573
03574             /* URLがクリックされたら選択するか */
03575             //  Sep. 7, 2003 genta URLの強調表示OFFの時はURLは普通の文字として扱う
03576             if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_URL].m_bDisp &&
03577                 TRUE == m_pShareData->m_Common.m_bSelectClickedURL ){
03578
03579                 int         nUrlLine;   // URLの行(折り返し単位)
03580                 int         nUrlIdxBgn; // URLの位置(行頭からのバイト位置)
03581                 int         nUrlLen;    // URLの長さ(バイト数)
03582                 /* カーソル位置にURLが有る場合のその範囲を調べる */
03583                 if( IsCurrentPositionURL(
03584                     m_nCaretPosX,   // カーソル位置X
03585                     m_nCaretPosY,   // カーソル位置Y
03586                     &nUrlLine,      // URLの行(改行単位)
03587                     &nUrlIdxBgn,    // URLの位置(行頭からのバイト位置)
03588                     &nUrlLen,       // URLの長さ(バイト数)
03589                     NULL            // URL受け取り先
03590                 ) ){
03591
03592                     /* 現在の選択範囲を非選択状態に戻す */
03593                     DisableSelectArea( TRUE );
03594
03595                     /* 選択範囲の変更 */
03596 #if 0
03597                     2002/04/03 YAZAKI 不要な処理でした。
03598                     m_nSelectLineBgnFrom = nUrlLine;            /* 範囲選択開始行(原点) */
03599                     m_nSelectColmBgnFrom = nUrlIdxBgn;          /* 範囲選択開始桁(原点) */
03600                     m_nSelectLineBgnTo = nUrlLine;              /* 範囲選択開始行(原点) */
03601                     m_nSelectColmBgnTo = nUrlIdxBgn + nUrlLen;  /* 範囲選択開始桁(原点) */
03602
03603                     m_nSelectLineFrom = nUrlLine;
03604                     m_nSelectColmFrom = nUrlIdxBgn;
03605                     m_nSelectLineTo = nUrlLine;
03606                     m_nSelectColmTo = nUrlIdxBgn + nUrlLen;
03607 #endif
03608                     /*
03609                       カーソル位置変換
03610                       物理位置(行頭からのバイト数、折り返し無し行位置)
03611                       →レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03612                         2002/04/08 YAZAKI 少しでもわかりやすく。
03613                     */
03614                     int nColmFrom, nLineFrom, nColmTo, nLineTo;
03615                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nUrlIdxBgn          , nUrlLine, &nColmFrom, &nLineFrom );
03616                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nUrlIdxBgn + nUrlLen, nUrlLine, &nColmTo, &nLineTo );
03617
03618                     m_nSelectLineBgnFrom = nLineFrom;       /* 範囲選択開始行(原点) */
03619                     m_nSelectColmBgnFrom = nColmFrom;       /* 範囲選択開始桁(原点) */
03620                     m_nSelectLineBgnTo = nLineTo;       /* 範囲選択開始行(原点) */
03621                     m_nSelectColmBgnTo = nColmTo;       /* 範囲選択開始桁(原点) */
03622
03623                     m_nSelectLineFrom = nLineFrom;
03624                     m_nSelectColmFrom = nColmFrom;
03625                     m_nSelectLineTo = nLineTo;
03626                     m_nSelectColmTo = nColmTo;
03627
03628                     /* 選択領域描画 */
03629                     DrawSelectArea();
03630                 }
03631             }
03632         }
03633     }
03634 //  /* キーボードの現在のリピート間隔を取得 */
03635 //  SystemParametersInfo( SPI_GETKEYBOARDSPEED, 0, &nKeyBoardSpeed, 0 );
03636 //  nKeyBoardSpeed *= 3;
03637 //  /* タイマー起動 */
03638 //  ::SetTimer( m_hWnd, IDT_ROLLMOUSE, nKeyBoardSpeed, (TIMERPROC)EditViewTimerProc );
03639     return;
03640 }
03641
03642 /* 指定カーソル位置にURLが有る場合のその範囲を調べる */
03643 /* 戻り値がTRUEの場合、*ppszURLは呼び出し側でdeleteすること */
03644 BOOL CEditView::IsCurrentPositionURL(
03645         int     nCaretPosX,     // カーソル位置X
03646         int     nCaretPosY,     // カーソル位置Y
03647         int*    pnUrlLine,      // URLの行(改行単位)
03648         int*    pnUrlIdxBgn,    // URLの位置(行頭からのバイト位置)
03649         int*    pnUrlLen,       // URLの長さ(バイト数)
03650         char**  ppszURL         // URL受け取り先(関数内でnewする)
03651 )
03652 {
03653     MY_RUNNINGTIMER( cRunningTimer, "CEditView::IsCurrentPositionURL" );
03654
03655     const char* pLine;
03656 //  const char* pLineWork;
03657     int         nLineLen;
03658     int         nX;
03659     int         nY;
03660 //  char*       pURL;
03661     int         i;
03662 //  BOOL        bFindURL;
03663 //  int         nCharChars;
03664     int         nUrlLen;
03665
03666     /*
03667       カーソル位置変換
03668       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03669       →
03670       物理位置(行頭からのバイト数、折り返し無し行位置)
03671     */
03672     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
03673         nCaretPosX,
03674         nCaretPosY,
03675         (int*)&nX,
03676         (int*)&nY
03677     );
03678     *pnUrlLine = nY;
03679     pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( nY, &nLineLen );
03680
03681     i = nX - 200;
03682     if( i < 0 ){
03683         i = 0;
03684     }
03685     for( ; i <= nX && i < nLineLen && i < nX + 200; ){
03686     /* カーソル位置から前方に250バイトまでの範囲内で行頭に向かってサーチ */
03687         /* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
03688         if( FALSE == IsURL( &pLine[i], nLineLen - i, &nUrlLen ) ){
03689             ++i;
03690         }else{
03691             if( i <= nX && nX < i + nUrlLen ){
03692                 /* URLを返す場合 */
03693                 if( NULL != ppszURL ){
03694                     *ppszURL = new char[nUrlLen + 1];
03695                     memcpy( *ppszURL, &pLine[i], nUrlLen );
03696                     (*ppszURL)[nUrlLen] = '\0';
03697                     /* *ppszURLは呼び出し側でdeleteすること */
03698                 }
03699                 *pnUrlLen = nUrlLen;
03700                 *pnUrlLine = nY;
03701                 *pnUrlIdxBgn = i;
03702                 return TRUE;
03703             }else{
03704                 i += nUrlLen;
03705             }
03706         }
03707     }
03708     return FALSE;
03709 }
03710
03711
03712
03713
03714 /* マウス右ボタン押下 */
03715 void CEditView::OnRBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
03716 {
03717     /* 現在のマウスカーソル位置→レイアウト位置 */
03718     int nNewX = m_nViewLeftCol + (xPos - m_nViewAlignLeft) / ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
03719     int nNewY = m_nViewTopLine + (yPos - m_nViewAlignTop) / ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace );
03720     /* 指定カーソル位置が選択エリア内にあるか */
03721     if( 0 == IsCurrentPositionSelected(
03722         nNewX,      // カーソル位置X
03723         nNewY       // カーソル位置Y
03724         )
03725     ){
03726         return;
03727     }
03728     OnLBUTTONDOWN( fwKeys, xPos , yPos );
03729     return;
03730 }
03731
03732 /* マウス右ボタン開放 */
03733 void CEditView::OnRBUTTONUP( WPARAM fwKeys, int xPos , int yPos )
03734 {
03735     if( m_bBeginSelect ){   /* 範囲選択中 */
03736         /* マウス左ボタン開放のメッセージ処理 */
03737         OnLBUTTONUP( fwKeys, xPos, yPos );
03738     }
03739
03740
03741     int     nIdx;
03742     int     nFuncID;
03743 // novice 2004/10/10
03744     /* Shift,Ctrl,Altキーが押されていたか */
03745     nIdx = getCtrlKeyState();
03746     /* マウス右クリックに対応する機能コードはm_Common.m_pKeyNameArr[1]に入っている */
03747     nFuncID = m_pShareData->m_pKeyNameArr[1].m_nFuncCodeArr[nIdx];
03748     if( nFuncID != 0 ){
03749         /* コマンドコードによる処理振り分け */
03750         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
03751         ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
03752     }
03753 //  /* 右クリックメニュー */
03754 //  Command_MENU_RBUTTON();
03755     return;
03756 }
03757
03758
03759 // novice 2004/10/11 マウス中ボタン対応
03768 void CEditView::OnMBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
03769 {
03770     int     nIdx;
03771     int     nFuncID;
03772
03773     /* Shift,Ctrl,Altキーが押されていたか */
03774     nIdx = getCtrlKeyState();
03775     /* マウス左サイドボタンに対応する機能コードはm_Common.m_pKeyNameArr[2]に入っている */
03776     nFuncID = m_pShareData->m_pKeyNameArr[2].m_nFuncCodeArr[nIdx];
03777     if( nFuncID != 0 ){
03778         /* コマンドコードによる処理振り分け */
03779         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
03780         ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
03781     }
03782 }
03783
03784
03785 // novice 2004/10/10 マウスサイドボタン対応
03795 void CEditView::OnXLBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
03796 {
03797     int     nIdx;
03798     int     nFuncID;
03799
03800     /* Shift,Ctrl,Altキーが押されていたか */
03801     nIdx = getCtrlKeyState();
03802     /* マウス左サイドボタンに対応する機能コードはm_Common.m_pKeyNameArr[3]に入っている */
03803     nFuncID = m_pShareData->m_pKeyNameArr[3].m_nFuncCodeArr[nIdx];
03804     if( nFuncID != 0 ){
03805         /* コマンドコードによる処理振り分け */
03806         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
03807         ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
03808     }
03809
03810     return;
03811 }
03812
03813
03823 void CEditView::OnXRBUTTONDOWN( WPARAM fwKeys, int xPos , int yPos )
03824 {
03825     int     nIdx;
03826     int     nFuncID;
03827
03828     /* Shift,Ctrl,Altキーが押されていたか */
03829     nIdx = getCtrlKeyState();
03830     /* マウス右サイドボタンに対応する機能コードはm_Common.m_pKeyNameArr[4]に入っている */
03831     nFuncID = m_pShareData->m_pKeyNameArr[4].m_nFuncCodeArr[nIdx];
03832     if( nFuncID != 0 ){
03833         /* コマンドコードによる処理振り分け */
03834         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
03835         ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
03836     }
03837
03838     return;
03839 }
03840
03841
03842 VOID CEditView::OnTimer(
03843     HWND hwnd,      // handle of window for timer messages
03844     UINT uMsg,      // WM_TIMER message
03845     UINT idEvent,   // timer identifier
03846     DWORD dwTime    // current system time
03847     )
03848 {
03849     POINT       po;
03850     RECT        rc;
03851
03852     if( TRUE == m_pShareData->m_Common.m_bUseOLE_DragDrop ){    /* OLEによるドラッグ & ドロップを使う */
03853         if( m_bDragSource ){
03854             return;
03855         }
03856     }
03857     /* 範囲選択中でない場合 */
03858     if(!m_bBeginSelect){
03859         if(TRUE == KeyWordHelpSearchDict( LID_SKH_ONTIMER, &po, &rc ) ){    // 2006.04.10 fon
03860             /* 辞書Tipを表示 */
03861             m_cTipWnd.Show( po.x, po.y + m_nCharHeight, NULL );
03862         }
03863     }else{
03864         ::GetCursorPos( &po );
03865         ::GetWindowRect(m_hWnd, &rc );
03866         if( !PtInRect( &rc, po ) ){
03867             OnMOUSEMOVE( 0, m_nMouseRollPosXOld, m_nMouseRollPosYOld );
03868             return;
03869         }
03870
03871         // 1999.12.18 クライアント領域内ではタイマー自動ドラッグ+ロールしない
03872         return;
03873
03874 // 2001.12.21 hor 以下、実行されないのでコメントアウトします (行頭////はもともとコメント行です)
03876 //      RECT rc2;
03877 //      rc2 = rc;
03878 //      rc2.bottom = rc.top + m_nViewAlignTop + ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
03879 //      if( PtInRect( &rc2, po )
03880 //       && 0 < m_nViewTopLine
03881 //      ){
03882 //          OnMOUSEMOVE( 0, m_nMouseRollPosXOld, m_nMouseRollPosYOld );
03883 //          return;
03884 //      }
03885 //      rc2 = rc;
03886 //      rc2.top = rc.bottom - ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
03887 //      if( PtInRect( &rc2, po )
03888 //          && m_pcEditDoc->m_cLayoutMgr.GetLineCount() > m_nViewTopLine + m_nViewRowNum
03889 //      ){
03890 //          OnMOUSEMOVE( 0, m_nMouseRollPosXOld, m_nMouseRollPosYOld );
03891 //          return;
03892 //      }
03893 //
03899     }
03900     return;
03901 }
03902
03907 BOOL CEditView::KeyWordHelpSearchDict( LID_SKH nID, POINT* po, RECT* rc )
03908 {
03909     CMemory     cmemCurText;
03910     char*       pszWork;
03911     int         nWorkLength;
03912     int         i;
03913
03914     /* キーワードヘルプを使用するか？ */
03915     if( !m_pcEditDoc->GetDocumentAttribute().m_bUseKeyWordHelp )    /* キーワードヘルプ機能を使用する */    // 2006.04.10 fon
03916         goto end_of_search;
03917     /* フォーカスがあるか？ */
03918     if( !(m_nCaretWidth > 0) )
03919         goto end_of_search;
03920     /* ウィンドウ内にマウスカーソルがあるか？ */
03921     GetCursorPos( po );
03922     GetWindowRect( m_hWnd, rc );
03923     if( !PtInRect( rc, *po ) )
03924         goto end_of_search;
03925     switch(nID){
03926     case LID_SKH_ONTIMER:
03927         /* 右コメントの１～３でない場合 */
03928         if(!( m_bInMenuLoop == FALSE    &&          /* １．メニュー モーダル ループに入っていない */
03929             0 != m_dwTipTimer           &&          /* ２．辞書Tipを表示していない */
03930             300 < ::GetTickCount() - m_dwTipTimer   /* ３．一定時間以上、マウスが固定されている */
03931         ) ) goto end_of_search;
03932         break;
03933     case LID_SKH_POPUPMENU_R:
03934         if(!( m_bInMenuLoop == FALSE    //&&            /* １．メニュー モーダル ループに入っていない */
03935         //  0 != m_dwTipTimer           &&          /* ２．辞書Tipを表示していない */
03936         //  1000 < ::GetTickCount() - m_dwTipTimer  /* ３．一定時間以上、マウスが固定されている */
03937         ) ) goto end_of_search;
03938         break;
03939     default:
03940 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, _T("作者に教えて欲しいエラー"),
03941         _T("CEditView::KeyWordHelpSearchDict\nnID=%d") );
03942     }
03943     /* 選択範囲のデータを取得(複数行選択の場合は先頭の行のみ) */
03944     if( GetSelectedData( cmemCurText, TRUE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy ) ){
03945         pszWork = cmemCurText.GetPtr();
03946         nWorkLength = lstrlen( pszWork );
03947         for( i = 0; i < nWorkLength; ++i ){
03948             if( pszWork[i] == '\0' ||
03949                 pszWork[i] == CR ||
03950                 pszWork[i] == LF ){
03951                 break;
03952             }
03953         }
03954         char*   pszBuf = new char[i + 1];
03955         memcpy( pszBuf, pszWork, i );
03956         pszBuf[i] = '\0';
03957         cmemCurText.SetData( pszBuf, i );
03958         delete [] pszBuf;
03959     }/* キャレット位置の単語を取得する処理 */   // 2006.03.24 fon
03960     else if(m_pShareData->m_Common.m_bUseCaretKeyWord){
03961         if(!GetCurrentWord(&cmemCurText))
03962             goto end_of_search;
03963     }else
03964         goto end_of_search;
03965
03966     if( CMemory::IsEqual( cmemCurText, m_cTipWnd.m_cKey ) &&    /* 既に検索済みか */
03967         (!m_cTipWnd.m_KeyWasHit) )                              /* 該当するキーがなかった */
03968         goto end_of_search;
03969     m_cTipWnd.m_cKey = cmemCurText;
03970
03971     /* 検索実行 */
03972     if( FALSE == KeySearchCore(&m_cTipWnd.m_cKey) )
03973         goto end_of_search;
03974     m_dwTipTimer = 0;       /* 辞書Tipを表示している */
03975     m_poTipCurPos = *po;    /* 現在のマウスカーソル位置 */
03976     return TRUE;            /* ここまで来ていればヒット・ワード */
03977
03978     /* キーワードヘルプ表示処理終了 */
03979     end_of_search:
03980     return FALSE;
03981 }
03982
03987 BOOL CEditView::KeySearchCore( const CMemory* pcmemCurText )
03988 {
03989     CMemory*    pcmemRefKey;
03990     CMemory*    pcmemRefText;
03991     LPSTR       pszWork;
03992     int         nCmpLen = STRNCMP_MAX; // 2006.04.10 fon
03993     int         nLine; // 2006.04.10 fon
03994
03995
03996     int nTypeNo = m_pcEditDoc->GetDocumentType();
03997     m_cTipWnd.m_cInfo.SetDataSz( "" );  /* tooltipバッファ初期化 */
03998     /* 1行目にキーワード表示の場合 */
03999     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpKeyDisp){   /* キーワードも表示する */  // 2006.04.10 fon
04000         m_cTipWnd.m_cInfo.AppendSz( "[ " );
04001         m_cTipWnd.m_cInfo.AppendSz( pcmemCurText->GetPtr() );
04002         m_cTipWnd.m_cInfo.AppendSz( " ]" );
04003     }
04004     /* 途中まで一致を使う場合 */
04005     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpPrefix)
04006         nCmpLen = lstrlen( pcmemCurText->GetPtr() );    // 2006.04.10 fon
04007     m_cTipWnd.m_KeyWasHit = FALSE;
04008     for(int i=0;i<m_pShareData->m_Types[nTypeNo].m_nKeyHelpNum;i++){    //最大数：MAX_KEYHELP_FILE
04009         if( 1 == m_pShareData->m_Types[nTypeNo].m_KeyHelpArr[i].m_nUse ){
04010             if(m_cDicMgr.Search( pcmemCurText->GetPtr(), nCmpLen, &pcmemRefKey, &pcmemRefText, m_pShareData->m_Types[nTypeNo].m_KeyHelpArr[i].m_szPath, &nLine )){  // 2006.04.10 fon (nCmpLen,pcmemRefKey,nSearchLine)引数を追加
04011                 /* 該当するキーがある */
04012                 pszWork = pcmemRefText->GetPtr();
04013                 /* 有効になっている辞書を全部なめて、ヒットの都度説明の継ぎ増し */
04014                 if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpAllSearch){ /* ヒットした次の辞書も検索 */  // 2006.04.10 fon
04015                     /* バッファに前のデータが詰まっていたらseparator挿入 */
04016                     if(m_cTipWnd.m_cInfo.GetLength() != 0)
04017                         m_cTipWnd.m_cInfo.AppendSz( "\n--------------------\n■" );
04018                     else
04019                         m_cTipWnd.m_cInfo.AppendSz( "■" ); /* 先頭の場合 */
04020                     /* 辞書のパス挿入 */
04021                     m_cTipWnd.m_cInfo.AppendSz( m_pShareData->m_Types[nTypeNo].m_KeyHelpArr[i].m_szPath );
04022                     m_cTipWnd.m_cInfo.AppendSz( "\n" );
04023                     /* 前方一致でヒットした単語を挿入 */
04024                     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpPrefix){    /* 選択範囲で前方一致検索 */
04025                         m_cTipWnd.m_cInfo.AppendSz( pcmemRefKey->GetPtr() );
04026                         m_cTipWnd.m_cInfo.AppendSz( " >>\n" );
04027                     }/* 調査した「意味」を挿入 */
04028                     m_cTipWnd.m_cInfo.AppendSz( pszWork );
04029                     delete pcmemRefText;
04030                     delete pcmemRefKey; // 2006.07.02 genta
04031                     /* タグジャンプ用の情報を残す */
04032                     if(FALSE == m_cTipWnd.m_KeyWasHit){
04033                         m_cTipWnd.m_nSearchDict=i;  /* 辞書を開くとき最初にヒットした辞書を開く */
04034                         m_cTipWnd.m_nSearchLine=nLine;
04035                         m_cTipWnd.m_KeyWasHit = TRUE;
04036                     }
04037                 }else{  /* 最初のヒット項目のみ返す場合 */
04038                     /* キーワードが入っていたらseparator挿入 */
04039                     if(m_cTipWnd.m_cInfo.GetLength() != 0)
04040                         m_cTipWnd.m_cInfo.AppendSz( "\n--------------------\n" );
04041                     /* 前方一致でヒットした単語を挿入 */
04042                     if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyHelpPrefix){    /* 選択範囲で前方一致検索 */
04043                         m_cTipWnd.m_cInfo.AppendSz( pcmemRefKey->GetPtr() );
04044                         m_cTipWnd.m_cInfo.AppendSz( " >>\n" );
04045                     }/* 調査した「意味」を挿入 */
04046                     m_cTipWnd.m_cInfo.AppendSz( pszWork );
04047                     delete pcmemRefText;
04048                     delete pcmemRefKey; // 2006.07.02 genta
04049                     /* タグジャンプ用の情報を残す */
04050                     m_cTipWnd.m_nSearchDict=i;
04051                     m_cTipWnd.m_nSearchLine=nLine;
04052                     m_cTipWnd.m_KeyWasHit = TRUE;
04053                     return TRUE;
04054                 }
04055             }
04056         }
04057     }
04058     if(m_cTipWnd.m_KeyWasHit == TRUE){
04059             return TRUE;
04060     }
04061     /* 該当するキーがなかった場合 */
04062     return FALSE;
04063 }
04064
04065
04066 /* マウス移動のメッセージ処理 */
04067 void CEditView::OnMOUSEMOVE( WPARAM fwKeys, int xPos , int yPos )
04068 {
04069 //#ifdef _DEBUG
04070 //  gm_ProfileOutput = 1;
04071 //  CRunningTimer cRunningTimer( (const char*)"CEditView::OnMOUSEMOVE" );
04072 //#endif
04073     int         nScrollRowNum;
04074     POINT       po;
04075     const char* pLine;
04076     int         nLineLen;
04077     int         nLineFrom;
04078     int         nColmFrom;
04079     int         nLineTo;
04080     int         nColmTo;
04081     int         nIdx;
04082     int         nWorkF;
04083     int         nWorkT;
04084
04085     int         nSelectLineBgnFrom_Old;     /* 範囲選択開始行(原点) */
04086     int         nSelectColmBgnFrom_Old;     /* 範囲選択開始桁(原点) */
04087     int         nSelectLineBgnTo_Old;       /* 範囲選択開始行(原点) */
04088     int         nSelectColmBgnTo_Old;       /* 範囲選択開始桁(原点) */
04089     int         nSelectLineFrom_Old;
04090     int         nSelectColmFrom_Old;
04091     int         nSelectLineTo_Old;
04092     int         nSelectColmTo_Old;
04093     int         nSelectLineFrom;
04094     int         nSelectColmFrom;
04095     int         nSelectLineTo;
04096     int         nSelectColmTo;
04097
04098     nSelectLineBgnFrom_Old  = m_nSelectLineBgnFrom;     /* 範囲選択開始行(原点) */
04099     nSelectColmBgnFrom_Old  = m_nSelectColmBgnFrom;     /* 範囲選択開始桁(原点) */
04100     nSelectLineBgnTo_Old    = m_nSelectLineBgnTo;       /* 範囲選択開始行(原点) */
04101     nSelectColmBgnTo_Old    = m_nSelectColmBgnTo;       /* 範囲選択開始桁(原点) */
04102     nSelectLineFrom_Old     = m_nSelectLineFrom;
04103     nSelectColmFrom_Old     = m_nSelectColmFrom;
04104     nSelectLineTo_Old       = m_nSelectLineTo;
04105     nSelectColmTo_Old       = m_nSelectColmTo;
04106
04107     if( !m_bBeginSelect ){  /* 範囲選択中 */
04108         ::GetCursorPos( &po );
04109         //  2001/06/18 asa-o: 補完ウィンドウが表示されていない
04110         if(!m_bHokan){
04111             /* 辞書Tipが起動されている */
04112             if( 0 == m_dwTipTimer ){
04113                 if( (m_poTipCurPos.x != po.x || m_poTipCurPos.y != po.y ) ){
04114                     /* 辞書Tipを消す */
04115                     m_cTipWnd.Hide();
04116                     m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
04117                 }
04118             }else{
04119                 m_dwTipTimer = ::GetTickCount();        /* 辞書Tip起動タイマー */
04120             }
04121         }
04122         /* 現在のマウスカーソル位置→レイアウト位置 */
04123         int nNewX = m_nViewLeftCol + (xPos - m_nViewAlignLeft) / ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
04124         int nNewY = m_nViewTopLine + (yPos - m_nViewAlignTop) / ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace );
04125         int         nUrlLine;   // URLの行(折り返し単位)
04126         int         nUrlIdxBgn; // URLの位置(行頭からのバイト位置)
04127         int         nUrlLen;    // URLの長さ(バイト数)
04128
04129
04130         /* 選択テキストのドラッグ中か */
04131         if( m_bDragMode ){
04132             if( TRUE == m_pShareData->m_Common.m_bUseOLE_DragDrop ){    /* OLEによるドラッグ & ドロップを使う */
04133                 /* 座標指定によるカーソル移動 */
04134                 nScrollRowNum = MoveCursorToPoint( xPos , yPos );
04135             }
04136         }else{
04137             /* 行選択エリア? */
04138             if( xPos < m_nViewAlignLeft || yPos < m_nViewAlignTop ){    //  2002/2/10 aroka
04139                 /* 矢印カーソル */
04140                 if( yPos >= m_nViewAlignTop )
04141                     ::SetCursor( ::LoadCursor( m_hInstance, MAKEINTRESOURCE( IDC_CURSOR_RVARROW ) ) );
04142                 else
04143                     ::SetCursor( ::LoadCursor( NULL, IDC_ARROW ) );
04144             }else
04145
04146             if( TRUE == m_pShareData->m_Common.m_bUseOLE_DragDrop   /* OLEによるドラッグ & ドロップを使う */
04147              && TRUE == m_pShareData->m_Common.m_bUseOLE_DropSource /* OLEによるドラッグ元にするか */
04148              && 0 == IsCurrentPositionSelected(                     /* 指定カーソル位置が選択エリア内にあるか */
04149                 nNewX,  // カーソル位置X
04150                 nNewY   // カーソル位置Y
04151                 )
04152             ){
04153                 /* 矢印カーソル */
04154                 ::SetCursor( ::LoadCursor( NULL, IDC_ARROW ) );
04155             }else
04156             /* カーソル位置にURLが有る場合 */
04157             //  Sep. 7, 2003 genta URLの強調表示OFFの時はURLチェックも行わない
04158             if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_URL].m_bDisp &&
04159                 IsCurrentPositionURL(
04160                 nNewX,          // カーソル位置X
04161                 nNewY,          // カーソル位置Y
04162                 &nUrlLine,      // URLの行(改行単位)
04163                 &nUrlIdxBgn,    // URLの位置(行頭からのバイト位置)
04164                 &nUrlLen,       // URLの長さ(バイト数)
04165                 NULL/*&pszURL*/ // URL受け取り先
04166             ) ){
04167                 /* 手カーソル */
04168                 ::SetCursor( ::LoadCursor( m_hInstance, MAKEINTRESOURCE( IDC_CURSOR_HAND ) ) );
04169             }else{
04170                 //migemo isearch 2004.10.22
04171                 if( m_nISearchMode > 0 ){
04172                     if (m_nISearchDirection == 1){
04173                         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_F)));
04174                     }else{
04175                         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_B)));
04176                     }
04177                 }else
04178                 /* アイビーム */
04179                 ::SetCursor( ::LoadCursor( NULL, IDC_IBEAM ) );
04180             }
04181         }
04182         return;
04183     }
04184     ::SetCursor( ::LoadCursor( NULL, IDC_IBEAM ) );
04185     if( m_bBeginBoxSelect ){    /* 矩形範囲選択中 */
04186         /* 座標指定によるカーソル移動 */
04187         nScrollRowNum = MoveCursorToPoint( xPos , yPos );
04188         /* 現在のカーソル位置によって選択範囲を変更 */
04189         ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
04190         m_nMouseRollPosXOld = xPos; /* マウス範囲選択前回位置(X座標) */
04191         m_nMouseRollPosYOld = yPos; /* マウス範囲選択前回位置(Y座標) */
04192     }else{
04193         /* 座標指定によるカーソル移動 */
04194         if( xPos < m_nViewAlignLeft && m_bBeginLineSelect ){
04195             nScrollRowNum = MoveCursorToPoint( m_nViewAlignLeft - m_nViewLeftCol * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) , yPos + ( m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace ) );
04196         }else{
04197             nScrollRowNum = MoveCursorToPoint( xPos , yPos );
04198         }
04199         m_nMouseRollPosXOld = xPos; /* マウス範囲選択前回位置(X座標) */
04200         m_nMouseRollPosYOld = yPos; /* マウス範囲選択前回位置(Y座標) */
04201
04202         /* CTRLキーが押されていたか */
04203 //      if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL ) ){
04204         if( !m_bBeginWordSelect ){
04205             /* 現在のカーソル位置によって選択範囲を変更 */
04206             ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
04207         }else{
04208 //          /* 現在のカーソル位置によって選択範囲を変更 */
04209 //          ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
04210             /* 現在のカーソル位置によって選択範囲を変更(テストのみ) */
04211             ChangeSelectAreaByCurrentCursorTEST(
04212                 (int)m_nCaretPosX,
04213                 (int)m_nCaretPosY,
04214                 (int&)nSelectLineFrom,
04215                 (int&)nSelectColmFrom,
04216                 (int&)nSelectLineTo,
04217                 (int&)nSelectColmTo
04218             );
04219             /* 選択範囲に変更なし */
04220             if( nSelectLineFrom_Old == nSelectLineFrom
04221              && nSelectColmFrom_Old == nSelectColmFrom
04222              && nSelectLineTo_Old == nSelectLineTo
04223              && nSelectColmTo_Old == nSelectColmTo
04224             ){
04225                 ChangeSelectAreaByCurrentCursor(
04226                     (int)m_nCaretPosX,
04227                     (int)m_nCaretPosY
04228                 );
04229                 return;
04230             }
04231             const CLayout* pcLayout;
04232             if( NULL != ( pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout ) ) ){
04233                 nIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
04234                 /* 現在位置の単語の範囲を調べる */
04235                 if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
04236                     m_nCaretPosY, nIdx,
04237                     &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, NULL, NULL )
04238                 ){
04239                     /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
04240                     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineFrom, &nLineLen, &pcLayout );
04241                     nColmFrom = LineIndexToColmn( pcLayout, nColmFrom );
04242                     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineTo, &nLineLen, &pcLayout );
04243                     nColmTo = LineIndexToColmn( pcLayout, nColmTo );
04244
04245                     nWorkF = IsCurrentPositionSelectedTEST(
04246                         nColmFrom,  // カーソル位置X
04247                         nLineFrom,  // カーソル位置Y
04248                         (int)nSelectLineFrom,
04249                         (int)nSelectColmFrom,
04250                         (int)nSelectLineTo,
04251                         (int)nSelectColmTo
04252                     );
04253                     nWorkT = IsCurrentPositionSelectedTEST(
04254                         nColmTo,    // カーソル位置X
04255                         nLineTo,    // カーソル位置Y
04256                         (int)nSelectLineFrom,
04257                         (int)nSelectColmFrom,
04258                         (int)nSelectLineTo,
04259                         (int)nSelectColmTo
04260                     );
04261 //                  MYTRACE( "nWorkF=%d nWorkT=%d\n", nWorkF, nWorkT );
04262                     if( -1 == nWorkF/* || 0 == nWorkF*/ ){
04263                         /* 始点が前方に移動。現在のカーソル位置によって選択範囲を変更 */
04264                         ChangeSelectAreaByCurrentCursor( nColmFrom, nLineFrom );
04265                     }else
04266                     if( /*0 == nWorkT ||*/ 1 == nWorkT ){
04267                         /* 終点が後方に移動。現在のカーソル位置によって選択範囲を変更 */
04268                         ChangeSelectAreaByCurrentCursor( nColmTo, nLineTo );
04269                     }else
04270                     if( nSelectLineFrom_Old == nSelectLineFrom
04271                      && nSelectColmFrom_Old == nSelectColmFrom
04272                     ){
04273                         /* 始点が無変更＝前方に縮小された */
04274                         /* 現在のカーソル位置によって選択範囲を変更 */
04275                         ChangeSelectAreaByCurrentCursor( nColmTo, nLineTo );
04276                     }else
04277                     if( nSelectLineTo_Old == nSelectLineTo
04278                      && nSelectColmTo_Old == nSelectColmTo
04279                     ){
04280                         /* 終点が無変更＝後方に縮小された */
04281                         /* 現在のカーソル位置によって選択範囲を変更 */
04282                         ChangeSelectAreaByCurrentCursor( nColmFrom, nLineFrom );
04283                     }
04284                 }else{
04285                     /* 現在のカーソル位置によって選択範囲を変更 */
04286                     ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
04287                 }
04288             }else{
04289                 /* 現在のカーソル位置によって選択範囲を変更 */
04290                 ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
04291             }
04292         }
04293     }
04294     return;
04295 }
04296 //m_dwTipTimerm_dwTipTimerm_dwTipTimer
04297
04298
04299
04300
04301 /* マウスホイールのメッセージ処理 */
04302 LRESULT CEditView::OnMOUSEWHEEL( WPARAM wParam, LPARAM lParam )
04303 {
04304     WORD    fwKeys;
04305     short   zDelta;
04306     short   xPos;
04307     short   yPos;
04308     int     i;
04309     int     nScrollCode;
04310     int     nRollLineNum;
04311
04312     fwKeys = LOWORD(wParam);            // key flags
04313     zDelta = (short) HIWORD(wParam);    // wheel rotation
04314     xPos = (short) LOWORD(lParam);      // horizontal position of pointer
04315     yPos = (short) HIWORD(lParam);      // vertical position of pointer
04316 //  MYTRACE( "CEditView::DispatchEvent() WM_MOUSEWHEEL fwKeys=%xh zDelta=%d xPos=%d yPos=%d \n", fwKeys, zDelta, xPos, yPos );
04317     if( 0 < zDelta ){
04318         nScrollCode = SB_LINEUP;
04319     }else{
04320         nScrollCode = SB_LINEDOWN;
04321     }
04322
04323
04324
04325
04326     /* マウスホイールによるスクロール行数をレジストリから取得 */
04327     nRollLineNum = 6;
04328     /* レジストリの存在チェック */
04329     // 2006.06.03 Moca ReadRegistry に書き換え
04330     unsigned int uDataLen;  // size of value data
04331     char szValStr[256];
04332     uDataLen = sizeof(szValStr) - 1;
04333     if( ReadRegistry( HKEY_CURRENT_USER, "Control Panel\\desktop", "WheelScrollLines", szValStr, uDataLen ) ){
04334         nRollLineNum = ::atoi( szValStr );
04335     }
04336     if( -1 == nRollLineNum ){/* 「1画面分スクロールする」 */
04337         nRollLineNum = m_nViewRowNum;   // 表示域の行数
04338     }else{
04339         if( nRollLineNum < 1 ){
04340             nRollLineNum = 1;
04341         }
04342         if( nRollLineNum > 30 ){    //@@@ YAZAKI 2001.12.31 10→30へ。
04343             nRollLineNum = 30;
04344         }
04345     }
04346     for( i = 0; i < nRollLineNum; ++i ){
04347 //      ::PostMessage( m_hWnd, WM_VSCROLL, MAKELONG( nScrollCode, 0 ), (WPARAM)m_hwndVScrollBar );
04348 //      ::SendMessage( m_hWnd, WM_VSCROLL, MAKELONG( nScrollCode, 0 ), (WPARAM)m_hwndVScrollBar );
04349
04350         //  Sep. 11, 2004 genta 同期スクロール行数
04351         int line;
04352
04353         if( nScrollCode == SB_LINEUP ){
04354             line = ScrollAtV( m_nViewTopLine - 1 );
04355         }else{
04356             line = ScrollAtV( m_nViewTopLine + 1 );
04357         }
04358         SyncScrollV( line );
04359     }
04360     return 0;
04361 }
04362
04363
04364
04365
04366
04367 /* 現在のカーソル位置から選択を開始する */
04368 void CEditView::BeginSelectArea( void )
04369 {
04370     m_nSelectLineBgnFrom = m_nCaretPosY;/* 範囲選択開始行(原点) */
04371     m_nSelectColmBgnFrom = m_nCaretPosX;/* 範囲選択開始桁(原点) */
04372     m_nSelectLineBgnTo = m_nCaretPosY;  /* 範囲選択開始行(原点) */
04373     m_nSelectColmBgnTo = m_nCaretPosX;  /* 範囲選択開始桁(原点) */
04374
04375     m_nSelectLineFrom = m_nCaretPosY;   /* 範囲選択開始行 */
04376     m_nSelectColmFrom = m_nCaretPosX;   /* 範囲選択開始桁 */
04377     m_nSelectLineTo = m_nCaretPosY;     /* 範囲選択終了行 */
04378     m_nSelectColmTo = m_nCaretPosX;     /* 範囲選択終了桁 */
04379     return;
04380 }
04381
04382
04383
04384
04385
04386 /* 現在の選択範囲を非選択状態に戻す */
04387 void CEditView::DisableSelectArea( BOOL bDraw )
04388 {
04389     m_nSelectLineFromOld = m_nSelectLineFrom;   /* 範囲選択開始行 */
04390     m_nSelectColmFromOld = m_nSelectColmFrom;   /* 範囲選択開始桁 */
04391     m_nSelectLineToOld = m_nSelectLineTo;       /* 範囲選択終了行 */
04392     m_nSelectColmToOld = m_nSelectColmTo;       /* 範囲選択終了桁 */
04393 //  m_nSelectLineFrom = 0;
04394 //  m_nSelectColmFrom = 0;
04395 //  m_nSelectLineTo = 0;
04396 //  m_nSelectColmTo = 0;
04397
04398     m_nSelectLineFrom   = -1;
04399     m_nSelectColmFrom   = -1;
04400     m_nSelectLineTo     = -1;
04401     m_nSelectColmTo     = -1;
04402
04403     if( bDraw ){
04404         DrawSelectArea();
04405         m_bDrawSelectArea = FALSE;  // 02/12/13 ai
04406     }
04407     m_bSelectingLock     = FALSE;   /* 選択状態のロック */
04408     m_nSelectLineFromOld = 0;       /* 範囲選択開始行 */
04409     m_nSelectColmFromOld = 0;       /* 範囲選択開始桁 */
04410     m_nSelectLineToOld = 0;         /* 範囲選択終了行 */
04411     m_nSelectColmToOld = 0;         /* 範囲選択終了桁 */
04412     m_bBeginBoxSelect = FALSE;      /* 矩形範囲選択中 */
04413     m_bBeginLineSelect = FALSE;     /* 行単位選択中 */
04414     m_bBeginWordSelect = FALSE;     /* 単語単位選択中 */
04415
04416     // 2002.02.16 hor 直前のカーソル位置をリセット
04417     m_nCaretPosX_Prev=m_nCaretPosX;
04418
04419     //  From Here Dec. 6, 2000 genta
04420     //  To Here Dec. 6, 2000 genta
04421
04422     /* カーソル行アンダーラインのON */
04423     m_cUnderLine.CaretUnderLineON( bDraw );
04424     return;
04425 }
04426
04427
04428
04429
04430
04431 /* 現在のカーソル位置によって選択範囲を変更 */
04432 void CEditView::ChangeSelectAreaByCurrentCursor( int nCaretPosX, int nCaretPosY )
04433 {
04434 //  MYTRACE( "ChangeSelectAreaByCurrentCursor( %d, %d )\n", nCaretPosX, nCaretPosY );
04435 //  int         nLineFrom;
04436 //  int         nColmFrom;
04437 //  int         nLineTo;
04438 //  int         nColmTo;
04439 //  const char* pLine;
04440 //  int         nLineLen;
04441 //  int         nIdx;
04442
04443     m_nSelectLineFromOld = m_nSelectLineFrom;   /* 範囲選択開始行 */
04444     m_nSelectColmFromOld = m_nSelectColmFrom;   /* 範囲選択開始桁 */
04445     m_nSelectLineToOld = m_nSelectLineTo;       /* 範囲選択終了行 */
04446     m_nSelectColmToOld = m_nSelectColmTo;       /* 範囲選択終了桁 */
04447
04448     //  2002/04/08 YAZAKI コードの重複を排除
04449     ChangeSelectAreaByCurrentCursorTEST(
04450         nCaretPosX,
04451         nCaretPosY,
04452         m_nSelectLineFrom,
04453         m_nSelectColmFrom,
04454         m_nSelectLineTo,
04455         m_nSelectColmTo
04456     );
04457     /* 選択領域の描画 */
04458     DrawSelectArea();
04459     return;
04460 }
04461
04462 /* 現在のカーソル位置によって選択範囲を変更(テストのみ) */
04463 void CEditView::ChangeSelectAreaByCurrentCursorTEST(
04464     int     nCaretPosX,
04465     int     nCaretPosY,
04466     int&    nSelectLineFrom,
04467     int&    nSelectColmFrom,
04468     int&    nSelectLineTo,
04469     int&    nSelectColmTo
04470 )
04471 {
04472 //  MYTRACE( "ChangeSelectAreaByCurrentCursor( %d, %d )\n", nCaretPosX, nCaretPosY );
04473 //  int         nLineFrom;
04474 //  int         nColmFrom;
04475 //  int         nLineTo;
04476 //  int         nColmTo;
04477 //  const char* pLine;
04478 //  int         nLineLen;
04479 //  int         nIdx;
04480
04481
04482     if( m_nSelectLineBgnFrom == m_nSelectLineBgnTo /* 範囲選択開始行(原点) */
04483      && m_nSelectColmBgnFrom == m_nSelectColmBgnTo ){
04484         if( nCaretPosY == m_nSelectLineBgnFrom
04485          && nCaretPosX == m_nSelectColmBgnFrom ){
04486             /* 選択解除 */
04487             nSelectLineFrom = -1;
04488             nSelectColmFrom  = -1;
04489             nSelectLineTo = -1;
04490             nSelectColmTo = -1;
04491         }else
04492         if( nCaretPosY < m_nSelectLineBgnFrom
04493          || ( nCaretPosY == m_nSelectLineBgnFrom && nCaretPosX < m_nSelectColmBgnFrom ) ){
04494             nSelectLineFrom = nCaretPosY;
04495             nSelectColmFrom = nCaretPosX;
04496             nSelectLineTo = m_nSelectLineBgnFrom;
04497             nSelectColmTo = m_nSelectColmBgnFrom;
04498         }else{
04499             nSelectLineFrom = m_nSelectLineBgnFrom;
04500             nSelectColmFrom = m_nSelectColmBgnFrom;
04501             nSelectLineTo = nCaretPosY;
04502             nSelectColmTo = nCaretPosX;
04503         }
04504     }else{
04505         /* 常時選択範囲の範囲内 */
04506         if( ( nCaretPosY > m_nSelectLineBgnFrom || ( nCaretPosY == m_nSelectLineBgnFrom && nCaretPosX >= m_nSelectColmBgnFrom ) )
04507          && ( nCaretPosY < m_nSelectLineBgnTo || ( nCaretPosY == m_nSelectLineBgnTo && nCaretPosX < m_nSelectColmBgnTo ) )
04508         ){
04509             nSelectLineFrom = m_nSelectLineBgnFrom;
04510             nSelectColmFrom = m_nSelectColmBgnFrom;
04511             if ( nCaretPosY == m_nSelectLineBgnFrom && nCaretPosX == m_nSelectColmBgnFrom ){
04512                 nSelectLineTo = m_nSelectLineBgnTo; //  m_nSelectLineBgnTo;
04513                 nSelectColmTo = m_nSelectColmBgnTo; //  m_nSelectColmBgnTo;
04514             }
04515             else {
04516                 nSelectLineTo = nCaretPosY; //  m_nSelectLineBgnTo;
04517                 nSelectColmTo = nCaretPosX; //  m_nSelectColmBgnTo;
04518             }
04519         }else
04520         if( !( nCaretPosY > m_nSelectLineBgnFrom || ( nCaretPosY == m_nSelectLineBgnFrom && nCaretPosX >= m_nSelectColmBgnFrom ) ) ){
04521             /* 常時選択範囲の前方向 */
04522             nSelectLineFrom = nCaretPosY;
04523             nSelectColmFrom  = nCaretPosX;
04524             nSelectLineTo = m_nSelectLineBgnTo;
04525             nSelectColmTo = m_nSelectColmBgnTo;
04526         }else{
04527             /* 常時選択範囲の後ろ方向 */
04528             nSelectLineFrom = m_nSelectLineBgnFrom;
04529             nSelectColmFrom = m_nSelectColmBgnFrom;
04530             nSelectLineTo = nCaretPosY;
04531             nSelectColmTo = nCaretPosX;
04532         }
04533     }
04534     return;
04535
04536 }
04537
04538
04539 /* マウス左ボタン開放のメッセージ処理 */
04540 void CEditView::OnLBUTTONUP( WPARAM fwKeys, int xPos , int yPos )
04541 {
04542 //  MYTRACE( "OnLBUTTONUP()\n" );
04543     CMemory     cmemBuf, cmemClip;
04544
04545     /* 範囲選択終了 & マウスキャプチャーおわり */
04546     if( m_bBeginSelect ){   /* 範囲選択中 */
04547         /* マウス キャプチャを解放 */
04548         ::ReleaseCapture();
04549         ShowCaret_( m_hWnd ); // 2002/07/22 novice
04550
04551 //      /* タイマー終了 */
04552 //      ::KillTimer( m_hWnd, IDT_ROLLMOUSE );
04553         m_bBeginSelect = FALSE;
04554
04555 //      if( !IsTextSelected() ){    /* テキストが選択されているか */
04556             if( m_nSelectLineFrom == m_nSelectLineTo &&
04557                 m_nSelectColmFrom == m_nSelectColmTo
04558             ){
04559                 /* 現在の選択範囲を非選択状態に戻す */
04560                 DisableSelectArea( TRUE );
04561             }
04562 //      }
04563         m_cUnderLine.UnLock();
04564     }
04565     return;
04566 }
04567
04568
04569
04570
04571
04572 /* マウス左ボタンダブルクリック */
04573 void CEditView::OnLBUTTONDBLCLK( WPARAM fwKeys, int xPos , int yPos )
04574 {
04575 //  MYTRACE( "OnLBUTTONDBLCLK()\n" );
04576
04577     int         nIdx;
04578     int         nFuncID;
04579     int         nUrlLine;   // URLの行(折り返し単位)
04580     int         nUrlIdxBgn; // URLの位置(行頭からのバイト位置)
04581     int         nUrlLen;    // URLの長さ(バイト数)
04582     char*       pszURL;
04583     const char* pszMailTo = "mailto:";
04584
04585     /* カーソル位置にURLが有る場合のその範囲を調べる */
04586     //  Sep. 7, 2003 genta URLの強調表示OFFの時はURLチェックも行わない
04587     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_URL].m_bDisp &&
04588         IsCurrentPositionURL(
04589         m_nCaretPosX,   // カーソル位置X
04590         m_nCaretPosY,   // カーソル位置Y
04591         &nUrlLine,      // URLの行(改行単位)
04592         &nUrlIdxBgn,    // URLの位置(行頭からのバイト位置)
04593         &nUrlLen,       // URLの長さ(バイト数)
04594         &pszURL         // URL受け取り先
04595     ) ){
04596         char*       pszWork = NULL;
04597         char*       pszOPEN;
04598
04599         /* URLを開く */
04600         /* 現在位置がメールアドレスならば、NULL以外と、その長さを返す */
04601         if( TRUE == IsMailAddress( pszURL, lstrlen( pszURL ), NULL ) ){
04602             pszWork = new char[ lstrlen( pszURL ) + lstrlen( pszMailTo ) + 1];
04603             strcpy( pszWork, pszMailTo );
04604             strcat( pszWork, pszURL );
04605             pszOPEN = pszWork;
04606         }else{
04607             if( _tcsnicmp( pszURL, _T("ttp://"), 6 ) == 0 ){    //抑止URL
04608                 pszWork = new TCHAR[ _tcslen( pszURL ) + 1 + 1 ];
04609                 _tcscpy( pszWork, _T("h") );
04610                 _tcscat( pszWork, pszURL );
04611                 pszOPEN = pszWork;
04612             }else if( _tcsnicmp( pszURL, _T("tp://"), 5 ) == 0 ){   //抑止URL
04613                 pszWork = new TCHAR[ _tcslen( pszURL ) + 2 + 1 ];
04614                 _tcscpy( pszWork, _T("ht") );
04615                 _tcscat( pszWork, pszURL );
04616                 pszOPEN = pszWork;
04617             }else{
04618                 pszOPEN = pszURL;
04619             }
04620         }
04621         ::ShellExecute( NULL, "open", pszOPEN, NULL, NULL, SW_SHOW );
04622         delete [] pszURL;
04623         if( NULL != pszWork ){
04624             delete [] pszWork;
04625         }
04626         return;
04627     }
04628
04629     /* GREP出力モードまたはデバッグモード かつ マウス左ボタンダブルクリックでタグジャンプ の場合 */
04630     //  2004.09.20 naoh 外部コマンドの出力からTagjumpできるように
04631     if( (m_pcEditDoc->m_bGrepMode || m_pcEditDoc->m_bDebugMode) && m_pShareData->m_Common.m_bGTJW_LDBLCLK ){
04632         /* タグジャンプ機能 */
04633         Command_TAGJUMP();
04634         return;
04635     }
04636
04637 // novice 2004/10/10
04638     /* Shift,Ctrl,Altキーが押されていたか */
04639     nIdx = getCtrlKeyState();
04640     /* マウス左クリックに対応する機能コードはm_Common.m_pKeyNameArr[0]に入っている */
04641     nFuncID = m_pShareData->m_pKeyNameArr[0].m_nFuncCodeArr[nIdx];
04642     if( nFuncID != 0 ){
04643         /* コマンドコードによる処理振り分け */
04644         //  May 19, 2006 genta マウスからのメッセージはCMD_FROM_MOUSEを上位ビットに入れて送る
04645 //      ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, 0 ),  (LPARAM)NULL );
04646         ::SendMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, CMD_FROM_MOUSE ),  (LPARAM)NULL );
04647     }
04648
04649     /*  2007.07.09 maru 機能コードの判定を追加
04650         ダブルクリックからのドラッグでは単語単位の範囲選択(エディタの一般的動作)になるが
04651         この動作は、ダブルクリック＝単語選択を前提としたもの。
04652         キー割り当ての変更により、ダブルクリック≠単語選択のときには m_bBeginWordSelect = TRUE
04653         にすると、処理の内容によっては表示がおかしくなるので、ここで抜けるようにする。
04654     */
04655     if(F_SELECTWORD != nFuncID) return;
04656
04657     /* ドラッグ選択開始 */
04658     m_nMouseRollPosXOld = xPos;         /* マウス範囲選択前回位置(X座標) */
04659     m_nMouseRollPosYOld = yPos;         /* マウス範囲選択前回位置(Y座標) */
04660     /* 範囲選択開始 & マウスキャプチャー */
04661     m_bBeginSelect = TRUE;              /* 範囲選択中 */
04662     m_bBeginBoxSelect = FALSE;          /* 矩形範囲選択中でない */
04663     m_bBeginLineSelect = FALSE;         /* 行単位選択中 */
04664     m_bBeginWordSelect = TRUE;          /* 単語単位選択中 */
04665
04666     if( m_pShareData->m_Common.m_bFontIs_FIXED_PITCH ){ /* 現在のフォントは固定幅フォントである */
04667         /* ALTキーが押されていたか */
04668         if( (SHORT)0x8000 & ::GetKeyState( VK_MENU ) ){
04669             m_bBeginBoxSelect = TRUE;   /* 矩形範囲選択中 */
04670         }
04671     }
04672     ::SetCapture( m_hWnd );
04673     HideCaret_( m_hWnd ); // 2002/07/22 novice
04674     if( IsTextSelected() ){
04675         /* 常時選択範囲の範囲 */
04676         m_nSelectLineBgnTo = m_nSelectLineTo;
04677         m_nSelectColmBgnTo = m_nSelectColmTo;
04678     }else{
04679         /* 現在のカーソル位置から選択を開始する */
04680         BeginSelectArea( );
04681     }
04682
04683     return;
04684 }
04685
04686
04687
04688
04689
04690 /* カーソル上下移動処理 */
04691 int CEditView::Cursor_UPDOWN( int nMoveLines, int bSelect )
04692 {
04693     const char*     pLine;
04694     int             nLineLen;
04695     int             nPosX = 0;
04696     int             nPosY = m_nCaretPosY;
04697     int             i;
04698     int             nLineCols;
04699     int             nScrollLines;
04700     const CLayout*  pcLayout;
04701     nScrollLines = 0;
04702     if( nMoveLines > 0 ){
04703         /* カーソルがテキスト最下端行にあるか */
04704         if( m_nCaretPosY + nMoveLines >= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
04705             nMoveLines = m_pcEditDoc->m_cLayoutMgr.GetLineCount() - m_nCaretPosY  - 1;
04706         }
04707         if( nMoveLines <= 0 ){
04708             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
04709             if( NULL != pLine ){
04710                 nLineCols = LineIndexToColmn( pcLayout, nLineLen );
04711                 /* 改行で終わっているか */
04712                 //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
04713                 if( ( EOL_NONE != pcLayout->m_cEol.GetLen() )
04714 //              if( ( pLine[ nLineLen - 1 ] == '\n' || pLine[ nLineLen - 1 ] == '\r' )
04715                  || nLineCols >= m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize()
04716                 ){
04717                     if( bSelect ){
04718                         if( !IsTextSelected() ){    /* テキストが選択されているか */
04719                             /* 現在のカーソル位置から選択を開始する */
04720                             BeginSelectArea();
04721                         }
04722                     }else{
04723                         if( IsTextSelected() ){ /* テキストが選択されているか */
04724                             /* 現在の選択範囲を非選択状態に戻す */
04725                             DisableSelectArea( TRUE );
04726                         }
04727                     }
04728                     nPosX = 0;
04729                     ++nPosY;
04730                     if( bSelect ){
04731                         /* 現在のカーソル位置によって選択範囲を変更 */
04732                         ChangeSelectAreaByCurrentCursor( nPosX, nPosY );
04733                     }
04734                     nScrollLines = MoveCursor( nPosX, nPosY, m_bDrawSWITCH /* TRUE */ ); // YAZAKI.
04735                 }
04736             }
04737             //  Sep. 11, 2004 genta 同期スクロールの関数化
04738             //  MoveCursorでスクロール位置調整済み
04739             //SyncScrollV( nScrollLines );
04740             return nScrollLines;
04741         }
04742     }else{
04743         /* カーソルがテキスト最上端行にあるか */
04744         if( m_nCaretPosY + nMoveLines < 0 ){
04745             nMoveLines = - m_nCaretPosY;
04746         }
04747         if( nMoveLines >= 0 ){
04748             //  Sep. 11, 2004 genta 同期スクロールの関数化
04749             SyncScrollV( nScrollLines );
04750             return nScrollLines;
04751         }
04752     }
04753     if( bSelect ){
04754         if( !IsTextSelected() ){    /* テキストが選択されているか */
04755             /* 現在のカーソル位置から選択を開始する */
04756             BeginSelectArea();
04757         }
04758     }else{
04759         if( IsTextSelected() ){ /* テキストが選択されているか */
04760             /* 現在の選択範囲を非選択状態に戻す */
04761             DisableSelectArea( TRUE );
04762         }
04763     }
04764     /* 次の行のデータを取得 */
04765     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY + nMoveLines, &nLineLen, &pcLayout );
04766     CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
04767     while( !it.end() ){
04768         it.scanNext();
04769         if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
04770             i = nLineLen;
04771             break;
04772         }
04773         if( it.getColumn() + it.getColumnDelta() > m_nCaretPosX_Prev ){
04774             i = it.getIndex();
04775             break;
04776         }
04777         it.addDelta();
04778     }
04779     nPosX += it.getColumn();
04780     if ( it.end() ){
04781         i = it.getIndex();
04782     }
04783
04784     if( i >= nLineLen ){
04785         /* フリーカーソルモードか */
04786         if( m_pShareData->m_Common.m_bIsFreeCursorMode
04787          || IsTextSelected() && m_bBeginBoxSelect   /* 矩形範囲選択中 */
04788         ){
04789             if( m_nCaretPosY + nMoveLines + 1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount()  ){
04790                 if( NULL != pLine ){
04791                     if( pLine[nLineLen - 1] == CR || pLine[nLineLen - 1] == LF ){
04792                         nPosX = m_nCaretPosX_Prev;
04793                     }
04794                 }
04795             }else{
04796                 nPosX = m_nCaretPosX_Prev;
04797             }
04798         }
04799     }
04800     nScrollLines = MoveCursor( nPosX, m_nCaretPosY + nMoveLines, m_bDrawSWITCH /* TRUE */ ); // YAZAKI.
04801     if( bSelect ){
04802 //      if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_UNDERLINE].m_bDisp && !IsTextSelected() && -1 != m_nOldUnderLineY ){
04803 //          HDC     hdc;
04804 //          HPEN    hPen, hPenOld;
04805 //          hdc = ::GetDC( m_hWnd );
04806 //          /* カーソル行アンダーラインの消去 */
04807 //          hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
04808 //          hPenOld = (HPEN)::SelectObject( hdc, hPen );
04809 //          ::MoveToEx(
04810 //              hdc,
04811 //              m_nViewAlignLeft,
04812 //              m_nOldUnderLineY,
04813 //              NULL
04814 //          );
04815 //          ::LineTo(
04816 //              hdc,
04817 //              m_nViewCx + m_nViewAlignLeft,
04818 //              m_nOldUnderLineY
04819 //          );
04820 //          ::SelectObject( hdc, hPenOld );
04821 //          ::DeleteObject( hPen );
04822 //          m_nOldUnderLineY = -1;
04823 //          ::ReleaseDC( m_hWnd, hdc );
04824 //      }
04825         /* 現在のカーソル位置によって選択範囲を変更 */
04826 //      ChangeSelectAreaByCurrentCursor( nPosX, m_nCaretPosY + nMoveLines );
04827         ChangeSelectAreaByCurrentCursor( nPosX, m_nCaretPosY );
04828     }
04829
04830     return nScrollLines;
04831 }
04832
04833
04834
04835
04836
04844 int CEditView::ScrollAtV( int nPos )
04845 {
04846     int         nScrollRowNum;
04847     RECT        rcScrol;
04848     RECT        rcClip;
04849     if( nPos < 0 ){
04850         nPos = 0;
04851     }else
04852     if( (m_pcEditDoc->m_cLayoutMgr.GetLineCount() + 2 )- m_nViewRowNum < nPos ){
04853         nPos = ( m_pcEditDoc->m_cLayoutMgr.GetLineCount() + 2 ) - m_nViewRowNum;
04854         if( nPos < 0 ){
04855             nPos = 0;
04856         }
04857     }
04858     if( m_nViewTopLine == nPos ){
04859         return 0;   //  スクロール無し。
04860     }
04861     /* 垂直スクロール量（行数）の算出 */
04862     nScrollRowNum = m_nViewTopLine - nPos;
04863
04864     /* スクロール */
04865     if( abs( nScrollRowNum ) >= m_nViewRowNum ){
04866         m_nViewTopLine = nPos;
04867         ::InvalidateRect( m_hWnd, NULL, TRUE );
04868     }else{
04869         rcScrol.left = 0;
04870         rcScrol.right = m_nViewCx + m_nViewAlignLeft;
04871         rcScrol.top = m_nViewAlignTop;
04872         rcScrol.bottom = m_nViewCy + m_nViewAlignTop;
04873         if( nScrollRowNum > 0 ){
04874             rcScrol.bottom =
04875                 m_nViewCy + m_nViewAlignTop -
04876                 nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
04877             m_nViewTopLine = nPos;
04878             rcClip.left = 0;
04879             rcClip.right = m_nViewCx + m_nViewAlignLeft;
04880             rcClip.top = m_nViewAlignTop;
04881             rcClip.bottom =
04882                 m_nViewAlignTop + nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
04883         }else
04884         if( nScrollRowNum < 0 ){
04885             rcScrol.top =
04886                 m_nViewAlignTop - nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
04887             m_nViewTopLine = nPos;
04888             rcClip.left = 0;
04889             rcClip.right = m_nViewCx + m_nViewAlignLeft;
04890             rcClip.top =
04891                 m_nViewCy + m_nViewAlignTop +
04892                 nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
04893             rcClip.bottom = m_nViewCy + m_nViewAlignTop;
04894         }
04895         if( m_bDrawSWITCH ){
04896             ::ScrollWindowEx(
04897                 m_hWnd,
04898                 0,  /* 水平スクロール量 */
04899                 nScrollRowNum * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight ),       /* 垂直スクロール量 */
04900                 &rcScrol,   /* スクロール長方形の構造体のアドレス */
04901                 NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE
04902             );
04903             ::InvalidateRect( m_hWnd, &rcClip, TRUE );
04904             ::UpdateWindow( m_hWnd );
04905         }
04906     }
04907
04908     /* スクロールバーの状態を更新する */
04909     AdjustScrollBars();
04910
04911     /* キャレットの表示・更新 */
04912     ShowEditCaret();
04913
04914     return -nScrollRowNum;  //方向が逆なので符号反転が必要
04915 }
04916
04917
04918
04919
04927 int CEditView::ScrollAtH( int nPos )
04928 {
04929     int         nScrollColNum;
04930     RECT        rcScrol;
04931     RECT        rcClip2;
04932     if( nPos < 0 ){
04933         nPos = 0;
04934     }else
04935     //  Aug. 18, 2003 ryoji 変数のミスを修正
04936     //  ウィンドウの幅をきわめて狭くしたときに編集領域が行番号から離れてしまうことがあった．
04937     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
04938     if( m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - m_nViewColNum  < nPos ){
04939         nPos = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - m_nViewColNum ;
04940         //  May 29, 2004 genta 折り返し幅よりウィンドウ幅が大きいときにWM_HSCROLLが来ると
04941         //  nPosが負の値になることがあり，その場合にスクロールバーから編集領域が
04942         //  離れてしまう．
04943         if( nPos < 0 )
04944             nPos = 0;
04945     }
04946     if( m_nViewLeftCol == nPos ){
04947         return 0;
04948     }
04949     /* 水平スクロール量（文字数）の算出 */
04950     nScrollColNum = m_nViewLeftCol - nPos;
04951
04952     /* スクロール */
04953     if( abs( nScrollColNum ) >= m_nViewColNum /*|| abs( nScrollRowNum ) >= m_nViewRowNum*/ ){
04954         m_nViewLeftCol = nPos;
04955         ::InvalidateRect( m_hWnd, NULL, TRUE );
04956     }else{
04957         rcScrol.left = 0;
04958         rcScrol.right = m_nViewCx + m_nViewAlignLeft;
04959         rcScrol.top = m_nViewAlignTop;
04960         rcScrol.bottom = m_nViewCy + m_nViewAlignTop;
04961         if( nScrollColNum > 0 ){
04962             rcScrol.left = m_nViewAlignLeft;
04963             rcScrol.right =
04964                 m_nViewCx + m_nViewAlignLeft - nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
04965             rcClip2.left = m_nViewAlignLeft;
04966             rcClip2.right = m_nViewAlignLeft + nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
04967             rcClip2.top = m_nViewAlignTop;
04968             rcClip2.bottom = m_nViewCy + m_nViewAlignTop;
04969         }else
04970         if( nScrollColNum < 0 ){
04971             rcScrol.left = m_nViewAlignLeft - nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
04972             rcClip2.left =
04973                 m_nViewCx + m_nViewAlignLeft + nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
04974             rcClip2.right = m_nViewCx + m_nViewAlignLeft;
04975             rcClip2.top = m_nViewAlignTop;
04976             rcClip2.bottom = m_nViewCy + m_nViewAlignTop;
04977         }
04978         m_nViewLeftCol = nPos;
04979         if( m_bDrawSWITCH ){
04980             ::ScrollWindowEx(
04981                 m_hWnd,
04982                 nScrollColNum * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ),        /* 水平スクロール量 */
04983                 0,  /* 垂直スクロール量 */
04984                 &rcScrol,   /* スクロール長方形の構造体のアドレス */
04985                 NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE
04986             );
04987             ::InvalidateRect( m_hWnd, &rcClip2, TRUE );
04988             ::UpdateWindow( m_hWnd );
04989         }
04990     }
04991     //  2006.1.28 aroka 判定条件誤り修正 (バーが消えてもスクロールしない)
04992     // 先にAdjustScrollBarsを呼んでしまうと、二度目はここまでこないので、
04993     // DispRulerが呼ばれない。そのため、順序を入れ替えた。
04994     m_bRedrawRuler = true; // ルーラーを再描画する。
04995     HDC hdc = ::GetDC( m_hWnd );
04996     DispRuler( hdc );
04997     ::ReleaseDC( m_hWnd, hdc );
04998
04999     /* スクロールバーの状態を更新する */
05000     AdjustScrollBars();
05001
05002     /* キャレットの表示・更新 */
05003     ShowEditCaret();
05004
05005     return -nScrollColNum;  //方向が逆なので符号反転が必要
05006 }
05007
05021 void CEditView::SyncScrollV( int line )
05022 {
05023     if( m_pShareData->m_Common.m_bSplitterWndVScroll && line != 0 )
05024     {
05025         CEditView*  pcEditView = &m_pcEditDoc->m_cEditViewArr[m_nMyIndex^0x01];
05026 #if 0
05027         //  差分を保ったままスクロールする場合
05028         pcEditView -> ScrollByV( line );
05029 #else
05030         pcEditView -> ScrollAtV( m_nViewTopLine );
05031 #endif
05032     }
05033 }
05034
05047 void CEditView::SyncScrollH( int col )
05048 {
05049     if( m_pShareData->m_Common.m_bSplitterWndHScroll && col != 0 )
05050     {
05051         CEditView*  pcEditView = &m_pcEditDoc->m_cEditViewArr[m_nMyIndex^0x02];
05052         HDC         hdc = ::GetDC( pcEditView->m_hWnd );
05053
05054 #if 0
05055         //  差分を保ったままスクロールする場合
05056         pcEditView -> ScrollByH( col );
05057 #else
05058         pcEditView -> ScrollAtH( m_nViewLeftCol );
05059 #endif
05060         m_bRedrawRuler = true; //2002.02.25 Add By KK スクロール時ルーラー全体を描きなおす。
05061         DispRuler( hdc );
05062         ::ReleaseDC( m_hWnd, hdc );
05063     }
05064 }
05065
05066 /* 選択範囲のデータを取得 */
05067 /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
05068 BOOL CEditView::GetSelectedData(
05069         CMemory&    cmemBuf,
05070         BOOL        bLineOnly,
05071         const char* pszQuote,           /* 先頭に付ける引用符 */
05072         BOOL        bWithLineNumber,    /* 行番号を付与する */
05073         BOOL        bAddCRLFWhenCopy,   /* 折り返し位置で改行記号を入れる */
05074 //  Jul. 25, 2000 genta
05075         enumEOLType neweol              //  コピー後の改行コード EOL_NONEはコード保存
05076 )
05077 {
05078     const char*     pLine;
05079     int             nLineLen;
05080     int             nLineNum;
05081     int             nIdxFrom;
05082     int             nIdxTo;
05083     RECT            rcSel;
05084     int             nRowNum;
05085     int             nLineNumCols;
05086     char*           pszLineNum;
05087     char*           pszSpaces = "                    ";
05088     const CLayout*  pcLayout;
05089     CEOL            appendEol( neweol );
05090     bool            addnl = false;
05091
05092     /* 範囲選択がされていない */
05093     if( !IsTextSelected() ){
05094         return FALSE;
05095     }
05096     if( bWithLineNumber ){  /* 行番号を付与する */
05097         /* 行番号表示に必要な桁数を計算 */
05098         nLineNumCols = DetectWidthOfLineNumberArea_calculate();
05099         nLineNumCols += 1;
05100         pszLineNum = new char[nLineNumCols + 1];
05101     }
05102
05103
05104     if( m_bBeginBoxSelect ){    /* 矩形範囲選択中 */
05105         /* 2点を対角とする矩形を求める */
05106         TwoPointToRect(
05107             &rcSel,
05108             m_nSelectLineFrom,      /* 範囲選択開始行 */
05109             m_nSelectColmFrom,      /* 範囲選択開始桁 */
05110             m_nSelectLineTo,        /* 範囲選択終了行 */
05111             m_nSelectColmTo         /* 範囲選択終了桁 */
05112         );
05113 //      cmemBuf.SetData( "", 0 );
05114         cmemBuf.SetDataSz( "" );
05115
05116         //<< 2002/04/18 Azumaiya
05117         // サイズ分だけ要領をとっておく。
05118         // 結構大まかに見ています。
05119         int i = rcSel.bottom - rcSel.top;
05120
05121         // 最初に行数分の改行量を計算してしまう。
05122         int nBufSize = strlen(CRLF) * i;
05123
05124         // 実際の文字量。
05125         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( rcSel.top, &nLineLen, &pcLayout );
05126         for(; i != 0 && pcLayout != NULL; i--, pcLayout = pcLayout->m_pNext)
05127         {
05128             pLine = pcLayout->m_pCDocLine->m_pLine->GetPtr() + pcLayout->m_nOffset;
05129             nLineLen = pcLayout->m_nLength;
05130             if( NULL != pLine )
05131             {
05132                 /* 指定された桁に対応する行のデータ内の位置を調べる */
05133                 nIdxFrom    = LineColmnToIndex( pcLayout, rcSel.left  );
05134                 nIdxTo      = LineColmnToIndex( pcLayout, rcSel.right );
05135
05136                 nBufSize += nIdxTo - nIdxFrom;
05137             }
05138             if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
05139                 break;
05140             }
05141         }
05142
05143         // 大まかに見た容量を元にサイズをあらかじめ確保しておく。
05144         cmemBuf.AllocBuffer(nBufSize);
05145         //>> 2002/04/18 Azumaiya
05146
05147         nRowNum = 0;
05148         for( nLineNum = rcSel.top; nLineNum <= rcSel.bottom; ++nLineNum ){
05149 //          if( nRowNum > 0 ){
05150 //              cmemBuf.AppendSz( CRLF );
05151 //              if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
05152 //                  break;
05153 //              }
05154 //          }
05155 //          pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen );
05156             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
05157             if( NULL != pLine ){
05158                 /* 指定された桁に対応する行のデータ内の位置を調べる */
05159                 nIdxFrom    = LineColmnToIndex( pcLayout, rcSel.left  );
05160                 nIdxTo      = LineColmnToIndex( pcLayout, rcSel.right );
05161                 //2002.02.08 hor
05162                 // pLineがNULLのとき(矩形エリアの端がEOFのみの行を含むとき)は以下を処理しない
05163                 if( nIdxTo - nIdxFrom > 0 ){
05164                     if( pLine[nIdxTo - 1] == '\n' || pLine[nIdxTo - 1] == '\r' ){
05165                         cmemBuf.Append( &pLine[nIdxFrom], nIdxTo - nIdxFrom - 1 );
05166                     }else{
05167                         cmemBuf.Append( &pLine[nIdxFrom], nIdxTo - nIdxFrom );
05168                     }
05169                 }
05170             }
05171             ++nRowNum;
05172 //          if( nRowNum > 0 ){
05173                 cmemBuf.AppendSz( CRLF );
05174                 if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
05175                     break;
05176                 }
05177 //          }
05178         }
05179     }else{
05180         cmemBuf.SetDataSz( "" );
05181
05182         //<< 2002/04/18 Azumaiya
05183         //  これから貼り付けに使う領域の大まかなサイズを取得する。
05184         //  大まかというレベルですので、サイズ計算の誤差が（容量を多く見積もる方に）結構出ると思いますが、
05185         // まぁ、速さ優先ということで勘弁してください。
05186         //  無駄な容量確保が出ていますので、もう少し精度を上げたいところですが・・・。
05187         //  とはいえ、逆に小さく見積もることになってしまうと、かなり速度をとられる要因になってしまうので
05188         // 困ってしまうところですが・・・。
05189         m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nSelectLineFrom, &nLineLen, &pcLayout );
05190         int nBufSize = 0;
05191         int i = m_nSelectLineTo - m_nSelectLineFrom;
05192         // 先頭に引用符を付けるとき。
05193         if ( NULL != pszQuote )
05194         {
05195             nBufSize += strlen(pszQuote);
05196         }
05197
05198         // 行番号を付ける。
05199         if ( bWithLineNumber )
05200         {
05201             nBufSize += nLineNumCols;
05202         }
05203
05204         // 改行コードについて。
05205         if ( neweol == EOL_UNKNOWN )
05206         {
05207             nBufSize += strlen(CRLF);
05208         }
05209         else
05210         {
05211             nBufSize += appendEol.GetLen();
05212         }
05213
05214         // すべての行について同様の操作をするので、行数倍する。
05215         nBufSize *= i;
05216
05217         // 実際の各行の長さ。
05218         for (; i != 0 && pcLayout != NULL; i--, pcLayout = pcLayout->m_pNext )
05219         {
05220             nBufSize += pcLayout->m_nLength + appendEol.GetLen();
05221             if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
05222                 break;
05223             }
05224         }
05225
05226         // 調べた長さ分だけバッファを取っておく。
05227         cmemBuf.AllocBuffer(nBufSize);
05228         //>> 2002/04/18 Azumaiya
05229
05230         for( nLineNum = m_nSelectLineFrom; nLineNum <= m_nSelectLineTo; ++nLineNum ){
05231 //          pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen );
05232             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
05233             if( NULL == pLine ){
05234                 break;
05235             }
05236             if( nLineNum == m_nSelectLineFrom ){
05237                 /* 指定された桁に対応する行のデータ内の位置を調べる */
05238                 nIdxFrom = LineColmnToIndex( pcLayout, m_nSelectColmFrom );
05239             }else{
05240                 nIdxFrom = 0;
05241             }
05242             if( nLineNum == m_nSelectLineTo ){
05243                 /* 指定された桁に対応する行のデータ内の位置を調べる */
05244                 nIdxTo = LineColmnToIndex( pcLayout, m_nSelectColmTo );
05245             }else{
05246                 nIdxTo = nLineLen;
05247             }
05248             if( nIdxTo - nIdxFrom == 0 ){
05249                 continue;
05250             }
05251
05252 #if 0
05253             //  Jul. 25, 2000   genta
05254             //  改行処理変更のため削除
05255             /* 改行も処理するんかぃのぉ・・・？ */
05256             if( EOL_NONE != pcLayout->m_cEol && nIdxTo >= nLineLen ){
05257                 nIdxTo = nLineLen - 1;
05258             }
05259 #endif
05260
05261             if( NULL != pszQuote && 0 < lstrlen( pszQuote ) ){  /* 先頭に付ける引用符 */
05262 //              cmemBuf.Append( pszQuote, lstrlen( pszQuote ) );
05263                 cmemBuf.AppendSz( pszQuote );
05264             }
05265             if( bWithLineNumber ){  /* 行番号を付与する */
05266                 wsprintf( pszLineNum, " %d:" , nLineNum + 1 );
05267                 cmemBuf.Append( pszSpaces, nLineNumCols - lstrlen( pszLineNum ) );
05268 //              cmemBuf.Append( pszLineNum, lstrlen( pszLineNum ) );
05269                 cmemBuf.AppendSz( pszLineNum );
05270             }
05271
05272
05273             if( EOL_NONE != pcLayout->m_cEol ){
05274 //          if( pLine[nIdxTo - 1] == '\n' || pLine[nIdxTo - 1] == '\r' ){
05275 //              cmemBuf.Append( &pLine[nIdxFrom], nIdxTo - nIdxFrom - 1 );
05276 //              cmemBuf.AppendSz( CRLF );
05277
05278                 if( nIdxTo >= nLineLen ){
05279                     cmemBuf.Append( &pLine[nIdxFrom], nLineLen - 1 - nIdxFrom );
05280                     //  Jul. 25, 2000 genta
05281                     cmemBuf.AppendSz( ( neweol == EOL_UNKNOWN ) ?
05282                         (pcLayout->m_cEol).GetValue() : //  コード保存
05283                         appendEol.GetValue() );         //  新規改行コード
05284                 }
05285                 else {
05286                     cmemBuf.Append( &pLine[nIdxFrom], nIdxTo - nIdxFrom );
05287                 }
05288             }else{
05289                 cmemBuf.Append( &pLine[nIdxFrom], nIdxTo - nIdxFrom );
05290                 if( nIdxTo - nIdxFrom >= nLineLen ){
05291                     if( bAddCRLFWhenCopy ||  /* 折り返し行に改行を付けてコピー */
05292                         NULL != pszQuote || /* 先頭に付ける引用符 */
05293                         bWithLineNumber     /* 行番号を付与する */
05294                     ){
05295 //                      cmemBuf.Append( CRLF, lstrlen( CRLF ) );
05296                         //  Jul. 25, 2000 genta
05297                         cmemBuf.AppendSz(( neweol == EOL_UNKNOWN ) ?
05298                             CRLF :                      //  コード保存
05299                             appendEol.GetValue() );     //  新規改行コード
05300                     }
05301                 }
05302             }
05303             if( bLineOnly ){    /* 複数行選択の場合は先頭の行のみ */
05304                 break;
05305             }
05306         }
05307     }
05308     if( bWithLineNumber ){  /* 行番号を付与する */
05309         delete [] pszLineNum;
05310     }
05311     return TRUE;
05312 }
05313
05314
05315
05316
05317 /* 選択範囲内の全行をクリップボードにコピーする */
05318 void CEditView::CopySelectedAllLines(
05319     const char* pszQuote,       /* 先頭に付ける引用符 */
05320     BOOL        bWithLineNumber /* 行番号を付与する */
05321 )
05322 {
05323     HDC         hdc;
05324     PAINTSTRUCT ps;
05325     int         nSelectLineFromOld; /* 範囲選択開始行 */
05326     int         nSelectColFromOld;  /* 範囲選択開始桁 */
05327     int         nSelectLineToOld;   /* 範囲選択終了行 */
05328     int         nSelectColToOld;    /* 範囲選択終了桁 */
05329     RECT        rcSel;
05330     CMemory     cmemBuf;
05331 //  HGLOBAL     hgClip;
05332 //  char*       pszClip;
05333 //  const char* pLine;
05334 //  int         nLineLen;
05335     if( !IsTextSelected() ){    /* テキストが選択されているか */
05336         return;
05337     }
05338     /* 矩形範囲選択中か */
05339     if( m_bBeginBoxSelect ){
05340         /* 2点を対角とする矩形を求める */
05341         TwoPointToRect(
05342             &rcSel,
05343             m_nSelectLineFrom,                  /* 範囲選択開始行 */
05344             m_nSelectColmFrom,                  /* 範囲選択開始桁 */
05345             m_nSelectLineTo,                    /* 範囲選択終了行 */
05346             m_nSelectColmTo                     /* 範囲選択終了桁 */
05347         );
05348         /* 現在の選択範囲を非選択状態に戻す */
05349         DisableSelectArea( TRUE );
05350 //      /* 挿入データの先頭位置へカーソルを移動 */
05351 //      MoveCursor( rcSel.left, rcSel.top, FALSE );
05352         m_nSelectLineFrom = rcSel.top;          /* 範囲選択開始行 */
05353         m_nSelectColmFrom = 0;                  /* 範囲選択開始桁 */
05354         m_nSelectLineTo = rcSel.bottom + 1;     /* 範囲選択終了行 */
05355         m_nSelectColmTo = 0;                    /* 範囲選択終了桁 */
05356 //      m_bBeginBoxSelect = FALSE;  2004.06.22 Moca 上のDisableSelectAreaでクリア済み
05357     }else{
05358         nSelectLineFromOld = m_nSelectLineFrom; /* 範囲選択開始行 */
05359         nSelectColFromOld = 0;                  /* 範囲選択開始桁 */
05360         nSelectLineToOld = m_nSelectLineTo;     /* 範囲選択終了行 */
05361         if( m_nSelectColmTo > 0 ){
05362             ++nSelectLineToOld;                 /* 範囲選択終了行 */
05363         }
05364         nSelectColToOld = 0;                    /* 範囲選択終了桁 */
05365         /* 現在の選択範囲を非選択状態に戻す */
05366         DisableSelectArea( TRUE );
05367         m_nSelectLineFrom = nSelectLineFromOld; /* 範囲選択開始行 */
05368         m_nSelectColmFrom = nSelectColFromOld;  /* 範囲選択開始桁 */
05369         m_nSelectLineTo = nSelectLineToOld;     /* 範囲選択終了行 */
05370         m_nSelectColmTo = nSelectColToOld;      /* 範囲選択終了桁 */
05371     }
05372     /* 再描画 */
05373     //  ::UpdateWindow();
05374     hdc = ::GetDC( m_hWnd );
05375     ps.rcPaint.left = 0;
05376     ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
05377     ps.rcPaint.top = m_nViewAlignTop;
05378     ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
05379 //  OnKillFocus();
05380     OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
05381 //  OnSetFocus();
05382     ::ReleaseDC( m_hWnd, hdc );
05383     /* 選択範囲をクリップボードにコピー */
05384     /* 選択範囲のデータを取得 */
05385     /* 正常時はTRUE,範囲未選択の場合は終了する */
05386     if( FALSE == GetSelectedData(
05387         cmemBuf,
05388         FALSE,
05389         pszQuote, /* 引用符 */
05390         bWithLineNumber, /* 行番号を付与する */
05391         m_pShareData->m_Common.m_bAddCRLFWhenCopy /* 折り返し位置に改行記号を入れる */
05392     ) ){
05393         ::MessageBeep( MB_ICONHAND );
05394         return;
05395     }
05396     /* クリップボードにデータを設定 */
05397     MySetClipboardData( cmemBuf.GetPtr(), cmemBuf.GetLength(), FALSE );
05398
05399
05400 //  /* Windowsクリップボードにコピー */
05401 //  hgClip = ::GlobalAlloc( GMEM_MOVEABLE | GMEM_DDESHARE, cmemBuf.GetLength() + 1 );
05402 //  pszClip = (char*)::GlobalLock( hgClip );
05403 //  memcpy( pszClip, cmemBuf.GetPtr(), cmemBuf.GetLength() + 1 );
05404 //  ::GlobalUnlock( hgClip );
05405 //  ::OpenClipboard( m_hWnd );
05406 //  ::EmptyClipboard();
05407 //  ::SetClipboardData( CF_OEMTEXT, hgClip );
05408 //  ::CloseClipboard();
05409     return;
05410 }
05411
05412 /* 選択エリアのテキストを指定方法で変換 */
05413 void CEditView::ConvSelectedArea( int nFuncCode )
05414 {
05415     CMemory     cmemBuf;
05416     int         nNewLine;       /* 挿入された部分の次の位置の行 */
05417     int         nNewPos;        /* 挿入された部分の次の位置のデータ位置 */
05418     COpe*       pcOpe = NULL;
05419 //  BOOL        bBoxSelected;
05420 //  HDC         hdc;
05421 //  PAINTSTRUCT ps;
05422     RECT        rcSel;
05423
05424     int         nPosX;
05425     int         nPosY;
05426     int         nIdxFrom;
05427     int         nIdxTo;
05428     int         nLineNum;
05429     int         nDelPos;
05430     int         nDelLen;
05431     int         nDelPosNext;
05432     int         nDelLenNext;
05433     const char* pLine;
05434     int         nLineLen;
05435     const char* pLine2;
05436     int         nLineLen2;
05437     int         i;
05438     CMemory*    pcMemDeleted;
05439     CWaitCursor cWaitCursor( m_hWnd );
05440
05441     int         nSelectLineFromOld;             /* 範囲選択開始行 */
05442     int         nSelectColFromOld;              /* 範囲選択開始桁 */
05443     int         nSelectLineToOld;               /* 範囲選択終了行 */
05444     int         nSelectColToOld;                /* 範囲選択終了桁 */
05445     BOOL        bBeginBoxSelectOld;
05446
05447     /* テキストが選択されているか */
05448     if( !IsTextSelected() ){
05449         return;
05450     }
05451
05452     nSelectLineFromOld  = m_nSelectLineFrom;    /* 範囲選択開始行 */
05453     nSelectColFromOld   = m_nSelectColmFrom;    /* 範囲選択開始桁 */
05454     nSelectLineToOld    = m_nSelectLineTo;      /* 範囲選択終了行 */
05455     nSelectColToOld     = m_nSelectColmTo;      /* 範囲選択終了桁 */
05456     bBeginBoxSelectOld  = m_bBeginBoxSelect;
05457
05458
05459     /* 矩形範囲選択中か */
05460     if( m_bBeginBoxSelect ){
05461
05462         /* 2点を対角とする矩形を求める */
05463         TwoPointToRect(
05464             &rcSel,
05465             m_nSelectLineFrom,                  /* 範囲選択開始行 */
05466             m_nSelectColmFrom,                  /* 範囲選択開始桁 */
05467             m_nSelectLineTo,                    /* 範囲選択終了行 */
05468             m_nSelectColmTo                     /* 範囲選択終了桁 */
05469         );
05470
05471         /* 現在の選択範囲を非選択状態に戻す */
05472         DisableSelectArea( TRUE );
05473
05474         nIdxFrom = 0;
05475         nIdxTo = 0;
05476         for( nLineNum = rcSel.bottom; nLineNum >= rcSel.top - 1; nLineNum-- ){
05477             const CLayout* pcLayout;
05478             nDelPosNext = nIdxFrom;
05479             nDelLenNext = nIdxTo - nIdxFrom;
05480             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
05481             if( NULL != pLine ){
05482                 /* 指定された桁に対応する行のデータ内の位置を調べる */
05483                 nIdxFrom    = LineColmnToIndex( pcLayout, rcSel.left );
05484                 nIdxTo      = LineColmnToIndex( pcLayout, rcSel.right );
05485
05486                 for( i = nIdxFrom; i <= nIdxTo; ++i ){
05487                     if( pLine[i] == CR || pLine[i] == LF ){
05488                         nIdxTo = i;
05489                         break;
05490                     }
05491                 }
05492             }else{
05493                 nIdxFrom    = 0;
05494                 nIdxTo      = 0;
05495             }
05496             nDelPos = nDelPosNext;
05497             nDelLen = nDelLenNext;
05498             if( nLineNum < rcSel.bottom && 0 < nDelLen ){
05499                 pLine2 = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum + 1, &nLineLen2, &pcLayout );
05500                 nPosX = LineIndexToColmn( pcLayout, nDelPos );
05501                 nPosY =  nLineNum + 1;
05502                 if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05503                     pcOpe = new COpe;
05504                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05505                         nPosX,
05506                         nPosY,
05507                         &pcOpe->m_nCaretPosX_PHY_Before,
05508                         &pcOpe->m_nCaretPosY_PHY_Before
05509                     );
05510                 }else{
05511                     pcOpe = NULL;
05512                 }
05513
05514                 pcMemDeleted = new CMemory;
05515                 /* 指定位置の指定長データ削除 */
05516                 DeleteData2(
05517                     nPosX/*rcSel.left*/,
05518                     nPosY/*nLineNum + 1*/,
05519                     nDelLen,
05520                     pcMemDeleted,
05521                     pcOpe       /* 編集操作要素 COpe */
05522 //                  FALSE,
05523 //                  FALSE
05524                 );
05525                 cmemBuf.SetData( pcMemDeleted );
05526                 if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05527                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05528                         nPosX,
05529                         nPosY,
05530                         &pcOpe->m_nCaretPosX_PHY_After,
05531                         &pcOpe->m_nCaretPosY_PHY_After
05532                     );
05533                     /* 操作の追加 */
05534                     m_pcOpeBlk->AppendOpe( pcOpe );
05535                 }else{
05536                     delete pcMemDeleted;
05537                     pcMemDeleted = NULL;
05538                 }
05539                 /* 機能種別によるバッファの変換 */
05540                 ConvMemory( &cmemBuf, nFuncCode );
05541                 if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05542                     pcOpe = new COpe;
05543                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05544                         nPosX,
05545                         nPosY,
05546                         &pcOpe->m_nCaretPosX_PHY_Before,
05547                         &pcOpe->m_nCaretPosY_PHY_Before
05548                     );
05549                 }
05550                 /* 現在位置にデータを挿入 */
05551                 InsertData_CEditView(
05552                     nPosX,
05553                     nPosY,
05554                     cmemBuf.GetPtr(),
05555                     cmemBuf.GetLength(),
05556                     &nNewLine,
05557                     &nNewPos,
05558                     pcOpe,
05559                     TRUE/*FALSE*/
05560                 );
05561                 /* カーソルを移動 */
05562                 MoveCursor( nNewPos, nNewLine, FALSE );
05563                 m_nCaretPosX_Prev = m_nCaretPosX;
05564                 if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05565                     pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
05566                     pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
05567                     /* 操作の追加 */
05568                     m_pcOpeBlk->AppendOpe( pcOpe );
05569                 }
05570             }
05571         }
05572         /* 挿入データの先頭位置へカーソルを移動 */
05573         MoveCursor( rcSel.left, rcSel.top, TRUE );
05574         m_nCaretPosX_Prev = m_nCaretPosX;
05575
05576         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05577             pcOpe = new COpe;
05578             pcOpe->m_nOpe = OPE_MOVECARET;                                  /* 操作種別 */
05579             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
05580             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
05581             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
05582             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
05583             /* 操作の追加 */
05584             m_pcOpeBlk->AppendOpe( pcOpe );
05585         }
05586     }else{
05587         /* 選択範囲のデータを取得 */
05588         /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
05589         GetSelectedData( cmemBuf, FALSE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy );
05590
05591         /* 機能種別によるバッファの変換 */
05592         ConvMemory( &cmemBuf, nFuncCode );
05593
05594 //      /* 選択エリアを削除 */
05595 //      DeleteData( FALSE );
05596
05597         int nCaretPosYOLD=m_nCaretPosY;
05598
05599         /* データ置換 削除&挿入にも使える */
05600         ReplaceData_CEditView(
05601             m_nSelectLineFrom,      /* 範囲選択開始行 */
05602             m_nSelectColmFrom,      /* 範囲選択開始桁 */
05603             m_nSelectLineTo,        /* 範囲選択終了行 */
05604             m_nSelectColmTo,        /* 範囲選択終了桁 */
05605             NULL,                   /* 削除されたデータのコピー(NULL可能) */
05606             cmemBuf.GetPtr(),       /* 挿入するデータ */ // 2002/2/10 aroka CMemory変更
05607             cmemBuf.GetLength(),        /* 挿入するデータの長さ */ // 2002/2/10 aroka CMemory変更
05608             FALSE/*TRUEbRedraw*/
05609         );
05610
05611         // From Here 2001.12.03 hor
05612         //  選択エリアの復元
05613         m_nSelectLineFrom   =   nSelectLineFromOld; /* 範囲選択開始行 */
05614         m_nSelectColmFrom   =   nSelectColFromOld;  /* 範囲選択開始桁 */
05615         m_nSelectLineTo     =   m_nCaretPosY;       /* 範囲選択終了行 */
05616         m_nSelectColmTo     =   m_nCaretPosX;       /* 範囲選択終了桁 */
05617         if(nCaretPosYOLD==m_nSelectLineFrom) {
05618             MoveCursor( m_nSelectColmFrom, m_nSelectLineFrom, TRUE );
05619         }else{
05620             MoveCursor( m_nSelectColmTo, m_nSelectLineTo, TRUE );
05621         }
05622         m_nCaretPosX_Prev = m_nCaretPosX;
05623         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05624             pcOpe = new COpe;
05625             pcOpe->m_nOpe = OPE_MOVECARET;                                  /* 操作種別 */
05626             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
05627             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
05628             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
05629             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
05630             /* 操作の追加 */
05631             m_pcOpeBlk->AppendOpe( pcOpe );
05632         }
05633         RedrawAll();
05634         // To Here 2001.12.03 hor
05635
05636         return;
05637
05638
05639 #if 0
05640         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05641             pcOpe = new COpe;
05642             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
05643             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
05644         }
05645         /* 現在位置にデータを挿入 */
05646         InsertData_CEditView(
05647             m_nCaretPosX,
05648             m_nCaretPosY,
05649             cmemBuf.GetPtr(),
05650             cmemBuf.GetLength(),
05651             &nNewLine,
05652             &nNewPos,
05653             pcOpe,
05654             TRUE/*FALSE*/
05655         );
05656
05657         /* カーソルを移動 */
05658         MoveCursor( nNewPos, nNewLine, TRUE );
05659         m_nCaretPosX_Prev = m_nCaretPosX;
05660
05661         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05662             pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
05663             pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
05664             /* 操作の追加 */
05665             m_pcOpeBlk->AppendOpe( pcOpe );
05666         }
05667 #endif
05668
05669     }
05670 #if 0
05671     m_nSelectLineFrom   = nSelectLineFromOld;   /* 範囲選択開始行 */
05672     m_nSelectColmFrom   = nSelectColFromOld;    /* 範囲選択開始桁 */
05673     m_nSelectLineTo     = nSelectLineToOld;     /* 範囲選択終了行 */
05674     m_nSelectColmTo     = nSelectColToOld;      /* 範囲選択終了桁 */
05675     m_bBeginBoxSelect   = bBeginBoxSelectOld;
05676
05677     m_pcEditDoc->SetModified(true); /* 変更フラグ */
05678
05679     /* 再描画 */
05680     //  ::UpdateWindow();
05681     hdc = ::GetDC( m_hWnd );
05682     ps.rcPaint.left     = 0;
05683     ps.rcPaint.right    = m_nViewAlignLeft + m_nViewCx;
05684     ps.rcPaint.top      = m_nViewAlignTop;
05685     ps.rcPaint.bottom   = m_nViewAlignTop + m_nViewCy;
05686     OnKillFocus();
05687     OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
05688     OnSetFocus();
05689     ::ReleaseDC( m_hWnd, hdc );
05690 #endif
05691
05692
05693     return;
05694 }
05695
05696
05697 /* 機能種別によるバッファの変換 */
05698 void CEditView::ConvMemory( CMemory* pCMemory, int nFuncCode )
05699 {
05700     switch( nFuncCode ){
05701     case F_TOLOWER: pCMemory->ToLower(); break;                     /* 小文字 */
05702     case F_TOUPPER: pCMemory->ToUpper(); break;                     /* 大文字 */
05703     case F_TOHANKAKU: pCMemory->ToHankaku( 0x0 ); break;                    /* 全角→半角 */
05704     case F_TOHANKATA: pCMemory->ToHankaku( 0x01 ); break;                   /* 全角カタカナ→半角カタカナ */    // Aug. 29, 2002 ai
05705     case F_TOZENEI: pCMemory->ToZenkaku( 2, 0 );                /* 2== 英数専用             */ break;   /* 半角英数→全角英数 */            //July. 30, 2001 Misaka
05706     case F_TOHANEI: pCMemory->ToHankaku( 0x4 );                     /* 2== 英数専用             */ break;   /* 全角英数→半角英数 */            //July. 30, 2001 Misaka
05707     case F_TOZENKAKUKATA: pCMemory->ToZenkaku( 0, 0 );          /* 1== ひらがな 0==カタカナ */ break;   /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
05708     case F_TOZENKAKUHIRA: pCMemory->ToZenkaku( 1, 0 );          /* 1== ひらがな 0==カタカナ */ break;   /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
05709     case F_HANKATATOZENKAKUKATA: pCMemory->ToZenkaku( 0, 1 );   /* 1== ひらがな 0==カタカナ */ break;   /* 半角カタカナ→全角カタカナ */
05710     case F_HANKATATOZENKAKUHIRA: pCMemory->ToZenkaku( 1, 1 );   /* 1== ひらがな 0==カタカナ */ break;   /* 半角カタカナ→全角ひらがな */
05711     case F_CODECNV_EMAIL:       pCMemory->JIStoSJIS(); break;       /* E-Mail(JIS→SJIS)コード変換 */
05712     case F_CODECNV_EUC2SJIS:    pCMemory->EUCToSJIS(); break;       /* EUC→SJISコード変換 */
05713     case F_CODECNV_UNICODE2SJIS:pCMemory->UnicodeToSJIS(); break;   /* Unicode→SJISコード変換 */
05714     case F_CODECNV_UNICODEBE2SJIS: pCMemory->UnicodeBEToSJIS(); break;  /* UnicodeBE→SJISコード変換 */
05715     case F_CODECNV_SJIS2JIS:    pCMemory->SJIStoJIS();break;        /* SJIS→JISコード変換 */
05716     case F_CODECNV_SJIS2EUC:    pCMemory->SJISToEUC();break;        /* SJIS→EUCコード変換 */
05717     case F_CODECNV_UTF82SJIS:   pCMemory->UTF8ToSJIS();break;       /* UTF-8→SJISコード変換 */
05718     case F_CODECNV_UTF72SJIS:   pCMemory->UTF7ToSJIS();break;       /* UTF-7→SJISコード変換 */
05719     case F_CODECNV_SJIS2UTF7:   pCMemory->SJISToUTF7();break;       /* SJIS→UTF-7コード変換 */
05720     case F_CODECNV_SJIS2UTF8:   pCMemory->SJISToUTF8();break;       /* SJIS→UTF-8コード変換 */
05721     case F_CODECNV_AUTO2SJIS:   pCMemory->AUTOToSJIS();break;       /* 自動判別→SJISコード変換 */
05722     case F_TABTOSPACE:
05723         pCMemory->TABToSPACE(
05724             //  Sep. 23, 2002 genta LayoutMgrの値を使う
05725             m_pcEditDoc->m_cLayoutMgr.GetTabSpace()
05726         );break;    /* TAB→空白 */
05727     case F_SPACETOTAB:  //#### Stonee, 2001/05/27
05728         pCMemory->SPACEToTAB(
05729             //  Sep. 23, 2002 genta LayoutMgrの値を使う
05730             m_pcEditDoc->m_cLayoutMgr.GetTabSpace()
05731         );
05732         break;      /* 空白→TAB */
05733     case F_LTRIM:   Command_TRIM2( pCMemory , TRUE  );break;    // 2001.12.03 hor
05734     case F_RTRIM:   Command_TRIM2( pCMemory , FALSE );break;    // 2001.12.03 hor
05735     }
05736     return;
05737
05738 }
05739
05740
05741
05742 /* 指定された桁に対応する行のデータ内の位置を調べる Ver1
05743
05744     @@@ 2002.09.28 YAZAKI CDocLine版
05745 */
05746 int CEditView::LineColmnToIndex( const CDocLine* pcDocLine, int nColumn )
05747 {
05748     int i2 = 0;
05749     CMemoryIterator<CDocLine> it( pcDocLine, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
05750     while( !it.end() ){
05751         it.scanNext();
05752         if ( it.getColumn() + it.getColumnDelta() > nColumn ){
05753             break;
05754         }
05755         it.addDelta();
05756     }
05757     i2 += it.getIndex();
05758     return i2;
05759 }
05760
05761
05762 /* 指定された桁に対応する行のデータ内の位置を調べる Ver1
05763
05764     @@@ 2002.09.28 YAZAKI CLayoutが必要になりました。
05765 */
05766 int CEditView::LineColmnToIndex( const CLayout* pcLayout, int nColumn )
05767 {
05768     int i2 = 0;
05769     CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
05770     while( !it.end() ){
05771         it.scanNext();
05772         if ( it.getColumn() + it.getColumnDelta() > nColumn ){
05773             break;
05774         }
05775         it.addDelta();
05776     }
05777     i2 += it.getIndex();
05778     return i2;
05779 }
05780
05781
05782
05783 /* 指定された桁に対応する行のデータ内の位置を調べる Ver0 */
05784 /* 指定された桁より、行が短い場合はpnLineAllColLenに行全体の表示桁数を返す */
05785 /* それ以外の場合はpnLineAllColLenに０をセットする
05786
05787     @@@ 2002.09.28 YAZAKI CLayoutが必要になりました。
05788 */
05789 int CEditView::LineColmnToIndex2( const CLayout* pcLayout, int nColumn, int& pnLineAllColLen )
05790 {
05791     pnLineAllColLen = 0;
05792
05793     int i2 = 0;
05794     int nPosX2 = 0;
05795     CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
05796     while( !it.end() ){
05797         it.scanNext();
05798         if ( it.getColumn() + it.getColumnDelta() > nColumn ){
05799             break;
05800         }
05801         it.addDelta();
05802     }
05803     i2 += it.getIndex();
05804     if( i2 >= pcLayout->GetLength() ){
05805         nPosX2 += it.getColumn();
05806         pnLineAllColLen = nPosX2;
05807     }
05808     return i2;
05809 }
05810
05811
05812
05813
05814
05815 /*
05816 ||  指定された行のデータ内の位置に対応する桁の位置を調べる
05817 ||
05818 ||  @@@ 2002.09.28 YAZAKI CLayoutが必要になりました。
05819 */
05820 int CEditView::LineIndexToColmn( const CLayout* pcLayout, int nIndex )
05821 {
05822     //  以下、iterator版
05823     int nPosX2 = 0;
05824     CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
05825     while( !it.end() ){
05826         it.scanNext();
05827         if ( it.getIndex() + it.getIndexDelta() > nIndex ){
05828             break;
05829         }
05830         it.addDelta();
05831     }
05832     nPosX2 += it.getColumn();
05833     return nPosX2;
05834 }
05835
05836
05837 /*
05838 ||  指定された行のデータ内の位置に対応する桁の位置を調べる
05839 ||
05840 ||  @@@ 2002.09.28 YAZAKI CDocLine版
05841 */
05842 int CEditView::LineIndexToColmn( const CDocLine* pcDocLine, int nIndex )
05843 {
05844     int nPosX2 = 0;
05845     CMemoryIterator<CDocLine> it( pcDocLine, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
05846     while( !it.end() ){
05847         it.scanNext();
05848         if ( it.getIndex() + it.getIndexDelta() > nIndex ){
05849             break;
05850         }
05851         it.addDelta();
05852     }
05853     nPosX2 += it.getColumn();
05854     return nPosX2;
05855 }
05856
05857
05858
05859 /* ポップアップメニュー(右クリック) */
05860 int CEditView::CreatePopUpMenu_R( void )
05861 {
05862     int         nId;
05863 //  HMENU       hMenuTop;
05864     HMENU       hMenu;
05865     POINT       po;
05866 //  UINT        fuFlags;
05867 //  int         cMenuItems;
05868 //  int         nPos;
05869     RECT        rc;
05870     CMemory     cmemCurText;
05871     char*       pszWork;
05872     int         i;
05873     int         nMenuIdx;
05874     char        szLabel[300];
05875     char        szLabel2[300];
05876     UINT        uFlags;
05877 //  BOOL        bBool;
05878
05879
05880     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
05881     pCEditWnd->m_CMenuDrawer.ResetContents();
05882
05883     /* 右クリックメニューの定義はカスタムメニュー配列の0番目 */
05884     nMenuIdx = CUSTMENU_INDEX_FOR_RBUTTONUP;    //マジックナンバー排除  //@@@ 2003.06.13 MIK
05885 //  if( nMenuIdx < 0 || MAX_CUSTOM_MENU <= nMenuIdx ){
05886 //      return 0;
05887 //  }
05888 //  if( 0 == m_pShareData->m_Common.m_nCustMenuItemNumArr[nMenuIdx] ){
05889 //      return 0;
05890 //  }
05891
05892     //  Oct. 3, 2001 genta
05893     CFuncLookup& FuncLookup = m_pcEditDoc->m_cFuncLookup;
05894
05895     hMenu = ::CreatePopupMenu();
05896     for( i = 0; i < m_pShareData->m_Common.m_nCustMenuItemNumArr[nMenuIdx]; ++i ){
05897         if( 0 == m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i] ){
05898             ::AppendMenu( hMenu, MF_SEPARATOR, 0, NULL );
05899         }else{
05900             //  Oct. 3, 2001 genta
05901             FuncLookup.Funccode2Name( m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel, 256 );
05902 //          ::LoadString( m_hInstance, m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel, 256 );
05903             /* キー */
05904             if( '\0' == m_pShareData->m_Common.m_nCustMenuItemKeyArr[nMenuIdx][i] ){
05905                 strcpy( szLabel2, szLabel );
05906             }else{
05907                 wsprintf( szLabel2, "%s (&%c)", szLabel, m_pShareData->m_Common.m_nCustMenuItemKeyArr[nMenuIdx][i] );
05908             }
05909             /* 機能が利用可能か調べる */
05910             if( TRUE == CEditWnd::IsFuncEnable( m_pcEditDoc, m_pShareData, m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i] ) ){
05911                 uFlags = MF_STRING | MF_ENABLED;
05912             }else{
05913                 uFlags = MF_STRING | MF_DISABLED | MF_GRAYED;
05914             }
05915 //          bBool = ::AppendMenu( hMenu, uFlags, m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel2 );
05916             pCEditWnd->m_CMenuDrawer.MyAppendMenu(
05917                 hMenu, /*MF_BYPOSITION | MF_STRING*/uFlags,
05918                 m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i] , szLabel2 );
05919
05920         }
05921     }
05922
05923     if( !m_bBeginSelect ){  /* 範囲選択中 */
05924         if( TRUE == KeyWordHelpSearchDict( LID_SKH_POPUPMENU_R, &po, &rc ) ){   // 2006.04.10 fon
05925             pszWork = m_cTipWnd.m_cInfo.GetPtr();
05926             // 2002.05.25 Moca &の考慮を追加
05927             char*   pszShortOut = new char[160 + 1];
05928             if( 80 < lstrlen( pszWork ) ){
05929                 char*   pszShort = new char[80 + 1];
05930                 memcpy( pszShort, pszWork, 80 );
05931                 pszShort[80] = '\0';
05932                 dupamp( (const char*)pszShort, pszShortOut );
05933                 delete [] pszShort;
05934             }else{
05935                 dupamp( (const char*)pszWork, pszShortOut );
05936             }
05937             ::InsertMenu( hMenu, 0, MF_BYPOSITION, IDM_COPYDICINFO, "キーワードの説明をクリップボードにコピー(&K)" );   // 2006.04.10 fon ToolTip内容を直接表示するのをやめた
05938             delete [] pszShortOut;
05939             ::InsertMenu( hMenu, 1, MF_BYPOSITION, IDM_JUMPDICT, "キーワード辞書を開く(&J)" );  // 2006.04.10 fon
05940             ::InsertMenu( hMenu, 2, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
05941         }
05942     }
05943     po.x = 0;
05944     po.y = 0;
05945     ::GetCursorPos( &po );
05946     po.y -= 4;
05947     nId = ::TrackPopupMenu(
05948         hMenu,
05949         TPM_TOPALIGN
05950         | TPM_LEFTALIGN
05951         | TPM_RETURNCMD
05952         | TPM_LEFTBUTTON
05953         /*| TPM_RIGHTBUTTON*/
05954         ,
05955         po.x,
05956         po.y,
05957         0,
05958         ::GetParent( m_hwndParent )/*m_hWnd*/,
05959         NULL
05960     );
05961     ::DestroyMenu( hMenu );
05962     return nId;
05963 }
05964
05965
05966
05971 void CEditView::SetParentCaption( void )
05972 {
05973     m_pcEditDoc->SetParentCaption();
05974     return;
05975 }
05976
05977
05986 void CEditView::DrawCaretPosInfo( void )
05987 {
05988     if( !m_bDrawSWITCH ){
05989         return;
05990     }
05991
05992     char            szText[64];
05993     HWND            hwndFrame;
05994     unsigned char*  pLine;
05995     int             nLineLen;
05996     int             nIdxFrom;
05997     int             nCharChars;
05998     CEditWnd*       pCEditWnd;
05999     const CLayout*  pcLayout;
06000     // 2002.05.26 Moca  gm_pszCodeNameArr_2 を使う
06001     const char* pCodeName = gm_pszCodeNameArr_2[m_pcEditDoc->m_nCharCode];
06002 //  2002/04/08 YAZAKI コードの重複を削除
06003
06004     hwndFrame = ::GetParent( m_hwndParent );
06005     pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
06006     /* カーソル位置の文字コード */
06007 //  pLine = (unsigned char*)m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen );
06008     pLine = (unsigned char*)m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
06009
06010     //  May 12, 2000 genta
06011     //  改行コードの表示を追加
06012     //  From Here
06013     CEOL cNlType = m_pcEditDoc->GetNewLineCode();
06014     const char *nNlTypeName = cNlType.GetName();
06015     //  To Here
06016
06017     int nPosX, nPosY;
06018     if( m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF ){ /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
06019         if (pcLayout && pcLayout->m_nOffset){
06020             char* pLine = pcLayout->m_pCDocLine->GetPtr();
06021             int nLineLen = m_nCaretPosX_PHY;    //   - pcLayout->m_nOffset;
06022             nPosX = 0;
06023             int i;
06024             //  Oct. 4, 2002 genta
06025             //  文字位置のカウント方法が誤っていたのを修正
06026             for( i = 0; i < nLineLen; ){
06027                 // 2005-09-02 D.S.Koba GetSizeOfChar
06028                 int nCharChars = CMemory::GetSizeOfChar( (const char *)pLine, nLineLen, i );
06029                 if ( nCharChars == 1 && pLine[i] == TAB ){
06030                     //  Sep. 23, 2002 genta LayoutMgrの値を使う
06031                     nPosX += m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace( nPosX );
06032                     ++i;
06033                 }
06034                 else {
06035                     nPosX += nCharChars;
06036                     i += nCharChars;
06037                 }
06038             }
06039             nPosX ++;   //  補正
06040         }
06041         else {
06042             nPosX = m_nCaretPosX + 1;
06043         }
06044         nPosY = m_nCaretPosY_PHY + 1;
06045     }
06046     else {
06047         nPosX = m_nCaretPosX + 1;
06048         nPosY = m_nCaretPosY + 1;
06049     }
06050
06051     /* ステータス情報を書き出す */
06052     if( NULL == pCEditWnd->m_hwndStatusBar ){
06053         /* ウィンドウ右上に書き出す */
06054         //  May 12, 2000 genta
06055         //  改行コードの表示を追加
06056         //  From Here
06057         if( NULL != pLine ){
06058             /* 指定された桁に対応する行のデータ内の位置を調べる */
06059             nIdxFrom = LineColmnToIndex( pcLayout, m_nCaretPosX );
06060             if( nIdxFrom >= nLineLen ){
06061                 /* szText */
06062                 wsprintf( szText, "%s(%s)       %6d：%d", pCodeName, nNlTypeName, nPosY, nPosX );   //Oct. 31, 2000 JEPRO //Oct. 31, 2000 JEPRO メニューバーでの表示桁を節約
06063             }else{
06064                 if( nIdxFrom < nLineLen - (pcLayout->m_cEol.GetLen()?1:0) ){
06065                     // 2005-09-02 D.S.Koba GetSizeOfChar
06066                     nCharChars = CMemory::GetSizeOfChar( (char *)pLine, nLineLen, nIdxFrom );
06067                 }else{
06068                     nCharChars = pcLayout->m_cEol.GetLen();
06069                 }
06070                 switch( nCharChars ){
06071                 case 1:
06072                     /* szText */
06073                     wsprintf( szText, "%s(%s)   [%02x]%6d：%d", pCodeName, nNlTypeName, pLine[nIdxFrom], nPosY, nPosX );//Oct. 31, 2000 JEPRO メニューバーでの表示桁を節約
06074                     break;
06075                 case 2:
06076                     /* szText */
06077                     wsprintf( szText, "%s(%s) [%02x%02x]%6d：%d", pCodeName, nNlTypeName, pLine[nIdxFrom],  pLine[nIdxFrom + 1] , nPosY, nPosX);//Oct. 31, 2000 JEPRO メニューバーでの表示桁を節約
06078                     break;
06079                 case 4:
06080                     /* szText */
06081                     wsprintf( szText, "%s(%s) [%02x%02x%02x%02x]%d：%d", pCodeName, nNlTypeName, pLine[nIdxFrom],  pLine[nIdxFrom + 1] , pLine[nIdxFrom + 2],  pLine[nIdxFrom + 3] , nPosY, nPosX);//Oct. 31, 2000 JEPRO メニューバーでの表示桁を節約
06082                     break;
06083                 default:
06084                     /* szText */
06085                     wsprintf( szText, "%s(%s)       %6d：%d", pCodeName, nNlTypeName, nPosY, nPosX );//Oct. 31, 2000 JEPRO メニューバーでの表示桁を節約
06086                 }
06087             }
06088         }else{
06089             /* szText */
06090             wsprintf( szText, "%s(%s)       %6d：%d", pCodeName, nNlTypeName, nPosY, nPosX );//Oct. 31, 2000 JEPRO メニューバーでの表示桁を節約
06091         }
06092         //  To Here
06093         //  Dec. 4, 2002 genta メニューバー表示はCEditWndが行う
06094         m_pcEditDoc->m_pcEditWnd->PrintMenubarMessage( szText );
06095     }else{
06096         /* ステータスバーに状態を書き出す */
06097         char    szText_1[64];
06098         char    szText_3[32]; // szText_2 => szTest_3 に変更 64バイトもいらない 2002.06.05 Moca
06099         char    szText_6[16]; // szText_5 => szTest_6 に変更 64バイトもいらない 2002.06.05 Moca
06100         wsprintf( szText_1, "%5d 行 %4d 桁", nPosY, nPosX );    //Oct. 30, 2000 JEPRO 千万行も要らん
06101
06102         nCharChars = 0;
06103         if( NULL != pLine ){
06104             /* 指定された桁に対応する行のデータ内の位置を調べる */
06105             nIdxFrom = LineColmnToIndex( pcLayout, m_nCaretPosX );
06106             if( nIdxFrom >= nLineLen ){
06107             }else{
06108                 if( nIdxFrom < nLineLen - (pcLayout->m_cEol.GetLen()?1:0) ){
06109                     // 2005-09-02 D.S.Koba GetSizeOfChar
06110                     nCharChars = CMemory::GetSizeOfChar( (char *)pLine, nLineLen, nIdxFrom );
06111                 }else{
06112                     nCharChars = pcLayout->m_cEol.GetLen();
06113                 }
06114             }
06115         }
06116
06117         if( 1 == nCharChars ){
06118             wsprintf( szText_3, "%02x  ", pLine[nIdxFrom] );
06119         }else
06120         if( 2 == nCharChars ){
06121             wsprintf( szText_3, "%02x%02x", pLine[nIdxFrom],  pLine[nIdxFrom + 1] );
06122         // 2003.08.26 Moca CR0LF0廃止で 4 == nCharChars を削除
06123         }else{
06124             wsprintf( szText_3, "    " );
06125         }
06126
06127         if( IsInsMode() /* Oct. 2, 2005 genta */ ){
06128             strcpy( szText_6, "挿入" );
06129         }else{
06130             strcpy( szText_6, "上書" );
06131         }
06132         ::SendMessage( pCEditWnd->m_hwndStatusBar, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM) (LPINT)"" );
06133         ::SendMessage( pCEditWnd->m_hwndStatusBar, SB_SETTEXT, 1 | 0, (LPARAM) (LPINT)szText_1 );
06134         //  May 12, 2000 genta
06135         //  改行コードの表示を追加．後ろの番号を1つずつずらす
06136         //  From Here
06137         ::SendMessage( pCEditWnd->m_hwndStatusBar, SB_SETTEXT, 2 | 0, (LPARAM) (LPINT)nNlTypeName );
06138         //  To Here
06139         ::SendMessage( pCEditWnd->m_hwndStatusBar, SB_SETTEXT, 3 | 0, (LPARAM) (LPINT)szText_3 );
06140         ::SendMessage( pCEditWnd->m_hwndStatusBar, SB_SETTEXT, 4 | 0, (LPARAM) (LPINT)gm_pszCodeNameArr_1[m_pcEditDoc->m_nCharCode] );
06141         ::SendMessage( pCEditWnd->m_hwndStatusBar, SB_SETTEXT, 5 | SBT_OWNERDRAW, (LPARAM) (LPINT)"" );
06142         ::SendMessage( pCEditWnd->m_hwndStatusBar, SB_SETTEXT, 6 | 0, (LPARAM) (LPINT)szText_6 );
06143     }
06144
06145     return;
06146 }
06147
06154 void CEditView::PrintSelectionInfoMsg(void)
06155 {
06156     //  出力されないなら計算を省略
06157     if( ! m_pcEditDoc->m_pcEditWnd->SendStatusMessage2IsEffective() )
06158         return;
06159
06160     if( ! IsTextSelected() ){
06161         m_pcEditDoc->m_pcEditWnd->SendStatusMessage2( "" );
06162         return;
06163     }
06164
06165     char msg[128];
06166     //  From here 2006.06.06 ryoji 選択範囲の行が実在しない場合の対策
06167     int nLineCount = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
06168     if( m_nSelectLineFrom >= nLineCount ){  // 先頭行が実在しない
06169         m_pcEditDoc->m_pcEditWnd->SendStatusMessage2( "" );
06170         return;
06171     }
06172     int select_line;
06173     if( m_nSelectLineTo >= nLineCount ){    // 最終行が実在しない
06174         select_line = nLineCount - m_nSelectLineFrom + 1;
06175     }
06176     else {
06177         select_line = m_nSelectLineTo - m_nSelectLineFrom + 1;
06178     }
06179     //  To here 2006.06.06 ryoji 選択範囲の行が実在しない場合の対策
06180     if( m_bBeginBoxSelect ){
06181         //  矩形の場合は幅と高さだけでごまかす
06182         int select_col = m_nSelectColmFrom - m_nSelectColmTo;
06183         if( select_col < 0 ){
06184             select_col = -select_col;
06185         }
06186         wsprintf( msg, "%d Columns * %d lines selected.",
06187             select_col, select_line );
06188
06189     }
06190     else {
06191         //  通常の選択では選択範囲の中身を数える
06192         int select_sum = 0; //  バイト数合計
06193         const char *pLine;  //  データを受け取る
06194         int nLineLen;       //  行の長さ
06195         const CLayout*  pcLayout;
06196
06197         //  1行目
06198         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nSelectLineFrom, &nLineLen, &pcLayout );
06199         if( pLine ){
06200             //  1行だけ選択されている場合
06201             if( m_nSelectLineFrom == m_nSelectLineTo ){
06202                 select_sum = LineColmnToIndex( pcLayout, m_nSelectColmTo )
06203                     - LineColmnToIndex( pcLayout, m_nSelectColmFrom );
06204             }
06205             else {  //  2行以上選択されている場合
06206                 select_sum = pcLayout->GetLengthWithoutEOL() + pcLayout->m_cEol.GetLen()
06207                     - LineColmnToIndex( pcLayout, m_nSelectColmFrom );
06208
06209                 //  GetSelectedDataと似ているが，先頭行と最終行は排除している
06210                 //  Aug. 16, 2005 aroka nLineNumはfor以降でも使われるのでforの前で宣言する
06211                 //  VC .NET以降でもMicrosoft拡張を有効にした標準動作はVC6と同じことに注意
06212                 int nLineNum;
06213                 for( nLineNum = m_nSelectLineFrom + 1;
06214                     nLineNum < m_nSelectLineTo; ++nLineNum ){
06215                     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
06216                     //  2006.06.06 ryoji 指定行のデータが存在しない場合の対策
06217                     if( NULL == pLine )
06218                         break;
06219                     select_sum += pcLayout->GetLengthWithoutEOL() + pcLayout->m_cEol.GetLen();
06220                 }
06221
06222                 //  最終行の処理
06223                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
06224                 if( pLine ){
06225                     int last_line_chars = LineColmnToIndex( pcLayout, m_nSelectColmTo );
06226                     select_sum += last_line_chars;
06227                     if( last_line_chars == 0 ){
06228                         //  最終行の先頭にキャレットがある場合は
06229                         //  その行を行数に含めない
06230                         --select_line;
06231                     }
06232                 }
06233                 else
06234                 {
06235                     //  最終行が空行なら
06236                     //  その行を行数に含めない
06237                     --select_line;
06238                 }
06239             }
06240         }
06241
06242 #ifdef _DEBUG
06243         wsprintf( msg, "%d bytes (%d lines) selected. [%d:%d]-[%d:%d]",
06244             select_sum, select_line,
06245             m_nSelectColmFrom, m_nSelectLineFrom,
06246             m_nSelectColmTo, m_nSelectLineTo );
06247 #else
06248         wsprintf( msg, "%d bytes (%d lines) selected.", select_sum, select_line );
06249 #endif
06250     }
06251     m_pcEditDoc->m_pcEditWnd->SendStatusMessage2( msg );
06252 }
06253
06254
06255 /* 設定変更を反映させる */
06256 void CEditView::OnChangeSetting( void )
06257 {
06258     RECT        rc;
06259     LOGFONT     lf;
06260
06261     m_nTopYohaku = m_pShareData->m_Common.m_nRulerBottomSpace;      /* ルーラーとテキストの隙間 */
06262     m_nViewAlignTop = m_nTopYohaku;                                 /* 表示域の上端座標 */
06263
06264     /* ルーラー表示 */
06265     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_bDisp ){
06266         m_nViewAlignTop += m_pShareData->m_Common.m_nRulerHeight;   /* ルーラー高さ */
06267     }
06268
06269     /* フォント作成 */
06270     ::DeleteObject( m_hFont_HAN );
06271     m_hFont_HAN = CreateFontIndirect( &(m_pShareData->m_Common.m_lf) );
06272
06273     /* 太字フォント作成 */
06274     ::DeleteObject( m_hFont_HAN_FAT );
06275     lf = m_pShareData->m_Common.m_lf;
06276     lf.lfWeight += 300;
06277     if( 1000 < lf.lfWeight ){
06278         lf.lfWeight = 1000;
06279     }
06280     m_hFont_HAN_FAT = CreateFontIndirect( &lf );
06281
06282     /* 下線フォント作成 */
06283     ::DeleteObject( m_hFont_HAN_UL );
06284     lf = m_pShareData->m_Common.m_lf;
06285     lf.lfUnderline = TRUE;
06286     m_hFont_HAN_UL = CreateFontIndirect( &lf );
06287
06288     /* 太字下線フォント作成 */
06289     ::DeleteObject( m_hFont_HAN_FAT_UL );
06290     lf = m_pShareData->m_Common.m_lf;
06291     lf.lfUnderline = TRUE;
06292     lf.lfWeight += 300;
06293     if( 1000 < lf.lfWeight ){
06294         lf.lfWeight = 1000;
06295     }
06296     m_hFont_HAN_FAT_UL = CreateFontIndirect( &lf );
06297
06298
06299
06300     /* フォントの変更 */
06301     SetFont();
06302
06303     /* フォントが変わっているかもしれないので、カーソル移動 */
06304     MoveCursor( m_nCaretPosX, m_nCaretPosY, TRUE );
06305
06306
06307     /* スクロールバーの状態を更新する */
06308     AdjustScrollBars();
06309
06310     /* ウィンドウサイズの変更処理 */
06311     ::GetClientRect( m_hWnd, &rc );
06312     OnSize( rc.right, rc.bottom );
06313
06314     /* 再描画 */
06315     ::InvalidateRect( m_hWnd, NULL, TRUE );
06316
06317     return;
06318 }
06319
06320
06321
06322
06323 /* フォーカス移動時の再描画
06324
06325     @date 2001/06/21 asa-o 「スクロールバーの状態を更新する」「カーソル移動」削除
06326 */
06327 void CEditView::RedrawAll( void )
06328 {
06329     HDC         hdc;
06330     PAINTSTRUCT ps;
06331     /* 再描画 */
06332     hdc = ::GetDC( m_hWnd );
06333
06334 //  OnKillFocus();
06335
06336     ::GetClientRect( m_hWnd, &ps.rcPaint );
06337
06338     OnPaint( hdc, &ps, FALSE ); /* メモリＤＣを使用してちらつきのない再描画 */
06339 //  OnSetFocus();
06340     ::ReleaseDC( m_hWnd, hdc );
06341
06342     /* キャレットの表示 */
06343     ShowEditCaret();
06344
06345     /* キャレットの行桁位置を表示する */
06346     DrawCaretPosInfo();
06347
06348     /* 親ウィンドウのタイトルを更新 */
06349     SetParentCaption();
06350
06351     //  Jul. 9, 2005 genta  選択範囲の情報をステータスバーへ表示
06352     PrintSelectionInfoMsg();
06353
06354     /* スクロールバーの状態を更新する */
06355     AdjustScrollBars();
06356
06357     return;
06358 }
06359
06360 // 2001/06/21 Start by asa-o 再描画
06361 void CEditView::Redraw( void )
06362 {
06363     HDC         hdc;
06364     PAINTSTRUCT ps;
06365
06366     hdc = ::GetDC( m_hWnd );
06367
06368     ::GetClientRect( m_hWnd, &ps.rcPaint );
06369
06370     OnPaint( hdc, &ps, FALSE ); /* メモリＤＣを使用してちらつきのない再描画 */
06371
06372     ::ReleaseDC( m_hWnd, hdc );
06373
06374     return;
06375 }
06376 // 2001/06/21 End
06377
06378 /* 自分の表示状態を他のビューにコピー */
06379 void CEditView::CopyViewStatus( CEditView* pView )
06380 {
06381     if( pView == NULL ){
06382         return;
06383     }
06384     if( pView == this ){
06385         return;
06386     }
06387
06388     /* 入力状態 */
06389     pView->m_nCaretPosX             = m_nCaretPosX;         /* ビュー左端からのカーソル桁位置（０開始）*/
06390     pView->m_nCaretPosX_Prev        = m_nCaretPosX_Prev;    /* ビュー左端からのカーソル桁位置（０オリジン）*/
06391     pView->m_nCaretPosY             = m_nCaretPosY;         /* ビュー上端からのカーソル行位置（０開始）*/
06392 //  キャレットの幅・高さはコピーしない。2002/05/12 YAZAKI
06393 //  pView->m_nCaretWidth            = m_nCaretWidth;        /* キャレットの幅 */
06394 //  pView->m_nCaretHeight           = m_nCaretHeight;       /* キャレットの高さ */
06395
06396     /* キー状態 */
06397     pView->m_bSelectingLock         = m_bSelectingLock;     /* 選択状態のロック */
06398     pView->m_bBeginSelect           = m_bBeginSelect;       /* 範囲選択中 */
06399     pView->m_bBeginBoxSelect        = m_bBeginBoxSelect;    /* 矩形範囲選択中 */
06400
06401     pView->m_nSelectLineBgnFrom     = m_nSelectLineBgnFrom; /* 範囲選択開始行(原点) */
06402     pView->m_nSelectColmBgnFrom     = m_nSelectColmBgnFrom; /* 範囲選択開始桁(原点) */
06403     pView->m_nSelectLineBgnTo       = m_nSelectLineBgnTo;   /* 範囲選択開始行(原点) */
06404     pView->m_nSelectColmBgnTo       = m_nSelectColmBgnTo;   /* 範囲選択開始桁(原点) */
06405
06406     pView->m_nSelectLineFrom        = m_nSelectLineFrom;    /* 範囲選択開始行 */
06407     pView->m_nSelectColmFrom        = m_nSelectColmFrom;    /* 範囲選択開始桁 */
06408     pView->m_nSelectLineTo          = m_nSelectLineTo;      /* 範囲選択終了行 */
06409     pView->m_nSelectColmTo          = m_nSelectColmTo;      /* 範囲選択終了桁 */
06410     pView->m_nSelectLineFromOld     = m_nSelectLineFromOld; /* 範囲選択開始行 */
06411     pView->m_nSelectColmFromOld     = m_nSelectColmFromOld; /* 範囲選択開始桁 */
06412     pView->m_nSelectLineToOld       = m_nSelectLineToOld;   /* 範囲選択終了行 */
06413     pView->m_nSelectColmToOld       = m_nSelectColmToOld;   /* 範囲選択終了桁 */
06414     pView->m_nMouseRollPosXOld      = m_nMouseRollPosXOld;  /* マウス範囲選択前回位置(X座標) */
06415     pView->m_nMouseRollPosYOld      = m_nMouseRollPosYOld;  /* マウス範囲選択前回位置(Y座標) */
06416
06417     /* 画面情報 */
06418     pView->m_nViewAlignLeft         = m_nViewAlignLeft;     /* 表示域の左端座標 */
06419     pView->m_nViewAlignLeftCols     = m_nViewAlignLeftCols; /* 行番号域の桁数 */
06420     pView->m_nViewAlignTop          = m_nViewAlignTop;      /* 表示域の上端座標 */
06421 //  pView->m_nViewCx                = m_nViewCx;            /* 表示域の幅 */
06422 //  pView->m_nViewCy                = m_nViewCy;            /* 表示域の高さ */
06423 //  pView->m_nViewColNum            = m_nViewColNum;        /* 表示域の桁数 */
06424 //  pView->m_nViewRowNum            = m_nViewRowNum;        /* 表示域の行数 */
06425     pView->m_nViewTopLine           = m_nViewTopLine;       /* 表示域の一番上の行(0開始) */
06426     pView->m_nViewLeftCol           = m_nViewLeftCol;       /* 表示域の一番左の桁(0開始) */
06427
06428     /* 表示方法 */
06429     pView->m_nCharWidth             = m_nCharWidth;         /* 半角文字の幅 */
06430     pView->m_nCharHeight            = m_nCharHeight;        /* 文字の高さ */
06431
06432     return;
06433 }
06434
06435
06436 /* 縦・横の分割ボックス・サイズボックスのＯＮ／ＯＦＦ */
06437 void CEditView::SplitBoxOnOff( BOOL bVert, BOOL bHorz, BOOL bSizeBox )
06438 {
06439     RECT    rc;
06440     if( bVert ){
06441         if( NULL != m_pcsbwVSplitBox ){ /* 垂直分割ボックス */
06442         }else{
06443             m_pcsbwVSplitBox = new CSplitBoxWnd;
06444             m_pcsbwVSplitBox->Create( m_hInstance, m_hWnd, TRUE );
06445         }
06446     }else{
06447         if( NULL != m_pcsbwVSplitBox ){ /* 垂直分割ボックス */
06448             delete m_pcsbwVSplitBox;
06449             m_pcsbwVSplitBox = NULL;
06450         }else{
06451         }
06452     }
06453     if( bHorz ){
06454         if( NULL != m_pcsbwHSplitBox ){ /* 水平分割ボックス */
06455         }else{
06456             m_pcsbwHSplitBox = new CSplitBoxWnd;
06457             m_pcsbwHSplitBox->Create( m_hInstance, m_hWnd, FALSE );
06458         }
06459     }else{
06460         if( NULL != m_pcsbwHSplitBox ){ /* 水平分割ボックス */
06461             delete m_pcsbwHSplitBox;
06462             m_pcsbwHSplitBox = NULL;
06463         }else{
06464         }
06465     }
06466
06467     if( bSizeBox ){
06468         if( NULL != m_hwndSizeBox ){
06469             ::DestroyWindow( m_hwndSizeBox );
06470             m_hwndSizeBox = NULL;
06471         }
06472         m_hwndSizeBox = ::CreateWindowEx(
06473             0L,                                                 /* no extended styles */
06474             "SCROLLBAR",                                        /* scroll bar control class */
06475             (LPSTR) NULL,                                       /* text for window title bar */
06476             WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
06477             0,                                                  /* horizontal position */
06478             0,                                                  /* vertical position */
06479             200,                                                /* width of the scroll bar */
06480             CW_USEDEFAULT,                                      /* default height */
06481             m_hWnd,                                             /* handle of main window */
06482             (HMENU) NULL,                                       /* no menu for a scroll bar */
06483             m_hInstance,                                        /* instance owning this window */
06484             (LPVOID) NULL                                       /* pointer not needed */
06485         );
06486     }else{
06487         if( NULL != m_hwndSizeBox ){
06488             DestroyWindow( m_hwndSizeBox );
06489             m_hwndSizeBox = NULL;
06490         }
06491         m_hwndSizeBox = ::CreateWindowEx(
06492             0L,                                                     /* no extended styles */
06493             "STATIC",                                               /* scroll bar control class */
06494             (LPSTR) NULL,                                           /* text for window title bar */
06495             WS_VISIBLE | WS_CHILD /*| SBS_SIZEBOX | SBS_SIZEGRIP*/, /* scroll bar styles */
06496             0,                                                      /* horizontal position */
06497             0,                                                      /* vertical position */
06498             200,                                                    /* width of the scroll bar */
06499             CW_USEDEFAULT,                                          /* default height */
06500             m_hWnd,                                                 /* handle of main window */
06501             (HMENU) NULL,                                           /* no menu for a scroll bar */
06502             m_hInstance,                                            /* instance owning this window */
06503             (LPVOID) NULL                                           /* pointer not needed */
06504         );
06505     }
06506     ::ShowWindow( m_hwndSizeBox, SW_SHOW );
06507
06508     ::GetClientRect( m_hWnd, &rc );
06509     OnSize( rc.right, rc.bottom );
06510
06511     return;
06512 }
06513
06514
06515
06516
06517
06518 /* Grep実行 */
06519 DWORD CEditView::DoGrep(
06520     const CMemory*  pcmGrepKey,
06521     const CMemory*  pcmGrepFile,
06522     const CMemory*  pcmGrepFolder,
06523     BOOL        bGrepSubFolder,
06524     BOOL        bGrepLoHiCase,
06525     BOOL        bGrepRegularExp,
06526     int         nGrepCharSet,   // 2002/09/21 Moca 文字コードセット選択
06527     BOOL        bGrepOutputLine,
06528     BOOL        bWordOnly,
06529     int         nGrepOutputStyle
06530 )
06531 {
06532 #ifdef _DEBUG
06533     CRunningTimer cRunningTimer( "CEditView::DoGrep" );
06534 #endif
06535
06536     m_pcEditDoc->m_bGrepRunning = TRUE;
06537
06538
06539     int         nDummy;
06540     int         nHitCount = 0;
06541     char        szKey[_MAX_PATH];
06542     char        szFile[_MAX_PATH];
06543     char        szPath[_MAX_PATH];
06544 //  int         nNewLine;       /* 挿入された部分の次の位置の行 */
06545 //  int         nNewPos;        /* 挿入された部分の次の位置のデータ位置 */
06546 //  COpe*       pcOpe = NULL;
06547     CDlgCancel  cDlgCancel;
06548     HWND        hwndCancel;
06549     char*       pszWork;
06550     HWND        hwndMainFrame;
06551     int         nCharChars;
06552     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
06553     CBregexp    cRegexp;
06554     CMemory     cmemMessage;
06555     CMemory     cmemWork;
06556     int         nWork;
06557     int*        pnKey_CharCharsArr;
06558     pnKey_CharCharsArr = NULL;
06559
06560     /*
06561     || バッファサイズの調整
06562     */
06563     cmemMessage.AllocBuffer( 4000 );
06564
06565
06566
06567 //  int*                pnKey_CharUsedArr;
06568 //  pnKey_CharUsedArr       = NULL;
06569 //  GrepParam*          pGrepParam;
06570
06571 //  CEditView*          pCEditView;
06572 //  CMemory             cmGrepKey;
06573 //  CMemory             cmGrepFile;
06574 //  CMemory             cmGrepFolder;
06575 //  BOOL                bGrepSubFolder;
06576 //  BOOL                bGrepLoHiCase;
06577 //  BOOL                bGrepRegularExp;
06578 //  int                 nGrepCharSet;
06579 //  BOOL                bGrepOutputLine;
06580
06581 //  pGrepParam              = (GrepParam*)dwGrepParam;
06582
06583 //  pCEditView              = (CEditView*)pGrepParam->pCEditView;
06584 //  cmGrepKey               = *pGrepParam->pcmGrepKey;
06585 //  cmGrepFile              = *pGrepParam->pcmGrepFile;
06586 //  cmGrepFolder            = *pGrepParam->pcmGrepFolder;
06587 //  bGrepSubFolder          = pGrepParam->bGrepSubFolder;
06588 //  bGrepLoHiCase           = pGrepParam->bGrepLoHiCase;
06589 //  bGrepRegularExp         = pGrepParam->bGrepRegularExp;
06590 //  nGrepCharSet            = pGrepParam->nGrepCharSet;
06591 //  bGrepOutputLine         = pGrepParam->bGrepOutputLine;
06592
06593     m_bDoing_UndoRedo       = TRUE;
06594
06595
06596     /* アンドゥバッファの処理 */
06597     if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
06598 //@@@2002.2.2 YAZAKI NULLじゃないと進まないので、とりあえずコメント。＆NULLのときは、new COpeBlkする。
06599 //      while( NULL != m_pcOpeBlk ){}
06600 //      delete m_pcOpeBlk;
06601 //      m_pcOpeBlk = NULL;
06602     }
06603     else {
06604         m_pcOpeBlk = new COpeBlk;
06605     }
06606
06607     m_bCurSrchKeyMark = TRUE;                               /* 検索文字列のマーク */
06608     strcpy( m_szCurSrchKey, pcmGrepKey->GetPtr() ); /* 検索文字列 */
06609     m_bCurSrchRegularExp = bGrepRegularExp;                 /* 検索／置換  1==正規表現 */
06610     m_bCurSrchLoHiCase = bGrepLoHiCase;                     /* 検索／置換  1==英大文字小文字の区別 */
06611     /* 正規表現 */
06612
06613     //  From Here Jun. 27 genta
06614     /*
06615         Grepを行うに当たって検索・画面色分け用正規表現バッファも
06616         初期化する．これはGrep検索結果の色分けを行うため．
06617
06618         Note: ここで強調するのは最後の検索文字列であって
06619         Grep対象パターンではないことに注意
06620     */
06621     if( m_bCurSrchRegularExp ){
06622         //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
06623         if( !InitRegexp( m_hWnd, m_CurRegexp, true ) ){
06624             return 0;
06625         }
06626
06627         /* 検索パターンのコンパイル */
06628         int nFlag = 0x00;
06629         nFlag |= m_bCurSrchLoHiCase ? 0x01 : 0x00;
06630         m_CurRegexp.Compile( m_szCurSrchKey, nFlag );
06631     }
06632     //  To Here Jun. 27 genta
06633
06634 //まだ m_bCurSrchWordOnly = m_pShareData->m_Common.m_bWordOnly; /* 検索／置換  1==単語のみ検索 */
06635
06636 //  cDlgCancel.Create( m_hInstance, m_hwndParent );
06637 //  hwndCancel = cDlgCancel.Open( MAKEINTRESOURCE(IDD_GREPRUNNING) );
06638     hwndCancel = cDlgCancel.DoModeless( m_hInstance, m_hwndParent, IDD_GREPRUNNING );
06639
06640     ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, 0, FALSE );
06641     ::SetDlgItemText( hwndCancel, IDC_STATIC_CURFILE, " " );    // 2002/09/09 Moca add
06642     ::CheckDlgButton( hwndCancel, IDC_CHECK_REALTIMEVIEW, m_pShareData->m_Common.m_bGrepRealTimeView ); // 2003.06.23 Moca
06643
06644     pszWork = pcmGrepKey->GetPtr();
06645     strcpy( szKey, pszWork );
06646
06647     strcpy( m_pcEditDoc->m_szGrepKey, szKey );
06648     m_pcEditDoc->m_bGrepMode = TRUE;
06649
06650     //  2007.07.22 genta
06651     //  バージョン番号取得のため，処理を前の方へ移動した
06652     if( bGrepRegularExp ){
06653         if( !InitRegexp( m_hWnd, cRegexp, true ) ){
06654             return 0;
06655         }
06656         /* 検索パターンのコンパイル */
06657         int nFlag = 0x00;
06658         nFlag |= bGrepLoHiCase ? 0x01 : 0x00;
06659         if( !cRegexp.Compile( szKey, nFlag ) ){
06660             return 0;
06661         }
06662     }else{
06663         /* 検索条件の情報 */
06664         CDocLineMgr::CreateCharCharsArr(
06665             (const unsigned char *)szKey,
06666             lstrlen( szKey ),
06667             &pnKey_CharCharsArr
06668         );
06669     }
06670
06671 //  ::SendMessage( ::GetParent( m_hwndParent ), WM_SETICON, ICON_BIG, (LPARAM)::LoadIcon( m_hInstance, IDI_QUESTION ) );
06672 //2002.02.08 Grepアイコンも大きいアイコンと小さいアイコンを別々にする。
06673     HICON   hIconBig, hIconSmall;
06674     //  Dec, 2, 2002 genta アイコン読み込み方法変更
06675     hIconBig = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, false );
06676     hIconSmall = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, true );
06677
06678     //  Sep. 10, 2002 genta
06679     //  CEditWndに新設した関数を使うように
06680     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
06681     pCEditWnd->SetWindowIcon( hIconSmall, ICON_SMALL );
06682     pCEditWnd->SetWindowIcon( hIconBig, ICON_BIG );
06683
06684     pszWork = pcmGrepFolder->GetPtr();
06685     strcpy( szPath, pszWork );
06686     nDummy = lstrlen( szPath );
06687     /* フォルダの最後が「半角かつ'\\'」でない場合は、付加する */
06688     nCharChars = &szPath[nDummy] - CMemory::MemCharPrev( szPath, nDummy, &szPath[nDummy] );
06689     if( 1 == nCharChars && szPath[nDummy - 1] == '\\' ){
06690     }else{
06691         strcat( szPath, "\\" );
06692     }
06693     strcpy( szFile, pcmGrepFile->GetPtr( /* &nDummy */ ) );
06694
06695     nWork = lstrlen( szKey ); // 2003.06.10 Moca あらかじめ長さを計算しておく
06696
06697     /* 最後にテキストを追加 */
06698     cmemMessage.AppendSz( "\r\n□検索条件  " );
06699     if( 0 < nWork ){
06700         CMemory cmemWork2;
06701         cmemWork2.SetDataSz( szKey );
06702         if( m_pcEditDoc->GetDocumentAttribute().m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
06703             cmemWork2.Replace_j( "\\", "\\\\" );
06704             cmemWork2.Replace_j( "\'", "\\\'" );
06705             cmemWork2.Replace_j( "\"", "\\\"" );
06706         }else{
06707             cmemWork2.Replace_j( "\'", "\'\'" );
06708             cmemWork2.Replace_j( "\"", "\"\"" );
06709         }
06710         cmemWork.AppendSz( "\"" );
06711         cmemWork.Append( &cmemWork2 );
06712         cmemWork.AppendSz( "\"\r\n" );
06713     }else{
06714         cmemWork.AppendSz( "「ファイル検索」\r\n" );
06715     }
06716     cmemMessage += cmemWork;
06717
06718
06719
06720     cmemMessage.AppendSz( "検索対象   " );
06721     cmemWork.SetDataSz( szFile );
06722     if( m_pcEditDoc->GetDocumentAttribute().m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
06723     }else{
06724     }
06725     cmemMessage += cmemWork;
06726
06727
06728
06729
06730     cmemMessage.AppendSz( "\r\n" );
06731     cmemMessage.AppendSz( "フォルダ   " );
06732     cmemWork.SetDataSz( szPath );
06733     if( m_pcEditDoc->GetDocumentAttribute().m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
06734     }else{
06735     }
06736     cmemMessage += cmemWork;
06737     cmemMessage.AppendSz( "\r\n" );
06738
06739     if( bGrepSubFolder ){
06740         pszWork = "    (サブフォルダも検索)\r\n";
06741     }else{
06742         pszWork = "    (サブフォルダを検索しない)\r\n";
06743     }
06744     cmemMessage.AppendSz( pszWork );
06745
06746     if( 0 < nWork ){ // 2003.06.10 Moca ファイル検索の場合は表示しない // 2004.09.26 条件誤り修正
06747         if( bWordOnly ){
06748         /* 単語単位で探す */
06749             cmemMessage.AppendSz( "    (単語単位で探す)\r\n" );
06750         }
06751
06752         if( bGrepLoHiCase ){
06753             pszWork = "    (英大文字小文字を区別する)\r\n";
06754         }else{
06755             pszWork = "    (英大文字小文字を区別しない)\r\n";
06756         }
06757         cmemMessage.AppendSz( pszWork );
06758
06759         if( bGrepRegularExp ){
06760             //  2007.07.22 genta : 正規表現ライブラリのバージョンも出力する
06761             cmemMessage.AppendSz( "    (正規表現:" );
06762             cmemMessage.AppendSz( cRegexp.GetVersion() );
06763             cmemMessage.AppendSz( ")\r\n" );
06764         }
06765     }
06766
06767     if( CODE_AUTODETECT == nGrepCharSet ){
06768         cmemMessage.AppendSz( "    (文字コードセットの自動判別)\r\n" );
06769     }else if( 0 <= nGrepCharSet && nGrepCharSet < CODE_CODEMAX ){
06770         cmemMessage.AppendSz( "    (文字コードセット：" );
06771         cmemMessage.AppendSz( gm_pszCodeNameArr_1[nGrepCharSet] );
06772         cmemMessage.AppendSz( ")\r\n" );
06773     }
06774
06775     if( 0 < nWork ){ // 2003.06.10 Moca ファイル検索の場合は表示しない // 2004.09.26 条件誤り修正
06776         if( bGrepOutputLine ){
06777         /* 該当行 */
06778             pszWork = "    (一致した行を出力)\r\n";
06779         }else{
06780             pszWork = "    (一致した箇所のみ出力)\r\n";
06781         }
06782         cmemMessage.AppendSz( pszWork );
06783     }
06784
06785
06786     cmemMessage.AppendSz( "\r\n\r\n" );
06787     pszWork = cmemMessage.GetPtr( &nWork );
06788 //@@@ 2002.01.03 YAZAKI Grep直後はカーソルをGrep直前の位置に動かす
06789     int tmp_PosY_PHY = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
06790     if( 0 < nWork ){
06791         Command_ADDTAIL( pszWork, nWork );
06792     }
06793     //  2007.07.22 genta バージョンを取得するために，
06794     //  正規表現の初期化を上へ移動
06795
06796     /* 表示処理ON/OFF */
06797     // 2003.06.23 Moca 共通設定で変更できるように
06798 //  m_bDrawSWITCH = FALSE;
06799     m_bDrawSWITCH = m_pShareData->m_Common.m_bGrepRealTimeView;
06800
06801
06802     if( -1 == DoGrepTree(
06803         &cDlgCancel, hwndCancel, szKey,
06804         pnKey_CharCharsArr,
06805 //      pnKey_CharUsedArr,
06806         szFile, szPath, bGrepSubFolder, bGrepLoHiCase,
06807         bGrepRegularExp, nGrepCharSet,
06808         bGrepOutputLine, bWordOnly, nGrepOutputStyle, &cRegexp, 0, &nHitCount
06809     ) ){
06810         wsprintf( szPath, "中断しました。\r\n", nHitCount );
06811         Command_ADDTAIL( szPath, lstrlen( szPath ) );
06812     }
06813     wsprintf( szPath, "%d 個が検索されました。\r\n", nHitCount );
06814     Command_ADDTAIL( szPath, lstrlen( szPath ) );
06815 //  Command_GOFILEEND( FALSE );
06816 #ifdef _DEBUG
06817     wsprintf( szPath, "処理時間: %dミリ秒\r\n", cRunningTimer.Read() );
06818     Command_ADDTAIL( szPath, lstrlen( szPath ) );
06819 //  Command_GOFILEEND( FALSE );
06820 #endif
06821     MoveCursor( 0, tmp_PosY_PHY, TRUE );    //  カーソルをGrep直前の位置に戻す
06822
06823     cDlgCancel.CloseDialog( 0 );
06824
06825     /* アクティブにする */
06826     hwndMainFrame = ::GetParent( m_hwndParent );
06827     /* アクティブにする */
06828     ActivateFrameWindow( hwndMainFrame );
06829
06830
06831     /* アンドゥバッファの処理 */
06832     if( NULL != m_pcOpeBlk ){
06833         if( 0 < m_pcOpeBlk->GetNum() ){ /* 操作の数を返す */
06834             /* 操作の追加 */
06835             m_pcEditDoc->m_cOpeBuf.AppendOpeBlk( m_pcOpeBlk );
06836         }else{
06837             delete m_pcOpeBlk;
06838         }
06839         m_pcOpeBlk = NULL;
06840     }
06841
06842     //  Apr. 13, 2001 genta
06843     //  Grep実行後はファイルを変更無しの状態にする．
06844     m_pcEditDoc->SetModified(false,false);
06845
06846     m_pcEditDoc->m_bGrepRunning = FALSE;
06847     m_bDoing_UndoRedo = FALSE;
06848
06849     if( NULL != pnKey_CharCharsArr ){
06850         delete [] pnKey_CharCharsArr;
06851         pnKey_CharCharsArr = NULL;
06852     }
06853 //  if( NULL != pnKey_CharUsedArr ){
06854 //      delete [] pnKey_CharUsedArr;
06855 //      pnKey_CharUsedArr = NULL;
06856 //  }
06857
06858     /* 表示処理ON/OFF */
06859     m_bDrawSWITCH = TRUE;
06860
06861     /* フォーカス移動時の再描画 */
06862     RedrawAll();
06863
06864     return nHitCount;
06865 }
06866
06867 /*
06868  * SORTED_LIST_BSEARCH
06869  *   リストの探索にbsearchを使います。
06870  *   指定しない場合は、線形探索になります。
06871  * SORTED_LIST
06872  *   リストをqsortします。
06873  *
06874  * メモ：
06875  *   線形探索でもqsortを使い、文字列比較の大小関係が逆転したところで探索を
06876  *   打ち切れば少しは速いかもしれません。
06877  */
06878 //#define SORTED_LIST
06879 //#define SORTED_LIST_BSEARCH
06880
06881 #ifdef SORTED_LIST_BSEARCH
06882 #define SORTED_LIST
06883 #endif
06884
06885 #ifdef SORTED_LIST
06886 typedef int (* COMP)(const void *, const void *);
06887
06896 int grep_compare_pp(const void* a, const void* b)
06897 {
06898     return _tcscmp( *((const TCHAR**)a), *((const TCHAR**)b) );
06899 }
06900
06909 int grep_compare_sp(const void* a, const void* b)
06910 {
06911     return _tcscmp( (const TCHAR*)a, *((const TCHAR**)b) );
06912 }
06913 #endif
06914
06939 int CEditView::DoGrepTree(
06940     CDlgCancel* pcDlgCancel,
06941     HWND        hwndCancel,
06942     const char* pszKey,
06943     int*        pnKey_CharCharsArr,
06944     const char* pszFile,
06945     const char* pszPath,
06946     BOOL        bGrepSubFolder,
06947     BOOL        bGrepLoHiCase,
06948     BOOL        bGrepRegularExp,
06949     int         nGrepCharSet,
06950     BOOL        bGrepOutputLine,
06951     BOOL        bWordOnly,
06952     int         nGrepOutputStyle,
06953     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
06954     CBregexp*   pRegexp,
06955     int         nNest,
06956     int*        pnHitCount
06957 )
06958 {
06959     ::SetDlgItemText( hwndCancel, IDC_STATIC_CURPATH, pszPath );
06960
06961     const TCHAR EXCEPT_CHAR = _T('!');  //除外識別子
06962     const TCHAR* WILDCARD_DELIMITER = _T(" ;,");    //リストの区切り
06963     const TCHAR* WILDCARD_ANY = _T("*.*");  //サブフォルダ探索用
06964
06965     int     nWildCardLen;
06966     int     nPos;
06967     TCHAR*  token;
06968     BOOL    result;
06969     int     i;
06970     WIN32_FIND_DATA w32fd;
06971     CMemory         cmemMessage;
06972     int             nHitCountOld;
06973     char*           pszWork;
06974     int             nWork = 0;
06975     nHitCountOld = -100;
06976
06977     //解放の対象
06978     TCHAR* pWildCard   = NULL;  //ワイルドカードリスト作業用
06979     TCHAR* currentPath = NULL;  //現在探索中のパス
06980     TCHAR* subPath     = NULL;
06981     HANDLE handle      = INVALID_HANDLE_VALUE;
06982
06983
06984     /*
06985      * リストの初期化(文字列へのポインタをリスト管理する)
06986      */
06987     int checked_list_size = 256;    //確保済みサイズ
06988     int checked_list_count = 0; //登録個数
06989     TCHAR** checked_list = (TCHAR**)malloc( sizeof( TCHAR* ) * checked_list_size );
06990     if( ! checked_list ) return FALSE;  //メモリ確保失敗
06991
06992
06993     /*
06994      * 除外ファイルを登録する。
06995      */
06996     nPos = 0;
06997     pWildCard = _tcsdup( pszFile );
06998     if( ! pWildCard ) goto error_return;    //メモリ確保失敗
06999     nWildCardLen = _tcslen( pWildCard );
07000     while( NULL != (token = my_strtok( pWildCard, nWildCardLen, &nPos, WILDCARD_DELIMITER )) )  //トークン毎に繰り返す。
07001     {
07002         //除外ファイル指定でないか？
07003         if( EXCEPT_CHAR != token[0] ) continue;
07004
07005         //ダブルコーテーションを除き、絶対パス名を作成する。
07006         TCHAR* p;
07007         TCHAR* q;
07008         p = q = ++token;
07009         while( *p )
07010         {
07011             if( *p != _T('"') ) *q++ = *p;
07012             p++;
07013         }
07014         *q = _T('\0');
07015         currentPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( token ) + 1 ];
07016         if( ! currentPath ) goto error_return;  //メモリ確保失敗
07017         _tcscpy( currentPath, pszPath );
07018         _tcscat( currentPath, token );
07019
07020         //ファイルの羅列を開始する。
07021         handle = FindFirstFile( currentPath, &w32fd );
07022         result = (INVALID_HANDLE_VALUE != handle) ? TRUE : FALSE;
07023         while( result )
07024         {
07025             if( ! (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) //フォルダでない場合
07026             {
07027                 //チェック済みリストに登録する。
07028                 if( checked_list_count >= checked_list_size )
07029                 {
07030                     checked_list_size += 256;
07031                     TCHAR** p = (TCHAR**)realloc( checked_list, sizeof( TCHAR* ) * checked_list_size );
07032                     if( ! p ) goto error_return;    //メモリ確保失敗
07033                     checked_list = p;
07034                 }
07035                 checked_list[ checked_list_count ] = _tcsdup( w32fd.cFileName );
07036                 checked_list_count++;
07037             }
07038
07039             //次のファイルを羅列する。
07040             result = FindNextFile( handle, &w32fd );
07041         }
07042         //ハンドルを閉じる。
07043         if( INVALID_HANDLE_VALUE != handle )
07044         {
07045             FindClose( handle );
07046             handle = INVALID_HANDLE_VALUE;
07047         }
07048         delete [] currentPath;
07049         currentPath = NULL;
07050     }
07051     free( pWildCard );
07052     pWildCard = NULL;
07053
07054
07055     /*
07056      * カレントフォルダのファイルを探索する。
07057      */
07058     nPos = 0;
07059     pWildCard = _tcsdup( pszFile );
07060     if( ! pWildCard ) goto error_return;    //メモリ確保失敗
07061     nWildCardLen = _tcslen( pWildCard );
07062     while( NULL != (token = my_strtok( pWildCard, nWildCardLen, &nPos, WILDCARD_DELIMITER )) )  //トークン毎に繰り返す。
07063     {
07064         //除外ファイル指定か？
07065         if( EXCEPT_CHAR == token[0] ) continue;
07066
07067         //ダブルコーテーションを除き、絶対パス名を作成する。
07068         TCHAR* p;
07069         TCHAR* q;
07070         p = q = token;
07071         while( *p )
07072         {
07073             if( *p != _T('"') ) *q++ = *p;
07074             p++;
07075         }
07076         *q = _T('\0');
07077         currentPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( token ) + 1 ];
07078         if( ! currentPath ) goto error_return;
07079         _tcscpy( currentPath, pszPath );
07080         _tcscat( currentPath, token );
07081
07082         //ファイルの羅列を開始する。
07083 #ifdef SORTED_LIST
07084         //ソート
07085         qsort( checked_list, checked_list_count, sizeof( TCHAR* ), (COMP)grep_compare_pp );
07086 #endif
07087         int current_checked_list_count = checked_list_count;    //前回までのリストの数
07088         handle = FindFirstFile( currentPath, &w32fd );
07089         result = (INVALID_HANDLE_VALUE != handle) ? TRUE : FALSE;
07090         while( result )
07091         {
07092             /* 処理中のユーザー操作を可能にする */
07093             if( !::BlockingHook( pcDlgCancel->m_hWnd ) ){
07094                 goto cancel_return;
07095             }
07096             /* 中断ボタン押下チェック */
07097             if( pcDlgCancel->IsCanceled() ){
07098                 goto cancel_return;
07099             }
07100             /* 表示設定をチェック */
07101             m_bDrawSWITCH = ::IsDlgButtonChecked( pcDlgCancel->m_hWnd, IDC_CHECK_REALTIMEVIEW );
07102
07103             if( ! (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) //フォルダでない場合
07104             {
07105                 /*
07106                  * リストにあるか調べる。
07107                  * 今回探索中のファイル同士が重複することはないので、
07108                  * 前回までのリスト(current_checked_list_count)から検索すればよい。
07109                  */
07110 #ifdef SORTED_LIST_BSEARCH
07111                 if( ! bsearch( w32fd.cFileName, checked_list, current_checked_list_count, sizeof( TCHAR* ), (COMP)grep_compare_sp ) )
07112 #else
07113                 bool found = false;
07114                 TCHAR** ptr = checked_list;
07115                 for( i = 0; i < current_checked_list_count; i++, ptr++ )
07116                 {
07117 #ifdef SORTED_LIST
07118                     int n = _tcscmp( *ptr, w32fd.cFileName );
07119                     if( 0 == n )
07120                     {
07121                         found = true;
07122                         break;
07123                     }
07124                     else if( n > 0 )    //探索打ち切り
07125                     {
07126                         break;
07127                     }
07128 #else
07129                     if( 0 == _tcscmp( *ptr, w32fd.cFileName ) )
07130                     {
07131                         found = true;
07132                         break;
07133                     }
07134 #endif
07135                 }
07136                 if( ! found )
07137 #endif
07138                 {
07139                     //チェック済みリストに登録する。
07140                     if( checked_list_count >= checked_list_size )
07141                     {
07142                         checked_list_size += 256;
07143                         TCHAR** p = (TCHAR**)realloc( checked_list, sizeof( TCHAR* ) * checked_list_size );
07144                         if( ! p ) goto error_return;    //メモリ確保失敗
07145                         checked_list = p;
07146                     }
07147                     checked_list[ checked_list_count ] = _tcsdup( w32fd.cFileName );
07148                     checked_list_count++;
07149
07150
07151                     //GREP実行！
07152                     ::SetDlgItemText( hwndCancel, IDC_STATIC_CURFILE, w32fd.cFileName );
07153
07154                     TCHAR* currentFile = new TCHAR[ _tcslen( pszPath ) + _tcslen( w32fd.cFileName ) + 1 ];
07155                     if( ! currentFile ) goto error_return;  //メモリ確保失敗
07156                     _tcscpy( currentFile, pszPath );
07157                     _tcscat( currentFile, w32fd.cFileName );
07158                     /* ファイル内の検索 */
07159                     int nRet = DoGrepFile(
07160                         pcDlgCancel, hwndCancel, pszKey,
07161                         pnKey_CharCharsArr,
07162                         w32fd.cFileName,
07163                         bGrepLoHiCase,
07164                         bGrepRegularExp, nGrepCharSet,
07165                         bGrepOutputLine, bWordOnly, nGrepOutputStyle,
07166                         pRegexp, pnHitCount, currentFile, cmemMessage
07167                     );
07168                     delete currentFile;
07169                     currentFile = NULL;
07170
07171                     // 2003.06.23 Moca リアルタイム表示のときは早めに表示
07172                     if( m_bDrawSWITCH ){
07173                         if( _T('\0') != pszKey[0] ){
07174                             // データ検索のときファイルの合計が最大10MBを超えたら表示
07175                             nWork += ( w32fd.nFileSizeLow + 1023 ) / 1024;
07176                         }
07177                         if( *pnHitCount - nHitCountOld &&
07178                             ( *pnHitCount < 20 || 10000 < nWork ) ){
07179                             nHitCountOld = -100; // 即表示
07180                         }
07181                     }
07182                     if( *pnHitCount - nHitCountOld  >= 10 ){
07183                         /* 結果出力 */
07184                         pszWork = cmemMessage.GetPtr( &nWork );
07185                         if( 0 < nWork ){
07186                             Command_ADDTAIL( pszWork, nWork );
07187                             Command_GOFILEEND( FALSE );
07188                             /* 結果格納エリアをクリア */
07189                             cmemMessage.SetDataSz( _T("") );
07190                             nWork = 0;
07191                         }
07192                         nHitCountOld = *pnHitCount;
07193                     }
07194                     if( -1 == nRet ){
07195                         goto cancel_return;
07196                     }
07197                 }
07198             }
07199
07200             //次のファイルを羅列する。
07201             result = FindNextFile( handle, &w32fd );
07202         }
07203         //ハンドルを閉じる。
07204         if( INVALID_HANDLE_VALUE != handle )
07205         {
07206             FindClose( handle );
07207             handle = INVALID_HANDLE_VALUE;
07208         }
07209         delete [] currentPath;
07210         currentPath = NULL;
07211     }
07212     free( pWildCard );
07213     pWildCard = NULL;
07214
07215     for( i = 0; i < checked_list_count; i++ )
07216     {
07217         free( checked_list[ i ] );
07218     }
07219     free( checked_list );
07220     checked_list = NULL;
07221     checked_list_count = 0;
07222     checked_list_size = 0;
07223
07224
07225     /*
07226      * サブフォルダを検索する。
07227      */
07228     if( bGrepSubFolder ){
07229         subPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( WILDCARD_ANY ) + 1 ];
07230         if( ! subPath ) goto error_return;  //メモリ確保失敗
07231         _tcscpy( subPath, pszPath );
07232         _tcscat( subPath, WILDCARD_ANY );
07233         handle = FindFirstFile( subPath, &w32fd );
07234         result = (INVALID_HANDLE_VALUE != handle) ? TRUE : FALSE;
07235         while( result )
07236         {
07237             //サブフォルダの探索を再帰呼び出し。
07238             /* 処理中のユーザー操作を可能にする */
07239             if( !::BlockingHook( pcDlgCancel->m_hWnd ) ){
07240                 goto cancel_return;
07241             }
07242             /* 中断ボタン押下チェック */
07243             if( pcDlgCancel->IsCanceled() ){
07244                 goto cancel_return;
07245             }
07246             /* 表示設定をチェック */
07247             m_bDrawSWITCH = ::IsDlgButtonChecked( pcDlgCancel->m_hWnd, IDC_CHECK_REALTIMEVIEW );
07248
07249             if( (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) //フォルダの場合
07250              && 0 != _tcscmp( w32fd.cFileName, _T("."))
07251              && 0 != _tcscmp( w32fd.cFileName, _T("..")) )
07252             {
07253                 //フォルダ名を作成する。
07254                 currentPath = new TCHAR[ _tcslen( pszPath ) + _tcslen( w32fd.cFileName ) + 2 ];
07255                 if( ! currentPath ) goto error_return;  //メモリ確保失敗
07256                 _tcscpy( currentPath, pszPath );
07257                 _tcscat( currentPath, w32fd.cFileName );
07258                 _tcscat( currentPath, _T("\\") );
07259
07260                 if( -1 == DoGrepTree(
07261                     pcDlgCancel, hwndCancel,
07262                     pszKey,
07263                     pnKey_CharCharsArr,
07264                     pszFile, currentPath,
07265                     bGrepSubFolder, bGrepLoHiCase,
07266                     bGrepRegularExp, nGrepCharSet,
07267                     bGrepOutputLine, bWordOnly, nGrepOutputStyle, pRegexp, nNest + 1, pnHitCount
07268                 ) ){
07269                     goto cancel_return;
07270                 }
07271                 ::SetDlgItemText( hwndCancel, IDC_STATIC_CURPATH, pszPath );    //@@@ 2002.01.10 add サブフォルダから戻ってきたら...
07272
07273                 delete [] currentPath;
07274                 currentPath = NULL;
07275             }
07276
07277             //次のファイルを羅列する。
07278             result = FindNextFile( handle, &w32fd );
07279         }
07280         //ハンドルを閉じる。
07281         if( INVALID_HANDLE_VALUE != handle )
07282         {
07283             FindClose( handle );
07284             handle = INVALID_HANDLE_VALUE;
07285         }
07286         delete [] subPath;
07287         subPath = NULL;
07288     }
07289
07290     ::SetDlgItemText( hwndCancel, IDC_STATIC_CURFILE, _T(" ") );    // 2002/09/09 Moca add
07291     /* 結果出力 */
07292     pszWork = cmemMessage.GetPtr( &nWork );
07293     if( 0 < nWork ){
07294         Command_ADDTAIL( pszWork, nWork );
07295         Command_GOFILEEND( FALSE );
07296         /* 結果格納エリアをクリア */
07297         cmemMessage.SetDataSz( _T("") );
07298     }
07299
07300     return 0;
07301
07302
07303 cancel_return:;
07304 error_return:;
07305     /*
07306      * エラー時はすべての確保済みリソースを解放する。
07307      */
07308     if( INVALID_HANDLE_VALUE != handle ) FindClose( handle );
07309
07310     if( pWildCard ) free( pWildCard );
07311     if( currentPath ) delete [] currentPath;
07312     if( subPath ) delete [] subPath;
07313
07314     if( checked_list )
07315     {
07316         for( i = 0; i < checked_list_count; i++ )
07317         {
07318             free( checked_list[ i ] );
07319         }
07320         free( checked_list );
07321     }
07322
07323     /* 結果出力 */
07324     pszWork = cmemMessage.GetPtr( &nWork );
07325     if( 0 < nWork )
07326     {
07327         Command_ADDTAIL( pszWork, nWork );
07328         Command_GOFILEEND( FALSE );
07329         /* 結果格納エリアをクリア */
07330         cmemMessage.SetDataSz( _T("") );
07331     }
07332
07333     return -1;
07334 }
07335
07336
07337
07348 void CEditView::SetGrepResult(
07349     /* データ格納先 */
07350     char*       pWork,
07351     int*        pnWorkLen,
07352     /* マッチしたファイルの情報 */
07353     const char*     pszFullPath,
07354     const char*     pszCodeName,
07355     /* マッチした行の情報 */
07356     int         nLine,
07357     int         nColm,
07358     const char*     pCompareData,
07359     int         nLineLen,
07360     int         nEolCodeLen,
07361     /* マッチした文字列の情報 */
07362     const char*     pMatchData,
07363     int         nMatchLen,
07364     /* オプション */
07365     BOOL        bGrepOutputLine,
07366     int         nGrepOutputStyle
07367 )
07368 {
07369
07370     int nWorkLen = 0;
07371     const char * pDispData;
07372     int k;
07373     bool bEOL = true;
07374     int nMaxOutStr;
07375
07376     if( 1 == nGrepOutputStyle ){
07377     /* ノーマル */
07378         nWorkLen = ::wsprintf( pWork, "%s(%d,%d)%s: ", pszFullPath, nLine, nColm, pszCodeName );
07379         nMaxOutStr = 2000; // 2003.06.10 Moca 最大長変更
07380     }else
07381     if( 2 == nGrepOutputStyle ){
07382     /* WZ風 */
07383         nWorkLen = ::wsprintf( pWork, "・(%6d,%-5d): ", nLine, nColm );
07384         nMaxOutStr = 2500; // 2003.06.10 Moca 最大長変更
07385     }
07386
07387     if( bGrepOutputLine ){
07388     /* 該当行 */
07389         pDispData = pCompareData;
07390         k = nLineLen - nEolCodeLen;
07391         if( nMaxOutStr < k ){
07392             k = nMaxOutStr; // 2003.06.10 Moca 最大長変更
07393         }
07394     }else{
07395     /* 該当部分 */
07396         pDispData = pMatchData;
07397         k = nMatchLen;
07398         if( nMaxOutStr < k ){
07399             k = nMaxOutStr; // 2003.06.10 Moca 最大長変更
07400         }
07401         // 該当部分に改行を含む場合はその改行コードをそのまま利用する(次の行に空行を作らない)
07402         // 2003.06.10 Moca k==0のときにバッファアンダーランしないように
07403         if( 0 < k && (pMatchData[ k - 1 ] == '\r' || pMatchData[ k - 1 ] == '\n') ){
07404             bEOL = false;
07405         }
07406     }
07407
07408     memcpy( &pWork[nWorkLen], pDispData, k );
07409     nWorkLen += k;
07410     if( bEOL ){
07411         memcpy( &pWork[nWorkLen], "\r\n", 2 );
07412         nWorkLen = nWorkLen + 2;
07413     }
07414     *pnWorkLen = nWorkLen;
07415 }
07416
07441 int CEditView::DoGrepFile(
07442     CDlgCancel* pcDlgCancel,
07443     HWND        hwndCancel,
07444     const char* pszKey,
07445     int*        pnKey_CharCharsArr,
07446 //  int*        pnKey_CharUsedArr,
07447     const char* pszFile,
07448     BOOL        bGrepLoHiCase,
07449     BOOL        bGrepRegularExp,
07450     int         nGrepCharSet,
07451     BOOL        bGrepOutputLine,
07452     BOOL        bWordOnly,
07453     int         nGrepOutputStyle,
07454     //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
07455     CBregexp*   pRegexp,
07456     int*        pnHitCount,
07457     const char* pszFullPath,
07458     CMemory&    cmemMessage
07459 )
07460 {
07461     int     nHitCount;
07462 //  char    szLine[16000];
07463     char    szWork[3000]; // ここは SetGrepResult() が返す文字列を格納できるサイズが必要
07464     char    szWork0[_MAX_PATH + 100];
07465     int     nLine;
07466     int     nWorkLen;
07467     const char* pszRes; // 2002/08/29 const付加
07468     int     nCharCode;
07469     const char* pCompareData; // 2002/08/29 const付加
07470     const char* pszCodeName; // 2002/08/29 const付加
07471     int     nColm;
07472     BOOL    bOutFileName;
07473     bOutFileName = FALSE;
07474     int     nLineLen;
07475     const   char*   pLine;
07476     CEOL    cEol;
07477     int     nEolCodeLen;
07478     CFileLoad   cfl;
07479     int     nOldPercent = 0;
07480
07481     int nKeyKen = lstrlen( pszKey );
07482
07483     //  ここでは正規表現コンパイルデータの初期化は不要
07484
07485     pszCodeName = "";
07486     nHitCount = 0;
07487     nLine = 0;
07488
07489     /* 検索条件が長さゼロの場合はファイル名だけ返す */
07490     // 2002/08/29 行ループの前からここに移動
07491     if( 0 == nKeyKen ){
07492         if( CODE_AUTODETECT == nGrepCharSet ){
07493             // 2003.06.10 Moca コード判別処理をここに移動．
07494             // 判別エラーでもファイル数にカウントするため
07495             // ファイルの日本語コードセット判別
07496             nCharCode = CMemory::CheckKanjiCodeOfFile( pszFullPath );
07497             if( -1 == nCharCode ){
07498                 pszCodeName = "  [(DetectError)]";
07499             }else{
07500                 pszCodeName = gm_pszCodeNameArr_3[nCharCode];
07501             }
07502         }
07503         if( 1 == nGrepOutputStyle ){
07504         /* ノーマル */
07505             wsprintf( szWork0, "%s%s\r\n", pszFullPath, pszCodeName );
07506         }else{
07507         /* WZ風 */
07508             wsprintf( szWork0, "■\"%s\"%s\r\n", pszFullPath, pszCodeName );
07509         }
07510         cmemMessage.AppendSz( szWork0 );
07511         ++(*pnHitCount);
07512         ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
07513         return 1;
07514     }
07515
07516
07517     try{
07518     // ファイルを開く
07519     // FileCloseで明示的に閉じるが、閉じていないときはデストラクタで閉じる
07520     // 2003.06.10 Moca 文字コード判定処理もFileOpenで行う
07521     nCharCode = cfl.FileOpen( pszFullPath, nGrepCharSet, 0 );
07522     if( CODE_AUTODETECT == nGrepCharSet ){
07523         pszCodeName = gm_pszCodeNameArr_3[nCharCode];
07524     }
07525     wsprintf( szWork0, "■\"%s\"%s\r\n", pszFullPath, pszCodeName );
07526 //  /* 処理中のユーザー操作を可能にする */
07527     if( !::BlockingHook( pcDlgCancel->m_hWnd ) ){
07528         return -1;
07529     }
07530     /* 中断ボタン押下チェック */
07531     if( pcDlgCancel->IsCanceled() ){
07532         return -1;
07533     }
07534
07535     /* 検索条件が長さゼロの場合はファイル名だけ返す */
07536     // 2002/08/29 ファイルオープンの手前へ移動
07537
07538     // 注意 : cfl.ReadLine が throw する可能性がある
07539     while( NULL != ( pLine = cfl.ReadLine( &nLineLen, &cEol ) ) ){
07540         nEolCodeLen = cEol.GetLen();
07541         ++nLine;
07542         pCompareData = pLine;
07543
07544         /* 処理中のユーザー操作を可能にする */
07545         if( !::BlockingHook( pcDlgCancel->m_hWnd ) ){
07546             return -1;
07547         }
07548         if( 0 == nLine % 64 ){
07549             /* 中断ボタン押下チェック */
07550             if( pcDlgCancel->IsCanceled() ){
07551                 return -1;
07552             }
07553             //  2003.06.23 Moca 表示設定をチェック
07554             m_bDrawSWITCH = ::IsDlgButtonChecked( pcDlgCancel->m_hWnd, IDC_CHECK_REALTIMEVIEW );
07555             // 2002/08/30 Moca 進行状態を表示する(5MB以上)
07556             if( 5000000 < cfl.GetFileSize() ){
07557                 int nPercent = cfl.GetPercent();
07558                 if( 5 <= nPercent - nOldPercent ){
07559                     nOldPercent = nPercent;
07560                     ::wsprintf( szWork, "%s (%3d%%)", pszFile, nPercent );
07561                     ::SetDlgItemText( hwndCancel, IDC_STATIC_CURFILE, szWork );
07562                 }
07563             }
07564         }
07565
07566         /* 正規表現検索 */
07567         if( bGrepRegularExp ){
07568             int nColmPrev = 0;
07569
07570             //  Jun. 21, 2003 genta ループ条件見直し
07571             //  マッチ箇所を1行から複数検出するケースを標準に，
07572             //  マッチ箇所を1行から1つだけ検出する場合を例外ケースととらえ，
07573             //  ループ継続・打ち切り条件(bGrepOutputLine)を逆にした．
07574             //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
07575             // From Here 2005.03.19 かろと もはやBREGEXP構造体に直接アクセスしない
07576             while( pRegexp->Match( pCompareData, nLineLen, 0 ) ){
07577
07578                     //  パターン発見
07579                     nColm = pRegexp->GetIndex() + 1;
07580                     int matchlen = pRegexp->GetMatchLen();
07581
07582                     /* Grep結果を、szWorkに格納する */
07583                     SetGrepResult(
07584                         szWork, &nWorkLen,
07585                         pszFullPath, pszCodeName,
07586                         nLine, nColm + nColmPrev, pCompareData, nLineLen, nEolCodeLen,
07587                         pCompareData + nColm - 1, matchlen,
07588                         bGrepOutputLine, nGrepOutputStyle
07589                     );
07590                     // To Here 2005.03.19 かろと もはやBREGEXP構造体に直接アクセスしない
07591                     if( 2 == nGrepOutputStyle ){
07592                     /* WZ風 */
07593                         if( !bOutFileName ){
07594                             cmemMessage.AppendSz( szWork0 );
07595                             bOutFileName = TRUE;
07596                         }
07597                     }
07598                     cmemMessage.Append( szWork, nWorkLen );
07599                     ++nHitCount;
07600                     ++(*pnHitCount);
07601                     if( 0 == ( (*pnHitCount) % 16 ) || *pnHitCount < 16 ){
07602                         ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
07603                     }
07604                     //  Jun. 21, 2003 genta 行単位で出力する場合は1つ見つかれば十分
07605                     if ( bGrepOutputLine ) {
07606                         break;
07607                     }
07608                     //  探し始める位置を補正
07609                     //  2003.06.10 Moca マッチした文字列の後ろから次の検索を開始する
07610                     //  nClom : マッチ位置
07611                     //  matchlen : マッチした文字列の長さ
07612                     int nPosDiff = nColm + matchlen;
07613                     if( matchlen != 0 ){
07614                         nPosDiff--;
07615                     }
07616                     pCompareData += nPosDiff;
07617                     nLineLen -= nPosDiff;
07618                     nColmPrev += nPosDiff;
07619             }
07620         }else
07621         /* 単語のみ検索 */
07622         if( bWordOnly ){
07623             /*
07624                 2002/02/23 Norio Nakatani
07625                 単語単位のGrepを試験的に実装。単語はWhereCurrentWord()で判別してますので、
07626                 英単語やC/C++識別子などの検索条件ならヒットします。
07627
07628                 2002/03/06 YAZAKI
07629                 Grepにも試験導入。
07630                 WhereCurrentWordで単語を抽出して、その単語が検索語とあっているか比較する。
07631             */
07632             int nNextWordFrom = 0;
07633             int nNextWordFrom2;
07634             int nNextWordTo2;
07635             // Jun. 26, 2003 genta 無駄なwhileは削除
07636             while( TRUE ==
07637                     CDocLineMgr::WhereCurrentWord_2( pCompareData, nLineLen, nNextWordFrom, &nNextWordFrom2, &nNextWordTo2 , NULL, NULL )
07638                 ){
07639                     if( nKeyKen == nNextWordTo2 - nNextWordFrom2 ){
07640                         // const char* pData = pCompareData;    // 2002/2/10 aroka CMemory変更 , 2002/08/29 Moca pCompareDataのconst化により不要?
07641                         /* 1==大文字小文字の区別 */
07642                         if( (FALSE == bGrepLoHiCase && 0 == _memicmp( &(pCompareData[nNextWordFrom2]) , pszKey, nKeyKen ) ) ||
07643                             (TRUE  == bGrepLoHiCase && 0 ==   memcmp( &(pCompareData[nNextWordFrom2]) , pszKey, nKeyKen ) )
07644                         ){
07645                             /* Grep結果を、szWorkに格納する */
07646                             SetGrepResult(
07647                                 szWork, &nWorkLen,
07648                                 pszFullPath, pszCodeName,
07649                                 //  Jun. 25, 2002 genta
07650                                 //  桁位置は1始まりなので1を足す必要がある
07651                                 nLine, nNextWordFrom2 + 1, pCompareData, nLineLen, nEolCodeLen,
07652                                 &(pCompareData[nNextWordFrom2]), nKeyKen,
07653                                 bGrepOutputLine, nGrepOutputStyle
07654                             );
07655                             if( 2 == nGrepOutputStyle ){
07656                             /* WZ風 */
07657                                 if( !bOutFileName ){
07658                                     cmemMessage.AppendSz( szWork0 );
07659                                     bOutFileName = TRUE;
07660                                 }
07661                             }
07662
07663                             cmemMessage.Append( szWork, nWorkLen );
07664                             ++nHitCount;
07665                             ++(*pnHitCount);
07666                             //  May 22, 2000 genta
07667                             // if( 0 == ( (*pnHitCount) % 16 ) ){
07668                                 ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
07669                             // }
07670                         }
07671                     }
07672                     /* 現在位置の左右の単語の先頭位置を調べる */
07673                     if( !CDocLineMgr::SearchNextWordPosition( pCompareData, nLineLen, nNextWordFrom, &nNextWordFrom, FALSE ) ){
07674                         break;  //  次の単語が無い。
07675                     }
07676                 }
07677         }
07678         else {
07679             /* 文字列検索 */
07680             int nColmPrev = 0;
07681             //  Jun. 21, 2003 genta ループ条件見直し
07682             //  マッチ箇所を1行から複数検出するケースを標準に，
07683             //  マッチ箇所を1行から1つだけ検出する場合を例外ケースととらえ，
07684             //  ループ継続・打ち切り条件(bGrepOutputLine)を逆にした．
07685             while( NULL != ( pszRes = CDocLineMgr::SearchString(
07686                     (const unsigned char *)pCompareData, nLineLen,
07687                     0,
07688                     (const unsigned char *)pszKey, nKeyKen,
07689                     pnKey_CharCharsArr,
07690                     bGrepLoHiCase
07691                 ) ) ){
07692                     nColm = pszRes - pCompareData + 1;
07693
07694                     /* Grep結果を、szWorkに格納する */
07695                     SetGrepResult(
07696                         szWork, &nWorkLen,
07697                         pszFullPath, pszCodeName,
07698                         nLine, nColm + nColmPrev, pCompareData, nLineLen, nEolCodeLen,
07699                         pszRes, nKeyKen,
07700                         bGrepOutputLine, nGrepOutputStyle
07701                     );
07702                     if( 2 == nGrepOutputStyle ){
07703                     /* WZ風 */
07704                         if( !bOutFileName ){
07705                             cmemMessage.AppendSz( szWork0 );
07706                             bOutFileName = TRUE;
07707                         }
07708                     }
07709
07710                     cmemMessage.Append( szWork, nWorkLen );
07711                     ++nHitCount;
07712                     ++(*pnHitCount);
07713                     //  May 22, 2000 genta
07714                     if( 0 == ( (*pnHitCount) % 16 ) || *pnHitCount < 16 ){
07715                         ::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
07716                     }
07717
07718                     //  Jun. 21, 2003 genta 行単位で出力する場合は1つ見つかれば十分
07719                     if ( bGrepOutputLine ) {
07720                         break;
07721                     }
07722                     //  探し始める位置を補正
07723                     //  2003.06.10 Moca マッチした文字列の後ろから次の検索を開始する
07724                     //  nClom : マッチ位置
07725                     //  matchlen : マッチした文字列の長さ
07726                     int nPosDiff = nColm += nKeyKen - 1;
07727                     pCompareData += nPosDiff;
07728                     nLineLen -= nPosDiff;
07729                     nColmPrev += nPosDiff;
07730             }
07731         }
07732     }
07733
07734     // ファイルを明示的に閉じるが、ここで閉じないときはデストラクタで閉じている
07735     cfl.FileClose();
07736     } // try
07737     catch( CError_FileOpen ){
07738         wsprintf( szWork, "file open error [%s]\r\n", pszFullPath );
07739         Command_ADDTAIL( szWork, lstrlen( szWork ) );
07740         return 0;
07741     }
07742     catch( CError_FileRead ){
07743         wsprintf( szWork, "CEditView::DoGrepFile() ファイルの読み込み中にエラーが発生しました。\r\n");
07744         Command_ADDTAIL( szWork, lstrlen( szWork ) );
07745     } // 例外処理終わり
07746
07747     return nHitCount;
07748 }
07749
07750
07751 /*
07752     カーソル直前の単語を取得 単語の長さを返します
07753     単語区切り
07754 */
07755 int CEditView::GetLeftWord( CMemory* pcmemWord, int nMaxWordLen )
07756 {
07757     const char* pLine;
07758     int         nLineLen;
07759     int         nIdx;
07760     int         nIdxTo;
07761     int         nLineFrom;
07762     int         nColmFrom;
07763     int         nLineTo;
07764     int         nColmTo;
07765     CMemory     cmemWord;
07766     int         nCurLine;
07767     int         nCharChars;
07768     const CLayout* pcLayout;
07769
07770     nCurLine = m_nCaretPosY;
07771     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nCurLine, &nLineLen, &pcLayout );
07772     if( NULL == pLine ){
07773 //      return 0;
07774         nIdxTo = 0;
07775     }else{
07776         /* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */
07777         nIdxTo = LineColmnToIndex( pcLayout, m_nCaretPosX );
07778     }
07779     if( 0 == nIdxTo || NULL == pLine ){
07780         if( nCurLine <= 0 ){
07781             return 0;
07782         }
07783         nCurLine--;
07784         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nCurLine, &nLineLen );
07785         if( NULL == pLine ){
07786             return 0;
07787         }
07788         if( pLine[nLineLen - 1] == '\r' || pLine[nLineLen - 1] == '\n' ){
07789             return 0;
07790         }
07791         /* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */
07792 //      nIdxTo = LineColmnToIndex( pLine, nLineLen, m_nCaretPosX );
07793
07794         nCharChars = &pLine[nLineLen] - CMemory::MemCharPrev( pLine, nLineLen, &pLine[nLineLen] );
07795         if( 0 == nCharChars ){
07796             return 0;
07797         }
07798         nIdxTo = nLineLen;
07799         nIdx = nIdxTo - nCharChars;
07800
07801 //      nIdx = nIdxTo = nLineLen - 1;
07802     }else{
07803         nCharChars = &pLine[nIdxTo] - CMemory::MemCharPrev( pLine, nLineLen, &pLine[nIdxTo] );
07804         if( 0 == nCharChars ){
07805             return 0;
07806         }
07807         nIdx = nIdxTo - nCharChars;
07808     }
07809     if( 1 == nCharChars ){
07810         if( pLine[nIdx] == SPACE || pLine[nIdx] == TAB ){
07811             return 0;
07812         }
07813     }
07814     if( 2 == nCharChars ){
07815         if( (unsigned char)pLine[nIdx    ] == (unsigned char)0x81 &&
07816             (unsigned char)pLine[nIdx + 1] == (unsigned char)0x40
07817         ){
07818             return 0;
07819         }
07820     }
07821
07822
07823 //  nIdx = nIdxTo - 1;
07824 //  if( 0 > nIdx ){
07825 //      return 0;
07826 //  }
07827 //  if( pLine[nIdx] == SPACE ||
07828 //      pLine[nIdx] == TAB ||
07829 //      (
07830 //          nIdx > 0 &&
07831 //          pLine[nIdx] == 0x40 &&
07832 //          (unsigned char)pLine[nIdx - 1] == (unsigned char)0x81
07833 //      )
07834 //  ){
07835 //      return 0;
07836 //  }
07837 //  while( 0 <= nIdx && ( pLine[nIdx] != SPACE && pLine[nIdx] != TAB ) ){
07838 //      nIdx--;
07839 //  }
07840 //  ++nIdx;
07841 //  if( nIdxTo - nIdx > 0 ){
07842 //      if( nMaxWordLen < nIdxTo - nIdx ){
07843 //          return 0;
07844 //      }else{
07845 //          pcmemWord->SetData( &pLine[nIdx], nIdxTo - nIdx );
07846 //          return nIdxTo - nIdx;
07847 //      }
07848 //  }else{
07849 //      return 0;
07850 //  }
07851
07852
07853
07854     /* 現在位置の単語の範囲を調べる */
07855     if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
07856         nCurLine, nIdx,
07857         &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, &cmemWord, pcmemWord )
07858     ){
07859         pcmemWord->Append( &pLine[nIdx], nCharChars );
07860 //      MYTRACE( "==========\n" );
07861 //      MYTRACE( "cmemWord=[%s]\n", cmemWord.GetPtr() );
07862 //      MYTRACE( "pcmemWord=[%s]\n", pcmemWord->GetPtr() );
07863
07864         return pcmemWord->GetLength();
07865     }else{
07866         return 0;
07867     }
07868 }
07878 BOOL CEditView::GetCurrentWord(
07879         CMemory* pcmemWord
07880 )
07881 {
07882     int             nLineFrom;
07883     int             nColmFrom;
07884     int             nLineTo;
07885     int             nColmTo;
07886     int             nIdx;
07887     const CLayout*  pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
07888     if( NULL == pcLayout ){
07889         return false;   /* 単語選択に失敗 */
07890     }
07891     /* 指定された桁に対応する行のデータ内の位置を調べる */
07892     nIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
07893
07894     /* 現在位置の単語の範囲を調べる */
07895     if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
07896         m_nCaretPosY, nIdx,
07897         &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, pcmemWord, NULL ) ){
07898         return true;    /* 単語選択に成功 */
07899     }
07900     else {
07901         return false;   /* 単語選択に失敗 */
07902     }
07903 }
07904
07905
07906 /* 指定カーソル位置が選択エリア内にあるか
07907     【戻り値】
07908     -1  選択エリアより前方 or 無選択
07909     0   選択エリア内
07910     1   選択エリアより後方
07911 */
07912 int CEditView::IsCurrentPositionSelected(
07913     int     nCaretPosX,     // カーソル位置X
07914     int     nCaretPosY      // カーソル位置Y
07915 )
07916 {
07917     if( !IsTextSelected() ){    /* テキストが選択されているか */
07918         return -1;
07919     }
07920     RECT    rcSel;
07921     POINT   po;
07922
07923
07924     /* 矩形範囲選択中か */
07925     if( m_bBeginBoxSelect ){
07926         /* 2点を対角とする矩形を求める */
07927         TwoPointToRect(
07928             &rcSel,
07929             m_nSelectLineFrom,      /* 範囲選択開始行 */
07930             m_nSelectColmFrom,      /* 範囲選択開始桁 */
07931             m_nSelectLineTo,        /* 範囲選択終了行 */
07932             m_nSelectColmTo         /* 範囲選択終了桁 */
07933         );
07934         ++rcSel.bottom;
07935         po.x = nCaretPosX;
07936         po.y = nCaretPosY;
07937         if( m_bDragSource ){
07938             if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL ) ){ /* Ctrlキーが押されていたか */
07939                 ++rcSel.left;
07940             }else{
07941                 ++rcSel.right;
07942             }
07943         }
07944         if( PtInRect( &rcSel, po ) ){
07945             return 0;
07946         }
07947         if( rcSel.top > nCaretPosY ){
07948             return -1;
07949         }
07950         if( rcSel.bottom < nCaretPosY ){
07951             return 1;
07952         }
07953         if( rcSel.left > nCaretPosX ){
07954             return -1;
07955         }
07956         if( rcSel.right < nCaretPosX ){
07957             return 1;
07958         }
07959     }else{
07960         if( m_nSelectLineFrom > nCaretPosY ){
07961             return -1;
07962         }
07963         if( m_nSelectLineTo < nCaretPosY ){
07964             return 1;
07965         }
07966         if( m_nSelectLineFrom == nCaretPosY ){
07967             if( m_bDragSource ){
07968                 if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL ) ){  /* Ctrlキーが押されていたか */
07969                     if( m_nSelectColmFrom >= nCaretPosX ){
07970                         return -1;
07971                     }
07972                 }else{
07973                     if( m_nSelectColmFrom > nCaretPosX ){
07974                         return -1;
07975                     }
07976                 }
07977             }else
07978             if( m_nSelectColmFrom > nCaretPosX ){
07979                 return -1;
07980             }
07981         }
07982         if( m_nSelectLineTo == nCaretPosY ){
07983             if( m_bDragSource ){
07984                 if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL ) ){  /* Ctrlキーが押されていたか */
07985                     if( m_nSelectColmTo <= nCaretPosX ){
07986                         return 1;
07987                     }
07988                 }else{
07989                     if( m_nSelectColmTo < nCaretPosX ){
07990                         return 1;
07991                     }
07992                 }
07993             }else
07994             if( m_nSelectColmTo <= nCaretPosX ){
07995                 return 1;
07996             }
07997         }
07998         return 0;
07999     }
08000     return -1;
08001 }
08002
08003 /* 指定カーソル位置が選択エリア内にあるか (テスト)
08004     【戻り値】
08005     -1  選択エリアより前方 or 無選択
08006     0   選択エリア内
08007     1   選択エリアより後方
08008 */
08009 int CEditView::IsCurrentPositionSelectedTEST(
08010     int     nCaretPosX,     // カーソル位置X
08011     int     nCaretPosY,     // カーソル位置Y
08012     int     nSelectLineFrom,
08013     int     nSelectColmFrom,
08014     int     nSelectLineTo,
08015     int     nSelectColmTo
08016 )
08017 {
08018     if( !IsTextSelected() ){    /* テキストが選択されているか */
08019         return -1;
08020     }
08021 //  RECT    rcSel;
08022 //  POINT   po;
08023
08024
08025     if( nSelectLineFrom > nCaretPosY ){
08026         return -1;
08027     }
08028     if( nSelectLineTo < nCaretPosY ){
08029         return 1;
08030     }
08031     if( nSelectLineFrom == nCaretPosY ){
08032         if( nSelectColmFrom > nCaretPosX ){
08033             return -1;
08034         }
08035     }
08036     if( nSelectLineTo == nCaretPosY ){
08037         if( nSelectColmTo <= nCaretPosX ){
08038             return 1;
08039         }
08040     }
08041     return 0;
08042 }
08043
08047 BOOL CEditView::MyGetClipboardData( CMemory& cmemBuf, BOOL* pbColmnSelect )
08048 {
08049     HGLOBAL     hglb;
08050     char*       lptstr;
08051
08052     if( NULL != pbColmnSelect ){
08053         *pbColmnSelect = FALSE;
08054     }
08055
08056
08057     UINT uFormatSakuraClip;
08058     UINT uFormat;
08059     uFormatSakuraClip = ::RegisterClipboardFormat( "SAKURAClip" );
08060     if( !::IsClipboardFormatAvailable( CF_OEMTEXT )
08061      && !::IsClipboardFormatAvailable( uFormatSakuraClip )
08062     ){
08063         return FALSE;
08064     }
08065     if ( !::OpenClipboard( m_hWnd ) ){
08066         return FALSE;
08067     }
08068
08069     char    szFormatName[128];
08070
08071     if( NULL != pbColmnSelect ){
08072         /* 矩形選択のテキストデータがクリップボードにあるか */
08073         uFormat = 0;
08074         while( 0 != ( uFormat = ::EnumClipboardFormats( uFormat ) ) ){
08075             // Jul. 2, 2005 genta : check return value of GetClipboardFormatName
08076             if( ::GetClipboardFormatName( uFormat, szFormatName, sizeof(szFormatName) - 1 ) &&
08077                 0 == lstrcmp( "MSDEVColumnSelect", szFormatName ) ){
08078                 *pbColmnSelect = TRUE;
08079                 break;
08080             }
08081         }
08082     }
08083     if( ::IsClipboardFormatAvailable( uFormatSakuraClip ) ){
08084         hglb = ::GetClipboardData( uFormatSakuraClip );
08085         if (hglb != NULL) {
08086             lptstr = (char*)::GlobalLock(hglb);
08087             cmemBuf.SetData( lptstr + sizeof(int), *((int*)lptstr) );
08088             ::GlobalUnlock(hglb);
08089             ::CloseClipboard();
08090             return TRUE;
08091         }
08092     }else{
08093         // From Here 2005/05/29 novice UNICODE TEXT 対応処理を追加
08094         hglb = ::GetClipboardData( CF_UNICODETEXT );
08095         if( hglb != NULL ){
08096             lptstr = (char*)::GlobalLock(hglb);
08097             //  UnicodeToSJISでは後ろに余計な空白が入るので，
08098             //  一時変数を介した後に\0までを取り出す．
08099             CMemory cmemUnicode( lptstr, GlobalSize(lptstr) );
08100             cmemUnicode.UnicodeToSJIS();
08101             cmemBuf.SetDataSz( cmemUnicode.GetPtr() );
08102             ::GlobalUnlock(hglb);
08103             ::CloseClipboard();
08104             return TRUE;
08105         }
08106         //  To Here 2005/05/29 novice
08107
08108         hglb = ::GetClipboardData( CF_OEMTEXT );
08109         if( hglb != NULL ){
08110             lptstr = (char*)::GlobalLock(hglb);
08111             cmemBuf.SetDataSz( lptstr );
08112             ::GlobalUnlock(hglb);
08113             ::CloseClipboard();
08114             return TRUE;
08115         }
08116     }
08117     ::CloseClipboard();
08118     return FALSE;
08119 }
08120
08121 /* クリップボードにデータを設定
08122     @date 2004.02.17 Moca エラーチェックするように
08123  */
08124 BOOL CEditView::MySetClipboardData( const char* pszText, int nTextLen, BOOL bColmnSelect )
08125 {
08126     HGLOBAL     hgClipText;
08127     HGLOBAL     hgClipSakura;
08128     HGLOBAL     hgClipMSDEVColm;
08129
08130     char*       pszClip;
08131     UINT        uFormat;
08132     /* Windowsクリップボードにコピー */
08133     if( FALSE == ::OpenClipboard( m_hWnd ) ){
08134         return FALSE;
08135     }
08136     ::EmptyClipboard();
08137     // ヌル終端までの長さ
08138     int nNullTerminateLen = lstrlen( pszText );
08139
08140     /* テキスト形式のデータ */
08141     hgClipText = ::GlobalAlloc(
08142         GMEM_MOVEABLE | GMEM_DDESHARE,
08143         nNullTerminateLen + 1
08144     );
08145     if( hgClipText ){
08146         pszClip = (char*)::GlobalLock( hgClipText );
08147         memcpy( pszClip, pszText, nNullTerminateLen );
08148         pszClip[nNullTerminateLen] = '\0';
08149         ::GlobalUnlock( hgClipText );
08150         ::SetClipboardData( CF_OEMTEXT, hgClipText );
08151     }
08152
08153     /* バイナリ形式のデータ
08154         (int) 「データ」の長さ
08155         「データ」
08156     */
08157     UINT    uFormatSakuraClip;
08158     uFormatSakuraClip = ::RegisterClipboardFormat( _T("SAKURAClip") );
08159     if( 0 != uFormatSakuraClip ){
08160         hgClipSakura = ::GlobalAlloc(
08161             GMEM_MOVEABLE | GMEM_DDESHARE,
08162             nTextLen + sizeof( int ) + 1
08163         );
08164         if( hgClipSakura ){
08165             pszClip = (char*)::GlobalLock( hgClipSakura );
08166             *((int*)pszClip) = nTextLen;
08167             memcpy( pszClip + sizeof( int ), pszText, nTextLen );
08168             ::GlobalUnlock( hgClipSakura );
08169             ::SetClipboardData( uFormatSakuraClip, hgClipSakura );
08170         }
08171     }
08172
08173
08174     /* 矩形選択を示すダミーデータ */
08175     if( bColmnSelect ){
08176         uFormat = ::RegisterClipboardFormat( _T("MSDEVColumnSelect") );
08177         if( 0 != uFormat ){
08178             hgClipMSDEVColm = ::GlobalAlloc(
08179                 GMEM_MOVEABLE | GMEM_DDESHARE,
08180                 1
08181             );
08182             if( hgClipMSDEVColm ){
08183                 pszClip = (char*)::GlobalLock( hgClipMSDEVColm );
08184                 pszClip[0] = '\0';
08185                 ::GlobalUnlock( hgClipMSDEVColm );
08186                 ::SetClipboardData( uFormat, hgClipMSDEVColm );
08187             }
08188         }
08189     }
08190     ::CloseClipboard();
08191
08192     if( bColmnSelect && !hgClipMSDEVColm ){
08193         return FALSE;
08194     }
08195
08196     if( !hgClipText && !hgClipSakura ){
08197         return FALSE;
08198     }
08199     return TRUE;
08200 }
08201
08202
08203
08204
08205
08206
08207 STDMETHODIMP CEditView::DragEnter( LPDATAOBJECT pDataObject, DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
08208 {
08209 #ifdef _DEBUG
08210     MYTRACE( "CEditView::DragEnter()\n" );
08211 #endif
08212
08213     if( TRUE == m_pShareData->m_Common.m_bUseOLE_DragDrop   /* OLEによるドラッグ & ドロップを使う */
08214         //  Oct. 22, 2005 genta 上書き禁止(ファイルがロックされている)場合も不可
08215          && !( 0 != m_pcEditDoc->m_nFileShareModeOld && m_pcEditDoc->m_hLockedFile == NULL )
08216          && !m_pcEditDoc->IsReadOnly() ){ // Mar. 30, 2003 読みとり専用のファイルにはドロップさせない
08217     }else{
08218         return E_UNEXPECTED;    //  Moca E_INVALIDARGから変更
08219     }
08220
08221     if( pDataObject == NULL || pdwEffect == NULL )
08222         return E_INVALIDARG;
08223     if( IsDataAvailable( pDataObject, CF_TEXT )
08224 //   && NULL != GetGlobalData(pDataObject, CF_TEXT)
08225     ){
08226         /* 自分をアクティブペインにする */
08227         m_pcEditDoc->SetActivePane( m_nMyIndex );
08228
08229         /* 選択テキストのドラッグ中か */
08230         m_bDragMode = TRUE;
08231
08232     //  /* 編集ウィンドウオブジェクトからのアクティブ要求 */
08233     //  ::PostMessage( m_pShareData->m_hwndTray, MYWM_ACTIVATE_ME, (WPARAM)::GetParent( m_hwndParent ),  0 );
08234
08235         /* 入力フォーカスを受け取ったときの処理 */
08236         OnSetFocus();
08237
08238     //  ::ScreenToClient( m_hWnd_DropTarget, (LPPOINT)&pt );
08239     //  OnLBUTTONDOWN( dwKeyState, pt.x, pt.y );
08240
08241         m_pcDropTarget->m_pDataObject = pDataObject;
08242         /* Ctrl,ALT,キーが押されていたか */
08243         if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL )
08244             || FALSE == m_bDragSource   // Aug. 6, 2004 genta DragOver/Dropでは入っているがここだけ漏れていた
08245         ){
08246             *pdwEffect = DROPEFFECT_COPY;
08247         }else{
08248             *pdwEffect = DROPEFFECT_MOVE;
08249         }
08250 //      /* アクティブにする */
08251 //      ActivateFrameWindow( GetParent( m_hwndParent ) );
08252 //      ActivateFrameWindow( m_hWnd_DropTarget/*GetParent( m_hwndParent )*/ );
08253
08254 //      ::SetFocus( m_hWnd_DropTarget );
08255         ::SetFocus( m_hWnd );
08256     }else{
08257         return E_INVALIDARG;
08258 //      *pdwEffect = DROPEFFECT_NONE;
08259
08260     }
08261 //  /* アクティブにする */
08262 //  ActivateFrameWindow( ::GetParent( m_hwndParent ) );
08263 //  ::PostMessage( ::GetParent( m_hwndParent ), WM_ACTIVATE, MAKELONG( 0, WA_ACTIVE ), 0 );
08264 //  /*
08265 //  ||  処理中のユーザー操作を可能にする
08266     //  ||  ブロッキングフック (メッセージ配送)
08267 //  */
08268 //  BlockingHook();
08269
08270     DragOver( dwKeyState, pt, pdwEffect );
08271     return S_OK;
08272 }
08273
08274 STDMETHODIMP CEditView::DragOver( DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
08275 {
08276 #ifdef _DEBUG
08277     MYTRACE( "CEditView::DragOver()\n" );
08278 #endif
08279 //  RECT    rc;
08280 //  POINT   po;
08281 //  po.x = pt.x;
08282 //  po.y = pt.y;
08283 //  ::GetWindowRect(m_hWnd, &rc );
08284 //  if( m_bDragSource && PtInRect( &rc, po ) ){
08285 //  }else{
08286         /* マウス移動のメッセージ処理 */
08287 //      ::ScreenToClient( m_hWnd_DropTarget, (LPPOINT)&pt );
08288         ::ScreenToClient( m_hWnd, (LPPOINT)&pt );
08289         OnMOUSEMOVE( dwKeyState, pt.x , pt.y );
08290 //  }
08291
08292 //  MYTRACE( "m_nCaretPosX=%d, m_nCaretPosY=%d\n", m_nCaretPosX, m_nCaretPosY );
08293
08294     if ( pdwEffect == NULL )
08295         return E_INVALIDARG;
08296 //  ::ScreenToClient( m_hWnd_DropTarget, (LPPOINT)&pt );
08297 //  DWORD dwIndex = LOWORD( ::SendMessage( m_hWnd_DropTarget, EM_CHARFROMPOS, 0, MAKELPARAM( pt.x, pt.y ) ) );
08298 //  if ( dwIndex != (WORD) -1 ){
08299 //      ::SendMessage( m_hWnd_DropTarget, EM_SETSEL, dwIndex, dwIndex );
08300 //      ::SendMessage( m_hWnd_DropTarget, EM_SCROLLCARET, 0, 0 );
08301 //  }
08302     if( NULL == m_pcDropTarget->m_pDataObject ){
08303         *pdwEffect = DROPEFFECT_NONE;
08304     }else
08305     if( m_bDragSource
08306      && 0 == IsCurrentPositionSelected( /* 指定カーソル位置が選択エリア内にあるか */
08307             m_nCaretPosX,               // カーソル位置X
08308             m_nCaretPosY                // カーソル位置Y
08309         )
08310     ){
08311         *pdwEffect = DROPEFFECT_NONE;
08312     }else
08313     /* Ctrl,ALT,キーが押されていたか */
08314     if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL )
08315      || FALSE == m_bDragSource
08316     ){
08317         *pdwEffect = DROPEFFECT_COPY;
08318     }else{
08319         *pdwEffect = DROPEFFECT_MOVE;
08320     }
08321     return S_OK;
08322 }
08323
08324
08325
08326 STDMETHODIMP CEditView::DragLeave( void )
08327 {
08328 #ifdef _DEBUG
08329     MYTRACE( "CEditView::DragLeave()\n" );
08330 #endif
08331
08332     if( !m_bDragSource ){
08333         /* 入力フォーカスを失ったときの処理 */
08334         OnKillFocus();
08335         ::SetFocus(NULL);
08336     }else{
08337         // 1999.11.15
08338         OnSetFocus();
08339         ::SetFocus( ::GetParent( m_hwndParent ) );
08340     }
08341
08342     m_pcDropTarget->m_pDataObject = NULL;
08343
08344     /* 選択テキストのドラッグ中か */
08345     m_bDragMode = FALSE;
08346
08347     return S_OK;
08348 }
08349
08350 STDMETHODIMP CEditView::Drop( LPDATAOBJECT pDataObject, DWORD dwKeyState, POINTL pt, LPDWORD pdwEffect )
08351 {
08352 #ifdef _DEBUG
08353     MYTRACE( "CEditView::Drop()\n" );
08354 #endif
08355     BOOL        bBoxSelected;
08356     BOOL        bMove;
08357     BOOL        bMoveToPrev;
08358     RECT        rcSel;
08359     int         nCaretPosX_Old;
08360     int         nCaretPosY_Old;
08361     CMemory     cmemBuf;
08362     CMemory     cmemClip;
08363     int         bBeginBoxSelect_Old;
08364 //  int         nSelectLineBgn_Old;         /* 範囲選択開始行(原点) */
08365 //  int         nSelectColBgn_Old;          /* 範囲選択開始桁(原点) */
08366     int         nSelectLineBgnFrom_Old;     /* 範囲選択開始行(原点) */
08367     int         nSelectColBgnFrom_Old;      /* 範囲選択開始桁(原点) */
08368     int         nSelectLineBgnTo_Old;       /* 範囲選択開始行(原点) */
08369     int         nSelectColBgnTo_Old;        /* 範囲選択開始桁(原点) */
08370     int         nSelectLineFrom_Old;
08371     int         nSelectColFrom_Old;
08372     int         nSelectLineTo_Old;
08373     int         nSelectColTo_Old;
08374 //  MYTRACE( "CEditView::Drop()\n" );
08375
08376     if( !m_bDragSource
08377      && IsTextSelected() ){ /* テキストが選択されているか */
08378         /* 現在の選択範囲を非選択状態に戻す */
08379         DisableSelectArea( TRUE );
08380     }
08381     if( pDataObject == NULL || pdwEffect == NULL )
08382         return E_INVALIDARG;
08383     *pdwEffect = DROPEFFECT_NONE;
08384     if( IsDataAvailable(pDataObject, CF_TEXT) ){
08385 #ifdef _DEBUG
08386         MYTRACE( "TRUE == IsDataAvailable()\n" );
08387 #endif
08388         HGLOBAL     hData = GetGlobalData(pDataObject, CF_TEXT);
08389 #ifdef _DEBUG
08390         MYTRACE( "%xh == GetGlobalData(pDataObject, CF_TEXT)\n", hData );
08391 #endif
08392         if (hData == NULL){
08393             m_pcDropTarget->m_pDataObject = NULL;
08394             /* 選択テキストのドラッグ中か */
08395             m_bDragMode = FALSE;
08396             return E_INVALIDARG;
08397         }
08398
08399         DWORD       nSize = 0;
08400         LPCTSTR lpszSource = (LPCTSTR) ::GlobalLock(hData);
08401
08402 //      MYTRACE( "lpszSource=[%s]\n", lpszSource );
08403
08404         /* 移動かコピーか */
08405         if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL )
08406          || FALSE == m_bDragSource
08407         ){
08408             bMove = FALSE;
08409             *pdwEffect = DROPEFFECT_COPY;
08410         }else{
08411             bMove = TRUE;
08412             *pdwEffect = DROPEFFECT_MOVE;
08413         }
08414
08415         if( m_bDragSource ){
08416             if( NULL != m_pcOpeBlk ){
08417             }else{
08418                 m_pcOpeBlk = new COpeBlk;
08419             }
08420             bBoxSelected = m_bBeginBoxSelect;
08421             /* 選択範囲のデータを取得 */
08422 //          GetSelectedData( cmemBuf, FALSE, NULL, FALSE );
08423 //          cmemBuf.SetData( lpszSource, lstrlen( lpszSource ) );
08424             cmemBuf.SetDataSz( lpszSource );
08425
08426             /* 移動の場合、位置関係を算出 */
08427             if( bMove ){
08428                 if( bBoxSelected ){
08429                     /* 2点を対角とする矩形を求める */
08430                     TwoPointToRect(
08431                         &rcSel,
08432                         m_nSelectLineFrom,      /* 範囲選択開始行 */
08433                         m_nSelectColmFrom,      /* 範囲選択開始桁 */
08434                         m_nSelectLineTo,        /* 範囲選択終了行 */
08435                         m_nSelectColmTo         /* 範囲選択終了桁 */
08436                     );
08437                     ++rcSel.bottom;
08438                     if( m_nCaretPosY >= rcSel.bottom ){
08439                         bMoveToPrev = FALSE;
08440                     }else
08441                     if( m_nCaretPosY + rcSel.bottom - rcSel.top < rcSel.top ){
08442                         bMoveToPrev = TRUE;
08443                     }else
08444                     if( m_nCaretPosX < rcSel.left ){
08445                         bMoveToPrev = TRUE;
08446                     }else{
08447                         bMoveToPrev = FALSE;
08448                     }
08449                 }else{
08450                     if( m_nSelectLineFrom > m_nCaretPosY ){
08451                         bMoveToPrev = TRUE;
08452                     }else
08453                     if( m_nSelectLineFrom == m_nCaretPosY ){
08454                         if( m_nSelectColmFrom > m_nCaretPosX ){
08455                             bMoveToPrev = TRUE;
08456                         }else{
08457                             bMoveToPrev = FALSE;
08458                         }
08459                     }else{
08460                         bMoveToPrev = FALSE;
08461                     }
08462                 }
08463             }
08464             if( !bMove ){
08465                 /* コピーモード */
08466                 /* 現在の選択範囲を非選択状態に戻す */
08467                 DisableSelectArea( TRUE );
08468             }
08469             nCaretPosX_Old = m_nCaretPosX;
08470             nCaretPosY_Old = m_nCaretPosY;
08471             if( bMove ){
08472                 if( bMoveToPrev ){
08473                     /* 移動モード & 前に移動 */
08474                     /* 選択エリアを削除 */
08475                     DeleteData( TRUE );
08476                     MoveCursor( nCaretPosX_Old, nCaretPosY_Old, TRUE );
08477                 }else{
08478                     bBeginBoxSelect_Old = m_bBeginBoxSelect;
08479
08480                     nSelectLineBgnFrom_Old  = m_nSelectLineBgnFrom; /* 範囲選択開始行(原点) */
08481                     nSelectColBgnFrom_Old   = m_nSelectColmBgnFrom; /* 範囲選択開始桁(原点) */
08482                     nSelectLineBgnTo_Old    = m_nSelectLineBgnTo;   /* 範囲選択開始行(原点) */
08483                     nSelectColBgnTo_Old     = m_nSelectColmBgnTo;   /* 範囲選択開始桁(原点) */
08484
08485                     nSelectLineFrom_Old = m_nSelectLineFrom;
08486                     nSelectColFrom_Old  = m_nSelectColmFrom;
08487                     nSelectLineTo_Old   = m_nSelectLineTo;
08488                     nSelectColTo_Old    = m_nSelectColmTo;
08489                     /* 現在の選択範囲を非選択状態に戻す */
08490                     DisableSelectArea( TRUE );
08491                 }
08492             }
08493             if( FALSE == bBoxSelected ){    /* 矩形範囲選択中 */
08494                 //  2004,05.14 Moca 引数に文字列長を追加
08495                 Command_INSTEXT( TRUE, cmemBuf.GetPtr(), cmemBuf.GetLength(), FALSE );
08496             }else{
08497                 // 2004.07.12 Moca クリップボードを書き換えないように
08498                 // TRUE == bBoxSelected
08499                 // FALSE == m_bBeginBoxSelect
08500                 cmemClip.SetDataSz( "" );
08501                 /* 貼り付け（クリップボードから貼り付け）*/
08502                 Command_PASTEBOX( cmemBuf.GetPtr(), cmemBuf.GetLength() );
08503                 AdjustScrollBars(); // 2007.07.22 ryoji
08504                 Redraw();
08505             }
08506             if( bMove ){
08507                 if( bMoveToPrev ){
08508                 }else{
08509                     /* 移動モード & 後ろに移動*/
08510                     m_bBeginBoxSelect = bBeginBoxSelect_Old;
08511                     m_nSelectLineBgnFrom = nSelectLineBgnFrom_Old;  /* 範囲選択開始行(原点) */
08512                     m_nSelectColmBgnFrom = nSelectColBgnFrom_Old;   /* 範囲選択開始桁(原点) */
08513                     m_nSelectLineBgnTo = nSelectLineBgnTo_Old;      /* 範囲選択開始行(原点) */
08514                     m_nSelectColmBgnTo = nSelectColBgnTo_Old;       /* 範囲選択開始桁(原点) */
08515
08516                     m_nSelectLineFrom = nSelectLineFrom_Old;
08517                     m_nSelectColmFrom = nSelectColFrom_Old;
08518                     m_nSelectLineTo = nSelectLineTo_Old;
08519                     m_nSelectColmTo = nSelectColTo_Old;
08520
08521                     /* 選択エリアを削除 */
08522                     DeleteData( TRUE );
08523                     MoveCursor( nCaretPosX_Old, nCaretPosY_Old, TRUE );
08524                 }
08525             }
08526             /* アンドゥバッファの処理 */
08527             if( NULL != m_pcOpeBlk ){
08528                 if( 0 < m_pcOpeBlk->GetNum() ){ /* 操作の数を返す */
08529                     /* 操作の追加 */
08530                     m_pcEditDoc->m_cOpeBuf.AppendOpeBlk( m_pcOpeBlk );
08531                     m_pcEditDoc->RedrawInactivePane();  // 他のペインの表示 // 2007.07.22 ryoji
08532                 }else{
08533                     delete m_pcOpeBlk;
08534                 }
08535                 m_pcOpeBlk = NULL;
08536             }
08537         }else{
08538             HandleCommand( F_INSTEXT, TRUE, (LPARAM)lpszSource, TRUE, 0, 0 );
08539         }
08540         ::GlobalUnlock(hData);
08541         // 2004.07.12 fotomo/もか メモリーリークの修正
08542         if( 0 == (GMEM_LOCKCOUNT & ::GlobalFlags(hData)) ){
08543             ::GlobalFree(hData);
08544         }
08545     }else{
08546 #ifdef _DEBUG
08547         MYTRACE( "FALSE == IsDataAvailable()\n" );
08548 #endif
08549     }
08550     m_pcDropTarget->m_pDataObject = NULL;
08551 //  ::SetFocus(NULL);
08552
08553     /* 選択テキストのドラッグ中か */
08554     m_bDragMode = FALSE;
08555
08556     /* 編集ウィンドウオブジェクトからのアクティブ要求 */
08557     ::SetFocus( ::GetParent( m_hwndParent ) );
08558     SetActiveWindow( m_hWnd );
08559 //  ::PostMessage( m_pShareData->m_hwndTray, MYWM_ACTIVATE_ME, (WPARAM)::GetParent( m_hwndParent ),  0 );
08560
08561 //  ::ShowCaret( m_hWnd );
08562     return S_OK;
08563 }
08564
08565
08566
08567
08568
08569 /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
08570 void CEditView::GetCurrentTextForSearch( CMemory& cmemCurText )
08571 {
08572
08573     int             i;
08574     char            szTopic[_MAX_PATH];
08575 //  CMemory         cmemCurText;
08576     const char*     pLine;
08577     int             nLineLen;
08578     int             nIdx;
08579     int             nLineFrom;
08580     int             nColmFrom;
08581     int             nLineTo;
08582     int             nColmTo;
08583 //  const CLayout*  pcLayout;
08584
08585     cmemCurText.SetDataSz( "" );
08586     szTopic[0] = '\0';
08587     if( IsTextSelected() ){ /* テキストが選択されているか */
08588         /* 選択範囲のデータを取得 */
08589         if( GetSelectedData( cmemCurText, FALSE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy ) ){
08590             /* 検索文字列を現在位置の単語で初期化 */
08591             strncpy( szTopic, cmemCurText.GetPtr(), _MAX_PATH - 1 );
08592             szTopic[_MAX_PATH - 1] = '\0';
08593         }
08594     }else{
08595         const CLayout*  pcLayout;
08596         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
08597         if( NULL != pLine ){
08598             /* 指定された桁に対応する行のデータ内の位置を調べる */
08599             nIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
08600
08601             /* 現在位置の単語の範囲を調べる */
08602             if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
08603                 m_nCaretPosY, nIdx,
08604                 &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, NULL, NULL )
08605             ){
08606                 /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
08607                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineFrom, &nLineLen, &pcLayout );
08608                 nColmFrom = LineIndexToColmn( pcLayout, nColmFrom );
08609                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineTo, &nLineLen, &pcLayout );
08610                 nColmTo = LineIndexToColmn( pcLayout, nColmTo );
08611                 /* 選択範囲の変更 */
08612                 m_nSelectLineBgnFrom = nLineFrom;   /* 範囲選択開始行(原点) */
08613                 m_nSelectColmBgnFrom = nColmFrom;   /* 範囲選択開始桁(原点) */
08614                 m_nSelectLineBgnTo = nLineTo;       /* 範囲選択開始行(原点) */
08615                 m_nSelectColmBgnTo = nColmTo;       /* 範囲選択開始桁(原点) */
08616
08617                 m_nSelectLineFrom = nLineFrom;
08618                 m_nSelectColmFrom = nColmFrom;
08619                 m_nSelectLineTo = nLineTo;
08620                 m_nSelectColmTo = nColmTo;
08621                 /* 選択範囲のデータを取得 */
08622                 if( GetSelectedData( cmemCurText, FALSE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy ) ){
08623                     /* 検索文字列を現在位置の単語で初期化 */
08624                     strncpy( szTopic, cmemCurText.GetPtr(), MAX_PATH - 1 );
08625                     szTopic[MAX_PATH - 1] = '\0';
08626                 }
08627                 /* 現在の選択範囲を非選択状態に戻す */
08628                 DisableSelectArea( FALSE );
08629             }
08630         }
08631     }
08632
08633     /* 検索文字列は改行まで */
08634     for( i = 0; i < (int)lstrlen( szTopic ); ++i ){
08635         if( szTopic[i] == CR || szTopic[i] == LF ){
08636             szTopic[i] = '\0';
08637             break;
08638         }
08639     }
08640 //  cmemCurText.SetData( szTopic, lstrlen( szTopic ) );
08641     cmemCurText.SetDataSz( szTopic );
08642     return;
08643
08644 }
08645
08646
08650 void CEditView::GetCurrentTextForSearchDlg( CMemory& cmemCurText )
08651 {
08652     cmemCurText.SetDataSz( "" );
08653
08654     if( IsTextSelected() ){ // テキストが選択されている
08655         GetCurrentTextForSearch( cmemCurText );
08656     }
08657     else{   // テキストが選択されていない
08658         if( m_pShareData->m_Common.m_bCaretTextForSearch ){
08659             GetCurrentTextForSearch( cmemCurText ); // カーソル位置単語を取得
08660         }
08661         else{
08662             cmemCurText.SetDataSz( m_pShareData->m_szSEARCHKEYArr[0] ); // 履歴からとってくる
08663         }
08664     }
08665 }
08666
08667
08668 /* カーソル行アンダーラインのON */
08669 void CCaretUnderLine::CaretUnderLineON( BOOL bDraw )
08670 {
08671     if( m_nLockCounter ) return;    //  ロックされていたら何もできない。
08672     m_pcEditView->CaretUnderLineON( bDraw );
08673 }
08674
08675
08676
08677 /* カーソル行アンダーラインのOFF */
08678 void CCaretUnderLine::CaretUnderLineOFF( BOOL bDraw )
08679 {
08680     if( m_nLockCounter ) return;    //  ロックされていたら何もできない。
08681     m_pcEditView->CaretUnderLineOFF( bDraw );
08682 }
08683
08684
08685 /* カーソル行アンダーラインのON */
08686 void CEditView::CaretUnderLineON( BOOL bDraw )
08687 {
08688     if( FALSE == m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_UNDERLINE].m_bDisp ){
08689         return;
08690     }
08691
08692     if( IsTextSelected() ){ /* テキストが選択されているか */
08693         return;
08694     }
08695     m_nOldUnderLineY = m_nViewAlignTop  + (m_nCaretPosY - m_nViewTopLine) * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight ) + m_nCharHeight;
08696     if( -1 == m_nOldUnderLineY ){
08697         m_nOldUnderLineY = -2;
08698     }
08699
08700     if( bDraw
08701      && m_bDrawSWITCH
08702      && m_nOldUnderLineY >=m_nViewAlignTop
08703      && m_bDoing_UndoRedo == FALSE  /* アンドゥ・リドゥの実行中か */
08704     ){
08705 //      MYTRACE( "★カーソル行アンダーラインの描画\n" );
08706         /* ★カーソル行アンダーラインの描画 */
08707         HDC     hdc;
08708         HPEN    hPen, hPenOld;
08709         hdc = ::GetDC( m_hWnd );
08710         hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_UNDERLINE].m_colTEXT );
08711         hPenOld = (HPEN)::SelectObject( hdc, hPen );
08712         ::MoveToEx(
08713             hdc,
08714             m_nViewAlignLeft,
08715             m_nOldUnderLineY,
08716             NULL
08717         );
08718         ::LineTo(
08719             hdc,
08720             m_nViewCx + m_nViewAlignLeft,
08721             m_nOldUnderLineY
08722         );
08723         ::SelectObject( hdc, hPenOld );
08724         ::DeleteObject( hPen );
08725         ::ReleaseDC( m_hWnd, hdc );
08726         hdc= NULL;
08727     }
08728     return;
08729 }
08730
08731
08732
08733 /* カーソル行アンダーラインのOFF */
08734 void CEditView::CaretUnderLineOFF( BOOL bDraw )
08735 {
08736     if( FALSE == m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_UNDERLINE].m_bDisp ){
08737         return;
08738     }
08739
08740 //  if( IsTextSelected() ){ /* テキストが選択されているか */
08741 //      m_nOldUnderLineY = -1;
08742 //      return;
08743 //  }
08744
08745     if( -1 != m_nOldUnderLineY ){
08746         if( bDraw
08747          && m_bDrawSWITCH
08748          && m_nOldUnderLineY >=m_nViewAlignTop
08749          && m_bDoing_UndoRedo == FALSE  /* アンドゥ・リドゥの実行中か */
08750         ){
08751 //          MYTRACE( "★カーソル行アンダーラインの消去\n" );
08752             /* カーソル行アンダーラインの消去（無理やり） */
08753 #if 1
08754             PAINTSTRUCT ps;
08755             ps.rcPaint.left = m_nViewAlignLeft;
08756             ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
08757             ps.rcPaint.top = m_nOldUnderLineY;
08758             ps.rcPaint.bottom = m_nOldUnderLineY;
08759             HDC hdc = ::GetDC( m_hWnd );
08760             m_cUnderLine.Lock();
08761             //  不本意ながら選択情報をバックアップ。
08762             int nSelectLineFrom = m_nSelectLineFrom;
08763             int nSelectLineTo = m_nSelectLineTo;
08764             int nSelectColmFrom = m_nSelectColmFrom;
08765             int nSelectColmTo = m_nSelectColmTo;
08766             m_nSelectLineFrom = -1;
08767             m_nSelectLineTo = -1;
08768             m_nSelectColmFrom = -1;
08769             m_nSelectColmTo = -1;
08770             OnPaint( hdc, &ps, FALSE );
08771             //  選択情報を復元
08772             m_nSelectLineFrom = nSelectLineFrom;
08773             m_nSelectLineTo = nSelectLineTo;
08774             m_nSelectColmFrom = nSelectColmFrom;
08775             m_nSelectColmTo = nSelectColmTo;
08776             m_cUnderLine.UnLock();
08777             ReleaseDC( m_hWnd, hdc );
08778 #else
08779             HDC     hdc;
08780             HPEN    hPen, hPenOld;
08781             hdc = ::GetDC( m_hWnd );
08782             hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
08783             hPenOld = (HPEN)::SelectObject( hdc, hPen );
08784             ::MoveToEx(
08785                 hdc,
08786                 m_nViewAlignLeft,
08787                 m_nOldUnderLineY,
08788                 NULL
08789             );
08790             ::LineTo(
08791                 hdc,
08792                 m_nViewCx + m_nViewAlignLeft,
08793                 m_nOldUnderLineY
08794             );
08795             ::SelectObject( hdc, hPenOld );
08796             ::DeleteObject( hPen );
08797             ::ReleaseDC( m_hWnd, hdc );
08798 #endif
08799         }
08800         m_nOldUnderLineY = -1;
08801     }
08802     return;
08803 }
08804
08805
08806 #if 0
08807 /* 現在、Enterなどで挿入する改行コードの種類を取得 */
08808 CEOL CEditView::GetCurrentInsertEOL( void )
08809 {
08810     return m_pcEditDoc->GetNewLineCode();
08811 }
08812 #endif
08813
08835 void CEditView::ExecCmd( const char* pszCmd, const int nFlgOpt )
08836 {
08837     char                cmdline[1024];
08838     HANDLE              hStdOutWrite, hStdOutRead, hStdIn;
08839     PROCESS_INFORMATION pi;
08840     ZeroMemory( &pi, sizeof(PROCESS_INFORMATION) );
08841     CDlgCancel              cDlgCancel;
08842
08843     //  From Here 2006.12.03 maru 引数を拡張のため
08844     BOOL    bGetStdout;         //  子プロセスの標準出力を得る
08845     BOOL    bToEditWindow;      //  TRUE=編集中のウィンドウ / FALSAE=アウトプットウィンドウ
08846     BOOL    bSendStdin;         //  編集中ファイルを子プロセスSTDINに渡す
08847
08848     bGetStdout = nFlgOpt & 0x01 ? TRUE : FALSE;
08849     bToEditWindow = nFlgOpt & 0x02 ? TRUE : FALSE;
08850     bSendStdin = nFlgOpt & 0x04 ? TRUE : FALSE;
08851     //  To Here 2006.12.03 maru 引数を拡張のため
08852
08853     // 編集中のウィンドウに出力する場合の選択範囲処理用 /* 2007.04.29 maru */
08854     int nLineFrom, nColmFrom;
08855     BOOL    bBeforeTextSelected = IsTextSelected();
08856     if (bBeforeTextSelected){
08857         nLineFrom = m_nSelectLineFrom;
08858         nColmFrom = m_nSelectColmFrom;
08859     }
08860
08861     //子プロセスの標準出力と接続するパイプを作成
08862     SECURITY_ATTRIBUTES sa;
08863     sa.nLength = sizeof(SECURITY_ATTRIBUTES);
08864     sa.bInheritHandle = TRUE;
08865     sa.lpSecurityDescriptor = NULL;
08866     if( CreatePipe( &hStdOutRead, &hStdOutWrite, &sa, 1000 ) == FALSE ) {
08867         //エラー。対策無し
08868         return;
08869     }
08870     //hStdOutReadのほうは子プロセスでは使用されないので継承不能にする（子プロセスのリソースを無駄に増やさない）
08871     DuplicateHandle( GetCurrentProcess(), hStdOutRead,
08872                 GetCurrentProcess(), &hStdOutRead,                  // 新しい継承不能ハンドルを受け取る // 2007.01.31 ryoji
08873                 0, FALSE,
08874                 DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS );   // 元の継承可能ハンドルは DUPLICATE_CLOSE_SOURCE で閉じる   // 2007.01.31 ryoji
08875
08876     // From Here 2007.03.18 maru 子プロセスの標準入力ハンドル
08877     // CDocLineMgr::WriteFileなど既存のファイル出力系の関数のなかには
08878     // ファイルハンドルを返すタイプのものがないので、一旦書き出してから
08879     // 一時ファイル属性でオープンすることに。
08880     hStdIn = NULL;
08881     if(bSendStdin){ /* 現在編集中のファイルを子プロセスの標準入力へ */
08882         TCHAR       szPathName[MAX_PATH];
08883         TCHAR       szTempFileName[MAX_PATH];
08884         int         nFlgOpt;
08885
08886         GetTempPath( MAX_PATH, szPathName );
08887         GetTempFileName( szPathName, TEXT("skr_"), 0, szTempFileName );
08888 #ifdef _DEBUG
08889         MYTRACE( "CEditView::ExecCmd() TempFilename=[%s]\n", szTempFileName );
08890 #endif
08891
08892         nFlgOpt = bBeforeTextSelected ? 0x01 : 0x00;        /* 選択範囲を出力 */
08893
08894         if( FALSE == Command_PUTFILE( szTempFileName, CODE_SJIS, nFlgOpt) ){    // 一時ファイル出力
08895             hStdIn = NULL;
08896         } else {
08897             hStdIn = CreateFile( szTempFileName, GENERIC_READ,      // 子プロセスへの継承用にファイルを開く
08898                     0, &sa, OPEN_EXISTING,
08899                     FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE,
08900                     NULL );
08901             if(hStdIn == INVALID_HANDLE_VALUE) hStdIn = NULL;
08902         }
08903     }
08904
08905     if (hStdIn == NULL) {   /* 標準入力を制御しない場合、または一時ファイルの生成に失敗した場合 */
08906         bSendStdin = FALSE;
08907         hStdIn = GetStdHandle( STD_INPUT_HANDLE );
08908     }
08909     // To Here 2007.03.18 maru 子プロセスの標準入力ハンドル
08910
08911     //CreateProcessに渡すSTARTUPINFOを作成
08912     STARTUPINFO sui;
08913     ZeroMemory( &sui, sizeof(STARTUPINFO) );
08914     sui.cb = sizeof(STARTUPINFO);
08915     if( bGetStdout || bSendStdin ) {
08916         sui.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
08917         sui.wShowWindow = bGetStdout ? SW_HIDE : SW_SHOW;
08918         sui.hStdInput = hStdIn;
08919         sui.hStdOutput = bGetStdout ? hStdOutWrite : GetStdHandle( STD_OUTPUT_HANDLE );
08920         sui.hStdError = bGetStdout ? hStdOutWrite : GetStdHandle( STD_ERROR_HANDLE );
08921     }
08922
08923     //コマンドライン実行
08924     strcpy( cmdline, pszCmd );
08925     if( CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
08926                 CREATE_NEW_CONSOLE, NULL, NULL, &sui, &pi ) == FALSE ) {
08927         //実行に失敗した場合、コマンドラインベースのアプリケーションと判断して
08928         // command(9x) か cmd(NT) を呼び出す
08929
08930         //OSバージョン取得
08931         COsVersionInfo cOsVer;
08932         //コマンドライン文字列作成
08933         wsprintf( cmdline, "%s %s%s",
08934                 ( cOsVer.IsWin32NT() ? "cmd.exe" : "command.com" ),
08935                 ( bGetStdout ? "/C " : "/K " ), pszCmd );
08936         if( CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
08937                     CREATE_NEW_CONSOLE, NULL, NULL, &sui, &pi ) == FALSE ) {
08938             MessageBox( NULL, cmdline, "コマンド実行は失敗しました。", MB_OK | MB_ICONEXCLAMATION );
08939             goto finish;
08940         }
08941     }
08942
08943     // ファイル全体に対するフィルタ動作
08944     //  現在編集中のファイルからのデータ書きだしおよびデータ取り込みが
08945     //  指定されていて，かつ範囲選択が行われていない場合は
08946     //  「すべて選択」されているものとして，編集データ全体を
08947     //  コマンドの出力結果と置き換える．
08948     //  2007.05.20 maru
08949     if((FALSE == bBeforeTextSelected) && bSendStdin && bGetStdout && bToEditWindow){
08950         SetSelectArea( 0, 0, m_pcEditDoc->m_cLayoutMgr.GetLineCount(), 0 );
08951         DeleteData( TRUE );
08952     }
08953
08954     // hStdOutWrite は CreateProcess() で継承したので親プロセスでは用済み
08955     // hStdInも親プロセスでは使用しないが、Win9x系では子プロセスが終了してから
08956     // クローズするようにしないと一時ファイルが自動削除されない
08957     CloseHandle(hStdOutWrite);
08958     hStdOutWrite = NULL;    // 2007.09.08 genta 二重closeを防ぐ
08959
08960     if( bGetStdout ) {
08961         DWORD   read_cnt;
08962         DWORD   new_cnt;
08963         char    work[1024];
08964         int     bufidx = 0;
08965         int     j;
08966         BOOL    bLoopFlag = TRUE;
08967
08968         //中断ダイアログ表示
08969         cDlgCancel.DoModeless( m_hInstance, m_hwndParent, IDD_EXECRUNNING );
08970         //実行したコマンドラインを表示
08971         // 2004.09.20 naoh 多少は見やすく・・・
08972         if (FALSE==bToEditWindow) { //  2006.12.03 maru アウトプットウィンドウにのみ出力
08973             char szTextDate[1024], szTextTime[1024];
08974             SYSTEMTIME systime;
08975             ::GetLocalTime( &systime );
08976             CShareData::getInstance()->MyGetDateFormat( systime, szTextDate, sizeof( szTextDate ) - 1 );
08977             CShareData::getInstance()->MyGetTimeFormat( systime, szTextTime, sizeof( szTextTime ) - 1 );
08978             CShareData::getInstance()->TraceOut( "\r\n%s\r\n", "#============================================================" );
08979             CShareData::getInstance()->TraceOut( "#DateTime : %s %s\r\n", szTextDate, szTextTime );
08980             CShareData::getInstance()->TraceOut( "#CmdLine  : %s\r\n", pszCmd );
08981             CShareData::getInstance()->TraceOut( "#%s\r\n", "==============================" );
08982         }
08983
08984
08985         //実行結果の取り込み
08986         do {
08987             //プロセスが終了していないか確認
08988             // Jun. 04, 2003 genta CPU消費を減らすために200msec待つ
08989             // その間メッセージ処理が滞らないように待ち方をWaitForSingleObjectから
08990             // MsgWaitForMultipleObjectに変更
08991             // Jan. 23, 2004 genta
08992             // 子プロセスの出力をどんどん受け取らないと子プロセスが
08993             // 停止してしまうため，待ち時間を200msから20msに減らす
08994             switch( MsgWaitForMultipleObjects( 1, &pi.hProcess, FALSE, 20, QS_ALLEVENTS )){
08995                 case WAIT_OBJECT_0:
08996                     //終了していればループフラグをFALSEとする
08997                     //ただしループの終了条件は プロセス終了 && パイプが空
08998                     bLoopFlag = FALSE;
08999                     break;
09000                 case WAIT_OBJECT_0 + 1:
09001                     //処理中のユーザー操作を可能にする
09002                     if( !::BlockingHook( cDlgCancel.m_hWnd ) ){
09003                         break;
09004                     }
09005                     break;
09006                 default:
09007                     break;
09008             }
09009             //中断ボタン押下チェック
09010             if( cDlgCancel.IsCanceled() ){
09011                 //指定されたプロセスと、そのプロセスが持つすべてのスレッドを終了させます。
09012                 ::TerminateProcess( pi.hProcess, 0 );
09013                 if (FALSE==bToEditWindow) { //  2006.12.03 maru アウトプットウィンドウにのみ出力
09014                     //最後にテキストを追加
09015                     const char* pszText = "\r\n中断しました。\r\n";
09016                     CShareData::getInstance()->TraceOut( "%s", pszText );
09017                 }
09018                 break;
09019             }
09020             new_cnt = 0;
09021             if( PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) ) { //パイプの中の読み出し待機中の文字数を取得
09022                 while( new_cnt > 0 ) {                                              //待機中のものがある
09023                     if( new_cnt >= sizeof(work)-2 ) {                           //パイプから読み出す量を調整
09024                         new_cnt = sizeof(work)-2;
09025                     }
09026                     ReadFile( hStdOutRead, &work[bufidx], new_cnt, &read_cnt, NULL );   //パイプから読み出し
09027                     read_cnt += bufidx;                                                 //work内の実際のサイズにする
09028
09029                     if( read_cnt == 0 ) {
09030                         // Jan. 23, 2004 genta while追加のため制御を変更
09031                         break;
09032                     }
09033                     //読み出した文字列をチェックする
09034                     // \r\n を \r だけとか漢字の第一バイトだけを出力するのを防ぐ必要がある
09035                     //@@@ 2002.1.24 YAZAKI 1バイト取りこぼす可能性があった。
09036                     //  Jan. 28, 2004 Moca 最後の文字はあとでチェックする
09037                     for( j=0; j<(int)read_cnt - 1; j++ ) {
09038                         //  2007.09.10 ryoji
09039                         if( CMemory::GetSizeOfChar(work, read_cnt, j) == 2 ) {
09040                             j++;
09041                         } else {
09042                             if( work[j] == '\r' && work[j+1] == '\n' ) {
09043                                 j++;
09044                             } else if( work[j] == '\n' && work[j+1] == '\r' ) {
09045                                 j++;
09046                             }
09047                         }
09048                     }
09049                     //  From Here Jan. 28, 2004 Moca
09050                     //  改行コードが分割されるのを防ぐ
09051                     if( j == read_cnt - 1 ){
09052                         if( _IS_SJIS_1(work[j]) ) {
09053                             j = read_cnt + 1; // ぴったり出力できないことを主張
09054                         }else if( work[j] == '\r' || work[j] == '\n' ) {
09055                             // CRLF,LFCRの一部ではない改行が末尾にある
09056                             // 次の読み込みで、CRLF,LFCRの一部になる可能性がある
09057                             j = read_cnt + 1;
09058                         }else{
09059                             j = read_cnt;
09060                         }
09061                     }
09062                     //  To Here Jan. 28, 2004 Moca
09063                     if( j == (int)read_cnt ) {  //ぴったり出力できる場合
09064                         //  2006.12.03 maru アウトプットウィンドウor編集中のウィンドウ分岐追加
09065                         if (FALSE==bToEditWindow) {
09066                             work[read_cnt] = '\0';
09067                             CShareData::getInstance()->TraceOut( "%s", work );
09068                         } else {
09069                             Command_INSTEXT(FALSE, work, read_cnt, TRUE);
09070                         }
09071                         bufidx = 0;
09072 #ifdef _DEBUG
09073     //MYTRACE( "ExecCmd: No leap character\n");
09074 #endif
09075                     } else {
09076                         char tmp = work[read_cnt-1];
09077                         //  2006.12.03 maru アウトプットウィンドウor編集中のウィンドウ分岐追加
09078                         if (FALSE==bToEditWindow) {
09079                             work[read_cnt-1] = '\0';
09080                             CShareData::getInstance()->TraceOut( "%s", work );
09081                         } else {
09082                             Command_INSTEXT(FALSE, work, read_cnt-1, TRUE);
09083                         }
09084                         work[0] = tmp;
09085                         bufidx = 1;
09086 #ifdef _DEBUG
09087     MYTRACE( "ExecCmd: Carry last character [%d]\n", tmp );
09088 #endif
09089                     }
09090                     // Jan. 23, 2004 genta
09091                     // 子プロセスの出力をどんどん受け取らないと子プロセスが
09092                     // 停止してしまうため，バッファが空になるまでどんどん読み出す．
09093                     new_cnt = 0;
09094                     if( ! PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) ){
09095                         break;
09096                     }
09097                     Sleep(0);
09098                 }
09099             }
09100         } while( bLoopFlag || new_cnt > 0 );
09101
09102         if (FALSE==bToEditWindow) { //  2006.12.03 maru アウトプットウィンドウにのみ出力
09103             work[bufidx] = '\0';
09104             CShareData::getInstance()->TraceOut( "%s", work );  /* 最後の文字の処理 */
09105             //  Jun. 04, 2003 genta 終了コードの取得と出力
09106             DWORD result;
09107             ::GetExitCodeProcess( pi.hProcess, &result );
09108             CShareData::getInstance()->TraceOut( "\r\n終了コード: %d\r\n", result );
09109
09110             // 2004.09.20 naoh 終了コードが1以上の時はアウトプットをアクティブにする
09111             if(result > 0) ActivateFrameWindow( m_pShareData->m_hwndDebug );
09112         }
09113         else {                      //  2006.12.03 maru 編集中のウィンドウに出力時は最後に再描画
09114             Command_INSTEXT(FALSE, work, bufidx, TRUE); /* 最後の文字の処理 */
09115             if (bBeforeTextSelected){   // 挿入された部分を選択状態に
09116                 SetSelectArea( nLineFrom, nColmFrom, m_nCaretPosY, m_nCaretPosX );
09117                 DrawSelectArea();
09118             }
09119             RedrawAll();
09120         }
09121     }
09122
09123
09124 finish:
09125     //終了処理
09126     if(bSendStdin) CloseHandle( hStdIn );   /* 2007.03.18 maru 標準入力の制御のため */
09127     if(hStdOutWrite) CloseHandle( hStdOutWrite );
09128     CloseHandle( hStdOutRead );
09129     if( pi.hProcess ) CloseHandle( pi.hProcess );
09130     if( pi.hThread ) CloseHandle( pi.hThread );
09131 }
09132
09139 void CEditView::SendStatusMessage( const char* msg )
09140 {
09141     m_pcEditDoc->m_pcEditWnd->SendStatusMessage( msg );
09142 }
09143 // 使わなくなりました minfu 2002.04.10
09145 //LRESULT CEditView::RequestedReconversion(PRECONVERTSTRING pReconv)
09146 //{
09147 //  CMemory cmemBuf;
09148 //  int nlen;
09149 //
09150 //  /* 選択範囲のデータを取得 */
09151 //  if( FALSE == GetSelectedData( cmemBuf, FALSE, NULL, FALSE, FALSE ) ){
09152 //      ::MessageBeep( MB_ICONHAND );
09153 //      return 0L;
09154 //  }
09155 //
09156 //  /* pReconv構造体に 値をセット */
09157 //  nlen =  cmemBuf.GetLength();
09158 //  if ( pReconv != NULL ) {
09159 //      pReconv->dwSize = sizeof(RECONVERTSTRING) + nlen + 1;
09160 //      pReconv->dwVersion = 0;
09161 //      pReconv->dwStrLen = nlen ;
09162 //      pReconv->dwStrOffset = sizeof(RECONVERTSTRING) ;
09163 //      pReconv->dwCompStrLen = nlen;
09164 //      pReconv->dwCompStrOffset = 0;
09165 //      pReconv->dwTargetStrLen = nlen;
09166 //      pReconv->dwTargetStrOffset = 0 ;
09167 //
09168 //      strncpy ( (char *)(pReconv + 1), cmemBuf.GetPtr( NULL ), nlen);
09169 //
09170 //  }/* pReconv がNULLのときはサイズを返すのみ */
09171 //
09172 //  /* RECONVERTSTRING構造体のサイズが戻り値 */
09173 //  return nlen + sizeof(RECONVERTSTRING);
09174 //
09175 //}
09176 //
09178 //LRESULT CEditView::RequestedReconversionW(PRECONVERTSTRING pReconv)
09179 //{
09180 //  CMemory cmemBuf;
09181 //  int nlen;
09182 //
09183 //  /* 選択範囲のデータを取得 */
09184 //  if( FALSE == GetSelectedData( cmemBuf, FALSE, NULL, FALSE, FALSE ) ){
09185 //      ::MessageBeep( MB_ICONHAND );
09186 //      return 0L;
09187 //  }
09188 //
09189 //  /* cmemBuf を UNICODE に変換 */
09190 //  cmemBuf.SJISToUnicode();
09191 //  /* pReconv構造体に 値をセット */
09192 //  nlen =  cmemBuf.GetLength();
09193 //  if ( pReconv != NULL ) {
09194 //      pReconv->dwSize = sizeof(RECONVERTSTRING) + nlen  + sizeof(wchar_t);
09195 //      pReconv->dwVersion = 0;
09196 //      pReconv->dwStrLen = nlen/sizeof(wchar_t) ;
09197 //      pReconv->dwStrOffset = sizeof(RECONVERTSTRING) ;
09198 //      pReconv->dwCompStrLen = nlen/sizeof(wchar_t);
09199 //      pReconv->dwCompStrOffset = 0;
09200 //      pReconv->dwTargetStrLen = nlen/sizeof(wchar_t);
09201 //      pReconv->dwTargetStrOffset = 0 ;
09202 //
09203 //      wcsncpy ( (wchar_t *)(pReconv + 1), (wchar_t *)cmemBuf.GetPtr(), nlen/sizeof(wchar_t) );
09204 //
09205 //  }/* pReconv がNULLのときはサイズを返すのみ */
09206 //
09207 //  /* RECONVERTSTRING構造体のサイズが戻り値 */
09208 //  return nlen + sizeof(RECONVERTSTRING);
09209 //
09210 //}
09211
09212 //  2002.04.09 minfu from here
09213 /*再変換用 カーソル位置から前後200byteを取り出してRECONVERTSTRINGを埋める */
09214 /*  引数  pReconv RECONVERTSTRING構造体へのポインタ。                     */
09215 /*        bUnicode trueならばUNICODEで構造体を埋める                      */
09216 /*  戻り値   RECONVERTSTRINGのサイズ                                      */
09217 LRESULT CEditView::SetReconvertStruct(PRECONVERTSTRING pReconv, bool bUnicode)
09218 {
09219     const char  *pLine;
09220     int         nLineLen;
09221     int         nCurrentLine /* , nCurrentColumn */ ;
09222 //  int         nCurLogicalLine;
09223
09224     //行の中で再変換のAPIにわたすとする文字列の開始位置と長さ（考慮文字列）
09225     int         nReconvIndex, nReconvLen, nReconvLenWithNull ;
09226
09227     //行の中で再変換の注目する文節とする文字列の開始位置、終了位置、長さ（対象文字列）
09228     int         nSelectedIndex, nSelectedEndIndex, nSelectedLen;
09229
09230     int         nSelectColumnFrom /* , nSelectColumnTo */ ;
09231     int         nSelectLineFrom, nSelectLineTo;
09232
09233     DWORD       dwReconvTextLen;
09234     DWORD       dwCompStrOffset, dwCompStrLen;
09235
09236 //  int         nCurrentIndex;
09237     CMemory     cmemBuf1;
09238     const char*     pszReconv;
09239     CDocLine*   pcCurDocLine;
09240
09241     m_nLastReconvIndex = -1;
09242     m_nLastReconvLine  = -1;
09243
09244     //矩形選択中は何もしない
09245     if( m_bBeginBoxSelect )
09246         return 0;
09247
09248 //  char sz[1024];
09249     if( IsTextSelected() ){
09250         //テキストが選択されているとき
09251         nSelectColumnFrom = m_nSelectColmFrom;
09252         nSelectLineFrom   = m_nSelectLineFrom;
09253
09254         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(m_nSelectColmFrom, m_nSelectLineFrom, &nSelectedIndex, &nCurrentLine);
09255         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(m_nSelectColmTo, m_nSelectLineTo, &nSelectedEndIndex, &nSelectLineTo);
09256
09257         //選択範囲が複数行の時は
09258         if (nSelectLineTo != nCurrentLine){
09259             //行末までに制限
09260             pcCurDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo(nCurrentLine);
09261             nSelectedEndIndex = pcCurDocLine->m_pLine->GetLength();
09262         }
09263
09264         nSelectedLen = nSelectedEndIndex - nSelectedIndex;
09265
09266     }else{
09267         //テキストが選択されていないとき
09268         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(m_nCaretPosX ,m_nCaretPosY , &nSelectedIndex, &nCurrentLine);
09269         nSelectedLen = 0;
09270     }
09271
09272     pcCurDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo(nCurrentLine);
09273
09274     if (NULL == pcCurDocLine )
09275         return 0;
09276
09277     nLineLen = pcCurDocLine->m_pLine->GetLength() - pcCurDocLine->m_cEol.GetLen() ; //改行コードをのぞいた長さ
09278
09279     if ( 0 == nLineLen )
09280         return 0;
09281
09282     pLine = pcCurDocLine->m_pLine->GetPtr();
09283
09284     //再変換考慮文字列開始
09285     nReconvIndex = 0;
09286     if ( nSelectedIndex > 200 ) {
09287         const char* pszWork = pLine;
09288         while( (nSelectedIndex - nReconvIndex) > 200 ){
09289             pszWork = ::CharNext( pszWork);
09290             nReconvIndex = pszWork - pLine ;
09291         }
09292     }
09293
09294     //再変換考慮文字列終了
09295     nReconvLen = nLineLen - nReconvIndex;
09296     if ( (nReconvLen + nReconvIndex - nSelectedIndex) > 200 ){
09297         const char* pszWork = pLine + nSelectedIndex;
09298         nReconvLen = nSelectedIndex - nReconvIndex;
09299         while( ( nReconvLen + nReconvIndex - nSelectedIndex) <= 200 ){
09300             pszWork = ::CharNext( pszWork);
09301             nReconvLen = pszWork - (pLine + nReconvIndex) ;
09302         }
09303     }
09304
09305     //対象文字列の調整
09306     if ( nSelectedIndex + nSelectedLen > nReconvIndex + nReconvLen ){
09307         nSelectedLen = nReconvIndex + nReconvLen - nSelectedIndex;
09308     }
09309
09310     pszReconv =  pLine + nReconvIndex;
09311
09312     if(bUnicode){
09313
09314         //考慮文字列の開始から対象文字列の開始まで
09315         if( nSelectedIndex - nReconvIndex > 0 ){
09316             cmemBuf1.SetData(pszReconv, nSelectedIndex - nReconvIndex);
09317             cmemBuf1.SJISToUnicode();
09318             dwCompStrOffset = cmemBuf1.GetLength();  //Offset はbyte
09319         }else{
09320             dwCompStrOffset = 0;
09321         }
09322
09323         //対象文字列の開始から対象文字列の終了まで
09324         if (nSelectedLen > 0 ){
09325             cmemBuf1.SetData(pszReconv + nSelectedIndex, nSelectedLen);
09326             cmemBuf1.SJISToUnicode();
09327             dwCompStrLen = cmemBuf1.GetLength() / sizeof(wchar_t);
09328         }else{
09329             dwCompStrLen = 0;
09330         }
09331
09332         //考慮文字列すべて
09333         cmemBuf1.SetData(pszReconv , nReconvLen );
09334         cmemBuf1.SJISToUnicode();
09335
09336         dwReconvTextLen =  cmemBuf1.GetLength() / sizeof(wchar_t);
09337         nReconvLenWithNull =  cmemBuf1.GetLength()  + sizeof(wchar_t);
09338
09339         pszReconv = cmemBuf1.GetPtr();
09340
09341     }else{
09342         dwReconvTextLen = nReconvLen;
09343         nReconvLenWithNull = nReconvLen + 1;
09344         dwCompStrOffset = nSelectedIndex - nReconvIndex;
09345         dwCompStrLen    = nSelectedLen;
09346     }
09347
09348     if ( NULL != pReconv) {
09349         //再変換構造体の設定
09350         pReconv->dwSize = sizeof(RECONVERTSTRING) + nReconvLenWithNull ;
09351         pReconv->dwVersion = 0;
09352         pReconv->dwStrLen = dwReconvTextLen ;
09353         pReconv->dwStrOffset = sizeof(RECONVERTSTRING) ;
09354         pReconv->dwCompStrLen = dwCompStrLen;
09355         pReconv->dwCompStrOffset = dwCompStrOffset;
09356         pReconv->dwTargetStrLen = dwCompStrLen;
09357         pReconv->dwTargetStrOffset = dwCompStrOffset;
09358
09359         // 2004.01.28 Moca ヌル終端の修正
09360         if( bUnicode ){
09361             CopyMemory( (void *)(pReconv + 1), (void *)pszReconv , nReconvLenWithNull - sizeof(wchar_t) );
09362             *((wchar_t *)(pReconv + 1) + nReconvLenWithNull - sizeof(wchar_t) ) = L'\0';
09363         }else{
09364             CopyMemory( (void *)(pReconv + 1), (void *)pszReconv , nReconvLenWithNull - 1 );
09365             *((char *)(pReconv + 1) + nReconvLenWithNull - 1 ) = '\0';
09366         }
09367     }
09368
09369     // 再変換情報の保存
09370     m_nLastReconvIndex = nReconvIndex;
09371     m_nLastReconvLine  = nCurrentLine;
09372
09373     return sizeof(RECONVERTSTRING) + nReconvLenWithNull;
09374
09375 }
09376
09377 /*再変換用 エディタ上の選択範囲を変更する 2002.04.09 minfu */
09378 LRESULT CEditView::SetSelectionFromReonvert(PRECONVERTSTRING pReconv, bool bUnicode){
09379
09380     DWORD       dwOffset, dwLen;
09381     CMemory     cmemBuf;
09382 //  char        sz[2000];
09383
09384     // 再変換情報が保存されているか
09385     if ( (m_nLastReconvIndex < 0) || (m_nLastReconvLine < 0))
09386         return 0;
09387
09388     if ( IsTextSelected())
09389         DisableSelectArea( TRUE );
09390
09391     if (bUnicode){
09392
09393         //考慮文字列の開始から対象文字列の開始まで
09394         if( pReconv->dwCompStrOffset > 0){
09395             cmemBuf.SetData((const char *)((const wchar_t *)(pReconv + 1)),
09396                                 pReconv->dwCompStrOffset );
09397             cmemBuf.UnicodeToSJIS();
09398             dwOffset = cmemBuf.GetLength();
09399
09400         }else
09401             dwOffset = 0;
09402
09403         //対象文字列の開始から対象文字列の終了まで
09404         if( pReconv->dwCompStrLen > 0 ){
09405             cmemBuf.SetData((const char *)(const wchar_t *)(pReconv + 1) + pReconv->dwCompStrOffset ,
09406                                 pReconv->dwCompStrLen * sizeof(wchar_t));
09407             cmemBuf.UnicodeToSJIS();
09408             dwLen = cmemBuf.GetLength();
09409
09410         }else
09411             dwLen = 0;
09412
09413     }else{
09414         dwOffset = pReconv->dwCompStrOffset ;
09415         dwLen =  pReconv->dwCompStrLen;
09416     }
09417
09418     //選択開始の位置を取得
09419     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(m_nLastReconvIndex + dwOffset
09420                                                 , m_nLastReconvLine, &m_nSelectColmFrom, &m_nSelectLineFrom);
09421     //選択終了の位置を取得
09422     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(m_nLastReconvIndex + dwOffset + dwLen
09423                                                 , m_nLastReconvLine, &m_nSelectColmTo, &m_nSelectLineTo);
09424
09425     /* 単語の先頭にカーソルを移動 */
09426     MoveCursor( m_nSelectColmFrom, m_nSelectLineFrom, TRUE );
09427
09428     //選択範囲再描画
09429     DrawSelectArea();
09430
09431     // 再変換情報の破棄
09432     m_nLastReconvIndex = -1;
09433     m_nLastReconvLine  = -1;
09434
09435     return 1;
09436
09437 }
09438
09439
09440 // 2002/07/22 novice
09444 void CEditView::ShowCaret_( HWND hwnd )
09445 {
09446     if ( m_bCaretShowFlag == false ){
09447         ::ShowCaret( hwnd );
09448         m_bCaretShowFlag = true;
09449     }
09450 }
09451
09452
09456 void CEditView::HideCaret_( HWND hwnd )
09457 {
09458     if ( m_bCaretShowFlag == true ){
09459         ::HideCaret( hwnd );
09460         m_bCaretShowFlag = false;
09461     }
09462 }
09463
09468 void CEditView::SetBracketPairPos( bool flag )
09469 {
09470     int nCol;
09471     int nLine;
09472     int mode;
09473
09474     // 03/03/06 ai すべて置換、すべて置換後のUndo&Redoがかなり遅い問題に対応
09475     if( m_bDoing_UndoRedo || ( m_bDrawSWITCH == FALSE ) ){
09476         return;
09477     }
09478
09479     if( !m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp ){
09480         return;
09481     }
09482
09483     // 対括弧の検索&登録
09484     /*
09485     bit0(in)  : 表示領域外を調べるか？ 0:調べない  1:調べる
09486     bit1(in)  : 前方文字を調べるか？   0:調べない  1:調べる
09487     bit2(out) : 見つかった位置         0:後ろ      1:前
09488     */
09489     mode = 2;
09490
09491     if( ( flag == true ) && !IsTextSelected() && ( m_bDrawSelectArea == FALSE )
09492         && ( m_bBeginBoxSelect == FALSE ) && SearchBracket( m_nCaretPosX, m_nCaretPosY, &nCol, &nLine, &mode ) )
09493     {
09494         // 登録指定(flag=true)          &&
09495         // テキストが選択されていない   &&
09496         // 選択範囲を描画していない     &&
09497         // 矩形範囲選択中でない         &&
09498         // 対応する括弧が見つかった     場合
09499         if ( ( nCol >= m_nViewLeftCol ) && ( nCol <= m_nViewLeftCol + m_nViewColNum )
09500             && ( nLine >= m_nViewTopLine ) && ( nLine <= m_nViewTopLine + m_nViewRowNum ) )
09501         {
09502             // 表示領域内の場合
09503
09504             // レイアウト位置から物理位置へ変換(強調表示位置を登録)
09505             m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys( nCol, nLine, &m_nBracketPairPosX_PHY, &m_nBracketPairPosY_PHY );
09506             m_nBracketCaretPosY_PHY = m_nCaretPosY_PHY;
09507             if( 0 == ( mode & 4 ) ){
09508                 // カーソルの後方文字位置
09509                 m_nBracketCaretPosX_PHY = m_nCaretPosX_PHY;
09510             }else{
09511                 // カーソルの前方文字位置
09512                 m_nBracketCaretPosX_PHY = m_nCaretPosX_PHY - m_nCharSize;
09513             }
09514             return;
09515         }
09516     }
09517
09518     // 括弧の強調表示位置情報初期化
09519     m_nBracketPairPosX_PHY  = -1;
09520     m_nBracketPairPosY_PHY  = -1;
09521     m_nBracketCaretPosX_PHY = -1;
09522     m_nBracketCaretPosY_PHY = -1;
09523
09524     return;
09525 }
09526
09532 void CEditView::DrawBracketPair( bool bDraw )
09533 {
09534     int         i;
09535     const char* pLine;
09536     int         nLineLen;
09537     int         nCol;
09538     int         nLine;
09539     int         OutputX;
09540     int         nLeft;
09541     int         nTop;
09542     HDC         hdc;
09543     COLORREF    crBackOld;
09544     COLORREF    crTextOld;
09545     HFONT       hFontOld;
09546
09547     // 03/03/06 ai すべて置換、すべて置換後のUndo&Redoがかなり遅い問題に対応
09548     if( m_bDoing_UndoRedo || ( m_bDrawSWITCH == FALSE ) ){
09549         return;
09550     }
09551
09552     if( !m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp ){
09553         return;
09554     }
09555
09556     // 括弧の強調表示位置が未登録の場合は終了
09557     if( ( m_nBracketPairPosX_PHY  < 0 ) || ( m_nBracketPairPosY_PHY  < 0 )
09558      || ( m_nBracketCaretPosX_PHY < 0 ) || ( m_nBracketCaretPosY_PHY < 0 ) ){
09559         return;
09560     }
09561
09562     // 描画指定(bDraw=true)             かつ
09563     // ( テキストが選択されている       又は
09564     //   選択範囲を描画している         又は
09565     //   矩形範囲選択中                 又は
09566     //   フォーカスを持っていない       又は
09567     //   アクティブなペインではない )   場合は終了
09568     if( bDraw
09569      &&( IsTextSelected() || ( m_bDrawSelectArea == TRUE ) || m_bBeginBoxSelect || ( m_bDrawBracketPairFlag == FALSE )
09570      || ( m_pcEditDoc->m_nActivePaneIndex != m_nMyIndex ) ) ){
09571         return;
09572     }
09573
09574     hdc = ::GetDC( m_hWnd );
09575     Types *TypeDataPtr = &( m_pcEditDoc->GetDocumentAttribute() );
09576
09577     for( i = 0; i < 2; i++ )
09578     {   // i=0:カーソル位置の括弧,i=1:対括弧
09579         if( i == 0 ){
09580             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( m_nBracketCaretPosX_PHY, m_nBracketCaretPosY_PHY, &nCol, &nLine );
09581         }else{
09582             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( m_nBracketPairPosX_PHY,  m_nBracketPairPosY_PHY,  &nCol, &nLine );
09583         }
09584
09585         if ( ( nCol >= m_nViewLeftCol ) && ( nCol <= m_nViewLeftCol + m_nViewColNum )
09586             && ( nLine >= m_nViewTopLine ) && ( nLine <= m_nViewTopLine + m_nViewRowNum ) )
09587         {   // 表示領域内の場合
09588             if( ( bDraw == false ) && ( m_bDrawSelectArea == TRUE ) && ( 0 == IsCurrentPositionSelected( nCol, nLine ) ) )
09589             {   // 選択範囲描画済みで消去対象の括弧が選択範囲内の場合
09590                 continue;
09591             }
09592             const CLayout* pcLayout;
09593             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLine, &nLineLen, &pcLayout );
09594             if( NULL != pLine )
09595             {
09596                 int nColorIndex;
09597                 OutputX = LineColmnToIndex( pcLayout, nCol );
09598                 if( bDraw ) {
09599                     nColorIndex = COLORIDX_BRACKET_PAIR;
09600                 }else{
09601                     if( IsBracket( pLine, OutputX, m_nCharSize ) ){
09602                         // 03/10/24 ai 折り返し行のColorIndexが正しく取得できない問題に対応
09603                         //nColorIndex = GetColorIndex( hdc, pcLayout, OutputX );
09604                         if( i == 0 ){
09605                             nColorIndex = GetColorIndex( hdc, pcLayout, m_nBracketCaretPosX_PHY );
09606                         }else{
09607                             nColorIndex = GetColorIndex( hdc, pcLayout, m_nBracketPairPosX_PHY );
09608                         }
09609                     }else{
09610                         SetBracketPairPos( false );
09611                         //::MessageBeep( MB_ICONSTOP );
09612                         break;
09613                     }
09614                 }
09615                 hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN );
09616                 m_hFontOld = NULL;
09617                 crBackOld = ::SetBkColor(   hdc, TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
09618                 crTextOld = ::SetTextColor( hdc, TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colTEXT );
09619                 SetCurrentColor( hdc, nColorIndex );
09620
09621                 int nHeight = m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace;
09622                 nLeft = (m_nViewAlignLeft - m_nViewLeftCol * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace )) + nCol * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
09623                 nTop  = ( nLine - m_nViewTopLine ) * nHeight + m_nViewAlignTop;
09624
09625                 // 03/03/03 ai カーソルの左に括弧があり括弧が強調表示されている状態でShift+←で選択開始すると
09626                 //             選択範囲内に反転表示されない部分がある問題の修正
09627                 if( /*bDraw &&*/ ( nCol == m_nCaretPosX ) && ( m_bCaretShowFlag == true ) ){
09628                     HideCaret_( m_hWnd );   // キャレットが一瞬消えるのを防止
09629                     DispText( hdc, nLeft, nTop, &pLine[OutputX], m_nCharSize );
09630                     // 2006.04.30 Moca 対括弧の縦線対応
09631                     DispVerticalLines( hdc, nTop, nTop + nHeight, nCol, nCol + m_nCharSize );
09632                     ShowCaret_( m_hWnd );   // キャレットが一瞬消えるのを防止
09633                 }else{
09634                     DispText( hdc, nLeft, nTop, &pLine[OutputX], m_nCharSize );
09635                     // 2006.04.30 Moca 対括弧の縦線対応
09636                     DispVerticalLines( hdc, nTop, nTop + nHeight, nCol, nCol + m_nCharSize );
09637                 }
09638
09639                 if( NULL != m_hFontOld ){
09640                     ::SelectObject( hdc, m_hFontOld );
09641                     m_hFontOld = NULL;
09642                 }
09643                 ::SetTextColor( hdc, crTextOld );
09644                 ::SetBkColor( hdc, crBackOld );
09645                 ::SelectObject( hdc, hFontOld );
09646
09647                 if( ( m_pcEditDoc->m_nActivePaneIndex == m_nMyIndex )
09648                     && ( ( nLine == m_nCaretPosY ) || ( nLine - 1 == m_nCaretPosY ) ) ){    // 03/02/27 ai 行の間隔が"0"の時にアンダーラインが欠ける事がある為修正
09649                     m_cUnderLine.CaretUnderLineON( TRUE );
09650                 }
09651             }
09652         }
09653     }
09654
09655     ::ReleaseDC( m_hWnd, hdc );
09656
09657     return;
09658 }
09659
09682 int CEditView::GetColorIndex(
09683         HDC                     hdc,
09684         const CLayout*          pcLayout,
09685         int                     nCol
09686 )
09687 {
09688     //  May 9, 2000 genta
09689     Types   *TypeDataPtr = &(m_pcEditDoc->GetDocumentAttribute());
09690
09691     const char*             pLine;  //@@@ 2002.09.22 YAZAKI
09692     int                     nLineLen;
09693     int                     nLineBgn;
09694     int                     nBgn;
09695     int                     nPos;
09696     int                     nCharChars;
09697     int                     nCharChars_2;
09698     int                     nCOMMENTMODE;
09699     int                     nCOMMENTMODE_OLD;
09700     int                     nCOMMENTEND;
09701     int                     nCOMMENTEND_OLD;
09702     const CLayout*          pcLayout2;
09703     int                     i, j;
09704     int                     nIdx;
09705     int                     nUrlLen;
09706     BOOL                    bSearchStringMode;
09707     BOOL                    bSearchFlg;         // 2002.02.08 hor
09708     int                     nSearchStart;       // 2002.02.08 hor
09709     int                     nSearchEnd;
09710     bool                    bKeyWordTop = true; //  Keyword Top
09711     int                     nColorIndex;
09712
09713 //@@@ 2001.11.17 add start MIK
09714     int     nMatchLen;
09715     int     nMatchColor;
09716 //@@@ 2001.11.17 add end MIK
09717
09718     bSearchStringMode = FALSE;
09719     bSearchFlg  = TRUE; // 2002.02.08 hor
09720     nSearchStart= -1;   // 2002.02.08 hor
09721     nSearchEnd  = -1;   // 2002.02.08 hor
09722
09723     /* 論理行データの取得 */
09724     if( NULL != pcLayout ){
09725         // 2002/2/10 aroka CMemory変更
09726         nLineLen = pcLayout->m_pCDocLine->m_pLine->GetLength()/* - pcLayout->m_nOffset*/;   // 03/10/24 ai 折り返し行のColorIndexが正しく取得できない問題に対応
09727         pLine = pcLayout->m_pCDocLine->m_pLine->GetPtr()/* + pcLayout->m_nOffset*/;         // 03/10/24 ai 折り返し行のColorIndexが正しく取得できない問題に対応
09728
09729         // 2005.11.20 Moca 色が正しくないことがある問題に対処
09730         const CLayout* pcLayoutLineFirst = pcLayout;
09731         // 論理行の最初のレイアウト情報を取得する
09732         while( 0 != pcLayoutLineFirst->m_nOffset ){
09733             pcLayoutLineFirst = pcLayoutLineFirst->m_pPrev;
09734         }
09735         nCOMMENTMODE = pcLayoutLineFirst->m_nTypePrev;
09736         nCOMMENTEND = 0;
09737         pcLayout2 = pcLayout;
09738
09739     }else{
09740         pLine = NULL;
09741         nLineLen = 0;
09742         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
09743         nCOMMENTEND = 0;
09744         pcLayout2 = NULL;
09745     }
09746
09747     /* 現在の色を指定 */
09748     //@SetCurrentColor( hdc, nCOMMENTMODE );
09749     nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09750
09751     nBgn = 0;
09752     nPos = 0;
09753     nLineBgn = 0;
09754     nCharChars = 0;
09755
09756     if( NULL != pLine ){
09757
09758         //@@@ 2001.11.17 add start MIK
09759         if( TypeDataPtr->m_bUseRegexKeyword )
09760         {
09761             m_cRegexKeyword->RegexKeyLineStart();
09762         }
09763         //@@@ 2001.11.17 add end MIK
09764
09765         while( nPos <= nCol ){  // 03/10/24 ai 行頭のColorIndexが取得できない問題に対応
09766
09767             nBgn = nPos;
09768             nLineBgn = nBgn;
09769
09770             while( nPos - nLineBgn <= nCol ){   // 02/12/18 ai
09771                 /* 検索文字列の色分け */
09772                 if( TRUE == m_bCurSrchKeyMark   /* 検索文字列のマーク */
09773                  && TypeDataPtr->m_ColorInfoArr[COLORIDX_SEARCH].m_bDisp ){
09774 searchnext:;
09775                 // 2002.02.08 hor 正規表現の検索文字列マークを少し高速化
09776                     if(!bSearchStringMode && (!m_bCurSrchRegularExp || (bSearchFlg && nSearchStart < nPos))){
09777                         bSearchFlg=IsSearchString( pLine, nLineLen, nPos, &nSearchStart, &nSearchEnd );
09778                     }
09779                     if( !bSearchStringMode && bSearchFlg && nSearchStart==nPos
09780                     ){
09781                         nBgn = nPos;
09782                         bSearchStringMode = TRUE;
09783                         /* 現在の色を指定 */
09784                         //@SetCurrentColor( hdc, COLORIDX_SEARCH ); // 2002/03/13 novice
09785                         nColorIndex = COLORIDX_SEARCH;  // 02/12/18 ai
09786                     }else
09787                     if( bSearchStringMode
09788                      && nSearchEnd == nPos
09789                     ){
09790                         nBgn = nPos;
09791                         /* 現在の色を指定 */
09792                         //@SetCurrentColor( hdc, nCOMMENTMODE );
09793                         nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09794                         bSearchStringMode = FALSE;
09795                         goto searchnext;
09796                     }
09797                 }
09798
09799                 if( nPos >= nLineLen - pcLayout2->m_cEol.GetLen() ){
09800                     goto end_of_line;
09801                 }
09802                 SEARCH_START:;
09803                 switch( nCOMMENTMODE ){
09804                 case COLORIDX_TEXT: // 2002/03/13 novice
09805 //@@@ 2001.11.17 add start MIK
09806                     //正規表現キーワード
09807                     if( TypeDataPtr->m_bUseRegexKeyword
09808                      && m_cRegexKeyword->RegexIsKeyword( pLine, nPos, nLineLen, &nMatchLen, &nMatchColor )
09809                      /*&& TypeDataPtr->m_ColorInfoArr[nMatchColor].m_bDisp*/ )
09810                     {
09811                         /* 現在の色を指定 */
09812                         nBgn = nPos;
09813                         nCOMMENTMODE = 1000 + nMatchColor;  /* 色指定 */    //@@@ 2002.01.04 upd
09814                         nCOMMENTEND = nPos + nMatchLen;  /* キーワード文字列の終端をセットする */
09815                         if( !bSearchStringMode ){
09816                             //@SetCurrentColor( hdc, nCOMMENTMODE );    //@@@ 2002.01.04
09817                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09818                         }
09819                     }
09820                     else
09821 //@@@ 2001.11.17 add end MIK
09822                     //  Mar. 15, 2000 genta
09823                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
09824                         TypeDataPtr->m_cLineComment.Match( nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
09825                     ){
09826                         nBgn = nPos;
09827
09828                         nCOMMENTMODE = COLORIDX_COMMENT;    /* 行コメントである */ // 2002/03/13 novice
09829
09830                         /* 現在の色を指定 */
09831                         if( !bSearchStringMode ){
09832                             //@SetCurrentColor( hdc, nCOMMENTMODE );
09833                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09834                         }
09835                     }else
09836                     //  Mar. 15, 2000 genta
09837                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
09838                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 0, nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
09839                     ){
09840                         nBgn = nPos;
09841                         nCOMMENTMODE = COLORIDX_BLOCK1; /* ブロックコメント1である */ // 2002/03/13 novice
09842
09843                         /* 現在の色を指定 */
09844                         if( !bSearchStringMode ){
09845                             //@SetCurrentColor( hdc, nCOMMENTMODE );
09846                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09847                         }
09848                         /* この物理行にブロックコメントの終端があるか */
09849                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, nPos + (int)lstrlen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(0) ), nLineLen, pLine );   //@@@ 2002.09.22 YAZAKI
09850
09851 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
09852                     }else
09853                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
09854                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 1, nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
09855                     ){
09856                         nBgn = nPos;
09857                         nCOMMENTMODE = COLORIDX_BLOCK2; /* ブロックコメント2である */ // 2002/03/13 novice
09858                         /* 現在の色を指定 */
09859                         if( !bSearchStringMode ){
09860                             //@SetCurrentColor( hdc, nCOMMENTMODE );
09861                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09862                         }
09863                         /* この物理行にブロックコメントの終端があるか */
09864                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos + (int)lstrlen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(1) ), nLineLen, pLine );   //@@@ 2002.09.22 YAZAKI
09865 //#endif
09866                     }else
09867                     if( pLine[nPos] == '\'' &&
09868                         TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp  /* シングルクォーテーション文字列を表示する */
09869                     ){
09870                         nBgn = nPos;
09871                         nCOMMENTMODE = COLORIDX_SSTRING;    /* シングルクォーテーション文字列である */ // 2002/03/13 novice
09872
09873                         /* 現在の色を指定 */
09874                         if( !bSearchStringMode ){
09875                             //@SetCurrentColor( hdc, nCOMMENTMODE );
09876                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09877                         }
09878                         /* シングルクォーテーション文字列の終端があるか */
09879                         int i;
09880                         nCOMMENTEND = nLineLen;
09881                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
09882                             // 2005-09-02 D.S.Koba GetSizeOfChar
09883                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
09884                             if( 0 == nCharChars_2 ){
09885                                 nCharChars_2 = 1;
09886                             }
09887                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
09888                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
09889                                     ++i;
09890                                 }else
09891                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
09892                                     nCOMMENTEND = i + 1;
09893                                     break;
09894                                 }
09895                             }else
09896                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
09897                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
09898                                     if( i + 1 < nLineLen && pLine[i + 1] == '\'' ){
09899                                         ++i;
09900                                     }else{
09901                                         nCOMMENTEND = i + 1;
09902                                         break;
09903                                     }
09904                                 }
09905                             }
09906                             if( 2 == nCharChars_2 ){
09907                                 ++i;
09908                             }
09909                         }
09910                     }else
09911                     if( pLine[nPos] == '"' &&
09912                         TypeDataPtr->m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp   /* ダブルクォーテーション文字列を表示する */
09913                     ){
09914                         nBgn = nPos;
09915                         nCOMMENTMODE = COLORIDX_WSTRING;    /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
09916                         /* 現在の色を指定 */
09917                         if( !bSearchStringMode ){
09918                             //@SetCurrentColor( hdc, nCOMMENTMODE );
09919                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09920                         }
09921                         /* ダブルクォーテーション文字列の終端があるか */
09922                         int i;
09923                         nCOMMENTEND = nLineLen;
09924                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
09925                             // 2005-09-02 D.S.Koba GetSizeOfChar
09926                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
09927                             if( 0 == nCharChars_2 ){
09928                                 nCharChars_2 = 1;
09929                             }
09930                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
09931                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
09932                                     ++i;
09933                                 }else
09934                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
09935                                     nCOMMENTEND = i + 1;
09936                                     break;
09937                                 }
09938                             }else
09939                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
09940                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
09941                                     if( i + 1 < nLineLen && pLine[i + 1] == '"' ){
09942                                         ++i;
09943                                     }else{
09944                                         nCOMMENTEND = i + 1;
09945                                         break;
09946                                     }
09947                                 }
09948                             }
09949                             if( 2 == nCharChars_2 ){
09950                                 ++i;
09951                             }
09952                         }
09953                     }else
09954                     if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_URL].m_bDisp            /* URLを表示する */
09955                      && ( TRUE == IsURL( &pLine[nPos], nLineLen - nPos, &nUrlLen ) )    /* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
09956                     ){
09957                         nBgn = nPos;
09958                         nCOMMENTMODE = COLORIDX_URL;    /* URLモード */ // 2002/03/13 novice
09959                         nCOMMENTEND = nPos + nUrlLen;
09960                         /* 現在の色を指定 */
09961                         if( !bSearchStringMode ){
09962                             //@SetCurrentColor( hdc, nCOMMENTMODE );
09963                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09964                         }
09965 //@@@ 2001.02.17 Start by MIK: 半角数値を強調表示
09966                     }else if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp
09967                         && (i = IsNumber( pLine, nPos, nLineLen )) > 0 )        /* 半角数字を表示する */
09968                     {
09969                         /* キーワード文字列の終端をセットする */
09970                         i = nPos + i;
09971                         /* 現在の色を指定 */
09972                         nBgn = nPos;
09973                         nCOMMENTMODE = COLORIDX_DIGIT;  /* 半角数値である */ // 2002/03/13 novice
09974                         nCOMMENTEND = i;
09975                         if( !bSearchStringMode ){
09976                             //@SetCurrentColor( hdc, nCOMMENTMODE );
09977                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
09978                         }
09979 //@@@ 2001.02.17 End by MIK: 半角数値を強調表示
09980                     }else
09981                     if( bKeyWordTop && TypeDataPtr->m_nKeyWordSetIdx[0] != -1 && /* キーワードセット */
09982                         TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1].m_bDisp &&  /* 強調キーワードを表示する */ // 2002/03/13 novice
09983                         IS_KEYWORD_CHAR( pLine[nPos] )
09984                     ){
09985                         //  Mar 4, 2001 genta comment out
09986                         /* キーワード文字列の終端を探す */
09987                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
09988                             if( IS_KEYWORD_CHAR( pLine[i] ) ){
09989                             }else{
09990                                 break;
09991                             }
09992                         }
09993                         /* キーワードが登録単語ならば、色を変える */
09994                         j = i - nPos;
09995                         /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */
09996                         nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(       //MIK UPDATE 2000.12.01 binary search
09997                             TypeDataPtr->m_nKeyWordSetIdx[0],
09998                             &pLine[nPos],
09999                             j
10000                         );
10001                         if( nIdx != -1 ){
10002                             /* 現在の色を指定 */
10003                             nBgn = nPos;
10004                             nCOMMENTMODE = COLORIDX_KEYWORD1;   /* 強調キーワード1 */ // 2002/03/13 novice
10005                             nCOMMENTEND = i;
10006                             if( !bSearchStringMode ){
10007                                 //@SetCurrentColor( hdc, nCOMMENTMODE );
10008                                 nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10009                             }
10010                         }else{      //MIK START ADD 2000.12.01 second keyword & binary search
10011                             // 2005.01.13 MIK 強調キーワード数追加に伴う配列化
10012                             for( int my_i = 1; my_i < 10; my_i++ )
10013                             {
10014                                 if(TypeDataPtr->m_nKeyWordSetIdx[my_i] != -1 && /* キーワードセット */                          //MIK 2000.12.01 second keyword
10015                                     TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1 + my_i].m_bDisp)                                  //MIK
10016                                 {                                                                                           //MIK
10017                                     /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */                       //MIK
10018                                     nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(                                   //MIK 2000.12.01 binary search
10019                                         TypeDataPtr->m_nKeyWordSetIdx[my_i] ,                                                   //MIK
10020                                         &pLine[nPos],                                                                       //MIK
10021                                         j                                                                                   //MIK
10022                                     );                                                                                      //MIK
10023                                     if( nIdx != -1 ){                                                                       //MIK
10024                                         /* 現在の色を指定 */                                                                //MIK
10025                                         nBgn = nPos;                                                                        //MIK
10026                                         nCOMMENTMODE = COLORIDX_KEYWORD1 + my_i;    /* 強調キーワード2 */ // 2002/03/13 novice      //MIK
10027                                         nCOMMENTEND = i;                                                                    //MIK
10028                                         if( !bSearchStringMode ){                                                           //MIK
10029                                             //@SetCurrentColor( hdc, nCOMMENTMODE );                                        //MIK
10030                                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10031                                         }                                                                                   //MIK
10032                                         break;
10033                                     }                                                                                       //MIK
10034                                 }                                                                                           //MIK
10035                                 else
10036                                 {
10037                                     if(TypeDataPtr->m_nKeyWordSetIdx[my_i] == -1 )
10038                                         break;
10039                                 }
10040                             }
10041                         }           //MIK END
10042                     }
10043                     //  From Here Mar. 4, 2001 genta
10044                     if( IS_KEYWORD_CHAR( pLine[nPos] )) bKeyWordTop = false;
10045                     else                                bKeyWordTop = true;
10046                     //  To Here
10047                     break;
10048 // 2002/03/13 novice
10049                 case COLORIDX_URL:      /* URLモードである */
10050                 case COLORIDX_KEYWORD1: /* 強調キーワード1 */
10051                 case COLORIDX_DIGIT:    /* 半角数値である */  //@@@ 2001.02.17 by MIK
10052                 case COLORIDX_KEYWORD2: /* 強調キーワード2 */   //MIK
10053                 case COLORIDX_KEYWORD3:
10054                 case COLORIDX_KEYWORD4:
10055                 case COLORIDX_KEYWORD5:
10056                 case COLORIDX_KEYWORD6:
10057                 case COLORIDX_KEYWORD7:
10058                 case COLORIDX_KEYWORD8:
10059                 case COLORIDX_KEYWORD9:
10060                 case COLORIDX_KEYWORD10:
10061                     if( nPos == nCOMMENTEND ){
10062                         nBgn = nPos;
10063                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
10064                         /* 現在の色を指定 */
10065                         if( !bSearchStringMode ){
10066                             //@SetCurrentColor( hdc, nCOMMENTMODE );
10067                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10068                         }
10069                         goto SEARCH_START;
10070                     }
10071                     break;
10072                 case COLORIDX_CTRLCODE: /* コントロールコード */ // 2002/03/13 novice
10073                     if( nPos == nCOMMENTEND ){
10074                         nBgn = nPos;
10075                         nCOMMENTMODE = nCOMMENTMODE_OLD;
10076                         nCOMMENTEND = nCOMMENTEND_OLD;
10077                         /* 現在の色を指定 */
10078                         if( !bSearchStringMode ){
10079                             //@SetCurrentColor( hdc, nCOMMENTMODE );
10080                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10081                         }
10082                         goto SEARCH_START;
10083                     }
10084                     break;
10085
10086                 case COLORIDX_COMMENT:  /* 行コメントである */ // 2002/03/13 novice
10087                     break;
10088                 case COLORIDX_BLOCK1:   /* ブロックコメント1である */ // 2002/03/13 novice
10089                     if( 0 == nCOMMENTEND ){
10090                         /* この物理行にブロックコメントの終端があるか */
10091                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
10092                     }else
10093                     if( nPos == nCOMMENTEND ){
10094                         nBgn = nPos;
10095                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
10096                         /* 現在の色を指定 */
10097                         if( !bSearchStringMode ){
10098                             //@SetCurrentColor( hdc, nCOMMENTMODE );
10099                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10100                         }
10101                         goto SEARCH_START;
10102                     }
10103                     break;
10104                 case COLORIDX_BLOCK2:   /* ブロックコメント2である */ // 2002/03/13 novice
10105                     if( 0 == nCOMMENTEND ){
10106                         /* この物理行にブロックコメントの終端があるか */
10107                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
10108                     }else
10109                     if( nPos == nCOMMENTEND ){
10110                         nBgn = nPos;
10111                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
10112                         /* 現在の色を指定 */
10113                         if( !bSearchStringMode ){
10114                             //@SetCurrentColor( hdc, nCOMMENTMODE );
10115                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10116                         }
10117                         goto SEARCH_START;
10118                     }
10119                     break;
10120                 case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */ // 2002/03/13 novice
10121                     if( 0 == nCOMMENTEND ){
10122                         /* シングルクォーテーション文字列の終端があるか */
10123                         int i;
10124                         nCOMMENTEND = nLineLen;
10125                         for( i = nPos/* + 1*/; i <= nLineLen - 1; ++i ){
10126                             // 2005-09-02 D.S.Koba GetSizeOfChar
10127                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
10128                             if( 0 == nCharChars_2 ){
10129                                 nCharChars_2 = 1;
10130                             }
10131                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
10132                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
10133                                     ++i;
10134                                 }else
10135                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
10136                                     nCOMMENTEND = i + 1;
10137                                     break;
10138                                 }
10139                             }else
10140                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
10141                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
10142                                     if( i + 1 < nLineLen && pLine[i + 1] == '\'' ){
10143                                         ++i;
10144                                     }else{
10145                                         nCOMMENTEND = i + 1;
10146                                         break;
10147                                     }
10148                                 }
10149                             }
10150                             if( 2 == nCharChars_2 ){
10151                                 ++i;
10152                             }
10153                         }
10154                     }else
10155                     if( nPos == nCOMMENTEND ){
10156                         nBgn = nPos;
10157                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
10158                         /* 現在の色を指定 */
10159                         if( !bSearchStringMode ){
10160                             //@SetCurrentColor( hdc, nCOMMENTMODE );
10161                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10162                         }
10163                         goto SEARCH_START;
10164                     }
10165                     break;
10166                 case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
10167                     if( 0 == nCOMMENTEND ){
10168                         /* ダブルクォーテーション文字列の終端があるか */
10169                         int i;
10170                         nCOMMENTEND = nLineLen;
10171                         for( i = nPos/* + 1*/; i <= nLineLen - 1; ++i ){
10172                             // 2005-09-02 D.S.Koba GetSizeOfChar
10173                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
10174                             if( 0 == nCharChars_2 ){
10175                                 nCharChars_2 = 1;
10176                             }
10177                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
10178                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
10179                                     ++i;
10180                                 }else
10181                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
10182                                     nCOMMENTEND = i + 1;
10183                                     break;
10184                                 }
10185                             }else
10186                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
10187                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
10188                                     if( i + 1 < nLineLen && pLine[i + 1] == '"' ){
10189                                         ++i;
10190                                     }else{
10191                                         nCOMMENTEND = i + 1;
10192                                         break;
10193                                     }
10194                                 }
10195                             }
10196                             if( 2 == nCharChars_2 ){
10197                                 ++i;
10198                             }
10199                         }
10200                     }else
10201                     if( nPos == nCOMMENTEND ){
10202                         nBgn = nPos;
10203                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
10204                         /* 現在の色を指定 */
10205                         if( !bSearchStringMode ){
10206                             //@SetCurrentColor( hdc, nCOMMENTMODE );
10207                             nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10208                         }
10209                         goto SEARCH_START;
10210                     }
10211                     break;
10212                 default:    //@@@ 2002.01.04 add start
10213                     if( nCOMMENTMODE >= 1000 && nCOMMENTMODE <= 1099 ){ //正規表現キーワード1～10
10214                         if( nPos == nCOMMENTEND ){
10215                             nBgn = nPos;
10216                             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
10217                             /* 現在の色を指定 */
10218                             if( !bSearchStringMode ){
10219                                 //@SetCurrentColor( hdc, nCOMMENTMODE );
10220                                 nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10221                             }
10222                             goto SEARCH_START;
10223                         }
10224                     }
10225                     break;  //@@@ 2002.01.04 add end
10226                 }
10227                 if( pLine[nPos] == TAB ){
10228                     nBgn = nPos + 1;
10229                     nCharChars = 1;
10230                 }else
10231                 if( (unsigned char)pLine[nPos] == 0x81 && (unsigned char)pLine[nPos + 1] == 0x40    //@@@ 2001.11.17 upd MIK
10232                  && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )  //@@@ 2002.01.04
10233                 {   //@@@ 2001.11.17 add MIK    //@@@ 2002.01.04
10234                     nBgn = nPos + 2;
10235                     nCharChars = 2;
10236                 }
10237                 //半角空白（半角スペース）を表示 2002.04.28 Add by KK
10238                 else if (pLine[nPos] == ' ' && TypeDataPtr->m_ColorInfoArr[COLORIDX_SPACE].m_bDisp
10239                      && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )
10240                 {
10241                     nBgn = nPos + 1;
10242                     nCharChars = 1;
10243                 }
10244                 else{
10245                     // 2005-09-02 D.S.Koba GetSizeOfChar
10246                     nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
10247                     if( 0 == nCharChars ){
10248                         nCharChars = 1;
10249                     }
10250                     if( !bSearchStringMode
10251                      && 1 == nCharChars
10252                      && COLORIDX_CTRLCODE != nCOMMENTMODE // 2002/03/13 novice
10253                      && TypeDataPtr->m_ColorInfoArr[COLORIDX_CTRLCODE].m_bDisp  /* コントロールコードを色分け */
10254                      && (
10255                                 //  Jan. 23, 2002 genta 警告抑制
10256                             ( (unsigned char)pLine[nPos] <= (unsigned char)0x1F ) ||
10257                             ( (unsigned char)'~' < (unsigned char)pLine[nPos] && (unsigned char)pLine[nPos] < (unsigned char)'｡' ) ||
10258                             ( (unsigned char)'ﾟ' < (unsigned char)pLine[nPos] )
10259                         )
10260                      && pLine[nPos] != TAB && pLine[nPos] != CR && pLine[nPos] != LF
10261                     ){
10262                         nBgn = nPos;
10263                         nCOMMENTMODE_OLD = nCOMMENTMODE;
10264                         nCOMMENTEND_OLD = nCOMMENTEND;
10265                         nCOMMENTMODE = COLORIDX_CTRLCODE;   /* コントロールコード モード */ // 2002/03/13 novice
10266                         /* コントロールコード列の終端を探す */
10267                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
10268                             // 2005-09-02 D.S.Koba GetSizeOfChar
10269                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
10270                             if( 0 == nCharChars_2 ){
10271                                 nCharChars_2 = 1;
10272                             }
10273                             if( nCharChars_2 != 1 ){
10274                                 break;
10275                             }
10276                             if( (
10277                                 //  Jan. 23, 2002 genta 警告抑制
10278                                 ( (unsigned char)pLine[i] <= (unsigned char)0x1F ) ||
10279                                     ( (unsigned char)'~' < (unsigned char)pLine[i] && (unsigned char)pLine[i] < (unsigned char)'｡' ) ||
10280                                     ( (unsigned char)'ﾟ' < (unsigned char)pLine[i] )
10281                                 ) &&
10282                                 pLine[i] != TAB && pLine[i] != CR && pLine[i] != LF
10283                             ){
10284                             }else{
10285                                 break;
10286                             }
10287                         }
10288                         nCOMMENTEND = i;
10289                         /* 現在の色を指定 */
10290                         //@SetCurrentColor( hdc, nCOMMENTMODE );
10291                         nColorIndex = nCOMMENTMODE; // 02/12/18 ai
10292                     }
10293                 }
10294                 nPos+= nCharChars;
10295             } //end of while( nPos - nLineBgn < pcLayout2->m_nLength ){
10296             if( nPos > nCol ){  // 03/10/24 ai 行頭のColorIndexが取得できない問題に対応
10297                 break;
10298             }
10299         }
10300
10301 end_of_line:;
10302
10303     }
10304
10305 //@end_of_func:;
10306     return nColorIndex;
10307 }
10308
10313 bool CEditView::IsInsMode(void) const
10314 {
10315     return m_pcEditDoc->IsInsMode();
10316 }
10317
10318 void CEditView::SetInsMode(bool mode)
10319 {
10320     m_pcEditDoc->SetInsMode( mode );
10321 }
10322 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView.h

CEditView.h

文書ウィンドウの管理 [詳細]

#include <windows.h>
#include "CShareData.h"
#include "CTipWnd.h"
#include "CDicMgr.h"
#include "CHokanMgr.h"
#include "CBregexp.h"
#include "CEOL.h"

CEditView.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | tagRECONVERTSTRING
class | CCaretUnderLine
class | CEditView
文書ウィンドウの管理 [詳細]

マクロ定義

#define | _CARETMARGINRATE 20
#define | IDM_COPYDICINFO 2000
#define | IDM_JUMPDICT 2001

型定義

typedef tagRECONVERTSTRING | RECONVERTSTRING
typedef tagRECONVERTSTRING * | PRECONVERTSTRING

変数

const int | CMD_FROM_MOUSE = 2

説明

文書ウィンドウの管理

作者:
Norio Nakatani
日付:
1998/03/13 作成

CEditView.h で定義されています。

マクロ定義

#define _CARETMARGINRATE 20

CEditView.h の 25 行で定義されています。

参照元 CEditView::Command_WndScrollDown()・CEditView::Command_WndScrollUp()・CEditView::ISearchBack().

#define IDM_COPYDICINFO 2000

CEditView.h の 50 行で定義されています。

参照元 CEditView::Command_MENU_RBUTTON().

#define IDM_JUMPDICT 2001

CEditView.h の 53 行で定義されています。

型定義

typedef struct tagRECONVERTSTRING * PRECONVERTSTRING

typedef struct tagRECONVERTSTRING RECONVERTSTRING

変数

const int CMD_FROM_MOUSE = 2

マウスからコマンドが実行された場合の上位ビット

日付:
2006.05.19 genta

CEditView.h の 71 行で定義されています。

参照元 CEditWnd::OnCommand()・CEditView::OnMBUTTONDOWN()・CEditView::OnRBUTTONUP()・CEditView::OnXLBUTTONDOWN()・CEditView::OnXRBUTTONDOWN().

Sakura-Editorに対してSat Oct 27 02:17:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView.h ソースファイル

CEditView.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, genta, jepro
00010     Copyright (C) 2001, asa-o, MIK, hor, Misaka, Stonee, YAZAKI
00011     Copyright (C) 2002, genta, hor, YAZAKI, Azumaiya, KK, novice, minfu, ai, aroka, MIK
00012     Copyright (C) 2003, genta, MIK, Moca
00013     Copyright (C) 2004, genta, Moca, novice, Kazika, isearch
00014     Copyright (C) 2005, genta, Moca, MIK, ryoji, maru
00015     Copyright (C) 2006, genta, aroka, fon, yukihane, ryoji
00016     Copyright (C) 2007, ryoji, maru
00017
00018     This source code is designed for sakura editor.
00019     Please contact the copyright holder to use this code for other purpose.
00020 */
00021
00022 #ifndef _CEDITVIEW_H_
00023 #define _CEDITVIEW_H_
00024
00025 #define _CARETMARGINRATE 20
00026
00027 #include <windows.h>
00028 #include "CShareData.h"
00029 #include "CTipWnd.h"
00030 #include "CDicMgr.h"
00031 #include "CHokanMgr.h"
00032 //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00033 #include "CBregexp.h"
00034 #include "CEOL.h"
00035
00036 class CDropTarget;
00037 class CMemory;
00038 class COpe;
00039 class COpeBlk;
00040 class CSplitBoxWnd;
00041 class CDlgCancel;
00042 class CRegexKeyword;
00043 class CAutoMarkMgr;
00044 class CEditDoc; //  2002/5/13 YAZAKI ヘッダ軽量化
00045 class CLayout;  //  2002/5/13 YAZAKI ヘッダ軽量化
00046 class CDocLine;
00047 class CMigemo;  // 2004.09.14 isearch
00048
00049 #ifndef IDM_COPYDICINFO
00050 #define IDM_COPYDICINFO 2000
00051 #endif
00052 #ifndef IDM_JUMPDICT
00053 #define IDM_JUMPDICT 2001   // 2006.04.10 fon
00054 #endif
00055
00056 #if !defined(RECONVERTSTRING) && (WINVER < 0x040A)
00057 typedef struct tagRECONVERTSTRING {
00058     DWORD dwSize;
00059     DWORD dwVersion;
00060     DWORD dwStrLen;
00061     DWORD dwStrOffset;
00062     DWORD dwCompStrLen;
00063     DWORD dwCompStrOffset;
00064     DWORD dwTargetStrLen;
00065     DWORD dwTargetStrOffset;
00066 } RECONVERTSTRING, *PRECONVERTSTRING;
00067 #endif // RECONVERTSTRING
00068
00071 const int CMD_FROM_MOUSE = 2;
00072
00073 class CEditView;
00074
00075 /*-----------------------------------------------------------------------
00076 クラスの宣言
00077 -----------------------------------------------------------------------*/
00078 class SAKURA_CORE_API CCaretUnderLine
00079 {
00080 public:
00081     CCaretUnderLine(){
00082         m_nLockCounter = 0;
00083     };
00084     void Lock(){    //  表示非表示を切り替えられないようにする
00085         m_nLockCounter++;
00086     }
00087     void UnLock(){  //  表示非表示を切り替えられるようにする
00088         m_nLockCounter--;
00089         if (m_nLockCounter < 0){
00090             m_nLockCounter = 0;
00091         };
00092     }
00093     void CaretUnderLineON( BOOL );                              /* カーソル行アンダーラインのON */
00094     void CaretUnderLineOFF( BOOL );                             /* カーソル行アンダーラインのOFF */
00095     void SetView( CEditView* pcEditView ){
00096         m_pcEditView = pcEditView;
00097     };
00098 protected:
00099     /* ロックカウンタ。0のときは、ロックされていない。UnLockが呼ばれすぎても負にはならない */
00100     int m_nLockCounter;
00101     CEditView* m_pcEditView;
00102 };
00103
00114 class SAKURA_CORE_API CEditView/* : public CDropTarget*/
00115 {
00116 public:
00117     /* Constructors */
00118     CEditView();
00119     ~CEditView();
00120     /* 初期化系メンバ関数 */
00121     BOOL Create( HINSTANCE, HWND, CEditDoc*, int,/* BOOL,*/ BOOL );
00122     BOOL CreateScrollBar( void );       /* スクロールバー作成 */    // 2006.12.19 ryoji
00123     void DestroyScrollBar( void );      /* スクロールバー破棄 */    // 2006.12.19 ryoji
00124     /* 状態 */
00125     //<< 2002/03/29 Azumaiya インライン関数化
00126     BOOL IsTextSelected( void )     /* テキストが選択されているか */
00127     {
00128         // ジャンプ回数を減らして、一気に判定。
00129         // すべてを or 演算した後に、ビット反転して最上位ビット(符号フラグ)を返す。
00130         /* すなわち、いずれかがひとつでも-1(0xFFFF)なら、FALSEを返す？ */
00131         return ~((DWORD)(m_nSelectLineFrom|m_nSelectLineTo|m_nSelectColmFrom|m_nSelectColmTo)) >> 31;
00132     };
00133     BOOL IsTextSelecting( void )    /* テキストの選択中か */
00134     {
00135         // ジャンプ回数を減らして、一気に判定。
00136         return m_bSelectingLock|IsTextSelected();
00137     };
00138     //>> 2002/03/29 Azumaiya
00139     //  Oct. 2, 2005 genta 挿入モードの設定・取得
00140     bool IsInsMode() const;
00141     void SetInsMode(bool);
00142
00143     /* メッセージディスパッチャ */
00144     LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );
00145     void OnMove( int, int, int, int );
00146     void OnSetFocus( void );
00147     void OnKillFocus( void );
00148     void OnTimer( HWND, UINT, UINT, DWORD );
00149     BOOL HandleCommand( int, BOOL, LPARAM, LPARAM, LPARAM, LPARAM );
00150     /* コマンド操作 */
00151     void CaretUnderLineON( BOOL );                              /* カーソル行アンダーラインのON */
00152     void CaretUnderLineOFF( BOOL );                             /* カーソル行アンダーラインのOFF */
00153     void AdjustScrollBars( void );                              /* スクロールバーの状態を更新する */
00154     int  MoveCursor( int, int, BOOL, int = _CARETMARGINRATE );  /* 行桁指定によるカーソル移動 */
00155     int MoveCursorProperly( int, int, BOOL, int = _CARETMARGINRATE, int = 0 );  /* 行桁指定によるカーソル移動（座標調整付き） */
00156     // 2006.07.09 genta 行桁指定によるカーソル移動(選択領域を考慮)
00157     void MoveCursorSelecting( int, int, BOOL, int = _CARETMARGINRATE );
00158     BOOL GetAdjustCursorPos( int *, int *); // 正しいカーソル位置を算出する
00159     BOOL DetectWidthOfLineNumberArea( BOOL );                   /* 行番号表示に必要な幅を設定 */
00160     int DetectWidthOfLineNumberArea_calculate( void );          /* 行番号表示に必要な桁数を計算 */
00161     void DisableSelectArea( BOOL );                             /* 現在の選択範囲を非選択状態に戻す */
00162     void OnChangeSetting( void );                               /* 設定変更を反映させる */
00163     void SetFont( void );                                       /* フォントの変更 */
00164     void RedrawAll( void );                                     /* フォーカス移動時の再描画 */
00165     void Redraw( void );                                        // 2001/06/21 asa-o 再描画
00166     void CopyViewStatus( CEditView* );                          /* 自分の表示状態を他のビューにコピー */
00167     void SplitBoxOnOff( BOOL, BOOL, BOOL );                     /* 縦・横の分割ボックス・サイズボックスのＯＮ／ＯＦＦ */
00168     DWORD DoGrep( const CMemory*, const CMemory*, const CMemory*, BOOL, BOOL, BOOL, int, BOOL, BOOL, int ); /* Grep実行 */
00169     /* Grep実行 */  //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00170     int DoGrepTree( CDlgCancel*, HWND, const char*, int*, const char*, const char*, BOOL, BOOL, BOOL, int, BOOL, BOOL, int, CBregexp*, int, int* );
00171     /* Grep実行 */  //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00172     //  Mar. 28, 2004 genta 不要な引数を削除
00173     int DoGrepFile( CDlgCancel*, HWND, const char*, int*, const char*, BOOL, BOOL, int, BOOL, BOOL, int, CBregexp*, int*, const char*, CMemory& );
00174     /* Grep結果をpszWorkに格納 */
00175     void SetGrepResult(
00176         /* データ格納先 */
00177         char*       pWork,
00178         int*        pnWorkLen,
00179         /* マッチしたファイルの情報 */
00180         const char*     pszFullPath,    //  フルパス
00181         const char*     pszCodeName,    //  文字コード情報"[SJIS]"とか
00182         /* マッチした行の情報 */
00183         int         nLine,          //  マッチした行番号
00184         int         nColm,          //  マッチした桁番号
00185         const char*     pCompareData,   //  行の文字列
00186         int         nLineLen,       //  行の文字列の長さ
00187         int         nEolCodeLen,    //  EOLの長さ
00188         /* マッチした文字列の情報 */
00189         const char*     pMatchData,     //  マッチした文字列
00190         int         nMatchLen,      //  マッチした文字列の長さ
00191         /* オプション */
00192         BOOL        bGrepOutputLine,
00193         int         nGrepOutputStyle
00194     );
00195
00196     //  Jun. 16, 2000 genta
00197     bool  SearchBracket( int PosX, int PosY, int* NewX, int* NewY, int* mode ); // 対括弧の検索     // modeの追加 02/09/18 ai
00198     bool  SearchBracketForward( int PosX, int PosY, int* NewX, int* NewY,
00199                         char* upChar, char* dnChar, int* mode );    //  対括弧の前方検索    // modeの追加 02/09/19 ai
00200     bool  SearchBracketBackward( int PosX, int PosY, int* NewX, int* NewY,
00201                         char* dnChar, char* upChar, int* mode );    //  対括弧の後方検索    // modeの追加 02/09/19 ai
00202 //@@@ 2001.02.03 Start by MIK: 全角の対括弧
00203     bool  SearchBracketForward2( int PosX, int PosY, int* NewX, int* NewY,
00204                                  char* upChar, char* dnChar, int* mode );   //  対括弧の前方検索    // modeの追加 02/09/19 ai
00205     bool  SearchBracketBackward2( int PosX, int PosY, int* NewX, int* NewY,
00206                                   char* dnChar, char* upChar, int* mode );  //  対括弧の後方検索    // modeの追加 02/09/19 ai
00207 //@@@ 2001.02.03 End
00208
00209 //  2001/06/18 asa-o
00210     bool  ShowKeywordHelp( POINT po, LPCTSTR pszHelp, LPRECT prcHokanWin);  // 補完ウィンドウ用のキーワードヘルプ表示
00211
00212 // 2002/01/19 novice public属性に変更
00213     BOOL GetSelectedData( CMemory&, BOOL, const char*, BOOL, BOOL bAddCRLFWhenCopy, enumEOLType neweol = EOL_UNKNOWN);/* 選択範囲のデータを取得 */
00214     //  Aug. 25, 2002 genta protected->publicに移動
00215     bool IsImeON( void );   // IME ONか // 2006.12.04 ryoji
00216     void CreateEditCaret( COLORREF crCaret, COLORREF crBack, int nWidth, int nHeight );     /* キャレットの作成 */  // 2006.12.07 ryoji
00217     void ShowEditCaret( void );                                 /* キャレットの表示・更新 */
00218     int HokanSearchByFile( const char*, BOOL, CMemory**, int, int ); // 2003.06.25 Moca
00219
00223     enum LID_SKH {
00224         LID_SKH_ONTIMER     = 1,
00225         LID_SKH_POPUPMENU_R = 2,
00226     };
00227     BOOL KeyWordHelpSearchDict( LID_SKH nID, POINT* po, RECT* rc ); // 2006.04.10 fon
00228     BOOL KeySearchCore( const CMemory* pcmemCurText );  // 2006.04.10 fon
00229
00230     //  Jan. 10, 2005 インクリメンタルサーチ
00231     bool IsISearchEnabled(int nCommand) const;
00232
00233     //  Jan.  8, 2006 genta 折り返しトグル動作判定
00234     enum TOGGLE_WRAP_ACTION {
00235         TGWRAP_NONE = 0,
00236         TGWRAP_FULL,
00237         TGWRAP_WINDOW,
00238         TGWRAP_PROP,
00239     };
00240     TOGGLE_WRAP_ACTION GetWrapMode( int& );
00241
00242 public: /* テスト用にアクセス属性を変更 */
00243     CDropTarget*    m_pcDropTarget;
00244     BOOL            m_bDrawSWITCH;
00245     BOOL            m_bDragSource;  /* 選択テキストのドラッグ中か */
00246     BOOL            m_bDragMode;    /* 選択テキストのドラッグ中か */
00247
00248     /* 単語検索の状態 */
00249
00250     //  Jun. 26, 2001 genta 正規表現ライブラリの差し替え
00251     CBregexp    m_CurRegexp;
00252     BOOL    m_bCurSrchKeyMark;          /* 検索文字列のマーク */
00253     char    m_szCurSrchKey[_MAX_PATH];  /* 検索文字列 */
00254     int     m_bCurSrchRegularExp;       /* 検索／置換  1==正規表現 */
00255     int     m_bCurSrchLoHiCase;         /* 検索／置換  1==英大文字小文字の区別 */
00256     int     m_bCurSrchWordOnly;         /* 検索／置換  1==単語のみ検索 */
00257
00258     BOOL    m_bExecutingKeyMacro;       /* キーボードマクロの実行中 */
00259 //  BOOL    m_bGrepRunning;
00260 //  HANDLE  m_hThreadGrep;  @@@ 2002.01.03 YAZAKI 使用していないため
00261     HWND    m_hWnd;             /* 編集ウィンドウハンドル */
00262     int     m_nViewTopLine;     /* 表示域の一番上の行(0開始) */
00263     int     m_nViewLeftCol;     /* 表示域の一番左の桁(0開始) */
00281     int     m_nCaretPosX_Prev;
00282     int     m_nCaretPosX;       /* ビュー左端からのカーソル桁位置（０開始）*/
00283     int     m_nCaretPosY;       /* ビュー上端からのカーソル行位置（０開始）*/
00284     int     m_nCaretPosX_PHY;   /* カーソル位置  改行単位行先頭からのバイト数（０開始）*/
00285     int     m_nCaretPosY_PHY;   /* カーソル位置  改行単位行の行番号（０開始）*/
00286
00287     int     m_nSrchStartPosX_PHY;   /* 検索/置換開始時のカーソル位置  改行単位行先頭からのバイト数(0開始) */    // 02/06/26 ai
00288     int     m_nSrchStartPosY_PHY;   /* 検索/置換開始時のカーソル位置  改行単位行の行番号(0開始) */              // 02/06/26 ai
00289     BOOL    m_bSearch;              /* 検索/置換開始位置を登録するか */                                         // 02/06/26 ai
00290     int     m_nCharSize;            /* 対括弧の文字サイズ */    // 02/09/18 ai
00291     int     m_nBracketCaretPosX_PHY;/* 前カーソル位置の括弧の位置 改行単位行先頭からのバイト数(0開始) */    // 03/02/18 ai
00292     int     m_nBracketCaretPosY_PHY;/* 前カーソル位置の括弧の位置 改行単位行の行番号(0開始) */              // 03/02/18 ai
00293     int     m_nBracketPairPosX_PHY; /* 対括弧の位置 改行単位行先頭からのバイト数(0開始) */  // 02/12/13 ai
00294     int     m_nBracketPairPosY_PHY; /* 対括弧の位置 改行単位行の行番号(0開始) */            // 02/12/13 ai
00295     BOOL    m_bDrawBracketPairFlag; /* 対括弧の強調表示を行なうか */                        // 03/02/18 ai
00296     BOOL    m_bDrawSelectArea;      /* 選択範囲を描画したか */  // 02/12/13 ai
00297
00298     /*
00299     ||  メンバ変数
00300     */
00301     char*           m_pszAppName;   /* Mutex作成用・ウィンドウクラス名 */
00302     HINSTANCE       m_hInstance;    /* インスタンスハンドル */
00303     HWND            m_hwndParent;   /* 親ウィンドウハンドル */
00304
00305     DLLSHAREDATA*   m_pShareData;
00306 //  int             m_nSettingType;
00307
00308     CEditDoc*       m_pcEditDoc;        /* ドキュメント */
00309     COpeBlk*        m_pcOpeBlk;         /* 操作ブロック */
00310     BOOL            m_bDoing_UndoRedo;  /* アンドゥ・リドゥの実行中か */
00311     HWND            m_hwndVScrollBar;   /* 垂直スクロールバーウィンドウハンドル */
00312     int             m_nVScrollRate;     /* 垂直スクロールバーの縮尺 */
00313     HWND            m_hwndHScrollBar;   /* 水平スクロールバーウィンドウハンドル */
00314     HWND            m_hwndSizeBox;      /* サイズボックスウィンドウハンドル */
00315     CSplitBoxWnd*   m_pcsbwVSplitBox;   /* 垂直分割ボックス */
00316     CSplitBoxWnd*   m_pcsbwHSplitBox;   /* 水平分割ボックス */
00317     //  Dec. 4, 2002 genta
00318     //  メニューバーへのメッセージ表示機能はCEditWndへ移管
00319     //HFONT         m_hFontCaretPosInfo;/* キャレットの行桁位置表示用フォント */
00320     //int           m_nCaretPosInfoCharWidth;
00321     //int           m_nCaretPosInfoCharHeight;
00322     //int           m_pnCaretPosInfoDx[64]; /* 文字列描画用文字幅配列 */
00323     HDC             m_hdcCompatDC;      /* 再描画用コンパチブルＤＣ */
00324     HBITMAP         m_hbmpCompatBMP;    /* 再描画用メモリＢＭＰ */
00325     HBITMAP         m_hbmpCompatBMPOld; /* 再描画用メモリＢＭＰ(OLD) */
00326 //@@@2002.01.14 YAZAKI staticにしてメモリの節約（(10240+10) * 3 バイト）
00327     static int      m_pnDx[MAXLINESIZE + 10];   /* 文字列描画用文字幅配列 */
00328     HFONT           m_hFont_HAN;        /* 現在のフォントハンドル */
00329     HFONT           m_hFont_HAN_FAT;    /* 現在のフォントハンドル */
00330     HFONT           m_hFont_HAN_UL;     /* 現在のフォントハンドル */
00331     HFONT           m_hFont_HAN_FAT_UL; /* 現在のフォントハンドル */
00332 //  2004.02.14 Moca m_hFont_ZENは、未使用につき削除
00333 //  HFONT           m_hFont_ZEN;        /* 現在のフォントハンドル */
00334     HFONT           m_hFontOld;
00335     BOOL            m_bCommandRunning;  /* コマンドの実行中 */
00336     /* 分割状態 */
00337     int             m_nMyIndex;
00338     /* キーリピート状態 */
00339     int             m_bPrevCommand;
00340     /* 入力状態 */
00341     int     m_nCaretWidth;          /* キャレットの幅 */
00342     int     m_nCaretHeight;         /* キャレットの高さ */
00343     COLORREF    m_crCaret;          /* キャレットの色 */            // 2006.12.07 ryoji
00344     COLORREF    m_crBack;           /* テキストの背景色 */          // 2006.12.07 ryoji
00345     HBITMAP m_hbmpCaret;            /* キャレットのビットマップ */  // 2006.11.28 ryoji
00346     CCaretUnderLine m_cUnderLine;   /* アンダーライン */
00347     int     m_nOldUnderLineY;
00348
00349     int     m_nOldCaretPosX;    // 前回描画したルーラーのキャレット位置 2002.02.25 Add By KK
00350     int     m_nOldCaretWidth;   // 前回描画したルーラーのキャレット幅   2002.02.25 Add By KK
00351     bool    m_bRedrawRuler;     // ルーラー全体を描き直す時 = true      2002.02.25 Add By KK
00352
00353     /* 選択状態 */
00354     int     m_bSelectingLock;       /* 選択状態のロック */
00355     int     m_bBeginSelect;         /* 範囲選択中 */
00356     int     m_bBeginBoxSelect;      /* 矩形範囲選択中 */
00357     int     m_bBeginLineSelect;     /* 行単位選択中 */
00358     int     m_bBeginWordSelect;     /* 単語単位選択中 */
00359     /* 選択範囲を保持するための変数群
00360         これらはすべて折り返し行と、折り返し桁を保持している。
00361     */
00362     int     m_nSelectLineBgnFrom;   /* 範囲選択開始行(原点) */
00363     int     m_nSelectColmBgnFrom;   /* 範囲選択開始桁(原点) */
00364     int     m_nSelectLineBgnTo;     /* 範囲選択開始行(原点) */
00365     int     m_nSelectColmBgnTo;     /* 範囲選択開始桁(原点) */
00366     int     m_nSelectLineFrom;      /* 範囲選択開始行 */
00367     int     m_nSelectColmFrom;      /* 範囲選択開始桁 */
00368     int     m_nSelectLineTo;        /* 範囲選択終了行 */
00369     int     m_nSelectColmTo;        /* 範囲選択終了桁 */
00370     /* DrawSelectArea()に現在の選択範囲を教えて差分のみ描画するためのもの
00371        現在の選択範囲をOldへコピーした上で新しい選択範囲をSelectに設定して
00372        DrawSelectArea()を呼びだすことで新しい範囲が描かれる．
00373     */
00374     int     m_nSelectLineFromOld;   /* 範囲選択開始行 */
00375     int     m_nSelectColmFromOld;   /* 範囲選択開始桁 */
00376     int     m_nSelectLineToOld;     /* 範囲選択終了行 */
00377     int     m_nSelectColmToOld;     /* 範囲選択終了桁 */
00378     int     m_nMouseRollPosXOld;    /* マウス範囲選択前回位置(X座標) */
00379     int     m_nMouseRollPosYOld;    /* マウス範囲選択前回位置(Y座標) */
00380     /* 画面情報 */
00381     int     m_nViewAlignLeft;       /* 表示域の左端座標 */
00382     int     m_nViewAlignLeftCols;   /* 行番号域の桁数 */
00383     int     m_nViewAlignTop;        /* 表示域の上端座標 */
00384     int     m_nTopYohaku;
00385     int     m_nViewCx;              /* 表示域の幅 */
00386     int     m_nViewCy;              /* 表示域の高さ */
00387     int     m_nViewColNum;          /* 表示域の桁数 */
00388     int     m_nViewRowNum;          /* 表示域の行数 */
00389     /* 表示方法 */
00390     int     m_nCharWidth;           /* 半角文字の幅 */
00391     int     m_nCharHeight;          /* 文字の高さ */
00392     /* 辞書Tip関連 */
00393     DWORD   m_dwTipTimer;           /* Tip起動タイマー */
00394     CTipWnd m_cTipWnd;              /* Tip表示ウィンドウ */
00395     POINT   m_poTipCurPos;          /* Tip起動時のマウスカーソル位置 */
00396     BOOL    m_bInMenuLoop;          /* メニュー モーダル ループに入っています */
00397     CDicMgr m_cDicMgr;              /* 辞書マネージャ */
00398     /* 入力補完 */
00399 //  CHokanMgr   m_cHokanMgr;
00400     BOOL        m_bHokan;           //  補完中か？＝補完ウィンドウが表示されているか？かな？
00401     //  Aug. 31, 2000 genta
00402     CAutoMarkMgr    *m_cHistory;    //  Jump履歴
00403     CRegexKeyword   *m_cRegexKeyword;   //@@@ 2001.11.17 add MIK
00404
00405     /*
00406     ||  実装ヘルパ関数
00407     */
00408     void GetCurrentTextForSearch( CMemory& );           /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
00409     void GetCurrentTextForSearchDlg( CMemory& );        /* 現在カーソル位置単語または選択範囲より検索等のキーを取得（ダイアログ用） 2006.08.23 ryoji */
00410     void DestroyCaret( void ){  /* キャレットを破棄する（内部的にも破棄）*/
00411         ::DestroyCaret();
00412         m_nCaretWidth = 0;
00413     }
00414 protected:
00415 //  CEOL GetCurrentInsertEOL( void );                   /* 現在、Enterなどで挿入する改行コードの種類を取得 */
00416
00417     BOOL MyGetClipboardData( CMemory&, BOOL* );         /* クリップボードからデータを取得 */
00418     BOOL MySetClipboardData( const char*, int, BOOL );  /* クリップボードにデータを設定 */
00419     int GetLeftWord( CMemory*, int );                   /* カーソル直前の単語を取得 */
00420     BOOL GetCurrentWord( CMemory* );                    /* キャレット位置の単語を取得 */    // 2006.03.24 fon
00421 //  void PrintBitmap( HDC, int, int, const char* );     /* ビットマップファイル表示 */
00422 //  HANDLE OpenDIB ( LPCSTR );                          /* DIBファイルを開いてメモリDIBを作成 */
00423 //  HANDLE ReadDibBitmapInfo ( int );                   /* DIB形式のファイルを読む */
00424 //  BOOL DibInfo ( HANDLE, LPBITMAPINFOHEADER );        /* CF_DIB形式のメモリブロックに関連付けられているDIB情報を取得します */
00425 //  WORD PaletteSize ( VOID FAR * pv );                 /* パレットのバイト数を計算します */
00426 //  WORD DibNumColors ( VOID FAR * );                   /* 情報ブロックのBitCountメンバを参照して、DIBの色数を判断します */
00427 //  DWORD lread ( int, void*, DWORD );                  /* データをすべて読み取る */
00428 //  void TraceRgn( HRGN );                              /* デバッグ用 リージョン矩形のダンプ */
00429 //  void OnPaintOld( HDC, PAINTSTRUCT *, BOOL );        /* 通常の描画処理 */
00430     void OnPaint( HDC, PAINTSTRUCT *, BOOL );           /* 通常の描画処理 */
00431 //  int DispLine( HDC, int, int, int, const unsigned char*, int, BOOL );/       * 行のテキスト／選択状態の描画 */
00432     int DispLineNew( HDC, const CLayout*, int&, int, int&, BOOL, int, BOOL );   /* 行のテキスト／選択状態の描画 */
00433     void DispLineNumber( HDC, const CLayout*, int, int );       /* 行番号表示 */
00434     void SetCurrentColor( HDC, int );                           /* 現在の色を指定 */
00435     void DispRuler( HDC );                                      /* ルーラー描画 */
00436     void DrawRulerCaret( HDC hdc );                             // ルーラーのキャレットのみ描画 2002.02.25 Add By KK
00437     int DispText( HDC, int, int, const char*, int );    /* テキスト表示 */  //@@@ 2002.09.22 YAZAKI
00438     void DispTextSelected( HDC, int, int, int, int );           /* テキスト反転 */
00439 //  int DispCtrlCode( HDC, int, int, const unsigned char*, int );   /* コントロールコード表示 */
00440     void TwoPointToRect( RECT*, int, int, int, int );           /* 2点を対角とする矩形を求める */
00441     void DrawSelectArea( void );                                /* 指定行の選択領域の描画 */
00442     void DrawSelectAreaLine( HDC, int, int, int, int, int );    /* 指定行の選択領域の描画 */
00443     int  LineColmnToIndex( const CLayout* pcLayout, int nColumn );      /* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */     // @@@ 2002.09.28 YAZAKI
00444     int  LineColmnToIndex( const CDocLine* pcDocLine, int nColumn );        /* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */     // @@@ 2002.09.28 YAZAKI
00445     int  LineColmnToIndex2( const CLayout* pcLayout, int nColumn, int& pnLineAllColLen );   /* 指定された桁に対応する行のデータ内の位置を調べる Ver0 */     // @@@ 2002.09.28 YAZAKI
00446     int  LineIndexToColmn( const CLayout* pcLayout, int nIndex );       /* 指定された行のデータ内の位置に対応する桁の位置を調べる */    // @@@ 2002.09.28 YAZAKI
00447     int  LineIndexToColmn( const CDocLine* pcLayout, int nIndex );      /* 指定された行のデータ内の位置に対応する桁の位置を調べる */    // @@@ 2002.09.28 YAZAKI
00448     void CopySelectedAllLines( const char*, BOOL );             /* 選択範囲内の全行をクリップボードにコピーする */
00449     void ConvSelectedArea( int );                               /* 選択エリアのテキストを指定方法で変換 */
00450     void ConvMemory( CMemory*, int );                           /* 機能種別によるバッファの変換 */
00451     void OnSize( int, int );                                    /* ウィンドウサイズの変更処理 */
00452     int  OnVScroll( int, int );                             /* 垂直スクロールバーメッセージ処理 */
00453     int  OnHScroll( int, int );                             /* 水平スクロールバーメッセージ処理 */
00454     void OnLBUTTONDOWN( WPARAM, int, int );                     /* マウス左ボタン押下 */
00455     void OnMOUSEMOVE( WPARAM, int, int );                       /* マウス移動のメッセージ処理 */
00456     void OnLBUTTONUP( WPARAM, int, int );                       /* マウス左ボタン開放のメッセージ処理 */
00457     void OnLBUTTONDBLCLK( WPARAM, int , int );                  /* マウス左ボタンダブルクリック */
00458     void OnRBUTTONDOWN( WPARAM, int, int );                     /* マウス右ボタン押下 */
00459     void OnRBUTTONUP( WPARAM, int, int );                       /* マウス右ボタン開放 */
00460 // novice 2004/10/11 マウス中ボタン対応
00461     void OnMBUTTONDOWN( WPARAM, int, int );                     /* マウス中ボタン押下 */
00462 // novice 2004/10/10 マウスサイドボタン対応
00463     void OnXLBUTTONDOWN( WPARAM, int, int );                    /* マウス左サイドボタン押下 */
00464     void OnXRBUTTONDOWN( WPARAM, int, int );                    /* マウス右サイドボタン押下 */
00465     LRESULT OnMOUSEWHEEL( WPARAM, LPARAM );                     /* マウスホイールのメッセージ処理 */
00470     void SetSelectArea( int nLineFrom, int nColmFrom, int nLineTo, int nColmTo ){
00471         m_nSelectLineBgnFrom = nLineFrom;
00472         m_nSelectColmBgnFrom = nColmFrom;
00473         m_nSelectLineBgnTo = nLineFrom;
00474         m_nSelectColmBgnTo = nColmFrom;
00475         m_nSelectLineFrom = nLineFrom;
00476         m_nSelectColmFrom = nColmFrom;
00477         m_nSelectLineTo = nLineTo;
00478         m_nSelectColmTo = nColmTo;
00479     }
00480     void BeginSelectArea( void );                               /* 現在のカーソル位置から選択を開始する */
00481     void ChangeSelectAreaByCurrentCursor( int, int );           /* 現在のカーソル位置によって選択範囲を変更 */
00482     void ChangeSelectAreaByCurrentCursorTEST( int, int, int&, int&, int&, int& );/* 現在のカーソル位置によって選択範囲を変更 */
00483     void PrintSelectionInfoMsg(void);       // 選択情報データの作成 2005.07.09 genta
00484     int  MoveCursorToPoint( int, int );                         /* マウス等による座標指定によるカーソル移動 */
00485     int  ScrollAtV( int );                                      /* 指定上端行位置へスクロール */
00486     int  ScrollAtH( int );                                      /* 指定左端桁位置へスクロール */
00487     //  From Here Sep. 11, 2004 genta ずれ維持の同期スクロール
00488     int  ScrollByV( int vl ){   return ScrollAtV( m_nViewTopLine + vl );}           /* 指定行スクロール*/
00489     int  ScrollByH( int hl ){   return ScrollAtH( m_nViewLeftCol + hl );}                   /* 指定桁スクロール */
00490     void SyncScrollV( int );                                    /* 垂直同期スクロール */
00491     void SyncScrollH( int );                                    /* 水平同期スクロール */
00492     //  To Here Sep. 11, 2004 genta ずれ維持の同期スクロール
00493     int Cursor_UPDOWN( int, int );                              /* カーソル上下移動処理 */
00494     void DrawBracketPair( bool );                               /* 対括弧の強調表示 02/09/18 ai */
00495     void SetBracketPairPos( bool );                             /* 対括弧の強調表示位置設定 03/02/18 ai */
00496     int GetColorIndex( HDC, const CLayout*, int );              /* 指定位置のColorIndexの取得 02/12/13 ai */
00497     bool IsBracket( const char*, int, int );                    /* 括弧判定 03/01/09 ai */
00498 public:
00499     void SetIMECompFormPos( void );                             /* IME編集エリアの位置を変更 */
00500 protected:
00501     void SetIMECompFormFont( void );                            /* IME編集エリアの表示フォントを変更 */
00502     void SetParentCaption( void );                              /* 親ウィンドウのタイトルを更新 */  // 2007.03.08 ryoji bKillFocusパラメータを除去
00503 public:
00504     void DrawCaretPosInfo( void );                              /* キャレットの行桁位置を表示する */
00505 protected:
00506     BOOL IsCurrentPositionURL( int, int, int*, int*, int*, char** );/* カーソル位置にURLが有る場合のその範囲を調べる */
00507     int IsCurrentPositionSelected( int, int );                  /* 指定カーソル位置が選択エリア内にあるか */
00508     int IsCurrentPositionSelectedTEST( int, int, int, int, int, int );/* 指定カーソル位置が選択エリア内にあるか */
00509     BOOL IsSearchString( const char*, int, int, int*, int* );   /* 現在位置が検索文字列に該当するか */  //2002.02.08 hor 引数追加
00510     HFONT ChooseFontHandle( BOOL bFat, BOOL bUnderLine );       /* フォントを選ぶ */
00511     void ExecCmd(const char*, const int);                       // 子プロセスの標準出力をリダイレクトする   //2006.12.03 maru 引数の拡張
00512     void AddToCmdArr( const char* );
00513     BOOL ChangeCurRegexp(void);                                 // 2002.01.16 hor 正規表現の検索パターンを必要に応じて更新する(ライブラリが使用できないときはFALSEを返す)
00514     void SendStatusMessage( const char* msg );                  // 2002.01.26 hor 検索／置換／ブックマーク検索時の状態をステータスバーに表示する
00515     void SendStatusMessage2( const char* msg );                 // Jul. 9, 2005 genta
00516 //  以下の二つはつかわなくなりました。 minfu 2002.04.10
00517 //  LRESULT RequestedReconversion( PRECONVERTSTRING pReconv);   /*  IMEからの再変換要求に答える minfu 2002.03.27 */
00518 //  LRESULT RequestedReconversionW( PRECONVERTSTRING pReconv);  /*  IMEからの再変換要求に答える for 95/NT 20020331 aroka */
00519     LRESULT SetReconvertStruct(PRECONVERTSTRING pReconv, bool bUnicode);    /* 再変換用構造体を設定する 2002.04.09 minfu */
00520     LRESULT SetSelectionFromReonvert(PRECONVERTSTRING pReconv, bool bUnicode);              /* 再変換用構造体の情報を元に選択範囲を変更する 2002.04.09 minfu */
00521
00522 public: /* テスト用にアクセス属性を変更 */
00523     /* IDropTarget実装 */
00524     STDMETHODIMP DragEnter( LPDATAOBJECT, DWORD, POINTL, LPDWORD );
00525     STDMETHODIMP DragOver(DWORD, POINTL, LPDWORD );
00526     STDMETHODIMP DragLeave( void );
00527     STDMETHODIMP Drop( LPDATAOBJECT, DWORD, POINTL, LPDWORD );
00528 protected:
00529 //  LPDATAOBJECT    m_pDataObject;
00530 //  REFIID          m_owniid;
00531
00532     /* ファイル操作系 */
00533     void Command_FILENEW( void );               /* 新規作成 */
00534     /* ファイルを開く */
00535     // Oct. 2, 2001 genta マクロ用に機能拡張
00536     // Mar. 30, 2003 genta 引数追加
00537     void Command_FILEOPEN( const char *filename = NULL,
00538         int nCharCode = CODE_AUTODETECT, BOOL bReadOnly = FALSE );
00539
00540     /* 上書き保存 */ // Feb. 28, 2004 genta 引数追加, Jan. 24, 2005 genta 引数追加
00541     BOOL Command_FILESAVE( bool warnbeep = true, bool askname = true );
00542     BOOL Command_FILESAVEAS_DIALOG();           /* 名前を付けて保存 */
00543     BOOL Command_FILESAVEAS( const char *filename );            /* 名前を付けて保存 */
00544     BOOL Command_FILESAVEALL( void );   /* 全て上書き保存 */ // Jan. 23, 2005 genta
00545     void Command_FILECLOSE( void );             /* 開じて(無題) */  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00546     /* 閉じて開く*/
00547     // Mar. 30, 2003 genta 引数追加
00548     void Command_FILECLOSE_OPEN( const char *filename = NULL,
00549         int nCharCode = CODE_AUTODETECT, BOOL bReadOnly = FALSE );
00550
00551     void Command_FILE_REOPEN( int, int );           /* 再オープン */    //Dec. 4, 2002 genta 引数追加
00552 #if 0
00553     2002/04/19 YAZAKI
00554     void Command_FILE_REOPEN_SJIS( void );      /* SJISで開き直す */
00555     void Command_FILE_REOPEN_JIS( void );       /* JISで開き直す */
00556     void Command_FILE_REOPEN_EUC( void );       /* EUCで開き直す */
00557     void Command_FILE_REOPEN_UNICODE( void );   /* Unicodeで開き直す */
00558     void Command_FILE_REOPEN_UTF8( void );      /* UTF-8で開き直す */
00559     void Command_FILE_REOPEN_UTF7( void );      /* UTF-7で開き直す */
00560 #endif
00561     void Command_PRINT( void );                 /* 印刷*/
00562     void Command_PRINT_PREVIEW( void );         /* 印刷プレビュー*/
00563     void Command_PRINT_PAGESETUP( void );       /* 印刷ページ設定 */    //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00564     BOOL Command_OPEN_HfromtoC( BOOL );         /* 同名のC/C++ヘッダ(ソース)を開く */   //Feb. 7, 2001 JEPRO 追加
00565     BOOL Command_OPEN_HHPP( BOOL bCheckOnly, BOOL bBeepWhenMiss );              /* 同名のC/C++ヘッダファイルを開く */   //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00566     BOOL Command_OPEN_CCPP( BOOL bCheckOnly, BOOL bBeepWhenMiss );              /* 同名のC/C++ソースファイルを開く */   //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00567     void Command_ACTIVATE_SQLPLUS( void );      /* Oracle SQL*Plusをアクティブ表示 */
00568     void Command_PLSQL_COMPILE_ON_SQLPLUS( void );/* Oracle SQL*Plusで実行 */
00569     void Command_BROWSE( void );                /* ブラウズ */
00570     void Command_READONLY( void );              /* 読み取り専用 */
00571     void Command_PROPERTY_FILE( void );         /* ファイルのプロパティ */
00572     void Command_EXITALLEDITORS( void );        /* 編集の全終了 */  // 2007.02.13 ryoji 追加
00573     void Command_EXITALL( void );               /* サクラエディタの全終了 */    //Dec. 27, 2000 JEPRO 追加
00574     BOOL Command_PUTFILE( const char*, int, int );  /* 作業中ファイルの一時出力 maru 2006.12.10 */
00575     BOOL Command_INSFILE( const char*, int, int );  /* キャレット位置にファイル挿入 maru 2006.12.10 */
00576
00577     /* 編集系 */
00578     void Command_CHAR( char );              /* 文字入力 */
00579     void Command_IME_CHAR( WORD );          /* 全角文字入力 */
00580     void Command_UNDO( void );              /* 元に戻す(Undo) */
00581     void Command_REDO( void );              /* やり直し(Redo) */
00582     void Command_DELETE( void );            /* カーソル位置または選択エリアを削除 */
00583     void Command_DELETE_BACK( void );       /* カーソル前を削除 */
00584     void Command_WordDeleteToStart( void ); /* 単語の左端まで削除 */
00585     void Command_WordDeleteToEnd( void );   /* 単語の右端まで削除 */
00586     void Command_WordCut( void );           /* 単語切り取り */
00587     void Command_WordDelete( void );        /* 単語削除 */
00588     void Command_LineCutToStart( void );    //行頭まで切り取り(改行単位)
00589     void Command_LineCutToEnd( void );      //行末まで切り取り(改行単位)
00590     void Command_LineDeleteToStart( void ); /* 行頭まで削除(改行単位) */
00591     void Command_LineDeleteToEnd( void );   //行末まで削除(改行単位)
00592     void Command_CUT_LINE( void );          /* 行切り取り(折り返し単位) */
00593     void Command_DELETE_LINE( void );       /* 行削除(折り返し単位) */
00594     void Command_DUPLICATELINE( void );     /* 行の二重化(折り返し単位) */
00595     void Command_INDENT( char cChar );      /* インデント ver 1 */
00596 // From Here 2001.12.03 hor
00597 //  void Command_INDENT( const char*, int );/* インデント ver0 */
00598     void Command_INDENT( const char*, int ,BOOL=FALSE );/* インデント ver0 */
00599     void Command_INDENT_TAB( void );        /* インデント ver 2 */
00600 // To Here 2001.12.03 hor
00601     void Command_UNINDENT( char cChar );    /* 逆インデント */
00602 //  void Command_WORDSREFERENCE( void );    /* 単語リファレンス */
00603     void Command_TRIM(BOOL);                // 2001.12.03 hor
00604     void Command_TRIM2(CMemory*,BOOL);      // 2001.12.03 hor
00605     void Command_SORT(BOOL);                // 2001.12.06 hor
00606     void Command_MERGE(void);               // 2001.12.06 hor
00607     void Command_Reconvert(void);           /* メニューからの再変換対応 minfu 2002.04.09 */
00608     void Command_CtrlCode_Dialog(void);     /* コントロールコードの入力(ダイアログ) */  //@@@ 2002.06.02 MIK
00609
00610     /* 指定位置の指定長データ削除 */
00611     void CEditView::DeleteData2(
00612         int         nCaretX,
00613         int         nCaretY,
00614         int         nDelLen,
00615         CMemory*    pcMem,
00616         COpe*       pcOpe       /* 編集操作要素 COpe */
00617 //      BOOL        bRedraw,
00618 //      BOOL        bRedraw2
00619     );
00620     void DeleteData( BOOL bRedraw );/* 現在位置のデータ削除 */
00621     /* 現在位置にデータを挿入 */
00622     void InsertData_CEditView(
00623         int         nX,
00624         int         nY,
00625         const char* pData,
00626         int         nDataLen,
00627         int*        pnNewLine,          /* 挿入された部分の次の位置の行 */
00628         int*        pnNewPos,           /* 挿入された部分の次の位置のデータ位置 */
00629         COpe*       pcOpe,              /* 編集操作要素 COpe */
00630         BOOL        bRedraw
00631     );
00632     void SmartIndent_CPP( char );   /* C/C++スマートインデント処理 */
00633     void RTrimPrevLine( void );     /* 2005.10.11 ryoji 前の行にある末尾の空白を削除 */
00634
00635     /* カーソル移動系 */
00636     //  Oct. 24, 2001 genta 機能拡張のため引数追加
00637     int Command_UP( int, BOOL, int line = 0 );          /* カーソル上移動 */
00638     int Command_DOWN( int, BOOL );          /* カーソル下移動 */
00639     int  Command_LEFT( int, BOOL );         /* カーソル左移動 */
00640     void Command_RIGHT( int, int, BOOL );   /* カーソル右移動 */
00641     void Command_UP2( int );                /* カーソル上移動（２行づつ） */
00642     void Command_DOWN2( int );              /* カーソル下移動（２行づつ） */
00643     void Command_WORDLEFT( int );           /* 単語の左端に移動 */
00644     void Command_WORDRIGHT( int );          /* 単語の右端に移動 */
00645     //  Oct. 29, 2001 genta マクロ向け機能拡張
00646     void Command_GOLINETOP( int bSelect, int lparam );  /* 行頭に移動（折り返し単位） */
00647     void Command_GOLINEEND( int, int );     /* 行末に移動（折り返し単位） */
00648 //  void Command_ROLLDOWN( int );           /* スクロールダウン */
00649 //  void Command_ROLLUP( int );             /* スクロールアップ */
00650     void Command_HalfPageUp( int );         //半ページアップ    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00651     void Command_HalfPageDown( int );       //半ページダウン    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00652     void Command_1PageUp( int );            //１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00653     void Command_1PageDown( int );          //１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00654     void Command_GOFILETOP( int );          /* ファイルの先頭に移動 */
00655     void Command_GOFILEEND( int );          /* ファイルの最後に移動 */
00656     void Command_CURLINECENTER( void );     /* カーソル行をウィンドウ中央へ */
00657     void Command_JUMPHIST_PREV(void);       // 移動履歴: 前へ
00658     void Command_JUMPHIST_NEXT(void);       // 移動履歴: 次へ
00659     void Command_JUMPHIST_SET(void);        // 現在位置を移動履歴に登録
00660     void Command_WndScrollDown(void);       // テキストを１行下へスクロール // 2001/06/20 asa-o
00661     void Command_WndScrollUp(void);         // テキストを１行上へスクロール // 2001/06/20 asa-o
00662     void Command_GONEXTPARAGRAPH( int bSelect );    // 次の段落へ進む
00663     void Command_GOPREVPARAGRAPH( int bSelect );    // 前の段落へ戻る
00664
00665     /* 選択系 */
00666     bool Command_SELECTWORD( void );        /* 現在位置の単語選択 */
00667     void Command_SELECTALL( void );         /* すべて選択 */
00668     void Command_BEGIN_SELECT( void );      /* 範囲選択開始 */
00669
00670     /* 矩形選択系 */
00671 //  void Command_BOXSELECTALL( void );      /* 矩形ですべて選択 */
00672     void Command_BEGIN_BOXSELECT( void );   /* 矩形範囲選択開始 */
00673     int Command_UP_BOX( BOOL );             /* (矩形選択)カーソル上移動 */
00674 //  int Command_DOWN( int, BOOL );          /* カーソル下移動 */
00675 //  int  Command_LEFT( int, BOOL );         /* カーソル左移動 */
00676 //  void Command_RIGHT( int, int, BOOL );   /* カーソル右移動 */
00677 //  void Command_UP2( int );                /* カーソル上移動（２行づつ） */
00678 //  void Command_DOWN2( int );              /* カーソル下移動（２行づつ） */
00679 //  void Command_WORDLEFT( int );           /* 単語の左端に移動 */
00680 //  void Command_WORDRIGHT( int );          /* 単語の右端に移動 */
00681 //  void Command_GOLINETOP( int, BOOL );    /* 行頭に移動（折り返し単位） */
00682 //  void Command_GOLINEEND( int, int );     /* 行末に移動（折り返し単位） */
00683 //  void Command_HalfPageUp( int );         //半ページアップ    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00684 //  void Command_HalfPageDown( int );       //半ページダウン    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00685 //  void Command_1PageUp( int );            //１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00686 //  void Command_1PageDown( int );          //１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00687 //  void Command_GOFILETOP( int );          /* ファイルの先頭に移動 */
00688 //  void Command_GOFILEEND( int );          /* ファイルの最後に移動 */
00689
00690     /* クリップボード系 */
00691     void Command_CUT( void );                       /* 切り取り（選択範囲をクリップボードにコピーして削除）*/
00692     void Command_COPY( int, BOOL bAddCRLFWhenCopy, enumEOLType neweol = EOL_UNKNOWN );/* コピー(選択範囲をクリップボードにコピー) */
00693     void Command_PASTE( void );                     /* 貼り付け（クリップボードから貼り付け）*/
00694     void Command_PASTEBOX( void );                  /* 矩形貼り付け（クリップボードから矩形貼り付け）*/
00695     //<< 2002/03/29 Azumaiya
00696     /* 矩形貼り付け（引数渡しでの張り付け）*/
00697     void Command_PASTEBOX( const char *szPaste, int nPasteSize );
00698     //>> 2002/03/29 Azumaiya
00699 //  void Command_INSTEXT( BOOL, const char*, int ); /* テキストを貼り付け ver0 */
00700     //void Command_INSTEXT( BOOL, const char*, BOOL );/* テキストを貼り付け ver1 */
00701     void Command_INSTEXT( BOOL, const char*, int, BOOL ); // 2004.05.14 Moca テキストを貼り付け '\0'対応
00702     void Command_ADDTAIL( const char*, int );       /* 最後にテキストを追加 */
00703     void Command_COPYFILENAME( void );              /* このファイル名をクリップボードにコピー */ //2002/2/3 aroka
00704     void Command_COPYPATH( void );                  /* このファイルのパス名をクリップボードにコピー */
00705     void Command_COPYTAG( void );                   /* このファイルのパス名とカーソル位置をコピー */
00706     void Command_COPYLINES( void );                 /* 選択範囲内全行コピー */
00707     void Command_COPYLINESASPASSAGE( void );        /* 選択範囲内全行引用符付きコピー */
00708     void Command_COPYLINESWITHLINENUMBER( void );   /* 選択範囲内全行行番号付きコピー */
00709     void Command_CREATEKEYBINDLIST( void );         // キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO  Command_の作り方がわからないので殺してある
00710
00711
00712     /* データ置換 削除&挿入にも使える */
00713 void ReplaceData_CEditView(
00714     int         nDelLineFrom,       /* 削除範囲行  From レイアウト行番号 */
00715     int         nDelColmFrom,       /* 削除範囲位置From レイアウト行桁位置 */
00716     int         nDelLineTo,         /* 削除範囲行  To   レイアウト行番号 */
00717     int         nDelColmTo,         /* 削除範囲位置To   レイアウト行桁位置 */
00718     CMemory*    pcmemCopyOfDeleted, /* 削除されたデータのコピー(NULL可能) */
00719     const char* pInsData,           /* 挿入するデータ */
00720     int         nInsDataLen,        /* 挿入するデータの長さ */
00721 //  int*        pnAddLineNum,       /* 再描画ヒント レイアウト行の増減 */
00722 //  int*        pnModLineFrom,      /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
00723 //  int*        pnModLineTo,        /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
00724 //  BOOL        bDispSSTRING,       /* シングルクォーテーション文字列を表示する */
00725 //  BOOL        bDispWSTRING,       /* ダブルクォーテーション文字列を表示する */
00726 //  int         nX,
00727 //  int         nY,
00728 //  const char* pData,
00729 //  int         nDataLen,
00730 //  int*        pnNewLine,  /* 挿入された部分の次の位置の行 */
00731 //  int*        pnNewPos,   /* 挿入された部分の次の位置のデータ位置 */
00732 //  COpe*       pcOpe,      /* 編集操作要素 COpe */
00733     BOOL        bRedraw
00734 );
00735
00736     /* 挿入系 */
00737     void Command_INS_DATE( void );  //日付挿入
00738     void Command_INS_TIME( void );  //時刻挿入
00739
00740     /* 変換系 */
00741     void Command_TOLOWER( void );               /* 小文字 */
00742     void Command_TOUPPER( void );               /* 大文字 */
00743     void Command_TOZENKAKUKATA( void );         /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00744     void Command_TOZENKAKUHIRA( void );         /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00745     void Command_TOHANKAKU( void );             /* 全角→半角 */
00746     void Command_TOHANKATA( void );             /* 全角カタカナ→半角カタカナ */    //Aug. 29, 2002 ai
00747     void Command_TOZENEI( void );               /* 半角英数→全角英数 */ //July. 30, 2001 Misaka
00748     void Command_TOHANEI( void );               /* 全角英数→半角英数 */ //@@@ 2002.2.11 YAZAKI
00749     void Command_HANKATATOZENKAKUKATA( void );  /* 半角カタカナ→全角カタカナ */
00750     void Command_HANKATATOZENKAKUHIRA( void );  /* 半角カタカナ→全角ひらがな */
00751     void Command_TABTOSPACE( void );            /* TAB→空白 */
00752     void Command_SPACETOTAB( void );            /* 空白→TAB */  //#### Stonee, 2001/05/27
00753     void Command_CODECNV_AUTO2SJIS( void );     /* 自動判別→SJISコード変換 */
00754     void Command_CODECNV_EMAIL( void );         /* E-Mail(JIS→SJIS)コード変換 */
00755     void Command_CODECNV_EUC2SJIS( void );      /* EUC→SJISコード変換 */
00756     void Command_CODECNV_UNICODE2SJIS( void );  /* Unicode→SJISコード変換 */
00757     void Command_CODECNV_UNICODEBE2SJIS( void );    /* UnicodeBE→SJISコード変換 */
00758     void Command_CODECNV_UTF82SJIS( void );     /* UTF-8→SJISコード変換 */
00759     void Command_CODECNV_UTF72SJIS( void );     /* UTF-7→SJISコード変換 */
00760     void Command_CODECNV_SJIS2JIS( void );      /* SJIS→JISコード変換 */
00761     void Command_CODECNV_SJIS2EUC( void );      /* SJIS→EUCコード変換 */
00762     void Command_CODECNV_SJIS2UTF8( void );     /* SJIS→UTF-8コード変換 */
00763     void Command_CODECNV_SJIS2UTF7( void );     /* SJIS→UTF-7コード変換 */
00764     void Command_BASE64DECODE( void );          /* Base64デコードして保存 */
00765     void Command_UUDECODE( void );              /* uudecodeして保存 */  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00766
00767     /* 検索系 */
00768     void Command_SEARCH_BOX( void );                    /* 検索(ボックス) */    // 2006.06.04 yukihane
00769     void Command_SEARCH_DIALOG( void );                 /* 検索(単語検索ダイアログ) */
00770     void Command_SEARCH_NEXT( bool, BOOL, HWND, const char* );/* 次を検索 */
00771     void Command_SEARCH_PREV( BOOL, HWND );             /* 前を検索 */
00772     void Command_REPLACE_DIALOG( void );                /* 置換(置換ダイアログ) */
00773     void Command_REPLACE( HWND hwndParent );            /* 置換(実行) 2002/04/08 YAZAKI 親ウィンドウを指定するように変更 */
00774     void Command_REPLACE_ALL();                         /* すべて置換(実行) */
00775     void Command_SEARCH_CLEARMARK( void );              /* 検索マークのクリア */
00776     void Command_JUMP_SRCHSTARTPOS( void );             /* 検索開始位置へ戻る */    // 02/06/26 ai
00777
00778     //  Jan. 10, 2005 genta HandleCommandからgrep関連処理を分離
00779     void TranslateCommand_grep( int&, BOOL&, LPARAM&, LPARAM&, LPARAM&, LPARAM& );
00780     void Command_GREP_DIALOG( void );                   /* Grepダイアログの表示 */
00781     void Command_GREP( void );                          /* Grep */
00782     void Command_JUMP_DIALOG( void );                   /* 指定行ヘジャンプダイアログの表示 */
00783     void Command_JUMP( void );                          /* 指定行ヘジャンプ */
00784 // From Here 2001.12.03 hor
00785 //  BOOL Command_FUNCLIST( BOOL );                      /* アウトライン解析 */
00786 //  BOOL Command_FUNCLIST( BOOL ,int=OUTLINE_DEFAULT ); /* アウトライン解析 */
00787     BOOL Command_FUNCLIST( int ,int=OUTLINE_DEFAULT );  /* アウトライン解析 */ // 20060201 aroka
00788 // To Here 2001.12.03 hor
00789     // Apr. 03, 2003 genta 引数追加
00790     bool Command_TAGJUMP( bool bClose = false );        /* タグジャンプ機能 */
00791     void Command_TAGJUMPBACK( void );                   /* タグジャンプバック機能 */
00792     bool Command_TagJumpByTagsFile( void );             //ダイレクトタグジャンプ    //@@@ 2003.04.13 MIK
00793     //@@@ 2003.04.13 MIK, Apr. 21, 2003 genta bClose追加
00794     //  Feb. 17, 2007 genta 相対パスの基準ディレクトリ指示を追加
00795     bool TagJumpSub( const char *pszJumpToFile, int nLine, int nColumn, bool bClose = false, bool bRelFromIni = false );
00796     bool Command_TagsMake( void );                      //タグファイルの作成    //@@@ 2003.04.13 MIK
00797     bool Command_TagJumpByTagsFileKeyword( const char* keyword );   //  @@ 2005.03.31 MIK
00798     void Command_COMPARE( void );                       /* ファイル内容比較 */
00799     void Command_Diff_Dialog( void );                   /* DIFF差分表示ダイアログ */    //@@@ 2002.05.25 MIK
00800     void Command_Diff( const char*, int );  /* DIFF差分表示 */  //@@@ 2002.05.25 MIK    // 2005.10.03 maru
00801     void Command_Diff_Next( void );                     /* 次の差分へ */    //@@@ 2002.05.25 MIK
00802     void Command_Diff_Prev( void );                     /* 前の差分へ */    //@@@ 2002.05.25 MIK
00803     void Command_Diff_Reset( void );                    /* 差分の全解除 */  //@@@ 2002.05.25 MIK
00804     void Command_BRACKETPAIR( void );                   /* 対括弧の検索 */
00805 // From Here 2001.12.03 hor
00806     void Command_BOOKMARK_SET( void );                  /* ブックマーク設定・解除 */
00807     void Command_BOOKMARK_NEXT( void );                 /* 次のブックマークへ */
00808     void Command_BOOKMARK_PREV( void );                 /* 前のブックマークへ */
00809     void Command_BOOKMARK_RESET( void );                /* ブックマークの全解除 */
00810 // To Here 2001.12.03 hor
00811     void Command_BOOKMARK_PATTERN( void );              // 2002.01.16 hor 指定パターンに一致する行をマーク
00812
00813 //2004.10.13 インクリメンタルサーチ関係
00814     void TranslateCommand_isearch( int&, BOOL&, LPARAM&, LPARAM&, LPARAM&, LPARAM& );
00815     bool ProcessCommand_isearch( int, BOOL, LPARAM, LPARAM, LPARAM, LPARAM );
00816
00817     /* モード切り替え系 */
00818     void Command_CHGMOD_INS( void );    /* 挿入／上書きモード切り替え */
00819     void Command_CHGMOD_EOL( enumEOLType ); /* 入力する改行コードを設定 2003.06.23 moca */
00820     void Command_CANCEL_MODE( void );   /* 各種モードの取り消し */
00821
00822     /* 設定系 */
00823     void Command_SHOWTOOLBAR( void );       /* ツールバーの表示/非表示 */
00824     void Command_SHOWFUNCKEY( void );       /* ファンクションキーの表示/非表示 */
00825     void Command_SHOWTAB( void );           /* タブの表示/非表示 */ //@@@ 2003.06.10 MIK
00826     void Command_SHOWSTATUSBAR( void );     /* ステータスバーの表示/非表示 */
00827     void Command_TYPE_LIST( void );         /* タイプ別設定一覧 */
00828     void Command_OPTION_TYPE( void );       /* タイプ別設定 */
00829     void Command_OPTION( void );            /* 共通設定 */
00830     void Command_FONT( void );              /* フォント設定 */
00831     void Command_WRAPWINDOWWIDTH( void );   /* 現在のウィンドウ幅で折り返し */  //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00832     void Command_Favorite( void );  //履歴の管理    //@@@ 2003.04.08 MIK
00833     void Command_SET_QUOTESTRING( const char* );    //  Jan. 29, 2005 genta 引用符の設定
00834
00835     /* マクロ系 */
00836     void Command_RECKEYMACRO( void );   /* キーマクロの記録開始／終了 */
00837     void Command_SAVEKEYMACRO( void );  /* キーマクロの保存 */
00838     void Command_LOADKEYMACRO( void );  /* キーマクロの読み込み */
00839     void Command_EXECKEYMACRO( void );  /* キーマクロの実行 */
00840 //  From Here 2006.12.03 maru 引数の拡張．
00841 //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
00842 //  void Command_EXECCMMAND( void );    /* 外部コマンド実行 */
00843     //  Oct. 9, 2001 genta マクロ対応のため機能拡張
00844 //  void Command_EXECCOMMAND_DIALOG( const char* cmd ); /* 外部コマンド実行ダイアログ表示 */
00845 //  void Command_EXECCOMMAND( const char* cmd );    /* 外部コマンド実行 */
00846     void Command_EXECCOMMAND_DIALOG( void );    /* 外部コマンド実行ダイアログ表示 */    //  引数使ってないみたいなので
00847     //  マクロからの呼び出しではオプションを保存させないため、Command_EXECCOMMAND_DIALOG内で処理しておく．
00848     void Command_EXECCOMMAND( const char* cmd, const int nFlgOpt ); /* 外部コマンド実行 */
00849 //  To Here Sept. 20, 2000
00850 //  To Here 2006.12.03 maru 引数の拡張
00851
00852     /* カスタムメニュー */
00853     void Command_MENU_RBUTTON( void );  /* 右クリックメニュー */
00854     int CreatePopUpMenu_R( void );      /* ポップアップメニュー(右クリック) */
00855     int Command_CUSTMENU( int );        /* カスタムメニュー表示 */
00856
00857     /* ウィンドウ系 */
00858     void Command_SPLIT_V( void );       /* 上下に分割 */    //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00859     void Command_SPLIT_H( void );       /* 左右に分割 */    //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00860     void Command_SPLIT_VH( void );      /* 縦横に分割 */    //Sept. 17, 2000 jepro 説明に「に」を追加
00861     void Command_WINCLOSE( void );      /* ウィンドウを閉じる */
00862     void Command_FILECLOSEALL( void );  /* すべてのウィンドウを閉じる */    //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
00863     void Command_BIND_WINDOW( void );   /* 結合して表示 */  //2004.07.14 Kazika 新規追加
00864     void Command_CASCADE( void );       /* 重ねて表示 */
00865     void Command_TILE_V( void );        /* 上下に並べて表示 */
00866     void Command_TILE_H( void );        /* 左右に並べて表示 */
00867     void Command_MAXIMIZE_V( void );    /* 縦方向に最大化 */
00868     void Command_MAXIMIZE_H( void );    /* 横方向に最大化 */  //2001.02.10 by MIK
00869     void Command_MINIMIZE_ALL( void );  /* すべて最小化 */
00870     void Command_REDRAW( void );        /* 再描画 */
00871     void Command_WIN_OUTPUT( void );    //アウトプットウィンドウ表示
00872     void Command_TRACEOUT( const char* outputstr , int );   //マクロ用アウトプットウィンドウに表示 maru 2006.04.26
00873     void Command_WINTOPMOST( LPARAM );      // 常に手前に表示 2004.09.21 Moca
00874     void Command_WINLIST( int nCommandFrom );       /* ウィンドウ一覧ポップアップ表示処理 */    // 2006.03.23 fon // 2006.05.19 genta 引数追加
00875     void Command_GROUPCLOSE( void );    /* グループを閉じる */      // 2007.06.20 ryoji
00876     void Command_NEXTGROUP( void );     /* 次のグループ */          // 2007.06.20 ryoji
00877     void Command_PREVGROUP( void );     /* 前のグループ */          // 2007.06.20 ryoji
00878     void Command_TAB_MOVERIGHT( void ); /* タブを右に移動 */        // 2007.06.20 ryoji
00879     void Command_TAB_MOVELEFT( void );  /* タブを左に移動 */        // 2007.06.20 ryoji
00880     void Command_TAB_SEPARATE( void );  /* 新規グループ */          // 2007.06.20 ryoji
00881     void Command_TAB_JOINTNEXT( void ); /* 次のグループに移動 */    // 2007.06.20 ryoji
00882     void Command_TAB_JOINTPREV( void ); /* 前のグループに移動 */    // 2007.06.20 ryoji
00883
00884     /* 支援 */
00885     //  Jan. 10, 2005 genta HandleCommandから補完関連処理を分離
00886     void PreprocessCommand_hokan( int nCommand );
00887     void PostprocessCommand_hokan(void);
00888     void Command_ToggleKeySearch( void );   /* キャレット位置の単語を辞書検索する機能ON-OFF */  // 2006.03.24 fon
00889
00890     void ShowHokanMgr( CMemory& cmemData, BOOL bAutoDecided );  //  補完ウィンドウを表示する。Ctrl+Spaceや、文字の入力/削除時に呼び出されます。 YAZAKI 2002/03/11
00891     void Command_HOKAN( void );         /* 入力補完 */
00892     void Command_HELP_CONTENTS( void ); /* ヘルプ目次 */            //Nov. 25, 2000 JEPRO added
00893     void Command_HELP_SEARCH( void );   /* ヘルプキーワード検索 */  //Nov. 25, 2000 JEPRO added
00894     void Command_MENU_ALLFUNC( void );  /* コマンド一覧 */
00895     void Command_EXTHELP1( void );      /* 外部ヘルプ１ */
00896     //  Jul. 5, 2002 genta
00897     void Command_EXTHTMLHELP( const char* helpfile = NULL, const char* kwd = NULL );    /* 外部HTMLヘルプ */
00898     void Command_ABOUT( void );         /* バージョン情報 */    //Dec. 24, 2000 JEPRO 追加
00899
00900     /* その他 */
00901 //@@@ 2002.01.14 YAZAKI 不使用のため
00902 //  void Command_SENDMAIL( void );      /* メール送信 */
00903
00904     //  May 23, 2000 genta
00905     //  画面描画補助関数
00906 //@@@ 2001.12.21 YAZAKI 改行記号の書きかたが変だったので修正
00907 //  void DrawEOL(HDC hdc, HANDLE hPen, int nPosX, int nPosY, int nWidth, int nHeight,
00908 //      CEOL cEol, int bBold );
00909     void DrawEOL(HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight,
00910         CEOL cEol, int bBold, COLORREF pColor );
00911     //タブ矢印描画関数  //@@@ 2003.03.26 MIK
00912     void DrawTabArrow( HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, int bBold, COLORREF pColor );
00913     //  EOF描画関数 //  2004.05.29 genta
00914     int  DispEOF( HDC hdc, int x, int y, int nCharWidth, int nLineHeight, UINT fuOptions, const ColorInfo& EofColInfo );
00916     void DispVerticalLines( HDC, int, int, int, int );
00917
00918     //  Aug. 31, 2000 genta
00919     void AddCurrentLineToHistory(void); //現在行を履歴に追加する
00920
00921     void AnalyzeDiffInfo( const char*, int );   /* DIFF情報の解析 */    //@@@ 2002.05.25 MIK
00922     BOOL MakeDiffTmpFile( char*, HWND );    /* DIFF一時ファイル作成 */  //@@@ 2002.05.28 MIK    //2005.10.29 maru
00923     void ViewDiffInfo( const char*, const char*, int );     /* DIFF差分表示 */      //2005.10.29 maru
00924
00925     BOOL OPEN_ExtFromtoExt( BOOL, BOOL, const char* [], const char* [], int, int, const char* ); // 指定拡張子のファイルに対応するファイルを開く補助関数 // 2003.08.12 Moca
00926
00927 // 2002/07/22 novice
00928     void ShowCaret_( HWND hwnd );
00929     void HideCaret_( HWND hwnd );
00930
00931 private:
00932     UINT    m_uMSIMEReconvertMsg;
00933     UINT    m_uATOKReconvertMsg;
00934     UINT    m_uWM_MSIME_RECONVERTREQUEST;
00935
00936     int     m_nLastReconvLine;             //2002.04.09 minfu 再変換情報保存用;
00937     int     m_nLastReconvIndex;            //2002.04.09 minfu 再変換情報保存用;
00938
00939     //ATOK専用再変換のAPI
00940     HMODULE m_hAtokModule;
00941     BOOL (WINAPI *AT_ImmSetReconvertString)( HIMC , int ,PRECONVERTSTRING , DWORD  );
00942
00943     bool    m_bUnderLineON;
00944     bool    m_bCaretShowFlag;
00945
00946     /* インクリメンタルサーチ */
00947     //2004.10.24 isearch migemo
00948     CMigemo* m_pcmigemo;
00949     void ISearchEnter( int mode  ,int direction);
00950     void ISearchExit();
00951     void ISearchExec(WORD wChar);
00952     void ISearchExec(const char* pszText);
00953     void ISearchExec(bool bNext);
00954     void ISearchBack(void) ;
00955     void ISearchWordMake(void);
00956     void ISearchSetStatusMsg(CMemory* msg) const;
00957     char* m_pszMigemoWord;
00958     int m_nISearchDirection;
00959     int m_nISearchMode;
00960     bool m_bISearchWrap;
00961     int m_nISearchX1History[256];
00962     int m_nISearchY1History[256];
00963     int m_nISearchX2History[256];
00964     int m_nISearchY2History[256];
00965     bool m_bISearchFlagHistory[256];
00966     int m_nISearchHistoryCount;
00967     bool m_bISearchFirst;
00968
00969     // 2007.10.02 nasukoji
00970     bool    m_bActivateByMouse;
00971 };
00972
00973
00974
00976 #endif /* _CEDITVIEW_H_ */
00977
00978
00979 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Cmdgrep.cpp

CEditView_Cmdgrep.cpp

CEditViewクラスのgrep関連コマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CEditApp.h"
#include "charcode.h"

CEditView_Cmdgrep.cppのインクルード依存関係図

ソースコードを見る。

説明

CEditViewクラスのgrep関連コマンド処理系関数群

作者:
genta
日付:
2005/01/10 作成

CEditView_Cmdgrep.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Cmdgrep.cpp ソースファイル

CEditView_Cmdgrep.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, Moca
00010     Copyright (C) 2003, MIK
00011     Copyright (C) 2005, genta
00012     Copyright (C) 2006, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holders to use this code for other purpose.
00016 */
00017 #include "stdafx.h"
00018 #include "sakura_rc.h"
00019 #include "CEditView.h"
00020 #include "CEditDoc.h"
00021 #include "CEditApp.h"
00022 #include "charcode.h"
00023
00027 void CEditView::TranslateCommand_grep(
00028     int&    nCommand,
00029     BOOL&   bRedraw,
00030     LPARAM& lparam1,
00031     LPARAM& lparam2,
00032     LPARAM& lparam3,
00033     LPARAM& lparam4
00034 )
00035 {
00036     if( ! m_pcEditDoc->m_bGrepMode )
00037         return;
00038
00039     if( nCommand == F_CHAR ){
00040         //  Jan. 23, 2005 genta 文字判定忘れ
00041         if(( lparam1 == CR || lparam1 == LF ) &&
00042             m_pShareData->m_Common.m_bGTJW_RETURN ){
00043             nCommand = F_TAGJUMP;
00044             lparam1 = (((SHORT)0x8000 & ::GetKeyState( VK_CONTROL )) != 0 );
00045         }
00046     }
00047 }
00048
00054 void CEditView::Command_GREP_DIALOG( void )
00055 {
00056     CMemory     cmemCurText;
00057
00058     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
00059     GetCurrentTextForSearchDlg( cmemCurText );  // 2006.08.23 ryoji ダイアログ専用関数に変更
00060
00061     /* キーがないなら、履歴からとってくる */
00062     if( 0 == cmemCurText.GetLength() ){
00063 //      cmemCurText.SetData( m_pShareData->m_szSEARCHKEYArr[0], lstrlen( m_pShareData->m_szSEARCHKEYArr[0] ) );
00064         cmemCurText.SetDataSz( m_pShareData->m_szSEARCHKEYArr[0] );
00065     }
00066     strcpy( m_pcEditDoc->m_cDlgGrep.m_szText, cmemCurText.GetPtr() );
00067
00068     /* Grepダイアログの表示 */
00069     int nRet = m_pcEditDoc->m_cDlgGrep.DoModal( m_hInstance, m_hWnd, m_pcEditDoc->GetFilePath() );
00070 //  MYTRACE( "nRet=%d\n", nRet );
00071     if( FALSE == nRet ){
00072         return;
00073     }
00074     HandleCommand(F_GREP, TRUE, 0, 0, 0, 0);    //  GREPコマンドの発行
00075 }
00076
00081 void CEditView::Command_GREP( void )
00082 {
00083     CMemory     cmWork1;
00084     CMemory     cmWork2;
00085     CMemory     cmWork3;
00086     CMemory     cmemCurText;
00087
00088     /* 編集ウィンドウの上限チェック */
00089     if( m_pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){   //最大値修正    //@@@ 2003.05.31 MIK
00090         char szMsg[512];
00091         wsprintf( szMsg, "編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。", MAX_EDITWINDOWS );
00092         ::MessageBox( m_hWnd, szMsg, GSTR_APPNAME, MB_OK );
00093         return;
00094     }
00095     cmWork1.SetDataSz( m_pcEditDoc->m_cDlgGrep.m_szText );
00096     cmWork2.SetDataSz( m_pcEditDoc->m_cDlgGrep.m_szFile );
00097     cmWork3.SetDataSz( m_pcEditDoc->m_cDlgGrep.m_szFolder );
00098
00099     /*  今のEditViewにGrep結果を表示する。
00100         Grepモードのとき。または、変更フラグがオフで、ファイルを読み込んでいない場合。
00101     */
00102     if( m_pcEditDoc->m_bGrepMode ||
00103         ( !m_pcEditDoc->IsModified() &&
00104           !m_pcEditDoc->IsFilePathAvailable() )     /* 現在編集中のファイルのパス */
00105     ){
00106         DoGrep(
00107             &cmWork1,
00108             &cmWork2,
00109             &cmWork3,
00110             m_pcEditDoc->m_cDlgGrep.m_bSubFolder,
00111             m_pcEditDoc->m_cDlgGrep.m_bLoHiCase,
00112             m_pcEditDoc->m_cDlgGrep.m_bRegularExp,
00113             m_pcEditDoc->m_cDlgGrep.m_nGrepCharSet,
00114             m_pcEditDoc->m_cDlgGrep.m_bGrepOutputLine,
00115             m_pcEditDoc->m_cDlgGrep.m_bWordOnly,
00116             m_pcEditDoc->m_cDlgGrep.m_nGrepOutputStyle
00117         );
00118     }else{
00119         /*======= Grepの実行 =============*/
00120         /* Grep結果ウィンドウの表示 */
00121         char*   pCmdLine = new char[1024];
00122         char*   pOpt = new char[64];
00123 //      int     nDataLen;
00124         cmWork1.Replace( "\"", "\"\"" );
00125         cmWork2.Replace( "\"", "\"\"" );
00126         cmWork3.Replace( "\"", "\"\"" );
00127         /*
00128         || -GREPMODE -GKEY="1" -GFILE="*.*;*.c;*.h" -GFOLDER="c:\" -GCODE=0 -GOPT=S
00129         */
00130         wsprintf( pCmdLine, "-GREPMODE -GKEY=\"%s\" -GFILE=\"%s\" -GFOLDER=\"%s\" -GCODE=%d",
00131             cmWork1.GetPtr(),
00132             cmWork2.GetPtr(),
00133             cmWork3.GetPtr(),
00134             m_pcEditDoc->m_cDlgGrep.m_nGrepCharSet
00135         );
00136         pOpt[0] = '\0';
00137         if( m_pcEditDoc->m_cDlgGrep.m_bSubFolder ){ /* サブフォルダからも検索する */
00138             strcat( pOpt, "S" );
00139         }
00140     //  if( m_bFromThisText ){  /* この編集中のテキストから検索する */
00141     //
00142     //  }
00143         if( m_pcEditDoc->m_cDlgGrep.m_bWordOnly ){  /* 単語単位で探す */
00144             strcat( pOpt, "W" );
00145         }
00146         if( m_pcEditDoc->m_cDlgGrep.m_bLoHiCase ){  /* 英大文字と英小文字を区別する */
00147             strcat( pOpt, "L" );
00148         }
00149         if( m_pcEditDoc->m_cDlgGrep.m_bRegularExp ){    /* 正規表現 */
00150             strcat( pOpt, "R" );
00151         }
00152 //  2002/09/20 Moca 文字コードセットオプションに統合
00153 //      if( m_pcEditDoc->m_cDlgGrep.m_KanjiCode_AutoDetect ){   /* 文字コード自動判別 */
00154 //          strcat( pOpt, "K" );
00155 //      }
00156         if( m_pcEditDoc->m_cDlgGrep.m_bGrepOutputLine ){    /* 行を出力するか該当部分だけ出力するか */
00157             strcat( pOpt, "P" );
00158         }
00159         if( 1 == m_pcEditDoc->m_cDlgGrep.m_nGrepOutputStyle ){  /* Grep: 出力形式 */
00160             strcat( pOpt, "1" );
00161         }
00162         if( 2 == m_pcEditDoc->m_cDlgGrep.m_nGrepOutputStyle ){  /* Grep: 出力形式 */
00163             strcat( pOpt, "2" );
00164         }
00165         if( 0 < lstrlen( pOpt ) ){
00166             strcat( pCmdLine, " -GOPT=" );
00167             strcat( pCmdLine, pOpt );
00168         }
00169 //      MYTRACE( "pCmdLine=[%s]\n", pCmdLine );
00170         /* 新規編集ウィンドウの追加 ver 0 */
00171         CEditApp::OpenNewEditor( m_hInstance, m_hWnd, pCmdLine, 0, FALSE );
00172         delete [] pCmdLine;
00173         delete [] pOpt;
00174         /*======= Grepの実行 =============*/
00175         /* Grep結果ウィンドウの表示 */
00176     }
00177     return;
00178 }
00179 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_CmdHokan.cpp

CEditView_CmdHokan.cpp

CEditViewクラスの補完関連コマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "debug.h"
#include "etc_uty.h"
#include "charcode.h"

CEditView_CmdHokan.cppのインクルード依存関係図

ソースコードを見る。

説明

CEditViewクラスの補完関連コマンド処理系関数群

作者:
genta
日付:
2005/01/10 作成

CEditView_CmdHokan.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_CmdHokan.cpp ソースファイル

CEditView_CmdHokan.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, jepro
00010     Copyright (C) 2001, asa-o
00011     Copyright (C) 2003, Moca
00012     Copyright (C) 2004, Moca
00013     Copyright (C) 2005, genta
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holders to use this code for other purpose.
00017 */
00018 #include "stdafx.h"
00019 #include "sakura_rc.h"
00020 #include "CEditView.h"
00021 #include "CEditDoc.h"
00022 #include "debug.h"
00023 #include "etc_uty.h"
00024 #include "charcode.h"  // 2006.06.28 rastiv
00025
00033 void CEditView::PreprocessCommand_hokan( int nCommand )
00034 {
00035     /* 補完ウィンドウが表示されているとき、特別な場合を除いてウィンドウを非表示にする */
00036     if( m_bHokan ){
00037         if( nCommand != F_HOKAN     //  補完開始・終了コマンド
00038          && nCommand != F_CHAR      //  文字入力
00039          && nCommand != F_IME_CHAR  //  漢字入力
00040          ){
00041             m_pcEditDoc->m_cHokanMgr.Hide();
00042             m_bHokan = FALSE;
00043         }
00044     }
00045 }
00046
00053 void CEditView::PostprocessCommand_hokan(void)
00054 {
00055     if( m_pShareData->m_Common.m_bUseHokan
00056      && FALSE == m_bExecutingKeyMacro   /* キーボードマクロの実行中 */
00057     ){
00058         CMemory cmemData;
00059
00060         /* カーソル直前の単語を取得 */
00061         if( 0 < GetLeftWord( &cmemData, 100 ) ){
00062             ShowHokanMgr( cmemData, FALSE );
00063         }else{
00064             if( m_bHokan ){
00065                 m_pcEditDoc->m_cHokanMgr.Hide();
00066                 m_bHokan = FALSE;
00067             }
00068         }
00069     }
00070 }
00071
00080 void CEditView::ShowHokanMgr( CMemory& cmemData, BOOL bAutoDecided )
00081 {
00082     /* 補完対象ワードリストを調べる */
00083     CMemory     cmemHokanWord;
00084     int         nKouhoNum;
00085     POINT       poWin;
00086     /* 補完ウィンドウの表示位置を算出 */
00087     poWin.x = m_nViewAlignLeft
00088              + (m_nCaretPosX - m_nViewLeftCol)
00089               * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
00090     poWin.y = m_nViewAlignTop
00091              + (m_nCaretPosY - m_nViewTopLine)
00092               * ( m_pcEditDoc->GetDocumentAttribute().m_nLineSpace + m_nCharHeight );
00093     ::ClientToScreen( m_hWnd, &poWin );
00094     poWin.x -= (
00095         cmemData.GetLength()
00096          * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace )
00097     );
00098
00099     /*  補完ウィンドウを表示
00100         ただし、bAutoDecided == TRUEの場合は、補完候補が1つのときは、ウィンドウを表示しない。
00101         詳しくは、Search()の説明を参照のこと。
00102     */
00103     CMemory* pcmemHokanWord;
00104     if ( bAutoDecided ){
00105         pcmemHokanWord = &cmemHokanWord;
00106     }
00107     else {
00108         pcmemHokanWord = NULL;
00109     }
00110     nKouhoNum = m_pcEditDoc->m_cHokanMgr.Search(
00111         &poWin,
00112         m_nCharHeight,
00113         m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace,
00114         cmemData.GetPtr(),
00115         m_pcEditDoc->GetDocumentAttribute().m_szHokanFile,
00116         m_pcEditDoc->GetDocumentAttribute().m_bHokanLoHiCase,
00117         m_pcEditDoc->GetDocumentAttribute().m_bUseHokanByFile, // 2003.06.22 Moca
00118         pcmemHokanWord
00119     );
00120     /* 補完候補の数によって動作を変える */
00121     if (nKouhoNum <= 0) {               //  候補無し
00122         if( m_bHokan ){
00123             m_pcEditDoc->m_cHokanMgr.Hide();
00124             m_bHokan = FALSE;
00125             // 2003.06.25 Moca 失敗してたら、ビープ音を出して補完終了。
00126             ::MessageBeep( MB_ICONHAND );
00127         }
00128     }
00129     else if( bAutoDecided && nKouhoNum == 1){ //    候補1つのみ→確定。
00130         if( m_bHokan ){
00131             m_pcEditDoc->m_cHokanMgr.Hide();
00132             m_bHokan = FALSE;
00133         }
00134         // 2004.05.14 Moca CHokanMgr::Search側で改行を削除するようにし、直接書き換えるのをやめた
00135 //      pszKouhoWord = cmemHokanWord.GetPtr( &nKouhoWordLen );
00136 //      pszKouhoWord[nKouhoWordLen] = '\0';
00137         Command_WordDeleteToStart();
00138         Command_INSTEXT( TRUE, cmemHokanWord.GetPtr(), cmemHokanWord.GetLength(), TRUE );
00139     }
00140     else {
00141         m_bHokan = TRUE;
00142     }
00143
00144     //  補完終了。
00145     if ( !m_bHokan ){
00146         m_pShareData->m_Common.m_bUseHokan = FALSE; //  入力補完終了の知らせ
00147     }
00148 }
00149
00150
00163 void CEditView::Command_HOKAN( void )
00164 {
00165     if (m_pShareData->m_Common.m_bUseHokan == FALSE){
00166         m_pShareData->m_Common.m_bUseHokan = TRUE;
00167     }
00168 retry:;
00169     /* 補完候補一覧ファイルが設定されていないときは、設定するように促す。 */
00170     // 2003.06.22 Moca ファイル内から検索する場合には補完ファイルの設定は必須ではない
00171     if( m_pcEditDoc->GetDocumentAttribute().m_bUseHokanByFile == FALSE &&
00172         0 == lstrlen( m_pcEditDoc->GetDocumentAttribute().m_szHokanFile
00173     ) ){
00174         ::MessageBeep( MB_ICONHAND );
00175         if( IDYES == ::MYMESSAGEBOX( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME,
00176             "補完候補一覧ファイルが設定されていません。\n今すぐ設定しますか?"
00177         ) ){
00178             /* タイプ別設定 プロパティシート */
00179             if( !m_pcEditDoc->OpenPropertySheetTypes( 2, m_pcEditDoc->GetDocumentType() ) ){
00180                 return;
00181             }
00182             goto retry;
00183         }
00184     }
00185
00186     CMemory     cmemData;
00187     /* カーソル直前の単語を取得 */
00188     if( 0 < GetLeftWord( &cmemData, 100 ) ){
00189         ShowHokanMgr( cmemData, TRUE );
00190     }else{
00191         ::MessageBeep( MB_ICONHAND );
00192         m_pShareData->m_Common.m_bUseHokan = FALSE; //  入力補完終了のお知らせ
00193     }
00194     return;
00195 }
00196
00208 int CEditView::HokanSearchByFile(
00209         const char* pszKey,
00210         BOOL        bHokanLoHiCase,
00211         CMemory**   ppcmemKouho,
00212         int         nKouhoNum,
00213         int         nMaxKouho
00214 ){
00215     const int nKeyLen = lstrlen( pszKey );
00216     int nLines = m_pcEditDoc->m_cDocLineMgr.GetLineCount();
00217     int i, j, nWordLen, nLineLen, nRet;
00218     int nCurX, nCurY; // 物理カーソル位置
00219     const char* pszLine;
00220     const char* word;
00221     char *pszWork;
00222     nCurX = m_nCaretPosX_PHY;
00223     nCurY = m_nCaretPosY_PHY;
00224
00225     for( i = 0; i < nLines; i++  ){
00226         pszLine = m_pcEditDoc->m_cDocLineMgr.GetLineStrWithoutEOL( i, &nLineLen );
00227         for( j = 0; j < nLineLen; j++ ){
00228             if( IS_KEYWORD_CHAR( (unsigned char)(pszLine[j]) ) ){
00229                 word = pszLine + j;
00230                 for( j++, nWordLen = 1;j < nLineLen && IS_KEYWORD_CHAR( (unsigned char)(pszLine[j]) ); j++ ){
00231                     nWordLen++;
00232                 }
00233                 if( nWordLen > 1020 ){ // CDicMgr等の制限により長すぎる単語は無視する
00234                     continue;
00235                 }
00236                 if( nKeyLen <= nWordLen ){
00237                     if( bHokanLoHiCase ){
00238                         nRet = memicmp( pszKey, word, nKeyLen );
00239                     }else{
00240                         nRet = memcmp( pszKey, word, nKeyLen );
00241                     }
00242                     if( 0 == nRet ){
00243                         // カーソル位置の単語は候補からはずす
00244                         if( nCurY == i && nCurX <= j && j - nWordLen <= nCurX ){
00245                             continue;
00246                         }
00247                         if( NULL == *ppcmemKouho ){
00248                             *ppcmemKouho = new CMemory;
00249                             (*ppcmemKouho)->SetData( word, nWordLen );
00250                             (*ppcmemKouho)->AppendSz( "\n" );
00251                             ++nKouhoNum;
00252                         }else{
00253                             // 重複していたら追加しない
00254                             int nLen;
00255                             const char* ptr = (*ppcmemKouho)->GetPtr( &nLen );
00256                             int nPosKouho;
00257                             nRet = 1;
00258                             if( bHokanLoHiCase ){
00259                                 if( nWordLen < nLen ){
00260                                     if( '\n' == ptr[nWordLen] && 0 == memicmp( ptr, word, nWordLen )  ){
00261                                         nRet = 0;
00262                                     }else{
00263                                         int nPosKouhoMax = nLen - nWordLen - 1;
00264                                         for( nPosKouho = 1; nPosKouho < nPosKouhoMax; nPosKouho++ ){
00265                                             if( ptr[nPosKouho] == '\n' ){
00266                                                 if( ptr[nPosKouho + nWordLen + 1] == '\n' ){
00267                                                     if( 0 == memicmp( &ptr[nPosKouho + 1], word, nWordLen) ){
00268                                                         nRet = 0;
00269                                                         break;
00270                                                     }else{
00271                                                         nPosKouho += nWordLen;
00272                                                     }
00273                                                 }
00274                                             }
00275                                         }
00276                                     }
00277                                 }
00278                             }else{
00279                                 if( nWordLen < nLen ){
00280                                     if( '\n' == ptr[nWordLen] && 0 == memcmp( ptr, word, nWordLen )  ){
00281                                         nRet = 0;
00282                                     }else{
00283                                         int nPosKouhoMax = nLen - nWordLen - 1;
00284                                         for( nPosKouho = 1; nPosKouho < nPosKouhoMax; nPosKouho++ ){
00285                                             if( ptr[nPosKouho] == '\n' ){
00286                                                 if( ptr[nPosKouho + nWordLen + 1] == '\n' ){
00287                                                     if( 0 == memcmp( &ptr[nPosKouho + 1], word, nWordLen) ){
00288                                                         nRet = 0;
00289                                                         break;
00290                                                     }else{
00291                                                         nPosKouho += nWordLen;
00292                                                     }
00293                                                 }
00294                                             }
00295                                         }
00296                                     }
00297                                 }
00298                             }
00299                             if( 0 == nRet ){
00300                                 continue;
00301                             }
00302                             pszWork = new char[nWordLen + 1];
00303                             memcpy( pszWork, word, nWordLen );
00304                             pszWork[nWordLen] = '\n';
00305                             (*ppcmemKouho)->Append( pszWork, nWordLen + 1 );
00306                             ++nKouhoNum;
00307                         }
00308                         if( 0 != nMaxKouho && nMaxKouho <= nKouhoNum ){
00309                             return nKouhoNum;
00310                         }
00311                     }
00312                 }
00313             }else if( _IS_SJIS_1( (unsigned char)pszLine[j] ) ){
00314                 j++;
00315                 continue;
00316             }
00317         }
00318     }
00319     return nKouhoNum;
00320 }
00321 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Cmdisrch.cpp

CEditView_Cmdisrch.cpp

CEditViewクラスのインクリメンタルサーチ関連コマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "CDocLine.h"
#include "CMigemo.h"
#include "etc_uty.h"

CEditView_Cmdisrch.cppのインクルード依存関係図

ソースコードを見る。

説明

CEditViewクラスのインクリメンタルサーチ関連コマンド処理系関数群

作者:
genta
日付:
2005/01/10 作成

CEditView_Cmdisrch.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Cmdisrch.cpp ソースファイル

CEditView_Cmdisrch.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2004, isearch
00009     Copyright (C) 2005, genta, Moca
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holders to use this code for other purpose.
00013 */
00014 #include "stdafx.h"
00015 #include "sakura_rc.h"
00016 #include "CEditView.h"
00017 #include "CEditDoc.h"
00018 #include "CDocLine.h"
00019 #include "CMigemo.h"
00020 #include "etc_uty.h"
00021
00035 void CEditView::TranslateCommand_isearch(
00036     int&    nCommand,
00037     BOOL&   bRedraw,
00038     LPARAM& lparam1,
00039     LPARAM& lparam2,
00040     LPARAM& lparam3,
00041     LPARAM& lparam4
00042 )
00043 {
00044     if (m_nISearchMode <= 0 )
00045         return;
00046
00047     switch (nCommand){
00048         //これらの機能のとき、インクリメンタルサーチに入る
00049         case F_ISEARCH_NEXT:
00050         case F_ISEARCH_PREV:
00051         case F_ISEARCH_REGEXP_NEXT:
00052         case F_ISEARCH_REGEXP_PREV:
00053         case F_ISEARCH_MIGEMO_NEXT:
00054         case F_ISEARCH_MIGEMO_PREV:
00055             break;
00056
00057         //以下の機能のとき、インクリメンタルサーチ中は検索文字入力として処理
00058         case F_CHAR:
00059         case F_IME_CHAR:
00060             nCommand = F_ISEARCH_ADD_CHAR;
00061             break;
00062         case F_INSTEXT:
00063             nCommand = F_ISEARCH_ADD_STR;
00064             break;
00065
00066         case F_INDENT_TAB:  // TABはインデントではなく単なるTAB文字と見なす
00067         case F_UNINDENT_TAB:    // genta追加
00068             nCommand = F_ISEARCH_ADD_CHAR;
00069             lparam1 = '\t';
00070             break;
00071         case F_INDENT_SPACE:    // スペースはインデントではなく単なるTAB文字と見なす
00072         case F_UNINDENT_SPACE:  // genta追加
00073             nCommand = F_ISEARCH_ADD_CHAR;
00074             lparam1 = ' ';
00075             break;
00076         case F_DELETE_BACK:
00077             nCommand = F_ISEARCH_DEL_BACK;
00078             break;
00079
00080         default:
00081             //上記以外のコマンドの場合はインクリメンタルサーチを抜ける
00082             ISearchExit();
00083     }
00084 }
00085
00091 bool CEditView::ProcessCommand_isearch(
00092     int nCommand,
00093     BOOL    bRedraw,
00094     LPARAM  lparam1,
00095     LPARAM  lparam2,
00096     LPARAM  lparam3,
00097     LPARAM  lparam4
00098 )
00099 {
00100     switch( nCommand ){
00101         //  検索文字列の変更操作
00102         case F_ISEARCH_ADD_CHAR:
00103             ISearchExec((WORD)lparam1);
00104             return true;
00105
00106         case F_ISEARCH_DEL_BACK:
00107             ISearchBack();
00108             return true;
00109
00110         case F_ISEARCH_ADD_STR:
00111             ISearchExec((const char*)lparam1);
00112             return true;
00113
00114         //  検索モードへの移行
00115         case F_ISEARCH_NEXT:
00116             ISearchEnter(1,1);  //前方インクリメンタルサーチ //2004.10.13 isearch
00117             return true;
00118         case F_ISEARCH_PREV:
00119             ISearchEnter(1,0);  //後方インクリメンタルサーチ //2004.10.13 isearch
00120             return true;
00121         case F_ISEARCH_REGEXP_NEXT:
00122             ISearchEnter(2,1);  //前方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00123             return true;
00124         case F_ISEARCH_REGEXP_PREV:
00125             ISearchEnter(2,0);  //後方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00126             return true;
00127         case F_ISEARCH_MIGEMO_NEXT:
00128             ISearchEnter(3,1);  //前方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00129             return true;
00130         case F_ISEARCH_MIGEMO_PREV:
00131             ISearchEnter(3,0);  //後方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00132             return true;
00133     }
00134     return false;
00135 }
00136
00145 void CEditView::ISearchEnter( int mode  ,int direction)
00146 {
00147
00148     if (m_nISearchMode == mode ) {
00149         //再実行
00150         m_nISearchDirection =  direction;
00151
00152         if ( m_bISearchFirst ){
00153             m_bISearchFirst = false;
00154         }
00155         //ちょっと修正
00156         ISearchExec(true);
00157
00158     }else{
00159         //インクリメンタルサーチモードに入るだけ.
00160         //選択範囲の解除
00161         if(IsTextSelected())
00162             DisableSelectArea( TRUE );
00163
00164         if(m_pcmigemo==NULL){
00165             m_pcmigemo = CMigemo::getInstance();
00166             m_pcmigemo->Init();
00167         }
00168         switch( mode ) {
00169             case 1: // 通常インクリメンタルサーチ
00170                 m_bCurSrchRegularExp = FALSE;
00171                 m_pShareData->m_Common.m_bRegularExp = FALSE;
00172                 //SendStatusMessage("I-Search: ");
00173                 break;
00174             case 2: // 正規表現インクリメンタルサーチ
00175                 if (!m_CurRegexp.IsAvailable()){
00176                     MessageBeep(MB_ICONEXCLAMATION);
00177                     SendStatusMessage("BREGREP.DLLが使用できません。");
00178                     return;
00179                 }
00180                 m_bCurSrchRegularExp = TRUE;
00181                 m_pShareData->m_Common.m_bRegularExp = TRUE;
00182                 //SendStatusMessage("[RegExp] I-Search: ");
00183                 break;
00184             case 3: // MIGEMOインクリメンタルサーチ
00185                 if (!m_CurRegexp.IsAvailable()){
00186                     MessageBeep(MB_ICONEXCLAMATION);
00187                     SendStatusMessage("BREGREP.DLLが使用できません。");
00188                     return;
00189                 }
00190                 //migemo dll チェック
00191                 //  Jan. 10, 2005 genta 設定変更で使えるようになっている
00192                 //  可能性があるので，使用可能でなければ一応初期化を試みる
00193                 if ( ! m_pcmigemo->IsAvailable() && ! m_pcmigemo->Init() ){
00194                     MessageBeep(MB_ICONEXCLAMATION);
00195                     SendStatusMessage("MIGEMO.DLLが使用できません。");
00196                     return;
00197                 }
00198                 m_pcmigemo->migemo_load_all();
00199                 if (m_pcmigemo->migemo_is_enable()) {
00200                     m_bCurSrchRegularExp = TRUE;
00201                     m_pShareData->m_Common.m_bRegularExp = TRUE;
00202                     //SendStatusMessage("[MIGEMO] I-Search: ");
00203                 }else{
00204                     MessageBeep(MB_ICONEXCLAMATION);
00205                     SendStatusMessage("MIGEMOは使用できません。 ");
00206                     return;
00207                 }
00208                 break;
00209         }
00210
00211         //  Feb. 04, 2005 genta 検索開始位置を記録
00212         //  インクリメンタルサーチ間でモードを切り替える場合には開始と見なさない
00213         if( m_nISearchMode == 0 ){
00214             m_nSrchStartPosX_PHY = m_nCaretPosX_PHY;
00215             m_nSrchStartPosY_PHY = m_nCaretPosY_PHY;
00216         }
00217
00218         //m_szCurSrchKey[0] = '\0';
00219         m_bCurSrchKeyMark = FALSE;
00220         m_nISearchDirection = direction;
00221         m_nISearchMode = mode;
00222
00223         m_nISearchHistoryCount = 0;
00224         m_nISearchX1History[m_nISearchHistoryCount] = m_nCaretPosX;
00225         m_nISearchY1History[m_nISearchHistoryCount] = m_nCaretPosY;
00226         m_nISearchX2History[m_nISearchHistoryCount] = m_nCaretPosX;
00227         m_nISearchY2History[m_nISearchHistoryCount] = m_nCaretPosY;
00228
00229         Redraw();
00230
00231         CMemory msg;
00232         ISearchSetStatusMsg(&msg);
00233         SendStatusMessage(msg.GetPtr());
00234
00235         m_bISearchWrap = false;
00236         m_bISearchFirst = true;
00237     }
00238
00239     //マウスカーソル変更
00240     if (direction == 1){
00241         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_F)));
00242     }else{
00243         ::SetCursor( ::LoadCursor( m_hInstance,MAKEINTRESOURCE(IDC_CURSOR_ISEARCH_B)));
00244     }
00245 }
00246
00248 void CEditView::ISearchExit()
00249 {
00250     CShareData::getInstance()->AddToSearchKeyArr( m_szCurSrchKey );
00251     m_nISearchDirection = 0;
00252     m_nISearchMode = 0;
00253
00254     if (m_nISearchHistoryCount == 0){
00255         m_szCurSrchKey[0] = '\0';
00256     }
00257
00258     //マウスカーソルを元に戻す
00259     POINT point1;
00260     GetCursorPos(&point1);
00261     OnMOUSEMOVE(0,point1.x,point1.y);
00262
00263     //ステータス表示エリアをクリア
00264     SendStatusMessage("");
00265
00266 }
00267
00273 void CEditView::ISearchExec(WORD wChar)
00274 {
00275     //特殊文字は処理しない
00276     switch ( wChar){
00277         case '\r':
00278         case '\n':
00279             ISearchExit();
00280             return;
00281         //case '\t':
00282         //  break;
00283     }
00284
00285     int l;
00286     if (m_bISearchFirst){
00287         m_bISearchFirst = false;
00288         l = 0 ;
00289     }else
00290         l = strlen(m_szCurSrchKey) ;
00291
00292     if (wChar <= 255 ) {
00293         if ( l < sizeof(m_szCurSrchKey) - 1) {
00294             m_szCurSrchKey[l] =(char)wChar;
00295             m_szCurSrchKey[l+1] = '\0';
00296         }
00297     }else{
00298         if ( l < sizeof(m_szCurSrchKey) - 2) {
00299             m_szCurSrchKey[l]   =(char)(wChar>>8);
00300             m_szCurSrchKey[l+1] =(char)wChar;
00301             m_szCurSrchKey[l+2] = '\0';
00302         }
00303     }
00304
00305     ISearchExec(false);
00306     return ;
00307 }
00308
00314 void CEditView::ISearchExec(const char* pszText)
00315 {
00316     //一文字ずつ分解して実行
00317
00318     const char* p;
00319     WORD  c;
00320     p = pszText;
00321
00322     while(*p!='\0'){
00323         if (IsDBCSLeadByte(*p)){
00324             c =( ((WORD)*p) * 256) | (unsigned char)*(p+1);
00325             p++;
00326         }else
00327             c =*p;
00328         ISearchExec(c);
00329         p++;
00330     }
00331     return ;
00332 }
00333
00339 void CEditView::ISearchExec(bool bNext)
00340 {
00341     //検索を実行する.
00342     int nLineFrom, nColmFrom, nColmTo, nLineTo;
00343
00344     if ( (m_szCurSrchKey[0] == '\0') || (m_nISearchMode == 0)){
00345         //ステータスの表示
00346         CMemory msg;
00347         ISearchSetStatusMsg(&msg);
00348         SendStatusMessage(msg.GetPtr());
00349         return ;
00350     }
00351
00352     ISearchWordMake();
00353
00354     int nLine, nIdx,nIdx1;
00355
00356     if ( bNext && m_bISearchWrap ) {
00357         switch (m_nISearchDirection)
00358         {
00359         case 1:
00360             nLine = 0;
00361             nIdx1 = 0;
00362             break;
00363         case 0:
00364             //最後から検索
00365             int nLineP, nIdxP;
00366             nLineP =  m_pcEditDoc->m_cDocLineMgr.GetLineCount() -1 ;
00367             CDocLine* pDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( nLineP );
00368             nIdxP = pDocLine->GetLength() -1;
00369             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(nIdxP,nLineP,&nIdx1,&nLine);
00370         }
00371     }else if (IsTextSelected()){
00372         switch( m_nISearchDirection * 2 + (bNext ? 1: 0)){
00373             case 2 : //前方検索で現在位置から検索のとき
00374             case 1 : //後方検索で次を検索のとき
00375                 //選択範囲の先頭を検索開始位置に
00376                 nLine = m_nSelectLineFrom;
00377                 nIdx1 = m_nSelectColmFrom;
00378                 break;
00379             case 0 : //前方検索で次を検索
00380             case 3 : //後方検索で現在位置から検索
00381                 //選択範囲の後ろから
00382                 nLine = m_nSelectLineTo;
00383                 nIdx1 = m_nSelectColmTo;
00384                 break;
00385         }
00386     }else{
00387         nLine = m_nCaretPosY;
00388         nIdx1  = m_nCaretPosX;
00389     }
00390
00391     //桁位置からindexに変換
00392     CLayout* pCLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLine );
00393     nIdx = LineColmnToIndex( pCLayout, nIdx1 );
00394
00395     m_nISearchHistoryCount ++ ;
00396
00397     CMemory msg;
00398     ISearchSetStatusMsg(&msg);
00399
00400     if (m_nISearchHistoryCount >= 256) {
00401         m_nISearchHistoryCount = 156;
00402         for(int i = 100 ; i<= 255 ; i++){
00403             m_bISearchFlagHistory[i-100] = m_bISearchFlagHistory[i];
00404             m_nISearchX1History[i-100] = m_nISearchX1History[i] ;
00405             m_nISearchY1History[i-100] = m_nISearchY1History[i] ;
00406             m_nISearchX2History[i-100] = m_nISearchX2History[i] ;
00407             m_nISearchY2History[i-100] = m_nISearchY2History[i] ;
00408         }
00409     }
00410     m_bISearchFlagHistory[m_nISearchHistoryCount] = bNext;
00411
00412     if (m_pcEditDoc->m_cLayoutMgr.SearchWord(
00413         nLine,                                  /* 検索開始行 */
00414         nIdx,                                   /* 検索開始位置 */
00415         m_szCurSrchKey,                         /* 検索条件 */
00416         m_nISearchDirection,                    /* 0==前方検索 1==後方検索 */
00417         m_bCurSrchRegularExp,                   /* 1==正規表現 */
00418         FALSE,                                  /* 1==英大文字小文字の区別 */
00419         FALSE,                                  /* 1==単語のみ検索 */
00420         &nLineFrom,                             /* マッチレイアウト行from */
00421         &nColmFrom,                             /* マッチレイアウト位置from */
00422         &nLineTo,                               /* マッチレイアウト行to */
00423         &nColmTo,                               /* マッチレイアウト位置to */
00424         &m_CurRegexp    ) == 0 )
00425     {
00426         /*検索結果がない*/
00427         msg.AppendSz(" (見つかりません)");
00428         SendStatusMessage(msg.GetPtr());
00429
00430         if (bNext)  m_bISearchWrap = true;
00431         if (IsTextSelected()){
00432             m_nISearchX1History[m_nISearchHistoryCount] = m_nSelectColmFrom;
00433             m_nISearchY1History[m_nISearchHistoryCount] = m_nSelectLineFrom;
00434             m_nISearchX2History[m_nISearchHistoryCount] = m_nSelectColmTo;
00435             m_nISearchY2History[m_nISearchHistoryCount] = m_nSelectLineTo;
00436         }else{
00437             m_nISearchX1History[m_nISearchHistoryCount] = m_nCaretPosX;
00438             m_nISearchY1History[m_nISearchHistoryCount] = m_nCaretPosY;
00439             m_nISearchX2History[m_nISearchHistoryCount] = m_nCaretPosX;
00440             m_nISearchY2History[m_nISearchHistoryCount] = m_nCaretPosY;
00441         }
00442     }else{
00443         //検索結果あり
00444         //キャレット移動
00445         MoveCursor( nColmFrom, nLineFrom , TRUE, _CARETMARGINRATE / 3 );
00446         //  2005.06.24 Moca
00447         SetSelectArea( nLineFrom, nColmFrom, nLineTo, nColmTo );
00448
00449         m_bISearchWrap = false;
00450         m_nISearchX1History[m_nISearchHistoryCount] = nColmFrom;
00451         m_nISearchY1History[m_nISearchHistoryCount] = nLineFrom;
00452         m_nISearchX2History[m_nISearchHistoryCount] = nColmTo;
00453         m_nISearchY2History[m_nISearchHistoryCount] = nLineTo;
00454
00455     }
00456
00457     m_bCurSrchKeyMark = TRUE;
00458
00459     Redraw();
00460     SendStatusMessage(msg.GetPtr());
00461     return ;
00462 }
00463
00465 void CEditView::ISearchBack(void) {
00466     if(m_nISearchHistoryCount==0) return;
00467
00468     if(m_nISearchHistoryCount==1){
00469         m_bCurSrchKeyMark = FALSE;
00470         m_bISearchFirst = true;
00471     }else if( m_bISearchFlagHistory[m_nISearchHistoryCount] == false){
00472         //検索文字をへらす
00473         long l = strlen(m_szCurSrchKey);
00474         if (l > 0 ){
00475             //最後の文字の一つ前
00476             char* p = CharPrev(m_szCurSrchKey,&m_szCurSrchKey[l]);
00477             *p = '\0';
00478             //m_szCurSrchKey[l-1] = '\0';
00479
00480             if ( (p - m_szCurSrchKey) > 0 )
00481                 ISearchWordMake();
00482             else
00483                 m_bCurSrchKeyMark = FALSE;
00484
00485         }else{
00486             MessageBeep(MB_ICONEXCLAMATION);
00487         }
00488     }
00489     m_nISearchHistoryCount --;
00490     int nLineFrom, nColmFrom, nColmTo, nLineTo;
00491     nColmFrom = m_nISearchX1History[m_nISearchHistoryCount];
00492     nLineFrom = m_nISearchY1History[m_nISearchHistoryCount];
00493     nColmTo   = m_nISearchX2History[m_nISearchHistoryCount];
00494     nLineTo   = m_nISearchY2History[m_nISearchHistoryCount];
00495
00496     if(m_nISearchHistoryCount == 0){
00497         DisableSelectArea( TRUE );
00498         nColmTo = nColmFrom;
00499     }
00500
00501     MoveCursor( nColmFrom , nLineFrom , TRUE, _CARETMARGINRATE / 3 );
00502     if(m_nISearchHistoryCount != 0){
00503         //  2005.06.24 Moca
00504         SetSelectArea( nLineFrom, nColmFrom, nLineTo, nColmTo );
00505     }
00506
00507     Redraw();
00508
00509     //ステータス表示
00510     CMemory msg;
00511     ISearchSetStatusMsg(&msg);
00512     SendStatusMessage(msg.GetPtr());
00513
00514 }
00515
00517 void CEditView::ISearchWordMake(void) {
00518     int nFlag = 0x00;
00519     switch ( m_nISearchMode ) {
00520         case 1: // 通常インクリメンタルサーチ
00521             break;
00522         case 2: // 正規表現インクリメンタルサーチ
00523             if( !InitRegexp( m_hWnd, m_CurRegexp, true ) ){
00524                 return ;
00525             }
00526             nFlag |= m_bCurSrchLoHiCase ? 0x01 : 0x00;
00527             /* 検索パターンのコンパイル */
00528             m_CurRegexp.Compile(m_szCurSrchKey , nFlag );
00529             break;
00530         case 3: // MIGEMOインクリメンタルサーチ
00531             if( !InitRegexp( m_hWnd, m_CurRegexp, true ) ){
00532                 return ;
00533             }
00534             nFlag |= m_bCurSrchLoHiCase ? 0x01 : 0x00;
00535
00536             //migemoで捜す
00537             m_pszMigemoWord = (char*)m_pcmigemo->migemo_query((unsigned char*)m_szCurSrchKey);
00538
00539             /* 検索パターンのコンパイル */
00540             m_CurRegexp.Compile(m_pszMigemoWord , nFlag );
00541
00542             m_pcmigemo->migemo_release((unsigned char*)m_pszMigemoWord);
00543             break;
00544
00545     }
00546 }
00547
00559 void CEditView::ISearchSetStatusMsg(CMemory* msg) const
00560 {
00561
00562     switch ( m_nISearchMode){
00563         case 1 :
00564             msg->SetDataSz("I-Search" );
00565             break;
00566         case 2 :
00567             msg->SetDataSz("[RegExp] I-Search" );
00568             break;
00569         case 3 :
00570             msg->SetDataSz("[Migemo] I-Search" );
00571             break;
00572         default:
00573             msg->SetDataSz("");
00574             return;
00575     }
00576     if (m_nISearchDirection == 0){
00577         msg->AppendSz(" Backward: ");
00578     }else{
00579         msg->AppendSz(": ");
00580     }
00581     if(m_nISearchHistoryCount > 0)
00582         msg->AppendSz(m_szCurSrchKey);
00583 }
00584
00595 bool CEditView::IsISearchEnabled(int nCommand) const
00596 {
00597     switch( nCommand )
00598     {
00599     case F_ISEARCH_NEXT:
00600         return m_nISearchMode == 1 && m_nISearchDirection == 1;
00601     case F_ISEARCH_PREV:
00602         return m_nISearchMode == 1 && m_nISearchDirection == 0;
00603     case F_ISEARCH_REGEXP_NEXT:
00604         return m_nISearchMode == 2 && m_nISearchDirection == 1;
00605     case F_ISEARCH_REGEXP_PREV:
00606         return m_nISearchMode == 2 && m_nISearchDirection == 0;
00607     case F_ISEARCH_MIGEMO_NEXT:
00608         return m_nISearchMode == 3 && m_nISearchDirection == 1;
00609     case F_ISEARCH_MIGEMO_PREV:
00610         return m_nISearchMode == 3 && m_nISearchDirection == 0;
00611     }
00612     return false;
00613 }
00614 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Command.cpp

CEditView_Command.cpp

CEditViewクラスのコマンド処理系関数群 [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <io.h>
#include <mbstring.h>
#include "sakura_rc.h"
#include "CEditView.h"
#include "debug.h"
#include "funccode.h"
#include "CRunningTimer.h"
#include "charcode.h"
#include "CEditApp.h"
#include "CWaitCursor.h"
#include "CSplitterWnd.h"
#include "CSMacroMgr.h"
#include "etc_uty.h"
#include "CDlgTypeList.h"
#include "CDlgProperty.h"
#include "CDlgCompare.h"
#include "global.h"
#include <htmlhelp.h>
#include "CDlgExec.h"
#include "CDlgAbout.h"
#include "COpe.h"
#include "COpeBlk.h"
#include "CLayout.h"
#include "CEditWnd.h"
#include "CFuncInfoArr.h"
#include "CMarkMgr.h"
#include "CDocLine.h"
#include "mymessage.h"
#include "CDlgCancel.h"
#include "CPrintPreview.h"
#include "CMemoryIterator.h"
#include "CDlgTagJumpList.h"
#include "CDlgTagsMake.h"
#include "COsVersionInfo.h"
#include "my_icmp.h"

CEditView_Command.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define CTAGS_COMMAND "ctags.exe"

説明

CEditViewクラスのコマンド処理系関数群

作者:
Norio Nakatani
日付:
1998/07/17 作成

CEditView_Command.cpp で定義されています。

マクロ定義

#define CTAGS_COMMAND "ctags.exe"

Sakura-Editorに対してSat Oct 27 02:17:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Command.cpp ソースファイル

CEditView_Command.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, jepro, genta, みつ
00010     Copyright (C) 2001, MIK, Stonee, Misaka, asa-o, novice, hor, YAZAKI
00011     Copyright (C) 2002, hor, YAZAKI, novice, genta, aroka, Azumaiya, minfu, MIK, oak, すなふき, Moca, ai
00012     Copyright (C) 2003, MIK, genta, かろと, zenryaku, Moca, ryoji, naoh, KEITA, じゅうじ
00013     Copyright (C) 2004, isearch, Moca, gis_dur, genta, crayonzen, fotomo, MIK, novice, みちばな, Kazika
00014     Copyright (C) 2005, genta, novice, かろと, MIK, Moca, D.S.Koba, aroka, ryoji, maru
00015     Copyright (C) 2006, genta, aroka, ryoji, かろと, fon, yukihane, Moca
00016     Copyright (C) 2007, ryoji, maru
00017
00018     This source code is designed for sakura editor.
00019     Please contact the copyright holders to use this code for other purpose.
00020 */
00021
00022 #include "stdafx.h"
00023 #include <stdlib.h>
00024 #include <io.h>
00025 #include <mbstring.h>
00026 #include "sakura_rc.h"
00027 #include "CEditView.h"
00028 #include "debug.h"
00029 #include "funccode.h"
00030 #include "CRunningTimer.h"
00031 #include "charcode.h"
00032 #include "CEditApp.h"
00033 #include "CWaitCursor.h"
00034 #include "CSplitterWnd.h"
00035 //@@@ 2002.2.2 YAZAKI マクロはCSMacroMgrに統一
00036 #include "CSMacroMgr.h"
00037 #include "etc_uty.h"
00038 #include "CDlgTypeList.h"
00039 #include "CDlgProperty.h"
00040 #include "CDlgCompare.h"
00041 #include "global.h"
00042 #include <htmlhelp.h>
00043 #include "CRunningtimer.h"
00044 #include "CDlgExec.h"
00045 #include "CDlgAbout.h"  //Dec. 24, 2000 JEPRO 追加
00046 #include "COpe.h"
00047 #include "COpeBlk.h"
00048 #include "CLayout.h"
00049 #include "CEditWnd.h"
00050 #include "CFuncInfoArr.h"
00051 #include "CMarkMgr.h"
00052 #include "CDocLine.h"
00053 #include "CSMacroMgr.h"
00054 #include "mymessage.h"
00055 #include "CDlgCancel.h"// 2002/2/8 hor
00056 #include "CPrintPreview.h"
00057 #include "CMemoryIterator.h"    // @@@ 2002.09.28 YAZAKI
00058 #include "CDlgCancel.h"
00059 #include "CDlgTagJumpList.h"
00060 #include "CDlgTagsMake.h"   //@@@ 2003.05.12 MIK
00061 #include "COsVersionInfo.h"
00062 #include "my_icmp.h"
00063
00064 /* コマンドコードによる処理振り分け */
00065 BOOL CEditView::HandleCommand(
00066     int     nCommand,
00067     BOOL    bRedraw,
00068     LPARAM  lparam1,
00069     LPARAM  lparam2,
00070     LPARAM  lparam3,
00071     LPARAM  lparam4
00072 )
00073 {
00074     BOOL    bRet = TRUE;
00075     BOOL    bRepeat = FALSE;
00076     int     nFuncID;
00077
00078     //  May. 19, 2006 genta 上位16bitに送信元の識別子が入るように変更したので
00079     //  下位16ビットのみを取り出す
00080     int nCommandFrom = HIWORD( nCommand );
00081     nCommand = LOWORD( nCommand );
00082
00083     //  Oct. 30, 2004 genta
00084     //  漢字の上下バイトが１つのWM_IME_CHARではなく別々のWM_CHARにて来る
00085     //  ケースの取り扱いを処理先頭に移動．
00086     //  * マクロで分離して記録されないように
00087     //  * トラップした場合に2バイト目に反応してしまうのを防ぐ
00088     //  From Here Oct. 5, 2002 genta
00089     //  WM_CHARでくる漢字コードを受け入れる
00090     if( nCommand == F_CHAR ){
00091         // 厳密にはCEditViewのメンバーにすべきだが分離メッセージの救済はこれでも十分
00092         static unsigned int ucSjis1 = 0;
00093         if( ucSjis1 == 0 ){
00094             if( _IS_SJIS_1( (unsigned char)lparam1 )){
00095                 ucSjis1 = lparam1;
00096                 return TRUE;
00097             }
00098         }
00099         else {
00100             //  一文字前にSJISの1バイト目が来ている
00101             if( _IS_SJIS_2( (unsigned char)lparam1 )){
00102                 lparam1 = (ucSjis1 << 8 | lparam1 );
00103                 nCommand = F_IME_CHAR;
00104             }
00105             ucSjis1 = 0;
00106         }
00107     }
00108     //  To Here Oct. 5, 2002 genta
00109
00110     // -------------------------------------
00111     //  Jan. 10, 2005 genta
00112     //  Call message translators
00113     // -------------------------------------
00114     TranslateCommand_grep( nCommand, bRedraw, lparam1, lparam2, lparam3, lparam4 );
00115     TranslateCommand_isearch( nCommand, bRedraw, lparam1, lparam2, lparam3, lparam4 );
00116
00117     //  Aug, 14. 2000 genta
00118     if( m_pcEditDoc->IsModificationForbidden( nCommand ) ){
00119         return TRUE;
00120     }
00121
00122 //  if( 0 == m_pcEditDoc->m_nCommandExecNum ){
00123 //      ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME, "一回目のコマンド" );
00124 //  }
00125     ++m_pcEditDoc->m_nCommandExecNum;       /* コマンド実行回数 */
00126 //  if( nCommand != F_COPY ){
00127         /* 辞書Tipを消す */
00128         m_cTipWnd.Hide();
00129         m_dwTipTimer = ::GetTickCount();    /* 辞書Tip起動タイマー */
00130 //  }
00131     /* 印刷プレビューモードか */
00132 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00133 //  if( TRUE == m_pcEditDoc->m_bPrintPreviewMode &&
00134     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
00135     if( pCEditWnd->m_pPrintPreview &&
00136         F_PRINT_PREVIEW != nCommand
00137     ){
00138         ::MessageBeep( MB_ICONHAND );
00139         return -1;
00140     }
00141     /* キーリピート状態 */
00142     if( m_bPrevCommand == nCommand ){
00143         bRepeat = TRUE;
00144     }
00145     m_bPrevCommand = nCommand;
00146     if( m_pShareData->m_bRecordingKeyMacro &&                                   /* キーボードマクロの記録中 */
00147         m_pShareData->m_hwndRecordingKeyMacro == ::GetParent( m_hwndParent )    /* キーボードマクロを記録中のウィンドウ */
00148     ){
00149         /* キーリピート状態をなくする */
00150         bRepeat = FALSE;
00151         /* キーマクロに記録可能な機能かどうかを調べる */
00152         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00153         if( CSMacroMgr::CanFuncIsKeyMacro( nCommand ) ){
00154             /* キーマクロのバッファにデータ追加 */
00155             //@@@ 2002.1.24 m_CKeyMacroMgrをCEditDocへ移動
00156             m_pcEditDoc->m_pcSMacroMgr->Append( STAND_KEYMACRO, nCommand, lparam1, this );
00157         }
00158     }
00159     /* キーボードマクロの実行中 */
00160     if( m_bExecutingKeyMacro ){
00161         /* キーリピート状態をなくする */
00162         bRepeat = FALSE;
00163     }
00164
00165     //  From Here Sep. 29, 2001 genta マクロの実行機能追加
00166     if( F_USERMACRO_0 <= nCommand && nCommand < F_USERMACRO_0 + MAX_CUSTMACRO ){
00167         m_bExecutingKeyMacro = TRUE;
00168         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一（インターフェースの変更）
00169         if( !m_pcEditDoc->m_pcSMacroMgr->Exec( nCommand - F_USERMACRO_0, m_hInstance, this )){
00170             ::MYMESSAGEBOX( m_hwndParent,   MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00171                 "マクロ %d (%s) の実行に失敗しました。", nCommand - F_USERMACRO_0,
00172                 m_pcEditDoc->m_pcSMacroMgr->GetFile( nCommand - F_USERMACRO_0 )
00173             );
00174         }
00175         m_bExecutingKeyMacro = FALSE;
00176         return TRUE;
00177     }
00178     //  To Here Sep. 29, 2001 genta マクロの実行機能追加
00179
00180     // -------------------------------------
00181     //  Jan. 10, 2005 genta
00182     //  Call mode basis message handler
00183     // -------------------------------------
00184     PreprocessCommand_hokan(nCommand);
00185     if( ProcessCommand_isearch( nCommand, bRedraw, lparam1, lparam2, lparam3, lparam4 ))
00186         return TRUE;
00187
00188     // -------------------------------------
00189     //  Jan. 10, 2005 genta コメント
00190     //  ここより前ではUndoバッファの準備ができていないので
00191     //  文書の操作を行ってはいけない
00192     //@@@ 2002.2.2 YAZAKI HandleCommand内でHandleCommandを呼び出せない問題に対処（何か副作用がある？）
00193     if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00194
00195     }
00196     else {
00197         m_pcOpeBlk = new COpeBlk;
00198     }
00199
00200     //  Jan. 10, 2005 genta コメント
00201     //  ここより後ではswitchの後ろでUndoを正しく登録するため，
00202     //  途中で処理の打ち切りを行ってはいけない
00203     // -------------------------------------
00204
00205
00206 //  if( !m_pcEditDoc->m_bDebugMode ){
00207 //      char*       szCommandName[256];
00208 //      /* デバッグモニタに出力 */
00209 //      if( 0 < ::LoadString( m_hInstance, nCommand, (LPTSTR)szCommandName, sizeof( szCommandName ) ) ){
00210 //          m_cShareData.TraceOut( "nCommand=%d %s\n", nCommand, szCommandName );
00211 //      }else{
00212 //          m_cShareData.TraceOut( "nCommand=%d [nknown]\n", nCommand );
00213 //      }
00214 //  }
00215
00216     switch( nCommand ){
00217     case F_CHAR:    /* 文字入力 */
00218         /* コントロールコード入力禁止 */
00219         if(
00220             ( ( (unsigned char)0x0 <= (unsigned char)lparam1 && (unsigned char)lparam1 <= (unsigned char)0x1F ) ||
00221               ( (unsigned char)'~' <  (unsigned char)lparam1 && (unsigned char)lparam1 <  (unsigned char)'｡'  ) ||
00222               ( (unsigned char)'ﾟ' <  (unsigned char)lparam1 && (unsigned char)lparam1 <= (unsigned char)0xff )
00223             ) &&
00224             (unsigned char)lparam1 != TAB && (unsigned char)lparam1 != CR && (unsigned char)lparam1 != LF
00225         ){
00226             ::MessageBeep( MB_ICONHAND );
00227         }else{
00228             Command_CHAR( (char)lparam1 );
00229         }
00230         break;
00231
00232     /* ファイル操作系 */
00233     case F_FILENEW:     Command_FILENEW();break;            /* 新規作成 */
00234     //  Oct. 2, 2001 genta マクロ用機能拡張
00235     case F_FILEOPEN:    Command_FILEOPEN((const char*)lparam1);break;           /* ファイルを開く */
00236     case F_FILEOPEN_DROPDOWN:   Command_FILEOPEN((const char*)lparam1);break;           /* ファイルを開く(ドロップダウン) */    //@@@ 2002.06.15 MIK
00237     case F_FILESAVE:    bRet = Command_FILESAVE();break;    /* 上書き保存 */
00238     case F_FILESAVEAS_DIALOG:   bRet = Command_FILESAVEAS_DIALOG();break;   /* 名前を付けて保存 */
00239     case F_FILESAVEAS:  bRet = Command_FILESAVEAS((const char*)lparam1);break;  /* 名前を付けて保存 */
00240     case F_FILESAVEALL: bRet = Command_FILESAVEALL();break; /* 全ての編集ウィンドウで上書き保存 */ // Jan. 23, 2005 genta
00241     case F_FILESAVE_QUIET:  bRet = Command_FILESAVE(false,false); break;    /* 静かに上書き保存 */ // Jan. 24, 2005 genta
00242     case F_FILESAVECLOSE:
00243         //  Feb. 28, 2004 genta 保存＆閉じる
00244         //  保存が不要なら単に閉じる
00245         if( Command_FILESAVE( false, true )){
00246             Command_WINCLOSE();
00247         }
00248         break;
00249     case F_FILECLOSE:                                       //閉じて(無題)  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00250         Command_FILECLOSE();
00251         break;
00252     case F_FILECLOSE_OPEN:  /* 閉じて開く */
00253         Command_FILECLOSE_OPEN();
00254         break;
00255     case F_FILE_REOPEN:         Command_FILE_REOPEN( m_pcEditDoc->m_nCharCode, lparam1 );break;//   Dec. 4, 2002 genta
00256     case F_FILE_REOPEN_SJIS:    Command_FILE_REOPEN( CODE_SJIS, lparam1 );break;        //SJISで開き直す
00257     case F_FILE_REOPEN_JIS:     Command_FILE_REOPEN( CODE_JIS, lparam1 );break;     //JISで開き直す
00258     case F_FILE_REOPEN_EUC:     Command_FILE_REOPEN( CODE_EUC, lparam1 );break;     //EUCで開き直す
00259     case F_FILE_REOPEN_UNICODE: Command_FILE_REOPEN( CODE_UNICODE, lparam1 );break; //Unicodeで開き直す
00260     case F_FILE_REOPEN_UNICODEBE:   Command_FILE_REOPEN( CODE_UNICODEBE, lparam1 );break;   //UnicodeBEで開き直す
00261     case F_FILE_REOPEN_UTF8:    Command_FILE_REOPEN( CODE_UTF8, lparam1 );break;        //UTF-8で開き直す
00262     case F_FILE_REOPEN_UTF7:    Command_FILE_REOPEN( CODE_UTF7, lparam1 );break;        //UTF-7で開き直す
00263     case F_PRINT:               Command_PRINT();break;                  /* 印刷 */
00264     case F_PRINT_PREVIEW:       Command_PRINT_PREVIEW();break;          /* 印刷プレビュー */
00265     case F_PRINT_PAGESETUP:     Command_PRINT_PAGESETUP();break;        /* 印刷ページ設定 */    //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00266     case F_OPEN_HfromtoC:       bRet = Command_OPEN_HfromtoC( (BOOL)lparam1 );break;    /* 同名のC/C++ヘッダ(ソース)を開く */   //Feb. 7, 2001 JEPRO 追加
00267     case F_OPEN_HHPP:           bRet = Command_OPEN_HHPP( (BOOL)lparam1, TRUE );break;      /* 同名のC/C++ヘッダファイルを開く */   //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00268     case F_OPEN_CCPP:           bRet = Command_OPEN_CCPP( (BOOL)lparam1, TRUE );break;      /* 同名のC/C++ソースファイルを開く */   //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00269     case F_ACTIVATE_SQLPLUS:    Command_ACTIVATE_SQLPLUS();break;       /* Oracle SQL*Plusをアクティブ表示 */
00270     case F_PLSQL_COMPILE_ON_SQLPLUS:                                    /* Oracle SQL*Plusで実行 */
00271         Command_PLSQL_COMPILE_ON_SQLPLUS();
00272         break;
00273     case F_BROWSE:              Command_BROWSE();break;             /* ブラウズ */
00274     case F_READONLY:            Command_READONLY();break;           /* 読み取り専用 */
00275     case F_PROPERTY_FILE:       Command_PROPERTY_FILE();break;      /* ファイルのプロパティ */
00276     case F_EXITALLEDITORS:      Command_EXITALLEDITORS();break;     /* 編集の全終了 */  // 2007.02.13 ryoji 追加
00277     case F_EXITALL:             Command_EXITALL();break;            /* サクラエディタの全終了 */    //Dec. 26, 2000 JEPRO 追加
00278     case F_PUTFILE:             Command_PUTFILE((const char*)lparam1, (int)lparam2, (int)lparam3);break;    /* 作業中ファイルの一時出力 */ //maru 2006.12.10
00279     case F_INSFILE:             Command_INSFILE((const char*)lparam1, (int)lparam2, (int)lparam3);break;    /* キャレット位置にファイル挿入 */ //maru 2006.12.10
00280
00281     /* 編集系 */
00282     case F_UNDO:                Command_UNDO();break;               /* 元に戻す(Undo) */
00283     case F_REDO:                Command_REDO();break;               /* やり直し(Redo) */
00284     case F_DELETE:              Command_DELETE(); break;            //削除
00285     case F_DELETE_BACK:         Command_DELETE_BACK(); break;       //カーソル前を削除
00286     case F_WordDeleteToStart:   Command_WordDeleteToStart(); break; //単語の左端まで削除
00287     case F_WordDeleteToEnd:     Command_WordDeleteToEnd(); break;   //単語の右端まで削除
00288     case F_WordDelete:          Command_WordDelete(); break;        //単語削除
00289     case F_WordCut:             Command_WordCut(); break;           //単語切り取り
00290     case F_LineCutToStart:      Command_LineCutToStart(); break;    //行頭まで切り取り(改行単位)
00291     case F_LineCutToEnd:        Command_LineCutToEnd(); break;      //行末まで切り取り(改行単位)
00292     case F_LineDeleteToStart:   Command_LineDeleteToStart(); break; //行頭まで削除(改行単位)
00293     case F_LineDeleteToEnd:     Command_LineDeleteToEnd(); break;   //行末まで削除(改行単位)
00294     case F_CUT_LINE:            Command_CUT_LINE();break;           //行切り取り(折り返し単位)
00295     case F_DELETE_LINE:         Command_DELETE_LINE();break;        //行削除(折り返し単位)
00296     case F_DUPLICATELINE:       Command_DUPLICATELINE();break;      //行の二重化(折り返し単位)
00297 // From Here 2001.12.03 hor
00298     case F_INDENT_TAB:          Command_INDENT_TAB();break;         //TABインデント
00299 //  case F_INDENT_TAB:                                              //TABインデント
00300 //      /* テキストが２行以上にまたがって選択されているか */
00301 //      if( IsTextSelected() &&
00302 //          0 != ( m_nSelectLineFrom - m_nSelectLineTo )
00303 //      ){
00304 //          Command_INDENT( TAB );
00305 //      }else{
00306 //          /* １バイト文字入力 */
00307 //          Command_CHAR( (char)TAB );
00308 //      }
00309 //      break;
00310 // To Here 2001.12.03 hor
00311     case F_UNINDENT_TAB:        Command_UNINDENT( TAB );break;      //逆TABインデント
00312     case F_INDENT_SPACE:                                            //SPACEインデント
00313         /* テキストが２行以上にまたがって選択されているか */
00314         if( IsTextSelected() &&
00315             0 != ( m_nSelectLineFrom - m_nSelectLineTo )
00316         ){
00317             Command_INDENT( SPACE );
00318         }else{
00319             /* １バイト文字入力 */
00320             Command_CHAR( (char)' ' );
00321         }
00322         break;
00323     case F_UNINDENT_SPACE:          Command_UNINDENT( SPACE );break;    //逆SPACEインデント
00324 //  case F_WORDSREFERENCE:          Command_WORDSREFERENCE();break;     /* 単語リファレンス */
00325     case F_LTRIM:                   Command_TRIM(TRUE);break;           // 2001.12.03 hor
00326     case F_RTRIM:                   Command_TRIM(FALSE);break;          // 2001.12.03 hor
00327     case F_SORT_ASC:                Command_SORT(TRUE);break;           // 2001.12.06 hor
00328     case F_SORT_DESC:               Command_SORT(FALSE);break;          // 2001.12.06 hor
00329     case F_MERGE:                   Command_MERGE();break;              // 2001.12.06 hor
00330     case F_RECONVERT:               Command_Reconvert();break;          /* メニューからの再変換対応 minfu 2002.04.09 */
00331
00332     /* カーソル移動系 */
00333     case F_IME_CHAR:        Command_IME_CHAR( (WORD)lparam1 ); break;                   //全角文字入力
00334     case F_UP:              Command_UP( m_bSelectingLock, bRepeat ); break;             //カーソル上移動
00335     case F_DOWN:            Command_DOWN( m_bSelectingLock, bRepeat ); break;           //カーソル下移動
00336     case F_LEFT:            Command_LEFT( m_bSelectingLock, bRepeat ); break;           //カーソル左移動
00337     case F_RIGHT:           Command_RIGHT( m_bSelectingLock, FALSE, bRepeat ); break;   //カーソル右移動
00338     case F_UP2:             Command_UP2( m_bSelectingLock ); break;                     //カーソル上移動(２行づつ)
00339     case F_DOWN2:           Command_DOWN2( m_bSelectingLock ); break;                   //カーソル下移動(２行づつ)
00340     case F_WORDLEFT:        Command_WORDLEFT( m_bSelectingLock ); break;                /* 単語の左端に移動 */
00341     case F_WORDRIGHT:       Command_WORDRIGHT( m_bSelectingLock ); break;               /* 単語の右端に移動 */
00342     //  0ct. 29, 2001 genta マクロ向け機能拡張
00343     case F_GOLINETOP:       Command_GOLINETOP( m_bSelectingLock, lparam1  ); break;     //行頭に移動(折り返し単位)
00344     case F_GOLINEEND:       Command_GOLINEEND( m_bSelectingLock, FALSE ); break;        //行末に移動(折り返し単位)
00345 //  case F_ROLLDOWN:        Command_ROLLDOWN( m_bSelectingLock ); break;                //スクロールダウン
00346 //  case F_ROLLUP:          Command_ROLLUP( m_bSelectingLock ); break;                  //スクロールアップ
00347     case F_HalfPageUp:      Command_HalfPageUp( m_bSelectingLock ); break;              //半ページアップ    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00348     case F_HalfPageDown:    Command_HalfPageDown( m_bSelectingLock ); break;            //半ページダウン    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00349     case F_1PageUp:         Command_1PageUp( m_bSelectingLock ); break;                 //１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00350     case F_1PageDown:       Command_1PageDown( m_bSelectingLock ); break;               //１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00351     case F_GOFILETOP:       Command_GOFILETOP( m_bSelectingLock ); break;               //ファイルの先頭に移動
00352     case F_GOFILEEND:       Command_GOFILEEND( m_bSelectingLock ); break;               //ファイルの最後に移動
00353     case F_CURLINECENTER:   Command_CURLINECENTER(); break;                             /* カーソル行をウィンドウ中央へ */
00354     case F_JUMPHIST_PREV:   Command_JUMPHIST_PREV(); break;                             //移動履歴: 前へ
00355     case F_JUMPHIST_NEXT:   Command_JUMPHIST_NEXT(); break;                             //移動履歴: 次へ
00356     case F_JUMPHIST_SET:    Command_JUMPHIST_SET(); break;                              //現在位置を移動履歴に登録
00357     case F_WndScrollDown:   Command_WndScrollDown(); break;                             //テキストを１行下へスクロール  // 2001/06/20 asa-o
00358     case F_WndScrollUp:     Command_WndScrollUp(); break;                               //テキストを１行上へスクロール  // 2001/06/20 asa-o
00359     case F_GONEXTPARAGRAPH: Command_GONEXTPARAGRAPH( m_bSelectingLock ); break;         //次の段落へ進む
00360     case F_GOPREVPARAGRAPH: Command_GOPREVPARAGRAPH( m_bSelectingLock ); break;         //前の段落へ戻る
00361
00362     /* 選択系 */
00363     case F_SELECTWORD:      Command_SELECTWORD( );break;                    //現在位置の単語選択
00364     case F_SELECTALL:       Command_SELECTALL();break;                      //すべて選択
00365     case F_BEGIN_SEL:       Command_BEGIN_SELECT();break;                   /* 範囲選択開始 */
00366     case F_UP_SEL:          Command_UP( TRUE, bRepeat, lparam1 ); break;    //(範囲選択)カーソル上移動
00367     case F_DOWN_SEL:        Command_DOWN( TRUE, bRepeat ); break;           //(範囲選択)カーソル下移動
00368     case F_LEFT_SEL:        Command_LEFT( TRUE, bRepeat ); break;           //(範囲選択)カーソル左移動
00369     case F_RIGHT_SEL:       Command_RIGHT( TRUE, FALSE, bRepeat ); break;   //(範囲選択)カーソル右移動
00370     case F_UP2_SEL:         Command_UP2( TRUE ); break;                     //(範囲選択)カーソル上移動(２行ごと)
00371     case F_DOWN2_SEL:       Command_DOWN2( TRUE );break;                    //(範囲選択)カーソル下移動(２行ごと)
00372     case F_WORDLEFT_SEL:    Command_WORDLEFT( TRUE );break;                 //(範囲選択)単語の左端に移動
00373     case F_WORDRIGHT_SEL:   Command_WORDRIGHT( TRUE );break;                //(範囲選択)単語の右端に移動
00374     case F_GOLINETOP_SEL:   Command_GOLINETOP( TRUE, 0 );break;             //(範囲選択)行頭に移動(折り返し単位)
00375     case F_GOLINEEND_SEL:   Command_GOLINEEND( TRUE, FALSE );break;         //(範囲選択)行末に移動(折り返し単位)
00376 //  case F_ROLLDOWN_SEL:    Command_ROLLDOWN( TRUE ); break;                //(範囲選択)スクロールダウン
00377 //  case F_ROLLUP_SEL:      Command_ROLLUP( TRUE ); break;                  //(範囲選択)スクロールアップ
00378     case F_HalfPageUp_Sel:  Command_HalfPageUp( TRUE ); break;              //(範囲選択)半ページアップ
00379     case F_HalfPageDown_Sel:Command_HalfPageDown( TRUE ); break;            //(範囲選択)半ページダウン
00380     case F_1PageUp_Sel:     Command_1PageUp( TRUE ); break;                 //(範囲選択)１ページアップ
00381     case F_1PageDown_Sel:   Command_1PageDown( TRUE ); break;               //(範囲選択)１ページダウン
00382     case F_GOFILETOP_SEL:   Command_GOFILETOP( TRUE );break;                //(範囲選択)ファイルの先頭に移動
00383     case F_GOFILEEND_SEL:   Command_GOFILEEND( TRUE );break;                //(範囲選択)ファイルの最後に移動
00384     case F_GONEXTPARAGRAPH_SEL: Command_GONEXTPARAGRAPH( TRUE ); break;         //次の段落へ進む
00385     case F_GOPREVPARAGRAPH_SEL: Command_GOPREVPARAGRAPH( TRUE ); break;         //前の段落へ戻る
00386
00387     /* 矩形選択系 */
00388 //  case F_BOXSELALL:       Command_BOXSELECTALL();break;       //矩形ですべて選択
00389     case F_BEGIN_BOX:       Command_BEGIN_BOXSELECT();break;    /* 矩形範囲選択開始 */
00390 //  case F_UP_BOX:          Command_UP_BOX( bRepeat ); break;           //(矩形選択)カーソル上移動
00391 //  case F_DOWN_BOX:        Command_DOWN( TRUE, bRepeat ); break;       //(矩形選択)カーソル下移動
00392 //  case F_LEFT_BOX:        Command_LEFT( TRUE, bRepeat ); break;       //(矩形選択)カーソル左移動
00393 //  case F_RIGHT_BOX:       Command_RIGHT( TRUE, FALSE, bRepeat ); break;//(矩形選択)カーソル右移動
00394 //  case F_UP2_BOX:         Command_UP2( TRUE ); break;                 //(矩形選択)カーソル上移動(２行ごと)
00395 //  case F_DOWN2_BOX:       Command_DOWN2( TRUE );break;                //(矩形選択)カーソル下移動(２行ごと)
00396 //  case F_WORDLEFT_BOX:    Command_WORDLEFT( TRUE );break;             //(矩形選択)単語の左端に移動
00397 //  case F_WORDRIGHT_BOX:   Command_WORDRIGHT( TRUE );break;            //(矩形選択)単語の右端に移動
00398 //  case F_GOLINETOP_BOX:   Command_GOLINETOP( TRUE, FALSE );break;     //(矩形選択)行頭に移動(折り返し単位)
00399 //  case F_GOLINEEND_BOX:   Command_GOLINEEND( TRUE, FALSE );break;     //(矩形選択)行末に移動(折り返し単位)
00400 //  case F_HalfPageUp_Box:  Command_HalfPageUp( TRUE ); break;          //(矩形選択)半ページアップ
00401 //  case F_HalfPageDown_Box:Command_HalfPageDown( TRUE ); break;        //(矩形選択)半ページダウン
00402 //  case F_1PageUp_Box:     Command_1PageUp( TRUE ); break;             //(矩形選択)１ページアップ
00403 //  case F_1PageDown_Box:   Command_1PageDown( TRUE ); break;           //(矩形選択)１ページダウン
00404 //  case F_GOFILETOP_Box:   Command_GOFILETOP( TRUE );break;            //(矩形選択)ファイルの先頭に移動
00405 //  case F_GOFILEEND_Box:   Command_GOFILEEND( TRUE );break;            //(矩形選択)ファイルの最後に移動
00406
00407     /* クリップボード系 */
00408     case F_CUT:                     Command_CUT();break;                    //切り取り(選択範囲をクリップボードにコピーして削除)
00409     case F_COPY:                    Command_COPY( FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy );break;         //コピー(選択範囲をクリップボードにコピー)
00410     case F_COPY_ADDCRLF:            Command_COPY( FALSE, TRUE );break;      //折り返し位置に改行をつけてコピー(選択範囲をクリップボードにコピー)
00411     case F_COPY_CRLF:               Command_COPY( FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy, EOL_CRLF );break;   //CRLF改行でコピー(選択範囲をクリップボードにコピー)
00412     case F_PASTE:                   Command_PASTE();break;                  //貼り付け(クリップボードから貼り付け)
00413     case F_PASTEBOX:                Command_PASTEBOX();break;               //矩形貼り付け(クリップボードから矩形貼り付け)
00414     case F_INSTEXT:                 Command_INSTEXT( bRedraw, (const char*)lparam1, -1, (BOOL)lparam2 );break;/* テキストを貼り付け */ // 2004.05.14 Moca 長さを示す引数追加(-1は\0終端まで)
00415     case F_ADDTAIL:                 Command_ADDTAIL( (const char*)lparam1, (int)lparam2 );break;    /* 最後にテキストを追加 */
00416     case F_COPYFNAME:               Command_COPYFILENAME();break;           //このファイル名をクリップボードにコピー / /2002/2/3 aroka
00417     case F_COPYPATH:                Command_COPYPATH();break;               //このファイルのパス名をクリップボードにコピー
00418     case F_COPYTAG:                 Command_COPYTAG();break;                //このファイルのパス名とカーソル位置をコピー    //Sept. 15, 2000 jepro 上と同じ説明になっていたのを修正
00419     case F_COPYLINES:               Command_COPYLINES();break;              //選択範囲内全行コピー
00420     case F_COPYLINESASPASSAGE:      Command_COPYLINESASPASSAGE();break;     //選択範囲内全行引用符付きコピー
00421     case F_COPYLINESWITHLINENUMBER: Command_COPYLINESWITHLINENUMBER();break;//選択範囲内全行行番号付きコピー
00422     case F_CREATEKEYBINDLIST:       Command_CREATEKEYBINDLIST();break;      //キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO 追加 //Dec. 25, 2000 復活
00423
00424     /* 挿入系 */
00425     case F_INS_DATE:                Command_INS_DATE();break;   //日付挿入
00426     case F_INS_TIME:                Command_INS_TIME();break;   //時刻挿入
00427     case F_CTRL_CODE_DIALOG:        Command_CtrlCode_Dialog();break;    /* コントロールコードの入力(ダイアログ) */  //@@@ 2002.06.02 MIK
00428
00429     /* 変換 */
00430     case F_TOLOWER:                 Command_TOLOWER();break;                /* 小文字 */
00431     case F_TOUPPER:                 Command_TOUPPER();break;                /* 大文字 */
00432     case F_TOHANKAKU:               Command_TOHANKAKU();break;              /* 全角→半角 */
00433     case F_TOHANKATA:               Command_TOHANKATA();break;              /* 全角カタカナ→半角カタカナ */    //Aug. 29, 2002 ai
00434     case F_TOZENEI:                 Command_TOZENEI();break;                /* 全角→半角 */                    //July. 30, 2001 Misaka
00435     case F_TOHANEI:                 Command_TOHANEI();break;                /* 半角→全角 */
00436     case F_TOZENKAKUKATA:           Command_TOZENKAKUKATA();break;          /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00437     case F_TOZENKAKUHIRA:           Command_TOZENKAKUHIRA();break;          /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00438     case F_HANKATATOZENKAKUKATA:    Command_HANKATATOZENKAKUKATA();break;   /* 半角カタカナ→全角カタカナ */
00439     case F_HANKATATOZENKAKUHIRA:    Command_HANKATATOZENKAKUHIRA();break;   /* 半角カタカナ→全角ひらがな */
00440     case F_TABTOSPACE:              Command_TABTOSPACE();break;             /* TAB→空白 */
00441     case F_SPACETOTAB:              Command_SPACETOTAB();break;             /* 空白→TAB */  //#### Stonee, 2001/05/27
00442     case F_CODECNV_AUTO2SJIS:       Command_CODECNV_AUTO2SJIS();break;      /* 自動判別→SJISコード変換 */
00443     case F_CODECNV_EMAIL:           Command_CODECNV_EMAIL();break;          /* E-Mail(JIS→SJIS)コード変換 */
00444     case F_CODECNV_EUC2SJIS:        Command_CODECNV_EUC2SJIS();break;       /* EUC→SJISコード変換 */
00445     case F_CODECNV_UNICODE2SJIS:    Command_CODECNV_UNICODE2SJIS();break;   /* Unicode→SJISコード変換 */
00446     case F_CODECNV_UNICODEBE2SJIS:  Command_CODECNV_UNICODEBE2SJIS();break; /* UnicodeBE→SJISコード変換 */
00447     case F_CODECNV_UTF82SJIS:       Command_CODECNV_UTF82SJIS();break;      /* UTF-8→SJISコード変換 */
00448     case F_CODECNV_UTF72SJIS:       Command_CODECNV_UTF72SJIS();break;      /* UTF-7→SJISコード変換 */
00449     case F_CODECNV_SJIS2JIS:        Command_CODECNV_SJIS2JIS();break;       /* SJIS→JISコード変換 */
00450     case F_CODECNV_SJIS2EUC:        Command_CODECNV_SJIS2EUC();break;       /* SJIS→EUCコード変換 */
00451     case F_CODECNV_SJIS2UTF8:       Command_CODECNV_SJIS2UTF8();break;      /* SJIS→UTF-8コード変換 */
00452     case F_CODECNV_SJIS2UTF7:       Command_CODECNV_SJIS2UTF7();break;      /* SJIS→UTF-7コード変換 */
00453     case F_BASE64DECODE:            Command_BASE64DECODE();break;           /* Base64デコードして保存 */
00454     case F_UUDECODE:                Command_UUDECODE();break;               /* uudecodeして保存 */  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00455
00456     /* 検索系 */
00457     case F_SEARCH_DIALOG:       Command_SEARCH_DIALOG();break;                                              //検索(単語検索ダイアログ)
00458     case F_SEARCH_BOX:          Command_SEARCH_BOX();break;     // Jan. 13, 2003 MIK                    //検索(ボックス)    // 2006.06.04 yukihane Command_SEARCH_BOX()
00459     case F_SEARCH_NEXT:         Command_SEARCH_NEXT( true, bRedraw, (HWND)lparam1, (const char*)lparam2 );break;    //次を検索
00460     case F_SEARCH_PREV:         Command_SEARCH_PREV( bRedraw, (HWND)lparam1 );break;                        //前を検索
00461     case F_REPLACE_DIALOG:  //置換(置換ダイアログ)
00462         /* 再帰処理対策 */
00463         if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00464             delete m_pcOpeBlk;
00465             m_pcOpeBlk = NULL;
00466         }
00467         Command_REPLACE_DIALOG();   //@@@ 2002.2.2 YAZAKI ダイアログ呼び出しと、実行を分離
00468         break;
00469     case F_REPLACE:             Command_REPLACE( (HWND)lparam1 );break;         //置換実行 @@@ 2002.2.2 YAZAKI
00470     case F_REPLACE_ALL:         Command_REPLACE_ALL();break;        //すべて置換実行(通常) 2002.2.8 hor 2006.04.02 かろと
00471     case F_SEARCH_CLEARMARK:    Command_SEARCH_CLEARMARK();break;   //検索マークのクリア
00472     case F_GREP_DIALOG: //Grepダイアログの表示
00473         /* 再帰処理対策 */
00474         if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00475             delete m_pcOpeBlk;
00476             m_pcOpeBlk = NULL;
00477         }
00478         Command_GREP_DIALOG();
00479         break;
00480     case F_GREP:            Command_GREP();break;                           //Grep
00481     case F_JUMP_DIALOG:     Command_JUMP_DIALOG();break;                    //指定行ヘジャンプダイアログの表示
00482     case F_JUMP:            Command_JUMP();break;                           //指定行ヘジャンプ
00483     case F_OUTLINE:         bRet = Command_FUNCLIST( (int)lparam1 );break;  //アウトライン解析
00484     case F_OUTLINE_TOGGLE:  bRet = Command_FUNCLIST( SHOW_TOGGLE );break;   //アウトライン解析(toggle) // 20060201 aroka
00485     case F_TAGJUMP:         Command_TAGJUMP(lparam1 != 0);break;            /* タグジャンプ機能 */ //   Apr. 03, 2003 genta 引数追加
00486     case F_TAGJUMP_CLOSE:   Command_TAGJUMP(true);break;                    /* タグジャンプ(元ウィンドウclose) */// Apr. 03, 2003 genta
00487     case F_TAGJUMPBACK:     Command_TAGJUMPBACK();break;                    /* タグジャンプバック機能 */
00488     case F_TAGS_MAKE:       Command_TagsMake();break;                       //タグファイルの作成    //@@@ 2003.04.13 MIK
00489     case F_DIRECT_TAGJUMP:  Command_TagJumpByTagsFile();break;              /* ダイレクトタグジャンプ機能 */    //@@@ 2003.04.15 MIK
00490     case F_TAGJUMP_KEYWORD: Command_TagJumpByTagsFileKeyword( (const char*)lparam1 );break; /* @@ 2005.03.31 MIK キーワードを指定してダイレクトタグジャンプ機能 */
00491     case F_COMPARE:         Command_COMPARE();break;                        /* ファイル内容比較 */
00492     case F_DIFF_DIALOG:     Command_Diff_Dialog();break;                    /* DIFF差分表示(ダイアログ) */  //@@@ 2002.05.25 MIK
00493     case F_DIFF:            Command_Diff( (const char*)lparam1, (int)lparam2 );break;       /* DIFF差分表示 */  //@@@ 2002.05.25 MIK    // 2005.10.03 maru
00494     case F_DIFF_NEXT:       Command_Diff_Next();break;                      /* DIFF差分表示(次へ) */        //@@@ 2002.05.25 MIK
00495     case F_DIFF_PREV:       Command_Diff_Prev();break;                      /* DIFF差分表示(前へ) */        //@@@ 2002.05.25 MIK
00496     case F_DIFF_RESET:      Command_Diff_Reset();break;                     /* DIFF差分表示(全解除) */      //@@@ 2002.05.25 MIK
00497     case F_BRACKETPAIR:     Command_BRACKETPAIR();  break;                  //対括弧の検索
00498 // From Here 2001.12.03 hor
00499     case F_BOOKMARK_SET:    Command_BOOKMARK_SET();break;                   /* ブックマーク設定・解除 */
00500     case F_BOOKMARK_NEXT:   Command_BOOKMARK_NEXT();break;                  /* 次のブックマークへ */
00501     case F_BOOKMARK_PREV:   Command_BOOKMARK_PREV();break;                  /* 前のブックマークへ */
00502     case F_BOOKMARK_RESET:  Command_BOOKMARK_RESET();break;                 /* ブックマークの全解除 */
00503     case F_BOOKMARK_VIEW:   bRet = Command_FUNCLIST( (BOOL)lparam1 ,OUTLINE_BOOKMARK );break;   //アウトライン解析
00504 // To Here 2001.12.03 hor
00505     case F_BOOKMARK_PATTERN:Command_BOOKMARK_PATTERN();break;               // 2002.01.16 hor 指定パターンに一致する行をマーク
00506     case F_JUMP_SRCHSTARTPOS:   Command_JUMP_SRCHSTARTPOS();break;          // 検索開始位置へ戻る 02/06/26 ai
00507
00508     /* モード切り替え系 */
00509     case F_CHGMOD_INS:      Command_CHGMOD_INS();break;     //挿入／上書きモード切り替え
00510     // From Here 2003.06.23 Moca
00511     // F_CHGMOD_EOL_xxx はマクロに記録されないが、F_CHGMOD_EOLはマクロに記録されるので、マクロ関数を統合できるという手はず
00512     case F_CHGMOD_EOL_CRLF: HandleCommand( F_CHGMOD_EOL, bRedraw, EOL_CRLF, 0, 0, 0 );break;    //入力する改行コードをCRLFに設定
00513     case F_CHGMOD_EOL_LF:   HandleCommand( F_CHGMOD_EOL, bRedraw, EOL_LF, 0, 0, 0 );break;  //入力する改行コードをLFに設定
00514     case F_CHGMOD_EOL_CR:   HandleCommand( F_CHGMOD_EOL, bRedraw, EOL_CR, 0, 0, 0 );break;  //入力する改行コードをCRに設定
00515     // 2006.09.03 Moca F_CHGMOD_EOLで break 忘れの修正
00516     case F_CHGMOD_EOL:      Command_CHGMOD_EOL( (enumEOLType)lparam1 );break;   //入力する改行コードを設定
00517     // To Here 2003.06.23 Moca
00518     case F_CANCEL_MODE:     Command_CANCEL_MODE();break;    //各種モードの取り消し
00519
00520     /* 設定系 */
00521     case F_SHOWTOOLBAR:     Command_SHOWTOOLBAR();break;    /* ツールバーの表示/非表示 */
00522     case F_SHOWFUNCKEY:     Command_SHOWFUNCKEY();break;    /* ファンクションキーの表示/非表示 */
00523     case F_SHOWTAB:         Command_SHOWTAB();break;        /* タブの表示/非表示 */ //@@@ 2003.06.10 MIK
00524     case F_SHOWSTATUSBAR:   Command_SHOWSTATUSBAR();break;  /* ステータスバーの表示/非表示 */
00525     case F_TYPE_LIST:       Command_TYPE_LIST();break;      /* タイプ別設定一覧 */
00526     case F_OPTION_TYPE:     Command_OPTION_TYPE();break;    /* タイプ別設定 */
00527     case F_OPTION:          Command_OPTION();break;         /* 共通設定 */
00528     case F_FONT:            Command_FONT();break;           /* フォント設定 */
00529     case F_WRAPWINDOWWIDTH: Command_WRAPWINDOWWIDTH();break;/* 現在のウィンドウ幅で折り返し */  //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00530     case F_FAVORITE:        Command_Favorite();break;       //履歴の管理    //@@@ 2003.04.08 MIK
00531     //  Jan. 29, 2005 genta 引用符の設定
00532     case F_SET_QUOTESTRING: Command_SET_QUOTESTRING((const char*)lparam1);  break;
00533
00534     /* マクロ系 */
00535     case F_RECKEYMACRO:     Command_RECKEYMACRO();break;    /* キーマクロの記録開始／終了 */
00536     case F_SAVEKEYMACRO:    Command_SAVEKEYMACRO();break;   /* キーマクロの保存 */
00537     case F_LOADKEYMACRO:    Command_LOADKEYMACRO();break;   /* キーマクロの読み込み */
00538     case F_EXECKEYMACRO:                                    /* キーマクロの実行 */
00539         /* 再帰処理対策 */
00540         if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00541             delete m_pcOpeBlk;
00542             m_pcOpeBlk = NULL;
00543         }
00544         Command_EXECKEYMACRO();break;
00545     //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
00546     //  case F_EXECCMMAND:      Command_EXECCMMAND();break; /* 外部コマンド実行 */
00547     case F_EXECCOMMAND_DIALOG:
00548         /* 再帰処理対策 */// 2001/06/23 N.Nakatani
00549         if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00550             delete m_pcOpeBlk;
00551             m_pcOpeBlk = NULL;
00552         }
00553         //Command_EXECCOMMAND_DIALOG((const char*)lparam1); /* 外部コマンド実行 */
00554         Command_EXECCOMMAND_DIALOG();   /* 外部コマンド実行 */  //  引数つかってないみたいなので
00555         break;
00556     //  To Here Sept. 20, 2000
00557     case F_EXECCOMMAND:
00558         //Command_EXECCOMMAND((const char*)lparam1);
00559         Command_EXECCOMMAND((const char*)lparam1, (int)lparam2);    //  2006.12.03 maru 引数の拡張のため
00560         break;
00561
00562     /* カスタムメニュー */
00563     case F_MENU_RBUTTON:    /* 右クリックメニュー */
00564         /* 再帰処理対策 */
00565         if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00566             delete m_pcOpeBlk;
00567             m_pcOpeBlk = NULL;
00568         }
00569         Command_MENU_RBUTTON();
00570         break;
00571     case F_CUSTMENU_1:  /* カスタムメニュー1 */
00572     case F_CUSTMENU_2:  /* カスタムメニュー2 */
00573     case F_CUSTMENU_3:  /* カスタムメニュー3 */
00574     case F_CUSTMENU_4:  /* カスタムメニュー4 */
00575     case F_CUSTMENU_5:  /* カスタムメニュー5 */
00576     case F_CUSTMENU_6:  /* カスタムメニュー6 */
00577     case F_CUSTMENU_7:  /* カスタムメニュー7 */
00578     case F_CUSTMENU_8:  /* カスタムメニュー8 */
00579     case F_CUSTMENU_9:  /* カスタムメニュー9 */
00580     case F_CUSTMENU_10: /* カスタムメニュー10 */
00581     case F_CUSTMENU_11: /* カスタムメニュー11 */
00582     case F_CUSTMENU_12: /* カスタムメニュー12 */
00583     case F_CUSTMENU_13: /* カスタムメニュー13 */
00584     case F_CUSTMENU_14: /* カスタムメニュー14 */
00585     case F_CUSTMENU_15: /* カスタムメニュー15 */
00586     case F_CUSTMENU_16: /* カスタムメニュー16 */
00587     case F_CUSTMENU_17: /* カスタムメニュー17 */
00588     case F_CUSTMENU_18: /* カスタムメニュー18 */
00589     case F_CUSTMENU_19: /* カスタムメニュー19 */
00590     case F_CUSTMENU_20: /* カスタムメニュー20 */
00591     case F_CUSTMENU_21: /* カスタムメニュー21 */
00592     case F_CUSTMENU_22: /* カスタムメニュー22 */
00593     case F_CUSTMENU_23: /* カスタムメニュー23 */
00594     case F_CUSTMENU_24: /* カスタムメニュー24 */
00595         /* 再帰処理対策 */
00596         if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00597             delete m_pcOpeBlk;
00598             m_pcOpeBlk = NULL;
00599         }
00600         nFuncID = Command_CUSTMENU( nCommand - F_CUSTMENU_1 + 1 );
00601         if( 0 != nFuncID ){
00602             /* コマンドコードによる処理振り分け */
00603 //          HandleCommand( nFuncID, TRUE, 0, 0, 0, 0 );
00604             ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nFuncID, 0 ), (LPARAM)NULL );
00605         }
00606         break;
00607
00608     /* ウィンドウ系 */
00609     case F_SPLIT_V:         Command_SPLIT_V();break;    /* 上下に分割 */    //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00610     case F_SPLIT_H:         Command_SPLIT_H();break;    /* 左右に分割 */    //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00611     case F_SPLIT_VH:        Command_SPLIT_VH();break;   /* 縦横に分割 */    //Sept. 17, 2000 jepro 説明に「に」を追加
00612     case F_WINCLOSE:        Command_WINCLOSE();break;   //ウィンドウを閉じる
00613     case F_WIN_CLOSEALL:    /* すべてのウィンドウを閉じる */    //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」を左記のように変更
00614         //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00615         Command_FILECLOSEALL();
00616         break;
00617     case F_BIND_WINDOW:     Command_BIND_WINDOW();break;    //結合して表示 2004.07.14 Kazika 新規追加
00618     case F_CASCADE:         Command_CASCADE();break;        //重ねて表示
00619     case F_TILE_V:          Command_TILE_V();break;         //上下に並べて表示
00620     case F_TILE_H:          Command_TILE_H();break;         //左右に並べて表示
00621     case F_MAXIMIZE_V:      Command_MAXIMIZE_V();break;     //縦方向に最大化
00622     case F_MAXIMIZE_H:      Command_MAXIMIZE_H();break;     //横方向に最大化 //2001.02.10 by MIK
00623     case F_MINIMIZE_ALL:    Command_MINIMIZE_ALL();break;   /* すべて最小化 */  //  Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00624     case F_REDRAW:          Command_REDRAW();break;         /* 再描画 */
00625     case F_WIN_OUTPUT:      Command_WIN_OUTPUT();break;     //アウトプットウィンドウ表示
00626     case F_TRACEOUT:        Command_TRACEOUT((const char*)lparam1, (int)lparam2);break;     //マクロ用アウトプットウィンドウに表示 maru 2006.04.26
00627     case F_TOPMOST:         Command_WINTOPMOST( lparam1 );break;    //常に手前に表示 Moca
00628     case F_WINLIST:         Command_WINLIST( nCommandFrom );break;      /* ウィンドウ一覧ポップアップ表示処理 */    // 2006.03.23 fon // 2006.05.19 genta 引数追加
00629     case F_GROUPCLOSE:      Command_GROUPCLOSE();break;     /* グループを閉じる */      // 2007.06.20 ryoji 追加
00630     case F_NEXTGROUP:       Command_NEXTGROUP();break;      /* 次のグループ */          // 2007.06.20 ryoji 追加
00631     case F_PREVGROUP:       Command_PREVGROUP();break;      /* 前のグループ */          // 2007.06.20 ryoji 追加
00632     case F_TAB_MOVERIGHT:   Command_TAB_MOVERIGHT();break;  /* タブを右に移動 */        // 2007.06.20 ryoji 追加
00633     case F_TAB_MOVELEFT:    Command_TAB_MOVELEFT();break;   /* タブを左に移動 */        // 2007.06.20 ryoji 追加
00634     case F_TAB_SEPARATE:    Command_TAB_SEPARATE();break;   /* 新規グループ */          // 2007.06.20 ryoji 追加
00635     case F_TAB_JOINTNEXT:   Command_TAB_JOINTNEXT();break;  /* 次のグループに移動 */    // 2007.06.20 ryoji 追加
00636     case F_TAB_JOINTPREV:   Command_TAB_JOINTPREV();break;  /* 前のグループに移動 */    // 2007.06.20 ryoji 追加
00637
00638     /* 支援 */
00639     case F_HOKAN:           Command_HOKAN();break;          //入力補完
00640     case F_HELP_CONTENTS:   Command_HELP_CONTENTS();break;  /* ヘルプ目次 */                //Nov. 25, 2000 JEPRO 追加
00641     case F_HELP_SEARCH:     Command_HELP_SEARCH();break;    /* ヘルプトキーワード検索 */    //Nov. 25, 2000 JEPRO 追加
00642     case F_TOGGLE_KEY_SEARCH:   Command_ToggleKeySearch();break;    /* キャレット位置の単語を辞書検索する機能ON-OFF */  // 2006.03.24 fon
00643     case F_MENU_ALLFUNC:                                    /* コマンド一覧 */
00644         /* 再帰処理対策 */
00645         if( NULL != m_pcOpeBlk ){   /* 操作ブロック */
00646             delete m_pcOpeBlk;
00647             m_pcOpeBlk = NULL;
00648         }
00649         Command_MENU_ALLFUNC();break;
00650     case F_EXTHELP1:    Command_EXTHELP1();break;       /* 外部ヘルプ１ */
00651     case F_EXTHTMLHELP: /* 外部HTMLヘルプ */
00652         //  Jul. 5, 2002 genta
00653         Command_EXTHTMLHELP( (const char*)lparam1, (const char*)lparam2 ); break;
00654     case F_ABOUT:   Command_ABOUT();break;              /* バージョン情報 */    //Dec. 24, 2000 JEPRO 追加
00655
00656     /* その他 */
00657 //  case F_SENDMAIL:    Command_SENDMAIL();break;       /* メール送信 */
00658
00659     }
00660
00661     /* アンドゥバッファの処理 */
00662     if( NULL != m_pcOpeBlk ){
00663         if( 0 < m_pcOpeBlk->GetNum() ){ /* 操作の数を返す */
00664             /* 操作の追加 */
00665             m_pcEditDoc->m_cOpeBuf.AppendOpeBlk( m_pcOpeBlk );
00666
00667             m_pcEditDoc->RedrawInactivePane();  //  他のペインの表示
00668 #if 0
00669         //  2001/06/21 Start by asa-o: 他のペインの表示状態を更新
00670             m_pcEditDoc->m_cEditViewArr[m_nMyIndex^1].Redraw();
00671             m_pcEditDoc->m_cEditViewArr[m_nMyIndex^2].Redraw();
00672             m_pcEditDoc->m_cEditViewArr[(m_nMyIndex^1)^2].Redraw();
00673             DrawCaretPosInfo();
00674         //  2001/06/21 End
00675 #endif
00676         }else{
00677             delete m_pcOpeBlk;
00678         }
00679         m_pcOpeBlk = NULL;
00680     }
00681
00682     return bRet;
00683 }
00684
00685
00686
00688
00690 int CEditView::Command_UP( int bSelect, BOOL bRepeat, int lines )
00691 {
00692     //  From Here Oct. 24, 2001 genta
00693     if( lines != 0 ){
00694         Cursor_UPDOWN( lines, FALSE );
00695         return 1;
00696     }
00697     //  To Here Oct. 24, 2001 genta
00698
00699     int     i;
00700     int     nRepeat;
00701     nRepeat = 0;
00702 //m_pShareData->m_Common.m_nRepeatedScrollLineNum;      /* キーリピート時のスクロール行数 */
00703 //m_pShareData->m_Common.m_nRepeatedScroll_Smooth;      /* キーリピート時のスクロールを滑らかにするか */
00704
00705     /* キーリピート時のスクロールを滑らかにするか */
00706     if( !m_pShareData->m_Common.m_nRepeatedScroll_Smooth ){
00707         if( !bRepeat ){
00708             i = -1;
00709         }else{
00710             i = -1 * m_pShareData->m_Common.m_nRepeatedScrollLineNum;   /* キーリピート時のスクロール行数 */
00711         }
00712         Cursor_UPDOWN( i, bSelect );
00713         nRepeat = -1 * i;
00714     }else{
00715         ++nRepeat;
00716         if( Cursor_UPDOWN( -1, bSelect ) && bRepeat ){
00717             for( i = 0; i < m_pShareData->m_Common.m_nRepeatedScrollLineNum - 1; ++i ){     /* キーリピート時のスクロール行数 */
00718                 ::UpdateWindow( m_hWnd );   //  YAZAKI
00719                 Cursor_UPDOWN( -1, bSelect );
00720                 ++nRepeat;
00721             }
00722         }
00723     }
00724     return nRepeat;
00725 }
00726
00727
00728
00729
00730 /* カーソル下移動 */
00731 int CEditView::Command_DOWN( int bSelect, BOOL bRepeat )
00732 {
00733     int     i;
00734     int     nRepeat;
00735     nRepeat = 0;
00736     /* キーリピート時のスクロールを滑らかにするか */
00737     if( !m_pShareData->m_Common.m_nRepeatedScroll_Smooth ){
00738         if( !bRepeat ){
00739             i = 1;
00740         }else{
00741             i = m_pShareData->m_Common.m_nRepeatedScrollLineNum;    /* キーリピート時のスクロール行数 */
00742         }
00743         Cursor_UPDOWN( i, bSelect );
00744         nRepeat = i;
00745     }else{
00746         ++nRepeat;
00747         if( Cursor_UPDOWN( 1, bSelect ) && bRepeat ){
00748             for( i = 0; i < m_pShareData->m_Common.m_nRepeatedScrollLineNum - 1; ++i ){ /* キーリピート時のスクロール行数 */
00749                 //  ここで再描画。
00750                 ::UpdateWindow( m_hWnd );   //  YAZAKI
00751                 Cursor_UPDOWN( 1, bSelect );
00752                 ++nRepeat;
00753             }
00754         }
00755     }
00756     return nRepeat;
00757 }
00758
00759
00760
00761
00769 int CEditView::Command_LEFT( int bSelect, BOOL bRepeat )
00770 {
00771     int     nRepCount;
00772     int     nRepeat;
00773     int     nRes;
00774     if( bRepeat ){
00775         nRepeat = 2;
00776     }else{
00777         nRepeat = 1;
00778     }
00779     for( nRepCount = 0; nRepCount < nRepeat; ++nRepCount ){
00780         int             nPosX = 0;
00781         int             nPosY = m_nCaretPosY;
00782         RECT            rcSel;
00783         const CLayout*  pcLayout;
00784         if( bSelect ){
00785             if( !IsTextSelected() ){    /* テキストが選択されているか */
00786                 /* 現在のカーソル位置から選択を開始する */
00787                 BeginSelectArea();
00788             }
00789         }else{
00790             if( IsTextSelected() ){ /* テキストが選択されているか */
00791                 /* 矩形範囲選択中か */
00792                 if( m_bBeginBoxSelect ){
00793                     /* 2点を対角とする矩形を求める */
00794                     TwoPointToRect(
00795                         &rcSel,
00796                         m_nSelectLineFrom,      /* 範囲選択開始行 */
00797                         m_nSelectColmFrom,      /* 範囲選択開始桁 */
00798                         m_nSelectLineTo,        /* 範囲選択終了行 */
00799                         m_nSelectColmTo         /* 範囲選択終了桁 */
00800                     );
00801                     /* 現在の選択範囲を非選択状態に戻す */
00802                     DisableSelectArea( TRUE );
00803                     /* カーソルを選択開始位置に移動 */
00804                     MoveCursor( rcSel.left, rcSel.top, TRUE );
00805                     m_nCaretPosX_Prev = m_nCaretPosX;
00806                 }else{
00807                     nPosX = m_nSelectColmFrom;
00808                     nPosY = m_nSelectLineFrom;
00809                     /* 現在の選択範囲を非選択状態に戻す */
00810                     DisableSelectArea( TRUE );
00811                     /* カーソルを選択開始位置に移動 */
00812                     MoveCursor( nPosX, nPosY, TRUE );
00813                     m_nCaretPosX_Prev = m_nCaretPosX;
00814                 }
00815                 nRes = 1;
00816                 goto end_of_func;
00817             }
00818         }
00819         /* 現在行のデータを取得 */
00820         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
00821         /* カーソルが左端にある */
00822         if( m_nCaretPosX == (pcLayout ? pcLayout->GetIndent() : 0)){
00823             if( m_nCaretPosY > 0 ){
00824                 pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY - 1 );
00825                 CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
00826                 while( !it.end() ){
00827                     it.scanNext();
00828                     if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
00829                         nPosX += it.getColumnDelta();
00830                         break;
00831                     }
00832                     it.addDelta();
00833                 }
00834                 nPosX += it.getColumn() - it.getColumnDelta();
00835                 nPosY --;
00836             }else{
00837                 nRes = 0;
00838                 goto end_of_func;
00839             }
00840         }
00841         //  2004.03.28 Moca EOFだけの行以降の途中にカーソルがあると落ちるバグ修正
00842         else if( pcLayout ){
00843             CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
00844             while( !it.end() ){
00845                 it.scanNext();
00846                 if ( it.getColumn() + it.getColumnDelta() > m_nCaretPosX - 1 ){
00847                     nPosX += it.getColumnDelta();
00848                     break;
00849                 }
00850                 it.addDelta();
00851             }
00852             nPosX += it.getColumn() - it.getColumnDelta();
00853             //  Oct. 18, 2002 YAZAKI
00854             if( it.getIndex() >= pcLayout->GetLengthWithEOL() ){
00855                 nPosX = m_nCaretPosX - 1;
00856             }
00857         }
00858         MoveCursor( nPosX, nPosY, TRUE );
00859         m_nCaretPosX_Prev = m_nCaretPosX;
00860         if( bSelect ){
00861             /*  現在のカーソル位置によって選択範囲を変更．
00862
00863                 2004.04.02 Moca
00864                 キャレット位置が不正だった場合にMoveCursorの移動結果が
00865                 引数で与えた座標とは異なることがあるため，
00866                 nPosX, nPosYの代わりに実際の移動結果を使うように．
00867             */
00868             ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
00869         }
00870         nRes = 1;
00871         goto end_of_func;
00872 end_of_func:;
00873     }
00874     return nRes;
00875 }
00876
00877
00878
00879
00880 /* カーソル右移動 */
00881 void CEditView::Command_RIGHT( int bSelect, int bIgnoreCurrentSelection, BOOL bRepeat )
00882 {
00883     int     nRepCount;
00884     int     nRepeat;
00885     if( bRepeat ){
00886         nRepeat = 2;
00887     }else{
00888         nRepeat = 1;
00889     }
00890     for( nRepCount = 0; nRepCount < nRepeat; ++nRepCount ){
00891         int         nPosX;
00892         int         nPosY = m_nCaretPosY;
00893         RECT        rcSel;
00894         const CLayout*  pcLayout;
00895         // 2003.06.28 Moca [EOF]のみの行にカーソルがあるときに右を押しても選択を解除できない問題に
00896         // 対応するため、現在行のデータを取得を移動
00897         if( !bIgnoreCurrentSelection ){
00898             if( bSelect ){
00899                 if( !IsTextSelected() ){    /* テキストが選択されているか */
00900                     /* 現在のカーソル位置から選択を開始する */
00901                     BeginSelectArea();
00902                 }
00903             }else{
00904                 if( IsTextSelected() ){ /* テキストが選択されているか */
00905                     /* 矩形範囲選択中か */
00906                     if( m_bBeginBoxSelect ){
00907                         /* 2点を対角とする矩形を求める */
00908                         TwoPointToRect(
00909                             &rcSel,
00910                             m_nSelectLineFrom,      /* 範囲選択開始行 */
00911                             m_nSelectColmFrom,      /* 範囲選択開始桁 */
00912                             m_nSelectLineTo,        /* 範囲選択終了行 */
00913                             m_nSelectColmTo         /* 範囲選択終了桁 */
00914                         );
00915                         /* 現在の選択範囲を非選択状態に戻す */
00916                         DisableSelectArea( TRUE );
00917                         /* カーソルを選択終了位置に移動 */
00918                         MoveCursor( rcSel.right, rcSel.bottom, TRUE );
00919                         m_nCaretPosX_Prev = m_nCaretPosX;
00920                     }else{
00921                         nPosX = m_nSelectColmTo;
00922                         nPosY = m_nSelectLineTo;
00923
00924                         /* 現在の選択範囲を非選択状態に戻す */
00925                         DisableSelectArea( TRUE );
00926                         if( nPosY >= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
00927                             /* ファイルの最後に移動 */
00928                             Command_GOFILEEND(FALSE);
00929                         }else{
00930                             /* カーソルを選択終了位置に移動 */
00931                             MoveCursor( nPosX, nPosY, TRUE );
00932                             m_nCaretPosX_Prev = m_nCaretPosX;
00933                         }
00934                     }
00935                     goto end_of_func;
00936                 }
00937             }
00938         }
00939 //      2003.06.28 Moca [EOF]のみの行にカーソルがあるときに右を押しても選択を解除できない問題に対応
00940         /* 現在行のデータを取得 */
00941         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
00942         //  2004.04.02 EOF以降にカーソルがあったときに右を押しても何も起きなかったのを、EOFに移動するように
00943         if( pcLayout )
00944         {
00945             int nIndex = 0;
00946             CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
00947             while( !it.end() ){
00948                 it.scanNext();
00949                 if ( it.getColumn() + it.getColumnDelta() > m_nCaretPosX + it.getColumnDelta() ){
00950                     break;
00951                 }
00952                 if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
00953                     nIndex += it.getIndexDelta();
00954                     break;
00955                 }
00956                 it.addDelta();
00957             }
00958             nPosX = it.getColumn();
00959             nIndex += it.getIndex();
00960             if( nIndex >= pcLayout->GetLengthWithEOL() ){
00961                 /* フリーカーソルモードか */
00962                 if( (
00963                     m_pShareData->m_Common.m_bIsFreeCursorMode
00964                  || IsTextSelected() && m_bBeginBoxSelect   /* 矩形範囲選択中 */
00965                     )
00966                  &&
00967                     /* 改行で終わっているか */
00968                     ( EOL_NONE != pcLayout->m_cEol )
00969                 ){
00970                     /*-- フリーカーソルモードの場合 --*/
00971                     if( nPosX <= m_nCaretPosX ){
00972                         /* 最終行か */
00973                         if( m_nCaretPosY + 1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
00974                             /* 改行で終わっているか */
00975                             if( EOL_NONE != pcLayout->m_cEol.GetType() ){
00976                                 nPosX = m_nCaretPosX + 1;
00977                             }else{
00978                                 nPosX = m_nCaretPosX;
00979                             }
00980                         }else{
00981                             nPosX = m_nCaretPosX + 1;
00982                         }
00983                     }else{
00984                         nPosX = nPosX;
00985                     }
00986                 }else{
00987                     /*-- フリーカーソルモードではない場合 --*/
00988                     /* 最終行か */
00989                     if( m_nCaretPosY + 1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
00990                         /* 改行で終わっているか */
00991                         if( EOL_NONE != pcLayout->m_cEol.GetType() ){
00992                             nPosX = pcLayout->m_pNext ? pcLayout->m_pNext->GetIndent() : 0;
00993                             ++nPosY;
00994                         }else{
00995                         }
00996                     }else{
00997                         nPosX = pcLayout->m_pNext ? pcLayout->m_pNext->GetIndent() : 0;
00998                         ++nPosY;
00999                     }
01000                 }
01001             }
01002             //  キャレット位置が折り返し位置より右側だった場合の処理
01003             //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
01004             if( nPosX >= m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() ){
01005                 if( m_pcEditDoc->GetDocumentAttribute().m_bKinsokuRet
01006                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuKuto )    //@@@ 2002.04.16 MIK
01007                 {
01008                     if( m_pcEditDoc->m_cLayoutMgr.IsEndOfLine( nPosY, nPosX ) ) //@@@ 2002.04.18
01009                     {
01010                         nPosX = 0;
01011                         ++nPosY;
01012                     }
01013                 }
01014                 else
01015                 {
01016                     nPosX = 0;
01017                     ++nPosY;
01018                 }
01019             }
01020         }else{
01021             // pcLayoutがNULLの場合はnPosX=0に調整
01022             nPosX = 0;
01023         }
01024         MoveCursor( nPosX, nPosY, TRUE );
01025         m_nCaretPosX_Prev = m_nCaretPosX;
01026         if( bSelect ){
01027             /* 現在のカーソル位置によって選択範囲を変更 */
01028             ChangeSelectAreaByCurrentCursor( m_nCaretPosX, m_nCaretPosY );
01029         }
01030
01031 end_of_func:;
01032     }
01033     return;
01034 }
01035
01036
01037
01038
01039 //  From Here Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL/UP/DOWN→PAGE/DOWN/UP)するために以下をコメントアウト
01041 //void CEditView::Command_ROLLUP( int bSelect )
01042 //{
01043 //  Cursor_UPDOWN( ( m_nViewRowNum / 2 ), bSelect );
01044 //  return;
01045 //}
01046 //
01047 //
01048 //
01049 //
01051 //void CEditView::Command_ROLLDOWN( int bSelect )
01052 //{
01053 //  Cursor_UPDOWN( - ( m_nViewRowNum / 2 ), bSelect );
01054 //  return;
01055 //}
01056 //  To Here Oct. 6, 2000
01057
01058
01059
01060
01061 /* 半ページアップ */    //Oct. 6, 2000 JEPRO added (実は従来のスクロールダウンそのもの)
01062 void CEditView::Command_HalfPageUp( int bSelect )
01063 {
01064     Cursor_UPDOWN( - ( m_nViewRowNum / 2 ), bSelect );
01065     return;
01066 }
01067
01068
01069
01070
01071 /* 半ページダウン */    //Oct. 6, 2000 JEPRO added (実は従来のスクロールアップそのもの)
01072 void CEditView::Command_HalfPageDown( int bSelect )
01073 {
01074     Cursor_UPDOWN( ( m_nViewRowNum / 2 ), bSelect );
01075     return;
01076 }
01077
01078
01079
01080     //Oct. 10, 2000 JEPRO added
01087 void CEditView::Command_1PageUp( int bSelect )
01088 {
01089 //  Cursor_UPDOWN( - m_nViewRowNum, bSelect );
01090
01091 // 2001.12.03 hor
01092 //      メモ帳ライクに、画面に対するカーソル位置はそのままで１ページアップ
01093     if(m_nViewTopLine>=m_nViewRowNum-1){
01094         m_bDrawSWITCH = FALSE;
01095         int nViewTopLine=m_nCaretPosY-m_nViewTopLine;
01096         Cursor_UPDOWN( -m_nViewRowNum+1, bSelect );
01097         //  Sep. 11, 2004 genta 同期スクロール処理のため
01098         //  RedrawAllではなくScrollAtを使うように
01099         SyncScrollV( ScrollAtV( m_nCaretPosY-nViewTopLine ));
01100         m_bDrawSWITCH = TRUE;
01101         RedrawAll();
01102
01103     }else{
01104         Cursor_UPDOWN( -m_nViewRowNum+1, bSelect );
01105     }
01106     return;
01107 }
01108
01109
01110
01111
01118 void CEditView::Command_1PageDown( int bSelect )
01119 {
01120 //  Cursor_UPDOWN( m_nViewRowNum, bSelect );
01121
01122 // 2001.12.03 hor
01123 //      メモ帳ライクに、画面に対するカーソル位置はそのままで１ページダウン
01124     if(m_nViewTopLine+m_nViewRowNum <= m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){ //- m_nViewRowNum){
01125         m_bDrawSWITCH = FALSE;
01126         int nViewTopLine=m_nCaretPosY-m_nViewTopLine;
01127         Cursor_UPDOWN( m_nViewRowNum-1, bSelect );
01128         //  Sep. 11, 2004 genta 同期スクロール処理のため
01129         //  RedrawAllではなくScrollAtを使うように
01130         SyncScrollV( ScrollAtV( m_nCaretPosY-nViewTopLine ));
01131         m_bDrawSWITCH = TRUE;
01132         RedrawAll();
01133     }else{
01134         Cursor_UPDOWN( m_nViewRowNum , bSelect );
01135         Command_DOWN( bSelect, TRUE );
01136     }
01137
01138     return;
01139 }
01140
01141
01142
01143
01144 /* カーソル上移動(２行づつ) */
01145 void CEditView::Command_UP2( int bSelect )
01146 {
01147     Cursor_UPDOWN( -2, bSelect );
01148     return;
01149 }
01150
01151
01152
01153
01154 /* カーソル下移動(２行づつ) */
01155 void CEditView::Command_DOWN2( int bSelect )
01156 {
01157     Cursor_UPDOWN( 2, bSelect );
01158     return;
01159 }
01160
01161
01162
01163
01178 void CEditView::Command_GOLINETOP( int bSelect, int lparam )
01179 {
01180     bool            bLineTopOnly = false;
01181     int             nCaretPosX;
01182     int             nCaretPosY;
01183     int             nPos;
01184     int             nPosY;
01185     const CLayout*  pcLayout;
01186
01187     if( lparam & 1 ){
01188         bLineTopOnly = true;
01189     }
01190
01191     if( lparam & 4 ){
01192         bSelect = TRUE;
01193     }
01194
01195     if ( lparam & 8 ){
01196         /* 改行単位指定の場合は、物理行頭位置から目的論理位置を求める */
01197         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
01198             0,
01199             m_nCaretPosY_PHY,
01200             &nCaretPosX,
01201             &nCaretPosY
01202         );
01203     }else{
01204         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
01205         nCaretPosX = pcLayout ? pcLayout->GetIndent() : 0;
01206         nCaretPosY = m_nCaretPosY;
01207     }
01208     if( !bLineTopOnly ){
01209         /* 目的行のデータを取得 */
01210         /* 改行単位指定で、先頭から空白が1折り返し行以上続いている場合は次の行データを取得 */
01211         nPosY = nCaretPosY - 1;
01212         const char*     pLine;
01213         int             nLineLen;
01214         const CLayout*  pcLayout;
01215         BOOL            bZenSpace;
01216
01217         bZenSpace = m_pcEditDoc->GetDocumentAttribute().m_bAutoIndent_ZENSPACE;
01218
01219         do {
01220             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( ++nPosY, &nLineLen, &pcLayout );
01221             if( NULL == pLine ){
01222                 return;
01223             }
01224             for( nPos = 0; nPos < nLineLen; ++nPos ){
01225                 if(' ' == pLine[nPos]) continue;
01226                 if('\t' == pLine[nPos]) continue;
01227
01228                 /* 2007.06.18 maru 全角空白もインデントの設定になっていれば行頭判定に考慮する */
01229                 if( TRUE == bZenSpace && nPos+1 < nLineLen ){
01230                     if( (char)0x81 == pLine[nPos] && (char)0x40 == pLine[nPos+1] ){
01231                         nPos++;
01232                         continue;
01233                     }
01234                 }
01235                 if( CR == pLine[nPos] || LF == pLine[nPos] ){
01236                     nPos = 0;   /* 空白またはタブおよび改行だけの行だった */
01237                 }
01238                 break;
01239             }
01240         } while (( lparam & 8 ) && (nPos >= nLineLen) && (m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 > nPosY) );
01241         if( nPos >= nLineLen ){
01242             /* 折り返し単位の行頭を探して物理行末まで到達した
01243             または、最終行のため改行コードに遭遇せずに行末に到達した */
01244             nPos = 0;
01245         }
01246
01247         if(0 == nPos) nPosY = nCaretPosY;   /* 物理行の移動なし */
01248
01249         /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
01250         nPos = LineIndexToColmn( pcLayout, nPos );
01251         if( (m_nCaretPosX != nPos) || (m_nCaretPosY != nPosY) ){
01252             nCaretPosX = nPos;
01253             nCaretPosY = nPosY;
01254         }
01255     }
01256
01257     //  2006.07.09 genta 新規関数にまとめた
01258     MoveCursorSelecting( nCaretPosX, nCaretPosY, bSelect );
01259 }
01260
01261
01262
01263
01264 /* 行末に移動(折り返し単位) */
01265 void CEditView::Command_GOLINEEND( int bSelect, int bIgnoreCurrentSelection )
01266 {
01267     int             nPosX = 0;
01268     int             nPosY = m_nCaretPosY;
01269     const CLayout*  pcLayout;
01270     if( !bIgnoreCurrentSelection ){
01271         if( bSelect ){
01272             if( !IsTextSelected() ){    /* テキストが選択されているか */
01273                 /* 現在のカーソル位置から選択を開始する */
01274                 BeginSelectArea();
01275             }
01276         }else{
01277             if( IsTextSelected() ){ /* テキストが選択されているか */
01278                 /* 現在の選択範囲を非選択状態に戻す */
01279                 DisableSelectArea( TRUE );
01280             }
01281         }
01282     }
01283     /* 現在行のデータを取得 */
01284     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
01285     CMemoryIterator<CLayout> it( pcLayout, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
01286     while( !it.end() ){
01287         it.scanNext();
01288         if ( it.getIndex() + it.getIndexDelta() > pcLayout->GetLengthWithoutEOL() ){
01289             nPosX += it.getColumnDelta();
01290             break;
01291         }
01292         it.addDelta();
01293     }
01294     nPosX += it.getColumn() - it.getColumnDelta();
01295     if( it.getIndex() >= (pcLayout ? pcLayout->GetLengthWithEOL() : 0) ){
01296         if( m_nCaretPosY + 1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
01297             /* 改行で終わっているか */
01298             if( EOL_NONE != pcLayout->m_cEol ){
01299             }else{
01300                 nPosX += it.getColumnDelta();
01301             }
01302         }
01303     }
01304
01305     MoveCursor( nPosX, m_nCaretPosY, TRUE );
01306     m_nCaretPosX_Prev = m_nCaretPosX;
01307     if( bSelect ){
01308         /* 現在のカーソル位置によって選択範囲を変更 */
01309         ChangeSelectAreaByCurrentCursor( nPosX, m_nCaretPosY );
01310     }
01311     return;
01312 }
01313
01314
01315
01316
01317 /* ファイルの先頭に移動 */
01318 void CEditView::Command_GOFILETOP( int bSelect )
01319 {
01320     /* 先頭へカーソルを移動 */
01321     //  Sep. 8, 2000 genta
01322     AddCurrentLineToHistory();
01323
01324     //  2006.07.09 genta 新規関数にまとめた
01325     MoveCursorSelecting( (!m_bBeginBoxSelect)? 0: m_nCaretPosX, 0, bSelect );   //  通常は、(0, 0)へ移動。ボックス選択中は、(m_nCaretPosX, 0)へ移動
01326 }
01327
01328
01329
01330
01331 /* ファイルの最後に移動 */
01332 void CEditView::Command_GOFILEEND( int bSelect )
01333 {
01334 // 2001.12.13 hor BOX選択中にファイルの最後にジャンプすると[EOF]の行が反転したままになるの修正
01335     if( !bSelect && IsTextSelected() ) DisableSelectArea( TRUE );   // 2001.12.21 hor Add
01336     AddCurrentLineToHistory();
01337     Cursor_UPDOWN( m_pcEditDoc->m_cLayoutMgr.GetLineCount() , bSelect );
01338     Command_DOWN( bSelect, TRUE );
01339     if ( !m_bBeginBoxSelect ){                          // 2002/04/18 YAZAKI
01340         /*  2004.04.19 fotomo
01341             改行のない最終行で選択肢ながら文書末へ移動した場合に
01342             選択範囲が正しくない場合がある問題に対応
01343         */
01344         Command_GOLINEEND( bSelect, FALSE );                // 2001.12.21 hor Add
01345     }
01346     MoveCursor( m_nCaretPosX, m_nCaretPosY, TRUE ); // 2001.12.21 hor Add
01347     // 2002.02.16 hor 矩形選択中を除き直前のカーソル位置をリセット
01348     if( !(IsTextSelected() && m_bBeginBoxSelect) ) m_nCaretPosX_Prev = m_nCaretPosX;
01349     return;
01350 // 2001.12.13 hor 以下をコメント (////はもともとコメント)
01351 //  HDC         hdc;
01352 //  PAINTSTRUCT ps;
01353 //  int bIsFreeCursorMode_old = m_pShareData->m_Common.m_bIsFreeCursorMode;
01354 //  int nLastLine;
01355 //  if( 0 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
01356 //      return;
01357 //  }
01358 //  m_pShareData->m_Common.m_bIsFreeCursorMode = FALSE;
01359 //  if( bSelect ){
01360 //      if( !IsTextSelected() ){    /* テキストが選択されているか */
01361 //          /* 現在のカーソル位置から選択を開始する */
01362 //          BeginSelectArea();
01363 //      }
01366 //  }else{
01367 //      if( IsTextSelected() ){ /* テキストが選択されているか */
01368 //          /* 現在の選択範囲を非選択状態に戻す */
01369 //          DisableSelectArea( TRUE );
01370 //      }
01371 //  }
01372 //  nLastLine = m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1;
01373 //  //  Sep. 8, 2000 genta
01374 //  AddCurrentLineToHistory();
01375 //  MoveCursor( 0, nLastLine, TRUE );
01376 //  if( bSelect ){
01377 //      m_nSelectLineTo = m_nCaretPosY;     /* 範囲選択終了行 */
01378 //  }
01379 //  Command_DOWN( bSelect, TRUE );
01380 //  Command_GOLINEEND( bSelect, TRUE );
01381 //  Command_RIGHT( bSelect, TRUE, FALSE );
01383 //  m_pShareData->m_Common.m_bIsFreeCursorMode = bIsFreeCursorMode_old;
01384 //  /* 再描画 */
01385 //  hdc = ::GetDC( m_hWnd );
01386 //  ps.rcPaint.left = 0;
01387 //  ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
01388 //  ps.rcPaint.top = m_nViewAlignTop;
01389 //  ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
01390 //  OnKillFocus();
01391 //  OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
01392 //  OnSetFocus();
01393 //  ::ReleaseDC( m_hWnd, hdc );
01394 //  return;
01395 }
01396
01397
01398
01399
01400 /* 単語の左端に移動 */
01401 void CEditView::Command_WORDLEFT( int bSelect )
01402 {
01403     int             nIdx;
01404     int             nLineNew;
01405     int             nColmNew;
01406     BOOL            bIsFreeCursorModeOld;
01407     if( bSelect ){
01408         if( !IsTextSelected() ){    /* テキストが選択されているか */
01409             /* 現在のカーソル位置から選択を開始する */
01410             BeginSelectArea();
01411         }
01412     }else{
01413         if( IsTextSelected() ){     /* テキストが選択されているか */
01414             /* 現在の選択範囲を非選択状態に戻す */
01415             DisableSelectArea( TRUE );
01416         }
01417     }
01418
01419     const CLayout* pcLayout;
01420     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
01421     if( NULL == pcLayout ){
01422         bIsFreeCursorModeOld = m_pShareData->m_Common.m_bIsFreeCursorMode;  /* フリーカーソルモードか */
01423         m_pShareData->m_Common.m_bIsFreeCursorMode = FALSE;
01424         /* カーソル左移動 */
01425         Command_LEFT( bSelect, FALSE );
01426         m_pShareData->m_Common.m_bIsFreeCursorMode = bIsFreeCursorModeOld;  /* フリーカーソルモードか */
01427         return;
01428     }
01429     /* 指定された桁に対応する行のデータ内の位置を調べる */
01430     nIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
01431     /* 現在位置の左の単語の先頭位置を調べる */
01432     if( m_pcEditDoc->m_cLayoutMgr.PrevWord( m_nCaretPosY, nIdx, &nLineNew, &nColmNew, m_pShareData->m_Common.m_bStopsBothEndsWhenSearchWord ) ){
01433         /* 行が変わった */
01434         if( nLineNew != m_nCaretPosY ){
01435             pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNew );
01436             if( NULL == pcLayout ){
01437                 return;
01438             }
01439         }
01440         /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
01441         nColmNew = LineIndexToColmn( pcLayout, nColmNew );
01442         /* カーソル移動 */
01443         MoveCursor( nColmNew, nLineNew, TRUE );
01444         m_nCaretPosX_Prev = m_nCaretPosX;
01445         if( bSelect ){
01446             /* 現在のカーソル位置によって選択範囲を変更 */
01447             ChangeSelectAreaByCurrentCursor( nColmNew, nLineNew );
01448         }
01449     }else{
01450         bIsFreeCursorModeOld = m_pShareData->m_Common.m_bIsFreeCursorMode;  /* フリーカーソルモードか */
01451         m_pShareData->m_Common.m_bIsFreeCursorMode = FALSE;
01452         /* カーソル左移動 */
01453         Command_LEFT( bSelect, FALSE );
01454 //      if( 0 < m_nCaretPosY ){
01455 //          /* 行末に移動 */
01456 //          Command_GOLINEEND( bSelect, FALSE );
01457 //      }
01458         m_pShareData->m_Common.m_bIsFreeCursorMode = bIsFreeCursorModeOld;  /* フリーカーソルモードか */
01459     }
01460     return;
01461 }
01462
01463
01464
01465
01466 /* 単語の右端に移動 */
01467 void CEditView::Command_WORDRIGHT( int bSelect )
01468 {
01469     int         nIdx;
01470     int         nCurLine;
01471     int         nLineNew;
01472     int         nColmNew;
01473     int         bTryAgain;
01474     BOOL        bIsFreeCursorModeOld;
01475     if( bSelect ){
01476         if( !IsTextSelected() ){    /* テキストが選択されているか */
01477             /* 現在のカーソル位置から選択を開始する */
01478             BeginSelectArea();
01479         }
01480     }else{
01481         if( IsTextSelected() ){ /* テキストが選択されているか */
01482             /* 現在の選択範囲を非選択状態に戻す */
01483             DisableSelectArea( TRUE );
01484         }
01485     }
01486     bTryAgain = FALSE;
01487 try_again:;
01488     nCurLine = m_nCaretPosY;
01489     const CLayout* pcLayout;
01490     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nCurLine );
01491     if( NULL == pcLayout ){
01492         return;
01493     }
01494     if( bTryAgain ){
01495         const char* pLine = pcLayout->GetPtr();
01496         if( pLine[0] != ' ' && pLine[0] != TAB ){
01497             return;
01498         }
01499     }
01500     /* 指定された桁に対応する行のデータ内の位置を調べる */
01501     nIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
01502     /* 現在位置の右の単語の先頭位置を調べる */
01503     if( m_pcEditDoc->m_cLayoutMgr.NextWord( nCurLine, nIdx, &nLineNew, &nColmNew, m_pShareData->m_Common.m_bStopsBothEndsWhenSearchWord ) ){
01504         /* 行が変わった */
01505         if( nLineNew != nCurLine ){
01506             pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNew );
01507             if( NULL == pcLayout ){
01508                 return;
01509             }
01510         }
01511         /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
01512         nColmNew = LineIndexToColmn( pcLayout, nColmNew );
01513         /* カーソル移動 */
01514         MoveCursor( nColmNew, nLineNew, TRUE );
01515         m_nCaretPosX_Prev = m_nCaretPosX;
01516         if( bSelect ){
01517             /* 現在のカーソル位置によって選択範囲を変更 */
01518             ChangeSelectAreaByCurrentCursor( nColmNew, nLineNew );
01519         }
01520     }else{
01521         bIsFreeCursorModeOld = m_pShareData->m_Common.m_bIsFreeCursorMode;  /* フリーカーソルモードか */
01522         m_pShareData->m_Common.m_bIsFreeCursorMode = FALSE;
01523         /* カーソル右移動 */
01524         Command_RIGHT( bSelect, FALSE, FALSE );
01525         m_pShareData->m_Common.m_bIsFreeCursorMode = bIsFreeCursorModeOld;  /* フリーカーソルモードか */
01526         if( FALSE == bTryAgain ){
01527             bTryAgain = TRUE;
01528             goto try_again;
01529         }
01530     }
01531     return;
01532 }
01533
01534
01535
01541 void CEditView::Command_COPY(
01542     int bIgnoreLockAndDisable,
01543     BOOL bAddCRLFWhenCopy,
01544     enumEOLType neweol
01545 )
01546 {
01547     CMemory         cmemBuf;
01548     BOOL            bBeginBoxSelect = FALSE;
01549
01550     /* クリップボードに入れるべきテキストデータを、cmemBufに格納する */
01551     if( IsTextSelected() ){
01552         /* テキストが選択されているときは、選択範囲のデータを取得 */
01553
01554         if( m_bBeginBoxSelect ){
01555             bBeginBoxSelect = TRUE;
01556         }
01557         /* 選択範囲のデータを取得 */
01558         /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
01559         if( FALSE == GetSelectedData( cmemBuf, FALSE, NULL, FALSE, bAddCRLFWhenCopy, neweol ) ){
01560             ::MessageBeep( MB_ICONHAND );
01561             return;
01562         }
01563     }else{
01564         /* 非選択時は、カーソル行をコピーする */
01565
01566         const CLayout*  pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
01567         if( NULL == pcLayout ){
01568             return;
01569         }
01570         cmemBuf.SetData( pcLayout->GetPtr(), pcLayout->GetLengthWithoutEOL() );
01571         if( pcLayout->m_cEol.GetLen() != 0 ){
01572             cmemBuf.AppendSz(
01573                 ( neweol == EOL_UNKNOWN ) ?
01574                     pcLayout->m_cEol.GetValue() : CEOL(neweol).GetValue()
01575             );
01576         }
01577     }
01578
01579     /* クリップボードにデータcmemBufの内容を設定 */
01580     if( FALSE == MySetClipboardData( cmemBuf.GetPtr(), cmemBuf.GetLength(), bBeginBoxSelect ) ){
01581         ::MessageBeep( MB_ICONHAND );
01582         return;
01583     }
01584
01585     /* 選択範囲の後片付け */
01586     if( !bIgnoreLockAndDisable ){
01587         /* 選択状態のロック */
01588         if( m_bSelectingLock ){
01589             m_bSelectingLock = FALSE;
01590         }
01591     }
01592     if( m_pShareData->m_Common.m_bCopyAndDisablSelection ){ /* コピーしたら選択解除 */
01593         /* テキストが選択されているか */
01594         if( IsTextSelected() ){
01595             /* 現在の選択範囲を非選択状態に戻す */
01596             DisableSelectArea( TRUE );
01597         }
01598     }
01599     return;
01600 }
01601
01602
01603
01604
01605 /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01606 void CEditView::Command_CUT( void )
01607 {
01608     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
01609         ::MessageBeep( MB_ICONHAND );
01610         return;
01611     }
01612
01613     CMemory cmemBuf;
01614     BOOL    bBeginBoxSelect;
01615     /* 範囲選択がされていない */
01616     if( !IsTextSelected() ){
01617         /* 非選択時は、カーソル行を切り取り */
01618         //行切り取り(折り返し単位)
01619         Command_CUT_LINE();
01620         return;
01621     }
01622     if( m_bBeginBoxSelect ){
01623         bBeginBoxSelect = TRUE;
01624     }else{
01625         bBeginBoxSelect = FALSE;
01626     }
01627     m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
01628     //SetParentCaption();   /* 親ウィンドウのタイトルを更新 */
01629
01630
01631     /* 選択範囲のデータを取得 */
01632     /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
01633     if( FALSE == GetSelectedData( cmemBuf, FALSE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy ) ){
01634         ::MessageBeep( MB_ICONHAND );
01635         return;
01636     }
01637     /* クリップボードにデータを設定 */
01638     if( FALSE == MySetClipboardData( cmemBuf.GetPtr(), cmemBuf.GetLength(), bBeginBoxSelect ) ){
01639         ::MessageBeep( MB_ICONHAND );
01640         return;
01641     }
01642
01643     /* カーソル位置または選択エリアを削除 */
01644     DeleteData( TRUE );
01645     return;
01646 }
01647
01648
01649
01650
01651 //カーソル位置または選択エリアを削除
01652 void CEditView::Command_DELETE( void )
01653 {
01654     if( m_bBeginSelect ){       /* マウスによる範囲選択中 */
01655         ::MessageBeep( MB_ICONHAND );
01656         return;
01657     }
01658
01659     if( !IsTextSelected() ){    /* テキストが選択されているか */
01660         DeleteData( TRUE );
01661         return;
01662     }
01663     DeleteData( TRUE );
01664     return;
01665 }
01666
01667
01668
01669
01670 //カーソル前を削除
01671 void CEditView::Command_DELETE_BACK( void )
01672 {
01673     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
01674         ::MessageBeep( MB_ICONHAND );
01675         return;
01676     }
01677
01678     COpe*       pcOpe = NULL;
01679     BOOL        bBool;
01680     int         nPosX;
01681     int         nPosY;
01682     //  May 29, 2004 genta 実際に削除された文字がないときはフラグをたてないように
01683     //m_pcEditDoc->SetModified(true,true);  //  Jan. 22, 2002 genta
01684     if( IsTextSelected() ){             /* テキストが選択されているか */
01685         DeleteData( TRUE );
01686         m_pcEditDoc->SetModified(true,true);    //  May 29, 2004 genta
01687     }else{
01688         nPosX = m_nCaretPosX;
01689         nPosY = m_nCaretPosY;
01690         bBool = Command_LEFT( FALSE, FALSE );
01691         if( bBool ){
01692             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01693                 pcOpe = new COpe;
01694                 pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
01695 //              pcOpe->m_nCaretPosX_Before = nPosX;         /* 操作前のキャレット位置Ｘ */
01696 //              pcOpe->m_nCaretPosY_Before = nPosY;         /* 操作前のキャレット位置Ｙ */
01697 //              m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01698 //                  pcOpe->m_nCaretPosX_Before,
01699 //                  pcOpe->m_nCaretPosY_Before,
01700 //                  &pcOpe->m_nCaretPosX_PHY_Before,
01701 //                  &pcOpe->m_nCaretPosY_PHY_Before
01702 //              );
01703                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01704                     nPosX,
01705                     nPosY,
01706                     &pcOpe->m_nCaretPosX_PHY_Before,
01707                     &pcOpe->m_nCaretPosY_PHY_Before
01708                 );
01709
01710
01711 //              pcOpe->m_nCaretPosX_After = m_nCaretPosX;   /* 操作後のキャレット位置Ｘ */
01712 //              pcOpe->m_nCaretPosY_After = m_nCaretPosY;   /* 操作後のキャレット位置Ｙ */
01713 //              m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01714 //                  pcOpe->m_nCaretPosX_After,
01715 //                  pcOpe->m_nCaretPosY_After,
01716 //                  &pcOpe->m_nCaretPosX_PHY_After,
01717 //                  &pcOpe->m_nCaretPosY_PHY_After
01718 //              );
01719                 pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
01720                 pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
01721                 /* 操作の追加 */
01722                 m_pcOpeBlk->AppendOpe( pcOpe );
01723             }
01724             DeleteData( TRUE );
01725             m_pcEditDoc->SetModified(true,true);    //  May 29, 2004 genta
01726         }
01727     }
01728     PostprocessCommand_hokan(); //  Jan. 10, 2005 genta 関数化
01729     return;
01730 }
01731
01732
01733
01734
01735 //単語の右端まで削除
01736 void CEditView::Command_WordDeleteToEnd( void )
01737 {
01738     COpe*   pcOpe = NULL;
01739     CMemory cmemData;
01740
01741     /* 矩形選択状態では実行不能((★★もろ手抜き★★)) */
01742     if( IsTextSelected() ){
01743         /* 矩形範囲選択中か */
01744         if( m_bBeginBoxSelect ){
01745             ::MessageBeep( MB_ICONHAND );
01746             return;
01747         }
01748     }
01749     /* 単語の右端に移動 */
01750     CEditView::Command_WORDRIGHT( TRUE );
01751     if( !IsTextSelected() ){
01752         ::MessageBeep( MB_ICONHAND );
01753         return;
01754     }
01755     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01756         pcOpe = new COpe;
01757         pcOpe->m_nOpe = OPE_MOVECARET;                          /* 操作種別 */
01758 //      pcOpe->m_nCaretPosX_Before = m_nSelectColmFrom;         /* 操作前のキャレット位置Ｘ */
01759 //      pcOpe->m_nCaretPosY_Before = m_nSelectLineFrom;         /* 操作前のキャレット位置Ｙ */
01760 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01761 //          pcOpe->m_nCaretPosX_Before,
01762 //          pcOpe->m_nCaretPosY_Before,
01763 //          &pcOpe->m_nCaretPosX_PHY_Before,
01764 //          &pcOpe->m_nCaretPosY_PHY_Before
01765 //      );
01766         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01767             m_nSelectColmFrom,
01768             m_nSelectLineFrom,
01769             &pcOpe->m_nCaretPosX_PHY_Before,
01770             &pcOpe->m_nCaretPosY_PHY_Before
01771         );
01772
01773
01774 //      pcOpe->m_nCaretPosX_After = pcOpe->m_nCaretPosX_Before;         /* 操作後のキャレット位置Ｘ */
01775 //      pcOpe->m_nCaretPosY_After = pcOpe->m_nCaretPosY_Before;         /* 操作後のキャレット位置Ｙ */
01776         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
01777         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
01778         /* 操作の追加 */
01779         m_pcOpeBlk->AppendOpe( pcOpe );
01780     }
01781     /* 削除 */
01782     DeleteData( TRUE );
01783     return;
01784 }
01785
01786
01787
01788
01789 //単語の左端まで削除
01790 void CEditView::Command_WordDeleteToStart( void )
01791 {
01792     COpe*   pcOpe = NULL;
01793     CMemory cmemData;
01794     /* 矩形選択状態では実行不能(★★もろ手抜き★★) */
01795     if( IsTextSelected() ){
01796         /* 矩形範囲選択中か */
01797         if( m_bBeginBoxSelect ){
01798             ::MessageBeep( MB_ICONHAND );
01799             return;
01800         }
01801     }
01802     /* 単語の左端に移動 */
01803     CEditView::Command_WORDLEFT( TRUE );
01804     if( !IsTextSelected() ){
01805         ::MessageBeep( MB_ICONHAND );
01806         return;
01807     }
01808     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01809         pcOpe = new COpe;
01810 //      pcOpe->m_nOpe = OPE_MOVECARET;                  /* 操作種別 */
01811 //      pcOpe->m_nCaretPosX_Before = m_nSelectColmTo;   /* 操作前のキャレット位置Ｘ */
01812 //      pcOpe->m_nCaretPosY_Before = m_nSelectLineTo;   /* 操作前のキャレット位置Ｙ */
01813 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01814 //          pcOpe->m_nCaretPosX_Before,
01815 //          pcOpe->m_nCaretPosY_Before,
01816 //          &pcOpe->m_nCaretPosX_PHY_Before,
01817 //          &pcOpe->m_nCaretPosY_PHY_Before
01818 //      );
01819         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01820             m_nSelectColmTo,
01821             m_nSelectLineTo,
01822             &pcOpe->m_nCaretPosX_PHY_Before,
01823             &pcOpe->m_nCaretPosY_PHY_Before
01824         );
01825
01826
01827 //      pcOpe->m_nCaretPosX_After = pcOpe->m_nCaretPosX_Before;         /* 操作後のキャレット位置Ｘ */
01828 //      pcOpe->m_nCaretPosY_After = pcOpe->m_nCaretPosY_Before;         /* 操作後のキャレット位置Ｙ */
01829         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
01830         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
01831         /* 操作の追加 */
01832         m_pcOpeBlk->AppendOpe( pcOpe );
01833     }
01834     /* 削除 */
01835     DeleteData( TRUE );
01836     return;
01837 }
01838
01839
01840
01841
01842 //単語切り取り
01843 void CEditView::Command_WordCut( void )
01844 {
01845     if( IsTextSelected() ){
01846         /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01847         Command_CUT();
01848         return;
01849     }
01850     //現在位置の単語選択
01851     Command_SELECTWORD();
01852     /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01853     if ( !IsTextSelected() ){
01854         //  単語選択で選択できなかったら、次の文字を選ぶことに挑戦。
01855         Command_RIGHT( TRUE, FALSE, FALSE );
01856     }
01857     Command_CUT();
01858     return;
01859 }
01860
01861
01862
01863
01864 //単語削除
01865 void CEditView::Command_WordDelete( void )
01866 {
01867     if( IsTextSelected() ){
01868         /* 削除 */
01869         DeleteData( TRUE );
01870         return;
01871     }
01872     //現在位置の単語選択
01873     Command_SELECTWORD();
01874     /* 削除 */
01875     DeleteData( TRUE );
01876     return;
01877 }
01878
01879
01880
01881
01882 //行頭まで切り取り(改行単位)
01883 void CEditView::Command_LineCutToStart( void )
01884 {
01885     int         nX;
01886     int         nY;
01887     CLayout*    pCLayout;
01888     if( IsTextSelected() ){ /* テキストが選択されているか */
01889         /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01890         Command_CUT();
01891         return;
01892     }
01893     pCLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );    /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
01894     if( NULL == pCLayout ){
01895         ::MessageBeep( MB_ICONHAND );
01896         return;
01897     }
01898     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( 0, pCLayout->m_nLinePhysical, &nX, &nY );
01899     if( m_nCaretPosX == nX && m_nCaretPosY == nY ){
01900         ::MessageBeep( MB_ICONHAND );
01901         return;
01902     }
01903     /* 選択範囲の変更 */
01904     //  2005.06.24 Moca
01905     SetSelectArea( nY, nX, m_nCaretPosY, m_nCaretPosX );
01906 //  /* 選択領域描画 */
01907 //  DrawSelectArea();
01908     /*切り取り(選択範囲をクリップボードにコピーして削除) */
01909     Command_CUT();
01910     return;
01911 }
01912
01913
01914
01915
01916 //行末まで切り取り(改行単位)
01917 void CEditView::Command_LineCutToEnd( void )
01918 {
01919     int         nX;
01920     int         nY;
01921     CLayout*    pCLayout;
01922     if( IsTextSelected() ){ /* テキストが選択されているか */
01923         /* 切り取り(選択範囲をクリップボードにコピーして削除) */
01924         Command_CUT();
01925         return;
01926     }
01927     pCLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );    /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
01928     if( NULL == pCLayout ){
01929         ::MessageBeep( MB_ICONHAND );
01930         return;
01931     }
01932     if( EOL_NONE == pCLayout->m_pCDocLine->m_cEol ){    /* 改行コードの種類 */
01933         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( pCLayout->m_pCDocLine->m_pLine->GetLength() , pCLayout->m_nLinePhysical, &nX, &nY );
01934     }else{
01935 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( pCLayout->m_pCDocLine->m_pLine->GetLength() - 1, pCLayout->m_nLinePhysical, &nX, &nY );
01936         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( pCLayout->m_pCDocLine->m_pLine->GetLength() - pCLayout->m_pCDocLine->m_cEol.GetLen(), pCLayout->m_nLinePhysical, &nX, &nY );
01937     }
01938     if( ( m_nCaretPosX == nX && m_nCaretPosY == nY )
01939      || ( m_nCaretPosX >  nX && m_nCaretPosY == nY )
01940     ){
01941         ::MessageBeep( MB_ICONHAND );
01942         return;
01943     }
01944     /* 選択範囲の変更 */
01945     //  2005.06.24 Moca
01946     SetSelectArea( m_nCaretPosY, m_nCaretPosX, nY, nX );
01947 //  /* 選択領域描画 */
01948 //  DrawSelectArea();
01949     /*切り取り(選択範囲をクリップボードにコピーして削除) */
01950     Command_CUT();
01951     return;
01952 }
01953
01954
01955
01956
01957 //行頭まで削除(改行単位)
01958 void CEditView::Command_LineDeleteToStart( void )
01959 {
01960     int         nX;
01961     int         nY;
01962     CLayout*    pCLayout;
01963     if( IsTextSelected() ){ /* テキストが選択されているか */
01964         DeleteData( TRUE );
01965         return;
01966     }
01967     pCLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );    /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
01968     if( NULL == pCLayout ){
01969         ::MessageBeep( MB_ICONHAND );
01970         return;
01971     }
01972     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( 0, pCLayout->m_nLinePhysical, &nX, &nY );
01973     if( m_nCaretPosX == nX && m_nCaretPosY == nY ){
01974         ::MessageBeep( MB_ICONHAND );
01975         return;
01976     }
01977     /* 選択範囲の変更 */
01978     //  2005.06.24 Moca
01979     SetSelectArea( nY, nX, m_nCaretPosY, m_nCaretPosX );
01980 //  /* 選択領域描画 */
01981 //  DrawSelectArea();
01982     /* 選択領域削除 */
01983     DeleteData( TRUE );
01984     return;
01985 }
01986
01987
01988
01989
01990 //行末まで削除(改行単位)
01991 void CEditView::Command_LineDeleteToEnd( void )
01992 {
01993     int         nX;
01994     int         nY;
01995     CLayout*    pCLayout;
01996     if( IsTextSelected() ){ /* テキストが選択されているか */
01997         DeleteData( TRUE );
01998         return;
01999     }
02000     pCLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );    /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
02001     if( NULL == pCLayout ){
02002         ::MessageBeep( MB_ICONHAND );
02003         return;
02004     }
02005     if( EOL_NONE == pCLayout->m_pCDocLine->m_cEol ){    /* 改行コードの種類 */
02006         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( pCLayout->m_pCDocLine->m_pLine->GetLength() , pCLayout->m_nLinePhysical, &nX, &nY );
02007     }else{
02008 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( pCLayout->m_pCDocLine->m_pLine->GetLength() - 1, pCLayout->m_nLinePhysical, &nX, &nY );
02009         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( pCLayout->m_pCDocLine->m_pLine->GetLength() - pCLayout->m_pCDocLine->m_cEol.GetLen(), pCLayout->m_nLinePhysical, &nX, &nY );
02010     }
02011     if( ( m_nCaretPosX == nX && m_nCaretPosY == nY )
02012      || ( m_nCaretPosX >  nX && m_nCaretPosY == nY )
02013     ){
02014         ::MessageBeep( MB_ICONHAND );
02015         return;
02016     }
02017     /* 選択範囲の変更 */
02018     //  2005.06.24 Moca
02019     SetSelectArea( m_nCaretPosY, m_nCaretPosX, nY, nX );
02020 //  /* 選択領域描画 */
02021 //  DrawSelectArea();
02022     /* 選択領域削除 */
02023     DeleteData( TRUE );
02024     return;
02025 }
02026
02027
02028
02029
02030 //行切り取り(折り返し単位)
02031 void CEditView::Command_CUT_LINE( void )
02032 {
02033     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
02034         ::MessageBeep( MB_ICONHAND );
02035         return;
02036     }
02037
02038     int             nCaretPosX_OLD;
02039     int             nCaretPosY_OLD;
02040     const CLayout*  pcLayout;
02041     COpe*           pcOpe = NULL;
02042     if( IsTextSelected() ){ /* テキストが選択されているか */
02043         ::MessageBeep( MB_ICONHAND );
02044         return;
02045     }
02046     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
02047     if( NULL == pcLayout ){
02048         ::MessageBeep( MB_ICONHAND );
02049         return;
02050     }
02051     m_nSelectLineFrom = m_nCaretPosY;       /* 範囲選択開始行 */
02052     m_nSelectColmFrom = m_nCaretPosX;       /* 範囲選択開始桁 */
02053     m_nSelectLineTo = m_nCaretPosY;         /* 範囲選択終了行 */
02054     m_nSelectColmTo = m_nCaretPosX + 1;     /* 範囲選択終了桁 */
02055     nCaretPosX_OLD = m_nCaretPosX;
02056     nCaretPosY_OLD = m_nCaretPosY;
02057     /* 選択範囲内の全行をクリップボードにコピーする */
02058     Command_COPYLINES();
02059     Command_DELETE();
02060     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
02061     if( NULL != pcLayout ){
02062         // 2003-04-30 かろと
02063         // 行削除した後、フリーカーソルでないのにカーソル位置が行端より右になる不具合対応
02064         // フリーカーソルモードでない場合は、カーソル位置を調整する
02065         if( !m_pShareData->m_Common.m_bIsFreeCursorMode ) {
02066             int nIndex;
02067             nIndex = LineColmnToIndex2( pcLayout, nCaretPosX_OLD, nCaretPosX_OLD );
02068             if (nCaretPosX_OLD > 0) {
02069                 nCaretPosX_OLD--;
02070             } else {
02071                 nCaretPosX_OLD = LineIndexToColmn( pcLayout, nIndex );
02072             }
02073         }
02074         /* 操作前の位置へカーソルを移動 */
02075         MoveCursor( nCaretPosX_OLD, nCaretPosY_OLD, TRUE );
02076         m_nCaretPosX_Prev = m_nCaretPosX;
02077         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02078             pcOpe = new COpe;
02079             pcOpe->m_nOpe = OPE_MOVECARET;                  /* 操作種別 */
02080             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
02081             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
02082
02083             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
02084             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
02085             /* 操作の追加 */
02086             m_pcOpeBlk->AppendOpe( pcOpe );
02087         }
02088     }
02089     return;
02090 }
02091
02092
02093
02094
02095 /* 行削除(折り返し単位) */
02096 void CEditView::Command_DELETE_LINE( void )
02097 {
02098     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
02099         ::MessageBeep( MB_ICONHAND );
02100         return;
02101     }
02102
02103     int             nCaretPosX_OLD;
02104     int             nCaretPosY_OLD;
02105     COpe*           pcOpe = NULL;
02106     const CLayout*  pcLayout;
02107     if( IsTextSelected() ){ /* テキストが選択されているか */
02108         ::MessageBeep( MB_ICONHAND );
02109         return;
02110     }
02111     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
02112     if( NULL == pcLayout ){
02113         ::MessageBeep( MB_ICONHAND );
02114         return;
02115     }
02116     m_nSelectLineFrom = m_nCaretPosY;       /* 範囲選択開始行 */
02117     m_nSelectColmFrom = 0;                  /* 範囲選択開始桁 */
02118     m_nSelectLineTo = m_nCaretPosY + 1;     /* 範囲選択終了行 */
02119     m_nSelectColmTo = 0;                    /* 範囲選択終了桁 */
02120
02121     nCaretPosX_OLD = m_nCaretPosX;
02122     nCaretPosY_OLD = m_nCaretPosY;
02123
02124     Command_DELETE();
02125     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
02126     if( NULL != pcLayout ){
02127         // 2003-04-30 かろと
02128         // 行削除した後、フリーカーソルでないのにカーソル位置が行端より右になる不具合対応
02129         // フリーカーソルモードでない場合は、カーソル位置を調整する
02130         if( !m_pShareData->m_Common.m_bIsFreeCursorMode ) {
02131             int nIndex;
02132             nIndex = LineColmnToIndex2( pcLayout, nCaretPosX_OLD, nCaretPosX_OLD );
02133             if (nCaretPosX_OLD > 0) {
02134                 nCaretPosX_OLD--;
02135             } else {
02136                 nCaretPosX_OLD = LineIndexToColmn( pcLayout, nIndex );
02137             }
02138         }
02139         /* 操作前の位置へカーソルを移動 */
02140         MoveCursor( nCaretPosX_OLD, nCaretPosY_OLD, TRUE );
02141         m_nCaretPosX_Prev = m_nCaretPosX;
02142         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02143             pcOpe = new COpe;
02144             pcOpe->m_nOpe = OPE_MOVECARET;                  /* 操作種別 */
02145             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
02146             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
02147
02148             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
02149             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
02150             /* 操作の追加 */
02151             m_pcOpeBlk->AppendOpe( pcOpe );
02152         }
02153     }
02154     return;
02155 }
02156
02157
02158
02159
02160 /* すべて選択 */
02161 void CEditView::Command_SELECTALL( void )
02162 {
02163     if( IsTextSelected() ){ /* テキストが選択されているか */
02164         /* 現在の選択範囲を非選択状態に戻す */
02165         DisableSelectArea( TRUE );
02166     }
02167     /* 先頭へカーソルを移動 */
02168     //  Sep. 8, 2000 genta
02169     AddCurrentLineToHistory();
02170     // MoveCursor( 0, 0, TRUE );
02171     m_nCaretPosX_Prev = m_nCaretPosX;
02172
02173     /* 全体を選択する */
02174     //  2005.06.24 Moca
02175     //SetSelectArea( 0, 0, m_pcEditDoc->m_cLayoutMgr.GetLineCount(), 0 );
02176     //  Jul. 29, 2006 genta 選択位置の末尾を正確に取得する
02177     //  マクロから取得した場合に正しい範囲が取得できないため
02178     int nX, nY;
02179     m_pcEditDoc->m_cLayoutMgr.GetEndLayoutPos(nX, nY);
02180     SetSelectArea( 0, 0, nY, nX );
02181
02182     /* 選択領域描画 */
02183     DrawSelectArea();
02184     return;
02185 }
02186
02187
02188
02189
02190 /* 現在位置の単語選択 */
02191 bool CEditView::Command_SELECTWORD( void )
02192 {
02193     int             nLineFrom;
02194     int             nColmFrom;
02195     int             nLineTo;
02196     int             nColmTo;
02197     int             nIdx;
02198     if( IsTextSelected() ){ /* テキストが選択されているか */
02199         /* 現在の選択範囲を非選択状態に戻す */
02200         DisableSelectArea( TRUE );
02201     }
02202     const CLayout*  pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
02203     if( NULL == pcLayout ){
02204         return false;   //  単語選択に失敗
02205     }
02206     /* 指定された桁に対応する行のデータ内の位置を調べる */
02207     nIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
02208
02209     /* 現在位置の単語の範囲を調べる */
02210     if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
02211         m_nCaretPosY, nIdx,
02212         &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, NULL, NULL ) ){
02213
02214         /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
02215         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineFrom );
02216         nColmFrom = LineIndexToColmn( pcLayout, nColmFrom );
02217         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineTo );
02218         nColmTo = LineIndexToColmn( pcLayout, nColmTo );
02219
02220         /* 選択範囲の変更 */
02221         //  2005.06.24 Moca
02222         SetSelectArea( nLineFrom, nColmFrom, nLineTo, nColmTo );
02223
02224         /* 単語の先頭にカーソルを移動 */
02225         MoveCursor( nColmTo, nLineTo, TRUE );
02226         m_nCaretPosX_Prev = m_nCaretPosX;
02227
02228         /* 選択領域描画 */
02229         DrawSelectArea();
02230         return true;    //  単語選択に成功。
02231     }
02232     else {
02233         return false;   //  単語選択に失敗
02234     }
02235 }
02236
02237
02238
02239
02240 /* 貼り付け(クリップボードから貼り付け) */
02241 void CEditView::Command_PASTE( void )
02242 {
02243     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
02244         ::MessageBeep( MB_ICONHAND );
02245         return;
02246     }
02247
02248
02249 //  HGLOBAL     hglb;
02250     char*       pszText;
02251     int         nNewLine;       /* 挿入された部分の次の位置の行 */
02252     int         nNewPos;        /* 挿入された部分の次の位置のデータ位置 */
02253     COpe*       pcOpe = NULL;
02254     CWaitCursor cWaitCursor( m_hWnd );
02255     BOOL        bBox;
02256     char        szPaste[1024];
02257     int         i;
02258     int         nTextLen;
02259
02260     /* クリップボードからデータを取得 */
02261     CMemory     cmemClip;
02262     BOOL        bColmnSelect;
02263     if( FALSE == MyGetClipboardData( cmemClip, &bColmnSelect ) ){
02264         ::MessageBeep( MB_ICONHAND );
02265         return;
02266     }
02267
02268     /* 矩形コピーのテキストは常に矩形貼り付け */
02269     if( m_pShareData->m_Common.m_bAutoColmnPaste ){
02270         /* 矩形コピーのデータなら矩形貼り付け */
02271         if( bColmnSelect ){
02272             Command_PASTEBOX();
02273             return;
02274         }
02275     }
02276     pszText = cmemClip.GetPtr( &nTextLen );
02277
02278     /* テキストが選択されているか */
02279     bBox = FALSE;
02280     if( IsTextSelected() ){
02281         /* 矩形範囲選択中か */
02282         if( m_bBeginBoxSelect ){
02283             bBox = TRUE;
02284         }else{
02285 //          DeleteData( TRUE );
02286             //  Jun. 23, 2000 genta
02287             //  同一行の行末以降のみが選択されている場合には選択無しと見なす
02288             int         len, pos;
02289             const char  *line;
02290             const CLayout* pcLayout;
02291             line = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nSelectLineFrom, &len, &pcLayout );
02292
02293             pos = ( line == NULL ) ? 0 : LineColmnToIndex( pcLayout, m_nSelectColmFrom );
02294             if( pos >= len &&   //  開始位置が行末より後ろで
02295                 m_nSelectLineFrom == m_nSelectLineTo    //  終了位置が同一行
02296                 ){
02297                 m_nCaretPosX = m_nSelectColmFrom;
02298                 DisableSelectArea(false);
02299             }
02300             else{
02301
02302                 /* データ置換 削除&挿入にも使える */
02303                 ReplaceData_CEditView(
02304                     m_nSelectLineFrom,      /* 範囲選択開始行 */
02305                     m_nSelectColmFrom,      /* 範囲選択開始桁 */
02306                     m_nSelectLineTo,        /* 範囲選択終了行 */
02307                     m_nSelectColmTo,        /* 範囲選択終了桁 */
02308                     NULL,                   /* 削除されたデータのコピー(NULL可能) */
02309                     pszText,                /* 挿入するデータ */
02310                     nTextLen,               /* 挿入するデータの長さ */
02311                     TRUE
02312                 );
02313 #ifdef _DEBUG
02314                     gm_ProfileOutput = FALSE;
02315 #endif
02316                 return;
02317             }
02318         }
02319     }
02320     if( bBox ){
02321         for( i = 0; i < (int)nTextLen/*lstrlen( pszText )*/; i++  ){
02322             if( pszText[i] == CR || pszText[i] == LF ){
02323                 break;
02324             }
02325         }
02326         memcpy( szPaste, pszText, i );
02327         szPaste[i] = '\0';
02328 //      Command_INDENT( szPaste, lstrlen( szPaste ) );
02329         Command_INDENT( szPaste, i );
02330     }else{
02331         m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
02332         if( !m_bDoing_UndoRedo ){                       /* アンドゥ・リドゥの実行中か */
02333             pcOpe = new COpe;
02334 //          pcOpe->m_nCaretPosX_Before = m_nCaretPosX;  /* 操作前のキャレット位置Ｘ */
02335 //          pcOpe->m_nCaretPosY_Before = m_nCaretPosY;  /* 操作前のキャレット位置Ｙ */
02336 //          m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02337 //              pcOpe->m_nCaretPosX_Before,
02338 //              pcOpe->m_nCaretPosY_Before,
02339 //              &pcOpe->m_nCaretPosX_PHY_Before,
02340 //              &pcOpe->m_nCaretPosY_PHY_Before
02341 //          );
02342             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
02343             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
02344         }
02345         /* 現在位置にデータを挿入 */
02346         InsertData_CEditView( m_nCaretPosX, m_nCaretPosY, pszText, nTextLen/*lstrlen(pszText)*/, &nNewLine, &nNewPos, pcOpe, TRUE );
02347 //      ::GlobalUnlock(hglb);
02348         /* 挿入データの最後へカーソルを移動 */
02349         MoveCursor( nNewPos, nNewLine, TRUE );
02350         m_nCaretPosX_Prev = m_nCaretPosX;
02351         if( !m_bDoing_UndoRedo ){                               /* アンドゥ・リドゥの実行中か */
02352 //          pcOpe->m_nCaretPosX_After = m_nCaretPosX;           /* 操作後のキャレット位置Ｘ */
02353 //          pcOpe->m_nCaretPosY_After = m_nCaretPosY;           /* 操作後のキャレット位置Ｙ */
02354 //          m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02355 //              pcOpe->m_nCaretPosX_After,
02356 //              pcOpe->m_nCaretPosY_After,
02357 //              &pcOpe->m_nCaretPosX_PHY_After,
02358 //              &pcOpe->m_nCaretPosY_PHY_After
02359 //          );
02360             pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
02361             pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
02362             /* 操作の追加 */
02363             m_pcOpeBlk->AppendOpe( pcOpe );
02364         }
02365     }
02366     return;
02367
02368 }
02369
02370
02371
02372
02374 //void CEditView::Command_INSTEXT( BOOL bRedraw, const char* pData, int nDataLen )
02375 //{
02376 //  char*   pszText;
02377 //  pszText = new char[ nDataLen + 1];
02378 //  memcpy( pszText, pData, nDataLen );
02379 //  pszText[nDataLen] = '\0';
02380 //  Command_INSTEXT( bRedraw, pszText );
02381 //  delete [] pszText;
02382 //  return;
02383 //}
02384
02385
02386
02387
02393 void CEditView::Command_INSTEXT( BOOL bRedraw, const char* pszText, int nTextLen, BOOL bNoWaitCursor )
02394 {
02395     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
02396         ::MessageBeep( MB_ICONHAND );
02397         return;
02398     }
02399
02400 //  HGLOBAL         hglb;
02401 //  char*           lptstr;
02402     int             nNewLine;           /* 挿入された部分の次の位置の行 */
02403     int             nNewPos;            /* 挿入された部分の次の位置のデータ位置 */
02404     COpe*           pcOpe = NULL;
02405     CWaitCursor*    pcWaitCursor;
02406     int             i;
02407
02408     m_pcEditDoc->SetModified(true,bRedraw); //  Jan. 22, 2002 genta
02409     if( bNoWaitCursor ){
02410         pcWaitCursor = NULL;
02411     }else{
02412         pcWaitCursor = new CWaitCursor( m_hWnd );
02413     }
02414
02415     if( nTextLen < 0 ){
02416         nTextLen = lstrlen( pszText );
02417     }
02418
02420 //#ifdef _DEBUG
02421 //  if( IsTextSelected()
02422 //   && FALSE == m_bBeginBoxSelect  /* 矩形範囲選択中ではない */
02423 //  ){
02424 //      /* データ置換 削除&挿入にも使える */
02425 //      ReplaceData_CEditView(
02426 //          pszText,                /* 挿入するデータ */
02427 //          strlen( pszText ),      /* 挿入するデータの長さ */
02428 //          bRedraw,
02429 //      );
02430 //      return;
02431 //  }
02432 //#endif _DEBUG
02434
02435
02436     /* テキストが選択されているか */
02437     if( IsTextSelected() ){
02438         /* 矩形範囲選択中か */
02439         if( m_bBeginBoxSelect ){
02440             // i = strcspn(pszText, CRLF);
02441             // 2004.05.14 Moca strcspnでは'\0'が扱えないので
02442             for( i = 0; i < nTextLen; i++ ){
02443                 if( pszText[i] == CR
02444                  || pszText[i] == LF ){
02445                     break;
02446                 }
02447             }
02448             Command_INDENT( pszText, i );
02449         }
02450         else{
02451             /* データ置換 削除&挿入にも使える */
02452             ReplaceData_CEditView(
02453                 m_nSelectLineFrom,      /* 範囲選択開始行 */
02454                 m_nSelectColmFrom,      /* 範囲選択開始桁 */
02455                 m_nSelectLineTo,        /* 範囲選択終了行 */
02456                 m_nSelectColmTo,        /* 範囲選択終了桁 */
02457                 NULL,                   /* 削除されたデータのコピー(NULL可能) */
02458                 pszText,                /* 挿入するデータ */
02459                 nTextLen,       /* 挿入するデータの長さ */
02460                 bRedraw
02461             );
02462 #ifdef _DEBUG
02463                 gm_ProfileOutput = FALSE;
02464 #endif
02465         }
02466     }
02467     else
02468     {
02469         m_pcEditDoc->SetModified(true,true);    /* 変更フラグ */
02470         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02471             pcOpe = new COpe;
02472             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
02473             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
02474         }
02475
02476         //  Jun. 13, 2004 genta 不要なチェック？
02477         if( nTextLen < 0 ){
02478 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONWARNING, GSTR_APPNAME,
02479                 _T("バグじゃないの？ @Command_INSTEXT") );
02480             nTextLen = lstrlen( pszText );
02481         }
02482         /* 現在位置にデータを挿入 */
02483         InsertData_CEditView( m_nCaretPosX, m_nCaretPosY, pszText, nTextLen, &nNewLine, &nNewPos, pcOpe, TRUE );
02484         /* 挿入データの最後へカーソルを移動 */
02485         MoveCursor( nNewPos, nNewLine, bRedraw/*TRUE 2002.02.16 hor */ );
02486         m_nCaretPosX_Prev = m_nCaretPosX;
02487         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02488             pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
02489             pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
02490             /* 操作の追加 */
02491             m_pcOpeBlk->AppendOpe( pcOpe );
02492         }
02493     }
02494
02495     if( NULL != pcWaitCursor ){
02496         delete pcWaitCursor;
02497     }
02498     return;
02499 }
02500
02501 //<< 2002/03/28 Azumaiya
02502 // メモリデータを矩形貼り付け用のデータと解釈して処理する。
02503 //  なお、この関数は Command_PASTEBOX(void) と、
02504 // 2769 : m_pcEditDoc->SetModified(true,true);  //  Jan. 22, 2002 genta
02505 // から、
02506 // 3057 : m_bDrawSWITCH=TRUE;   // 2002.01.25 hor
02507 // 間まで、一緒です。
02508 //  ですが、コメントを削ったり、#if 0 のところを削ったりしていますので、Command_PASTEBOX(void) は
02509 // 残すようにしました(下にこの関数を使った使ったバージョンをコメントで書いておきました)。
02510 //  なお、以下にあげるように Command_PASTEBOX(void) と違うところがあるので注意してください。
02511 // > 呼び出し側が責任を持って、
02512 // ・マウスによる範囲選択中である。
02513 // ・現在のフォントは固定幅フォントである。
02514 // の 2 点をチェックする。
02515 // > 再描画を行わない
02516 // です。
02517 //  なお、これらを呼び出し側に期待するわけは、「すべて置換」のような何回も連続で呼び出す
02518 // ときに、最初に一回チェックすればよいものを何回もチェックするのは無駄と判断したためです。
02519 // @note 2004.06.30 現在、すべて置換では使用していない
02520 void CEditView::Command_PASTEBOX( const char *szPaste, int nPasteSize )
02521 {
02522     /* これらの動作は残しておきたいのだが、呼び出し側で責任を持ってやってもらうことに変更。
02523     if( m_bBeginSelect )    // マウスによる範囲選択中
02524     {
02525         ::MessageBeep( MB_ICONHAND );
02526         return;
02527     }
02528
02529
02530     if( FALSE == m_pShareData->m_Common.m_bFontIs_FIXED_PITCH ) // 現在のフォントは固定幅フォントである
02531     {
02532         return;
02533     }
02534     */
02535
02536     int             nBgn;
02537     int             nPos;
02538     int             nCount;
02539     int             nNewLine;       /* 挿入された部分の次の位置の行 */
02540     int             nNewPos;        /* 挿入された部分の次の位置のデータ位置 */
02541     int             nCurXOld;
02542     int             nCurYOld;
02543     COpe*           pcOpe = NULL;
02544     BOOL            bAddLastCR;
02545     int             nInsPosX;
02546
02547     m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
02548
02549     m_bDrawSWITCH = FALSE;  // 2002.01.25 hor
02550
02551     // とりあえず選択範囲を削除
02552     // 2004.06.30 Moca IsTextSelected()がないと未選択時、一文字消えてしまう
02553     if( IsTextSelected() ){
02554         DeleteData( FALSE/*TRUE 2002.01.25 hor*/ );
02555     }
02556
02557     nCurXOld = m_nCaretPosX;
02558     nCurYOld = m_nCaretPosY;
02559
02560     nCount = 0;
02561
02562     // Jul. 10, 2005 genta 貼り付けデータの最後にCR/LFが無い場合の対策
02563     //  データの最後まで処理 i.e. nBgnがnPasteSizeを超えたら終了
02564     //for( nPos = 0; nPos < nPasteSize; )
02565     for( nBgn = nPos = 0; nBgn < nPasteSize; )
02566     {
02567         // Jul. 10, 2005 genta 貼り付けデータの最後にCR/LFが無いと
02568         //  最終行のPaste処理が動かないので，
02569         //  データの末尾に来た場合は強制的に処理するようにする
02570         if( szPaste[nPos] == CR || szPaste[nPos] == LF ||
02571             nPos == nPasteSize )
02572         {
02573             if( !m_bDoing_UndoRedo )    /* アンドゥ・リドゥの実行中か */
02574             {
02575                 pcOpe = new COpe;
02576                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02577                                                 nCurXOld,
02578                                                 nCurYOld + nCount,
02579                                                 &pcOpe->m_nCaretPosX_PHY_Before,
02580                                                 &pcOpe->m_nCaretPosY_PHY_Before
02581                                                 );
02582             }
02583
02584             /* 現在位置にデータを挿入 */
02585             if( nPos - nBgn > 0 ){
02586                 InsertData_CEditView(
02587                                 nCurXOld,
02588                                 nCurYOld + nCount,
02589                                 &szPaste[nBgn],
02590                                 nPos - nBgn,
02591                                 &nNewLine,
02592                                 &nNewPos,
02593                                 pcOpe,
02594                                 FALSE/*TRUE 2002.01.25 hor*/
02595                             );
02596             }
02597
02598             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02599                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02600                                                 nNewPos,
02601                                                 nNewLine,
02602                                                 &pcOpe->m_nCaretPosX_PHY_After,
02603                                                 &pcOpe->m_nCaretPosY_PHY_After
02604                                                 );
02605
02606                 /* 操作の追加 */
02607                 m_pcOpeBlk->AppendOpe( pcOpe );
02608             }
02609
02610             /* この行の挿入位置へカーソルを移動 */
02611             MoveCursor( nCurXOld, nCurYOld + nCount, FALSE/*TRUE 2002.01.25 hor*/ );
02612             m_nCaretPosX_Prev = m_nCaretPosX;
02613             /* カーソル行が最後の行かつ行末に改行が無く、挿入すべきデータがまだある場合 */
02614             bAddLastCR = FALSE;
02615             const CLayout*  pcLayout;
02616             int             nLineLen = 0;
02617             const char*     pLine;
02618             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
02619
02620             if( NULL != pLine && 1 <= nLineLen )
02621             {
02622                 if( pLine[nLineLen - 1] == CR || pLine[nLineLen - 1] == LF )
02623                 {
02624                 }
02625                 else
02626                 {
02627                     bAddLastCR = TRUE;
02628                 }
02629             }
02630             else
02631             { // 2001/10/02 novice
02632                 bAddLastCR = TRUE;
02633             }
02634
02635             if( bAddLastCR )
02636             {
02637 //              MYTRACE( " カーソル行が最後の行かつ行末に改行が無く、\n挿入すべきデータがまだある場合は行末に改行を挿入。\n" );
02638                 nInsPosX = LineIndexToColmn( pcLayout, nLineLen );
02639                 if( !m_bDoing_UndoRedo )    /* アンドゥ・リドゥの実行中か */
02640                 {
02641                     pcOpe = new COpe;
02642                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02643                                                         nInsPosX,
02644                                                         m_nCaretPosY,
02645                                                         &pcOpe->m_nCaretPosX_PHY_Before,
02646                                                         &pcOpe->m_nCaretPosY_PHY_Before
02647                                                         );
02648                 }
02649
02650                 InsertData_CEditView(
02651                                 nInsPosX,
02652                                 m_nCaretPosY,
02653                                 m_pcEditDoc->GetNewLineCode().GetValue(),
02654                                 m_pcEditDoc->GetNewLineCode().GetLen(),
02655                                 &nNewLine,
02656                                 &nNewPos,
02657                                 pcOpe,
02658                                 FALSE/*TRUE 2002.01.25 hor*/
02659                                 );
02660
02661                 if( !m_bDoing_UndoRedo )    /* アンドゥ・リドゥの実行中か */
02662                 {
02663                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02664                                                     nNewPos,
02665                                                     nNewLine,
02666                                                     &pcOpe->m_nCaretPosX_PHY_After,
02667                                                     &pcOpe->m_nCaretPosY_PHY_After
02668                                                     );
02669
02670                     /* 操作の追加 */
02671                     m_pcOpeBlk->AppendOpe( pcOpe );
02672                 }
02673             }
02674
02675             if(
02676                 (nPos + 1 < nPasteSize ) &&
02677                 (
02678 // 2004.06.30 Moca WORD*では非x86で境界不整列の可能性あり
02679                  ( szPaste[nPos] == '\n' && szPaste[nPos + 1] == '\r') ||
02680                  ( szPaste[nPos] == '\r' && szPaste[nPos + 1] == '\n')
02681 //               ((WORD *)(szPaste + nPos))[0] == MAKEWORD('\n', '\r') ||
02682 //               ((WORD *)(szPaste + nPos))[0] == MAKEWORD('\r', '\n')
02683                 )
02684               )
02685             {
02686                 nBgn = nPos + 2;
02687             }
02688             else
02689             {
02690                 nBgn = nPos + 1;
02691             }
02692
02693             nPos = nBgn;
02694             ++nCount;
02695         }
02696         else
02697         {
02698             ++nPos;
02699         }
02700     }
02701
02702     /* 挿入データの先頭位置へカーソルを移動 */
02703     MoveCursor( nCurXOld, nCurYOld, TRUE );
02704     m_nCaretPosX_Prev = m_nCaretPosX;
02705
02706     if( !m_bDoing_UndoRedo )    /* アンドゥ・リドゥの実行中か */
02707     {
02708         pcOpe = new COpe;
02709         pcOpe->m_nOpe = OPE_MOVECARET;                      /* 操作種別 */
02710         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
02711         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
02712
02713         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
02714         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
02715         /* 操作の追加 */
02716         m_pcOpeBlk->AppendOpe( pcOpe );
02717     }
02718
02719     m_bDrawSWITCH = TRUE;   // 2002.01.25 hor
02720     return;
02721 }
02722
02723 // 一応、Command_PASTEBOX(char *, int) を使った Command_PASTEBOX(void) を書いておきます。
02724 /* 矩形貼り付け(クリップボードから矩形貼り付け) */
02725 // 2004.06.29 Moca 未使用だったものを有効にする
02726 //  オリジナルのCommand_PASTEBOX(void)はばっさり削除 (genta)
02727 void CEditView::Command_PASTEBOX( void )
02728 {
02729     if( m_bBeginSelect )    // マウスによる範囲選択中
02730     {
02731         ::MessageBeep( MB_ICONHAND );
02732         return;
02733     }
02734
02735
02736     if( FALSE == m_pShareData->m_Common.m_bFontIs_FIXED_PITCH ) // 現在のフォントは固定幅フォントである
02737     {
02738         return;
02739     }
02740
02741     // クリップボードからデータを取得
02742     CMemory         cmemClip;
02743     if( FALSE == MyGetClipboardData( cmemClip, NULL ) ){
02744         ::MessageBeep( MB_ICONHAND );
02745         return;
02746     }
02747     // 2004.07.13 Moca \0コピー対策
02748     int nstrlen;
02749     const char *lptstr = cmemClip.GetPtr( &nstrlen );
02750
02751     Command_PASTEBOX(lptstr, nstrlen);
02752     AdjustScrollBars(); // 2007.07.22 ryoji
02753     Redraw();           // 2002.01.25 hor
02754     return;
02755 }
02756
02757 //>> 2002/03/29 Azumaiya
02758
02759 /* １バイト文字入力 */
02760 void CEditView::Command_CHAR( char cChar )
02761 {
02762     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
02763         ::MessageBeep( MB_ICONHAND );
02764         return;
02765     }
02766
02767
02768     CMemory         cmemData;
02769     CMemory         cmemIndent;
02770     int             nPos;
02771     int             nCharChars;
02772     int             nIdxTo;
02773     int             nPosX;
02774     int             nNewLine;   /* 挿入された部分の次の位置の行 */
02775     int             nNewPos;    /* 挿入された部分の次の位置のデータ位置 */
02776     COpe*           pcOpe = NULL;
02777     char            szCurrent[10];
02778     const CLayout*  pcLayout;
02779
02780     m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
02781
02782     /* 現在位置にデータを挿入 */
02783     nPosX = -1;
02784     cmemData = cChar;
02785     if( cChar == CR ||
02786         cChar == LF ){
02787         /* 現在、Enterなどで挿入する改行コードの種類を取得 */
02788         // enumEOLType nWorkEOL;
02789         CEOL cWork = m_pcEditDoc->GetNewLineCode();
02790         cmemData.SetData( cWork.GetValue(), cWork.GetLen() );
02791
02792         /* テキストが選択されているか */
02793         if( IsTextSelected() ){
02794             DeleteData( TRUE );
02795         }
02796         if( m_pcEditDoc->GetDocumentAttribute().m_bAutoIndent ){    /* オートインデント */
02797             const CLayout* pCLayout;
02798             const char*     pLine;
02799             int             nLineLen;
02800             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pCLayout );
02801             if( NULL != pCLayout ){
02802                 const CDocLine* pcDocLine;
02803                 pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( pCLayout->m_nLinePhysical );
02804                 pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( pCLayout->m_nLinePhysical, &nLineLen );
02805                 if( NULL != pLine ){
02806                     /*
02807                       カーソル位置変換
02808                       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
02809                       →
02810                       物理位置(行頭からのバイト数、折り返し無し行位置)
02811                     */
02812                     int     nX;
02813                     int     nY;
02814                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02815                         m_nCaretPosX,
02816                         m_nCaretPosY,
02817                         &nX,
02818                         &nY
02819                     );
02820
02821                     /* 指定された桁に対応する行のデータ内の位置を調べる */
02822                     nIdxTo = LineColmnToIndex( pcDocLine, m_nCaretPosX );
02823                     for( nPos = 0; nPos < /*nIdxTo*/nLineLen && nPos < nX; ){
02824                         // 2005-09-02 D.S.Koba GetSizeOfChar
02825                         nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
02826
02827                         /* その他のインデント文字 */
02828                         if( 0 < nCharChars
02829                          && 0 < (int)lstrlen( m_pcEditDoc->GetDocumentAttribute().m_szIndentChars )
02830                         ){
02831                             memcpy( szCurrent, &pLine[nPos], nCharChars );
02832                             szCurrent[nCharChars] = '\0';
02833                             /* その他のインデント対象文字 */
02834                             if( NULL != _mbsstr(
02835                                 (const unsigned char*)m_pcEditDoc->GetDocumentAttribute().m_szIndentChars,
02836                                 (const unsigned char*)szCurrent
02837                             ) ){
02838                                 goto end_of_for;
02839                             }
02840                         }
02841                         if( nCharChars == 1 ){
02842                             if( pLine[nPos] == SPACE ||
02843                                 pLine[nPos] == TAB ){
02844                             }else{
02845                                 break;
02846                             }
02847                         }else
02848                         if( nCharChars == 2 ){
02849                             if( m_pcEditDoc->GetDocumentAttribute().m_bAutoIndent_ZENSPACE ){   /* 日本語空白もインデント */
02850                                 if( pLine[nPos    ] == (char)0x81 &&
02851                                     pLine[nPos + 1] == (char)0x40 ){
02852                                 }else{
02853                                     break;
02854                                 }
02855                             }else{
02856                                 break;
02857                             }
02858                         }else
02859                         if( nCharChars == 0 ){
02860                             break;
02861                         }else{
02862                             break;
02863                         }
02864                         end_of_for:;
02865                         nPos += nCharChars;
02866                     }
02867                     if( nPos > 0 ){
02868                         nPosX = LineIndexToColmn( pcDocLine, nPos );
02869                     }
02870                     cmemIndent.SetData( pLine, nPos );
02871                     cmemData += cmemIndent;
02872                 }
02873             }
02874         }
02875     }else{
02876         /* テキストが選択されているか */
02877         if( IsTextSelected() ){
02878             /* 矩形範囲選択中か */
02879             if( m_bBeginBoxSelect ){
02880                 Command_INDENT( cChar );
02881                 return;
02882             }else{
02883                 DeleteData( TRUE );
02884             }
02885         }else{
02886             if( ! IsInsMode() /* Oct. 2, 2005 genta */ ){
02887                 BOOL bDelete = TRUE;
02888                 if( m_pShareData->m_Common.m_bNotOverWriteCRLF ){   /* 改行は上書きしない */
02889                     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
02890                     if( NULL != pcLayout ){
02891                         /* 指定された桁に対応する行のデータ内の位置を調べる */
02892                         nIdxTo = LineColmnToIndex( pcLayout, m_nCaretPosX );
02893                         if( nIdxTo == pcLayout->GetLengthWithoutEOL() ){
02894
02895                             /* 現在位置が改行ならば削除しない */
02896                             bDelete = FALSE;
02897                         }
02898                     }
02899                 }
02900                 if( bDelete ){
02901                     /* 上書きモードなので、現在位置の文字を１文字消去 */
02902                     DeleteData( FALSE );
02903                 }
02904             }
02905         }
02906     }
02907     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02908         pcOpe = new COpe;
02909 //      pcOpe->m_nCaretPosX_Before = m_nCaretPosX;          /* 操作前のキャレット位置Ｘ */
02910 //      pcOpe->m_nCaretPosY_Before = m_nCaretPosY;          /* 操作前のキャレット位置Ｙ */
02911 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02912 //          pcOpe->m_nCaretPosX_Before,
02913 //          pcOpe->m_nCaretPosY_Before,
02914 //          &pcOpe->m_nCaretPosX_PHY_Before,
02915 //          &pcOpe->m_nCaretPosY_PHY_Before
02916 //      );
02917         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
02918         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
02919     }
02920
02921
02922     InsertData_CEditView(
02923         m_nCaretPosX,
02924         m_nCaretPosY,
02925         cmemData.GetPtr(),
02926         cmemData.GetLength(),
02927         &nNewLine,
02928         &nNewPos,
02929         pcOpe,
02930         TRUE
02931     );
02932     /* 挿入データの最後へカーソルを移動 */
02933     MoveCursor( nNewPos, nNewLine, TRUE );
02934     m_nCaretPosX_Prev = m_nCaretPosX;
02935 //? if( nPosX != -1 ){
02936 //?     MoveCursor( nPosX, m_nCaretPosY, TRUE );
02937 //?     m_nCaretPosX_Prev = m_nCaretPosX;
02938 //? }
02939     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02940 //      pcOpe->m_nCaretPosX_After = m_nCaretPosX;   /* 操作後のキャレット位置Ｘ */
02941 //      pcOpe->m_nCaretPosY_After = m_nCaretPosY;   /* 操作後のキャレット位置Ｙ */
02942 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02943 //          pcOpe->m_nCaretPosX_After,
02944 //          pcOpe->m_nCaretPosY_After,
02945 //          &pcOpe->m_nCaretPosX_PHY_After,
02946 //          &pcOpe->m_nCaretPosY_PHY_After
02947 //      );
02948         pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
02949         pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
02950         /* 操作の追加 */
02951         m_pcOpeBlk->AppendOpe( pcOpe );
02952     }
02953
02954
02955     /* スマートインデント */
02956     if( SMARTINDENT_CPP == m_pcEditDoc->GetDocumentAttribute().m_nSmartIndent ){    /* スマートインデント種別 */
02957         /* C/C++スマートインデント処理 */
02958         SmartIndent_CPP( cChar );
02959     }
02960
02961     /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
02962     if( CR == cChar && TRUE == m_pcEditDoc->GetDocumentAttribute().m_bRTrimPrevLine ){  /* 改行時に末尾の空白を削除 */
02963         /* 前の行にある末尾の空白を削除する */
02964         RTrimPrevLine();
02965     }
02966
02967     PostprocessCommand_hokan(); //  Jan. 10, 2005 genta 関数化
02968     return;
02969 }
02970
02971
02972
02973
02986 void CEditView::Command_IME_CHAR( WORD wChar )
02987 {
02988     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
02989         ::MessageBeep( MB_ICONHAND );
02990         return;
02991     }
02992
02993     int             nIdxTo;
02994     CMemory         cmemData;
02995     int             nNewLine;       /* 挿入された部分の次の位置の行 */
02996     int             nNewPos;        /* 挿入された部分の次の位置のデータ位置 */
02997     COpe*           pcOpe = NULL;
02998     char    sWord[2];
02999 //  const CLayout*  pcLayout;
03000     //  Oct. 6 ,2002 genta 上下逆転
03001     if( 0 == (wChar & 0xff00) ){
03002         Command_CHAR( wChar & 0xff );
03003         return;
03004     }
03005     m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
03006
03007     //  Oct. 6 ,2002 genta バッファに格納する
03008     sWord[0] = (wChar >> 8) & 0xff;
03009     sWord[1] = wChar & 0xff;
03010
03011     /* テキストが選択されているか */
03012     if( IsTextSelected() ){
03013         /* 矩形範囲選択中か */
03014         if( m_bBeginBoxSelect ){
03015             Command_INDENT( &sWord[0], 2 ); //  Oct. 6 ,2002 genta
03016             return;
03017         }else{
03018             DeleteData( TRUE );
03019         }
03020     }else{
03021         if( ! IsInsMode() /* Oct. 2, 2005 genta */ ){
03022             BOOL bDelete = TRUE;
03023             if( m_pShareData->m_Common.m_bNotOverWriteCRLF ){   /* 改行は上書きしない */
03024                 const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
03025                 if( NULL != pcLayout ){
03026                     /* 指定された桁に対応する行のデータ内の位置を調べる */
03027                     nIdxTo = LineColmnToIndex( pcLayout, m_nCaretPosX );
03028                     if( nIdxTo == pcLayout->GetLengthWithoutEOL() ){
03029                         /* 現在位置が改行ならば削除しない */
03030                         bDelete = FALSE;
03031                     }
03032                 }
03033             }
03034             if( bDelete ){
03035                 /* 上書きモードなので、現在位置の文字を１文字消去 */
03036                 DeleteData( FALSE );
03037             }
03038         }
03039     }
03040     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
03041         pcOpe = new COpe;
03042 //      pcOpe->m_nCaretPosX_Before = m_nCaretPosX;          /* 操作前のキャレット位置Ｘ */
03043 //      pcOpe->m_nCaretPosY_Before = m_nCaretPosY;          /* 操作前のキャレット位置Ｙ */
03044 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
03045 //          pcOpe->m_nCaretPosX_Before,
03046 //          pcOpe->m_nCaretPosY_Before,
03047 //          &pcOpe->m_nCaretPosX_PHY_Before,
03048 //          &pcOpe->m_nCaretPosY_PHY_Before
03049 //      );
03050         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
03051         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
03052     }
03053     //  Oct. 6 ,2002 genta
03054     InsertData_CEditView( m_nCaretPosX, m_nCaretPosY, &sWord[0], 2, &nNewLine, &nNewPos, pcOpe, TRUE );
03055
03056     /* 挿入データの最後へカーソルを移動 */
03057     MoveCursor( nNewPos, nNewLine, TRUE );
03058     m_nCaretPosX_Prev = m_nCaretPosX;
03059     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
03060 //      pcOpe->m_nCaretPosX_After = m_nCaretPosX;           /* 操作後のキャレット位置Ｘ */
03061 //      pcOpe->m_nCaretPosY_After = m_nCaretPosY;           /* 操作後のキャレット位置Ｙ */
03062 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
03063 //          pcOpe->m_nCaretPosX_After,
03064 //          pcOpe->m_nCaretPosY_After,
03065 //          &pcOpe->m_nCaretPosX_PHY_After,
03066 //          &pcOpe->m_nCaretPosY_PHY_After
03067 //      );
03068         pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
03069         pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
03070         /* 操作の追加 */
03071         m_pcOpeBlk->AppendOpe( pcOpe );
03072     }
03073
03074     PostprocessCommand_hokan(); //  Jan. 10, 2005 genta 関数化
03075     return;
03076 }
03077
03078
03079
03080
03085 void CEditView::Command_CHGMOD_INS( void )
03086 {
03087     /* 挿入モードか？ */
03088     if( IsInsMode() ){
03089         SetInsMode( false );
03090     }else{
03091         SetInsMode( true );
03092     }
03093     /* キャレットの表示・更新 */
03094     ShowEditCaret();
03095     /* キャレットの行桁位置を表示する */
03096     DrawCaretPosInfo();
03097     return;
03098 }
03099
03100
03106 void CEditView::Command_SEARCH_BOX( void )
03107 {
03108     const CEditWnd* pCEditWnd = m_pcEditDoc->m_pcEditWnd;
03109     pCEditWnd->SetFocusSearchBox();
03110 }
03111
03112 /* 検索(単語検索ダイアログ) */
03113 void CEditView::Command_SEARCH_DIALOG( void )
03114 {
03115 //  int         nRet;
03116     CMemory     cmemCurText;
03117
03118     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
03119     GetCurrentTextForSearchDlg( cmemCurText );  // 2006.08.23 ryoji ダイアログ専用関数に変更
03120
03121     /* 検索文字列を初期化 */
03122     strcpy( m_pcEditDoc->m_cDlgFind.m_szText, cmemCurText.GetPtr() );
03123
03124     /* 検索ダイアログの表示 */
03125     if( NULL == m_pcEditDoc->m_cDlgFind.m_hWnd ){
03126         m_pcEditDoc->m_cDlgFind.DoModeless( m_hInstance, m_hWnd, (LPARAM)&m_pcEditDoc->m_cEditViewArr[m_pcEditDoc->m_nActivePaneIndex] );
03127     }else{
03128         /* アクティブにする */
03129         ActivateFrameWindow( m_pcEditDoc->m_cDlgFind.m_hWnd );
03130         ::SetDlgItemText( m_pcEditDoc->m_cDlgFind.m_hWnd, IDC_COMBO_TEXT, cmemCurText.GetPtr() );
03131     }
03132     return;
03133 }
03134
03135
03136 /* 正規表現の検索パターンを必要に応じて更新する(ライブラリが使用できないときはFALSEを返す) */
03137 /* 2002.01.16 hor 共通ロジックを関数にしただけ・・・ */
03138 BOOL CEditView::ChangeCurRegexp(void)
03139 {
03140     BOOL    bChangeState;
03141     if( FALSE == m_bCurSrchKeyMark
03142      || 0 != strcmp( m_szCurSrchKey, m_pShareData->m_szSEARCHKEYArr[0] )
03143      || m_bCurSrchRegularExp != m_pShareData->m_Common.m_bRegularExp
03144      || m_bCurSrchLoHiCase != m_pShareData->m_Common.m_bLoHiCase
03145      || m_bCurSrchWordOnly != m_pShareData->m_Common.m_bWordOnly
03146     ){
03147         bChangeState = TRUE;
03148     }else{
03149         bChangeState = FALSE;
03150     }
03151
03152     m_bCurSrchKeyMark = TRUE;                                   /* 検索文字列のマーク */
03153     strcpy( m_szCurSrchKey, m_pShareData->m_szSEARCHKEYArr[0] );/* 検索文字列 */
03154     m_bCurSrchRegularExp = m_pShareData->m_Common.m_bRegularExp;/* 検索／置換  1==正規表現 */
03155     m_bCurSrchLoHiCase = m_pShareData->m_Common.m_bLoHiCase;    /* 検索／置換  1==大文字小文字の区別 */
03156     m_bCurSrchWordOnly = m_pShareData->m_Common.m_bWordOnly;    /* 検索／置換  1==単語のみ検索 */
03157     /* 正規表現 */
03158     if( m_bCurSrchRegularExp
03159      && bChangeState
03160     ){
03161         //  Jun. 27, 2001 genta 正規表現ライブラリの差し替え
03162         if( !InitRegexp( m_hWnd, m_CurRegexp, true ) ){
03163             return FALSE;
03164         }
03165         int nFlag = 0x00;
03166         nFlag |= m_bCurSrchLoHiCase ? 0x01 : 0x00;
03167         /* 検索パターンのコンパイル */
03168         m_CurRegexp.Compile( m_szCurSrchKey, nFlag );
03169     }
03170
03171     if( bChangeState ){
03172         /* フォーカス移動時の再描画 */
03173         RedrawAll();
03174     }
03175
03176     return TRUE;
03177 }
03178
03179
03180 /* 前を検索 */
03181 void CEditView::Command_SEARCH_PREV( BOOL bReDraw, HWND hwndParent )
03182 {
03183     int         nLineNum;
03184     int         nIdx;
03185     int         nLineFrom;
03186     int         nColmFrom;
03187     int         nLineTo;
03188     int         nColmTo;
03189     BOOL        bSelecting;
03190 //  int         nSelectLineBgn_Old;
03191 //  int         nSelectColBgn_Old;
03192     int         nSelectLineBgnFrom_Old;
03193     int         nSelectColBgnFrom_Old;
03194     int         nSelectLineBgnTo_Old;
03195     int         nSelectColBgnTo_Old;
03196     int         nSelectLineFrom_Old;
03197     int         nSelectColFrom_Old;
03198     int         nSelectLineTo_Old;
03199     int         nSelectColTo_Old;
03200     BOOL        bSelectingLock_Old;
03201 //  BOOL        bFlag1;
03202     BOOL        bFound = FALSE;
03203     BOOL        bRedo = FALSE;          //  hor
03204     int         nLineNumOld,nIdxOld;    //  hor
03205     const CLayout* pcLayout = NULL;
03206
03207     nLineFrom = m_nCaretPosY;
03208     nColmFrom = m_nCaretPosX;
03209     nLineTo = m_nCaretPosY;
03210     nColmTo = m_nCaretPosX;
03211 //  bFlag1 = FALSE;
03212     bSelecting = FALSE;
03213     if( '\0' == m_pShareData->m_szSEARCHKEYArr[0][0] ){
03214         goto end_of_func;
03215     }
03216     if( IsTextSelected() ){ /* テキストが選択されているか */
03217         nSelectLineBgnFrom_Old = m_nSelectLineBgnFrom;  /* 範囲選択開始行(原点) */
03218         nSelectColBgnFrom_Old = m_nSelectColmBgnFrom;   /* 範囲選択開始桁(原点) */
03219         nSelectLineBgnTo_Old = m_nSelectLineBgnTo;      /* 範囲選択開始行(原点) */
03220         nSelectColBgnTo_Old = m_nSelectColmBgnTo;       /* 範囲選択開始桁(原点) */
03221         nSelectLineFrom_Old = m_nSelectLineFrom;
03222         nSelectColFrom_Old = m_nSelectColmFrom;
03223         nSelectLineTo_Old = m_nSelectLineTo;
03224         nSelectColTo_Old = m_nSelectColmTo;
03225         bSelectingLock_Old = m_bSelectingLock;
03226         /* 矩形範囲選択中か */
03227         if( !m_bBeginBoxSelect && TRUE == m_bSelectingLock ){   /* 選択状態のロック */
03228             bSelecting = TRUE;
03229 //          bSelectingLock_Old = m_bSelectingLock;
03230 //          /* 現在の選択範囲を非選択状態に戻す */
03231 //          DisableSelectArea( bReDraw );
03232
03233         }else{
03234             /* 現在の選択範囲を非選択状態に戻す */
03235             DisableSelectArea( bReDraw );
03236         }
03237     }
03238     nLineNum = m_nCaretPosY;
03239     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNum );
03240     if( NULL == pcLayout ){
03241         // pcLayoutはNULLとなるのは、[EOF]から前検索した場合
03242         // １行前に移動する処理
03243         nLineNum--;
03244         if( nLineNum < 0 ){
03245             goto end_of_func;
03246         }
03247         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNum );
03248         if( NULL == pcLayout ){
03249             goto end_of_func;
03250         }
03251     //      /* カーソル左移動 */
03252     //      Command_LEFT( FALSE, FALSE );
03253             // カーソル左移動はやめて nIdxは行の長さとしないと[EOF]から改行を前検索した時に最後の改行を検索できない 2003.05.04 かろと
03254             CLayout* pCLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNum );
03255             nIdx = pCLayout->m_pCDocLine->m_pLine->GetLength() + 1;     // 行末のヌル文字(\0)にマッチさせるために+1 2003.05.16 かろと
03256     } else {
03257         /* 指定された桁に対応する行のデータ内の位置を調べる */
03258         nIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
03259     }
03260     // 2002.01.16 hor
03261     // 共通部分のくくりだし
03262     if(!ChangeCurRegexp())return;
03263
03264     bRedo       =   TRUE;       //  hor
03265     nLineNumOld =   nLineNum;   //  hor
03266     nIdxOld     =   nIdx;       //  hor
03267 re_do:;                         //  hor
03268     /* 現在位置より前の位置を検索する */
03269     if( m_pcEditDoc->m_cLayoutMgr.SearchWord(
03270         nLineNum,                               /* 検索開始行 */
03271         nIdx,                                   /* 検索開始位置 */
03272         m_szCurSrchKey,                         /* 検索条件 */
03273         FALSE,                                  /* 0==前方検索 1==後方検索 */
03274         m_bCurSrchRegularExp,                   /* 1==正規表現 */
03275         m_bCurSrchLoHiCase,                     /* 1==大文字小文字の区別 */
03276         m_bCurSrchWordOnly,                     /* 1==単語のみ検索 */
03277         &nLineFrom,                             /* マッチレイアウト行from */
03278         &nColmFrom,                             /* マッチレイアウト位置from */
03279         &nLineTo,                               /* マッチレイアウト行to */
03280         &nColmTo,                               /* マッチレイアウト位置to */
03281         &m_CurRegexp                            /* 正規表現コンパイルデータ */
03282     ) ){
03283         if( bSelecting ){
03284             /* 現在のカーソル位置によって選択範囲を変更 */
03285             ChangeSelectAreaByCurrentCursor( nColmFrom, nLineFrom );
03286             m_bSelectingLock = bSelectingLock_Old;  /* 選択状態のロック */
03287         }else{
03288             /* 選択範囲の変更 */
03289             //  2005.06.24 Moca
03290             SetSelectArea( nLineFrom, nColmFrom, nLineTo, nColmTo );
03291
03292             if( bReDraw ){
03293                 /* 選択領域描画 */
03294                 DrawSelectArea();
03295             }
03296         }
03297         /* カーソル移動 */
03298         //  Sep. 8, 2000 genta
03299         AddCurrentLineToHistory();
03300         MoveCursor( nColmFrom, nLineFrom, bReDraw );
03301         m_nCaretPosX_Prev = m_nCaretPosX;
03302         bFound = TRUE;
03303     }else{
03304         /* フォーカス移動時の再描画 */
03305 //      RedrawAll();    hor コメント化
03306         if( IsTextSelected() ){ /* テキストが選択されているか */
03307             /* 現在の選択範囲を非選択状態に戻す */
03308             DisableSelectArea( bReDraw );
03309         }
03310         if( bSelecting ){
03311             m_bSelectingLock = bSelectingLock_Old;  /* 選択状態のロック */
03312             /* 選択範囲の変更 */
03313             m_nSelectLineBgnFrom = nSelectLineBgnFrom_Old;  /* 範囲選択開始行(原点) */
03314             m_nSelectColmBgnFrom = nSelectColBgnFrom_Old;   /* 範囲選択開始桁(原点) */
03315             m_nSelectLineBgnTo = nSelectLineBgnTo_Old;      /* 範囲選択開始行(原点) */
03316             m_nSelectColmBgnTo = nSelectColBgnTo_Old;       /* 範囲選択開始桁(原点) */
03317
03318             m_nSelectLineFrom = nSelectLineFrom_Old;
03319             m_nSelectColmFrom = nSelectColFrom_Old;
03320             m_nSelectLineTo = nSelectLineTo_Old;
03321             m_nSelectColmTo = nSelectColTo_Old;
03322             /* カーソル移動 */
03323             MoveCursor( nColmFrom, nLineFrom, bReDraw );
03324             m_nCaretPosX_Prev = m_nCaretPosX;
03325             /* 選択領域描画 */
03326             DrawSelectArea();
03327         }
03328     }
03329 end_of_func:;
03330 // From Here 2002.01.26 hor 先頭（末尾）から再検索
03331     if(m_pShareData->m_Common.m_bSearchAll){
03332         if(!bFound  &&  // 見つからなかった
03333             bRedo       // 最初の検索
03334         ){
03335             nLineNum=m_pcEditDoc->m_cLayoutMgr.GetLineCount()-1;
03336             nIdx=MAXLINESIZE;
03337             bRedo=FALSE;
03338             goto re_do; // 末尾から再検索
03339         }
03340     }
03341     if(bFound){
03342         if((nLineNumOld < nLineNum)||(nLineNumOld == nLineNum && nIdxOld < nIdx))
03343             SendStatusMessage("▲末尾から再検索しました");
03344     }else{
03345         SendStatusMessage("△見つかりませんでした");
03346 //  if( FALSE == bFound ){
03347 // To Here 2002.01.26 hor
03348         ::MessageBeep( MB_ICONHAND );
03349         if( bReDraw &&
03350             m_pShareData->m_Common.m_bNOTIFYNOTFOUND    /* 検索／置換  見つからないときメッセージを表示 */
03351         ){
03352             if( NULL == hwndParent ){
03353                 hwndParent = m_hWnd;
03354             }
03355 			::MYMESSAGEBOX( hwndParent,  MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
03356 //              "↑ 前方に、文字列 '%s' が見つかりません。",
03357                 "前方(↑) に文字列 '%s' が１つも見つかりません。",  //Jan. 25, 2001 jepro メッセージを若干変更
03358                 m_szCurSrchKey
03359             );
03360         }
03361     }
03362     return;
03363 }
03364
03365
03366
03367
03373 void CEditView::Command_SEARCH_NEXT( bool bChangeCurRegexp, BOOL bRedraw, HWND hwndParent, const char* pszNotFoundMessage )
03374 {
03375
03376 //#ifdef _DEBUG
03377 //  gm_ProfileOutput = 1;
03378 //  CRunningTimer*  pCRunningTimer = new CRunningTimer( (const char*)"CEditView::Command_SEARCH_NEXT()" );
03379 //#endif
03380     int         nLineNum;
03381     int         nIdx;
03382     int         nLineFrom;
03383     int         nColmFrom;
03384     int         nLineTo;
03385     int         nColmTo;
03386     BOOL        bSelecting;
03387 //  int         nSelectLineBgn_Old;
03388 //  int         nSelectColBgn_Old;
03389     int         nSelectLineBgnFrom_Old;
03390     int         nSelectColBgnFrom_Old;
03391     int         nSelectLineBgnTo_Old;
03392     int         nSelectColBgnTo_Old;
03393     int         nSelectLineFrom_Old;
03394     int         nSelectColFrom_Old;
03395     int         nSelectLineTo_Old;
03396     int         nSelectColTo_Old;
03397 //  int         nSelectLineFrom;
03398 //  int         nSelectColmFrom;
03399 //  int         nSelectLineTo;
03400 //  int         nSelectColmTo;
03401     BOOL        bFlag1;
03402     BOOL        bSelectingLock_Old;
03403     BOOL        bFound = FALSE;
03404     BOOL        bRedo = FALSE;          //  hor
03405     int         nLineNumOld,nIdxOld;    //  hor
03406     const CLayout* pcLayout;
03407     bool b0Match = false;
03408     int nLineLen;
03409     const char *pLine;
03410
03411     nLineFrom = m_nCaretPosY;
03412     nColmFrom = m_nCaretPosX;
03413     nLineTo = m_nCaretPosY;
03414     nColmTo = m_nCaretPosX;
03415
03416     bSelecting = FALSE;
03417     //  2004.05.30 Moca bChangeCurRegexpに応じて対象文字列を変える
03418     if( bChangeCurRegexp  && '\0' == m_pShareData->m_szSEARCHKEYArr[0][0]
03419      || !bChangeCurRegexp && '\0' == m_szCurSrchKey[0] ){
03420         goto end_of_func;
03421     }
03422
03423     // 検索開始位置を調整
03424     bFlag1 = FALSE;
03425     if( IsTextSelected() ){ /* テキストが選択されているか */
03426         /* 矩形範囲選択中でない & 選択状態のロック */
03427         if( !m_bBeginBoxSelect && TRUE == m_bSelectingLock ){
03428             bSelecting = TRUE;
03429             bSelectingLock_Old = m_bSelectingLock;
03430             nSelectLineBgnFrom_Old = m_nSelectLineBgnFrom;  /* 範囲選択開始行(原点) */
03431             nSelectColBgnFrom_Old = m_nSelectColmBgnFrom;   /* 範囲選択開始桁(原点) */
03432             nSelectLineBgnTo_Old = m_nSelectLineBgnTo;      /* 範囲選択開始行(原点) */
03433             nSelectColBgnTo_Old = m_nSelectColmBgnTo;       /* 範囲選択開始桁(原点) */
03434             nSelectLineFrom_Old = m_nSelectLineFrom;
03435             nSelectColFrom_Old = m_nSelectColmFrom;
03436             nSelectLineTo_Old = m_nSelectLineTo;
03437             nSelectColTo_Old = m_nSelectColmTo;
03438
03439             if( ( m_nSelectLineBgnFrom >  m_nCaretPosY ) ||
03440                 ( m_nSelectLineBgnFrom == m_nCaretPosY && m_nSelectColmBgnFrom >= m_nCaretPosX )
03441             ){
03442                 /* カーソル移動 */
03443                 m_nCaretPosX=m_nSelectColmFrom;
03444                 m_nCaretPosY=m_nSelectLineFrom;
03445                 if (m_nSelectColmTo == m_nSelectColmFrom && m_nSelectLineTo == m_nSelectLineFrom) {
03446                     // 現在、長さ０でマッチしている場合は１文字進める(無限マッチ対策) by かろと
03447                     b0Match = true;
03448                 }
03449                 bFlag1 = TRUE;
03450             }else{
03451                 /* カーソル移動 */
03452                 m_nCaretPosX=m_nSelectColmTo;
03453                 m_nCaretPosY=m_nSelectLineTo;
03454                 if (m_nSelectColmTo == m_nSelectColmFrom && m_nSelectLineTo == m_nSelectLineFrom) {
03455                     // 現在、長さ０でマッチしている場合は１文字進める(無限マッチ対策) by かろと
03456                     b0Match = true;
03457                 }
03458             }
03459
03460 //          /* 現在の選択範囲を非選択状態に戻す */
03461 //          DisableSelectArea( bRedraw );
03462         }else{
03463             /* カーソル移動 */
03464             m_nCaretPosX=m_nSelectColmTo;
03465             m_nCaretPosY=m_nSelectLineTo;
03466             if (m_nSelectColmTo == m_nSelectColmFrom && m_nSelectLineTo == m_nSelectLineFrom) {
03467                 // 現在、長さ０でマッチしている場合は１文字進める(無限マッチ対策) by かろと
03468                 b0Match = true;
03469             }
03470
03471             /* 現在の選択範囲を非選択状態に戻す */
03472             DisableSelectArea( bRedraw );
03473         }
03474     }
03475     nLineNum = m_nCaretPosY;
03476     nLineLen = 0; // 2004.03.17 Moca NULL == pLineのとき、nLineLenが未設定になり落ちるバグ対策
03477     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr(nLineNum, &nLineLen, &pcLayout);
03478     /* 指定された桁に対応する行のデータ内の位置を調べる */
03479 // 2002.02.08 hor EOFのみの行からも次検索しても再検索可能に (2/2)
03480     nIdx = pcLayout ? LineColmnToIndex( pcLayout, m_nCaretPosX ) : 0;
03481     if( b0Match ) {
03482         // 現在、長さ０でマッチしている場合は物理行で１文字進める(無限マッチ対策)
03483         if( nIdx < nLineLen ) {
03484             // 2005-09-02 D.S.Koba GetSizeOfChar
03485             nIdx += (CMemory::GetSizeOfChar(pLine, nLineLen, nIdx) == 2 ? 2 : 1);
03486         } else {
03487             // 念のため行末は別処理
03488             ++nIdx;
03489         }
03490     }
03491
03492     // 2002.01.16 hor
03493     // 共通部分のくくりだし
03494     // 2004.05.30 Moca CEditViewの現在設定されている検索パターンを使えるように
03495     if(bChangeCurRegexp && !ChangeCurRegexp())return;
03496
03497     bRedo       =   TRUE;       //  hor
03498     nLineNumOld =   nLineNum;   //  hor
03499     nIdxOld     =   nIdx;       //  hor
03500 re_do:;
03501      /* 現在位置より後ろの位置を検索する */
03502     // 2004.05.30 Moca 引数をm_pShareDataからメンバ変数に変更。他のプロセス/スレッドに書き換えられてしまわないように。
03503     if( m_pcEditDoc->m_cLayoutMgr.SearchWord(
03504         nLineNum,                               /* 検索開始行 */
03505         nIdx,                                   /* 検索開始位置 */
03506         m_szCurSrchKey,                         /* 検索条件 */
03507         TRUE,                                   /* 0==前方検索 1==後方検索 */
03508         m_bCurSrchRegularExp,                   /* 1==正規表現 */
03509         m_bCurSrchLoHiCase,                     /* 1==英大文字小文字の区別 */
03510         m_bCurSrchWordOnly,                     /* 1==単語のみ検索 */
03511         &nLineFrom,                             /* マッチレイアウト行from */
03512         &nColmFrom,                             /* マッチレイアウト位置from */
03513         &nLineTo,                               /* マッチレイアウト行to */
03514         &nColmTo,                               /* マッチレイアウト位置to */
03515         &m_CurRegexp                            /* 正規表現コンパイルデータ */
03516     ) ){
03517
03518 //      /* フォーカス移動時の再描画 */
03519 //      RedrawAll();
03520
03521         /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
03522         if( bFlag1 && m_nCaretPosX == nColmFrom && m_nCaretPosY == nLineFrom ){
03523             nLineNum = nLineTo;
03524             nIdx = nColmTo;
03525             goto re_do;
03526         }
03527
03528         if( bSelecting ){
03529             /* 現在のカーソル位置によって選択範囲を変更 */
03530             ChangeSelectAreaByCurrentCursor( nColmTo, nLineTo );
03531 //          ChangeSelectAreaByCurrentCursor( nColmFrom, nLineFrom );
03532             m_bSelectingLock = bSelectingLock_Old;  /* 選択状態のロック */
03533         }else{
03534             /* 選択範囲の変更 */
03535             //  2005.06.24 Moca
03536             SetSelectArea( nLineFrom, nColmFrom, nLineTo, nColmTo );
03537
03538             if( bRedraw ){
03539                 /* 選択領域描画 */
03540                 DrawSelectArea();
03541             }
03542 //          if( IsTextSelected() ){ /* テキストが選択されているか */
03543 //              /* 現在の選択範囲を非選択状態に戻す */
03544 //              DisableSelectArea( bRedraw );
03545 //          }
03546         }
03547
03548         /* カーソル移動 */
03549         //  Sep. 8, 2000 genta
03550         if ( m_bDrawSWITCH ) AddCurrentLineToHistory(); // 2002.02.16 hor すべて置換のときは不要
03551         MoveCursor( nColmFrom, nLineFrom, bRedraw );
03552         m_nCaretPosX_Prev = m_nCaretPosX;
03553         bFound = TRUE;
03554     }else{
03555 //      /* フォーカス移動時の再描画 */
03556 //      RedrawAll();
03557
03558         if( bSelecting ){
03559             m_bSelectingLock = bSelectingLock_Old;  /* 選択状態のロック */
03560
03561             /* 選択範囲の変更 */
03562             m_nSelectLineBgnFrom = nSelectLineBgnFrom_Old;  /* 範囲選択開始行(原点) */
03563             m_nSelectColmBgnFrom = nSelectColBgnFrom_Old;   /* 範囲選択開始桁(原点) */
03564             m_nSelectLineBgnTo = nSelectLineBgnTo_Old;      /* 範囲選択開始行(原点) */
03565             m_nSelectColmBgnTo = nSelectColBgnTo_Old;       /* 範囲選択開始桁(原点) */
03566             m_nSelectLineFrom = nSelectLineFrom_Old;
03567             m_nSelectColmFrom = nSelectColFrom_Old;
03568 //          m_nSelectLineTo = nSelectLineTo_Old;
03569 //          m_nSelectColmTo = nSelectColTo_Old;
03570             m_nSelectLineTo = nLineFrom;
03571             m_nSelectColmTo = nColmFrom;
03572
03573             /* カーソル移動 */
03574             MoveCursor( nColmFrom, nLineFrom, bRedraw );
03575             m_nCaretPosX_Prev = m_nCaretPosX;
03576
03577             if( bRedraw ){
03578                 /* 選択領域描画 */
03579                 DrawSelectArea();
03580             }
03581         }
03582     }
03583
03584 //  /* カーソル移動 */
03585 //  MoveCursor( nColmFrom, nLineFrom, bRedraw );
03586 //  m_nCaretPosX_Prev = m_nCaretPosX;
03587
03588 end_of_func:;
03589 // From Here 2002.01.26 hor 先頭（末尾）から再検索
03590     if(m_pShareData->m_Common.m_bSearchAll){
03591         if(!bFound  &&      // 見つからなかった
03592             bRedo   &&      // 最初の検索
03593             m_bDrawSWITCH   // 全て置換の実行中じゃない
03594         ){
03595             nLineNum=0;
03596             nIdx=0;
03597             bRedo=FALSE;
03598             goto re_do;     // 先頭から再検索
03599         }
03600     }
03601
03602     if(bFound){
03603         if((nLineNumOld > nLineNum)||(nLineNumOld == nLineNum && nIdxOld > nIdx))
03604             SendStatusMessage("▼先頭から再検索しました");
03605     }else{
03606         ShowEditCaret();    // 2002/04/18 YAZAKI
03607         DrawCaretPosInfo(); // 2002/04/18 YAZAKI
03608         SendStatusMessage("▽見つかりませんでした");
03609 // To Here 2002.01.26 hor
03610         ::MessageBeep( MB_ICONHAND );
03611         if( bRedraw &&
03612             m_pShareData->m_Common.m_bNOTIFYNOTFOUND    /* 検索／置換  見つからないときメッセージを表示 */
03613         ){
03614             if( NULL == hwndParent ){
03615                 hwndParent = m_hWnd;
03616             }
03617             if( NULL == pszNotFoundMessage ){
03618 				::MYMESSAGEBOX( hwndParent, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
03619                     "後方(↓) に文字列 '%s' が１つも見つかりません。",  //Jan. 25, 2001 jepro メッセージを若干変更
03620                     m_szCurSrchKey
03621                 );
03622             }else{
03623 				::MYMESSAGEBOX( hwndParent, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
03624                     pszNotFoundMessage
03625                 );
03626             }
03627         }
03628     }
03629 //#ifdef _DEBUG
03630 //  delete pCRunningTimer;
03631 //  pCRunningTimer = NULL;
03632 //
03633 //  gm_ProfileOutput = 0;
03634 //#endif
03635     return;
03636 }
03637
03638
03639
03640
03641 /* 各種モードの取り消し */
03642 void CEditView::Command_CANCEL_MODE( void )
03643 {
03644     if( IsTextSelected() ){ /* テキストが選択されているか */
03645         /* 現在の選択範囲を非選択状態に戻す */
03646         DisableSelectArea( TRUE );
03647     }
03648     m_bSelectingLock = FALSE;   /* 選択状態のロック */
03649     return;
03650 }
03651
03652
03653
03654
03655 /* 範囲選択開始 */
03656 void CEditView::Command_BEGIN_SELECT( void )
03657 {
03658     if( !IsTextSelected() ){    /* テキストが選択されているか */
03659         /* 現在のカーソル位置から選択を開始する */
03660         BeginSelectArea();
03661     }
03662
03663     //  ロックの解除切り替え
03664     if ( m_bSelectingLock ) {
03665         m_bSelectingLock = FALSE;   /* 選択状態のロック解除 */
03666     }
03667     else {
03668         m_bSelectingLock = TRUE;    /* 選択状態のロック */
03669     }
03670     return;
03671 }
03672
03673
03674
03675
03676 /* 矩形範囲選択開始 */
03677 void CEditView::Command_BEGIN_BOXSELECT( void )
03678 {
03679     if( FALSE == m_pShareData->m_Common.m_bFontIs_FIXED_PITCH ){    /* 現在のフォントは固定幅フォントである */
03680         return;
03681     }
03682
03683 //@@@ 2002.01.03 YAZAKI 範囲選択中にShift+F6を実行すると選択範囲がクリアされない問題に対処
03684     if( IsTextSelected() ){ /* テキストが選択されているか */
03685         /* 現在の選択範囲を非選択状態に戻す */
03686         DisableSelectArea( TRUE );
03687     }
03688     /* 現在のカーソル位置から選択を開始する */
03689     BeginSelectArea();
03690 //  if( !IsTextSelected() ){    /* テキストが選択されているか */
03691 //      /* 現在のカーソル位置から選択を開始する */
03692 //      BeginSelectArea();
03693 //  }
03694
03695     m_bSelectingLock = TRUE;    /* 選択状態のロック */
03696     m_bBeginBoxSelect = TRUE;   /* 矩形範囲選択中 */
03697     return;
03698 }
03699
03700
03701
03702
03703 /* 新規作成 */
03704 void CEditView::Command_FILENEW( void )
03705 {
03706     /* 新たな編集ウィンドウを起動 */
03707     CEditApp::OpenNewEditor( m_hInstance, m_hWnd, (char*)NULL, 0, FALSE );
03708     return;
03709 }
03710
03711
03712
03718 void CEditView::Command_FILEOPEN( const char *filename, int nCharCode, BOOL bReadOnly )
03719 {
03720     m_pcEditDoc->OpenFile( filename, nCharCode, bReadOnly );
03721 }
03722
03723
03724
03725
03726 /* 閉じて(無題) */  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
03727 void CEditView::Command_FILECLOSE( void )
03728 {
03729     m_pcEditDoc->FileClose();
03730 }
03731
03732
03733
03734
03740 void CEditView::Command_FILECLOSE_OPEN( const char *filename, int nCharCode, BOOL bReadOnly )
03741 {
03742     m_pcEditDoc->FileCloseOpen( filename, nCharCode, bReadOnly );
03743 }
03744
03745
03746
03747
03758 BOOL CEditView::Command_FILESAVE( bool warnbeep, bool askname )
03759 {
03760     return  m_pcEditDoc->FileSave( warnbeep, askname );
03761 }
03762
03763 /* 名前を付けて保存ダイアログ */
03764 BOOL CEditView::Command_FILESAVEAS_DIALOG()
03765 {
03766     return  m_pcEditDoc->FileSaveAs_Dialog();
03767 }
03768
03769
03770 /* 名前を付けて保存
03771     filenameで保存。NULLは厳禁。
03772 */
03773 BOOL CEditView::Command_FILESAVEAS( const char *filename )
03774 {
03775     return  m_pcEditDoc->FileSaveAs( filename );
03776 }
03777
03787 BOOL CEditView::Command_FILESAVEALL( void )
03788 {
03789     CShareData::getInstance()->SendMessageToAllEditors(
03790         WM_COMMAND, MAKELONG( F_FILESAVE_QUIET, 0 ), (LPARAM)0, NULL);
03791     return TRUE;
03792 }
03793
03794
03798 void CEditView::Command_COPYFILENAME( void )
03799 {
03800     if( m_pcEditDoc->IsFilePathAvailable() ){
03801         /* クリップボードにデータを設定 */
03802         const char *pszFile;
03803         pszFile = m_pcEditDoc->GetFileName();
03804         MySetClipboardData( pszFile , lstrlen( pszFile ), FALSE );
03805     }else{
03806         ::MessageBeep( MB_ICONHAND );
03807     }
03808     return;
03809 }
03810
03811
03812
03813
03814 /* 現在編集中のファイルのパス名をクリップボードにコピー */
03815 void CEditView::Command_COPYPATH( void )
03816 {
03817 //  HGLOBAL     hgClip;
03818 //  char*       pszClip;
03819 //  if( 0 < lstrlen( m_pcEditDoc->GetFilePath() ) ){
03820     if( m_pcEditDoc->IsFilePathAvailable() ){
03821         /* クリップボードにデータを設定 */
03822         MySetClipboardData( m_pcEditDoc->GetFilePath(), lstrlen( m_pcEditDoc->GetFilePath() ), FALSE );
03823
03824 //      /* Windowsクリップボードにコピー */
03825 //      hgClip = ::GlobalAlloc(
03826 //          GMEM_MOVEABLE | GMEM_DDESHARE,
03827 //          lstrlen( m_pcEditDoc->GetFilePath() ) + 1
03828 //      );
03829 //      pszClip = (char*)::GlobalLock( hgClip );
03830 //      strcpy( pszClip, (char*)m_pcEditDoc->GetFilePath() );
03831 //      ::GlobalUnlock( hgClip );
03832 //      ::OpenClipboard( m_hWnd );
03833 //      ::EmptyClipboard();
03834 //      ::SetClipboardData( CF_OEMTEXT, hgClip );
03835 //      ::CloseClipboard();
03836     }else{
03837         ::MessageBeep( MB_ICONHAND );
03838     }
03839     return;
03840
03841 }
03842
03843
03844
03845
03846 //  May 9, 2000 genta
03847 /* 現在編集中のファイルのパス名とカーソル位置をクリップボードにコピー */
03848 void CEditView::Command_COPYTAG( void )
03849 {
03850     if( m_pcEditDoc->IsFilePathAvailable() ){
03851         char    buf[ MAX_PATH + 20 ];
03852         int     line, col;
03853
03854         //  論理行番号を得る
03855         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys( m_nCaretPosX, m_nCaretPosY, &col, &line );
03856
03857         /* クリップボードにデータを設定 */
03858         wsprintf( buf, "%s (%d,%d): ", m_pcEditDoc->GetFilePath(), line+1, col+1 );
03859         MySetClipboardData( buf, lstrlen( buf ), FALSE );
03860     }else{
03861         ::MessageBeep( MB_ICONHAND );
03862     }
03863     return;
03864
03865 }
03866
03870 void CEditView::Command_JUMP_DIALOG( void )
03871 {
03872     if( !m_pcEditDoc->m_cDlgJump.DoModal(
03873         m_hInstance, m_hWnd, (LPARAM)m_pcEditDoc
03874     ) ){
03875         return;
03876     }
03877 }
03878
03879
03880
03881 /* 指定行ヘジャンプ */
03882 void CEditView::Command_JUMP( void )
03883 {
03884     const char* pLine;
03885     int         nLineLen;
03886     int         nLineCount;
03887     int         i;
03888     int         nMode;
03889     int         nLineNum;
03890     int         bValidLine;
03891     int         nCurrentLine;
03892     int         nCommentBegin;
03893     int         nBgn;
03894 #if 0
03895     2002.2.2 YAZAKI ダイアログ呼び出し部と、コマンド実行部を分離
03896 //  int         nCharChars;
03897 //  m_pcEditDoc->m_cDlgJump.Create( m_hInstance, m_hWnd, (void *)m_pcEditDoc );
03898     if( !m_pcEditDoc->m_cDlgJump.DoModal(
03899         m_hInstance, m_hWnd, (LPARAM)m_pcEditDoc
03900 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
03901 //      m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF    /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
03902 //      &m_pcEditDoc->m_hwndActiveDialog                        /* アクティブな子ダイアログ */
03903     ) ){
03904 //      ::MessageBeep( MB_ICONHAND );   //Feb. 20, 2001 JEPRO [キャンセル]時に鳴る警告音の正体はこれ(コメントアウトにした)
03905         return;
03906     }
03907 #endif
03908     if( 0 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
03909         ::MessageBeep( MB_ICONHAND );
03910         return;
03911     }
03912     /* 行番号 */
03913     nLineNum = m_pcEditDoc->m_cDlgJump.m_nLineNum;
03914     if( !m_pcEditDoc->m_cDlgJump.m_bPLSQL ){    /* PL/SQLソースの有効行か */
03915         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
03916 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
03917 //      if( m_pcEditDoc->m_cDlgJump.m_bLineNumIsCRLF ){
03918         if( m_pShareData->m_bLineNumIsCRLF ){
03919             if( 0 >= nLineNum ){
03920                 nLineNum = 1;
03921             }
03922             /*
03923               カーソル位置変換
03924               物理位置(行頭からのバイト数、折り返し無し行位置)
03925               →
03926               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03927             */
03928             int     nPosX;
03929             int     nPosY;
03930             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
03931                 0,
03932                 nLineNum - 1,
03933                 &nPosX,
03934                 &nPosY
03935             );
03936             nLineNum = nPosY + 1;
03937         }else{
03938             if( 0 >= nLineNum ){
03939                 nLineNum = 1;
03940             }
03941             if( nLineNum > m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
03942                 nLineNum = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
03943             }
03944         }
03945         //  Sep. 8, 2000 genta
03946         AddCurrentLineToHistory();
03947         //  2006.07.09 genta 選択状態を解除しないように
03948         MoveCursorSelecting( 0, nLineNum - 1, m_bSelectingLock, _CARETMARGINRATE / 3 );
03949         return;
03950     }
03951     if( 0 >= nLineNum ){
03952         nLineNum = 1;
03953     }
03954     nMode = 0;
03955     nCurrentLine = m_pcEditDoc->m_cDlgJump.m_nPLSQL_E2 - 1;
03956     nLineCount = m_pcEditDoc->m_cDlgJump.m_nPLSQL_E1 - 1;
03957     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
03958     if( FALSE == m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF ){
03959         /*
03960           カーソル位置変換
03961           レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
03962           →
03963           物理位置(行頭からのバイト数、折り返し無し行位置)
03964         */
03965         int nPosX,nPosY;
03966         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
03967             0,
03968             nLineCount,
03969             (int*)&nPosX,
03970             (int*)&nPosY
03971         );
03972         nLineCount = nPosY;
03973     }
03974 //  for( ; nLineCount <  m_pcEditDoc->m_cLayoutMgr.GetLineCount(); ++nLineCount ){
03975     for( ; nLineCount <  m_pcEditDoc->m_cDocLineMgr.GetLineCount(); ++nLineCount ){
03976 //      pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineCount, &nLineLen );
03977         pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( nLineCount, &nLineLen );
03978         bValidLine = FALSE;
03979         nBgn = 0;
03980         for( i = 0; i < nLineLen; ++i ){
03981             if( ' ' != pLine[i] &&
03982                 TAB != pLine[i]
03983             ){
03984                 break;
03985             }
03986         }
03987         nBgn = i;
03988         for( i = nBgn; i < nLineLen; ++i ){
03989             /* シングルクォーテーション文字列読み込み中 */
03990             if( 20 == nMode ){
03991                 bValidLine = TRUE;
03992                 if( '\'' == pLine[i] ){
03993                     if( i > 0 && '\\' == pLine[i - 1] ){
03994                     }else{
03995                         nMode = 0;
03996                         continue;
03997                     }
03998                 }else{
03999                 }
04000             }else
04001             /* ダブルクォーテーション文字列読み込み中 */
04002             if( 21 == nMode ){
04003                 bValidLine = TRUE;
04004                 if( '"' == pLine[i] ){
04005                     if( i > 0 && '\\' == pLine[i - 1] ){
04006                     }else{
04007                         nMode = 0;
04008                         continue;
04009                     }
04010                 }else{
04011                 }
04012             }else
04013             /* コメント読み込み中 */
04014             if( 8 == nMode ){
04015                 if( i < nLineLen - 1 && '*' == pLine[i] &&  '/' == pLine[i + 1] ){
04016                     if( /*nCommentBegin != nLineCount &&*/ nCommentBegin != 0){
04017                         bValidLine = TRUE;
04018                     }
04019                     ++i;
04020                     nMode = 0;
04021                     continue;
04022                 }else{
04023                 }
04024             }else
04025             /* ノーマルモード */
04026             if( 0 == nMode ){
04027                 /* 空白やタブ記号等を飛ばす */
04028                 if( '\t' == pLine[i] ||
04029                     ' ' == pLine[i] ||
04030                     CR == pLine[i] ||
04031                     LF == pLine[i]
04032                 ){
04033                     continue;
04034                 }else
04035                 if( i < nLineLen - 1 && '-' == pLine[i] &&  '-' == pLine[i + 1] ){
04036                     bValidLine = TRUE;
04037                     break;
04038                 }else
04039                 if( i < nLineLen - 1 && '/' == pLine[i] &&  '*' == pLine[i + 1] ){
04040                     ++i;
04041                     nMode = 8;
04042                     nCommentBegin = nLineCount;
04043                     continue;
04044                 }else
04045                 if( '\'' == pLine[i] ){
04046                     nMode = 20;
04047                     continue;
04048                 }else
04049                 if( '"' == pLine[i] ){
04050                     nMode = 21;
04051                     continue;
04052                 }else{
04053                     bValidLine = TRUE;
04054                 }
04055             }
04056         }
04057         /* コメント読み込み中 */
04058         if( 8 == nMode ){
04059             if( nCommentBegin != 0){
04060                 bValidLine = TRUE;
04061             }
04062             /* コメントブロック内の改行だけの行 */
04063             if( CR == pLine[nBgn] ||
04064                 LF == pLine[nBgn] ){
04065                 bValidLine = FALSE;
04066             }
04067         }
04068         if( bValidLine ){
04069             ++nCurrentLine;
04070             if( nCurrentLine >= nLineNum ){
04071                 break;
04072             }
04073         }
04074     }
04075     /*
04076       カーソル位置変換
04077       物理位置(行頭からのバイト数、折り返し無し行位置)
04078       →
04079       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
04080     */
04081     int     nPosX;
04082     int     nPosY;
04083     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
04084         0,
04085         nLineCount,
04086         &nPosX,
04087         &nPosY
04088     );
04089     //  Sep. 8, 2000 genta
04090     AddCurrentLineToHistory();
04091     //  2006.07.09 genta 選択状態を解除しないように
04092     MoveCursorSelecting( nPosX, nPosY, m_bSelectingLock, _CARETMARGINRATE / 3 );
04093 }
04094
04095
04096
04097
04098 /* フォント設定 */
04099 void CEditView::Command_FONT( void )
04100 {
04101     HWND    hwndFrame;
04102     hwndFrame = ::GetParent( m_hwndParent );
04103
04104     /* フォント設定ダイアログ */
04105     LOGFONT cLogfont = m_pShareData->m_Common.m_lf;
04106     if( m_pcEditDoc->SelectFont( &cLogfont )  ){
04107         m_pShareData->m_Common.m_lf = cLogfont;
04108
04109 //      /* 変更フラグ フォント */
04110 //      m_pShareData->m_bFontModify = TRUE;
04111
04112         if( m_pShareData->m_Common.m_lf.lfPitchAndFamily & FIXED_PITCH  ){
04113             m_pShareData->m_Common.m_bFontIs_FIXED_PITCH = TRUE;    /* 現在のフォントは固定幅フォントである */
04114         }else{
04115             m_pShareData->m_Common.m_bFontIs_FIXED_PITCH = FALSE;   /* 現在のフォントは固定幅フォントである */
04116         }
04117         /* 設定変更を反映させる */
04118         /* 全編集ウィンドウへメッセージをポストする */
04119         CShareData::getInstance()->PostMessageToAllEditors(
04120 //      m_cShareData.SendMessageToAllEditors(
04121             MYWM_CHANGESETTING,
04122             (WPARAM)0, (LPARAM)hwndFrame, hwndFrame
04123         );
04124
04125         /* キャレットの表示 */
04126 //      ::HideCaret( m_hWnd );
04127 //      ::ShowCaret( m_hWnd );
04128
04129 //      /* アクティブにする */
04130 //      /* アクティブにする */
04131 //      ActivateFrameWindow( hwndFrame );
04132     }
04133     return;
04134 }
04135
04136
04137
04138
04139 /* 共通設定 */
04140 void CEditView::Command_OPTION( void )
04141 {
04142     /* 設定プロパティシート テスト用 */
04143     m_pcEditDoc->OpenPropertySheet( -1/*, -1*/ );
04144
04145     return;
04146 }
04147
04148
04149
04150
04151 /* タイプ別設定 */
04152 void CEditView::Command_OPTION_TYPE( void )
04153 {
04154     m_pcEditDoc->OpenPropertySheetTypes( -1, m_pcEditDoc->GetDocumentType() );
04155
04156     return;
04157 }
04158
04159
04160
04161
04162 /* タイプ別設定一覧 */
04163 void CEditView::Command_TYPE_LIST( void )
04164 {
04165     CDlgTypeList    cDlgTypeList;
04166     int             nSettingType;
04167 //  cDlgTypeList.Create( m_hInstance, m_hWnd );
04168     nSettingType = m_pcEditDoc->GetDocumentType();
04169     if( cDlgTypeList.DoModal( m_hInstance, m_hWnd, &nSettingType ) ){
04170         //  Nov. 29, 2000 genta
04171         //  一時的な設定適用機能を無理矢理追加
04172         if( nSettingType & PROP_TEMPCHANGE_FLAG ){
04173             m_pcEditDoc->SetDocumentType( nSettingType & ~PROP_TEMPCHANGE_FLAG, true );
04174             m_pcEditDoc->LockDocumentType();
04175             /* 設定変更を反映させる */
04176             m_pcEditDoc->OnChangeSetting();
04177         }
04178         else{
04179             /* タイプ別設定 */
04180             m_pcEditDoc->OpenPropertySheetTypes( -1, nSettingType );
04181         }
04182     }
04183     return;
04184 }
04185
04186
04187
04188
04189 /* 行の二重化(折り返し単位) */
04190 void CEditView::Command_DUPLICATELINE( void )
04191 {
04192     int             nCaretPosXOld;
04193     int             nCaretPosYOld;
04194     COpe*           pcOpe = NULL;
04195     int             nNewLine;
04196     int             nNewPos;
04197 //  int             i;
04198     int             bCRLF;
04199     int             bAddCRLF;
04200     CMemory         cmemBuf;
04201     const CLayout*  pcLayout;
04202
04203     if( IsTextSelected() ){ /* テキストが選択されているか */
04204         /* 現在の選択範囲を非選択状態に戻す */
04205         DisableSelectArea( TRUE );
04206     }
04207
04208     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( m_nCaretPosY );
04209     if( NULL == pcLayout ){
04210         ::MessageBeep( MB_ICONHAND );
04211         return;
04212     }
04213
04214     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
04215         pcOpe = new COpe;
04216         pcOpe->m_nOpe = OPE_MOVECARET;                                  /* 操作種別 */
04217         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
04218         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
04219         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
04220         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
04221         /* 操作の追加 */
04222         m_pcOpeBlk->AppendOpe( pcOpe );
04223     }
04224
04225     nCaretPosXOld = m_nCaretPosX;
04226     nCaretPosYOld = m_nCaretPosY + 1;
04227
04228     //行頭に移動(折り返し単位)
04229     Command_GOLINETOP( m_bSelectingLock, 0x1 /* カーソル位置に関係なく行頭に移動 */ );
04230
04231     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
04232         pcOpe = new COpe;
04233         pcOpe->m_nOpe = OPE_MOVECARET;                                  /* 操作種別 */
04234         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
04235         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
04236         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
04237         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
04238         /* 操作の追加 */
04239         m_pcOpeBlk->AppendOpe( pcOpe );
04240     }
04241
04242
04243
04244     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
04245         pcOpe = new COpe;
04246         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
04247         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
04248     }
04249
04250     /* 二重化したい行を調べる
04251     ||  ・改行で終わっている
04252     ||  ・改行で終わっていない
04253     ||  ・最終行である
04254     ||  →折り返しでない
04255     ||  ・最終行でない
04256     ||  →折り返しである
04257     */
04258     bCRLF = ( EOL_NONE == pcLayout->m_cEol ) ? FALSE : TRUE;
04259
04260     bAddCRLF = FALSE;
04261     if( !bCRLF ){
04262         if( m_nCaretPosY == m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 ){
04263             bAddCRLF = TRUE;
04264         }
04265     }
04266
04267     cmemBuf.SetData( pcLayout->GetPtr(), pcLayout->GetLengthWithoutEOL() + pcLayout->m_cEol.GetLen() ); //  ※pcLayout->GetLengthWithEOL()は、EOLの長さを必ず1にするので使えない。
04268     if( bAddCRLF ){
04269         /* 現在、Enterなどで挿入する改行コードの種類を取得 */
04270         CEOL cWork = m_pcEditDoc->GetNewLineCode();
04271         cmemBuf.Append( cWork.GetValue(), cWork.GetLen() );
04272     }
04273
04274     /* 現在位置にデータを挿入 */
04275     InsertData_CEditView(
04276         m_nCaretPosX,
04277         m_nCaretPosY,
04278         (char*)cmemBuf.GetPtr(),
04279         cmemBuf.GetLength(),
04280         &nNewLine,
04281         &nNewPos,
04282         pcOpe,
04283         TRUE
04284     );
04285
04286     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
04287 //      pcOpe->m_nCaretPosX_After = nNewPos;    /* 操作後のキャレット位置Ｘ */
04288 //      pcOpe->m_nCaretPosY_After = nNewLine;   /* 操作後のキャレット位置Ｙ */
04289 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
04290 //          pcOpe->m_nCaretPosX_After,
04291 //          pcOpe->m_nCaretPosY_After,
04292 //          &pcOpe->m_nCaretPosX_PHY_After,
04293 //          &pcOpe->m_nCaretPosY_PHY_After
04294 //      );
04295         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
04296             nNewPos,
04297             nNewLine,
04298             &pcOpe->m_nCaretPosX_PHY_After,
04299             &pcOpe->m_nCaretPosY_PHY_After
04300         );
04301
04302         /* 操作の追加 */
04303         m_pcOpeBlk->AppendOpe( pcOpe );
04304     }
04305
04306     /* カーソルを移動 */
04307     MoveCursor( nCaretPosXOld, nCaretPosYOld, TRUE );
04308     m_nCaretPosX_Prev = m_nCaretPosX;
04309
04310
04311     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
04312         pcOpe = new COpe;
04313         pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
04314 //      pcOpe->m_nCaretPosX_Before = m_nCaretPosX;  /* 操作前のキャレット位置Ｘ */
04315 //      pcOpe->m_nCaretPosY_Before = m_nCaretPosY;  /* 操作前のキャレット位置Ｙ */
04316 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
04317 //          pcOpe->m_nCaretPosX_Before,
04318 //          pcOpe->m_nCaretPosY_Before,
04319 //          &pcOpe->m_nCaretPosX_PHY_Before,
04320 //          &pcOpe->m_nCaretPosY_PHY_Before
04321 //      );
04322         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
04323         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
04324
04325 //      pcOpe->m_nCaretPosX_After = m_nCaretPosX;                       /* 操作後のキャレット位置Ｘ */
04326 //      pcOpe->m_nCaretPosY_After = m_nCaretPosY;                       /* 操作後のキャレット位置Ｙ */
04327 //      pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;               /* 操作後のキャレット位置Ｘ */
04328 //      pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;               /* 操作後のキャレット位置Ｙ */
04329         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
04330         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
04331         /* 操作の追加 */
04332         m_pcOpeBlk->AppendOpe( pcOpe );
04333     }
04334     return;
04335 }
04336
04337
04338
04339
04340 /* 小文字 */
04341 void CEditView::Command_TOLOWER( void )
04342 {
04343     /* 選択エリアのテキストを指定方法で変換 */
04344     ConvSelectedArea( F_TOLOWER );
04345     return;
04346 }
04347
04348
04349
04350
04351 /* 大文字 */
04352 void CEditView::Command_TOUPPER( void )
04353 {
04354     /* 選択エリアのテキストを指定方法で変換 */
04355     ConvSelectedArea( F_TOUPPER );
04356     return;
04357 }
04358
04359
04360
04361
04362 /* 全角→半角 */
04363 void CEditView::Command_TOHANKAKU( void )
04364 {
04365     /* 選択エリアのテキストを指定方法で変換 */
04366     ConvSelectedArea( F_TOHANKAKU );
04367     return;
04368 }
04369
04370
04371 /* 全角カタカナ→半角カタカナ */        //Aug. 29, 2002 ai
04372 void CEditView::Command_TOHANKATA( void )
04373 {
04374     /* 選択エリアのテキストを指定方法で変換 */
04375     ConvSelectedArea( F_TOHANKATA );
04376     return;
04377 }
04378
04379             //July. 30, 2001 Misaka
04381 void CEditView::Command_TOZENEI( void )
04382 {
04383     /* 選択エリアのテキストを指定方法で変換 */
04384     ConvSelectedArea( F_TOZENEI );
04385     return;
04386 }
04387
04389 void CEditView::Command_TOHANEI( void )
04390 {
04391     /* 選択エリアのテキストを指定方法で変換 */
04392     ConvSelectedArea( F_TOHANEI );
04393     return;
04394 }
04395
04396
04397 /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
04398 void CEditView::Command_TOZENKAKUKATA( void )
04399 {
04400     /* 選択エリアのテキストを指定方法で変換 */
04401     ConvSelectedArea( F_TOZENKAKUKATA );
04402     return;
04403 }
04404
04405
04406
04407
04408 /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
04409 void CEditView::Command_TOZENKAKUHIRA( void )
04410 {
04411     /* 選択エリアのテキストを指定方法で変換 */
04412     ConvSelectedArea( F_TOZENKAKUHIRA );
04413     return;
04414 }
04415
04416
04417
04418
04419 /* 半角カタカナ→全角カタカナ */
04420 void CEditView::Command_HANKATATOZENKAKUKATA( void )
04421 {
04422     /* 選択エリアのテキストを指定方法で変換 */
04423     ConvSelectedArea( F_HANKATATOZENKAKUKATA );
04424     return;
04425 }
04426
04427
04428
04429
04430 /* 半角カタカナ→全角ひらがな */
04431 void CEditView::Command_HANKATATOZENKAKUHIRA( void )
04432 {
04433     /* 選択エリアのテキストを指定方法で変換 */
04434     ConvSelectedArea( F_HANKATATOZENKAKUHIRA );
04435     return;
04436 }
04437
04438
04439
04440
04441 /* TAB→空白 */
04442 void CEditView::Command_TABTOSPACE( void )
04443 {
04444     /* 選択エリアのテキストを指定方法で変換 */
04445     ConvSelectedArea( F_TABTOSPACE );
04446     return;
04447 }
04448
04449 /* 空白→TAB */ //#### Stonee, 2001/05/27
04450 void CEditView::Command_SPACETOTAB( void )
04451 {
04452     /* 選択エリアのテキストを指定方法で変換 */
04453     ConvSelectedArea( F_SPACETOTAB );
04454     return;
04455 }
04456
04457
04458
04459 //#define F_HANKATATOZENKAKUKATA    30557   /* 半角カタカナ→全角カタカナ */
04460 //#define F_HANKATATOZENKAKUHIRA    30558   /* 半角カタカナ→全角ひらがな */
04461
04462
04463
04464
04465 /* E-Mail(JIS→SJIS)コード変換 */
04466 void CEditView::Command_CODECNV_EMAIL( void )
04467 {
04468     /* 選択エリアのテキストを指定方法で変換 */
04469     ConvSelectedArea( F_CODECNV_EMAIL );
04470     return;
04471 }
04472
04473
04474
04475
04476 /* EUC→SJISコード変換 */
04477 void CEditView::Command_CODECNV_EUC2SJIS( void )
04478 {
04479     /* 選択エリアのテキストを指定方法で変換 */
04480     ConvSelectedArea( F_CODECNV_EUC2SJIS );
04481     return;
04482 }
04483
04484
04485
04486
04487 /* Unicode→SJISコード変換 */
04488 void CEditView::Command_CODECNV_UNICODE2SJIS( void )
04489 {
04490     /* 選択エリアのテキストを指定方法で変換 */
04491     ConvSelectedArea( F_CODECNV_UNICODE2SJIS );
04492     return;
04493 }
04494
04495
04496
04497
04498 /* UnicodeBE→SJISコード変換 */
04499 void CEditView::Command_CODECNV_UNICODEBE2SJIS( void )
04500 {
04501     /* 選択エリアのテキストを指定方法で変換 */
04502     ConvSelectedArea( F_CODECNV_UNICODEBE2SJIS );
04503     return;
04504 }
04505
04506
04507
04508
04509 /* SJIS→JISコード変換 */
04510 void CEditView::Command_CODECNV_SJIS2JIS( void )
04511 {
04512     /* 選択エリアのテキストを指定方法で変換 */
04513     ConvSelectedArea( F_CODECNV_SJIS2JIS );
04514     return;
04515 }
04516
04517
04518
04519
04520 /* SJIS→EUCコード変換 */
04521 void CEditView::Command_CODECNV_SJIS2EUC( void )
04522 {
04523     /* 選択エリアのテキストを指定方法で変換 */
04524     ConvSelectedArea( F_CODECNV_SJIS2EUC );
04525     return;
04526 }
04527
04528
04529
04530
04531 /* UTF-8→SJISコード変換 */
04532 void CEditView::Command_CODECNV_UTF82SJIS( void )
04533 {
04534     /* 選択エリアのテキストを指定方法で変換 */
04535     ConvSelectedArea( F_CODECNV_UTF82SJIS );
04536     return;
04537 }
04538
04539
04540
04541
04542 /* UTF-7→SJISコード変換 */
04543 void CEditView::Command_CODECNV_UTF72SJIS( void )
04544 {
04545     /* 選択エリアのテキストを指定方法で変換 */
04546     ConvSelectedArea( F_CODECNV_UTF72SJIS );
04547     return;
04548 }
04549
04550
04551
04552
04553 /* SJIS→UTF-7コード変換 */
04554 void CEditView::Command_CODECNV_SJIS2UTF7( void )
04555 {
04556     /* 選択エリアのテキストを指定方法で変換 */
04557     ConvSelectedArea( F_CODECNV_SJIS2UTF7 );
04558     return;
04559 }
04560
04561
04562
04563
04564 /* SJIS→UTF-8コード変換 */
04565 void CEditView::Command_CODECNV_SJIS2UTF8( void )
04566 {
04567     /* 選択エリアのテキストを指定方法で変換 */
04568     ConvSelectedArea( F_CODECNV_SJIS2UTF8 );
04569     return;
04570 }
04571
04572
04573
04574
04575 /* 自動判別→SJISコード変換 */
04576 void CEditView::Command_CODECNV_AUTO2SJIS( void )
04577 {
04578     /* 選択エリアのテキストを指定方法で変換 */
04579     ConvSelectedArea( F_CODECNV_AUTO2SJIS );
04580     return;
04581 }
04582
04583
04584
04585
04590 //BOOL CEditView::Command_FUNCLIST( BOOL bCheckOnly )   //  2001.12.03 hor ブックマーク用のフラグを追加
04591 BOOL CEditView::Command_FUNCLIST( int nAction/*nReLoad,bCheckOnly*/, int nOutlineType ) // トグル用のフラグに変更 20060201 aroka
04592 {
04593 //  if( bCheckOnly ){
04594 //      return TRUE;
04595 //  }
04596
04597     static CFuncInfoArr cFuncInfoArr;
04598 //  int     nLine;
04599 //  int     nListType;
04600
04601     //  2001.12.03 hor & 2002.3.13 YAZAKI
04602     if( nOutlineType == OUTLINE_DEFAULT ){
04603         /* タイプ別に設定されたアウトライン解析方法 */
04604         nOutlineType = m_pcEditDoc->GetDocumentAttribute().m_nDefaultOutline;
04605     }
04606
04607     if( NULL != m_pcEditDoc->m_cDlgFuncList.m_hWnd && nAction != SHOW_RELOAD ){
04608         switch(nAction ){
04609         case SHOW_NORMAL: // アクティブにする
04610             //  開いているものと種別が同じならActiveにするだけ．異なれば再解析
04611             if( m_pcEditDoc->m_cDlgFuncList.CheckListType( nOutlineType )){
04612                 ActivateFrameWindow( m_pcEditDoc->m_cDlgFuncList.m_hWnd );
04613                 return TRUE;
04614             }
04615             break;
04616         case SHOW_TOGGLE: // 閉じる
04617             //  開いているものと種別が同じなら閉じる．異なれば再解析
04618             if( m_pcEditDoc->m_cDlgFuncList.CheckListType( nOutlineType )){
04619                 ::SendMessage( m_pcEditDoc->m_cDlgFuncList.m_hWnd, WM_CLOSE, 0, 0 );
04620                 return TRUE;
04621             }
04622             break;
04623         default:
04624             break;
04625         }
04626     }
04627 //  if( NULL != m_pcEditDoc->m_cDlgFuncList.m_hWnd && !nReLoad ){
04628 //      /* アクティブにする */
04630 //      //  Oct. 5, 2002 genta
04631 //      //  開いているものと種別が同じならActiveにするだけ．異なれば再解析
04632 //      if( m_pcEditDoc->m_cDlgFuncList.CheckListType( nOutlineType )){
04633 //          ActivateFrameWindow( m_pcEditDoc->m_cDlgFuncList.m_hWnd );
04634 //          return TRUE;
04635 //      }
04636 //  }
04637
04638     /* 解析結果データを空にする */
04639     cFuncInfoArr.Empty();
04640
04641     switch( nOutlineType ){
04642 //  case OUTLINE_C:         m_pcEditDoc->MakeFuncList_C( &cFuncInfoArr );break;
04643     case OUTLINE_CPP:
04644         m_pcEditDoc->MakeFuncList_C( &cFuncInfoArr );
04645         /* C言語標準保護委員会勧告特別処理実装箇所(嘘) */
04646         if( CheckEXT( m_pcEditDoc->GetFilePath(), "c" ) ){
04647             nOutlineType = OUTLINE_C;   /* これでC関数一覧リストビューになる */
04648         }
04649         break;
04650     case OUTLINE_PLSQL:     m_pcEditDoc->MakeFuncList_PLSQL( &cFuncInfoArr );break;
04651     case OUTLINE_JAVA:      m_pcEditDoc->MakeFuncList_Java( &cFuncInfoArr );break;
04652     case OUTLINE_COBOL:     m_pcEditDoc->MakeTopicList_cobol( &cFuncInfoArr );break;
04653     case OUTLINE_ASM:       m_pcEditDoc->MakeTopicList_asm( &cFuncInfoArr );break;
04654     case OUTLINE_PERL:      m_pcEditDoc->MakeFuncList_Perl( &cFuncInfoArr );break;  //  Sep. 8, 2000 genta
04655     case OUTLINE_VB:        m_pcEditDoc->MakeFuncList_VisualBasic( &cFuncInfoArr );break;   //  June 23, 2001 N.Nakatani
04656     case OUTLINE_WZTXT:     m_pcEditDoc->MakeTopicList_wztxt(&cFuncInfoArr);break;      // 2003.05.20 zenryaku 階層付テキスト アウトライン解析
04657     case OUTLINE_HTML:      m_pcEditDoc->MakeTopicList_html(&cFuncInfoArr);break;       // 2003.05.20 zenryaku HTML アウトライン解析
04658     case OUTLINE_TEX:       m_pcEditDoc->MakeTopicList_tex(&cFuncInfoArr);break;        // 2003.07.20 naoh TeX アウトライン解析
04659     case OUTLINE_BOOKMARK:  m_pcEditDoc->MakeFuncList_BookMark( &cFuncInfoArr );break;  //  2001.12.03 hor
04660     case OUTLINE_FILE:      m_pcEditDoc->MakeFuncList_RuleFile( &cFuncInfoArr );break;  //  2002.04.01 YAZAKI アウトライン解析にルールファイルを導入
04661 //  case OUTLINE_UNKNOWN:   //Jul. 08, 2001 JEPRO 使わないように変更
04662     case OUTLINE_PYTHON:    m_pcEditDoc->MakeFuncList_python(&cFuncInfoArr);break;      // 2007.02.08 genta
04663     case OUTLINE_TEXT:
04664         //  fall though
04665         //  ここには何も入れてはいけない 2007.02.28 genta 注意書き
04666     default:
04667         m_pcEditDoc->MakeTopicList_txt( &cFuncInfoArr );
04668         break;
04669     }
04670
04671     /* 解析対象ファイル名 */
04672     strcpy( cFuncInfoArr.m_szFilePath, m_pcEditDoc->GetFilePath() );
04673
04674     /* アウトライン ダイアログ */
04675 //  m_pcEditDoc->m_cDlgFuncList.Create(
04676 //      m_hInstance,
04677 //      /*m_pcEditDoc->*/m_hWnd,
04678 //      &cFuncInfoArr,
04679 //      m_nCaretPosY + 1,
04680 //      nListType,
04681 //      m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF    /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
04682 //  );
04683
04684 //  /* アウトライン ダイアログをモーダルにするか */
04685 //  if( ????? ){
04686 //      nLine = m_pcEditDoc->m_cDlgFuncList.DoModal();
04687 //      if( nLine > 0 ){
04688 //          /* 矩形範囲選択中か */
04689 //          if( IsTextSelected() ){ /* テキストが選択されているか */
04690 //              /* 現在の選択範囲を非選択状態に戻す */
04691 //              DisableSelectArea( TRUE );
04692 //          }
04693 //
04694 //          /*
04695 //            カーソル位置変換
04696 //            物理位置(行頭からのバイト数、折り返し無し行位置)
04697 //            →
04698 //            レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
04699 //          */
04700 //          int     nPosX;
04701 //          int     nPosY;
04702 //          m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
04703 //              0,
04704 //              nLine - 1,
04705 //              &nPosX,
04706 //              &nPosY
04707 //          );
04708 //          /* カーソルを選択開始位置に移動 */
04709 //          MoveCursor( 0, nPosY, TRUE, _CARETMARGINRATE / 3 );
04710 //          m_nCaretPosX_Prev = m_nCaretPosX;
04711 //      }
04712 //  }else{
04713         /* アウトライン ダイアログの表示 */
04714         if( NULL == m_pcEditDoc->m_cDlgFuncList.m_hWnd ){
04715 //          m_pcEditDoc->m_cDlgFuncList.DoModeless( this );
04716             m_pcEditDoc->m_cDlgFuncList.DoModeless(
04717                 m_hInstance,
04718                 /*m_pcEditDoc->*/m_hWnd,
04719                 (LPARAM)this,
04720                 &cFuncInfoArr,
04721                 m_nCaretPosY + 1,
04722                 nOutlineType,
04723                 m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF    /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
04724             );
04725         }else{
04726             /* アクティブにする */
04727             m_pcEditDoc->m_cDlgFuncList.Redraw( nOutlineType, &cFuncInfoArr, m_nCaretPosY + 1 );
04728             ActivateFrameWindow( m_pcEditDoc->m_cDlgFuncList.m_hWnd );
04729 //          ::SetDlgItemText( m_pcEditDoc->m_cDlgFuncList.m_hWnd, IDC_COMBO_TEXT, cmemCurText.GetPtr() );
04730         }
04731 //  }
04732
04733     return TRUE;
04734 }
04735
04736
04737
04738
04739 /* 上下に分割 */    //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
04740 void CEditView::Command_SPLIT_V( void )
04741 {
04742     m_pcEditDoc->m_cSplitterWnd.VSplitOnOff();
04743     return;
04744 }
04745
04746
04747
04748
04749 /* 左右に分割 */    //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
04750 void CEditView::Command_SPLIT_H( void )
04751 {
04752     m_pcEditDoc->m_cSplitterWnd.HSplitOnOff();
04753     return;
04754 }
04755
04756
04757
04758
04759 /* 縦横に分割 */    //Sept. 17, 2000 jepro 説明に「に」を追加
04760 void CEditView::Command_SPLIT_VH( void )
04761 {
04762     m_pcEditDoc->m_cSplitterWnd.VHSplitOnOff();
04763     return;
04764 }
04765
04766
04767
04768
04769 //From Here Nov. 25, 2000 JEPRO
04770 /* ヘルプ目次 */
04771 void CEditView::Command_HELP_CONTENTS( void )
04772 {
04773     char    szHelp[_MAX_PATH + 1];
04774     /* ヘルプファイルのフルパスを返す */
04775 	::GetHelpFilePath( szHelp );
04776     ShowWinHelpContents( m_hWnd, szHelp );  //  目次を表示する
04777     return;
04778 }
04779
04780
04781
04782
04783 /* ヘルプキーワード検索 */
04784 void CEditView::Command_HELP_SEARCH( void )
04785 {
04786     char    szHelp[_MAX_PATH + 1];
04787     /* ヘルプファイルのフルパスを返す */
04788 	::GetHelpFilePath( szHelp );
04789     MyWinHelp( m_hWnd, szHelp, HELP_KEY, (ULONG_PTR)"" );   // 2006.10.10 ryoji MyWinHelpに変更に変更
04790     return;
04791 }
04792 //To Here Nov. 25, 2000
04793
04794
04795
04796
04801 void CEditView::Command_ToggleKeySearch( void )
04802 {   /* 共通設定ダイアログの設定をキー割り当てでも切り替えられるように */
04803     if(TRUE == m_pShareData->m_Common.m_bUseCaretKeyWord ){
04804         m_pShareData->m_Common.m_bUseCaretKeyWord = FALSE;
04805     }else{
04806         m_pShareData->m_Common.m_bUseCaretKeyWord = TRUE;
04807     }
04808 }
04809
04810
04811
04812
04813 /* コマンド一覧 */
04814 void CEditView::Command_MENU_ALLFUNC( void )
04815 {
04816
04817     char    szLabel[300];
04818 //  char    szLabel2[300];
04819     UINT    uFlags;
04820     POINT   po;
04821     HMENU   hMenu;
04822     HMENU   hMenuPopUp;
04823     int     i;
04824     int     j;
04825     int     nId;
04826
04827 //  From Here Sept. 15, 2000 JEPRO
04828 //  サブメニュー、特に「その他」のコマンドに対してステータスバーに表示されるキーアサイン情報が
04829 //  メニューで隠れないように右にずらした
04830 //  (本当はこの「コマンド一覧」メニューをダイアログに変更しバーをつまんで自由に移動できるようにしたい)
04831 //  po.x = 0;
04832     po.x = 540;
04833 //  To Here Sept. 15, 2000 (Oct. 7, 2000 300→500; Nov. 3, 2000 500→540)
04834     po.y = 0;
04835     ::ClientToScreen( m_hWnd, &po );
04836
04837     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
04838     pCEditWnd->m_CMenuDrawer.ResetContents();
04839
04840     //  Oct. 3, 2001 genta
04841     CFuncLookup& FuncLookup = m_pcEditDoc->m_cFuncLookup;
04842
04843     hMenu = ::CreatePopupMenu();
04844 //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように変更したことで1番(カーソル移動系)が前にシフトされた(この変更によって i=1→i=0 と変更)
04845     //  Oct. 3, 2001 genta
04846     for( i = 0; i < FuncLookup.GetCategoryCount(); i++ ){
04847         hMenuPopUp = ::CreatePopupMenu();
04848         for( j = 0; j < FuncLookup.GetItemCount(i); j++ ){
04849             //  Oct. 3, 2001 genta
04850             int code = FuncLookup.Pos2FuncCode( i, j );
04851             if( code != 0 ){
04852                 FuncLookup.Pos2FuncName( i, j, szLabel, 256 );
04853                 //::LoadString( m_hInstance, nsFuncCode::ppnFuncListArr[i][j], szLabel, 256 );
04854                 uFlags = MF_BYPOSITION | MF_STRING | MF_ENABLED;
04855         //          uFlags = MF_BYPOSITION | MF_STRING | MF_DISABLED | MF_GRAYED;
04856         //          pCEditWnd->m_CMenuDrawer.MyAppendMenu( hMenuPopUp, uFlags, nsFuncCode::ppnFuncListArr[i][j] , szLabel );
04857                 //  Oct. 3, 2001 genta
04858                 pCEditWnd->m_CMenuDrawer.MyAppendMenu( hMenuPopUp, uFlags, code, szLabel );
04859             }
04860         }
04861         //  Oct. 3, 2001 genta
04862         pCEditWnd->m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , FuncLookup.Category2Name(i) );
04863 //      pCEditWnd->m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , nsFuncCode::ppszFuncKind[i] );
04864     }
04865
04866     nId = ::TrackPopupMenu(
04867         hMenu,
04868         TPM_TOPALIGN
04869         | TPM_LEFTALIGN
04870         | TPM_RETURNCMD
04871         | TPM_LEFTBUTTON
04872         ,
04873         po.x,
04874         po.y,
04875         0,
04876         ::GetParent( m_hwndParent )/*m_hWnd*/,
04877         NULL
04878     );
04879     ::DestroyMenu( hMenu );
04880     if( 0 != nId ){
04881         /* コマンドコードによる処理振り分け */
04882 //      HandleCommand( nFuncID, TRUE, 0, 0, 0, 0 );
04883         ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nId, 0 ), (LPARAM)NULL );
04884     }
04885     return;
04886 }
04887
04888
04889
04890
04891 /* 外部ヘルプ１ */
04892 void CEditView::Command_EXTHELP1( void )
04893 {
04894 retry:;
04895     if( CShareData::getInstance()->ExtWinHelpIsSet( m_pcEditDoc->GetDocumentType() ) == false){
04896 //  if( 0 == strlen( m_pShareData->m_Common.m_szExtHelp1 ) ){
04897         ::MessageBeep( MB_ICONHAND );
04898 //From Here Sept. 15, 2000 JEPRO
04899 //      [Esc]キーと[x]ボタンでも中止できるように変更
04900 //      if( IDYES == ::MYMESSAGEBOX( NULL, MB_YESNO | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME,
04901         if( IDYES == ::MYMESSAGEBOX( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME,
04902 //To Here Sept. 15, 2000
04903             "外部ヘルプ１が設定されていません。\n今すぐ設定しますか?"
04904         ) ){
04905             /* 共通設定 プロパティシート */
04906             if( !m_pcEditDoc->OpenPropertySheet( ID_PAGENUM_HELPER/*, IDC_EDIT_EXTHELP1*/ ) ){
04907                 return;
04908             }
04909             goto retry;
04910         }
04911         //  Jun. 15, 2000 genta
04912         else{
04913             return;
04914         }
04915     }
04916
04917     CMemory     cmemCurText;
04918     const char* helpfile = CShareData::getInstance()->GetExtWinHelp( m_pcEditDoc->GetDocumentType() );
04919     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
04920     GetCurrentTextForSearch( cmemCurText );
04921     if( _IS_REL_PATH( helpfile ) ){
04922         // 2003.06.23 Moca 相対パスは実行ファイルからのパス
04923         // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
04924         char path[_MAX_PATH];
04925         GetInidirOrExedir( path, helpfile );
04926         ::WinHelp( m_hwndParent, path, HELP_KEY, (ULONG_PTR)(char*)cmemCurText.GetPtr() );
04927         return;
04928     }
04929     ::WinHelp( m_hwndParent, helpfile , HELP_KEY, (ULONG_PTR)(char*)cmemCurText.GetPtr() );
04930     return;
04931 }
04932
04933
04934
04935
04943 void CEditView::Command_EXTHTMLHELP( const char* helpfile, const char* kwd )
04944 {
04945     HWND        hwndHtmlHelp;
04946 //  HWND        hwndHtmlHelpChild;
04947     CMemory     cmemCurText;
04948     int         nLen;
04949
04950     //  From Here Jul. 5, 2002 genta
04951     const char *filename = NULL;
04952     if ( helpfile == NULL || helpfile[0] == '\0' ){
04953         while( !CShareData::getInstance()->ExtHTMLHelpIsSet( m_pcEditDoc->GetDocumentType()) ){
04954             ::MessageBeep( MB_ICONHAND );
04955     //  From Here Sept. 15, 2000 JEPRO
04956     //      [Esc]キーと[x]ボタンでも中止できるように変更
04957     //      if( IDYES == ::MYMESSAGEBOX( NULL, MB_YESNO | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME,
04958             if( IDYES != ::MYMESSAGEBOX( NULL, MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_APPLMODAL | MB_TOPMOST, GSTR_APPNAME,
04959     //  To Here Sept. 15, 2000
04960                 "外部HTMLヘルプが設定されていません。\n今すぐ設定しますか?"
04961             ) ){
04962                 return;
04963             }
04964             /* 共通設定 プロパティシート */
04965             if( !m_pcEditDoc->OpenPropertySheet( ID_PAGENUM_HELPER/*, IDC_EDIT_EXTHTMLHELP*/ ) ){
04966                 return;
04967             }
04968         }
04969         filename = CShareData::getInstance()->GetExtHTMLHelp( m_pcEditDoc->GetDocumentType() );
04970     }
04971     else {
04972         filename = helpfile;
04973     }
04974     //  To Here Jul. 5, 2002 genta
04975
04976     //  Jul. 5, 2002 genta
04977     //  キーワードの外部指定を可能に
04978     if( kwd != NULL && kwd[0] != '\0' ){
04979         cmemCurText.SetDataSz( kwd );
04980     }
04981     else {
04982         /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
04983         GetCurrentTextForSearch( cmemCurText );
04984     }
04985
04986     /* HtmlHelpビューアはひとつ */
04987     if( CShareData::getInstance()->HTMLHelpIsSingle( m_pcEditDoc->GetDocumentType() ) ){
04988 //  if( m_pShareData->m_Common.m_bHtmlHelpIsSingle ){
04989         // タスクトレイのプロセスにHtmlHelpを起動させる
04990         // 2003.06.23 Moca 相対パスは実行ファイルからのパス
04991         // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
04992         if( _IS_REL_PATH( filename ) ){
04993             GetInidirOrExedir( m_pShareData->m_szWork, filename );
04994         }else{
04995             strcpy( m_pShareData->m_szWork, filename ); //  Jul. 5, 2002 genta
04996         }
04997         nLen = lstrlen( m_pShareData->m_szWork );
04998         strcpy( &m_pShareData->m_szWork[nLen + 1], cmemCurText.GetPtr() );
04999         hwndHtmlHelp = (HWND)::SendMessage( m_pShareData->m_hwndTray, MYWM_HTMLHELP, (WPARAM)::GetParent( m_hwndParent ), 0 );
05000     }else{
05001         /* 自分でHtmlHelpを起動させる */
05002         HH_AKLINK   link;
05003         link.cbStruct = sizeof( HH_AKLINK ) ;
05004         link.fReserved = FALSE ;
05005         link.pszKeywords = (char*)cmemCurText.GetPtr();
05006         link.pszUrl = NULL;
05007         link.pszMsgText = NULL;
05008         link.pszMsgTitle = NULL;
05009         link.pszWindow = NULL;
05010         link.fIndexOnFail = TRUE;
05011
05012         // 2003.06.23 Moca 相対パスは実行ファイルからのパス
05013         // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
05014         if( _IS_REL_PATH( filename ) ){
05015             char path[_MAX_PATH];
05016             GetInidirOrExedir( path, filename );
05017             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
05018             hwndHtmlHelp = OpenHtmlHelp(
05019                 NULL/*m_pShareData->m_hwndTray*/,
05020                 path, //    Jul. 5, 2002 genta
05021                 HH_KEYWORD_LOOKUP,
05022                 (DWORD_PTR)&link
05023             );
05024         }else{
05025             //  Jul. 6, 2001 genta HtmlHelpの呼び出し方法変更
05026             hwndHtmlHelp = OpenHtmlHelp(
05027                 NULL/*m_pShareData->m_hwndTray*/,
05028                 filename, //    Jul. 5, 2002 genta
05029                 HH_KEYWORD_LOOKUP,
05030                 (DWORD_PTR)&link
05031             );
05032         }
05033     }
05034
05035
05036
05037 //  if( NULL != hwndHtmlHelp ){
05038 //      hwndHtmlHelpChild = ::FindWindowEx( hwndHtmlHelp, NULL, "#32770", NULL );
05039 //      if( NULL != hwndHtmlHelpChild ){
05040 //          hwndHtmlHelp = hwndHtmlHelpChild;
05041 //      }else{
05042 //      }
05043 //  }
05044 //  int     nResult;
05045 //  nResult = ::PostMessage(
05046 //      hwndHtmlHelpChild,
05047 //      WM_MOUSEACTIVATE,
05048 //      (WPARAM) hwndHtmlHelp,                  // アプリケーションのウィンドウを指定
05049 //      MAKELPARAM( HTCLIENT, WM_LBUTTONDOWN )  // とりあえずクライアント領域でLBUTTONDOWNにしておく
05050 //  );
05051 //  if ( nResult == MA_ACTIVATE || nResult == MA_ACTIVATEANDEAT ){
05052 //      ::SetFocus( hwndHtmlHelpChild );        // アクティブにする場合だけフォーカスを移す
05053 //      /* アクティブにする */
05054 //      ActivateFrameWindow( hwndHtmlHelpChild );
05055 //  }
05056 //
05057 //  HWND    hToplevel = ::FindWindow( "#32770", "設定" );
05058 //  HWND    hWnd = ::FindWindowEx( hToplevel, NULL, "Edit", NULL );
05059 //  if ( hwndHtmlHelp != NULL ){
05060 //      DWORD   dwPID;
05061 //      DWORD   dwTID = ::GetWindowThreadProcessId( hwndHtmlHelp, &dwPID );
05062 //      ::AttachThreadInput( ::GetCurrentThreadId(), dwTID, TRUE) ;
05063 //      ::SetFocus( hwndHtmlHelp );
05064 //      ::AttachThreadInput( ::GetCurrentThreadId(), dwTID, FALSE );
05065 //  }
05066
05067 /* 自分でHtmlHelpを起動させる */
05068 //  hwndHtmlHelp = ::HtmlHelp(
05069 //      NULL/*m_pShareData->m_hwndTray*/,
05070 //      m_pShareData->m_Common.m_szExtHtmlHelp,
05071 //      HH_DISPLAY_TOPIC,
05072 //      (DWORD)0
05073 //  );
05074 //  HH_AKLINK   link;
05075 //  link.cbStruct = sizeof(HH_AKLINK) ;
05076 //  link.fReserved = FALSE ;
05077 //  link.pszKeywords = (char*)cmemCurText.GetPtr();
05078 //  link.pszUrl = NULL;
05079 //  link.pszMsgText = NULL;
05080 //  link.pszMsgTitle = NULL;
05081 //  link.pszWindow = NULL;
05082 //  link.fIndexOnFail = TRUE;
05083 //  hwndHtmlHelp = ::HtmlHelp(
05084 //      NULL/*m_pShareData->m_hwndTray*/,
05085 //      m_pShareData->m_Common.m_szExtHtmlHelp,
05086 //      HH_KEYWORD_LOOKUP,
05087 //      (DWORD)&link
05088 //  );
05089
05090
05091 //  memcpy( m_pShareData->m_szWork, (void*)&link, sizeof(HH_AKLINK) );
05092
05093 //  /* アクティブにする */
05094 //  ActivateFrameWindow( hwndHtmlHelp );
05095 //  hwndHtmlHelpChild = ::FindWindowEx( hwndHtmlHelp, NULL, "#32770", NULL );
05096 //  if( NULL != hwndHtmlHelpChild ){
05097 //      ::BringWindowToTop( hwndHtmlHelpChild );
05098
05099 //      /* アクティブにする */
05100 //      ActivateFrameWindow( hwndHtmlHelpChild );
05101 //      ::SetFocus( hwndHtmlHelpChild );
05102 //      ::SetActiveWindow( hwndHtmlHelpChild );
05103 //      ::PostMessage( hwndHtmlHelpChild, WM_ACTIVATEAPP, TRUE, NULL );
05104 //  }else{
05105 //      ::BringWindowToTop( hwndHtmlHelp );
05106
05107 //      /* アクティブにする */
05108 //      ActivateFrameWindow( hwndHtmlHelp );
05109 //      ::SetFocus( hwndHtmlHelp );
05110 //      ::SetActiveWindow( hwndHtmlHelp );
05111 //      ::PostMessage( hwndHtmlHelp, WM_ACTIVATEAPP, TRUE, NULL );
05112 //  }
05113
05114     //  Jul. 6, 2001 genta hwndHtmlHelpのチェックを追加
05115     if( hwndHtmlHelp != NULL ){
05116         ::BringWindowToTop( hwndHtmlHelp );
05117     }
05118
05119     return;
05120 }
05121
05122
05123
05124
05125 //From Here Dec. 25, 2000 JEPRO
05126 /* バージョン情報 */
05127 void CEditView::Command_ABOUT( void )
05128 {
05129     CDlgAbout cDlgAbout;
05130     cDlgAbout.DoModal( m_hInstance, m_hWnd );
05131     return;
05132 }
05133 //To Here Dec. 25, 2000
05134
05135
05136
05137
05138 /* 右クリックメニュー */
05139 void CEditView::Command_MENU_RBUTTON( void )
05140 {
05141     int         nId;
05142     char*       pszStr;
05143     int         nLength;
05144 //  HGLOBAL     hgClip;
05145 //  char*       pszClip;
05146     char*       pszWork;
05147     int         i;
05148     /* ポップアップメニュー(右クリック) */
05149     nId = CreatePopUpMenu_R();
05150     if( 0 == nId ){
05151         return;
05152     }
05153     switch( nId ){
05154     case IDM_COPYDICINFO:
05155         pszStr = m_cTipWnd.m_cInfo.GetPtr( &nLength );
05156
05157         pszWork = (char*)malloc( nLength + 1);
05158         memcpy( pszWork, pszStr, nLength );
05159         pszWork[nLength] = '\0' ;
05160         // 見た目と同じように、\n を CR+LFへ変換する
05161         for( i = 0; i < nLength ; ++i){
05162             if( pszWork[i] == '\\' && pszWork[i + 1] == 'n'){
05163                 pszWork[i] = '\x0d' ;
05164                 pszWork[i + 1] = '\x0a' ;
05165             }
05166         }
05167         /* クリップボードにデータを設定 */
05168         MySetClipboardData( pszWork, nLength, FALSE );
05169         free( pszWork );
05170
05171 //      pszStr = m_cTipWnd.m_cInfo.GetPtr( &nLength );
05172 //      /* クリップボードにデータを設定 */
05173 //      MySetClipboardData( pszStr, nLength, FALSE );
05174
05175 //      /* Windowsクリップボードにコピー */
05176 //      hgClip = ::GlobalAlloc( GMEM_MOVEABLE | GMEM_DDESHARE, nLength + 1 );
05177 //      pszClip = (char*)::GlobalLock( hgClip );
05178 //      memcpy( pszClip, pszStr, nLength + 1 );
05179 //      ::GlobalUnlock( hgClip );
05180 //      ::OpenClipboard( m_hWnd );
05181 //      ::EmptyClipboard();
05182 //      ::SetClipboardData( CF_OEMTEXT, hgClip );
05183 //      ::CloseClipboard();
05184         break;
05185
05186     case IDM_JUMPDICT:
05187         /* キーワード辞書ファイルを開く */
05188         if(m_pcEditDoc->GetDocumentAttribute().m_bUseKeyWordHelp)       /* キーワード辞書セレクトを使用する */  // 2006.04.10 fon
05189             //  Feb. 17, 2007 genta 相対パスを実行ファイル基準で開くように
05190             TagJumpSub( m_pShareData->m_Types[m_pcEditDoc->GetDocumentType()].m_KeyHelpArr[m_cTipWnd.m_nSearchDict].m_szPath, m_cTipWnd.m_nSearchLine, 1, 0, true );
05191         break;
05192
05193     default:
05194         /* コマンドコードによる処理振り分け */
05195 //      HandleCommand( nId, TRUE, 0, 0, 0, 0 );
05196         ::PostMessage( ::GetParent( m_hwndParent ), WM_COMMAND, MAKELONG( nId, 0 ),  (LPARAM)NULL );
05197         break;
05198     }
05199     return;
05200 }
05201
05202
05203
05204
05205
05206 //typedef BOOL (*LPSENDTEXTMAIL) ( const char*, long, const char*, const char*, const char*, const char*, const char*, const char*, const char*, const char*, long, const char**, long*, long, const char**, const char**, BOOL, BOOL, HWND, HWND, char* );
05207
05208
05209
05210
05211
05212
05213
05214 // From Here 2001.12.03 hor
05215 /* インデント ver2 */
05216 void CEditView::Command_INDENT_TAB( void )
05217 {
05218     if(!m_pcEditDoc->GetDocumentAttribute().m_bInsSpace){
05219         if(IsTextSelected() && m_nSelectLineFrom!=m_nSelectLineTo){
05220             Command_INDENT( TAB );
05221         }else{
05222             Command_CHAR( (char)TAB );
05223         }
05224         return;
05225     }
05226     if(IsTextSelected() && m_bBeginBoxSelect && m_nSelectColmFrom==m_nSelectColmTo){
05227         Command_INDENT( TAB );
05228         return;
05229     }
05230     int     nCol    =   0;
05231     //  Sep. 23, 2002 genta LayoutMgrの値を使う
05232     int     nTab    =   m_pcEditDoc->m_cLayoutMgr.GetTabSpace();
05233     int     nSpace  =   0;
05234
05235     //インデント開始位置の取得
05236     if ( IsTextSelected() ) {
05237         nCol = (m_nSelectColmFrom<m_nSelectColmTo)?m_nSelectColmFrom:m_nSelectColmTo;
05238     }else{
05239         nCol = m_nCaretPosX;
05240     }
05241
05242     //インデント文字数取得
05243     nSpace = nTab-(nCol%nTab);
05244     if (nSpace==0) nSpace = nTab;
05245
05246     //TAB幅分だけスペースインデント
05247     if (IsTextSelected() && m_nSelectLineFrom == m_nSelectLineTo ) {
05248         ReplaceData_CEditView(
05249             m_nSelectLineFrom,      /* 範囲選択開始行 */
05250             m_nSelectColmFrom,      /* 範囲選択開始桁 */
05251             m_nSelectLineTo,        /* 範囲選択終了行 */
05252             m_nSelectColmTo,        /* 範囲選択終了桁 */
05253             NULL,                   /* 削除されたデータのコピー(NULL可能) */
05254             // Sep. 22, 2002 genta TABの最大幅を64に拡張
05255             "                                                                ",             /* 挿入するデータ */
05256             nSpace,                 /* 挿入するデータの長さ */
05257             TRUE
05258         );
05259         return;
05260     }
05261     // Sep. 22, 2002 genta TABの最大幅を64に拡張
05262     Command_INDENT( "                                                                " , nSpace , TRUE);
05263
05264 }
05265 // To Here 2001.12.03 hor
05266
05267
05268
05269
05270 /* インデント ver1 */
05271 void CEditView::Command_INDENT( char cChar )
05272 {
05273     // From Here 2001.12.03 hor
05274     /* SPACEorTABインンデントで矩形選択桁がゼロの時は選択範囲を最大にする */
05275     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
05276     if((cChar==SPACE || cChar==TAB) && m_bBeginBoxSelect && m_nSelectColmFrom==m_nSelectColmTo ){
05277         m_nSelectColmTo=m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
05278         RedrawAll();
05279         return;
05280     }
05281     // To Here 2001.12.03 hor
05282     char szWork[2];
05283     wsprintf( szWork, "%c", cChar );
05284     Command_INDENT( szWork, lstrlen( szWork ) );
05285     return;
05286 }
05287
05288
05289
05290
05291 /* インデント ver0 */
05292 //void CEditView::Command_INDENT( const char* pData, int nDataLen ) // 2001.12.03 hor
05293 void CEditView::Command_INDENT( const char* pData, int nDataLen , BOOL bIndent )
05294 {
05295     int         nSelectLineFromOld; /* 範囲選択開始行 */
05296     int         nSelectColFromOld;  /* 範囲選択開始桁 */
05297     int         nSelectLineToOld;   /* 範囲選択終了行 */
05298     int         nSelectColToOld;    /* 範囲選択終了桁 */
05299 //  CMemory*    pcMemDeleted;
05300     CMemory     cMem;
05301     CWaitCursor cWaitCursor( m_hWnd );
05302     COpe*       pcOpe = NULL;
05303     int         nNewLine;           /* 挿入された部分の次の位置の行 */
05304     int         nNewPos;            /* 挿入された部分の次の位置のデータ位置 */
05305     int         i;
05306 //  HDC         hdc;
05307 //  PAINTSTRUCT ps;
05308 //  char        szWork[16];
05309     CMemory     cmemBuf;
05310     RECT        rcSel;
05311     int         nPosX;
05312     int         nPosY;
05313     int         nIdxFrom;
05314     int         nIdxTo;
05315     int         nLineNum;
05316     int         nDelPos;
05317     int         nDelLen;
05318 //  int         nDelPosNext; 2001/09/24
05319 //  int         nDelLenNext;
05320     int*        pnKey_CharCharsArr;
05321     pnKey_CharCharsArr = NULL;
05322
05323     m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
05324
05325     if( !IsTextSelected() ){            /* テキストが選択されているか */
05326 //      /* 1バイト文字入力 */
05327         char*   pszWork;
05328         pszWork = new char[nDataLen + 1];
05329         memcpy( pszWork, pData, nDataLen );
05330         pszWork[nDataLen] = '\0';
05331         // テキストを貼り付け 2004.05.14 Moca 長さを引数で与える
05332         Command_INSTEXT( TRUE, pszWork, nDataLen, FALSE );
05333         delete [] pszWork;
05334         return;
05335     }
05336     m_bDrawSWITCH=FALSE;    // 2002.01.25 hor
05337     /* 矩形範囲選択中か */
05338     if( m_bBeginBoxSelect ){
05339         // From Here 2001.12.03 hor
05340         /* 上書モードのときは選択範囲削除 */
05341         if( ! IsInsMode() /* Oct. 2, 2005 genta */){
05342             nSelectLineFromOld  = m_nSelectLineFrom;
05343             nSelectColFromOld   = m_nSelectColmFrom;
05344             nSelectLineToOld    = m_nSelectLineTo;
05345             nSelectColToOld     = m_nSelectColmTo;
05346             DeleteData( FALSE );
05347             m_nSelectLineFrom   = nSelectLineFromOld;
05348             m_nSelectColmFrom   = nSelectColFromOld;
05349             m_nSelectLineTo     = nSelectLineToOld;
05350             m_nSelectColmTo     = nSelectColToOld;
05351             m_bBeginBoxSelect   = TRUE;
05352         }
05353         // To Here 2001.12.03 hor
05354
05355         /* 2点を対角とする矩形を求める */
05356         TwoPointToRect(
05357             &rcSel,
05358             m_nSelectLineFrom,      /* 範囲選択開始行 */
05359             m_nSelectColmFrom,      /* 範囲選択開始桁 */
05360             m_nSelectLineTo,        /* 範囲選択終了行 */
05361             m_nSelectColmTo         /* 範囲選択終了桁 */
05362         );
05363         /* 現在の選択範囲を非選択状態に戻す */
05364         DisableSelectArea( FALSE/*TRUE 2002.01.25 hor*/ );
05365
05366         // From Here 2001.12.03 hor
05367         /* インデント時は空白行に書込まない */
05368         if( 1 == nDataLen && ( SPACE == pData[0] || TAB == pData[0] ) ){
05369             bIndent=TRUE;
05370         }
05371         // To Here 2001.12.03 hor
05372
05373         for( nLineNum = rcSel.top; nLineNum < rcSel.bottom + 1; nLineNum++ ){
05374             const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNum );
05375             //  Nov. 6, 2002 genta NULLチェック追加
05376             //  これがないとEOF行を含む矩形選択中の文字列入力で落ちる
05377             const char* pLine;
05378             if( pcLayout != NULL && NULL != (pLine = pcLayout->GetPtr()) ){
05379                 /* 指定された桁に対応する行のデータ内の位置を調べる */
05380                 nIdxFrom = LineColmnToIndex( pcLayout, rcSel.left );
05381                 nIdxTo = LineColmnToIndex( pcLayout, rcSel.right );
05382
05383                 for( i = nIdxFrom; i <= nIdxTo; ++i ){
05384                     if( pLine[i] == CR || pLine[i] == LF ){
05385                         nIdxTo = i;
05386                         break;
05387                     }
05388                 }
05389             }else{
05390                 nIdxFrom = 0;
05391                 nIdxTo = 0;
05392             }
05393             nDelPos = nIdxFrom;
05394             nDelLen = nIdxTo - nIdxFrom;
05395
05396             /* TABやスペースインデントの時 */
05397             if( bIndent && 0 == nDelLen ) {
05398                 continue;
05399             }
05400
05401             //  Nov. 6, 2002 genta pcLayoutがNULLの場合を考慮
05402             nPosX = ( pcLayout == NULL ? 0 : LineIndexToColmn( pcLayout, nDelPos ));
05403             nPosY = nLineNum;
05404             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05405                 pcOpe = new COpe;
05406                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05407                     nPosX,
05408                     nPosY,
05409                     &pcOpe->m_nCaretPosX_PHY_Before,
05410                     &pcOpe->m_nCaretPosY_PHY_Before
05411                 );
05412             }
05413             /* 現在位置にデータを挿入 */
05414             InsertData_CEditView(
05415                 rcSel.left/*nPosX*/,
05416                 nPosY,
05417                 pData,      // cmemBuf.GetPtr(),    // 2001.12.03 hor
05418                 nDataLen,   // cmemBuf.GetLength(),     // 2001.12.03 hor
05419                 &nNewLine,
05420                 &nNewPos,
05421                 pcOpe,
05422                 FALSE
05423             );
05424             MoveCursor( nNewPos, nNewLine, FALSE );
05425             m_nCaretPosX_Prev = m_nCaretPosX;
05426             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05427                 pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
05428                 pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
05429                 /* 操作の追加 */
05430                 m_pcOpeBlk->AppendOpe( pcOpe );
05431             }
05432         //  nextline:;  // 2001.12.03 hor
05433         }
05434         /* 挿入データの先頭位置へカーソルを移動 */
05435         MoveCursor( rcSel.left, rcSel.top, FALSE );
05436
05437         /* 挿入文字列の情報 */
05438         CDocLineMgr::CreateCharCharsArr(
05439             (const unsigned char *)pData, nDataLen,
05440             &pnKey_CharCharsArr
05441         );
05442         for( i = 0; i < nDataLen; ){
05443             /* カーソル右移動 */
05444             Command_RIGHT( FALSE, TRUE, FALSE );
05445             i+= pnKey_CharCharsArr[i];
05446         }
05447         if( NULL != pnKey_CharCharsArr ){
05448             delete [] pnKey_CharCharsArr;
05449         }
05450     // From Here 2001.12.03 hor
05451         //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
05452         rcSel.right += m_nCaretPosX-rcSel.left;
05453         if( rcSel.right>m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() ){
05454             rcSel.right=m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
05455         }
05456     // To Here 2001.12.03 hor
05457         rcSel.left = m_nCaretPosX;
05458
05459         /* カーソルを移動 */
05460         MoveCursor( rcSel.left, rcSel.top, TRUE );
05461         m_nCaretPosX_Prev = m_nCaretPosX;
05462
05463         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05464             pcOpe = new COpe;
05465             pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
05466             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
05467             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
05468
05469             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
05470             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
05471             /* 操作の追加 */
05472             m_pcOpeBlk->AppendOpe( pcOpe );
05473         }
05474         m_nSelectLineFrom = rcSel.top;          /* 範囲選択開始行 */
05475         m_nSelectColmFrom = rcSel.left;         /* 範囲選択開始桁 */
05476         m_nSelectLineTo = rcSel.bottom;         /* 範囲選択終了行 */
05477     //  m_nSelectColmTo = nNewPos;              /* 範囲選択終了桁 */    // 2001.12.03 hor
05478         m_nSelectColmTo = rcSel.right;          /* 範囲選択終了桁 */    // 2001.12.03 hor
05479         m_bBeginBoxSelect = TRUE;
05480     }else{
05481         nSelectLineFromOld = m_nSelectLineFrom; /* 範囲選択開始行 */
05482         nSelectColFromOld = 0;                  /* 範囲選択開始桁 */
05483         nSelectLineToOld = m_nSelectLineTo;     /* 範囲選択終了行 */
05484         if( m_nSelectColmTo > 0 ){
05485             ++nSelectLineToOld;                 /* 範囲選択終了行 */
05486         }
05487         nSelectColToOld = 0;                    /* 範囲選択終了桁 */
05488
05489         /* 現在の選択範囲を非選択状態に戻す */
05490         DisableSelectArea( FALSE );
05491
05492         for( i = nSelectLineFromOld; i < nSelectLineToOld; i++ ){
05493             int nLineCountPrev = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
05494             const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( i );
05495             if( NULL == pcLayout ||                     //  テキストが無いEOLの行は無視
05496                 pcLayout->m_nOffset > 0 ||              //  折り返し行は無視
05497                 pcLayout->GetLengthWithoutEOL() == 0 ){ //  改行のみの行は無視する。
05498                 continue;
05499             }
05500
05501             /* カーソルを移動 */
05502             MoveCursor( 0, i, FALSE );
05503             m_nCaretPosX_Prev = m_nCaretPosX;
05504
05505             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05506                 pcOpe = new COpe;
05507                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05508                     0,
05509                     i,
05510                     &pcOpe->m_nCaretPosX_PHY_Before,
05511                     &pcOpe->m_nCaretPosY_PHY_Before
05512                 );
05513             }
05514             /* 現在位置にデータを挿入 */
05515             InsertData_CEditView(
05516                 0,
05517                 i,
05518                 pData,      //  cmemBuf.GetPtr(),   // 2001.12.03 hor
05519                 nDataLen,   //  cmemBuf.GetLength(),    // 2001.12.03 hor
05520                 &nNewLine,
05521                 &nNewPos,
05522                 pcOpe,
05523                 FALSE
05524             );
05525             /* カーソルを移動 */
05526             MoveCursor( nNewPos, nNewLine, FALSE );
05527             m_nCaretPosX_Prev = m_nCaretPosX;
05528             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05529                 pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
05530                 pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
05531                 /* 操作の追加 */
05532                 m_pcOpeBlk->AppendOpe( pcOpe );
05533             }
05534
05535             if ( nLineCountPrev != m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
05536                 //  行数が変化した!!
05537                 nSelectLineToOld += m_pcEditDoc->m_cLayoutMgr.GetLineCount() - nLineCountPrev;
05538             }
05539         }
05540
05541         m_nSelectLineFrom = nSelectLineFromOld; /* 範囲選択開始行 */
05542         m_nSelectColmFrom = nSelectColFromOld;  /* 範囲選択開始桁 */
05543         m_nSelectLineTo = nSelectLineToOld;     /* 範囲選択終了行 */
05544         m_nSelectColmTo = nSelectColToOld;      /* 範囲選択終了桁 */
05545         // From Here 2001.12.03 hor
05546         MoveCursor( m_nSelectColmTo, m_nSelectLineTo, TRUE );
05547         m_nCaretPosX_Prev = m_nCaretPosX;
05548         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05549             pcOpe = new COpe;
05550             pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
05551             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
05552             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
05553             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
05554             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
05555             m_pcOpeBlk->AppendOpe( pcOpe );
05556         }
05557         // To Here 2001.12.03 hor
05558     }
05559     /* 再描画 */
05560     m_bDrawSWITCH=TRUE; // 2002.01.25 hor
05561     Redraw();           // 2002.01.25 hor
05562     return;
05563 }
05564
05565
05566
05567
05568 /* 逆インデント */
05569 void CEditView::Command_UNINDENT( char cChar )
05570 {
05571     //  Aug. 9, 2003 genta
05572     //  選択されていない場合に逆インデントした場合に
05573     //  注意メッセージを出す
05574     if( !IsTextSelected() ){    /* テキストが選択されているか */
05575         /* １バイト文字入力 */
05576         Command_CHAR( cChar );  //  2003.10.09 zenryaku警告を出すが，動作は以前のままにする
05577         SendStatusMessage("★逆インデントは選択時のみ");
05578         return;
05579     }
05580
05581     int         nSelectLineFromOld; /* 範囲選択開始行 */
05582     int         nSelectColFromOld;  /* 範囲選択開始桁 */
05583     int         nSelectLineToOld;   /* 範囲選択終了行 */
05584     int         nSelectColToOld;    /* 範囲選択終了桁 */
05585     const char* pLine;
05586     int         nLineLen;
05587     CMemory*    pcMemDeleted;
05588     CMemory     cMem;
05589     CWaitCursor cWaitCursor( m_hWnd );
05590     COpe*       pcOpe = NULL;
05591     int         i;
05592     CMemory     cmemBuf;
05593
05594     //  Aug. 9, 2003 genta
05595     //  重複削除
05596     //if( !IsTextSelected() ){  /* テキストが選択されているか */
05597     //  /* 1バイト文字入力 */
05598     //  Command_CHAR( cChar );
05599     //  return;
05600     //}
05601     /* 矩形範囲選択中か */
05602     if( m_bBeginBoxSelect ){
05603         ::MessageBeep( MB_ICONHAND );
05604 //**********************************************
05605 //   箱型逆インデントについては、保留とする (1998.10.22)
05606 //**********************************************
05607     }else{
05608         m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
05609
05610         nSelectLineFromOld = m_nSelectLineFrom; /* 範囲選択開始行 */
05611         nSelectColFromOld = 0;                  /* 範囲選択開始桁 */
05612         nSelectLineToOld = m_nSelectLineTo;     /* 範囲選択終了行 */
05613         if( m_nSelectColmTo > 0 ){
05614             nSelectLineToOld++;                 /* 範囲選択終了行 */
05615         }
05616         nSelectColToOld = 0;                    /* 範囲選択終了桁 */
05617
05618         /* 現在の選択範囲を非選択状態に戻す */
05619         DisableSelectArea( FALSE );
05620
05621         int             nDelLen;
05622         for( i = nSelectLineFromOld; i < nSelectLineToOld; i++ ){
05623             int nLineCountPrev = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
05624             const CLayout* pcLayout;
05625             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( i, &nLineLen, &pcLayout );
05626             if( NULL == pcLayout || pcLayout->m_nOffset > 0 ){
05627                 continue;
05628             }
05629             if( TAB == cChar ){
05630                 if( pLine[0] == cChar ){
05631                     nDelLen = 1;
05632                 }else{
05633
05634                     int i;
05635                     for( i = 0; i < nLineLen; i++ ){
05636                         if( SPACE != pLine[i] ){
05637                             break;
05638                         }
05639                         //  Sep. 23, 2002 genta LayoutMgrの値を使う
05640                         if( i >= m_pcEditDoc->m_cLayoutMgr.GetTabSpace() ){
05641                             break;
05642                         }
05643                     }
05644                     if( 0 == i ){
05645                         continue;
05646                     }
05647                     nDelLen = i;
05648                 }
05649             }else{
05650                 if( pLine[0] != cChar ){
05651                     continue;
05652                 }
05653                 nDelLen = 1;
05654             }
05655
05656             /* カーソルを移動 */
05657             MoveCursor( 0, i, FALSE );
05658             m_nCaretPosX_Prev = m_nCaretPosX;
05659             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05660                 pcOpe = new COpe;
05661                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05662                     0,
05663                     i,
05664                     &pcOpe->m_nCaretPosX_PHY_Before,
05665                     &pcOpe->m_nCaretPosY_PHY_Before
05666                 );
05667             }else{
05668                 pcOpe = NULL;
05669             }
05670             pcMemDeleted = new CMemory;
05671             /* 指定位置の指定長データ削除 */
05672             DeleteData2(
05673                 0/*rcSel.left*/,
05674                 i/*nLineNum + 1*/,
05675                 nDelLen/*nLineLen*/,    // 2001.12.03 hor
05676                 pcMemDeleted,
05677                 pcOpe               /* 編集操作要素 COpe */
05678 //              FALSE,
05679 //              FALSE
05680             );
05681             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05682                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05683                     0,
05684                     i,
05685                     &pcOpe->m_nCaretPosX_PHY_After,
05686                     &pcOpe->m_nCaretPosY_PHY_After
05687                 );
05688                 /* 操作の追加 */
05689                 m_pcOpeBlk->AppendOpe( pcOpe );
05690             }else{
05691                 delete pcMemDeleted;
05692                 pcMemDeleted = NULL;
05693             }
05694             if ( nLineCountPrev != m_pcEditDoc->m_cLayoutMgr.GetLineCount() ){
05695                 //  行数が変化した!!
05696                 nSelectLineToOld += m_pcEditDoc->m_cLayoutMgr.GetLineCount() - nLineCountPrev;
05697             }
05698         }
05699         m_nSelectLineFrom = nSelectLineFromOld; /* 範囲選択開始行 */
05700         m_nSelectColmFrom = nSelectColFromOld;  /* 範囲選択開始桁 */
05701         m_nSelectLineTo = nSelectLineToOld;     /* 範囲選択終了行 */
05702         m_nSelectColmTo = nSelectColToOld;      /* 範囲選択終了桁 */
05703         // From Here 2001.12.03 hor
05704         MoveCursor( m_nSelectColmTo, m_nSelectLineTo, TRUE );
05705         m_nCaretPosX_Prev = m_nCaretPosX;
05706         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05707             pcOpe = new COpe;
05708             pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
05709             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
05710             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
05711             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
05712             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
05713             m_pcOpeBlk->AppendOpe( pcOpe );
05714         }
05715         // To Here 2001.12.03 hor
05716     }
05717     /* 再描画 */
05718 //  hdc = ::GetDC( m_hWnd );
05719 //  ps.rcPaint.left = 0;
05720 //  ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
05721 //  ps.rcPaint.top = m_nViewAlignTop;
05722 //  ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
05723 //  OnKillFocus();
05724 //  OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
05725 //  OnSetFocus();
05726 //  ::ReleaseDC( m_hWnd, hdc );
05727     Redraw();   // 2002.01.25 hor
05728     return;
05729 }
05730
05731 /* 最後にテキストを追加 */
05732 void CEditView::Command_ADDTAIL( const char* pszData, int nDataLen )
05733 {
05734     int     nNewLine;                   /* 挿入された部分の次の位置の行 */
05735     int     nNewPos;                    /* 挿入された部分の次の位置のデータ位置 */
05736     COpe*   pcOpe = NULL;
05737
05738     m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta
05739     /*ファイルの最後に移動 */
05740     Command_GOFILEEND( FALSE );
05741     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05742         pcOpe = new COpe;
05743 //      pcOpe->m_nCaretPosX_Before = m_nCaretPosX;  /* 操作前のキャレット位置Ｘ */
05744 //      pcOpe->m_nCaretPosY_Before = m_nCaretPosY;  /* 操作前のキャレット位置Ｙ */
05745 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05746 //          pcOpe->m_nCaretPosX_Before,
05747 //          pcOpe->m_nCaretPosY_Before,
05748 //          &pcOpe->m_nCaretPosX_PHY_Before,
05749 //          &pcOpe->m_nCaretPosY_PHY_Before
05750 //      );
05751         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作後のキャレット位置Ｘ */
05752         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作後のキャレット位置Ｙ */
05753     }
05754     /* 現在位置にデータを挿入 */
05755     InsertData_CEditView(
05756         m_nCaretPosX,
05757         m_nCaretPosY,
05758         (char*)pszData,
05759         nDataLen,
05760         &nNewLine,
05761         &nNewPos,
05762         pcOpe,
05763         TRUE
05764     );
05765     /* 挿入データの最後へカーソルを移動 */
05766     // Sep. 2, 2002 すなふき アンダーラインの表示が残ってしまう問題を修正
05767     MoveCursor( nNewPos, nNewLine, TRUE );
05768     m_nCaretPosX_Prev = m_nCaretPosX;
05769     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
05770 //      pcOpe->m_nCaretPosX_After = m_nCaretPosX;           /* 操作後のキャレット位置Ｘ */
05771 //      pcOpe->m_nCaretPosY_After = m_nCaretPosY;           /* 操作後のキャレット位置Ｙ */
05772 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05773 //          pcOpe->m_nCaretPosX_After,
05774 //          pcOpe->m_nCaretPosY_After,
05775 //          &pcOpe->m_nCaretPosX_PHY_After,
05776 //          &pcOpe->m_nCaretPosY_PHY_After
05777 //      );
05778         pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
05779         pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
05780         /* 操作の追加 */
05781         m_pcOpeBlk->AppendOpe( pcOpe );
05782     }
05783     return;
05784 }
05785
05786
05787
05788
05796 bool CEditView::Command_TAGJUMP( bool bClose )
05797 {
05798     const char* pLine;
05799     int         nLineLen;
05800     int         nJumpToLine;
05801     int         nJumpToColm;
05802     char        szJumpToFile[1024];
05803 //  HWND        hwndOwner;
05804 //  POINT       poCaret;
05805     int         nPathLen;
05806     int         nBgn;
05807     memset( szJumpToFile, 0, sizeof(szJumpToFile) );
05808     //  2004.05.13 Moca 初期値を1ではなく元の位置を継承するように
05809     // 0以下は未指定扱い。(1開始)
05810     nJumpToLine = 0;
05811     nJumpToColm = 0;
05812     /*
05813       カーソル位置変換
05814       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
05815       →
05816       物理位置(行頭からのバイト数、折り返し無し行位置)
05817     */
05818     int     nX;
05819     int     nY;
05820     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
05821         m_nCaretPosX,
05822         m_nCaretPosY,
05823         &nX,
05824         &nY
05825     );
05826     /* 現在行のデータを取得 */
05827     pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( nY, &nLineLen );
05828     if( NULL == pLine ){
05829         goto can_not_tagjump_end;
05830     }
05831     /* WZ風のタグリストか */
05832     if( 0 == memcmp( pLine, "・", 2 )
05833      || 0 == memcmp( pLine, "■\"", 3 )
05834     ){
05835         if( 0 == memcmp( pLine, "■\"", 3 ) ){
05836             if( IsFilePath( &pLine[3], &nBgn, &nPathLen ) ){
05837                 memcpy( szJumpToFile, &pLine[3 + nBgn], nPathLen );
05838                 GetLineColm( &pLine[3] + nPathLen, &nJumpToLine, &nJumpToColm );
05839             }else{
05840                 goto can_not_tagjump;
05841             }
05842         }else{
05843             GetLineColm( &pLine[2], &nJumpToLine, &nJumpToColm );
05844             nY--;
05845
05846             for( ; 0 <= nY; nY-- ){
05847                 pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( nY, &nLineLen );
05848                 if( NULL == pLine ){
05849                     goto can_not_tagjump;
05850                 }
05851                 if( 0 == memcmp( pLine, "・", 2 ) ){
05852                     continue;
05853                 }else
05854                 if( 0 == memcmp( pLine, "■\"", 3 ) ){
05855                     if( IsFilePath( &pLine[3], &nBgn, &nPathLen ) ){
05856                         memcpy( szJumpToFile, &pLine[3 + nBgn], nPathLen );
05857                         break;
05858                     }else{
05859                         goto can_not_tagjump;
05860                     }
05861                 }else{
05862                     goto can_not_tagjump;
05863                 }
05864             }
05865         }
05866     }else{
05867         //@@@ 2001.12.31 YAZAKI
05868         const char *p = pLine;
05869         const char *p_end = p + nLineLen;
05870 #if 0
05871         //  Jan. 04, 2001 genta Directoryを対象外にしたので文字列には柔軟に対応
05872         if ( 0 == memcmp( pLine, "警告 W", 6 ) ){
05873             p += 6;
05874             for( ; p < p_end && ( *p != ' ' ); ++p )
05875                 ;
05876         }else
05877         if ( 0 == memcmp( pLine, "エラー E", 8) ){
05878             p += 6;
05879             for( ; p < p_end && ( *p != ' ' ); ++p )
05880                 ;
05881         }else
05882         if ( 0 == memcmp( pLine, "致命的エラー F", 14) ){
05883             p += 6;
05884             for( ; p < p_end && ( *p != ' ' ); ++p )
05885                 ;
05886         }else{
05887         }
05888 #endif
05889         //  From Here Aug. 27, 2001 genta
05890         //  Borland 形式のメッセージからのTAG JUMP
05891         while( p < p_end ){
05892             //  skip space
05893             for( ; p < p_end && ( *p == ' ' || *p == '\t' || *p == '\n' ); ++p )
05894                 ;
05895             if( p >= p_end )
05896                 break;
05897
05898             //  Check Path
05899             if( IsFilePath( p, &nBgn, &nPathLen ) ){
05900                 memcpy( szJumpToFile, &p[nBgn], nPathLen );
05901                 GetLineColm( &p[nBgn + nPathLen], &nJumpToLine, &nJumpToColm );
05902                 break;
05903             }
05904             //  Jan. 04, 2001 genta Directoryを対象外にしたので文字列には柔軟に対応
05905             //  break;  //@@@ 2001.12.31 YAZAKI 「working ...」問題に対処
05906             //  skip non-space
05907             for( ; p < p_end && ( *p != ' ' && *p != '\t' ); ++p )
05908                 ;
05909         }
05910         if( szJumpToFile[0] == '\0' )
05911         {
05912             if( false == Command_TagJumpByTagsFile() )  //@@@ 2003.04.13
05913                 goto can_not_tagjump;
05914             return true;
05915         }
05916         //  From Here Aug. 27, 2001 genta
05917     }
05918
05919     //  Apr. 21, 2003 genta bClose追加
05920     if( false == TagJumpSub( szJumpToFile, nJumpToLine, nJumpToColm, bClose ) ) //@@@ 2003.04.13
05921         goto can_not_tagjump;
05922
05923     return true;
05924
05925 can_not_tagjump:;
05926 can_not_tagjump_end:;
05927 //@@@ YAZAKI 2001.12.31 うるさい。
05928 //  ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
05929 //      "タグジャンプできません。\n[%s]", szJumpToFile
05930 //  );
05931     SendStatusMessage("タグジャンプできません");    //@@@ 2003.04.13
05932     return false;
05933 }
05934
05935
05936
05937
05938 /* タグジャンプバック */
05939 void CEditView::Command_TAGJUMPBACK( void )
05940 {
05941 // 2004/06/21 novice タグジャンプ機能追加
05942     TagJump tagJump;
05943
05944     /* タグジャンプ情報の参照 */
05945     if( !CShareData::getInstance()->PopTagJump(&tagJump) || !CShareData::IsEditWnd(tagJump.hwndReferer) ){
05946         SendStatusMessage("タグジャンプバックできません");
05947         // 2004.07.10 Moca m_TagJumpNumを0にしなくてもいいと思う
05948         // m_pShareData->m_TagJumpNum = 0;
05949         return;
05950     }
05951
05952     /* アクティブにする */
05953     ActivateFrameWindow( tagJump.hwndReferer );
05954
05955     /* カーソルを移動させる */
05956     memcpy( m_pShareData->m_szWork, (void*)&(tagJump.point), sizeof( tagJump.point ) );
05957     ::SendMessage( tagJump.hwndReferer, MYWM_SETCARETPOS, 0, 0 );
05958
05959 #if 0
05960     HWND hwndReferer = m_pcEditDoc->m_hwndReferer;
05961     if( NULL == hwndReferer ){  /* 参照元ウィンドウ */
05962 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
05963             "タグジャンプバックできません。\n戻り先がありません。\n"
05964         );
05965         return;
05966     }
05967     /* ウィンドウが編集ウィンドウのフレームウィンドウかどうか調べる */
05968     if( !CShareData::IsEditWnd( hwndReferer ) ){
05969         m_pcEditDoc->m_hwndReferer = NULL;
05970 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
05971             "タグジャンプバックできません。\n戻り先がありません。\n"
05972         );
05973         return;
05974     }
05975     /* アクティブにする */
05976     ActivateFrameWindow( hwndReferer );
05977     if( 0 < m_pcEditDoc->m_nRefererLine ){
05978         /* カーソルを移動させる */
05979         POINT poCaret;
05980         poCaret.x = m_pcEditDoc->m_nRefererX;
05981         poCaret.y = m_pcEditDoc->m_nRefererLine;
05982         memcpy( m_pShareData->m_szWork, (void*)&poCaret, sizeof( poCaret ) );
05983         ::SendMessage( hwndReferer, MYWM_SETCARETPOS, 0, 0 );
05984     }
05985 #endif
05986     return;
05987 }
05988
05989 /*
05990     ダイレクトタグジャンプ
05991
05992     @author MIK
05993     @date   2003.04.13  新規作成
05994     @date   2003.05.12  フォルダ階層も考慮して探す
05995 */
05996 bool CEditView::Command_TagJumpByTagsFile( void )
05997 {
05998     CMemory cmemKey;
05999     int     i;
06000     char    szCurrentPath[1024];    //カレントフォルダ
06001     char    szTagFile[1024];        //タグファイル
06002     char    szLineData[1024];       //行バッファ
06003     char    s[5][1024];
06004     int     n2;
06005     int     nRet;
06006     int     nMatch;                     //一致数
06007     CDlgTagJumpList cDlgTagJumpList;    //タグジャンプリスト
06008     FILE    *fp;
06009     bool    bNoTag = true;
06010     int     nLoop;
06011
06012     //現在カーソル位置のキーを取得する。
06013     GetCurrentTextForSearch( cmemKey );
06014     if( 0 == cmemKey.GetLength() ) return false;    //キーがないなら終わり
06015
06016     if( ! m_pcEditDoc->IsFilePathAvailable() ) return false;
06017
06018     // ファイル名に応じて探索回数を決定する
06019     strcpy( szCurrentPath, m_pcEditDoc->GetFilePath() );
06020     nLoop = CalcDirectoryDepth( szCurrentPath );
06021
06022     if( nLoop <  0 ) nLoop =  0;
06023     if( nLoop > (_MAX_PATH/2) ) nLoop = (_MAX_PATH/2);  //\A\B\C...のようなとき1フォルダで2文字消費するので...
06024
06025         //パス名のみ取り出す。
06026         cDlgTagJumpList.SetFileName( szCurrentPath );
06027         szCurrentPath[ strlen( szCurrentPath ) - strlen( m_pcEditDoc->GetFileName() ) ] = '\0';
06028
06029         for( i = 0; i <= nLoop; i++ )
06030         {
06031             //タグファイル名を作成する。
06032             wsprintf( szTagFile, "%s%s", szCurrentPath, TAG_FILENAME );
06033
06034             //タグファイルを開く。
06035             fp = fopen( szTagFile, "r" );
06036             if( fp )
06037             {
06038                 bNoTag = false;
06039                 nMatch = 0;
06040                 while( fgets( szLineData, sizeof( szLineData ), fp ) )
06041                 {
06042                     if( szLineData[0] <= '!' ) goto next_line;  //コメントならスキップ
06043                     //chop( szLineData );
06044
06045                     s[0][0] = s[1][0] = s[2][0] = s[3][0] = s[4][0] = '\0';
06046                     n2 = 0;
06047                     //  2004.06.04 Moca ファイル名/パスにスペースが含まれているときに
06048                     //  ダイレクトタグジャンプに失敗していた
06049                     //  sscanf の%[^\t\r\n] でスペースを読みとるように変更
06050                     //  @@ 2005.03.31 MIK TAG_FORMAT定数化
06051                     nRet = sscanf( szLineData,
06052                         TAG_FORMAT, //tagsフォーマット
06053                         s[0], s[1], &n2, s[3], s[4]
06054                         );
06055                     if( nRet < 4 ) goto next_line;
06056                     if( n2 <= 0 ) goto next_line;   //行番号不正(-excmd=nが指定されてないかも)
06057
06058                     if( 0 != strcmp( s[0], cmemKey.GetPtr() ) ) goto next_line;
06059
06060                     //  @@ 2005.03.31 MIK 階層パラメータ追加
06061                     cDlgTagJumpList.AddParam( s[0], s[1], n2, s[3], s[4], i );
06062                     nMatch++;
06063                     continue;
06064
06065 next_line:
06066                     if( nMatch ) break;
06067                 }
06068
06069                 //ファイルを閉じる。
06070                 fclose( fp );
06071
06072                 //複数あれば選択してもらう。
06073                 if( nMatch > 1 )
06074                 {
06075                     if( ! cDlgTagJumpList.DoModal( m_hInstance, m_hWnd, (LPARAM)0 ) )
06076                     {
06077                         nMatch = 0;
06078                         return true;    //キャンセル
06079                     }
06080                 }
06081
06082                 //タグジャンプする。
06083                 if( nMatch > 0 )
06084                 {
06085                     //  @@ 2005.03.31 MIK 階層パラメータ追加
06086                     int depth;
06087                     if( false == cDlgTagJumpList.GetSelectedParam( s[0], s[1], &n2, s[3], s[4], &depth ) )
06088                     {
06089                         return false;
06090                     }
06091
06092                     /*
06093                      * s[0] キー
06094                      * s[1] ファイル名
06095                      * n2   行番号
06096                      * s[3] タイプ
06097                      * s[4] コメント
06098                      * depth (さかのぼる)階層数
06099                      */
06100
06101                     //完全パス名を作成する。
06102                     char    *p;
06103                     p = s[1];
06104                     if( p[0] == '\\' )  //ドライブなし絶対パスか？
06105                     {
06106                         //  2003.09.20 Moca パスが変
06107                         if( p[1] == '\\' )  //ネットワークパスか？
06108                         {
06109                             strcpy( szTagFile, p ); //何も加工しない。
06110                         }
06111                         else
06112                         {
06113                             //ドライブ加工したほうがよい？
06114                             strcpy( szTagFile, p ); //何も加工しない。
06115                         }
06116                     }
06117                     else if( isalpha( p[0] ) && p[1] == ':' )   //絶対パスか？
06118                     {
06119                         strcpy( szTagFile, p ); //何も加工しない。
06120                     }
06121                     else
06122                     {
06123                         wsprintf( szTagFile, "%s%s", szCurrentPath, p );
06124                     }
06125
06126                     return TagJumpSub( szTagFile, n2, 0 );
06127                 }
06128             }   //fp
06129
06130             //カレントパスを1階層上へ。
06131             strcat( szCurrentPath, "..\\" );
06132         }
06133
06134     return false;
06135 }
06136
06137 /*
06138     指定ファイルの指定位置にタグジャンプする。
06139
06140     @param nJumpToLine [in] 論理行番号(1開始)。0以下を指定したら行ジャンプはしない。
06141     @param nJumpToColm [in] 論理行単位の行内の位置(1開始)
06142     @param bClose [in] true: 元ウィンドウを閉じる / false: 元ウィンドウを閉じない
06143
06144     @author MIK
06145     @date   2003.04.13  新規作成
06146     @date   2003.04.21 genta bClose追加
06147     @date   2004.05.29 Moca 0以下が指定されたときは、善処する
06148     @date   2007.02.17 genta 相対パスの基準ディレクトリ指示を追加
06149 */
06150 bool CEditView::TagJumpSub( const char *pszFileName, int nJumpToLine, int nJumpToColm, bool bClose, bool bRelFromIni )
06151 {
06152     HWND    hwndOwner;
06153     POINT   poCaret;
06154     char    szJumpToFile[1024];
06155     char    szWork[1024];
06156     // 2004/06/21 novice タグジャンプ機能追加
06157     TagJump tagJump;
06158
06159     // 参照元ウィンドウ保存
06160     tagJump.hwndReferer = m_pcEditDoc->m_hwndParent;
06161
06162     //  Feb. 17, 2007 genta 実行ファイルからの相対指定の場合は
06163     //  予め絶対パスに変換する．(キーワードヘルプジャンプで用いる)
06164     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
06165     if( bRelFromIni && _IS_REL_PATH( pszFileName ) ){
06166         GetInidirOrExedir( szJumpToFile, pszFileName );
06167     }
06168     else {
06169         strcpy( szJumpToFile, pszFileName );
06170     }
06171
06172     /* ロングファイル名を取得する */
06173     if( TRUE == ::GetLongFileName( szJumpToFile, szWork ) )
06174     {
06175         strcpy( szJumpToFile, szWork );
06176     }
06177
06178 // 2004/06/21 novice タグジャンプ機能追加
06179 // 2004/07/05 みちばな
06180 // 同一ファイルだとSendMesssageで m_nCaretPosX,m_nCaretPosYが更新されてしまい、
06181 // ジャンプ先の場所がジャンプ元として保存されてしまっているので、
06182 // その前で保存するように変更。
06183
06184     /* カーソル位置変換 */
06185     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
06186         m_nCaretPosX,
06187         m_nCaretPosY,
06188         (int*)&tagJump.point.x,
06189         (int*)&tagJump.point.y
06190     );
06191
06192     // タグジャンプ情報の保存
06193     CShareData::getInstance()->PushTagJump(&tagJump);
06194
06195
06196     /* 指定ファイルが開かれているか調べる */
06197     /* 開かれている場合は開いているウィンドウのハンドルも返す */
06198     /* ファイルを開いているか */
06199     if( CShareData::getInstance()->IsPathOpened( (const char*)szJumpToFile, &hwndOwner ) )
06200     {
06201         // 2004.05.13 Moca マイナス値は無効
06202         if( 0 < nJumpToLine ){
06203             /* カーソルを移動させる */
06204             poCaret.y = nJumpToLine - 1;
06205             if( 0 < nJumpToColm ){
06206                 poCaret.x = nJumpToColm - 1;
06207             }else{
06208                 poCaret.x = 0;
06209             }
06210             memcpy( m_pShareData->m_szWork, (void*)&poCaret, sizeof(poCaret) );
06211             ::SendMessage( hwndOwner, MYWM_SETCARETPOS, 0, 0 );
06212         }
06213         /* アクティブにする */
06214         ActivateFrameWindow( hwndOwner );
06215     }
06216     else
06217     {
06218         /* 新しく開く */
06219         FileInfo    inf;
06220         bool        bSuccess;
06221
06222         strcpy( inf.m_szPath, szJumpToFile );
06223         inf.m_nX           = nJumpToColm - 1;
06224         inf.m_nY           = nJumpToLine - 1;
06225         inf.m_nViewLeftCol = inf.m_nViewTopLine = -1;
06226         inf.m_nCharCode    = CODE_AUTODETECT;
06227
06228         bSuccess = CEditApp::OpenNewEditor2(
06229             m_hInstance,
06230             m_hWnd,
06231             &inf,
06232             FALSE,  /* 読み取り専用か */
06233             true    //  同期モードで開く
06234         );
06235
06236         if( ! bSuccess )    //  ファイルが開けなかった
06237             return false;
06238
06239         //  Apr. 23, 2001 genta
06240         //  hwndOwnerに値が入らなくなってしまったために
06241         //  Tag Jump Backが動作しなくなっていたのを修正
06242         if( FALSE == CShareData::getInstance()->IsPathOpened( (const char*)szJumpToFile, &hwndOwner ) )
06243             return false;
06244     }
06245
06246     // 2006.12.30 ryoji 閉じる処理は最後に（処理位置移動）
06247     //  Apr. 2003 genta 閉じるかどうかは引数による
06248     //  grep結果からEnterでジャンプするところにCtrl判定移動
06249     if( bClose )
06250     {
06251         Command_WINCLOSE(); //  挑戦するだけ。
06252     }
06253
06254 // 2004/06/21 novice タグジャンプ機能追加
06255 #if 0
06256     /* タグジャンプ元通知 */
06257     memcpy( m_pShareData->m_szWork, (void*)&poCaret, sizeof( poCaret ) );
06258     ::SendMessage( hwndOwner, MYWM_SETREFERER, (WPARAM)(m_pcEditDoc->m_hwndParent), 0 );
06259 #endif
06260
06261     return true;
06262 }
06263
06264 /*
06265     タグファイルを作成する。
06266
06267     @author MIK
06268     @date   2003.04.13  新規作成
06269     @date   2003.05.12  ダイアログ表示でフォルダ等を細かく指定できるようにした。
06270 */
06271 bool CEditView::Command_TagsMake( void )
06272 {
06273 #define CTAGS_COMMAND   "ctags.exe"
06274
06275     char    szTargetPath[1024 /*_MAX_PATH+1*/ ];
06276     if( m_pcEditDoc->IsFilePathAvailable() )
06277     {
06278         strcpy( szTargetPath, m_pcEditDoc->GetFilePath() );
06279         szTargetPath[ strlen( szTargetPath ) - strlen( m_pcEditDoc->GetFileName() ) ] = '\0';
06280     }
06281     else
06282     {
06283         char    szTmp[1024];
06284         ::GetModuleFileName(
06285             ::GetModuleHandle( NULL ),
06286             szTmp, sizeof( szTmp )
06287         );
06288         /* ファイルのフルパスを、フォルダとファイル名に分割 */
06289         /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
06290 		::SplitPath_FolderAndFile( szTmp, szTargetPath, NULL );
06291     }
06292
06293     //ダイアログを表示する
06294     CDlgTagsMake    cDlgTagsMake;
06295     if( FALSE == cDlgTagsMake.DoModal( m_hInstance, m_hWnd, (LPARAM)0, szTargetPath ) ) return false;
06296
06297 /*
06298     {
06299         char    *msg;
06300         char    szTmp[1024];
06301         wsprintf( szTmp, "%s%s", cDlgTagsMake.m_szPath, TAG_FILENAME );
06302         if( -1 == ::GetFileAttributes( szTmp ) )
06303             msg = "ダイレクトタグジャンプ用のタグファイルを作成しますか？";
06304         else
06305             msg = "タグファイルは存在します。\n\nダイレクトタグジャンプ用のタグファイルを再作成しますか？";
06306
06307         int nRet;
06308         nRet = MYMESSAGEBOX(
06309             m_hWnd,
06310             MB_YESNO | MB_ICONQUESTION | MB_TOPMOST,
06311             "タグファイルの作成",
06312             msg
06313             );
06314         if( IDYES != nRet ) return false;
06315     }
06316 */
06317
06318     char    cmdline[1024];
06319     /* exeのあるフォルダ */
06320     char    szExeFolder[_MAX_PATH + 1];
06321
06322     GetExedir( cmdline, CTAGS_COMMAND );
06323     SplitPath_FolderAndFile( cmdline, szExeFolder, NULL );
06324
06325     //ctags.exeの存在チェック
06326     if( -1 == ::GetFileAttributes( cmdline ) )
06327     {
06328 		::MYMESSAGEBOX( m_hWnd,   MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
06329             _T( "タグ作成コマンド実行は失敗しました。\n\nCTAGS.EXE が見つかりません。" ) );
06330         return false;
06331     }
06332
06333     HANDLE  hStdOutWrite, hStdOutRead;
06334     CDlgCancel  cDlgCancel;
06335     CWaitCursor cWaitCursor( m_hWnd );
06336
06337     PROCESS_INFORMATION pi;
06338     ZeroMemory( &pi, sizeof(PROCESS_INFORMATION) );
06339
06340     //子プロセスの標準出力と接続するパイプを作成
06341     SECURITY_ATTRIBUTES sa;
06342     ZeroMemory( &sa, sizeof(SECURITY_ATTRIBUTES) );
06343     sa.nLength              = sizeof(SECURITY_ATTRIBUTES);
06344     sa.bInheritHandle       = TRUE;
06345     sa.lpSecurityDescriptor = NULL;
06346     hStdOutRead = hStdOutWrite = 0;
06347     if( CreatePipe( &hStdOutRead, &hStdOutWrite, &sa, 1000 ) == FALSE )
06348     {
06349         //エラー
06350         return false;
06351     }
06352
06353     //継承不能にする
06354     DuplicateHandle( GetCurrentProcess(), hStdOutRead,
06355                 GetCurrentProcess(), NULL,
06356                 0, FALSE, DUPLICATE_SAME_ACCESS );
06357
06358     //CreateProcessに渡すSTARTUPINFOを作成
06359     STARTUPINFO sui;
06360     ZeroMemory( &sui, sizeof(STARTUPINFO) );
06361     sui.cb          = sizeof(STARTUPINFO);
06362     sui.dwFlags     = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
06363     sui.wShowWindow = SW_HIDE;
06364     sui.hStdInput   = GetStdHandle( STD_INPUT_HANDLE );
06365     sui.hStdOutput  = hStdOutWrite;
06366     sui.hStdError   = hStdOutWrite;
06367
06368     //  To Here Dec. 28, 2002 MIK
06369
06370     char    options[1024];
06371     strcpy( options, "--excmd=n" ); //デフォルトのオプション
06372     if( cDlgTagsMake.m_nTagsOpt & 0x0001 ) strcat( options, " -R" );    //サブフォルダも対象
06373     if( strlen( cDlgTagsMake.m_szTagsCmdLine ) )    //個別指定のコマンドライン
06374     {
06375         strcat( options, " " );
06376         strcat( options, cDlgTagsMake.m_szTagsCmdLine );
06377     }
06378     strcat( options, " *" );    //配下のすべてのファイル
06379
06380     //OSバージョン取得
06381     COsVersionInfo cOsVer;
06382     //コマンドライン文字列作成(MAX:1024)
06383     if (cOsVer.IsWin32NT())
06384     {
06385         //  2006.08.04 genta add /D to disable autorun
06386         wsprintf( cmdline, "cmd.exe /D /C \"\"%s\\%s\" %s\"",
06387                 szExeFolder,    //sakura.exeパス
06388                 CTAGS_COMMAND,  //ctags.exe
06389                 options         //ctagsオプション
06390             );
06391     }
06392     else
06393     {
06394         wsprintf( cmdline, "command.com /C \"%s\\%s\" %s",
06395                 szExeFolder,    //sakura.exeパス
06396                 CTAGS_COMMAND,  //ctags.exe
06397                 options         //ctagsオプション
06398             );
06399     }
06400
06401     //コマンドライン実行
06402     if( CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
06403             CREATE_NEW_CONSOLE, NULL, cDlgTagsMake.m_szPath, &sui, &pi ) == FALSE )
06404     {
06405 		::MYMESSAGEBOX( m_hWnd,   MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
06406             "タグ作成コマンド実行は失敗しました。\n\n%s", cmdline );
06407         goto finish;
06408     }
06409
06410     {
06411         DWORD   read_cnt;
06412         DWORD   new_cnt;
06413         char    work[1024];
06414         bool    bLoopFlag = true;
06415
06416         //中断ダイアログ表示
06417         HWND    hwndCancel;
06418         HWND    hwndMsg;
06419         hwndCancel = cDlgCancel.DoModeless( m_hInstance, m_hwndParent, IDD_EXECRUNNING );
06420         hwndMsg = ::GetDlgItem( hwndCancel, IDC_STATIC_CMD );
06421         ::SendMessage( hwndMsg, WM_SETTEXT, 0, (LPARAM)"タグファイルを作成中です。" );
06422
06423         //実行結果の取り込み
06424         do {
06425             // Jun. 04, 2003 genta CPU消費を減らすために200msec待つ
06426             // その間メッセージ処理が滞らないように待ち方をWaitForSingleObjectから
06427             // MsgWaitForMultipleObjectに変更
06428             switch( MsgWaitForMultipleObjects( 1, &pi.hProcess, FALSE, 200, QS_ALLEVENTS )){
06429                 case WAIT_OBJECT_0:
06430                     //終了していればループフラグをFALSEとする
06431                     //ただしループの終了条件は プロセス終了 && パイプが空
06432                     bLoopFlag = FALSE;
06433                     break;
06434                 case WAIT_OBJECT_0 + 1:
06435                     //処理中のユーザー操作を可能にする
06436                     if( !::BlockingHook( cDlgCancel.m_hWnd ) ){
06437                         break;
06438                     }
06439                     break;
06440                 default:
06441                     break;
06442             }
06443
06444             //中断ボタン押下チェック
06445             if( cDlgCancel.IsCanceled() )
06446             {
06447                 //指定されたプロセスと、そのプロセスが持つすべてのスレッドを終了させます。
06448                 ::TerminateProcess( pi.hProcess, 0 );
06449                 break;
06450             }
06451
06452             new_cnt = 0;
06453             if( PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) )   //パイプの中の読み出し待機中の文字数を取得
06454             {
06455                 if( new_cnt > 0 )                                               //待機中のものがある
06456                 {
06457                     if( new_cnt >= sizeof(work) - 2 )                           //パイプから読み出す量を調整
06458                     {
06459                         new_cnt = sizeof(work) - 2;
06460                     }
06461                     ReadFile( hStdOutRead, &work[0], new_cnt, &read_cnt, NULL );    //パイプから読み出し
06462                     if( read_cnt == 0 )
06463                     {
06464                         continue;
06465                     }
06466                     // 2003.11.09 じゅうじ
06467                     //  正常終了の時はメッセージが出力されないので
06468                     //  何か出力されたらエラーメッセージと見なす．
06469                     else {
06470                         //終了処理
06471                         CloseHandle( hStdOutWrite );
06472                         CloseHandle( hStdOutRead  );
06473                         if( pi.hProcess ) CloseHandle( pi.hProcess );
06474                         if( pi.hThread  ) CloseHandle( pi.hThread  );
06475
06476                         cDlgCancel.CloseDialog( TRUE );
06477
06478                         work[ read_cnt ] = '\0';    // Nov. 15, 2003 genta 表示用に0終端する
06479 						::MYMESSAGEBOX( m_hWnd,   MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
06480                         "タグ作成コマンド実行は失敗しました。\n\n%s", work ); // 2003.11.09 じゅうじ
06481
06482                         return true;
06483                     }
06484                 }
06485             }
06486             Sleep(0);
06487         } while( bLoopFlag || new_cnt > 0 );
06488
06489     }
06490
06491
06492 finish:
06493     //終了処理
06494     CloseHandle( hStdOutWrite );
06495     CloseHandle( hStdOutRead  );
06496     if( pi.hProcess ) CloseHandle( pi.hProcess );
06497     if( pi.hThread  ) CloseHandle( pi.hThread  );
06498
06499     cDlgCancel.CloseDialog( TRUE );
06500
06501 	::MYMESSAGEBOX( m_hWnd,    MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
06502         "タグファイルの作成が終了しました。" );
06503
06504     return true;
06505 }
06506
06513 bool CEditView::Command_TagJumpByTagsFileKeyword( const char* keyword )
06514 {
06515     CMemory cmemKey;
06516     CDlgTagJumpList cDlgTagJumpList;
06517     char    s[5][1024];
06518     int     n2;
06519     int depth;
06520     char    szTagFile[1024];        //タグファイル
06521     char    szCurrentPath[1024];
06522
06523     if( ! m_pcEditDoc->IsFilePathAvailable() ) return false;
06524     strcpy( szCurrentPath, m_pcEditDoc->GetFilePath() );
06525
06526     cDlgTagJumpList.SetFileName( szCurrentPath );
06527     cDlgTagJumpList.SetKeyword( keyword );
06528
06529     szCurrentPath[ strlen( szCurrentPath ) - strlen( m_pcEditDoc->GetFileName() ) ] = '\0';
06530
06531     if( ! cDlgTagJumpList.DoModal( m_hInstance, m_hWnd, (LPARAM)1 ) )
06532     {
06533         return true;    //キャンセル
06534     }
06535
06536     //タグジャンプする。
06537     if( false == cDlgTagJumpList.GetSelectedParam( s[0], s[1], &n2, s[3], s[4], &depth ) )
06538     {
06539         return false;
06540     }
06541
06542     /*
06543      * s[0] キー
06544      * s[1] ファイル名
06545      * n2   行番号
06546      * s[3] タイプ
06547      * s[4] コメント
06548      * depth (さかのぼる)階層数
06549      */
06550
06551     //完全パス名を作成する。
06552     char    *p;
06553     p = s[1];
06554     if( p[0] == '\\' )  //ドライブなし絶対パスか？
06555     {
06556         if( p[1] == '\\' )  //ネットワークパスか？
06557         {
06558             strcpy( szTagFile, p ); //何も加工しない。
06559         }
06560         else
06561         {
06562             //ドライブ加工したほうがよい？
06563             strcpy( szTagFile, p ); //何も加工しない。
06564         }
06565     }
06566     else if( isalpha( p[0] ) && p[1] == ':' )   //絶対パスか？
06567     {
06568         strcpy( szTagFile, p ); //何も加工しない。
06569     }
06570     else
06571     {
06572         for( int i = 0; i < depth; i++ )
06573         {
06574             strcat( szCurrentPath, "..\\" );
06575         }
06576         wsprintf( szTagFile, "%s%s", szCurrentPath, p );
06577     }
06578
06579     return TagJumpSub( szTagFile, n2, 0 );
06580 }
06581
06582
06583
06584 /* C/C++ヘッダファイル オープン機能 */      //Feb. 10, 2001 jepro   説明を「インクルードファイル」から変更
06585 //BOOL CEditView::Command_OPENINCLUDEFILE( BOOL bCheckOnly )
06586 BOOL CEditView::Command_OPEN_HHPP( BOOL bCheckOnly, BOOL bBeepWhenMiss )
06587 {
06588     // 2003.06.28 Moca ヘッダ・ソースのコードを統合＆削除
06589     static const char* source_ext[] = { "c", "cpp", "cxx", "cc", "cp", "c++" };
06590     static const char* header_ext[] = { "h", "hpp", "hxx", "hh", "hp", "h++" };
06591     return OPEN_ExtFromtoExt( bCheckOnly, bBeepWhenMiss, source_ext, header_ext,
06592         sizeof(source_ext) / sizeof(source_ext[0]), sizeof(header_ext) / sizeof(header_ext[0]),
06593         "C/C++ヘッダファイルのオープンに失敗しました。" );
06594 }
06595
06596
06597
06598
06599 /* C/C++ソースファイル オープン機能 */
06600 //BOOL CEditView::Command_OPENCCPP( BOOL bCheckOnly )   //Feb. 10, 2001 JEPRO   コマンド名を若干変更
06601 BOOL CEditView::Command_OPEN_CCPP( BOOL bCheckOnly, BOOL bBeepWhenMiss )
06602 {
06603     // 2003.06.28 Moca ヘッダ・ソースのコードを統合＆削除
06604     static const char* source_ext[] = { "c", "cpp", "cxx", "cc", "cp", "c++" };
06605     static const char* header_ext[] = { "h", "hpp", "hxx", "hh", "hp", "h++" };
06606     return OPEN_ExtFromtoExt( bCheckOnly, bBeepWhenMiss, header_ext, source_ext,
06607         sizeof(header_ext) / sizeof(header_ext[0]), sizeof(source_ext) / sizeof(source_ext[0]),
06608         "C/C++ソースファイルのオープンに失敗しました。");
06609 }
06610
06611
06624 BOOL CEditView::OPEN_ExtFromtoExt( BOOL bCheckOnly, BOOL bBeepWhenMiss,
06625     const char* file_ext[], const char* open_ext[], int file_extno, int open_extno,
06626     const char* errmes )
06627 {
06628 //From Here Feb. 7, 2001 JEPRO 追加
06629     int     i;
06630     BOOL    bwantopen_c;
06631 //To Here Feb. 7, 2001
06632
06633     /* 編集中ファイルの拡張子を調べる */
06634 //Feb. 7, 2001 JEPRO 原作版をコメントアウト
06635 //  if( CheckEXT( m_pcEditDoc->GetFilePath(), "h" ) ){
06636 //  }else{
06637 //      if( !bCheckOnly ){
06638 //          ::MessageBeep( MB_ICONHAND );
06639 //      }
06640 //      return FALSE;
06641 //  }
06642
06643 //From Here Feb. 7, 2001 JEPRO 追加
06644     for( i = 0; i < open_extno; i++ ){
06645         if( CheckEXT( m_pcEditDoc->GetFilePath(), open_ext[i] ) ){
06646             bwantopen_c = TRUE;
06647             goto open_c;
06648         }
06649     }
06650     if( bBeepWhenMiss ){
06651         ::MessageBeep( MB_ICONHAND );
06652     }
06653     return FALSE;
06654
06655 open_c:;
06656 //To Here Feb. 7, 2001
06657
06658     char    szPath[_MAX_PATH];
06659     char    szDrive[_MAX_DRIVE];
06660     char    szDir[_MAX_DIR];
06661     char    szFname[_MAX_FNAME];
06662     char    szExt[_MAX_EXT];
06663     HWND    hwndOwner;
06664
06665     _splitpath( m_pcEditDoc->GetFilePath(), szDrive, szDir, szFname, szExt );
06666 //Feb. 7, 2001 JEPRO 原作版をコメントアウト
06667 //  _makepath( szPath, szDrive, szDir, szFname, "c" );
06668 //  if( -1 == _access( (const char *)szPath, 0 ) ){
06669 //      _makepath( szPath, szDrive, szDir, szFname, "cpp" );
06670 //      if( -1 == _access( (const char *)szPath, 0 ) ){
06671 //          _makepath( szPath, szDrive, szDir, szFname, "cxx" );
06672 //          if( -1 == _access( (const char *)szPath, 0 ) ){
06673 //              if( !bCheckOnly ){
06674 //                  ::MessageBeep( MB_ICONHAND );
06675 //              }
06676 //              return FALSE;
06677 //          }
06678 //      }
06679 //  }
06680 //  if( bCheckOnly ){
06681 //      return TRUE;
06682 //  }
06683
06684 //From Here Feb. 7, 2001 JEPRO 追加
06685     for( i = 0; i < file_extno; i++ ){
06686         _makepath( szPath, szDrive, szDir, szFname, file_ext[i] );
06687         if( -1 == _access( (const char *)szPath, 0 ) ){
06688             if( i < file_extno - 1 )
06689                 continue;
06690             if( bBeepWhenMiss ){
06691                 ::MessageBeep( MB_ICONHAND );
06692             }
06693             return FALSE;
06694         }
06695         break;
06696     }
06697     if( bCheckOnly ){
06698         return TRUE;
06699     }
06700 //To Here Feb. 7, 2001
06701
06702     /* 指定ファイルが開かれているか調べる */
06703     /* 開かれている場合は開いているウィンドウのハンドルも返す */
06704     /* ファイルを開いているか */
06705     if( CShareData::getInstance()->IsPathOpened( (const char*)szPath, &hwndOwner ) ){
06706     }else{
06707         /* 新しく開く */
06708         char    szPath2[_MAX_PATH + 3];
06709         if( strchr( szPath, ' ' ) ){
06710             wsprintf( szPath2, "\"%s\"", szPath );
06711         }else{
06712             strcpy( szPath2, szPath );
06713         }
06714         /* 文字コードはこのファイルに合わせる */
06715         CEditApp::OpenNewEditor(
06716             m_hInstance,
06717             m_hWnd,
06718             szPath2,
06719             m_pcEditDoc->m_nCharCode,
06720             FALSE,  /* 読み取り専用か */
06721             true
06722         );
06723         /* ファイルを開いているか */
06724         if( CShareData::getInstance()->IsPathOpened( (const char*)szPath, &hwndOwner ) ){
06725         }else{
06726 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
06727                 "%s\n\n%s\n\n", errmes, szPath
06728             );
06729             return FALSE;
06730         }
06731     }
06732     /* アクティブにする */
06733     ActivateFrameWindow( hwndOwner );
06734
06735 // 2004/06/21 novice タグジャンプ機能追加
06736 // 2004/07/09 genta/Moca タグジャンプバックの登録が取り除かれていたが、
06737 //            こちらでも従来どおり登録する
06738     TagJump tagJump;
06739     /*
06740       カーソル位置変換
06741       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
06742       →
06743       物理位置(行頭からのバイト数、折り返し無し行位置)
06744     */
06745     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
06746         m_nCaretPosX,
06747         m_nCaretPosY,
06748         (int*)&tagJump.point.x,
06749         (int*)&tagJump.point.y
06750     );
06751     tagJump.hwndReferer = m_pcEditDoc->m_hwndParent;
06752     // タグジャンプ情報の保存
06753     CShareData::getInstance()->PushTagJump(&tagJump);
06754 #if 0
06755     /* タグジャンプ元通知 */
06756     memcpy( m_pShareData->m_szWork, (void*)&poCaret, sizeof( poCaret ) );
06757     ::SendMessage( hwndOwner, MYWM_SETREFERER, (WPARAM)(m_pcEditDoc->m_hwndParent), 0 );
06758 #endif
06759     return TRUE;
06760 }
06761
06762
06763
06764
06765 //From Here Feb. 10, 2001 JEPRO 追加
06766 /* C/C++ヘッダファイルまたはソースファイル オープン機能 */
06767 BOOL CEditView::Command_OPEN_HfromtoC( BOOL bCheckOnly )
06768 {
06769     if ( Command_OPEN_HHPP( bCheckOnly, FALSE ) )   return TRUE;
06770     if ( Command_OPEN_CCPP( bCheckOnly, FALSE ) )   return TRUE;
06771     ::MessageBeep( MB_ICONHAND );
06772     return FALSE;
06773 // 2002/03/24 YAZAKI コードの重複を削減
06774 // 2003.06.28 Moca コメントとして残っていたコードを削除
06775 }
06776
06777 //Start 2004.07.14 Kazika 追加
06786 void CEditView::Command_BIND_WINDOW( void )
06787 {
06788     //タブモードであるならば
06789     if (m_pShareData->m_Common.m_bDispTabWnd)
06790     {
06791         //タブウィンドウの設定を変更
06792         m_pShareData->m_Common.m_bDispTabWndMultiWin = !m_pShareData->m_Common.m_bDispTabWndMultiWin;
06793
06794         // まとめるときは WS_EX_TOPMOST 状態を同期する  // 2007.05.18 ryoji
06795         if( !m_pShareData->m_Common.m_bDispTabWndMultiWin )
06796         {
06797             m_pcEditDoc->m_pcEditWnd->WindowTopMost(
06798                 ( (DWORD)::GetWindowLongPtr( m_pcEditDoc->m_pcEditWnd->m_hWnd, GWL_EXSTYLE ) & WS_EX_TOPMOST )? 1: 2
06799             );
06800         }
06801
06802         //Start 2004.08.27 Kazika 変更
06803         //タブウィンドウの設定を変更をブロードキャストする
06804         CShareData::getInstance()->ResetGroupId();
06805         CShareData::getInstance()->PostMessageToAllEditors(
06806             MYWM_TAB_WINDOW_NOTIFY,                     //タブウィンドウイベント
06807             (WPARAM)((m_pShareData->m_Common.m_bDispTabWndMultiWin) ? TWNT_MODE_DISABLE : TWNT_MODE_ENABLE),//タブモード有効/無効化イベント
06808             (LPARAM)m_pcEditDoc->m_pcEditWnd->m_hWnd,   //CEditWndのウィンドウハンドル
06809             m_hWnd);                                    //自分自身
06810         //End 2004.08.27 Kazika
06811     }
06812 }
06813 //End 2004.07.14 Kazika
06814
06825 void CEditView::Command_CASCADE( void )
06826 {
06827     int i;
06828
06829     /* 現在開いている編集窓のリストを取得する */
06830     EditNode*   pEditNodeArr;
06831     int         nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE/*FALSE*/, TRUE );
06832
06833     if( nRowNum > 0 ){
06834         struct WNDARR {
06835             HWND    hWnd;
06836             int     newX;
06837             int     newY;
06838         };
06839
06840         WNDARR* pWndArr = new WNDARR[nRowNum];
06841         int     count = 0;  //  処理対象ウィンドウカウント
06842         // Mar. 20, 2004 genta 現在のウィンドウを末尾に持っていくのに使う
06843         int     current_win_index = -1;
06844
06845         // -----------------------------------------
06846         //  ウィンドウ(ハンドル)リストの作成
06847         // -----------------------------------------
06848
06849         for( i = 0; i < nRowNum; ++i ){
06850             if( ::IsIconic( pEditNodeArr[i].m_hWnd ) ){ //  最小化しているウィンドウは無視。
06851                 continue;
06852             }
06853             if( !::IsWindowVisible( pEditNodeArr[i].m_hWnd ) ){ //  不可視ウィンドウは無視。
06854                 continue;
06855             }
06856             //  Mar. 20, 2004 genta
06857             //  現在のウィンドウを末尾に持っていくためここではスキップ
06858             if( pEditNodeArr[i].m_hWnd == m_pcEditDoc->m_hwndParent ){
06859                 current_win_index = i;
06860                 continue;
06861             }
06862             pWndArr[count].hWnd = pEditNodeArr[i].m_hWnd;
06863             count++;
06864         }
06865
06866         //  Mar. 20, 2004 genta
06867         //  現在のウィンドウを末尾に挿入 inspired by crayonzen
06868         if( current_win_index >= 0 ){
06869             pWndArr[count].hWnd = pEditNodeArr[current_win_index].m_hWnd;
06870             count++;
06871         }
06872
06873         //  デスクトップサイズを得る
06874         RECT    rcDesktop;
06875         //  May 01, 2004 genta マルチモニタ対応
06876 		::GetMonitorWorkRect( m_hWnd, &rcDesktop );
06877
06878         int width = (rcDesktop.right - rcDesktop.left ) * 4 / 5; // Mar. 9, 2003 genta 整数演算のみにする
06879         int height = (rcDesktop.bottom - rcDesktop.top ) * 4 / 5;
06880         int w_delta = ::GetSystemMetrics(SM_CXSIZEFRAME) + ::GetSystemMetrics(SM_CXSIZE);
06881         int h_delta = ::GetSystemMetrics(SM_CYSIZEFRAME) + ::GetSystemMetrics(SM_CYSIZE);
06882         int w_offset = rcDesktop.left; //Mar. 19, 2004 crayonzen 絶対値だとエクスプローラーのウィンドウに重なるので
06883         int h_offset = rcDesktop.top; //初期値をデスクトップ内に収める。
06884
06885         // -----------------------------------------
06886         //  座標計算
06887         //
06888         //  Mar. 19, 2004 crayonzen
06889         //      左上をデスクトップ領域に合わせる(タスクバーが上・左にある場合のため)．
06890         //      ウィンドウが右下からはみ出たら左上に戻るが，
06891         //      2周目以降は開始位置を右にずらしてアイコンが見えるようにする．
06892         //
06893         //  Mar. 20, 2004 genta ここでは計算値を保管するだけでウィンドウの再配置は行わない
06894         // -----------------------------------------
06895
06896         int roundtrip = 0; //２度目の描画以降で使用するカウント
06897         int sw_offset = w_delta; //右スライドの幅
06898
06899         for(i = 0; i < count; ++i ){
06900             if (w_offset + width > rcDesktop.right || h_offset + height > rcDesktop.bottom){
06901                 ++roundtrip;
06902                 if ((rcDesktop.right - rcDesktop.left) - sw_offset * roundtrip < width){
06903                     //  これ以上右にずらせないときはしょうがないから左上に戻る
06904                     roundtrip = 0;
06905                 }
06906                 //  ウィンドウ領域の左上にセット
06907                 //  craonzen 初期値修正(２度目以降の描画で少しづつスライド)
06908                 w_offset = rcDesktop.left + sw_offset * roundtrip;
06909                 h_offset = rcDesktop.top;
06910             }
06911
06912             pWndArr[i].newX = w_offset;
06913             pWndArr[i].newY = h_offset;
06914
06915             w_offset += w_delta;
06916             h_offset += h_delta;
06917         }
06918
06919         // -----------------------------------------
06920         //  最大化/非表示解除
06921         //  最大化されたウィンドウを元に戻す．これがないと，最大化ウィンドウが
06922         //  最大化状態のまま並び替えられてしまい，その後最大化動作が変になる．
06923         //
06924         //  Sep. 04, 2004 genta
06925         // -----------------------------------------
06926         for( i = 0; i < count; i++ ){
06927             ::ShowWindow( pWndArr[i].hWnd, SW_RESTORE | SW_SHOWNA );
06928         }
06929
06930         // -----------------------------------------
06931         //  ウィンドウ配置
06932         //
06933         //  Mar. 20, 2004 genta APIを素直に使ってZ-Orderの上から下の順で並べる．
06934         // -----------------------------------------
06935
06936         // まずカレントを最前面に
06937         i = count - 1;
06938
06939         ::SetWindowPos(
06940             pWndArr[i].hWnd, HWND_TOP,
06941             pWndArr[i].newX, pWndArr[i].newY,
06942             width, height,
06943             0
06944         );
06945
06946         // 残りを1つずつ下に入れていく
06947         while( --i >= 0 ){
06948             ::SetWindowPos(
06949                 pWndArr[i].hWnd, pWndArr[i + 1].hWnd,
06950                 pWndArr[i].newX, pWndArr[i].newY,
06951                 width, height,
06952                 SWP_NOACTIVATE
06953             );
06954         }
06955
06956         delete [] pWndArr;
06957         delete [] pEditNodeArr;
06958     }
06959     return;
06960 }
06961
06962
06963
06964
06965 //左右に並べて表示
06966 void CEditView::Command_TILE_H( void )
06967 {
06968     int i;
06969
06970     /* 現在開いている編集窓のリストを取得する */
06971     EditNode*   pEditNodeArr;
06972     int         nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE/*FALSE*/, TRUE );
06973
06974     if( nRowNum > 0 ){
06975         HWND*   phwndArr = new HWND[nRowNum];
06976         int     count = 0;
06977         //  デスクトップサイズを得る
06978         RECT    rcDesktop;
06979         //  May 01, 2004 genta マルチモニタ対応
06980 		::GetMonitorWorkRect( m_hWnd, &rcDesktop );
06981         for( i = 0; i < nRowNum; ++i ){
06982             if( ::IsIconic( pEditNodeArr[i].m_hWnd ) ){ //  最小化しているウィンドウは無視。
06983                 continue;
06984             }
06985             if( !::IsWindowVisible( pEditNodeArr[i].m_hWnd ) ){ //  不可視ウィンドウは無視。
06986                 continue;
06987             }
06988             //  From Here Jul. 28, 2002 genta
06989             //  現在のウィンドウを先頭に持ってくる
06990             if( pEditNodeArr[i].m_hWnd == m_pcEditDoc->m_hwndParent ){
06991                 phwndArr[count] = phwndArr[0];
06992                 phwndArr[0] = m_pcEditDoc->m_hwndParent;
06993             }
06994             else {
06995                 phwndArr[count] = pEditNodeArr[i].m_hWnd;
06996             }
06997             //  To Here Jul. 28, 2002 genta
06998             count++;
06999         }
07000         int width = (rcDesktop.right - rcDesktop.left ) / count;
07001         for(i = 0; i < count; ++i ){
07002             //  Jul. 21, 2002 genta
07003             ::ShowWindow( phwndArr[i], SW_RESTORE );
07004             ::SetWindowPos(
07005                 phwndArr[i], 0,
07006                 width * i + rcDesktop.left, rcDesktop.top, // Oct. 18, 2003 genta タスクバーが左にある場合を考慮
07007                 width, rcDesktop.bottom - rcDesktop.top,
07008                 SWP_NOOWNERZORDER | SWP_NOZORDER
07009             );
07010         }
07011         ::SetFocus( phwndArr[0] );  // Aug. 17, 2002 MIK
07012         delete [] phwndArr;
07013         delete [] pEditNodeArr;
07014     }
07015     return;
07016 }
07017
07018
07019
07020
07021 //上下に並べて表示
07022 void CEditView::Command_TILE_V( void )
07023 {
07024     int i;
07025
07026     /* 現在開いている編集窓のリストを取得する */
07027     EditNode*   pEditNodeArr;
07028     int         nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE/*FALSE*/, TRUE );
07029
07030     if( nRowNum > 0 ){
07031         HWND*   phwndArr = new HWND[nRowNum];
07032         int     count = 0;
07033         //  デスクトップサイズを得る
07034         RECT    rcDesktop;
07035         //  May 01, 2004 genta マルチモニタ対応
07036 		::GetMonitorWorkRect( m_hWnd, &rcDesktop );
07037         for( i = 0; i < nRowNum; ++i ){
07038             if( ::IsIconic( pEditNodeArr[i].m_hWnd ) ){ //  最小化しているウィンドウは無視。
07039                 continue;
07040             }
07041             if( !::IsWindowVisible( pEditNodeArr[i].m_hWnd ) ){ //  不可視ウィンドウは無視。
07042                 continue;
07043             }
07044             //  From Here Jul. 28, 2002 genta
07045             //  現在のウィンドウを先頭に持ってくる
07046             if( pEditNodeArr[i].m_hWnd == m_pcEditDoc->m_hwndParent ){
07047                 phwndArr[count] = phwndArr[0];
07048                 phwndArr[0] = m_pcEditDoc->m_hwndParent;
07049             }
07050             else {
07051                 phwndArr[count] = pEditNodeArr[i].m_hWnd;
07052             }
07053             //  To Here Jul. 28, 2002 genta
07054             count++;
07055         }
07056         int height = (rcDesktop.bottom - rcDesktop.top ) / count;
07057         for(i = 0; i < count; ++i ){
07058             //  Jul. 21, 2002 genta
07059             ::ShowWindow( phwndArr[i], SW_RESTORE );
07060             ::SetWindowPos(
07061                 phwndArr[i], 0,
07062                 rcDesktop.left, rcDesktop.top + height * i, //Mar. 19, 2004 crayonzen 上端調整
07063                 rcDesktop.right - rcDesktop.left, height,
07064                 SWP_NOOWNERZORDER | SWP_NOZORDER
07065             );
07066         }
07067         ::SetFocus( phwndArr[0] );  // Aug. 17, 2002 MIK
07068
07069         delete [] phwndArr;
07070         delete [] pEditNodeArr;
07071     }
07072     return;
07073 }
07074
07075
07076
07077 //縦方向に最大化
07078 void CEditView::Command_MAXIMIZE_V( void )
07079 {
07080     HWND    hwndFrame;
07081     RECT    rcOrg;
07082     RECT    rcDesktop;
07083     hwndFrame = ::GetParent( m_hwndParent );
07084     ::GetWindowRect( hwndFrame, &rcOrg );
07085     //  May 01, 2004 genta マルチモニタ対応
07086 	::GetMonitorWorkRect( hwndFrame, &rcDesktop );
07087     ::SetWindowPos(
07088         hwndFrame, 0,
07089         rcOrg.left, rcDesktop.top,
07090         rcOrg.right - rcOrg.left, rcDesktop.bottom - rcDesktop.top,
07091         SWP_NOOWNERZORDER | SWP_NOZORDER
07092     );
07093     return;
07094 }
07095
07096
07097
07098
07099 //2001.02.10 Start by MIK: 横方向に最大化
07100 //横方向に最大化
07101 void CEditView::Command_MAXIMIZE_H( void )
07102 {
07103     HWND    hwndFrame;
07104     RECT    rcOrg;
07105     RECT    rcDesktop;
07106
07107     hwndFrame = ::GetParent( m_hwndParent );
07108     ::GetWindowRect( hwndFrame, &rcOrg );
07109     //  May 01, 2004 genta マルチモニタ対応
07110 	::GetMonitorWorkRect( hwndFrame, &rcDesktop );
07111     ::SetWindowPos(
07112         hwndFrame, 0,
07113         rcDesktop.left, rcOrg.top,
07114         rcDesktop.right - rcDesktop.left, rcOrg.bottom - rcOrg.top,
07115         SWP_NOOWNERZORDER | SWP_NOZORDER
07116     );
07117     return;
07118 }
07119 //2001.02.10 End: 横方向に最大化
07120
07121
07122
07123
07124 /* すべて最小化 */  //  Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
07125 void CEditView::Command_MINIMIZE_ALL( void )
07126 {
07127     HWND*   phWndArr;
07128     int     i;
07129     int     j;
07130     j = m_pShareData->m_nEditArrNum;
07131     if( 0 == j ){
07132         return;
07133     }
07134     phWndArr = new HWND[j];
07135     for( i = 0; i < j; ++i ){
07136         phWndArr[i] = m_pShareData->m_pEditArr[i].m_hWnd;
07137     }
07138     for( i = 0; i < j; ++i ){
07139         if( CShareData::IsEditWnd( phWndArr[i] ) )
07140         {
07141             if( ::IsWindowVisible( phWndArr[i] ) )
07142                 ::ShowWindow( phWndArr[i], SW_MINIMIZE );
07143         }
07144     }
07145     delete [] phWndArr;
07146     return;
07147 }
07148
07149
07150
07151
07152 //置換(置換ダイアログ)
07153 void CEditView::Command_REPLACE_DIALOG( void )
07154 {
07155     CMemory     cmemCurText;
07156     BOOL        bSelected = FALSE;
07157
07158 // From Here 2001.12.03 hor
07159 //      1.検索文字列の所得ロジックをCommand_SEARCH_DIALOGと同じものに
07160 //      2.選択状況によって置換ダイログの範囲選択を切替え
07161 //
07162 //  /* 検索文字列を初期化 */
07163 //  m_pcEditDoc->m_cDlgReplace.m_szText[0] = '\0';
07164 //  if( IsTextSelected() ){ /* テキストが選択されているか */
07165 //      /* 選択範囲のデータを取得 */
07166 //      if( GetSelectedData( cmemCurText, FALSE, NULL, FALSE ) ){
07167 //          /* 検索文字列を現在位置の単語で初期化 */
07168 //          strncpy( m_pcEditDoc->m_cDlgReplace.m_szText, cmemCurText.GetPtr(), _MAX_PATH - 1 );
07169 //          m_pcEditDoc->m_cDlgReplace.m_szText[_MAX_PATH - 1] = '\0';
07170 //      }
07171 //      /* 矩形範囲選択中か */
07172 //      if( m_bBeginBoxSelect ){
07173 //          /* 現在の選択範囲を非選択状態に戻す */
07174 //          DisableSelectArea( TRUE );
07175 //          bSelected = FALSE;
07176 //      }else{
07177 //          bSelected = TRUE;
07178 //      }
07179 //  }else{
07180 //      pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
07181 //      if( NULL != pLine ){
07182 //          /* 指定された桁に対応する行のデータ内の位置を調べる */
07183 //          nIdx = LineColmnToIndex( pLine, nLineLen, m_nCaretPosX );
07184 //          /* 現在位置の単語の範囲を調べる */
07185 //          if( m_pcEditDoc->m_cLayoutMgr.WhereCurrentWord(
07186 //              m_nCaretPosY, nIdx,
07187 //              &nLineFrom, &nColmFrom, &nLineTo, &nColmTo, NULL, NULL ) ){
07188 //              /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
07189 //              pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineFrom, &nLineLen );
07190 //              nColmFrom = LineIndexToColmn( pLine, nLineLen, nColmFrom );
07191 //              pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineTo, &nLineLen );
07192 //              nColmTo = LineIndexToColmn( pLine, nLineLen, nColmTo );
07193 //              /* 選択範囲の変更 */
07194 //              m_nSelectLineBgnFrom = nLineFrom;   /* 範囲選択開始行(原点) */
07195 //              m_nSelectColmBgnFrom = nColmFrom;   /* 範囲選択開始桁(原点) */
07196 //              m_nSelectLineBgnTo = nLineFrom;     /* 範囲選択開始行(原点) */
07197 //              m_nSelectColmBgnTo = nColmFrom;     /* 範囲選択開始桁(原点) */
07198 //              m_nSelectLineFrom = nLineFrom;
07199 //              m_nSelectColmFrom = nColmFrom;
07200 //              m_nSelectLineTo = nLineTo;
07201 //              m_nSelectColmTo = nColmTo;
07202 //              /* 選択範囲のデータを取得 */
07203 //              if( GetSelectedData( cmemCurText, FALSE, NULL, FALSE ) ){
07204 //                  /* 検索文字列を現在位置の単語で初期化 */
07205 //                  strncpy( m_pcEditDoc->m_cDlgReplace.m_szText, cmemCurText.GetPtr(), MAX_PATH - 1 );
07206 //                  m_pcEditDoc->m_cDlgReplace.m_szText[MAX_PATH - 1] = '\0';
07207 //              }
07208 //              /* 現在の選択範囲を非選択状態に戻す */
07209 //              DisableSelectArea( FALSE );
07210 //          }
07211 //      }
07212 //  }
07213 //  /* 検索文字列は改行まで */
07214 //  for( i = 0; i < (int)lstrlen( m_pcEditDoc->m_cDlgReplace.m_szText ); ++i ){
07215 //      if( m_pcEditDoc->m_cDlgReplace.m_szText[i] == CR ||
07216 //          m_pcEditDoc->m_cDlgReplace.m_szText[i] == LF ){
07217 //          m_pcEditDoc->m_cDlgReplace.m_szText[i] = '\0';
07218 //          break;
07219 //      }
07220 //  }
07221
07222     /* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
07223     GetCurrentTextForSearchDlg( cmemCurText );  // 2006.08.23 ryoji ダイアログ専用関数に変更
07224
07225     /* 検索文字列を初期化 */
07226     strcpy( m_pcEditDoc->m_cDlgReplace.m_szText, cmemCurText.GetPtr() );
07227     strncpy( m_pcEditDoc->m_cDlgReplace.m_szText2, m_pShareData->m_szREPLACEKEYArr[0], MAX_PATH - 1 );  // 2006.08.23 ryoji 前回の置換後文字列を引き継ぐ
07228     m_pcEditDoc->m_cDlgReplace.m_szText2[MAX_PATH - 1] = '\0';
07229
07230     if ( IsTextSelected() && m_nSelectLineFrom!=m_nSelectLineTo ) {
07231         bSelected = TRUE;   //選択範囲をチェックしてダイアログ表示
07232     }else{
07233         bSelected = FALSE;  //ファイル全体をチェックしてダイアログ表示
07234     }
07235     /* 置換オプションの初期化 */
07236     m_pcEditDoc->m_cDlgReplace.m_nReplaceTarget=0;  /* 置換対象 */
07237     m_pcEditDoc->m_cDlgReplace.m_nPaste=FALSE;      /* 貼り付ける？ */
07238 // To Here 2001.12.03 hor
07239
07240     /* 置換ダイアログの表示 */
07241 //  nRet = m_pcEditDoc->m_cDlgReplace.DoModal( (LPARAM)this, bSelected );
07242 //  MYTRACE( "nRet=%d\n", nRet );
07243     //  From Here Jul. 2, 2001 genta 置換ウィンドウの2重開きを抑止
07244     if( !::IsWindow( m_pcEditDoc->m_cDlgReplace.m_hWnd ) ){
07245         m_pcEditDoc->m_cDlgReplace.DoModeless( m_hInstance, m_hWnd/*::GetParent( m_hwndParent )*/, (LPARAM)this, bSelected );
07246     }
07247     else {
07248             /* アクティブにする */
07249         ActivateFrameWindow( m_pcEditDoc->m_cDlgReplace.m_hWnd );
07250         ::SetDlgItemText( m_pcEditDoc->m_cDlgReplace.m_hWnd, IDC_COMBO_TEXT, cmemCurText.GetPtr() );
07251     }
07252     //  To Here Jul. 2, 2001 genta 置換ウィンドウの2重開きを抑止
07253     return;
07254 }
07255
07261 void CEditView::Command_REPLACE( HWND hwndParent )
07262 {
07263     if ( hwndParent == NULL ){  //  親ウィンドウが指定されていなければ、CEditViewが親。
07264         hwndParent = m_hWnd;
07265     }
07266     //2002.02.10 hor
07267     int nPaste          =   m_pcEditDoc->m_cDlgReplace.m_nPaste;
07268     int nReplaceTarget  =   m_pcEditDoc->m_cDlgReplace.m_nReplaceTarget;
07269     int bRegularExp     =   m_pShareData->m_Common.m_bRegularExp;
07270     int nFlag           =   m_pShareData->m_Common.m_bLoHiCase ? 0x01 : 0x00;
07271
07272     // From Here 2001.12.03 hor
07273     if( nPaste && !m_pcEditDoc->IsEnablePaste()){
07274         ::MYMESSAGEBOX( hwndParent, MB_OK , GSTR_APPNAME,"クリップボードに有効なデータがありません！");
07275         ::CheckDlgButton( m_pcEditDoc->m_cDlgReplace.m_hWnd, IDC_CHK_PASTE, FALSE );
07276         ::EnableWindow( ::GetDlgItem( m_pcEditDoc->m_cDlgReplace.m_hWnd, IDC_COMBO_TEXT2 ), TRUE );
07277         return; //  失敗return;
07278     }
07279
07280     // 2002.01.09 hor
07281     // 選択エリアがあれば、その先頭にカーソルを移す
07282     if( IsTextSelected() ){
07283         if( m_bBeginBoxSelect ){
07284             MoveCursor( m_nSelectColmFrom,
07285                         m_nSelectLineFrom,
07286                         TRUE );
07287         } else {
07288 //          HandleCommand( F_LEFT, TRUE, 0, 0, 0, 0 );
07289             Command_LEFT( FALSE, FALSE );
07290         }
07291     }
07292     // To Here 2002.01.09 hor
07293
07294     // 矩形選択？
07295 //          bBeginBoxSelect = m_bBeginBoxSelect;
07296
07297     /* カーソル左移動 */
07298     //HandleCommand( F_LEFT, TRUE, 0, 0, 0, 0 );    //？？？
07299     // To Here 2001.12.03 hor
07300
07301     /* テキスト選択解除 */
07302     /* 現在の選択範囲を非選択状態に戻す */
07303     DisableSelectArea( TRUE );
07304
07305     // 2004.06.01 Moca 検索中に、他のプロセスによってm_szREPLACEKEYArrが書き換えられても大丈夫なように
07306     const CMemory   cMemRepKey( m_pShareData->m_szREPLACEKEYArr[0], _tcslen(m_pShareData->m_szREPLACEKEYArr[0]) );
07307
07308     /* 次を検索 */
07309     Command_SEARCH_NEXT( true, TRUE, hwndParent, 0 );
07310
07311     /* テキストが選択されているか */
07312     if( IsTextSelected() ){
07313         // From Here 2001.12.03 hor
07314         int colTmp = 0;
07315         int linTmp = 0;
07316         if ( !bRegularExp ) {
07317             // 正規表現時は 後方参照($&)で実現するので、正規表現は除外
07318             if(nReplaceTarget==1){  //挿入位置へ移動
07319                 colTmp = m_nSelectColmTo - m_nSelectColmFrom;
07320                 linTmp = m_nSelectLineTo - m_nSelectLineFrom;
07321                 m_nSelectColmFrom=-1;
07322                 m_nSelectLineFrom=-1;
07323                 m_nSelectColmTo  =-1;
07324                 m_nSelectLineTo  =-1;
07325             }else
07326             if(nReplaceTarget==2){  //追加位置へ移動
07327                 // 正規表現を除外したので、「検索後の文字が改行やったら次の行の先頭へ移動」の処理を削除
07328                 m_nCaretPosX = m_nSelectColmTo;
07329                 m_nCaretPosY = m_nSelectLineTo;
07330                 m_nSelectColmFrom=-1;
07331                 m_nSelectLineFrom=-1;
07332                 m_nSelectColmTo  =-1;
07333                 m_nSelectLineTo  =-1;
07334             }
07335             else
07336             {
07337                 // 位置指定ないので、何もしない
07338             }
07339         }
07340         /* コマンドコードによる処理振り分け */
07341         /* テキストを貼り付け */
07342         //HandleCommand( F_INSTEXT, TRUE, (LPARAM)m_szText2, FALSE, 0, 0 );
07343         if(nPaste){
07344         //  HandleCommand( F_PASTE, 0, 0, 0, 0, 0 );
07345             Command_PASTE();
07346         } else if ( bRegularExp ) { /* 検索／置換  1==正規表現 */
07347             // 先読みに対応するために物理行末までを使うように変更 2005/03/27 かろと
07348             // 2002/01/19 novice 正規表現による文字列置換
07349             CMemory cmemory;
07350             CBregexp cRegexp;
07351
07352             if( !InitRegexp( m_hWnd, cRegexp, true ) ){
07353                 return; //  失敗return;
07354             }
07355
07356             // 物理行、物理行長、物理行での検索マッチ位置
07357             const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.Search(m_nSelectLineFrom);
07358             const char* pLine = pcLayout->m_pCDocLine->GetPtr();
07359             int nIdx = LineColmnToIndex( pcLayout, m_nSelectColmFrom ) + pcLayout->m_nOffset;
07360             int nLen = pcLayout->m_pCDocLine->GetLength();
07361             // 正規表現で選択始点・終点への挿入を記述
07362             //  Jun. 6, 2005 かろと
07363             // →これでは「検索の後ろの文字が改行だったら次の行頭へ移動」が処理できない
07364             // → Oct. 30, 「検索の後ろの文字が改行だったら・・」の処理をやめる（誰もしらないみたいなので）
07365             // Nov. 9, 2005 かろと 正規表現で選択始点・終点への挿入方法を変更(再)
07366             CMemory cMemMatchStr = CMemory(_T("$&"), _tcslen(_T("$&")));
07367             CMemory cMemRepKey2;
07368             if (nReplaceTarget == 1) {  //選択始点へ挿入
07369                 cMemRepKey2 = cMemRepKey;
07370                 cMemRepKey2 += cMemMatchStr;
07371             } else if (nReplaceTarget == 2) { // 選択終点へ挿入
07372                 cMemRepKey2 = cMemMatchStr;
07373                 cMemRepKey2 += cMemRepKey;
07374             } else {
07375                 cMemRepKey2 = cMemRepKey;
07376             }
07377             cRegexp.Compile( m_pShareData->m_szSEARCHKEYArr[0], cMemRepKey2.GetPtr(), nFlag);
07378             if( cRegexp.Replace(pLine, nLen, nIdx) ){
07379                 // From Here Jun. 6, 2005 かろと
07380                 // 物理行末までINSTEXTする方法は、キャレット位置を調整する必要があり、
07381                 // キャレット位置の計算が複雑になる。（置換後に改行がある場合に不具合発生）
07382                 // そこで、INSTEXTする文字列長を調整する方法に変更する（実はこっちの方がわかりやすい）
07383                 CLayoutMgr& rLayoutMgr = m_pcEditDoc->m_cLayoutMgr;
07384                 int matchLen = cRegexp.GetMatchLen();
07385                 int nIdxTo = nIdx + matchLen;       // 検索文字列の末尾
07386                 if (matchLen == 0) {
07387                     // ０文字マッチの時(無限置換にならないように１文字進める)
07388                     if (nIdxTo < nLen) {
07389                         // 2005-09-02 D.S.Koba GetSizeOfChar
07390                         nIdxTo += (CMemory::GetSizeOfChar(pLine, nLen, nIdxTo) == 2 ? 2 : 1);
07391                     }
07392                     // 無限置換しないように、１文字増やしたので１文字選択に変更
07393                     // 選択始点・終点への挿入の場合も０文字マッチ時は動作は同じになるので
07394                     rLayoutMgr.CaretPos_Phys2Log( nIdxTo, pcLayout->m_nLinePhysical, &m_nSelectColmTo, &m_nSelectLineTo );  // 2007.01.19 ryoji 行位置も取得する
07395                 }
07396                 // 行末から検索文字列末尾までの文字数
07397                 int colDiff = nLen - nIdxTo;
07398                 //  Oct. 22, 2005 Karoto
07399                 //  \rを置換するとその後ろの\nが消えてしまう問題の対応
07400                 if (colDiff < pcLayout->m_pCDocLine->m_cEol.GetLen()) {
07401                     // 改行にかかっていたら、行全体をINSTEXTする。
07402                     colDiff = 0;
07403                     rLayoutMgr.CaretPos_Phys2Log( nLen, pcLayout->m_nLinePhysical, &m_nSelectColmTo, &m_nSelectLineTo );    // 2007.01.19 ryoji 追加
07404                 }
07405                 // 置換後文字列への書き換え(行末から検索文字列末尾までの文字を除く)
07406                 Command_INSTEXT( FALSE, cRegexp.GetString(), cRegexp.GetStringLen() - colDiff, TRUE );
07407                 // To Here Jun. 6, 2005 かろと
07408             }
07409         }else{
07410             //  HandleCommand( F_INSTEXT, FALSE, (LPARAM)m_pShareData->m_szREPLACEKEYArr[0], FALSE, 0, 0 );
07411             Command_INSTEXT( FALSE, cMemRepKey.GetPtr(), cMemRepKey.GetLength(), TRUE );
07412         }
07413         // 挿入後の検索開始位置を調整
07414         if(nReplaceTarget==1){
07415             m_nCaretPosX+=colTmp;
07416             m_nCaretPosY+=linTmp;
07417         }
07418         // To Here 2001.12.03 hor
07419         /* 最後まで置換した時にOK押すまで置換前の状態が表示されるので、
07420         ** 置換後、次を検索する前に書き直す 2003.05.17 かろと
07421         */
07422         Redraw();
07423         /* 次を検索 */
07424     //  HandleCommand( F_SEARCH_NEXT, TRUE, (LPARAM)m_hWnd, (LPARAM)"最後まで置換しました。", 0, 0 );
07425         Command_SEARCH_NEXT( true, TRUE, hwndParent, "最後まで置換しました。" );
07426     }
07427 }
07428
07436 void CEditView::Command_REPLACE_ALL()
07437 {
07438     int         nNewPos;
07439     int         nReplaceNum;
07440     char        szLabel[64];
07441     int         nAllLineNum;
07442     HWND        hwndProgress;
07443     HWND        hwndStatic;
07444
07445 // From Here 2001.12.03 hor
07446     int         colFrom;        //選択範囲開始桁
07447     int         linFrom;        //選択範囲開始行
07448     int         colTo,colToP;   //選択範囲終了桁
07449     int         linTo,linToP;   //選択範囲終了行
07450     int         colDif = 0;     //置換後の桁調整
07451     int         linDif = 0;     //置換後の行調整
07452     int         colOld = 0;     //検索後の選択範囲次桁
07453     int         linOld = 0;     //検索後の行
07454     int         linOldLen = 0;  //検査後の行の長さ
07455     int         lineCnt;        //置換前の行数
07456     int         linPrev = 0;    //前回の検索行(矩形) @@@2001.12.31 YAZAKI warning退治
07457     int         linNext;        //次回の検索行(矩形)
07458     int         colTmp,linTmp,colLast,linLast;
07459     int         bBeginBoxSelect; // 矩形選択？
07460
07461     //2002.02.10 hor
07462     int nPaste          = m_pcEditDoc->m_cDlgReplace.m_nPaste;
07463     int nReplaceTarget  = m_pcEditDoc->m_cDlgReplace.m_nReplaceTarget;
07464     int bRegularExp     = m_pShareData->m_Common.m_bRegularExp;
07465     int bSelectedArea   = m_pShareData->m_Common.m_bSelectedArea;
07466     int bConsecutiveAll = m_pShareData->m_Common.m_bConsecutiveAll; /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
07467
07468     m_pcEditDoc->m_cDlgReplace.m_bCanceled=false;
07469     m_pcEditDoc->m_cDlgReplace.m_nReplaceCnt=0;
07470
07471     // From Here 2001.12.03 hor
07472     if( nPaste && !m_pcEditDoc->IsEnablePaste() ){
07473         ::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME,"クリップボードに有効なデータがありません！");
07474         ::CheckDlgButton( m_hWnd, IDC_CHK_PASTE, FALSE );
07475         ::EnableWindow( ::GetDlgItem( m_hWnd, IDC_COMBO_TEXT2 ), TRUE );
07476         return; // TRUE;
07477     }
07478     // To Here 2001.12.03 hor
07479
07480     if(IsTextSelected()){
07481         bBeginBoxSelect=m_bBeginBoxSelect;
07482     }
07483     else{
07484         bSelectedArea=FALSE;
07485         bBeginBoxSelect=FALSE;
07486     }
07487
07488     /* 表示処理ON/OFF */
07489     BOOL bDisplayUpdate = FALSE;
07490
07491     m_bDrawSWITCH = bDisplayUpdate;
07492     CDlgCancel  cDlgCancel;
07493     HWND        hwndCancel;
07494     nAllLineNum = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
07495
07496     /* 進捗表示&中止ダイアログの作成 */
07497     hwndCancel = cDlgCancel.DoModeless( m_hInstance, m_hWnd, IDD_REPLACERUNNING );
07498     ::EnableWindow( m_hWnd, FALSE );
07499     ::EnableWindow( ::GetParent( m_hWnd ), FALSE );
07500     ::EnableWindow( ::GetParent( ::GetParent( m_hWnd ) ), FALSE );
07501     //<< 2002/03/26 Azumaiya
07502     // 割り算掛け算をせずに進歩状況を表せるように、シフト演算をする。
07503     int nShiftCount;
07504     for ( nShiftCount = 0; SHRT_MAX < nAllLineNum; nShiftCount++ )
07505     {
07506         nAllLineNum >>= 1;
07507     }
07508     //>> 2002/03/26 Azumaiya
07509
07510     /* プログレスバー初期化 */
07511     hwndProgress = ::GetDlgItem( hwndCancel, IDC_PROGRESS_REPLACE );
07512 //  ::SendMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, 100 ) );
07513     ::SendMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, nAllLineNum ) );
07514     nNewPos = 0;
07515     ::SendMessage( hwndProgress, PBM_SETPOS, nNewPos, 0 );
07516
07517     /* 置換個数初期化 */
07518     nReplaceNum = 0;
07519     hwndStatic = ::GetDlgItem( hwndCancel, IDC_STATIC_KENSUU );
07520     _itoa( nReplaceNum, szLabel, 10 );
07521     ::SendMessage( hwndStatic, WM_SETTEXT, 0, (LPARAM)szLabel );
07522
07523     // From Here 2001.12.03 hor
07524     if (bSelectedArea){
07525         /* 選択範囲置換 */
07526         /* 選択範囲開始位置の取得 */
07527         linFrom = m_nSelectLineFrom;
07528         linTo   = m_nSelectLineTo;
07529         //  From Here 2007.09.20 genta 矩形範囲の選択置換ができない
07530         //  左下～右上と選択した場合，m_nSelectColmTo < m_nSelectColmFrom となるが，
07531         //  範囲チェックで colFrom < colTo を仮定しているので，
07532         //  矩形選択の場合は左上～右下指定になるよう桁を入れ換える．
07533         if( bBeginBoxSelect && m_nSelectColmTo < m_nSelectColmFrom ){
07534             colFrom = m_nSelectColmTo;
07535             colTo   = m_nSelectColmFrom;
07536         }
07537         else {
07538             colFrom = m_nSelectColmFrom;
07539             colTo   = m_nSelectColmTo;
07540         }
07541         //  To Here 2007.09.20 genta 矩形範囲の選択置換ができない
07542
07543         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
07544             colTo,
07545             linTo,
07546             &colToP,
07547             &linToP
07548         );
07549         //選択範囲開始位置へ移動
07550         MoveCursor( colFrom, linFrom, bDisplayUpdate );
07551     }
07552     else{
07553         /* ファイル全体置換 */
07554         /* ファイルの先頭に移動 */
07555     //  HandleCommand( F_GOFILETOP, bDisplayUpdate, 0, 0, 0, 0 );
07556         Command_GOFILETOP(bDisplayUpdate);
07557     }
07558     colLast=m_nCaretPosX;
07559     linLast=m_nCaretPosY;
07560
07561     /* テキスト選択解除 */
07562     /* 現在の選択範囲を非選択状態に戻す */
07563     DisableSelectArea( bDisplayUpdate );
07564     /* 次を検索 */
07565     Command_SEARCH_NEXT( true, bDisplayUpdate, 0, 0 );
07566     // To Here 2001.12.03 hor
07567
07568     //<< 2002/03/26 Azumaiya
07569     // 速く動かすことを最優先に組んでみました。
07570     // ループの外で文字列の長さを特定できるので、一時変数化。
07571     char *szREPLACEKEY;         // 置換後文字列。
07572     int nREPLACEKEY;            // 置換後文字列の長さ。
07573     BOOL        bColmnSelect;   // 矩形貼り付けを行うかどうか。
07574     CMemory     cmemClip;       // 置換後文字列のデータ（データを格納するだけで、ループ内ではこの形ではデータを扱いません）。
07575
07576     // クリップボードからのデータ貼り付けかどうか。
07577     if( nPaste != 0 )
07578     {
07579         // クリップボードからデータを取得。
07580         if ( FALSE == MyGetClipboardData( cmemClip, &bColmnSelect ) )
07581         {
07582             ::MessageBeep( MB_ICONHAND );
07583             return;
07584         }
07585
07586         // 矩形貼り付けが許可されていて、クリップボードのデータが矩形選択のとき。
07587         if ( m_pShareData->m_Common.m_bAutoColmnPaste == TRUE && bColmnSelect == TRUE )
07588         {
07589             // マウスによる範囲選択中
07590             if( m_bBeginSelect )
07591             {
07592                 ::MessageBeep( MB_ICONHAND );
07593                 return;
07594             }
07595
07596             // 現在のフォントは固定幅フォントである
07597             if( FALSE == m_pShareData->m_Common.m_bFontIs_FIXED_PITCH )
07598             {
07599                 return;
07600             }
07601         }
07602         else
07603         // クリップボードからのデータは普通に扱う。
07604         {
07605             bColmnSelect = FALSE;
07606         }
07607
07608         // データへのポインタとその長さを取得。
07609 //      szREPLACEKEY = cmemClip.GetPtr(&nREPLACEKEY);
07610     }
07611     else
07612     {
07613         // データへのポインタをセット。
07614 //      szREPLACEKEY = m_pShareData->m_szREPLACEKEYArr[0];
07615         // 早速長さを取得。
07616 //      nREPLACEKEY = strlen(szREPLACEKEY);
07617         // 2004.05.14 Moca 全置換の途中で他のウィンドウで置換されるとまずいのでコピーする
07618         cmemClip.SetDataSz( m_pShareData->m_szREPLACEKEYArr[0] );
07619     }
07620     szREPLACEKEY = cmemClip.GetPtr(&nREPLACEKEY);
07621
07622     // 取得にステップがかかりそうな変数などを、一時変数化する。
07623     // とはいえ、これらの操作をすることによって得をするクロック数は合わせても 1 ループで数十だと思います。
07624     // 数百クロック毎ループのオーダーから考えてもそんなに得はしないように思いますけど・・・。
07625     BOOL bAddCRLFWhenCopy = m_pShareData->m_Common.m_bAddCRLFWhenCopy;
07626     BOOL &bCANCEL = cDlgCancel.m_bCANCEL;
07627     CDocLineMgr& rDocLineMgr = m_pcEditDoc->m_cDocLineMgr;
07628     CLayoutMgr& rLayoutMgr = m_pcEditDoc->m_cLayoutMgr;
07629
07630     //  クラス関係をループの中で宣言してしまうと、毎ループごとにコンストラクタ、デストラクタが
07631     // 呼ばれて遅くなるので、ここで宣言。
07632     CMemory cmemory;
07633     CBregexp cRegexp;
07634     // 初期化も同様に毎ループごとにやると遅いので、最初に済ましてしまう。
07635     if( bRegularExp )
07636     {
07637         if ( !InitRegexp( m_hWnd, cRegexp, true ) )
07638         {
07639             return;
07640         }
07641
07642         const CMemory   cMemRepKey( szREPLACEKEY, _tcslen(szREPLACEKEY) );
07643         // Nov. 9, 2005 かろと 正規表現で選択始点・終点への挿入方法を変更(再)
07644         CMemory cMemRepKey2;
07645         CMemory cMemMatchStr = CMemory(_T("$&"), _tcslen(_T("$&")));
07646         if (nReplaceTarget == 1 ) { //選択始点へ挿入
07647             cMemRepKey2 = cMemRepKey;
07648             cMemRepKey2 += cMemMatchStr;
07649         } else if (nReplaceTarget == 2) { // 選択終点へ挿入
07650             cMemRepKey2 = cMemMatchStr;
07651             cMemRepKey2 += cMemRepKey;
07652         } else {
07653             cMemRepKey2 = cMemRepKey;
07654         }
07655         // 正規表現オプションの設定2006.04.01 かろと
07656         int nFlag = (m_pShareData->m_Common.m_bLoHiCase ? CBregexp::optCaseSensitive : CBregexp::optNothing);
07657         nFlag |= (bConsecutiveAll ? CBregexp::optNothing : CBregexp::optGlobal);    // 2007.01.16 ryoji
07658         cRegexp.Compile(m_pShareData->m_szSEARCHKEYArr[0], cMemRepKey2.GetPtr(), nFlag);
07659     }
07660
07661     /* テキストが選択されているか */
07662     while( IsTextSelected() )
07663     {
07664         /* キャンセルされたか */
07665         if( bCANCEL )
07666         {
07667             break;
07668         }
07669
07670         /* 処理中のユーザー操作を可能にする */
07671         if( !::BlockingHook( hwndCancel ) )
07672         {
07673             return;// -1;
07674         }
07675
07676         // 128 ごとに表示。
07677         if( 0 == (nReplaceNum & 0x7F ) )
07678         // 時間ごとに進歩状況描画だと時間取得分遅くなると思うが、そちらの方が自然だと思うので・・・。
07679         // と思ったけど、逆にこちらの方が自然ではないので、やめる。
07680         {
07681             nNewPos = m_nSelectLineFrom >> nShiftCount;
07682             ::PostMessage( hwndProgress, PBM_SETPOS, nNewPos, 0 );
07683             _itoa( nReplaceNum, szLabel, 10 );
07684             ::SendMessage( hwndStatic, WM_SETTEXT, 0, (LPARAM)szLabel );
07685         }
07686
07687         // From Here 2001.12.03 hor
07688         /* 検索後の位置を確認 */
07689         if( bSelectedArea )
07690         {
07691             // 矩形選択
07692             //  o レイアウト座標をチェックしながら置換する
07693             //  o 折り返しがあると変になるかも・・・
07694             //
07695             if ( bBeginBoxSelect )
07696             {
07697                 // 検索時の行数を記憶
07698                 lineCnt = rLayoutMgr.GetLineCount();
07699                 // 検索後の範囲終端
07700                 colOld = m_nSelectColmTo;
07701                 linOld = m_nSelectLineTo;
07702                 // 前回の検索行と違う？
07703                 if(linOld!=linPrev){
07704                     colDif=0;
07705                 }
07706                 linPrev=linOld;
07707                 // 行は範囲内？
07708                 if ((linTo+linDif == linOld && colTo+colDif < colOld) ||
07709                     (linTo+linDif <  linOld)) {
07710                     break;
07711                 }
07712                 // 桁は範囲内？
07713                 if(!((colFrom<=m_nSelectColmFrom)&&
07714                      (colOld<=colTo+colDif))){
07715                     if(colOld<colTo+colDif){
07716                         linNext=m_nSelectLineTo;
07717                     }else{
07718                         linNext=m_nSelectLineTo+1;
07719                     }
07720                     //次の検索開始位置へシフト
07721                     m_nCaretPosX=colFrom;
07722                     m_nCaretPosY=linNext;
07723                     // 2004.05.30 Moca 現在の検索文字列を使って検索する
07724                     Command_SEARCH_NEXT( false, bDisplayUpdate, 0, 0 );
07725                     colDif=0;
07726                     continue;
07727                 }
07728             }
07729             else
07730             // 普通の選択
07731             //  o 物理座標をチェックしながら置換する
07732             //
07733             {
07734                 // 検索時の行数を記憶
07735                 lineCnt = rDocLineMgr.GetLineCount();
07736                 // 検索後の範囲終端
07737                 rLayoutMgr.CaretPos_Log2Phys(
07738                                     m_nSelectColmTo,
07739                                     m_nSelectLineTo,
07740                                     &colOld,
07741                                     &linOld
07742                                     );
07743                 // 置換前の行の長さ(改行は１文字と数える)を保存しておいて、置換前後で行位置が変わった場合に使用
07744                 linOldLen = rDocLineMgr.GetLineInfo(linOld)->GetLengthWithoutEOL() + 1;
07745                 // 行は範囲内？
07746                 // 2007.01.19 ryoji 条件追加: 選択終点が行頭(colToP == 0)になっている場合は前の行の行末までを選択範囲とみなす
07747                 // （選択始点が行頭ならその行頭は選択範囲に含み、終点が行頭ならその行頭は選択範囲に含まない、とする）
07748                 // 論理的に少し変と指摘されるかもしれないが、実用上はそのようにしたほうが望ましいケースが多いと思われる。
07749                 // ※行選択で行末までを選択範囲にしたつもりでも、UI上は次の行の行頭にカーソルが行く
07750                 // ※終点の行頭を「^」にマッチさせたかったら１文字以上選択してね、ということで．．．
07751                 if ((linToP+linDif == linOld && (colToP+colDif < colOld || colToP == 0))
07752                     || linToP+linDif < linOld) {
07753                     break;
07754                 }
07755             }
07756         }
07757
07758         colTmp = 0;
07759         linTmp = 0;
07760         if ( !bRegularExp ) {
07761             // 正規表現時は 後方参照($&)で実現するので、正規表現は除外
07762             if( nReplaceTarget == 1 )   //挿入位置セット
07763             {
07764                 colTmp = m_nSelectColmTo - m_nSelectColmFrom;
07765                 linTmp = m_nSelectLineTo - m_nSelectLineFrom;
07766                 m_nSelectColmFrom=-1;
07767                 m_nSelectLineFrom=-1;
07768                 m_nSelectColmTo  =-1;
07769                 m_nSelectLineTo  =-1;
07770             }
07771             else if( nReplaceTarget == 2 )  //追加位置セット
07772             {
07773                 // 正規表現を除外したので、「検索後の文字が改行やったら次の行の先頭へ移動」の処理を削除
07774                 m_nCaretPosX = m_nSelectColmTo;
07775                 m_nCaretPosY = m_nSelectLineTo;
07776                 m_nSelectColmFrom=-1;
07777                 m_nSelectLineFrom=-1;
07778                 m_nSelectColmTo  =-1;
07779                 m_nSelectLineTo  =-1;
07780             } else {
07781                 // 位置指定ないので、何もしない
07782             }
07783         }
07784
07785         /* コマンドコードによる処理振り分け */
07786         /* テキストを貼り付け */
07787         if( nPaste )
07788         {
07789 //          Command_PASTE();
07790             if ( bColmnSelect == FALSE )
07791             {
07792                 /* 本当は Command_INSTEXT を使うべきなんでしょうが、無駄な処理を避けるために直接たたく。
07793                 ** →m_nSelectXXXが-1の時に ReplaceData_CEditViewを直接たたくと動作不良となるため
07794                 **   直接たたくのやめた。2003.05.18 by かろと
07795                 */
07796                 Command_INSTEXT( FALSE, szREPLACEKEY, nREPLACEKEY, TRUE );
07797             }
07798             else
07799             {
07800                 Command_PASTEBOX(szREPLACEKEY, nREPLACEKEY);
07801                 // 再描画を行わないとどんな結果が起きているのか分からずみっともないので・・・。
07802                 AdjustScrollBars(); // 2007.07.22 ryoji
07803                 Redraw();
07804             }
07805         }
07806         // 2002/01/19 novice 正規表現による文字列置換
07807         else if( bRegularExp ) /* 検索／置換  1==正規表現 */
07808         {
07809             // 物理行、物理行長、物理行での検索マッチ位置
07810             const CLayout* pcLayout = rLayoutMgr.Search(m_nSelectLineFrom);
07811             const char* pLine = pcLayout->m_pCDocLine->GetPtr();
07812             int nIdx = LineColmnToIndex( pcLayout, m_nSelectColmFrom ) + pcLayout->m_nOffset;
07813             int nLen = pcLayout->m_pCDocLine->GetLength();
07814             int colDiff = 0;
07815             if( !bConsecutiveAll ){ // 一括置換
07816                 // 2007.01.16 ryoji
07817                 // 選択範囲置換の場合は行内の選択範囲末尾まで置換範囲を縮め，
07818                 // その位置を記憶する．
07819                 if( bSelectedArea ){
07820                     if( bBeginBoxSelect ){  // 矩形選択
07821                         int wk;
07822                         rLayoutMgr.CaretPos_Log2Phys(
07823                                             colTo,
07824                                             linOld,
07825                                             &colToP,
07826                                             &wk
07827                                             );
07828                         if( nLen - pcLayout->m_pCDocLine->m_cEol.GetLen() > colToP + colDif )
07829                             nLen = colToP + colDif;
07830                     } else {    // 通常の選択
07831                         if( linToP+linDif == linOld ){
07832                             if( nLen - pcLayout->m_pCDocLine->m_cEol.GetLen() > colToP + colDif )
07833                                 nLen = colToP + colDif;
07834                         }
07835                     }
07836                 }
07837
07838                 if(pcLayout->m_pCDocLine->GetLengthWithoutEOL() < nLen)
07839                     colOld = pcLayout->m_pCDocLine->GetLengthWithoutEOL() + 1;
07840                 else
07841                     colOld = nLen;
07842             }
07843             if( int nReplace = cRegexp.Replace(pLine, nLen, nIdx) ){
07844                 nReplaceNum += nReplace;
07845                 if ( !bConsecutiveAll ) { // 2006.04.01 かろと  // 2007.01.16 ryoji
07846                     // 行単位での置換処理
07847                     // 選択範囲を物理行末までにのばす
07848                     rLayoutMgr.CaretPos_Phys2Log( nLen, pcLayout->m_nLinePhysical, &m_nSelectColmTo, &m_nSelectLineTo );
07849                 } else {
07850                     // From Here Jun. 6, 2005 かろと
07851                     // 物理行末までINSTEXTする方法は、キャレット位置を調整する必要があり、
07852                     // キャレット位置の計算が複雑になる。（置換後に改行がある場合に不具合発生）
07853                     // そこで、INSTEXTする文字列長を調整する方法に変更する（実はこっちの方がわかりやすい）
07854                     int matchLen = cRegexp.GetMatchLen();
07855                     int nIdxTo = nIdx + matchLen;       // 検索文字列の末尾
07856                     if (matchLen == 0) {
07857                         // ０文字マッチの時(無限置換にならないように１文字進める)
07858                         if (nIdxTo < nLen) {
07859                             // 2005-09-02 D.S.Koba GetSizeOfChar
07860                             nIdxTo += (CMemory::GetSizeOfChar(pLine, nLen, nIdxTo) == 2 ? 2 : 1);
07861                         }
07862                         // 無限置換しないように、１文字増やしたので１文字選択に変更
07863                         // 選択始点・終点への挿入の場合も０文字マッチ時は動作は同じになるので
07864                         rLayoutMgr.CaretPos_Phys2Log( nIdxTo, pcLayout->m_nLinePhysical, &m_nSelectColmTo, &m_nSelectLineTo );  // 2007.01.19 ryoji 行位置も取得する
07865                     }
07866                     // 行末から検索文字列末尾までの文字数
07867                     colDiff =  nLen - nIdxTo;
07868                     colOld = nIdxTo;    // 2007.01.19 ryoji 追加
07869                     //  Oct. 22, 2005 Karoto
07870                     //  \rを置換するとその後ろの\nが消えてしまう問題の対応
07871                     if (colDiff < pcLayout->m_pCDocLine->m_cEol.GetLen()) {
07872                         // 改行にかかっていたら、行全体をINSTEXTする。
07873                         colDiff = 0;
07874                         rLayoutMgr.CaretPos_Phys2Log( nLen, pcLayout->m_nLinePhysical, &m_nSelectColmTo, &m_nSelectLineTo );    // 2007.01.19 ryoji 追加
07875                         colOld = pcLayout->m_pCDocLine->GetLengthWithoutEOL() + 1;  // 2007.01.19 ryoji 追加
07876                     }
07877                 }
07878                 // 置換後文字列への書き換え(行末から検索文字列末尾までの文字を除く)
07879                 Command_INSTEXT( FALSE, cRegexp.GetString(), cRegexp.GetStringLen() - colDiff, TRUE );
07880                 // To Here Jun. 6, 2005 かろと
07881             }
07882         }
07883         else
07884         {
07885             /* 本当は元コードを使うべきなんでしょうが、無駄な処理を避けるために直接たたく。
07886             ** →m_nSelectXXXが-1の時に ReplaceData_CEditViewを直接たたくと動作不良となるため直接たたくのやめた。2003.05.18 かろと
07887             */
07888             Command_INSTEXT( FALSE, szREPLACEKEY, nREPLACEKEY, TRUE );
07889             ++nReplaceNum;
07890         }
07891
07892         // 挿入後の位置調整
07893         if( nReplaceTarget == 1 )
07894         {
07895             m_nCaretPosX+=colTmp;
07896             m_nCaretPosY+=linTmp;
07897             if (!bBeginBoxSelect)
07898             {
07899                 rLayoutMgr.CaretPos_Log2Phys(
07900                                         m_nCaretPosX,
07901                                         m_nCaretPosY,
07902                                         &m_nCaretPosX_PHY,
07903                                         &m_nCaretPosY_PHY
07904                                         );
07905             }
07906         }
07907
07908         // 最後に置換した位置を記憶
07909         colLast = m_nCaretPosX;
07910         linLast = m_nCaretPosY;
07911
07912         /* 置換後の位置を確認 */
07913         if( bSelectedArea )
07914         {
07915             // 検索→置換の行補正値取得
07916             if( bBeginBoxSelect )
07917             {
07918                 colDif += colLast - colOld;
07919                 linDif += rLayoutMgr.GetLineCount() - lineCnt;
07920             }
07921             else
07922             {
07923                 // 置換前の検索文字列の最終位置は colOld, linOld
07924                 // 置換後のカーソル位置
07925                 colTmp = m_nCaretPosX_PHY;
07926                 linTmp = m_nCaretPosY_PHY;
07927                 int linDif_thistime = rDocLineMgr.GetLineCount() - lineCnt; // 今回置換での行数変化
07928                 linDif += linDif_thistime;
07929                 if( linToP + linDif == linTmp)
07930                 {
07931                     // 最終行で置換した時、又は、置換の結果、選択エリア最終行まで到達した時
07932                     // 最終行なので、置換前後の文字数の増減で桁位置を調整する
07933                     colDif += colTmp - colOld;
07934                     // 但し、以下の場合は置換前後で行が異なってしまうので、行の長さで補正する必要がある
07935                     // １）最終行直前で行連結が起こり、行が減っている場合（行連結なので、桁位置は置換後のカーソル桁位置分増加する）
07936                     // 　　colTmp-colOldだと、\r\n → "" 置換で行連結した場合に、桁位置が負になり失敗する（負とは前行の後ろの方になることなので補正する）
07937                     // 　　今回置換での行数の変化(linDif_thistime)で、最終行が行連結されたかどうかを見ることにする
07938                     // ２）改行を置換した（linTmp!=linOld）場合、改行を置換すると置換後の桁位置が次行の桁位置になっているため
07939                     //     colTmp-colOldだと、負の数となり、\r\n → \n や \n → "abc" などで桁位置がずれる
07940                     //     これも前行の長さで調整する必要がある
07941                     if (linDif_thistime < 0 || linTmp != linOld) {
07942                         colDif += linOldLen;
07943                     }
07944                 }
07945             }
07946         }
07947         // To Here 2001.12.03 hor
07948
07949         /* 次を検索 */
07950         // 2004.05.30 Moca 現在の検索文字列を使って検索する
07951         Command_SEARCH_NEXT( false, bDisplayUpdate, 0, 0 );
07952     }
07953
07954     if( 0 < nAllLineNum )
07955     {
07956         nNewPos = m_nSelectLineFrom >> nShiftCount;
07957         ::SendMessage( hwndProgress, PBM_SETPOS, nNewPos, 0 );
07958     }
07959     //>> 2002/03/26 Azumaiya
07960
07961     _itoa( nReplaceNum, szLabel, 10 );
07962     ::SendMessage( hwndStatic, WM_SETTEXT, 0, (LPARAM)szLabel );
07963
07964     if( !cDlgCancel.IsCanceled() ){
07965         nNewPos = nAllLineNum;
07966         ::SendMessage( hwndProgress, PBM_SETPOS, nNewPos, 0 );
07967     }
07968     cDlgCancel.CloseDialog( 0 );
07969     ::EnableWindow( m_hWnd, TRUE );
07970     ::EnableWindow( ::GetParent( m_hWnd ), TRUE );
07971     ::EnableWindow( ::GetParent( ::GetParent( m_hWnd ) ), TRUE );
07972
07973     // From Here 2001.12.03 hor
07974
07975     /* テキスト選択解除 */
07976     DisableSelectArea( TRUE );
07977
07978     /* カーソル・選択範囲復元 */
07979     if((!bSelectedArea) ||          // ファイル全体置換
07980        (cDlgCancel.IsCanceled())) {     // キャンセルされた
07981         // 最後に置換した文字列の右へ
07982         MoveCursor( colLast, linLast, TRUE );
07983     }else{
07984         if (bBeginBoxSelect) {
07985         // 矩形選択
07986             m_bBeginBoxSelect=bBeginBoxSelect;
07987             linTo+=linDif;
07988             if(linTo<0)linTo=0;
07989         }else{
07990         // 普通の選択
07991             colToP+=colDif;
07992             if(colToP<0)colToP=0;
07993             linToP+=linDif;
07994             if(linToP<0)linToP=0;
07995             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
07996                 colToP,
07997                 linToP,
07998                 &colTo,
07999                 &linTo
08000             );
08001         }
08002         if(linFrom<linTo || colFrom<colTo){
08003             m_nSelectLineFrom = linFrom;
08004             m_nSelectColmFrom = colFrom;
08005             m_nSelectLineTo   = linTo;
08006             m_nSelectColmTo   = colTo;
08007         }
08008         MoveCursor( colTo, linTo, TRUE );
08009     }
08010     // To Here 2001.12.03 hor
08011
08012     m_pcEditDoc->m_cDlgReplace.m_bCanceled = (cDlgCancel.IsCanceled() != FALSE);
08013     m_pcEditDoc->m_cDlgReplace.m_nReplaceCnt=nReplaceNum;
08014     m_bDrawSWITCH = TRUE;
08015     ActivateFrameWindow( ::GetParent( m_hwndParent ) );
08016 }
08017
08018
08019
08020 //  /* 単語リファレンス*/
08021 //  void CEditView::Command_WORDSREFERENCE( void )
08022 //  {
08023 //  int             nNewLine;       /* 挿入された部分の次の位置の行 */
08024 //  int             nNewPos;        /* 挿入された部分の次の位置のデータ位置 */
08025 //  COpe*           pcOpe = NULL;
08026 //  CWaitCursor     cWaitCursor;
08027 //  CDlgWords       cDlgWords;
08028 //
08029 //  /* 初期化 */
08030 //  cDlgWords.Create( m_hInstance, m_hWnd, (void*)m_pcEditDoc );
08031 //
08032 //  /* モーダルダイアログの表示 */
08033 //  if( FALSE == cDlgWords.DoModal() ){
08034 //      return;
08035 //  }
08036 //
08037 //
08038 //  /* テキストが選択されているか */
08039 //  if( IsTextSelected() ){
08040 //      DeleteData( TRUE );
08041 //  }
08042 //
08043 //  if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
08044 //      pcOpe = new COpe;
08045 //      pcOpe->m_nCaretPosX_Before = m_nCaretPosX;          /* 操作前のキャレット位置Ｘ */
08046 //      pcOpe->m_nCaretPosY_Before = m_nCaretPosY;          /* 操作前のキャレット位置Ｙ */
08047 //      pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
08048 //      pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
08049 //  }
08050 //
08051 //  /* 現在位置にデータを挿入 */
08052 //  InsertData_CEditView( m_nCaretPosX, m_nCaretPosY, cDlgWords.m_szWord, lstrlen( cDlgWords.m_szWord ), &nNewLine, &nNewPos, pcOpe, TRUE );
08053 //
08054 //  /* 挿入データの最後へカーソルを移動 */
08055 //  MoveCursor( nNewPos, nNewLine, TRUE );
08056 //  m_nCaretPosX_Prev = m_nCaretPosX;
08057 //
08058 //  if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
08059 //      pcOpe->m_nCaretPosX_After = m_nCaretPosX;           /* 操作後のキャレット位置Ｘ */
08060 //      pcOpe->m_nCaretPosY_After = m_nCaretPosY;           /* 操作後のキャレット位置Ｙ */
08061 //      pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
08062 //      pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
08063 //      /* 操作の追加 */
08064 //      m_pcOpeBlk->AppendOpe( pcOpe );
08065 //  }
08066 //
08067 //  m_pcEditDoc->SetModified(true,true);    //  Jan. 22, 2002 genta//
08068 //  return;
08069 //  }
08070
08071
08072
08073
08074 /* カーソル行をウィンドウ中央へ */
08075 void CEditView::Command_CURLINECENTER( void )
08076 {
08077     int     nViewTopLine;
08078     nViewTopLine = m_nCaretPosY - ( m_nViewRowNum / 2 );
08079
08080     // sui 02/08/09
08081     if( 0 > nViewTopLine )  nViewTopLine = 0;
08082
08083     int nScrollLines = nViewTopLine - m_nViewTopLine;   //Sep. 11, 2004 genta 同期用に行数を記憶
08084     m_nViewTopLine = nViewTopLine;
08085     /* フォーカス移動時の再描画 */
08086     RedrawAll();
08087     // sui 02/08/09
08088
08089     //  Sep. 11, 2004 genta 同期スクロールの関数化
08090     SyncScrollV( nScrollLines );
08091
08092     return;
08093 }
08094
08095
08096
08097
08098 /* Base64デコードして保存 */
08099 void CEditView::Command_BASE64DECODE( void )
08100 {
08101     CMemory     cmemBuf;
08102     char        szPath[_MAX_PATH];
08103     HFILE       hFile;
08104
08105     /* テキストが選択されているか */
08106     if( !IsTextSelected() ){
08107         ::MessageBeep( MB_ICONHAND );
08108         return;
08109     }
08110     /* 選択範囲のデータを取得 */
08111     /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
08112     if( FALSE == GetSelectedData( cmemBuf, FALSE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy ) ){
08113         ::MessageBeep( MB_ICONHAND );
08114         return;
08115     }
08116     /* Base64デコード */
08117     cmemBuf.BASE64Decode();
08118     strcpy( szPath, "" );
08119
08120     /* 保存ダイアログ モーダルダイアログの表示 */
08121     if( !m_pcEditDoc->SaveFileDialog( (char*)szPath,  NULL ) ){
08122         return;
08123     }
08124     if(HFILE_ERROR == (hFile = _lcreat( szPath, 0 ) ) ){
08125         ::MessageBeep( MB_ICONHAND );
08126 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08127             "ファイルの作成に失敗しました。\n\n%s", szPath
08128         );
08129         return;
08130     }
08131     if( HFILE_ERROR == _lwrite( hFile, cmemBuf.GetPtr(), cmemBuf.GetLength() ) ){
08132         ::MessageBeep( MB_ICONHAND );
08133 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08134             "ファイルの書き込みに失敗しました。\n\n%s", szPath
08135         );
08136     }
08137     _lclose( hFile );
08138     return;
08139 }
08140
08141
08142
08143
08144 /* uudecodeして保存 */
08145 void CEditView::Command_UUDECODE( void )
08146 {
08147     CMemory     cmemBuf;
08148     char        szPath[_MAX_PATH];
08149     HFILE       hFile;
08150     /* テキストが選択されているか */
08151     if( !IsTextSelected() ){
08152         ::MessageBeep( MB_ICONHAND );
08153         return;
08154     }
08155     /* 選択範囲のデータを取得 */
08156     /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
08157     if( FALSE == GetSelectedData( cmemBuf, FALSE, NULL, FALSE, m_pShareData->m_Common.m_bAddCRLFWhenCopy ) ){
08158         ::MessageBeep( MB_ICONHAND );
08159         return;
08160     }
08161     strcpy( szPath, "" );
08162
08163     /* uudecode(デコード) */    //Oct. 17, 2000 jepro 説明を「UUENCODE復号化(デコード) 」から変更
08164     cmemBuf.UUDECODE( szPath );
08165
08166     /* 保存ダイアログ モーダルダイアログの表示 */
08167     if( !m_pcEditDoc->SaveFileDialog( (char*)szPath,  NULL ) ){
08168         return;
08169     }
08170     if(HFILE_ERROR == (hFile = _lcreat( szPath, 0 ) ) ){
08171         ::MessageBeep( MB_ICONHAND );
08172 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08173             "ファイルの作成に失敗しました。\n\n%s", szPath
08174         );
08175         return;
08176     }
08177     if( HFILE_ERROR == _lwrite( hFile, cmemBuf.GetPtr(), cmemBuf.GetLength() ) ){
08178         ::MessageBeep( MB_ICONHAND );
08179 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08180             "ファイルの書き込みに失敗しました。\n\n%s", szPath
08181         );
08182     }
08183     _lclose( hFile );
08184     return;
08185 }
08186
08187
08188
08189
08190 /* 再描画 */
08191 void CEditView::Command_REDRAW( void )
08192 {
08193     /* フォーカス移動時の再描画 */
08194     RedrawAll();
08195     return;
08196 }
08197
08198
08199
08200
08201 /* Oracle SQL*Plusで実行 */
08202 void CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS( void )
08203 {
08204 //  HGLOBAL     hgClip;
08205 //  char*       pszClip;
08206     HWND        hwndSQLPLUS;
08207     int         nRet;
08208     BOOL        nBool;
08209     char        szPath[MAX_PATH + 2];
08210     BOOL        bResult;
08211 // Modified by KEITA for WIN64 2003.9.6
08212 //  DWORD       dwResult;
08213     ULONG_PTR   dwResult;
08214
08215     hwndSQLPLUS = ::FindWindow( "SqlplusWClass", "Oracle SQL*Plus" );
08216     if( NULL == hwndSQLPLUS ){
08217 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08218             "Oracle SQL*Plusで実行します。\n\n\nOracle SQL*Plusが起動されていません。\n"
08219         );
08220         return;
08221     }
08222     /* テキストが変更されている場合 */
08223     if( m_pcEditDoc->IsModified() ){
08224         nRet = ::MYMESSAGEBOX(
08225             m_hWnd,
08226             MB_YESNOCANCEL | MB_ICONEXCLAMATION,
08227             GSTR_APPNAME,
08228             "%s\nは変更されています。 Oracle SQL*Plusで実行する前に保存しますか？",
08229             m_pcEditDoc->IsFilePathAvailable() ? m_pcEditDoc->GetFilePath() : "(無題)"
08230         );
08231         switch( nRet ){
08232         case IDYES:
08233             if( m_pcEditDoc->IsFilePathAvailable() ){
08234                 //nBool = HandleCommand( F_FILESAVE, TRUE, 0, 0, 0, 0 );
08235                 nBool = Command_FILESAVE();
08236             }else{
08237                 //nBool = HandleCommand( F_FILESAVEAS_DIALOG, TRUE, 0, 0, 0, 0 );
08238                 nBool = Command_FILESAVEAS_DIALOG();
08239             }
08240             if( FALSE == nBool ){
08241                 return;
08242             }
08243             break;
08244         case IDNO:
08245             return;
08246         case IDCANCEL:
08247         default:
08248             return;
08249         }
08250     }
08251     if( m_pcEditDoc->IsFilePathAvailable() ){
08252         /* ファイルパスに空白が含まれている場合はダブルクォーテーションで囲む */
08253         //  2003.10.20 MIK コード簡略化
08254         if( _tcschr( m_pcEditDoc->GetFilePath(), SPACE ) ? TRUE : FALSE ){
08255             wsprintf( szPath, "@\"%s\"\r\n", m_pcEditDoc->GetFilePath() );
08256         }else{
08257             wsprintf( szPath, "@%s\r\n", m_pcEditDoc->GetFilePath() );
08258         }
08259         /* クリップボードにデータを設定 */
08260         MySetClipboardData( szPath, lstrlen( szPath ), FALSE );
08261
08262         /* Oracle SQL*Plusをアクティブにする */
08263         /* アクティブにする */
08264         ActivateFrameWindow( hwndSQLPLUS );
08265
08266         /* Oracle SQL*Plusにペーストのコマンドを送る */
08267         bResult = ::SendMessageTimeout(
08268             hwndSQLPLUS, WM_COMMAND, MAKELONG( 201, 0 ), 0,
08269             SMTO_ABORTIFHUNG | SMTO_NORMAL,
08270             3000,
08271             &dwResult
08272         );
08273         if( !bResult ){
08274 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_TOPMOST | MB_ICONSTOP, GSTR_APPNAME,
08275                 "Oracle SQL*Plusからの反応がありません。\nしばらく待ってから再び実行してください。"
08276             );
08277         }
08278     }else{
08279         ::MessageBeep( MB_ICONHAND );
08280 		::MYMESSAGEBOX( m_hWnd,
08281              MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08282             "SQLをファイルに保存しないとOracle SQL*Plusで実行できません。\n"
08283         );
08284         return;
08285     }
08286     return;
08287 }
08288
08289
08290
08291
08292 /* Oracle SQL*Plusをアクティブ表示 */
08293 void CEditView::Command_ACTIVATE_SQLPLUS( void )
08294 {
08295     HWND        hwndSQLPLUS;
08296     hwndSQLPLUS = ::FindWindow( "SqlplusWClass", "Oracle SQL*Plus" );
08297     if( NULL == hwndSQLPLUS ){
08298 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08299             "Oracle SQL*Plusをアクティブ表示します。\n\n\nOracle SQL*Plusが起動されていません。\n"
08300         );
08301         return;
08302     }
08303     /* Oracle SQL*Plusをアクティブにする */
08304     /* アクティブにする */
08305     ActivateFrameWindow( hwndSQLPLUS );
08306     return;
08307 }
08308
08309
08310
08311
08312 /* 読み取り専用 */
08313 void CEditView::Command_READONLY( void )
08314 {
08315     m_pcEditDoc->m_bReadOnly ^= 1;
08316
08317     /* 親ウィンドウのタイトルを更新 */
08318     m_pcEditDoc->SetParentCaption();
08319 }
08320
08321 /* ファイルのプロパティ */
08322 void CEditView::Command_PROPERTY_FILE( void )
08323 {
08324 #ifdef _DEBUG
08325     {
08326         /* 全行データを返すテスト */
08327         char*   pDataAll;
08328         int     nDataAllLen;
08329         CRunningTimer cRunningTimer( "CEditView::Command_PROPERTY_FILE 全行データを返すテスト" );
08330         cRunningTimer.Reset();
08331         pDataAll = m_pcEditDoc->m_cDocLineMgr.GetAllData( &nDataAllLen );
08332 //      MYTRACE( "全データ取得             (%dバイト) 所要時間(ミリ秒) = %d\n", nDataAllLen, cRunningTimer.Read() );
08333         free( pDataAll );
08334         pDataAll = NULL;
08335 //      MYTRACE( "全データ取得のメモリ開放 (%dバイト) 所要時間(ミリ秒) = %d\n", nDataAllLen, cRunningTimer.Read() );
08336     }
08337 #endif
08338
08339
08340     CDlgProperty    cDlgProperty;
08341 //  cDlgProperty.Create( m_hInstance, m_hWnd, (void *)m_pcEditDoc );
08342     cDlgProperty.DoModal( m_hInstance, m_hWnd, (LPARAM)m_pcEditDoc );
08343     return;
08344 }
08345
08346
08347
08348
08349 /* 編集の全終了 */  // 2007.02.13 ryoji 追加
08350 void CEditView::Command_EXITALLEDITORS( void )
08351 {
08352     CEditApp::CloseAllEditor( TRUE, ::GetParent(m_hwndParent), TRUE, 0 );
08353     return;
08354 }
08355
08356 /* サクラエディタの全終了 */    //Dec. 27, 2000 JEPRO 追加
08357 void CEditView::Command_EXITALL( void )
08358 {
08359     CEditApp::TerminateApplication( ::GetParent(m_hwndParent) );    // 2006.12.25 ryoji 引数追加
08360     return;
08361 }
08362
08363
08364
08365
08366 /* グループを閉じる */  // 2007.06.20 ryoji 追加
08367 void CEditView::Command_GROUPCLOSE( void )
08368 {
08369     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin ){
08370         int nGroup = CShareData::getInstance()->GetGroupId( ::GetParent(m_hwndParent) );
08371         CEditApp::CloseAllEditor( TRUE, ::GetParent(m_hwndParent), TRUE, nGroup );
08372     }
08373     return;
08374 }
08375
08376 /* すべてのウィンドウを閉じる */    //Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更
08377 void CEditView::Command_FILECLOSEALL( void )
08378 {
08379     int nGroup = CShareData::getInstance()->GetGroupId( ::GetParent(m_hwndParent) );
08380     CEditApp::CloseAllEditor( TRUE, ::GetParent(m_hwndParent), FALSE, nGroup ); // 2006.12.25, 2007.02.13 ryoji 引数追加
08381     return;
08382 }
08383
08384
08385
08386
08387 /* ウィンドウを閉じる */
08388 void CEditView::Command_WINCLOSE( void )
08389 {
08390     /* 閉じる */
08391     ::PostMessage( ::GetParent( m_hwndParent ), MYWM_CLOSE, FALSE, 0 ); // 2007.02.13 ryoji WM_CLOSE→MYWM_CLOSEに変更
08392     return;
08393 }
08394
08395 //アウトプットウィンドウ表示
08396 void CEditView::Command_WIN_OUTPUT( void )
08397 {
08398     if( NULL == m_pShareData->m_hwndDebug
08399         || !CShareData::IsEditWnd( m_pShareData->m_hwndDebug )
08400     ){
08401         CEditApp::OpenNewEditor( NULL, m_hWnd, "-DEBUGMODE", CODE_SJIS, FALSE, true );
08402 #if 0
08403         //  Jun. 25, 2001 genta OpenNewEditorのsync機能を利用するように変更
08404         //アウトプットウインドウが出来るまで5秒ぐらい待つ。
08405         CRunningTimer wait_timer( NULL );
08406         while( NULL == m_pShareData->m_hwndDebug && 5000 > wait_timer.Read() ){
08407             Sleep(1);
08408         }
08409         Sleep(10);
08410 #endif
08411     }else{
08412         /* 開いているウィンドウをアクティブにする */
08413         /* アクティブにする */
08414         ActivateFrameWindow( m_pShareData->m_hwndDebug );
08415     }
08416     return;
08417 }
08418
08419
08420
08421
08422 /* カスタムメニュー表示 */
08423 int CEditView::Command_CUSTMENU( int nMenuIdx )
08424 {
08425     HMENU       hMenu;
08426     int         nId;
08427     POINT       po;
08428     int         i;
08429     char        szLabel[300];
08430     char        szLabel2[300];
08431     UINT        uFlags;
08432 //  BOOL        bBool;
08433
08434     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08435     pCEditWnd->m_CMenuDrawer.ResetContents();
08436
08437     //  Oct. 3, 2001 genta
08438     CFuncLookup& FuncLookup = m_pcEditDoc->m_cFuncLookup;
08439
08440     if( nMenuIdx < 0 || MAX_CUSTOM_MENU <= nMenuIdx ){
08441         return 0;
08442     }
08443     if( 0 == m_pShareData->m_Common.m_nCustMenuItemNumArr[nMenuIdx] ){
08444         return 0;
08445     }
08446     hMenu = ::CreatePopupMenu();
08447     for( i = 0; i < m_pShareData->m_Common.m_nCustMenuItemNumArr[nMenuIdx]; ++i ){
08448         if( 0 == m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i] ){
08449             ::AppendMenu( hMenu, MF_SEPARATOR, 0, NULL );
08450         }else{
08451             //  Oct. 3, 2001 genta
08452             FuncLookup.Funccode2Name( m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel, 256 );
08453 //          ::LoadString( m_hInstance, m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel, 256 );
08454             /* キー */
08455             if( '\0' == m_pShareData->m_Common.m_nCustMenuItemKeyArr[nMenuIdx][i] ){
08456                 strcpy( szLabel2, szLabel );
08457             }else{
08458                 wsprintf( szLabel2, "%s (&%c)", szLabel, m_pShareData->m_Common.m_nCustMenuItemKeyArr[nMenuIdx][i] );
08459             }
08460             /* 機能が利用可能か調べる */
08461             if( TRUE == CEditWnd::IsFuncEnable( m_pcEditDoc, m_pShareData, m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i] ) ){
08462                 uFlags = MF_STRING | MF_ENABLED;
08463             }else{
08464                 uFlags = MF_STRING | MF_DISABLED | MF_GRAYED;
08465             }
08466 //          bBool = ::AppendMenu( hMenu, uFlags, m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i], szLabel2 );
08467             pCEditWnd->m_CMenuDrawer.MyAppendMenu(
08468                 hMenu, /*MF_BYPOSITION | MF_STRING*/uFlags,
08469                 m_pShareData->m_Common.m_nCustMenuItemFuncArr[nMenuIdx][i] , szLabel2 );
08470         }
08471     }
08472     po.x = 0;
08473     po.y = 0;
08474     //2002/04/08 YAZAKI カスタムメニューもマウスカーソルの位置に表示するように変更。
08475     ::GetCursorPos( &po );
08476     po.y -= 4;
08477     nId = ::TrackPopupMenu(
08478         hMenu,
08479         TPM_TOPALIGN
08480         | TPM_LEFTALIGN
08481         | TPM_RETURNCMD
08482         | TPM_LEFTBUTTON
08483         ,
08484         po.x,
08485         po.y,
08486         0,
08487         ::GetParent( m_hwndParent )/*m_hWnd*/,
08488         NULL
08489     );
08490     ::DestroyMenu( hMenu );
08491     return nId;
08492 }
08493
08494
08495
08496
08497 //選択範囲内全行コピー
08498 void CEditView::Command_COPYLINES( void )
08499 {
08500     /* 選択範囲内の全行をクリップボードにコピーする */
08501     CopySelectedAllLines(
08502         NULL,   /* 引用符 */
08503         FALSE   /* 行番号を付与する */
08504     );
08505     return;
08506 }
08507
08508
08509
08510
08511 //選択範囲内全行引用符付きコピー
08512 void CEditView::Command_COPYLINESASPASSAGE( void )
08513 {
08514     /* 選択範囲内の全行をクリップボードにコピーする */
08515     CopySelectedAllLines(
08516         m_pShareData->m_Common.m_szInyouKigou,  /* 引用符 */
08517         FALSE                                   /* 行番号を付与する */
08518     );
08519     return;
08520 }
08521
08522
08523
08524
08525 //選択範囲内全行行番号付きコピー
08526 void CEditView::Command_COPYLINESWITHLINENUMBER( void )
08527 {
08528     /* 選択範囲内の全行をクリップボードにコピーする */
08529     CopySelectedAllLines(
08530         NULL,   /* 引用符 */
08531         TRUE    /* 行番号を付与する */
08532     );
08533     return;
08534 }
08535
08536
08537
08538
08540     //Dec. 26, 2000 JEPRO //Jan. 24, 2001 JEPRO debug version (directed by genta)
08541 void CEditView::Command_CREATEKEYBINDLIST( void )
08542 {
08543     CMemory     cMemKeyList;
08544
08545     CKeyBind::CreateKeyBindList(
08546     m_hInstance,
08547     m_pShareData->m_nKeyNameArrNum,
08548     m_pShareData->m_pKeyNameArr,
08549     cMemKeyList,
08550     &m_pcEditDoc->m_cFuncLookup,    //  Oct. 31, 2001 genta 追加
08551     FALSE   // 2007.02.22 ryoji 追加
08552      );
08553
08554     // Windowsクリップボードにコピー
08555     //2004.02.17 Moca 関数化
08556     SetClipboardText( m_pcEditDoc->m_hWnd, cMemKeyList.GetPtr(), cMemKeyList.GetLength() );
08557     return;
08558 }
08559
08560 /* ファイル内容比較 */
08561 void CEditView::Command_COMPARE( void )
08562 {
08563     HWND        hwndCompareWnd;
08564     char        szPath[_MAX_PATH + 1];
08565     POINT       poSrc;
08566     POINT       poDes;
08567     CDlgCompare cDlgCompare;
08568     BOOL        bDefferent;
08569     const char* pLineSrc;
08570     int         nLineLenSrc;
08571     const char* pLineDes;
08572     int         nLineLenDes;
08573     POINT*      ppoCaretDes;
08574     HWND        hwndMsgBox; //@@@ 2003.06.12 MIK
08575 //  cDlgCompare.Create( m_hInstance, m_hWnd, (void *)m_pcEditDoc );
08576     /* 比較後、左右に並べて表示 */
08577     cDlgCompare.m_bCompareAndTileHorz = m_pShareData->m_Common.m_bCompareAndTileHorz;
08578 //  cDlgCompare.m_bCompareAndTileHorz = m_pShareData->m_Common.m_bCompareAndTileHorz;   //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
08579 //  if( FALSE == cDlgCompare.DoModal( m_pcEditDoc->GetFilePath(), m_pcEditDoc->IsModified(), szPath, &hwndCompareWnd ) ){
08580     if( FALSE == cDlgCompare.DoModal( m_hInstance, m_hWnd, (LPARAM)m_pcEditDoc, m_pcEditDoc->GetFilePath(),
08581         m_pcEditDoc->IsModified(), szPath, &hwndCompareWnd ) ){
08582         return;
08583     }
08584     /* 比較後、左右に並べて表示 */
08585     m_pShareData->m_Common.m_bCompareAndTileHorz = cDlgCompare.m_bCompareAndTileHorz;
08586 //  m_pShareData->m_Common.m_bCompareAndTileHorz = cDlgCompare.m_bCompareAndTileHorz;   //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
08587
08588     //タブウインドウ時は禁止    //@@@ 2003.06.12 MIK
08589     if( TRUE  == m_pShareData->m_Common.m_bDispTabWnd
08590      && FALSE == m_pShareData->m_Common.m_bDispTabWndMultiWin )
08591     {
08592         hwndMsgBox = m_hWnd;
08593         m_pShareData->m_Common.m_bCompareAndTileHorz = FALSE;
08594     }
08595     else
08596     {
08597         hwndMsgBox = hwndCompareWnd;
08598     }
08599
08600
08601     /*
08602       カーソル位置変換
08603       レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
08604       →
08605       物理位置(行頭からのバイト数、折り返し無し行位置)
08606     */
08607     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
08608         m_nCaretPosX,
08609         m_nCaretPosY,
08610         (int*)&poSrc.x,
08611         (int*)&poSrc.y
08612     );
08613     /* カーソル位置取得要求 */
08614     ::SendMessage( hwndCompareWnd, MYWM_GETCARETPOS, 0, 0 );
08615     ppoCaretDes = (POINT*)m_pShareData->m_szWork;
08616     poDes.x = ppoCaretDes->x;
08617     poDes.y = ppoCaretDes->y;
08618     bDefferent = TRUE;
08619     pLineDes = m_pShareData->m_szWork;
08620     pLineSrc = m_pcEditDoc->m_cDocLineMgr.GetLineStr( poSrc.y, &nLineLenSrc );
08621     /* 行(改行単位)データの要求 */
08622     nLineLenDes = ::SendMessage( hwndCompareWnd, MYWM_GETLINEDATA, poDes.y, 0 );
08623     while( 1 ){
08624         if( pLineSrc == NULL && 0 == nLineLenDes ){
08625             bDefferent = FALSE;
08626             break;
08627         }
08628         if( pLineSrc == NULL || 0 == nLineLenDes ){
08629             break;
08630         }
08631         if( nLineLenDes > sizeof( m_pShareData->m_szWork ) ){
08632 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
08633                 "比較先のファイル\n%s\n%dバイトを超える行があります。\n比較できません。", szPath, sizeof( m_pShareData->m_szWork )
08634             );
08635             return;
08636         }
08637         for( ; poSrc.x < nLineLenSrc; ){
08638             if( poDes.x >= nLineLenDes ){
08639                 goto end_of_compare;
08640             }
08641             if( pLineSrc[poSrc.x] != pLineDes[poDes.x] ){
08642                 goto end_of_compare;
08643             }
08644             poSrc.x++;
08645             poDes.x++;
08646         }
08647         if( poDes.x < nLineLenDes ){
08648             goto end_of_compare;
08649         }
08650         poSrc.x = 0;
08651         poSrc.y++;
08652         poDes.x = 0;
08653         poDes.y++;
08654         pLineSrc = m_pcEditDoc->m_cDocLineMgr.GetLineStr( poSrc.y, &nLineLenSrc );
08655         /* 行(改行単位)データの要求 */
08656         nLineLenDes = ::SendMessage( hwndCompareWnd, MYWM_GETLINEDATA, poDes.y, 0 );
08657     }
08658 end_of_compare:;
08659     /* 比較後、左右に並べて表示 */
08660 //From Here Oct. 10, 2000 JEPRO チェックボックスをボタン化すれば以下の行(To Here まで)は不要のはずだが
08661 //  うまくいかなかったので元に戻してある…
08662     if( m_pShareData->m_Common.m_bCompareAndTileHorz ){
08663         HWND* phwndArr = new HWND[2];
08664         phwndArr[0] = ::GetParent( m_hwndParent );
08665         phwndArr[1] = hwndCompareWnd;
08666
08667         int i;  // Jan. 28, 2002 genta ループ変数 intの宣言を前に出した．
08668                 // 互換性対策．forの()内で宣言すると古い規格と新しい規格で矛盾するので．
08669         for( i = 0; i < 2; ++i ){
08670             if( ::IsZoomed( phwndArr[i] ) ){
08671                 ::ShowWindow( phwndArr[i], SW_RESTORE );
08672             }
08673         }
08674         //  デスクトップサイズを得る 2002.1.24 YAZAKI
08675         RECT    rcDesktop;
08676         //  May 01, 2004 genta マルチモニタ対応
08677 		::GetMonitorWorkRect( phwndArr[0], &rcDesktop );
08678         int width = (rcDesktop.right - rcDesktop.left ) / 2;
08679         for( i = 1; i >= 0; i-- ){
08680             ::SetWindowPos(
08681                 phwndArr[i], 0,
08682                 width * i + rcDesktop.left, rcDesktop.top, // Oct. 18, 2003 genta タスクバーが左にある場合を考慮
08683                 width, rcDesktop.bottom - rcDesktop.top,
08684                 SWP_NOOWNERZORDER | SWP_NOZORDER
08685             );
08686         }
08687 //      ::TileWindows( NULL, MDITILE_VERTICAL, NULL, 2, phwndArr );
08688         delete [] phwndArr;
08689     }
08690 //To Here Oct. 10, 2000
08691
08692     //  2002/05/11 YAZAKI 親ウィンドウをうまく設定してみる。
08693     if( FALSE == bDefferent ){
08694         //::MYMESSAGEBOX( hwndCompareWnd, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
08695         ::MYMESSAGEBOX( hwndMsgBox, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
08696             "異なる箇所は見つかりませんでした。"
08697         );
08698     }else{
08699         //::MYMESSAGEBOX( hwndCompareWnd, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
08700 		::MYMESSAGEBOX( hwndMsgBox, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
08701             "異なる箇所が見つかりました。"
08702         );
08703         /* カーソルを移動させる
08704             比較相手は、別プロセスなのでメッセージを飛ばす。
08705         */
08706         memcpy( m_pShareData->m_szWork, (void*)&poDes, sizeof( poDes ) );
08707         ::SendMessage( hwndCompareWnd, MYWM_SETCARETPOS, 0, 0 );
08708
08709         /* カーソルを移動させる */
08710         memcpy( m_pShareData->m_szWork, (void*)&poSrc, sizeof( poSrc ) );
08711         ::PostMessage( ::GetParent( m_hwndParent ), MYWM_SETCARETPOS, 0, 0 );
08712     }
08713     /* 開いているウィンドウをアクティブにする */
08714     /* アクティブにする */
08715 //  ActivateFrameWindow( hwndCompareWnd );
08716
08717     /* 開いているウィンドウをアクティブにする */
08718     /* アクティブにする */
08719     ActivateFrameWindow( ::GetParent( m_hwndParent ) );
08720     return;
08721 }
08722
08723
08724
08725
08730 void CEditView::Command_SHOWTOOLBAR( void )
08731 {
08732     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08733
08734     m_pShareData->m_Common.m_bDispTOOLBAR = ((NULL == pCEditWnd->m_hwndToolBar)? TRUE: FALSE);  /* ツールバー表示 */
08735     pCEditWnd->LayoutToolBar();
08736     pCEditWnd->EndLayoutBars();
08737
08738     //全ウインドウに変更を通知する。
08739     CShareData::getInstance()->PostMessageToAllEditors( MYWM_BAR_CHANGE_NOTIFY, (WPARAM)MYBCN_TOOLBAR, (LPARAM)pCEditWnd->m_hWnd, pCEditWnd->m_hWnd );
08740 }
08741
08742
08743
08744
08749 void CEditView::Command_SHOWSTATUSBAR( void )
08750 {
08751     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08752
08753     m_pShareData->m_Common.m_bDispSTATUSBAR = ((NULL == pCEditWnd->m_hwndStatusBar)? TRUE: FALSE);  /* ステータスバー表示 */
08754     pCEditWnd->LayoutStatusBar();
08755     pCEditWnd->EndLayoutBars();
08756
08757     //全ウインドウに変更を通知する。
08758     CShareData::getInstance()->PostMessageToAllEditors( MYWM_BAR_CHANGE_NOTIFY, (WPARAM)MYBCN_STATUSBAR, (LPARAM)pCEditWnd->m_hWnd, pCEditWnd->m_hWnd );
08759 }
08760
08761
08762
08763
08768 void CEditView::Command_SHOWFUNCKEY( void )
08769 {
08770     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08771
08772     m_pShareData->m_Common.m_bDispFUNCKEYWND = ((NULL == pCEditWnd->m_CFuncKeyWnd.m_hWnd)? TRUE: FALSE);    /* ファンクションキー表示 */
08773     pCEditWnd->LayoutFuncKey();
08774     pCEditWnd->EndLayoutBars();
08775
08776     //全ウインドウに変更を通知する。
08777     CShareData::getInstance()->PostMessageToAllEditors( MYWM_BAR_CHANGE_NOTIFY, (WPARAM)MYBCN_FUNCKEY, (LPARAM)pCEditWnd->m_hWnd, pCEditWnd->m_hWnd );
08778 }
08779
08780 //@@@ From Here 2003.06.10 MIK
08788 void CEditView::Command_SHOWTAB( void )
08789 {
08790     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08791
08792     m_pShareData->m_Common.m_bDispTabWnd = ((NULL == pCEditWnd->m_cTabWnd.m_hWnd)? TRUE: FALSE);    /* タブバー表示 */
08793     pCEditWnd->LayoutTabBar();
08794     pCEditWnd->EndLayoutBars();
08795
08796     // まとめるときは WS_EX_TOPMOST 状態を同期する  // 2007.05.18 ryoji
08797     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
08798     {
08799         m_pcEditDoc->m_pcEditWnd->WindowTopMost(
08800             ( (DWORD)::GetWindowLongPtr( m_pcEditDoc->m_pcEditWnd->m_hWnd, GWL_EXSTYLE ) & WS_EX_TOPMOST )? 1: 2
08801         );
08802     }
08803
08804     //全ウインドウに変更を通知する。
08805     CShareData::getInstance()->ResetGroupId();
08806     CShareData::getInstance()->PostMessageToAllEditors( MYWM_BAR_CHANGE_NOTIFY, (WPARAM)MYBCN_TAB, (LPARAM)pCEditWnd->m_hWnd, pCEditWnd->m_hWnd );
08807 }
08808 //@@@ To Here 2003.06.10 MIK
08809
08810
08811
08812 /* 印刷 */
08813 void CEditView::Command_PRINT( void )
08814 {
08815     // 使っていない処理を削除 2003.05.04 かろと
08816     Command_PRINT_PREVIEW();
08817     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08818
08819     /* 印刷実行 */
08820     pCEditWnd->m_pPrintPreview->OnPrint();
08821 }
08822
08823
08824
08825
08826 /* 印刷プレビュー */
08827 void CEditView::Command_PRINT_PREVIEW( void )
08828 {
08829     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08830
08831     /* 印刷プレビューモードのオン/オフ */
08832     pCEditWnd->PrintPreviewModeONOFF();
08833     return;
08834 }
08835
08836
08837
08838
08839 /* 印刷のページレイアウトの設定 */
08840 void CEditView::Command_PRINT_PAGESETUP( void )
08841 {
08842     BOOL        bRes;
08843     CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;   //  Sep. 10, 2002 genta
08844
08845     /* 印刷ページ設定 */
08846     bRes = pCEditWnd->OnPrintPageSetting();
08847     return;
08848 }
08849
08850
08851
08852
08853 /* ブラウズ */
08854 void CEditView::Command_BROWSE( void )
08855 {
08856     if( !m_pcEditDoc->IsFilePathAvailable() ){
08857         ::MessageBeep( MB_ICONHAND );
08858         return;
08859     }
08860 //  char    szURL[MAX_PATH + 64];
08861 //  wsprintf( szURL, "%s", m_pcEditDoc->GetFilePath() );
08862     /* URLを開く */
08863 //  ::ShellExecuteEx( NULL, "open", szURL, NULL, NULL, SW_SHOW );
08864
08865     SHELLEXECUTEINFO info;
08866     info.cbSize =sizeof(SHELLEXECUTEINFO);
08867     info.fMask = 0;
08868     info.hwnd = NULL;
08869     info.lpVerb = NULL;
08870     info.lpFile = m_pcEditDoc->GetFilePath();
08871     info.lpParameters = NULL;
08872     info.lpDirectory = NULL;
08873     info.nShow = SW_SHOWNORMAL;
08874     info.hInstApp = 0;
08875     info.lpIDList = NULL;
08876     info.lpClass = NULL;
08877     info.hkeyClass = 0;
08878     info.dwHotKey = 0;
08879     info.hIcon =0;
08880
08881     ::ShellExecuteEx(&info);
08882
08883     return;
08884 }
08885
08886
08887
08888
08889 /* キーマクロの記録開始／終了 */
08890 void CEditView::Command_RECKEYMACRO( void )
08891 {
08892     if( m_pShareData->m_bRecordingKeyMacro ){                                   /* キーボードマクロの記録中 */
08893         m_pShareData->m_bRecordingKeyMacro = FALSE;
08894         m_pShareData->m_hwndRecordingKeyMacro = NULL;                           /* キーボードマクロを記録中のウィンドウ */
08895         //@@@ 2002.1.24 YAZAKI キーマクロをマクロ用フォルダに「RecKey.mac」という名で保存
08896         char szInitDir[MAX_PATH];
08897         int nRet;
08898         // 2003.06.23 Moca 記録用キーマクロのフルパスをCShareData経由で取得
08899         nRet = CShareData::getInstance()->GetMacroFilename( -1, szInitDir, MAX_PATH );
08900         if( nRet <= 0 ){
08901 			::MYMESSAGEBOX(  m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08902                 "マクロファイルを作成できませんでした。\nファイル名の取得エラー nRet=%d", nRet
08903             );
08904             return;
08905         }else{
08906             strcpy( m_pShareData->m_szKeyMacroFileName, szInitDir );
08907         }
08908         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
08909 //      if ( FALSE == m_pcEditDoc->m_CKeyMacroMgr.SaveKeyMacro( m_hInstance, m_pShareData->m_szKeyMacroFileName ) ){
08910         if ( FALSE == m_pcEditDoc->m_pcSMacroMgr->Save( STAND_KEYMACRO, m_hInstance, m_pShareData->m_szKeyMacroFileName ) ){
08911             ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08912                 "マクロファイルを作成できませんでした。\n\n%s", m_pShareData->m_szKeyMacroFileName
08913             );
08914         }
08915     }else{
08916         m_pShareData->m_bRecordingKeyMacro = TRUE;
08917         m_pShareData->m_hwndRecordingKeyMacro = ::GetParent( m_hwndParent );;   /* キーボードマクロを記録中のウィンドウ */
08918         /* キーマクロのバッファをクリアする */
08919         //@@@ 2002.1.24 m_CKeyMacroMgrをCEditDocへ移動
08920         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
08921         m_pcEditDoc->m_pcSMacroMgr->Clear(STAND_KEYMACRO);
08922 //      m_pcEditDoc->m_CKeyMacroMgr.ClearAll();
08923 //      m_pShareData->m_CKeyMacroMgr.Clear();
08924     }
08925     /* 親ウィンドウのタイトルを更新 */
08926     SetParentCaption();
08927
08928     /* キャレットの行桁位置を表示する */
08929     DrawCaretPosInfo();
08930
08931     return;
08932 }
08933
08934
08935
08936
08937 /* キーマクロの保存 */
08938 void CEditView::Command_SAVEKEYMACRO( void )
08939 {
08940     m_pShareData->m_bRecordingKeyMacro = FALSE;
08941     m_pShareData->m_hwndRecordingKeyMacro = NULL;   /* キーボードマクロを記録中のウィンドウ */
08942
08943     //  Jun. 16, 2002 genta
08944     if( !m_pcEditDoc->m_pcSMacroMgr->IsSaveOk() ){
08945         //  保存不可
08946         ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08947             "保存可能なマクロがありません．キーボードマクロ以外は保存できません．" );
08948     }
08949
08950     CDlgOpenFile    cDlgOpenFile;
08951     char            szPath[_MAX_PATH + 1];
08952     char            szInitDir[_MAX_PATH + 1];
08953     strcpy( szPath, "" );
08954     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
08955     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
08956     if( _IS_REL_PATH( m_pShareData->m_szMACROFOLDER ) ){
08957         GetInidirOrExedir( szInitDir, m_pShareData->m_szMACROFOLDER );
08958     }else{
08959         strcpy( szInitDir, m_pShareData->m_szMACROFOLDER ); /* マクロ用フォルダ */
08960     }
08961     /* ファイルオープンダイアログの初期化 */
08962     cDlgOpenFile.Create(
08963         m_hInstance,
08964         m_hWnd,
08965         "*.mac",
08966         szInitDir
08967     );
08968     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
08969         return;
08970     }
08971     /* ファイルのフルパスを、フォルダとファイル名に分割 */
08972     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
08973 //  ::SplitPath_FolderAndFile( szPath, m_pShareData->m_szMACROFOLDER, NULL );
08974 //  strcat( m_pShareData->m_szMACROFOLDER, "\\" );
08975
08976     /* キーボードマクロの保存 */
08977     //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
08978     //@@@ 2002.1.24 YAZAKI
08979 //  if ( FALSE == m_pcEditDoc->m_CKeyMacroMgr.SaveKeyMacro( m_hInstance, szPath ) ){
08980     if ( FALSE == m_pcEditDoc->m_pcSMacroMgr->Save( STAND_KEYMACRO, m_hInstance, szPath ) ){
08981         ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
08982             "マクロファイルを作成できませんでした。\n\n%s", szPath
08983         );
08984     }
08985 //  m_pShareData->m_CKeyMacroMgr.SaveKeyMacro( m_hInstance, m_hWnd, szPath );
08986     return;
08987 }
08988
08989
08990
08991
08992 /* キーマクロの実行 */
08993 void CEditView::Command_EXECKEYMACRO( void )
08994 {
08995     //@@@ 2002.1.24 YAZAKI 記録中は終了してから実行
08996     if (m_pShareData->m_bRecordingKeyMacro){
08997         Command_RECKEYMACRO();
08998     }
08999     m_pShareData->m_bRecordingKeyMacro = FALSE;
09000     m_pShareData->m_hwndRecordingKeyMacro = NULL;   /* キーボードマクロを記録中のウィンドウ */
09001
09002     /* キーボードマクロの実行中 */
09003     m_bExecutingKeyMacro = TRUE;
09004
09005     /* キーボードマクロの実行 */
09006     //@@@ 2002.1.24 YAZAKI
09007     if ( m_pShareData->m_szKeyMacroFileName[0] ){
09008         //  ファイルが保存されていたら
09009         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
09010 //      if ( FALSE == m_pcEditDoc->m_CKeyMacroMgr.LoadKeyMacro( m_hInstance, m_pShareData->m_szKeyMacroFileName ) ){
09011         if ( FALSE == m_pcEditDoc->m_pcSMacroMgr->Load( STAND_KEYMACRO, m_hInstance, m_pShareData->m_szKeyMacroFileName ) ){
09012             ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
09013                 "ファイルを開けませんでした。\n\n%s", m_pShareData->m_szKeyMacroFileName
09014             );
09015         }
09016         else {
09017 //          m_pcEditDoc->m_CKeyMacroMgr.ExecKeyMacro( this );
09018             m_pcEditDoc->m_pcSMacroMgr->Exec( STAND_KEYMACRO, m_hInstance, this );
09019         }
09020     }
09021 //  m_pShareData->m_CKeyMacroMgr.ExecKeyMacro( (void*)this );
09022
09023     /* キーボードマクロの実行中 */
09024     m_bExecutingKeyMacro = FALSE;
09025
09026     /* フォーカス移動時の再描画 */
09027     RedrawAll();
09028
09029     return;
09030 }
09031
09032
09033
09034
09038 void CEditView::Command_LOADKEYMACRO( void )
09039 {
09040     m_pShareData->m_bRecordingKeyMacro = FALSE;
09041     m_pShareData->m_hwndRecordingKeyMacro = NULL;   /* キーボードマクロを記録中のウィンドウ */
09042
09043     CDlgOpenFile    cDlgOpenFile;
09044     char            szPath[_MAX_PATH + 1];
09045     char            szInitDir[_MAX_PATH + 1];
09046     const char*     pszFolder;
09047     strcpy( szPath, "" );
09048     pszFolder = m_pShareData->m_szMACROFOLDER;
09049     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
09050     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
09051     if( _IS_REL_PATH( pszFolder ) ){
09052         GetInidirOrExedir( szInitDir, pszFolder );
09053     }else{
09054         strcpy( szInitDir, pszFolder ); /* マクロ用フォルダ */
09055     }
09056     /* ファイルオープンダイアログの初期化 */
09057     cDlgOpenFile.Create(
09058         m_hInstance,
09059         m_hWnd,
09060 // 2005/02/20 novice デフォルトの拡張子変更
09061 // 2005/07/13 novice 多様なマクロをサポートしているのでデフォルトは全て表示にする
09062         "*.*",
09063         szInitDir
09064     );
09065     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
09066         return;
09067     }
09068
09069     /* キーボードマクロの読み込み */
09070     //@@@ 2002.1.24 YAZAKI 読み込みといいつつも、ファイル名をコピーするだけ。実行直前に読み込む
09071     strcpy(m_pShareData->m_szKeyMacroFileName, szPath);
09072 //  m_pShareData->m_CKeyMacroMgr.LoadKeyMacro( m_hInstance, m_hWnd, szPath );
09073     return;
09074 }
09075
09088 CEditView::TOGGLE_WRAP_ACTION CEditView::GetWrapMode( int& newWidth )
09089 {
09090     //@@@ 2002.01.14 YAZAKI 現在のウィンドウ幅で折り返されているときは、最大値にするコマンド。
09091     //2002/04/08 YAZAKI ときどきウィンドウ幅で折り返されないことがあるバグ修正。
09092     // 20051022 aroka 現在のウィンドウ幅→最大値→文書タイプの初期値 をトグルにするコマンド
09093     // ウィンドウ幅==文書タイプ||最大値==文書タイプ の場合があるため判定順序に注意する。
09094     /*  Jan.  8, 2006 genta
09095         じゅうじさんの要望により判定方法を再考．現在の幅に合わせるのを最優先に．
09096
09097         基本動作： 設定値→ウィンドウ幅
09098             →(ウィンドウ幅と合っていなければ)→ウィンドウ幅→上へ戻る
09099             →(ウィンドウ幅と合っていたら)→最大値→設定値
09100             ただし，最大値==設定値の場合には最大値→設定値の遷移が省略されて上に戻る
09101
09102             ウィンドウ幅が極端に狭い場合にはウィンドウ幅に合わせることは出来ないが，
09103             設定値と最大値のトグルは可能．
09104
09105         1)現在の折り返し幅==ウィンドウ幅 : 最大値
09106         2)現在の折り返し幅!=ウィンドウ幅
09107         3)→ウィンドウ幅が極端に狭い場合
09108         4)　└→折り返し幅!=最大値 : 最大値
09109         5)　└→折り返し幅==最大値
09110         6)　　　└→最大値==設定値 : 変更不能
09111         7)　　　└→最大値!=設定値 : 設定値
09112         8)→ウィンドウ幅が十分にある
09113         9)　└→折り返し幅==最大値
09114         a)　　　└→最大値!=設定値 : 設定値
09115         b)　　　└→最大値==設定値 : ウィンドウ幅
09116         c)　└→ウィンドウ幅
09117     */
09118
09119     if (m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() == m_nViewColNum ){
09120         // a)
09121         newWidth = MAXLINESIZE;
09122         return TGWRAP_FULL;
09123     }
09124     else if( 10 > m_nViewColNum - 1 ){ // 2)
09125         // 3)
09126         if( m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() != MAXLINESIZE ){
09127             // 4)
09128             newWidth = MAXLINESIZE;
09129             return TGWRAP_FULL;
09130         }
09131         else if( m_pcEditDoc->GetDocumentAttribute().m_nMaxLineSize == MAXLINESIZE ){ // 5)
09132             // 6)
09133             return TGWRAP_NONE;
09134         }
09135         else { // 7)
09136             newWidth = m_pcEditDoc->GetDocumentAttribute().m_nMaxLineSize;
09137             return TGWRAP_PROP;
09138         }
09139     }
09140     else { // 8)
09141         if( m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() == MAXLINESIZE && // 9)
09142             m_pcEditDoc->GetDocumentAttribute().m_nMaxLineSize != MAXLINESIZE ){
09143             // a)
09144             newWidth = m_pcEditDoc->GetDocumentAttribute().m_nMaxLineSize;
09145             return TGWRAP_PROP;
09146
09147         }
09148         else {  // b) c)
09149             //  現在のウィンドウ幅
09150             newWidth = m_nViewColNum;
09151             return TGWRAP_WINDOW;
09152         }
09153     }
09154 }
09155
09166 void CEditView::Command_WRAPWINDOWWIDTH( void ) //  Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
09167 {
09168     // Jan. 8, 2006 genta 判定処理をGetWrapMode()へ移動
09169     int newWidth;
09170
09171     if( GetWrapMode( newWidth ) == TGWRAP_NONE ){
09172         return;
09173     }
09174
09175     m_pcEditDoc->ChangeLayoutParam( true, m_pcEditDoc->m_cLayoutMgr.GetTabSpace(), newWidth );
09176
09177
09178     //  Aug. 14, 2005 genta 共通設定へは反映させない
09179 //  m_pcEditDoc->GetDocumentAttribute().m_nMaxLineSize = m_nViewColNum;
09180
09181 //  m_pcEditDoc->OnChangeSetting(); /* ビューに設定変更を反映させる */
09182
09183     /* 設定変更を反映させる */
09184 //  CShareData::getInstance()->SendMessageToAllEditors(
09185 //      MYWM_CHANGESETTING, (WPARAM)0, (LPARAM)0, ::GetParent( m_hwndParent )
09186 //  );  /* 全編集ウィンドウへメッセージをポストする */
09187
09188     m_nViewLeftCol = 0;     /* 表示域の一番左の桁(0開始) */
09189
09190     /* フォーカス移動時の再描画 */
09191     RedrawAll();
09192     return;
09193 }
09194
09195
09196
09197
09198 //検索マークの切替え    // 2001.12.03 hor クリア を 切替え に変更
09199 void CEditView::Command_SEARCH_CLEARMARK( void )
09200 {
09201 // From Here 2001.12.03 hor
09202
09203     //検索マークのセット
09204
09205     if(IsTextSelected()){
09206
09207         // 検索文字列取得
09208         CMemory cmemCurText;
09209         GetCurrentTextForSearch( cmemCurText );
09210
09211         // 検索文字列設定
09212         int i,j;
09213         strcpy( m_szCurSrchKey, cmemCurText.GetPtr() );
09214         for( i = 0; i < m_pShareData->m_nSEARCHKEYArrNum; ++i ){
09215             if( 0 == strcmp( m_szCurSrchKey, m_pShareData->m_szSEARCHKEYArr[i] ) ){
09216                 break;
09217             }
09218         }
09219         if( i < m_pShareData->m_nSEARCHKEYArrNum ){
09220             for( j = i; j > 0; j-- ){
09221                 strcpy( m_pShareData->m_szSEARCHKEYArr[j], m_pShareData->m_szSEARCHKEYArr[j - 1] );
09222             }
09223         }else{
09224             for( j = MAX_SEARCHKEY - 1; j > 0; j-- ){
09225                 strcpy( m_pShareData->m_szSEARCHKEYArr[j], m_pShareData->m_szSEARCHKEYArr[j - 1] );
09226             }
09227             ++m_pShareData->m_nSEARCHKEYArrNum;
09228             if( m_pShareData->m_nSEARCHKEYArrNum > MAX_SEARCHKEY ){
09229                 m_pShareData->m_nSEARCHKEYArrNum = MAX_SEARCHKEY;
09230             }
09231         }
09232         strcpy( m_pShareData->m_szSEARCHKEYArr[0], cmemCurText.GetPtr() );
09233
09234         // 検索オプション設定
09235         m_pShareData->m_Common.m_bRegularExp=0; //正規表現使わない
09236         m_pShareData->m_Common.m_bWordOnly=0;   //単語で検索しない
09237 //      m_bCurSrchKeyMark=TRUE;
09238         ChangeCurRegexp(); // 2002.11.11 Moca 正規表現で検索した後，色分けができていなかった
09239
09240         // 再描画
09241         RedrawAll();
09242         return;
09243     }
09244 // To Here 2001.12.03 hor
09245
09246     //検索マークのクリア
09247
09248     m_bCurSrchKeyMark = FALSE;  /* 検索文字列のマーク */
09249     /* フォーカス移動時の再描画 */
09250     RedrawAll();
09251     return;
09252 }
09253
09254
09255
09256
09263 void CEditView::Command_FILE_REOPEN( int nCharCode, int bNoConfirm )
09264 {
09265     if( bNoConfirm == 0 && (  -1 != _access( m_pcEditDoc->GetFilePath(), 0 ))
09266      && m_pcEditDoc->IsModified()   /* 変更フラグ */
09267     ){
09268         if( IDOK != MYMESSAGEBOX( m_hWnd, MB_OKCANCEL | MB_ICONQUESTION | MB_TOPMOST, GSTR_APPNAME,
09269             "%s\n\nこのファイルは変更されています。\n再ロードを行うと変更が失われますが、よろしいですか?",
09270             m_pcEditDoc->GetFilePath()
09271         ) ){
09272             return;
09273         }
09274     }
09275     /* 同一ファイルの再オープン */
09276      m_pcEditDoc->ReloadCurrentFile(
09277         nCharCode,                  /* 文字コード種別 */
09278         m_pcEditDoc->m_bReadOnly    /* 読み取り専用モード */
09279     );
09280     /* キャレットの行桁位置を表示する */
09281     DrawCaretPosInfo();
09282     return;
09283
09284 }
09285
09286
09287
09288
09289 //日付挿入
09290 void CEditView::Command_INS_DATE( void )
09291 {
09292     /* 日付をフォーマット */
09293     char szText[1024];
09294     SYSTEMTIME systime;
09295     ::GetLocalTime( &systime );
09296     CShareData::getInstance()->MyGetDateFormat( systime, szText, sizeof( szText ) - 1 );
09297     /* テキストを貼り付け ver1 */
09298     Command_INSTEXT( TRUE, szText, -1, TRUE );
09299     return;
09300 }
09301
09302
09303
09304
09305 //時刻挿入
09306 void CEditView::Command_INS_TIME( void )
09307 {
09308     /* 時刻をフォーマット */
09309     char szText[1024];
09310     SYSTEMTIME systime;
09311     ::GetLocalTime( &systime );
09312     CShareData::getInstance()->MyGetTimeFormat( systime, szText, sizeof( szText ) - 1 );
09313     /* テキストを貼り付け ver1 */
09314     Command_INSTEXT( TRUE, szText, -1, TRUE );
09315     return;
09316 }
09317
09318
09324 void CEditView::Command_EXECCOMMAND_DIALOG( void )
09325 {
09326     const char *cmd_string; //  Oct. 9, 2001 genta
09327     CDlgExec cDlgExec;
09328
09329     /* モードレスダイアログの表示 */
09330     if( FALSE == cDlgExec.DoModal( m_hInstance, m_hWnd, 0 ) ){
09331         return;
09332     }
09333     //  MYTRACE( "cDlgExec.m_szCommand=[%s]\n", cDlgExec.m_szCommand );
09334
09335     AddToCmdArr( cDlgExec.m_szCommand );
09336     cmd_string = cDlgExec.m_szCommand;
09337
09338     //HandleCommand( F_EXECCOMMAND, TRUE, (LPARAM)cmd_string, 0, 0, 0); //  外部コマンド実行コマンドの発行
09339     HandleCommand( F_EXECCOMMAND, TRUE, (LPARAM)cmd_string, (LPARAM)(m_pShareData->m_nExecFlgOpt), 0, 0);   //  外部コマンド実行コマンドの発行
09340 }
09341
09342 //外部コマンド実行
09343 //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
09344 //  void CEditView::Command_EXECCMMAND( void )
09345 //  Oct. 9, 2001 genta マクロ対応のため引数追加
09346 //@@@ 2002.2.2 YAZAKI ダイアログ呼び出し部とコマンド実行部を分離
09347 //void CEditView::Command_EXECCOMMAND( const char *cmd_string )
09348 void CEditView::Command_EXECCOMMAND( const char *cmd_string, const int nFlgOpt) //  2006.12.03 maru 引数の拡張
09349 //  To Here Sept. 20, 2000
09350 {
09351 #if 0
09352     const char *cmd_string; //  Oct. 9, 2001 genta
09353     CDlgExec cDlgExec;
09354
09355     if( cmd == NULL ){
09356         /* モードレスダイアログの表示 */
09357         if( FALSE == cDlgExec.DoModal( m_hInstance, m_hWnd, 0 ) ){
09358             return;
09359         }
09360     //  MYTRACE( "cDlgExec.m_szCommand=[%s]\n", cDlgExec.m_szCommand );
09361
09362         AddToCmdArr( cDlgExec.m_szCommand );
09363         cmd_string = cDlgExec.m_szCommand;
09364     }
09365     else {
09366         cmd_string = cmd;
09367     }
09368 #endif
09369     //  From Here Aug. 21, 2001 genta
09370     //  パラメータ置換 (超暫定)
09371     const int bufmax = 1024;
09372     char buf[bufmax + 1];
09373     m_pcEditDoc->ExpandParameter(cmd_string, buf, bufmax);
09374
09375     // 子プロセスの標準出力をリダイレクトする
09376     //ExecCmd( buf, m_pShareData->m_bGetStdout );   //  2006.12.03 maru マクロからの呼び出しではオプションを保存させないため
09377     ExecCmd( buf, nFlgOpt );
09378     //  To Here Aug. 21, 2001 genta
09379     return;
09380 }
09381
09382
09383
09384
09385 void CEditView::AddToCmdArr( const char* szCmd )
09386 {
09387 /*
09388 //  CMemory*    pcmWork;
09389     int         i;
09390     int         j;
09391 //  pcmWork = NULL;
09392 //  pcmWork = new CMemory( szCmd, lstrlen( szCmd ) );
09393
09394     for( i = 0; i < m_pShareData->m_nCmdArrNum; ++i ){
09395         if( 0 == strcmp( szCmd, m_pShareData->m_szCmdArr[i] ) ){
09396             break;
09397         }
09398     }
09399     if( i < m_pShareData->m_nCmdArrNum ){
09400         for( j = i; j > 0; j-- ){
09401             strcpy( m_pShareData->m_szCmdArr[j], m_pShareData->m_szCmdArr[j - 1] );
09402         }
09403     }else{
09404         for( j = MAX_CMDARR - 1; j > 0; j-- ){
09405             strcpy( m_pShareData->m_szCmdArr[j], m_pShareData->m_szCmdArr[j - 1] );
09406         }
09407         ++m_pShareData->m_nCmdArrNum;
09408         if( m_pShareData->m_nCmdArrNum > MAX_CMDARR ){
09409             m_pShareData->m_nCmdArrNum = MAX_CMDARR;
09410         }
09411     }
09412     strcpy( m_pShareData->m_szCmdArr[0], szCmd );
09413 //  delete pcmWork;
09414 //  pcmWork = NULL;
09415 */
09416     CRecent cRecentCmd;
09417
09418     cRecentCmd.EasyCreate( RECENT_FOR_CMD );
09419     cRecentCmd.AppendItem( szCmd );
09420     cRecentCmd.Terminate();
09421
09422     return;
09423 }
09424
09425
09426
09427
09428 //  Jun. 16, 2000 genta
09429 //  対括弧の検索
09430 void CEditView::Command_BRACKETPAIR( void )
09431 {
09432     int nLine, nCol;
09433     int mode = 3;
09434     /*
09435     bit0(in)  : 表示領域外を調べるか？ 0:調べない  1:調べる
09436     bit1(in)  : 前方文字を調べるか？   0:調べない  1:調べる
09437     bit2(out) : 見つかった位置         0:後ろ      1:前
09438     */
09439     if( SearchBracket( m_nCaretPosX, m_nCaretPosY, &nCol, &nLine, &mode ) ){    // 02/09/18 ai
09440         //  2005.06.24 Moca
09441         //  2006.07.09 genta 表示更新漏れ：新規関数にて対応
09442         MoveCursorSelecting( nCol, nLine, m_bSelectingLock );
09443     }
09444     else{
09445         //  失敗した場合は nCol/nLineには有効な値が入っていない.
09446         //  何もしない
09447     }
09448 }
09449
09450
09451 //  現在位置を移動履歴に登録する
09452 void CEditView::Command_JUMPHIST_SET( void )
09453 {
09454     AddCurrentLineToHistory();
09455 }
09456
09457
09458 //  From HERE Sep. 8, 2000 genta
09459 //  移動履歴を前へたどる
09460 //
09461 void CEditView::Command_JUMPHIST_PREV( void )
09462 {
09463     // 2001.12.13 hor
09464     // 移動履歴の最後に現在の位置を記憶する
09465     // ( 次の履歴が取得できないときは追加して戻る )
09466     if( !m_cHistory->CheckNext() ){
09467         AddCurrentLineToHistory();
09468         m_cHistory->PrevValid();
09469     }
09470
09471     if( m_cHistory->CheckPrev() ){
09472         int x, y;
09473         if( ! m_cHistory->PrevValid() ){
09474             ::MessageBox( NULL, "Inconsistent Implementation", "PrevValid", MB_OK );
09475         }
09476         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
09477             m_cHistory->GetCurrent().GetPos(),
09478             m_cHistory->GetCurrent().GetLine(),
09479             &x, &y );
09480         //  2005.06.24 Moca
09481         //MoveCursor( x, y, TRUE );
09482         //  2006.07.09 genta 選択を考慮
09483         MoveCursorSelecting( x, y, m_bSelectingLock );
09484     }
09485 }
09486
09487 //  移動履歴を次へたどる
09488 void CEditView::Command_JUMPHIST_NEXT( void )
09489 {
09490     if( m_cHistory->CheckNext() ){
09491         int x, y;
09492         if( ! m_cHistory->NextValid() ){
09493             ::MessageBox( NULL, "Inconsistent Implementation", "NextValid", MB_OK );
09494         }
09495         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
09496             m_cHistory->GetCurrent().GetPos(),
09497             m_cHistory->GetCurrent().GetLine(),
09498             &x, &y );
09499         //  2005.06.24 Moca
09500         //MoveCursor( x, y, TRUE );
09501         //  2006.07.09 genta 選択を考慮
09502         MoveCursorSelecting( x, y, m_bSelectingLock );
09503     }
09504 }
09505 //  To HERE Sep. 8, 2000 genta
09506
09507 /* 次のグループ */          // 2007.06.20 ryoji
09508 void CEditView::Command_NEXTGROUP( void )
09509 {
09510     CTabWnd* pcTabWnd = &m_pcEditDoc->m_pcEditWnd->m_cTabWnd;
09511     if( pcTabWnd->m_hWnd == NULL )
09512         return;
09513     pcTabWnd->NextGroup();
09514 }
09515
09516 /* 前のグループ */          // 2007.06.20 ryoji
09517 void CEditView::Command_PREVGROUP( void )
09518 {
09519     CTabWnd* pcTabWnd = &m_pcEditDoc->m_pcEditWnd->m_cTabWnd;
09520     if( pcTabWnd->m_hWnd == NULL )
09521         return;
09522     pcTabWnd->PrevGroup();
09523 }
09524
09525 /* タブを右に移動 */        // 2007.06.20 ryoji
09526 void CEditView::Command_TAB_MOVERIGHT( void )
09527 {
09528     CTabWnd* pcTabWnd = &m_pcEditDoc->m_pcEditWnd->m_cTabWnd;
09529     if( pcTabWnd->m_hWnd == NULL )
09530         return;
09531     pcTabWnd->MoveRight();
09532 }
09533
09534 /* タブを左に移動 */        // 2007.06.20 ryoji
09535 void CEditView::Command_TAB_MOVELEFT( void )
09536 {
09537     CTabWnd* pcTabWnd = &m_pcEditDoc->m_pcEditWnd->m_cTabWnd;
09538     if( pcTabWnd->m_hWnd == NULL )
09539         return;
09540     pcTabWnd->MoveLeft();
09541 }
09542
09543 /* 新規グループ */          // 2007.06.20 ryoji
09544 void CEditView::Command_TAB_SEPARATE( void )
09545 {
09546     CTabWnd* pcTabWnd = &m_pcEditDoc->m_pcEditWnd->m_cTabWnd;
09547     if( pcTabWnd->m_hWnd == NULL )
09548         return;
09549     pcTabWnd->Separate();
09550 }
09551
09552 /* 次のグループに移動 */    // 2007.06.20 ryoji
09553 void CEditView::Command_TAB_JOINTNEXT( void )
09554 {
09555     CTabWnd* pcTabWnd = &m_pcEditDoc->m_pcEditWnd->m_cTabWnd;
09556     if( pcTabWnd->m_hWnd == NULL )
09557         return;
09558     pcTabWnd->JoinNext();
09559 }
09560
09561 /* 前のグループに移動 */    // 2007.06.20 ryoji
09562 void CEditView::Command_TAB_JOINTPREV( void )
09563 {
09564     CTabWnd* pcTabWnd = &m_pcEditDoc->m_pcEditWnd->m_cTabWnd;
09565     if( pcTabWnd->m_hWnd == NULL )
09566         return;
09567     pcTabWnd->JoinPrev();
09568 }
09569
09570 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Command_New.cpp

CEditView_Command_New.cpp

CEditViewクラスのコマンド処理系関数群 [詳細]

#include "stdafx.h"
#include "CEditView.h"
#include "CWaitCursor.h"
#include "charcode.h"
#include "CRunningTimer.h"
#include <algorithm>
#include "COpe.h"
#include "COpeBlk.h"
#include "CLayout.h"
#include "CDocLine.h"
#include "mymessage.h"
#include "debug.h"
#include "etc_uty.h"
#include <string>
#include <vector>
#include "COsVersionInfo.h"
#include "CEditDoc.h"
#include "CEditWnd.h"
#include "CDlgCtrlCode.h"
#include "CDlgFavorite.h"
#include "CFileLoad.h"
#include "CDlgCancel.h"
#include "CFileWrite.h"

CEditView_Command_New.cppのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | std

構成

struct | _SORTTABLE

マクロ定義

#define | FID_RECONVERT_VERSION 0x10000000

型定義

typedef _SORTTABLE | SORTDATA
typedef _SORTTABLE * | SORTTABLE

関数

bool | SortByKeyAsc (SORTTABLE pst1, SORTTABLE pst2)
bool | SortByKeyDesc (SORTTABLE pst1, SORTTABLE pst2)

説明

CEditViewクラスのコマンド処理系関数群

作者:
Norio Nakatani

CEditView_Command_New.cpp で定義されています。

マクロ定義

#define FID_RECONVERT_VERSION 0x10000000

CEditView_Command_New.cpp の 47 行で定義されています。

参照元 CEditView::Command_Reconvert().

型定義

typedef struct _SORTTABLE SORTDATA

物理行のソートに使う構造体

typedef struct _SORTTABLE * SORTTABLE

物理行のソートに使う構造体

関数

bool SortByKeyAsc | ( | SORTTABLE | pst1,
 |  | SORTTABLE | pst2
 | ) |

物理行のソートに使う関数(昇順)

CEditView_Command_New.cpp の 2359 行で定義されています。

参照先 _SORTTABLE::sKey1.

bool SortByKeyDesc | ( | SORTTABLE | pst1,
 |  | SORTTABLE | pst2
 | ) |

物理行のソートに使う関数(降順)

CEditView_Command_New.cpp の 2361 行で定義されています。

参照先 _SORTTABLE::sKey1.

Sakura-Editorに対してSat Oct 27 02:17:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Command_New.cpp ソースファイル

CEditView_Command_New.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, genta
00009     Copyright (C) 2001, genta, asa-o, hor
00010     Copyright (C) 2002, YAZAKI, hor, genta. aroka, MIK, minfu, KK, かろと
00011     Copyright (C) 2003, MIK, Moca
00012     Copyright (C) 2004, genta, Moca
00013     Copyright (C) 2005, ryoji, genta, D.S.Koba
00014     Copyright (C) 2006, genta, Moca, fon
00015     Copyright (C) 2007, ryoji, maru
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020 #include "stdafx.h"
00021 #include "CEditView.h"
00022 #include "CWaitCursor.h"
00023 #include "charcode.h"
00024 #include "CRunningTimer.h"
00025 #include <algorithm>        // 2001.12.11 hor    for VC++
00026 #include "COpe.h"
00027 #include "COpeBlk.h"
00028 #include "CLayout.h"
00029 #include "CDocLine.h"
00030 #include "mymessage.h"
00031 #include "debug.h"
00032 #include "etc_uty.h"
00033 #include <string>
00034 #include <vector>
00035 #include "COsVersionInfo.h"   // 2002.04.09 minfu
00036 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00037 #include "CEditWnd.h"
00038 #include "CDlgCtrlCode.h"   //コントロールコードの入力(ダイアログ)
00039 #include "CDlgFavorite.h"   //履歴の管理    //@@@ 2003.04.08 MIK
00040 #include "CFileLoad.h"  // 2006.12.09 maru
00041 #include "CDlgCancel.h" // 2006.12.09 maru
00042 #include "CFileWrite.h" // 2006.12.09 maru
00043
00044 using namespace std; // 2002/2/3 aroka to here
00045
00046 #ifndef FID_RECONVERT_VERSION  // 2002.04.10 minfu
00047 #define FID_RECONVERT_VERSION 0x10000000
00048 #endif
00049
00053 void CEditView::InsertData_CEditView(
00054     int         nX,
00055     int         nY,
00056     const char* pData,
00057     int         nDataLen,
00058     int*        pnNewLine,          /* 挿入された部分の次の位置の行 */
00059     int*        pnNewPos,           /* 挿入された部分の次の位置のデータ位置 */
00060     COpe*       pcOpe,              /* 編集操作要素 COpe */
00061     BOOL        bRedraw
00062 //  BOOL        bUndo           /* Undo操作かどうか */
00063 )
00064 {
00065 #ifdef _DEBUG
00066     gm_ProfileOutput = 1;
00067     MY_RUNNINGTIMER( cRunningTimer, "CEditView::InsertData_CEditView" );
00068 #endif
00069     const char* pLine;
00070     int         nLineLen;
00071     const char* pLine2;
00072     int         nLineLen2;
00073     int         nIdxFrom;
00074     int         nModifyLayoutLinesOld;
00075     int         nInsLineNum;        /* 挿入によって増えたレイアウト行の数 */
00076     PAINTSTRUCT ps;
00077     HDC         hdc;
00078     int         nLineAllColLen;
00079     CMemory     cMem;
00080     int         i;
00081     const CLayout*  pcLayout;
00082
00083     *pnNewLine = 0;         /* 挿入された部分の次の位置の行 */
00084     *pnNewPos = 0;          /* 挿入された部分の次の位置のデータ位置 */
00085
00086     /* テキストが選択されているか */
00087     if( IsTextSelected() ){
00088         DeleteData( bRedraw );
00089         nX = m_nCaretPosX;
00090         nY = m_nCaretPosY;
00091     }
00092
00093     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nY, &nLineLen, &pcLayout );
00094
00095     nIdxFrom = 0;
00096 //  cMem.SetData( "", lstrlen( "" ) );
00097     cMem.SetDataSz( "" );
00098     if( NULL != pLine ){
00099         /* 指定された桁に対応する行のデータ内の位置を調べる */
00100         nIdxFrom = LineColmnToIndex2( pcLayout, nX, nLineAllColLen );
00101         /* 行終端より右に挿入しようとした */
00102         if( nLineAllColLen > 0 ){
00103             /* 終端直前から挿入位置まで空白を埋める為の処理 */
00104             /* 行終端が何らかの改行コードか? */
00105             if( EOL_NONE != pcLayout->m_cEol ){
00106                 nIdxFrom = nLineLen - 1;
00107                 for( i = 0; i < nX - nLineAllColLen + 1; ++i ){
00108                     cMem += ' ';
00109                 }
00110                 cMem.Append( pData, nDataLen );
00111             }else{
00112                 nIdxFrom = nLineLen;
00113                 for( i = 0; i < nX - nLineAllColLen; ++i ){
00114                     cMem += ' ';
00115                 }
00116                 cMem.Append( pData, nDataLen );
00117             }
00118         }else{
00119             cMem.Append( pData, nDataLen );
00120         }
00121     }else{
00122         nLineAllColLen = nX;
00123         for( i = 0; i < nX - nIdxFrom; ++i ){
00124             cMem += ' ';
00125         }
00126         cMem.Append( pData, nDataLen );
00127     }
00128 //  MYTRACE( "nY=%d nIdxFrom=%d nLineAllColLen=%d \n", nY, nIdxFrom, nLineAllColLen );
00129
00130
00131     if( !m_bDoing_UndoRedo && NULL != pcOpe ){  /* アンドゥ・リドゥの実行中か */
00132         if( NULL != pLine ){
00133             m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00134                 LineIndexToColmn( pcLayout, nIdxFrom ),
00135                 nY,
00136                 &pcOpe->m_nCaretPosX_PHY_Before,
00137                 &pcOpe->m_nCaretPosY_PHY_Before
00138             );
00139         }else{
00140             m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00141                 0,
00142                 nY,
00143                 &pcOpe->m_nCaretPosX_PHY_Before,
00144                 &pcOpe->m_nCaretPosY_PHY_Before
00145             );
00146         }
00147     }
00148
00149
00150     /* 文字列挿入 */
00151     m_pcEditDoc->m_cLayoutMgr.InsertData_CLayoutMgr(
00152         nY,
00153         nIdxFrom,
00154         cMem.GetPtr(),
00155         cMem.GetLength(),
00156         &nModifyLayoutLinesOld,
00157         &nInsLineNum,
00158         pnNewLine,          /* 挿入された部分の次の位置の行 */
00159         pnNewPos            /* 挿入された部分の次の位置のデータ位置 */
00160     );
00161
00162
00163     /* メモリが再確保されてアドレスが無効になるので、再度、行データを求める */
00164     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nY, &nLineLen );
00165
00166     /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
00167     pLine2 = m_pcEditDoc->m_cLayoutMgr.GetLineStr( *pnNewLine, &nLineLen2, &pcLayout );
00168     if( pLine2 != NULL ){
00169         *pnNewPos = LineIndexToColmn( pcLayout, *pnNewPos );
00170     }
00171     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00172     if( *pnNewPos >= m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() ){
00173         if( m_pcEditDoc->GetDocumentAttribute().m_bKinsokuRet
00174          || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuKuto )    //@@@ 2002.04.16 MIK
00175         {
00176             if( m_pcEditDoc->m_cLayoutMgr.IsEndOfLine( *pnNewLine, *pnNewPos ) )    //@@@ 2002.04.18
00177             {
00178                 *pnNewPos = 0;
00179                 (*pnNewLine)++;
00180             }
00181         }
00182         else
00183         {
00184             // Oct. 7, 2002 YAZAKI
00185             *pnNewPos = pcLayout->m_pNext ? pcLayout->m_pNext->GetIndent() : 0;
00186             (*pnNewLine)++;
00187         }
00188     }
00189
00190 //  MYTRACE( "nModifyLayoutLinesOld=%d nInsLineNum=%d *pnNewLine=%d *pnNewPos=%d\n", nModifyLayoutLinesOld, nInsLineNum, *pnNewLine, *pnNewPos );
00191
00192
00193     /* 状態遷移 */
00194     if( FALSE == m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00195         m_pcEditDoc->SetModified(true,bRedraw); //  Jan. 22, 2002 genta
00196     }
00197
00198     /* 再描画 */
00199     /* 行番号表示に必要な幅を設定 */
00200     if( m_pcEditDoc->DetectWidthOfLineNumberAreaAllPane( bRedraw ) ){
00201         /* キャレットの表示・更新 */
00202         ShowEditCaret();
00203     }else{
00204
00205         if( bRedraw ){
00206             if( 0 < nInsLineNum ){
00207                 /* スクロールバーの状態を更新する */
00208                 AdjustScrollBars();
00209                 ps.rcPaint.left = 0;
00210                 ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
00211                 ps.rcPaint.top = m_nViewAlignTop + (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace) * (nY - m_nViewTopLine);
00212                 ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
00213             }else{
00214                 if( nModifyLayoutLinesOld < 1 ){
00215                     nModifyLayoutLinesOld = 1;
00216                 }
00217     //          ps.rcPaint.left = m_nViewAlignLeft;
00218                 ps.rcPaint.left = 0;
00219                 ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
00220
00221                 // 2002.02.25 Mod By KK 次行 (nY - m_nViewTopLine - 1); => (nY - m_nViewTopLine);
00222                 //ps.rcPaint.top = m_nViewAlignTop + (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace) * (nY - m_nViewTopLine - 1);
00223                 ps.rcPaint.top = m_nViewAlignTop + (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace) * (nY - m_nViewTopLine);
00224
00225                 //禁則がある場合は1行前から再描画を行う @@@ 2002.04.19 MIK
00226                 if( m_pcEditDoc->GetDocumentAttribute().m_bWordWrap
00227                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuHead  //@@@ 2002.04.19 MIK
00228                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuTail  //@@@ 2002.04.19 MIK
00229                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuRet   //@@@ 2002.04.19 MIK
00230                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuKuto )    //@@@ 2002.04.19 MIK
00231                 {
00232                     ps.rcPaint.top -= (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace);
00233                 }
00234                 if( ps.rcPaint.top < 0 ){
00235                     ps.rcPaint.top = 0;
00236                 }
00237
00238                 ps.rcPaint.bottom = ps.rcPaint.top + (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace) * ( nModifyLayoutLinesOld + 1);
00239                 if( m_nViewAlignTop + m_nViewCy < ps.rcPaint.bottom ){
00240                     ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
00241                 }
00242             }
00243             hdc = ::GetDC( m_hWnd );
00244 //          OnKillFocus();
00245             OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
00246 //          OnSetFocus();
00247             ::ReleaseDC( m_hWnd, hdc );
00248         }
00249     }
00250
00251     if( !m_bDoing_UndoRedo && NULL != pcOpe ){  /* アンドゥ・リドゥの実行中か */
00252         pcOpe->m_nOpe = OPE_INSERT;             /* 操作種別 */
00253         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00254             *pnNewPos,
00255             *pnNewLine,
00256             &pcOpe->m_nCaretPosX_PHY_To,
00257             &pcOpe->m_nCaretPosY_PHY_To
00258         );
00259
00260         pcOpe->m_nDataLen = cMem.GetLength();   /* 操作に関連するデータのサイズ */
00261         pcOpe->m_pcmemData = NULL;              /* 操作に関連するデータ */
00262     }
00263 #ifdef _DEBUG
00264     gm_ProfileOutput = 0;
00265 #endif
00266     return;
00267 }
00268
00269
00275 void CEditView::DeleteData2(
00276     int         nCaretX,
00277     int         nCaretY,
00278     int         nDelLen,
00279     CMemory*    pcMem,
00280     COpe*       pcOpe       /* 編集操作要素 COpe */
00281 )
00282 {
00283 #ifdef _DEBUG
00284     gm_ProfileOutput = 1;
00285     MY_RUNNINGTIMER( cRunningTimer, "CEditView::DeleteData(1)" );
00286 #endif
00287     const char* pLine;
00288     int         nLineLen;
00289     int         nIdxFrom;
00290     int         nModifyLayoutLinesOld;
00291     int         nModifyLayoutLinesNew;
00292     int         nDeleteLayoutLines;
00293     int         bLastLine;
00294
00295     /* 最後の行にカーソルがあるかどうか */
00296     if( nCaretY == m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 ){
00297         bLastLine = 1;
00298     }else{
00299         bLastLine = 0;
00300     }
00301
00302     const CLayout* pcLayout;
00303     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nCaretY, &nLineLen, &pcLayout );
00304     if( NULL == pLine ){
00305         goto end_of_func;
00306     }
00307     nIdxFrom = LineColmnToIndex( pcLayout, nCaretX );
00308     if( !m_bDoing_UndoRedo && NULL != pcOpe ){  /* アンドゥ・リドゥの実行中か */
00309         pcOpe->m_nOpe = OPE_DELETE;             /* 操作種別 */
00310 //      pcOpe->m_nCaretPosX_To = LineIndexToColmn( pLine, nLineLen, nIdxFrom + nDelLen );/* 操作前のキャレット位置Ｘ */
00311 //      pcOpe->m_nCaretPosY_To = nCaretY;   /* 操作前のキャレット位置Ｙ */
00312 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00313 //          pcOpe->m_nCaretPosX_To,
00314 //          pcOpe->m_nCaretPosY_To,
00315 //          &pcOpe->m_nCaretPosX_PHY_To,
00316 //          &pcOpe->m_nCaretPosY_PHY_To
00317 //      );
00318         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00319             LineIndexToColmn( pcLayout, nIdxFrom + nDelLen ),
00320             nCaretY,
00321             &pcOpe->m_nCaretPosX_PHY_To,
00322             &pcOpe->m_nCaretPosY_PHY_To
00323         );
00324     }
00325
00326
00327     /* データ削除 */
00328     m_pcEditDoc->m_cLayoutMgr.DeleteData_CLayoutMgr(
00329         nCaretY, nIdxFrom, nDelLen,
00330         &nModifyLayoutLinesOld,
00331         &nModifyLayoutLinesNew,
00332         &nDeleteLayoutLines,
00333         *pcMem
00334     );
00335
00336     if( !m_bDoing_UndoRedo && NULL != pcOpe ){  /* アンドゥ・リドゥの実行中か */
00337         pcOpe->m_nDataLen = pcMem->GetLength(); /* 操作に関連するデータのサイズ */
00338         pcOpe->m_pcmemData = pcMem;             /* 操作に関連するデータ */
00339     }
00340
00341     /* 選択エリアの先頭へカーソルを移動 */
00342     MoveCursor( nCaretX, nCaretY, FALSE );
00343     m_nCaretPosX_Prev = m_nCaretPosX;
00344
00345
00346 end_of_func:;
00347 #ifdef _DEBUG
00348     gm_ProfileOutput = 0;
00349 #endif
00350     return;
00351
00352 }
00353
00354
00355
00356
00357
00362 void CEditView::DeleteData(
00363     BOOL    bRedraw
00364 //  BOOL    bUndo   /* Undo操作かどうか */
00365 )
00366 {
00367 #ifdef _DEBUG
00368     gm_ProfileOutput = 1;
00369     MY_RUNNINGTIMER( cRunningTimer, "CEditView::DeleteData(2)" );
00370 #endif
00371     const char* pLine;
00372     int         nLineLen;
00373     const char* pLine2;
00374     int         nLineLen2;
00375     int         nLineNum;
00376     int         nCurIdx;
00377     int         nNxtIdx;
00378     int         nNxtPos;
00379     PAINTSTRUCT ps;
00380     HDC         hdc;
00381     int         nIdxFrom;
00382     int         nIdxTo;
00383     int         nDelPos;
00384     int         nDelLen;
00385     int         nDelPosNext;
00386     int         nDelLenNext;
00387 //  CMemory     cmemBuf;
00388     RECT        rcSel;
00389     int         bLastLine;
00390     CMemory*    pcMemDeleted;
00391     COpe*       pcOpe = NULL;
00392     int         nCaretPosXOld;
00393     int         nCaretPosYOld;
00394     int         i;
00395     const CLayout*  pcLayout;
00396     int         nSelectColmFrom_Old;
00397     int         nSelectLineFrom_Old;
00398
00399 // hor IsTextSelected内に移動
00400 //  CWaitCursor cWaitCursor( m_hWnd );  // 2002.01.25 hor
00401
00402     nCaretPosXOld = m_nCaretPosX;
00403     nCaretPosYOld = m_nCaretPosY;
00404
00405     /* テキストが選択されているか */
00406     if( IsTextSelected() ){
00407         CWaitCursor cWaitCursor( m_hWnd );  // 2002.02.05 hor
00408         if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00409             pcOpe = new COpe;
00410             pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
00411             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
00412             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
00413
00414             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
00415             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
00416             /* 操作の追加 */
00417             m_pcOpeBlk->AppendOpe( pcOpe );
00418         }
00419
00420         /* 矩形範囲選択中か */
00421         if( m_bBeginBoxSelect ){
00422             m_pcEditDoc->SetModified(true,bRedraw); //  2002/06/04 YAZAKI 矩形選択を削除したときに変更マークがつかない。
00423
00424             m_bDrawSWITCH=FALSE;    // 2002.01.25 hor
00425 //          bBoxSelected = TRUE;    // 2002/2/3 aroka
00426             nSelectColmFrom_Old = m_nSelectColmFrom;
00427             nSelectLineFrom_Old = m_nSelectLineFrom;
00428
00429             /* 選択範囲のデータを取得 */
00430             /* 正常時はTRUE,範囲未選択の場合はFALSEを返す */
00431             /* ２点を対角とする矩形を求める */
00432             TwoPointToRect(
00433                 &rcSel,
00434                 m_nSelectLineFrom,      /* 範囲選択開始行 */
00435                 m_nSelectColmFrom,      /* 範囲選択開始桁 */
00436                 m_nSelectLineTo,        /* 範囲選択終了行 */
00437                 m_nSelectColmTo         /* 範囲選択終了桁 */
00438             );
00439             /* 現在の選択範囲を非選択状態に戻す */
00440             DisableSelectArea( bRedraw );
00441
00442             nIdxFrom = 0;
00443             nIdxTo = 0;
00444             for( nLineNum = rcSel.bottom; nLineNum >= rcSel.top - 1; nLineNum-- ){
00445                 nDelPosNext = nIdxFrom;
00446                 nDelLenNext = nIdxTo - nIdxFrom;
00447                 pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum, &nLineLen, &pcLayout );
00448                 if( NULL != pLine ){
00449                     /* 指定された桁に対応する行のデータ内の位置を調べる */
00450                     nIdxFrom = LineColmnToIndex( pcLayout, rcSel.left  );
00451                     nIdxTo   = LineColmnToIndex( pcLayout, rcSel.right );
00452
00453                     for( i = nIdxFrom; i <= nIdxTo; ++i ){
00454                         if( pLine[i] == CR || pLine[i] == LF ){
00455                             nIdxTo = i;
00456                             break;
00457                         }
00458                     }
00459                 }else{
00460                     nIdxFrom = 0;
00461                     nIdxTo   = 0;
00462                 }
00463                 nDelPos = nDelPosNext;
00464                 nDelLen = nDelLenNext;
00465                 if( nLineNum < rcSel.bottom && 0 < nDelLen ){
00466                     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00467                         pcOpe = new COpe;
00468                         pLine2 = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nLineNum + 1, &nLineLen2, &pcLayout );
00469                         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00470                             LineIndexToColmn( pcLayout, nDelPos ),
00471                             nLineNum + 1,
00472                             &pcOpe->m_nCaretPosX_PHY_Before,
00473                             &pcOpe->m_nCaretPosY_PHY_Before
00474                         );
00475
00476                     }else{
00477                         pcOpe = NULL;
00478                     }
00479                     pcMemDeleted = new CMemory;
00480                     /* 指定位置の指定長データ削除 */
00481                     DeleteData2(
00482                         rcSel.left,
00483                         nLineNum + 1,
00484                         nDelLen,
00485                         pcMemDeleted,
00486                         pcOpe               /* 編集操作要素 COpe */
00487 //                      FALSE/*bRedraw  2002.01.25 hor*/,
00488 //                      FALSE/*bRedraw* 2002.01.25 hor*/
00489                     );
00490
00491                     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00492                         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00493                             rcSel.left,
00494                             nLineNum + 1,
00495                             &pcOpe->m_nCaretPosX_PHY_After,
00496                             &pcOpe->m_nCaretPosY_PHY_After
00497                         );
00498                         /* 操作の追加 */
00499                         m_pcOpeBlk->AppendOpe( pcOpe );
00500                     }else{
00501                         delete pcMemDeleted;
00502                         pcMemDeleted = NULL;
00503                     }
00504                 }
00505             }
00506             m_bDrawSWITCH=TRUE; // 2002.01.25 hor
00507
00508             /* 行番号表示に必要な幅を設定 */
00509             if ( m_pcEditDoc->DetectWidthOfLineNumberAreaAllPane( TRUE ) ){
00510                 /* キャレットの表示・更新 */
00511                 ShowEditCaret();
00512             }
00513             if( bRedraw ){
00514                 /* スクロールバーの状態を更新する */
00515                 AdjustScrollBars();
00516
00517                 /* 再描画 */
00518                 hdc = ::GetDC( m_hWnd );
00519                 ps.rcPaint.left = 0;
00520                 ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
00521     //          ps.rcPaint.top = m_nViewAlignTop + (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace) * (m_nCaretPosY - m_nViewTopLine);
00522                 ps.rcPaint.top = m_nViewAlignTop;
00523                 ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
00524 //              OnKillFocus();
00525                 OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
00526 //              OnSetFocus();
00527                 ::ReleaseDC( m_hWnd, hdc );
00528             }
00529             /* 選択エリアの先頭へカーソルを移動 */
00530             ::UpdateWindow( m_hWnd );
00531             MoveCursor( nSelectColmFrom_Old, nSelectLineFrom_Old, bRedraw );
00532             m_nCaretPosX_Prev = m_nCaretPosX;
00533             if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
00534                 pcOpe = new COpe;
00535                 pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
00536                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
00537                     nCaretPosXOld,
00538                     nCaretPosYOld,
00539                     &pcOpe->m_nCaretPosX_PHY_Before,
00540                     &pcOpe->m_nCaretPosY_PHY_Before
00541                 );
00542
00543                 pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
00544                 pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
00545                 /* 操作の追加 */
00546                 m_pcOpeBlk->AppendOpe( pcOpe );
00547             }
00548         }else{
00549             /* データ置換 削除&挿入にも使える */
00550             ReplaceData_CEditView(
00551                 m_nSelectLineFrom,      /* 範囲選択開始行 */
00552                 m_nSelectColmFrom,      /* 範囲選択開始桁 */
00553                 m_nSelectLineTo,        /* 範囲選択終了行 */
00554                 m_nSelectColmTo,        /* 範囲選択終了桁 */
00555                 NULL,                   /* 削除されたデータのコピー(NULL可能) */
00556                 "",                     /* 挿入するデータ */
00557                 0,                      /* 挿入するデータの長さ */
00558                 bRedraw
00559             );
00560         }
00561     }else{
00562         /* 現在行のデータを取得 */
00563         pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nCaretPosY, &nLineLen, &pcLayout );
00564         if( NULL == pLine ){
00565             goto end_of_func;
00566 //          return;
00567         }
00568         /* 最後の行にカーソルがあるかどうか */
00569         if( m_nCaretPosY == m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 ){
00570             bLastLine = 1;
00571         }else{
00572             bLastLine = 0;
00573         }
00574
00575         /* 指定された桁に対応する行のデータ内の位置を調べる */
00576         nCurIdx = LineColmnToIndex( pcLayout, m_nCaretPosX );
00577 //      MYTRACE("nLineLen=%d nCurIdx=%d \n", nLineLen, nCurIdx);
00578         if( nCurIdx == nLineLen && bLastLine ){ /* 全テキストの最後 */
00579             goto end_of_func;
00580 //          return;
00581         }
00582         /* 指定された桁の文字のバイト数を調べる */
00583         if( pLine[nCurIdx] == '\r' || pLine[nCurIdx] == '\n' ){
00584             /* 改行 */
00585             nNxtIdx = nCurIdx + pcLayout->m_cEol.GetLen();
00586             nNxtPos = m_nCaretPosX + pcLayout->m_cEol.GetLen();
00587         }else{
00588             nNxtIdx = CMemory::MemCharNext( pLine, nLineLen, &pLine[nCurIdx] ) - pLine;
00589             /* 指定された行のデータ内の位置に対応する桁の位置を調べる */
00590             nNxtPos = LineIndexToColmn( pcLayout, nNxtIdx );
00591         }
00592
00593
00594         /* データ置換 削除&挿入にも使える */
00595         ReplaceData_CEditView(
00596             m_nCaretPosY,       /* 範囲選択開始行 */
00597             m_nCaretPosX,       /* 範囲選択開始桁 */
00598             m_nCaretPosY,       /* 範囲選択終了行 */
00599             nNxtPos,            /* 範囲選択終了桁 */
00600             NULL,               /* 削除されたデータのコピー(NULL可能) */
00601             "",                 /* 挿入するデータ */
00602             0,                  /* 挿入するデータの長さ */
00603             bRedraw
00604         );
00605     }
00606
00607     m_pcEditDoc->SetModified(true,bRedraw); //  Jan. 22, 2002 genta
00608
00609     if( m_pcEditDoc->m_cLayoutMgr.GetLineCount() > 0 ){
00610         if( m_nCaretPosY > m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 ){
00611             /* 現在行のデータを取得 */
00612             const CLayout*  pcLayout;
00613             pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1, &nLineLen, &pcLayout );
00614             if( NULL == pLine ){
00615                 goto end_of_func;
00616             }
00617             /* 改行で終わっているか */
00618             if( ( EOL_NONE != pcLayout->m_cEol ) ){
00619                 goto end_of_func;
00620             }
00621             /*ファイルの最後に移動 */
00622             Command_GOFILEEND( FALSE );
00623         }
00624     }
00625 end_of_func:;
00626
00627     return;
00628 }
00629
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639
00640 /* Undo 元に戻す */
00641 void CEditView::Command_UNDO( void )
00642 {
00643     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
00644         ::MessageBeep( MB_ICONHAND );
00645         return;
00646     }
00647
00648     if( !m_pcEditDoc->IsEnableUndo() ){ /* Undo(元に戻す)可能な状態か？ */
00649         return;
00650     }
00651
00652     MY_RUNNINGTIMER( cRunningTimer, "CEditView::Command_UNDO()" );
00653
00654     COpe*       pcOpe = NULL;
00655     COpeBlk*    pcOpeBlk;
00656     int         nOpeBlkNum;
00657     int         i;
00658     CMemory*    pcMem;
00659     int         bIsModified;
00660 //  int         nNewLine;   /* 挿入された部分の次の位置の行 */
00661 //  int         nNewPos;    /* 挿入された部分の次の位置のデータ位置 */
00662     HDC         hdc;
00663     PAINTSTRUCT ps;
00664     CWaitCursor cWaitCursor( m_hWnd );
00665 //@@@ 2002.01.03 YAZAKI 不使用のため
00666 //  BOOL        bUndo;  /* Undo操作かどうか */
00667 //  bUndo = TRUE;   /* Undo操作かどうか */
00668
00669     int         nCaretPosX_Before;
00670     int         nCaretPosY_Before;
00671 //  int         nCaretPosX_To;
00672 //  int         nCaretPosY_To;
00673     int         nCaretPosX_After;
00674     int         nCaretPosY_After;
00675
00676     /* 各種モードの取り消し */
00677     Command_CANCEL_MODE();
00678
00679     m_bDoing_UndoRedo = TRUE;   /* アンドゥ・リドゥの実行中か */
00680
00681     /* 現在のUndo対象の操作ブロックを返す */
00682     if( NULL != ( pcOpeBlk = m_pcEditDoc->m_cOpeBuf.DoUndo( &bIsModified ) ) ){
00683         m_bDrawSWITCH = FALSE;  //  hor
00684         nOpeBlkNum = pcOpeBlk->GetNum();
00685         for( i = nOpeBlkNum - 1; i >= 0; i-- ){
00686             pcOpe = pcOpeBlk->GetOpe( i );
00687             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
00688                 pcOpe->m_nCaretPosX_PHY_After,
00689                 pcOpe->m_nCaretPosY_PHY_After,
00690                 &nCaretPosX_After,
00691                 &nCaretPosY_After
00692             );
00693             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
00694                 pcOpe->m_nCaretPosX_PHY_Before,
00695                 pcOpe->m_nCaretPosY_PHY_Before,
00696                 &nCaretPosX_Before,
00697                 &nCaretPosY_Before
00698             );
00699
00700
00701         // 2002.02.16 hor
00702         //  if( i == nOpeBlkNum - 1 ){
00703         //      /* カーソルを移動 */
00704         //      MoveCursor( nCaretPosX_After, nCaretPosY_After, TRUE );
00705         //  }else{
00706                 /* カーソルを移動 */
00707                 MoveCursor( nCaretPosX_After, nCaretPosY_After, FALSE );
00708         //  }
00709             switch( pcOpe->m_nOpe ){
00710             case OPE_INSERT:
00711                 pcMem = new CMemory;
00712
00713                 /* 選択範囲の変更 */
00714                 m_nSelectLineBgnFrom = nCaretPosY_Before;   /* 範囲選択開始行(原点) */
00715                 m_nSelectColmBgnFrom = nCaretPosX_Before;   /* 範囲選択開始桁(原点) */
00716                 m_nSelectLineBgnTo = m_nSelectLineBgnFrom;      /* 範囲選択開始行(原点) */
00717                 m_nSelectColmBgnTo = m_nSelectColmBgnFrom;      /* 範囲選択開始桁(原点) */
00718                 m_nSelectLineFrom = nCaretPosY_Before;
00719                 m_nSelectColmFrom = nCaretPosX_Before;
00720                 m_nSelectLineTo = nCaretPosY_After;
00721                 m_nSelectColmTo = nCaretPosX_After;
00722
00723 //              GetSelectedData( *pcMem, FALSE, NULL, FALSE );
00724 //              DeleteData(
00725 //                  FALSE,
00726 //                  bUndo   /* Undo操作かどうか */
00727 //              );
00728
00729
00730                 /* データ置換 削除&挿入にも使える */
00731                 ReplaceData_CEditView(
00732                     m_nSelectLineFrom,      /* 範囲選択開始行 */
00733                     m_nSelectColmFrom,      /* 範囲選択開始桁 */
00734                     m_nSelectLineTo,        /* 範囲選択終了行 */
00735                     m_nSelectColmTo,        /* 範囲選択終了桁 */
00736                     pcMem,                  /* 削除されたデータのコピー(NULL可能) */
00737                     "",                     /* 挿入するデータ */
00738                     0,                      /* 挿入するデータの長さ */
00739                     FALSE                   /*再描画するか否か*/
00740                 );
00741
00742
00743
00744
00745                 /* 選択範囲の変更 */
00746                 m_nSelectLineBgnFrom = -1;  /* 範囲選択開始行(原点) */
00747                 m_nSelectColmBgnFrom = -1;  /* 範囲選択開始桁(原点) */
00748                 m_nSelectLineBgnTo = -1;    /* 範囲選択開始行(原点) */
00749                 m_nSelectColmBgnTo = -1;    /* 範囲選択開始桁(原点) */
00750                 m_nSelectLineFrom = -1;
00751                 m_nSelectColmFrom = -1;
00752                 m_nSelectLineTo = -1;
00753                 m_nSelectColmTo = -1;
00754
00755                 pcOpe->m_pcmemData = pcMem;
00756 //              if( 0 == pcMem->GetLength() ){
00757 //                  MYTRACE( "?? ERROR\n" );
00758 //              }
00759
00760                 break;
00761             case OPE_DELETE:
00762                 pcMem = new CMemory;
00763                 if( 0 < pcOpe->m_pcmemData->GetLength() ){
00764                     /* データ置換 削除&挿入にも使える */
00765                     ReplaceData_CEditView(
00766                         nCaretPosY_Before,                  /* 範囲選択開始行 */
00767                         nCaretPosX_Before,                  /* 範囲選択開始桁 */
00768                         nCaretPosY_Before,                  /* 範囲選択終了行 */
00769                         nCaretPosX_Before,                  /* 範囲選択終了桁 */
00770                         pcMem,                              /* 削除されたデータのコピー(NULL可能) */
00771                         pcOpe->m_pcmemData->GetPtr(),   /* 挿入するデータ */
00772                         pcOpe->m_nDataLen,                  /* 挿入するデータの長さ */
00773                         FALSE                               /*再描画するか否か*/
00774                     );
00775
00776 //                  InsertData_CEditView(
00777 //                      nCaretPosX_Before,
00778 //                      nCaretPosY_Before,
00779 //                      pcOpe->m_pcmemData->GetPtr(),
00780 //                      pcOpe->m_nDataLen,
00781 //                      &nNewLine,
00782 //                      &nNewPos,
00783 //                      NULL,
00784 //                      FALSE,
00785 //                      bUndo   /* Undo操作かどうか */
00786 //                  );
00787                 }
00788                 delete pcOpe->m_pcmemData;
00789                 pcOpe->m_pcmemData = NULL;
00790                 break;
00791             case OPE_MOVECARET:
00792                 /* カーソルを移動 */
00793                 MoveCursor( nCaretPosX_After, nCaretPosY_After, FALSE/*TRUE 2002.02.16 hor */ );
00794                 break;
00795             }
00796
00797             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
00798                 pcOpe->m_nCaretPosX_PHY_Before,
00799                 pcOpe->m_nCaretPosY_PHY_Before,
00800                 &nCaretPosX_Before,
00801                 &nCaretPosY_Before
00802             );
00803             if( i == 0 ){
00804                 /* カーソルを移動 */
00805                 MoveCursor( nCaretPosX_Before, nCaretPosY_Before, TRUE );
00806             }else{
00807                 /* カーソルを移動 */
00808                 MoveCursor( nCaretPosX_Before, nCaretPosY_Before, FALSE );
00809             }
00810         }
00811         m_bDrawSWITCH = TRUE;   //  hor
00812         AdjustScrollBars(); // 2007.07.22 ryoji
00813
00814         /* Undo後の変更フラグ */
00815         m_pcEditDoc->SetModified(bIsModified,true); //  Jan. 22, 2002 genta
00816
00817         m_bDoing_UndoRedo = FALSE;  /* アンドゥ・リドゥの実行中か */
00818
00819         SetBracketPairPos( true );  // 03/03/07 ai
00820
00821         /* 再描画 */
00822         hdc = ::GetDC( m_hWnd );
00823         ps.rcPaint.left = 0;
00824         ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
00825         ps.rcPaint.top = m_nViewAlignTop;
00826         ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
00827 //      OnKillFocus();
00828         OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
00829 //      OnSetFocus();
00830         DispRuler( hdc );
00831         ::ReleaseDC( m_hWnd, hdc );
00832         /* 行番号表示に必要な幅を設定 */
00833         if( m_pcEditDoc->DetectWidthOfLineNumberAreaAllPane( TRUE ) ){
00834             /* キャレットの表示・更新 */
00835             ShowEditCaret();
00836         }
00837
00838         m_pcEditDoc->RedrawInactivePane();/* 他のペインの表示状態を更新 */
00839 #if 0
00840     //  2001/06/21 Start by asa-o: 他のペインの表示状態を更新
00841         m_pcEditDoc->m_cEditViewArr[m_nMyIndex^1].Redraw();
00842         m_pcEditDoc->m_cEditViewArr[m_nMyIndex^2].Redraw();
00843         m_pcEditDoc->m_cEditViewArr[(m_nMyIndex^1)^2].Redraw();
00844     //  2001/06/21 End
00845 #endif
00846
00847     }
00848
00849     m_nCaretPosX_Prev = m_nCaretPosX;   // 2007.10.11 ryoji 追加
00850     m_bDoing_UndoRedo = FALSE;  /* アンドゥ・リドゥの実行中か */
00851
00852     return;
00853 }
00854
00855
00856
00857
00858
00859 /* Redo やり直し */
00860 void CEditView::Command_REDO( void )
00861 {
00862     if( m_bBeginSelect ){   /* マウスによる範囲選択中 */
00863         ::MessageBeep( MB_ICONHAND );
00864         return;
00865     }
00866
00867
00868     if( !m_pcEditDoc->IsEnableRedo() ){ /* Redo(やり直し)可能な状態か？ */
00869         return;
00870     }
00871     MY_RUNNINGTIMER( cRunningTimer, "CEditView::Command_REDO()" );
00872
00873     COpe*       pcOpe = NULL;
00874     COpeBlk*    pcOpeBlk;
00875     int         nOpeBlkNum;
00876     int         i;
00877     CMemory*    pcMem;
00878 //  int         nNewLine;   /* 挿入された部分の次の位置の行 */
00879 //  int         nNewPos;    /* 挿入された部分の次の位置のデータ位置 */
00880     int         bIsModified;
00881     HDC         hdc;
00882     PAINTSTRUCT ps;
00883     CWaitCursor cWaitCursor( m_hWnd );
00884
00885     int         nCaretPosX_Before;
00886     int         nCaretPosY_Before;
00887     int         nCaretPosX_To;
00888     int         nCaretPosY_To;
00889     int         nCaretPosX_After;
00890     int         nCaretPosY_After;
00891
00892
00893     /* 各種モードの取り消し */
00894     Command_CANCEL_MODE();
00895
00896     m_bDoing_UndoRedo = TRUE;   /* アンドゥ・リドゥの実行中か */
00897
00898     /* 現在のRedo対象の操作ブロックを返す */
00899     if( NULL != ( pcOpeBlk = m_pcEditDoc->m_cOpeBuf.DoRedo( &bIsModified ) ) ){
00900         m_bDrawSWITCH = FALSE;  // 2007.07.22 ryoji
00901         nOpeBlkNum = pcOpeBlk->GetNum();
00902         for( i = 0; i < nOpeBlkNum; ++i ){
00903             pcOpe = pcOpeBlk->GetOpe( i );
00904             /*
00905               カーソル位置変換
00906               物理位置(行頭からのバイト数、折り返し無し行位置)
00907               →
00908               レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00909             */
00910 //          int     nPosX2;
00911 //          int     nPosY2;
00912             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
00913                 pcOpe->m_nCaretPosX_PHY_Before,
00914                 pcOpe->m_nCaretPosY_PHY_Before,
00915                 &nCaretPosX_Before,
00916                 &nCaretPosY_Before
00917             );
00918
00919             if( i == 0 ){
00920                 /* カーソルを移動 */
00921                 MoveCursor( nCaretPosX_Before, nCaretPosY_Before, TRUE );
00922             }else{
00923                 /* カーソルを移動 */
00924                 MoveCursor( nCaretPosX_Before, nCaretPosY_Before, FALSE );
00925             }
00926             switch( pcOpe->m_nOpe ){
00927             case OPE_INSERT:
00928                 pcMem = new CMemory;
00929                 if( 0 < pcOpe->m_pcmemData->GetLength() ){
00930                     /* データ置換 削除&挿入にも使える */
00931                     ReplaceData_CEditView(
00932                         nCaretPosY_Before,                  /* 範囲選択開始行 */
00933                         nCaretPosX_Before,                  /* 範囲選択開始桁 */
00934                         nCaretPosY_Before,                  /* 範囲選択終了行 */
00935                         nCaretPosX_Before,                  /* 範囲選択終了桁 */
00936                         NULL,                               /* 削除されたデータのコピー(NULL可能) */
00937                         pcOpe->m_pcmemData->GetPtr(),   /* 挿入するデータ */
00938                         pcOpe->m_pcmemData->GetLength(),    /* 挿入するデータの長さ */
00939                         FALSE                               /*再描画するか否か*/
00940                     );
00941
00942 //                  InsertData_CEditView(
00943 //                      nCaretPosX_Before,
00944 //                      nCaretPosY_Before,
00945 //                      pcOpe->m_pcmemData->GetPtr(),
00946 //                      pcOpe->m_pcmemData->GetLength(),//*pcOpe->m_nDataLen,
00947 //                      &nNewLine,
00948 //                      &nNewPos,
00949 //                      NULL,
00950 //                      FALSE
00951 //                  );
00952                 }
00953                 delete pcOpe->m_pcmemData;
00954                 pcOpe->m_pcmemData = NULL;
00955                 break;
00956             case OPE_DELETE:
00957                 pcMem = new CMemory;
00958
00959                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
00960                     pcOpe->m_nCaretPosX_PHY_To,
00961                     pcOpe->m_nCaretPosY_PHY_To,
00962                     &nCaretPosX_To,
00963                     &nCaretPosY_To
00964                 );
00965
00966                 /* データ置換 削除&挿入にも使える */
00967                 ReplaceData_CEditView(
00968                     nCaretPosY_Before,  /* 範囲選択開始行 */
00969                     nCaretPosX_Before,  /* 範囲選択開始桁 */
00970                     nCaretPosY_To,      /* 範囲選択終了行 */
00971                     nCaretPosX_To,      /* 範囲選択終了桁 */
00972                     pcMem,              /* 削除されたデータのコピー(NULL可能) */
00973                     "",                 /* 挿入するデータ */
00974                     0,                  /* 挿入するデータの長さ */
00975                     FALSE
00976                 );
00977
00978 // 199.12.20
00979 //              DeleteData2(
00980 //                  pcOpe->m_nCaretPosX_Before,
00981 //                  pcOpe->m_nCaretPosY_Before,
00982 //                  pcOpe->m_nDataLen,
00983 //                  pcMem,
00984 //                  NULL,
00985 //                  FALSE,
00986 //                  FALSE
00987 //              );
00988                 pcOpe->m_pcmemData = pcMem;
00989                 break;
00990             case OPE_MOVECARET:
00991                 break;
00992             }
00993             m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
00994                 pcOpe->m_nCaretPosX_PHY_After,
00995                 pcOpe->m_nCaretPosY_PHY_After,
00996                 &nCaretPosX_After,
00997                 &nCaretPosY_After
00998             );
00999
01000             if( i == nOpeBlkNum - 1 ){
01001                 /* カーソルを移動 */
01002                 MoveCursor( nCaretPosX_After, nCaretPosY_After, TRUE );
01003             }else{
01004                 /* カーソルを移動 */
01005                 MoveCursor( nCaretPosX_After, nCaretPosY_After, FALSE );
01006             }
01007         }
01008         m_bDrawSWITCH = TRUE; // 2007.07.22 ryoji
01009         AdjustScrollBars(); // 2007.07.22 ryoji
01010
01011         /* Redo後の変更フラグ */
01012         m_pcEditDoc->SetModified(bIsModified,true); //  Jan. 22, 2002 genta
01013
01014         m_bDoing_UndoRedo = FALSE;  /* アンドゥ・リドゥの実行中か */
01015
01016         SetBracketPairPos( true );  // 03/03/07 ai
01017
01018         /* 再描画 */
01019         hdc = ::GetDC( m_hWnd );
01020         ps.rcPaint.left = 0;
01021         ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
01022         ps.rcPaint.top = m_nViewAlignTop;
01023         ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
01024 //      OnKillFocus();
01025         OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
01026 //      OnSetFocus();
01027         ::ReleaseDC( m_hWnd, hdc );
01028
01029         /* 行番号表示に必要な幅を設定 */
01030         if( m_pcEditDoc->DetectWidthOfLineNumberAreaAllPane( TRUE ) ){
01031             /* キャレットの表示・更新 */
01032             ShowEditCaret();
01033         }
01034
01035         m_pcEditDoc->RedrawInactivePane();/* 他のペインの表示状態を更新 */
01036 #if 0
01037     //  2001/06/21 Start by asa-o: 他のペインの表示状態を更新
01038         m_pcEditDoc->m_cEditViewArr[m_nMyIndex^1].Redraw();
01039         m_pcEditDoc->m_cEditViewArr[m_nMyIndex^2].Redraw();
01040         m_pcEditDoc->m_cEditViewArr[(m_nMyIndex^1)^2].Redraw();
01041     //  2001/06/21 End
01042 #endif
01043     }
01044
01045     m_nCaretPosX_Prev = m_nCaretPosX;   // 2007.10.11 ryoji 追加
01046     m_bDoing_UndoRedo = FALSE;  /* アンドゥ・リドゥの実行中か */
01047
01048     return;
01049 }
01050
01051
01052
01053
01054
01055
01056
01057
01058
01059
01060
01061
01062 /* データ置換 削除&挿入にも使える */
01063 void CEditView::ReplaceData_CEditView(
01064     int         nDelLineFrom,           /* 削除範囲行  From レイアウト行番号 */
01065     int         nDelColmFrom,           /* 削除範囲位置From レイアウト行桁位置 */
01066     int         nDelLineTo,             /* 削除範囲行  To   レイアウト行番号 */
01067     int         nDelColmTo,             /* 削除範囲位置To   レイアウト行桁位置 */
01068     CMemory*    pcmemCopyOfDeleted,     /* 削除されたデータのコピー(NULL可能) */
01069     const char* pInsData,               /* 挿入するデータ */
01070     int         nInsDataLen,            /* 挿入するデータの長さ */
01071     BOOL        bRedraw
01072 //  BOOL        bUndo                   /* Undo操作かどうか */
01073 )
01074 {
01075     {
01076         //  Jun 23, 2000 genta
01077         //  変数名を書き換え忘れていたのを修正
01078
01079         //  Jun. 1, 2000 genta
01080         //  DeleteDataから移動した
01081
01082         //  May. 29, 2000 genta
01083         //  From Here
01084         //  行の後ろが選択されていたときの不具合を回避するため，
01085         //  選択領域から行末以降の部分を取り除く．
01086
01087         //  先頭
01088         int len, pos;
01089         const char *line;
01090         const CLayout* pcLayout;
01091         line = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nDelLineFrom, &len, &pcLayout );
01092         //  Jun. 1, 2000 genta
01093         //  ちゃんとNULLチェックしましょう
01094         if( line != NULL ){
01095             pos = LineColmnToIndex( pcLayout, nDelColmFrom );
01096             //  Jun. 1, 2000 genta
01097             //  同一行の行末以降のみが選択されている場合を考慮する
01098
01099             //  Aug. 22, 2000 genta
01100             //  開始位置がEOFの後ろのときは次行に送る処理を行わない
01101             //  これをやってしまうと存在しない行をPointして落ちる．
01102             if( nDelLineFrom < m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 && pos >= len){
01103                 if( nDelLineFrom == nDelLineTo  ){
01104                     //  m_nSelectLineFrom <= m_nSelectLineTo はチェックしない
01105                     ++nDelLineFrom;
01106                     nDelLineTo = nDelLineFrom;
01107                     nDelColmTo = nDelColmFrom = 0;
01108                 }
01109                 else {
01110                     nDelLineFrom++;
01111                     nDelColmFrom = 0;
01112                 }
01113             }
01114         }
01115
01116         //  末尾
01117         line = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nDelLineTo, &len, &pcLayout );
01118         if( line != NULL ){
01119             pos = LineIndexToColmn( pcLayout, len );
01120
01121             if( nDelColmTo > pos ){
01122                 nDelColmTo = pos;
01123             }
01124         }
01125         //  To Here
01126     }
01127
01128     COpe* pcOpe = NULL;     /* 編集操作要素 COpe */
01129     CMemory* pcMemDeleted;
01130     int nCaretPosXOld;
01131     int nCaretPosYOld;
01132     int nCaretPosX_PHY_Old;
01133     int nCaretPosY_PHY_Old;
01134
01135     nCaretPosXOld = m_nCaretPosX;
01136     nCaretPosYOld = m_nCaretPosY;
01137     nCaretPosX_PHY_Old = m_nCaretPosX_PHY;
01138     nCaretPosY_PHY_Old = m_nCaretPosY_PHY;
01139     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01140         pcOpe = new COpe;
01141         pcOpe->m_nOpe = OPE_MOVECARET;                      /* 操作種別 */
01142 //      pcOpe->m_nCaretPosX_Before = m_nCaretPosX;          /* 操作前のキャレット位置Ｘ */
01143 //      pcOpe->m_nCaretPosY_Before = m_nCaretPosY;          /* 操作前のキャレット位置Ｙ */
01144         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
01145         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
01146
01147
01148 //      pcOpe->m_nCaretPosX_After = m_nCaretPosX;           /* 操作後のキャレット位置Ｘ */
01149 //      pcOpe->m_nCaretPosY_After = m_nCaretPosY;           /* 操作後のキャレット位置Ｙ */
01150 //      pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
01151 //      pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
01152         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
01153         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
01154         /* 操作の追加 */
01155         m_pcOpeBlk->AppendOpe( pcOpe );
01156     }
01157     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01158         pcOpe = new COpe;
01159         pcOpe->m_nOpe = OPE_DELETE;             /* 操作種別 */
01160
01161 //      pcOpe->m_nCaretPosX_Before = nDelColmFrom/*m_nCaretPosX*/;  /* 操作前のキャレット位置Ｘ */
01162 //      pcOpe->m_nCaretPosY_Before = nDelLineFrom/*m_nCaretPosY*/;  /* 操作前のキャレット位置Ｙ */
01163 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01164 //          pcOpe->m_nCaretPosX_Before,
01165 //          pcOpe->m_nCaretPosY_Before,
01166 //          &pcOpe->m_nCaretPosX_PHY_Before,
01167 //          &pcOpe->m_nCaretPosY_PHY_Before
01168 //      );
01169         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01170             nDelColmFrom/*m_nCaretPosX*/,
01171             nDelLineFrom/*m_nCaretPosY*/,
01172             &pcOpe->m_nCaretPosX_PHY_Before,
01173             &pcOpe->m_nCaretPosY_PHY_Before
01174         );
01175
01176 //      pcOpe->m_nCaretPosX_To = nDelColmTo;    /* 操作前のキャレット位置Ｘ */
01177 //      pcOpe->m_nCaretPosY_To = nDelLineTo;    /* 操作前のキャレット位置Ｙ */
01178 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01179 //          pcOpe->m_nCaretPosX_To,
01180 //          pcOpe->m_nCaretPosY_To,
01181 //          &pcOpe->m_nCaretPosX_PHY_To,
01182 //          &pcOpe->m_nCaretPosY_PHY_To
01183 //      );
01184         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01185             nDelColmTo,
01186             nDelLineTo,
01187             &pcOpe->m_nCaretPosX_PHY_To,
01188             &pcOpe->m_nCaretPosY_PHY_To
01189         );
01190
01191
01192
01193 //      pcOpe->m_nCaretPosX_After = pcOpe->m_nCaretPosX_Before; /* 操作後のキャレット位置Ｘ */
01194 //      pcOpe->m_nCaretPosY_After = pcOpe->m_nCaretPosY_Before; /* 操作後のキャレット位置Ｙ */
01195         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
01196         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
01197 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01198 //          pcOpe->m_nCaretPosX_After,
01199 //          pcOpe->m_nCaretPosY_After,
01200 //          &pcOpe->m_nCaretPosX_PHY_After,
01201 //          &pcOpe->m_nCaretPosY_PHY_After
01202 //      );
01203     }else{
01204         pcOpe = NULL;
01205     }
01206     pcMemDeleted = new CMemory;
01207     /*
01208     || バッファサイズの調整
01209     */
01210     if( 2000 < nDelLineTo - nDelLineFrom ){
01211         pcMemDeleted->AllocBuffer( 1024000 );
01212     }
01213
01214
01215     /* 文字列置換 */
01216 //  int     nAddLineNum;    /* 再描画ヒント レイアウト行の増減 */
01217 //  int     nModLineFrom;   /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
01218 //  int     nModLineTo;     /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
01219 //  int     nNewLine;       /* 挿入された部分の次の位置の行(レイアウト行) */
01220 //  int     nNewPos;        /* 挿入された部分の次の位置のデータ位置(レイアウト桁位置) */
01221     LayoutReplaceArg    LRArg;
01222     LRArg.nDelLineFrom = nDelLineFrom;  /* 削除範囲行  From レイアウト行番号 */
01223     LRArg.nDelColmFrom = nDelColmFrom;  /* 削除範囲位置From レイアウト行桁位置 */
01224     LRArg.nDelLineTo = nDelLineTo;      /* 削除範囲行  To   レイアウト行番号 */
01225     LRArg.nDelColmTo = nDelColmTo;      /* 削除範囲位置To   レイアウト行桁位置 */
01226     LRArg.pcmemDeleted = pcMemDeleted;  /* 削除されたデータ */
01227     LRArg.pInsData = pInsData;          /* 挿入するデータ */
01228     LRArg.nInsDataLen = nInsDataLen;    /* 挿入するデータの長さ */
01229 //  LRArg.nAddLineNum = 0;          /* 再描画ヒント レイアウト行の増減 */
01230 //  LRArg.nModLineFrom = 0;         /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
01231 //  LRArg.nModLineTo = 0;           /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
01232 //  LRArg.nNewLine = 0;             /* 挿入された部分の次の位置の行(レイアウト行) */
01233 //  LRArg.nNewPos = 0;              /* 挿入された部分の次の位置のデータ位置(レイアウト桁位置) */
01234 //  LRArg.bUndo = m_bDoing_UndoRedo;                    /* Undo操作かどうか */
01235     m_pcEditDoc->m_cLayoutMgr.ReplaceData_CLayoutMgr(
01236         &LRArg
01237 #if 0
01238         nDelLineFrom,           /* 削除範囲行  From レイアウト行番号 */
01239         nDelColmFrom,           /* 削除範囲位置From レイアウト行桁位置 */
01240         nDelLineTo,             /* 削除範囲行  To   レイアウト行番号 */
01241         nDelColmTo,             /* 削除範囲位置To   レイアウト行桁位置 */
01242         pcMemDeleted,           /* 削除されたデータ */
01243         pInsData,               /* 挿入するデータ */
01244         nInsDataLen,            /* 挿入するデータの長さ */
01245         &nAddLineNum,           /* 再描画ヒント レイアウト行の増減 */
01246         &nModLineFrom,          /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
01247         &nModLineTo,            /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
01248         &nNewLine,              /* 挿入された部分の次の位置の行(レイアウト行) */
01249         &nNewPos,               /* 挿入された部分の次の位置のデータ位置(レイアウト桁位置) */
01250
01251         m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp,   /* シングルクォーテーション文字列を表示する */
01252         m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp,   /* ダブルクォーテーション文字列を表示する */
01253         m_bDoing_UndoRedo   /* Undo操作かどうか */
01254 #endif
01255     );
01256
01257     //  Jan. 30, 2001 genta
01258     //  再描画の時点でファイル更新フラグが適切になっていないといけないので
01259     //  関数の末尾からここへ移動
01260     /* 状態遷移 */
01261     if( FALSE == m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01262         m_pcEditDoc->SetModified(true,bRedraw); //  Jan. 22, 2002 genta
01263     }
01264
01265     /* 現在の選択範囲を非選択状態に戻す */
01266     DisableSelectArea( bRedraw );
01267
01268     /* 行番号表示に必要な幅を設定 */
01269     if( m_pcEditDoc->DetectWidthOfLineNumberAreaAllPane( bRedraw ) ){
01270         /* キャレットの表示・更新 */
01271         ShowEditCaret();
01272     }else{
01273
01274         if( bRedraw ){
01275         /* 再描画 */
01276             HDC hdc;
01277             PAINTSTRUCT ps;
01278             hdc = ::GetDC( m_hWnd );
01279             /* 再描画ヒント レイアウト行の増減 */
01280             //  Jan. 30, 2001 genta 貼り付けで行数が減る場合の考慮が抜けていた
01281             if( 0 != LRArg.nAddLineNum ){
01282                 ps.rcPaint.left = 0;
01283                 ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
01284                 //ps.rcPaint.top = m_nViewAlignTop + (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace) * (m_nCaretPosY - m_nViewTopLine); // 2002.02.25 Del By KK 次で上書きされているため未使用。
01285                 //ps.rcPaint.top = 0/*m_nViewAlignTop*/;            // 2002.02.25 Del By KK
01286                 ps.rcPaint.top = m_nViewAlignTop - m_nTopYohaku;    // ルーラーを範囲に含めない。2002.02.25 Add By KK
01287                 ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
01288             }else{
01289                 ps.rcPaint.left = 0;
01290                 ps.rcPaint.right = m_nViewAlignLeft + m_nViewCx;
01291
01292                 /* 再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う) */
01293                 ps.rcPaint.top = m_nViewAlignTop + (LRArg.nModLineFrom - m_nViewTopLine)* (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace);
01294                 if( m_pcEditDoc->GetDocumentAttribute().m_bWordWrap
01295                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuHead  //@@@ 2002.04.19 MIK
01296                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuTail  //@@@ 2002.04.19 MIK
01297                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuRet   //@@@ 2002.04.19 MIK
01298                  || m_pcEditDoc->GetDocumentAttribute().m_bKinsokuKuto )    //@@@ 2002.04.19 MIK
01299                 {
01300                     ps.rcPaint.top -= (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace);
01301                 }
01302                 if( ps.rcPaint.top < 0 ){
01303                     ps.rcPaint.top = 0;
01304                 }
01305                 ps.rcPaint.bottom = m_nViewAlignTop + (LRArg.nModLineTo - m_nViewTopLine + 1)* (m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace);
01306                 if( m_nViewAlignTop + m_nViewCy < ps.rcPaint.bottom ){
01307                     ps.rcPaint.bottom = m_nViewAlignTop + m_nViewCy;
01308                 }
01309
01310             }
01311 //          OnKillFocus();
01312             OnPaint( hdc, &ps, TRUE );  /* メモリＤＣを使用してちらつきのない再描画 */
01313 //          OnSetFocus();
01314             ::ReleaseDC( m_hWnd, hdc );
01315         }
01316     }
01317
01318     /* 削除されたデータのコピー(NULL可能) */
01319     if( NULL != pcmemCopyOfDeleted      /* 削除されたデータのコピー(NULL可能) */
01320      && 0 < pcMemDeleted->GetLength()   /* 削除したデータの長さ */
01321     ){
01322         *pcmemCopyOfDeleted = *pcMemDeleted;
01323     }
01324
01325     if( !m_bDoing_UndoRedo /* アンドゥ・リドゥの実行中か */
01326      && 0 < pcMemDeleted->GetLength()   /* 削除したデータの長さ */
01327     ){
01328         pcOpe->m_nDataLen = pcMemDeleted->GetLength();  /* 操作に関連するデータのサイズ */
01329         pcOpe->m_pcmemData = pcMemDeleted;              /* 操作に関連するデータ */
01330         /* 操作の追加 */
01331         m_pcOpeBlk->AppendOpe( pcOpe );
01332     }else{
01333         delete pcMemDeleted;
01334         pcMemDeleted = NULL;
01335     }
01336
01337
01338     if( !m_bDoing_UndoRedo      /* アンドゥ・リドゥの実行中か */
01339      && 0 < nInsDataLen         /* 挿入するデータの長さ */
01340     ){
01341         pcOpe = new COpe;
01342         pcOpe->m_nOpe = OPE_INSERT;             /* 操作種別 */
01343
01344 //      pcOpe->m_nCaretPosX_Before = nDelColmFrom/*m_nCaretPosX*/;  /* 操作前のキャレット位置Ｘ */
01345 //      pcOpe->m_nCaretPosY_Before = nDelLineFrom/*m_nCaretPosY*/;  /* 操作前のキャレット位置Ｙ */
01346         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01347             nDelColmFrom,
01348             nDelLineFrom,
01349             &pcOpe->m_nCaretPosX_PHY_Before,
01350             &pcOpe->m_nCaretPosY_PHY_Before
01351         );
01352         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01353             LRArg.nNewPos,
01354             LRArg.nNewLine,
01355             &pcOpe->m_nCaretPosX_PHY_To,
01356             &pcOpe->m_nCaretPosY_PHY_To
01357         );
01358         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_To;
01359         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_To;
01360
01361
01362         /* 操作の追加 */
01363         m_pcOpeBlk->AppendOpe( pcOpe );
01364     }else{
01365         pcOpe = NULL;
01366     }
01367
01368
01369     /* 挿入直後位置へカーソルを移動 */
01370     MoveCursor(
01371         LRArg.nNewPos,      /* 挿入された部分の次の位置のデータ位置(レイアウト桁位置) */
01372         LRArg.nNewLine,     /* 挿入された部分の次の位置の行(レイアウト行) */
01373         bRedraw
01374     );
01375     m_nCaretPosX_Prev = m_nCaretPosX;
01376
01377
01378     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01379         pcOpe = new COpe;
01380         pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
01381 //      pcOpe->m_nCaretPosX_Before = nCaretPosXOld;         /* 操作前のキャレット位置Ｘ */
01382 //      pcOpe->m_nCaretPosY_Before = nCaretPosYOld;         /* 操作前のキャレット位置Ｙ */
01383         pcOpe->m_nCaretPosX_PHY_Before = nCaretPosX_PHY_Old;    /* 操作後のキャレット位置Ｘ */
01384         pcOpe->m_nCaretPosY_PHY_Before = nCaretPosY_PHY_Old;    /* 操作後のキャレット位置Ｙ */
01385
01386 //      pcOpe->m_nCaretPosX_After = m_nCaretPosX;   /* 操作後のキャレット位置Ｘ */
01387 //      pcOpe->m_nCaretPosY_After = m_nCaretPosY;   /* 操作後のキャレット位置Ｙ */
01388         pcOpe->m_nCaretPosX_PHY_After = m_nCaretPosX_PHY;   /* 操作後のキャレット位置Ｘ */
01389         pcOpe->m_nCaretPosY_PHY_After = m_nCaretPosY_PHY;   /* 操作後のキャレット位置Ｙ */
01390 //      m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
01391 //          pcOpe->m_nCaretPosX_After,
01392 //          pcOpe->m_nCaretPosY_After,
01393 //          &pcOpe->m_nCaretPosX_PHY_After,
01394 //          &pcOpe->m_nCaretPosY_PHY_After
01395 //      );
01396         /* 操作の追加 */
01397         m_pcOpeBlk->AppendOpe( pcOpe );
01398     }
01399     //  Jan. 30, 2001 genta
01400     //  ファイル全体の更新フラグが立っていないと各行の更新状態が表示されないので
01401     //  フラグ更新処理を再描画より前に移動する
01402     return;
01403
01404 }
01405
01406
01407
01408
01409
01410
01411
01412
01413
01414
01415
01416 /* C/C++スマートインデント処理 */
01417 void CEditView::SmartIndent_CPP( char cChar )
01418 {
01419
01434
01435
01436     const char* pLine;
01437     int         nLineLen;
01438     int         i;
01439     int         j;
01440     int         k;
01441     int         m;
01442     const char* pLine2;
01443     int         nLineLen2;
01444     int         nLevel;
01445
01446     /* 調整によって置換される箇所 */
01447     int         nXFm = -1;
01448     int         nYFm = -1;
01449     int         nXTo = -1;
01450     int         nYTo = -1;
01451
01452     char*       pszData = NULL;
01453     int         nDataLen;
01454
01455     int         nCPX;
01456     int         nCPY;
01457     COpe*       pcOpe = NULL;
01458     int         nWork;
01459     int         nCaretPosX_PHY;
01460     CDocLine*   pCDocLine = NULL;
01461     int         nCharChars;
01462     int         nSrcLen;
01463     char        pszSrc[1024];
01464     BOOL        bChange;
01465
01466
01467     switch( cChar ){
01468     case CR:
01469     case ':':
01470     case '}':
01471     case ')':
01472     case '{':
01473     case '(':
01474         break;
01475     default:
01476         return;
01477     }
01478     switch( cChar ){
01479     case CR:
01480     case ':':
01481     case '}':
01482     case ')':
01483     case '{':
01484     case '(':
01485         /* インデント調整可能か */
01486 //      if( 0 >= m_nCaretPosY_PHY ){
01487 //          return;
01488 //      }
01489         nCaretPosX_PHY = m_nCaretPosX_PHY;
01490
01491         pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( m_nCaretPosY_PHY, &nLineLen );
01492         if( NULL == pLine ){
01493             if( CR != cChar ){
01494                 return;
01495             }
01496             /* 調整によって置換される箇所 */
01497             nXFm = 0;
01498             nYFm = m_nCaretPosY_PHY;
01499             nXTo = 0;
01500             nYTo = m_nCaretPosY_PHY;
01501         }else{
01502             pCDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY );
01503
01504
01505             //  nWorkに処理の基準桁位置を設定する
01506             if( CR != cChar ){
01507                 nWork = nCaretPosX_PHY - 1;
01508             }else{
01509                 /*
01510                 || CRが入力された時、カーソル直後の識別子をインデントする。
01511                 || カーソル直後の識別子が'}'や')'ならば
01512                 || '}'や')'が入力された時と同じ処理をする
01513                 */
01514
01515                 for( i = nCaretPosX_PHY; i < nLineLen; i++ ){
01516                     if( TAB != pLine[i] && SPACE != pLine[i] ){
01517                         break;
01518                     }
01519                 }
01520                 if( i < nLineLen ){
01521                     // 2005-09-02 D.S.Koba GetSizeOfChar
01522                     nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
01523                     if( 1 == nCharChars && ( pLine[i] == ')' || pLine[i] == '}' ) ){
01524                         cChar = pLine[i];
01525                     }
01526                     nCaretPosX_PHY = i;
01527                     nWork = nCaretPosX_PHY;
01528                 }else{
01529                     nWork = nCaretPosX_PHY;
01530                 }
01531             }
01532             for( i = 0; i < nWork; i++ ){
01533                 if( TAB != pLine[i] && SPACE != pLine[i] ){
01534                     break;
01535                 }
01536             }
01537             if( i < nWork ){
01538                 if( ( ':' == cChar
01539                      && (
01540                             0 == strncmp( &pLine[i], "case", 4 )
01541                          || 0 == strncmp( &pLine[i], "default:", 8 )
01542                          || 0 == strncmp( &pLine[i], "public:", 7 )
01543                          || 0 == strncmp( &pLine[i], "private:", 8 )
01544                          || 0 == strncmp( &pLine[i], "protected:", 10 )
01545                         )
01546                     )
01547                     //  Sep. 18, 2002 かろと
01548                     || (( '{' == cChar ) && ( '#' != pLine[i] ))
01549                     || (( '(' == cChar ) && ( '#' != pLine[i] ))
01550                 ){
01551
01552                 }else{
01553                     return;
01554                 }
01555             }else{
01556                 if( ':' == cChar ){
01557                     return;
01558                 }
01559             }
01560             /* 調整によって置換される箇所 */
01561             nXFm = 0;
01562             nYFm = m_nCaretPosY_PHY;
01563             nXTo = i;
01564             nYTo = m_nCaretPosY_PHY;
01565         }
01566
01567
01568         /* 対応する括弧をさがす */
01569         nLevel = 0; /* {}の入れ子レベル */
01570 //      bString = FALSE;
01571
01572
01573         nDataLen = 0;
01574         for( j = m_nCaretPosY_PHY; j >= 0; --j ){
01575             pLine2 = m_pcEditDoc->m_cDocLineMgr.GetLineStr( j, &nLineLen2 );
01576             if( j == m_nCaretPosY_PHY ){
01577                 // 2005.10.11 ryoji EOF のみの行もスマートインデントの対象にする
01578                 if( NULL == pLine2 ){
01579                     if( m_nCaretPosY_PHY == m_pcEditDoc->m_cDocLineMgr.GetLineCount() )
01580                         continue;   // EOF のみの行
01581                     break;
01582                 }
01583                 nCharChars = &pLine2[nWork] - CMemory::MemCharPrev( pLine2, nLineLen2, &pLine2[nWork] );
01584                 k = nWork - nCharChars;
01585             }else{
01586                 if( NULL == pLine2 )
01587                     break;
01588                 nCharChars = &pLine2[nLineLen2] - CMemory::MemCharPrev( pLine2, nLineLen2, &pLine2[nLineLen2] );
01589                 k = nLineLen2 - nCharChars;
01590             }
01591
01592             for( ; k >= 0; /*k--*/ ){
01593                 if( 1 == nCharChars && ( '}' == pLine2[k] || ')' == pLine2[k] )
01594                 ){
01595                     if( 0 < k && '\'' == pLine2[k - 1]
01596                      && nLineLen2 - 1 > k && '\'' == pLine2[k + 1]
01597                     ){
01598 //                      MYTRACE( "▼[%s]\n", pLine2 );
01599                     }else{
01600                         //同じ行の場合
01601                         if( j == m_nCaretPosY_PHY ){
01602                             if( '{' == cChar && '}' == pLine2[k] ){
01603                                 cChar = '}';
01604                                 nLevel--;   /* {}の入れ子レベル */
01605 //                              return;
01606                             }
01607                             if( '(' == cChar && ')' == pLine2[k] ){
01608                                 cChar = ')';
01609                                 nLevel--;   /* {}の入れ子レベル */
01610 //                              return;
01611                             }
01612                         }
01613
01614                         nLevel++;   /* {}の入れ子レベル */
01615                     }
01616                 }
01617                 if( 1 == nCharChars && ( '{' == pLine2[k] || '(' == pLine2[k] )
01618                 ){
01619                     if( 0 < k && '\'' == pLine2[k - 1]
01620                      && nLineLen2 - 1 > k && '\'' == pLine2[k + 1]
01621                     ){
01622 //                      MYTRACE( "▼[%s]\n", pLine2 );
01623                     }else{
01624                         //同じ行の場合
01625                         if( j == m_nCaretPosY_PHY ){
01626                             if( '{' == cChar && '{' == pLine2[k] ){
01627                                 return;
01628                             }
01629                             if( '(' == cChar && '(' == pLine2[k] ){
01630                                 return;
01631                             }
01632                         }
01633                         if( 0 == nLevel ){
01634                             break;
01635                         }else{
01636                             nLevel--;   /* {}の入れ子レベル */
01637                         }
01638
01639                     }
01640                 }
01641                 nCharChars = &pLine2[k] - CMemory::MemCharPrev( pLine2, nLineLen2, &pLine2[k] );
01642                 if( 0 == nCharChars ){
01643                     nCharChars = 1;
01644                 }
01645                 k -= nCharChars;
01646             }
01647             if( k < 0 ){
01648                 /* この行にはない */
01649                 continue;
01650             }
01651
01652             for( m = 0; m < nLineLen2; m++ ){
01653                 if( TAB != pLine2[m] && SPACE != pLine2[m] ){
01654                     break;
01655                 }
01656             }
01657
01658
01659             nDataLen = m;
01660             nCharChars = (m_pcEditDoc->GetDocumentAttribute().m_bInsSpace)? m_pcEditDoc->m_cLayoutMgr.GetTabSpace(): 1;
01661             pszData = new char[nDataLen + nCharChars + 1];
01662             memcpy( pszData, pLine2, nDataLen );
01663             if( CR  == cChar
01664              || '{' == cChar
01665              || '(' == cChar
01666             ){
01667                 // 2005.10.11 ryoji TABキーがSPACE挿入の設定なら追加インデントもSPACEにする
01668                 //  既存文字列の右端の表示位置を求めた上で挿入するスペースの数を決定する
01669                 if( m_pcEditDoc->GetDocumentAttribute().m_bInsSpace ){  // SPACE挿入設定
01670                     i = m = 0;
01671                     while( i < nDataLen ){
01672                         nCharChars = CMemory::GetSizeOfChar( pszData, nDataLen, i );
01673                         if( nCharChars == 1 && TAB == pszData[i] )
01674                             m += m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace(m);
01675                         else
01676                             m += nCharChars;
01677                         i += nCharChars;
01678                     }
01679                     nCharChars = m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace(m);
01680                     for( i = 0; i < nCharChars; i++ )
01681                         pszData[nDataLen + i] = SPACE;
01682                     pszData[nDataLen + nCharChars] = '\0';
01683                     nDataLen += nCharChars;
01684                 }else{
01685                     pszData[nDataLen] = TAB;
01686                     pszData[nDataLen + 1] = '\0';
01687                     ++nDataLen;
01688                 }
01689             }else{
01690                 pszData[nDataLen] = '\0';
01691
01692             }
01693             break;
01694         }
01695         if( j < 0 ){
01696             /* 対応する括弧が見つからなかった */
01697             if( CR == cChar ){
01698                 return;
01699             }else{
01700                 nDataLen = 0;
01701                 pszData = new char[nDataLen + 1];
01702                 pszData[nDataLen] = '\0';
01703             }
01704         }
01705
01706         /* 調整後のカーソル位置を計算しておく */
01707         nCPX = nCaretPosX_PHY - nXTo + nDataLen;
01708         nCPY = m_nCaretPosY_PHY;
01709
01710         nSrcLen = nXTo - nXFm;
01711         if( nSrcLen >= sizeof( pszSrc ) - 1 ){
01712             //  Sep. 18, 2002 genta メモリリーク対策
01713             delete [] pszData;
01714             return;
01715         }
01716         if( NULL == pLine ){
01717             pszSrc[0] = '\0';
01718         }else{
01719             memcpy( pszSrc, &pLine[nXFm], nSrcLen );
01720             pszSrc[nSrcLen] = '\0';
01721         }
01722
01723
01724         /* 調整によって置換される箇所 */
01725         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nXFm, nYFm, &nXFm, &nYFm );
01726         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nXTo, nYTo, &nXTo, &nYTo );
01727
01728         if( ( 0 == nDataLen && nYFm == nYTo && nXFm == nXTo )
01729          || ( nDataLen == nSrcLen && 0 == memcmp( pszSrc, pszData, nDataLen ) )
01730          ){
01731             bChange = FALSE;
01732         }else{
01733             bChange = TRUE;
01734
01735             /* データ置換 削除&挿入にも使える */
01736             ReplaceData_CEditView(
01737                 nYFm,       /* 削除範囲行  From レイアウト行番号 */
01738                 nXFm,       /* 削除範囲位置From レイアウト行桁位置 */
01739                 nYTo,       /* 削除範囲行  To   レイアウト行番号 */
01740                 nXTo,       /* 削除範囲位置To   レイアウト行桁位置 */
01741                 NULL,       /* 削除されたデータのコピー(NULL可能) */
01742                 pszData,    /* 挿入するデータ */
01743                 nDataLen,   /* 挿入するデータの長さ */
01744                 TRUE
01745             //  BOOL        bUndo           /* Undo操作かどうか */
01746             );
01747         }
01748
01749
01750         /* カーソル位置調整 */
01751         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nCPX, nCPY, &nCPX, &nCPY );
01752         /* 選択エリアの先頭へカーソルを移動 */
01753         MoveCursor( nCPX, nCPY, TRUE );
01754         m_nCaretPosX_Prev = m_nCaretPosX;
01755
01756
01757         if( bChange && !m_bDoing_UndoRedo ){    /* アンドゥ・リドゥの実行中か */
01758             pcOpe = new COpe;
01759             pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
01760             pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
01761             pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
01762             pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
01763             pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
01764             /* 操作の追加 */
01765             m_pcOpeBlk->AppendOpe( pcOpe );
01766         }
01767         break;
01768     }
01769     if( NULL != pszData ){
01770         delete [] pszData;
01771         pszData = NULL;
01772     }
01773     return;
01774 }
01775
01776
01777 /* 2005.10.11 ryoji 前の行にある末尾の空白を削除 */
01778 void CEditView::RTrimPrevLine( void )
01779 {
01780     const char* pLine;
01781     int         nLineLen;
01782     int         i;
01783     int         j;
01784     int         nXFm;
01785     int         nYFm;
01786     int         nXTo;
01787     int         nYTo;
01788     int         nCPX;
01789     int         nCPY;
01790     int         nCharChars;
01791     int         nCaretPosX_PHY;
01792     int         nCaretPosY_PHY;
01793     COpe*       pcOpe = NULL;
01794
01795     nCaretPosX_PHY = m_nCaretPosX_PHY;
01796     nCaretPosY_PHY = m_nCaretPosY_PHY;
01797
01798     if( m_nCaretPosY_PHY > 0 ){
01799         pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStrWithoutEOL( m_nCaretPosY_PHY - 1, &nLineLen );
01800         if( NULL != pLine && nLineLen > 0 ){
01801             i = j = 0;
01802             while( i < nLineLen ){
01803                 nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
01804                 if( 1 == nCharChars ){
01805                     if( TAB != pLine[i] && SPACE != pLine[i])
01806                         j = i + nCharChars;
01807                 }
01808                 else if( 2 == nCharChars ){
01809                     if( !((unsigned char)pLine[i] == (unsigned char)0x81 && (unsigned char)pLine[i + 1] == (unsigned char)0x40) )
01810                         j = i + nCharChars;
01811                 }
01812                 i += nCharChars;
01813             }
01814             if( j < nLineLen ){
01815                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( j, m_nCaretPosY_PHY - 1, &nXFm, &nYFm );
01816                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nLineLen, m_nCaretPosY_PHY - 1, &nXTo, &nYTo );
01817                 if( !( nXFm >= nXTo && nYFm == nYTo) ){
01818                     ReplaceData_CEditView(
01819                         nYFm,       /* 削除範囲行  From レイアウト行番号 */
01820                         nXFm,       /* 削除範囲位置From レイアウト行桁位置 */
01821                         nYTo,       /* 削除範囲行  To   レイアウト行番号 */
01822                         nXTo,       /* 削除範囲位置To   レイアウト行桁位置 */
01823                         NULL,       /* 削除されたデータのコピー(NULL可能) */
01824                         NULL,       /* 挿入するデータ */
01825                         0,          /* 挿入するデータの長さ */
01826                         TRUE
01827                     );
01828                     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nCaretPosX_PHY, nCaretPosY_PHY, &nCPX, &nCPY );
01829                     MoveCursor( nCPX, nCPY, TRUE );
01830
01831                     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
01832                         pcOpe = new COpe;
01833                         pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
01834                         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;  /* 操作前のキャレット位置Ｘ */
01835                         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;  /* 操作前のキャレット位置Ｙ */
01836                         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
01837                         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
01838                         /* 操作の追加 */
01839                         m_pcOpeBlk->AppendOpe( pcOpe );
01840                     }
01841                 }
01842             }
01843         }
01844     }
01845 }
01846
01847
01848 // 2001/06/20 Start by asa-o
01849
01850 // テキストを１行下へスクロール
01851 void CEditView::Command_WndScrollDown( void )
01852 {
01853     int nCaretMarginY;
01854
01855     nCaretMarginY = m_nViewRowNum / _CARETMARGINRATE;
01856     if( nCaretMarginY < 1 )
01857         nCaretMarginY = 1;
01858
01859     nCaretMarginY += 2;
01860
01861     if( m_nCaretPosY > m_nViewRowNum + m_nViewTopLine - (nCaretMarginY + 1) ){
01862         m_cUnderLine.CaretUnderLineOFF( TRUE );
01863     }
01864
01865     //  Sep. 11, 2004 genta 同期用に行数を記憶
01866     //  Sep. 11, 2004 genta 同期スクロールの関数化
01867     SyncScrollV( ScrollAtV(m_nViewTopLine - 1));
01868
01869     // テキストが選択されていない
01870     if( !IsTextSelected() )
01871     {
01872         // カーソルが画面外に出た
01873         if( m_nCaretPosY > m_nViewRowNum + m_nViewTopLine - nCaretMarginY )
01874         {
01875 // From Here 2001.12.03 hor
01876 //          if( m_nCaretPosY > m_pcEditDoc->m_cDocLineMgr.GetLineCount() - nCaretMarginY )
01877 //              Cursor_UPDOWN( (m_pcEditDoc->m_cDocLineMgr.GetLineCount() - nCaretMarginY) - m_nCaretPosY, FALSE );
01878 // To Here 2001.12.03 hor
01879             if( m_nCaretPosY > m_pcEditDoc->m_cLayoutMgr.GetLineCount() - nCaretMarginY )
01880                 Cursor_UPDOWN( (m_pcEditDoc->m_cLayoutMgr.GetLineCount() - nCaretMarginY) - m_nCaretPosY, FALSE );
01881             else
01882                 Cursor_UPDOWN( -1, FALSE);
01883             DrawCaretPosInfo();
01884         }
01885     }
01886
01887     m_cUnderLine.CaretUnderLineON( TRUE );
01888 }
01889
01890 // テキストを１行上へスクロール
01891 void CEditView::Command_WndScrollUp(void)
01892 {
01893     int nCaretMarginY;
01894
01895     nCaretMarginY = m_nViewRowNum / _CARETMARGINRATE;
01896     if( nCaretMarginY < 1 )
01897         nCaretMarginY = 1;
01898
01899     if( m_nCaretPosY < m_nViewTopLine + (nCaretMarginY + 1) ){
01900         m_cUnderLine.CaretUnderLineOFF( TRUE );
01901     }
01902
01903     //  Sep. 11, 2004 genta 同期用に行数を記憶
01904     //  Sep. 11, 2004 genta 同期スクロールの関数化
01905     SyncScrollV( ScrollAtV( m_nViewTopLine + 1 ));
01906
01907     // テキストが選択されていない
01908     if( !IsTextSelected() )
01909     {
01910         // カーソルが画面外に出た
01911         if( m_nCaretPosY < m_nViewTopLine + nCaretMarginY )
01912         {
01913             if( m_nViewTopLine == 1 )
01914                 Cursor_UPDOWN( nCaretMarginY + 1, FALSE );
01915             else
01916                 Cursor_UPDOWN( 1, FALSE );
01917             DrawCaretPosInfo();
01918         }
01919     }
01920
01921     m_cUnderLine.CaretUnderLineON( TRUE );
01922 }
01923
01924 // 2001/06/20 End
01925
01926
01927
01928 /* 次の段落へ進む
01929     2002/04/26 段落の両端で止まるオプションを追加
01930     2002/04/19 新規
01931 */
01932 void CEditView::Command_GONEXTPARAGRAPH( int bSelect )
01933 {
01934     CDocLine* pcDocLine;
01935     int nCaretPointer = 0;
01936
01937     bool nFirstLineIsEmptyLine = false;
01938     /* まずは、現在位置が空行（スペース、タブ、改行記号のみの行）かどうか判別 */
01939     if ( pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY + nCaretPointer ) ){
01940         nFirstLineIsEmptyLine = pcDocLine->IsEmptyLine();
01941         nCaretPointer++;
01942     }
01943     else {
01944         // EOF行でした。
01945         return;
01946     }
01947
01948     /* 次に、nFirstLineIsEmptyLineと異なるところまで読み飛ばす */
01949     while ( pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY + nCaretPointer ) ) {
01950         if ( pcDocLine->IsEmptyLine() == nFirstLineIsEmptyLine ){
01951             nCaretPointer++;
01952         }
01953         else {
01954             break;
01955         }
01956     };
01957
01958     /*  nFirstLineIsEmptyLineが空行だったら、今見ているところは非空行。すなわちおしまい。
01959         nFirstLineIsEmptyLineが非空行だったら、今見ているところは空行。
01960     */
01961     if ( nFirstLineIsEmptyLine == true ){
01962         //  おしまい。
01963     }
01964     else {
01965         //  いま見ているところは空行の1行目
01966         if ( m_pShareData->m_Common.m_bStopsBothEndsWhenSearchParagraph ){  //  段落の両端で止まる
01967         }
01968         else {
01969             /* 仕上げに、空行じゃないところまで進む */
01970             while ( pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY + nCaretPointer ) ) {
01971                 if ( pcDocLine->IsEmptyLine() ){
01972                     nCaretPointer++;
01973                 }
01974                 else {
01975                     break;
01976                 }
01977             };
01978         }
01979     }
01980
01981     //  EOFまで来たり、目的の場所まできたので移動終了。
01982
01983     /* 移動距離を計算 */
01984     int nCaretPosX_Layo;
01985     int nCaretPosY_Layo;
01986
01987     /* 移動前の物理位置 */
01988     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
01989         m_nCaretPosX_PHY, m_nCaretPosY_PHY,
01990         &nCaretPosX_Layo, &nCaretPosY_Layo
01991     );
01992
01993     /* 移動後の物理位置 */
01994     int nCaretPosY_Layo_CaretPointer;
01995     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
01996         m_nCaretPosX_PHY, m_nCaretPosY_PHY + nCaretPointer,
01997         &nCaretPosX_Layo, &nCaretPosY_Layo_CaretPointer
01998     );
01999
02000     Cursor_UPDOWN( nCaretPosY_Layo_CaretPointer - nCaretPosY_Layo, bSelect );
02001     return;
02002 }
02003
02004 /* 前の段落へ進む
02005     2002/04/26 段落の両端で止まるオプションを追加
02006     2002/04/19 新規
02007 */
02008 void CEditView::Command_GOPREVPARAGRAPH( int bSelect )
02009 {
02010     CDocLine* pcDocLine;
02011     int nCaretPointer = -1;
02012
02013     bool nFirstLineIsEmptyLine = false;
02014     /* まずは、現在位置が空行（スペース、タブ、改行記号のみの行）かどうか判別 */
02015     if ( pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY + nCaretPointer ) ){
02016         nFirstLineIsEmptyLine = pcDocLine->IsEmptyLine();
02017         nCaretPointer--;
02018     }
02019     else {
02020         nFirstLineIsEmptyLine = true;
02021         nCaretPointer--;
02022     }
02023
02024     /* 次に、nFirstLineIsEmptyLineと異なるところまで読み飛ばす */
02025     while ( pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY + nCaretPointer ) ) {
02026         if ( pcDocLine->IsEmptyLine() == nFirstLineIsEmptyLine ){
02027             nCaretPointer--;
02028         }
02029         else {
02030             break;
02031         }
02032     };
02033
02034     /*  nFirstLineIsEmptyLineが空行だったら、今見ているところは非空行。すなわちおしまい。
02035         nFirstLineIsEmptyLineが非空行だったら、今見ているところは空行。
02036     */
02037     if ( nFirstLineIsEmptyLine == true ){
02038         //  おしまい。
02039         if ( m_pShareData->m_Common.m_bStopsBothEndsWhenSearchParagraph ){  //  段落の両端で止まる
02040             nCaretPointer++;    //  空行の最上行（段落の末端の次の行）で止まる。
02041         }
02042         else {
02043             /* 仕上げに、空行じゃないところまで進む */
02044             while ( pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY + nCaretPointer ) ) {
02045                 if ( pcDocLine->IsEmptyLine() ){
02046                     break;
02047                 }
02048                 else {
02049                     nCaretPointer--;
02050                 }
02051             };
02052             nCaretPointer++;    //  空行の最上行（段落の末端の次の行）で止まる。
02053         }
02054     }
02055     else {
02056         //  いま見ているところは空行の1行目
02057         if ( m_pShareData->m_Common.m_bStopsBothEndsWhenSearchParagraph ){  //  段落の両端で止まる
02058             nCaretPointer++;
02059         }
02060         else {
02061             nCaretPointer++;
02062         }
02063     }
02064
02065     //  EOFまで来たり、目的の場所まできたので移動終了。
02066
02067     /* 移動距離を計算 */
02068     int nCaretPosX_Layo;
02069     int nCaretPosY_Layo;
02070
02071     /* 移動前の物理位置 */
02072     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
02073         m_nCaretPosX_PHY, m_nCaretPosY_PHY,
02074         &nCaretPosX_Layo, &nCaretPosY_Layo
02075     );
02076
02077     /* 移動後の物理位置 */
02078     int nCaretPosY_Layo_CaretPointer;
02079     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
02080         m_nCaretPosX_PHY, m_nCaretPosY_PHY + nCaretPointer,
02081         &nCaretPosX_Layo, &nCaretPosY_Layo_CaretPointer
02082     );
02083
02084     Cursor_UPDOWN( nCaretPosY_Layo_CaretPointer - nCaretPosY_Layo, bSelect );
02085     return;
02086 }
02087
02088 // From Here 2001.12.03 hor
02089
02091 void CEditView::Command_BOOKMARK_SET(void)
02092 {
02093     CDocLine*   pCDocLine;
02094     int         nX=0;
02095     int         nY;
02096     int         nYfrom,nYto;
02097     if( IsTextSelected() && m_nSelectLineFrom<m_nSelectLineTo ){
02098         nYfrom=m_nSelectLineFrom;
02099         nYto  =m_nSelectLineTo;
02100         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(nX,nYfrom,&nX,&nYfrom);
02101         m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(nX,nYto,&nX,&nYto);
02102         for(nY=nYfrom;nY<=nYto;nY++){
02103             pCDocLine=m_pcEditDoc->m_cDocLineMgr.GetLineInfo( nY );
02104             if(NULL!=pCDocLine)pCDocLine->SetBookMark(!pCDocLine->IsBookMarked());
02105         }
02106     }else{
02107         pCDocLine=m_pcEditDoc->m_cDocLineMgr.GetLineInfo( m_nCaretPosY_PHY );
02108         if(NULL!=pCDocLine)pCDocLine->SetBookMark(!pCDocLine->IsBookMarked());
02109     }
02110     // 2002.01.16 hor 分割したビューも更新
02111     for( int v = 0; v < 4; ++v ) if( m_pcEditDoc->m_nActivePaneIndex != v )m_pcEditDoc->m_cEditViewArr[v].Redraw();
02112     Redraw();
02113     return;
02114 }
02115
02116
02117
02119 void CEditView::Command_BOOKMARK_NEXT(void)
02120 {
02121 //  CDocLine*   pCDocLine;
02122     int         nX=0;
02123     int         nY;
02124 //  int         nRet;
02125     int         nYOld;              // hor
02126     BOOL        bFound  =   FALSE;  // hor
02127     BOOL        bRedo   =   TRUE;   // hor
02128     nY=m_nCaretPosY_PHY;
02129     nYOld=nY;                       // hor
02130 re_do:;                             // hor
02131     if(m_pcEditDoc->m_cDocLineMgr.SearchBookMark(nY, 1 /* 後方検索 */, &nY)){
02132         bFound = TRUE;              // hor
02133         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(nX,nY,&nX,&nY);
02134         //  2006.07.09 genta 新規関数にまとめた
02135         MoveCursorSelecting( nX, nY, m_bSelectingLock );
02136     }
02137     // 2002.01.26 hor
02138     if(m_pShareData->m_Common.m_bSearchAll){
02139         if(!bFound  &&      // 見つからなかった
02140             bRedo           // 最初の検索
02141         ){
02142             nY=-1;  //  2002/06/01 MIK
02143             bRedo=FALSE;
02144             goto re_do;     // 先頭から再検索
02145         }
02146     }
02147     if(bFound){
02148         if(nYOld >= nY)SendStatusMessage("▼先頭から再検索しました");
02149     }else{
02150         SendStatusMessage("▽見つかりませんでした");
02151         if(m_pShareData->m_Common.m_bNOTIFYNOTFOUND)    /* 検索／置換  見つからないときメッセージを表示 */
02152 			::MYMESSAGEBOX( m_hWnd,  MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
02153                 "後方(↓) にブックマークが見つかりません。" );
02154     }
02155     return;
02156 }
02157
02158
02159
02161 void CEditView::Command_BOOKMARK_PREV(void)
02162 {
02163 //  CDocLine*   pCDocLine;
02164     int         nX=0;
02165     int         nY;
02166 //  int         nRet;
02167     int         nYOld;              // hor
02168     BOOL        bFound  =   FALSE;  // hor
02169     BOOL        bRedo   =   TRUE;   // hor
02170     nY=m_nCaretPosY_PHY;
02171     nYOld=nY;                       // hor
02172 re_do:;                             // hor
02173     if(m_pcEditDoc->m_cDocLineMgr.SearchBookMark(nY, 0 /* 前方検索 */, &nY)){
02174         bFound = TRUE;              // hor
02175         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(nX,nY,&nX,&nY);
02176         //  2006.07.09 genta 新規関数にまとめた
02177         MoveCursorSelecting( nX, nY, m_bSelectingLock );
02178     }
02179     // 2002.01.26 hor
02180     if(m_pShareData->m_Common.m_bSearchAll){
02181         if(!bFound  &&  // 見つからなかった
02182             bRedo       // 最初の検索
02183         ){
02184             nY=m_pcEditDoc->m_cLayoutMgr.GetLineCount();    //  2002/06/01 MIK
02185             bRedo=FALSE;
02186             goto re_do; // 末尾から再検索
02187         }
02188     }
02189     if(bFound){
02190         if(nYOld <= nY)SendStatusMessage("▲末尾から再検索しました");
02191     }else{
02192         SendStatusMessage("△見つかりませんでした");
02193         if(m_pShareData->m_Common.m_bNOTIFYNOTFOUND)    /* 検索／置換  見つからないときメッセージを表示 */
02194 			::MYMESSAGEBOX( m_hWnd,  MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
02195                 "前方(↑) にブックマークが見つかりません。" );
02196     }
02197     return;
02198 }
02199
02200
02201
02203 void CEditView::Command_BOOKMARK_RESET(void)
02204 {
02205     m_pcEditDoc->m_cDocLineMgr.ResetAllBookMark();
02206     // 2002.01.16 hor 分割したビューも更新
02207     for( int v = 0; v < 4; ++v ) if( m_pcEditDoc->m_nActivePaneIndex != v )m_pcEditDoc->m_cEditViewArr[v].Redraw();
02208     Redraw();
02209     return;
02210 }
02211
02212
02213 //指定パターンに一致する行をマーク 2002.01.16 hor
02214 //キーマクロで記録できるように  2002.02.08 hor
02215 void CEditView::Command_BOOKMARK_PATTERN( void )
02216 {
02217     //検索or置換ダイアログから呼び出された
02218     if(!ChangeCurRegexp())return;
02219     m_pcEditDoc->m_cDocLineMgr.MarkSearchWord(
02220         m_pShareData->m_szSEARCHKEYArr[0],      /* 検索条件 */
02221         m_pShareData->m_Common.m_bRegularExp,   /* 1==正規表現 */
02222         m_pShareData->m_Common.m_bLoHiCase,     /* 1==英大文字小文字の区別 */
02223         m_pShareData->m_Common.m_bWordOnly,     /* 1==単語のみ検索 */
02224         &m_CurRegexp                            /* 正規表現コンパイルデータ */
02225     );
02226     // 2002.01.16 hor 分割したビューも更新
02227     for( int v = 0; v < 4; ++v ) if( m_pcEditDoc->m_nActivePaneIndex != v )m_pcEditDoc->m_cEditViewArr[v].Redraw();
02228     Redraw();
02229     return;
02230 }
02231
02232
02233
02242 void CEditView::Command_TRIM( BOOL bLeft )
02243 {
02244     bool bBeDisableSelectArea = false;
02245     if(!IsTextSelected()){  //  非選択時は行選択に変更
02246         m_nSelectLineFrom = m_nCaretPosY;
02247         m_nSelectColmFrom = 0;
02248         m_nSelectLineTo   = m_nCaretPosY;
02249         //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
02250         m_nSelectColmTo   = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
02251         bBeDisableSelectArea = true;
02252     }
02253     if(bLeft){
02254         ConvSelectedArea( F_LTRIM );
02255     }else{
02256         ConvSelectedArea( F_RTRIM );
02257     }
02258     if (bBeDisableSelectArea) DisableSelectArea( TRUE );
02259     return;
02260 }
02261
02269 void CEditView::Command_TRIM2( CMemory* pCMemory , BOOL bLeft )
02270 {
02271     const char* pLine;
02272     int         nLineLen;
02273     char*       pDes;
02274     int         nBgn;
02275     int         i,j;
02276     int         nPosDes;
02277     CEOL        cEol;
02278     int         nCharChars;
02279
02280     nBgn = 0;
02281     nPosDes = 0;
02282     /* 変換後に必要なバイト数を調べる */
02283     while( NULL != ( pLine = GetNextLine( pCMemory->GetPtr(), pCMemory->GetLength(), &nLineLen, &nBgn, &cEol ) ) ){ // 2002/2/10 aroka CMemory変更
02284         if( 0 < nLineLen ){
02285             nPosDes += nLineLen;
02286         }
02287         nPosDes += cEol.GetLen();
02288     }
02289     if( 0 >= nPosDes ){
02290         return;
02291     }
02292     pDes = new char[nPosDes + 1];
02293     nBgn = 0;
02294     nPosDes = 0;
02295     if( bLeft ){
02296     // LTRIM
02297         while( NULL != ( pLine = GetNextLine( pCMemory->GetPtr(), pCMemory->GetLength(), &nLineLen, &nBgn, &cEol ) ) ){ // 2002/2/10 aroka CMemory変更
02298             if( 0 < nLineLen ){
02299                 for( i = 0; i <= nLineLen; ++i ){
02300                     if( pLine[i] ==' ' ||
02301                         pLine[i] =='\t'){
02302                         continue;
02303                     }else if( (unsigned char)pLine[i] == (unsigned char)0x81 && (unsigned char)pLine[i + 1] == (unsigned char)0x40 ){
02304                         ++i;
02305                         continue;
02306                     }else{
02307                         break;
02308                     }
02309                 }
02310                 if(nLineLen-i>0){
02311                     memcpy( &pDes[nPosDes], (const char *)&pLine[i], nLineLen );
02312                     nPosDes+=nLineLen-i;
02313                 }
02314             }
02315             memcpy( &pDes[nPosDes], cEol.GetValue(), cEol.GetLen() );
02316             nPosDes += cEol.GetLen();
02317         }
02318     }else{
02319     // RTRIM
02320         while( NULL != ( pLine = GetNextLine( pCMemory->GetPtr(), pCMemory->GetLength(), &nLineLen, &nBgn, &cEol ) ) ){ // 2002/2/10 aroka CMemory変更
02321             if( 0 < nLineLen ){
02322                 // 2005.10.11 ryoji 右から遡るのではなく左から探すように修正（"ａ@" の右２バイトが全角空白と判定される問題の対処）
02323                 i = j = 0;
02324                 while( i < nLineLen ){
02325                     nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
02326                     if( 1 == nCharChars ){
02327                         if( TAB != pLine[i] && SPACE != pLine[i])
02328                             j = i + nCharChars;
02329                     }
02330                     else if( 2 == nCharChars ){
02331                         if( !((unsigned char)pLine[i] == (unsigned char)0x81 && (unsigned char)pLine[i + 1] == (unsigned char)0x40) )
02332                             j = i + nCharChars;
02333                     }
02334                     i += nCharChars;
02335                 }
02336                 if(j>0){
02337                     memcpy( &pDes[nPosDes], (const char *)&pLine[0], j );
02338                     nPosDes+=j;
02339                 }
02340             }
02341             memcpy( &pDes[nPosDes], cEol.GetValue(), cEol.GetLen() );
02342             nPosDes += cEol.GetLen();
02343         }
02344     }
02345     pDes[nPosDes] = '\0';
02346
02347     pCMemory->SetData( pDes, nPosDes );
02348     delete [] pDes;
02349     pDes = NULL;
02350     return;
02351 }
02352
02354 typedef struct _SORTTABLE {
02355     string sKey1;
02356     string sKey2;
02357 } SORTDATA, *SORTTABLE;
02359 bool SortByKeyAsc (SORTTABLE pst1, SORTTABLE pst2) {return (pst1->sKey1<pst2->sKey1);}
02361 bool SortByKeyDesc(SORTTABLE pst1, SORTTABLE pst2) {return (pst1->sKey1>pst2->sKey1);}
02362
02373 void CEditView::Command_SORT(BOOL bAsc) //bAsc:TRUE=昇順,FALSE=降順
02374 {
02375     int         nLFO , nSelectLineFromOld;  /* 範囲選択開始行 */
02376     int         nCFO , nSelectColFromOld ;  /* 範囲選択開始桁 */
02377     int         nLTO , nSelectLineToOld  ;  /* 範囲選択終了行 */
02378     int         nCTO , nSelectColToOld   ;  /* 範囲選択終了桁 */
02379     int         nColmFrom,nColmTo;
02380     int         nCF,nCT;
02381     int         nCaretPosYOLD;
02382     BOOL        bBeginBoxSelectOld;
02383     const char* pLine;
02384     int         nLineLen;
02385     int         i,j;
02386     CMemory     cmemBuf;
02387     std::vector<SORTTABLE> sta;
02388     COpe*       pcOpe = NULL;
02389
02390     if( !IsTextSelected() ){            /* テキストが選択されているか */
02391         return;
02392     }
02393
02394     if( m_bBeginBoxSelect ){
02395     // 2001.12.21 hor 間違い
02396     //  if( m_nSelectLineTo >= m_pcEditDoc->m_cLayoutMgr.GetLineCount()-1 ) {
02397     //      --m_nSelectLineTo;
02398     //  }
02399         nLFO = m_nSelectLineFrom;
02400         nCFO = m_nSelectColmFrom;
02401         nLTO = m_nSelectLineTo;
02402         nCTO = m_nSelectColmTo;
02403         if( m_nSelectColmFrom==m_nSelectColmTo ){
02404             //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
02405             m_nSelectColmTo=m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
02406         }
02407         if(m_nSelectColmFrom<m_nSelectColmTo){
02408             nCF=m_nSelectColmFrom;
02409             nCT=m_nSelectColmTo;
02410         }else{
02411             nCF=m_nSelectColmTo;
02412             nCT=m_nSelectColmFrom;
02413         }
02414     }
02415     bBeginBoxSelectOld=m_bBeginBoxSelect;
02416     nCaretPosYOLD=m_nCaretPosY;
02417     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02418         m_nSelectColmFrom,m_nSelectLineFrom,
02419         &nSelectColFromOld,&nSelectLineFromOld
02420     );
02421     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02422         m_nSelectColmTo,m_nSelectLineTo,
02423         &nSelectColToOld,&nSelectLineToOld
02424     );
02425     if( bBeginBoxSelectOld ){
02426         ++nSelectLineToOld;
02427     }else{
02428         // カーソル位置が行頭じゃない ＆ 選択範囲の終端に改行コードがある場合は
02429         // その行も選択範囲に加える
02430         if ( nSelectColToOld > 0 ) {
02431             // 2006.03.31 Moca nSelectLineToOldは、物理行なのでLayout系からDocLine系に修正
02432             const CDocLine* pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( nSelectLineToOld );
02433             if( NULL != pcDocLine && EOL_NONE != pcDocLine->m_cEol ){
02434                 ++nSelectLineToOld;
02435             }
02436         }
02437     }
02438     nSelectColFromOld = 0;
02439     nSelectColToOld = 0;
02440
02441     //行選択されてない
02442     if(nSelectLineFromOld==nSelectLineToOld){
02443         return;
02444     }
02445
02446     for( i = nSelectLineFromOld; i < nSelectLineToOld; i++ ){
02447         const CDocLine* pcDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( i );
02448         pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( i, &nLineLen );
02449         if( NULL == pLine ) continue;
02450         SORTTABLE pst = new SORTDATA;
02451         if( bBeginBoxSelectOld ){
02452             nColmFrom = LineColmnToIndex( pcDocLine, nCF );
02453             nColmTo   = LineColmnToIndex( pcDocLine, nCT );
02454             if(nColmTo<nLineLen){   // BOX選択範囲の右端が行内に収まっている場合
02455                 // 2006.03.31 genta std::string::assignを使って一時変数削除
02456                 pst->sKey1.assign( &pLine[nColmFrom], nColmTo-nColmFrom );
02457             }else
02458             if(nColmFrom<nLineLen){ // BOX選択範囲の右端が行末より右にはみ出している場合
02459                 pst->sKey1=&pLine[nColmFrom];
02460             }
02461             pst->sKey2=pLine;
02462         }else{
02463             pst->sKey1=pLine;
02464         }
02465         sta.push_back(pst);
02466     }
02467     if(bAsc){
02468         std::stable_sort(sta.begin(), sta.end(), SortByKeyAsc);
02469     }else{
02470         std::stable_sort(sta.begin(), sta.end(), SortByKeyDesc);
02471     }
02472     cmemBuf.SetDataSz( "" );
02473     j=(int)sta.size();
02474     if( bBeginBoxSelectOld ){
02475         for (i=0; i<j; i++) cmemBuf.AppendSz( sta[i]->sKey2.c_str() );
02476     }else{
02477         for (i=0; i<j; i++) cmemBuf.AppendSz( sta[i]->sKey1.c_str() );
02478     }
02479     //sta.clear(); ←これじゃだめみたい
02480     for (i=0; i<j; i++) delete sta[i];
02481     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
02482         nSelectColFromOld,nSelectLineFromOld,
02483         &nSelectColFromOld,&nSelectLineFromOld
02484     );
02485     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
02486         nSelectColToOld,nSelectLineToOld,
02487         &nSelectColToOld,&nSelectLineToOld
02488     );
02489     ReplaceData_CEditView(
02490         nSelectLineFromOld,
02491         nSelectColFromOld,
02492         nSelectLineToOld,
02493         nSelectColToOld,
02494         NULL,                   /* 削除されたデータのコピー(NULL可能) */
02495         cmemBuf.GetPtr(),
02496         cmemBuf.GetLength(),
02497         FALSE
02498     );
02499     //  選択エリアの復元
02500     if(bBeginBoxSelectOld){
02501         m_bBeginBoxSelect=bBeginBoxSelectOld;
02502         m_nSelectLineFrom=nLFO;
02503         m_nSelectColmFrom=nCFO;
02504         m_nSelectLineTo  =nLTO;
02505         m_nSelectColmTo  =nCTO;
02506     }else{
02507         m_nSelectLineFrom=nSelectLineFromOld;
02508         m_nSelectColmFrom=nSelectColFromOld;
02509         m_nSelectLineTo  =nSelectLineToOld;
02510         m_nSelectColmTo  =nSelectColToOld;
02511     }
02512     if(nCaretPosYOLD==m_nSelectLineFrom || m_bBeginBoxSelect ) {
02513         MoveCursor( m_nSelectColmFrom, m_nSelectLineFrom, TRUE );
02514     }else{
02515         MoveCursor( m_nSelectColmTo, m_nSelectLineTo, TRUE );
02516     }
02517     m_nCaretPosX_Prev = m_nCaretPosX;
02518     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02519         pcOpe = new COpe;
02520         pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
02521         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
02522         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
02523         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
02524         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
02525         m_pcOpeBlk->AppendOpe( pcOpe );
02526     }
02527     RedrawAll();
02528 }
02529
02530
02544 void CEditView::Command_MERGE(void)
02545 {
02546     int         nSelectLineFromOld; /* 範囲選択開始行 */
02547     int         nSelectColFromOld ; /* 範囲選択開始桁 */
02548     int         nSelectLineToOld  ; /* 範囲選択終了行 */
02549     int         nSelectColToOld   ; /* 範囲選択終了桁 */
02550     int         nCaretPosYOLD;
02551     const char* pLine;
02552     const char* pLinew;
02553     int         nLineLen;
02554     int         i,j;
02555     CMemory     cmemBuf;
02556     COpe*       pcOpe = NULL;
02557
02558     if( !IsTextSelected() ){            /* テキストが選択されているか */
02559         return;
02560     }
02561     if( m_bBeginBoxSelect ){
02562         return;
02563     }
02564
02565     nCaretPosYOLD=m_nCaretPosY;
02566     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02567         m_nSelectColmFrom,m_nSelectLineFrom,
02568         &nSelectColFromOld,&nSelectLineFromOld
02569     );
02570     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys(
02571         m_nSelectColmTo,m_nSelectLineTo,
02572         &nSelectColToOld,&nSelectLineToOld
02573     );
02574
02575     // 2001.12.21 hor
02576     // カーソル位置が行頭じゃない ＆ 選択範囲の終端に改行コードがある場合は
02577     // その行も選択範囲に加える
02578     if ( nSelectColToOld > 0 ) {
02579         const CLayout* pcLayout=m_pcEditDoc->m_cLayoutMgr.Search(nSelectLineToOld);
02580         if( NULL != pcLayout && EOL_NONE != pcLayout->m_cEol ){
02581             ++nSelectLineToOld;
02582         }
02583     }
02584
02585     nSelectColFromOld = 0;
02586     nSelectColToOld = 0;
02587
02588     //行選択されてない
02589     if(nSelectLineFromOld==nSelectLineToOld){
02590         return;
02591     }
02592
02593     pLinew=NULL;
02594     cmemBuf.SetDataSz( "" );
02595     for( i = nSelectLineFromOld; i < nSelectLineToOld; i++ ){
02596         pLine = m_pcEditDoc->m_cDocLineMgr.GetLineStr( i, &nLineLen );
02597         if( NULL == pLine ) continue;
02598         if( NULL == pLinew || strcmp(pLine,pLinew) ){
02599             cmemBuf.AppendSz( pLine );
02600         }
02601         pLinew=pLine;
02602     }
02603     j=m_pcEditDoc->m_cDocLineMgr.GetLineCount();
02604     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
02605         nSelectColFromOld,nSelectLineFromOld,
02606         &nSelectColFromOld,&nSelectLineFromOld
02607     );
02608     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
02609         nSelectColToOld,nSelectLineToOld,
02610         &nSelectColToOld,&nSelectLineToOld
02611     );
02612     ReplaceData_CEditView(
02613         nSelectLineFromOld,
02614         nSelectColFromOld,
02615         nSelectLineToOld,
02616         nSelectColToOld,
02617         NULL,                   /* 削除されたデータのコピー(NULL可能) */
02618         cmemBuf.GetPtr(),
02619         cmemBuf.GetLength(),
02620         FALSE
02621     );
02622     j-=m_pcEditDoc->m_cDocLineMgr.GetLineCount();
02623
02624     //  選択エリアの復元
02625     m_nSelectLineFrom=nSelectLineFromOld;
02626     m_nSelectColmFrom=nSelectColFromOld;
02627     m_nSelectLineTo  =nSelectLineToOld-j;
02628     m_nSelectColmTo  =nSelectColToOld;
02629     if(nCaretPosYOLD==m_nSelectLineFrom){
02630         MoveCursor( m_nSelectColmFrom, m_nSelectLineFrom, TRUE );
02631     }else{
02632         MoveCursor( m_nSelectColmTo, m_nSelectLineTo, TRUE );
02633     }
02634     m_nCaretPosX_Prev = m_nCaretPosX;
02635     if( !m_bDoing_UndoRedo ){   /* アンドゥ・リドゥの実行中か */
02636         pcOpe = new COpe;
02637         pcOpe->m_nOpe = OPE_MOVECARET;              /* 操作種別 */
02638         pcOpe->m_nCaretPosX_PHY_Before = m_nCaretPosX_PHY;              /* 操作前のキャレット位置Ｘ */
02639         pcOpe->m_nCaretPosY_PHY_Before = m_nCaretPosY_PHY;              /* 操作前のキャレット位置Ｙ */
02640         pcOpe->m_nCaretPosX_PHY_After = pcOpe->m_nCaretPosX_PHY_Before; /* 操作後のキャレット位置Ｘ */
02641         pcOpe->m_nCaretPosY_PHY_After = pcOpe->m_nCaretPosY_PHY_Before; /* 操作後のキャレット位置Ｙ */
02642         m_pcOpeBlk->AppendOpe( pcOpe );
02643     }
02644     RedrawAll();
02645
02646     if(j){
02647 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_TOPMOST, GSTR_APPNAME,
02648             "%d行をマージしました。", j
02649         );
02650     }else{
02651 		::MYMESSAGEBOX( m_hWnd,   MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
02652             "マージ可能な行がみつかりませんでした。" );
02653     }
02654 }
02655
02656
02657
02658 // To Here 2001.12.03 hor
02659
02660 /* メニューからの再変換対応 minfu 2002.04.09
02661
02662     @date 2002.04.11 YAZAKI COsVersionInfoのカプセル化を守りましょう。
02663 */
02664 void CEditView::Command_Reconvert(void)
02665 {
02666     int     nSize;
02667     PRECONVERTSTRING    pReconv;
02668     COsVersionInfo cOs;
02669 //  POSVERSIONINFO  pOsVer;
02670     bool    bUseUnicodeATOK;
02671     HIMC hIMC ;
02672
02673
02674     //サイズを取得
02675     nSize = SetReconvertStruct(NULL,false);
02676
02677     if( 0 == nSize )  // サイズ０の時は何もしない
02678         return ;
02679
02680     bUseUnicodeATOK = false;
02681     //バージョンチェック
02682 //  pOsVer  = cOs.GetOsVersionInfo();
02683     if( cOs.OsDoesNOTSupportReconvert() ){
02684
02685         // MSIMEかどうか
02686         HWND hWnd = ImmGetDefaultIMEWnd(m_hWnd);
02687         if (SendMessage(hWnd, m_uWM_MSIME_RECONVERTREQUEST, FID_RECONVERT_VERSION, 0)){
02688             SendMessage(hWnd, m_uWM_MSIME_RECONVERTREQUEST, 0, (LPARAM)m_hWnd);
02689             return ;
02690         }
02691         // ATOKが使えるかどうか
02692
02693         //説明の取得
02694         char sz[256];
02695
02696         ImmGetDescription(GetKeyboardLayout(0),sz,256);
02697         if ( (strncmp(sz,"ATOK",4) == 0) && (NULL != AT_ImmSetReconvertString) ){
02698             bUseUnicodeATOK = true;
02699         }else{
02700             //対応IMEなし
02701             return;
02702         }
02703     }else{
02704         //現在のIMEが対応しているかどうか
02705         //IMEのプロパティ
02706         if ( !(ImmGetProperty(GetKeyboardLayout(0),IGP_SETCOMPSTR) & SCS_CAP_SETRECONVERTSTRING) ){
02707             //対応IMEなし
02708             return ;
02709         }
02710     }
02711
02712     //IMEのコンテキスト取得
02713     hIMC = ::ImmGetContext( m_hWnd );
02714
02715     //領域確保
02716     pReconv = (PRECONVERTSTRING)::HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS, nSize);
02717
02718     //構造体設定
02719     SetReconvertStruct( pReconv, bUseUnicodeATOK);
02720
02721     //変換範囲の調整
02722     if(bUseUnicodeATOK){
02723         (*AT_ImmSetReconvertString)(hIMC, SCS_QUERYRECONVERTSTRING, pReconv, pReconv->dwSize);
02724     }else{
02725         ::ImmSetCompositionString(hIMC, SCS_QUERYRECONVERTSTRING, pReconv, pReconv->dwSize, NULL,0);
02726     }
02727     //調整した変換範囲を選択する
02728     SetSelectionFromReonvert(pReconv, bUseUnicodeATOK);
02729
02730     //再変換実行
02731     if(bUseUnicodeATOK){
02732         (*AT_ImmSetReconvertString)(hIMC, SCS_SETRECONVERTSTRING, pReconv, pReconv->dwSize);
02733     }else{
02734         ::ImmSetCompositionString(hIMC, SCS_SETRECONVERTSTRING, pReconv, pReconv->dwSize, NULL,0);
02735     }
02736     //領域解放
02737     ::HeapFree(GetProcessHeap(),0,(LPVOID)pReconv);
02738     ::ImmReleaseContext( m_hWnd, hIMC);
02739 }
02740
02745 void CEditView::Command_CtrlCode_Dialog( void )
02746 {
02747     CDlgCtrlCode    cDlgCtrlCode;
02748
02749     //コントロールコード入力ダイアログを表示する
02750     if( FALSE == cDlgCtrlCode.DoModal( m_hInstance, m_hWnd, (LPARAM)m_pcEditDoc ) )
02751     {
02752         return;
02753     }
02754
02755     //コントロールコードを入力する
02756     Command_CHAR( cDlgCtrlCode.m_nCode );
02757
02758     return;
02759 }
02760
02765 void CEditView::Command_JUMP_SRCHSTARTPOS(void)
02766 {
02767     if( 0 <= m_nSrchStartPosX_PHY && 0 <= m_nSrchStartPosY_PHY )
02768     {
02769         int x, y;
02770         /* 範囲選択中か */
02771         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log(
02772             m_nSrchStartPosX_PHY,
02773             m_nSrchStartPosY_PHY,
02774             &x, &y );
02775         //  2006.07.09 genta 選択状態を保つ
02776         MoveCursorSelecting( x, y, m_bSelectingLock );
02777     }
02778     else
02779     {
02780 //      SendStatusMessage( "検索開始位置がありません" );
02781         ::MessageBeep( MB_ICONHAND );
02782     }
02783     return;
02784 }
02785
02790 void CEditView::Command_Favorite( void )
02791 {
02792     CDlgFavorite    cDlgFavorite;
02793
02794     //ダイアログを表示する
02795     if( FALSE == cDlgFavorite.DoModal( m_hInstance, m_hWnd, (LPARAM)m_pcEditDoc ) )
02796     {
02797         return;
02798     }
02799
02800     return;
02801 }
02802
02808 void CEditView::Command_CHGMOD_EOL( enumEOLType e ){
02809     if( EOL_NONE < e && e < EOL_CODEMAX  ){
02810         m_pcEditDoc->SetNewLineCode( e );
02811         // ステータスバーを更新するため
02812         // キャレットの行桁位置を表示する関数を呼び出す
02813         DrawCaretPosInfo();
02814     }
02815 }
02816
02820 void CEditView::Command_WINTOPMOST( LPARAM lparam )
02821 {
02822     m_pcEditDoc->m_pcEditWnd->WindowTopMost( int(lparam) );
02823 }
02824
02828 void CEditView::Command_SET_QUOTESTRING( const char* quotestr )
02829 {
02830     if( quotestr == NULL )
02831         return;
02832
02833     strncpy( m_pShareData->m_Common.m_szInyouKigou, quotestr,
02834         sizeof( m_pShareData->m_Common.m_szInyouKigou ));
02835
02836     m_pShareData->m_Common.m_szInyouKigou[ sizeof( m_pShareData->m_Common.m_szInyouKigou ) - 1 ] = '\0';
02837 }
02838
02843 void CEditView::Command_WINLIST( int nCommandFrom )
02844 {
02845     CEditWnd    *pCEditWnd;
02846     pCEditWnd = m_pcEditDoc->m_pcEditWnd;
02847
02848     //ウィンドウ一覧をポップアップ表示する
02849     pCEditWnd->PopupWinList( nCommandFrom != 1 );   // 2007.02.27 ryoji アクセラレータキーからでなければマウス位置に
02850
02851 }
02852
02853
02857 void CEditView::Command_TRACEOUT( const char* outputstr, int nFlgOpt )
02858 {
02859     if( outputstr == NULL )
02860         return;
02861
02862     // 0x01 ExpandParameterによる文字列展開有無
02863     if (nFlgOpt & 0x01) {
02864         char Buffer[2048];
02865         m_pcEditDoc->ExpandParameter(outputstr, Buffer, 2047);
02866         CShareData::getInstance()->TraceOut( "%s", Buffer );
02867     } else {
02868         CShareData::getInstance()->TraceOut( "%s", outputstr );
02869     }
02870
02871     // 0x02 改行コードの有無
02872     if ((nFlgOpt & 0x02) == 0) CShareData::getInstance()->TraceOut( "\r\n" );
02873
02874 }
02875
02894 BOOL CEditView::Command_PUTFILE( const char* filename, const int nCharCode, int nFlgOpt )
02895 {
02896     BOOL    bResult = TRUE;
02897     int     nSaveCharCode;
02898     nSaveCharCode = nCharCode;
02899     if(filename[0] == '\0') {
02900         return FALSE;
02901     }
02902
02903     if(nSaveCharCode == CODE_AUTODETECT) nSaveCharCode = m_pcEditDoc->m_nCharCode;
02904
02905     //  2007.09.08 genta CEditDoc::FileWrite()にならって砂時計カーソル
02906     CWaitCursor cWaitCursor( m_hWnd );
02907
02908     if(nFlgOpt & 0x01)
02909     {   /* 選択範囲を出力 */
02910         try
02911         {
02912             CFileWrite cfw(filename);
02913             if ( m_pcEditDoc->m_bBomExist) {
02914                 switch( nSaveCharCode ){
02915                 case CODE_UNICODE:
02916                     cfw.Write("\xff\xfe",sizeof(char)*2);
02917                     break;
02918                 case CODE_UNICODEBE:
02919                     cfw.Write( "\xfe\xff", sizeof(char) * 2 );
02920                     break;
02921                 case CODE_UTF8: // 2003.05.04 Moca BOMの間違いを訂正
02922                     cfw.Write( "\xef\xbb\xbf", sizeof(char) * 3 );
02923                     break;
02924                 default:
02925                     //  genta ここに来るのはバグだ
02926                     //  2007.09.08 genta 追加
02927 					::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, _T("作者に教えて欲しいエラー"),
02928                     _T("CEditView::Command_PUTFILE/BOM Error\nSaveCharCode=%d"), nSaveCharCode );
02929                     ;
02930                 }
02931             }
02932
02933             /* 選択範囲の取得 */
02934             CMemory cMem;
02935             GetSelectedData(cMem, FALSE, NULL, FALSE, FALSE);
02936
02937             /* 書き込み時のコード変換 */
02938             switch( nSaveCharCode ){
02939                 case CODE_UNICODE:  cMem.SJISToUnicode();break; /* SJIS→Unicodeコード変換 */
02940                 case CODE_UTF8:     cMem.SJISToUTF8();break;    /* SJIS→UTF-8コード変換 */
02941                 case CODE_UTF7:     cMem.SJISToUTF7();break;    /* SJIS→UTF-7コード変換 */
02942                 case CODE_EUC:      cMem.SJISToEUC();break;     /* SJIS→EUCコード変換 */
02943                 case CODE_JIS:      cMem.SJIStoJIS();break;     /* SJIS→JISコード変換 */
02944                 case CODE_UNICODEBE:    cMem.SJISToUnicodeBE();break;   /* SJIS→UnicodeBEコード変換 */
02945                 case CODE_SJIS:     /* NO BREAK */
02946                 default:            break;
02947             }
02948             if( 0 < cMem.GetLength() ) cfw.Write(cMem.GetPtr(),sizeof(char)*cMem.GetLength());
02949         }
02950         catch(CError_FileOpen)
02951         {
02952 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
02953                 "\'%s\'\nファイルを保存できません。\nパスが存在しないか、他のアプリケーションで使用されている可能性があります。",
02954                 filename);
02955             bResult = FALSE;
02956         }
02957         catch(CError_FileWrite)
02958         {
02959 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME, "ファイルの書き込み中にエラーが発生しました。" );
02960             bResult = FALSE;
02961         }
02962     }
02963     else {  /* ファイル全体を出力 */
02964         FILETIME    filetime;
02965         HWND        hwndProgress;
02966         CEditWnd*   pCEditWnd = m_pcEditDoc->m_pcEditWnd;
02967
02968         if( NULL != pCEditWnd ){
02969             hwndProgress = pCEditWnd->m_hwndProgressBar;
02970         }else{
02971             hwndProgress = NULL;
02972         }
02973         if( NULL != hwndProgress ){
02974             ::ShowWindow( hwndProgress, SW_SHOW );
02975         }
02976
02977         bResult = (BOOL)m_pcEditDoc->m_cDocLineMgr.WriteFile(   // 一時ファイル出力
02978                     filename, m_pcEditDoc->m_hWnd, hwndProgress, nSaveCharCode,
02979                     &filetime, EOL_NONE , m_pcEditDoc->m_bBomExist );
02980
02981         if(hwndProgress) ::ShowWindow( hwndProgress, SW_HIDE );
02982     }
02983     return bResult;
02984 }
02985
03002 BOOL CEditView::Command_INSFILE( const char* filename, int nCharCode, int nFlgOpt )
03003 {
03004     CFileLoad   cfl;
03005     const char* pLine;
03006     CEOL cEol;
03007     int         nLineLen;
03008     int         nLineNum = 0;
03009     int         nSaveCharCode;
03010
03011     CDlgCancel* pcDlgCancel = NULL;
03012     HWND        hwndCancel = NULL;
03013     HWND        hwndProgress = NULL;
03014     BOOL        bResult = TRUE;
03015
03016     if(filename[0] == '\0') {
03017         return FALSE;
03018     }
03019
03020     //  2007.09.08 genta CEditDoc::FileRead()にならって砂時計カーソル
03021     CWaitCursor cWaitCursor( m_hWnd );
03022
03023     // 範囲選択中なら挿入後も選択状態にするため /* 2007.04.29 maru */
03024     int nLineFrom, nColmFrom;
03025     BOOL    bBeforeTextSelected = IsTextSelected();
03026     if (bBeforeTextSelected){
03027         nLineFrom = m_nSelectLineFrom;
03028         nColmFrom = m_nSelectColmFrom;
03029     }
03030
03031
03032     nSaveCharCode = nCharCode;
03033     if(nSaveCharCode == CODE_AUTODETECT) {
03034         FileInfo        fi;
03035         CMRU            cMRU;
03036         if ( cMRU.GetFileInfo( filename, &fi ) ){
03037                 nSaveCharCode = fi.m_nCharCode;
03038         } else {
03039             nSaveCharCode = m_pcEditDoc->m_nCharCode;
03040         }
03041     }
03042
03043     /* ここまできて文字コードが決定しないならどこかおかしい */
03044     if( 0 > nSaveCharCode || nSaveCharCode > CODE_CODEMAX ) nSaveCharCode = CODE_SJIS;
03045
03046     try{
03047         // ファイルを開く
03048         cfl.FileOpen( filename, nSaveCharCode, NULL );
03049
03050         /* ファイルサイズが65KBを越えたら進捗ダイアログ表示 */
03051         if ( 0x10000 < cfl.GetFileSize() ) {
03052             pcDlgCancel = new CDlgCancel;
03053             if( NULL != ( hwndCancel = pcDlgCancel->DoModeless( ::GetModuleHandle( NULL ), NULL, IDD_OPERATIONRUNNING ) ) ){
03054                 hwndProgress = ::GetDlgItem( hwndCancel, IDC_PROGRESS );
03055                 ::SendMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, 100) );
03056                 ::SendMessage( hwndProgress, PBM_SETPOS, 0, 0 );
03057             }
03058         }
03059
03060         // ReadLineはファイルから 文字コード変換された1行を読み出します
03061         // エラー時はthrow CError_FileRead を投げます
03062         while( NULL != ( pLine = cfl.ReadLine( &nLineLen, &cEol ) ) ){
03063             ++nLineNum;
03064             Command_INSTEXT(FALSE, pLine, nLineLen, TRUE);
03065
03066             /* 進捗ダイアログ有無 */
03067             if( NULL == pcDlgCancel ){
03068                 continue;
03069             }
03070             /* 処理中のユーザー操作を可能にする */
03071             if( !::BlockingHook( pcDlgCancel->m_hWnd ) ){
03072                 break;
03073             }
03074             /* 中断ボタン押下チェック */
03075             if( pcDlgCancel->IsCanceled() ){
03076                 break;
03077             }
03078             if( 0 == ( nLineNum & 0xFF ) ){
03079                 ::PostMessage( hwndProgress, PBM_SETPOS, cfl.GetPercent(), 0 );
03080                 Redraw();
03081             }
03082         }
03083         // ファイルを明示的に閉じるが、ここで閉じないときはデストラクタで閉じている
03084         cfl.FileClose();
03085     } // try
03086     catch( CError_FileOpen ){
03087 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME, "file open error [%s]", filename );
03088         bResult = FALSE;
03089     }
03090     catch( CError_FileRead ){
03091 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME, "ファイルの読み込み中にエラーが発生しました。" );
03092         bResult = FALSE;
03093     } // 例外処理終わり
03094
03095     if( NULL != pcDlgCancel ){
03096         delete pcDlgCancel;
03097     }
03098     if (bBeforeTextSelected){   // 挿入された部分を選択状態に
03099         SetSelectArea( nLineFrom, nColmFrom, m_nCaretPosY, m_nCaretPosX );
03100         DrawSelectArea();
03101     }
03102     Redraw();
03103     return bResult;
03104 }
03105
03106 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Diff.cpp

CEditView_Diff.cpp

DIFF差分表示 [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include "sakura_rc.h"
#include "etc_uty.h"
#include "global.h"
#include "CDlgDiff.h"
#include "CEditDoc.h"
#include "CEditView.h"
#include "CDocLine.h"
#include "CDocLineMgr.h"
#include "CWaitCursor.h"
#include "COsVersionInfo.h"
#include "mymessage.h"
#include "debug.h"

CEditView_Diff.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define SAKURA_DIFF_TEMP_PREFIX "sakura_diff_"

説明

DIFF差分表示

作者:
MIK
日付:
2002/05/25 ExecCmd を参考にDIFF実行結果を取り込む処理作成

2005/10/29 maru Diff差分表示処理を分離し、ダイアログあり版・ダイアログなし版の両方からコール

CEditView_Diff.cpp で定義されています。

マクロ定義

#define SAKURA_DIFF_TEMP_PREFIX "sakura_diff_"

CEditView_Diff.cpp の 38 行で定義されています。

参照元 CEditView::MakeDiffTmpFile().

Sakura-Editorに対してSat Oct 27 02:17:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_Diff.cpp ソースファイル

CEditView_Diff.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2001, GAE, YAZAKI, hor
00011     Copyright (C) 2002, hor, MIK
00012     Copyright (C) 2003, MIK, ryoji, genta
00013     Copyright (C) 2004, genta
00014     Copyright (C) 2005, maru
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holders to use this code for other purpose.
00019 */
00020
00021 #include "stdafx.h"
00022 #include <stdio.h>
00023 #include <stdlib.h>
00024 #include <io.h>
00025 #include "sakura_rc.h"
00026 #include "etc_uty.h"
00027 #include "global.h"
00028 #include "CDlgDiff.h"
00029 #include "CEditDoc.h"
00030 #include "CEditView.h"
00031 #include "CDocLine.h"
00032 #include "CDocLineMgr.h"
00033 #include "CWaitCursor.h"
00034 #include "COsVersionInfo.h"
00035 #include "mymessage.h"
00036 #include "debug.h"
00037
00038 #define SAKURA_DIFF_TEMP_PREFIX "sakura_diff_"
00039
00045 void CEditView::Command_Diff( const char *szTmpFile2, int nFlgOpt )
00046 {
00047     bool    bTmpFile1 = false;
00048     char    szTmpFile1[_MAX_PATH * 2];
00049
00050     if( -1 == ::GetFileAttributes( szTmpFile2 ) )
00051     {
00052 		::MYMESSAGEBOX( m_hWnd,   MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00053             _T( "差分コマンド実行は失敗しました。\n\n比較するファイルが見つかりません。" ) );
00054         return;
00055     }
00056
00057     //自ファイル
00058     if (m_pcEditDoc->IsModified() == FALSE ) strcpy( szTmpFile1, m_pcEditDoc->GetFilePath());
00059     else if (MakeDiffTmpFile ( szTmpFile1, NULL )) bTmpFile1 = true;
00060     else return;
00061
00062     //差分表示
00063     ViewDiffInfo(szTmpFile1, szTmpFile2, nFlgOpt);
00064
00065     //一時ファイルを削除する
00066     if( bTmpFile1 ) unlink( szTmpFile1 );
00067
00068     return;
00069
00070 }
00071
00079 void CEditView::Command_Diff_Dialog( void )
00080 {
00081     CDlgDiff    cDlgDiff;
00082     bool    bTmpFile1 = false, bTmpFile2 = false;
00083     char    szTmpFile1[_MAX_PATH * 2];
00084     char    szTmpFile2[_MAX_PATH * 2];
00085
00086     //DIFF差分表示ダイアログを表示する
00087     if( FALSE == cDlgDiff.DoModal( m_hInstance, m_hWnd, (LPARAM)m_pcEditDoc,
00088         m_pcEditDoc->GetFilePath(),
00089         m_pcEditDoc->IsModified() ) )
00090     {
00091         return;
00092     }
00093
00094     //自ファイル
00095     if (m_pcEditDoc->IsModified() == FALSE ) strcpy( szTmpFile1, m_pcEditDoc->GetFilePath());
00096     else if (MakeDiffTmpFile ( szTmpFile1, NULL )) bTmpFile1 = true;
00097     else return;
00098
00099     //相手ファイル
00100     if (cDlgDiff.m_bIsModifiedDst == FALSE ) strcpy( szTmpFile2, cDlgDiff.m_szFile2);
00101     else if (MakeDiffTmpFile ( szTmpFile2, cDlgDiff.m_hWnd_Dst )) bTmpFile2 = true;
00102     else
00103     {
00104         if( bTmpFile1 ) unlink( szTmpFile1 );
00105         return;
00106     }
00107
00108     //差分表示
00109     ViewDiffInfo(szTmpFile1, szTmpFile2, cDlgDiff.m_nDiffFlgOpt);
00110
00111
00112     //一時ファイルを削除する
00113     if( bTmpFile1 ) unlink( szTmpFile1 );
00114     if( bTmpFile2 ) unlink( szTmpFile2 );
00115
00116     return;
00117 }
00118
00137 void CEditView::ViewDiffInfo(
00138     const char  *pszFile1,
00139     const char  *pszFile2,
00140     int         nFlgOpt )
00141 /*
00142     bool    bFlgCase,       //大文字小文字同一視
00143     bool    bFlgBlank,      //空白無視
00144     bool    bFlgWhite,      //空白変更無視
00145     bool    bFlgBLine,      //空行無視
00146     bool    bFlgTabSpc,     //TAB-SPACE変換
00147     bool    bFlgFile12,     //編集中のファイルが旧ファイル
00148 */
00149 {
00150     char    cmdline[1024];
00151     HANDLE  hStdOutWrite, hStdOutRead;
00152 //  CDlgCancel  cDlgCancel;
00153     CWaitCursor cWaitCursor( m_hWnd );
00154     int     nFlgFile12 = 1;
00155
00156     /* exeのあるフォルダ */
00157     char    szExeFolder[_MAX_PATH + 1];
00158
00159     GetExedir( cmdline, _T("diff.exe") );
00160     SplitPath_FolderAndFile( cmdline, szExeFolder, NULL );
00161
00162     //  From Here Dec. 28, 2002 MIK
00163     //  diff.exeの存在チェック
00164     if( -1 == ::GetFileAttributes( cmdline ) )
00165     {
00166 		::MYMESSAGEBOX( m_hWnd,   MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00167             _T( "差分コマンド実行は失敗しました。\n\nDIFF.EXE が見つかりません。" ) );
00168         return;
00169     }
00170
00171     //今あるDIFF差分を消去する。
00172     if( m_pcEditDoc->m_cDocLineMgr.IsDiffUse() )
00173         Command_Diff_Reset();
00174         //m_pcEditDoc->m_cDocLineMgr.ResetAllDiffMark();
00175
00176     PROCESS_INFORMATION pi;
00177     ZeroMemory( &pi, sizeof(PROCESS_INFORMATION) );
00178
00179     //子プロセスの標準出力と接続するパイプを作成
00180     SECURITY_ATTRIBUTES sa;
00181     ZeroMemory( &sa, sizeof(SECURITY_ATTRIBUTES) );
00182     sa.nLength              = sizeof(SECURITY_ATTRIBUTES);
00183     sa.bInheritHandle       = TRUE;
00184     sa.lpSecurityDescriptor = NULL;
00185     hStdOutRead = hStdOutWrite = 0;
00186     if( CreatePipe( &hStdOutRead, &hStdOutWrite, &sa, 1000 ) == FALSE )
00187     {
00188         //エラー。対策無し
00189         return;
00190     }
00191
00192     //継承不能にする
00193     DuplicateHandle( GetCurrentProcess(), hStdOutRead,
00194                 GetCurrentProcess(), NULL,
00195                 0, FALSE, DUPLICATE_SAME_ACCESS );
00196
00197     //CreateProcessに渡すSTARTUPINFOを作成
00198     STARTUPINFO sui;
00199     ZeroMemory( &sui, sizeof(STARTUPINFO) );
00200     sui.cb          = sizeof(STARTUPINFO);
00201     sui.dwFlags     = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
00202     sui.wShowWindow = SW_HIDE;
00203     sui.hStdInput   = GetStdHandle( STD_INPUT_HANDLE );
00204     sui.hStdOutput  = hStdOutWrite;
00205     sui.hStdError   = hStdOutWrite;
00206
00207     //オプションを作成する
00208     char    szOption[16];   // "-cwbBt"
00209     strcpy( szOption, "-" );
00210     if( nFlgOpt & 0x0001 ) strcat( szOption, "i" ); //-i ignore-case         大文字小文字同一視
00211     if( nFlgOpt & 0x0002 ) strcat( szOption, "w" ); //-w ignore-all-space    空白無視
00212     if( nFlgOpt & 0x0004 ) strcat( szOption, "b" ); //-b ignore-space-change 空白変更無視
00213     if( nFlgOpt & 0x0008 ) strcat( szOption, "B" ); //-B ignore-blank-lines  空行無視
00214     if( nFlgOpt & 0x0010 ) strcat( szOption, "t" ); //-t expand-tabs         TAB-SPACE変換
00215     if( strcmp( szOption, "-" ) == 0 ) strcpy( szOption, "" );  //オプションなし
00216     if( nFlgOpt & 0x0020 ) nFlgFile12 = 0;
00217     else                   nFlgFile12 = 1;
00218
00219     //  To Here Dec. 28, 2002 MIK
00220
00221     //OSバージョン取得
00222     {
00223         COsVersionInfo cOsVer;
00224         //コマンドライン文字列作成(MAX:1024)
00225         if (cOsVer.IsWin32NT()){
00226             wsprintf( cmdline, "cmd.exe /C \"\"%s\\%s\" %s \"%s\" \"%s\"\"",
00227                     szExeFolder,    //sakura.exeパス
00228                     "diff.exe",     //diff.exe
00229                     szOption,       //diffオプション
00230                     ( nFlgFile12 ? pszFile2 : pszFile1 ),
00231                     ( nFlgFile12 ? pszFile1 : pszFile2 )
00232                 );
00233         }
00234         else{
00235             wsprintf( cmdline, "command.com /C \"%s\\%s\" %s \"%s\" \"%s\"",
00236                     szExeFolder,    //sakura.exeパス
00237                     "diff.exe",     //diff.exe
00238                     szOption,       //diffオプション
00239                     ( nFlgFile12 ? pszFile2 : pszFile1 ),
00240                     ( nFlgFile12 ? pszFile1 : pszFile2 )
00241                 );
00242         }
00243     }
00244
00245     //コマンドライン実行
00246     if( CreateProcess( NULL, cmdline, NULL, NULL, TRUE,
00247             CREATE_NEW_CONSOLE, NULL, NULL, &sui, &pi ) == FALSE )
00248     {
00249 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00250                 "差分コマンド実行は失敗しました。\n\n%s", cmdline );
00251         goto finish;
00252     }
00253
00254     {
00255         DWORD   read_cnt;
00256         DWORD   new_cnt;
00257         char    work[1024];
00258         int     j;
00259         bool    bLoopFlag = true;
00260         bool    bLineHead = true;   //行頭か
00261         bool    bDiffInfo = false;  //DIFF情報か
00262         int     nDiffLen = 0;       //DIFF情報長
00263         char    szDiffData[100];    //DIFF情報
00264         bool    bFirst = true;  //先頭か？  //@@@ 2003.05.31 MIK
00265
00266         //中断ダイアログ表示
00267 //      cDlgCancel.DoModeless( m_hInstance, m_hwndParent, IDD_EXECRUNNING );
00268
00269         //実行結果の取り込み
00270         do {
00271             //処理中のユーザー操作を可能にする
00272 //          if( !::BlockingHook( cDlgCancel.m_hWnd ) )
00273 //          {
00274 //              bDiffInfo = false;
00275 //              break;
00276 //          }
00277
00278             //中断ボタン押下チェック
00279 //          if( cDlgCancel.IsCanceled() )
00280 //          {
00281                 //指定されたプロセスと、そのプロセスが持つすべてのスレッドを終了させます。
00282 //              ::TerminateProcess( pi.hProcess, 0 );
00283 //              bDiffInfo = false;
00284 //              break;
00285 //          }
00286
00287             //プロセスが終了していないか確認
00288             // Jul. 04, 2003 genta CPUを100%使い果たすのを防ぐため 200msec休む
00289             // Jan. 23, 2004 genta
00290             // 子プロセスの出力をどんどん受け取らないと子プロセスが
00291             // 停止してしまうため，待ち時間を200msから20msに減らす
00292             if( WaitForSingleObject( pi.hProcess, 20 ) == WAIT_OBJECT_0 )
00293             {
00294                 //終了していればループフラグをFALSEとする
00295                 //ただしループの終了条件は プロセス終了 && パイプが空
00296                 bLoopFlag = FALSE;
00297             }
00298
00299             new_cnt = 0;
00300             if( PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) )
00301             {
00302                 while( new_cnt > 0 )                                                //待機中のものがある
00303                 {
00304                     if( new_cnt >= sizeof(work) - 2 )                           //パイプから読み出す量を調整
00305                     {
00306                         new_cnt = sizeof(work) - 2;
00307                     }
00308                     ReadFile( hStdOutRead, &work[0], new_cnt, &read_cnt, NULL );    //パイプから読み出し
00309                     if( read_cnt == 0 )
00310                     {
00311                         // Jan. 23, 2004 genta while追加のため制御を変更
00312                         break;
00313                     }
00314
00315                     //@@@ 2003.05.31 MIK
00316                     //  先頭がBinary filesならバイナリファイルのため意味のある差分が取られなかった
00317                     if( bFirst )
00318                     {
00319                         bFirst = false;
00320                         if( strncmp( work, "Binary files ", strlen( "Binary files " ) ) == 0 )
00321                         {
00322 							::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00323                                 "DIFF差分を行おうとしたファイルはバイナリファイルです。" );
00324                             goto finish;
00325                         }
00326                     }
00327
00328                     //読み出した文字列をチェックする
00329                     for( j = 0; j < (int)read_cnt/*-1*/; j++ )
00330                     {
00331                         if( bLineHead )
00332                         {
00333                             if( work[j] != '\n' && work[j] != '\r' )
00334                             {
00335                                 bLineHead = false;
00336
00337                                 //DIFF情報の始まりか？
00338                                 if( work[j] >= '0' && work[j] <= '9' )
00339                                 {
00340                                     bDiffInfo = true;
00341                                     nDiffLen = 0;
00342                                     szDiffData[nDiffLen++] = work[j];
00343                                 }
00344                                 /*
00345                                 else if( work[j] == '<' || work[j] == '>' || work[j] == '-' )
00346                                 {
00347                                     bDiffInfo = false;
00348                                     nDiffLen = 0;
00349                                 }
00350                                 */
00351                             }
00352                         }
00353                         else
00354                         {
00355                             //行末に達したか？
00356                             if( work[j] == '\n' || work[j] == '\r' )
00357                             {
00358                                 //DIFF情報があれば解析する
00359                                 if( bDiffInfo == true && nDiffLen > 0 )
00360                                 {
00361                                     szDiffData[nDiffLen] = '\0';
00362                                     AnalyzeDiffInfo( szDiffData, nFlgFile12 );
00363                                     nDiffLen = 0;
00364                                 }
00365
00366                                 bDiffInfo = false;
00367                                 bLineHead = true;
00368                             }
00369                             else if( bDiffInfo == true )
00370                             {
00371                                 //DIFF情報に追加する
00372                                 szDiffData[nDiffLen++] = work[j];
00373                                 if( nDiffLen >= 99 )
00374                                 {
00375                                     nDiffLen = 0;
00376                                     bDiffInfo = false;
00377                                 }
00378                             }
00379                         }
00380                     }
00381                     // Jan. 23, 2004 genta
00382                     // 子プロセスの出力をどんどん受け取らないと子プロセスが
00383                     // 停止してしまうため，バッファが空になるまでどんどん読み出す．
00384                     new_cnt = 0;
00385                     if( ! PeekNamedPipe( hStdOutRead, NULL, 0, NULL, &new_cnt, NULL ) ){
00386                         break;
00387                     }
00388                     Sleep(0); // Jan. 23, 2004 genta タスクスイッチを促す
00389                 }
00390             }
00391         } while( bLoopFlag || new_cnt > 0 );
00392
00393         //残ったDIFF情報があれば解析する
00394         if( bDiffInfo == true && nDiffLen > 0 )
00395         {
00396             szDiffData[nDiffLen] = '\0';
00397             AnalyzeDiffInfo( szDiffData, nFlgFile12 );
00398         }
00399     }
00400
00401
00402     //DIFF差分が見つからなかったときにメッセージ表示
00403     if( nFlgOpt & 0x0040 )
00404     {
00405         if( false == m_pcEditDoc->m_cDocLineMgr.IsDiffUse() )
00406         {
00407             ::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00408                 "DIFF差分は見つかりませんでした。" );
00409         }
00410     }
00411
00412
00413 finish:
00414     //終了処理
00415     CloseHandle( hStdOutWrite );
00416     CloseHandle( hStdOutRead  );
00417     if( pi.hProcess ) CloseHandle( pi.hProcess );
00418     if( pi.hThread  ) CloseHandle( pi.hThread  );
00419
00420     //分割したビューも更新
00421     for( int v = 0; v < 4; ++v )
00422         if( m_pcEditDoc->m_nActivePaneIndex != v )
00423             m_pcEditDoc->m_cEditViewArr[v].Redraw();
00424     Redraw();
00425
00426     return;
00427 }
00428
00437 void CEditView::AnalyzeDiffInfo(
00438     const char  *pszDiffInfo,
00439     int     nFlgFile12 )
00440 {
00441     /*
00442      * 99a99        旧ファイル99行の次行に新ファイル99行が追加された。
00443      * 99a99,99     旧ファイル99行の次行に新ファイル99～99行が追加された。
00444      * 99c99        旧ファイル99行が新ファイル99行に変更された。
00445      * 99,99c99,99  旧ファイル99～99行が新ファイル99～99行に変更された。
00446      * 99d99        旧ファイル99行が新ファイル99行の次行から削除された。
00447      * 99,99d99     旧ファイル99～99行が新ファイル99行の次行から削除された。
00448      * s1,e1 mode s2,e2
00449      * 先頭の場合0の次行となることもある
00450      */
00451     const char  *q;
00452     int     s1, e1, s2, e2;
00453     char    mode;
00454
00455     //前半ファイルの開始行
00456     s1 = 0;
00457     for( q = pszDiffInfo; *q; q++ )
00458     {
00459         if( *q == ',' ) break;
00460         if( *q == 'a' || *q == 'c' || *q == 'd' ) break;
00461         //行番号を抽出
00462         if( *q >= '0' && *q <= '9' ) s1 = s1 * 10 + (*q - '0');
00463         else return;
00464     }
00465     if( ! *q ) return;
00466
00467     //前半ファイルの終了行
00468     if( *q != ',' )
00469     {
00470         //開始・終了行番号は同じ
00471         e1 = s1;
00472     }
00473     else
00474     {
00475         e1 = 0;
00476         for( q++; *q; q++ )
00477         {
00478             if( *q == 'a' || *q == 'c' || *q == 'd' ) break;
00479             //行番号を抽出
00480             if( *q >= '0' && *q <= '9' ) e1 = e1 * 10 + (*q - '0');
00481             else return;
00482         }
00483     }
00484     if( ! *q ) return;
00485
00486     //DIFFモードを取得
00487     mode = *q;
00488
00489     //後半ファイルの開始行
00490     s2 = 0;
00491     for( q++; *q; q++ )
00492     {
00493         if( *q == ',' ) break;
00494         //行番号を抽出
00495         if( *q >= '0' && *q <= '9' ) s2 = s2 * 10 + (*q - '0');
00496         else return;
00497     }
00498
00499     //後半ファイルの終了行
00500     if( *q != ',' )
00501     {
00502         //開始・終了行番号は同じ
00503         e2 = s2;
00504     }
00505     else
00506     {
00507         e2 = 0;
00508         for( q++; *q; q++ )
00509         {
00510             //行番号を抽出
00511             if( *q >= '0' && *q <= '9' ) e2 = e2 * 10 + (*q - '0');
00512             else return;
00513         }
00514     }
00515
00516     //行末に達してなければエラー
00517     if( *q ) return;
00518
00519     //抽出したDIFF情報から行番号に差分マークを付ける
00520     if( 0 == nFlgFile12 )   //編集中ファイルは旧ファイル
00521     {
00522         if     ( mode == 'a' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_DELETE, s1    , e1     );
00523         else if( mode == 'c' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_CHANGE, s1 - 1, e1 - 1 );
00524         else if( mode == 'd' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_APPEND, s1 - 1, e1 - 1 );
00525     }
00526     else    //編集中ファイルは新ファイル
00527     {
00528         if     ( mode == 'a' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_APPEND, s2 - 1, e2 - 1 );
00529         else if( mode == 'c' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_CHANGE, s2 - 1, e2 - 1 );
00530         else if( mode == 'd' ) m_pcEditDoc->m_cDocLineMgr.SetDiffMarkRange( MARK_DIFF_DELETE, s2    , e2     );
00531     }
00532
00533     return;
00534 }
00535
00538 void CEditView::Command_Diff_Next( void )
00539 {
00540     int         nX = 0;
00541     int         nY;
00542     int         nYOld;
00543     BOOL        bFound = FALSE;
00544     BOOL        bRedo = TRUE;
00545
00546     nY = m_nCaretPosY_PHY;
00547     nYOld = nY;
00548
00549 re_do:;
00550     if( m_pcEditDoc->m_cDocLineMgr.SearchDiffMark( nY, 1 /* 後方検索 */, &nY ) )
00551     {
00552         bFound = TRUE;
00553         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nX, nY, &nX, &nY );
00554         if( m_bSelectingLock )
00555         {
00556             if( !IsTextSelected() ) BeginSelectArea();
00557         }
00558         else
00559         {
00560             if( IsTextSelected() ) DisableSelectArea( TRUE );
00561         }
00562         MoveCursor( nX, nY, TRUE );
00563         if( m_bSelectingLock )
00564         {
00565             ChangeSelectAreaByCurrentCursor( nX, nY );
00566         }
00567     }
00568
00569     if( m_pShareData->m_Common.m_bSearchAll )
00570     {
00571         if( !bFound     // 見つからなかった
00572          && bRedo )     // 最初の検索
00573         {
00574             nY = 0 - 1; /* 1個手前を指定 */
00575             bRedo = FALSE;
00576             goto re_do;     // 先頭から再検索
00577         }
00578     }
00579     if( bFound )
00580     {
00581         if( nYOld >= nY ) SendStatusMessage( "▼先頭から再検索しました" );
00582     }
00583     else
00584     {
00585         SendStatusMessage( "▽見つかりませんでした" );
00586         if( m_pShareData->m_Common.m_bNOTIFYNOTFOUND )  /* 見つからないときメッセージを表示 */
00587 			::MYMESSAGEBOX( m_hWnd,  MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00588                 "後方(↓) に差分が見つかりません。" );
00589     }
00590
00591     return;
00592 }
00593
00594
00595
00598 void CEditView::Command_Diff_Prev( void )
00599 {
00600     int         nX = 0;
00601     int         nY;
00602     int         nYOld;
00603     BOOL        bFound = FALSE;
00604     BOOL        bRedo = TRUE;
00605
00606     nY = m_nCaretPosY_PHY;
00607     nYOld = nY;
00608
00609 re_do:;
00610     if( m_pcEditDoc->m_cDocLineMgr.SearchDiffMark( nY, 0 /* 前方検索 */, &nY ) )
00611     {
00612         bFound = TRUE;
00613         m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( nX, nY, &nX, &nY );
00614         if( m_bSelectingLock )
00615         {
00616             if( !IsTextSelected() ) BeginSelectArea();
00617         }
00618         else
00619         {
00620             if( IsTextSelected() ) DisableSelectArea( TRUE );
00621         }
00622         MoveCursor( nX, nY, TRUE );
00623         if( m_bSelectingLock )
00624         {
00625             ChangeSelectAreaByCurrentCursor( nX, nY );
00626         }
00627     }
00628
00629     if( m_pShareData->m_Common.m_bSearchAll )
00630     {
00631         if( !bFound // 見つからなかった
00632          && bRedo ) // 最初の検索
00633         {
00634             nY = m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 + 1;  /* 1個手前を指定 */
00635             bRedo = FALSE;
00636             goto re_do; // 末尾から再検索
00637         }
00638     }
00639     if( bFound )
00640     {
00641         if( nYOld <= nY ) SendStatusMessage( "▲末尾から再検索しました" );
00642     }
00643     else
00644     {
00645         SendStatusMessage( "△見つかりませんでした" );
00646         if( m_pShareData->m_Common.m_bNOTIFYNOTFOUND )  /* 見つからないときメッセージを表示 */
00647 			::MYMESSAGEBOX( m_hWnd,  MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00648                 "前方(↑) に差分が見つかりません。" );
00649     }
00650
00651     return;
00652 }
00653
00658 void CEditView::Command_Diff_Reset( void )
00659 {
00660     m_pcEditDoc->m_cDocLineMgr.ResetAllDiffMark();
00661
00662     //分割したビューも更新
00663     for( int v = 0; v < 4; ++v )
00664         if( m_pcEditDoc->m_nActivePaneIndex != v )
00665             m_pcEditDoc->m_cEditViewArr[v].Redraw();
00666     Redraw();
00667     return;
00668 }
00669
00676 BOOL CEditView::MakeDiffTmpFile( char* filename, HWND hWnd )
00677 {
00678     const char* pLineData;
00679     int     nLineLen;
00680     int     y;
00681     FILE    *fp;
00682
00683     char    *pszTmpName;
00684
00685     pszTmpName = _tempnam( NULL, SAKURA_DIFF_TEMP_PREFIX );
00686     if( NULL == pszTmpName )
00687     {
00688 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00689             "差分コマンド実行は失敗しました。" );
00690         return FALSE;
00691     }
00692
00693     strcpy( filename, pszTmpName );
00694     free( pszTmpName );
00695
00696     //自分か？
00697     if( NULL == hWnd )
00698     {
00699         CEOL    cEol( m_pcEditDoc->m_cSaveLineCode );
00700         FILETIME    filetime;
00701         return (BOOL)m_pcEditDoc->m_cDocLineMgr.WriteFile(
00702             filename,
00703             m_pcEditDoc->m_hWnd,
00704             NULL,
00705             m_pcEditDoc->m_nCharCode,
00706             &filetime,
00707             cEol,
00708             m_pcEditDoc->m_bBomExist);  //  Jul. 26, 2003 ryoji BOM
00709     }
00710
00711     fp = fopen( filename, "wb" );
00712     if( NULL == fp )
00713     {
00714 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00715             "差分コマンド実行は失敗しました。\n\n一時ファイルを作成できません。" );
00716         return FALSE;
00717     }
00718
00719     y = 0;
00720
00721     // 行(改行単位)データの要求
00722     if( hWnd )
00723     {
00724         pLineData = m_pShareData->m_szWork;
00725         nLineLen = ::SendMessage( hWnd, MYWM_GETLINEDATA, y, 0 );
00726     }
00727     else
00728     {
00729         pLineData = m_pcEditDoc->m_cDocLineMgr.GetLineStr( y, &nLineLen );
00730     }
00731
00732     while( 1 )
00733     {
00734         if( 0 == nLineLen || NULL == pLineData ) break;
00735
00736         if( hWnd && nLineLen > sizeof( m_pShareData->m_szWork ) )
00737         {
00738             // 一時バッファを超えている
00739             fclose( fp );
00740 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00741                 "差分コマンド実行は失敗しました。\n\n行が長すぎます。" );
00742             unlink( filename );     //関数の実行に失敗したとき、一時ファイルの削除は関数内で行う。2005.10.29
00743             return FALSE;
00744         }
00745
00746         if( 1 != fwrite( pLineData, nLineLen, 1, fp ) )
00747         {
00748             fclose( fp );
00749 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00750                 "差分コマンド実行は失敗しました。\n\n一時ファイルを作成できません。" );
00751             unlink( filename );     //関数の実行に失敗したとき、一時ファイルの削除は関数内で行う。2005.10.29
00752             return FALSE;
00753         }
00754
00755         y++;
00756
00757         // 行(改行単位)データの要求
00758         if( hWnd ) nLineLen = ::SendMessage( hWnd, MYWM_GETLINEDATA, y, 0 );
00759         else       pLineData = m_pcEditDoc->m_cDocLineMgr.GetLineStr( y, &nLineLen );
00760     }
00761
00762     fclose( fp );
00763
00764     return TRUE;
00765 }
00766
00767
00768 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_New.cpp

CEditView_New.cpp

CEditViewクラス [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <io.h>
#include "CEditView.h"
#include "debug.h"
#include "funccode.h"
#include "CRunningTimer.h"
#include "charcode.h"
#include "mymessage.h"
#include "CEditWnd.h"
#include "CShareData.h"
#include "CDlgCancel.h"
#include "sakura_rc.h"
#include "etc_uty.h"
#include "CRegexKeyword.h"
#include "my_icmp.h"
#include "Clayout.h"
#include "CDocLine.h"

CEditView_New.cppのインクルード依存関係図

ソースコードを見る。

説明

CEditViewクラス

作者:
Norio Nakatani
日付:
1998/12/08 作成

CEditView_New.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_New.cpp ソースファイル

CEditView_New.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, genta, MIK
00010     Copyright (C) 2001, hor, YAZAKI
00011     Copyright (C) 2002, MIK, Moca, genta, hor, novice, YAZAKI, aroka, KK
00012     Copyright (C) 2003, MIK, ryoji, かろと
00013     Copyright (C) 2004, genta, Moca, MIK
00014     Copyright (C) 2005, genta, Moca, MIK, D.S.Koba
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holders to use this code for other purpose.
00019 */
00020
00021 #include "stdafx.h"
00022 #include <stdlib.h>
00023 #include <time.h>
00024 #include <io.h>
00025 #include "CEditView.h"
00026 #include "debug.h"
00027 #include "funccode.h"
00028 #include "CRunningTimer.h"
00029 #include "charcode.h"
00030 #include "mymessage.h"
00031 #include "CEditWnd.h"
00032 #include "CShareData.h"
00033 #include "CDlgCancel.h"
00034 #include "sakura_rc.h"
00035 #include "etc_uty.h"
00036 #include "CRegexKeyword.h"  //@@@ 2001.11.17 add MIK
00037 #include "my_icmp.h"    //@@@ 2002.01.13 add
00038 #include "Clayout.h"// 2002/2/10 aroka
00039 #include "CDocLine.h"// 2002/2/10 aroka
00040
00045 HFONT CEditView::ChooseFontHandle( BOOL bFat, BOOL bUnderLine )
00046 {
00047     if( bFat ){ /* 太字か */
00048         if( bUnderLine ){   /* 下線か */
00049             return m_hFont_HAN_FAT_UL;
00050         }else{
00051             return m_hFont_HAN_FAT;
00052         }
00053     }else{
00054         if( bUnderLine ){   /* 下線か */
00055             return m_hFont_HAN_UL;
00056         }else{
00057             return m_hFont_HAN;
00058         }
00059     }
00060 }
00061
00062
00063 /* 通常の描画処理 new */
00064 void CEditView::OnPaint( HDC hdc, PAINTSTRUCT *pPs, BOOL bUseMemoryDC )
00065 {
00066     MY_RUNNINGTIMER( cRunningTimer, "CEditView::OnPaint" );
00067
00068     // 2004.01.28 Moca デスクトップに作画しないように
00069     if( NULL == hdc ){
00070         return;
00071     }
00072 //  if( m_bDoing_UndoRedo ){    /* アンドゥ・リドゥの実行中か */
00073 //      return;
00074 //  }
00075     if( !m_bDrawSWITCH ){
00076         return;
00077     }
00078     /* キャレットを隠す */
00079     HideCaret_( m_hWnd ); // 2002/07/22 novice
00080
00081     //  May 9, 2000 genta
00082     Types   *TypeDataPtr = &(m_pcEditDoc->GetDocumentAttribute());
00083
00084     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00085     const int nWrapWidth = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
00086
00087     int             i;
00088     HFONT           hFontOld;
00089     HBRUSH          hBrush;
00090     COLORREF        crBackOld;
00091     COLORREF        crTextOld;
00092     HDC             hdcOld;
00093     int             nTop;
00094     RECT            rc;
00095     RECT            rcBack;
00096     BOOL            bEOF;
00097     int             nLineHeight = m_nCharHeight + TypeDataPtr->m_nLineSpace;
00098     int             nCharWidth = m_nCharWidth + TypeDataPtr->m_nColmSpace;
00099     int             nLineTo;
00100     int             nX = m_nViewAlignLeft - m_nViewLeftCol * nCharWidth;
00101     int             nY;
00102     BOOL            bDispBkBitmap = /*TRUE*/FALSE;
00103     const CLayout*  pcLayout;
00104     HPEN            hPen;
00105     HPEN            hPenOld;
00106
00107 //@@@ 2001.11.17 add start MIK
00108     //変更があればタイプ設定を行う。
00109     if( TypeDataPtr->m_bUseRegexKeyword
00110      || m_cRegexKeyword->m_bUseRegexKeyword )   //OFFなのに前回のデータが残ってる
00111     {
00112         //タイプ別設定をする。設定済みかどうかは呼び先でチェックする。
00113         m_cRegexKeyword->RegexKeySetTypes(TypeDataPtr);
00114     }
00115 //@@@ 2001.11.17 add end MIK
00116
00117     /* キャレットの行桁位置を表示する */
00118 //  DrawCaretPosInfo();
00119
00120     /* メモリＤＣを利用した再描画の場合は描画先のＤＣを切り替える */
00121     bUseMemoryDC = FALSE;
00122     if( bUseMemoryDC ){
00123         hdcOld = hdc;
00124         hdc = m_hdcCompatDC;
00125     }
00126
00127     /* 03/02/18 対括弧の強調表示(消去) ai */
00128     DrawBracketPair( false );
00129
00130     /* ルーラーとテキストの間の余白 */
00131     //@@@ 2002.01.03 YAZAKI 余白が0のときは無駄でした。
00132     if ( m_nTopYohaku ){
00133         rc.left = 0;
00134         rc.top = m_nViewAlignTop - m_nTopYohaku;
00135         rc.right = m_nViewAlignLeft + m_nViewCx;
00136         rc.bottom = m_nViewAlignTop;
00137         hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
00138         ::FillRect( hdc, &rc, hBrush );
00139         ::DeleteObject( hBrush );
00140     }
00141
00142     /* 行番号の表示 */
00143     //  From Here Sep. 7, 2001 genta
00144     //  Sep. 23, 2002 genta 行番号非表示でも行番号色の帯があるので隙間を埋める
00145     if( m_nTopYohaku ){
00146         rc.left = 0;
00147         rc.top = m_nViewAlignTop - m_nTopYohaku;
00148         //  Sep. 23 ,2002 genta 余白はテキスト色のまま残す
00149         rc.right = m_nViewAlignLeft - m_pShareData->m_Common.m_nLineNumRightSpace;
00150         rc.bottom = m_nViewAlignTop;
00151         hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_GYOU].m_colBACK );
00152         ::FillRect( hdc, &rc, hBrush );
00153         ::DeleteObject( hBrush );
00154     }
00155     //  To Here Sep. 7, 2001 genta
00156
00157     ::SetBkMode( hdc, TRANSPARENT );
00158     hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN );
00159     m_hFontOld = NULL;
00160
00161
00162 //  crBackOld = ::SetBkColor(   hdc, TypeDataPtr->m_colorBACK );
00163 //  crTextOld = ::SetTextColor( hdc, TypeDataPtr->m_colorTEXT );
00164     crBackOld = ::SetBkColor(   hdc, TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
00165     crTextOld = ::SetTextColor( hdc, TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colTEXT );
00166
00167 //  ::FillRect( hdc, &pPs->rcPaint, ::GetStockObject( WHITE_BRUSH ) );
00168
00169
00170     nTop = pPs->rcPaint.top;
00171     bEOF = FALSE;
00172 //  i = m_nViewTopLine;
00173
00174     if( 0 > nTop - m_nViewAlignTop ){
00175         i = m_nViewTopLine;
00176     }else{
00177         i = m_nViewTopLine + ( ( nTop - m_nViewAlignTop ) / nLineHeight );
00178     }
00179
00180     int nMaxRollBackLineNum = 260 / nWrapWidth + 1;
00181     int nRollBackLineNum = 0;
00182     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( i );
00183     while( nRollBackLineNum < nMaxRollBackLineNum ){
00184         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( i );
00185         if( NULL == pcLayout ){
00186             break;
00187         }
00188         if( 0 == pcLayout->m_nOffset ){ /* 対応する論理行の先頭からのオフセット */
00189             break;
00190         }
00191         i--;
00192         nRollBackLineNum++;
00193     }
00194
00195     nY = ( i - m_nViewTopLine ) * nLineHeight + m_nViewAlignTop;
00196     nLineTo = m_nViewTopLine + ( ( pPs->rcPaint.bottom - m_nViewAlignTop ) / nLineHeight );
00197
00198     BOOL bSelected;
00199     bSelected = IsTextSelected();
00200     for( ; i <= nLineTo; ){
00201         pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( i );
00202 #ifdef _DEBUG
00203         {
00204             if( NULL != pcLayout ){
00205                 if( (void*)0xdddddddd == (void*)pcLayout->m_pCDocLine->m_pLine ){
00206                     m_pcEditDoc->m_cDocLineMgr.DUMP();
00207                     m_pcEditDoc->m_cLayoutMgr.DUMP();
00208
00209                     pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( i );
00210                 }
00211
00212                 int nLineLen = pcLayout->m_pCDocLine->m_pLine->GetLength() - pcLayout->m_nOffset;
00213                 const char * pLine = (const char *)pcLayout->m_pCDocLine->m_pLine->GetPtr() + pcLayout->m_nOffset;
00214             }
00215         }
00216 #endif
00217
00218         if( DispLineNew(
00219             hdc,
00220             pcLayout,
00221             i,
00222             nX,
00223             nY,
00224             bDispBkBitmap,
00225             nLineTo,
00226             bSelected
00227         ) ){
00228             pPs->rcPaint.bottom += nLineHeight; /* EOF再描画対応 */
00229             bEOF = TRUE;
00230             break;
00231         }
00232         if( NULL == pcLayout ){
00233             bEOF = TRUE;
00234             break;
00235         }
00236     }
00237     if( NULL != m_hFontOld ){
00238         ::SelectObject( hdc, m_hFontOld );
00239         m_hFontOld = NULL;
00240     }
00241
00242 //  if( bEOF ){
00243 //      nTop = ( i + 1 - m_nViewTopLine ) * nLineHeight + m_nViewAlignTop;
00244 //  }else{
00245 //      nTop = ( i     - m_nViewTopLine ) * nLineHeight + m_nViewAlignTop;
00246 //  }
00247     if( bDispBkBitmap ){
00248     }else{
00249         /* テキストのない部分を背景色で塗りつぶす */
00250         if( nY/*nTop*/ < pPs->rcPaint.bottom ){
00251             rcBack.left = pPs->rcPaint.left;
00252             rcBack.right = pPs->rcPaint.right;
00253             rcBack.top = nY/*nTop*/;
00254             rcBack.bottom = pPs->rcPaint.bottom;
00255 //#ifdef _DEBUG
00256 //          hBrush = ::CreateSolidBrush( RGB( 128, 128,  128 ) );
00257 //#else
00258             hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
00259 //#endif
00260             ::FillRect( hdc, &rcBack, hBrush );
00261             ::DeleteObject( hBrush );
00262
00263             // 2006.04.29 行部分は行ごとに作画し、ここでは縦線の残りを作画
00264             DispVerticalLines( hdc, nY, pPs->rcPaint.bottom, 0, -1 );
00265         }
00266     }
00267
00268     ::SetTextColor( hdc, crTextOld );
00269     ::SetBkColor( hdc, crBackOld );
00270     ::SelectObject( hdc, hFontOld );
00271
00272     /* 折り返し位置の表示 */
00273     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_WRAP].m_bDisp ){
00274         int nXPos = m_nViewAlignLeft + ( nWrapWidth - m_nViewLeftCol ) * nCharWidth;
00275         //  2005.11.08 Moca 作画条件変更
00276         if( m_nViewAlignLeft < nXPos && nXPos < m_nViewCx + m_nViewAlignLeft ){
00277             /* 折り返し記号の色のペンを作成 */
00278             hPen = ::CreatePen( PS_SOLID, 0, TypeDataPtr->m_ColorInfoArr[COLORIDX_WRAP].m_colTEXT );
00279             hPenOld = (HPEN)::SelectObject( hdc, hPen );
00280             ::MoveToEx( hdc, nXPos, m_nViewAlignTop, NULL );
00281             ::LineTo( hdc, nXPos, m_nViewAlignTop + m_nViewCy );
00282             ::SelectObject( hdc, hPenOld );
00283             ::DeleteObject( hPen );
00284         }
00285     }
00286
00287
00288     /* ルーラー描画 */
00289     if ( pPs->rcPaint.top < m_nViewAlignTop - m_nTopYohaku ) { // ルーラーが再描画範囲にあるときのみ再描画する 2002.02.25 Add By KK
00290         m_bRedrawRuler = true; //2002.02.25 Add By KK ルーラー全体を描画。
00291         DispRuler( hdc );
00292     }
00293
00294     if ( m_pcEditDoc->m_nActivePaneIndex == m_nMyIndex ){
00295         /* アクティブペインは、アンダーライン描画 */
00296         m_cUnderLine.CaretUnderLineON( TRUE );
00297     }
00298
00299     /* メモリＤＣを利用した再描画の場合はメモリＤＣに描画した内容を画面へコピーする */
00300     if( bUseMemoryDC ){
00301         ::BitBlt(
00302             hdcOld,
00303             pPs->rcPaint.left,
00304             pPs->rcPaint.top,
00305             pPs->rcPaint.right - pPs->rcPaint.left,
00306             pPs->rcPaint.bottom - pPs->rcPaint.top,
00307             hdc,
00308             pPs->rcPaint.left,
00309             pPs->rcPaint.top,
00310             SRCCOPY
00311         );
00312     }
00313
00314     /* 03/02/18 対括弧の強調表示(描画) ai */
00315     DrawBracketPair( true );
00316
00317     /* キャレットを現在位置に表示します */
00318     ShowCaret_( m_hWnd ); // 2002/07/22 novice
00319     return;
00320 }
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330 //@@@ 2001.02.17 Start by MIK
00365 //@@@ 2001.02.17 End by MIK
00366 int CEditView::DispLineNew(
00367         HDC                     hdc,
00368         const CLayout*          pcLayout,
00369         int&                    nLineNum,
00370         int                     x,
00371         int&                    y,
00372         BOOL                    bDispBkBitmap,
00373         int                     nLineTo,
00374         BOOL                    bSelected
00375 )
00376 {
00377     MY_RUNNINGTIMER( cRunningTimer, "CEditView::DispLineNew" );
00378
00379     //  May 9, 2000 genta
00380     Types   *TypeDataPtr = &(m_pcEditDoc->GetDocumentAttribute());
00381
00382     //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00383     const int nWrapWidth = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
00384
00385     int                     nLineNumOrg = nLineNum;
00386     const char*             pLine;  //@@@ 2002.09.22 YAZAKI
00387     int                     nLineLen;
00388     int                     nX;
00389     int                     nLineBgn;
00390     int                     nBgn;
00391     int                     nPos;
00392     int                     nCharChars;
00393     int                     nCharChars_2;
00394     int                     nCOMMENTMODE;
00395     int                     nCOMMENTMODE_OLD;
00396     int                     nCOMMENTEND;
00397     int                     nCOMMENTEND_OLD;
00398     RECT                    rcClip;
00399     RECT                    rcClip2;
00400     int                     nLineHeight = m_nCharHeight + TypeDataPtr->m_nLineSpace;
00401     int                     nCharWidth = m_nCharWidth + TypeDataPtr->m_nColmSpace;
00402     //  テキスト描画モード
00403     UINT                    fuOptions = ETO_CLIPPED | ETO_OPAQUE;
00404 //@@@ 2001.12.21 YAZAKI
00405 //  HPEN                    hPen;
00406 //  HPEN                    hPenOld;
00407     HBRUSH                  hBrush;
00408     COLORREF                colTextColorOld;
00409     COLORREF                colBkColorOld;
00410 //#ifndef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
00411 // //   static char*            pszTAB = ">       ";
00412 // //   static char*            pszTAB = ">･･･････";
00413 //  static char*            pszTAB = "^       ";
00414 //#endif
00415     static char*            pszSPACES = "        ";
00416     static char*            pszZENSPACE = "□";
00417     static char*            pszWRAP = "<";
00418     int                     nPosX;
00419     int                     nPosY;
00420     int                     bEOF = FALSE;
00421     int                     nCount;
00422     int                     nLineCols;
00423     const CLayout*          pcLayout2;
00424     int                     i, j;
00425     int                     nIdx;
00426     int                     nUrlLen;
00427     BOOL                    bSearchStringMode;
00428     BOOL                    bSearchFlg;         // 2002.02.08 hor
00429     int                     nSearchStart;       // 2002.02.08 hor
00430     int                     nSearchEnd;
00431     int                     nColorIdx;
00432     bool                    bKeyWordTop = true; //  Keyword Top
00433 //  const CDocLine*         pCDocLine;
00434
00435 //@@@ 2001.11.17 add start MIK
00436     int     nMatchLen;
00437     int     nMatchColor;
00438 //@@@ 2001.11.17 add end MIK
00439
00440     bSearchStringMode = FALSE;
00441     bSearchFlg  = TRUE; // 2002.02.08 hor
00442     nSearchStart= -1;   // 2002.02.08 hor
00443     nSearchEnd  = -1;   // 2002.02.08 hor
00444
00445     /* 論理行データの取得 */
00446     if( NULL != pcLayout ){
00447         // 2002/2/10 aroka CMemory変更
00448         nLineLen = pcLayout->m_pCDocLine->m_pLine->GetLength() - pcLayout->m_nOffset;
00449         pLine = pcLayout->m_pCDocLine->m_pLine->GetPtr() + pcLayout->m_nOffset;
00450
00451         nCOMMENTMODE = pcLayout->m_nTypePrev;   /* タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列 */
00452         nCOMMENTEND = 0;
00453         pcLayout2 = pcLayout;
00454
00455     }else{
00456         pLine = NULL;
00457         nLineLen = 0;
00458         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
00459         nCOMMENTEND = 0;
00460
00461         pcLayout2 = NULL;
00462     }
00463
00464     /* 現在の色を指定 */
00465 //  SetCurrentColor( hdc, 0 );
00466     SetCurrentColor( hdc, nCOMMENTMODE );
00467
00468     nBgn = 0;
00469     nPos = 0;
00470     nLineBgn = 0;
00471     nX = 0;
00472     nCharChars = 0;
00473     // my_icmpの利用によりlocaleに依存しない 2002/11/30 Moca
00474     // setlocale ( LC_ALL, "C" );   //  Oct. 29, 2001 genta 検索文字列のハイライトに関係する
00475
00476     if( NULL != pLine ){
00477
00478         //@@@ 2001.11.17 add start MIK
00479         if( TypeDataPtr->m_bUseRegexKeyword )
00480         {
00481             m_cRegexKeyword->RegexKeyLineStart();
00482         }
00483         //@@@ 2001.11.17 add end MIK
00484
00485         y -= nLineHeight;
00486         nLineNum--;
00487 //      MYTRACE( "\n\n=======================================" );
00488         while( nPos < nLineLen ){
00489 //          MYTRACE( "nLineNum = %d\n", nLineNum );
00490
00491             y += nLineHeight;
00492             nLineNum++;
00493             if( m_nViewTopLine + m_nViewRowNum < nLineNum ){
00494                 nLineNum = nLineTo + 1;
00495                 goto end_of_func;
00496             }
00497             if( nLineTo < nLineNum ){
00498                 goto end_of_func;
00499             }
00500             pcLayout2 = m_pcEditDoc->m_cLayoutMgr.Search( nLineNum );
00501             if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00502                 /* 行番号表示 */
00503                 DispLineNumber( hdc, pcLayout2, nLineNum, y );
00504             }
00505             nBgn = nPos;
00506             nLineBgn = nBgn;
00507             nX = 0;
00508
00509             //  行頭背景
00510             if (pcLayout2 && pcLayout2->GetIndent()){
00511                 rcClip.left = x;
00512                 rcClip.right = x + pcLayout2->GetIndent() * ( nCharWidth );
00513                 rcClip.top = y;
00514                 rcClip.bottom = y + nLineHeight;
00515                 if( rcClip.left < m_nViewAlignLeft ){
00516                     rcClip.left = m_nViewAlignLeft;
00517                 }
00518                 if( rcClip.left < rcClip.right &&
00519                     rcClip.left < m_nViewAlignLeft + m_nViewCx && rcClip.right > m_nViewAlignLeft ){
00520                     hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
00521                     ::FillRect( hdc, &rcClip, hBrush );
00522                     ::DeleteObject( hBrush );
00523                 }
00524                 nX += pcLayout2->GetIndent();
00525             }
00526
00527             while( nPos - nLineBgn < pcLayout2->m_nLength ){
00528                 /* 検索文字列の色分け */
00529                 if( TRUE == m_bCurSrchKeyMark   /* 検索文字列のマーク */
00530                  && TypeDataPtr->m_ColorInfoArr[COLORIDX_SEARCH].m_bDisp ){
00531 searchnext:;
00532                 // 2002.02.08 hor 正規表現の検索文字列マークを少し高速化
00533                     if(!bSearchStringMode && (!m_bCurSrchRegularExp || (bSearchFlg && nSearchStart < nPos))){
00534                         bSearchFlg=IsSearchString( pLine, nLineLen, nPos, &nSearchStart, &nSearchEnd );
00535                     }
00536                     if( !bSearchStringMode && bSearchFlg && nSearchStart==nPos
00537                     ){
00538                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00539                             /* テキスト表示 */
00540                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00541                         }
00542                         nBgn = nPos;
00543                         bSearchStringMode = TRUE;
00544 //                      nCOMMENTMODE = 90;
00545 //                      nCOMMENTMODE_OLD_2 = nCOMMENTMODE;
00546 //                      nCOMMENTEND_OLD_2 = nCOMMENTEND;
00547                         /* 現在の色を指定 */
00548 //                      SetCurrentColor( hdc, nCOMMENTMODE );
00549                         SetCurrentColor( hdc, COLORIDX_SEARCH ); // 2002/03/13 novice
00550                     }else
00551                     if( bSearchStringMode
00552                      && nSearchEnd <= nPos      //+ == では行頭文字の場合、nSearchEndも０であるために文字色の解除ができないバグを修正 2003.05.03 かろと
00553                     ){
00554                         // 検索した文字列の終わりまできたら、文字色を標準に戻す処理
00555                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00556 //                          SetCurrentColor( hdc, 90 );
00557                             /* テキスト表示 */
00558                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00559                         }
00560                         nBgn = nPos;
00561                         /* 現在の色を指定 */
00562 //                      nCOMMENTMODE = nCOMMENTMODE_OLD_2;
00563 //                      nCOMMENTEND = nCOMMENTEND_OLD_2;
00564                         SetCurrentColor( hdc, nCOMMENTMODE );
00565                         bSearchStringMode = FALSE;
00566                         goto searchnext;
00567                     }
00568                 }
00569
00570                 if( nPos >= nLineLen - pcLayout2->m_cEol.GetLen() ){
00571                     if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00572                         /* テキスト表示 */
00573                         nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00574                         nBgn = nPos + 1;
00575                         /* 行末背景描画 */
00576                         rcClip.left = x + nX * ( nCharWidth );
00577                         rcClip.right = m_nViewAlignLeft + m_nViewCx;
00578                         rcClip.top = y;
00579                         rcClip.bottom = y + nLineHeight;
00580                         if( rcClip.left < m_nViewAlignLeft ){
00581                             rcClip.left = m_nViewAlignLeft;
00582                         }
00583                         if( rcClip.left < rcClip.right &&
00584                             rcClip.left < m_nViewAlignLeft + m_nViewCx && rcClip.right > m_nViewAlignLeft ){
00585                             hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
00586                             ::FillRect( hdc, &rcClip, hBrush );
00587                             ::DeleteObject( hBrush );
00588                         }
00589
00590                         /* 改行記号の表示 */
00591                         rcClip2.left = x + nX * ( nCharWidth );
00592                         // Jul. 20, 2003 ryoji 横スクロール時に改行コードが欠けないように
00593                         rcClip2.right = rcClip2.left + ( nCharWidth ) * ( 2 );
00594                         if( rcClip2.left < m_nViewAlignLeft ){
00595                             rcClip2.left = m_nViewAlignLeft;
00596                         }
00597                         if( rcClip2.left < rcClip2.right &&
00598                             rcClip2.left < m_nViewAlignLeft + m_nViewCx && rcClip2.right > m_nViewAlignLeft ){
00599                             rcClip2.top = y;
00600                             rcClip2.bottom = y + nLineHeight;
00601                             // 2006.04.30 Moca 色選択を括弧内に移動
00602                             if( bSearchStringMode ){
00603                                 nColorIdx = COLORIDX_SEARCH;
00604                             }else{
00605                                 nColorIdx = COLORIDX_CRLF;
00606                             }
00607                             HFONT   hFontOld;
00608                             /* フォントを選ぶ */
00609                             hFontOld = (HFONT)::SelectObject( hdc,
00610                                 ChooseFontHandle(
00611                                     TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bFatFont,
00612                                     TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bUnderLine
00613                                 )
00614                             );
00615                             colTextColorOld = ::SetTextColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colTEXT ); /* CRLFの色 */
00616                             colBkColorOld = ::SetBkColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colBACK );  /* CRLF背景の色 */
00617                             //  2003.08.17 ryoji 改行文字が欠けないように
00618                             ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
00619                                 &rcClip2, (const char *)"  ", 2, m_pnDx );
00620                             /* 改行記号の表示 */
00621                             if( TypeDataPtr->m_ColorInfoArr[COLORIDX_CRLF].m_bDisp ){
00622                                 nPosX = x + nX * ( nCharWidth );
00623                                 nPosY = y;
00624                                 //  From Here 2003.08.17 ryoji 改行文字が欠けないように
00625                                 HRGN hRgn;
00626                                 hRgn = ::CreateRectRgnIndirect(&rcClip2);
00627                                 ::SelectClipRgn(hdc, hRgn);
00628                                 //@@@ 2001.12.21 YAZAKI
00629                                 DrawEOL(hdc, nPosX + 1, nPosY, m_nCharWidth, m_nCharHeight,
00630                                     pcLayout2->m_cEol, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bFatFont,
00631                                         TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colTEXT );
00632                                 ::SelectClipRgn(hdc, NULL);
00633                                 ::DeleteObject(hRgn);
00634                                 //  To Here 2003.08.17 ryoji 改行文字が欠けないように
00635                             }
00636                             ::SelectObject( hdc, hFontOld );
00637                             ::SetTextColor( hdc, colTextColorOld );
00638                             ::SetBkColor( hdc, colBkColorOld );
00639                         }
00640
00641                         nX++;
00642
00643
00644                         // 2006.04.29 Moca 選択処理のため縦線処理を追加
00645                         DispVerticalLines( hdc, y, y + nLineHeight, 0, -1 );
00646                         if( bSelected ){
00647                             /* テキスト反転 */
00648                             DispTextSelected( hdc, nLineNum, x, y, nX );
00649                         }
00650                     }
00651
00652                     goto end_of_line;
00653                 }
00654                 SEARCH_START:;
00655                 switch( nCOMMENTMODE ){
00656                 case COLORIDX_TEXT: // 2002/03/13 novice
00657 //@@@ 2001.11.17 add start MIK
00658                     //正規表現キーワード
00659                     if( TypeDataPtr->m_bUseRegexKeyword
00660                      && m_cRegexKeyword->RegexIsKeyword( pLine, nPos, nLineLen, &nMatchLen, &nMatchColor )
00661                      /*&& TypeDataPtr->m_ColorInfoArr[nMatchColor].m_bDisp*/ )
00662                     {
00663                         if( y/* + nLineHeight*/ >= m_nViewAlignTop )
00664                         {
00665                             /* テキスト表示 */
00666                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00667                         }
00668                         /* 現在の色を指定 */
00669                         nBgn = nPos;
00670                         //nCOMMENTMODE = 1000;  /* 色指定 */
00671                         nCOMMENTMODE = 1000 + nMatchColor;  /* 色指定 */    //@@@ 2002.01.04 upd
00672                         nCOMMENTEND = nPos + nMatchLen;  /* キーワード文字列の終端をセットする */
00673                         if( !bSearchStringMode ){
00674                             SetCurrentColor( hdc, nCOMMENTMODE );   //@@@ 2002.01.04
00675                             //SetCurrentColor( hdc, nCOMMENTMODE + nMatchColor );   //@@@ 2002.01.04
00676                         }
00677                     }
00678                     else
00679 //@@@ 2001.11.17 add end MIK
00680                     //  Mar. 15, 2000 genta
00681                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
00682                         TypeDataPtr->m_cLineComment.Match( nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
00683                     ){
00684                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00685                             /* テキスト表示 */
00686                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00687                         }
00688                         nBgn = nPos;
00689
00690                         nCOMMENTMODE = COLORIDX_COMMENT;    /* 行コメントである */ // 2002/03/13 novice
00691
00692 //                      if( TypeDataPtr->m_bDispCOMMENT ){  /* コメントを表示する */
00693                             /* 現在の色を指定 */
00694                             if( !bSearchStringMode ){
00695                                 SetCurrentColor( hdc, nCOMMENTMODE );
00696                             }
00697 //                      }
00698                     }else
00699                     //  Mar. 15, 2000 genta
00700                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
00701                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 0, nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
00702                     ){
00703                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00704                             /* テキスト表示 */
00705                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00706                         }
00707                         nBgn = nPos;
00708                         nCOMMENTMODE = COLORIDX_BLOCK1; /* ブロックコメント1である */ // 2002/03/13 novice
00709
00710 //                      if( TypeDataPtr->m_bDispCOMMENT ){  /* コメントを表示する */
00711                             /* 現在の色を指定 */
00712                             if( !bSearchStringMode ){
00713                                 SetCurrentColor( hdc, nCOMMENTMODE );
00714                             }
00715 //                      }
00716                         /* この物理行にブロックコメントの終端があるか */
00717                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, nPos + (int)lstrlen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(0) ), nLineLen, pLine );   //@@@ 2002.09.22 YAZAKI
00718
00719 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
00720                     }else
00721                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
00722                         TypeDataPtr->m_cBlockComment.Match_CommentFrom( 1, nPos, nLineLen, pLine )  //@@@ 2002.09.22 YAZAKI
00723                     ){
00724                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00725                             /* テキスト表示 */
00726                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00727                         }
00728                         nBgn = nPos;
00729                         nCOMMENTMODE = COLORIDX_BLOCK2; /* ブロックコメント2である */ // 2002/03/13 novice
00730 //                      if( TypeDataPtr->m_bDispCOMMENT ){  /* コメントを表示する */
00731                             /* 現在の色を指定 */
00732                             if( !bSearchStringMode ){
00733                                 SetCurrentColor( hdc, nCOMMENTMODE );
00734                             }
00735 //                      }
00736                         /* この物理行にブロックコメントの終端があるか */
00737                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos + (int)lstrlen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(1) ), nLineLen, pLine );   //@@@ 2002.09.22 YAZAKI
00738 //#endif
00739                     }else
00740                     if( pLine[nPos] == '\'' &&
00741                         TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp  /* シングルクォーテーション文字列を表示する */
00742                     ){
00743                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00744                             /* テキスト表示 */
00745                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00746                         }
00747                         nBgn = nPos;
00748                         nCOMMENTMODE = COLORIDX_SSTRING;    /* シングルクォーテーション文字列である */ // 2002/03/13 novice
00749
00750 //                      if( TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp ){    /* シングルクォーテーション文字列を表示する */
00751                             /* 現在の色を指定 */
00752                             if( !bSearchStringMode ){
00753                                 SetCurrentColor( hdc, nCOMMENTMODE );
00754                             }
00755 //                      }
00756                         /* シングルクォーテーション文字列の終端があるか */
00757                         int i;
00758                         nCOMMENTEND = nLineLen;
00759                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
00760                             // 2005-09-02 D.S.Koba GetSizeOfChar
00761                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00762                             if( 0 == nCharChars_2 ){
00763                                 nCharChars_2 = 1;
00764                             }
00765                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00766                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
00767                                     ++i;
00768                                 }else
00769                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
00770                                     nCOMMENTEND = i + 1;
00771                                     break;
00772                                 }
00773                             }else
00774                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00775                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
00776                                     if( i + 1 < nLineLen && pLine[i + 1] == '\'' ){
00777                                         ++i;
00778                                     }else{
00779                                         nCOMMENTEND = i + 1;
00780                                         break;
00781                                     }
00782                                 }
00783                             }
00784                             if( 2 == nCharChars_2 ){
00785                                 ++i;
00786                             }
00787                         }
00788                     }else
00789                     if( pLine[nPos] == '"' &&
00790                         TypeDataPtr->m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp   /* ダブルクォーテーション文字列を表示する */
00791                     ){
00792                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00793                             /* テキスト表示 */
00794                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00795                         }
00796                         nBgn = nPos;
00797                         nCOMMENTMODE = COLORIDX_WSTRING;    /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
00798                         /* 現在の色を指定 */
00799                         if( !bSearchStringMode ){
00800                             SetCurrentColor( hdc, nCOMMENTMODE );
00801                         }
00802                         /* ダブルクォーテーション文字列の終端があるか */
00803                         int i;
00804                         nCOMMENTEND = nLineLen;
00805                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
00806                             // 2005-09-02 D.S.Koba GetSizeOfChar
00807                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00808                             if( 0 == nCharChars_2 ){
00809                                 nCharChars_2 = 1;
00810                             }
00811                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00812                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
00813                                     ++i;
00814                                 }else
00815                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
00816                                     nCOMMENTEND = i + 1;
00817                                     break;
00818                                 }
00819                             }else
00820                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00821                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
00822                                     if( i + 1 < nLineLen && pLine[i + 1] == '"' ){
00823                                         ++i;
00824                                     }else{
00825                                         nCOMMENTEND = i + 1;
00826                                         break;
00827                                     }
00828                                 }
00829                             }
00830                             if( 2 == nCharChars_2 ){
00831                                 ++i;
00832                             }
00833                         }
00834                     }else
00835                     if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_URL].m_bDisp            /* URLを表示する */
00836                      && ( TRUE == IsURL( &pLine[nPos], nLineLen - nPos, &nUrlLen ) )    /* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
00837                     ){
00838                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00839                             /* テキスト表示 */
00840                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00841                         }
00842                         nBgn = nPos;
00843                         nCOMMENTMODE = COLORIDX_URL;    /* URLモード */ // 2002/03/13 novice
00844                         nCOMMENTEND = nPos + nUrlLen;
00845                         /* 現在の色を指定 */
00846                         if( !bSearchStringMode ){
00847                             SetCurrentColor( hdc, nCOMMENTMODE );
00848                         }
00849 //@@@ 2001.02.17 Start by MIK: 半角数値を強調表示
00850 //#ifdef COMPILE_COLOR_DIGIT
00851                     }else if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp
00852                         && (i = IsNumber( pLine, nPos, nLineLen )) > 0 )        /* 半角数字を表示する */
00853                     {
00854                         /* キーワード文字列の終端をセットする */
00855                         i = nPos + i;
00856                         if( y/* + nLineHeight*/ >= m_nViewAlignTop )
00857                         {
00858                             /* テキスト表示 */
00859                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00860                         }
00861                         /* 現在の色を指定 */
00862                         nBgn = nPos;
00863                         nCOMMENTMODE = COLORIDX_DIGIT;  /* 半角数値である */ // 2002/03/13 novice
00864                         nCOMMENTEND = i;
00865                         if( !bSearchStringMode ){
00866                             SetCurrentColor( hdc, nCOMMENTMODE );
00867                         }
00868 //#endif
00869 //@@@ 2001.02.17 End by MIK: 半角数値を強調表示
00870                     }else
00871                     if( bKeyWordTop && TypeDataPtr->m_nKeyWordSetIdx[0] != -1 && /* キーワードセット */
00872                         TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1].m_bDisp &&  /* 強調キーワードを表示する */ // 2002/03/13 novice
00873                         IS_KEYWORD_CHAR( pLine[nPos] )
00874                     ){
00875                         //  Mar 4, 2001 genta comment out
00876                         //  bKeyWordTop = false;
00877                         /* キーワード文字列の終端を探す */
00878                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
00879                             if( IS_KEYWORD_CHAR( pLine[i] ) ){
00880                             }else{
00881                                 break;
00882                             }
00883                         }
00884                         /* キーワードが登録単語ならば、色を変える */
00885                         j = i - nPos;
00886                         /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */
00887                         nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(       //MIK UPDATE 2000.12.01 binary search
00888                             TypeDataPtr->m_nKeyWordSetIdx[0],
00889                             &pLine[nPos],
00890                             j
00891                         );
00892                         if( nIdx != -1 ){
00893                             if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00894                                 /* テキスト表示 */
00895                                 nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00896                             }
00897
00898                             /* 現在の色を指定 */
00899                             nBgn = nPos;
00900                             nCOMMENTMODE = COLORIDX_KEYWORD1;   /* 強調キーワード1 */ // 2002/03/13 novice
00901                             nCOMMENTEND = i;
00902                             if( !bSearchStringMode ){
00903                                 SetCurrentColor( hdc, nCOMMENTMODE );
00904                             }
00905                         }else{      //MIK START ADD 2000.12.01 second keyword & binary search
00906                             // 2005.01.13 MIK 強調キーワード数追加に伴う配列化
00907                             for( int my_i = 1; my_i < 10; my_i++ )
00908                             {
00909                                 if(TypeDataPtr->m_nKeyWordSetIdx[ my_i ] != -1 && /* キーワードセット */                            //MIK 2000.12.01 second keyword
00910                                     TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1 + my_i].m_bDisp)                                  //MIK
00911                                 {                                                                                           //MIK
00912                                     /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */                       //MIK
00913                                     nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2(                                   //MIK 2000.12.01 binary search
00914                                         TypeDataPtr->m_nKeyWordSetIdx[ my_i ] ,                                                 //MIK
00915                                         &pLine[nPos],                                                                       //MIK
00916                                         j                                                                                   //MIK
00917                                     );                                                                                      //MIK
00918                                     if( nIdx != -1 ){                                                                       //MIK
00919                                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){                                       //MIK
00920                                             /* テキスト表示 */                                                              //MIK
00921                                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );   //MIK
00922                                         }                                                                                   //MIK
00923                                         /* 現在の色を指定 */                                                                //MIK
00924                                         nBgn = nPos;                                                                        //MIK
00925                                         nCOMMENTMODE = COLORIDX_KEYWORD1 + my_i;    /* 強調キーワード2 */ // 2002/03/13 novice      //MIK
00926                                         nCOMMENTEND = i;                                                                    //MIK
00927                                         if( !bSearchStringMode ){                                                           //MIK
00928                                             SetCurrentColor( hdc, nCOMMENTMODE );                                           //MIK
00929                                         }                                                                                   //MIK
00930                                         break;
00931                                     }                                                                                       //MIK
00932                                 }                                                                                           //MIK
00933                                 else
00934                                 {
00935                                     if(TypeDataPtr->m_nKeyWordSetIdx[my_i] == -1 )
00936                                         break;
00937                                 }
00938                             }
00939                         }           //MIK END
00940                     }
00941                     //  From Here Mar. 4, 2001 genta
00942                     if( IS_KEYWORD_CHAR( pLine[nPos] )) bKeyWordTop = false;
00943                     else                                bKeyWordTop = true;
00944                     //  To Here
00945                     break;
00946 // 2002/03/13 novice
00947                 case COLORIDX_URL:      /* URLモードである */
00948                 case COLORIDX_KEYWORD1: /* 強調キーワード1 */
00949                 case COLORIDX_DIGIT:    /* 半角数値である */  //@@@ 2001.02.17 by MIK
00950                 case COLORIDX_KEYWORD2: /* 強調キーワード2 */   //MIK
00951                 case COLORIDX_KEYWORD3: // 2005.01.13 MIK 強調キーワード3-10
00952                 case COLORIDX_KEYWORD4:
00953                 case COLORIDX_KEYWORD5:
00954                 case COLORIDX_KEYWORD6:
00955                 case COLORIDX_KEYWORD7:
00956                 case COLORIDX_KEYWORD8:
00957                 case COLORIDX_KEYWORD9:
00958                 case COLORIDX_KEYWORD10:
00959                 //case 1000:    //正規表現キーワード1～10   //@@@ 2001.11.17 add MIK    //@@@ 2002.01.04 del
00960                     if( nPos == nCOMMENTEND ){
00961                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00962                             /* テキスト表示 */
00963                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00964                         }
00965                         nBgn = nPos;
00966                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
00967                         /* 現在の色を指定 */
00968                         if( !bSearchStringMode ){
00969                             SetCurrentColor( hdc, nCOMMENTMODE );
00970                         }
00971                         goto SEARCH_START;
00972                     }
00973                     break;
00974                 case COLORIDX_CTRLCODE: /* コントロールコード */ // 2002/03/13 novice
00975                     if( nPos == nCOMMENTEND ){
00976                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
00977                             /* テキスト表示 */
00978                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
00979                         }
00980                         nBgn = nPos;
00981                         nCOMMENTMODE = nCOMMENTMODE_OLD;
00982                         nCOMMENTEND = nCOMMENTEND_OLD;
00983                         /* 現在の色を指定 */
00984                         if( !bSearchStringMode ){
00985                             SetCurrentColor( hdc, nCOMMENTMODE );
00986                         }
00987                         goto SEARCH_START;
00988                     }
00989                     break;
00990
00991                 case COLORIDX_COMMENT:  /* 行コメントである */ // 2002/03/13 novice
00992                     break;
00993                 case COLORIDX_BLOCK1:   /* ブロックコメント1である */ // 2002/03/13 novice
00994                     if( 0 == nCOMMENTEND ){
00995                         /* この物理行にブロックコメントの終端があるか */
00996                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
00997                     }else
00998                     if( nPos == nCOMMENTEND ){
00999                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01000                             /* テキスト表示 */
01001                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01002                         }
01003                         nBgn = nPos;
01004                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01005                         /* 現在の色を指定 */
01006                         if( !bSearchStringMode ){
01007                             SetCurrentColor( hdc, nCOMMENTMODE );
01008                         }
01009                         goto SEARCH_START;
01010                     }
01011                     break;
01012 //#ifdef    COMPILE_BLOCK_COMMENT2  //@@@ 2001.03.10 by MIK
01013                 case COLORIDX_BLOCK2:   /* ブロックコメント2である */ // 2002/03/13 novice
01014                     if( 0 == nCOMMENTEND ){
01015                         /* この物理行にブロックコメントの終端があるか */
01016                         nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
01017                     }else
01018                     if( nPos == nCOMMENTEND ){
01019                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01020                             /* テキスト表示 */
01021                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01022                         }
01023                         nBgn = nPos;
01024                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01025                         /* 現在の色を指定 */
01026                         if( !bSearchStringMode ){
01027                             SetCurrentColor( hdc, nCOMMENTMODE );
01028                         }
01029                         goto SEARCH_START;
01030                     }
01031                     break;
01032 //#endif
01033                 case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */ // 2002/03/13 novice
01034                     if( 0 == nCOMMENTEND ){
01035                         /* シングルクォーテーション文字列の終端があるか */
01036                         int i;
01037                         nCOMMENTEND = nLineLen;
01038                         for( i = nPos/* + 1*/; i <= nLineLen - 1; ++i ){
01039                             // 2005-09-02 D.S.Koba GetSizeOfChar
01040                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
01041                             if( 0 == nCharChars_2 ){
01042                                 nCharChars_2 = 1;
01043                             }
01044                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01045                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
01046                                     ++i;
01047                                 }else
01048                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
01049                                     nCOMMENTEND = i + 1;
01050                                     break;
01051                                 }
01052                             }else
01053                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01054                                 if( 1 == nCharChars_2 && pLine[i] == '\'' ){
01055                                     if( i + 1 < nLineLen && pLine[i + 1] == '\'' ){
01056                                         ++i;
01057                                     }else{
01058                                         nCOMMENTEND = i + 1;
01059                                         break;
01060                                     }
01061                                 }
01062                             }
01063                             if( 2 == nCharChars_2 ){
01064                                 ++i;
01065                             }
01066                         }
01067                     }else
01068                     if( nPos == nCOMMENTEND ){
01069                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01070                             /* テキスト表示 */
01071                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01072                         }
01073                         nBgn = nPos;
01074                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01075                         /* 現在の色を指定 */
01076                         if( !bSearchStringMode ){
01077                             SetCurrentColor( hdc, nCOMMENTMODE );
01078                         }
01079                         goto SEARCH_START;
01080                     }
01081                     break;
01082                 case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
01083                     if( 0 == nCOMMENTEND ){
01084                         /* ダブルクォーテーション文字列の終端があるか */
01085                         int i;
01086                         nCOMMENTEND = nLineLen;
01087                         for( i = nPos/* + 1*/; i <= nLineLen - 1; ++i ){
01088                             // 2005-09-02 D.S.Koba GetSizeOfChar
01089                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
01090                             if( 0 == nCharChars_2 ){
01091                                 nCharChars_2 = 1;
01092                             }
01093                             if( TypeDataPtr->m_nStringType == 0 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01094                                 if( 1 == nCharChars_2 && pLine[i] == '\\' ){
01095                                     ++i;
01096                                 }else
01097                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
01098                                     nCOMMENTEND = i + 1;
01099                                     break;
01100                                 }
01101                             }else
01102                             if( TypeDataPtr->m_nStringType == 1 ){  /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01103                                 if( 1 == nCharChars_2 && pLine[i] == '"' ){
01104                                     if( i + 1 < nLineLen && pLine[i + 1] == '"' ){
01105                                         ++i;
01106                                     }else{
01107                                         nCOMMENTEND = i + 1;
01108                                         break;
01109                                     }
01110                                 }
01111                             }
01112                             if( 2 == nCharChars_2 ){
01113                                 ++i;
01114                             }
01115                         }
01116                     }else
01117                     if( nPos == nCOMMENTEND ){
01118                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01119                             /* テキスト表示 */
01120                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01121                         }
01122                         nBgn = nPos;
01123                         nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01124                         /* 現在の色を指定 */
01125                         if( !bSearchStringMode ){
01126                             SetCurrentColor( hdc, nCOMMENTMODE );
01127                         }
01128                         goto SEARCH_START;
01129                     }
01130                     break;
01131                 default:    //@@@ 2002.01.04 add start
01132                     if( nCOMMENTMODE >= 1000 && nCOMMENTMODE <= 1099 ){ //正規表現キーワード1～10
01133                         if( nPos == nCOMMENTEND ){
01134                             if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01135                                 /* テキスト表示 */
01136                                 nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01137                             }
01138                             nBgn = nPos;
01139                             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01140                             /* 現在の色を指定 */
01141                             if( !bSearchStringMode ){
01142                                 SetCurrentColor( hdc, nCOMMENTMODE );
01143                             }
01144                             goto SEARCH_START;
01145                         }
01146                     }
01147                     break;  //@@@ 2002.01.04 add end
01148                 }
01149                 if( pLine[nPos] == TAB ){
01150                     if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01151                         /* テキスト表示 */
01152                         nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01153                         //  Sep. 22, 2002 genta 共通式のくくりだし
01154                         //  Sep. 23, 2002 genta LayoutMgrの値を使う
01155                         int tabDispWidth = m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace( nX );
01156                         /* タブ記号を表示する */
01157                         rcClip2.left = x + nX * ( nCharWidth );
01158                         rcClip2.right = rcClip2.left + ( nCharWidth ) * tabDispWidth;
01159                         if( rcClip2.left < m_nViewAlignLeft ){
01160                             rcClip2.left = m_nViewAlignLeft;
01161                         }
01162                         if( rcClip2.left < rcClip2.right &&
01163                             rcClip2.left < m_nViewAlignLeft + m_nViewCx && rcClip2.right > m_nViewAlignLeft ){
01164                             rcClip2.top = y;
01165                             rcClip2.bottom = y + nLineHeight;
01166                             /* TABを表示するか？ */
01167                             if( TypeDataPtr->m_ColorInfoArr[COLORIDX_TAB].m_bDisp
01168                              && 0 == TypeDataPtr->m_bTabArrow ){    //タブ通常表示  //@@@ 2003.03.26 MIK
01169                                 if( bSearchStringMode ){
01170                                     nColorIdx = COLORIDX_SEARCH;
01171                                 }else{
01172                                     nColorIdx = COLORIDX_TAB;
01173                                 }
01174                                 colTextColorOld = ::SetTextColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colTEXT );  /* TAB文字の色 */
01175                                 colBkColorOld = ::SetBkColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colBACK );      /* TAB文字背景の色 */
01176
01177                                 HFONT   hFontOld;
01178                                 /* フォントを選ぶ */
01179                                 hFontOld = (HFONT)::SelectObject( hdc,
01180                                     ChooseFontHandle(
01181                                         TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bFatFont,
01182                                         TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bUnderLine
01183                                     )
01184                                 );
01185
01186                                 //@@@ 2001.03.16 by MIK
01187                                 ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01188                                     &rcClip2, /*pszTAB*/ TypeDataPtr->m_szTabViewString,
01189                                     tabDispWidth <= 8 ? tabDispWidth : 8, // Sep. 22, 2002 genta
01190                                      m_pnDx );
01191                                 ::SelectObject( hdc, hFontOld );
01192                                 ::SetTextColor( hdc, colTextColorOld );
01193                                 ::SetBkColor( hdc, colBkColorOld );
01194                             }else{
01195                                 if( bSearchStringMode ){
01196                                     nColorIdx = COLORIDX_SEARCH;
01197                                     colBkColorOld = ::SetBkColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colBACK );  /* TAB文字背景の色 */
01198                                 }
01199                                 ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01200                                     &rcClip2, pszSPACES,
01201                                     tabDispWidth <= 8 ? tabDispWidth : 8, // Sep. 22, 2002 genta
01202                                      m_pnDx );
01203                                 if( bSearchStringMode ){
01204                                     ::SetBkColor( hdc, colBkColorOld );
01205                                 }
01206
01207                                 //タブ矢印表示  //@@@ 2003.03.26 MIK
01208                                 if( TypeDataPtr->m_ColorInfoArr[COLORIDX_TAB].m_bDisp
01209                                  && 0 != TypeDataPtr->m_bTabArrow
01210                                  && rcClip2.left <= x + nX * nCharWidth ) // Apr. 1, 2003 MIK 行番号と重なる
01211                                 {
01212                                     DrawTabArrow( hdc, x + nX * ( nCharWidth ), y, m_nCharWidth, m_nCharHeight,
01213                                         TypeDataPtr->m_ColorInfoArr[COLORIDX_TAB].m_bFatFont,
01214                                         TypeDataPtr->m_ColorInfoArr[COLORIDX_TAB].m_colTEXT );
01215                                 }
01216                             }
01217                         }
01218                         nX += tabDispWidth ;//  Sep. 22, 2002 genta
01219                     }
01220                     nBgn = nPos + 1;
01221                     nCharChars = 1;
01222                 }else
01223                 if( (unsigned char)pLine[nPos] == 0x81 && (unsigned char)pLine[nPos + 1] == 0x40    //@@@ 2001.11.17 upd MIK
01224                 // && nCOMMENTMODE != 1000 )    //@@@ 2002.01.04
01225                  && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )  //@@@ 2002.01.04
01226                 {   //@@@ 2001.11.17 add MIK    //@@@ 2002.01.04
01227                     if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01228                         /* テキスト表示 */
01229                         nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01230
01231                         /* 全角空白を表示する */
01232                         rcClip2.left = x + nX * ( nCharWidth );
01233                         rcClip2.right = rcClip2.left + ( nCharWidth ) * 2;
01234                         if( rcClip2.left < m_nViewAlignLeft ){
01235                             rcClip2.left = m_nViewAlignLeft;
01236                         }
01237                         if( rcClip2.left < rcClip2.right &&
01238                             rcClip2.left < m_nViewAlignLeft + m_nViewCx && rcClip2.right > m_nViewAlignLeft ){
01239                             rcClip2.top = y;
01240                             rcClip2.bottom = y + nLineHeight;
01241
01242                             if( TypeDataPtr->m_ColorInfoArr[COLORIDX_ZENSPACE].m_bDisp ){   /* 日本語空白を表示するか */
01243                                 if( bSearchStringMode ){
01244                                     nColorIdx = COLORIDX_SEARCH;
01245                                 }else{
01246                                     nColorIdx = COLORIDX_ZENSPACE;
01247                                 }
01248                                 colTextColorOld = ::SetTextColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colTEXT );  /* 全角スペース文字の色 */
01249                             colBkColorOld = ::SetBkColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colBACK );      /* 全角スペース文字背景の色 */
01250
01251
01252                                 HFONT   hFontOld;
01253                                 /* フォントを選ぶ */
01254                                 hFontOld = (HFONT)::SelectObject( hdc,
01255                                     ChooseFontHandle(
01256                                         TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bFatFont,
01257                                         TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bUnderLine
01258                                     )
01259                                 );
01260 //                              if( TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bFatFont ){    /* 太字か */
01261 //                                  hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN_FAT );
01262 //                              }else{
01263 //                                  hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN );
01264 //                              }
01265
01266                                 ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01267                                     &rcClip2, pszZENSPACE, lstrlen( pszZENSPACE ), m_pnDx );
01268
01269                                 ::SelectObject( hdc, hFontOld );
01270                                 ::SetTextColor( hdc, colTextColorOld );
01271                                 ::SetBkColor( hdc, colBkColorOld );
01272
01273                             }else{
01274                             if( bSearchStringMode ){
01275                                 nColorIdx = COLORIDX_SEARCH;
01276                                 colBkColorOld = ::SetBkColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colBACK );  /* 文字背景の色 */
01277                             }
01278                                 ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01279                                     &rcClip2, pszSPACES, 2, m_pnDx );
01280                             }
01281                             if( bSearchStringMode ){
01282                                 ::SetBkColor( hdc, colBkColorOld );
01283                             }
01284                         }
01285                         nX += 2;
01286                     }
01287                     nBgn = nPos + 2;
01288                     nCharChars = 2;
01289                 }
01290                 //半角空白（半角スペース）を表示 2002.04.28 Add by KK
01291                 else if (pLine[nPos] == ' ' && TypeDataPtr->m_ColorInfoArr[COLORIDX_SPACE].m_bDisp
01292                      && (nCOMMENTMODE < 1000 || nCOMMENTMODE > 1099) )
01293                 {
01294                     nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01295                     if( y >= m_nViewAlignTop ){
01296                         rcClip2.left = x + nX * ( nCharWidth );
01297                         rcClip2.right = rcClip2.left + ( nCharWidth );
01298                         if( rcClip2.left < m_nViewAlignLeft ){
01299                             rcClip2.left = m_nViewAlignLeft;
01300                         }
01301                         if( rcClip2.left < rcClip2.right &&
01302                             rcClip2.left < m_nViewAlignLeft + m_nViewCx && rcClip2.right > m_nViewAlignLeft ){
01303
01304                             if( bSearchStringMode ){
01305                                 nColorIdx = COLORIDX_SEARCH;
01306                             }else{
01307                                 nColorIdx = COLORIDX_SPACE;
01308                             }
01309
01310                             colTextColorOld = ::SetTextColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colTEXT );  /* 半角スペース文字の色 */
01311                             colBkColorOld = ::SetBkColor( hdc, TypeDataPtr->m_ColorInfoArr[nColorIdx].m_colBACK );      /* 半角スペース文字背景の色 */
01312                             HFONT   hFontOld = (HFONT)::SelectObject( hdc,
01313                                 ChooseFontHandle(
01314                                     TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bFatFont,
01315                                     TypeDataPtr->m_ColorInfoArr[nColorIdx].m_bUnderLine
01316                                 )
01317                             );
01318
01319                             //小文字"o"の下半分を出力
01320                             rcClip2.top = y + (int)((nLineHeight/2) ) ;
01321                             rcClip2.bottom = y + nLineHeight;
01322                             ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01323                                 &rcClip2, "o", 1, m_pnDx );
01324
01325                             //上半分は普通の空白で出力（"o"の上半分を消す）
01326                             rcClip2.top = y ;
01327                             rcClip2.bottom = y + (int)((nLineHeight/2) ) ;
01328                             ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01329                                 &rcClip2, " ", 1, m_pnDx );
01330
01331                             ::SelectObject( hdc, hFontOld );
01332                             ::SetTextColor( hdc, colTextColorOld );
01333                             ::SetBkColor( hdc, colBkColorOld );
01334                         }
01335                         nX++;
01336                     }
01337                     nBgn = nPos + 1;
01338                     nCharChars = 1;
01339                 }
01340                 else{
01341                     // 2005-09-02 D.S.Koba GetSizeOfChar
01342                     nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
01343                     if( 0 == nCharChars ){
01344                         nCharChars = 1;
01345                     }
01346                     if( !bSearchStringMode
01347                      && 1 == nCharChars
01348                      && COLORIDX_CTRLCODE != nCOMMENTMODE // 2002/03/13 novice
01349                      && TypeDataPtr->m_ColorInfoArr[COLORIDX_CTRLCODE].m_bDisp  /* コントロールコードを色分け */
01350                      && (
01351                                 //  Jan. 23, 2002 genta 警告抑制
01352                             ( (unsigned char)pLine[nPos] <= (unsigned char)0x1F ) ||
01353                             ( (unsigned char)'~' < (unsigned char)pLine[nPos] && (unsigned char)pLine[nPos] < (unsigned char)'｡' ) ||
01354                             ( (unsigned char)'ﾟ' < (unsigned char)pLine[nPos] )
01355                         )
01356                      && pLine[nPos] != TAB && pLine[nPos] != CR && pLine[nPos] != LF
01357                     ){
01358                         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01359                             /* テキスト表示 */
01360                             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01361                         }
01362                         nBgn = nPos;
01363                         nCOMMENTMODE_OLD = nCOMMENTMODE;
01364                         nCOMMENTEND_OLD = nCOMMENTEND;
01365                         nCOMMENTMODE = COLORIDX_CTRLCODE;   /* コントロールコード モード */ // 2002/03/13 novice
01366                         /* コントロールコード列の終端を探す */
01367                         for( i = nPos + 1; i <= nLineLen - 1; ++i ){
01368                             // 2005-09-02 D.S.Koba GetSizeOfChar
01369                             nCharChars_2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
01370                             if( 0 == nCharChars_2 ){
01371                                 nCharChars_2 = 1;
01372                             }
01373                             if( nCharChars_2 != 1 ){
01374                                 break;
01375                             }
01376                             if( (
01377                                 //  Jan. 23, 2002 genta 警告抑制
01378                                 ( (unsigned char)pLine[i] <= (unsigned char)0x1F ) ||
01379                                     ( (unsigned char)'~' < (unsigned char)pLine[i] && (unsigned char)pLine[i] < (unsigned char)'｡' ) ||
01380                                     ( (unsigned char)'ﾟ' < (unsigned char)pLine[i] )
01381                                 ) &&
01382                                 pLine[i] != TAB && pLine[i] != CR && pLine[i] != LF
01383                             ){
01384                             }else{
01385                                 break;
01386                             }
01387                         }
01388                         nCOMMENTEND = i;
01389                         /* 現在の色を指定 */
01390 //                      if( !bSearchStringMode ){
01391                             SetCurrentColor( hdc, nCOMMENTMODE );
01392 //                      }
01393                     }
01394                 }
01395                 nPos+= nCharChars;
01396             } //end of while( nPos - nLineBgn < pcLayout2->m_nLength )
01397             if( nPos >= nLineLen ){
01398                 break;
01399             }
01400             if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01401                 /* テキスト表示 */
01402                 nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01403                 nBgn = nPos;
01404
01405                 /* 行末背景描画 */
01406                 rcClip.left = x + nX * ( nCharWidth );
01407                 rcClip.right = m_nViewAlignLeft + m_nViewCx;
01408                 rcClip.top = y;
01409                 rcClip.bottom = y + nLineHeight;
01410                 if( rcClip.left < m_nViewAlignLeft ){
01411                     rcClip.left = m_nViewAlignLeft;
01412                 }
01413                 if( rcClip.left < rcClip.right &&
01414                     rcClip.left < m_nViewAlignLeft + m_nViewCx && rcClip.right > m_nViewAlignLeft ){
01415                     hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
01416                     ::FillRect( hdc, &rcClip, hBrush );
01417                     ::DeleteObject( hBrush );
01418                 }
01419
01420                 /* 折り返し記号 */
01421                 /* 折り返し記号を表示する */
01422                 rcClip2.left = x + nX * ( nCharWidth );
01423                 rcClip2.right = rcClip2.left + ( nCharWidth ) * 1;
01424                 if( rcClip2.left < m_nViewAlignLeft ){
01425                     rcClip2.left = m_nViewAlignLeft;
01426                 }
01427                 if( rcClip2.left < rcClip2.right &&
01428                     rcClip2.left < m_nViewAlignLeft + m_nViewCx && rcClip2.right > m_nViewAlignLeft ){
01429                     rcClip2.top = y;
01430                     rcClip2.bottom = y + nLineHeight;
01431
01432                     /* 折り返し記号を表示する */
01433                     if( TypeDataPtr->m_ColorInfoArr[COLORIDX_WRAP].m_bDisp ){
01434                         HFONT   hFontOld;
01435                         colTextColorOld = ::SetTextColor( hdc, TypeDataPtr->m_ColorInfoArr[COLORIDX_WRAP].m_colTEXT );  /* 折り返し記号の色 */
01436                         colBkColorOld = ::SetBkColor( hdc, TypeDataPtr->m_ColorInfoArr[COLORIDX_WRAP].m_colBACK );      /* 折り返し記号背景の色 */
01437                         /* フォントを選ぶ */
01438                         hFontOld = (HFONT)::SelectObject( hdc,
01439                             ChooseFontHandle(
01440                                 TypeDataPtr->m_ColorInfoArr[COLORIDX_WRAP].m_bFatFont,
01441                                 TypeDataPtr->m_ColorInfoArr[COLORIDX_WRAP].m_bUnderLine
01442                             )
01443                         );
01444                         ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01445                             &rcClip2, pszWRAP, lstrlen( pszWRAP ), m_pnDx );
01446
01447                         ::SelectObject( hdc, hFontOld );
01448                         ::SetTextColor( hdc, colTextColorOld );
01449                         ::SetBkColor( hdc, colBkColorOld );
01450                     }else{
01451                         ::ExtTextOut( hdc, x + nX * ( nCharWidth ), y, fuOptions,
01452                             &rcClip2, " ", 1, m_pnDx );
01453                     }
01454                 }
01455                 // 2006.04.29 Moca 選択処理のため縦線処理を追加
01456                 DispVerticalLines( hdc, y, y + nLineHeight,  0, -1 );
01457                 if( bSelected ){
01458                     /* テキスト反転 */
01459                     DispTextSelected( hdc, nLineNum, x, y, nX );
01460                 }
01461             }
01462         }
01463
01464         if( y >= m_nViewAlignTop ){
01465             /* テキスト表示 */
01466             nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
01467             /* EOF記号の表示 */
01468             if( nLineNum + 1 == m_pcEditDoc->m_cLayoutMgr.GetLineCount() &&
01469                 nX < nWrapWidth
01470             ){
01471                 if( TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF].m_bDisp ){
01472                     //  May 29, 2004 genta (advised by MIK) 共通関数化
01473                     nX += DispEOF( hdc, x + nX * ( nCharWidth ), y, nCharWidth, nLineHeight, fuOptions,
01474                         TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF] );
01475                 }
01476                 bEOF = TRUE;
01477             }
01478             if( bDispBkBitmap ){
01479             }else{
01480                 /* 行末背景描画 */
01481                 rcClip.left = x + nX * ( nCharWidth );
01482                 rcClip.right = m_nViewAlignLeft + m_nViewCx;
01483                 rcClip.top = y;
01484                 rcClip.bottom = y + nLineHeight;
01485                 if( rcClip.left < m_nViewAlignLeft ){
01486                     rcClip.left = m_nViewAlignLeft;
01487                 }
01488                 if( rcClip.left < rcClip.right &&
01489                     rcClip.left < m_nViewAlignLeft + m_nViewCx && rcClip.right > m_nViewAlignLeft ){
01490                     hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
01491                     ::FillRect( hdc, &rcClip, hBrush );
01492                     ::DeleteObject( hBrush );
01493                 }
01494             }
01495             // 2006.04.29 Moca 選択処理のため縦線処理を追加
01496             DispVerticalLines( hdc, y, y + nLineHeight,  0, -1 );
01497             if( bSelected ){
01498                 /* テキスト反転 */
01499                 DispTextSelected( hdc, nLineNum, x, y, nX );
01500             }
01501         }
01502 end_of_line:;
01503         nLineNum++;
01504         y += nLineHeight;
01505     }else{ // NULL == pLineの場合
01506         if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
01507             int nYPrev = y;
01508
01509             if( bDispBkBitmap ){
01510             }else{
01511                 /* 背景描画 */
01512                 rcClip.left = 0;
01513                 rcClip.right = m_nViewAlignLeft + m_nViewCx;
01514                 rcClip.top = y;
01515                 rcClip.bottom = y + nLineHeight;
01516                 hBrush = ::CreateSolidBrush( TypeDataPtr->m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
01517                 ::FillRect( hdc, &rcClip, hBrush );
01518                 ::DeleteObject( hBrush );
01519             }
01520             /* EOF記号の表示 */
01521             nCount = m_pcEditDoc->m_cLayoutMgr.GetLineCount();
01522             if( nCount == 0 && m_nViewTopLine == 0 && nLineNum == 0 ){
01523                 /* EOF記号の表示 */
01524                 if( TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF].m_bDisp ){
01525                     //  May 29, 2004 genta (advised by MIK) 共通関数化
01526                     nX += DispEOF( hdc, x, y, nCharWidth, nLineHeight, fuOptions,
01527                         TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF] );
01528                 }
01529                 y += nLineHeight;
01530                 bEOF = TRUE;
01531             }else{
01532                 if( nCount > 0 && nLineNum == nCount ){
01533                     const char* pLine;
01534                     int         nLineLen;
01535                     const CLayout* pcLayout;
01536                     pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( nCount - 1, &nLineLen, &pcLayout );
01537                     nLineCols = LineIndexToColmn( pcLayout, nLineLen );
01538                     if( ( pLine[nLineLen - 1] == CR || pLine[nLineLen - 1] == LF ) ||
01539                         nLineCols >= nWrapWidth
01540                      ){
01541                         /* EOF記号の表示 */
01542                         if( TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF].m_bDisp ){
01543                             //  May 29, 2004 genta (advised by MIK) 共通関数化
01544                             nX += DispEOF( hdc, x, y, nCharWidth, nLineHeight, fuOptions,
01545                                 TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF] );
01546                         }
01547                         y += nLineHeight;
01548                         bEOF = TRUE;
01549                     }
01550                 }
01551             }
01552             // 2006.04.29 Moca 選択処理のため縦線処理を追加
01553             DispVerticalLines( hdc, nYPrev, nYPrev + nLineHeight,  0, -1 );
01554         }
01555     }
01556
01557 end_of_func:;
01558 //  2002/05/08 YAZAKI アンダーラインの再描画は不要でした
01559 //  MYTRACE( "m_nOldUnderLineY=%d\n", m_nOldUnderLineY );
01560 //  if( -1 != m_nOldUnderLineY ){
01561 //      /* カーソル行アンダーラインのON */
01562 //      CaretUnderLineON( TRUE );
01563 //  }
01564     return bEOF;
01565 }
01566
01567 //  May 23, 2000 genta
01586 void CEditView::DrawEOL( HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, CEOL cEol, int bBold, COLORREF pColor )
01587 {
01588     int sx, sy; //  矢印の先頭
01589     HANDLE  hPen;
01590     HPEN    hPenOld;
01591     hPen = ::CreatePen( PS_SOLID, 1, pColor );
01592     hPenOld = (HPEN)::SelectObject( hdc, hPen );
01593
01594     switch( cEol.GetType() ){
01595     case EOL_CRLF:  //  下左矢印
01596         sx = nPosX;
01597         sy = nPosY + ( nHeight / 2);
01598         ::MoveToEx( hdc, sx + nWidth, sy - nHeight / 4, NULL ); //  上へ
01599         ::LineTo(   hdc, sx + nWidth, sy );         //  下へ
01600         ::LineTo(   hdc, sx, sy );                  //  先頭へ
01601         ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
01602         ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
01603         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
01604         if ( bBold ) {
01605             ::MoveToEx( hdc, sx + nWidth + 1, sy - nHeight / 4, NULL ); //  上へ（右へずらす）
01606             ++sy;
01607             ::LineTo( hdc, sx + nWidth + 1, sy );   //  右へ（右にひとつずれている）
01608             ::LineTo(   hdc, sx, sy );                  //  先頭へ
01609             ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
01610             ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
01611             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
01612         }
01613 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
01614 //      ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
01615 //      ::MoveToEx( hdc, sx, sy, NULL );
01616 //      ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), sy - ( nHeight * 5 / 20 ) );
01617 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL);
01618 //      ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), sy - ( nHeight * 5 / 20 ) );
01619 //      if( bBold ){
01620 //          ++sx;
01621 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
01622 //          ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
01623 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
01624 //          ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), nPosY + ( nHeight * 15/ 20) - ( nHeight * 5 / 20 ) );
01625 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL);
01626 //          ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), nPosY + ( nHeight * 15/ 20) - ( nHeight * 5 / 20 ) );
01627 //      }
01628         break;
01629     case EOL_CR:    //  左向き矢印  // 2007.08.17 ryoji EOL_LF -> EOL_CR
01630         sx = nPosX;
01631         sy = nPosY + ( nHeight / 2 );
01632         ::MoveToEx( hdc, sx + nWidth, sy, NULL );   //  右へ
01633         ::LineTo(   hdc, sx, sy );                  //  先頭へ
01634         ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
01635         ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
01636         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
01637         if ( bBold ) {
01638             ++sy;
01639             ::MoveToEx( hdc, sx + nWidth, sy, NULL );   //  右へ
01640             ::LineTo(   hdc, sx, sy );                  //  先頭へ
01641             ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4 );  //  先頭から下へ
01642             ::MoveToEx( hdc, sx, sy, NULL);             //  先頭へ戻り
01643             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );  //  先頭から上へ
01644         }
01645 //      ::MoveToEx( hdc, nPosX, sy, NULL );
01646 //      ::LineTo(   hdc, nPosX + nWidth, sy );
01647 //      ::MoveToEx( hdc, sx, sy, NULL );
01648 //      ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );
01649 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
01650 //      ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4);
01651 //      if( bBold ){
01652 //          ++sy;
01653 //          ::MoveToEx( hdc, nPosX, sy, NULL );
01654 //          ::LineTo(   hdc, nPosX + nWidth, sy );
01655 //          ::MoveToEx( hdc, sx, sy, NULL );
01656 //          ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4 );
01657 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
01658 //          ::LineTo(   hdc, sx + nHeight / 4, sy + nHeight / 4);
01659 //      }
01660         break;
01661     case EOL_LF:    //  下向き矢印  // 2007.08.17 ryoji EOL_CR -> EOL_LF
01662         sx = nPosX + ( nWidth / 2 );
01663         sy = nPosY + ( nHeight * 3 / 4 );
01664         ::MoveToEx( hdc, sx, nPosY + nHeight / 4 + 1, NULL );   //  上へ
01665         ::LineTo(   hdc, sx, sy );                              //  上から下へ
01666         ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
01667         ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
01668         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
01669         if( bBold ){
01670             ++sx;
01671             ::MoveToEx( hdc, sx, nPosY + nHeight / 4 + 1, NULL );
01672             ::LineTo(   hdc, sx, sy );                              //  上から下へ
01673             ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
01674             ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
01675             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
01676         }
01677 //#if 1
01678 //      sx = nPosX + nWidth;
01679 //      sy = nPosY + ( nHeight / 2 );
01680 //      ::MoveToEx( hdc, nPosX, sy, NULL );
01681 //      ::LineTo(   hdc, nPosX + nWidth, sy );
01682 //      ::MoveToEx( hdc, sx, sy, NULL );
01683 //      ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );
01684 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
01685 //      ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4);
01686 //      if( bBold ){
01687 //          ++sy;
01688 //          ::MoveToEx( hdc, nPosX, sy, NULL );
01689 //          ::LineTo(   hdc, nPosX + nWidth, sy );
01690 //          ::MoveToEx( hdc, sx, sy, NULL );
01691 //          ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );
01692 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight / 2 ), NULL );
01693 //          ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4);
01694 //      }
01695 //#else
01696 //      sx = nPosX;
01697 //      ::MoveToEx( hdc, sx + nWidth - 3, nPosY + nHeight * 1 / 4, NULL );
01698 //      ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4);
01699 //      ::LineTo(   hdc, sx, nPosY + nHeight * 3 / 4 );
01700 //      ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4 - nHeight / 4);
01701 //      if( bBold ){
01702 //          ++sx;
01703 //          ::MoveToEx( hdc, sx + nWidth - 3, nPosY + nHeight * 1 / 4, NULL );
01704 //          ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4);
01705 //          ::LineTo(   hdc, sx, nPosY + nHeight * 3 / 4 );
01706 //          ::LineTo(   hdc, sx + nWidth - 3, nPosY + nHeight * 3 / 4 - nHeight / 4);
01707 //      }
01708 //#endif
01709         break;
01710     case EOL_LFCR:
01711         sx = nPosX + ( nWidth / 2 );
01712         sy = nPosY + ( nHeight * 3 / 4 );
01713         ::MoveToEx( hdc, sx + nWidth / 2, nPosY + nHeight / 4 + 1, NULL );  //  右上へ
01714         ::LineTo(   hdc, sx, nPosY + nHeight / 4 + 1 );         //  右から左へ
01715         ::LineTo(   hdc, sx, sy );                              //  上から下へ
01716         ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
01717         ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
01718         ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
01719         if( bBold ){
01720             ::MoveToEx( hdc, sx + nWidth / 2, nPosY + nHeight / 4 + 2, NULL );  //  右上へ
01721             ++sx;
01722             ::LineTo(   hdc, sx, nPosY + nHeight / 4 + 2 );         //  右から左へ
01723             ::LineTo(   hdc, sx, sy );                              //  上から下へ
01724             ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4);   //  そのまま左上へ
01725             ::MoveToEx( hdc, sx, sy, NULL);                         //  矢印の先端に戻る
01726             ::LineTo(   hdc, sx + nHeight / 4, sy - nHeight / 4);   //  そして右上へ
01727         }
01728 //      sx = nPosX + ( nWidth / 2 );
01729 //      sy = nPosY + ( nHeight * 1 / 4 );
01730 //      ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
01731 //      ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
01732 //      ::MoveToEx( hdc, sx, sy, NULL );
01733 //      ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
01734 //      ::MoveToEx( hdc, sx, sy, NULL);
01735 //      ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
01736 //      if( bBold ){
01737 //          ++sx;
01738 //          ::MoveToEx( hdc, sx, nPosY + ( nHeight * 15 / 20 ), NULL );
01739 //          ::LineTo(   hdc, sx, nPosY + ( nHeight * 5 / 20 ) );
01740 //          ::MoveToEx( hdc, sx, sy, NULL );
01741 //          ::LineTo(   hdc, sx - ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
01742 //          ::MoveToEx( hdc, sx, sy, NULL);
01743 //          ::LineTo(   hdc, sx + ( nHeight * 5 / 20 ), sy + ( nHeight * 5 / 20 ) );
01744 //      }
01745         break;
01746     }
01747     ::SelectObject( hdc, hPenOld );
01748     ::DeleteObject( hPen );
01749 }
01750
01751 /*
01752     タブ矢印描画関数
01753 */
01754 void CEditView::DrawTabArrow( HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, int bBold, COLORREF pColor )
01755 {
01756     int sx, sy; //  矢印の先頭
01757     HANDLE  hPen;
01758     HPEN    hPenOld;
01759
01760     hPen = ::CreatePen( PS_SOLID, 1, pColor );
01761     hPenOld = (HPEN)::SelectObject( hdc, hPen );
01762
01763     nWidth--;
01764     sx = nPosX + nWidth;
01765     sy = nPosY + ( nHeight / 2 );
01766     ::MoveToEx( hdc, sx - nWidth, sy, NULL );   //  左へ
01767     ::LineTo(   hdc, sx, sy );                  //  最後へ
01768     ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4 );  //  最後から下へ
01769     ::MoveToEx( hdc, sx, sy, NULL);             //  最後へ戻り
01770     ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );  //  最後から上へ
01771     if ( bBold ) {
01772         ++sy;
01773         ::MoveToEx( hdc, sx - nWidth, sy, NULL );   //  左へ
01774         ::LineTo(   hdc, sx, sy );                  //  最後へ
01775         ::LineTo(   hdc, sx - nHeight / 4, sy + nHeight / 4 );  //  最後から下へ
01776         ::MoveToEx( hdc, sx, sy, NULL);             //  最後へ戻り
01777         ::LineTo(   hdc, sx - nHeight / 4, sy - nHeight / 4 );  //  最後から上へ
01778     }
01779
01780     ::SelectObject( hdc, hPenOld );
01781     ::DeleteObject( hPen );
01782 }
01783
01795 int CEditView::DispEOF( HDC hdc, int x, int y, int nCharWidth, int nLineHeight, UINT fuOptions, const ColorInfo& EofColInfo )
01796 {
01797     //  元の色を保存するため
01798     COLORREF    colTextColorOld;
01799     COLORREF    colBkColorOld;
01800     RECT        rcClip;
01801     const char  pszEOF[] = "[EOF]";
01802     const int   szEOFlen = sizeof( pszEOF) - 1;
01803
01804     colTextColorOld = ::SetTextColor( hdc, EofColInfo.m_colTEXT );  /* EOFの色 */
01805     colBkColorOld = ::SetBkColor( hdc, EofColInfo.m_colBACK );      /* EOF背景の色 */
01806     rcClip.left = /*m_nViewAlignLeft*/x;
01807     rcClip.right = rcClip.left + ( nCharWidth ) * szEOFlen;
01808     if( rcClip.left < m_nViewAlignLeft ){
01809         rcClip.left = m_nViewAlignLeft;
01810     }
01811     if( rcClip.left < rcClip.right &&
01812         rcClip.left < m_nViewAlignLeft + m_nViewCx && rcClip.right > m_nViewAlignLeft ){
01813         rcClip.top = y;
01814         rcClip.bottom = y + nLineHeight;
01815
01816         HFONT   hFontOld;
01817         /* フォントを選ぶ */
01818         hFontOld = (HFONT)::SelectObject( hdc,
01819             ChooseFontHandle(
01820                 EofColInfo.m_bFatFont,
01821                 EofColInfo.m_bUnderLine
01822             )
01823         );
01824 //      if( TypeDataPtr->m_ColorInfoArr[COLORIDX_EOF].m_bFatFont ){ /* 太字か */
01825 //          hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN_FAT );
01826 //      }else{
01827 //          hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN );
01828 //                              }
01829
01830         ::ExtTextOut( hdc, x , y, fuOptions,
01831             &rcClip, pszEOF, szEOFlen, m_pnDx );
01832
01833         ::SelectObject( hdc, hFontOld );
01834     }
01835
01836     ::SetTextColor( hdc, colTextColorOld );
01837     ::SetBkColor( hdc, colBkColorOld );
01838
01839     return szEOFlen;
01840 }
01841 //
01842
01855 void CEditView::DispVerticalLines( HDC hdc, int nTop, int nBottom, int nLeftCol, int nRightCol )
01856 {
01857     const Types&    typeData = m_pcEditDoc->GetDocumentAttribute();
01858     if( typeData.m_ColorInfoArr[COLORIDX_VERTLINE].m_bDisp == FALSE ){
01859         return;
01860     }
01861     nLeftCol = __max( m_nViewLeftCol, nLeftCol );
01862     const int nWrapWidth  = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
01863     const int nCharWidth  = m_nCharWidth + typeData.m_nColmSpace;
01864     if( nRightCol < 0 ){
01865         nRightCol = nWrapWidth;
01866     }
01867     const int nPosXOffset = m_pShareData->m_Common.m_nVertLineOffset + m_nViewAlignLeft;
01868     const int nPosXLeft   = __max( m_nViewAlignLeft + (nLeftCol  - m_nViewLeftCol) * nCharWidth, m_nViewAlignLeft );
01869     const int nPosXRight  = __min( m_nViewAlignLeft + (nRightCol - m_nViewLeftCol) * nCharWidth, m_nViewCx + m_nViewAlignLeft );
01870     const int nLineHeight = m_nCharHeight + typeData.m_nLineSpace;
01871     bool bOddLine = ((((nLineHeight % 2) ? m_nViewTopLine : 0) + m_nViewAlignTop + nTop) % 2 == 1);
01872
01873     // 太線
01874     const BOOL bBold = typeData.m_ColorInfoArr[COLORIDX_VERTLINE].m_bFatFont;
01875     // ドット線(下線属性を転用/テスト用)
01876     const BOOL bDot = typeData.m_ColorInfoArr[COLORIDX_VERTLINE].m_bUnderLine;
01877     const bool bExorPen = ( typeData.m_ColorInfoArr[COLORIDX_VERTLINE].m_colTEXT
01878         == typeData.m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
01879     HPEN hPen;
01880     int nROP_Old = 0;
01881     if( bExorPen ){
01882         hPen = ::CreatePen( PS_SOLID, 0, typeData.m_ColorInfoArr[COLORIDX_VERTLINE].m_colBACK );
01883         nROP_Old = ::SetROP2( hdc, R2_NOTXORPEN );
01884     }else{
01885         hPen = ::CreatePen( PS_SOLID, 0, typeData.m_ColorInfoArr[COLORIDX_VERTLINE].m_colTEXT );
01886     }
01887     HPEN hPenOld = (HPEN)::SelectObject( hdc, hPen );
01888
01889     int k;
01890     for( k = 0; k < MAX_VERTLINES && typeData.m_nVertLineIdx[k] != 0; k++ ){
01891         // nXColは1開始。m_nViewLeftColは0開始なので注意。
01892         int nXCol = typeData.m_nVertLineIdx[k];
01893         int nXColEnd = nXCol;
01894         int nXColAdd = 1;
01895         // nXColがマイナスだと繰り返し。k+1を終了値、k+2をステップ幅として利用する
01896         if( nXCol < 0 ){
01897             if( k < MAX_VERTLINES - 2 ){
01898                 nXCol = -nXCol;
01899                 nXColEnd = typeData.m_nVertLineIdx[++k];
01900                 nXColAdd = typeData.m_nVertLineIdx[++k];
01901                 if( nXColEnd < nXCol || nXColAdd <= 0 ){
01902                     continue;
01903                 }
01904                 // 作画範囲の始めまでスキップ
01905                 if( nXCol < m_nViewLeftCol ){
01906                     nXCol = m_nViewLeftCol + nXColAdd - (m_nViewLeftCol - nXCol) % nXColAdd;
01907                 }
01908             }else{
01909                 k += 2;
01910                 continue;
01911             }
01912         }
01913         for(; nXCol <= nXColEnd; nXCol += nXColAdd ){
01914             if( nWrapWidth < nXCol ){
01915                 break;
01916             }
01917             int nPosX = nPosXOffset + ( nXCol - 1 - m_nViewLeftCol ) * nCharWidth;
01918             // 2006.04.30 Moca 線の引く範囲・方法を変更
01919             // 太線の場合、半分だけ作画する可能性がある。
01920             int nPosXBold = nPosX;
01921             if( bBold ){
01922                 nPosXBold -= 1;
01923             }
01924             if( nPosXRight <= nPosXBold ){
01925                 break;
01926             }
01927             if( nPosXLeft <= nPosX ){
01928                 if( bDot ){
01929                     // 点線で作画。1ドットの線を作成
01930                     int y = nTop;
01931                     // スクロールしても線が切れないように座標を調整
01932                     if( bOddLine ){
01933                         y++;
01934                     }
01935                     for( ; y < nBottom; y += 2 ){
01936                         if( nPosX < nPosXRight ){
01937                             ::MoveToEx( hdc, nPosX, y, NULL );
01938                             ::LineTo( hdc, nPosX, y + 1 );
01939                         }
01940                         if( bBold && nPosXLeft <= nPosXBold ){
01941                             ::MoveToEx( hdc, nPosXBold, y, NULL );
01942                             ::LineTo( hdc, nPosXBold, y + 1 );
01943                         }
01944                     }
01945                 }else{
01946                     if( nPosX < nPosXRight ){
01947                         ::MoveToEx( hdc, nPosX, nTop, NULL );
01948                         ::LineTo( hdc, nPosX, nBottom );
01949                     }
01950                     if( bBold && nPosXLeft <= nPosXBold ){
01951                         ::MoveToEx( hdc, nPosXBold, nTop, NULL );
01952                         ::LineTo( hdc, nPosXBold, nBottom );
01953                     }
01954                 }
01955             }
01956         }
01957     }
01958     if( bExorPen ){
01959         ::SetROP2( hdc, nROP_Old );
01960     }
01961     ::SelectObject( hdc, hPenOld );
01962     ::DeleteObject( hPen );
01963 }
01964
01965
01966 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_New2.cpp

CEditView_New2.cpp

CEditViewクラス [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <io.h>
#include "CEditView.h"
#include "debug.h"
#include "funccode.h"
#include "charcode.h"
#include "mymessage.h"
#include "CEditWnd.h"
#include "CShareData.h"
#include "CDlgCancel.h"
#include "sakura_rc.h"
#include "etc_uty.h"
#include "Clayout.h"
#include "CDocLine.h"
#include "CMarkMgr.h"
#include "my_icmp.h"

CEditView_New2.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | ZENKAKKO_T
全角括弧の対応表 [詳細]
struct | HANKAKKO_T
半角括弧の対応表 [詳細]

変数

const struct ZENKAKKO_T | zenkakkoarr []
全角括弧の対応表
const struct HANKAKKO_T | hankakkoarr []
半角括弧の対応表

説明

CEditViewクラス

作者:
Norio Nakatani
日付:
1998/12/08 作成

CEditView_New2.cpp で定義されています。

変数

const struct HANKAKKO_T hankakkoarr[]

半角括弧の対応表

参照元 CEditView::IsBracket()・CEditView::SearchBracket().

const struct ZENKAKKO_T zenkakkoarr[]

全角括弧の対応表

Sakura-Editorに対してSat Oct 27 02:17:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_New2.cpp ソースファイル

CEditView_New2.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, genta, MIK, asa-o, ao
00010     Copyright (C) 2001, hor, MIK, genta, asa-o
00011     Copyright (C) 2002, YAZAKI, aroka, MIK, novice, hor, ai, KK
00012     Copyright (C) 2003, Moca, ai, かろと
00013     Copyright (C) 2004, genta
00014     Copyright (C) 2005, genta, MIK, Moca, かろと, ryoji, zenryaku, D.S.Koba
00015     Copyright (C) 2006, Moca, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holders to use this code for other purpose.
00019 */
00020
00021 #include "stdafx.h"
00022 #include <stdlib.h>
00023 #include <time.h>
00024 #include <io.h>
00025 #include "CEditView.h"
00026 #include "debug.h"
00027 #include "funccode.h"
00028 #include "charcode.h"
00029 #include "mymessage.h"
00030 #include "CEditWnd.h"
00031 #include "CShareData.h"
00032 #include "CDlgCancel.h"
00033 #include "sakura_rc.h"
00034 #include "etc_uty.h"
00035 #include "Clayout.h"
00036 #include "CDocLine.h"
00037 #include "CMarkMgr.h"
00038 #include "my_icmp.h"    //@@@ 2002.01.13 add
00039
00040
00041 /* 現在の色を指定 */
00042 void CEditView::SetCurrentColor( HDC hdc, int nCOMMENTMODE )
00043 {
00044     int             nColorIdx;
00045     COLORREF        colText;
00046     COLORREF        colBack;
00047 //  if( NULL != m_hFontOld ){
00048 //      ::SelectObject( hdc, m_hFontOld );
00049 //      m_hFontOld = NULL;
00050 //  }
00051     nColorIdx = -1;
00052     switch( nCOMMENTMODE ){
00053 // 2002/03/13 novice
00054     case COLORIDX_TEXT: /* テキスト */
00055     case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */
00056     case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */
00057     case COLORIDX_CTRLCODE: /* コントロールコードである */
00058     case COLORIDX_DIGIT:    /* 半角数値である */
00059     case COLORIDX_KEYWORD1: /* 強調キーワード1（登録単語）文字列である */
00060     case COLORIDX_KEYWORD2: /* 強調キーワード2（登録単語）文字列である */
00061     case COLORIDX_KEYWORD3: // 2005.01.13 MIK 強調キーワード3-10
00062     case COLORIDX_KEYWORD4:
00063     case COLORIDX_KEYWORD5:
00064     case COLORIDX_KEYWORD6:
00065     case COLORIDX_KEYWORD7:
00066     case COLORIDX_KEYWORD8:
00067     case COLORIDX_KEYWORD9:
00068     case COLORIDX_KEYWORD10:
00069     case COLORIDX_URL:      /* URLである */
00070     case COLORIDX_SEARCH:   /* 検索文字列である */
00071     case COLORIDX_BRACKET_PAIR: /* 対括弧の強調表示である */    // 2002/12/18 ai
00072         nColorIdx = nCOMMENTMODE;
00073         break;
00074     case COLORIDX_COMMENT:  /* 行コメントである */
00075     case COLORIDX_BLOCK1:   /* ブロックコメント1である */
00076     case COLORIDX_BLOCK2:   /* ブロックコメント2である */   //@@@ 2001.03.10 by MIK
00077         nColorIdx = COLORIDX_COMMENT;
00078         break;
00079
00080 //@@@ 2001.11.17 add start MIK
00081     default:    /* 正規表現キーワード */
00082         if( nCOMMENTMODE >= 1000 && nCOMMENTMODE <= 1099 )
00083         {
00084             nColorIdx = nCOMMENTMODE - 1000;    //下駄を履かせているのをはずす
00085             colText = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colTEXT;
00086             colBack = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colBACK;
00087             ::SetTextColor( hdc, colText );
00088             ::SetBkColor( hdc, colBack );
00089             if( NULL != m_hFontOld ){
00090                 ::SelectObject( hdc, m_hFontOld );
00091             }
00092             /* フォントを選ぶ */
00093             m_hFontOld = (HFONT)::SelectObject( hdc,
00094                 ChooseFontHandle(
00095                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bFatFont,
00096                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bUnderLine
00097                 )
00098             );
00099             return;
00100         }
00101         break;
00102 //@@@ 2001.11.17 add end MIK
00103
00104     }
00105
00106
00107
00108
00109
00110     if( -1 != nColorIdx ){
00111         if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bDisp ){
00112             colText = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colTEXT;
00113             colBack = m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_colBACK;
00114             ::SetTextColor( hdc, colText );
00115             ::SetBkColor( hdc, colBack );
00116             if( NULL != m_hFontOld ){
00117                 ::SelectObject( hdc, m_hFontOld );
00118             }
00119             /* フォントを選ぶ */
00120             m_hFontOld = (HFONT)::SelectObject( hdc,
00121                 ChooseFontHandle(
00122                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bFatFont,
00123                     m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIdx].m_bUnderLine
00124                 )
00125             );
00126         }
00127     }
00128
00129     return;
00130 }
00131
00132
00133 /* 行番号表示 */
00134 void CEditView::DispLineNumber(
00135         HDC                     hdc,
00136         const CLayout*          pcLayout,
00137         int                     nLineNum,
00138         int                     y
00139 )
00140 {
00141     RECT            rcClip;
00142     HBRUSH          hBrush;
00143     COLORREF        colTextColorOld;
00144     COLORREF        colBkColorOld;
00145     char            szLineNum[18];
00146     int             nLineHeight = m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace;
00147     int             nCharWidth = m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace;
00148     int             nLineCols;
00149     UINT            fuOptions = ETO_CLIPPED | ETO_OPAQUE;
00150     HPEN            hPen, hPenOld;
00151     int             nColorIndex;
00152     const CDocLine* pCDocLine;
00153     //  Sep. 23, 2002 genta 共通式のくくりだし
00154     int             nLineNumAreaWidth = m_nViewAlignLeftCols * nCharWidth;
00155
00156     nColorIndex = COLORIDX_GYOU;    /* 行番号 */
00157     if( NULL != pcLayout ){
00158 //      pCDocLine = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( pcLayout->m_nLinePhysical );
00159         pCDocLine = pcLayout->m_pCDocLine;
00160
00161         if( m_pcEditDoc->IsModified()   /* ドキュメントが無変更の状態か */
00162          && pCDocLine->IsModifyed() ){      /* 変更フラグ */
00163             if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_GYOU_MOD].m_bDisp ) // 2006.12.12 ryoji
00164                 nColorIndex = COLORIDX_GYOU_MOD;    /* 行番号（変更行） */
00165 //          if( 0 == pCDocLine->m_nModifyCount ){   /* 変更回数 */
00166 //              nColorIndex = COLORIDX_GYOU_MOD;    /* 行番号（変更行） */
00167 //          }
00168 //      }else{
00169 //          if( /* FALSE == m_pcEditDoc->IsModified() && --*/ /* ドキュメントが無変更の状態か */
00170 //              0 < pCDocLine->m_nModifyCount   /* 変更回数 */
00171 //          ){
00172 //              nColorIndex = COLORIDX_GYOU_MODSAVE;    /* 行番号（変更&保存済） */
00173 //          }
00174         }
00175     }
00176
00177     int type = pCDocLine->IsDiffMarked();
00178     {   //DIFF差分マーク表示    //@@@ 2002.05.25 MIK
00179         if( type )
00180         {
00181             switch( type )
00182             {
00183             case MARK_DIFF_APPEND:  //追加
00184                 if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_DIFF_APPEND].m_bDisp )
00185                     nColorIndex = COLORIDX_DIFF_APPEND;
00186                 break;
00187             case MARK_DIFF_CHANGE:  //変更
00188                 if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_DIFF_CHANGE].m_bDisp )
00189                     nColorIndex = COLORIDX_DIFF_CHANGE;
00190                 break;
00191             case MARK_DIFF_DELETE:  //削除
00192             case MARK_DIFF_DEL_EX:  //削除
00193                 if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_DIFF_DELETE].m_bDisp )
00194                     nColorIndex = COLORIDX_DIFF_DELETE;
00195                 break;
00196             }
00197         }
00198     }
00199
00200     /* 02/10/16 ai Start */
00201     // ブックマークの表示
00202     if(pCDocLine->IsBookMarked()){
00203         if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_MARK].m_bDisp ) {
00204             nColorIndex = COLORIDX_MARK;
00205         }
00206     }
00207     /* 02/10/16 ai End */
00208
00209 //  if( m_pcEditDoc->GetDocumentAttribute().m_bDispLINE ){  /* 行番号表示／非表示 */
00210     if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[/*nColorIndex*/COLORIDX_GYOU].m_bDisp ){ /* 行番号表示／非表示 */
00211         /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
00212         if( m_pcEditDoc->GetDocumentAttribute().m_bLineNumIsCRLF ){
00213             /* 論理行番号表示モード */
00214             if( NULL == pcLayout || 0 != pcLayout->m_nOffset ){
00215                 strcpy( szLineNum, " " );
00216             }else{
00217                 _itoa( pcLayout->m_nLinePhysical + 1, szLineNum, 10 );  /* 対応する論理行番号 */
00218             }
00219         }else{
00220             /* 物理行（レイアウト行）番号表示モード */
00221             _itoa( nLineNum + 1, szLineNum, 10 );
00222         }
00223         nLineCols = lstrlen( szLineNum );
00224
00225         colTextColorOld = ::SetTextColor( hdc, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_colTEXT ); /* 行番号の色 */
00226         //  Sep. 23, 2002 余白をテキストの背景色にする
00227         colBkColorOld = ::SetBkColor( hdc, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );       /* テキスト背景の色 */
00228
00229         HFONT   hFontOld;
00230         /* フォントを選ぶ */
00231         hFontOld = (HFONT)::SelectObject( hdc,
00232             ChooseFontHandle(
00233                 m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_bFatFont,
00234                 m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_bUnderLine
00235             )
00236         );
00237 //      if( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_bFatFont ){   /* 太字か */
00238 //          hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN_FAT );
00239 //      }else{
00240 //          hFontOld = (HFONT)::SelectObject( hdc, m_hFont_HAN );
00241 //      }
00242
00243         /* 余白を埋める */
00244         rcClip.left = nLineNumAreaWidth;
00245         rcClip.right = m_nViewAlignLeft;
00246         rcClip.top = y;
00247         rcClip.bottom = y + nLineHeight;
00248         ::ExtTextOut( hdc,
00249             rcClip.left,
00250             y, fuOptions,
00251             &rcClip, " ", 1, m_pnDx
00252         );
00253
00254         //  Sep. 23, 2002 余白をテキストの背景色にするため，背景色の設定を移動
00255         SetBkColor( hdc, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_colBACK );       /* 行番号背景の色 */
00256
00257 //      /* 行番号のテキストを表示 */
00258 //      m_pShareData->m_Types[nIdx].m_nLineTermType = 1;            /* 行番号区切り 0=なし 1=縦線 2=任意 */
00259 //      m_pShareData->m_Types[nIdx].m_cLineTermChar = ':';          /* 行番号区切り文字 */
00260
00261         int drawNumTop = (m_nViewAlignLeftCols - nLineCols - 1) * ( nCharWidth );
00262
00263         /* 行番号区切り 0=なし 1=縦線 2=任意 */
00264         if( 2 == m_pcEditDoc->GetDocumentAttribute().m_nLineTermType ){
00265             //  Sep. 22, 2002 genta
00266             szLineNum[ nLineCols ] = m_pcEditDoc->GetDocumentAttribute().m_cLineTermChar;
00267             szLineNum[ ++nLineCols ] = '\0';
00268             //char szLineTerm[2];
00269             //wsprintf( szLineTerm, "%c", m_pcEditDoc->GetDocumentAttribute().m_cLineTermChar );    /* 行番号区切り文字 */
00270             //strcat( szLineNum, szLineTerm );
00271         }
00272         rcClip.left = 0;
00273         //rcClip.right = m_nViewAlignLeft/* - 3*/;
00274         //  Sep. 23, 2002 genta
00275         rcClip.right = nLineNumAreaWidth;
00276         rcClip.top = y;
00277         rcClip.bottom = y + nLineHeight;
00278         ::ExtTextOut( hdc,
00279             drawNumTop,
00280             y, fuOptions,
00281             &rcClip, szLineNum, nLineCols, m_pnDx // Sep. 22, 2002 genta
00282         );
00283
00284
00285 //      hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_colorGYOU );
00286
00287
00288         /* 行番号区切り 0=なし 1=縦線 2=任意 */
00289         if( 1 == m_pcEditDoc->GetDocumentAttribute().m_nLineTermType ){
00290             hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_colTEXT );
00291             hPenOld = (HPEN)::SelectObject( hdc, hPen );
00292             ::MoveToEx( hdc, nLineNumAreaWidth - 2, y, NULL );
00293             ::LineTo( hdc, nLineNumAreaWidth - 2, y + nLineHeight );
00294             ::SelectObject( hdc, hPenOld );
00295             ::DeleteObject( hPen );
00296         }
00297         ::SetTextColor( hdc, colTextColorOld );
00298         ::SetBkColor( hdc, colBkColorOld );
00299         ::SelectObject( hdc, hFontOld );
00300     }else{
00301         rcClip.left = 0;
00302         //  Sep. 23 ,2002 genta 余白はテキスト色のまま残す
00303         rcClip.right = m_nViewAlignLeft - m_pShareData->m_Common.m_nLineNumRightSpace;
00304         rcClip.top = y;
00305         rcClip.bottom = y + nLineHeight;
00306 //      hBrush = ::CreateSolidBrush( m_pcEditDoc->GetDocumentAttribute().m_colorBACK );
00307         hBrush = ::CreateSolidBrush( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex/*COLORIDX_TEXT*/].m_colBACK );
00308         ::FillRect( hdc, &rcClip, hBrush );
00309         ::DeleteObject( hBrush );
00310
00311         // From Here Mar. 5, 2003, Moca
00312         // 行番号とテキストの隙間の描画漏れ
00313         rcClip.left = rcClip.right;
00314         rcClip.right = m_nViewAlignLeft;
00315         rcClip.top = y;
00316         rcClip.bottom = y + nLineHeight;
00317         hBrush = ::CreateSolidBrush( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_TEXT].m_colBACK );
00318         ::FillRect( hdc, &rcClip, hBrush );
00319         ::DeleteObject( hBrush );
00320         // To Here Mar. 5, 2003, Moca
00321     }
00322
00323 // From Here 2001.12.03 hor
00324     /* とりあえずブックマークに縦線 */
00325     if(pCDocLine->IsBookMarked() && // Dec. 24, 2002 ai
00326         (FALSE == m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_MARK].m_bDisp)){
00327         hPen = ::CreatePen( PS_SOLID, 2, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_colTEXT );
00328         hPenOld = (HPEN)::SelectObject( hdc, hPen );
00329         ::MoveToEx( hdc, 1, y, NULL );
00330         ::LineTo( hdc, 1, y + nLineHeight );
00331         ::SelectObject( hdc, hPenOld );
00332         ::DeleteObject( hPen );
00333     }
00334 // To Here 2001.12.03 hor
00335
00336     if( type )  //DIFF差分マーク表示    //@@@ 2002.05.25 MIK
00337     {
00338         int cy = y + nLineHeight / 2;
00339
00340         hPen = ::CreatePen( PS_SOLID, 1, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[nColorIndex].m_colTEXT );
00341         hPenOld = (HPEN)::SelectObject( hdc, hPen );
00342
00343         switch( type )
00344         {
00345         case MARK_DIFF_APPEND:  //追加
00346             ::MoveToEx( hdc, 3, cy, NULL );
00347             ::LineTo( hdc, 6, cy );
00348             ::MoveToEx( hdc, 4, cy - 2, NULL );
00349             ::LineTo( hdc, 4, cy + 3 );
00350             break;
00351
00352         case MARK_DIFF_CHANGE:  //変更
00353             ::MoveToEx( hdc, 3, cy - 4, NULL );
00354             ::LineTo( hdc, 3, cy );
00355             ::MoveToEx( hdc, 3, cy + 2, NULL );
00356             ::LineTo( hdc, 3, cy + 3 );
00357             break;
00358
00359         case MARK_DIFF_DELETE:  //削除
00360             cy -= 3;
00361             ::MoveToEx( hdc, 3, cy, NULL );
00362             ::LineTo( hdc, 5, cy );
00363             ::LineTo( hdc, 3, cy + 2 );
00364             ::LineTo( hdc, 3, cy );
00365             ::LineTo( hdc, 7, cy + 4 );
00366             break;
00367
00368         case MARK_DIFF_DEL_EX:  //削除(EOF)
00369             cy += 3;
00370             ::MoveToEx( hdc, 3, cy, NULL );
00371             ::LineTo( hdc, 5, cy );
00372             ::LineTo( hdc, 3, cy - 2 );
00373             ::LineTo( hdc, 3, cy );
00374             ::LineTo( hdc, 7, cy - 4 );
00375             break;
00376         }
00377
00378         ::SelectObject( hdc, hPenOld );
00379         ::DeleteObject( hPen );
00380     }
00381
00382     return;
00383 }
00384
00385
00386
00387 /* テキスト表示
00388     @@@ 2002.09.22 YAZAKI const unsigned char* pDataを、const char* pDataに変更
00389 */
00390 int CEditView::DispText( HDC hdc, int x, int y, const char* pData, int nLength )
00391 {
00392     if( 0 >= nLength ){
00393         return 0;
00394     }
00395     RECT    rcClip;
00396     int     nLineHeight = m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace;
00397     int     nCharWidth = m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace;
00398     UINT    fuOptions = ETO_CLIPPED | ETO_OPAQUE;
00399     rcClip.left = x;
00400     rcClip.right = rcClip.left + ( nCharWidth ) * nLength;
00401     rcClip.top = y;
00402     if( rcClip.left < m_nViewAlignLeft ){
00403         rcClip.left = m_nViewAlignLeft;
00404     }
00405     if( rcClip.left < rcClip.right
00406      && rcClip.left < m_nViewAlignLeft + m_nViewCx && rcClip.right > m_nViewAlignLeft
00407      && rcClip.top >= m_nViewAlignTop
00408     ){
00409         rcClip.bottom = y + nLineHeight;
00410
00411         //@@@   From Here 2002.01.30 YAZAKI ExtTextOutの制限回避
00412         if( rcClip.right - rcClip.left > m_nViewCx ){
00413             rcClip.right = rcClip.left + m_nViewCx;
00414         }
00415         int nBefore = 0;    //  ウィンドウの左にあふれた文字数
00416         int nAfter = 0;     //  ウィンドウの右にあふれた文字数
00417         if ( x < 0 ){
00418             int nLeft = ( 0 - x ) / nCharWidth - 1;
00419             while (nBefore < nLeft){
00420                 // 2005-09-02 D.S.Koba GetSizeOfChar
00421                 nBefore += CMemory::GetSizeOfChar( pData, nLength, nBefore );
00422             }
00423         }
00424         if ( rcClip.right < x + nCharWidth * nLength ){
00425             //  -1してごまかす（うしろはいいよね？）
00426             nAfter = (x + nCharWidth * nLength - rcClip.right) / nCharWidth - 1;
00427         }
00428         ::ExtTextOut( hdc, x + nBefore * nCharWidth, y, fuOptions, &rcClip, &pData[nBefore], nLength - nBefore - nAfter, m_pnDx );
00429         //@@@   To Here 2002.01.30 YAZAKI ExtTextOutの制限回避
00430     }
00431     return nLength;
00432
00433 }
00434
00435
00436 /* テキスト反転
00437
00438     @param hdc 作画対象ビットマップを含むデバイス
00439     @param nLineNum 反転処理対象レイアウト行番号(0開始)
00440     @param x        レイアウト0桁目の左端座標
00441     @param y        対象行の上端座標
00442     @param nX       対象行の終了桁位置。　[ABC\n]なら改行の後ろで4
00443     @note   CCEditView::DispLineNew() での作画(WM_PAINT)時に、1レイアウト行をまとめて反転処理するための関数。
00444     範囲選択の随時更新は、CEditView::DrawSelectArea() が選択・反転解除を行う。
00445
00446 */
00447 void CEditView::DispTextSelected( HDC hdc, int nLineNum, int x, int y, int nX  )
00448 {
00449 //  MYTRACE( "CEditView::DispTextSelected()\n" );
00450
00451     int         nROP_Old;
00452     int         nSelectFrom;
00453     int         nSelectTo;
00454     RECT        rcClip;
00455 //  HPEN        hPen;
00456 //  HPEN        hPenOld;
00457     HBRUSH      hBrush;
00458     HBRUSH      hBrushOld;
00459     int         nLineHeight = m_nCharHeight + m_pcEditDoc->GetDocumentAttribute().m_nLineSpace;
00460     int         nCharWidth = m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace;
00461     HRGN        hrgnDraw;
00462     const CLayout* pcLayout = m_pcEditDoc->m_cLayoutMgr.Search( nLineNum );
00463
00464     /* 選択範囲内の行かな */
00465 //  if( IsTextSelected() ){
00466         if( nLineNum >= m_nSelectLineFrom && nLineNum <= m_nSelectLineTo ){
00467             if( m_bBeginBoxSelect ){        /* 矩形範囲選択中 */
00468                 nSelectFrom = m_nSelectColmFrom;
00469                 nSelectTo   = m_nSelectColmTo;
00470                 // 2006.09.30 Moca From 矩形選択時[EOF]とその右側は反転しないように修正。処理を追加
00471                 if( m_pcEditDoc->m_cLayoutMgr.GetLineCount() - 1 <= nLineNum ){
00472                     int EndX = 0;
00473                     int EndY = 0;
00474                     m_pcEditDoc->m_cLayoutMgr.GetEndLayoutPos( EndX, EndY );
00475                     if( EndY == nLineNum ){
00476                         if( EndX < nSelectFrom ){
00477                             nSelectFrom = EndX;
00478                         }
00479                         if( EndX < nSelectTo ){
00480                             nSelectTo = EndX;
00481                         }
00482                     }
00483                 }
00484                 // 2006.09.30 Moca To
00485             }else{
00486                 if( m_nSelectLineFrom == m_nSelectLineTo ){
00487                         nSelectFrom = m_nSelectColmFrom;
00488                         nSelectTo   = m_nSelectColmTo;
00489                 }else{
00490                     if( nLineNum == m_nSelectLineFrom ){
00491                         nSelectFrom = m_nSelectColmFrom;
00492                         nSelectTo   = nX;
00493                     }else
00494                     if( nLineNum == m_nSelectLineTo ){
00495                         nSelectFrom = pcLayout ? pcLayout->GetIndent() : 0;
00496                         nSelectTo   = m_nSelectColmTo;
00497                     }else{
00498                         nSelectFrom = pcLayout ? pcLayout->GetIndent() : 0;
00499                         nSelectTo   = nX;
00500                     }
00501                 }
00502             }
00503             // 2006.05.24 Moca 矩形選択/フリーカーソル選択(選択開始/終了行)で
00504             // To < From になることがある。必ず From < To になるように入れ替える。
00505             if( nSelectTo < nSelectFrom ){
00506                 int t = nSelectFrom;
00507                 nSelectFrom = nSelectTo;
00508                 nSelectTo = t;
00509             }
00510             // 2006.03.28 Moca 表示域外なら何もしない
00511             if( m_nViewLeftCol + m_nViewColNum < nSelectFrom ){
00512                 return;
00513             }
00514             if( nSelectTo <= m_nViewLeftCol ){
00515                 return;
00516             }
00517
00518             if( nSelectFrom < m_nViewLeftCol ){
00519                 nSelectFrom = m_nViewLeftCol;
00520             }
00521             rcClip.left   = x + nSelectFrom * ( nCharWidth );
00522             rcClip.right  = x + nSelectTo   * ( nCharWidth );
00523             rcClip.top    = y;
00524             rcClip.bottom = y + nLineHeight;
00525             // 2005/04/02 かろと ０文字マッチだと反転幅が０となり反転されないので、1/3文字幅だけ反転させる
00526             // 2005/06/26 zenryaku 選択解除でキャレットの残骸が残る問題を修正
00527             // 2005/09/29 ryoji スクロール時にキャレットのようなゴミが表示される問題を修正
00528             if (IsTextSelected() && rcClip.right == rcClip.left &&
00529                 m_nSelectLineFrom == m_nSelectLineTo &&
00530                 m_nSelectColmFrom >= m_nViewLeftCol)
00531             {
00532                 rcClip.right = rcClip.left + (nCharWidth/3 == 0 ? 1 : nCharWidth/3);
00533             }
00534             // 2006.03.28 Moca ウィンドウ幅が大きいと正しく反転しない問題を修正
00535             if( rcClip.right > m_nViewAlignLeft + m_nViewCx ){
00536                 rcClip.right = m_nViewAlignLeft + m_nViewCx;
00537             }
00538
00539             hBrush = ::CreateSolidBrush( SELECTEDAREA_RGB );
00540             nROP_Old = ::SetROP2( hdc, SELECTEDAREA_ROP2 );
00541             hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00542             hrgnDraw = ::CreateRectRgn( rcClip.left, rcClip.top, rcClip.right, rcClip.bottom );
00543             ::PaintRgn( hdc, hrgnDraw );
00544             ::DeleteObject( hrgnDraw );
00545             SetROP2( hdc, nROP_Old );
00546             SelectObject( hdc, hBrushOld );
00547             DeleteObject( hBrush );
00548         }
00549 //  }
00550     return;
00551 }
00552
00553
00554
00555
00556 /* 現在位置が検索文字列に該当するか */
00557 //2002.02.08 hor
00558 //正規表現で検索したときの速度改善のため、マッチ先頭位置を引数に追加
00559 BOOL CEditView::IsSearchString( const char* pszData, int nDataLen, int nPos, int* pnSearchStart, int* pnSearchEnd )
00560 {
00561     int     nKeyLength;
00562
00563     //  From Here Jun. 26, 2001 genta   正規表現ライブラリの差し替え
00564     *pnSearchStart = nPos;  // 2002.02.08 hor
00565
00566     if( m_bCurSrchRegularExp ){
00567         /* 行頭ではない? */
00568         /* 行頭検索チェックは、CBregexpクラス内部で実施するので不要 2003.11.01 かろと */
00569
00570         /* 位置を0でMatchInfo呼び出すと、行頭文字検索時に、全て true　となり、
00571         ** 画面全体が検索文字列扱いになる不具合修正
00572         ** 対策として、行頭を MacthInfoに教えないといけないので、文字列の長さ・位置情報を与える形に変更
00573         ** 2003.05.04 かろと
00574         */
00575         if( m_CurRegexp.Match( pszData, nDataLen, nPos )
00576         ){
00577             *pnSearchStart = m_CurRegexp.GetIndex();    // 2002.02.08 hor
00578             *pnSearchEnd = m_CurRegexp.GetLastIndex();
00579     //  To Here Jun. 26, 2001 genta
00580             return TRUE;
00581
00582         }else{
00583             return FALSE;
00584         }
00585     }else{
00586         nKeyLength = lstrlen( m_szCurSrchKey );     /* 検索条件 */
00587
00588         // 2001/06/23 単語単位の検索のために追加
00589         if( m_pShareData->m_Common.m_bWordOnly ){   /* 検索／置換  1==単語のみ検索 */
00590             /* 現在位置の単語の範囲を調べる */
00591             /* 現在位置の単語の範囲を調べる */
00592             int nIdxFrom, nIdxTo;
00593             if( false == CDocLineMgr::WhereCurrentWord_2( pszData, nDataLen, nPos, &nIdxFrom, &nIdxTo, NULL, NULL ) ){
00594                 return FALSE;
00595             }
00596             if( nPos != nIdxFrom || nKeyLength != nIdxTo - nIdxFrom ){
00597                 return FALSE;
00598             }
00599         }
00600
00601         //検索条件が未定義 または 検索条件の長さより調べるデータが短いときはヒットしない
00602         if( 0 == nKeyLength || nKeyLength > nDataLen - nPos ){
00603             return FALSE;
00604         }
00605         //英大文字小文字の区別をするかどうか
00606         if( m_bCurSrchLoHiCase ){   /* 1==英大文字小文字の区別 */
00607             if( 0 == memcmp( &pszData[nPos], m_szCurSrchKey, nKeyLength ) ){
00608                 *pnSearchEnd = nPos + nKeyLength;
00609                 return TRUE;
00610             }
00611         }else{
00612             if( 0 == memicmp( &pszData[nPos], m_szCurSrchKey, nKeyLength ) ){
00613                 *pnSearchEnd = nPos + nKeyLength;
00614                 return TRUE;
00615             }
00616         }
00617     }
00618     return FALSE;
00619 }
00620
00626 inline void CEditView::DrawRulerCaret( HDC hdc )
00627 {
00628     HBRUSH      hBrush;
00629     HBRUSH      hBrushOld;
00630     HRGN        hRgn;
00631     RECT        rc;
00632     int         nROP_Old;
00633
00634     if( m_nViewLeftCol <= m_nCaretPosX
00635      && m_nViewLeftCol + m_nViewColNum + 2 >= m_nCaretPosX
00636     ){
00637         if (m_nOldCaretPosX == m_nCaretPosX && m_nCaretWidth == m_nOldCaretWidth) {
00638             //前描画した位置画同じ かつ ルーラーのキャレット幅が同じ
00639             return;
00640         }
00641
00642         rc.left = m_nViewAlignLeft + ( m_nOldCaretPosX - m_nViewLeftCol ) * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) + 1;
00643         rc.right = rc.left + m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace - 1;
00644         rc.top = 0;
00645         rc.bottom = m_nViewAlignTop - m_nTopYohaku - 1;
00646
00647         //元位置をクリア m_nOldCaretWidth
00648         if( 0 == m_nOldCaretWidth ){
00649             hBrush = ::CreateSolidBrush( RGB( 128, 128, 128 ) );
00650         }else{
00651             hBrush = ::CreateSolidBrush( RGB( 0, 0, 0 ) );
00652         }
00653         nROP_Old = ::SetROP2( hdc, R2_NOTXORPEN );
00654         hRgn = ::CreateRectRgnIndirect( &rc );
00655         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00656         ::PaintRgn( hdc, hRgn );
00657         ::DeleteObject( hRgn );
00658         ::SelectObject( hdc, hBrushOld );
00659         ::DeleteObject( hBrush );
00660
00661         if( 0 == m_nCaretWidth ){
00662             hBrush = ::CreateSolidBrush( RGB( 128, 128, 128 ) );
00663         }else{
00664             hBrush = ::CreateSolidBrush( RGB( 0, 0, 0 ) );
00665         }
00666
00667         //新しい位置で描画
00668         rc.left = m_nViewAlignLeft + ( m_nCaretPosX - m_nViewLeftCol ) * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) + 1;
00669         rc.right = rc.left + m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace - 1;
00670
00671         hRgn = ::CreateRectRgnIndirect( &rc );
00672         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00673         ::SelectObject( hdc, hBrush );
00674         ::PaintRgn( hdc, hRgn );
00675
00676         ::SelectObject( hdc, hBrushOld );
00677         ::DeleteObject( hRgn );
00678         ::DeleteObject( hBrush );
00679         ::SetROP2( hdc, nROP_Old );
00680     }
00681 }
00682
00683
00684
00689 void CEditView::DispRuler( HDC hdc )
00690 {
00691
00692 #ifdef _DEBUG
00693 //  if( 0 != m_pShareData->m_Common.m_nRulerType ){ /* ルーラーのタイプ */
00694 //      DispRulerEx( hdc );
00695 //      return;
00696 //  }
00697 #endif
00698
00699
00700     if( !m_bDrawSWITCH ){
00701         return;
00702     }
00703     if( !m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_bDisp ){
00704         return;
00705     }
00706
00707     // 2002.02.25 Add By KK ルーラー全体を描き直す必要がない場合は、ルーラ上のキャレットのみ描きなおす
00708     if ( !m_bRedrawRuler ) {
00709         DrawRulerCaret( hdc );
00710     }
00711     else {
00712         /* 描画処理 */
00713         HBRUSH      hBrush;
00714         HBRUSH      hBrushOld;
00715         HRGN        hRgn;
00716         RECT        rc;
00717         int         i;
00718         int         nX;
00719         int         nY;
00720         LOGFONT     lf;
00721         HFONT       hFont;
00722         HFONT       hFontOld;
00723         char        szColm[32];
00724
00725         HPEN        hPen;
00726         HPEN        hPenOld;
00727         int         nROP_Old;
00728         COLORREF    colTextOld;
00729         int         nToX;
00730         const Types&    typeData = m_pcEditDoc->GetDocumentAttribute();
00731         const int   nMaxLineSize = m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
00732
00733         /* LOGFONTの初期化 */
00734         memset( &lf, 0, sizeof(LOGFONT) );
00735         lf.lfHeight         = 1 - m_pShareData->m_Common.m_nRulerHeight;    //  2002/05/13 ai
00736         lf.lfWidth          = 5/*0*/;
00737         lf.lfEscapement     = 0;
00738         lf.lfOrientation    = 0;
00739         lf.lfWeight         = 400;
00740         lf.lfItalic         = 0;
00741         lf.lfUnderline      = 0;
00742         lf.lfStrikeOut      = 0;
00743         lf.lfCharSet        = 0;
00744         lf.lfOutPrecision   = 3;
00745         lf.lfClipPrecision  = 2;
00746         lf.lfQuality        = 1;
00747         lf.lfPitchAndFamily = 34;
00748         strcpy( lf.lfFaceName, "Arial" );
00749         hFont = ::CreateFontIndirect( &lf );
00750         hFontOld = (HFONT)::SelectObject( hdc, hFont );
00751         ::SetBkMode( hdc, TRANSPARENT );
00752
00753         hBrush = ::CreateSolidBrush( typeData.m_ColorInfoArr[COLORIDX_RULER].m_colBACK );
00754         rc.left = 0;
00755         rc.top = 0;
00756         rc.right = m_nViewAlignLeft + m_nViewCx;
00757         rc.bottom = m_nViewAlignTop - m_nTopYohaku;
00758         ::FillRect( hdc, &rc, hBrush );
00759         ::DeleteObject( hBrush );
00760
00761         nX = m_nViewAlignLeft;
00762         nY = m_nViewAlignTop - m_nTopYohaku - 2;
00763
00764         hPen = ::CreatePen( PS_SOLID, 0, typeData.m_ColorInfoArr[COLORIDX_RULER].m_colTEXT );
00765         hPenOld = (HPEN)::SelectObject( hdc, hPen );
00766         colTextOld = ::SetTextColor( hdc, typeData.m_ColorInfoArr[COLORIDX_RULER].m_colTEXT );
00767
00768
00769         //nToX = m_nViewAlignLeft + m_nViewCx;
00770         //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
00771         //  2005.11.10 Moca 1dot足りない
00772         nToX = m_nViewAlignLeft + (nMaxLineSize - m_nViewLeftCol) * ( m_nCharWidth + typeData.m_nColmSpace ) + 1;
00773         if( nToX > m_nViewAlignLeft + m_nViewCx ){
00774             nToX = m_nViewAlignLeft + m_nViewCx;
00775         }
00776         ::MoveToEx( hdc, m_nViewAlignLeft, nY + 1, NULL );
00777         ::LineTo( hdc, nToX/*m_nViewAlignLeft + m_nViewCx*/, nY + 1 );
00778
00779
00780         for( i = m_nViewLeftCol;
00781             i <= m_nViewLeftCol + m_nViewColNum + 1
00782          && i <= nMaxLineSize;
00783             i++
00784         ){
00785             if( i == nMaxLineSize ){
00786                 ::MoveToEx( hdc, nX, nY, NULL );
00787                 ::LineTo( hdc, nX, 0/*nY - 8*/ );
00788             }
00789             if( 0 == ( (i) % 10 ) ){
00790                 ::MoveToEx( hdc, nX, nY, NULL );
00791                 ::LineTo( hdc, nX, 0/*nY - 8*/ );
00792                 itoa( (i) / 10, szColm, 10 );
00793                 ::TextOut( hdc, nX + 2 + 0, -1 + 0, szColm, lstrlen( szColm ) );
00794             }else
00795             if( 0 == ( (i) % 5 ) ){
00796                 ::MoveToEx( hdc, nX, nY, NULL );
00797                 ::LineTo( hdc, nX, nY - 6 );
00798             }else{
00799                 ::MoveToEx( hdc, nX, nY, NULL );
00800                 ::LineTo( hdc, nX, nY - 3 );
00801             }
00802             nX += ( m_nCharWidth + typeData.m_nColmSpace );
00803         }
00804         ::SetTextColor( hdc, colTextOld );
00805         ::SelectObject( hdc, hPenOld );
00806         ::DeleteObject( hPen );
00807
00808         /* キャレット描画（現在の位置に描画するだけ。古い位置はすでに消されている） */
00809         if( m_nViewLeftCol <= m_nCaretPosX
00810          && m_nViewLeftCol + m_nViewColNum + 2 >= m_nCaretPosX
00811         ){
00812             //  Aug. 18, 2000 あお
00813             rc.left = m_nViewAlignLeft + ( m_nCaretPosX - m_nViewLeftCol ) * ( m_nCharWidth + typeData.m_nColmSpace ) + 1;
00814             rc.right = rc.left + m_nCharWidth + typeData.m_nColmSpace - 1;
00815             rc.top = 0;
00816             rc.bottom = m_nViewAlignTop - m_nTopYohaku - 1;
00817
00818             if( 0 == m_nCaretWidth ){
00819                 hBrush = ::CreateSolidBrush( RGB( 128, 128, 128 ) );
00820             }else{
00821                 hBrush = ::CreateSolidBrush( RGB( 0, 0, 0 ) );
00822             }
00823             nROP_Old = ::SetROP2( hdc, R2_NOTXORPEN );
00824             hRgn = ::CreateRectRgnIndirect( &rc );
00825             hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00826             ::PaintRgn( hdc, hRgn );
00827
00828             ::SelectObject( hdc, hBrushOld );
00829             ::DeleteObject( hRgn );
00830             ::DeleteObject( hBrush );
00831             ::SetROP2( hdc, nROP_Old );
00832         }
00833
00834         ::SelectObject( hdc, hFontOld );
00835         ::DeleteObject( hFont );
00836
00837         m_bRedrawRuler = false; //m_bRedrawRuler = true で指定されるまで、ルーラのキャレットのみを再描画 2002.02.25 Add By KK
00838     }
00839
00840     //描画したルーラーのキャレット位置・幅を保存 2002.02.25 Add By KK
00841     m_nOldCaretPosX = m_nCaretPosX;
00842     m_nOldCaretWidth = m_nCaretWidth ;
00843
00844     return;
00845 }
00846
00847 //======================================================================
00848 //@@@ 2001.02.03 Start by MIK: 全角文字の対括弧
00850 const struct ZENKAKKO_T{
00851     char *sStr;
00852     char *eStr;
00853 } zenkakkoarr[] = {
00854     "【", "】",
00855     "『", "』",
00856     "「", "」",
00857     "＜", "＞",
00858     "≪", "≫",
00859     "《", "》",
00860     "（", "）",
00861     "〈", "〉",
00862     "｛", "｝",
00863     "〔", "〕",
00864     "［", "］",
00865     "“", "”",
00866     "〝", "〟",
00867     NULL, NULL  //終端識別
00868 };
00869 //@@@ 全角文字の対括弧: End
00870 //@@@ 2003.01.06 Start by ai: 半角文字の対括弧
00872 const struct HANKAKKO_T{
00873     char *sStr;
00874     char *eStr;
00875 } hankakkoarr[] = {
00876     "(", ")",
00877     "[", "]",
00878     "{", "}",
00879     "<", ">",
00880     "｢", "｣",
00881     NULL, NULL  //終端識別
00882 };
00883 //@@@ 半角文字の対括弧: End
00884 //  Jun. 16, 2000 genta
00912 bool CEditView::SearchBracket( int LayoutX, int LayoutY, int* NewX, int* NewY, int* mode )
00913 {
00914     int len;    //  行の長さ
00915     int nCharSize;  //  （メモリ上の）文字幅
00916     int PosX, PosY; //  物理位置
00917
00918     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys( LayoutX, LayoutY, &PosX, &PosY );
00919     const char *cline = m_pcEditDoc->m_cDocLineMgr.GetLineStr( PosY, &len );
00920
00921     //  Jun. 19, 2000 genta
00922     if( cline == NULL ) //  最後の行に本文がない場合
00923         return false;
00924 //  PosX = LineColmnToIndex( cline, len, PosX );    不要
00925
00926     // 2005-09-02 D.S.Koba GetSizeOfChar
00927     nCharSize = CMemory::GetSizeOfChar( cline, len, PosX );
00928     m_nCharSize = nCharSize;    // 02/09/18 対括弧の文字サイズ設定 ai
00929
00930     if( nCharSize == 1 ){   //  1バイト文字
00931         // 03/01/06 ai Start
00932         int i;
00933         const struct HANKAKKO_T *p;
00934         p = hankakkoarr;
00935         for( i = 0; p->sStr != NULL; i++, p++ )
00936         {
00937             if( strncmp(p->sStr, &cline[PosX], 1) == 0 )
00938             {
00939                 return SearchBracketForward( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );
00940             }
00941             else if( strncmp(p->eStr, &cline[PosX], 1) == 0 )
00942             {
00943                 return SearchBracketBackward( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );
00944             }
00945         }
00946         // 03/01/06 ai End
00947 //@@@ 2001.02.03 Start by MIK: 全角文字の対括弧
00948     }else if( nCharSize == 2 ){ // 2バイト文字
00949         int i;
00950         const struct ZENKAKKO_T *p;
00951         p = zenkakkoarr;
00952         for(i = 0; p->sStr != NULL; i++, p++)
00953         {
00954             if(strncmp(p->sStr, &cline[PosX], 2) == 0)
00955             {
00956                 return SearchBracketForward2( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );     // modeの追加 02/09/19 ai
00957             }
00958             else if(strncmp(p->eStr, &cline[PosX], 2) == 0)
00959             {
00960                 return SearchBracketBackward2( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );    // modeの追加 02/09/19 ai
00961             }
00962         }
00963 //@@@ 2001.02.03 End: 全角文字の対括弧
00964     }
00965
00966     // 02/09/18 ai Start
00967     if( 0 == ( *mode & 2 ) ){
00968         /* カーソルの前方を調べない場合 */
00969         return false;
00970     }
00971     *mode |= 4;
00972     // 02/09/18 ai End
00973
00974     //  括弧が見つからなかったら，カーソルの直前の文字を調べる
00975
00976     if( PosX <= 0 ){
00977 //      ::MessageBox( NULL, "NO DATA", "Bracket", MB_OK );
00978         return false;   //  前の文字はない
00979     }
00980     const char *bPos = CMemory::MemCharPrev( cline, PosX, cline + PosX );
00981     nCharSize = cline + PosX - bPos;
00982     m_nCharSize = nCharSize;    // 02/10/01 対括弧の文字サイズ設定 ai
00983     if( nCharSize == 1 ){   //  1バイト文字
00984         // 03/01/06 ai Start
00985         int i;
00986         const struct HANKAKKO_T *p;
00987         PosX = bPos - cline;
00988         p = hankakkoarr;
00989         for( i = 0; p->sStr != NULL; i++, p++ )
00990         {
00991             if( strncmp(p->sStr, &cline[PosX], 1) == 0 )
00992             {
00993                 return SearchBracketForward( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );
00994             }
00995             else if( strncmp(p->eStr, &cline[PosX], 1) == 0 )
00996             {
00997                 return SearchBracketBackward( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );
00998             }
00999         }
01000         // 03/01/06 ai End
01001 //@@@ 2001.02.03 Start by MIK: 全角文字の対括弧
01002     }else if( nCharSize == 2 ){ // 2バイト文字
01003         int i;
01004         const struct ZENKAKKO_T *p;
01005         PosX = bPos - cline;
01006         p = zenkakkoarr;
01007         for( i = 0; p->sStr != NULL; i++, p++ )
01008         {
01009             if( strncmp(p->sStr, &cline[PosX], 2) == 0 )
01010             {
01011                 return SearchBracketForward2( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );     // modeの追加 02/09/19 ai
01012             }
01013             else if( strncmp(p->eStr, &cline[PosX], 2) == 0 )
01014             {
01015                 return SearchBracketBackward2( PosX, PosY, NewX, NewY, p->sStr, p->eStr, mode );    // modeの追加 02/09/19 ai
01016             }
01017         }
01018 //@@@ 2001.02.03 End: 全角文字の対括弧
01019     }
01020     return false;
01021 }
01022
01041 bool CEditView::SearchBracketForward( int PosX, int PosY, int* NewX, int* NewY,
01042                                     char* upChar, char* dnChar, int* mode ) // 03/01/08 ai
01043 {
01044     CDocLine* ci;
01045
01046     int         len;
01047     const char  *cPos, *nPos;
01048     char        *cline, *lineend;
01049     int         level = 0;
01050     int         nCol, nLine, nSearchNum;    // 02/09/19 ai
01051
01052 //  char buf[50];   Debug用
01053
01054     //  初期位置の設定
01055     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, &nCol, &nLine );   // 02/09/19 ai
01056     nSearchNum = ( m_nViewTopLine + m_nViewRowNum ) - nLine;                    // 02/09/19 ai
01057     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( PosY );
01058     cline = ci->m_pLine->GetPtr( &len );
01059     lineend = cline + len;
01060     cPos = cline + PosX;
01061
01062     do {
01063         while( cPos < lineend ){
01064             nPos = CMemory::MemCharNext( cline, len, cPos );
01065             if( nPos - cPos > 1 ){
01066                 //  skip
01067                 cPos = nPos;
01068                 continue;
01069             }
01070             // 03/01/08 ai Start
01071             if( strncmp(upChar, cPos, 1) == 0 ){
01072                 ++level;
01073             }
01074             else if( strncmp(dnChar, cPos, 1) == 0 ){
01075                 --level;
01076             }// 03/01/08 ai End
01077
01078             if( level == 0 ){   //  見つかった！
01079                 PosX = cPos - cline;
01080                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, NewX, NewY );
01081 //              wsprintf( buf, "Layout: %d, %d\nPhys: %d, %d", *NewX, *NewY, PosX, PosY );
01082 //              ::MessageBox( NULL, buf, "Bracket", MB_OK );
01083                 return true;
01084                 //  Happy Ending
01085             }
01086             cPos = nPos;    //  次の文字へ
01087         }
01088
01089         // 02/09/19 ai Start
01090         nSearchNum--;
01091         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
01092         {   // 表示領域外を調べないモードで表示領域の終端の場合
01093             //SendStatusMessage( "対括弧の検索を中断しました" );
01094             break;
01095         }
01096         // 02/09/19 ai End
01097
01098         //  次の行へ
01099         ++PosY;
01100         ci = ci->m_pNext;   //  次のアイテム
01101         if( ci == NULL )
01102             break;  //  終わりに達した
01103
01104         cline = ci->m_pLine->GetPtr( &len );
01105         cPos = cline;
01106         lineend = cline + len;
01107     }while( cline != NULL );
01108
01109     return false;
01110 }
01111
01130 bool CEditView::SearchBracketBackward( int PosX, int PosY, int* NewX, int* NewY,
01131                                     char* dnChar, char* upChar, int* mode )
01132 {
01133     CDocLine* ci;
01134
01135     int         len;
01136     const char  *cPos, *pPos;
01137     char        *cline, *lineend;
01138     int         level = 1;
01139     int         nCol, nLine, nSearchNum;    // 02/09/19 ai
01140
01141 //  char buf[50];   Debug用
01142
01143     //  初期位置の設定
01144     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, &nCol, &nLine );   // 02/09/19 ai
01145     nSearchNum = nLine - m_nViewTopLine;                                        // 02/09/19 ai
01146     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( PosY );
01147     cline = ci->m_pLine->GetPtr( &len );
01148     lineend = cline + len;
01149     cPos = cline + PosX;
01150
01151     do {
01152         while( cPos > cline ){
01153             pPos = CMemory::MemCharPrev( cline, len, cPos );
01154             if( cPos - pPos > 1 ){
01155                 //  skip
01156                 cPos = pPos;
01157                 continue;
01158             }
01159             // 03/01/08 ai Start
01160             if( strncmp(upChar, pPos, 1) == 0 ){
01161                 ++level;
01162             }
01163             else if( strncmp(dnChar, pPos, 1) == 0 ){
01164                 --level;
01165             }// 03/01/08 ai End
01166
01167             if( level == 0 ){   //  見つかった！
01168                 PosX = pPos - cline;
01169                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, NewX, NewY );
01170 //              wsprintf( buf, "Layout: %d, %d\nPhys: %d, %d", *NewX, *NewY, PosX, PosY );
01171 //              ::MessageBox( NULL, buf, "Bracket", MB_OK );
01172                 return true;
01173                 //  Happy Ending
01174             }
01175             cPos = pPos;    //  次の文字へ
01176         }
01177
01178         // 02/09/19 ai Start
01179         nSearchNum--;
01180         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
01181         {   // 表示領域外を調べないモードで表示領域の先頭の場合
01182             //SendStatusMessage( "対括弧の検索を中断しました" );
01183             break;
01184         }
01185         // 02/09/19 ai End
01186
01187         //  次の行へ
01188         --PosY;
01189         ci = ci->m_pPrev;   //  次のアイテム
01190         if( ci == NULL )
01191             break;  //  終わりに達した
01192
01193         cline = ci->m_pLine->GetPtr( &len );
01194         cPos = cline + len;
01195     }while( cline != NULL );
01196
01197     return false;
01198 }
01199
01200 //@@@ 2001.02.03 Start by MIK:
01219 bool CEditView::SearchBracketForward2(  int     PosX,   int     PosY,
01220                                         int*    NewX,   int*    NewY,
01221                                         char*   upChar, char*   dnChar,
01222                                         int*    mode )
01223 {
01224     CDocLine* ci;
01225
01226     int len;
01227     const char *cPos, *nPos;
01228     char *cline, *lineend;
01229     int level = 0;
01230     int         nCol, nLine, nSearchNum;    // 02/09/19 ai
01231
01232     //  初期位置の設定
01233     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, &nCol, &nLine );   // 02/09/19 ai
01234     nSearchNum = ( m_nViewTopLine + m_nViewRowNum ) - nLine;                    // 02/09/19 ai
01235     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( PosY );
01236     cline = ci->m_pLine->GetPtr( &len );
01237     lineend = cline + len;
01238     cPos = cline + PosX;
01239
01240     do {
01241         while( cPos < lineend ){
01242             nPos = CMemory::MemCharNext( cline, len, cPos );
01243             if( nPos - cPos != 2 ){
01244                 //  skip
01245                 cPos = nPos;
01246                 continue;
01247             }
01248             if( strncmp(upChar, cPos, 2) == 0 ){
01249                 ++level;
01250             }
01251             else if( strncmp(dnChar, cPos, 2) == 0 ){
01252                 --level;
01253             }
01254
01255             if( level == 0 ){   //  見つかった！
01256                 PosX = cPos - cline;
01257                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, NewX, NewY );
01258                 return true;
01259             }
01260             cPos = nPos;    //  次の文字へ
01261         }
01262
01263         // 02/09/19 ai Start
01264         nSearchNum--;
01265         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
01266         {   // 表示領域外を調べないモードで表示領域の終端の場合
01267             //SendStatusMessage( "対括弧の検索を中断しました" );
01268             break;
01269         }
01270         // 02/09/19 ai End
01271
01272         //  次の行へ
01273         ++PosY;
01274         ci = ci->m_pNext;   //  次のアイテム
01275         if( ci == NULL )
01276             break;  //  終わりに達した
01277
01278         cline = ci->m_pLine->GetPtr( &len );
01279         cPos = cline;
01280         lineend = cline + len;
01281     }while( cline != NULL );
01282
01283     return false;
01284 }
01285 //@@@ 2001.02.03 End
01286
01287 //@@@ 2001.02.03 Start by MIK:
01306 bool CEditView::SearchBracketBackward2( int   PosX,   int   PosY,
01307                                         int*  NewX,   int*  NewY,
01308                                         char* dnChar, char* upChar,
01309                                         int*  mode )
01310 {
01311     CDocLine* ci;
01312
01313     int len;
01314     const char *cPos, *pPos;
01315     char *cline, *lineend;
01316     int level = 1;
01317     int nCol, nLine, nSearchNum;    // 02/09/19 ai
01318
01319     //  初期位置の設定
01320     m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, &nCol, &nLine );   // 02/09/19 ai
01321     nSearchNum = nLine - m_nViewTopLine;                                        // 02/09/19 ai
01322     ci = m_pcEditDoc->m_cDocLineMgr.GetLineInfo( PosY );
01323     cline = ci->m_pLine->GetPtr( &len );
01324     lineend = cline + len;
01325     cPos = cline + PosX;
01326
01327     do {
01328         while( cPos > cline ){
01329             pPos = CMemory::MemCharPrev( cline, len, cPos );
01330             if( cPos - pPos != 2 ){
01331                 //  skip
01332                 cPos = pPos;
01333                 continue;
01334             }
01335             if( strncmp(upChar, pPos, 2) == 0 ){
01336                 ++level;
01337             }
01338             else if( strncmp(dnChar, pPos, 2) == 0 ){
01339                 --level;
01340             }
01341
01342             if( level == 0 ){   //  見つかった！
01343                 PosX = pPos - cline;
01344                 m_pcEditDoc->m_cLayoutMgr.CaretPos_Phys2Log( PosX, PosY, NewX, NewY );
01345                 return true;
01346             }
01347             cPos = pPos;    //  次の文字へ
01348         }
01349
01350         // 02/09/19 ai Start
01351         nSearchNum--;
01352         if( ( 0 > nSearchNum ) && ( 0 == (*mode & 1 ) ) )
01353         {   // 表示領域外を調べないモードで表示領域の先頭の場合
01354             //SendStatusMessage( "対括弧の検索を中断しました" );
01355             break;
01356         }
01357         // 02/09/19 ai End
01358
01359         //  次の行へ
01360         --PosY;
01361         ci = ci->m_pPrev;   //  次のアイテム
01362         if( ci == NULL )
01363             break;  //  終わりに達した
01364
01365         cline = ci->m_pLine->GetPtr( &len );
01366         cPos = cline + len;
01367     }while( cline != NULL );
01368
01369     return false;
01370 }
01371 //@@@ 2001.02.03 End
01372
01373 //@@@ 2003.01.09 Start by ai:
01386 bool CEditView::IsBracket( const char *pLine, int x, int size )
01387 {
01388     int i;
01389     if( size == 1 ){
01390         const struct HANKAKKO_T *p;
01391         p = hankakkoarr;
01392         for( i = 0; p->sStr != NULL; i++, p++ )
01393         {
01394             if( strncmp( p->sStr, &pLine[x], 1 ) == 0 )
01395             {
01396                 return true;
01397             }
01398             else if( strncmp( p->eStr, &pLine[x], 1 ) == 0 )
01399             {
01400                 return true;
01401             }
01402         }
01403     }
01404     else if( size == 2 ) {
01405         const struct ZENKAKKO_T *p;
01406         p = zenkakkoarr;
01407         for( i = 0; p->sStr != NULL; i++, p++ )
01408         {
01409             if( strncmp( p->sStr, &pLine[x], 2 ) == 0 )
01410             {
01411                 return true;
01412             }
01413             else if( strncmp( p->eStr, &pLine[x], 2 ) == 0 )
01414             {
01415                 return true;
01416             }
01417         }
01418     }
01419
01420     return false;
01421 }
01422 //@@@ 2003.01.09 End
01423
01425 void CEditView::AddCurrentLineToHistory( void )
01426 {
01427     int PosX, PosY; //  物理位置（改行単位の計算）
01428
01429     m_pcEditDoc->m_cLayoutMgr.CaretPos_Log2Phys( m_nCaretPosX, m_nCaretPosY, &PosX, &PosY );
01430
01431     CMarkMgr::CMark m( PosX, PosY );
01432     m_cHistory->Add( m );
01433
01434 }
01435
01436
01437 //  2001/06/18 Start by asa-o: 補完ウィンドウ用のキーワードヘルプ表示
01438 bool  CEditView::ShowKeywordHelp( POINT po, LPCTSTR pszHelp, LPRECT prcHokanWin)
01439 {
01440     CMemory     cmemCurText;
01441     RECT        rcTipWin,
01442                 rcDesktop;
01443
01444     if( m_pcEditDoc->GetDocumentAttribute().m_bUseKeyWordHelp ){ /* キーワードヘルプを使用する */
01445         if( m_bInMenuLoop == FALSE  &&  /* メニュー モーダル ループに入っていない */
01446             0 != m_dwTipTimer           /* 辞書Tipを表示していない */
01447         ){
01448             cmemCurText.SetDataSz( pszHelp );
01449
01450             /* 既に検索済みか */
01451             if( CMemory::IsEqual( cmemCurText, m_cTipWnd.m_cKey ) ){
01452                 /* 該当するキーがなかった */
01453                 if( !m_cTipWnd.m_KeyWasHit ){
01454                     return false;
01455                 }
01456             }else{
01457                 m_cTipWnd.m_cKey = cmemCurText;
01458                 /* 検索実行 */
01459                 if(FALSE == KeySearchCore(&m_cTipWnd.m_cKey))   // 2006.04.10 fon
01460                     return FALSE;
01461             }
01462             m_dwTipTimer = 0;   /* 辞書Tipを表示している */
01463
01464         // 2001/06/19 Start by asa-o: 辞書Tipの表示位置調整
01465             // 辞書Tipのサイズを取得
01466             m_cTipWnd.GetWindowSize(&rcTipWin);
01467
01468             //  May 01, 2004 genta マルチモニタ対応
01469 			::GetMonitorWorkRect( m_cTipWnd.m_hWnd, &rcDesktop );
01470
01471             // 右に入る
01472             if(prcHokanWin->right + rcTipWin.right < rcDesktop.right){
01473                 // そのまま
01474             }else
01475             // 左に入る
01476             if(rcDesktop.left < prcHokanWin->left - rcTipWin.right ){
01477                 // 左に表示
01478                 po.x = prcHokanWin->left - (rcTipWin.right + 8);
01479             }else
01480             // どちらもスペースが無いとき広いほうに表示
01481             if(rcDesktop.right - prcHokanWin->right > prcHokanWin->left ){
01482                 // 右に表示 そのまま
01483             }else{
01484                 // 左に表示
01485                 po.x = prcHokanWin->left - (rcTipWin.right + 8);
01486             }
01487         // 2001/06/19 End
01488
01489             /* 辞書Tipを表示 */
01490             m_cTipWnd.Show( po.x, po.y , NULL , &rcTipWin);
01491             return true;
01492         }
01493     }
01494     return false;
01495 }
01496 //  2001/06/18 End
01497
01498 #if 0
01499
01504 int CEditView::DispCtrlCode( HDC hdc, int x, int y, const unsigned char* pData, int nLength )
01505 {
01506     int     i, x1, y1;
01507     unsigned char   c;
01508     HPEN    hPen, hPenOld;
01509
01510     x1 = m_nCharWidth / 3;
01511     y1 = m_nCharHeight / 5;
01512
01513     hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_CTRLCODE].m_colTEXT );
01514     hPenOld = (HPEN)::SelectObject( hdc, hPen );
01515
01516     for( i = 0; i < nLength; i++, pData++ )
01517     {
01518         if     ( (*pData) <= 0x1f ) c = '@' + (*pData);
01519         else if( (*pData) == 0x7f ) c = '?';
01520         else                        c = '･';
01521
01522         //文字を表示する
01523         DispText( hdc, x, y, &c, 1 );
01524
01525         //制御文字を示す記号を描画する
01526         ::MoveToEx( hdc, x, y + y1, NULL );
01527         ::LineTo( hdc, x + x1, y );
01528         ::LineTo( hdc, x + x1 * 2, y + y1 );
01529
01530         x += m_nCharWidth;
01531     }
01532
01533     ::SelectObject( hdc, hPenOld );
01534     ::DeleteObject( hPen );
01535
01536     return nLength;
01537 }
01538 #endif
01539
01540
01541 /*[EOF]*/
01542
Sakura-Editorに対してSat Oct 27 02:14:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_New3.cpp

CEditView_New3.cpp

試験機能？実体無し [詳細]

#include "stdafx.h"

CEditView_New3.cppのインクルード依存関係図

ソースコードを見る。

説明

試験機能？実体無し

作者:
Norio Nakatani

CEditView_New3.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditView_New3.cpp ソースファイル

CEditView_New3.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008
00009     This source code is designed for sakura editor.
00010     Please contact the copyright holder to use this code for other purpose.
00011 */
00012 #include "stdafx.h"
00013
00014 #if 0
00015
00016
00017
00018
00019 //#include <stdio.h>
00020 #include <stdlib.h>
00021 #include <time.h>
00022 #include <io.h>
00023 #include "CEditView.h"
00024 #include "debug.h"
00025 #include "keycode.h"
00026 #include "funccode.h"
00027 #include "CRunningTimer.h"
00028 #include "charcode.h"
00029 #include "mymessage.h"
00030 #include "CWaitCursor.h"
00031 #include "CEditWnd.h"
00032 #include "CShareData.h"
00033 #include "CDlgCancel.h"
00034 #include "sakura_rc.h"
00035 #include "etc_uty.h"
00036
00037 #ifdef _DEBUG
00038 //★★★テスト用非公開機能★★★
00039 /* ルーラー描画 */
00040 void CEditView::DispRulerEx( HDC hdc )
00041 {
00042     if( !m_bDrawSWITCH ){
00043         return;
00044     }
00045     if( !m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_bDisp ){
00046         return;
00047     }
00048
00049     /* 描画処理 */
00050     HBRUSH      hBrush;
00051     HBRUSH      hBrushOld;
00052     HRGN        hRgn;
00053     RECT        rc;
00054     RECT        rc2;
00055     int         i;
00056     int         nX;
00057     int         nY;
00058     LOGFONT     lf;
00059     HFONT       hFont;
00060     HFONT       hFontOld;
00061     char        szColm[32];
00062 //  SIZE        size;
00063     HPEN        hPen;
00064     HPEN        hPenOld;
00065     int         nROP_Old;
00066     COLORREF    colTextOld;
00067     int         nToX;
00068     SIZE        sizFont;
00069
00070     /* LOGFONTの初期化 */
00071     memset( &lf, 0, sizeof(LOGFONT) );
00072     lf.lfHeight         = -11;
00073     lf.lfWidth          = 5;
00074     lf.lfEscapement     = 0;
00075     lf.lfOrientation    = 0;
00076     lf.lfWeight         = 400;
00077     lf.lfItalic         = 0;
00078     lf.lfUnderline      = 0;
00079     lf.lfStrikeOut      = 0;
00080     lf.lfCharSet        = 0;
00081     lf.lfOutPrecision   = 3;
00082     lf.lfClipPrecision  = 2;
00083     lf.lfQuality        = 1;
00084     lf.lfPitchAndFamily = 34;
00085     strcpy( lf.lfFaceName, "Arial" );
00086     hFont = ::CreateFontIndirect( &lf );
00087     hFontOld = (HFONT)::SelectObject( hdc, hFont );
00088     ::GetTextExtentPoint32( hdc, "X", 1, &sizFont );
00089     ::SetBkMode( hdc, TRANSPARENT );
00090
00091     /* 背景 */
00092     hPen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_3DHILIGHT ) );
00093     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00094     ::MoveToEx( hdc, 0, 0, NULL );
00095     ::LineTo( hdc, m_nViewAlignLeft + m_nViewCx, 0 );
00096     ::SelectObject( hdc, hPenOld );
00097     ::DeleteObject( hPen );
00098
00099
00100     hPen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_3DFACE ) );
00101     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00102     ::MoveToEx( hdc, 0, 1, NULL );
00103     ::LineTo( hdc, m_nViewAlignLeft + m_nViewCx, 1 );
00104     ::MoveToEx( hdc, 0, m_nViewAlignTop - m_nTopYohaku - 2, NULL );
00105     ::LineTo( hdc, m_nViewAlignLeft + m_nViewCx, m_nViewAlignTop - m_nTopYohaku - 2 );
00106     ::MoveToEx( hdc, 0, m_nViewAlignTop - m_nTopYohaku - 3, NULL );
00107     ::LineTo( hdc, m_nViewAlignLeft + m_nViewCx, m_nViewAlignTop - m_nTopYohaku - 3 );
00108     ::SelectObject( hdc, hPenOld );
00109     ::DeleteObject( hPen );
00110
00111
00112     hPen = ::CreatePen( PS_SOLID, 0, /*RGB( 255, 0, 0 )*/::GetSysColor( COLOR_3DSHADOW ) );
00113     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00114     ::MoveToEx( hdc, 0, m_nViewAlignTop - m_nTopYohaku - 1, NULL );
00115     ::LineTo( hdc, m_nViewAlignLeft + m_nViewCx, m_nViewAlignTop - m_nTopYohaku - 1 );
00116     ::SelectObject( hdc, hPenOld );
00117     ::DeleteObject( hPen );
00118
00119
00120
00121     rc.left = m_nViewAlignLeft - 2;
00122     rc.top = 2;
00123     rc.right = m_nViewAlignLeft + (m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - m_nViewLeftCol) * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) + 2;
00124     if( rc.right > m_nViewAlignLeft + m_nViewCx + 2 ){
00125         rc.right = m_nViewAlignLeft + m_nViewCx + 2;
00126     }
00127     rc.bottom = m_nViewAlignTop - m_nTopYohaku - 3;
00128     CSplitBoxWnd::Draw3dRect( hdc,
00129         rc.left,
00130         rc.top,
00131         rc.right - rc.left,
00132         rc.bottom - rc.top,
00133         ::GetSysColor( COLOR_3DSHADOW ),
00134         ::GetSysColor( COLOR_3DHILIGHT )
00135     );
00136
00137
00138     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_3DFACE ) );
00139     rc2.left = 0;
00140     rc2.top = 1;
00141     rc2.right = rc.left;
00142     rc2.bottom = m_nViewAlignTop - m_nTopYohaku - 1;
00143     ::FillRect( hdc, &rc2, hBrush );
00144     ::DeleteObject( hBrush );
00145
00146     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_3DFACE ) );
00147     rc2.left = rc.right;
00148     rc2.top = 1;
00149     rc2.right = m_nViewAlignLeft + m_nViewCx + 2;
00150     rc2.bottom = m_nViewAlignTop - m_nTopYohaku - 1;
00151     ::FillRect( hdc, &rc2, hBrush );
00152     ::DeleteObject( hBrush );
00153
00154
00155     rc.left++;
00156     rc.top++;
00157     rc.right--;
00158     rc.bottom--;
00159     CSplitBoxWnd::Draw3dRect( hdc,
00160         rc.left,
00161         rc.top,
00162         rc.right - rc.left,
00163         rc.bottom - rc.top,
00164         ::GetSysColor( COLOR_3DDKSHADOW ),
00165         ::GetSysColor( COLOR_3DSHADOW )
00166     );
00167
00168
00169
00170
00171     hBrush = ::CreateSolidBrush( m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_colBACK );
00172     rc.left++;
00173     rc.top++;
00174     rc.right--;
00175     rc.bottom--;
00176     ::FillRect( hdc, &rc, hBrush );
00177     ::DeleteObject( hBrush );
00178
00179
00180
00181     nX = m_nViewAlignLeft;
00182 //  nY = m_nViewAlignTop - m_nTopYohaku - 2;
00183     nY = (rc.top + rc.bottom) / 2;
00184
00185 //  hPen = ::CreatePen( PS_SOLID, 0, RGB( 0, 0, 0 ) );
00186     hPen = ::CreatePen( PS_SOLID, 0, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_colTEXT );
00187     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00188 //  colTextOld = ::SetTextColor( hdc, RGB( 0, 0, 0 ) );
00189     colTextOld = ::SetTextColor( hdc, m_pcEditDoc->GetDocumentAttribute().m_ColorInfoArr[COLORIDX_RULER].m_colTEXT );
00190
00191     nToX = m_nViewAlignLeft + m_nViewCx;
00192
00193     nToX = m_nViewAlignLeft + (m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() - m_nViewLeftCol) * ( m_nCharWidth  + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
00194     if( nToX > m_nViewAlignLeft + m_nViewCx ){
00195         nToX = m_nViewAlignLeft + m_nViewCx;
00196     }
00197
00198 //  ::MoveToEx( hdc, m_nViewAlignLeft, nY + 1, NULL );
00199 //  ::LineTo( hdc, nToX/*m_nViewAlignLeft + m_nViewCx*/, nY + 1 );
00200
00201
00202     for( i = m_nViewLeftCol;
00203         i <= m_nViewLeftCol + m_nViewColNum + 1
00204 //   && i <= m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
00205      && i < m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize();
00206         i++
00207     ){
00208         if( 0 < i && 0 == ( (i) % 10 ) ){
00209 //          ::MoveToEx( hdc, nX, rc.top, NULL );
00210 //          ::LineTo( hdc, nX, rc.bottom );
00211 //          ::MoveToEx( hdc, nX, nY - 6, NULL );
00212 //          ::LineTo( hdc, nX, nY + 7 );
00213
00214             ::MoveToEx( hdc, nX, m_nViewAlignTop - m_nTopYohaku - 3, NULL );
00215             ::LineTo( hdc, nX, m_nViewAlignTop - m_nTopYohaku - 5 );
00216
00217 //          ::MoveToEx( hdc, nX, 0, NULL );
00218 //          ::LineTo( hdc, nX, 2 );
00219
00220
00221             itoa( (i) / 10, szColm, 10 );
00222
00223             SIZE sz;
00224             int nColmLen = lstrlen( szColm );
00225             // 文字列の幅と高さを計算します。
00226             ::GetTextExtentPoint32( hdc, szColm, nColmLen, &sz );
00227 //          ::TextOut( hdc, nX + 2 + 0, nY - (sizFont.cy / 2), szColm, nColmLen );
00228             ::TextOut( hdc, nX - ( sz.cx / 2 ) + 1, nY - (sizFont.cy / 2), szColm, nColmLen );
00229         }else
00230         if( 0 < i && 0 == ( (i) % 5 ) ){
00231             ::MoveToEx( hdc, nX, nY - 1, NULL );
00232             ::LineTo( hdc, nX, nY + 2 );
00233         }else{
00234 //          ::MoveToEx( hdc, nX, nY , NULL );
00235 //          ::LineTo( hdc, nX, nY + 1 );
00236         }
00237         nX += ( m_nCharWidth  + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace );
00238     }
00239     ::SetTextColor( hdc, colTextOld );
00240     ::SelectObject( hdc, hPenOld );
00241     ::DeleteObject( hPen );
00242
00243 //  return;
00244
00245     if( m_nViewLeftCol <= m_nCaretPosX
00246      && m_nViewLeftCol + m_nViewColNum + 2 >= m_nCaretPosX
00247     ){
00248         if( 0 == m_nCaretWidth ){
00249             hBrush = ::CreateSolidBrush( RGB( 128, 128, 128 ) );
00250         }else{
00251             hBrush = ::CreateSolidBrush( RGB( 0, 0, 0 ) );
00252         }
00253         rc.left = m_nViewAlignLeft + ( m_nCaretPosX - m_nViewLeftCol ) * ( m_nCharWidth + m_pcEditDoc->GetDocumentAttribute().m_nColmSpace ) + 1;
00254 //      rc.top = 0;
00255         rc.right = rc.left + m_nCharWidth;
00256 //      rc.bottom = m_nViewAlignTop - m_nTopYohaku - 1;
00257         nROP_Old = ::SetROP2( hdc, R2_NOTXORPEN );
00258         hRgn = ::CreateRectRgnIndirect( &rc );
00259         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00260         ::PaintRgn( hdc, hRgn );
00261         ::SelectObject( hdc, hBrushOld );
00262         ::DeleteObject( hRgn );
00263 //      ::FillRect( hdc, &rc, hBrush );
00264         ::DeleteObject( hBrush );
00265         ::SetROP2( hdc, nROP_Old );
00266     }
00267 /***
00268     rc.left = 0;
00269     rc.top = 0;
00270     rc.right = m_nViewAlignLeft + m_nViewCx;
00271     rc.bottom = m_nViewAlignTop - m_nTopYohaku;
00272     CSplitBoxWnd::Draw3dRect(
00273         hdc,
00274         rc.left, rc.top, rc.right, rc.bottom,
00275         ::GetSysColor( COLOR_3DHILIGHT ),
00276         ::GetSysColor( COLOR_3DSHADOW )
00277     );
00278 ***/
00279     ::SelectObject( hdc, hFontOld );
00280     ::DeleteObject( hFont );
00281     return;
00282 }
00283 #endif //#ifdef _DEBUG
00284 #endif //#if 0
00285
00286
00287 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditWnd.cpp

CEditWnd.cpp

編集ウィンドウ（外枠）管理クラス [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <winuser.h>
#include <io.h>
#include <mbctype.h>
#include <mbstring.h>
#include "CEditApp.h"
#include "CEditWnd.h"
#include "sakura_rc.h"
#include "CEditDoc.h"
#include "CDocLine.h"
#include "debug.h"
#include "CDlgAbout.h"
#include "mymessage.h"
#include "CShareData.h"
#include "CPrint.h"
#include "etc_uty.h"
#include "charcode.h"
#include "global.h"
#include "CDlgPrintSetting.h"
#include "CDlgPrintPage.h"
#include "funccode.h"
#include "CPrintPreview.h"
#include "CMarkMgr.h"
#include "CCommandLine.h"
#include "CSMacroMgr.h"
#include "COsVersioninfo.h"
#include "CRunningTimer.h"
#include "KeyCode.h"

CEditWnd.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | IDT_EDIT 455
#define | IDT_TOOLBAR 456
#define | IDT_CAPTION 457
#define | IDT_SYSMENU 1357
#define | ID_TOOLBAR 100
#define | TBSTYLE_ALTDRAG 0x0400
#define | TBSTYLE_FLAT 0x0800
#define | TBSTYLE_LIST 0x1000
#define | WM_MOUSEWHEEL 0x020A
#define | WM_THEMECHANGED 0x031A
#define | YOHAKU_X 4
#define | YOHAKU_Y 4
#define | DDASTEXT

関数

static LRESULT CALLBACK | ToolBarWndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
LRESULT CALLBACK | CEditWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

static WNDPROC | g_pOldToolBarWndProc

説明

編集ウィンドウ（外枠）管理クラス

作者:
Norio Nakatani

CEditWnd.cpp で定義されています。

マクロ定義

#define DDASTEXT

#define ID_TOOLBAR 100

CEditWnd.cpp の 58 行で定義されています。

参照元 CEditWnd::CreateToolBar().

#define IDT_CAPTION 457

CEditWnd.cpp の 56 行で定義されています。

参照元 CEditWnd::OnCaptionTimer()・CEditWnd::OnTimer().

#define IDT_EDIT 455

CEditWnd.cpp の 54 行で定義されています。

参照元 CEditWnd::OnTimer().

#define IDT_SYSMENU 1357

CEditWnd.cpp の 57 行で定義されています。

参照元 CEditWnd::OnLButtonUp()・CEditWnd::OnSysMenuTimer()・CEditWnd::OnTimer().

#define IDT_TOOLBAR 456

CEditWnd.cpp の 55 行で定義されています。

参照元 CEditWnd::OnTimer()・CEditWnd::Timer_ONOFF().

#define TBSTYLE_ALTDRAG 0x0400

CEditWnd.cpp の 65 行で定義されています。

#define TBSTYLE_FLAT 0x0800

CEditWnd.cpp の 68 行で定義されています。

参照元 CEditWnd::CreateToolBar().

#define TBSTYLE_LIST 0x1000

CEditWnd.cpp の 71 行で定義されています。

#define WM_MOUSEWHEEL 0x020A

CEditWnd.cpp の 75 行で定義されています。

#define WM_THEMECHANGED 0x031A

CEditWnd.cpp の 80 行で定義されています。

参照元 CTabWnd::TabWndDispatchEvent().

#define YOHAKU_X 4

CEditWnd.cpp の 83 行で定義されています。

#define YOHAKU_Y 4

CEditWnd.cpp の 84 行で定義されています。

関数

LRESULT CALLBACK CEditWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CEditWnd.cpp の 117 行で定義されています。

参照先 CEditWnd::DispatchEvent()・GetWindowLongPtr・GWLP_USERDATA・NULL.

参照元 CEditWnd::Create().

static LRESULT CALLBACK ToolBarWndProc | ( | HWND | hWnd,
 |  | UINT | msg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static]

CEditWnd.cpp の 95 行で定義されています。

参照先 g_pOldToolBarWndProc・GWLP_WNDPROC・LONG_PTR・SetWindowLongPtr.

参照元 CEditWnd::CreateToolBar().

変数

WNDPROC g_pOldToolBarWndProc [static]

サブクラス化したツールバーのウィンドウプロシージャ

作者:
ryoji
日付:
2006.09.06 ryoji

CEditWnd.cpp の 93 行で定義されています。

参照元 CEditWnd::CreateToolBar()・ToolBarWndProc().

Sakura-Editorに対してSat Oct 27 02:17:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditWnd.cpp ソースファイル

CEditWnd.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, genta, jepro, ao
00009     Copyright (C) 2001, MIK, Stonee, Misaka, hor, YAZAKI
00010     Copyright (C) 2002, YAZAKI, genta, hor, aroka, minfu, 鬼, MIK, ai
00011     Copyright (C) 2003, genta, MIK, Moca, wmlhq, ryoji, KEITA
00012     Copyright (C) 2004, genta, Moca, yasu, MIK, novice, Kazika
00013     Copyright (C) 2005, genta, MIK, Moca, aroka, ryoji
00014     Copyright (C) 2006, genta, ryoji, aroka, fon, yukihane
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holders to use this code for other purpose.
00019 */
00020
00021 #include "stdafx.h"
00022 #include <stdio.h>
00023 #include <windows.h>
00024 #include <winuser.h>
00025 #include <io.h>
00026 #include <mbctype.h>
00027 #include <mbstring.h>
00028
00029 #include "CEditApp.h"
00030 #include "CEditWnd.h"
00031 #include "sakura_rc.h"
00032 #include "CEditDoc.h"
00033 #include "CDocLine.h"
00034 #include "debug.h"
00035 #include "CDlgAbout.h"
00036 #include "mymessage.h"
00037 #include "CShareData.h"
00038 #include "CPrint.h"
00039 #include "etc_uty.h"
00040 #include "charcode.h"
00041 #include "global.h"
00042 #include "CDlgPrintSetting.h"
00043 #include "CDlgPrintPage.h"
00044 #include "funccode.h"       // Stonee, 2001/03/12
00045 #include "CPrintPreview.h"
00046 #include "CMarkMgr.h"
00047 #include "CCommandLine.h"
00048 #include "CSMacroMgr.h" // Jun. 16, 2002 genta
00049 #include "COsVersioninfo.h" // Sep. 6, 2003 genta
00050 #include "CRunningTimer.h"
00051 #include "KeyCode.h"
00052
00053
00054 #define IDT_EDIT        455  // 20060128 aroka
00055 #define IDT_TOOLBAR     456
00056 #define IDT_CAPTION     457
00057 #define IDT_SYSMENU     1357
00058 #define ID_TOOLBAR      100
00059
00060
00061 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたので
00062 //  定義を削除
00063
00064 #ifndef TBSTYLE_ALTDRAG
00065     #define TBSTYLE_ALTDRAG 0x0400
00066 #endif
00067 #ifndef TBSTYLE_FLAT
00068     #define TBSTYLE_FLAT    0x0800
00069 #endif
00070 #ifndef TBSTYLE_LIST
00071     #define TBSTYLE_LIST    0x1000
00072 #endif
00073
00074 #ifndef WM_MOUSEWHEEL
00075     #define WM_MOUSEWHEEL   0x020A
00076 #endif
00077
00078 // 2006.06.17 ryoji WM_THEMECHANGED
00079 #ifndef WM_THEMECHANGED
00080 #define WM_THEMECHANGED     0x031A
00081 #endif
00082
00083 #define     YOHAKU_X        4       /* ウィンドウ内の枠と紙の隙間最小値 */
00084 #define     YOHAKU_Y        4       /* ウィンドウ内の枠と紙の隙間最小値 */
00085 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたので
00086 //  定義を削除
00087
00088
00093 static WNDPROC g_pOldToolBarWndProc;    // ツールバーの本来のウィンドウプロシージャ
00094
00095 static LRESULT CALLBACK ToolBarWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
00096 {
00097     switch( msg )
00098     {
00099     // WinXP Visual Style のときにツールバー上でのマウス左右ボタン同時押しで無応答になる
00100     //（マウスをキャプチャーしたまま放さない） 問題を回避するために右ボタンを無視する
00101     case WM_RBUTTONDOWN:
00102     case WM_RBUTTONUP:
00103         return 0L;              // 右ボタンの UP/DOWN は本来のウィンドウプロシージャに渡さない
00104
00105     case WM_DESTROY:
00106         // サブクラス化解除
00107 		::SetWindowLongPtr( hWnd, GWLP_WNDPROC, (LONG_PTR)g_pOldToolBarWndProc );
00108         break;
00109     }
00110     return ::CallWindowProc( g_pOldToolBarWndProc, hWnd, msg, wParam, lParam );
00111 }
00112
00113
00114 //  /* メッセージループ */
00115 //  DWORD MessageLoop_Thread( DWORD pCEditWndObject );
00116
00117 LRESULT CALLBACK CEditWndProc(
00118     HWND    hwnd,   // handle of window
00119     UINT    uMsg,   // message identifier
00120     WPARAM  wParam, // first message parameter
00121     LPARAM  lParam  // second message parameter
00122 )
00123 {
00124     CEditWnd* pSEWnd;
00125     // Modified by KEITA for WIN64 2003.9.6
00126     pSEWnd = ( CEditWnd* )::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00127     if( NULL != pSEWnd ){
00128         return pSEWnd->DispatchEvent( hwnd, uMsg, wParam, lParam );
00129     }
00130     return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00131 }
00132
00133
00134 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00135 CEditWnd::CEditWnd() :
00136     m_hWnd( NULL ),
00137     m_bDragMode( FALSE ),
00138     m_hwndParent( NULL ),
00139     m_hwndReBar( NULL ),    // 2006.06.17 ryoji
00140     m_hwndToolBar( NULL ),
00141     m_hwndStatusBar( NULL ),
00142     m_hwndProgressBar( NULL ),
00143 // 20020331 aroka 再変換対応 for 95/NT
00144     m_uMSIMEReconvertMsg( ::RegisterWindowMessage( RWM_RECONVERT ) ),
00145     m_uATOKReconvertMsg( ::RegisterWindowMessage( MSGNAME_ATOK_RECONVERT ) ),
00146
00147 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00148     m_pPrintPreview( NULL ),
00149     m_pszAppName( GSTR_EDITWINDOWNAME ),
00150     m_pszLastCaption( NULL ),
00151     m_hwndSearchBox( NULL ),
00152     m_fontSearchBox( NULL ),
00153     m_nCurrentFocus( 0 ),
00154     m_bIsActiveApp( FALSE ),
00155     m_IconClicked(icNone) //by 鬼(2)
00156 {
00157     //  Dec. 4, 2002 genta
00158     InitMenubarMessageFont();
00159
00160     // Sep. 10, 2002 genta
00161     m_cEditDoc.m_pcEditWnd = this;
00162     /* 共有データ構造体のアドレスを返す */
00163     m_pShareData = CShareData::getInstance()->GetShareData();
00164
00165 //  MYTRACE( "CEditWnd::CEditWnd()おわり\n" );
00166     return;
00167 }
00168
00169
00170
00171
00172 CEditWnd::~CEditWnd()
00173 {
00174     delete []m_pszLastCaption;
00175
00176     //  Dec. 4, 2002 genta
00177     /* キャレットの行桁位置表示用フォント */
00178     ::DeleteObject( m_hFontCaretPosInfo );
00179
00180
00181     if( NULL != m_hWnd ){
00182         m_hWnd = NULL;
00183     }
00184     return;
00185 }
00186
00187
00188
00189
00190
00204 HWND CEditWnd::Create(
00205     HINSTANCE   hInstance,
00206     HWND        hwndParent,
00207     int         nGroup,
00208     const char* pszPath,
00209     int         nCharCode,
00210     BOOL        bReadOnly,
00211     int         nDocumentType
00212 )
00213 {
00214     MY_RUNNINGTIMER( cRunningTimer, "CEditWnd::Create" );
00215
00216     //  Dec. 6, 2002 genta
00217     //  small icon指定のため RegisterClassExに変更
00218     WNDCLASSEX  wc;
00219     HWND        hWnd;
00220     HWND        hwndTop;
00221     WINDOWPLACEMENT wpTop;
00222     EditNode*   pEditNode;
00223     ATOM        atom;
00224     BOOL        bOpened;
00225     char szMsg[512];
00226
00227     if( m_pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){   //最大値修正    //@@@ 2003.05.31 MIK
00228         wsprintf( szMsg, "編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。", MAX_EDITWINDOWS );
00229         ::MessageBox( NULL, szMsg, GSTR_APPNAME, MB_OK );
00230         return NULL;
00231     }
00232
00233
00234     m_hInstance = hInstance;
00235     m_hwndParent = hwndParent;
00236     //  Apr. 27, 2000 genta
00237     //  サイズ変更時のちらつきを抑えるためCS_HREDRAW | CS_VREDRAW を外した
00238     wc.style            = CS_DBLCLKS | CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
00239     wc.lpfnWndProc      = CEditWndProc;
00240     wc.cbClsExtra       = 0;
00241     wc.cbWndExtra       = 32;
00242     wc.hInstance        = m_hInstance;
00243     //  Dec, 2, 2002 genta アイコン読み込み方法変更
00244     wc.hIcon            = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, false );
00245
00246     wc.hCursor          = NULL/*LoadCursor( NULL, IDC_ARROW )*/;
00247     wc.hbrBackground    = (HBRUSH)NULL/*(COLOR_3DSHADOW + 1)*/;
00248     wc.lpszMenuName     = MAKEINTRESOURCE( IDR_MENU1 );
00249     wc.lpszClassName    = m_pszAppName;
00250
00251     //  Dec. 6, 2002 genta
00252     //  small icon指定のため RegisterClassExに変更
00253     wc.cbSize           = sizeof( wc );
00254     wc.hIconSm          = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, true );
00255     if( 0 == ( atom = RegisterClassEx( &wc ) ) ){
00256         //  2004.05.13 Moca return NULLを有効にした
00257         return NULL;
00258     }
00259
00260     /* ウィンドウサイズ継承 */
00261     int nWinCX, nWinCY;
00262     //  2004.05.13 Moca m_Common.m_nSaveWindowSizeをBOOLからenumに変えたため
00263     if( WINSIZEMODE_DEF != m_pShareData->m_Common.m_nSaveWindowSize ){
00264         nWinCX = m_pShareData->m_Common.m_nWinSizeCX;
00265         nWinCY = m_pShareData->m_Common.m_nWinSizeCY;
00266     }else{
00267         nWinCX = CW_USEDEFAULT;
00268         nWinCY = 0;
00269     }
00270
00271     /* ウィンドウサイズ指定 */
00272     FileInfo fi;
00273     CCommandLine::Instance()->GetFileInfo(fi);
00274     if( fi.m_nWindowSizeX >= 0 ){
00275         nWinCX = fi.m_nWindowSizeX;
00276     }
00277     if( fi.m_nWindowSizeY >= 0 ){
00278         nWinCY = fi.m_nWindowSizeY;
00279     }
00280
00281     /* ウィンドウ位置指定 */
00282
00283     int nWinOX, nWinOY;
00284     nWinOX = CW_USEDEFAULT;
00285     nWinOY = 0;
00286     // ウィンドウ位置固定
00287     //  2004.05.13 Moca 保存したウィンドウ位置を使う場合は共有メモリからセット
00288     if( WINSIZEMODE_DEF != m_pShareData->m_Common.m_nSaveWindowPos ){
00289         nWinOX =  m_pShareData->m_Common.m_nWinPosX;
00290         nWinOY =  m_pShareData->m_Common.m_nWinPosY;
00291     }
00292
00293     //  2004.05.13 Moca マルチディスプレイでは負の値も有効なので，
00294     //  未設定の判定方法を変更．(負の値→CW_USEDEFAULT)
00295     if( fi.m_nWindowOriginX != CW_USEDEFAULT ){
00296         nWinOX = fi.m_nWindowOriginX;
00297     }
00298     if( fi.m_nWindowOriginY != CW_USEDEFAULT ){
00299         nWinOY = fi.m_nWindowOriginY;
00300     }
00301
00302     //From Here @@@ 2003.05.31 MIK
00303     //タブウインドウの場合は現状値を指定
00304     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
00305     {
00306         if( nGroup < 0 )    // 不正なグループID
00307             nGroup = 0; // グループ指定無し（最近アクティブのグループに入れる）
00308         pEditNode = CShareData::getInstance()->GetEditNodeAt( nGroup, 0 );  // グループの先頭ウィンドウ情報を取得   // 2007.06.20 ryoji
00309         hwndTop = pEditNode? pEditNode->m_hWnd: NULL;
00310
00311         if( hwndTop )
00312         {
00313             //  Sep. 11, 2003 MIK 新規TABウィンドウの位置が上にずれないように
00314             // 2007.06.20 ryoji 非プライマリモニタまたはタスクバーを動かした後でもずれないように
00315             RECT rcWork;
00316             RECT rcMon;
00317             GetMonitorWorkRect( hwndTop, &rcWork, &rcMon );
00318
00319             wpTop.length = sizeof(WINDOWPLACEMENT);
00320             if( ::GetWindowPlacement( hwndTop, &wpTop ) ){  // 現在の先頭ウィンドウから位置を取得
00321                 nWinCX = wpTop.rcNormalPosition.right - wpTop.rcNormalPosition.left;
00322                 nWinCY = wpTop.rcNormalPosition.bottom - wpTop.rcNormalPosition.top;
00323                 nWinOX = wpTop.rcNormalPosition.left + (rcWork.left - rcMon.left);
00324                 nWinOY = wpTop.rcNormalPosition.top + (rcWork.top - rcMon.top);
00325                 if( wpTop.showCmd == SW_SHOWMINIMIZED )
00326                     wpTop.showCmd = pEditNode->m_showCmdRestore;
00327             }
00328             else{
00329                 hwndTop = NULL;
00330             }
00331         }
00332     }
00333     //To Here @@@ 2003.05.31 MIK
00334
00335     hWnd = ::CreateWindowEx(
00336         0   // extended window style
00337 //      | WS_EX_CLIENTEDGE
00338         ,
00339         m_pszAppName,       // pointer to registered class name
00340         m_pszAppName,       // pointer to window name
00341 //      WS_VISIBLE |
00342         WS_OVERLAPPEDWINDOW |
00343         WS_CLIPCHILDREN |
00344 //      WS_HSCROLL | WS_VSCROLL |
00345         0,  // window style
00346
00347         nWinOX,             // horizontal position of window
00348         nWinOY,             // vertical position of window
00349         nWinCX,             // window width
00350         nWinCY,             // window height
00351         NULL,               // handle to parent or owner window
00352         NULL,               // handle to menu or child-window identifier
00353         m_hInstance,        // handle to application instance
00354         NULL                // pointer to window-creation data
00355     );
00356     m_hWnd = hWnd;
00357
00358     // 2004.05.13 Moca ウィンドウ作成失敗。終了
00359     if( NULL == hWnd ){
00360         return NULL;
00361     }
00362
00363     MyInitCommonControls(); // 2006.06.19 ryoji コモンコントロールの初期化を CreateToolBar() から移動
00364
00365
00366     m_cIcons.Create( m_hInstance, m_hWnd ); //  CreateImage List
00367
00368     m_CMenuDrawer.Create( m_hInstance, m_hWnd, &m_cIcons );
00369
00370     // 各種バーよりも先に m_cEditDoc.Create() を実行しておく    // 2007.01.30 ryoji
00371     // （m_cEditDoc メンバーの初期化を優先）
00372     if( FALSE == m_cEditDoc.Create( m_hInstance, m_hWnd, &m_cIcons/*, 1, 1, 0, 0*/ ) ){
00373         ::MessageBox(
00374             m_hWnd,
00375             "クライアントウィンドウの作成に失敗しました", GSTR_APPNAME,
00376             MB_OK
00377         );
00378     }
00379
00380     // 2007.03.08 ryoji 各種バーの作成を Layoutxxx(), EndLayoutBars() で簡素化
00381
00382 // 次のSetWindowLongPtr以降だとデバッグ中に落ちることがあったので順番を入れ替えた。 // 2005/8/9 aroka
00383     /* ツールバー */
00384     LayoutToolBar();
00385
00386 //  if( NULL != m_hWnd ){
00387         // Modified by KEITA for WIN64 2003.9.6
00388 		::SetWindowLongPtr( m_hWnd, GWLP_USERDATA, (LONG_PTR)this );
00389
00390
00391 //  }
00392
00393     /* ステータスバー */
00394     LayoutStatusBar();
00395
00396     /* ファンクションキー バー */
00397     LayoutFuncKey();
00398
00399     /* タブウインドウ */
00400     LayoutTabBar();
00401
00402     /* バーの配置終了 */
00403     EndLayoutBars( FALSE );
00404
00405     /* デスクトップからはみ出さないようにする */
00406     RECT    rcOrg;
00407     RECT    rcDesktop;
00408 //  int     nWork;
00409
00410     //  May 01, 2004 genta マルチモニタ対応
00411 	::GetMonitorWorkRect( m_hWnd, &rcDesktop );
00412     ::GetWindowRect( m_hWnd, &rcOrg );
00413
00414     // 2005.11.23 Moca マルチモニタ等で問題があったため計算方法変更
00415     /* ウィンドウ位置調整 */
00416     if( rcOrg.bottom > rcDesktop.bottom ){
00417         rcOrg.top -= rcOrg.bottom - rcDesktop.bottom;
00418         rcOrg.bottom = rcDesktop.bottom;    //@@@ 2002.01.08
00419     }
00420     if( rcOrg.right > rcDesktop.right ){
00421         rcOrg.left -= rcOrg.right - rcDesktop.right;
00422         rcOrg.right = rcDesktop.right;  //@@@ 2002.01.08
00423     }
00424
00425     if( rcOrg.top < rcDesktop.top ){
00426         rcOrg.bottom += rcDesktop.top - rcOrg.top;
00427         rcOrg.top = rcDesktop.top;
00428     }
00429     if( rcOrg.left < rcDesktop.left ){
00430         rcOrg.right += rcDesktop.left - rcOrg.left;
00431         rcOrg.left = rcDesktop.left;
00432     }
00433
00434     /* ウィンドウサイズ調整 */
00435     if( rcOrg.bottom > rcDesktop.bottom ){
00436         //rcOrg.bottom = rcDesktop.bottom - 1;  //@@@ 2002.01.08
00437         rcOrg.bottom = rcDesktop.bottom;    //@@@ 2002.01.08
00438     }
00439     if( rcOrg.right > rcDesktop.right ){
00440         //rcOrg.right = rcDesktop.right - 1;    //@@@ 2002.01.08
00441         rcOrg.right = rcDesktop.right;  //@@@ 2002.01.08
00442     }
00443
00444     //From Here @@@ 2003.06.13 MIK
00445     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin
00446         && hwndTop )
00447     {
00448         // 現在の先頭ウィンドウから WS_EX_TOPMOST 状態を引き継ぐ    // 2007.05.18 ryoji
00449         DWORD dwExStyle = (DWORD)::GetWindowLongPtr( hwndTop, GWL_EXSTYLE );
00450         ::SetWindowPos( m_hWnd, (dwExStyle & WS_EX_TOPMOST)? HWND_TOPMOST: HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00451
00452         //タブウインドウ時は現状を維持
00453         /* ウィンドウサイズ継承 */
00454         if( wpTop.showCmd == SW_SHOWMAXIMIZED )
00455         {
00456             ::ShowWindow( m_hWnd, SW_SHOWMAXIMIZED );
00457         }
00458         else
00459         {
00460             ::ShowWindow( m_hWnd, SW_SHOW );
00461         }
00462     }
00463     else
00464     {
00465         ::SetWindowPos(
00466             m_hWnd, 0,
00467             rcOrg.left, rcOrg.top,
00468             rcOrg.right - rcOrg.left, rcOrg.bottom - rcOrg.top,
00469             SWP_NOOWNERZORDER | SWP_NOZORDER
00470         );
00471
00472         /* ウィンドウサイズ継承 */
00473         if( WINSIZEMODE_DEF != m_pShareData->m_Common.m_nSaveWindowSize &&
00474             m_pShareData->m_Common.m_nWinSizeType == SIZE_MAXIMIZED ){
00475             ::ShowWindow( m_hWnd, SW_SHOWMAXIMIZED );
00476         }else
00477         // 2004.05.14 Moca ウィンドウサイズを直接指定する場合は、最小化表示を受け入れる
00478         if( WINSIZEMODE_SET == m_pShareData->m_Common.m_nSaveWindowSize &&
00479             m_pShareData->m_Common.m_nWinSizeType == SIZE_MINIMIZED ){
00480             ::ShowWindow( m_hWnd, SW_SHOWMINIMIZED );
00481         }else{
00482             ::ShowWindow( m_hWnd, SW_SHOW );
00483         }
00484     }
00485     //To Here @@@ 2003.06.13 MIK
00486
00487 //  if( NULL != m_hWnd ){
00488         /* ドロップされたファイルを受け入れる */
00489         ::DragAcceptFiles( m_hWnd, TRUE );
00490
00491         m_bIsActiveApp = ( ::GetActiveWindow() == m_hWnd ); // 2007.03.08 ryoji
00492
00493         /* エディタ－トレイ間でのUI特権分離の確認（Vista UIPI機能） */  // 2007.06.07 ryoji
00494         if( COsVersionInfo().IsWinVista_or_later() ){
00495             m_bUIPI = FALSE;
00496             ::SendMessage( m_pShareData->m_hwndTray, MYWM_UIPI_CHECK,  (WPARAM)0, (LPARAM)m_hWnd );
00497             if( !m_bUIPI ){ // 返事が返らない
00498 				::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00499                     _T("エディタ間の対話に失敗しました。\n権限レベルの異なるエディタが既に起動している可能性があります。")
00500                 );
00501                 ::DestroyWindow( m_hWnd );
00502                 m_hWnd = hWnd = NULL;
00503                 return hWnd;
00504             }
00505         }
00506
00507         /* 編集ウィンドウリストへの登録 */
00508         if( FALSE == CShareData::getInstance()->AddEditWndList( m_hWnd, nGroup ) ){ // 2007.06.26 ryoji nGroup引数追加
00509             wsprintf( szMsg, "編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。", MAX_EDITWINDOWS );
00510             ::MessageBox( m_hWnd, szMsg, GSTR_APPNAME, MB_OK );
00511             ::DestroyWindow( m_hWnd );
00512             m_hWnd = hWnd = NULL;
00513             return hWnd;
00514         }
00515         CShareData::getInstance()->SetTraceOutSource( m_hWnd ); // TraceOut()起動元ウィンドウの設定 // 2006.06.26 ryoji
00516
00517         //  Aug. 29, 2003 wmlhq
00518         m_nTimerCount = 0;
00519         /* タイマーを起動 */ // タイマーのIDと間隔を変更 20060128 aroka
00520         if( 0 == ::SetTimer( m_hWnd, IDT_EDIT, 500, NULL ) ){
00521 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00522                 "CEditWnd::Create()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。"
00523             );
00524         }
00525         // ツールバーのタイマーを分離した 20060128 aroka
00526         Timer_ONOFF( TRUE );
00527 //  }
00528     ::InvalidateRect( m_hWnd, NULL, TRUE );
00529     if( NULL != pszPath ){
00530         char*   pszPathNew = new char[_MAX_PATH];
00531         strcpy( pszPathNew, pszPath );
00532         ::ShowWindow( m_hWnd, SW_SHOW );
00533         //  Oct. 03, 2004 genta コード確認は設定に依存
00534         if( !m_cEditDoc.FileRead( pszPathNew, &bOpened, nCharCode, bReadOnly,
00535             m_pShareData->m_Common.m_bQueryIfCodeChange ) ){
00536             /* ファイルが既に開かれている */
00537             if( bOpened ){
00538                 ::PostMessage( m_hWnd, WM_CLOSE, 0, 0 );
00539                 delete [] pszPathNew;
00540                 // 2004.07.12 Moca return NULLだと、メッセージループを通らずにそのまま破棄されてしまい、タブの終了処理が抜ける
00541                 //  この後は正常ルートでメッセージループに入った後WM_CLOSEを受信して直ちにCLOSE & DESTROYとなる．
00542                 //  その中で編集ウィンドウの削除が行われる．
00543                 return m_hWnd;
00544             }
00545             else {
00546                 //  Nov. 20, 2000 genta
00547                 m_cEditDoc.SetImeMode( m_pShareData->m_Types[0].m_nImeState );
00548             }
00549         }
00550         delete [] pszPathNew;
00551     }
00552     else {
00553         //  Nov. 20, 2000 genta
00554         m_cEditDoc.SetImeMode( m_pShareData->m_Types[0].m_nImeState );
00555     }
00556     //  Mar. 7, 2002 genta 文書タイプの強制指定
00557     //  Jun. 4 ,2004 genta ファイル名指定が無くてもタイプ強制指定を有効にする
00558     if( nDocumentType >= 0 ){
00559         m_cEditDoc.SetDocumentType( nDocumentType, true );
00560         //  2002/05/07 YAZAKI タイプ別設定一覧の一時適用のコードを流用
00561         m_cEditDoc.LockDocumentType();
00562         /* 設定変更を反映させる */
00563         m_cEditDoc.OnChangeSetting();
00564     }
00565     //  Jun. 4 ,2004 genta ファイル名指定が無くても読みとり専用強制指定を有効にする
00566     m_cEditDoc.m_bReadOnly = bReadOnly;
00567     m_cEditDoc.SetParentCaption();
00568
00569     //  YAZAKI 2002/05/30 IMEウィンドウの位置がおかしいのを修正。
00570     m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].SetIMECompFormPos();
00571     return m_hWnd;
00572 }
00573
00574
00575 //  キーワード：ステータスバー順序
00576 /* ステータスバー作成 */
00577 void CEditWnd::CreateStatusBar( void )
00578 {
00579 //  int     nStArr[] = { 300, 400, 500. -1 };
00580 //  int     nStArrNum = sizeof( nStArr ) / sizeof( nStArr[0] );
00581
00582     /* ステータスバー */
00583     m_hwndStatusBar = ::CreateStatusWindow(
00584         WS_CHILD/* | WS_VISIBLE*/ | WS_EX_RIGHT | SBARS_SIZEGRIP,   // 2007.03.08 ryoji WS_VISIBLE 除去
00585         "",
00586         m_hWnd,
00587         IDW_STATUSBAR
00588     );
00589
00590     /* プログレスバー */
00591     m_hwndProgressBar = ::CreateWindowEx(
00592         WS_EX_TOOLWINDOW,
00593         PROGRESS_CLASS,
00594         (LPSTR) NULL,
00595         WS_CHILD /*|  WS_VISIBLE*/,
00596         3,
00597         5,
00598         150,
00599         13,
00600         m_hwndStatusBar,
00601         NULL,
00602         m_hInstance,
00603         0
00604     );
00605 //  ::ShowWindow( m_hwndProgressBar, SW_SHOW );
00606
00607     if( NULL != m_CFuncKeyWnd.m_hWnd ){
00608         m_CFuncKeyWnd.SizeBox_ONOFF( FALSE );
00609     }
00610     //スプリッターの、サイズボックスの位置を変更
00611     m_cEditDoc.m_cSplitterWnd.DoSplit( -1, -1);
00612     return;
00613 }
00614
00615
00616 /* ステータスバー破棄 */
00617 void CEditWnd::DestroyStatusBar( void )
00618 {
00619     if( NULL != m_hwndProgressBar ){
00620         ::DestroyWindow( m_hwndProgressBar );
00621         m_hwndProgressBar = NULL;
00622     }
00623     ::DestroyWindow( m_hwndStatusBar );
00624     m_hwndStatusBar = NULL;
00625
00626     if( NULL != m_CFuncKeyWnd.m_hWnd ){
00627         BOOL bSizeBox;
00628         if( m_pShareData->m_Common.m_nFUNCKEYWND_Place == 0 ){  /* ファンクションキー表示位置／0:上 1:下 */
00629             /* サイズボックスの表示／非表示切り替え */
00630             bSizeBox = FALSE;
00631         }else{
00632             bSizeBox = TRUE;
00633             /* ステータスパーを表示している場合はサイズボックスを表示しない */
00634             if( NULL != m_hwndStatusBar ){
00635                 bSizeBox = FALSE;
00636             }
00637         }
00638         m_CFuncKeyWnd.SizeBox_ONOFF( bSizeBox );
00639     }
00640     //スプリッターの、サイズボックスの位置を変更
00641     m_cEditDoc.m_cSplitterWnd.DoSplit( -1, -1 );
00642
00643     return;
00644 }
00645
00646 /* ツールバー作成
00647     @date @@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00648     @date 2005.08.29 aroka ツールバーの折り返し
00649     @date 2006.06.17 ryoji ビジュアルスタイルが有効の場合はツールバーを Rebar に入れてサイズ変更時のちらつきを無くす
00650 */
00651 void CEditWnd::CreateToolBar( void )
00652 {
00653     REBARINFO       rbi;
00654     REBARBANDINFO   rbBand;
00655     int             nFlag;
00656     TBBUTTON        tbb;
00657     int             i;
00658     int             nIdx;
00659     UINT            uToolType;
00660     nFlag = 0;
00661
00662     // 2006.06.17 ryoji
00663     // Rebar ウィンドウの作成
00664     if( IsVisualStyle() ){  // ビジュアルスタイル有効
00665         m_hwndReBar = ::CreateWindowEx(
00666             WS_EX_TOOLWINDOW,
00667             REBARCLASSNAME,
00668             NULL,
00669             WS_CHILD/* | WS_VISIBLE*/ | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | // 2007.03.08 ryoji WS_VISIBLE 除去
00670             RBS_BANDBORDERS | CCS_NODIVIDER,
00671             0, 0, 0, 0,
00672             m_hWnd,
00673             NULL,
00674             m_hInstance,
00675             NULL);
00676
00677         if( NULL == m_hwndReBar ){
00678 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00679                 "Rebar の作成に失敗しました。"
00680             );
00681             return;
00682         }
00683
00684         if( m_pShareData->m_Common.m_bToolBarIsFlat ){  /* フラットツールバーにする／しない */
00685             PreventVisualStyle( m_hwndReBar );  // ビジュアルスタイル非適用のフラットな Rebar にする
00686         }
00687
00688         ::ZeroMemory(&rbi, sizeof(REBARINFO));
00689         rbi.cbSize = sizeof(REBARINFO);
00690         ::SendMessage(m_hwndReBar, RB_SETBARINFO, 0, (LPARAM)&rbi);
00691
00692         nFlag = CCS_NORESIZE | CCS_NODIVIDER | CCS_NOPARENTALIGN | TBSTYLE_FLAT;    // ツールバーへの追加スタイル
00693     }
00694
00695     /* ツールバーウィンドウの作成 */
00696     m_hwndToolBar = ::CreateWindowEx(
00697         0,
00698         TOOLBARCLASSNAME,
00699         NULL,
00700         WS_CHILD/* | WS_VISIBLE*/ | WS_CLIPCHILDREN | /*WS_BORDER | */  // 2006.06.17 ryoji WS_CLIPCHILDREN 追加    // 2007.03.08 ryoji WS_VISIBLE 除去
00701 /*      WS_EX_WINDOWEDGE| */
00702         TBSTYLE_TOOLTIPS |
00703 //      TBSTYLE_WRAPABLE |
00704 //      TBSTYLE_ALTDRAG |
00705 //      CCS_ADJUSTABLE |
00706         nFlag,
00707         0, 0,
00708         0, 0,
00709         m_hWnd,
00710         (HMENU)ID_TOOLBAR,
00711         m_hInstance,
00712         NULL
00713     );
00714     if( NULL == m_hwndToolBar ){
00715         if( m_pShareData->m_Common.m_bToolBarIsFlat ){  /* フラットツールバーにする／しない */
00716             m_pShareData->m_Common.m_bToolBarIsFlat = FALSE;
00717         }
00718 		::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00719             "ツールバーの作成に失敗しました。"
00720         );
00721         DestroyToolBar();   // 2006.06.17 ryoji
00722     }else{
00723         // 2006.09.06 ryoji ツールバーをサブクラス化する
00724         g_pOldToolBarWndProc = (WNDPROC)::SetWindowLongPtr( m_hwndToolBar, GWLP_WNDPROC, (LONG_PTR)ToolBarWndProc );
00725
00726         ::SendMessage( m_hwndToolBar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0 );
00727         //  Oct. 12, 2000 genta
00728         //  既に用意されているImage Listをアイコンとして登録
00729         m_cIcons.SetToolBarImages( m_hwndToolBar );
00730         /* ツールバーにボタンを追加 */
00731         int count = 0;  //@@@ 2002.06.15 MIK
00732         int nToolBarButtonNum = 0;// 2005/8/29 aroka
00733         //  From Here 2005.08.29 aroka
00734         // はじめにツールバー構造体の配列を作っておく
00735         TBBUTTON *pTbbArr = new TBBUTTON[m_pShareData->m_Common.m_nToolBarButtonNum];
00736         for( i = 0; i < m_pShareData->m_Common.m_nToolBarButtonNum; ++i ){
00737             nIdx = m_pShareData->m_Common.m_nToolBarButtonIdxArr[i];
00738             pTbbArr[nToolBarButtonNum] = m_CMenuDrawer.getButton(nIdx);
00739             // セパレータが続くときはひとつにまとめる
00740             // 折り返しボタンもTBSTYLE_SEP属性を持っているので
00741             // 折り返しの前のセパレータは全て削除される．
00742             if( (pTbbArr[nToolBarButtonNum].fsStyle & TBSTYLE_SEP) && (nToolBarButtonNum!=0)){
00743                 if( (pTbbArr[nToolBarButtonNum-1].fsStyle & TBSTYLE_SEP) ){
00744                     pTbbArr[nToolBarButtonNum-1] = pTbbArr[nToolBarButtonNum];
00745                     nToolBarButtonNum--;
00746                 }
00747             }
00748             // 仮想折返しボタンがきたら直前のボタンに折返し属性を付ける
00749             if( pTbbArr[nToolBarButtonNum].fsState & TBSTATE_WRAP ){
00750                 if( nToolBarButtonNum!=0 ){
00751                     pTbbArr[nToolBarButtonNum-1].fsState |= TBSTATE_WRAP;
00752                 }
00753                 continue;
00754             }
00755             nToolBarButtonNum++;
00756         }
00757         //  To Here 2005.08.29 aroka
00758
00759         for( i = 0; i < nToolBarButtonNum; ++i ){
00760             tbb = pTbbArr[i];
00761             //::SendMessage( m_hwndToolBar, TB_ADDBUTTONS, (WPARAM)1, (LPARAM)&tbb );
00762
00763             //@@@ 2002.06.15 MIK start
00764             switch( tbb.fsStyle )
00765             {
00766             case TBSTYLE_DROPDOWN:  //ドロップダウン
00767                 //拡張スタイルに設定
00768                 ::SendMessage( m_hwndToolBar, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS );
00769                 ::SendMessage( m_hwndToolBar, TB_ADDBUTTONS, (WPARAM)1, (LPARAM)&tbb );
00770                 count++;
00771                 break;
00772
00773             case TBSTYLE_COMBOBOX:  //コンボボックス
00774                 {
00775                     RECT            rc;
00776                     TBBUTTONINFO    tbi;
00777                     //HWND          my_hwnd;
00778                     TBBUTTON        my_tbb;
00779                     //int           width;
00780                     LOGFONT         lf;
00781                     //HFONT         my_font;
00782                     int             my_i;
00783
00784                     switch( tbb.idCommand )
00785                     {
00786                     case F_SEARCH_BOX:
00787                         if( m_hwndSearchBox )
00788                         {
00789                             break;
00790                         }
00791
00792                         //セパレータ作る
00793                         memset( &my_tbb, 0, sizeof(my_tbb) );
00794                         my_tbb.fsStyle   = TBSTYLE_BUTTON;  //ボタンにしないと描画が乱れる 2005/8/29 aroka
00795                         my_tbb.idCommand = tbb.idCommand;   //同じIDにしておく
00796                         if( tbb.fsState & TBSTATE_WRAP ){   //折り返し 2005/8/29 aroka
00797                             my_tbb.fsState |=  TBSTATE_WRAP;
00798                         }
00799                         ::SendMessage( m_hwndToolBar, TB_ADDBUTTONS, (WPARAM)1, (LPARAM)&my_tbb );
00800                         count++;
00801
00802                         //サイズを設定する
00803                         tbi.cbSize = sizeof(tbi);
00804                         tbi.dwMask = TBIF_SIZE;
00805                         tbi.cx     = 160;   //ボックスの幅
00806                         ::SendMessage( m_hwndToolBar, TB_SETBUTTONINFO, (WPARAM)(tbb.idCommand), (LPARAM)&tbi );
00807
00808                         //サイズを取得する
00809                         rc.right = rc.left = rc.top = rc.bottom = 0;
00810                         ::SendMessage( m_hwndToolBar, TB_GETITEMRECT, (WPARAM)(count-1), (LPARAM)&rc );
00811
00812                         //コンボボックスを作る
00813                         //  Mar. 8, 2003 genta 検索ボックスを1ドット下にずらした
00814                         m_hwndSearchBox = CreateWindow( "COMBOBOX", "Combo",
00815                                 WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN
00816                                 /*| CBS_SORT*/ | CBS_AUTOHSCROLL /*| CBS_DISABLENOSCROLL*/,
00817                                 rc.left, rc.top + 1, rc.right - rc.left, (rc.bottom - rc.top) * 10,
00818                                 m_hwndToolBar, (HMENU)(INT_PTR)tbb.idCommand, m_hInstance, NULL );
00819                         if( m_hwndSearchBox )
00820                         {
00821                             m_nCurrentFocus = 0;
00822
00823                             memset( &lf, 0, sizeof(LOGFONT) );
00824                             lf.lfHeight         = 12; // Jan. 14, 2003 genta ダイアログにあわせてちょっと小さく
00825                             lf.lfWidth          = 0;
00826                             lf.lfEscapement     = 0;
00827                             lf.lfOrientation    = 0;
00828                             lf.lfWeight         = FW_NORMAL;
00829                             lf.lfItalic         = FALSE;
00830                             lf.lfUnderline      = FALSE;
00831                             lf.lfStrikeOut      = FALSE;
00832                             lf.lfCharSet        = SHIFTJIS_CHARSET;
00833                             lf.lfOutPrecision   = OUT_DEFAULT_PRECIS;
00834                             lf.lfClipPrecision  = CLIP_DEFAULT_PRECIS;
00835                             lf.lfQuality        = DEFAULT_QUALITY;
00836                             lf.lfPitchAndFamily = FF_MODERN | DEFAULT_PITCH;
00837                             //strcpy( lf.lfFaceName, "ＭＳ ゴシック" );
00838                             strcpy( lf.lfFaceName, "ＭＳ Ｐゴシック" );
00839                             m_fontSearchBox = ::CreateFontIndirect( &lf );
00840                             if( m_fontSearchBox )
00841                             {
00842                                 ::SendMessage( m_hwndSearchBox, WM_SETFONT, (WPARAM)m_fontSearchBox, MAKELONG (TRUE, 0) );
00843                             }
00844
00845                             //入力長制限
00846                             ::SendMessage( m_hwndSearchBox, CB_LIMITTEXT, (WPARAM)_MAX_PATH - 1, 0 );
00847
00848                             //拡張インタフェース
00849                             //::SendMessage( m_hwndSearchBox, CB_SETEXTENDEDUI, (WPARAM)(BOOL)TRUE, 0 );
00850
00851                             //検索ボックスを更新
00852                             ::SendMessage( m_hwndSearchBox, CB_RESETCONTENT, 0, 0 );
00853                             for( my_i = 0; my_i < m_pShareData->m_nSEARCHKEYArrNum; my_i++ )
00854                             {
00855                                 ::SendMessage( m_hwndSearchBox, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szSEARCHKEYArr[my_i] );
00856                             }
00857                             ::SendMessage( m_hwndSearchBox, CB_SETCURSEL, 0, 0 );
00858                         }
00859                         break;
00860
00861                     default:
00862                         //width = 0;
00863                         //my_hwnd = NULL;
00864                         //my_font = NULL;
00865                         break;
00866                     }
00867                 }
00868                 break;
00869
00870             case TBSTYLE_BUTTON:    //ボタン
00871             case TBSTYLE_SEP:       //セパレータ
00872             default:
00873                 ::SendMessage( m_hwndToolBar, TB_ADDBUTTONS, (WPARAM)1, (LPARAM)&tbb );
00874                 count++;
00875                 break;
00876             }
00877             //@@@ 2002.06.15 MIK end
00878         }
00879         if( m_pShareData->m_Common.m_bToolBarIsFlat ){  /* フラットツールバーにする／しない */
00880             uToolType = (UINT)::GetWindowLong(m_hwndToolBar, GWL_STYLE);
00881             uToolType |= (TBSTYLE_FLAT);
00882             ::SetWindowLong(m_hwndToolBar, GWL_STYLE, uToolType);
00883             ::InvalidateRect(m_hwndToolBar, NULL, TRUE);
00884         }
00885         delete []pTbbArr;// 2005/8/29 aroka
00886     }
00887
00888     // 2006.06.17 ryoji
00889     // ツールバーを Rebar に入れる
00890     if( m_hwndReBar && m_hwndToolBar ){
00891         // ツールバーの高さを取得する
00892         DWORD dwBtnSize = ::SendMessage( m_hwndToolBar, TB_GETBUTTONSIZE, 0, 0 );
00893         DWORD dwRows = ::SendMessage( m_hwndToolBar, TB_GETROWS, 0, 0 );
00894
00895         // バンド情報を設定する
00896         rbBand.cbSize = sizeof(REBARBANDINFO);
00897         rbBand.fMask  = RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_SIZE;
00898         rbBand.fStyle = RBBS_CHILDEDGE;
00899         rbBand.hwndChild  = m_hwndToolBar;  // ツールバー
00900         rbBand.cxMinChild = 0;
00901         rbBand.cyMinChild = HIWORD(dwBtnSize) * dwRows;
00902         rbBand.cx         = 250;
00903
00904         // バンドを追加する
00905         ::SendMessage( m_hwndReBar, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand );
00906         ::ShowWindow( m_hwndToolBar, SW_SHOW );
00907     }
00908
00909     return;
00910 }
00911
00912 void CEditWnd::DestroyToolBar( void )
00913 {
00914     if( m_hwndToolBar )
00915     {
00916         if( m_hwndSearchBox )
00917         {
00918             if( m_fontSearchBox )
00919             {
00920                 ::DeleteObject( m_fontSearchBox );
00921                 m_fontSearchBox = NULL;
00922             }
00923
00924             ::DestroyWindow( m_hwndSearchBox );
00925             m_hwndSearchBox = NULL;
00926
00927             m_nCurrentFocus = 0;
00928         }
00929
00930         ::DestroyWindow( m_hwndToolBar );
00931         m_hwndToolBar = NULL;
00932
00933         //if( m_cTabWnd.m_hWnd ) ::UpdateWindow( m_cTabWnd.m_hWnd );
00934         //if( m_CFuncKeyWnd.m_hWnd ) ::UpdateWindow( m_CFuncKeyWnd.m_hWnd );
00935     }
00936
00937     // 2006.06.17 ryoji Rebar を破棄する
00938     if( m_hwndReBar )
00939     {
00940         ::DestroyWindow( m_hwndReBar );
00941         m_hwndReBar = NULL;
00942     }
00943
00944     return;
00945 }
00946
00950 void CEditWnd::LayoutToolBar( void )
00951 {
00952     if( m_pShareData->m_Common.m_bDispTOOLBAR ){    /* ツールバーを表示する */
00953         if( NULL == m_hwndToolBar ){
00954             CreateToolBar();
00955         }
00956     }else{
00957         DestroyToolBar();
00958     }
00959 }
00960
00964 void CEditWnd::LayoutStatusBar( void )
00965 {
00966     if( m_pShareData->m_Common.m_bDispSTATUSBAR ){  /* ステータスバーを表示する */
00967         if( NULL == m_hwndStatusBar ){
00968             /* ステータスバー作成 */
00969             CreateStatusBar();
00970         }
00971     }else{
00972         /* ステータスバー破棄 */
00973         DestroyStatusBar();
00974     }
00975 }
00976
00980 void CEditWnd::LayoutFuncKey( void )
00981 {
00982     BOOL        bSizeBox;
00983
00984     if( m_pShareData->m_Common.m_bDispFUNCKEYWND ){ /* ファンクションキーを表示する */
00985         if( NULL == m_CFuncKeyWnd.m_hWnd ){
00986             if( m_pShareData->m_Common.m_nFUNCKEYWND_Place == 0 ){  /* ファンクションキー表示位置／0:上 1:下 */
00987                 bSizeBox = FALSE;
00988             }else{
00989                 bSizeBox = TRUE;
00990                 /* ステータスバーがあるときはサイズボックスを表示しない */
00991                 if( NULL != m_hwndStatusBar ){
00992                     bSizeBox = FALSE;
00993                 }
00994             }
00995             m_CFuncKeyWnd.Open( m_hInstance, m_hWnd, &m_cEditDoc, bSizeBox );
00996         }
00997     }else{
00998         m_CFuncKeyWnd.Close();
00999     }
01000 }
01001
01005 void CEditWnd::LayoutTabBar( void )
01006 {
01007     if( m_pShareData->m_Common.m_bDispTabWnd ){ /* タブバーを表示する */
01008         if( NULL == m_cTabWnd.m_hWnd ){
01009             m_cTabWnd.Open( m_hInstance, m_hWnd );
01010         }
01011     }else{
01012         m_cTabWnd.Close();
01013     }
01014 }
01015
01020 void CEditWnd::EndLayoutBars( BOOL bAdjust/* = TRUE*/ )
01021 {
01022     int nCmdShow = m_pPrintPreview? SW_HIDE: SW_SHOW;
01023     HWND hwndToolBar = (NULL != m_hwndReBar)? m_hwndReBar: m_hwndToolBar;
01024     if( NULL != hwndToolBar )
01025         ::ShowWindow( hwndToolBar, nCmdShow );
01026     if( NULL != m_hwndStatusBar )
01027         ::ShowWindow( m_hwndStatusBar, nCmdShow );
01028     if( NULL != m_CFuncKeyWnd.m_hWnd )
01029         ::ShowWindow( m_CFuncKeyWnd.m_hWnd, nCmdShow );
01030     if( NULL != m_cTabWnd.m_hWnd )
01031         ::ShowWindow( m_cTabWnd.m_hWnd, nCmdShow );
01032
01033     if( bAdjust )
01034     {
01035         RECT        rc;
01036         m_cEditDoc.m_cSplitterWnd.DoSplit( -1, -1 );
01037         ::GetClientRect( m_hWnd, &rc );
01038         ::SendMessage( m_hWnd, WM_SIZE, m_nWinSizeType, MAKELONG( rc.right - rc.left, rc.bottom - rc.top ) );
01039         ::RedrawWindow( m_hWnd, NULL, NULL, RDW_FRAME | RDW_INVALIDATE | RDW_UPDATENOW );   // ステータスバーに必要？
01040
01041         m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].SetIMECompFormPos();
01042     }
01043 }
01044
01045
01046 //複数プロセス版
01047 /* メッセージループ */
01048 void CEditWnd::MessageLoop( void )
01049 {
01050     MSG msg;
01051     int ret;
01052
01053     //2004.02.17 Moca GetMessageのエラーチェック
01054     while ( NULL != m_hWnd && ( ret = GetMessage( &msg, NULL, 0, 0 ) ) ){
01055         if( ret == -1 ){
01056             break;
01057         }
01058
01059 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
01060         if( m_pPrintPreview && NULL != m_pPrintPreview->GetPrintPreviewBarHANDLE() && ::IsDialogMessage( m_pPrintPreview->GetPrintPreviewBarHANDLE(), &msg ) ){ /* 印刷プレビュー 操作バー */
01061         }else
01062         if( NULL != m_cEditDoc.m_cDlgFind.m_hWnd && ::IsDialogMessage( m_cEditDoc.m_cDlgFind.m_hWnd, &msg ) ){  /* 「検索」ダイアログ */
01063         }else
01064         if( NULL != m_cEditDoc.m_cDlgFuncList.m_hWnd && ::IsDialogMessage( m_cEditDoc.m_cDlgFuncList.m_hWnd, &msg ) ){  /* 「アウトライン」ダイアログ */
01065         }else
01066         if( NULL != m_cEditDoc.m_cDlgReplace.m_hWnd && ::IsDialogMessage( m_cEditDoc.m_cDlgReplace.m_hWnd, &msg ) ){    /* 「置換」ダイアログ */
01067         }else
01068         if( NULL != m_cEditDoc.m_cDlgGrep.m_hWnd && ::IsDialogMessage( m_cEditDoc.m_cDlgGrep.m_hWnd, &msg ) ){  /* 「Grep」ダイアログ */
01069         }else
01070         if( NULL != m_cEditDoc.m_cHokanMgr.m_hWnd && ::IsDialogMessage( m_cEditDoc.m_cHokanMgr.m_hWnd, &msg ) ){    /* 「入力補完」 */
01071         }else
01072         if( NULL != m_hwndSearchBox && ::IsDialogMessage( m_hwndSearchBox, &msg ) ){    /* 「検索ボックス」 */
01073             ProcSearchBox( &msg );
01074         }else
01075         {
01076             if( NULL != m_pShareData->m_hAccel ){
01077                 if( TranslateAccelerator( msg.hwnd, m_pShareData->m_hAccel, &msg ) ){
01078                 }else{
01079                     TranslateMessage( &msg );
01080                     DispatchMessage( &msg );
01081                 }
01082             }else{
01083                 TranslateMessage( &msg );
01084                 DispatchMessage( &msg );
01085             }
01086         }
01087     }
01088     return;
01089 }
01090
01091
01092 LRESULT CEditWnd::DispatchEvent(
01093     HWND    hwnd,   // handle of window
01094     UINT    uMsg,   // message identifier
01095     WPARAM  wParam, // first message parameter
01096     LPARAM  lParam  // second message parameter
01097 )
01098 {
01099     int                 nRet;
01100     int                 idCtrl;
01101     LPNMHDR             pnmh;
01102     LPTOOLTIPTEXT       lptip;
01103     int                 nPane;
01104     FileInfo*           pfi;
01105     int                 nCaretPosX;
01106     int                 nCaretPosY;
01107     POINT*              ppoCaret;
01108     LPHELPINFO          lphi;
01109     const char*         pLine;
01110     int                 nLineLen;
01111
01112     UINT                idCtl;  /* コントロールのID */
01113     MEASUREITEMSTRUCT*  lpmis;
01114     LPDRAWITEMSTRUCT    lpdis;  /* 項目描画情報 */
01115     int                 nItemWidth;
01116     int                 nItemHeight;
01117     UINT                uItem;
01118     UINT                fuFlags;
01119     HMENU               hmenu;
01120     const char*         pszItemStr;
01121     LRESULT             lRes;
01122
01123     switch( uMsg ){
01124     case WM_PAINTICON:
01125 //      MYTRACE( "WM_PAINTICON\n" );
01126         return 0;
01127     case WM_ICONERASEBKGND:
01128 //      MYTRACE( "WM_ICONERASEBKGND\n" );
01129         return 0;
01130     case WM_LBUTTONDOWN:
01131         return OnLButtonDown( wParam, lParam );
01132     case WM_MOUSEMOVE:
01133         return OnMouseMove( wParam, lParam );
01134     case WM_LBUTTONUP:
01135         return OnLButtonUp( wParam, lParam );
01136     case WM_MOUSEWHEEL:
01137         return OnMouseWheel( wParam, lParam );
01138     case WM_HSCROLL:
01139         return OnHScroll( wParam, lParam );
01140     case WM_VSCROLL:
01141         return OnVScroll( wParam, lParam );
01142
01143
01144     case WM_MENUCHAR:
01145         /* メニューアクセスキー押下時の処理(WM_MENUCHAR処理) */
01146         return m_CMenuDrawer.OnMenuChar( hwnd, uMsg, wParam, lParam );
01147
01148
01149
01150
01151
01152
01153     case WM_MENUSELECT:
01154         if( NULL == m_hwndStatusBar ){
01155             return 1;
01156         }
01157         uItem = (UINT) LOWORD(wParam);      // menu item or submenu index
01158         fuFlags = (UINT) HIWORD(wParam);    // menu flags
01159         hmenu = (HMENU) lParam;             // handle to menu clicked
01160         {
01161             /* メニュー機能のテキストをセット */
01162             CMemory     cmemWork;
01163             pszItemStr = "";
01164
01165             /* 機能に対応するキー名の取得(複数) */
01166             CMemory**   ppcAssignedKeyList;
01167             int         nAssignedKeyNum;
01168             int         j;
01169             nAssignedKeyNum = CKeyBind::GetKeyStrList(
01170                 m_hInstance, m_pShareData->m_nKeyNameArrNum,
01171                 (KEYDATA*)m_pShareData->m_pKeyNameArr, &ppcAssignedKeyList, uItem
01172             );
01173             if( 0 < nAssignedKeyNum ){
01174                 for( j = 0; j < nAssignedKeyNum; ++j ){
01175                     if( j > 0 ){
01176                         cmemWork.AppendSz( " , " );
01177                     }
01178                     cmemWork.Append( ppcAssignedKeyList[j] );
01179                     delete ppcAssignedKeyList[j];
01180                 }
01181                 delete [] ppcAssignedKeyList;
01182             }
01183             pszItemStr = cmemWork.GetPtr();
01184
01185
01186             ::SendMessage( m_hwndStatusBar, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM) (LPINT)pszItemStr );
01187
01188
01189         }
01190         return 0;
01191
01192
01193     case WM_DRAWITEM:
01194         idCtl = (UINT) wParam;              /* コントロールのID */
01195         lpdis = (DRAWITEMSTRUCT*) lParam;   /* 項目描画情報 */
01196         if( IDW_STATUSBAR == idCtl ){
01197             if( 5 == lpdis->itemID ){ // 2003.08.26 Moca idがずれて作画されなかった
01198                 int nColor;
01199                 if( m_pShareData->m_bRecordingKeyMacro  /* キーボードマクロの記録中 */
01200                  && m_pShareData->m_hwndRecordingKeyMacro == m_hWnd /* キーボードマクロを記録中のウィンドウ */
01201                 ){
01202                     nColor = COLOR_BTNTEXT;
01203                 }else{
01204                     nColor = COLOR_3DSHADOW;
01205                 }
01206                 ::SetTextColor( lpdis->hDC, ::GetSysColor( nColor ) );
01207                 ::SetBkMode( lpdis->hDC, TRANSPARENT );
01208
01209                 // 2003.08.26 Moca 上下中央位置に作画
01210                 TEXTMETRIC tm;
01211                 ::GetTextMetrics( lpdis->hDC, &tm );
01212                 int y = ( lpdis->rcItem.bottom - lpdis->rcItem.top - tm.tmHeight + 1 ) / 2 + lpdis->rcItem.top;
01213                 ::TextOut( lpdis->hDC, lpdis->rcItem.left, y, "REC", lstrlen( "REC" ) );
01214                 if( COLOR_BTNTEXT == nColor ){
01215                     ::TextOut( lpdis->hDC, lpdis->rcItem.left + 1, y, "REC", lstrlen( "REC" ) );
01216                 }
01217             }
01218             return 0;
01219         }else{
01220             switch( lpdis->CtlType ){
01221             case ODT_MENU:  /* オーナー描画メニュー */
01222                 /* メニューアイテム描画 */
01223                 m_CMenuDrawer.DrawItem( lpdis );
01224                 return TRUE;
01225             }
01226         }
01227         return FALSE;
01228     case WM_MEASUREITEM:
01229         idCtl = (UINT) wParam;                  // control identifier
01230         lpmis = (MEASUREITEMSTRUCT*) lParam;    // item-size information
01231         switch( lpmis->CtlType ){
01232         case ODT_MENU:  /* オーナー描画メニュー */
01233 //          CMenuDrawer* pCMenuDrawer;
01234 //          pCMenuDrawer = (CMenuDrawer*)lpmis->itemData;
01235
01236
01237 //          MYTRACE( "WM_MEASUREITEM  lpmis->itemID=%d\n", lpmis->itemID );
01238             /* メニューアイテムの描画サイズを計算 */
01239             nItemWidth = m_CMenuDrawer.MeasureItem( lpmis->itemID, &nItemHeight );
01240             if( -1 == nItemWidth ){
01241             }else{
01242                 lpmis->itemWidth = nItemWidth;
01243                 lpmis->itemHeight = nItemHeight;
01244             }
01245             return TRUE;
01246         }
01247         return FALSE;
01248
01249
01250
01251
01252     case WM_PAINT:
01253         return OnPaint( hwnd, uMsg, wParam, lParam );
01254
01255     case WM_PASTE:
01256         return m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].HandleCommand( F_PASTE, TRUE, 0, 0, 0, 0 );
01257
01258     case WM_COPY:
01259         return m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].HandleCommand( F_COPY, TRUE, 0, 0, 0, 0 );
01260
01261     case WM_HELP:
01262         lphi = (LPHELPINFO) lParam;
01263         switch( lphi->iContextType ){
01264         case HELPINFO_MENUITEM:
01265             OnHelp_MenuItem( hwnd, lphi->iCtrlId );
01266             break;
01267         }
01268         return TRUE;
01269
01270     case WM_ACTIVATEAPP:
01271         m_bIsActiveApp = (BOOL)wParam;  // 自アプリがアクティブかどうか
01272
01273         // アクティブ化なら編集ウィンドウリストの先頭に移動する     // 2007.04.08 ryoji WM_SETFOCUS から移動
01274         if( m_bIsActiveApp ){
01275             // アクティブ化が編集ウィンドウでない場合（ダイアログ等の場合）は一旦編集ウィンドウをアクティブ化して戻す
01276             // ・CDlgFuncListダイアログを閉じたときに以前のアクティブウィンドウではなく編集ウィンドウがアクティブになるように
01277             // ・タブまとめ表示の場合はこれで編集ウィンドウが非表示→表示に切替わるのでリスト移動処理で画面が一時的に消えることもなくなる
01278             HWND hwndActive = ::GetActiveWindow();
01279             if( hwndActive != m_hWnd ){
01280                 ActivateFrameWindow( m_hWnd );      // 編集ウィンドウをアクティブ化
01281                 ::SetActiveWindow( hwndActive );    // アクティブウィンドウを元に戻す
01282             }
01283             CShareData::getInstance()->AddEditWndList( m_hWnd );    // リスト移動処理
01284         }
01285
01286         // キャプション設定、タイマーON/OFF     // 2007.03.08 ryoji WM_ACTIVATEから移動
01287         m_cEditDoc.SetParentCaption();
01288         m_CFuncKeyWnd.Timer_ONOFF( m_bIsActiveApp ); // 20060126 aroka
01289         this->Timer_ONOFF( m_bIsActiveApp ); // 20060128 aroka
01290
01291         return 0L;
01292
01293     case WM_SIZE:
01294 //      MYTRACE( "WM_SIZE\n" );
01295         /* WM_SIZE 処理 */
01296         if( SIZE_MINIMIZED == wParam ){
01297             m_cEditDoc.SetParentCaption();
01298         }
01299         return OnSize( wParam, lParam );
01300
01301     //From here 2003.05.31 MIK
01302     case WM_MOVE:
01303         // From Here 2004.05.13 Moca ウィンドウ位置継承
01304         //  最後の位置を復元するため，移動されるたびに共有メモリに位置を保存する．
01305         if( WINSIZEMODE_SAVE == m_pShareData->m_Common.m_nSaveWindowPos ){
01306             if( !::IsZoomed( m_hWnd ) && !::IsIconic( m_hWnd ) ){
01307                 // 2005.11.23 Moca ワークエリア座標だとずれるのでスクリーン座標に変更
01308                 RECT rcWork;
01309                 ::GetWindowRect( hwnd, &rcWork);
01310                 m_pShareData->m_Common.m_nWinPosX = rcWork.left;
01311                 m_pShareData->m_Common.m_nWinPosY = rcWork.top;
01312             }
01313         }
01314         // To Here 2004.05.13 Moca ウィンドウ位置継承
01315         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01316     //To here 2003.05.31 MIK
01317     case WM_SYSCOMMAND:
01318         // タブまとめ表示では閉じる動作はオプション指定に従う   // 2006.02.13 ryoji
01319         //  Feb. 11, 2007 genta 動作を選べるように(MDI風と従来動作)
01320         // 2007.02.22 ryoji Alt+F4 のデフォルト機能でモード毎の動作が得られるようになった
01321         if( wParam == SC_CLOSE ){
01322             // 印刷プレビューモードでウィンドウを閉じる操作のときはプレビューを閉じる   // 2007.03.04 ryoji
01323             if( m_pPrintPreview ){
01324                 PrintPreviewModeONOFF();    // 印刷プレビューモードのオン/オフ
01325                 return 0L;
01326             }
01327             OnCommand( 0, CKeyBind::GetDefFuncCode( VK_F4, _ALT ), NULL );
01328             return 0L;
01329         }
01330         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01331     case WM_IME_COMPOSITION:
01332         if ( lParam & GCS_RESULTSTR ) {
01333             /* メッセージの配送 */
01334             return m_cEditDoc.DispatchEvent( hwnd, uMsg, wParam, lParam );
01335         }else{
01336             return DefWindowProc( hwnd, uMsg, wParam, lParam );
01337         }
01338     case WM_KILLFOCUS:
01339     case WM_CHAR:
01340     case WM_IME_CHAR:
01341     case WM_KEYUP:
01342     case WM_SYSKEYUP:   // 2004.04.28 Moca ALT+キーのキーリピート処理のため追加
01343     case WM_ENTERMENULOOP:
01344     case MYWM_IME_REQUEST:   /*  再変換対応 by minfu 2002.03.27  */ // 20020331 aroka
01345         /* メッセージの配送 */
01346         return m_cEditDoc.DispatchEvent( hwnd, uMsg, wParam, lParam );
01347
01348     case WM_EXITMENULOOP:
01349 //      MYTRACE( "WM_EXITMENULOOP\n" );
01350         if( NULL != m_hwndStatusBar ){
01351             ::SendMessage( m_hwndStatusBar, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM) (LPINT)"" );
01352         }
01353
01354         /* メッセージの配送 */
01355         return m_cEditDoc.DispatchEvent( hwnd, uMsg, wParam, lParam );
01356     case WM_SETFOCUS:
01357 //      MYTRACE( "WM_SETFOCUS\n" );
01358
01359         // Aug. 29, 2003 wmlhq & ryojiファイルのタイムスタンプのチェック処理 OnTimer に移行
01360         m_nTimerCount = 9;
01361
01362         /* メッセージの配送 */
01363         lRes = m_cEditDoc.DispatchEvent( hwnd, uMsg, wParam, lParam );
01364
01365 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
01366         /* 印刷プレビューモードのときは、キー操作は全部PrintPreviewBarへ転送 */
01367         if( m_pPrintPreview ){
01368             m_pPrintPreview->SetFocusToPrintPreviewBar();
01369         }
01370
01371         //検索ボックスを更新
01372         if( m_hwndSearchBox )
01373         {
01374             int i;
01375             ::SendMessage( m_hwndSearchBox, CB_RESETCONTENT, 0, 0 );
01376             for( i = 0; i < m_pShareData->m_nSEARCHKEYArrNum; i++ )
01377             {
01378                 ::SendMessage( m_hwndSearchBox, CB_ADDSTRING, 0, (LPARAM)m_pShareData->m_szSEARCHKEYArr[i] );
01379             }
01380             ::SendMessage( m_hwndSearchBox, CB_SETCURSEL, 0, 0 );
01381         }
01382
01383         return lRes;
01384
01385
01386     case WM_NOTIFY:
01387         idCtrl = (int) wParam;
01388         pnmh = (LPNMHDR) lParam;
01389         //  From Here Feb. 15, 2004 genta
01390         //  ステータスバーのダブルクリックでモード切替ができるようにする
01391         if( m_hwndStatusBar && pnmh->hwndFrom == m_hwndStatusBar ){
01392             if( pnmh->code == NM_DBLCLK ){
01393                 LPNMMOUSE mp = (LPNMMOUSE) lParam;
01394                 if( mp->dwItemSpec == 6 ){  //  上書き/挿入
01395                     m_cEditDoc.HandleCommand( F_CHGMOD_INS );
01396                 }
01397                 else if( mp->dwItemSpec == 5 ){ //  マクロの記録開始・終了
01398                     m_cEditDoc.HandleCommand( F_RECKEYMACRO );
01399                 }
01400                 else if( mp->dwItemSpec == 1 ){ //  桁位置→行番号ジャンプ
01401                     m_cEditDoc.HandleCommand( F_JUMP_DIALOG );
01402                 }
01403             }
01404             else if( pnmh->code == NM_RCLICK ){
01405                 LPNMMOUSE mp = (LPNMMOUSE) lParam;
01406                 if( mp->dwItemSpec == 2 ){  //  入力改行モード
01407                     m_CMenuDrawer.ResetContents();
01408                     HMENU hMenuPopUp = ::CreatePopupMenu();
01409                     m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CRLF,
01410                         "入力改行コード指定(&CRLF)" ); // 入力改行コード指定(CRLF)
01411                     m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_LF,
01412                         "入力改行コード指定(&LF)" ); // 入力改行コード指定(LF)
01413                     m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CR,
01414                         "入力改行コード指定(C&R)" ); // 入力改行コード指定(CR)
01415
01416                     //  mp->ptはステータスバー内部の座標なので，スクリーン座標への変換が必要
01417                     POINT   po = mp->pt;
01418                     ::ClientToScreen( m_hwndStatusBar, &po );
01419                     int nId = ::TrackPopupMenu(
01420                         hMenuPopUp,
01421                         TPM_CENTERALIGN
01422                         | TPM_BOTTOMALIGN
01423                         | TPM_RETURNCMD
01424                         | TPM_LEFTBUTTON
01425                         ,
01426                         po.x,
01427                         po.y,
01428                         0,
01429                         m_hWnd,
01430                         NULL
01431                     );
01432                     ::DestroyMenu( hMenuPopUp );
01433                     m_cEditDoc.HandleCommand( nId );
01434                 }
01435             }
01436             return 0L;
01437         }
01438         //  To Here Feb. 15, 2004 genta
01439
01440         switch( pnmh->code ){
01441         case TTN_NEEDTEXT:
01442             lptip = (LPTOOLTIPTEXT)pnmh;
01443             {
01444                 /* ツールバーのツールチップのテキストをセット */
01445                 CMemory**   ppcAssignedKeyList;
01446                 int         nAssignedKeyNum;
01447                 int         j;
01448                 char*       pszKey;
01449                 char        szLabel[1024];
01450
01451
01452                 // From Here Oct. 15, 2001 genta
01453                 // 機能文字列の取得にLookupを使うように変更
01454                 if( !m_cEditDoc.m_cFuncLookup.Funccode2Name( lptip->hdr.idFrom, szLabel, 1024 )){
01455                     szLabel[0] = '\0';
01456                 }
01457                 // To Here Oct. 15, 2001 genta
01458                 /* 機能に対応するキー名の取得(複数) */
01459                 nAssignedKeyNum = CKeyBind::GetKeyStrList(
01460                     m_hInstance, m_pShareData->m_nKeyNameArrNum,
01461                     (KEYDATA*)m_pShareData->m_pKeyNameArr, &ppcAssignedKeyList, lptip->hdr.idFrom
01462                 );
01463                 if( 0 < nAssignedKeyNum ){
01464                     for( j = 0; j < nAssignedKeyNum; ++j ){
01465                         strcat( szLabel, "\n        " );
01466                         pszKey = ppcAssignedKeyList[j]->GetPtr();
01467                         strcat( szLabel, pszKey );
01468                         delete ppcAssignedKeyList[j];
01469                     }
01470                     delete [] ppcAssignedKeyList;
01471                 }
01472                 lptip->hinst = NULL;
01473                 lptip->lpszText = szLabel;
01474             }
01475             break;
01476
01477         case TBN_DROPDOWN:
01478             {
01479                 int nId;
01480                 nId = CreateFileDropDownMenu( pnmh->hwndFrom );
01481                 if( nId != 0 ) OnCommand( (WORD)0 /*メニュー*/, (WORD)nId, (HWND)0 );
01482             }
01483             return FALSE;
01484         //  From Here Jul. 21, 2003 genta
01485         case NM_CUSTOMDRAW:
01486             if( pnmh->hwndFrom == m_hwndToolBar ){
01487                 //  ツールバーのOwner Draw
01488                 return ToolBarOwnerDraw( (LPNMCUSTOMDRAW)pnmh );
01489             }
01490             break;
01491         //  To Here Jul. 21, 2003 genta
01492         }
01493         return 0L;
01494     case WM_COMMAND:
01495         OnCommand( HIWORD(wParam), LOWORD(wParam), (HWND) lParam );
01496         return 0L;
01497     case WM_INITMENUPOPUP:
01498         InitMenu( (HMENU)wParam, (UINT)LOWORD( lParam ), (BOOL)HIWORD( lParam ) );
01499         return 0L;
01500     case WM_DROPFILES:
01501         /* ファイルがドロップされた */
01502         OnDropFiles( (HDROP) wParam );
01503         return 0L;
01504     case WM_QUERYENDSESSION:
01505         if( OnClose() ){
01506             DestroyWindow( hwnd );
01507             return TRUE;
01508         }else{
01509             return FALSE;
01510         }
01511     case WM_CLOSE:
01512         if( OnClose() ){
01513             DestroyWindow( hwnd );
01514         }
01515         return 0L;
01516     case WM_DESTROY:
01517         if( m_pShareData->m_bRecordingKeyMacro ){                   /* キーボードマクロの記録中 */
01518             if( m_pShareData->m_hwndRecordingKeyMacro == m_hWnd ){  /* キーボードマクロを記録中のウィンドウ */
01519                 m_pShareData->m_bRecordingKeyMacro = FALSE;         /* キーボードマクロの記録中 */
01520                 m_pShareData->m_hwndRecordingKeyMacro = NULL;       /* キーボードマクロを記録中のウィンドウ */
01521             }
01522         }
01523
01524         /* タイマーを削除 */
01525         ::KillTimer( m_hWnd, IDT_TOOLBAR );
01526
01527         /* ドロップされたファイルを受け入れるのを解除 */
01528         ::DragAcceptFiles( hwnd, FALSE );
01529         /* 編集ウィンドウリストからの削除 */
01530         CShareData::getInstance()->DeleteEditWndList( m_hWnd );
01531
01532         if( m_pShareData->m_hwndDebug == m_hWnd ){
01533             m_pShareData->m_hwndDebug = NULL;
01534         }
01535         m_hWnd = NULL;
01536
01537
01538         /* 編集ウィンドウオブジェクトからのオブジェクト削除要求 */
01539         ::PostMessage( m_pShareData->m_hwndTray, MYWM_DELETE_ME, 0, 0 );
01540
01541         /* Windows にスレッドの終了を要求します */
01542         ::PostQuitMessage( 0 );
01543
01544         return 0L;
01545
01546     case WM_THEMECHANGED:
01547         // 2006.06.17 ryoji
01548         // ビジュアルスタイル／クラシックスタイルが切り替わったらツールバーを再作成する
01549         // （ビジュアルスタイル: Rebar 有り、クラシックスタイル: Rebar 無し）
01550         if( NULL != m_hwndToolBar ){
01551             if( IsVisualStyle() == (NULL == m_hwndReBar) ){
01552                 DestroyToolBar();
01553                 LayoutToolBar();
01554                 EndLayoutBars();
01555             }
01556         }
01557         return 0L;
01558
01559     case MYWM_UIPI_CHECK:
01560         /* エディタ－トレイ間でのUI特権分離の確認メッセージ */  // 2007.06.07 ryoji
01561         m_bUIPI = TRUE; // トレイからの返事を受け取った
01562         return 0L;
01563
01564     case MYWM_CLOSE:
01565         /* エディタへの終了要求 */
01566         if( FALSE != ( nRet = OnClose()) ){ // Jan. 23, 2002 genta 警告抑制
01567             // タブまとめ表示では閉じる動作はオプション指定に従う   // 2006.02.13 ryoji
01568             if( !(BOOL)wParam ){    // 全終了要求でない場合
01569                 // タブまとめ表示で(無題)を残す指定の場合、残ウィンドウが１個なら新規エディタを起動して終了する
01570                 if( m_pShareData->m_Common.m_bDispTabWnd &&
01571                     !m_pShareData->m_Common.m_bDispTabWndMultiWin &&
01572                     m_pShareData->m_Common.m_bTab_RetainEmptyWin
01573                     ){
01574                     // 自グループ内の残ウィンドウ数を調べる // 2007.06.20 ryoji
01575                     int nGroup = CShareData::getInstance()->GetGroupId( m_hWnd );
01576                     if( 1 == CShareData::getInstance()->GetEditorWindowsNum( nGroup ) ){
01577                         EditNode* pEditNode = CShareData::getInstance()->GetEditNode( m_hWnd );
01578                         if( pEditNode )
01579                             pEditNode->m_bClosing = TRUE;   // 自分はタブ表示してもらわなくていい
01580                         CEditApp::OpenNewEditor( m_hInstance, m_hWnd, (char*)NULL, 0, FALSE, TRUE );
01581                     }
01582                 }
01583             }
01584             DestroyWindow( hwnd );
01585         }
01586         return nRet;
01587
01588
01589     case MYWM_GETFILEINFO:
01590         /* トレイからエディタへの編集ファイル名要求通知 */
01591         pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01592
01593         /* 編集ファイル情報を格納 */
01594         m_cEditDoc.SetFileInfo( pfi );
01595         return 0L;
01596     case MYWM_CHANGESETTING:
01597         /* 設定変更の通知 */
01598 // Oct 10, 2000 ao
01599 /* 設定変更時、ツールバーを再作成するようにする（バーの内容変更も反映） */
01600         DestroyToolBar();
01601         LayoutToolBar();
01602 // Oct 10, 2000 ao ここまで
01603
01604         // ファンクションキーを再作成する（バーの内容、位置、グループボタン数の変更も反映） // 2006.12.19 ryoji
01605         m_CFuncKeyWnd.Close();
01606         LayoutFuncKey();
01607
01608         // タブバーの表示／非表示切り替え   // 2006.12.19 ryoji
01609         LayoutTabBar();
01610
01611         // ステータスバーの表示／非表示切り替え // 2006.12.19 ryoji
01612         LayoutStatusBar();
01613
01614         // 水平スクロールバーの表示／非表示切り替え // 2006.12.19 ryoji
01615         {
01616             int i;
01617             bool b1;
01618             bool b2;
01619             b1 = (m_pShareData->m_Common.m_bScrollBarHorz == FALSE);
01620             for( i = 0; i < 4; i++ )
01621             {
01622                 b2 = (m_cEditDoc.m_cEditViewArr[i].m_hwndHScrollBar == NULL);
01623                 if( b1 != b2 )      /* 水平スクロールバーを使う */
01624                 {
01625                     m_cEditDoc.m_cEditViewArr[i].DestroyScrollBar();
01626                     m_cEditDoc.m_cEditViewArr[i].CreateScrollBar();
01627                 }
01628             }
01629         }
01630
01631         // バー変更で画面が乱れないように   // 2006.12.19 ryoji
01632         EndLayoutBars();
01633
01634         if( m_pShareData->m_Common.m_bDispTabWnd )
01635         {
01636             // タブ表示のままグループ化する／しないが変更されていたらタブを更新する必要がある
01637             m_cTabWnd.Refresh( FALSE );
01638         }
01639         if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01640         {
01641             if( CShareData::getInstance()->IsTopEditWnd( m_hWnd ) )
01642             {
01643                 if( !::IsWindowVisible( m_hWnd ) )
01644                 {
01645                     // ::ShowWindow( m_hWnd, SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos を使う
01646                     ::SetWindowPos( m_hWnd, NULL,0,0,0,0,
01647                                     SWP_SHOWWINDOW | SWP_NOACTIVATE
01648                                     | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01649
01650                     // このウィンドウの WS_EX_TOPMOST 状態を全ウィンドウに反映する  // 2007.05.18 ryoji
01651                     WindowTopMost( ((DWORD)::GetWindowLongPtr( m_hWnd, GWL_EXSTYLE ) & WS_EX_TOPMOST)? 1: 2 );
01652                 }
01653             }
01654             else
01655             {
01656                 if( ::IsWindowVisible( m_hWnd ) )
01657                 {
01658                     ::ShowWindow( m_hWnd, SW_HIDE );
01659                 }
01660             }
01661         }
01662         else
01663         {
01664             if( !::IsWindowVisible( m_hWnd ) )
01665             {
01666                 // ::ShowWindow( m_hWnd, SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos を使う
01667                 ::SetWindowPos( m_hWnd, NULL,0,0,0,0,
01668                                 SWP_SHOWWINDOW | SWP_NOACTIVATE
01669                                 | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01670             }
01671         }
01672
01673         //  Aug, 21, 2000 genta
01674         m_cEditDoc.ReloadAutoSaveParam();
01675
01676 //1999.09.03 なーんかうまく動かんので、やめた。運用でカバーしてほしい。
01677 //
01678 //ファンクションキー窓位置変更したとき、サイズボックスの位置を変更
01679 //      m_cEditDoc.m_cSplitterWnd.DoSplit( -1, -1);
01680 //ファンクションキー窓位置変更したとき、ファンクションキー窓位置変更
01681 //      ::GetWindowRect( hwnd, &rc );
01682 //      ::SetWindowPos( hwnd, 0, 0, 0, rc.right - rc.left, rc.bottom - rc.top + 1, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01683 //      ::SetWindowPos( hwnd, 0, 0, 0, rc.right - rc.left, rc.bottom - rc.top, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER );
01684
01685         m_cEditDoc.SetDocumentIcon();   // Sep. 10, 2002 genta 文書アイコンの再設定
01686         m_cEditDoc.OnChangeSetting();   /* ビューに設定変更を反映させる */
01687         return 0L;
01688     case MYWM_SETACTIVEPANE:
01689         if( -1 == (int)wParam ){
01690             if( 0 == lParam ){
01691                 nPane = m_cEditDoc.m_cSplitterWnd.GetFirstPane();
01692             }else{
01693                 nPane = m_cEditDoc.m_cSplitterWnd.GetLastPane();
01694             }
01695         }
01696         m_cEditDoc.SetActivePane( nPane );
01697         return 0L;
01698
01699
01700     case MYWM_SETCARETPOS:  /* カーソル位置変更通知 */
01701         {
01702             //  2006.07.09 genta LPARAMに新たな意味を追加
01703             //  bit 0 (MASK 1): (bit 1==0のとき) 0/選択クリア, 1/選択開始・変更
01704             //  bit 1 (MASK 2): 0: bit 0の設定に従う．1:現在の選択ロックs状態を継続
01705             //  既存の実装では どちらも0なので強制解除と解釈される．
01706             //  呼び出し時はe_PM_SETCARETPOS_SELECTSTATEの値を使うこと．
01707             int bSelect = lParam & 1;
01708             if( lParam & 2 ){
01709                 // 現在の状態をKEEP
01710                 bSelect = m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_bSelectingLock;
01711             }
01712
01713             ppoCaret = (POINT*)m_pShareData->m_szWork;
01714             //  2006.07.09 genta 強制解除しない
01715             /*
01716             カーソル位置変換
01717              物理位置(行頭からのバイト数、折り返し無し行位置)
01718             →
01719              レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01720             */
01721             m_cEditDoc.m_cLayoutMgr.CaretPos_Phys2Log(
01722                 ppoCaret->x,
01723                 ppoCaret->y,
01724                 &nCaretPosX,
01725                 &nCaretPosY
01726             );
01727             // 改行の真ん中にカーソルが来ないように // 2007.08.22 ryoji
01728             // Note. もとが改行単位の桁位置なのでレイアウト折り返しの桁位置を超えることはない。
01729             //       選択指定(bSelect==TRUE)の場合にはどうするのが妥当かよくわからないが、
01730             //       2007.08.22現在ではアウトライン解析ダイアログから桁位置0で呼び出される
01731             //       パターンしかないので実用上特に問題は無い。
01732             if( !bSelect ){
01733                 const CDocLine *pTmpDocLine = m_cEditDoc.m_cDocLineMgr.GetLineInfo( ppoCaret->y );
01734                 if( pTmpDocLine ){
01735                     if( pTmpDocLine->GetLengthWithoutEOL() < ppoCaret->x ) nCaretPosX--;
01736                 }
01737             }
01738             //  2006.07.09 genta 選択範囲を考慮して移動
01739             //  MoveCursorの位置調整機能があるので，最終行以降への
01740             //  移動指示の調整もMoveCursorにまかせる
01741             m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].MoveCursorSelecting( nCaretPosX, nCaretPosY, bSelect, _CARETMARGINRATE / 3 );
01742         }
01743         return 0L;
01744
01745
01746     case MYWM_GETCARETPOS:  /* カーソル位置取得要求 */
01747         ppoCaret = (POINT*)m_pShareData->m_szWork;
01748         /*
01749         カーソル位置変換
01750          レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01751         →
01752         物理位置(行頭からのバイト数、折り返し無し行位置)
01753         */
01754         m_cEditDoc.m_cLayoutMgr.CaretPos_Log2Phys(
01755             m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_nCaretPosX,
01756             m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_nCaretPosY,
01757             (int*)&ppoCaret->x,
01758             (int*)&ppoCaret->y
01759         );
01760         return 0L;
01761
01762     case MYWM_GETLINEDATA:  /* 行(改行単位)データの要求 */
01763         pLine = m_cEditDoc.m_cDocLineMgr.GetLineStr( (int)wParam, &nLineLen );
01764         if( NULL == pLine ){
01765             return 0;
01766         }
01767         if( nLineLen > sizeof( m_pShareData->m_szWork ) ){
01768             memcpy( m_pShareData->m_szWork, pLine, sizeof( m_pShareData->m_szWork ) );
01769         }else{
01770             memcpy( m_pShareData->m_szWork, pLine, nLineLen );
01771         }
01772         return nLineLen;
01773
01774
01775     case MYWM_ADDSTRING:
01776 //      MYTRACE( "MYWM_ADDSTRING[%s]\n", m_pShareData->m_szWork );
01777         m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].HandleCommand( F_ADDTAIL, TRUE, (LPARAM)m_pShareData->m_szWork, (LPARAM)lstrlen( m_pShareData->m_szWork ), 0, 0 );
01778         m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].HandleCommand( F_GOFILEEND, TRUE, 0, 0, 0, 0 );
01779         return 0L;
01780 // 2004/06/21 novice タグジャンプ機能追加
01781 #if 0
01782     case MYWM_SETREFERER:
01783         ppoCaret = (POINT*)m_pShareData->m_szWork;
01784
01785         m_cEditDoc.SetReferer( (HWND)wParam, ppoCaret->x, ppoCaret->y );
01786         return 0L;
01787 #endif
01788
01789     //タブウインドウ    //@@@ 2003.05.31 MIK
01790     case MYWM_TAB_WINDOW_NOTIFY:
01791         m_cTabWnd.TabWindowNotify( wParam, lParam );
01792         return 0L;
01793
01794     //バーの表示・非表示    //@@@ 2003.06.10 MIK
01795     case MYWM_BAR_CHANGE_NOTIFY:
01796         if( m_hWnd != (HWND)lParam )
01797         {
01798             switch( wParam )
01799             {
01800             case MYBCN_TOOLBAR:
01801                 LayoutToolBar();    // 2006.12.19 ryoji
01802                 break;
01803             case MYBCN_FUNCKEY:
01804                 LayoutFuncKey();    // 2006.12.19 ryoji
01805                 break;
01806             case MYBCN_TAB:
01807                 LayoutTabBar();     // 2006.12.19 ryoji
01808                 if( m_pShareData->m_Common.m_bDispTabWnd
01809                     && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01810                 {
01811                     ::ShowWindow(m_hWnd, SW_HIDE);
01812                 }
01813                 else
01814                 {
01815                     // ::ShowWindow( hwnd, SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos を使う
01816                     ::SetWindowPos( hwnd, NULL,0,0,0,0,
01817                                     SWP_SHOWWINDOW | SWP_NOACTIVATE
01818                                     | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01819                 }
01820                 break;
01821             case MYBCN_STATUSBAR:
01822                 LayoutStatusBar();      // 2006.12.19 ryoji
01823                 break;
01824             }
01825             EndLayoutBars();    // 2006.12.19 ryoji
01826         }
01827         return 0L;
01828
01829     //by 鬼 (2) MYWM_CHECKSYSMENUDBLCLKは不要に, WM_LBUTTONDBLCLK追加
01830     case WM_NCLBUTTONDOWN:
01831         return OnNcLButtonDown(wParam, lParam);
01832
01833     case WM_NCLBUTTONUP:
01834         return OnNcLButtonUp(wParam, lParam);
01835
01836     case WM_LBUTTONDBLCLK:
01837         return OnLButtonDblClk(wParam, lParam);
01838
01839     case WM_IME_NOTIFY: // Nov. 26, 2006 genta
01840         if( wParam == IMN_SETCONVERSIONMODE || wParam == IMN_SETOPENSTATUS){
01841             m_cEditDoc.ActiveView().ShowEditCaret();
01842         }
01843         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01844
01845     case WM_NCACTIVATE:
01846         // 編集ウィンドウ切替中（タブまとめ時）はタイトルバーのアクティブ／非アクティブ状態をできるだけ変更しないように（１）   // 2007.04.03 ryoji
01847         // 前面にいるのが編集ウィンドウならアクティブ状態を保持する
01848         if( m_pShareData->m_bEditWndChanging && CShareData::IsEditWnd(::GetForegroundWindow()) ){
01849             wParam = TRUE;  // アクティブ
01850         }
01851         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01852
01853     case WM_SETTEXT:
01854         // 編集ウィンドウ切替中（タブまとめ時）はタイトルバーのアクティブ／非アクティブ状態をできるだけ変更しないように（２）   // 2007.04.03 ryoji
01855         // タイマーを使用してタイトルの変更を遅延する
01856         if( m_pShareData->m_bEditWndChanging ){
01857             delete []m_pszLastCaption;
01858             m_pszLastCaption = new TCHAR[ ::lstrlen((LPCTSTR)lParam) + 1 ];
01859             ::lstrcpy( m_pszLastCaption, (LPCTSTR)lParam ); // 変更後のタイトルを記憶しておく
01860             ::SetTimer( m_hWnd, IDT_CAPTION, 50, NULL );
01861             return 0L;
01862         }
01863         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01864
01865     case WM_TIMER:
01866         if( !OnTimer(wParam, lParam) )
01867             return 0L;
01868         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01869
01870     default:
01871 // << 20020331 aroka 再変換対応 for 95/NT
01872         if( uMsg == m_uMSIMEReconvertMsg || uMsg == m_uATOKReconvertMsg){
01873             return m_cEditDoc.DispatchEvent( hwnd, uMsg, wParam, lParam );
01874         }
01875 // >> by aroka
01876         return DefWindowProc( hwnd, uMsg, wParam, lParam );
01877     }
01878 }
01879
01884 int CEditWnd::OnClose( void )
01885 {
01886     /* ウィンドウをアクティブにする */
01887     /* アクティブにする */
01888 //  ActivateFrameWindow( m_hWnd );  //削除(必要ならOnFileClose内で) @@@ 2003.06.25 MIK
01889 //  if( ::IsIconic( m_hWnd ) ){
01890 //      ::ShowWindow( m_hWnd, SW_RESTORE );
01891 //  }else{
01892 //      ::ShowWindow( m_hWnd, SW_SHOW );
01893 //  }
01894 //  ::SetForegroundWindow( m_hWnd );
01895 //  ::SetActiveWindow( m_hWnd );
01896     /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
01897     int nRet = m_cEditDoc.OnFileClose();
01898     if( !nRet ) return nRet;
01899
01900     // 2005.09.01 ryoji タブまとめ表示の場合は次のウィンドウを前面に（終了時のウィンドウちらつきを抑制）
01901
01902     // 2007.07.07 ryoji
01903     // Note. タブまとめでない場合にも以下の処理を通しているのは、以前、タブまとめ設定を同期していなかったときの名残です。
01904     //       （タブまとめ解除しても非表示のままになっているウィンドウを表示に戻す必要があった）
01905     //       同期にしている現在では、同期に不具合があって非表示になっている場合でも表示に戻す、という保険的な意味しかありません。
01906
01907     int i, j;
01908     EditNode*   p = NULL;
01909     int nCount = CShareData::getInstance()->GetOpenedWindowArr( &p, FALSE );
01910     if( nCount > 1 )
01911     {
01912         for( i = 0; i < nCount; i++ )
01913         {
01914             if( p[ i ].m_hWnd == m_hWnd )
01915                 break;
01916         }
01917         if( i < nCount )
01918         {
01919             for( j = i + 1; j < nCount; j++ )
01920             {
01921                 if( p[ j ].m_nGroup == p[ i ].m_nGroup )
01922                     break;
01923             }
01924             if( j >= nCount )
01925             {
01926                 for( j = 0; j < i; j++ )
01927                 {
01928                     if( p[ j ].m_nGroup == p[ i ].m_nGroup )
01929                         break;
01930                 }
01931             }
01932             if( j != i )
01933             {
01934                 HWND hwnd = p[ j ].m_hWnd;
01935                 {
01936                     // 2006.01.28 ryoji
01937                     // タブまとめ表示でこの画面が非表示から表示に変わってすぐ閉じる場合(タブの中クリック時等)、
01938                     // 以前のウィンドウが消えるよりも先に一気にここまで処理が進んでしまうと
01939                     // あとで画面がちらつくので、以前のウィンドウが消えるのをちょっとだけ待つ
01940                     if( m_pShareData->m_Common.m_bDispTabWnd
01941                         && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01942                     {
01943                         int iWait = 0;
01944                         while( ::IsWindowVisible( hwnd ) && iWait++ < 20 )
01945                             ::Sleep(1);
01946                     }
01947                 }
01948                 if( !::IsWindowVisible( hwnd ) )
01949                 {
01950                     ActivateFrameWindow( hwnd );
01951                 }
01952             }
01953         }
01954     }
01955     if( p ) delete []p;
01956
01957     return nRet;
01958 }
01959
01960
01961
01962
01963
01964
01965 void CEditWnd::OnCommand( WORD wNotifyCode, WORD wID , HWND hwndCtl )
01966 {
01967 //  MYTRACE( "CEditWnd::OnCommand()\n" );
01968
01969     int             nFuncCode;
01970     HWND            hwndWork;
01971
01972     switch( wNotifyCode ){
01973     /* メニューからのメッセージ */
01974     case 0:
01975     case CMD_FROM_MOUSE: // 2006.05.19 genta マウスから呼びだされた場合
01976         switch( wID ){
01977         case F_EXITALL: //Dec. 26, 2000 JEPRO F_に変更
01978             /* サクラエディタの全終了 */
01979             CEditApp::TerminateApplication( m_hWnd );   // 2006.12.25 ryoji 引数追加
01980             break;
01981 //Sept. 15, 2000→Nov. 25, 2000 JEPRO //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
01982         case F_HELP_CONTENTS:
01983             /* ヘルプ目次 */
01984             {
01985                 char    szHelp[_MAX_PATH + 1];
01986                 /* ヘルプファイルのフルパスを返す */
01987 				::GetHelpFilePath( szHelp );
01988                 ShowWinHelpContents( m_hWnd, szHelp );  //  目次を表示する
01989             }
01990             break;
01991         case F_HELP_SEARCH:
01992             /* ヘルプキーワード検索 */
01993             {
01994                 char    szHelp[_MAX_PATH + 1];
01995                 /* ヘルプファイルのフルパスを返す */
01996 				::GetHelpFilePath( szHelp );
01997                 MyWinHelp( m_hWnd, szHelp, HELP_KEY, (ULONG_PTR)"" );   // 2006.10.10 ryoji MyWinHelpに変更に変更
01998             }
01999             break;
02000         case F_ABOUT:   //Dec. 25, 2000 JEPRO F_に変更
02001             /* バージョン情報 */
02002             {
02003                 CDlgAbout cDlgAbout;
02004                 cDlgAbout.DoModal( m_hInstance, m_hWnd );
02005             }
02006             break;
02007         default:
02008             if( wID - IDM_SELWINDOW >= 0 &&
02009                 wID - IDM_SELWINDOW < m_pShareData->m_nEditArrNum ){
02010                 hwndWork = m_pShareData->m_pEditArr[wID - IDM_SELWINDOW].m_hWnd;
02011
02012                 /* アクティブにする */
02013                 ActivateFrameWindow( hwndWork );
02014             }else
02015             if( wID - IDM_SELMRU >= 0 &&
02016                 wID - IDM_SELMRU < 999
02017             ){
02018                 /* 指定ファイルが開かれているか調べる */
02019 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
02020                 CMRU cMRU;
02021                 FileInfo checkFileInfo;
02022                 cMRU.GetFileInfo(wID - IDM_SELMRU, &checkFileInfo);
02023                 //  Oct.  9, 2004 genta 共通関数化
02024                 m_cEditDoc.OpenFile( checkFileInfo.m_szPath, checkFileInfo.m_nCharCode);
02025
02026             }else
02027             if( wID - IDM_SELOPENFOLDER >= 0 &&
02028                 wID - IDM_SELOPENFOLDER < 999
02029             ){
02030                 {
02031                     //Stonee, 2001/12/21 UNCであれば接続を試みる
02032 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
02033                     CMRUFolder cMRUFolder;
02034                     NetConnect( cMRUFolder.GetPath( wID - IDM_SELOPENFOLDER ) );
02035
02036                     /* 「ファイルを開く」ダイアログ */
02037                     int nCharCode = CODE_AUTODETECT;    /* 文字コード自動判別 */
02038                     BOOL bReadOnly = FALSE;
02039                     char        szPath[_MAX_PATH + 3];
02040                     szPath[0] = '\0';
02041                     if( !m_cEditDoc.OpenFileDialog( m_hWnd, cMRUFolder.GetPath(wID - IDM_SELOPENFOLDER), szPath, &nCharCode, &bReadOnly ) ){
02042                         return;
02043                     }
02044                     //  Oct.  9, 2004 genta 共通関数化
02045                     m_cEditDoc.OpenFile( szPath, nCharCode, bReadOnly );
02046                 }
02047             }else{
02048                 //ビューにフォーカスを移動しておく
02049                 if( wID != F_SEARCH_BOX && m_nCurrentFocus == F_SEARCH_BOX )
02050                     ::SetFocus( m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_hWnd );
02051
02052                 /* コマンドコードによる処理振り分け */
02053                 //  May 19, 2006 genta 上位ビットを渡す
02054                 m_cEditDoc.HandleCommand( MAKELONG( wID, wNotifyCode ));
02055             }
02056             break;
02057         }
02058         break;
02059     /* アクセラレータからのメッセージ */
02060     case 1:
02061         //ビューにフォーカスを移動しておく
02062         if( wID != F_SEARCH_BOX && m_nCurrentFocus == F_SEARCH_BOX )
02063             ::SetFocus( m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_hWnd );
02064
02065         nFuncCode = CKeyBind::GetFuncCode(
02066             wID,
02067             m_pShareData->m_nKeyNameArrNum,
02068             m_pShareData->m_pKeyNameArr
02069         );
02070 //      MYTRACE( "CEditWnd::OnCommand()  nFuncCode=%d\n", nFuncCode );
02071         m_cEditDoc.HandleCommand( MAKELONG( nFuncCode, wNotifyCode ) );
02072         break;
02073
02074     case CBN_SETFOCUS:
02075         if( NULL != m_hwndSearchBox && hwndCtl == m_hwndSearchBox )
02076         {
02077             m_nCurrentFocus = F_SEARCH_BOX;
02078         }
02079         break;
02080
02081     case CBN_KILLFOCUS:
02082         if( NULL != m_hwndSearchBox && hwndCtl == m_hwndSearchBox )
02083         {
02084             m_nCurrentFocus = 0;
02085
02086             //フォーカスがはずれたときに検索キーにしてしまう。
02087             //検索キーワードを取得
02088             char    szText[_MAX_PATH];
02089             memset( szText, 0, sizeof(szText) );
02090             ::SendMessage( m_hwndSearchBox, WM_GETTEXT, _MAX_PATH - 1, (LPARAM)szText );
02091             if( szText[0] ) //キー文字列がある
02092             {
02093                 //検索キーを登録
02094                 CShareData::getInstance()->AddToSearchKeyArr( (const char*)szText );
02095             }
02096
02097         }
02098         break;
02099
02100     /* コントロールからのメッセージには通知コード */
02101     default:
02102         break;
02103     }
02104     return;
02105 }
02106
02107
02108
02109 //  キーワード：メニューバー順序
02110 //  Sept.14, 2000 Jepro note: メニューバーの項目のキャプションや順番設定などは以下で行っているらしい
02111 //  Sept.16, 2000 Jepro note: アイコンとの関連付けはCShareData_new2.cppファイルで行っている
02112 void CEditWnd::InitMenu( HMENU hMenu, UINT uPos, BOOL fSystemMenu )
02113 {
02114     int         cMenuItems;
02115     int         nPos;
02116     UINT        id;
02117     UINT        fuFlags;
02118     int         i;
02119     BOOL        bRet;
02120     int         nRowNum;
02121
02122     HMENU       hMenuPopUp;
02123     HMENU       hMenuPopUp_2;
02124     const char* pszLabel;
02125
02126
02127     if( hMenu != ::GetSubMenu( ::GetMenu( m_hWnd ), uPos ) ){
02128         goto end_of_func_IsEnable;
02129     }
02130
02131
02132     if( fSystemMenu ){
02133     }else{
02134 //      MYTRACE( "hMenu=%08xh uPos=%d, fSystemMenu=%s\n", hMenu, uPos, fSystemMenu ? "TRUE":"FALSE" );
02135         switch( uPos ){
02136         case 0:
02137             /* 「ファイル」メニュー */
02138             m_CMenuDrawer.ResetContents();
02139             cMenuItems = ::GetMenuItemCount( hMenu );
02140             for( i = cMenuItems - 1; i >= 0; i-- ){
02141                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02142             }
02143             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILENEW         , "新規作成(&N)" );
02144             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILEOPEN        , "開く(&O)..." );
02145             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVE        , "上書き保存(&S)" );
02146             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVEAS_DIALOG   , "名前を付けて保存(&A)..." );
02147             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVEALL     , "すべて上書き保存(&Z)" );
02148
02149             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02150
02151             //  Feb. 28, 2003 genta 保存して閉じるを追加．閉じるメニューを近くに移動
02152             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILESAVECLOSE   , "保存して閉じる(&E)" );
02153             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WINCLOSE        , "閉じる(&C)" );   //Feb. 18, 2001 JEPRO 追加
02154             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILECLOSE       , "閉じて(無題) (&R)" );    //Oct. 17, 2000 jepro キャプションを「閉じる」から変更  //Feb. 18, 2001 JEPRO アクセスキー変更(C→B; Blankの意味)
02155             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILECLOSE_OPEN  , "閉じて開く(&L)..." );
02156
02157             // 「文字コードセット」ポップアップメニュー
02158             //  Aug. 19. 2003 genta アクセスキー表記を統一
02159             hMenuPopUp_2 = ::CreatePopupMenu(); // Jan. 29, 2002 genta
02160             //  Dec. 4, 2002 genta
02161             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN  , "開き直す(&W)" );
02162             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02163             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_SJIS, "SJISで開き直す(&S)" );        //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
02164             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_JIS, "JISで開き直す(&J)" );          //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
02165             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_EUC, "EUCで開き直す(&E)" );          //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
02166             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UNICODE, "Unicodeで開き直す(&U)" );  //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
02167             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UNICODEBE, "UnicodeBEで開き直す(&N)" );
02168             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UTF8, "UTF-8で開き直す(&8)" );       //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
02169             m_CMenuDrawer.MyAppendMenu( hMenuPopUp_2, MF_BYPOSITION | MF_STRING, F_FILE_REOPEN_UTF7, "UTF-7で開き直す(&7)" );       //Nov. 7, 2000 jepro キャプションに'で開き直す'を追加
02170             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp_2 , "開き直す(&W)" );//Oct. 11, 2000 JEPRO アクセスキー変更(M→H)
02171
02172             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02173
02174             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PRINT               , "印刷(&P)..." );
02175             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PRINT_PREVIEW       , "印刷プレビュー(&V)..." );
02176             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PRINT_PAGESETUP     , "ページ設定(&U)..." );
02177
02178             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02179
02180             // 「ファイル操作」ポップアップメニュー
02181             //hMenuPopUp = ::CreatePopupMenu(); // Jan. 29, 2002 genta
02182             //m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02183             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PROPERTY_FILE               , "ファイルのプロパティ(&T)" );     //Nov. 7, 2000 jepro キャプションに'ファイルの'を追加
02184             //m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "ファイル操作(&R)" );
02185             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_BROWSE                      , "ブラウズ(&B)" );
02186
02187             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02188
02189             /* MRUリストのファイルのリストをメニューにする */
02190             {
02191                 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
02192                 CMRU cMRU;
02193                 hMenuPopUp = cMRU.CreateMenu( &m_CMenuDrawer ); //  ファイルメニュー
02194                 if ( cMRU.Length() > 0 ){
02195                     //  アクティブ
02196                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "最近使ったファイル(&F)" );
02197                 }
02198                 else {
02199                     //  非アクティブ
02200                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp , "最近使ったファイル(&F)" );
02201                 }
02202             }
02203
02204             /* 最近使ったフォルダのメニューを作成 */
02205             {
02206                 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
02207                 CMRUFolder cMRUFolder;
02208                 hMenuPopUp = cMRUFolder.CreateMenu( &m_CMenuDrawer );
02209                 if (cMRUFolder.Length() > 0){
02210                     //  アクティブ
02211                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "最近使ったフォルダ(&D)" );
02212                 }
02213                 else {
02214                     //  非アクティブ
02215                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp , "最近使ったフォルダ(&D)" );
02216                 }
02217             }
02218             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02219
02220             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GROUPCLOSE, "グループを閉じる(&G)" );   // グループを閉じる // 2007.06.20 ryoji
02221             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALLEDITORS, "編集の全終了(&Q)" );   //Feb/ 19, 2001 JEPRO 追加  // 2006.10.21 ryoji 表示文字列変更  // 2007.02.13 ryoji →F_EXITALLEDITORS
02222             //  Jun. 9, 2001 genta ソフトウェア名改称
02223             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXITALL         , "サクラエディタの全終了(&X)" );   //Sept. 11, 2000 jepro キャプションを「アプリケーション終了」から変更   //Dec. 26, 2000 JEPRO F_に変更
02224             break;
02225
02226         case 1:
02227             /* 「編集」メニュー */
02228             m_CMenuDrawer.ResetContents();
02229             cMenuItems = ::GetMenuItemCount( hMenu );
02230             for( i = cMenuItems - 1; i >= 0; i-- ){
02231                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02232             }
02233             //  Aug. 19. 2003 genta アクセスキー表記を統一
02234             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_UNDO        , "元に戻す(&U)" );
02235             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_REDO        , "やり直し(&R)" );
02236
02237             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02238             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CUT         , "切り取り(&T)" );
02239             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPY        , "コピー(&C)" );
02240             //  Jul, 3, 2000 genta
02241 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPYLINESASPASSAGE, "全行引用コピー(&N)" );
02242             //  Sept. 14, 2000 JEPRO    キャプションに「記号付き」を追加、アクセスキー変更(N→.)
02243 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPYLINESASPASSAGE, "選択範囲内全行引用符付きコピー(&.)" );
02244 //          Sept. 30, 2000 JEPRO    引用符付きコピーのアイコンを作成したので上記メニューは重複を避けて「高度な操作」内におくだけにする
02245             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PASTE       , "貼り付け(&P)" );
02246             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DELETE      , "削除(&D)" );
02247             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SELECTALL   , "すべて選択(&A)" );
02248             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );                         /* メニューからの再変換対応 minfu 2002.04.09 */
02249             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_RECONVERT   , "再変換(&R)" );       /* メニューからの再変換対応 minfu 2002.04.09 */
02250             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02251             //  Aug. 19. 2003 genta アクセスキー表記を統一
02252             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPY_CRLF   , "CRLF改行でコピー(&L)" );             //Nov. 9, 2000 JEPRO 追加
02253             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COPY_ADDCRLF    , "折り返し位置に改行をつけてコピー(&H)" );
02254             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PASTEBOX    , "矩形貼り付け(&X)" );                 //Sept. 13, 2000 JEPRO 移動に伴いアクセスキー付与   //Oct. 22, 2000 JEPRO アクセスキー変更(P→X)
02255             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DELETE_BACK , "カーソル前を削除(&B)" );
02256             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02257
02258             // 「挿入」ポップアップメニュー
02259             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02260             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INS_DATE, "日付(&D)" );
02261             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INS_TIME, "時刻(&T)" );
02262             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CTRL_CODE_DIALOG, "コントロールコード(&C)..." );   // 2004.05.06 MIK ...追加
02263
02264             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "挿入(&I)" );
02265
02266             // 「高度な操作」ポップアップメニュー
02267             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02268             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordDeleteToStart  ,   "単語の左端まで削除(&L)" );         //Sept. 13, 2000 JEPRO アクセスキー付与
02269             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordDeleteToEnd    ,   "単語の右端まで削除(&R)" );         //Sept. 13, 2000 JEPRO アクセスキー付与
02270             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02271             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SELECTWORD         ,   "現在位置の単語選択(&W)" );
02272             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordCut            ,   "単語切り取り(&T)" );               //Sept. 13, 2000 JEPRO アクセスキー付与
02273             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WordDelete         ,   "単語削除(&D)" );                   //Sept. 13, 2000 JEPRO アクセスキー付与
02274             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02275             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineCutToStart     ,   "行頭まで切り取り(改行単位) (&U)" );//Sept. 13, 2000 JEPRO アクセスキー付与
02276             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineCutToEnd       ,   "行末まで切り取り(改行単位) (&K)" );//Sept. 13, 2000 JEPRO アクセスキー付与
02277             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02278             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineDeleteToStart  ,   "行頭まで削除(改行単位) (&H)" );    //Sept. 13, 2000 JEPRO アクセスキー付与
02279             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LineDeleteToEnd    ,   "行末まで削除(改行単位) (&E)" );    //Sept. 13, 2000 JEPRO アクセスキー付与
02280             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02281             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CUT_LINE           ,   "行切り取り(折り返し単位) (&X)" );  //Jan. 16, 2001 JEPRO 行(頭・末)関係の順序を入れ替えた
02282             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DELETE_LINE        ,   "行削除(折り返し単位) (&Y)" );
02283             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02284             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DUPLICATELINE      ,   "行の二重化(折り返し単位) (&2)" );
02285             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02286             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INDENT_TAB         ,   "TABインデント(&A)" );              //Oct. 22, 2000 JEPRO 追加
02287             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UNINDENT_TAB       ,   "逆TABインデント(&B)" );            //Oct. 22, 2000 JEPRO 追加
02288             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_INDENT_SPACE       ,   "SPACEインデント(&S)" );            //Oct. 22, 2000 JEPRO 追加
02289             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UNINDENT_SPACE     ,   "逆SPACEインデント(&P)" );          //Oct. 22, 2000 JEPRO 追加
02290             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02291             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYLINES              , "選択範囲内全行コピー(&@)" );     //Sept. 14, 2000 JEPRO アクセスキー付与
02292             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYLINESASPASSAGE     , "選択範囲内全行引用符付きコピー(&.)" );//Sept. 13, 2000 JEPRO キャプションから「記号付き」を追加、アクセスキー付与
02293             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYLINESWITHLINENUMBER, "選択範囲内全行行番号付きコピー(&:)" );//Sept. 13, 2000 JEPRO アクセスキー付与
02294             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02295             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYFNAME          ,   "このファイル名をコピー(&-)" ); // 2002/2/3 aroka
02296             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYPATH           ,   "このファイルのパス名をコピー(&\\)" );
02297             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_COPYTAG            ,   "このファイルのパス名とカーソル位置をコピー(&^)" );
02298 //          m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, IDM_TEST_CREATEKEYBINDLIST   , "キー割り当て一覧をコピー(&Q)" ); //Sept. 15, 2000 JEPRO キャプションの「...リスト」、アクセスキー変更(K→Q)
02299 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WORDSREFERENCE, "単語リファレンス(&W)" );
02300
02301             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "高度な操作(&V)" );
02302
02303         //From Here Feb. 19, 2001 JEPRO [移動(M)], [選択(R)]メニューを[編集]のサブメニューとして移動
02304             // 「移動」ポップアップメニュー
02305             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02306             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UP2        , "カーソル上移動(２行ごと) (&Q)" );
02307             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DOWN2      , "カーソル下移動(２行ごと) (&K)" );
02308             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDLEFT   , "単語の左端に移動(&L)" );
02309             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDRIGHT  , "単語の右端に移動(&R)" );
02310             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOPREVPARAGRAPH    , "前の段落に移動(&A)" );
02311             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GONEXTPARAGRAPH    , "次の段落に移動(&Z)" );
02312             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINETOP  , "行頭に移動(折り返し単位) (&H)" );
02313             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINEEND  , "行末に移動(折り返し単位) (&E)" );
02314             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02315             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageUp    , "１ページアップ(&U)" );
02316             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageDown  , "１ページダウン(&D)" );
02317             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILETOP  , "ファイルの先頭に移動(&T)" );
02318             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILEEND  , "ファイルの最後に移動(&B)" );
02319             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02320             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CURLINECENTER, "カーソル行をウィンドウ中央へ(&C)" );
02321             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02322             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMP_DIALOG, "指定行へジャンプ(&J)..." );
02323             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMP_SRCHSTARTPOS, "検索開始位置へ戻る(&I)" ); // 検索開始位置へ戻る 02/06/26 ai
02324             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02325             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMPHIST_PREV  , "移動履歴: 前へ(&P)" );
02326             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMPHIST_NEXT  , "移動履歴: 次へ(&N)" );
02327             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_JUMPHIST_SET   , "現在位置を移動履歴に登録(&S)" );
02328
02329             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "移動(&O)" );
02330
02331             // 「選択」ポップアップメニュー
02332             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02333             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SELECTWORD     , "現在位置の単語選択(&W)" );
02334             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SELECTALL      , "すべて選択(&A)" );
02335             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BEGIN_SEL      , "範囲選択開始(&S)" );
02336             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02337             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UP2_SEL        , "(選択)カーソル上移動(２行ごと) (&Q)" );
02338             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_DOWN2_SEL      , "(選択)カーソル下移動(２行ごと) (&K)" );
02339             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDLEFT_SEL   , "(選択)単語の左端に移動(&L)" );
02340             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_WORDRIGHT_SEL  , "(選択)単語の右端に移動(&R)" );
02341             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOPREVPARAGRAPH_SEL    , "(選択)前の段落に移動(&2)" );
02342             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GONEXTPARAGRAPH_SEL    , "(選択)次の段落に移動(&8)" );
02343             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINETOP_SEL  , "(選択)行頭に移動(折り返し単位) (&H)" );
02344             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOLINEEND_SEL  , "(選択)行末に移動(折り返し単位) (&T)" );
02345             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02346             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageUp_Sel    , "(選択)１ページアップ(&U)" );
02347             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_1PageDown_Sel  , "(選択)１ページダウン(&D)" );
02348             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILETOP_SEL  , "(選択)ファイルの先頭に移動(&1)" );
02349             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GOFILEEND_SEL  , "(選択)ファイルの最後に移動(&9)" );
02350
02351             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02352             //  Mar. 11, 2004 genta 矩形選択メニューを選択メニューに統合
02353             //  今のところは1つしかないので
02354             // 「矩形選択」ポップアップメニュー
02355             // hMenuPopUp = ::CreatePopupMenu();    // Jan. 29, 2002 genta
02356             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BEGIN_BOX  , "矩形範囲選択開始(&B)" );
02362 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_UP2_BOX         , "(矩選)カーソル上移動(２行ごと) (&Q)" );
02363 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DOWN2_BOX       , "(矩選)カーソル下移動(２行ごと) (&K)" );
02364 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WORDLEFT_BOX    , "(矩選)単語の左端に移動(&L)" );
02365 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WORDRIGHT_BOX   , "(矩選)単語の右端に移動(&R)" );
02366 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOLINETOP_BOX   , "(矩選)行頭に移動(折り返し単位) (&H)" x);
02367 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOLINEEND_BOX   , "(矩選)行末に移動(折り返し単位) (&E)" );
02368 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02371 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_1PageUp_Box     , "(矩選)１ページアップ(&U)" );
02372 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_1PageDown_Box   , "(矩選)１ページダウン(&D)" );
02373 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOFILETOP_BOX   , "(矩選)ファイルの先頭に移動(&T)" );
02374 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GOFILEEND_BOX   , "(矩選)ファイルの最後に移動(&B)" );
02375
02376             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "選択(&S)" );
02377
02378 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "矩形選択(&E)" );
02379
02380             // 「整形」ポップアップメニュー
02381             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02382             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_LTRIM, "左(先頭)の空白を削除(&L)" );   // 2001.12.06 hor
02383             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_RTRIM, "右(末尾)の空白を削除(&R)" );   // 2001.12.06 hor
02384             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02385             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SORT_ASC, "選択行の昇順ソート(&A)" );  // 2001.12.06 hor
02386             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_SORT_DESC, "選択行の降順ソート(&D)" ); // 2001.12.06 hor
02387             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02388             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_MERGE, "連続した重複行の削除(uniq)(&U)" );         // 2001.12.06 hor
02389             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "整形(&K)" );
02390
02391             break;
02392         //Feb. 19, 2001 JEPRO [移動][移動], [選択]を[編集]配下に移したので削除
02393
02394 //      case 4://case 2: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02395         case 2://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02396             m_CMenuDrawer.ResetContents();
02397             /* 「変換」メニュー */
02398             cMenuItems = ::GetMenuItemCount( hMenu );
02399             for( i = cMenuItems - 1; i >= 0; i-- ){
02400                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02401             }
02402             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOLOWER             , "小文字(&L)" );           //Sept. 10, 2000 jepro キャプションを英語から変更
02403             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOUPPER             , "大文字(&U)" );           //Sept. 10, 2000 jepro キャプションを英語から変更
02404             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02405 //  From Here Sept. 18, 2000 JEPRO
02406 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANKAKU           , "全角→半角" );
02407 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUKATA       , "半角→全角カタカナ" );
02408 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUHIRA       , "半角→全角ひらがな" );
02409             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANKAKU           , "全角→半角(&F)" );                   //Sept. 13, 2000 JEPRO アクセスキー付与
02410     // From Here 2007.01.24 maru メニューの並び変更とアクセスキー追加
02411             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUKATA       , "半角＋全ひら→全角・カタカナ(&Z)" ); //Sept. 13, 2000 JEPRO キャプション変更 & アクセスキー付与 //Oct. 11, 2000 JEPRO キャプション変更
02412             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENKAKUHIRA       , "半角＋全カタ→全角・ひらがな(&N)" ); //Sept. 13, 2000 JEPRO キャプション変更 & アクセスキー付与 //Oct. 11, 2000 JEPRO キャプション変更
02413             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANEI             , "全角英数→半角英数(&A)" );
02414             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOZENEI             , "半角英数→全角英数(&M)" );               //July. 29, 2001 Misaka アクセスキー付与
02415             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOHANKATA           , "全角カタカナ→半角カタカナ(&J)" );       //Aug. 29, 2002 ai
02416     // To Here 2007.01.24 maru メニューの並び変更とアクセスキー追加
02417 //  To Here Sept. 18, 2000
02418             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HANKATATOZENKAKUKATA, "半角カタカナ→全角カタカナ(&K)" );   //Sept. 13, 2000 JEPRO アクセスキー付与
02419             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HANKATATOZENKAKUHIRA, "半角カタカナ→全角ひらがな(&H)" );   //Sept. 13, 2000 JEPRO アクセスキー付与
02420             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02421             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TABTOSPACE          , "TAB→空白(&S)" );    //Feb. 19, 2001 JEPRO 下から移動した
02422             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPACETOTAB          , "空白→TAB(&T)" );    //#### Stonee, 2001/05/27
02423             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02424
02425             //「文字コード変換」ポップアップ
02426             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02427             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_AUTO2SJIS      , "自動判別→SJISコード変換(&A)" );
02428             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_EMAIL          , "E-Mail(JIS→SJIS)コード変換(&M)" );//Sept. 11, 2000 JEPRO キャプションに「E-Mail」を追加しアクセスキー変更(V→M:Mail)
02429             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_EUC2SJIS       , "EUC→SJISコード変換(&W)" );      //Sept. 11, 2000 JEPRO アクセスキー変更(E→W:Work Station)
02430             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UNICODE2SJIS   , "Unicode→SJISコード変換(&U)" );  //Sept. 11, 2000 JEPRO アクセスキー変更候補はI:shIft
02431             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UNICODEBE2SJIS , "UnicodeBE→SJISコード変換(&N)" );
02432             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UTF82SJIS      , "UTF-8→SJISコード変換(&T)" );    //Sept. 11, 2000 JEPRO アクセスキー付与(T:uTF/shifT)    //Oct. 6, 2000 簡潔表示にした
02433             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_UTF72SJIS      , "UTF-7→SJISコード変換(&F)" );    //Sept. 11, 2000 JEPRO アクセスキー付与(F:utF/shiFt)    //Oct. 6, 2000 簡潔表示にした
02434             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02435             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2JIS       , "SJIS→JISコード変換(&J)" );      //Sept. 11, 2000 JEPRO アクセスキー付与
02436             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2EUC       , "SJIS→EUCコード変換(&E)" );      //Sept. 11, 2000 JEPRO アクセスキー付与
02437 //          m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2UNICODE   , "SJIS→&Unicodeコード変換" );     //Sept. 11, 2000 JEPRO アクセスキー付与
02438             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2UTF8      , "SJIS→UTF-8コード変換(&8)" );    //Sept. 11, 2000 JEPRO アクセスキー付与 //Oct. 6, 2000 簡潔表示にした
02439             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CODECNV_SJIS2UTF7      , "SJIS→UTF-7コード変換(&7)" );    //Sept. 11, 2000 JEPRO アクセスキー付与 //Oct. 6, 2000 簡潔表示にした
02440             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02441             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BASE64DECODE           , "Base64デコードして保存(&B)" );   //Oct. 6, 2000 JEPRO アクセスキー変更(6→B)
02442             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_UUDECODE               , "uudecodeして保存(&D)" );         //Sept. 11, 2000 JEPRO アクセスキー変更(U→D)
02443
02444             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, "文字コード変換(&C)" );
02445
02446             break;
02447
02448 //      case 5://case 3: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02449         case 3://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02450             m_CMenuDrawer.ResetContents();
02451             /* 「検索」メニュー */
02452             cMenuItems = ::GetMenuItemCount( hMenu );
02453             for( i = cMenuItems - 1; i >= 0; i-- ){
02454                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02455             }
02456             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_DIALOG   , "検索(&F)..." );
02457             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_NEXT     , "次を検索(&N)" );             //Sept. 11, 2000 JEPRO "次"を"前"の前に移動
02458             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_PREV     , "前を検索(&P)" );
02459             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_REPLACE_DIALOG  , "置換(&R)..." );              //Oct. 7, 2000 JEPRO 下のセクションからここに移動
02460             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SEARCH_CLEARMARK, "検索マークの切替え(&C)" );   // "検索マークのクリア(&C)" );
02461             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_JUMP_SRCHSTARTPOS, "検索開始位置へ戻る(&I)" );  // 検索開始位置へ戻る 02/06/26 ai
02462
02463             // Jan. 10, 2005 genta インクリメンタルサーチ
02464             hMenuPopUp = ::CreatePopupMenu();
02465             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_NEXT, "前方インクリメンタルサーチ(&F)" );
02466             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_PREV, "後方インクリメンタルサーチ(&B)" );
02467             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_REGEXP_NEXT, "正規表現前方インクリメンタルサーチ(&R)" );
02468             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_REGEXP_PREV, "正規表現後方インクリメンタルサーチ(&X)" );
02469             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_MIGEMO_NEXT, "MIGEMO前方インクリメンタルサーチ(&M)" );
02470             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_ISEARCH_MIGEMO_PREV, "MIGEMO後方インクリメンタルサーチ(&N)" );
02471             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, "インクリメンタルサーチ(&S)" );
02472
02473             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02474 // From Here 2001.12.03 hor
02475             // Jan. 10, 2005 genta 長すぎるのでブックマークをサブメニューに
02476             hMenuPopUp = ::CreatePopupMenu();
02477             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_SET   , "ブックマーク設定・解除(&S)" );
02478             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_NEXT  , "次のブックマークへ(&A)" );
02479             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_PREV  , "前のブックマークへ(&Z)" );
02480             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_RESET , "ブックマークの全解除(&X)" );
02481             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BOOKMARK_VIEW  , "ブックマークの一覧(&V)" );
02482             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, "ブックマーク(&M)" );
02483 // To Here 2001.12.03 hor
02484             //  Aug. 19. 2003 genta アクセスキー表記を統一
02485             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_GREP_DIALOG     , "Grep(&G)..." );                  //Oct. 7, 2000 JEPRO 下からここに移動
02486             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_JUMP_DIALOG     , "指定行へジャンプ(&J)..." );  //Sept. 11, 2000 jepro キャプションに「 ジャンプ」を追加
02487             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OUTLINE         , "アウトライン解析(&L)..." );
02488             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGJUMP         , "タグジャンプ(&T)" );
02489             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGJUMPBACK     , "タグジャンプバック(&B)" );
02490             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGS_MAKE       , "タグファイルの作成..." );    //@@@ 2003.04.13 MIK // 2004.05.06 MIK ...追加
02491             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIRECT_TAGJUMP  , "ダイレクトタグジャンプ" );   //@@@ 2003.04.13 MIK
02492             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TAGJUMP_KEYWORD , "キーワードを指定してタグジャンプ" ); //@@ 2005.03.31 MIK
02493             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OPEN_HfromtoC               , "同名のC/C++ヘッダ(ソース)を開く(&C)" );  //Feb. 7, 2001 JEPRO 追加
02494             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02495             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_COMPARE         , "ファイル内容比較(&@)..." );
02496             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_DIALOG     , "DIFF差分表示(&D)..." );  //@@@ 2002.05.25 MIK
02497             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_NEXT       , "次の差分へ" );       //@@@ 2002.05.25 MIK
02498             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_PREV       , "前の差分へ" );       //@@@ 2002.05.25 MIK
02499             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_DIFF_RESET      , "差分表示の全解除" );     //@@@ 2002.05.25 MIK
02500 //  From Here Sept. 1, 2000 JEPRO   対括弧の検索をメニューに追加
02501             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02502             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_BRACKETPAIR     , "対括弧の検索(&[)" );
02503 //  To Here Sept. 1, 2000
02504
02505             break;
02506
02507 //      case 6://case 4: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02508         case 4://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02509             m_CMenuDrawer.ResetContents();
02510             /* 「オプション」メニュー */
02511             cMenuItems = ::GetMenuItemCount( hMenu );
02512             for( i = cMenuItems - 1; i >= 0; i-- ){
02513                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02514             }
02515
02516             if( !m_pShareData->m_bRecordingKeyMacro ){  /* キーボードマクロの記録中 */
02517                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_RECKEYMACRO , "キーマクロの記録開始(&R)" );
02518                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SAVEKEYMACRO, "キーマクロの保存(&M)" );
02519                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_LOADKEYMACRO, "キーマクロの読み込み(&A)" );
02520                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECKEYMACRO, "キーマクロの実行(&D)" );
02521             }else{
02522                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_RECKEYMACRO , "キーマクロの記録終了(&R)" );
02523                 ::CheckMenuItem( hMenu, F_RECKEYMACRO, MF_BYCOMMAND | MF_CHECKED );
02524                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SAVEKEYMACRO, "キーマクロの記録終了&&保存(&M)" );
02525                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_LOADKEYMACRO, "キーマクロの記録終了&&読み込み(&A)" );
02526                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECKEYMACRO, "キーマクロの記録終了&&実行(&D)" );
02527             }
02528
02529             //  From Here Sep. 14, 2001 genta
02530             //「登録済みマクロ」ポップアップ
02531             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02532
02533             for( i = 0; i < MAX_CUSTMACRO; ++i ){
02534                 MacroRec *mp = &m_pShareData->m_MacroTable[i];
02535                 if( mp->IsEnabled() ){
02536                     if(  mp->m_szName[0] ){
02537                         m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_USERMACRO_0 + i, mp->m_szName );
02538                     }
02539                     else {
02540                         m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_USERMACRO_0 + i, mp->m_szFile );
02541                     }
02542                 }
02543             }
02544             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "登録済みマクロ(&B)" );
02545             //  To Here Sep. 14, 2001 genta
02546
02547             if( m_pShareData->m_bRecordingKeyMacro ){   /* キーボードマクロの記録中 */
02548                 ::CheckMenuItem( hMenu, F_RECKEYMACRO, MF_BYCOMMAND | MF_CHECKED );
02549             }
02550             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02551
02552             //From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
02553 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECCMMAND, "外部コマンド実行(&X)" );
02554             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXECCOMMAND_DIALOG, "外部コマンド実行(&X)..." );    //Mar. 10, 2001 JEPRO 機能しないのでメニューから隠した  //Mar.21, 2001 JEPRO 標準出力しないで復活 // 2004.05.06 MIK ...追加
02555             //To Here Sept. 20, 2000
02556
02557             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_ACTIVATE_SQLPLUS            , "SQL*Plusをアクティブ表示(&P)" ); //Sept. 11, 2000 JEPRO アクセスキー付与 説明の「アクティブ化」を「アクティブ表示」に統一
02558             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PLSQL_COMPILE_ON_SQLPLUS    , "SQL*Plusで実行(&S)" );           //Sept. 11, 2000 JEPRO アクセスキー付与
02559
02560             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02561             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HOKAN           , "入力補完(&/)" );
02562             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02563
02564             //「カスタムメニュー」ポップアップ
02565             hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
02566             //  右クリックメニュー
02567             if( m_pShareData->m_Common.m_nCustMenuItemNumArr[0] > 0 ){
02568                  m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING,
02569                     F_MENU_RBUTTON, m_pShareData->m_Common.m_szCustMenuNameArr[0] );
02570             }
02571             //  カスタムメニュー
02572             for( i = 1; i < MAX_CUSTOM_MENU; ++i ){
02573                 if( m_pShareData->m_Common.m_nCustMenuItemNumArr[i] > 0 ){
02574                      m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING,
02575                         F_CUSTMENU_BASE + i, m_pShareData->m_Common.m_szCustMenuNameArr[i] );
02576                 }
02577             }
02578
02579             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "カスタムメニュー(&U)" );
02580
02581 //      m_pShareData->m_hwndRecordingKeyMacro = NULL;   /* キーボードマクロを記録中のウィンドウ */
02582
02583             break;
02584
02585         case 5://Feb. 28, 2004 genta 「設定」メニュー
02586             //  設定項目を「ツール」から独立させた
02587             m_CMenuDrawer.ResetContents();
02588             /* 「ウィンドウ」メニュー */
02589             cMenuItems = ::GetMenuItemCount( hMenu );
02590             for( i = cMenuItems - 1; i >= 0; i-- ){
02591                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02592             }
02593
02594 //  From Here Sept. 17, 2000 JEPRO
02595 //  やはりWin標準に合わせてチェックマークだけで表示／非表示を判断するようにした方がいいので変更
02596             if ( FALSE == m_pShareData->m_Common.m_bMenuIcon ){
02597                 pszLabel = "ツールバーを表示(&T)";              //これのみ表示
02598                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTOOLBAR, pszLabel );    //これのみ
02599                 pszLabel = "ファンクションキーを表示(&K)";      //これのみ表示
02600                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWFUNCKEY, pszLabel );    //これのみ
02601                 pszLabel = "タブバーを表示";        //これのみ表示  //@@@ 2003.06.10 MIK    // 2007.02.13 ryoji 「タブ」→「タブバー」
02602                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTAB, pszLabel );    //これのみ  //@@@ 2003.06.10 MIK
02603                 pszLabel = "ステータスバーを表示(&S)";          //これのみ表示
02604 //  To Here Sept.17, 2000 JEPRO
02605 //  From Here Oct. 28, 2000 JEPRO
02606 //  3つボタンのアイコンができたことに伴い表示／非表示のメッセージを変えるように再び変更
02607             }else{
02608                 if( m_hwndToolBar == NULL ){
02609                     pszLabel = "ツールバーを表示(&T)";          //これのみ表示
02610                 }else{
02611                     pszLabel = "表示中のツールバーを隠す(&T)";          //Sept. 9, 2000 jepro キャプションに「表示中の」を追加
02612                 }
02613                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTOOLBAR, pszLabel );    //これのみ
02614                 if( NULL == m_CFuncKeyWnd.m_hWnd ){
02615                     pszLabel = "ファンクションキーを表示(&K)";  //これのみ表示
02616                 }else{
02617                     pszLabel = "表示中のファンクションキーを隠す(&K)";  //Sept. 9, 2000 jepro キャプションに「表示中の」を追加
02618                 }
02619                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWFUNCKEY, pszLabel );    //これのみ
02620                 //@@@ 2003.06.10 MIK
02621                 if( NULL == m_cTabWnd.m_hWnd ){
02622                     pszLabel = "タブバーを表示(&M)";    //これのみ表示  // 2007.02.13 ryoji 「タブ」→「タブバー」
02623                 }else{
02624                     pszLabel = "表示中のタブバーを隠す(&M)";    // 2007.02.13 ryoji 「タブ」→「タブバー」
02625                 }
02626                 m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWTAB, pszLabel );    //これのみ
02627                 if( m_hwndStatusBar == NULL ){
02628                     pszLabel = "ステータスバーを表示(&S)";      //これのみ表示
02629                 }else{
02630                     pszLabel = "表示中のステータスバーを隠す(&S)";      //Sept. 9, 2000 jepro キャプションに「表示中の」を追加
02631                 }
02632             }
02633 //  To Here Oct. 28, 2000
02634
02635             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SHOWSTATUSBAR, pszLabel );
02636
02637             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02638             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TYPE_LIST       , "タイプ別設定一覧(&L)..." );  //Sept. 13, 2000 JEPRO 設定より上に移動
02639             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OPTION_TYPE     , "タイプ別設定(&Y)..." );      //Sept. 13, 2000 JEPRO アクセスキー変更(S→Y)
02640             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_OPTION          , "共通設定(&C)..." );
02641             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FONT            , "フォント設定(&F)..." );      //Sept. 17, 2000 jepro キャプションに「設定」を追加
02642             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FAVORITE        , "履歴の管理(&O)..." );    //履歴の管理    //@@@ 2003.04.08 MIK
02643             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02644 //@@@ 2002.01.14 YAZAKI 折り返さないコマンド追加
02645 // 20051022 aroka タイプ別設定値に戻すコマンド追加
02646             //  Aug. 14, 2005 genta 折り返し幅をLayoutMgrから取得するように
02647             //  Jan.  8, 2006 genta 共通関数化
02648             {
02649                 int width;
02650                 CEditView::TOGGLE_WRAP_ACTION mode = m_cEditDoc.ActiveView().GetWrapMode( width );
02651                 if( mode == CEditView::TGWRAP_NONE ){
02652                     pszLabel = "幅の変更は出来ません(&W)";
02653                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_GRAYED, F_WRAPWINDOWWIDTH , pszLabel );
02654                 }
02655                 else {
02656                     if( mode == CEditView::TGWRAP_FULL ){
02657                         pszLabel = "折り返さない(&W)";
02658                     }
02659                     else if( mode == CEditView::TGWRAP_WINDOW ){
02660                         pszLabel = "現在のウィンドウ幅で折り返し(&W)";
02661                     }
02662                     else {  // TGWRAP_PROP
02663                         pszLabel = "タイプ別設定の幅で折り返し(&W)";
02664                     }
02665                     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WRAPWINDOWWIDTH , pszLabel );
02666                 }
02667             }
02668             //Sept. 13, 2000 JEPRO アクセスキー付与 //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
02669 //          m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WRAPWINDOWWIDTH , "現在のウィンドウ幅で折り返し(&W)" ); //Sept. 13, 2000 JEPRO アクセスキー付与 //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
02670             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02671             // 2003.06.08 Moca 追加
02672             // 「モード変更」ポップアップメニュー
02673             // Feb. 28, 2004 genta 編集メニューから移動
02674             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CHGMOD_INS  , "挿入／上書きモード(&I)" );   //Nov. 9, 2000 JEPRO アクセスキー付与
02675             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_READONLY                    , "読み取り専用(&R)" );
02676             if ( FALSE == m_pShareData->m_Common.m_bMenuIcon ){
02677                 pszLabel = "キーワードヘルプ自動表示(&H)";
02678             }
02679             else if( IsFuncChecked( &m_cEditDoc, m_pShareData, F_TOGGLE_KEY_SEARCH ) ){
02680                 pszLabel = "キーワードヘルプ自動表示しない(&H)";
02681             }
02682             else {
02683                 pszLabel = "キーワードヘルプ自動表示する(&H)";
02684             }
02685             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOGGLE_KEY_SEARCH, pszLabel );
02686             hMenuPopUp = ::CreatePopupMenu();
02687             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CRLF, "入力改行コード指定(&CRLF)" ); // 入力改行コード指定(CRLF)
02688             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_LF, "入力改行コード指定(&LF)" ); // 入力改行コード指定(LF)
02689             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_CHGMOD_EOL_CR, "入力改行コード指定(C&R)" ); // 入力改行コード指定(CR)
02690             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp , "入力改行コード指定(&E)" );
02691
02692
02693             break;
02694
02695 //      case 7://case 5: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02696 //      case 5://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02697         case 6://Feb. 28, 2004 genta 「設定」の新設のため番号をずらした
02698             m_CMenuDrawer.ResetContents();
02699             /* 「ウィンドウ」メニュー */
02700             cMenuItems = ::GetMenuItemCount( hMenu );
02701             for( i = cMenuItems - 1; i >= 0; i-- ){
02702                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02703             }
02704
02705             if( 1 == m_cEditDoc.m_cSplitterWnd.GetAllSplitRows() ){ // 2002/2/8 aroka メソッドを通じてアクセス
02706                 pszLabel = "上下に分割(&-)";    //Oct. 7, 2000 JEPRO アクセスキーを変更(T→-)
02707             }else{
02708                 pszLabel = "上下分割の解除(&-)";
02709             }
02710             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPLIT_V , pszLabel );
02711
02712             if( 1 == m_cEditDoc.m_cSplitterWnd.GetAllSplitCols() ){ // 2002/2/8 aroka メソッドを通じてアクセス
02713                 pszLabel = "左右に分割(&I)";    //Oct. 7, 2000 JEPRO アクセスキーを変更(Y→I)
02714             }else{
02715                 pszLabel = "左右分割の解除(&I)";
02716             }
02717             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPLIT_H , pszLabel );
02718 //  From Here Sept. 17, 2000 JEPRO  縦横分割の場合も状態によってメニューメッセージが変わるように変更
02719             if( (1 < m_cEditDoc.m_cSplitterWnd.GetAllSplitRows()) && (1 < m_cEditDoc.m_cSplitterWnd.GetAllSplitCols()) ){ // 2002/2/8 aroka メソッドを通じてアクセス
02720                 pszLabel = "縦横分割の解除(&S)";    //Feb. 18, 2001 JEPRO アクセスキー変更(Q→S)
02721             }else{
02722                 pszLabel = "縦横に分割(&S)";    //Sept. 17, 2000 jepro 説明に「に」を追加   //Oct. 7, 2000 JEPRO アクセスキーを変更(S→Q)   //Feb. 18, 2001 JEPRO アクセスキーを元に戻した(Q→S)
02723             }
02724             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_SPLIT_VH , pszLabel );
02725 //  To Here Sept. 17, 2000
02726             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL ); /* セパレータ */
02727             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WINCLOSE        , "閉じる(&C)" );           //Feb. 18, 2001 JEPRO アクセスキー変更(O→C)
02728             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WIN_CLOSEALL    , "すべて閉じる(&Q)" );     //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)    //Feb. 18, 2001 JEPRO アクセスキー変更(L→Q)
02729             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02730             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_NEXTWINDOW      , "次のウィンドウ(&N)" );   //Sept. 11, 2000 JEPRO "次"を"前"の前に移動
02731             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_PREVWINDOW      , "前のウィンドウ(&P)" );
02732             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WINLIST         , "ウィンドウ一覧(&W)..." );        // 2006.03.23 fon
02733             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL ); /* セパレータ */
02734             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CASCADE         , "重ねて表示(&E)" );       //Oct. 7, 2000 JEPRO アクセスキー変更(C→E)
02735             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TILE_V          , "上下に並べて表示(&H)" ); //Sept. 13, 2000 JEPRO 分割に合わせてメニューの左右と上下を入れ替えた //Oct. 7, 2000 JEPRO アクセスキー変更(V→H)
02736             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TILE_H          , "左右に並べて表示(&T)" ); //Oct. 7, 2000 JEPRO アクセスキー変更(H→T)
02737             if( (DWORD)::GetWindowLongPtr( m_hWnd, GWL_EXSTYLE ) & WS_EX_TOPMOST ){
02738                 pszLabel = "常に手前を解除(&F)";
02739             }else{
02740                 pszLabel = "常に手前に表示(&F)";
02741             }
02742             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_TOPMOST, pszLabel ); //2004.09.21 Moca  // 2007.06.20 ryoji アクセスキー追加
02743
02744             hMenuPopUp = ::CreatePopupMenu();   // 2007.06.20 ryoji
02745             if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin ){
02746                 pszLabel = "グループ化を解除(&B)";
02747             }else{
02748                 pszLabel = "グループ化(&B)";
02749             }
02750             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_BIND_WINDOW, pszLabel );       //2004.07.14 Kazika 新規追加    // 2007.02.13 ryoji 「結合して表示」→「ひとつにまとめて表示」  // 2007.06.20 ryoji 「グループ化」
02751             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );    /* セパレータ */
02752             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_GROUPCLOSE     , "グループを閉じる(&G)" ); // 2007.06.20 ryoji
02753             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );    /* セパレータ */
02754             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_NEXTGROUP      , "次のグループ(&N)" );         // 2007.06.20 ryoji
02755             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_PREVGROUP      , "前のグループ(&P)" );         // 2007.06.20 ryoji
02756             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_MOVERIGHT  , "タブを右に移動(&R)" );       // 2007.06.20 ryoji
02757             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_MOVELEFT   , "タブを左に移動(&L)" );       // 2007.06.20 ryoji
02758             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_SEPARATE   , "新規グループ(&E)" );         // 2007.06.20 ryoji
02759             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_JOINTNEXT  , "次のグループに移動(&X)" );   // 2007.06.20 ryoji
02760             m_CMenuDrawer.MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, F_TAB_JOINTPREV  , "前のグループに移動(&V)" );   // 2007.06.20 ryoji
02761             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, "タブの操作(&B)" );      // 2007.06.20 ryoji
02762
02763             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL ); /* セパレータ */
02764             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MAXIMIZE_V      , "縦方向に最大化(&X)" );   //Sept. 13, 2000 JEPRO アクセスキー付与
02765             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MAXIMIZE_H      , "横方向に最大化(&Y)" );   //2001.02.10 by MIK
02766             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MINIMIZE_ALL    , "すべて最小化(&M)" );     //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
02767             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL ); /* セパレータ */                //Oct. 22, 2000 JEPRO 下の「再描画」復活に伴いセパレータを追加
02768             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_REDRAW          , "再描画(&R)" );           //Oct. 22, 2000 JEPRO コメントアウトされていたのを復活させた
02769             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL ); /* セパレータ */
02770             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_WIN_OUTPUT      , "アウトプット(&U)" );     //Sept. 13, 2000 JEPRO アクセスキー変更(O→U)
02771 // 2006.03.23 fon CHG-start>>
02772             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );     /* セパレータ */
02773             EditNode*   pEditNodeArr;
02774             nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
02775             WinListMenu(hMenu, pEditNodeArr, nRowNum, false);
02776             delete [] pEditNodeArr;
02777 //<< 2006.03.23 fon CHG-end
02778             break;
02779
02780 //      case 8://case 6: (Oct. 22, 2000 JEPRO [移動]と[選択]を新設したため番号を2つシフトした)
02781 //      case 6://Feb. 19, 2001 JEPRO [移動]と[選択]を[編集]配下に移動したため番号を元に戻した
02782         case 7://Feb. 28, 2004 genta 「設定」の新設のため番号をずらした
02783             m_CMenuDrawer.ResetContents();
02784             /* 「ヘルプ」メニュー */
02785             cMenuItems = ::GetMenuItemCount( hMenu );
02786             for( i = cMenuItems - 1; i >= 0; i-- ){
02787                 bRet = ::DeleteMenu( hMenu, i, MF_BYPOSITION );
02788             }
02789 //Sept. 15, 2000→Nov. 25, 2000 JEPRO //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
02790             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_CONTENTS , "目次(&O)" );               //Sept. 7, 2000 jepro キャプションを「ヘルプ目次」から変更  Oct. 13, 2000 JEPRO アクセスキーを「トレイ右ボタン」のために変更(C→O)
02791             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_HELP_SEARCH ,    "キーワード検索(&S)..." ); //Sept. 7, 2000 jepro キャプションを「ヘルプトピックの検索」から変更 //Nov. 25, 2000 jepro「トピックの」→「キーワード」に変更 // 2004.05.06 MIK ...追加
02792             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02793             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_MENU_ALLFUNC    , "コマンド一覧(&M)" );     //Oct. 13, 2000 JEPRO アクセスキーを「トレイ右ボタン」のために変更(L→M)
02794 //Sept. 16, 2000 JEPRO ショートカットキーがうまく働かないので次行は殺して元に戻してある     //Dec. 25, 2000 復活
02795             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_CREATEKEYBINDLIST   , "キー割り当て一覧をコピー(&Q)" );         //Sept. 15, 2000 JEPRO キャプションの「...リスト」、アクセスキー変更(K→Q) IDM_TEST→Fに変更            m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02796             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXTHELP1        , "外部ヘルプ１(&E)" );     //Sept. 7, 2000 JEPRO このメニューの順番をトップから下に移動
02797             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_EXTHTMLHELP     , "外部HTMLヘルプ(&H)" );   //Sept. 7, 2000 JEPRO このメニューの順番を２番目から下に移動
02798             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
02799             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_ABOUT           , "バージョン情報(&A)" );   //Dec. 25, 2000 JEPRO F_に変更
02800             break;
02801         }
02802     }
02803
02804 end_of_func_IsEnable:;
02805 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
02806     if (m_pPrintPreview)    return; //  印刷プレビューモードなら排除。（おそらく排除しなくてもいいと思うんだけど、念のため）
02807
02808     /* 機能が利用可能かどうか、チェック状態かどうかを一括チェック */
02809     cMenuItems = ::GetMenuItemCount( hMenu );
02810     for (nPos = 0; nPos < cMenuItems; nPos++) {
02811         id = ::GetMenuItemID(hMenu, nPos);
02812         /* 機能が利用可能か調べる */
02813         //  Jan.  8, 2006 genta 機能が有効な場合には明示的に再設定しないようにする．
02814         if( ! IsFuncEnable( &m_cEditDoc, m_pShareData, id ) ){
02815             fuFlags = MF_BYCOMMAND | MF_GRAYED;
02816             ::EnableMenuItem(hMenu, id, fuFlags);
02817         }
02818
02819         /* 機能がチェック状態か調べる */
02820         if( IsFuncChecked( &m_cEditDoc, m_pShareData, id ) ){
02821             fuFlags = MF_BYCOMMAND | MF_CHECKED;
02822             ::CheckMenuItem(hMenu, id, fuFlags);
02823         }
02824         /* else{
02825             fuFlags = MF_BYCOMMAND | MF_UNCHECKED;
02826         }
02827         */
02828     }
02829     return;
02830 }
02831
02832
02833
02834
02835 /* ファイルがドロップされた */
02836 void CEditWnd::OnDropFiles( HDROP hDrop )
02837 {
02838         POINT       pt;
02839         WORD        cFiles, i;
02840         char        szFile[_MAX_PATH + 1];
02841         char        szWork[_MAX_PATH + 1];
02842         BOOL        bOpened;
02843         FileInfo*   pfi;
02844         HWND        hWndOwner;
02845
02846         ::DragQueryPoint( hDrop, &pt );
02847         cFiles = ::DragQueryFile( hDrop, 0xFFFFFFFF, (LPSTR) NULL, 0);
02848         /* ファイルをドロップしたときは閉じて開く */
02849         if( m_pShareData->m_Common.m_bDropFileAndClose ){
02850             cFiles = 1;
02851         }
02852         /* 一度にドロップ可能なファイル数 */
02853         if( cFiles > m_pShareData->m_Common.m_nDropFileNumMax ){
02854                 cFiles = m_pShareData->m_Common.m_nDropFileNumMax;
02855         }
02856         for( i = 0; i < cFiles; i++ ) {
02857                 ::DragQueryFile( hDrop, i, szFile, sizeof(szFile) );
02858                 /* ショートカット(.lnk)の解決 */
02859                 if( TRUE == ResolveShortcutLink( NULL, szFile, szWork ) ){
02860                     strcpy( szFile, szWork );
02861                 }
02862                 /* ロングファイル名を取得する */
02863                 if( TRUE == ::GetLongFileName( szFile, szWork ) ){
02864                         strcpy( szFile, szWork );
02865                 }
02866
02867                 /* 指定ファイルが開かれているか調べる */
02868                 if( CShareData::getInstance()->IsPathOpened( szFile, &hWndOwner ) ){
02869                     ::SendMessage( hWndOwner, MYWM_GETFILEINFO, 0, 0 );
02870                     pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
02871                     /* アクティブにする */
02872                     ActivateFrameWindow( hWndOwner );
02873                     /* MRUリストへの登録 */
02874                     CMRU cMRU;
02875                     cMRU.Add( pfi );
02876                 }else{
02877                         /* 変更フラグがオフで、ファイルを読み込んでいない場合 */
02878                         //  2005.06.24 Moca
02879                         if( m_cEditDoc.IsFileOpenInThisWindow() ){
02880                                 /* ファイル読み込み */
02881                                 m_cEditDoc.FileRead(
02882                                         szFile,
02883                                         &bOpened,
02884                                         CODE_AUTODETECT,    /* 文字コード自動判別 */
02885                                         FALSE,              /* 読み取り専用か */
02886                                         //  Oct. 03, 2004 genta コード確認は設定に依存
02887                                         m_pShareData->m_Common.m_bQueryIfCodeChange
02888                                 );
02889                                 hWndOwner = m_hWnd;
02890                                 /* アクティブにする */
02891                                 // 2007.06.17 maru すでに開いているかチェック済みだが
02892                                 // ドロップされたのはフォルダかもしれないので再チェック
02893                                 if(FALSE==bOpened) ActivateFrameWindow( hWndOwner );
02894                         }else{
02895                                 /* ファイルをドロップしたときは閉じて開く */
02896                                 if( m_pShareData->m_Common.m_bDropFileAndClose ){
02897                                         /* ファイルを閉じるときのMRU登録 & 保存確認 & 保存実行 */
02898                                         if( m_cEditDoc.OnFileClose() ){
02899                                                 /* 既存データのクリア */
02900                                                 m_cEditDoc.Init();
02901
02902                                                 /* 全ビューの初期化 */
02903                                                 m_cEditDoc.InitAllView();
02904
02905                                                 /* 親ウィンドウのタイトルを更新 */
02906                                                 m_cEditDoc.SetParentCaption();
02907
02908                                                 /* ファイル読み込み */
02909                                                         m_cEditDoc.FileRead(
02910                                                         szFile,
02911                                                         &bOpened,
02912                                                         CODE_AUTODETECT,    /* 文字コード自動判別 */
02913                                                         FALSE,              /* 読み取り専用か */
02914                                                         //  Oct. 03, 2004 genta コード確認は設定に依存
02915                                                         m_pShareData->m_Common.m_bQueryIfCodeChange
02916                                                         //TRUE
02917                                                 );
02918                                                 hWndOwner = m_hWnd;
02919                                                 /* アクティブにする */
02920                                                 ActivateFrameWindow( hWndOwner );
02921                                         }
02922                                         goto end_of_drop_query;
02923                                 }else{
02924                                         /* 編集ウィンドウの上限チェック */
02925                                         if( m_pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){   //最大値修正    //@@@ 2003.05.31 MIK
02926                                                 char szMsg[512];
02927                                                 wsprintf( szMsg, "編集ウィンドウ数の上限は%dです。\nこれ以上は同時に開けません。", MAX_EDITWINDOWS );
02928                                                 ::MessageBox( NULL, szMsg, GSTR_APPNAME, MB_OK );
02929                                                 ::DragFinish( hDrop );
02930                                                 return;
02931                                         }
02932                                         char    szFile2[_MAX_PATH + 3];
02933                                         if( strchr( szFile, ' ' ) ){
02934                                                 wsprintf( szFile2, "\"%s\"", szFile );
02935                                                 strcpy( szFile, szFile2 );
02936                                         }
02937                                         /* 新たな編集ウィンドウを起動 */
02938                                         CEditApp::OpenNewEditor(
02939                                                 m_hInstance,
02940                                                 m_hWnd,
02941                                                 szFile,
02942                                                 CODE_AUTODETECT,    /* 文字コード自動判別 */
02943                                                 FALSE               /* 読み取り専用か */
02944                                         );
02945                                 }
02946                         }
02947                 }
02948         }
02949 end_of_drop_query:;
02950         ::DragFinish( hDrop );
02951         return;
02952 }
02953
02957 LRESULT CEditWnd::OnTimer( WPARAM wParam, LPARAM lParam )
02958 {
02959     // タイマー ID で処理を振り分ける
02960     switch( wParam )
02961     {
02962     case IDT_EDIT:
02963         OnEditTimer();
02964         break;
02965     case IDT_TOOLBAR:
02966         OnToolbarTimer();
02967         break;
02968     case IDT_CAPTION:
02969         OnCaptionTimer();
02970         break;
02971     case IDT_SYSMENU:
02972         OnSysMenuTimer();
02973         break;
02974     default:
02975         return 1L;
02976     }
02977
02978     return 0L;
02979 }
02980
02987 void CEditWnd::OnEditTimer( void )
02988 {
02989     //static    int nLoopCount = 0; // wmlhq m_nTimerCountに移行
02990     // タイマーの呼び出し間隔を 500msに変更。300*10→500*6にする。 20060128 aroka
02991     m_nTimerCount++;
02992     if( 6 < m_nTimerCount ){
02993         m_nTimerCount = 0;
02994     }
02995
02996     // 2006.01.28 aroka ツールバー更新関連は OnToolbarTimerに移動した。
02997
02998     //  Aug. 29, 2003 wmlhq, ryoji
02999     if( m_nTimerCount == 0 && GetCapture() == NULL ){
03000         /* ファイルのタイムスタンプのチェック処理 */
03001         m_cEditDoc.CheckFileTimeStamp() ;
03002     }
03003
03004     m_cEditDoc.CheckAutoSave();
03005     return;
03006 }
03007
03014 void CEditWnd::OnToolbarTimer( void )
03015 {
03016     int         i;
03017     TBBUTTON    tbb;
03018     m_nTimerCount++;
03019     if( 10 < m_nTimerCount ){
03020         m_nTimerCount = 0;
03021     }
03022 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03023     /* 印刷プレビューなら、何もしない。そうでなければ、ツールバーの状態更新 */
03024     if( !m_pPrintPreview && NULL != m_hwndToolBar ){
03025         for( i = 0; i < m_pShareData->m_Common.m_nToolBarButtonNum; ++i ){
03026             tbb = m_CMenuDrawer.getButton(m_pShareData->m_Common.m_nToolBarButtonIdxArr[i]);
03027
03028             /* 機能が利用可能か調べる */
03029             ::PostMessage(
03030                 m_hwndToolBar, TB_ENABLEBUTTON, tbb.idCommand,
03031                 (LPARAM) MAKELONG( (IsFuncEnable( &m_cEditDoc, m_pShareData, tbb.idCommand ) ) , 0 )
03032             );
03033             /* 機能がチェック状態か調べる */
03034             ::PostMessage(
03035                 m_hwndToolBar, TB_CHECKBUTTON, tbb.idCommand,
03036                 (LPARAM) MAKELONG( IsFuncChecked( &m_cEditDoc, m_pShareData, tbb.idCommand ), 0 )
03037             );
03038         }
03039     }
03040
03041     return;
03042 }
03043
03047 void CEditWnd::OnCaptionTimer( void )
03048 {
03049     // 編集画面の切替（タブまとめ時）が終わっていたらタイマーを終了してタイトルバーを更新する
03050     // まだ切替中ならタイマー継続
03051     if( !m_pShareData->m_bEditWndChanging ){
03052         ::KillTimer( m_hWnd, IDT_CAPTION );
03053         ::SetWindowText( m_hWnd, m_pszLastCaption );
03054     }
03055 }
03056
03061 void CEditWnd::OnSysMenuTimer( void ) //by 鬼(2)
03062 {
03063     ::KillTimer( m_hWnd, IDT_SYSMENU ); // 2007.04.03 ryoji
03064
03065     if(m_IconClicked == icClicked)
03066     {
03067         ReleaseCapture();
03068
03069         //システムメニュー表示
03070         // 2006.04.21 ryoji マルチモニタ対応の修正
03071         // 2007.05.13 ryoji 0x0313メッセージをポストする方式に変更（TrackPopupMenuだとメニュー項目の有効／無効状態が不正になる問題対策）
03072         RECT R;
03073         GetWindowRect(m_hWnd, &R);
03074         POINT pt;
03075         pt.x = R.left + GetSystemMetrics(SM_CXFRAME);
03076         pt.y = R.top + GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYFRAME);
03077         GetMonitorWorkRect( pt, &R );
03078         ::PostMessage( m_hWnd, 0x0313, 0, MAKELPARAM( (pt.x > R.left)? pt.x: R.left, (pt.y < R.bottom)? pt.y: R.bottom ));
03079     }
03080     m_IconClicked = icNone;
03081 }
03082
03083 /* 機能がチェック状態か調べる */
03084 int CEditWnd::IsFuncChecked( CEditDoc* pcEditDoc, DLLSHAREDATA* pShareData, int nId )
03085 {
03086     CEditWnd* pCEditWnd;
03087     // Modified by KEITA for WIN64 2003.9.6
03088     pCEditWnd = ( CEditWnd* )::GetWindowLongPtr( pcEditDoc->m_hwndParent, GWLP_USERDATA );
03089 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことにより、プレビュー判定削除
03090     switch( nId ){
03091     case F_FILE_REOPEN_SJIS:
03092         if( CODE_SJIS == pcEditDoc->m_nCharCode ){
03093             return TRUE;
03094         }else{
03095             return FALSE;
03096         }
03097     case F_FILE_REOPEN_JIS:
03098         if( CODE_JIS == pcEditDoc->m_nCharCode ){
03099             return TRUE;
03100         }else{
03101             return FALSE;
03102         }
03103     case F_FILE_REOPEN_EUC:
03104         if( CODE_EUC == pcEditDoc->m_nCharCode ){
03105             return TRUE;
03106         }else{
03107             return FALSE;
03108         }
03109     case F_FILE_REOPEN_UNICODE:
03110         if( CODE_UNICODE == pcEditDoc->m_nCharCode ){
03111             return TRUE;
03112         }else{
03113             return FALSE;
03114         }
03115     case F_FILE_REOPEN_UNICODEBE:
03116         if( CODE_UNICODEBE == pcEditDoc->m_nCharCode ){
03117             return TRUE;
03118         }else{
03119             return FALSE;
03120         }
03121     case F_FILE_REOPEN_UTF8:
03122         if( CODE_UTF8 == pcEditDoc->m_nCharCode ){
03123             return TRUE;
03124         }else{
03125             return FALSE;
03126         }
03127     case F_FILE_REOPEN_UTF7:
03128         if( CODE_UTF7 == pcEditDoc->m_nCharCode ){
03129             return TRUE;
03130         }else{
03131             return FALSE;
03132         }
03133     case F_RECKEYMACRO: /* キーマクロの記録開始／終了 */
03134         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
03135             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->m_hwndParent ){   /* キーボードマクロを記録中のウィンドウ */
03136                 return TRUE;
03137             }else{
03138                 return FALSE;
03139             }
03140         }else{
03141             return FALSE;
03142         }
03143     case F_SHOWTOOLBAR:
03144         if( pCEditWnd->m_hwndToolBar != NULL ){
03145             return TRUE;
03146         }else{
03147             return FALSE;
03148         }
03149     case F_SHOWFUNCKEY:
03150         if( pCEditWnd->m_CFuncKeyWnd.m_hWnd != NULL ){
03151             return TRUE;
03152         }else{
03153             return FALSE;
03154         }
03155     case F_SHOWTAB: //@@@ 2003.06.10 MIK
03156         if( pCEditWnd->m_cTabWnd.m_hWnd != NULL ){
03157             return TRUE;
03158         }else{
03159             return FALSE;
03160         }
03161     case F_SHOWSTATUSBAR:
03162         if( pCEditWnd->m_hwndStatusBar != NULL ){
03163             return TRUE;
03164         }else{
03165             return FALSE;
03166         }
03167     // Mar. 6, 2002 genta
03168     case F_READONLY://読み取り専用
03169         if( pcEditDoc->m_bReadOnly ){ /* 変更フラグ */
03170             return TRUE;
03171         }else{
03172             return FALSE;
03173         }
03174     //  From Here 2003.06.23 Moca
03175     case F_CHGMOD_EOL_CRLF:
03176         if( EOL_CRLF == pcEditDoc->GetNewLineCode() ){
03177             return TRUE;
03178         }else{
03179             return FALSE;
03180         }
03181     case F_CHGMOD_EOL_LF:
03182         if( EOL_LF == pcEditDoc->GetNewLineCode() ){
03183             return TRUE;
03184         }else{
03185             return FALSE;
03186         }
03187     case F_CHGMOD_EOL_CR:
03188         if( EOL_CR == pcEditDoc->GetNewLineCode() ){
03189             return TRUE;
03190         }else{
03191             return FALSE;
03192         }
03193     //  To Here 2003.06.23 Moca
03194     //  2003.07.21 genta
03195     case F_CHGMOD_INS:
03196         //  Oct. 2, 2005 genta 挿入モードはドキュメント毎に補完するように変更した
03197         if( pcEditDoc->IsInsMode() ){
03198             return TRUE;
03199         }else{
03200             return FALSE;
03201         }
03202     case F_TOGGLE_KEY_SEARCH:
03203         //  2007.02.03 genta キーワードポップアップのON/OFF状態を反映する
03204         if( pShareData->m_Common.m_bUseCaretKeyWord ){
03205             return TRUE;
03206         }
03207         else {
03208             return FALSE;
03209         }
03210     //Start 2004.07.14 Kazika 追加
03211     case F_BIND_WINDOW: //
03212         return ((pShareData->m_Common.m_bDispTabWnd) && !(pShareData->m_Common.m_bDispTabWndMultiWin));
03213
03214     // 2004.09.21 Moca
03215     case F_TOPMOST:
03216         if( (DWORD)::GetWindowLongPtr( pCEditWnd->m_hWnd, GWL_EXSTYLE ) & WS_EX_TOPMOST ){
03217             return TRUE;
03218         }else{
03219             return FALSE;
03220         }
03221         break;
03222     // Jan. 10, 2004 genta インクリメンタルサーチ
03223     case F_ISEARCH_NEXT:
03224     case F_ISEARCH_PREV:
03225     case F_ISEARCH_REGEXP_NEXT:
03226     case F_ISEARCH_REGEXP_PREV:
03227     case F_ISEARCH_MIGEMO_NEXT:
03228     case F_ISEARCH_MIGEMO_PREV:
03229         return pcEditDoc->ActiveView().IsISearchEnabled( nId );
03230     case F_OUTLINE_TOGGLE: // 20060201 aroka アウトラインウィンドウ
03231         // ToDo:ブックマークリストが出ているときもへこんでしまう。
03232         return (pcEditDoc->m_cDlgFuncList.m_hWnd != NULL);
03233     }
03234     //End 2004.07.14 Kazika
03235
03236     return FALSE;
03237 }
03238
03239
03240
03241
03242 /* 機能が利用可能か調べる */
03243 int CEditWnd::IsFuncEnable( CEditDoc* pcEditDoc, DLLSHAREDATA* pShareData, int nId )
03244 {
03245     /* 書き換え禁止のときを一括チェック */
03246     if( pcEditDoc->IsModificationForbidden( nId ) )
03247         return FALSE;
03248
03249     switch( nId ){
03250     case F_RECKEYMACRO: /* キーマクロの記録開始／終了 */
03251         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
03252             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->m_hwndParent ){   /* キーボードマクロを記録中のウィンドウ */
03253                 return TRUE;
03254             }else{
03255                 return FALSE;
03256             }
03257         }else{
03258             return TRUE;
03259         }
03260     case F_SAVEKEYMACRO:    /* キーマクロの保存 */
03261         //  Jun. 16, 2002 genta
03262         //  キーマクロエンジン以外のマクロを読み込んでいるときは
03263         //  実行はできるが保存はできない．
03264         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
03265             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->m_hwndParent ){   /* キーボードマクロを記録中のウィンドウ */
03266                 return TRUE;
03267             }else{
03268                 return FALSE;
03269             }
03270         }else{
03271             return pcEditDoc->m_pcSMacroMgr->IsSaveOk();
03272         }
03273     case F_EXECKEYMACRO:    /* キーマクロの実行 */
03274         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
03275             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->m_hwndParent ){   /* キーボードマクロを記録中のウィンドウ */
03276                 return TRUE;
03277             }else{
03278                 return FALSE;
03279             }
03280         }else{
03281             //@@@ 2002.1.24 YAZAKI m_szKeyMacroFileNameにファイル名がコピーされているかどうか。
03282             if (pShareData->m_szKeyMacroFileName[0] ) {
03283                 return TRUE;
03284             }else{
03285                 return FALSE;
03286             }
03287         }
03288     case F_LOADKEYMACRO:    /* キーマクロの読み込み */
03289         if( pShareData->m_bRecordingKeyMacro ){ /* キーボードマクロの記録中 */
03290             if( pShareData->m_hwndRecordingKeyMacro == pcEditDoc->m_hwndParent ){   /* キーボードマクロを記録中のウィンドウ */
03291                 return TRUE;
03292             }else{
03293                 return FALSE;
03294             }
03295         }else{
03296             return TRUE;
03297         }
03298
03299     case F_SEARCH_CLEARMARK:    //検索マークのクリア
03300         return TRUE;
03301
03302     // 02/06/26 ai Start
03303     case F_JUMP_SRCHSTARTPOS:   // 検索開始位置へ戻る
03304         if( 0 <= pcEditDoc->m_cEditViewArr[pcEditDoc->m_nActivePaneIndex].m_nSrchStartPosX_PHY &&
03305             0 <= pcEditDoc->m_cEditViewArr[pcEditDoc->m_nActivePaneIndex].m_nSrchStartPosY_PHY) {
03306             return TRUE;
03307         }else{
03308             return FALSE;
03309         }
03310     // 02/06/26 ai End
03311
03312     case F_COMPARE: /* ファイル内容比較 */
03313         if( 2 <= pShareData->m_nEditArrNum ){
03314             return TRUE;
03315         }else{
03316             return FALSE;
03317         }
03318
03319     case F_DIFF_NEXT:   /* 次の差分へ */    //@@@ 2002.05.25 MIK
03320     case F_DIFF_PREV:   /* 前の差分へ */    //@@@ 2002.05.25 MIK
03321     case F_DIFF_RESET:  /* 差分の全解除 */  //@@@ 2002.05.25 MIK
03322         if( ! pcEditDoc->m_cDocLineMgr.IsDiffUse() ) return FALSE;
03323         return TRUE;
03324     case F_DIFF_DIALOG: /* DIFF差分表示 */  //@@@ 2002.05.25 MIK
03325         //if( pcEditDoc->IsModified() ) return FALSE;
03326         //if( ! pcEditDoc->IsFilePathAvailable() ) return FALSE;
03327         return TRUE;
03328
03329     case F_BEGIN_BOX:   //矩形範囲選択開始
03330         if( TRUE == pShareData->m_Common.m_bFontIs_FIXED_PITCH ){   /* 現在のフォントは固定幅フォントである */
03331             return TRUE;
03332         }else{
03333             return FALSE;
03334         }
03335     case F_PASTEBOX:
03336         /* クリップボードから貼り付け可能か？ */
03337         if( pcEditDoc->IsEnablePaste() &&
03338             TRUE == pShareData->m_Common.m_bFontIs_FIXED_PITCH
03339         ){
03340             return TRUE;
03341         }else{
03342             return FALSE;
03343         }
03344     case F_PASTE:
03345         /* クリップボードから貼り付け可能か？ */
03346         if( pcEditDoc->IsEnablePaste() ){
03347             return TRUE;
03348         }else{
03349             return FALSE;
03350         }
03351
03352     case F_FILENEW: /* 新規作成 */
03353     case F_GREP_DIALOG: /* Grep */
03354         /* 編集ウィンドウの上限チェック */
03355         if( pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){ //最大値修正    //@@@ 2003.05.31 MIK
03356             return FALSE;
03357         }else{
03358             return TRUE;
03359         }
03360
03361     case F_FILESAVE:    /* 上書き保存 */
03362         if( !pcEditDoc->m_bReadOnly ){  /* 読み取り専用モード */
03363             if( pcEditDoc->IsModified() ){  /* 変更フラグ */
03364                 return TRUE;
03365             }else{
03366                 /* 無変更でも上書きするか */
03367                 if( FALSE == pShareData->m_Common.m_bEnableUnmodifiedOverwrite ){
03368                     return FALSE;
03369                 }else{
03370                     return TRUE;
03371                 }
03372             }
03373         }else{
03374             return FALSE;
03375         }
03376     case F_COPYLINES:               //選択範囲内全行コピー
03377     case F_COPYLINESASPASSAGE:      //選択範囲内全行引用符付きコピー
03378     case F_COPYLINESWITHLINENUMBER: //選択範囲内全行行番号付きコピー
03379         if( pcEditDoc->IsTextSelected( ) ){/* テキストが選択されているか */
03380             return TRUE;
03381         }else{
03382             return FALSE;
03383         }
03384
03385     case F_TOLOWER:                 /* 小文字 */
03386     case F_TOUPPER:                 /* 大文字 */
03387     case F_TOHANKAKU:               /* 全角→半角 */
03388     case F_TOHANKATA:               /* 全角カタカナ→半角カタカナ */    //Aug. 29, 2002 ai
03389     case F_TOZENEI:                 /* 半角英数→全角英数 */            //July. 30, 2001 Misaka
03390     case F_TOHANEI:                 /* 全角英数→半角英数 */
03391     case F_TOZENKAKUKATA:           /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
03392     case F_TOZENKAKUHIRA:           /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
03393     case F_HANKATATOZENKAKUKATA:    /* 半角カタカナ→全角カタカナ */
03394     case F_HANKATATOZENKAKUHIRA:    /* 半角カタカナ→全角ひらがな */
03395     case F_TABTOSPACE:              /* TAB→空白 */
03396     case F_SPACETOTAB:              /* 空白→TAB */  //#### Stonee, 2001/05/27
03397     case F_CODECNV_AUTO2SJIS:       /* 自動判別→SJISコード変換 */
03398     case F_CODECNV_EMAIL:           /* E-Mail(JIS→SJIS)コード変換 */
03399     case F_CODECNV_EUC2SJIS:        /* EUC→SJISコード変換 */
03400     case F_CODECNV_UNICODE2SJIS:    /* Unicode→SJISコード変換 */
03401     case F_CODECNV_UNICODEBE2SJIS:  /* UnicodeBE→SJISコード変換 */
03402     case F_CODECNV_UTF82SJIS:       /* UTF-8→SJISコード変換 */
03403     case F_CODECNV_UTF72SJIS:       /* UTF-7→SJISコード変換 */
03404     case F_CODECNV_SJIS2JIS:        /* SJIS→JISコード変換 */
03405     case F_CODECNV_SJIS2EUC:        /* SJIS→EUCコード変換 */
03406     case F_CODECNV_SJIS2UTF8:       /* SJIS→UTF-8コード変換 */
03407     case F_CODECNV_SJIS2UTF7:       /* SJIS→UTF-7コード変換 */
03408     case F_BASE64DECODE:            /* Base64デコードして保存 */
03409     case F_UUDECODE:                //uudecodeして保存  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
03410
03411         /* テキストが選択されているか */
03412         if( pcEditDoc->IsTextSelected( ) ){
03413             return TRUE;
03414         }else{
03415             return FALSE;
03416         }
03417     case F_SELECTWORD:  /* 現在位置の単語選択 */
03418     case F_CUT_LINE:    //行切り取り(折り返し単位)
03419     case F_DELETE_LINE: //行削除(折り返し単位)
03420         /* テキストが選択されているか */
03421         if( pcEditDoc->IsTextSelected( ) ){
03422             return FALSE;
03423         }else{
03424             return TRUE;
03425         }
03426     case F_UNDO:
03427         /* Undo(元に戻す)可能な状態か？ */
03428         if( pcEditDoc->IsEnableUndo() ){
03429             return TRUE;
03430         }else{
03431             return FALSE;
03432         }
03433     case F_REDO:
03434         /* Redo(やり直し)可能な状態か？ */
03435         if( pcEditDoc->IsEnableRedo() ){
03436             return TRUE;
03437         }else{
03438             return FALSE;
03439         }
03440
03441     case F_COPYPATH:
03442     case F_COPYTAG:
03443     case F_COPYFNAME:                   // 2002/2/3 aroka
03444     case F_OPEN_HfromtoC:               //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
03445     case F_OPEN_HHPP:                   //同名のC/C++ヘッダファイルを開く   //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
03446     case F_OPEN_CCPP:                   //同名のC/C++ソースファイルを開く   //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
03447     case F_PLSQL_COMPILE_ON_SQLPLUS:    /* Oracle SQL*Plusで実行 */
03448     case F_BROWSE:                      //ブラウズ
03449     //case F_READONLY:                  //読み取り専用  //  Sep. 10, 2002 genta 常に使えるように
03450     case F_PROPERTY_FILE:
03451         /* 現在編集中のファイルのパス名をクリップボードにコピーできるか */
03452         if( pcEditDoc->IsFilePathAvailable() ){
03453             return TRUE;
03454         }else{
03455             return FALSE;
03456         }
03457     case F_JUMPHIST_PREV:   //  移動履歴: 前へ
03458         if( pcEditDoc->ActiveView().m_cHistory->CheckPrev() )
03459             return TRUE;
03460         else
03461             return FALSE;
03462     case F_JUMPHIST_NEXT:   //  移動履歴: 次へ
03463         if( pcEditDoc->ActiveView().m_cHistory->CheckNext() )
03464             return TRUE;
03465         else
03466             return FALSE;
03467     case F_JUMPHIST_SET:    //  現在位置を移動履歴に登録
03468         return TRUE;
03469     case F_DIRECT_TAGJUMP:  //ダイレクトタグジャンプ    //@@@ 2003.04.15 MIK
03470     case F_TAGJUMP_KEYWORD: //キーワードを指定してダイレクトタグジャンプ    //@@@ 2005.03.31 MIK
03471     //  2003.05.12 MIK タグファイル作成先を選べるようにしたので、常に作成可能とする
03472 //  case F_TAGS_MAKE:   //タグファイルの作成    //@@@ 2003.04.13 MIK
03473         if( pcEditDoc->IsFilePathAvailable() ){
03474             return TRUE;
03475         }else{
03476             return FALSE;
03477         }
03478
03479     //タブモード時はウインドウ並べ替え禁止です。    @@@ 2003.06.12 MIK
03480     case F_TILE_H:
03481     case F_TILE_V:
03482     case F_CASCADE:
03483         //Start 2004.07.15 Kazika タブウィンド時も実行可能
03484         return TRUE;
03485         //End 2004.07.15 Kazika
03486     case F_BIND_WINDOW: //2004.07.14 Kazika 新規追加
03487     case F_TAB_MOVERIGHT:   // 2007.06.20 ryoji 追加
03488     case F_TAB_MOVELEFT:    // 2007.06.20 ryoji 追加
03489         //非タブモード時はウィンドウを結合して表示できない
03490         return (pShareData->m_Common.m_bDispTabWnd);
03491     case F_GROUPCLOSE:      // 2007.06.20 ryoji 追加
03492     case F_NEXTGROUP:       // 2007.06.20 ryoji 追加
03493     case F_PREVGROUP:       // 2007.06.20 ryoji 追加
03494         return ( pShareData->m_Common.m_bDispTabWnd && !pShareData->m_Common.m_bDispTabWndMultiWin );
03495     case F_TAB_SEPARATE:    // 2007.06.20 ryoji 追加
03496     case F_TAB_JOINTNEXT:   // 2007.06.20 ryoji 追加
03497     case F_TAB_JOINTPREV:   // 2007.06.20 ryoji 追加
03498         return ( pShareData->m_Common.m_bDispTabWnd && !pShareData->m_Common.m_bDispTabWndMultiWin && !::IsZoomed( pcEditDoc->m_hwndParent ) );
03499     }
03500     return TRUE;
03501 }
03502
03503 //#ifdef _DEBUG
03504     /* デバッグモニタモードに設定 */
03505     void CEditWnd::SetDebugModeON( void )
03506     {
03507         if( NULL != m_pShareData->m_hwndDebug ){
03508             if( CShareData::IsEditWnd( m_pShareData->m_hwndDebug ) ){
03509                 return;
03510             }
03511         }
03512         m_pShareData->m_hwndDebug = m_hWnd;
03513         m_cEditDoc.m_bDebugMode = TRUE;
03514
03515 // 2001/06/23 N.Nakatani アウトプット窓への出力テキストの追加F_ADDTAILが抑止されるのでとりあえず読み取り専用モードは辞めました
03516         m_cEditDoc.m_bReadOnly = FALSE;     /* 読み取り専用モード */
03517         /* 親ウィンドウのタイトルを更新 */
03518         m_cEditDoc.SetParentCaption();
03519         return;
03520     }
03521
03522     // 2005.06.24 Moca
03524     void CEditWnd::SetDebugModeOFF( void )
03525     {
03526         if( m_pShareData->m_hwndDebug == m_hWnd ){
03527             m_pShareData->m_hwndDebug = NULL;
03528             m_cEditDoc.m_bDebugMode = FALSE;
03529             m_cEditDoc.SetParentCaption();
03530         }
03531     }
03532 //#endif
03533
03534
03535 /* 機能IDに対応するヘルプコンテキスト番号を返す */
03536 // Modified by Stonee, 2001/02/23
03537 // etc_uty.cpp内に中身を移動
03538 /*  2002/04/17 YAZAKI コメントアウト
03539 int CEditWnd::FuncID_To_HelpContextID( int nFuncID )
03540 {
03541     return ::FuncID_To_HelpContextID(nFuncID);
03542 }
03543 */
03544
03545 /* メニューアイテムに対応するヘルプを表示 */
03546 void CEditWnd::OnHelp_MenuItem( HWND hwndParent, int nFuncID )
03547 {
03548     char    szHelpFile[_MAX_PATH + 1];
03549     int     nHelpContextID;
03550
03551     /* ヘルプファイルのフルパスを返す */
03552 	::GetHelpFilePath( szHelpFile );
03553
03554     /* 機能IDに対応するヘルプコンテキスト番号を返す */
03555     nHelpContextID = FuncID_To_HelpContextID( nFuncID );
03556     if( 0 != nHelpContextID ){
03557         MyWinHelp( hwndParent, szHelpFile, HELP_CONTEXT, nHelpContextID );  // 2006.10.10 ryoji MyWinHelpに変更に変更
03558     }
03559     return;
03560 }
03561
03562
03563 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03564
03565 /* 印刷プレビューモードのオン/オフ */
03566 void CEditWnd::PrintPreviewModeONOFF( void )
03567 {
03568     HMENU   hMenu;
03569     HWND    hwndToolBar;
03570
03571     // 2006.06.17 ryoji Rebar があればそれをツールバー扱いする
03572     hwndToolBar = (NULL != m_hwndReBar)? m_hwndReBar: m_hwndToolBar;
03573
03574     /* 印刷プレビューモードか */
03575 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03576     if( m_pPrintPreview ){
03577 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03578         /*  印刷プレビューモードを解除します。  */
03579         delete m_pPrintPreview; //  削除。
03580         m_pPrintPreview = NULL; //  NULLか否かで、プリントプレビューモードか判断するため。
03581
03582         /*  通常モードに戻す    */
03583         ::ShowWindow( m_cEditDoc.m_hWnd, SW_SHOW );
03584         ::ShowWindow( hwndToolBar, SW_SHOW );   // 2006.06.17 ryoji
03585         ::ShowWindow( m_hwndStatusBar, SW_SHOW );
03586         ::ShowWindow( m_CFuncKeyWnd.m_hWnd, SW_SHOW );
03587         ::ShowWindow( m_cTabWnd.m_hWnd, SW_SHOW );  //@@@ 2003.06.25 MIK
03588
03589         ::SetFocus( m_hWnd );
03590
03591         hMenu = ::LoadMenu( m_hInstance, MAKEINTRESOURCE( IDR_MENU1 ) );
03592         ::SetMenu( m_hWnd, hMenu );
03593         ::DrawMenuBar( m_hWnd );
03594
03595 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03596         ::InvalidateRect( m_hWnd, NULL, TRUE );
03597     }else{
03598 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03599         /*  通常モードを隠す    */
03600         hMenu = ::GetMenu( m_hWnd );
03601         //  Jun. 18, 2001 genta Print Previewではメニューを削除
03602         ::SetMenu( m_hWnd, NULL );
03603         ::DestroyMenu( hMenu );
03604         ::DrawMenuBar( m_hWnd );
03605
03606         ::ShowWindow( m_cEditDoc.m_hWnd, SW_HIDE );
03607         ::ShowWindow( hwndToolBar, SW_HIDE );   // 2006.06.17 ryoji
03608         ::ShowWindow( m_hwndStatusBar, SW_HIDE );
03609         ::ShowWindow( m_CFuncKeyWnd.m_hWnd, SW_HIDE );
03610         ::ShowWindow( m_cTabWnd.m_hWnd, SW_HIDE );  //@@@ 2003.06.25 MIK
03611
03612 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03613         m_pPrintPreview = new CPrintPreview( this );
03614         /* 現在の印刷設定 */
03615         m_pPrintPreview->SetPrintSetting(
03616             &m_pShareData->m_PrintSettingArr[
03617                 m_cEditDoc.GetDocumentAttribute().m_nCurrentPrintSetting]
03618         );
03619
03620         //  プリンタの情報を取得。
03621
03622         /* 現在のデフォルトプリンタの情報を取得 */
03623         BOOL bRes;
03624         bRes = m_pPrintPreview->GetDefaultPrinterInfo();
03625         if( FALSE == bRes ){
03626 			::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, GSTR_APPNAME,
03627                 "印刷プレビューを実行する前に、プリンタをインストールしてください。\n"
03628             );
03629             return;
03630         }
03631
03632         /* 印刷設定の反映 */
03633 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03634         m_pPrintPreview->OnChangePrintSetting();
03635         ::InvalidateRect( m_hWnd, NULL, TRUE );
03636         ::UpdateWindow( m_hWnd /* m_pPrintPreview->GetPrintPreviewBarHANDLE() */);
03637
03638     }
03639     return;
03640
03641 }
03642
03643
03644
03645
03646 /* WM_SIZE 処理 */
03647 LRESULT CEditWnd::OnSize( WPARAM wParam, LPARAM lParam )
03648 {
03649     HWND        hwndToolBar;
03650     int         cx;
03651     int         cy;
03652     int         nToolBarHeight;
03653     int         nStatusBarHeight;
03654     int         nFuncKeyWndHeight;
03655     int         nTabWndHeight;  //タブウインドウ    //@@@ 2003.05.31 MIK
03656     RECT        rc, rcClient;
03657     int         nCxHScroll;
03658     int         nCyHScroll;
03659     int         nCxVScroll;
03660     int         nCyVScroll;
03661 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる
03662 //  変数削除
03663
03664     RECT        rcWin;
03665
03666
03667
03668     cx = LOWORD( lParam );
03669     cy = HIWORD( lParam );
03670
03671     /* ウィンドウサイズ継承 */
03672     if( wParam != SIZE_MINIMIZED ){                     /* 最小化は継承しない */
03673         //  2004.05.13 Moca m_nSaveWindowSizeの解釈追加のため
03674         if( WINSIZEMODE_SAVE == m_pShareData->m_Common.m_nSaveWindowSize ){     /* ウィンドウサイズ継承をするか */
03675             if( wParam == SIZE_MAXIMIZED ){                 /* 最大化はサイズを記録しない */
03676                 if( m_pShareData->m_Common.m_nWinSizeType != (int)wParam ){
03677                     m_pShareData->m_Common.m_nWinSizeType = wParam;
03678                 }
03679             }else{
03680                 ::GetWindowRect( m_hWnd, &rcWin );
03681                 /* ウィンドウサイズに関するデータが変更されたか */
03682                 if( m_pShareData->m_Common.m_nWinSizeType != (int)wParam ||
03683                     m_pShareData->m_Common.m_nWinSizeCX != rcWin.right - rcWin.left ||
03684                     m_pShareData->m_Common.m_nWinSizeCY != rcWin.bottom - rcWin.top
03685                 ){
03686                     m_pShareData->m_Common.m_nWinSizeType = wParam;
03687                     m_pShareData->m_Common.m_nWinSizeCX = rcWin.right - rcWin.left;
03688                     m_pShareData->m_Common.m_nWinSizeCY = rcWin.bottom - rcWin.top;
03689                 }
03690             }
03691         }
03692
03693         // 元に戻すときのサイズ種別を記憶   // 2007.06.20 ryoji
03694         EditNode *p = CShareData::getInstance()->GetEditNode( m_hWnd );
03695         if( p != NULL ){
03696             p->m_showCmdRestore = ::IsZoomed( p->m_hWnd )? SW_SHOWMAXIMIZED: SW_SHOWNORMAL;
03697         }
03698     }
03699
03700     m_nWinSizeType = wParam;    /* サイズ変更のタイプ */
03701     nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
03702     nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
03703     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
03704     nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
03705
03706     // 2006.06.17 ryoji Rebar があればそれをツールバー扱いする
03707     hwndToolBar = (NULL != m_hwndReBar)? m_hwndReBar: m_hwndToolBar;
03708     nToolBarHeight = 0;
03709     if( NULL != hwndToolBar ){
03710         ::SendMessage( hwndToolBar, WM_SIZE, wParam, lParam );
03711         ::GetWindowRect( hwndToolBar, &rc );
03712         nToolBarHeight = rc.bottom - rc.top;
03713     }
03714     nFuncKeyWndHeight = 0;
03715     if( NULL != m_CFuncKeyWnd.m_hWnd ){
03716         ::SendMessage( m_CFuncKeyWnd.m_hWnd, WM_SIZE, wParam, lParam );
03717         ::GetWindowRect( m_CFuncKeyWnd.m_hWnd, &rc );
03718         nFuncKeyWndHeight = rc.bottom - rc.top;
03719     }
03720     //@@@ From Here 2003.05.31 MIK
03721     //タブウインドウ
03722     nTabWndHeight = 0;
03723     if( NULL != m_cTabWnd.m_hWnd )
03724     {
03725         ::SendMessage( m_cTabWnd.m_hWnd, WM_SIZE, wParam, lParam );
03726         ::GetWindowRect( m_cTabWnd.m_hWnd, &rc );
03727         nTabWndHeight = rc.bottom - rc.top;
03728     }
03729     //@@@ To Here 2003.05.31 MIK
03730     nStatusBarHeight = 0;
03731     if( NULL != m_hwndStatusBar ){
03732         ::SendMessage( m_hwndStatusBar, WM_SIZE, wParam, lParam );
03733         ::GetClientRect( m_hwndStatusBar, &rc );
03734         //  May 12, 2000 genta
03735         //  2カラム目に改行コードの表示を挿入
03736         //  From Here
03737         int         nStArr[8];
03738         // 2003.08.26 Moca CR0LF0廃止に従い、適当に調整
03739         // 2004-02-28 yasu 文字列を出力時の書式に合わせる
03740         // 幅を変えた場合にはCEditView::DrawCaretPosInfo()での表示方法を見直す必要あり．
03741         const char* pszLabel[7] = { "", "99999 行 9999 列", "CRLF", "0000", "Unicode", "REC", "上書" }; //Oct. 30, 2000 JEPRO 千万行も要らん
03742         int         nStArrNum = 7;
03743         //  To Here
03744         int         nAllWidth = rc.right - rc.left;
03745         int         nSbxWidth = ::GetSystemMetrics(SM_CXVSCROLL) + ::GetSystemMetrics(SM_CXEDGE); // サイズボックスの幅
03746         int         nBdrWidth = ::GetSystemMetrics(SM_CXSIZEFRAME) + ::GetSystemMetrics(SM_CXEDGE) * 2; // 境界の幅
03747         SIZE        sz;
03748         HDC         hdc;
03749         int         i;
03750         // 2004-02-28 yasu
03751         // 正確な幅を計算するために、表示フォントを取得してhdcに選択させる。
03752         hdc = ::GetDC( m_hwndStatusBar );
03753         HFONT hFont = (HFONT)::SendMessage(m_hwndStatusBar, WM_GETFONT, 0, 0);
03754         if (hFont != NULL)
03755         {
03756             hFont = (HFONT)::SelectObject(hdc, hFont);
03757         }
03758         nStArr[nStArrNum - 1] = nAllWidth;
03759         if( wParam != SIZE_MAXIMIZED ){
03760             nStArr[nStArrNum - 1] -= nSbxWidth;
03761         }
03762         for( i = nStArrNum - 1; i > 0; i-- ){
03763             ::GetTextExtentPoint32( hdc, pszLabel[i], lstrlen( pszLabel[i] ), &sz );
03764             nStArr[i - 1] = nStArr[i] - ( sz.cx + nBdrWidth );
03765         }
03766
03767         //  Nov. 8, 2003 genta
03768         //  初期状態ではすべての部分が「枠あり」だが，メッセージエリアは枠を描画しないようにしている
03769         //  ため，初期化時の枠が変な風に残ってしまう．初期状態で枠を描画させなくするため，
03770         //  最初に「枠無し」状態を設定した後でバーの分割を行う．
03771         ::SendMessage( m_hwndStatusBar, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM) (LPINT)"" );
03772
03773         ::SendMessage( m_hwndStatusBar, SB_SETPARTS, nStArrNum, (LPARAM) (LPINT)nStArr );
03774         if (hFont != NULL)
03775         {
03776             ::SelectObject(hdc, hFont);
03777         }
03778         ::ReleaseDC( m_hwndStatusBar, hdc );
03779
03780         ::UpdateWindow( m_hwndStatusBar );  // 2006.06.17 ryoji 即時描画でちらつきを減らす
03781         ::GetWindowRect( m_hwndStatusBar, &rc );
03782         nStatusBarHeight = rc.bottom - rc.top;
03783     }
03784     ::GetClientRect( m_hWnd, &rcClient );
03785
03786     //@@@ From 2003.05.31 MIK
03787     //タブウインドウ追加に伴い，ファンクションキー表示位置も調整
03788
03789     //タブウインドウ
03790     if( m_cTabWnd.m_hWnd )
03791     {
03792         if( m_pShareData->m_Common.m_nFUNCKEYWND_Place == 0 )
03793         {
03794             ::MoveWindow( m_cTabWnd.m_hWnd, 0, nToolBarHeight + nFuncKeyWndHeight, cx, nTabWndHeight, TRUE );
03795         }
03796         else
03797         {
03798             ::MoveWindow( m_cTabWnd.m_hWnd, 0, nToolBarHeight, cx, nTabWndHeight, TRUE );
03799         }
03800     }
03801
03802     //  2005.04.23 genta ファンクションキー非表示の時は移動しない
03803     if( m_CFuncKeyWnd.m_hWnd != NULL ){
03804         if( m_pShareData->m_Common.m_nFUNCKEYWND_Place == 0 )
03805         {   /* ファンクションキー表示位置／0:上 1:下 */
03806             ::MoveWindow(
03807                 m_CFuncKeyWnd.m_hWnd,
03808                 0,
03809                 nToolBarHeight,
03810                 cx,
03811                 nFuncKeyWndHeight, TRUE );
03812         }
03813         else if( m_pShareData->m_Common.m_nFUNCKEYWND_Place == 1 )
03814         {   /* ファンクションキー表示位置／0:上 1:下 */
03815             ::MoveWindow(
03816                 m_CFuncKeyWnd.m_hWnd,
03817                 0,
03818                 cy - nFuncKeyWndHeight - nStatusBarHeight,
03819                 cx,
03820                 nFuncKeyWndHeight, TRUE
03821             );
03822
03823             BOOL    bSizeBox = TRUE;
03824             if( NULL != m_hwndStatusBar ){
03825                 bSizeBox = FALSE;
03826             }
03827             if( wParam == SIZE_MAXIMIZED ){
03828                 bSizeBox = FALSE;
03829             }
03830             m_CFuncKeyWnd.SizeBox_ONOFF( bSizeBox );
03831         }
03832         ::UpdateWindow( m_CFuncKeyWnd.m_hWnd ); // 2006.06.17 ryoji 即時描画でちらつきを減らす
03833     }
03834
03835     if( m_pShareData->m_Common.m_nFUNCKEYWND_Place == 0 )
03836     {
03837         m_cEditDoc.OnMove(
03838             0,
03839             nToolBarHeight + nFuncKeyWndHeight + nTabWndHeight, //@@@ 2003.05.31 MIK
03840             cx,
03841             cy - nToolBarHeight - nFuncKeyWndHeight - nTabWndHeight - nStatusBarHeight  //@@@ 2003.05.31 MIK
03842         );
03843     }
03844     else
03845     {
03846         m_cEditDoc.OnMove(
03847             0,
03848             nToolBarHeight + nTabWndHeight,
03849             cx,
03850             cy - nToolBarHeight - nTabWndHeight - nFuncKeyWndHeight - nStatusBarHeight  //@@@ 2003.05.31 MIK
03851         );
03852     }
03853     //@@@ To 2003.05.31 MIK
03854
03855     /* 印刷プレビューモードか */
03856 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03857     if( !m_pPrintPreview ){
03858         return 0L;
03859     }
03860     return m_pPrintPreview->OnSize(wParam, lParam);
03861 }
03862
03863
03864
03865
03866 /* WM_PAINT 描画処理 */
03867 LRESULT CEditWnd::OnPaint(
03868     HWND            hwnd,   // handle of window
03869     UINT            uMsg,   // message identifier
03870     WPARAM          wParam, // first message parameter
03871     LPARAM          lParam  // second message parameter
03872 )
03873 {
03874     HDC             hdc;
03875 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03876     /* 印刷プレビューモードか */
03877     if( !m_pPrintPreview ){
03878         PAINTSTRUCT     ps;
03879         hdc = ::BeginPaint( hwnd, &ps );
03880         ::EndPaint( hwnd, &ps );
03881         return 0L;
03882     }
03883 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03884     return m_pPrintPreview->OnPaint(hwnd, uMsg, wParam, lParam);
03885 }
03886
03887 /* 印刷プレビュー 垂直スクロールバーメッセージ処理 WM_VSCROLL */
03888 LRESULT CEditWnd::OnVScroll( WPARAM wParam, LPARAM lParam )
03889 {
03890     /* 印刷プレビューモードか */
03891     if( !m_pPrintPreview ){
03892         return 0;
03893     }
03894 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03895     return m_pPrintPreview->OnVScroll(wParam, lParam);
03896 }
03897
03898
03899
03900
03901 /* 印刷プレビュー 水平スクロールバーメッセージ処理 */
03902 LRESULT CEditWnd::OnHScroll( WPARAM wParam, LPARAM lParam )
03903 {
03904 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
03905     /* 印刷プレビューモードか */
03906     if( !m_pPrintPreview ){
03907         return 0;
03908     }
03909     return m_pPrintPreview->OnHScroll( wParam, lParam );
03910 }
03911
03912 LRESULT CEditWnd::OnLButtonDown( WPARAM wParam, LPARAM lParam )
03913 {
03914     //by 鬼(2) キャプチャーして押されたら非クライアントでもこっちに来る
03915     if(m_IconClicked != icNone)
03916         return 0;
03917
03918     WPARAM      fwKeys;
03919     int         xPos;
03920     int         yPos;
03921     fwKeys = wParam;        // key flags
03922     xPos = LOWORD(lParam);  // horizontal position of cursor
03923     yPos = HIWORD(lParam);  // vertical position of cursor
03924     m_nDragPosOrgX = xPos;
03925     m_nDragPosOrgY = yPos;
03926     SetCapture( m_hWnd );
03927     m_bDragMode = TRUE;
03928
03929     return 0;
03930 }
03931
03932 LRESULT CEditWnd::OnLButtonUp( WPARAM wParam, LPARAM lParam )
03933 {
03934     //by 鬼 2002/04/18
03935     if(m_IconClicked != icNone)
03936     {
03937         if(m_IconClicked == icDown)
03938         {
03939             m_IconClicked = icClicked;
03940             //by 鬼(2) タイマー(IDは適当です)
03941             SetTimer(m_hWnd, IDT_SYSMENU, GetDoubleClickTime(), NULL);
03942         }
03943         return 0;
03944     }
03945
03946     m_bDragMode = FALSE;
03947     ReleaseCapture();
03948     ::InvalidateRect( m_hWnd, NULL, TRUE );
03949     return 0;
03950 }
03951
03952
03953 LRESULT CEditWnd::OnMouseMove( WPARAM wParam, LPARAM lParam )
03954 {
03955     //by 鬼
03956     if(m_IconClicked != icNone)
03957     {
03958         //by 鬼(2) 一回押された時だけ
03959         if(m_IconClicked == icDown)
03960         {
03961             POINT P;
03962             GetCursorPos(&P); //スクリーン座標
03963             if(SendMessage(m_hWnd, WM_NCHITTEST, 0, P.x | (P.y << 16)) != HTSYSMENU)
03964             {
03965                 ReleaseCapture();
03966                 m_IconClicked = icNone;
03967
03968                 if(m_cEditDoc.IsFilePathAvailable())
03969                 {
03970                     const char *PathEnd = m_cEditDoc.GetFilePath();
03971                     for(const char* I = m_cEditDoc.GetFilePath(); *I != 0; ++I)
03972                     {
03973                         //by 鬼(2): DBCS処理
03974                         if(IsDBCSLeadByte(*I))
03975                             ++I;
03976                         else if(*I == '\\')
03977                             PathEnd = I;
03978                     }
03979
03980                     wchar_t WPath[MAX_PATH];
03981                     int c = MultiByteToWideChar(CP_ACP, 0, m_cEditDoc.GetFilePath(), PathEnd - m_cEditDoc.GetFilePath(), WPath, MAX_PATH);
03982                     WPath[c] = 0;
03983                     wchar_t WFile[MAX_PATH];
03984                     MultiByteToWideChar(CP_ACP, 0, PathEnd + 1, -1, WFile, MAX_PATH);
03985
03986                     IDataObject *DataObject;
03987                     IMalloc *Malloc;
03988                     IShellFolder *Desktop, *Folder;
03989                     LPITEMIDLIST PathID, ItemID;
03990                     SHGetMalloc(&Malloc);
03991                     SHGetDesktopFolder(&Desktop);
03992                     DWORD Eaten, Attribs;
03993                     if(SUCCEEDED(Desktop->ParseDisplayName(0, NULL, WPath, &Eaten, &PathID, &Attribs)))
03994                     {
03995                         Desktop->BindToObject(PathID, NULL, IID_IShellFolder, (void**)&Folder);
03996                         Malloc->Free(PathID);
03997                         if(SUCCEEDED(Folder->ParseDisplayName(0, NULL, WFile, &Eaten, &ItemID, &Attribs)))
03998                         {
03999                             LPCITEMIDLIST List[1];
04000                             List[0] = ItemID;
04001                             Folder->GetUIObjectOf(0, 1, List, IID_IDataObject, NULL, (void**)&DataObject);
04002                             Malloc->Free(ItemID);
04003 #define DDASTEXT
04004 #ifdef  DDASTEXT
04005                             //テキストでも持たせる…便利
04006                             int Len = lstrlen(m_cEditDoc.GetFilePath());
04007                             FORMATETC F;
04008                             STGMEDIUM M;
04009
04010                             F.cfFormat = CF_TEXT;
04011                             F.ptd      = NULL;
04012                             F.dwAspect = DVASPECT_CONTENT;
04013                             F.lindex   = -1;
04014                             F.tymed    = TYMED_HGLOBAL;
04015
04016                             M.tymed = TYMED_HGLOBAL;
04017                             M.pUnkForRelease = NULL;
04018                             M.hGlobal = GlobalAlloc(GMEM_MOVEABLE, Len+1);
04019
04020                             void* P = GlobalLock(M.hGlobal);
04021                             CopyMemory(P, m_cEditDoc.GetFilePath(), Len+1);
04022                             GlobalUnlock(M.hGlobal);
04023
04024                             DataObject->SetData(&F, &M, TRUE);
04025 #endif
04026                             //移動は禁止
04027                             DWORD R;
04028                             DoDragDrop(DataObject, new CDropSource(TRUE), DROPEFFECT_COPY | DROPEFFECT_LINK, &R);
04029                             DataObject->Release();
04030                         }
04031                         Folder->Release();
04032                     }
04033                     Desktop->Release();
04034                     Malloc->Release();
04035                 }
04036             }
04037         }
04038         return 0;
04039     }
04040
04041 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
04042     if (!m_pPrintPreview){
04043         return 0;
04044     }
04045     else {
04046         return m_pPrintPreview->OnMouseMove( wParam, lParam );
04047     }
04048 }
04049
04050
04051
04052
04053 LRESULT CEditWnd::OnMouseWheel( WPARAM wParam, LPARAM lParam )
04054 {
04055 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
04056     /* 印刷プレビューモードか */
04057     if( !m_pPrintPreview ){
04058         // 2006.03.26 ryoji by assitance with John タブ上ならウィンドウ切り替え
04059         if( m_pShareData->m_Common.m_bChgWndByWheel && NULL != m_cTabWnd.m_hwndTab )
04060         {
04061             POINT pt;
04062             pt.x = (short)LOWORD( lParam );
04063             pt.y = (short)HIWORD( lParam );
04064             int nDelta = (short)HIWORD( wParam );
04065             HWND hwnd = ::WindowFromPoint( pt );
04066             if( (hwnd == m_cTabWnd.m_hwndTab || hwnd == m_cTabWnd.m_hWnd) )
04067             {
04068                 // 現在開いている編集窓のリストを得る
04069                 EditNode* pEditNodeArr;
04070                 int nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
04071                 if(  nRowNum > 0 )
04072                 {
04073                     // 自分のウィンドウを調べる
04074                     int i, j;
04075                     int nGroup = 0;
04076                     for( i = 0; i < nRowNum; ++i )
04077                     {
04078                         if( m_hWnd == pEditNodeArr[i].m_hWnd )
04079                         {
04080                             nGroup = pEditNodeArr[i].m_nGroup;
04081                             break;
04082                         }
04083                     }
04084                     if( i < nRowNum )
04085                     {
04086                         if( nDelta < 0 )
04087                         {
04088                             // 次のウィンドウ
04089                             for( j = i + 1; j < nRowNum; ++j )
04090                             {
04091                                 if( nGroup == pEditNodeArr[j].m_nGroup )
04092                                     break;
04093                             }
04094                             if( j >= nRowNum )
04095                             {
04096                                 for( j = 0; j < i; ++j )
04097                                 {
04098                                     if( nGroup == pEditNodeArr[j].m_nGroup )
04099                                         break;
04100                                 }
04101                             }
04102                         }
04103                         else
04104                         {
04105                             // 前のウィンドウ
04106                             for( j = i - 1; j >= 0; --j )
04107                             {
04108                                 if( nGroup == pEditNodeArr[j].m_nGroup )
04109                                     break;
04110                             }
04111                             if( j < 0 )
04112                             {
04113                                 for( j = nRowNum - 1; j > i; --j )
04114                                 {
04115                                     if( nGroup == pEditNodeArr[j].m_nGroup )
04116                                         break;
04117                                 }
04118                             }
04119                         }
04120
04121                         /* 次の（or 前の）ウィンドウをアクティブにする */
04122                         if( i != j )
04123                             ActivateFrameWindow( pEditNodeArr[j].m_hWnd );
04124                     }
04125
04126                     delete []pEditNodeArr;
04127                 }
04128                 return 0;
04129             }
04130         }
04131
04132         /* メッセージの配送 */
04133         return m_cEditDoc.DispatchEvent( m_hWnd, WM_MOUSEWHEEL, wParam, lParam );
04134     }
04135     return m_pPrintPreview->OnMouseWheel( wParam, lParam );
04136 }
04137
04138 /* 印刷ページ設定
04139     印刷プレビュー時にも、そうでないときでも呼ばれる可能性がある。
04140 */
04141 BOOL CEditWnd::OnPrintPageSetting( void )
04142 {
04143     /* 印刷設定（CANCEL押したときに破棄するための領域） */
04144     CDlgPrintSetting    cDlgPrintSetting;
04145     BOOL                bRes;
04146     PRINTSETTING        PrintSettingArr[MAX_PRINTSETTINGARR];
04147     int                 i;
04148     int                 nCurrentPrintSetting;
04149     for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
04150         PrintSettingArr[i] = m_pShareData->m_PrintSettingArr[i];
04151     }
04152
04153 //  cDlgPrintSetting.Create( m_hInstance, m_hWnd );
04154     nCurrentPrintSetting = m_cEditDoc.GetDocumentAttribute().m_nCurrentPrintSetting;
04155     bRes = cDlgPrintSetting.DoModal(
04156         m_hInstance,
04157 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
04158         m_hWnd,
04159         &nCurrentPrintSetting, /* 現在選択している印刷設定 */
04160         PrintSettingArr
04161     );
04162
04163     if( TRUE == bRes ){
04164         /* 現在選択されているページ設定の番号が変更されたか */
04165         if( nCurrentPrintSetting !=
04166             m_pShareData->m_Types[m_cEditDoc.GetDocumentType()].m_nCurrentPrintSetting
04167         ){
04168 //          /* 変更フラグ(タイプ別設定) */
04169             m_cEditDoc.GetDocumentAttribute().m_nCurrentPrintSetting = nCurrentPrintSetting;
04170         }
04171
04172 //      /* それぞれのページ設定の内容が変更されたか */
04173 //      if( 0 != memcmp(
04174 //          &m_pShareData->m_PrintSettingArr,
04175 //          &PrintSettingArr,
04176 //          sizeof( m_pShareData->m_PrintSettingArr ) )
04177 //      ){
04178 //          m_pShareData->m_bPrintSettingModify = TRUE; /* 変更フラグ(印刷の全体) */
04179             for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
04180 //              if( 0 != memcmp(
04181 //                  &m_pShareData->m_PrintSettingArr[i],
04182 //                  &PrintSettingArr[i],
04183 //                  sizeof( m_pShareData->m_PrintSettingArr[i] ) )
04184 //              ){
04185 //                  /* 変更フラグ(印刷設定ごと) */
04186 //                  m_pShareData->m_bPrintSettingModifyArr[i] = TRUE;
04187                     m_pShareData->m_PrintSettingArr[i] = PrintSettingArr[i];
04188 //              }
04189             }
04190 //      }
04191
04192 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
04193         //  印刷プレビュー時のみ。
04194         if ( m_pPrintPreview ){
04195             /* 現在の印刷設定 */
04196             m_pPrintPreview->SetPrintSetting( &m_pShareData->m_PrintSettingArr[m_cEditDoc.GetDocumentAttribute().m_nCurrentPrintSetting] );
04197
04198             /* 印刷プレビュー スクロールバー初期化 */
04199             m_pPrintPreview->InitPreviewScrollBar();
04200
04201             /* 印刷設定の反映 */
04202             m_pPrintPreview->OnChangePrintSetting( );
04203
04204             ::InvalidateRect( m_hWnd, NULL, TRUE );
04205         }
04206     }
04207 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
04208     ::UpdateWindow( m_hWnd /* m_pPrintPreview->GetPrintPreviewBarHANDLE() */);
04209     return bRes;
04210 }
04211
04213
04214 LRESULT CEditWnd::OnNcLButtonDown(WPARAM wp, LPARAM lp)
04215 {
04216     LRESULT Result;
04217     if(wp == HTSYSMENU)
04218     {
04219         SetCapture(m_hWnd);
04220         m_IconClicked = icDown;
04221         Result = 0;
04222     }
04223     else
04224         Result = DefWindowProc(m_hWnd, WM_NCLBUTTONDOWN, wp, lp);
04225
04226     return Result;
04227 }
04228
04229 LRESULT CEditWnd::OnNcLButtonUp(WPARAM wp, LPARAM lp)
04230 {
04231     LRESULT Result;
04232     if(m_IconClicked != icNone)
04233     {
04234         //念のため
04235         ReleaseCapture();
04236         m_IconClicked = icNone;
04237         Result = 0;
04238     }
04239     else if(wp == HTSYSMENU)
04240         Result = 0;
04241     else{
04242         //  2004.05.23 Moca メッセージミス修正
04243         //  フレームのダブルクリック時後にウィンドウサイズ
04244         //  変更モードなっていた
04245         Result = DefWindowProc(m_hWnd, WM_NCLBUTTONUP, wp, lp);
04246     }
04247
04248     return Result;
04249 }
04250
04251 LRESULT CEditWnd::OnLButtonDblClk(WPARAM wp, LPARAM lp) //by 鬼(2)
04252 {
04253     LRESULT Result;
04254     if(m_IconClicked != icNone)
04255     {
04256         ReleaseCapture();
04257         m_IconClicked = icDoubleClicked;
04258
04259         SendMessage(m_hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
04260
04261         Result = 0;
04262     }
04263     else {
04264         //  2004.05.23 Moca メッセージミス修正
04265         Result = DefWindowProc(m_hWnd, WM_LBUTTONDBLCLK, wp, lp);
04266     }
04267
04268     return Result;
04269 }
04270     //@@@ 2002.06.15 MIK
04272 int CEditWnd::CreateFileDropDownMenu( HWND hwnd )
04273 {
04274     int         nId;
04275     HMENU       hMenu;
04276     HMENU       hMenuPopUp;
04277     POINT       po;
04278     RECT        rc;
04279     int         nIndex;
04280
04281     // メニュー表示位置を決める // 2007.03.25 ryoji
04282     // ※ TBN_DROPDOWN 時の NMTOOLBAR::iItem や NMTOOLBAR::rcButton にはドロップダウンメニュー(開く)ボタンが
04283     //    複数あるときはどれを押した時も１個目のボタン情報が入るようなのでマウス位置からボタン位置を求める
04284     ::GetCursorPos( &po );
04285     ::ScreenToClient( hwnd, &po );
04286     nIndex = ::SendMessage( hwnd, TB_HITTEST, (WPARAM)0, (LPARAM)&po );
04287     if( nIndex < 0 ){
04288         return 0;
04289     }
04290     ::SendMessage( hwnd, TB_GETITEMRECT, (WPARAM)nIndex, (LPARAM)&rc );
04291     po.x = rc.left;
04292     po.y = rc.bottom;
04293     ::ClientToScreen( hwnd, &po );
04294     GetMonitorWorkRect( po, &rc );
04295     if( po.x < rc.left )
04296         po.x = rc.left;
04297     if( po.y < rc.top )
04298         po.y = rc.top;
04299
04300
04301     m_CMenuDrawer.ResetContents();
04302
04303     /* MRUリストのファイルのリストをメニューにする */
04304     CMRU cMRU;
04305     hMenu = cMRU.CreateMenu( &m_CMenuDrawer );
04306     if( cMRU.Length() > 0 )
04307     {
04308         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
04309     }
04310
04311     /* 最近使ったフォルダのメニューを作成 */
04312     CMRUFolder cMRUFolder;
04313     hMenuPopUp = cMRUFolder.CreateMenu( &m_CMenuDrawer );
04314     if ( cMRUFolder.Length() > 0 )
04315     {
04316         //  アクティブ
04317         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT)hMenuPopUp, "最近使ったフォルダ(&D)" );
04318     }
04319     else
04320     {
04321         //  非アクティブ
04322         m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING | MF_POPUP | MF_GRAYED, (UINT)hMenuPopUp, "最近使ったフォルダ(&D)" );
04323     }
04324
04325     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL, FALSE );
04326
04327     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILENEW, "新規作成(&N)", FALSE );
04328     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, F_FILEOPEN, "開く(&O)...", FALSE );
04329
04330     nId = ::TrackPopupMenu(
04331         hMenu,
04332         TPM_TOPALIGN
04333         | TPM_LEFTALIGN
04334         | TPM_RETURNCMD
04335         | TPM_LEFTBUTTON
04336         ,
04337         po.x,
04338         po.y,
04339         0,
04340         hwnd,
04341         NULL
04342     );
04343
04344     ::DestroyMenu( hMenu );
04345
04346     return nId;
04347 }
04348
04350 void CEditWnd::ProcSearchBox( MSG *msg )
04351 {
04352     if( msg->message == WM_KEYDOWN /* && ::GetParent( msg->hwnd ) == m_hwndSearchBox */ )
04353     {
04354         if( (TCHAR)msg->wParam == VK_RETURN )  //リターンキー
04355         {
04356             //検索キーワードを取得
04357             char    szText[_MAX_PATH];
04358             memset( szText, 0, sizeof(szText) );
04359             ::SendMessage( m_hwndSearchBox, WM_GETTEXT, _MAX_PATH - 1, (LPARAM)szText );
04360             if( szText[0] ) //キー文字列がある
04361             {
04362                 //検索キーを登録
04363                 CShareData::getInstance()->AddToSearchKeyArr( (const char*)szText );
04364
04365                 //::SetFocus( m_hWnd ); //先にフォーカスを移動しておかないとキャレットが消える
04366                 ::SetFocus( m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_hWnd );
04367
04368                 // 検索開始時のカーソル位置登録条件を変更 02/07/28 ai start
04369                 m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_nSrchStartPosX_PHY = m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_nCaretPosX_PHY;
04370                 m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_nSrchStartPosY_PHY = m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_nCaretPosY_PHY;
04371                 // 02/07/28 ai end
04372
04373                 //次を検索
04374                 OnCommand( (WORD)0 /*メニュー*/, (WORD)F_SEARCH_NEXT, (HWND)0 );
04375             }
04376         }
04377         else if( (TCHAR)msg->wParam == VK_TAB ) //タブキー
04378         {
04379             //フォーカスを移動
04380             //  2004.10.27 MIK IME表示位置のずれ修正
04381             ::SetFocus( m_hWnd  );
04382         }
04383     }
04384
04385     return;
04386 }
04387
04399 void CEditWnd::SetWindowIcon(HICON hIcon, int flag)
04400 {
04401     HICON hOld = (HICON)::SendMessage( m_hWnd, WM_SETICON, flag, (LPARAM)hIcon );
04402     if( hOld != NULL ){
04403         ::DestroyIcon( hOld );
04404     }
04405 }
04406
04417 void CEditWnd::GetDefaultIcon( HICON& hIconBig, HICON& hIconSmall ) const
04418 {
04419     hIconBig = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, false );
04420     hIconSmall = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, true );
04421 }
04422
04438 bool CEditWnd::GetRelatedIcon(const char* szFile, HICON& hIconBig, HICON& hIconSmall) const
04439 {
04440     if( NULL != szFile && szFile[0] != '\0' ){
04441         char szExt[_MAX_EXT];
04442         char FileType[1024];
04443
04444         // (.で始まる)拡張子の取得
04445         _splitpath( szFile, NULL, NULL, NULL, szExt );
04446
04447         if( ReadRegistry(HKEY_CLASSES_ROOT, szExt, NULL, FileType, sizeof(FileType) - 13)){
04448             lstrcat( FileType, "\\DefaultIcon" );
04449             if( ReadRegistry(HKEY_CLASSES_ROOT, FileType, NULL, NULL, 0)){
04450                 // 関連づけられたアイコンを取得する
04451                 SHFILEINFO shfi;
04452                 SHGetFileInfo( szFile, 0, &shfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_LARGEICON );
04453                 hIconBig = shfi.hIcon;
04454                 SHGetFileInfo( szFile, 0, &shfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_SMALLICON );
04455                 hIconSmall = shfi.hIcon;
04456                 return true;
04457             }
04458         }
04459     }
04460
04461     //  標準のアイコンを返す
04462     GetDefaultIcon( hIconBig, hIconSmall );
04463     return false;
04464 }
04465
04466 /*
04467     @brief メニューバー表示用フォントの初期化
04468
04469     メニューバー表示用フォントの初期化を行う．
04470
04471     @date 2002.12.04 CEditViewのコンストラクタから移動
04472 */
04473 void CEditWnd::InitMenubarMessageFont(void)
04474 {
04475     TEXTMETRIC  tm;
04476     LOGFONT     lf;
04477     HDC         hdc;
04478     HFONT       hFontOld;
04479     int         i;
04480
04481     /* LOGFONTの初期化 */
04482     memset( &lf, 0, sizeof( LOGFONT ) );
04483     lf.lfHeight         = -12;
04484     lf.lfWidth          = 0;
04485     lf.lfEscapement     = 0;
04486     lf.lfOrientation    = 0;
04487     lf.lfWeight         = 400;
04488     lf.lfItalic         = 0x0;
04489     lf.lfUnderline      = 0x0;
04490     lf.lfStrikeOut      = 0x0;
04491     lf.lfCharSet        = 0x80;
04492     lf.lfOutPrecision   = 0x3;
04493     lf.lfClipPrecision  = 0x2;
04494     lf.lfQuality        = 0x1;
04495     lf.lfPitchAndFamily = 0x31;
04496     strcpy( lf.lfFaceName, "ＭＳ ゴシック" );
04497     m_hFontCaretPosInfo = ::CreateFontIndirect( &lf );
04498
04499     hdc = ::GetDC( ::GetDesktopWindow() );
04500     hFontOld = (HFONT)::SelectObject( hdc, m_hFontCaretPosInfo );
04501     ::GetTextMetrics( hdc, &tm );
04502     m_nCaretPosInfoCharWidth = tm.tmAveCharWidth;
04503     m_nCaretPosInfoCharHeight = tm.tmHeight;
04504     for( i = 0; i < ( sizeof( m_pnCaretPosInfoDx ) / sizeof( m_pnCaretPosInfoDx[0] ) ); ++i ){
04505         m_pnCaretPosInfoDx[i] = ( m_nCaretPosInfoCharWidth );
04506     }
04507     ::SelectObject( hdc, hFontOld );
04508     ::ReleaseDC( ::GetDesktopWindow(), hdc );
04509 }
04510
04511 /*
04512     @brief メニューバーにメッセージを表示する
04513
04514     事前にメニューバー表示用フォントが初期化されていなくてはならない．
04515     指定できる文字数は最大30バイト．それ以上の場合はうち切って表示する．
04516
04517     @author genta
04518     @date 2002.12.04
04519 */
04520 void CEditWnd::PrintMenubarMessage( const char* msg )
04521 {
04522     if( NULL == ::GetMenu( m_hWnd ) )   // 2007.03.08 ryoji 追加
04523         return;
04524
04525     HDC     hdc;
04526     POINT   po,poFrame;
04527     RECT    rc,rcFrame;
04528     HFONT   hFontOld;
04529     int     nStrLen;
04530     const int MAX_LEN = 30;
04531     char    szText[MAX_LEN + 1];
04532
04533     int len = strlen( msg );
04534     strncpy( szText, msg, MAX_LEN );
04535
04536     if( len < MAX_LEN ){
04537         memset( szText + len, ' ', MAX_LEN - len );
04538     }
04539     szText[MAX_LEN] = '\0';
04540
04541     hdc = ::GetWindowDC( m_hWnd );
04542     poFrame.x = 0;
04543     poFrame.y = 0;
04544     ::ClientToScreen( m_hWnd, &poFrame );
04545     ::GetWindowRect( m_hWnd, &rcFrame );
04546     po.x = rcFrame.right - rcFrame.left;
04547     po.y = poFrame.y - rcFrame.top;
04548     hFontOld = (HFONT)::SelectObject( hdc, m_hFontCaretPosInfo );
04549     nStrLen = MAX_LEN;
04550     rc.left = po.x - nStrLen * m_nCaretPosInfoCharWidth - 5;
04551     rc.right = rc.left + nStrLen * m_nCaretPosInfoCharWidth;
04552     rc.top = po.y - m_nCaretPosInfoCharHeight - 2;
04553     rc.bottom = rc.top + m_nCaretPosInfoCharHeight;
04554     ::SetTextColor( hdc, ::GetSysColor( COLOR_MENUTEXT ) );
04555     //  Sep. 6, 2003 genta Windows XP(Luna)の場合にはCOLOR_MENUBARを使わなくてはならない
04556     COLORREF bkColor =
04557         ::GetSysColor( COsVersionInfo().IsWinXP_or_later() ? COLOR_MENUBAR : COLOR_MENU );
04558     ::SetBkColor( hdc, bkColor );
04559     ::ExtTextOut( hdc,rc.left,rc.top,ETO_OPAQUE,&rc,szText,nStrLen,m_pnCaretPosInfoDx);
04560     ::SelectObject( hdc, hFontOld );
04561     ::ReleaseDC( m_hWnd, hdc );
04562 }
04563
04574 void CEditWnd::SendStatusMessage( const char* msg )
04575 {
04576     if( NULL == m_hwndStatusBar ){
04577         // メニューバーへ
04578         PrintMenubarMessage( msg );
04579     }else{
04580         // ステータスバーへ
04581         ::SendMessage( m_hwndStatusBar,SB_SETTEXT,0 | SBT_NOBORDERS,(LPARAM) (LPINT)msg );
04582     }
04583 }
04584
04599 void CEditWnd::SendStatusMessage2( const char* msg )
04600 {
04601     if( NULL != m_hwndStatusBar ){
04602         // ステータスバーへ
04603         ::SendMessage( m_hwndStatusBar,SB_SETTEXT,0 | SBT_NOBORDERS,(LPARAM) (LPINT)msg );
04604     }
04605 }
04606
04613 void CEditWnd::ChangeFileNameNotify( const char *pszTabCaption, const char *pszFilePath, BOOL bIsGrep )
04614 {
04615     CRecent cRecentEditNode;
04616     EditNode    *p;
04617     int     nIndex;
04618
04619     if( NULL == pszTabCaption ) pszTabCaption = ""; //ガード
04620     if( NULL == pszFilePath ) pszFilePath = "";     //ガード 2006.01.28 ryoji
04621
04622     cRecentEditNode.EasyCreate( RECENT_FOR_EDITNODE );
04623     nIndex = cRecentEditNode.FindItem( (const char*)&m_hWnd );
04624     if( -1 != nIndex )
04625     {
04626         p = (EditNode*)cRecentEditNode.GetItem( nIndex );
04627         if( p )
04628         {
04629             int size = sizeof( p->m_szTabCaption ) - 1;
04630             strncpy( p->m_szTabCaption, pszTabCaption, size );
04631             p->m_szTabCaption[ size ] = '\0';
04632
04633             // 2006.01.28 ryoji ファイル名、Grepモード追加
04634             size = sizeof( p->m_szFilePath ) - 1;
04635             strncpy( p->m_szFilePath, pszFilePath, size );
04636             p->m_szFilePath[ size ] = '\0';
04637
04638             p->m_bIsGrep = bIsGrep;
04639         }
04640     }
04641     cRecentEditNode.Terminate();
04642
04643     //ファイル名変更通知をブロードキャストする。
04644     int nGroup = CShareData::getInstance()->GetGroupId( m_hWnd );
04645     CShareData::getInstance()->PostMessageToAllEditors( MYWM_TAB_WINDOW_NOTIFY, (WPARAM)TWNT_FILE, (LPARAM)m_hWnd, m_hWnd, nGroup );
04646
04647     return;
04648 }
04661 LPARAM CEditWnd::ToolBarOwnerDraw( LPNMCUSTOMDRAW pnmh )
04662 {
04663     switch( pnmh->dwDrawStage ){
04664     case CDDS_PREPAINT:
04665         //  描画開始前
04666         //  アイテムを自前で描画する旨を通知する
04667         return CDRF_NOTIFYITEMDRAW;
04668
04669     case CDDS_ITEMPREPAINT:
04670         //  面倒くさいので，枠はToolbarに描いてもらう
04671         //  アイコンが登録されていないので中身は何も描かれない
04672         return CDRF_NOTIFYPOSTPAINT;
04673
04674     case CDDS_ITEMPOSTPAINT:
04675         {
04676             //  描画
04677             //  pnmh->dwItemSpec はコマンド番号なので，アイコン番号に変更する必要がある]
04678 // CMenuDrawerのメンバ変数をカプセル化 2005/8/9 aroka
04679 //          int nIconId = -1;
04680 //          for( int i = 1; i < m_CMenuDrawer.m_nMyButtonNum; i++ ){
04681 //              if( m_CMenuDrawer.m_tbMyButton[i].idCommand == pnmh->dwItemSpec ){
04682 //                  nIconId = m_CMenuDrawer.m_tbMyButton[i].iBitmap;
04683 //                  break;
04684 //              }
04685 //          }
04686             int nIndex = m_CMenuDrawer.FindIndexFromCommandId( pnmh->dwItemSpec );
04687             int nIconId = m_CMenuDrawer.GetIconId( nIndex );
04688
04689             //  もしもアイコンがなかったら
04690             if( nIconId < 0 ){
04691                 nIconId = 348; // なんとなく(i)アイコン
04692             }
04693
04694             int offset = ((pnmh->rc.bottom - pnmh->rc.top) - m_cIcons.cy()) / 2;        // アイテム矩形からの画像のオフセット   // 2007.03.25 ryoji
04695             int shift = pnmh->uItemState & ( CDIS_SELECTED | CDIS_CHECKED ) ? 1 : 0;    //  Aug. 30, 2003 genta ボタンを押されたらちょっと画像をずらす
04696             int color = pnmh->uItemState & CDIS_CHECKED ? COLOR_3DHILIGHT : COLOR_3DFACE;
04697
04698
04699             //  Sep. 6, 2003 genta 押下時は右だけでなく下にもずらす
04700             m_cIcons.Draw( nIconId, pnmh->hdc, pnmh->rc.left + offset + shift, pnmh->rc.top + offset + shift,
04701                 (pnmh->uItemState & CDIS_DISABLED ) ? ILD_MASK : ILD_NORMAL
04702             );
04703         }
04704         break;
04705     default:
04706         break;
04707     }
04708     return CDRF_DODEFAULT;
04709 }
04710
04715 void CEditWnd::WindowTopMost( int top )
04716 {
04717     if( 0 == top ){
04718         DWORD dwExstyle = (DWORD)::GetWindowLongPtr( m_hWnd, GWL_EXSTYLE );
04719         if( dwExstyle & WS_EX_TOPMOST ){
04720             top = 2; // 最前面である -> 解除
04721         }else{
04722             top = 1;
04723         }
04724     }
04725
04726     HWND hwndInsertAfter;
04727     switch( top ){
04728     case 1:
04729         hwndInsertAfter = HWND_TOPMOST;
04730         break;
04731     case 2:
04732         hwndInsertAfter = HWND_NOTOPMOST;
04733         break;
04734     default:
04735         return;
04736     }
04737
04738     ::SetWindowPos( m_hWnd, hwndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
04739
04740     // タブまとめ時は WS_EX_TOPMOST 状態を全ウィンドウで同期する    // 2007.05.18 ryoji
04741     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin ){
04742         HWND hwnd;
04743         int i;
04744         for( i = 0, hwndInsertAfter = m_hWnd; i < m_pShareData->m_nEditArrNum; i++ ){
04745             hwnd = m_pShareData->m_pEditArr[i].m_hWnd;
04746             if( hwnd != m_hWnd && CShareData::getInstance()->IsEditWnd( hwnd ) ){
04747                 if( !CShareData::getInstance()->IsSameGroup( m_hWnd, hwnd ) )
04748                     continue;
04749                 ::SetWindowPos( hwnd, hwndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
04750                 hwndInsertAfter = hwnd;
04751             }
04752         }
04753     }
04754 }
04755
04760 void CEditWnd::SetFocusSearchBox( void ) const
04761 {
04762     if( m_hwndSearchBox ){
04763         ::SetFocus(m_hwndSearchBox);
04764     }
04765 }
04766
04767
04768 // タイマーの更新を開始／停止する。 20060128 aroka
04769 // ツールバー表示はタイマーにより更新しているが、
04770 // アプリのフォーカスが外れたときにウィンドウからON/OFFを
04771 //  呼び出してもらうことにより、余計な負荷を停止したい。
04772 void CEditWnd::Timer_ONOFF( BOOL bStart )
04773 {
04774     if( NULL != m_hWnd ){
04775         if( bStart ){
04776             /* タイマーを起動 */
04777             if( 0 == ::SetTimer( m_hWnd, IDT_TOOLBAR, 300, NULL ) ){
04778 				::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
04779                     "CEditWnd::Create()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。"
04780                 );
04781             }
04782         } else {
04783             /* タCマーを削除 */
04784             ::KillTimer( m_hWnd, IDT_TOOLBAR );
04785         }
04786     }
04787     return;
04788 }
04789
04798 LRESULT CEditWnd::PopupWinList( bool bMousePos )
04799 {
04800     POINT pt;
04801
04802     // ポップアップ位置をアクティブビューの上辺に設定
04803     RECT rc;
04804
04805     if( bMousePos ){
04806         ::GetCursorPos( &pt );  // マウスカーソル位置に変更
04807     }
04808     else {
04809         ::GetWindowRect( m_cEditDoc.m_cEditViewArr[m_cEditDoc.m_nActivePaneIndex].m_hWnd, &rc );
04810         pt.x = rc.right - 150;
04811         if( pt.x < rc.left )
04812             pt.x = rc.left;
04813         pt.y = rc.top;
04814     }
04815
04816     // ウィンドウ一覧メニューをポップアップ表示する
04817     if( NULL != m_cTabWnd.m_hWnd ){
04818         m_cTabWnd.TabListMenu( pt );
04819     }
04820     else{
04821         EditNode*   pEditNodeArr;
04822         HMENU hMenu = ::CreatePopupMenu();  // 2006.03.23 fon
04823         int nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
04824         WinListMenu( hMenu, pEditNodeArr, nRowNum, TRUE );
04825         // メニューを表示する
04826         RECT rcWork;
04827         GetMonitorWorkRect( pt, &rcWork );  // モニタのワークエリア
04828         int nId = ::TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_RETURNCMD,
04829                                     ( pt.x > rcWork.left )? pt.x: rcWork.left,
04830                                     ( pt.y < rcWork.bottom )? pt.y: rcWork.bottom,
04831                                     0, m_hWnd, NULL);
04832         delete [] pEditNodeArr;
04833         ::DestroyMenu( hMenu );
04834         ::SendMessage( m_hWnd, WM_COMMAND, (WPARAM)nId, (LPARAM)NULL );
04835     }
04836
04837     return 0L;
04838 }
04839
04843 LRESULT CEditWnd::WinListMenu( HMENU hMenu, EditNode* pEditNodeArr, int nRowNum, BOOL bFull )
04844 {
04845     int         i;
04846     char        szMemu[280];
04847 //> EditNode*   pEditNodeArr;
04848     FileInfo*   pfi;
04849
04850 //> int nRowNum = CShareData::getInstance()->GetOpenedWindowArr( &pEditNodeArr, TRUE );
04851     if( nRowNum > 0 ){
04852 //>     /* セパレータ */
04853 //>     m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_SEPARATOR, 0, NULL );
04854         CShareData::getInstance()->TransformFileName_MakeCache();
04855         for( i = 0; i < nRowNum; ++i ){
04856             /* トレイからエディタへの編集ファイル名要求通知 */
04857             ::SendMessage( pEditNodeArr[i].m_hWnd, MYWM_GETFILEINFO, 0, 0 );
04858             pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
04859             if( pfi->m_bIsGrep ){
04860                 /* データを指定バイト数以内に切り詰める */
04861                 CMemory     cmemDes;
04862                 int         nDesLen;
04863                 const char* pszDes;
04864                 LimitStringLengthB( pfi->m_szGrepKey, lstrlen( pfi->m_szGrepKey ), 64, cmemDes );
04865                 pszDes = cmemDes.GetPtr();
04866                 nDesLen = lstrlen( pszDes );
04869                 wsprintf( szMemu, "&%c 【Grep】\"%s%s\"", ((1 + i) <= 9)?('1' + i):('A' + i - 9),
04870                     pszDes, ( (int)lstrlen( pfi->m_szGrepKey ) > nDesLen ) ? "・・・":""
04871                 );
04872             }else
04873             if( pEditNodeArr[i].m_hWnd == m_pShareData->m_hwndDebug ){
04875                 wsprintf( szMemu, "&%c アウトプット", ((1 + i) <= 9)?('1' + i):('A' + i - 9) );
04876
04877             }else{
04881                 char    szFile2[_MAX_PATH * 2];
04882                 if( '\0' == pfi->m_szPath[0] ){
04883                     strcpy( szFile2, "(無題)" );
04884                 }else{
04885                     char buf[_MAX_PATH];
04886                     CShareData::getInstance()->GetTransformFileNameFast( pfi->m_szPath, buf, _MAX_PATH );
04887                     dupamp( buf, szFile2 );
04888                 }
04889                 wsprintf( szMemu, "&%c %s %s", ((1 + i) <= 9)?('1' + i):('A' + i - 9),
04890                     szFile2,
04891                     pfi->m_bIsModified ? "*":" "
04892                 );
04895
04897                 // SJIS以外の文字コードの種別を表示する
04898                 // gm_pszCodeNameArr_3 からコピーするように変更
04899                 if( 0 < pfi->m_nCharCode && pfi->m_nCharCode < CODE_CODEMAX ){
04900                     strcat( szMemu, gm_pszCodeNameArr_3[pfi->m_nCharCode] );
04901                 }
04902             }
04903             m_CMenuDrawer.MyAppendMenu( hMenu, MF_BYPOSITION | MF_STRING, IDM_SELWINDOW + pEditNodeArr[i].m_nIndex, szMemu );
04904             if( m_hWnd == pEditNodeArr[i].m_hWnd ){
04905                 ::CheckMenuItem( hMenu, IDM_SELWINDOW + pEditNodeArr[i].m_nIndex, MF_BYCOMMAND | MF_CHECKED );
04906             }
04907         }
04908 //>     delete [] pEditNodeArr;
04909     }
04910     return 0L;
04911 }
04912
04913
04914 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditWnd.h

CEditWnd.h

編集ウィンドウ（外枠）管理クラス [詳細]

#include "CEditDoc.h"
#include "CShareData.h"
#include "CFuncKeyWnd.h"
#include "CTabWnd.h"
#include "CMenuDrawer.h"
#include "CImageListMgr.h"
#include "CDropTarget.h"

CEditWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CEditWnd
編集ウィンドウ（外枠）管理クラス [詳細]

説明

編集ウィンドウ（外枠）管理クラス

作者:
Norio Nakatani
日付:
1998/05/13 新規作成

2002/01/14 YAZAKI PrintPreviewの分離

CEditWnd.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEditWnd.h ソースファイル

CEditWnd.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2000, genta
00011     Copyright (C) 2001-2002, YAZAKI
00012     Copyright (C) 2002, aroka, genta, MIK
00013     Copyright (C) 2003, MIK, genta, wmlhq
00014     Copyright (C) 2004, Moca
00015     Copyright (C) 2005, genta, Moca
00016     Copyright (C) 2006, ryoji, aroka, fon, yukihane
00017     Copyright (C) 2007, ryoji
00018
00019     This source code is designed for sakura editor.
00020     Please contact the copyright holder to use this code for other purpose.
00021 */
00022
00023 #ifndef _CEDITWND_H_
00024 #define _CEDITWND_H_
00025
00026 class CEditWnd;
00027
00028 #include "CEditDoc.h"
00029 #include "CShareData.h"
00030 #include "CFuncKeyWnd.h"
00031 #include "CTabWnd.h"    //@@@ 2003.05.31 MIK
00032 #include "CMenuDrawer.h"
00033 #include "CImageListMgr.h"
00034
00035 //by 鬼
00036 #include"CDropTarget.h"
00037
00038 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00039 class CPrintPreview;// 2002/2/10 aroka
00040
00041
00042
00043
00045 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00046 class SAKURA_CORE_API CEditWnd
00047 {
00048 public:
00049     /*
00050     ||  Constructors
00051     */
00052     CEditWnd();
00053     ~CEditWnd();
00054
00055     /*
00056     || メンバ関数
00057     */
00058     //  Mar. 7, 2002 genta 文書タイプ用引数追加
00059     // 2007.06.26 ryoji グループ指定引数追加
00060     HWND Create( HINSTANCE, HWND, int nGroup, const char*, int, BOOL, int = -1 );   /* 作成 */
00061
00062
00063     LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* メッセージ処理 */
00064 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00065 //  BOOL DispatchEvent_PPB( HWND, UINT, WPARAM, LPARAM );   /* 印刷プレビュー 操作バー ダイアログのメッセージ処理 */
00066
00067     void PrintPreviewModeONOFF( void ); /* 印刷プレビューモードのオン/オフ */
00068
00069     LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );  /* 描画処理 */
00070     LRESULT OnSize( WPARAM, LPARAM );   /* WM_SIZE 処理 */
00071     LRESULT OnLButtonUp( WPARAM, LPARAM );
00072     LRESULT OnLButtonDown( WPARAM, LPARAM );
00073     LRESULT OnMouseMove( WPARAM, LPARAM );
00074     LRESULT OnMouseWheel( WPARAM, LPARAM );
00075     LRESULT OnHScroll( WPARAM, LPARAM );
00076     LRESULT OnVScroll( WPARAM, LPARAM );
00077
00078     void CreateToolBar( void );         /* ツールバー作成 */
00079     void DestroyToolBar( void );        /* ツールバー破棄 */
00080     void CreateStatusBar( void );       /* ステータスバー作成 */
00081     void DestroyStatusBar( void );      /* ステータスバー破棄 */
00082
00083     void LayoutToolBar( void );         /* ツールバーの配置処理 */          // 2006.12.19 ryoji
00084     void LayoutFuncKey( void );         /* ファンクションキーの配置処理 */  // 2006.12.19 ryoji
00085     void LayoutTabBar( void );          /* タブバーの配置処理 */            // 2006.12.19 ryoji
00086     void LayoutStatusBar( void );       /* ステータスバーの配置処理 */      // 2006.12.19 ryoji
00087     void EndLayoutBars( BOOL bAdjust = TRUE );  /* バーの配置終了処理 */    // 2006.12.19 ryoji
00088
00089     //@@@ 2002.01.14 YAZAKI 印刷プレビューのバーはCPrintPreviewに移動
00090
00091     void InitMenu( HMENU, UINT, BOOL );
00092 //複数プロセス版
00093     void MessageLoop( void );   /* メッセージループ */
00094
00095     int OnClose( void );    /* 終了時の処理 */
00096
00097 //@@@ 2002.01.14 YAZAKI 不使用のため
00098 //void CEditWnd::ExecCmd(LPCSTR lpszCmd/*, HANDLE hFile*/);
00099
00100     //  Sep. 10, 2002 genta
00101     void SetWindowIcon( HICON, int);
00102     //  Sep. 10, 2002 genta
00103     void GetDefaultIcon( HICON& hIconBig, HICON& hIconSmall ) const;
00104     bool GetRelatedIcon(const char* szFile, HICON& hIconBig, HICON& hIconSmall) const;
00105
00106     void ChangeFileNameNotify( const char *pszTabCaption, const char *pszFilePath, BOOL m_bIsGrep );    //ファイル名変更通知    //@@@ 2003.05.31 MIK, 2006.01.28 ryoji ファイル名、Grepモードパラメータを追加
00107
00108     //  Dec. 4, 2002 genta
00109     //  メニューバーへのメッセージ表示機能をCEditWndより移管
00110     void InitMenubarMessageFont(void);
00111     void PrintMenubarMessage( const char* msg );
00112     //  Dec. 4, 2002 genta 実体をCEditViewから移動
00113     void SendStatusMessage( const char* msg );
00114     //  Jul. 9, 2005 genta メニューバー右端には出したくない長めのメッセージを出す
00115     void SendStatusMessage2( const char* msg );
00123     bool SendStatusMessage2IsEffective(void) const {
00124         return NULL != m_hwndStatusBar;
00125     }
00126     void WindowTopMost( int ); // 2004.09.21 Moca
00127
00128     void SetFocusSearchBox( void ) const;           /* ツールバー検索ボックスへフォーカスを移動 */  // 2006.06.04 yukihane
00129
00130 //  void MyAppendMenu( HMENU, int, int, char* );    /* メニュー項目を追加 */
00131 //#ifdef _DEBUG
00132     void SetDebugModeON( void );    /* デバッグモニタモードに設定 */
00133     // 2005.06.24 Moca
00134     void SetDebugModeOFF( void );
00135 //#endif
00136     LRESULT PopupWinList( bool bMousePos );     // 2006.03.23 fon   // 2007.02.28 ryoji フルパス指定のパラメータを削除
00137     LRESULT WinListMenu( HMENU hMenu, EditNode* pEditNodeArr, int nRowNum, BOOL bFull );        // 2006.03.23 fon
00138
00139     /*
00140     || スタティックなメンバ関数
00141     */
00142     static int IsFuncEnable( CEditDoc*, DLLSHAREDATA*, int );   /* 機能が利用可能か調べる */
00143     static int IsFuncChecked( CEditDoc*, DLLSHAREDATA*, int );  /* 機能がチェック状態か調べる */
00144
00145     static void OnHelp_MenuItem( HWND, int );   /* メニューアイテムに対応するヘルプを表示 */
00146 //  static int FuncID_To_HelpContextID( int );  /* 機能IDに対応するメニューコンテキスト番号を返す */
00147
00148     /*
00149     || メンバ変数
00150     */
00151     HINSTANCE       m_hInstance;
00152     HWND            m_hWnd;
00153     char*           m_pszAppName;
00154     CEditDoc        m_cEditDoc;
00155     HWND            m_hwndParent;
00156     HWND            m_hwndReBar;    // Rebar ウィンドウ //@@@ 2006.06.17 ryoji
00157     HWND            m_hwndToolBar;
00158     HWND            m_hwndStatusBar;
00159     HWND            m_hwndProgressBar;
00160     //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことにより
00161     //  変数を移動
00162     DLLSHAREDATA*   m_pShareData;
00163 //  int             m_nSettingType;
00164 //@@@ 2002.01.14 YAZAKI 不使用のため
00165 //  HBITMAP         m_hbmpOPENED;
00166 //  HBITMAP         m_hbmpOPENED_THIS;
00167     CFuncKeyWnd     m_CFuncKeyWnd;
00168     CTabWnd         m_cTabWnd;      //タブウインドウ    //@@@ 2003.05.31 MIK
00169     CMenuDrawer     m_CMenuDrawer;
00170     int             m_nWinSizeType; /* サイズ変更のタイプ */
00171     //  うまくやれば、以下はPrintPreviewへ行きそう。
00172     BOOL            m_bDragMode;
00173     int             m_nDragPosOrgX;
00174     int             m_nDragPosOrgY;
00175     //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことにより
00176     //  変数を移動
00177 //  HANDLE          m_hThread;
00178
00179 //  int             m_nChildArrNum;
00180 //  HWND            m_hwndChildArr[32];
00181
00182
00183     /* 印刷プレビュー表示情報 */
00184     //  必要になったとき（プレビューコマンドを選んだとき）に生成し、必要なくなったら（プレビューコマンドを終了するときに）破棄すること。
00185     CPrintPreview*  m_pPrintPreview;
00186     //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことにより
00187     //  変数を移動
00188     //  うまくやれば、以下もPrintPreviewへ行きそう
00189     //  2006.08.14 Moca DC,BMPをPrintPreviewへ移動
00190
00191     //  Oct. 12, 2000 genta
00192     CImageListMgr   m_cIcons;   //  Image List
00193
00194     /*
00195     || 実装ヘルパ系
00196     */
00197 protected:
00198     void OnDropFiles( HDROP );  /* ファイルがドロップされた */
00199     //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことにより
00200     //  メソッドを移動
00201 //@@@ 2002.01.14 YAZAKI 印刷プレビューをCPrintPreviewに独立させたことによる変更
00202 public:
00203     BOOL OnPrintPageSetting( void );/* 印刷ページ設定 */
00204
00205 private:
00206     UINT    m_uMSIMEReconvertMsg;
00207     UINT    m_uATOKReconvertMsg;
00208
00209 //by 鬼
00210 private:
00211     enum {icNone, icDown, icClicked, icDoubleClicked} m_IconClicked;
00212     LRESULT OnNcLButtonDown(WPARAM, LPARAM);
00213     LRESULT OnNcLButtonUp(WPARAM, LPARAM);
00214     LRESULT OnLButtonDblClk(WPARAM, LPARAM);
00215
00216     int CreateFileDropDownMenu( HWND ); //開く(ドロップダウン)  //@@@ 2002.06.15 MIK
00217     HWND    m_hwndSearchBox;
00218     HFONT   m_fontSearchBox;
00219     void    ProcSearchBox( MSG* );  //検索(ボックス)
00220     int     m_nCurrentFocus;
00221     BOOL    m_bIsActiveApp; // 自アプリがアクティブかどうか // 2007.03.08 ryoji
00222     BOOL    m_bUIPI;    // エディタ－トレイ間でのUI特権分離確認用フラグ // 2007.06.07 ryoji
00223
00224     //  Jul. 21, 2003 genta ToolBarのOwner Draw
00225     LPARAM ToolBarOwnerDraw( LPNMCUSTOMDRAW pnmh );
00226
00227     //  Dec. 4, 2002 genta
00228     //  メニューバーへのメッセージ表示機能をCEditWndより移管
00229     HFONT       m_hFontCaretPosInfo;
00230     int         m_nCaretPosInfoCharWidth;
00231     int         m_nCaretPosInfoCharHeight;
00232     int         m_pnCaretPosInfoDx[64]; /* 文字列描画用文字幅配列 */
00233
00234     LPTSTR      m_pszLastCaption;
00235     int m_nTimerCount;
00236
00237     // ツールバー更新用と自動保存用のタイマーを分離した 20060128 aroka
00238     LRESULT OnTimer( WPARAM, LPARAM );  // WM_TIMER 処理    // 2007.04.03 ryoji
00239     void OnEditTimer( void );   /* タイマーの処理 */
00240     void OnToolbarTimer( void );    /* タイマーの処理 20060128 aroka */
00241     void OnCaptionTimer( void );
00242     void OnSysMenuTimer( void );
00243     void OnCommand( WORD, WORD , HWND );
00244     void Timer_ONOFF( BOOL ); /* 更新の開始／停止 20060128 aroka */
00245 public:
00246     BOOL IsActiveApp() const { return m_bIsActiveApp; };    // 自アプリがアクティブかどうか // 2007.03.08 ryoji
00247 };
00248
00249
00251 #endif /* _CEDITWND_H_ */
00252
00253
00254 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEol.cpp

CEol.cpp

CEOLクラスの実装 [詳細]

#include "stdafx.h"
#include "CEol.h"

CEol.cppのインクルード依存関係図

ソースコードを見る。

説明

CEOLクラスの実装

作者:
genta
日付:
2000/05/15 新規作成 genta

CEol.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEol.cpp ソースファイル

CEol.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2001, genta
00009     Copyright (C) 2000, Frozen, Moca
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031 #include "stdafx.h"
00032 #include "CEol.h"
00033
00034 //-----------------------------------------------
00035 //  固定データ
00036 //-----------------------------------------------
00038 const char* CEOL::gm_pszEolDataArr[EOL_TYPE_NUM] = {
00039     "",
00040     "\x0d\x0a",         // EOL_CRLF
00041     "\x0a\x0d",         // EOL_LFCR
00042     "\x0a",             // EOL_LF
00043     "\x0d"              // EOL_CR
00044 };
00045
00047 const wchar_t* CEOL::gm_pszEolUnicodeDataArr[EOL_TYPE_NUM] = {
00048     L"",
00049     L"\x0d\x0a",        // EOL_CRLF
00050     L"\x0a\x0d",        // EOL_LFCR
00051     L"\x0a",            // EOL_LF
00052     L"\x0d"             // EOL_CR
00053 };
00054
00056 const wchar_t* CEOL::gm_pszEolUnicodeBEDataArr[EOL_TYPE_NUM] = {
00057     L"",
00058     (const wchar_t*)"\x00\x0d\x00\x0a\x00",     // EOL_CRLF
00059     (const wchar_t*)"\x00\x0a\x00\x0d\x00",     // EOL_LFCR
00060     (const wchar_t*)"\x00\x0a\x00",             // EOL_LF
00061     (const wchar_t*)"\x00\x0d\x00"              // EOL_CR
00062 };
00063
00065 const int CEOL::gm_pnEolLenArr[EOL_TYPE_NUM] = {
00066     LEN_EOL_NONE            ,   // == 0
00067     LEN_EOL_CRLF            ,   // == 2
00068     LEN_EOL_LFCR            ,   // == 2
00069     LEN_EOL_LF              ,   // == 1
00070     LEN_EOL_CR                  // == 1
00071 //  LEN_EOL_UNKNOWN             // == 0
00072 };
00073
00074 /* 行終端子の表示名の配列 */
00075 const char* CEOL::gm_pszEolNameArr[EOL_TYPE_NUM] = {
00076     //  May 12, 2000 genta
00077     //  文字幅の都合上“無”を漢字に
00078     "改行無",
00079     "CRLF",
00080     "LFCR",
00081     "LF",
00082     "CR"
00083 };
00084 //-----------------------------------------------
00085 //  実装部
00086 //-----------------------------------------------
00093 bool CEOL::SetType( enumEOLType t )
00094 {
00095     if( t < EOL_NONE || EOL_CR < t ){
00096         //  異常値
00097         m_enumEOLType = EOL_CRLF;
00098         return false;
00099     }
00100     //  正しい値
00101     m_enumEOLType = t;
00102     return true;
00103 }
00104
00111 enumEOLType CEOL::GetEOLType( const char* pszData, int nDataLen )
00112 {
00113     int i;
00114     /* 改行コードの長さを調べる */
00115     for( i = 1; i < EOL_TYPE_NUM; ++i ){
00116         if( gm_pnEolLenArr[i] <= nDataLen
00117          && 0 == memcmp( pszData, gm_pszEolDataArr[i], gm_pnEolLenArr[i] )
00118         ){
00119             return gm_pnEolTypeArr[i];
00120         }
00121     }
00122     return EOL_NONE;
00123 }
00124
00131 enumEOLType CEOL::GetEOLTypeUni( const wchar_t* pszData, int nDataLen )
00132 {
00133     int i;
00134     /* 改行コードの長さを調べる */
00135     for( i = 1; i < EOL_TYPE_NUM; ++i ){
00136         if( gm_pnEolLenArr[i] <= nDataLen
00137          && 0 == memcmp( pszData, gm_pszEolUnicodeDataArr[i], gm_pnEolLenArr[i] * sizeof( wchar_t ) )
00138         ){
00139             return gm_pnEolTypeArr[i];
00140         }
00141     }
00142     return EOL_NONE;
00143 }
00144
00145 /*
00146     行端子の種類を調べるUnicodeBE版
00147     @param pszData 調査対象文字列へのポインタ
00148     @param nDataLen 調査対象文字列の長さ(wchar_tの長さ)
00149     @return 改行コードの種類。終端子が見つからなかったときはEOL_NONEを返す。
00150 */
00151 enumEOLType CEOL::GetEOLTypeUniBE( const wchar_t* pszData, int nDataLen )
00152 {
00153     int i;
00154     /* 改行コードの長さを調べる */
00155     for( i = 1; i < EOL_TYPE_NUM; ++i ){
00156         if( gm_pnEolLenArr[i] <= nDataLen
00157          && 0 == memcmp( pszData, gm_pszEolUnicodeBEDataArr[i], gm_pnEolLenArr[i] * sizeof( wchar_t ) )
00158         ){
00159             return gm_pnEolTypeArr[i];
00160         }
00161     }
00162     return EOL_NONE;
00163 }
00164
00165 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEol.h

CEol.h

End of Line種別の管理 [詳細]

#include "global.h"

CEol.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CEOL
行末の改行コードを管理 [詳細]

説明

End of Line種別の管理

作者:
genta
日付:
2000/5/15 新規作成

CEol.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CEol.h ソースファイル

CEol.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2001, genta
00009     Copyright (C) 2002, frozen, Moca
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #ifndef _CEOL_H_
00033 #define _CEOL_H_
00034
00035 #include "global.h"
00036
00037 /*-----------------------------------------------------------------------
00038 クラスの宣言
00039 -----------------------------------------------------------------------*/
00047 class SAKURA_CORE_API CEOL
00048 {
00049     static const char* gm_pszEolDataArr[EOL_TYPE_NUM];
00050     static const wchar_t* gm_pszEolUnicodeDataArr[EOL_TYPE_NUM];
00051     static const wchar_t* gm_pszEolUnicodeBEDataArr[EOL_TYPE_NUM];
00052     static const int gm_pnEolLenArr[EOL_TYPE_NUM];
00053     static const char* gm_pszEolNameArr[EOL_TYPE_NUM];
00054 public:
00055
00056     //  設定関数
00057     void Init(void){
00058         m_enumEOLType = EOL_NONE;
00059     //  m_nEOLLen = 2; /* = CR+LF */
00060     }
00061
00062     static enumEOLType GetEOLType( const char* pszData, int nDataLen );
00063     static enumEOLType GetEOLTypeUni( const wchar_t* pszData, int nDataLen );
00064     static enumEOLType GetEOLTypeUniBE( const wchar_t* pszData, int nDataLen );
00065     bool SetType( enumEOLType t);   //  Typeの設定
00066     void GetTypeFromString( const char* pszData, int nDataLen )
00067         {   SetType( GetEOLType( pszData, nDataLen ) ); }
00068
00069     //  読み出し関数
00070     enumEOLType GetType(void) const { return m_enumEOLType; }
00071     int GetLen(void) const
00072         { return gm_pnEolLenArr[ m_enumEOLType ]; }
00073     const char* GetName(void) const
00074         { return gm_pszEolNameArr[ m_enumEOLType ]; }
00075     const char* GetValue(void) const
00076         { return gm_pszEolDataArr[ m_enumEOLType ]; }
00077     const char* GetUnicodeValue() const
00078         { return reinterpret_cast<const char*>(gm_pszEolUnicodeDataArr[m_enumEOLType]);}
00079     const char* GetUnicodeBEValue(void) const
00080         { return reinterpret_cast<const char*>(gm_pszEolUnicodeBEDataArr[m_enumEOLType]); }
00081
00082     //  利便性向上のためのOverload
00083     bool operator==( enumEOLType t ) const { return GetType() == t; }
00084     bool operator!=( enumEOLType t ) const { return GetType() != t; }
00085     const CEOL& operator=( const CEOL& t )
00086         { m_enumEOLType = t.m_enumEOLType; return *this; }
00087     operator enumEOLType(void) const { return GetType(); }
00088
00089     //  constructor
00090     CEOL(){ Init(); }
00091     CEOL( enumEOLType t ){ SetType(t); }
00092
00093 private:
00094     enumEOLType     m_enumEOLType;
00095     //int           m_nEOLLen;      /* 改行コードの長さ */
00096 };
00097
00098 //  利便性向上のためのOverload
00099 // inline bool operator==(m_enumEOLType t, const CEOL& c ){ return c == t; }
00100 // inline bool operator!=(m_enumEOLType t, const CEOL& c ){ return c != t; }
00101
00102 #endif
00103
00104
00105 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CESI.cpp

CESI.cpp

文字コード調査情報保持クラス [詳細]

#include "stdafx.h"
#include "CESI.h"
#include "charcode.h"

CESI.cppのインクルード依存関係図

ソースコードを見る。

説明

文字コード調査情報保持クラス

作者:
Sakura-Editor collaborators
日付:
2006/12/10 新規作成

CESI.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CESI.cpp ソースファイル

CESI.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2006, rastiv
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #include "stdafx.h"
00032 #include "CESI.h"
00033 #include "charcode.h"
00034
00038 bool CESI::ScanEncoding( const char* pS, const int nLen )
00039 {
00040     if( NULL == pS ){
00041         return false;
00042     }
00043     Charcode::GetEncdInf_SJis( pS, nLen, &m_pEI[0] );
00044     Charcode::GetEncdInf_EucJp( pS, nLen, &m_pEI[1] );
00045     Charcode::GetEncdInf_Jis( pS, nLen, &m_pEI[2] );
00046     Charcode::GetEncdInf_Utf8( pS, nLen, &m_pEI[3] );
00047     Charcode::GetEncdInf_Utf7( pS, nLen, &m_pEI[4] );
00048     Charcode::GetEncdInf_Uni( pS, nLen, &m_WEI );
00049
00050     return true;
00051 }
00052
00053
00054
00063 int CESI::DetectUnicode( WCCODE_INFO* pEI_result )
00064 {
00065     int nCRorLF_Uni;    // ワイド文字 Unicode の改行の個数
00066     int nCRorLF_UniBe;  // ワイド文字 UnicodeBE の改行の個数
00067     int nCRorLF_mb;     // マルチバイト文字の改行の個数
00068     int nCRorLF_wc;     // := MAX( nCRorLF_Uni, nCRorLF_UniBe )
00069     int nUniType;
00070     int d;
00071
00072     /* マルチバイト文字の改行（0x0d,0x0a）の個数をチェック */
00073     nCRorLF_mb = m_WEI.nCRorLF_ascii;
00074     if( nCRorLF_mb < 1 ){
00075         return 0;
00076     }
00077
00078     /* ユニコード BOM の種類を判定 */
00079     // nUniType > 0 : リトルエンディアンらしい．
00080     // nUniType < 0 : ビッグエンディアンらしい.
00081     nCRorLF_Uni = m_WEI.Uni.nCRorLF;
00082     nCRorLF_UniBe = m_WEI.UniBe.nCRorLF;
00083     d = nUniType = nCRorLF_Uni - nCRorLF_UniBe;
00084
00085     /* ワイド文字の改行（0x0d00,0x0a00 or 0x000d,0x000a）の個数を取得 */
00086     nCRorLF_wc = nCRorLF_Uni;
00087     // d := nCRorLF_Uni - nCRorLF_UniBe
00088     if( nUniType < 0 ){
00089         nCRorLF_wc += -d;
00090     }
00091
00092     /*
00093         検証ステップ
00094     */
00095
00096     d = nCRorLF_mb - nCRorLF_wc;
00097     // ここで，必ず  nCRorLF_mb > 0 && nCRorLF_mb >= nCRorLF_wc.
00098     // だから，d > 0.
00099
00100     if( d < nCRorLF_wc ){
00101         /* マルチバイト文字の改行がワイド文字の改行より少ない場合. */
00102         // BOM の判定結果に従う．
00103         if( 0 < nUniType ){
00104             *pEI_result = m_WEI.Uni;
00105         }else if( nUniType < 0 ){
00106             *pEI_result = m_WEI.UniBe;
00107         }
00108         return nUniType;
00109     }else{ // 0 <= nCRorLF_wc <= d
00110         /* マルチバイト文字の改行がワイド文字の改行と同数かより多い場合. */
00111         // BOM の判定を破棄する.
00112         return 0;
00113     }
00114 }
00115
00116
00117
00124 int CESI::DetectMultibyte( MBCODE_INFO* pEI_result )
00125 {
00126     MBCODE_INFO* ppEI_MostDiff[NUM_OF_MBCODE];
00127     MBCODE_INFO* pei_tmp;
00128     int i, j;
00129
00130     /*
00131         「特有バイト数 － 不正バイト数」の数の大きい順にソート（バブルソート）
00132     */
00133     for( i = 0; i < NUM_OF_MBCODE; i++ ){
00134         ppEI_MostDiff[i] = &m_pEI[i];
00135     }
00136     for( i = 1; i < NUM_OF_MBCODE; i++ ){
00137         for( j = 0; j < NUM_OF_MBCODE - i; j++ ){
00138             if( ppEI_MostDiff[j]->nDiff < ppEI_MostDiff[j+1]->nDiff ){
00139                 pei_tmp = ppEI_MostDiff[j+1];
00140                 ppEI_MostDiff[j+1] = ppEI_MostDiff[j];
00141                 ppEI_MostDiff[j] = pei_tmp;
00142             }
00143         }
00144     }
00145     *pEI_result = *ppEI_MostDiff[0];
00146     return ppEI_MostDiff[0]->nDiff;
00147 }
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CESI.h

CESI.h

文字コード調査情報保持クラス [詳細]

#include "global.h"
#include "charcode.h"

CESI.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CESI

説明

文字コード調査情報保持クラス

作者:
Sakura-Editor collaborators
日付:
2006/12/10 新規作成

CESI.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CESI.h ソースファイル

CESI.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2006, rastiv
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef _CESI_H_
00032 #define _CESI_H_
00033
00034 #include "global.h"
00035 #include "charcode.h"
00036
00037 /*
00038     使用方法
00039
00040     CESI( const char*, const int ) でオブジェクトを作成するか，
00041     ScanEncoding() を使ってデータを取得してから，
00042     Detect 系関数を使う.
00043 */
00044
00045
00046 class CESI
00047 {
00048 public:
00049
00050     // CODE_CODEMAX -2 := マルチバイト系文字コードの数
00051     enum enum_CESI_public_constants {
00052         NUM_OF_MBCODE = CODE_CODEMAX - 2,
00053     };
00054
00055     CESI(){ }
00056     CESI( const char* pS, const int nLen ){ ScanEncoding( pS, nLen ); }
00057     bool ScanEncoding( const char*, const int );
00058     int DetectUnicode( WCCODE_INFO* );
00059     int DetectMultibyte( MBCODE_INFO* );
00060
00061 private:
00062
00063     MBCODE_INFO m_pEI[NUM_OF_MBCODE];
00064     UNICODE_INFO m_WEI;
00065 };
00066
00067
00068 #endif /*_CESI_H_*/
00069 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileExt.cpp

CFileExt.cpp

オープンダイアログ用ファイル拡張子管理 [詳細]

#include "stdafx.h"
#include <string.h>
#include <malloc.h>
#include "CFileExt.h"
#include "my_icmp.h"

CFileExt.cppのインクルード依存関係図

ソースコードを見る。

説明

オープンダイアログ用ファイル拡張子管理

作者:
MIK
日付:
2003.5.12

CFileExt.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:38 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileExt.cpp ソースファイル

CFileExt.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #include "stdafx.h"
00032 #include <string.h>
00033 #include <malloc.h>
00034 #include "CFileExt.h"
00035 #include "my_icmp.h"
00036
00037 CFileExt::CFileExt()
00038 {
00039 //  /* 共有データ構造体のアドレスを返す */
00040 //  m_pShareData = CShareData::getInstance()->GetShareData();
00041 //  m_Types = m_pShareData->m_Types;
00042
00043     m_puFileExtInfo = NULL;
00044     m_nCount = 0;
00045     strcpy( m_szFilter, "" );
00046
00047 //  //テキストエディタとして、既定でリストに載ってほしい拡張子
00048 //  AppendExt( "すべてのファイル", "*" );
00049 //  AppendExt( "テキストファイル", "txt" );
00050 }
00051
00052 CFileExt::~CFileExt()
00053 {
00054     if( m_puFileExtInfo ) free( m_puFileExtInfo );
00055     m_puFileExtInfo = NULL;
00056     m_nCount = 0;
00057 }
00058
00059 bool CFileExt::AppendExt( const char *pszName, const char *pszExt )
00060 {
00061     char    szWork[1024];
00062
00063     if( false == ConvertTypesExtToDlgExt( pszExt, szWork ) ) return false;
00064     return AppendExtRaw( pszName, szWork );
00065 }
00066
00067 bool CFileExt::AppendExtRaw( const char *pszName, const char *pszExt )
00068 {
00069     FileExtInfoTag  *p;
00070
00071     if( NULL == pszName || 0 == strlen( pszName ) ) return false;
00072     if( NULL == pszExt  || 0 == strlen( pszExt  ) ) return false;
00073
00074     if( NULL == m_puFileExtInfo )
00075     {
00076         p = (FileExtInfoTag*)malloc( sizeof( FileExtInfoTag ) * 1 );
00077         if( NULL == p ) return false;
00078     }
00079     else
00080     {
00081         p = (FileExtInfoTag*)realloc( m_puFileExtInfo, sizeof( FileExtInfoTag ) * ( m_nCount + 1 ) );
00082         if( NULL == p ) return false;
00083     }
00084     m_puFileExtInfo = p;
00085
00086     strcpy( m_puFileExtInfo[m_nCount].m_szName, pszName );
00087     strcpy( m_puFileExtInfo[m_nCount].m_szExt, pszExt );
00088     m_nCount++;
00089
00090     return true;
00091 }
00092
00093 const char *CFileExt::GetName( int nIndex )
00094 {
00095     if( nIndex < 0 || nIndex >= m_nCount ) return NULL;
00096
00097     return m_puFileExtInfo[nIndex].m_szName;
00098 }
00099
00100 const char *CFileExt::GetExt( int nIndex )
00101 {
00102     if( nIndex < 0 || nIndex >= m_nCount ) return NULL;
00103
00104     return m_puFileExtInfo[nIndex].m_szExt;
00105 }
00106
00107 const char *CFileExt::GetExtFilter( void )
00108 {
00109     int     i;
00110     char    szWork[1024];
00111
00112     /* 拡張子フィルタの作成 */
00113     strcpy( m_szFilter, "" );
00114
00115     for( i = 0; i < m_nCount; i++ )
00116     {
00117         wsprintf( szWork,
00118             "%s (%s)|%s|",
00119             m_puFileExtInfo[i].m_szName,
00120             m_puFileExtInfo[i].m_szExt,
00121             m_puFileExtInfo[i].m_szExt );
00122
00123         strcat( m_szFilter, szWork );
00124     }
00125     strcat( m_szFilter, "|" );
00126
00127     //区切りは０なので置き換える。
00128     for( i = 0; m_szFilter[i] != '\0'; i++ )
00129     {
00130         if( m_szFilter[i] == '|' ) m_szFilter[i] = '\0';
00131     }
00132
00133     return m_szFilter;
00134 }
00135
00136 bool CFileExt::ConvertTypesExtToDlgExt( const char *pszSrcExt, char *pszDstExt )
00137 {
00138     char    *token;
00139     char    *p;
00140
00141     //  2003.08.14 MIK NULLじゃなくてfalse
00142     if( NULL == pszSrcExt ) return false;
00143     if( NULL == pszDstExt ) return false;
00144
00145     p = strdup( pszSrcExt );
00146     strcpy( pszDstExt, "" );
00147
00148     token = strtok( p, " ;," );
00149     while( token )
00150     {
00151         if( '.' == *token ) strcat( pszDstExt, "*" );
00152         else                strcat( pszDstExt, "*." );
00153         strcat( pszDstExt, token );
00154
00155         token = strtok( NULL, " ;," );
00156         if( token ) strcat( pszDstExt, ";" );
00157     }
00158     free( p );  // 2003.05.20 MIK メモリ解放漏れ
00159     return true;
00160 }
00161
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileExt.h

CFileExt.h

オープンダイアログ用ファイル拡張子管理 [詳細]

#include "global.h"

CFileExt.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CFileExt
struct | CFileExt::FileExtInfoTag

説明

オープンダイアログ用ファイル拡張子管理

作者:
MIK
日付:
2003.5.12

CFileExt.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileExt.h ソースファイル

CFileExt.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef _CFILEEXT_H_
00032 #define _CFILEEXT_H_
00033
00034 #include "global.h"
00035
00036 class SAKURA_CORE_API CFileExt
00037 {
00038 public:
00039     CFileExt();
00040     ~CFileExt();
00041
00042     bool AppendExt( const char *pszName, const char *pszExt );
00043     bool AppendExtRaw( const char *pszName, const char *pszExt );
00044     const char *GetName( int nIndex );
00045     const char *GetExt( int nIndex );
00046
00047     //ダイアログに渡す拡張子フィルタを取得する。(lpstrFilterに直接指定可能)
00048     const char *GetExtFilter( void );
00049
00050     int GetCount( void ) { return m_nCount; }
00051
00052 protected:
00053     bool ConvertTypesExtToDlgExt( const char *pszSrcExt, char *pszDstExt );
00054
00055 private:
00056
00057     typedef struct {
00058         char    m_szName[64];       //名前(64文字以下のはず→m_szTypeName)
00059         char    m_szExt[64*3+1];    //拡張子(64文字以下のはず→m_szTypeExts) なお "*." を追加するのでそれなりに必要
00060     } FileExtInfoTag;
00061
00062     int             m_nCount;
00063     FileExtInfoTag  *m_puFileExtInfo;
00064     char            m_szFilter[4096];
00065 };
00066
00067 #endif  //_CFILEEXT_H_
00068
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileLoad.cpp

CFileLoad.cpp

ファイル読み込みクラス [詳細]

#include "stdafx.h"
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#include "global.h"
#include "etc_uty.h"
#include "CMemory.h"
#include "CEOL.h"
#include "CFileLoad.h"
#include "charcode.h"

CFileLoad.cppのインクルード依存関係図

ソースコードを見る。

説明

ファイル読み込みクラス

作者:
Moca
日付:
2002/08/30 新規作成

CFileLoad.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:41 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileLoad.cpp ソースファイル

CFileLoad.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, Moca, genta
00010     Copyright (C) 2003, Moca, ryoji
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032
00033 #include "stdafx.h"
00034 #include <malloc.h>
00035 #include <stdlib.h>
00036 #include <string.h>
00037 #include <Windows.h>
00038 #include "global.h"
00039 #include "etc_uty.h"
00040 #include "CMemory.h"
00041 #include "CEOL.h"
00042 #include "CFileLoad.h"
00043 #include "charcode.h"
00044 #ifdef _DEBUG
00045 #include "Debug.h"
00046 #endif
00047 /*
00048     @note Win32APIで実装
00049         2GB以上のファイルは開けない
00050 */
00051
00053 const int CFileLoad::gm_nBufSizeDef = 32768;
00054 //(最適値がマシンによって違うのでとりあえず32KB確保する)
00055
00056 // /*! ロード用バッファサイズの設定可能な最低値 */
00057 // const int gm_nBufSizeMin = 1024;
00058
00060 CFileLoad::CFileLoad( void ) : m_cmemLine()
00061 {
00062     m_hFile         = NULL;
00063     m_nFileSize     = 0;
00064     m_nFileDataLen  = 0;
00065     m_CharCode      = 0;
00066     m_bBomExist     = FALSE;    // Jun. 08, 2003 Moca
00067     m_nFlag         = 0;
00068     m_nReadLength   = 0;
00069     m_eMode         = FLMODE_CLOSE; // Jun. 08, 2003 Moca
00070
00071     m_nLineIndex    = -1;
00072
00073     m_pReadBuf = NULL;
00074     m_nReadDataLen    = 0;
00075     m_nReadBufSize    = 0;
00076     m_nReadBufOffSet  = 0;
00077 }
00078
00080 CFileLoad::~CFileLoad( void )
00081 {
00082     if( NULL != m_hFile ){
00083         FileClose();
00084     }
00085     if( NULL != m_pReadBuf ){
00086         free( m_pReadBuf );
00087     }
00088 }
00089
00099 enumCodeType CFileLoad::FileOpen( LPCTSTR pFileName, int CharCode, int nFlag, BOOL* pbBomExist )
00100 {
00101     HANDLE  hFile;
00102     DWORD   FileSize;
00103     DWORD   FileSizeHigh;
00104     int     nBomCode;
00105
00106     // FileCloseを呼んでからにしてください
00107     if( NULL != m_hFile ){
00108 #ifdef _DEBUG
00109         ::MessageBox( NULL, "CFileLoad::FileOpen\nFileCloseを呼んでからにしてください" , NULL, MB_OK );
00110 #endif
00111         throw CError_FileOpen();
00112     }
00113     hFile = ::CreateFile(
00114         pFileName,
00115         GENERIC_READ,
00116         //  Oct. 18, 2002 genta FILE_SHARE_WRITE 追加
00117         //  他プロセスが書き込み中のファイルを開けるように
00118         FILE_SHARE_READ | FILE_SHARE_WRITE, // 共有
00119         NULL,                       // セキュリティ記述子
00120         OPEN_EXISTING,              // 作成方法
00121         FILE_FLAG_SEQUENTIAL_SCAN,  // ファイル属性
00122         NULL                        // テンプレートファイルのハンドル
00123     );
00124     if( hFile == INVALID_HANDLE_VALUE ){
00125         throw CError_FileOpen();
00126     }
00127     m_hFile = hFile;
00128
00129     FileSize = ::GetFileSize( hFile, &FileSizeHigh );
00130     // ファイルサイズが、約2GBを超える場合はとりあえずエラー
00131     if( 0x80000000 <= FileSize || 0 < FileSizeHigh ){
00132         FileClose();
00133         throw CError_FileOpen();
00134     }
00135     m_nFileSize = FileSize;
00136 //  m_eMode = FLMODE_OPEN;
00137
00138     // From Here Jun. 08, 2003 Moca 文字コード判定
00139     // データ読み込み
00140     Buffering();
00141
00142     if( CharCode == CODE_AUTODETECT ){
00143         CharCode = CMemory::CheckKanjiCode( (const unsigned char*)m_pReadBuf, m_nReadDataLen );
00144     }
00145     // To Here Jun. 08, 2003
00146     // 不正な文字コードのときはデフォルト(SJIS:無変換)を設定
00147     if( 0 > CharCode || CODE_CODEMAX <= CharCode ){
00148         CharCode = CODE_SJIS;
00149     }
00150     m_CharCode = CharCode;
00151     m_nFlag = nFlag;
00152
00153     // From Here Jun. 08, 2003 Moca BOMの除去
00154 //- nBomCode = CMemory::IsUnicodeBom( (const unsigned char*)m_pReadBuf, m_nReadDataLen );
00155     nBomCode = Charcode::DetectUnicodeBom( (const char *)m_pReadBuf, m_nReadDataLen );  // 2006.09.22  by rastiv
00156     m_nFileDataLen = m_nFileSize;
00157     if( nBomCode != 0 && nBomCode == m_CharCode ){
00158         //  Jul. 26, 2003 ryoji BOMの有無をパラメータで返す
00159         m_bBomExist = TRUE;
00160         if( pbBomExist != NULL ){
00161             *pbBomExist = TRUE;
00162         }
00163         switch( nBomCode ){
00164             case CODE_UNICODE:
00165             case CODE_UNICODEBE:
00166                 m_nFileDataLen -= 2;
00167                 m_nReadBufOffSet += 2;
00168                 break;
00169             case CODE_UTF8:
00170                 m_nFileDataLen -= 3;
00171                 m_nReadBufOffSet += 3;
00172                 break;
00173         }
00174     }else{
00175         //  Jul. 26, 2003 ryoji BOMの有無をパラメータで返す
00176         if( pbBomExist != NULL ){
00177             *pbBomExist = FALSE;
00178         }
00179     }
00180
00181     // To Here Jun. 13, 2003 Moca BOMの除去
00182     m_eMode = FLMODE_REDY;
00183 //  m_cmemLine.AllocBuffer( 256 );
00184     return (enumCodeType)m_CharCode;
00185 }
00186
00191 void CFileLoad::FileClose( void )
00192 {
00193     ReadBufEmpty();
00194     m_cmemLine.SetDataSz( "" );
00195     if( NULL != m_hFile ){
00196         ::CloseHandle( m_hFile );
00197         m_hFile = NULL;
00198     }
00199     m_nFileSize     =  0;
00200     m_nFileDataLen  =  0;
00201     m_CharCode      =  0;
00202     m_bBomExist     = FALSE; // From Here Jun. 08, 2003
00203     m_nFlag         =  0;
00204     m_nReadLength   =  0;
00205     m_eMode         = FLMODE_CLOSE;
00206     m_nLineIndex    = -1;
00207 }
00208
00215 /*
00216 void CFileLoad::SeekBegin( void )
00217 {
00218     DWORD   ReadSize = 0;
00219     char    Buf[4];
00220     FilePointer( 0, FILE_BEGIN );
00221     m_nFileDataLen = m_nFileSize;
00222     switch( m_CharCode ){
00223     case CODE_UNICODE:
00224     case CODE_UNICODEBE:
00225         ReadSize = Read( &Buf, 2 );
00226         m_nFileDataLen -= 2;
00227         break;
00228     case CODE_UTF8:
00229         ReadSize = Read( &Buf, 3 );
00230         m_nFileDataLen -= 3;
00231         break;
00232 //  case CODE_SJIS:
00233 //  case CODE_EUC:
00234 //  case CODE_JIS:
00235 //  case CODE_UTF7:
00236 //  default:
00237 //      break;
00238     }
00239     // もしBOMが付いていなかったらポインタを元に戻す
00240     m_bBomExist = FALSE;
00241     if( ReadSize != 0 ){
00242         if( m_CharCode == CMemory::IsUnicodeBom( (const unsigned char*)Buf, ReadSize ) ){
00243             m_bBomExist = TRUE;
00244         }else{
00245             m_nFileDataLen = m_nFileSize;
00246             FilePointer( 0, FILE_BEGIN );
00247         }
00248     }
00249 }
00250 */
00251
00259 const char* CFileLoad::ReadLine(
00260     int*            pnLineLen,
00261     CEOL*           pcEol
00262 )
00263 {
00264     const char  *pLine;
00265     int         nRetVal = 1;
00266     int         nBufLineLen;
00267     int         nEolLen;
00268 #ifdef _DEBUG
00269     if( m_eMode < FLMODE_REDY ){
00270         MYTRACE( "CFileLoad::ReadLine(): m_eMode = %d\n", m_eMode );
00271         return NULL;
00272     }
00273 #endif
00274     // 行データクリア。本当はバッファは開放したくない
00275     m_cmemLine.SetData( "", 0 );
00276
00277     // 1行取り出し ReadBuf -> m_memLine
00278     //  Oct. 19, 2002 genta while条件を整理
00279     while( NULL != ( pLine = GetNextLineCharCode( m_pReadBuf, m_nReadDataLen,
00280         &nBufLineLen, &m_nReadBufOffSet, pcEol, &nEolLen ) ) ){
00281             // ReadBufから1行を取得するとき、改行コードが欠ける可能性があるため
00282             if( m_nReadDataLen <= m_nReadBufOffSet && FLMODE_REDY == m_eMode ){// From Here Jun. 13, 2003 Moca
00283                 m_cmemLine.Append( pLine, nBufLineLen );
00284                 m_nReadBufOffSet -= nEolLen;
00285                 // バッファロード   File -> ReadBuf
00286                 Buffering();
00287             }else{
00288                 m_cmemLine.Append( pLine, nBufLineLen );
00289                 break;
00290             }
00291     }
00292
00293     m_nReadLength += ( nBufLineLen = m_cmemLine.GetLength() );
00294
00295     // 文字コード変換
00296     switch( m_CharCode ){
00297     case CODE_SJIS:
00298         break;
00299     case CODE_EUC:
00300         m_cmemLine.EUCToSJIS();
00301         break;
00302     case CODE_JIS:
00303         // E-Mail(JIS→SJIS)コード変換
00304         m_cmemLine.JIStoSJIS( ( m_nFlag & 1 ) == 1 );
00305         break;
00306     case CODE_UNICODE:
00307         m_cmemLine.UnicodeToSJIS();
00308 //      nEolLen = nEolLen / sizeof(wchar_t);
00309         break;
00310     case CODE_UTF8:
00311         m_cmemLine.UTF8ToSJIS();
00312         break;
00313     case CODE_UTF7:
00314         m_cmemLine.UTF7ToSJIS();
00315         break;
00316     case CODE_UNICODEBE:
00317         m_cmemLine.UnicodeBEToSJIS();
00318 //      nEolLen = nEolLen / sizeof(wchar_t);
00319         break;
00320     }
00321     m_nLineIndex++;
00322     // 行数がintの範囲を超えた
00323     // ただしファイルサイズがintの範囲内ならまずありえない
00324 //  if( m_nLineIndex < 0){
00325 //      throw CError_FileRead();
00326 //      return NULL;
00327 //  }
00328     // データあり
00329     if( 0 != nBufLineLen + nEolLen ){
00330         // 改行コードを追加
00331         m_cmemLine.Append( pcEol->GetValue(), pcEol->GetLen() );
00332         return m_cmemLine.GetPtr( pnLineLen );
00333     }
00334     // データがない => 終了
00335 //  m_cmemLine.Empty(); // protected メンバ
00336     m_cmemLine.SetDataSz("");
00337     return NULL;
00338 }
00339
00340
00348 /*
00349 const wchar_t* CFileLoad::ReadLineW(
00350     int*            pnLineLen,  //!< [out] 改行コード長を含む1行のデータバイト数
00351     CEOL*           pcEol       //!< [i/o]
00352 )
00353 {
00354     const char  *pLine;
00355     int         nRetVal = 1;
00356     int         nBufLineLen;
00357     int         nEolLen;
00358
00359     // 行データクリア。本当はバッファは開放したくない
00360     m_cmemLine.SetDataSz( "" );
00361
00362     // 1行取り出し ReadBuf -> m_memLine
00363     //  Oct. 19, 2002 genta while条件を整理
00364     while( NULL != ( pLine = GetNextLineCharCode( m_pReadBuf, m_nReadDataLen,
00365         &nBufLineLen, &m_nReadBufOffSet, pcEol, &nEolLen ) ) ){
00366             // ReadBufから1行を取得するとき、改行コードが欠ける可能性があるため
00367             if( m_nReadDataLen <= m_nReadBufOffSet && 1 == m_nMode ){
00368                 m_cmemLine.Append( pLine, nBufLineLen );
00369                 m_nReadBufOffSet -= nEolLen;
00370                 // バッファロード   File -> ReadBuf
00371                 Buffering();
00372             }else{
00373                 m_cmemLine.Append( pLine, nBufLineLen );
00374                 break;
00375             }
00376         }
00377     }
00378
00379     m_nReadLength += ( nBufLineLen = m_cmemLine.GetLength() );
00380
00381     // 文字コード変換
00382     switch( m_CharCode ){
00383     case CODE_SJIS:
00384         m_cmemLine.SJISToUnicode();
00385 //      nEolLen = nEolLen * sizeof(wchar_t);
00386         break;
00387     case CODE_EUC:
00388         m_cmemLine.EUCToSJIS();
00389         m_cmemLine.SJISToUnicode();
00390 //      nEolLen = nEolLen * sizeof(wchar_t);
00391         break;
00392     case CODE_JIS:
00393         // E-Mail(JIS→SJIS)コード変換
00394         m_cmemLine.JIStoSJIS( ( m_nFlag & 1 ) == 1 );
00395         m_cmemLine.SJISToUnicode();
00396 //      nEolLen = nEolLen * sizeof(wchar_t);
00397         break;
00398     case CODE_UNICODE:
00399         break;
00400     case CODE_UTF8:
00401 //      m_cmemLine.UTF8ToUnicode();
00402         m_cmemLine.UTF8ToSJIS();
00403         m_cmemLine.SJISToUnicode();
00404 //      nEolLen = nEolLen * sizeof(wchar_t);
00405         break;
00406     case CODE_UTF7:
00407 //      m_cmemLine.UTF7ToUnicode();
00408         m_cmemLine.UTF7ToSJIS();
00409         m_cmemLine.SJISToUnicode();
00410 //      nEolLen = nEolLen * sizeof(wchar_t);
00411         break;
00412     case CODE_UNICODEBE:
00413 //      m_cmemLine.UnicodeBEToUnicode();
00414         m_cmemLine.SwapHLByte();
00415         break;
00416     }
00417     m_nLineIndex++;
00418     // 行数がintの範囲を超えた
00419     // ただしファイルサイズがintの範囲内ならまずありえない
00420 //  if( m_nLineIndex < 0){
00421 //      throw CError_FileRead();
00422 //      return NULL;
00423 //  }
00424     // データあり
00425     if( 0 != nBufLineLen + nEolLen ){
00426         // 改行コードを追加
00427         m_cmemLine.Append( pcEol->GetUnicodeValue(), pcEol->GetLen() * sizeof( wchar_t ) );
00428         return reinterpret_cast<wchar_t*>( m_cmemLine.GetPtr( pnLineLen ) );
00429     }
00430     // データがない => 終了
00431 //  m_cmemLine.Empty(); // protected メンバ
00432     m_cmemLine.SetDataSz("");
00433     return NULL;
00434 }
00435 */
00436
00441 void CFileLoad::Buffering( void )
00442 {
00443     DWORD   ReadSize;
00444
00445     // メモリー確保
00446     if( NULL == m_pReadBuf ){
00447         int nBufSize;
00448         nBufSize = ( m_nFileSize < gm_nBufSizeDef )?( m_nFileSize ):( gm_nBufSizeDef );
00449         //  Borland C++では0バイトのmallocを獲得失敗と見なすため
00450         //  最低1バイトは取得することで0バイトのファイルを開けるようにする
00451         if( 0 >= nBufSize ){
00452             nBufSize = 1; // Jun. 08, 2003  BCCのmalloc(0)がNULLを返す仕様に対処
00453         }
00454
00455         m_pReadBuf = (char *)malloc( nBufSize );
00456         if( NULL == m_pReadBuf ){
00457             throw CError_FileRead(); // メモリー確保に失敗
00458         }
00459         m_nReadDataLen = 0;
00460         m_nReadBufSize = nBufSize;
00461         m_nReadBufOffSet = 0;
00462     }
00463     // ReadBuf内にデータが残っている
00464     else if( m_nReadBufOffSet < m_nReadDataLen ){
00465         m_nReadDataLen -= m_nReadBufOffSet;
00466         memmove( m_pReadBuf, &m_pReadBuf[m_nReadBufOffSet], m_nReadDataLen );
00467         m_nReadBufOffSet = 0;
00468     }
00469     else{
00470         m_nReadBufOffSet = 0;
00471         m_nReadDataLen = 0;
00472     }
00473     // ファイルの読み込み
00474     ReadSize = Read( &m_pReadBuf[m_nReadDataLen], m_nReadBufSize - m_nReadDataLen );
00475     if( 0 == ReadSize ){
00476         m_eMode = FLMODE_READBUFEND;    // ファイルなどの終わりに達したらしい
00477     }
00478     m_nReadDataLen += ReadSize;
00479 }
00480
00484 void CFileLoad::ReadBufEmpty( void )
00485 {
00486     if ( NULL != m_pReadBuf ){
00487         free( m_pReadBuf );
00488         m_pReadBuf = NULL;
00489     }
00490     m_nReadDataLen    = 0;
00491     m_nReadBufSize    = 0;
00492     m_nReadBufOffSet  = 0;
00493 }
00494
00500 /*
00501 void CFileLoad::SetReadBufAlloc( int nNewSize ){
00502     char * pBuf;
00503
00504     // データが残っている場合は移動させる
00505     if( m_nReadBufOffSet + 1 <= m_nReadDataLen ){
00506         m_nReadDataLen -= m_nReadBufOffSet;
00507         memmove( m_pReadBuf, &m_pReadBuf[m_nReadBufOffSet], m_nReadDataLen );
00508         m_nReadBufOffSet = 0;
00509     }
00510
00511     // 現在ロードしてるデータを失わないように
00512     if( m_nReadDataLen > nNewSize ){
00513         nNewSize = m_nReadDataLen;
00514     }
00515     // wchar_t の大きさで整頓
00516     if( 0 != nNewSize % sizeof(wchar_t) ){
00517         nNewSize += sizeof(wchar_t) - ( nNewSize % sizeof(wchar_t) );
00518     }
00519     if( gm_nBufSizeMin > nNewSize ){
00520         nNewSize = gm_nBufSizeMin;
00521     }
00522
00523     // バッファサイズを変更
00524     if( m_nReadBufSize != nNewSize ){
00525         if( NULL != ( pBuf = (char *)realloc( m_pReadBuf, nNewSize ) ) ){
00526             m_pReadBuf = pBuf;
00527             m_nReadBufSize = nNewSize;
00528         }
00529         // メモリー確保に失敗したときは変更はなかったことにする
00530     }
00531 }
00532 */
00533
00534
00539 int CFileLoad::GetPercent( void ){
00540     int nRet;
00541     if( 0 == m_nFileDataLen || m_nReadLength > m_nFileDataLen ){
00542         nRet = 100;
00543     }else if(  0x10000 > m_nFileDataLen ){
00544         nRet = m_nReadLength * 100 / m_nFileDataLen ;
00545     }else{
00546         nRet = m_nReadLength / 128 * 100 / ( m_nFileDataLen / 128 );
00547     }
00548     return nRet;
00549 }
00550
00554 const char* CFileLoad::GetNextLineCharCode(
00555     const char* pData,
00556     int         nDataLen,
00557     int*        pnLineLen,
00558     int*        pnBgn,
00559     CEOL*       pcEol,
00560     int*        pnEolLen
00561 ){
00562     const char *pRetStr;
00563     switch( m_CharCode ){
00564     case CODE_UNICODE:
00565         *pnBgn /= sizeof( wchar_t );
00566         pRetStr = (const char*)CFileLoad::GetNextLineW(
00567             (const wchar_t*)pData,
00568             nDataLen / sizeof( wchar_t ),
00569             pnLineLen,
00570             pnBgn,
00571             pcEol );
00572         *pnLineLen *= sizeof( wchar_t );
00573         *pnBgn     *= sizeof( wchar_t );
00574         *pnEolLen   = pcEol->GetLen() * sizeof( wchar_t );
00575         break;
00576
00577     case CODE_UNICODEBE:
00578         *pnBgn /= sizeof( wchar_t );
00579         pRetStr = (const char*)CFileLoad::GetNextLineWB(
00580             (const wchar_t*)pData,
00581             nDataLen / sizeof( wchar_t ),
00582             pnLineLen,
00583             pnBgn,
00584             pcEol );
00585         *pnLineLen *= sizeof( wchar_t );
00586         *pnBgn     *= sizeof( wchar_t );
00587         *pnEolLen   = pcEol->GetLen() * sizeof( wchar_t );
00588         break;
00589
00590     default:
00591         pRetStr = GetNextLine( pData, nDataLen, pnLineLen, pnBgn, pcEol );
00592         *pnEolLen = pcEol->GetLen();
00593         break;
00594     }
00595     return pRetStr;
00596 }
00597
00598
00604 const wchar_t* CFileLoad::GetNextLineW(
00605     const wchar_t*  pData,
00606     int         nDataLen,
00607     int*        pnLineLen,
00608     int*        pnBgn,
00609     CEOL*       pcEol
00610 )
00611 {
00612     int     i;
00613     int     nBgn;
00614     nBgn = *pnBgn;
00615
00616     pcEol->SetType( EOL_NONE );
00617     if( *pnBgn >= nDataLen ){
00618         return NULL;
00619     }
00620     for( i = *pnBgn; i < nDataLen; ++i ){
00621         // 改行コードがあった
00622         if( pData[i] == (wchar_t)0x000a || pData[i] == (wchar_t)0x000d ){
00623             // 行終端子の種類を調べる
00624             pcEol->SetType( CEOL::GetEOLTypeUni( &pData[i], nDataLen - i ) );
00625             break;
00626         }
00627     }
00628     *pnBgn = i + pcEol->GetLen();
00629     *pnLineLen = i - nBgn;
00630     return &pData[nBgn];
00631 }
00632
00638 const wchar_t* CFileLoad::GetNextLineWB(
00639     const wchar_t*  pData,
00640     int         nDataLen,
00641     int*        pnLineLen,
00642     int*        pnBgn,
00643     CEOL*       pcEol
00644 )
00645 {
00646     int     i;
00647     int     nBgn;
00648     nBgn = *pnBgn;
00649
00650     pcEol->SetType( EOL_NONE );
00651     if( *pnBgn >= nDataLen ){
00652         return NULL;
00653     }
00654     for( i = *pnBgn; i < nDataLen; ++i ){
00655         // 改行コードがあった
00656         if( pData[i] == (wchar_t)0x0a00 || pData[i] == (wchar_t)0x0d00 ){
00657             // 行終端子の種類を調べる
00658             pcEol->SetType( CEOL::GetEOLTypeUniBE( &pData[i], nDataLen - i ) );
00659             break;
00660         }
00661     }
00662     *pnBgn = i + pcEol->GetLen();
00663     *pnLineLen = i - nBgn;
00664     return &pData[nBgn];
00665 }
00666
00667 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileLoad.h

CFileLoad.h

メモリバッファクラスへのファイル入力クラス [詳細]

#include <windows.h>
#include "etc_uty.h"
#include "CMemory.h"

CFileLoad.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CError_FileOpen
ファイルのオープンに失敗したときに送出する例外 [詳細]
class | CError_FileRead
ファイルの読み込みに失敗したときに放出する例外 [詳細]
class | CFileLoad

マクロ定義

#define | INVALID_SET_FILE_POINTER 0xFFFFFFFF

説明

メモリバッファクラスへのファイル入力クラス

作者:
Moca
日付:
2002/08/30 新規作成

CFileLoad.h で定義されています。

マクロ定義

#define INVALID_SET_FILE_POINTER 0xFFFFFFFF

CFileLoad.h の 40 行で定義されています。

参照元 CFileLoad::FilePointer().

Sakura-Editorに対してSat Oct 27 02:17:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileLoad.h ソースファイル

CFileLoad.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, Moca, genta
00009     Copyright (C) 2003, Moca, ryoji
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031 #include <windows.h>
00032 #include "etc_uty.h"
00033 #include "CMemory.h"
00034
00035 #ifndef _CFILELOAD_H_
00036 #define _CFILELOAD_H_
00037
00038 // VC6添付のヘッダで定義されてません
00039 #ifndef INVALID_SET_FILE_POINTER
00040  #define INVALID_SET_FILE_POINTER 0xFFFFFFFF
00041 #endif // INVALID_SET_FILE_POINTER
00042
00043
00044 // ファイルのオープンに失敗したときに送出する例外
00045 #ifndef DEF_CERROR_FILEOPEN
00046
00047 #define DEF_CERROR_FILEOPEN
00048 class CError_FileOpen
00049 {
00050 };
00051
00052 #endif // DEF_CERROR_FILEOPEN
00053
00055 class CError_FileRead
00056 {
00057 };
00058
00064 class SAKURA_CORE_API CFileLoad
00065 {
00066 public:
00067
00068     CFileLoad( void );
00069     ~CFileLoad( void );
00070
00071     //  Jul. 26, 2003 ryoji BOM引数追加
00072     enumCodeType FileOpen( LPCTSTR, int, int, BOOL* pbBomExist = NULL );        // 指定文字コードでファイルをオープンする
00073     void FileClose( void );                 // 明示的にファイルをクローズする
00074
00075     const char* ReadLine( int*, CEOL* );    // 1行データをロードする 順アクセス用
00076 //  const wcha_t* ReadLineW( int*, CEOL* ); // 1行データをロードする 順アクセス用(Unicode版)
00077
00078 //  未実装関数郡
00079 //  cosnt char* ReadAtLine( int, int*, CEOL* ); // 指定行目をロードする
00080 //  cosnt wchar_t* ReadAtLineW( int, int*, CEOL* ); // 指定行目をロードする(Unicode版)
00081 //  bool ReadIgnoreLine( void ); // 1行読み飛ばす
00082
00083
00084 //  void SetReadBufAlloc( int );    // バッファサイズの変更
00085
00087     BOOL GetFileTime( FILETIME*, FILETIME*, FILETIME* ); // inline
00088
00089     //  Jun. 08, 2003 Moca
00091     BOOL IsBomExist( void ){ return m_bBomExist; }
00092
00094     int GetPercent( void );
00095
00097     inline int GetFileSize( void ){ return m_nFileSize; }
00098
00099     static const int gm_nBufSizeDef; // ロード用バッファサイズの初期値
00100 //  static const int gm_nBufSizeMin; // ロード用バッファサイズの設定可能な最低値
00101
00102 protected:
00103
00104     // コピーの禁止
00105     CFileLoad( const CFileLoad& ){}
00106     CFileLoad& operator= ( const CFileLoad& ){ return *this; }
00107
00108     // Oct. 19, 2002 genta スペルミス修正
00109 //  void SeekBegin( void );     // ファイルの先頭位置に移動する(BOMを考慮する)
00110     void Buffering( void );     // バッファにデータをロードする
00111     void ReadBufEmpty( void );  // バッファを空にする
00112
00113     // GetLextLine の 文字コード考慮版
00114     const char* GetNextLineCharCode( const char*, int, int*, int*, CEOL*, int* );
00115
00116     /* 実装ヘルパー関数 */
00117     static const wchar_t* GetNextLineW(  const wchar_t*, int, int*, int*, CEOL* ); // GetNextLineのwchar_t版
00118     static const wchar_t* GetNextLineWB( const wchar_t*, int, int*, int*, CEOL* ); // GetNextLineのwchar_t版(ビックエンディアン用)
00119
00120     int Read( void*, size_t ); // inline
00121     DWORD FilePointer( DWORD, DWORD ); // inline
00122
00123     /* メンバオブジェクト */
00124     CMemory m_cmemLine;     // 行データバッファ
00125
00126 //  LPTSTR  m_pszFileName;  // ファイル名
00127     HANDLE  m_hFile;        // ファイルハンドル
00128     int     m_nFileSize;    // ファイルサイズ
00129     int     m_nFileDataLen; // ファイルデータ長からBOM長を引いたバイト数
00130     int     m_nReadLength;  // 現在までにロードしたデータの合計バイト数(BOM長を含まない)
00131     int     m_nLineIndex;   // 現在ロードしている論理行(0開始)
00132     int     m_CharCode;     // 文字コード
00133     BOOL    m_bBomExist;    // ファイルのBOMが付いているか Jun. 08, 2003 Moca
00134     int     m_nFlag;        // 文字コードの変換オプション
00135     //  Jun. 13, 2003 Moca
00136     //  状態をenumとしてわかりやすく．
00137     enum enumFileLoadMode{
00138         FLMODE_CLOSE = 0,
00139         FLMODE_OPEN,
00140         FLMODE_REDY,
00141         FLMODE_READBUFEND
00142     };
00143     enumFileLoadMode    m_eMode;        // 現在の読み込み状態
00144
00145     // 読み込みバッファ系
00146     char*   m_pReadBuf;         // 読み込みバッファへのポインタ
00147     int     m_nReadBufSize;     // 読み込みバッファの実際に確保しているサイズ
00148     int     m_nReadDataLen;     // 読み込みバッファの有効データサイズ
00149     int     m_nReadBufOffSet;   // 読み込みバッファ中のオフセット(次の行頭位置)
00150 //  int     m_nReadBufSumSize;  // 今までにバッファに読み込んだデータの合計サイズ
00151
00152 }; // class CFileLoad
00153
00154 // インライン関数郡
00155
00156 // public
00157 inline BOOL CFileLoad::GetFileTime( FILETIME* pftCreate, FILETIME* pftLastAccess, FILETIME* pftLastWrite ){
00158     return ::GetFileTime( m_hFile, pftCreate, pftLastAccess, pftLastWrite );
00159 }
00160
00161 // protected
00162 inline int CFileLoad::Read( void* pBuf, size_t nSize )
00163 {
00164     DWORD ReadSize;
00165     if( FALSE == ::ReadFile( m_hFile, pBuf, nSize, &ReadSize, NULL ) )
00166         throw CError_FileRead();
00167     return (int)ReadSize;
00168 }
00169
00170 // protected
00171 inline DWORD CFileLoad::FilePointer( DWORD offset, DWORD origin )
00172 {
00173     DWORD fp;
00174     if( INVALID_SET_FILE_POINTER == ( fp = ::SetFilePointer( m_hFile, offset, NULL, FILE_BEGIN ) ) )
00175         throw CError_FileRead();
00176     return fp;
00177 }
00178
00179
00180 #endif /* _CFILELOAD_H_ */
00181
00182 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileWrite.cpp

CFileWrite.cpp

ファイル書き込み用クラス [詳細]

#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include "CFileWrite.h"

CFileWrite.cppのインクルード依存関係図

ソースコードを見る。

説明

ファイル書き込み用クラス

作者:
Frozen
日付:
2000/05/22 新規作成

CFileWrite.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:43 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileWrite.cpp ソースファイル

CFileWrite.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000, Frozen
00009     Copyright (C) 2003, genta
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holders to use this code for other purpose.
00013 */
00014 #include "stdafx.h"
00015 #include <windows.h>
00016 #include <tchar.h>
00017 #include <stdio.h>
00018 #include "CFileWrite.h"
00019
00020 CFileWrite::CFileWrite(const TCHAR* pszPath)
00021 {
00022     m_ChangeAttribute=false;
00023     m_pszPath=NULL;
00024     m_dwFileAttribute = ::GetFileAttributes(pszPath);
00025     if ( m_dwFileAttribute != (DWORD)-1 )
00026     {//ファイルが存在した場合
00027         if(m_dwFileAttribute & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM))
00028         {//隠しorシステムファイルはCの関数で読み書きできないので属性を変更する
00029             // 読取専用属性だけ残す(ノーマル属性が付いていたらそれも残す)。
00030             ::SetFileAttributes(pszPath, m_dwFileAttribute & (FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_NORMAL));
00031             m_ChangeAttribute=true;
00032             m_pszPath=::_tcsdup(pszPath);
00033         }
00034     }
00035     m_hFile=::_tfopen(pszPath,_T("wb"));
00036     if(m_hFile==NULL){
00037         // Mar. 30, 2003 genta
00038         // コンストラクタでthrowするとデストラクタのSetFileAttributeとfreeが
00039         // 呼ばれないので、ここで対処
00040         if(m_ChangeAttribute)
00041             ::SetFileAttributes(m_pszPath,m_dwFileAttribute);
00042         if(m_pszPath)
00043             ::free(m_pszPath);
00044         throw CError_FileOpen();
00045     }
00046 }
00047 CFileWrite::~CFileWrite()
00048 {
00049 //  ::fflush(m_hFile);
00050 //  ネットワーク上のファイルを扱っている場合、
00051 //  書き込み後にFlushを行うとデットロックが発生することがあるので、
00052 //  ここで::fflushを呼び出してはいけません。
00053 //  詳細：http://www.microsoft.com/japan/support/faq/KBArticles2.asp?URL=/japan/support/kb/articles/jp288/7/94.asp
00054
00055     ::fclose(m_hFile);
00056     if(m_ChangeAttribute)
00057         ::SetFileAttributes(m_pszPath,m_dwFileAttribute);
00058     ::free(m_pszPath);
00059 }
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileWrite.h

CFileWrite.h

ファイル書き込み用クラス [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CError_FileOpen
ファイルのオープンに失敗したときに送出する例外 [詳細]
class | CError_FileWrite
ファイルの書き込みに失敗したときに送出する例外 [詳細]
class | CFileWrite
ファイル書き込みクラス（Cのライブラリ関数を使用して実装） [詳細]

説明

ファイル書き込み用クラス

作者:
Frozen
日付:
2000/05/22 新規作成

CFileWrite.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:43 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFileWrite.h ソースファイル

CFileWrite.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000, Frozen
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013 #ifndef FILE_WRITE_H
00014 #define FILE_WRITE_H
00015
00016
00018
00019 #ifndef DEF_CERROR_FILEOPEN
00020
00021 #define DEF_CERROR_FILEOPEN
00022 class CError_FileOpen
00023 {
00024 };
00025
00026 #endif
00027
00029 class CError_FileWrite
00030 {
00031 };
00032
00034 class CFileWrite
00035 {
00036 public:
00037     CFileWrite(const TCHAR* pszPath);
00038     ~CFileWrite();
00039     inline void Write(const void* buffer,size_t size)
00040     {
00041         if(::fwrite(buffer,1,size,m_hFile)!=size)
00042             throw CError_FileWrite();
00043     }
00044 private:
00045     FILE* m_hFile;
00046     DWORD m_dwFileAttribute;
00047     TCHAR* m_pszPath;
00048     bool m_ChangeAttribute;
00049 };
00050
00051 #endif // FILE_WRITE_H
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfo.cpp

CFuncInfo.cpp

アウトライン解析 データ要素 [詳細]

#include "stdafx.h"
#include "CFuncInfo.h"

CFuncInfo.cppのインクルード依存関係図

ソースコードを見る。

説明

アウトライン解析 データ要素

作者:
Norio Nakatani
日付:
1998/06/23 作成

CFuncInfo.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfo.cpp ソースファイル

CFuncInfo.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 #include "stdafx.h"
00015 #include "CFuncInfo.h"
00016
00018 CFuncInfo::CFuncInfo(
00019     int     nFuncLineCRLF,
00020     int     nFuncLineLAYOUT,
00021 //  int     nFuncLine,      /*!< 関数のある行 */
00022     const char* pszFuncName,
00023     int     nInfo
00024 ) : m_nDepth(0)
00025 {
00026     m_nFuncLineCRLF = nFuncLineCRLF;        /* 関数のある行(CRLF単位) */
00027     m_nFuncLineLAYOUT = nFuncLineLAYOUT;    /* 関数のある行(折り返し単位) */
00028 //  m_nFuncLine = nFuncLine;;
00029 //  m_cmemFuncName = pszFuncName;
00030 //  m_cmemFuncName.SetData( pszFuncName, lstrlen( pszFuncName ) );
00031     m_cmemFuncName.SetDataSz( pszFuncName );
00032
00033     m_nInfo = nInfo;
00034     return;
00035 }
00036
00037
00038
00039
00040 /* CFuncInfoクラス消滅 */
00041 CFuncInfo::~CFuncInfo()
00042 {
00043
00044 }
00045
00046
00047 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfo.h

CFuncInfo.h

アウトライン解析 データ要素 [詳細]

#include "CMemory.h"

CFuncInfo.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CFuncInfo
アウトライン解析 データ要素 [詳細]

マクロ定義

#define | FUNCINFO_NOCLIPTEXT 0x10000

説明

アウトライン解析 データ要素

作者:
Norio Nakatani
日付:
1998/06/23 作成

CFuncInfo.h で定義されています。

マクロ定義

#define FUNCINFO_NOCLIPTEXT 0x10000

CFuncInfo.h の 25 行で定義されています。

参照元 CFuncInfo::IsAddClipText()・CEditDoc::MakeTopicList_wztxt().

Sakura-Editorに対してSat Oct 27 02:17:45 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfo.h ソースファイル

CFuncInfo.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, YAZAKI
00010     Copyright (C) 2003, Moca
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015
00016 class CFuncInfo;
00017
00018 #ifndef _CFUNCINFO_H_
00019 #define _CFUNCINFO_H_
00020
00021 #include "CMemory.h"
00022
00023 // CDlgFuncList::SetTree()用 m_Info
00024 //  2003.06.27 Moca
00025 #define FUNCINFO_NOCLIPTEXT 0x10000
00026
00027
00029 //@date 2002.04.01 YAZAKI 深さ導入
00030 class CFuncInfo {
00031     public:
00032         CFuncInfo( int, int, const char*, int );    /* CFuncInfoクラス構築 */
00033         ~CFuncInfo();   /* CFuncInfoクラス消滅 */
00034
00036         //  2003.06.27 Moca
00037         inline bool IsAddClipText( void ){
00038             return ( FUNCINFO_NOCLIPTEXT != ( m_nInfo & FUNCINFO_NOCLIPTEXT ) );
00039         };
00040
00041 //  private:
00042         int         m_nFuncLineCRLF;
00043         int         m_nFuncLineLAYOUT;
00044         CMemory     m_cmemFuncName;
00045         int         m_nInfo;
00046         int         m_nDepth;
00047 };
00048
00049
00050
00052 #endif /* _CFUNCINFO_H_ */
00053
00054
00055 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfoArr.cpp

CFuncInfoArr.cpp

アウトライン解析 データ配列 [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include <malloc.h>
#include "CFuncInfoArr.h"
#include "debug.h"

CFuncInfoArr.cppのインクルード依存関係図

ソースコードを見る。

説明

アウトライン解析 データ配列

作者:
Norio Nakatani
日付:
1998/06/23 作成

CFuncInfoArr.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:45 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfoArr.cpp ソースファイル

CFuncInfoArr.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, YAZAKI, aroka
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 #include "stdafx.h"
00016 #include <stdlib.h>
00017 #include <malloc.h>
00018 #include "CFuncInfoArr.h"
00019 #include "debug.h"// 2002/2/10 aroka
00020
00021
00022 /* CFuncInfoArrクラス構築 */
00023 CFuncInfoArr::CFuncInfoArr()
00024 {
00025     m_nFuncInfoArrNum = 0;  /* 配列要素数 */
00026     m_ppcFuncInfoArr = NULL;    /* 配列 */
00027     return;
00028 }
00029
00030
00031
00032
00033 /* CFuncInfoArrクラス消滅 */
00034 CFuncInfoArr::~CFuncInfoArr()
00035 {
00036     Empty();
00037     return;
00038 }
00039
00040 void CFuncInfoArr::Empty( void )
00041 {
00042     int i;
00043     if( m_nFuncInfoArrNum > 0 && NULL != m_ppcFuncInfoArr ){
00044         for( i = 0; i < m_nFuncInfoArrNum; ++i ){
00045             delete m_ppcFuncInfoArr[i];
00046             m_ppcFuncInfoArr[i] = NULL;
00047         }
00048         m_nFuncInfoArrNum = 0;
00049         free( m_ppcFuncInfoArr );
00050         m_ppcFuncInfoArr = NULL;
00051     }
00052     return;
00053 }
00054
00055
00056 /* 0<=の指定番号のデータを返す */
00057 /* データがない場合はNULLを返す */
00058 CFuncInfo* CFuncInfoArr::GetAt( int nIdx )
00059 {
00060     if( nIdx >= m_nFuncInfoArrNum ){
00061         return NULL;
00062     }
00063     return m_ppcFuncInfoArr[nIdx];
00064 }
00065
00066
00067
00069 void CFuncInfoArr::AppendData( CFuncInfo* pcFuncInfo )
00070 {
00071     if( 0 == m_nFuncInfoArrNum){
00072         m_ppcFuncInfoArr = (CFuncInfo**)malloc( sizeof(CFuncInfo*) * (m_nFuncInfoArrNum + 1) );
00073     }else{
00074         m_ppcFuncInfoArr = (CFuncInfo**)realloc( m_ppcFuncInfoArr, sizeof(CFuncInfo*) * (m_nFuncInfoArrNum + 1) );
00075     }
00076     m_ppcFuncInfoArr[m_nFuncInfoArrNum] = pcFuncInfo;
00077     m_nFuncInfoArrNum++;
00078     return;
00079 }
00080
00081
00082
00087 void CFuncInfoArr::AppendData(
00088     int     nFuncLineCRLF,  /* 関数のある行(CRLF単位) */
00089     int     nFuncLineLAYOUT,/* 関数のある行(折り返し単位) */
00090     const char* pszFuncName,    /* 関数名 */
00091     int     nInfo,          /* 付加情報 */
00092     int     nDepth          /* 深さ */
00093 )
00094 {
00095     CFuncInfo* pcFuncInfo = new CFuncInfo( nFuncLineCRLF, nFuncLineLAYOUT, pszFuncName, nInfo );
00096     pcFuncInfo->m_nDepth = nDepth;
00097     AppendData( pcFuncInfo );
00098     return;
00099 }
00100
00101
00102 void CFuncInfoArr::DUMP( void )
00103 {
00104 #ifdef _DEBUG
00105     int i;
00106     MYTRACE( "=============================\n" );
00107     for( i = 0; i < m_nFuncInfoArrNum; i++ ){
00108         MYTRACE( "[%d]------------------\n", i );
00109         MYTRACE( "m_nFuncLineCRLF   =%d\n", m_ppcFuncInfoArr[i]->m_nFuncLineCRLF );
00110         MYTRACE( "m_nFuncLineLAYOUT =%d\n", m_ppcFuncInfoArr[i]->m_nFuncLineLAYOUT );
00111         MYTRACE( "m_cmemFuncName    =[%s]\n", m_ppcFuncInfoArr[i]->m_cmemFuncName.GetPtr() );
00112         MYTRACE( "m_nInfo           =%d\n", m_ppcFuncInfoArr[i]->m_nInfo );
00113     }
00114     MYTRACE( "=============================\n" );
00115 #endif
00116 }
00117
00118
00119 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfoArr.h

CFuncInfoArr.h

アウトライン解析 データ配列 [詳細]

#include "CFuncInfo.h"

CFuncInfoArr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CFuncInfoArr
アウトライン解析 データ配列 [詳細]

説明

アウトライン解析 データ配列

作者:
Norio Nakatani
日付:
1998/06/23 作成

CFuncInfoArr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncInfoArr.h ソースファイル

CFuncInfoArr.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, YAZAKI
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 class CFuncInfoArr;
00016
00017 #ifndef _CFUNCINFOARR_H_
00018 #define _CFUNCINFOARR_H_
00019
00020 #include "CFuncInfo.h"
00021
00023 class CFuncInfoArr {
00024     public:
00025         CFuncInfoArr(); /* CFuncInfoArrクラス構築 */
00026         ~CFuncInfoArr();    /* CFuncInfoArrクラス消滅 */
00027         CFuncInfo* GetAt( int );    /* 0<=の指定番号のデータを返す */
00028         void AppendData( CFuncInfo* );  /* 配列の最後にデータを追加する */
00029         void AppendData( int, int, const char*, int, int nDepth = 0 );  /* 配列の最後にデータを追加する 2002.04.01 YAZAKI 深さ導入*/
00030         int GetNum( void ){ return m_nFuncInfoArrNum; } /* 配列要素数を返す */
00031         void Empty( void );
00032         void DUMP( void );
00033
00034
00035
00036         char        m_szFilePath[_MAX_PATH + 1];
00037     private:
00038         int         m_nFuncInfoArrNum;
00039         CFuncInfo** m_ppcFuncInfoArr;
00040 };
00041
00042
00043
00045 #endif /* _CFUNCINFOARR_H_ */
00046
00047
00048 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncKeyWnd.cpp

CFuncKeyWnd.cpp

ファンクションキーウィンドウ [詳細]

#include "stdafx.h"
#include "CFuncKeyWnd.h"
#include "debug.h"
#include "CEditWnd.h"
#include "global.h"
#include "KeyCode.h"
#include "etc_uty.h"

CFuncKeyWnd.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | IDT_FUNCWND 1248
#define | TIMER_TIMEOUT 100
#define | TIMER_CHECKFUNCENABLE 300

説明

ファンクションキーウィンドウ

作者:
Norio Nakatani

CFuncKeyWnd.cpp で定義されています。

マクロ定義

#define IDT_FUNCWND 1248

CFuncKeyWnd.cpp の 26 行で定義されています。

参照元 CFuncKeyWnd::Open()・CFuncKeyWnd::Timer_ONOFF().

#define TIMER_CHECKFUNCENABLE 300

CFuncKeyWnd.cpp の 28 行で定義されています。

参照元 CFuncKeyWnd::OnTimer().

#define TIMER_TIMEOUT 100

CFuncKeyWnd.cpp の 27 行で定義されています。

参照元 CFuncKeyWnd::Timer_ONOFF().

Sakura-Editorに対してSat Oct 27 02:17:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncKeyWnd.cpp ソースファイル

CFuncKeyWnd.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, genta
00009     Copyright (C) 2002, YAZAKI, MIK, Moca
00010     Copyright (C) 2003, MIK, KEITA
00011     Copyright (C) 2004, novice
00012     Copyright (C) 2006, aroka, ryoji
00013     Copyright (C) 2007, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018 #include "stdafx.h"
00019 #include "CFuncKeyWnd.h"
00020 #include "debug.h"
00021 #include "CEditWnd.h"
00022 #include "global.h"
00023 #include "KeyCode.h"// 2002/2/10 aroka
00024 #include "etc_uty.h" // novice 2004/10/10
00025
00026 #define IDT_FUNCWND 1248
00027 #define TIMER_TIMEOUT 100
00028 #define TIMER_CHECKFUNCENABLE 300
00029
00030 /****
00031 LRESULT CALLBACK CFuncKeyWndProc(
00032     HWND    hwnd,   // handle of window
00033     UINT    uMsg,   // message identifier
00034     WPARAM  wParam, // first message parameter
00035     LPARAM  lParam  // second message parameter
00036 )
00037 {
00038     CFuncKeyWnd*    pCFuncKeyWnd;
00039     pCFuncKeyWnd = ( CFuncKeyWnd* )::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00040     if( NULL != pCFuncKeyWnd ){
00041         return pCFuncKeyWnd->DispatchEvent( hwnd, uMsg, wParam, lParam );
00042     }
00043     return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00044 }
00045 ***/
00046
00047
00048
00049
00050
00051
00052 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00053 CFuncKeyWnd::CFuncKeyWnd()
00054 {
00055     strcat( m_szClassInheritances, "::CFuncKeyWnd" );
00056
00057     int     i;
00058     LOGFONT lf;
00059 //  m_hInstance = NULL;
00060 //  m_hwndParent = NULL;
00061 //  m_hWnd = NULL;
00062 //  m_pszAppName = "CFuncKeyWnd";
00063     m_pszClassName = "CFuncKeyWnd";
00064     m_pCEditDoc = NULL;
00065     /* 共有データ構造体のアドレスを返す */
00066     m_pShareData = CShareData::getInstance()->GetShareData();
00067     m_nCurrentKeyState = -1;
00068     for( i = 0; i < sizeof( m_szFuncNameArr ) / sizeof( m_szFuncNameArr[0] ); ++i ){
00069         strcpy( m_szFuncNameArr[i], "" );
00070     }
00071 //  2002.11.04 Moca Open()側で設定
00072 //  m_nButtonGroupNum = 4;
00073
00074     for( i = 0; i < sizeof( m_hwndButtonArr ) / sizeof( m_hwndButtonArr[0] ); ++i ){
00075         m_hwndButtonArr[i] = NULL;
00076     }
00077
00078     /* 表示用フォント */
00079     /* LOGFONTの初期化 */
00080     memset( &lf, 0, sizeof(LOGFONT) );
00081     lf.lfHeight         = -12;
00082     lf.lfWidth          = 0;
00083     lf.lfEscapement     = 0;
00084     lf.lfOrientation    = 0;
00085     lf.lfWeight         = 400;
00086     lf.lfItalic         = 0x0;
00087     lf.lfUnderline      = 0x0;
00088     lf.lfStrikeOut      = 0x0;
00089     lf.lfCharSet        = 0x80;
00090     lf.lfOutPrecision   = 0x3;
00091     lf.lfClipPrecision  = 0x2;
00092     lf.lfQuality        = 0x1;
00093     lf.lfPitchAndFamily = 0x31;
00094     strcpy( lf.lfFaceName, "ＭＳ Ｐゴシック" );
00095     m_hFont = ::CreateFontIndirect( &lf );
00096
00097     m_bSizeBox = FALSE;
00098     m_hwndSizeBox = NULL;
00099     m_nTimerCount = 0;
00100
00101     return;
00102 }
00103
00104
00105
00106
00107 CFuncKeyWnd::~CFuncKeyWnd()
00108 {
00109     /* 表示用フォント */
00110     ::DeleteObject( m_hFont );
00111     return;
00112 }
00113
00114
00115
00116
00117 /* ウィンドウ オープン */
00118 HWND CFuncKeyWnd::Open( HINSTANCE hInstance, HWND hwndParent, CEditDoc* pCEditDoc, BOOL bSizeBox )
00119 {
00120 //  WNDCLASS    wc;
00121 //  HWND        hWnd;
00122 //  ATOM        atom;
00123
00124     /* 初期化 */
00125     m_hInstance = hInstance;
00126     m_hwndParent = hwndParent;
00127
00128 //  m_hInstance = hInstance;
00129 //  m_hwndParent = hwndParent;
00130
00131     m_pCEditDoc = pCEditDoc;
00132     m_bSizeBox = bSizeBox;
00133     m_hwndSizeBox = NULL;
00134     m_nCurrentKeyState = -1;
00135
00136     // 2002.11.04 Moca 変更できるように
00137     m_nButtonGroupNum = m_pShareData->m_Common.m_nFUNCKEYWND_GroupNum;
00138     if( 1 > m_nButtonGroupNum || 12 < m_nButtonGroupNum ){
00139         m_nButtonGroupNum = 4;
00140     }
00141
00142 /*
00143     wc.style            = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
00144     wc.lpfnWndProc      = CFuncKeyWndProc;
00145     wc.cbClsExtra       = 0;
00146     wc.cbWndExtra       = 32;
00147     wc.hInstance        = m_hInstance;
00148     wc.hIcon            = NULL;
00149     wc.hCursor          = LoadCursor( NULL, IDC_ARROW );
00150     wc.hbrBackground    = (HBRUSH)(COLOR_3DFACE + 1);
00151     wc.lpszMenuName     = NULL;
00152     wc.lpszClassName    = m_pszAppName;
00153     atom = RegisterClass( &wc );
00154 */
00155     /* ウィンドウクラス作成 */
00156     RegisterWC(
00157         /* WNDCLASS用 */
00158         NULL,// Handle to the class icon.
00159         NULL,   //Handle to a small icon
00160         ::LoadCursor( NULL, IDC_ARROW ),// Handle to the class cursor.
00161         (HBRUSH)(COLOR_3DFACE + 1),// Handle to the class background brush.
00162         NULL/*MAKEINTRESOURCE( MYDOCUMENT )*/,// Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file.
00163         m_pszClassName// Pointer to a null-terminated string or is an atom.
00164     );
00165
00188     /* 基底クラスメンバ呼び出し */
00189     CWnd::Create(
00190         /* CreateWindowEx()用 */
00191         0, // extended window style
00192         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00193         m_pszClassName, // pointer to window name
00194         WS_CHILD/* | WS_VISIBLE*/ | WS_CLIPCHILDREN, // window style    // 2006.06.17 ryoji WS_CLIPCHILDREN 追加    // 2007.03.08 ryoji WS_VISIBLE 除去
00195         CW_USEDEFAULT, // horizontal position of window
00196         0, // vertical position of window
00197         0, // window width  // 2007.02.05 ryoji 100->0（半端なサイズで一瞬表示されるより見えないほうがいい）
00198         ::GetSystemMetrics( SM_CYMENU ), // window height
00199         NULL // handle to menu, or child-window identifier
00200     );
00201
00202
00203     m_hwndSizeBox = NULL;
00204     if( m_bSizeBox ){
00205         m_hwndSizeBox = ::CreateWindowEx(
00206             0L,                         /* no extended styles           */
00207             "SCROLLBAR",                /* scroll bar control class     */
00208             (LPSTR) NULL,               /* text for window title bar    */
00209             WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00210             0,                          /* horizontal position          */
00211             0,                          /* vertical position            */
00212             200,                        /* width of the scroll bar      */
00213             CW_USEDEFAULT,              /* default height               */
00214             m_hWnd,                     /* handle of main window        */
00215             (HMENU) NULL,               /* no menu for a scroll bar     */
00216             m_hInstance,                /* instance owning this window  */
00217             (LPVOID) NULL               /* pointer not needed           */
00218         );
00219     }
00220
00221     /* ボタンの生成 */
00222     CreateButtons();
00223
00224 //  if( NULL != m_hWnd ){
00225 //      ::SetWindowLong( m_hWnd, GWL_USERDATA, (LONG)this );
00226 //  }
00227     Timer_ONOFF( TRUE ); // 20060126 aroka
00228     OnTimer( m_hWnd, WM_TIMER, IDT_FUNCWND, ::GetTickCount() ); // 初回更新 // 2006.12.20 ryoji
00229
00230     return m_hWnd;
00231 }
00232
00233
00234
00235
00236 /* ウィンドウ クローズ */
00237 void CFuncKeyWnd::Close( void )
00238 {
00239     if( m_hWnd ){
00240         ::DestroyWindow( m_hWnd );
00241         m_hWnd = NULL;
00242     }
00243 }
00244
00245
00246
00247
00248
00250 //void CFuncKeyWnd::OnSize(
00251 //  WPARAM  wParam, // first message parameter
00252 //  LPARAM  lParam  // second message parameter
00253
00254 // WM_SIZE処理
00255 LRESULT CFuncKeyWnd::OnSize( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00256 {
00257     int         nButtonWidth;
00258     int         nButtonHeight;
00259     int         i;
00260     int         nX;
00261 //  RECT        rc;
00262     int         nButtonNum;
00263     RECT        rcParent;
00264
00265     if( NULL == m_hWnd ){
00266         return 0L;
00267     }
00268
00269 //  /* メインウィンドウが最大化されている場合はサイズボックスを表示しない */
00270 //  BOOL            bSizeBox;
00271 //  WINDOWPLACEMENT wp;
00272 //  wp.length = sizeof( WINDOWPLACEMENT );
00273 //  ::GetWindowPlacement( m_hwndParent, &wp );
00274 //  if( SW_SHOWMAXIMIZED == wp.showCmd ){
00275 //      bSizeBox = FALSE;
00276 //  }else{
00277 //      bSizeBox = TRUE;
00278 //  }
00279 //  /* サイズボックスの表示／非表示切り替え */
00280 //  SizeBox_ONOFF( bSizeBox );
00281
00282
00283     nButtonNum = sizeof( m_hwndButtonArr ) / sizeof( m_hwndButtonArr[0] );
00284
00285     /* ボタンのサイズを計算 */
00286     nButtonWidth = CalcButtonSize();
00287
00288     ::GetWindowRect( m_hWnd, &rcParent );
00289     nButtonHeight = rcParent.bottom - rcParent.top - 2;
00290
00291     nX = 1;
00292     for( i = 0; i < nButtonNum; ++i ){
00293         if( 0 < i  && 0 == ( i % m_nButtonGroupNum ) ){
00294             nX += 12;
00295         }
00296         ::MoveWindow( m_hwndButtonArr[i], nX, 1, nButtonWidth, nButtonHeight, TRUE );
00297         nX += nButtonWidth + 1;
00298     }
00299     ::InvalidateRect( m_hWnd, NULL, TRUE ); //再描画してね。    //@@@ 2003.06.11 MIK
00300     return 0L;
00301 }
00302
00303
00304 #if 0
00305 LRESULT CFuncKeyWnd::DispatchEvent(
00306     HWND    hwnd,   // handle of window
00307     UINT    uMsg,   // message identifier
00308     WPARAM  wParam, // first message parameter
00309     LPARAM  lParam  // second message parameter
00310 )
00311 {
00312 //  if( NULL == m_hWnd ){
00313 //      return 0L;
00314 //  }
00315
00316     int     i;
00317     WORD    wNotifyCode;
00318     WORD    wID;
00319     HWND    hwndCtl;
00320     switch ( uMsg ){
00321
00322     case WM_TIMER:      return OnTimer( hwnd, uMsg, wParam, lParam );
00323     case WM_COMMAND:    return OnCommand( hwnd, uMsg, wParam, lParam );
00324     case WM_SIZE:       return OnSize( hwnd, uMsg, wParam, lParam );
00325     case WM_DESTROY:    return OnDestroy( hwnd, uMsg, wParam, lParam );
00326
00327     default:
00328         return DefWindowProc( hwnd, uMsg, wParam, lParam );
00329     }
00330 }
00331 #endif
00332
00333
00334
00335 LRESULT CFuncKeyWnd::OnCommand( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
00336 {
00337     int     i;
00338     WORD    wNotifyCode;
00339     WORD    wID;
00340     HWND    hwndCtl;
00341
00342     wNotifyCode = HIWORD(wParam);   // notification code
00343     wID = LOWORD(wParam);           // item, control, or accelerator identifier
00344     hwndCtl = (HWND) lParam;        // handle of control
00345 //  switch( wNotifyCode ){
00346 //  case BN_PUSHED:
00347         for( i = 0; i < sizeof( m_hwndButtonArr ) / sizeof( m_hwndButtonArr[0] ); ++i ){
00348             if( hwndCtl == m_hwndButtonArr[i] ){
00349                 if( 0 != m_nFuncCodeArr[i] ){
00350                     ::SendMessage( m_hwndParent, WM_COMMAND, MAKELONG( m_nFuncCodeArr[i], 0 ),  (LPARAM)hwnd );
00351                 }
00352                 break;
00353             }
00354         }
00355         ::SetFocus( m_hwndParent );
00356 //      break;
00357 //  }
00358     return 0L;
00359 }
00360
00361
00362 // WM_TIMERタイマーの処理
00363 LRESULT CFuncKeyWnd::OnTimer( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00364 {
00365 //  HWND hwnd,  // handle of window for timer messages
00366 //  UINT uMsg,  // WM_TIMER message
00367 //  UINT idEvent,   // timer identifier
00368 //  DWORD dwTime    // current system time
00369
00370
00371     //  return;
00372     if( NULL == m_hWnd ){
00373         return 0;
00374     }
00375
00376     if( ::GetActiveWindow() != m_hwndParent && m_nCurrentKeyState != -1 ) { //  2002/06/02 MIK  // 2006.12.20 ryoji 初回更新は処理する
00377         return 0;
00378     }
00379
00380     int         nIdx;
00381 //  int         nFuncId;
00382     int         i;
00383     int         nFuncCode;
00384
00385 // novice 2004/10/10
00386     /* Shift,Ctrl,Altキーが押されていたか */
00387     nIdx = getCtrlKeyState();
00388     /* ALT,Shift,Ctrlキーの状態が変化したか */
00389     if( nIdx != m_nCurrentKeyState ){
00390         m_nTimerCount = TIMER_CHECKFUNCENABLE + 1;
00391
00392         /* ファンクションキーの機能名を取得 */
00393         for( i = 0; i < sizeof( m_szFuncNameArr ) / sizeof( m_szFuncNameArr[0] ); ++i ){
00394             // 2007.02.22 ryoji CKeyBind::GetFuncCode()を使う
00395             nFuncCode = CKeyBind::GetFuncCode(
00396                     (((VK_F1 + i) | ((WORD)((BYTE)(nIdx))) << 8)),
00397                     m_pShareData->m_nKeyNameArrNum,
00398                     m_pShareData->m_pKeyNameArr
00399             );
00400             if( nFuncCode != m_nFuncCodeArr[i] ){
00401                 m_nFuncCodeArr[i] = nFuncCode;
00402                 if( 0 == m_nFuncCodeArr[i] ){
00403                     strcpy( m_szFuncNameArr[i], "" );
00404                 }else{
00405                     //  Oct. 2, 2001 genta
00406                     m_pCEditDoc->m_cFuncLookup.Funccode2Name( m_nFuncCodeArr[i],
00407                         m_szFuncNameArr[i], sizeof(m_szFuncNameArr[i]) - 1 );
00408 //                  ::LoadString( m_hInstance, m_nFuncCodeArr[i], m_szFuncNameArr[i], sizeof(m_szFuncNameArr[i]) - 1 );
00409                 }
00410                 ::SetWindowText( m_hwndButtonArr[i], m_szFuncNameArr[i] );
00411             }
00412         }
00413     }
00414     m_nTimerCount += TIMER_TIMEOUT;
00415     if( m_nTimerCount > TIMER_CHECKFUNCENABLE ||
00416         nIdx != m_nCurrentKeyState
00417     ){
00418         m_nTimerCount = 0;
00419         /* 機能が利用可能か調べる */
00420         for( i = 0; i < sizeof( m_szFuncNameArr ) / sizeof( m_szFuncNameArr[0] ); ++i ){
00421             if( CEditWnd::IsFuncEnable( (CEditDoc*)m_pCEditDoc, m_pShareData, m_nFuncCodeArr[i]  ) ){
00422                 ::EnableWindow( m_hwndButtonArr[i], TRUE );
00423             }else{
00424                 ::EnableWindow( m_hwndButtonArr[i], FALSE );
00425             }
00426         }
00427     }
00428 //  MYTRACE( "\n" );
00429     m_nCurrentKeyState = nIdx;
00430     return 0;
00431 }
00432
00433
00434 // WM_DESTROY処理
00435 LRESULT CFuncKeyWnd::OnDestroy( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00436 {
00437     int i;
00438
00439     /* タイマーを削除 */
00440     Timer_ONOFF( FALSE ); // 20060126 aroka
00441
00442     /* ボタンを削除 */
00443     for( i = 0; i < sizeof( m_hwndButtonArr ) / sizeof( m_hwndButtonArr[0] ); ++i ){
00444         if( NULL != m_hwndButtonArr[i] ){
00445             ::DestroyWindow( m_hwndButtonArr[i] );
00446             m_hwndButtonArr[i] = NULL;
00447         }
00448     }
00449
00450     /* サイズボックスを削除 */
00451     if( NULL != m_hwndSizeBox ){
00452         ::DestroyWindow( m_hwndSizeBox );
00453         m_hwndSizeBox = NULL;
00454     }
00455
00456     m_hWnd = NULL;
00457     return 0L;
00458
00459 }
00460
00461
00462
00464 int CFuncKeyWnd::CalcButtonSize( void )
00465 {
00466     int         nButtonNum;
00467     RECT        rc;
00468     int         nCxHScroll;
00469     int         nCyHScroll;
00470     int         nCxVScroll;
00471     int         nCyVScroll;
00472     ::GetWindowRect( m_hWnd, &rc );
00473
00474     nButtonNum = sizeof( m_hwndButtonArr ) / sizeof( m_hwndButtonArr[0] );
00475
00476     if( NULL == m_hwndSizeBox ){
00477 //      return ( rc.right - rc.left - nButtonNum - ( (nButtonNum + m_nButtonGroupNum - 1) / m_nButtonGroupNum - 1 ) * 12 ) / nButtonNum;
00478         nCxVScroll = 0;
00479     }else{
00480         /* サイズボックスの位置、サイズ変更 */
00481         nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
00482         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
00483         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
00484         nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
00485         ::MoveWindow( m_hwndSizeBox,  rc.right - rc.left - nCxVScroll, rc.bottom - rc.top - nCyHScroll, nCxVScroll, nCyHScroll, TRUE );
00486 //      ::MoveWindow( m_hwndSizeBox,  0, 0, nCxVScroll, nCyHScroll, TRUE );
00487
00488 //      return ( rc.right - rc.left - nCxVScroll = - nButtonNum -  ( (nButtonNum + m_nButtonGroupNum - 1) / m_nButtonGroupNum - 1 ) * 12 ) / nButtonNum;
00489     }
00490     return ( rc.right - rc.left - nCxVScroll - nButtonNum -  ( (nButtonNum + m_nButtonGroupNum - 1) / m_nButtonGroupNum - 1 ) * 12 ) / nButtonNum;
00491
00492 }
00493
00494
00495
00499 void CFuncKeyWnd::CreateButtons( void )
00500 {
00501     RECT    rcParent;
00502     int     nButtonHeight;
00503     int     i;
00504
00505     ::GetWindowRect( m_hWnd, &rcParent );
00506     nButtonHeight = nButtonHeight = rcParent.bottom - rcParent.top - 2;
00507
00508     for( i = 0; i < sizeof( m_nFuncCodeArr ) / sizeof(  m_nFuncCodeArr[0] ); ++i ){
00509         m_nFuncCodeArr[i] = 0;
00510     }
00511
00512     for( i = 0; i < sizeof( m_hwndButtonArr ) / sizeof( m_hwndButtonArr[0] ); ++i ){
00513         m_hwndButtonArr[i] = ::CreateWindow(
00514             "BUTTON",   // predefined class
00515             "",         // button text
00516             WS_VISIBLE | WS_CHILD | BS_LEFT
00517             ,           // styles
00518             // Size and position values are given explicitly, because
00519             // the CW_USEDEFAULT constant gives zero values for buttons.
00520             0,          // starting x position
00521             0 + 1,      // starting y position
00522             0,          // button width
00523             nButtonHeight,      // button height
00524             m_hWnd,     // parent window
00525             NULL,       // No menu
00526             // Modified by KEITA for WIN64 2003.9.6
00527             (HINSTANCE) GetWindowLongPtr(m_hWnd, GWLP_HINSTANCE),
00528             NULL        // pointer not needed
00529         );
00530         /* フォント変更 */
00531         ::SendMessage( m_hwndButtonArr[i], WM_SETFONT, (WPARAM)m_hFont, MAKELPARAM(TRUE, 0) );
00532     }
00533     m_nCurrentKeyState = -1;
00534     return;
00535 }
00536
00537
00538
00539
00541 void CFuncKeyWnd::SizeBox_ONOFF( BOOL bSizeBox )
00542 {
00543
00544     RECT        rc;
00545     ::GetWindowRect( m_hWnd, &rc );
00546     if( m_bSizeBox == bSizeBox ){
00547         return;
00548     }
00549     if( m_bSizeBox ){
00550         ::DestroyWindow( m_hwndSizeBox );
00551         m_hwndSizeBox = NULL;
00552         m_bSizeBox = FALSE;
00553         OnSize( NULL, 0, 0, 0 );
00554     }else{
00555         m_hwndSizeBox = ::CreateWindowEx(
00556             0L,                         /* no extended styles           */
00557             "SCROLLBAR",                /* scroll bar control class     */
00558             (LPSTR) NULL,               /* text for window title bar    */
00559             WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles */
00560             0,                          /* horizontal position          */
00561             0,                          /* vertical position            */
00562             200,                        /* width of the scroll bar      */
00563             CW_USEDEFAULT,              /* default height               */
00564             m_hWnd,                 /* handle of main window        */
00565             (HMENU) NULL,               /* no menu for a scroll bar     */
00566             m_hInstance,                /* instance owning this window  */
00567             (LPVOID) NULL           /* pointer not needed               */
00568         );
00569         ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00570         m_bSizeBox = TRUE;
00571         OnSize( NULL, 0, 0, 0 );
00572     }
00573     return;
00574 }
00575
00576
00577
00578 // タイマーの更新を開始／停止する。 20060126 aroka
00579 // ファンクションキー表示はタイマーにより更新しているが、
00580 // アプリのフォーカスが外れたときに親ウィンドウからON/OFFを
00581 //  呼び出してもらうことにより、余計な負荷を停止したい。
00582 void CFuncKeyWnd::Timer_ONOFF( BOOL bStart )
00583 {
00584     if( NULL != m_hWnd ){
00585         if( bStart ){
00586             /* タイマーを起動 */
00587             if( 0 == ::SetTimer( m_hWnd, IDT_FUNCWND, TIMER_TIMEOUT, NULL ) ){
00588 				::MYMESSAGEBOX( m_hWnd, MB_OK | MB_ICONEXCLAMATION, GSTR_APPNAME,
00589                     "CFuncKeyWnd::Open()\nタイマーが起動できません。\nシステムリソースが不足しているのかもしれません。"
00590                 );
00591             }
00592         } else {
00593             /* タイマーを削除 */
00594             ::KillTimer( m_hWnd, IDT_FUNCWND );
00595             m_nCurrentKeyState = -1;
00596         }
00597     }
00598     return;
00599 }
00600
00601
00602 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncKeyWnd.h

CFuncKeyWnd.h

ファンクションキーウィンドウ [詳細]

#include "CWnd.h"
#include "CShareData.h"

CFuncKeyWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CFuncKeyWnd
ファンクションキーウィンドウ [詳細]

説明

ファンクションキーウィンドウ

作者:
Norio Nakatani

CFuncKeyWnd.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncKeyWnd.h ソースファイル

CFuncKeyWnd.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, YAZAKI, aroka
00009     Copyright (C) 2006, aroka
00010     Copyright (C) 2007, ryoji
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015 class CFuncKeyWnd;
00016
00017 #ifndef _CFUNCKEYWND_H_
00018 #define _CFUNCKEYWND_H_
00019
00020 #include "CWnd.h"
00021 #include "CShareData.h"
00022 class CEditDoc; // 2002/2/10 aroka
00023
00025 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00026 class SAKURA_CORE_API CFuncKeyWnd : public CWnd
00027 {
00028 public:
00029     /*
00030     ||  Constructors
00031     */
00032     CFuncKeyWnd();
00033     virtual ~CFuncKeyWnd();
00034     /*
00035     || メンバ関数
00036     */
00037     HWND Open( HINSTANCE, HWND, CEditDoc*, BOOL );  /* ウィンドウ オープン */
00038     void Close( void ); /* ウィンドウ クローズ */
00039     void SizeBox_ONOFF( BOOL ); /* サイズボックスの表示／非表示切り替え */
00040     void Timer_ONOFF( BOOL ); /* 更新の開始／停止 20060126 aroka */
00041     /*
00042     || メンバ変数
00043     */
00044 private:
00045     // 20060126 aroka すべてPrivateにして、初期化順序に合わせて並べ替え
00046     const char*     m_pszClassName;
00047     CEditDoc*       m_pCEditDoc;
00048     DLLSHAREDATA*   m_pShareData;
00049     int             m_nCurrentKeyState;
00050     char            m_szFuncNameArr[12][256];
00051     HWND            m_hwndButtonArr[12];
00052     HFONT           m_hFont;
00053     BOOL            m_bSizeBox;
00054     HWND            m_hwndSizeBox;
00055     int             m_nTimerCount;
00056     int             m_nButtonGroupNum; // Openで初期化
00057     int             m_nFuncCodeArr[12]; // Open->CreateButtonsで初期化
00058 protected:
00059     /*
00060     || 実装ヘルパ系
00061     */
00062     void CreateButtons( void ); /* ボタンの生成 */
00063     int CalcButtonSize( void ); /* ボタンのサイズを計算 */
00064
00065     /* 仮想関数 */
00066     virtual void AfterCreateWindow( void ){}    // ウィンドウ作成後の処理   // 2007.03.13 ryoji 可視化しない
00067
00068     /* 仮想関数 メッセージ処理 詳しくは実装を参照 */
00069     virtual LRESULT OnTimer( HWND, UINT, WPARAM, LPARAM );  // WM_TIMERタイマーの処理
00070     virtual LRESULT OnCommand( HWND, UINT, WPARAM, LPARAM );    // WM_COMMAND処理
00071     virtual LRESULT OnSize( HWND, UINT, WPARAM, LPARAM );// WM_SIZE処理
00072     virtual LRESULT OnDestroy( HWND, UINT, WPARAM, LPARAM );// WM_DESTROY処理
00073 };
00074
00075
00077 #endif /* _CFUNCKEYWND_H_ */
00078
00079
00080 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncLookup.cpp

CFuncLookup.cpp

表示用文字列等の取得 [詳細]

#include "stdafx.h"
#include "CFuncLookup.h"
#include "CSMacroMgr.h"

CFuncLookup.cppのインクルード依存関係図

ソースコードを見る。

変数

const int | LUOFFSET_MACRO = 0
const int | LUOFFSET_CUSTMENU = 1
const char * | DynCategory []
動的に内容が変わる分類の名前

説明

表示用文字列等の取得

機能名，機能分類，機能番号などの変換．設定画面での表示用文字列を用意する．

作者:
genta
日付:
Oct. 1, 2001 マクロ

Oct. 15, 2001 カスタムメニュー

CFuncLookup.cpp で定義されています。

変数

const char* DynCategory[]

初期値:

 {
    "外部マクロ",
    "カスタムメニュー"
}
動的に内容が変わる分類の名前

CFuncLookup.cpp の 43 行で定義されています。

参照元 CFuncLookup::Category2Name().

const int LUOFFSET_CUSTMENU = 1

CFuncLookup.cpp の 40 行で定義されています。

参照元 CFuncLookup::Category2Name()・CFuncLookup::GetItemCount()・CFuncLookup::Pos2FuncCode()・CFuncLookup::Pos2FuncName().

const int LUOFFSET_MACRO = 0

CFuncLookup.cpp の 39 行で定義されています。

参照元 CFuncLookup::Category2Name()・CFuncLookup::GetItemCount()・CFuncLookup::Pos2FuncCode()・CFuncLookup::Pos2FuncName().

Sakura-Editorに対してSat Oct 27 02:17:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncLookup.cpp ソースファイル

CFuncLookup.cpp

説明を見る。
00001
00010 /*
00011     Copyright (C) 2001, genta
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00033
00034 #include "stdafx.h"
00035 #include "CFuncLookup.h"
00036 #include "CSMacroMgr.h"// 2002/2/10 aroka
00037
00038 //  オフセット値
00039 const int LUOFFSET_MACRO = 0;
00040 const int LUOFFSET_CUSTMENU = 1;
00041
00043 const char *DynCategory[] = {
00044     "外部マクロ",
00045     "カスタムメニュー"
00046 };
00047
00053 int CFuncLookup::Pos2FuncCode( int category, int position ) const
00054 {
00055     if( category < nsFuncCode::nFuncKindNum ){
00056         return nsFuncCode::ppnFuncListArr[category][position];
00057     }
00058     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_MACRO){
00059         //  キー割り当てマクロ
00060         if( m_pcSMacroMgr->IsEnabled(position))
00061             return F_USERMACRO_0 + position;
00062     }
00063     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_CUSTMENU){
00064         //  キー割り当てマクロ
00065         if( position == 0 )
00066             return F_MENU_RBUTTON;
00067         else if( 1 <= position && position <= MAX_CUSTOM_MENU - 1 )
00068             return F_CUSTMENU_BASE + position;
00069     }
00070     return 0;
00071 }
00072
00083 bool CFuncLookup::Pos2FuncName( int category, int position, char *ptr, int bufsize ) const
00084 {
00085     int func;
00086     if( category < nsFuncCode::nFuncKindNum ){
00087         func = nsFuncCode::ppnFuncListArr[category][position];
00088         return ( ::LoadString( m_hInstance, func, ptr, bufsize ) > 0 );
00089     }
00090     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_MACRO){
00091         //  キー割り当てマクロ
00092         const char *p = m_pcSMacroMgr->GetTitle( position );
00093         if( p == NULL )
00094             return false;
00095         strncpy( ptr, p, bufsize - 1 );
00096         ptr[ bufsize - 1 ] = '\0';
00097     }
00098     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_CUSTMENU){
00099         //  キー割り当てマクロ
00100         if( 0 <= position && position < MAX_CUSTOM_MENU )
00101         {
00102             strncpy( ptr, m_pCommon->m_szCustMenuNameArr[position], bufsize );
00103             ptr[bufsize-1] = '\0';
00104         }
00105         else
00106             return false;
00107     }
00108     return true;
00109 }
00110
00120 bool CFuncLookup::Funccode2Name( int funccode, char *ptr, int bufsize ) const
00121 {
00122     if( F_USERMACRO_0 <= funccode && funccode < F_USERMACRO_0 + MAX_CUSTMACRO ){
00123         int position = funccode - F_USERMACRO_0;
00124         if( !m_pcSMacroMgr->IsEnabled( position )){
00125             *ptr = '\0';
00126             return false;
00127         }
00128
00129         const char *p = m_pcSMacroMgr->GetTitle( position );
00130         if( p == NULL )
00131             return false;
00132         strncpy( ptr, p, bufsize - 1 );
00133         ptr[ bufsize - 1 ] = '\0';
00134     }
00135     else if( funccode == F_MENU_RBUTTON ){
00136         strncpy( ptr, m_pCommon->m_szCustMenuNameArr[0], bufsize );
00137         ptr[bufsize-1] = '\0';
00138     }
00139     else if( F_CUSTMENU_1 <= funccode && funccode < F_CUSTMENU_BASE + MAX_CUSTMACRO ){
00140         strncpy( ptr, m_pCommon->m_szCustMenuNameArr[ funccode - F_CUSTMENU_BASE ], bufsize );
00141         ptr[bufsize-1] = '\0';
00142     }
00143     else {
00144         return ( ::LoadString( m_hInstance, funccode, ptr, bufsize ) > 0 );
00145     }
00146     return true;
00147 }
00148
00155 const char* CFuncLookup::Category2Name( int category ) const
00156 {
00157     if( category < nsFuncCode::nFuncKindNum ){
00158         return nsFuncCode::ppszFuncKind[category];
00159     }
00160     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_MACRO ){
00161         return DynCategory[0];
00162     }
00163     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_CUSTMENU ){
00164         return DynCategory[1];
00165     }
00166     return NULL;
00167 }
00168
00173 void CFuncLookup::SetCategory2Combo( HWND hComboBox ) const
00174 {
00175     int i;
00176
00177     //  リストを初期化する
00178     ::SendMessage( hComboBox, CB_RESETCONTENT, 0, (LPARAM)0 );
00179
00180     //  固定機能リスト
00181     for( i = 0; i < nsFuncCode::nFuncKindNum; ++i ){
00182         ::SendMessage( hComboBox, CB_ADDSTRING, 0, (LPARAM)nsFuncCode::ppszFuncKind[i] );
00183     }
00184
00185     //  ユーザマクロ
00186     ::SendMessage( hComboBox, CB_ADDSTRING, 0, (LPARAM)DynCategory[0] );
00187     //  カスタムメニュー
00188     ::SendMessage( hComboBox, CB_ADDSTRING, 0, (LPARAM)DynCategory[1] );
00189 }
00190
00196 void CFuncLookup::SetListItem( HWND hListBox, int category ) const
00197 {
00198     char pszLabel[256];
00199     int i;
00200
00201     //  リストを初期化する
00202     ::SendMessage( hListBox, LB_RESETCONTENT , 0, (LPARAM)0 );
00203
00204     if( category < nsFuncCode::nFuncKindNum ){
00205         for( i = 0; i < nsFuncCode::pnFuncListNumArr[category]; ++i ){
00206             if( 0 < ::LoadString( m_hInstance, (nsFuncCode::ppnFuncListArr[category])[i], pszLabel, 255 ) ){
00207                 ::SendMessage( hListBox, LB_ADDSTRING, 0, (LPARAM)pszLabel );
00208             }else{
00209                 ::SendMessage( hListBox, LB_ADDSTRING, 0, (LPARAM)"--未定義--" );
00210             }
00211         }
00212     }
00213     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_MACRO ){
00214         //  マクロ
00215         for( i = 0; i < MAX_CUSTMACRO ; ++i ){
00216             if( m_pcSMacroMgr->IsEnabled(i)){
00217                 ::SendMessage( hListBox, LB_ADDSTRING, 0, (LPARAM)m_pcSMacroMgr->GetTitle(i));
00218             }
00219             else {
00220                 ::SendMessage( hListBox, LB_ADDSTRING, 0, (LPARAM)"unavailable" );
00221             }
00222         }
00223     }
00224     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_CUSTMENU ){
00225         for( i = 0; i < MAX_CUSTOM_MENU ; ++i ){
00226             ::SendMessage( hListBox, LB_ADDSTRING, 0, (LPARAM)m_pCommon->m_szCustMenuNameArr[i] );
00227         }
00228     }
00229 }
00230
00236 int CFuncLookup::GetItemCount(int category) const
00237 {
00238     if( category < nsFuncCode::nFuncKindNum ){
00239         return nsFuncCode::pnFuncListNumArr[category];
00240     }
00241     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_MACRO ){
00242         //  マクロ
00243         return MAX_CUSTMACRO;
00244     }
00245     else if( category == nsFuncCode::nFuncKindNum + LUOFFSET_CUSTMENU ){
00246         //  マクロ
00247         return MAX_CUSTOM_MENU;
00248     }
00249     return 0;
00250 }
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncLookup.h

CFuncLookup.h

表示用文字列等の取得 [詳細]

#include <windows.h>
#include "global.h"
#include "Funccode.h"

CFuncLookup.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CFuncLookup
表示用文字列等の取得 [詳細]

説明

表示用文字列等の取得

機能名，機能分類，機能番号などの変換．設定画面での表示用文字列を用意する．

作者:
genta
日付:
Oct. 1, 2001

CFuncLookup.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CFuncLookup.h ソースファイル

CFuncLookup.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 2001, genta
00011     Copyright (C) 2002, aroka
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00033
00034 #ifndef __CNAMELOOKUP_H__
00035 #define __CNAMELOOKUP_H__
00036
00037 #include <windows.h>
00038 #include "global.h"
00039 #include "Funccode.h"
00040 class CSMacroMgr;// 2002/2/10 aroka
00041 struct Common;// 2002/2/10 aroka
00042
00048 class SAKURA_CORE_API CFuncLookup {
00049
00050 public:
00051     //  Oct. 15, 2001 genta 引数追加
00052     CFuncLookup( HINSTANCE hInst, CSMacroMgr* SMacroMgr, Common* pCom )
00053         : m_pcSMacroMgr( SMacroMgr ), m_hInstance( hInst ), m_pCommon( pCom ) {}
00054     CFuncLookup() : m_pcSMacroMgr( NULL ), m_hInstance( NULL ) {}
00055
00056     void Init( HINSTANCE hInst, CSMacroMgr* SMacroMgr, Common* pCom ){
00057         m_pcSMacroMgr = SMacroMgr;
00058         m_hInstance = hInst;
00059         m_pCommon = pCom;
00060     }
00061
00062     int Pos2FuncCode( int category, int position ) const;
00063     bool Pos2FuncName( int category, int position, char *ptr, int bufsize ) const;
00064     bool Funccode2Name( int funccode, char *ptr, int bufsize ) const ;
00065     const char* Category2Name( int category ) const;
00066
00067     void SetCategory2Combo( HWND hComboBox ) const ;
00068     void SetListItem( HWND hListBox, int category ) const;
00069
00070     int GetCategoryCount(void) const {
00071         return nsFuncCode::nFuncKindNum + 2;
00072     }
00073
00074     int GetItemCount(int category) const;
00075
00076
00077 private:
00078     HINSTANCE m_hInstance;
00079     CSMacroMgr* m_pcSMacroMgr;
00080
00081     Common* m_pCommon;
00082
00083 };
00084
00085 #endif
00086 /* [EOF] */
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: charcode.cpp

charcode.cpp

文字コード認識ライブラリ [詳細]

#include "stdafx.h"
#include "global.h"
#include "charcode.h"

charcode.cppのインクルード依存関係図

ソースコードを見る。

ネームスペース

namespace | Charcode

関数

bool __fastcall | Charcode::IsSJisKan1 (const uchar_t c)
bool __fastcall | Charcode::IsSJisKan2 (const uchar_t c)
bool __fastcall | Charcode::IsSJisKan (const uchar_t *pC)
bool __fastcall | Charcode::IsSJisHanKata (const uchar_t c)
bool __fastcall | Charcode::IsEucKan1 (const uchar_t c)
bool __fastcall | Charcode::IsEucKan2 (const uchar_t c)
bool __fastcall | Charcode::IsEucKan (const uchar_t *pC)
bool __fastcall | Charcode::IsEucHanKana2 (const uchar_t c)
bool __fastcall | Charcode::IsUtf16SurrogHi (const uchar16_t wc)
bool __fastcall | Charcode::IsUtf16SurrogLow (const uchar16_t wc)
bool __fastcall | Charcode::IsBase64Char (const uchar_t c)
bool __fastcall | Charcode::IsUtf7SetDChar (const uchar_t c)
uchar_t __fastcall | Charcode::Base64_CharToVal (const uchar_t c)
uchar_t __fastcall | Charcode::Base64_ValToChar (const uchar_t v)
uchar_t __fastcall | Charcode::Uu_CharToVal (const uchar_t c)
int __fastcall | Charcode::GetJisESCSeqLen (const enumJisESCSeqType eEscType)
const char *__fastcall | Charcode::GetJisESCSeqData (const enumJisESCSeqType eEscType)
int | Charcode::CheckUtf7SetDPart (const uchar_t *pS, const int nLen, uchar_t *&ref_pNext)
int | Charcode::CheckUtf7SetBPart (const uchar_t *pS, const int nLen, uchar_t *&ref_pNext)
void | Charcode::GetEncdInf_Utf7 (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | Charcode::CheckUtf8Char (const uchar_t *pC, const int nLen)
int | Charcode::GuessCharLen_utf8 (const uchar_t *pC, const int nlen)
void | Charcode::GetEncdInf_Utf8 (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | Charcode::imp_CheckUtf16Char (const uchar_t *pC, const int nLen, bool bBigEndian)
int | Charcode::CheckUtf16Char (const uchar_t *pC, const int nLen)
int | Charcode::CheckUtf16BeChar (const uchar_t *pC, const int nLen)
void | Charcode::GetEncdInf_Uni (const char *pS, const int nLen, UNICODE_INFO *pWEI)
int | Charcode::CheckSJisChar (const uchar_t *pS, const int nLen)
int | Charcode::CheckSJisCharR (const uchar_t *pS, const int nLen)
int | Charcode::GuessCharLen_sjis (const uchar_t *pC, const int nLen)
void | Charcode::GetEncdInf_SJis (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | Charcode::CheckEucJpChar (const uchar_t *pS, const int nLen)
int | Charcode::GuessCharLen_eucjp (const uchar_t *pC, const int nlen)
void | Charcode::GetEncdInf_EucJp (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | Charcode::GetCharLen_sjis (const uchar_t *pC, const int nLen)
int | Charcode::GetCharLenR_sjis (const uchar_t *pC, const int nLen)
int | Charcode::GetCharLen_eucjp (const uchar_t *pC, const int nLen)
int | Charcode::GetCharLen_utf8 (const uchar_t *pC, const int nLen)
int | Charcode::DetectJisESCSeq (const uchar_t *pS, const int nLen, int *pnEscType)
void | Charcode::GetEncdInf_Jis (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | Charcode::DetectUnicodeBom (const char *pS, int nLen)

変数

const uchar_t | Charcode::ucNA = 0xff
const bool | Charcode::bNA = false
const uchar_t | Charcode::BASE64CHAR []
const uchar_t | Charcode::BASE64VAL []
const bool | Charcode::UTF7SetD []
const char | Charcode::JISESCDATA_ASCII [] = "\x1b""(B"
const char | Charcode::JISESCDATA_JISX0201Latin [] = "\x1b""(J"
const char | Charcode::JISESCDATA_JISX0201Latin_OLD [] = "\x1b""(H"
const char | Charcode::JISESCDATA_JISX0201Katakana [] = "\x1b""(I"
const char | Charcode::JISESCDATA_JISX0208_1978 [] = "\x1b""$@"
const char | Charcode::JISESCDATA_JISX0208_1983 [] = "\x1b""$B"
const char | Charcode::JISESCDATA_JISX0208_1990 [] = "\x1b""&@""\x1b""$B"
const int | Charcode::TABLE_JISESCLEN []
const char * | Charcode::TABLE_JISESCDATA []

説明

文字コード認識ライブラリ

作者:
Sakura-Editor collaborators
日付:
2006/03/06 新規作成

charcode.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: charcode.cpp ソースファイル

charcode.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2006, D. S. Koba, rastiv, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #include "stdafx.h"
00032 #include "global.h"
00033 #include "charcode.h"
00034
00035 namespace Charcode
00036 {
00037
00038     /*
00039         D. S. Koba さん作の EncodingConverter.cpp (2005-06-28版) 内で
00040         定義されていた文字テーブルをほぼそのまま引用．
00041     */
00043
00044     const uchar_t ucNA = 0xff;
00045     const bool    bNA  = false;
00046
00050     const uchar_t BASE64CHAR[] = {
00051         'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
00052         'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
00053         'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
00054         'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
00055         'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
00056         'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
00057         'w', 'x', 'y', 'z', '0', '1', '2', '3',
00058         '4', '5', '6', '7', '8', '9', '+', '/'
00059     };
00060
00064     const uchar_t BASE64VAL[] = {
00065         ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, //00-07:
00066         ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, //08-0f:
00067         ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, //10-17:
00068         ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, //18-1f:
00069         ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, //20-27:
00070         ucNA, ucNA, ucNA,   62, ucNA, ucNA, ucNA,   63, //28-2f:    +   /
00071           52,   53,   54,   55,   56,   57,   58,   59, //30-37: 01234567
00072           60,   61, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, //38-3f: 89
00073         ucNA,    0,    1,    2,    3,    4,    5,    6, //40-47:  ABCDEFG
00074            7,    8,    9,   10,   11,   12,   13,   14, //48-4f: HIJKLMNO
00075           15,   16,   17,   18,   19,   20,   21,   22, //50-57: PQRSTUVW
00076           23,   24,   25, ucNA, ucNA, ucNA, ucNA, ucNA, //58-5f: XYZ
00077            0,   26,   27,   28,   29,   30,   31,   32, //60-67: `abcdefg
00078           33,   34,   35,   36,   37,   38,   39,   40, //68-6f: hijklmno
00079           41,   42,   43,   44,   45,   46,   47,   48, //70-77: pqrstuvw
00080           49,   50,   51, ucNA, ucNA, ucNA, ucNA, ucNA, //78-7f: xyz
00081     };
00082
00086     const bool UTF7SetD[] = {
00087         bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  //00-07:
00088         bNA,  true, true, bNA,  bNA,  true, bNA,  bNA,  //08-0f:TAB, LF, CR
00089         bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  //10-17:
00090         bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  //18-1f:
00091         true, bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  true, //20-27:SP, `'`
00092         true, true, bNA,  bNA,  true, true, true, true, //28-2f:(, ), `,`, -, ., /
00093         true, true, true, true, true, true, true, true, //30-37:0 - 7
00094         true, true, true, bNA,  bNA,  bNA,  bNA,  true, //38-3f:8, 9, :, ?
00095         bNA,  true, true, true, true, true, true, true, //40-47:A - G
00096         true, true, true, true, true, true, true, true, //48-4f:H - O
00097         true, true, true, true, true, true, true, true, //50-57:P - W
00098         true, true, true, bNA,  bNA,  bNA,  bNA,  bNA,  //58-5f:X, Y, Z
00099         bNA,  true, true, true, true, true, true, true, //60-67:a - g
00100         true, true, true, true, true, true, true, true, //68-6f:h - o
00101         true, true, true, true, true, true, true, true, //70-77:p - w
00102         true, true, true, bNA,  bNA,  bNA,  bNA,  bNA,  //78-7f:x, y, z
00103     };
00104
00105     const char JISESCDATA_ASCII[]               = "\x1b""(B";
00106     const char JISESCDATA_JISX0201Latin[]       = "\x1b""(J";
00107     const char JISESCDATA_JISX0201Latin_OLD[]   = "\x1b""(H";
00108     const char JISESCDATA_JISX0201Katakana[]    = "\x1b""(I";
00109     const char JISESCDATA_JISX0208_1978[]       = "\x1b""$@";
00110     const char JISESCDATA_JISX0208_1983[]       = "\x1b""$B";
00111     const char JISESCDATA_JISX0208_1990[]       = "\x1b""&@""\x1b""$B";
00112
00113     /* ここまで */
00114
00115
00116     // 順序は enumJISEscSeqType に依存 (charcode.h にて定義されている)
00117     const int TABLE_JISESCLEN[] = {
00118         0,      // JISESC_UNKNOWN
00119         3,      // JISESC_ASCII
00120         3,      // JISESC_JISX0201Latin
00121         3,      // JISESC_JISX0201Latin_OLD
00122         3,      // JISESC_JISX0201Katakana
00123         3,      // JISESC_JISX0208_1978
00124         3,      // JISESC_JISX0208_1983
00125         6,      // JISESC_JISX0208_1990
00126     };
00127     const char* TABLE_JISESCDATA[] = {
00128         NULL,
00129         JISESCDATA_ASCII,
00130         JISESCDATA_JISX0201Latin,
00131         JISESCDATA_JISX0201Latin_OLD,
00132         JISESCDATA_JISX0201Katakana,
00133         JISESCDATA_JISX0208_1978,
00134         JISESCDATA_JISX0208_1983,
00135         JISESCDATA_JISX0208_1990,
00136     };
00137
00138     bool __fastcall IsSJisKan1( const uchar_t c ){
00139     // 参考 URL: http://www.st.rim.or.jp/~phinloda/cqa/cqa15.html#Q4
00140     //  return ( ((0x81 <= c) && (c <= 0x9f)) || ((0xe0 <= c) && (c <= 0xfc)) );
00141         return static_cast<unsigned int>(c ^ 0x20) - 0xa1 < 0x3c;
00142     }
00143     bool __fastcall IsSJisKan2( const uchar_t c ){
00144         return ( 0x40 <= c && c <= 0xfc && c != 0x7f );
00145     }
00146     bool __fastcall IsSJisKan( const uchar_t* pC ){
00147         return ( IsSJisKan1(*pC) && IsSJisKan2(*(pC+1)) );
00148     }
00149     bool __fastcall IsSJisHanKata( const uchar_t c ){
00150         return ( 0xa1 <= c && c <= 0xdf );
00151     }
00152     bool __fastcall IsEucKan1( const uchar_t c ){
00153         return ( 0xa1 <= c && c <= 0xfe );
00154     }
00155     bool __fastcall IsEucKan2( const uchar_t c ){
00156         return ( 0xa1 <= c && c <= 0xfe );
00157     }
00158     bool __fastcall IsEucKan( const uchar_t* pC ){
00159         return ( IsEucKan1(*pC) && IsEucKan2(*(pC+1)) );
00160     }
00161     bool __fastcall IsEucHanKana2( const uchar_t c ){
00162         return ( 0xa1 <= c && c <= 0xdf );
00163     }
00164     bool __fastcall IsUtf16SurrogHi( const uchar16_t wc ){
00165     //  return ( 0xd800 <= wc && wc <= 0xdbff );
00166         return ( (wc & 0xfc00) == 0xd800 );
00167     }
00168     bool __fastcall IsUtf16SurrogLow( const uchar16_t wc ){
00169     //  return ( 0xdc00 <= wc && wc <= 0xdfff );
00170         return ( (wc & 0xfc00) == 0xdc00 );
00171     }
00172 #if 0 //未使用
00173     bool __fastcall IsUtf16SurrogHiOrLow( const uchar16_t wc ){
00174         uchar16_t wc_ = wc & (uchar16_t)0xfc00;
00175         return ( wc_ == 0xd800 || wc_ == 0xdc00 );
00176     }
00177     bool __fastcall IsUtf16Surrogates( const uchar16_t* pwC ){
00178         return IsUtf16SurrogHi( *pwC ) && IsUtf16SurrogLow( *(pwC+1) );
00179     }
00180 #endif
00181     bool __fastcall IsBase64Char( const uchar_t c ){
00182         return ( !(c & 0x80) && BASE64VAL[c] != 0xff );
00183     }
00184     bool __fastcall IsUtf7SetDChar( const uchar_t c ){
00185         return ( !(c & 0x80) && UTF7SetD[c] );
00186     }
00187
00188     uchar_t __fastcall Base64_CharToVal( const uchar_t c ){
00189         return BASE64VAL[c];
00190     }
00191     uchar_t __fastcall Base64_ValToChar( const uchar_t v ){
00192         return BASE64CHAR[v];
00193     }
00194     uchar_t __fastcall Uu_CharToVal( const uchar_t c ){
00195         return static_cast<uchar_t>((c - 0x20) & 0x3f);
00196     }
00197     int __fastcall GetJisESCSeqLen( const enumJisESCSeqType eEscType ){
00198         return TABLE_JISESCLEN[(int)eEscType];
00199     }
00200     const char* __fastcall GetJisESCSeqData( const enumJisESCSeqType eEscType ){
00201         return TABLE_JISESCDATA[(int)eEscType];
00202     }
00203
00204     /*
00205         UTF-7 のこと.
00206
00207         UTF-7 セットD：　角英数字、'(),-./:?、および、TAB SP CR LF
00208         UTF-7 セットO：　!"#$%&*;<=>@[]^_`{|}
00209         UTF-7 セットB：　パッド文字を除く BASE64 文字
00210
00211         1. セットD または セットO にあるユニコード文字は, 等価な ASCII 文字で表現される.
00212         2. セットD または セットO にないユニコード文字は, BASE64 符号化され, セットB 文字列によって表現される.
00213         3. セットB の開始は, ASCII 文字 '+' によって, セットB 文字列の終端は, セットB にない文字の出現によって認識される.
00214            セットB 文字列の終端部分には, セットB にない ASCII 文字 '-' を入れてもよいことになっていて,
00215            その終端文字は見つかり次第削除される.
00216            セットB 開始文字である ASCII 文字 '+' 自体は, "+-" という文字列で表される.
00217
00218         参考資料：「UCSとUTF」http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
00219                   「RFC 2152」http://www.ietf.org/rfc/rfc2152.txt
00220     */
00221
00228     int CheckUtf7SetDPart( const uchar_t* pS, const int nLen, uchar_t*& ref_pNext )
00229     {
00230         uchar_t* ptr;
00231         uchar_t* base_ptr;
00232         uchar_t* end_ptr;
00233         int nlostbytes = 0;
00234
00235         base_ptr = const_cast<uchar_t*>(pS);
00236         end_ptr = base_ptr + nLen;
00237         for( ptr = base_ptr; ptr < end_ptr; ++ptr ){
00238             if( IsUtf7SetDChar( *ptr ) ){
00239                 continue;
00240             }
00241             if( *ptr == '+' ){
00242                 // UTF-7 Set B 部分の開始記号を発見.
00243                 break;
00244             }
00245             nlostbytes++;
00246         }
00247
00248         ref_pNext = ptr;
00249         return nlostbytes;
00250     }
00251
00259     int CheckUtf7SetBPart( const uchar_t* pS, const int nLen, uchar_t*& ref_pNext )
00260     {
00261         uchar_t* ptr;
00262         uchar_t* base_ptr;
00263         uchar_t* end_ptr;
00264         int nlostbytes = 0;
00265         int nrem;
00266
00267         base_ptr = const_cast<uchar_t*>(pS);
00268         end_ptr = base_ptr + nLen;
00269         for( ptr = base_ptr; ptr < end_ptr; ++ptr ){
00270             if( !IsBase64Char( *ptr ) ){
00271                 // UTF-7 Set D 部分の開始を認識.
00272                 break;
00273             }
00274         }
00275
00276         /*
00277         ◆ 検証ステップ
00278
00279         デコード後のデータ長をチェックする.
00280         調査してきたデータ長 (ptr-base_ptr) を８で割ってみる.
00281         その余りの値から考えられるビット列は…
00282
00283                      |----------------------------- Base64 表現 --------------------------------------------|
00284                      第1バイト  第2バイト  第3バイト  第4バイト  第5バイト  第6バイト  第7バイト  第8バイト
00285         残り１文字   00xx xxxx  00xx xxxx  00xx xx00     ---        ---        ---        ---        ---
00286         残り２文字   00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx 0000     ---        ---
00287         残り３文字   00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx  00xx xxxx
00288
00289         上記３通りのいづれにも当てはまらない場合は全データを落とす（不正バイトとする）.
00290         */
00291
00292         nrem = (ptr-base_ptr) % 8;
00293         switch ( nrem ){
00294         case 3:
00295             if( Base64_CharToVal( ptr[-1] ) & 0x03 ){
00296                 nlostbytes = ptr - base_ptr;
00297             }
00298             break;
00299         case 6:
00300             if( Base64_CharToVal( ptr[-1] ) & 0x0f ){
00301                 nlostbytes = ptr - base_ptr;
00302             }
00303             break;
00304         case 0:
00305             break;
00306         default:
00307             nlostbytes = ptr - base_ptr;
00308         }
00309
00310         ref_pNext = ptr;
00311         return nlostbytes;
00312     }
00313
00314
00318     void GetEncdInf_Utf7( const char* pS, const int nLen, MBCODE_INFO* pEI )
00319     {
00320         uchar_t* ptr;
00321         uchar_t* base_ptr;
00322         uchar_t* end_ptr;
00323         int nlostbytes;
00324         int num_of_base64_encoded_bytes;
00325         bool bSetBPart;
00326         int nret;
00327
00328         nlostbytes = 0;
00329         num_of_base64_encoded_bytes = 0;
00330         bSetBPart = false;
00331         base_ptr = (uchar_t *)pS;
00332         ptr = base_ptr;
00333         end_ptr = base_ptr + nLen;
00334
00335         while( 1 ){
00336             nret = CheckUtf7SetDPart( base_ptr, end_ptr-base_ptr, ptr );
00337             nlostbytes += nret;
00338
00339             ptr++;  // '+' をスキップ．
00340             base_ptr = ptr;
00341
00342             nret = CheckUtf7SetBPart( base_ptr, end_ptr-base_ptr, ptr );
00343             // ここで， [特有バイト数] := [実際に調査されたデータ長] - [不正バイト数]
00344             num_of_base64_encoded_bytes += (ptr-base_ptr) - nret;
00345
00346             // ptr == end_ptr が成り立つ場合, CheckUtf7SetBPart() 関数の特性により，
00347             // 単純に不正バイト数 := ptr-base_ptr（読み込んだバイト数）となる恐れがあるので，
00348             // 条件 ptr == end_ptr が成り立つときはループ脱出．
00349             if( end_ptr <= ptr ){
00350                 break;
00351             }
00352             nlostbytes += nret;
00353
00354             if( *ptr == '-' ){
00355                 ptr++;
00356                 if( end_ptr <= ptr ){
00357                     break;
00358                 }
00359             }
00360             base_ptr = ptr;
00361         }
00362         pEI->eCodeID = CODE_UTF7;
00363         pEI->nSpecBytes = num_of_base64_encoded_bytes;
00364         pEI->nDiff = num_of_base64_encoded_bytes - nlostbytes;
00365
00366         return;
00367     }
00368
00369
00370     /* -------------------------------------------------------------------------------------------------------------- *
00371     UTF-8のコード
00372     ビット列        内容
00373     0xxx xxxx   1バイトコードの先頭
00374     110x xxxx   2バイトコードの先頭
00375     1110 xxxx   3バイトコードの先頭
00376     1111 0xxx   4バイトコードの先頭
00377     10xx xxxx   UTF-8 バイトコードの 2 バイト目以降
00378
00379     UTF-8のエンコーディング
00380
00381     ビット列                  MSB -         UCS ビット列         - LSB     第1バイト  第2バイト  第3バイト  第4バイト
00382     \u0～\u7F         (UCS2)  0000 0000 0000 0000  0000 0000 0aaa bbbb  -> 0aaa bbbb     ---        ---        ---
00383     \u80～\u7FF       (UCS2)  0000 0000 0000 0000  0000 0aaa bbbb cccc  -> 110a aabb  10bb cccc     ---        ---
00384     \u800～\uFFFF     (UCS2)  0000 0000 0000 0000  aaaa bbbb cccc dddd  -> 1110 aaaa  10bb bbcc  10cc dddd     ---
00385     \u10000～\u1FFFFF (UCS4)  0000 0000 000a bbbb  cccc dddd eeee ffff  -> 1111 0abb  10bb cccc  10dd ddee  10ee ffff
00386
00387     参考資料：「UCSとUTF」http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
00388     * --------------------------------------------------------------------------------------------------------------- */
00389
00397     int CheckUtf8Char( const uchar_t* pC, const int nLen )
00398     {
00399         uchar_t c0, c1, c2, c3, ctemp;
00400
00401 #if 0
00402         // rastiv  分かりやすいコード．
00403
00404         if( nLen < 1 ){
00405             return 0;
00406         }
00407
00408         c0 = *pC;
00409         if( /*nLen > 0 &&*/ (c0 & 0x80) == 0 ){
00410             return 1;
00411         }
00412         if( 1 < nLen && (c0 & 0xe0) == 0xc0 ){
00413             c1 = pC[1];
00414             if( (c1 & 0xc0) == 0x80 ){
00415                 if( (c0 & 0x1e) == 0 ){
00416                     // デコードできません.(往復変換不可)
00417                     return -2;
00418                 }
00419                 return 2;
00420             }
00421         }
00422         if( 2 < nLen && (c0 & 0xf0) == 0xe0 ){
00423             c1 = pC[1];
00424             c2 = pC[2];
00425             if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 ){
00426                 if( (c0 & 0x0f) == 0 && (c1 & 0x20) == 0 ){
00427                     // デコードできません.(往復変換不可)
00428                     return -3;
00429                 }
00430                 if( (c0 & 0x0f) == 0x0d && (c1 & 0x20) != 0 ){
00431                     // U+D800 から U+DFFF のサロゲート領域は不正です.
00432                     return -3;
00433                 }
00434                 return 3;
00435             }
00436         }
00437         if( 3 < nLen && (c0 & 0xf8) == 0xf0 ){
00438             c1 = pC[1];
00439             c2 = pC[2];
00440             c3 = pC[3];
00441             if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 && (c3 & 0xc0) == 0x80 ){
00442                 if( (c0 & 0x07) == 0 && (c1 & 0x30) == 0 ){
00443                     // デコードできません.(往復変換不可)
00444                     return -4;
00445                 }
00446                 if( (c0 & 0x04) != 0 && ((c0 & 0x03) != 0 || (c1 & 0x30) != 0) ){
00447                     // 値が大きすぎます.
00448                     return -4;
00449                 }
00450                 return 4;
00451             }
00452         }
00453         return -1;
00454 #endif
00455
00456         if( 0 < nLen ){
00457             c0 = *pC;
00458             if( (c0 & 0x80) == 0 ){
00459                 return 1;
00460             }
00461             if( 1 < nLen ){
00462                 c1 = pC[1];
00463                 if( (c0 & 0xe0) == 0xc0 ){
00464                     if( (c1 & 0xc0) == 0x80 ){
00465                         if( (c0 & 0x1e) == 0 ){
00466                             // デコードできません.(往復変換不可領域)
00467                             return -2;
00468                         }
00469                         return 2;
00470                     }
00471                 }
00472                 if( 2 < nLen ){
00473                     c2 = pC[2];
00474                     if( (c0 & 0xf0) == 0xe0 ){
00475                     //  if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 ){
00476                         if( ((c1 & 0xc0) & (c2 & 0xc0)) == 0x80 ){
00477                         //  if( (c0 & 0x0f) == 0 && (c1 & 0x20) == 0 ){
00478                             if( ((c0 & 0x0f) | (c1 & 0x20)) == 0 ){
00479                                 // デコードできません.(往復変換不可領域)
00480                                 return -3;
00481                             }
00482                         //  if( (c0 & 0x0f) == 0x0d && (c1 & 0x20) != 0 ){
00483                             if( (((c0 & 0x0f) ^ 0x0d) | (c1 & 0x20)) == 0x20 ){
00484                                 // U+D800 から U+DFFF のサロゲート領域は不正です.
00485                                 return -3;
00486                             }
00487                             return 3;
00488                         }
00489                     }
00490                     if( 3 < nLen ){
00491                         c3 = pC[3];
00492                         if( (c0 & 0xf8) == 0xf0 ){
00493                         //  if( (c1 & 0xc0) == 0x80 && (c2 & 0xc0) == 0x80 && (c3 & 0xc0) == 0x80 ){
00494                             if( ((c1 & 0xc0) & (c2 & 0xc0) & (c3 & 0xc0)) == 0x80 ){
00495                             //  if( (c0 & 0x07) == 0 && (c1 & 0x30) == 0 ){
00496                                 if( ((c0 & 0x07) | (c1 & 0x30)) == 0 ){
00497                                     // デコードできません.(往復変換不可領域)
00498                                     return -4;
00499                                 }
00500                             //  if( (c0 & 0x04) != 0 && ((c0 & 0x03) != 0 || (c1 & 0x30) != 0) ){
00501                                 ctemp = static_cast<uchar_t>(c0 & 0x04);
00502                                 if( (ctemp | (c0 & 0x03)) | (ctemp | (c1 & 0x30)) ){
00503                                     // 値が大きすぎます.
00504                                     return -4;
00505                                 }
00506                                 return 4;
00507                             }
00508                         }
00509                     } // 3 < nLen
00510                 } // 2 < nLen
00511             } // 1 < nLen
00512             return -1;
00513         } // 0 < nLen
00514         return 0;
00515     }
00516     int GuessCharLen_utf8(const uchar_t* pC, const int nlen )
00517     {
00518         uchar_t uc;
00519
00520         if( nlen < 1 ){
00521             return 0;
00522         }
00523         uc = *pC;
00524         if( 1 < nlen && ( uc & 0xe0 ) == 0xc0 ){
00525             return 2;
00526         }
00527         if( 2 < nlen && ( uc & 0xf0 ) == 0xe0 ){
00528             return 3;
00529         }
00530         if( 3 < nlen && ( uc & 0xf8 ) == 0xf0 ){
00531             return 4;
00532         }
00533         return 1;
00534     }
00535
00536
00540     void GetEncdInf_Utf8( const char* pS, const int nLen, MBCODE_INFO* pEI )
00541     {
00542         uchar_t* ptr;
00543         uchar_t* end_ptr;
00544         int nlostbytes;
00545         int num_of_utf8_encoded_bytes;
00546         int nret;
00547
00548         nlostbytes = 0;
00549         num_of_utf8_encoded_bytes = 0;
00550         ptr = (uchar_t *)pS;
00551         end_ptr = ptr + nLen;
00552
00553         while( 0 != (nret = CheckUtf8Char( ptr, end_ptr-ptr )) ){
00554             if( 0 < nret ){
00555                 ptr += nret;
00556                 if( 1 < nret ){
00557                     num_of_utf8_encoded_bytes += nret;
00558                 }
00559             }else{
00560                 if( end_ptr - ptr < GuessCharLen_utf8( ptr ) ){
00561                     // データが少なくなってきました．
00562                     break;
00563                 }
00564                 ptr += -nret;
00565                 nlostbytes += -nret;
00566             }
00567         }
00568         pEI->eCodeID = CODE_UTF8;
00569         pEI->nSpecBytes = num_of_utf8_encoded_bytes;
00570         pEI->nDiff = num_of_utf8_encoded_bytes - nlostbytes;
00571
00572         return;
00573     }
00574
00575
00576     /*
00577         UTF-16 サロゲート処理のこと.
00578
00579         U+10000 から U+10FFFF の文字値 a0 に対しては,
00580
00581             a0 = HHHHHHHHHHLLLLLLLLLL  U+10000 ～ U+10FFFF
00582             w1 = 110110HH HHHHHHHH     上位サロゲート：U+D800 ～ U+DBFF
00583             w2 = 110111LL LLLLLLLL     下位サロゲート：U+DC00 ～ U+DFFF
00584
00585         1. 0x10000 を引き, 20ビットの文字値 a1 (0x00000 ～ 0xFFFFF) で表現した後,
00586              a1 ← a0 - 0x10000
00587         2. 上位 10ビットを w1, 下位 10ビットを w2 に分け,
00588              w1 ← (a1 & 0xFFC0) >> 6
00589              w2 ←  a1 & 0x03FF
00590         3. w1, w2 の上位 6ビット分の空き領域を, それぞれ 110110 と 110111 で埋める.
00591              w1 ← w1 | 0xD800
00592              w2 ← w2 | 0xDC00
00593
00594
00595         U+FFFE, U+FFFF は, 未定義値.
00596
00597         参考資料：「UCSとUTF」http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
00598     */
00599
00606     int imp_CheckUtf16Char( const uchar_t* pC, const int nLen, bool bBigEndian )
00607     {
00608         const uchar16_t* pwC = reinterpret_cast<const uchar16_t*>(pC);
00609         uchar16_t wc1, wc2, tmp;
00610
00611         if( 1 < nLen ){
00612             wc1 = pwC[0];
00613             if( bBigEndian ){
00614                 tmp = static_cast<uchar16_t>(wc1 >> 8);
00615                 wc1 <<= 8;
00616                 wc1 |= tmp;
00617             }
00618             if( (wc1 & 0xfffe) == 0xfffe || IsUtf16SurrogLow(wc1) ){
00619                 /* 未定義文字，または下位サロゲート． */
00620                 // 0xffff とか 0xfffe は将来的に内部で使用するかもしれないのでカット．
00621                 return -2;
00622             }
00623             if( !IsUtf16SurrogHi(wc1) ){
00624                 return 2; // 通常の文字．
00625             }
00626             if( 3 < nLen ){
00627                 wc2 = pwC[1];
00628                 if( bBigEndian ){
00629                     tmp = static_cast<uchar16_t>(wc2 >> 8);
00630                     wc2 <<= 8;
00631                     wc2 |= tmp;
00632                 }
00633                 if( IsUtf16SurrogLow(wc2) ){
00634                     return 4;  // サロゲートペア．
00635                 }
00636             }
00637             return -2;  // サロゲート片 → 不正．
00638         }
00639         return 0;
00640     }
00641     int CheckUtf16Char( const uchar_t* pC, const int nLen ){
00642         return imp_CheckUtf16Char( pC, nLen, false );
00643     }
00644     int CheckUtf16BeChar( const uchar_t* pC, const int nLen ){
00645         return imp_CheckUtf16Char( pC, nLen, true );
00646     }
00647
00648 #if 0  // 未使用．
00649     int GuessCharLenAsUtf16_imp( const uchar_t* pC, const int nLen, bool bBigEndian )
00650     {
00651         uchar16_t wc1, wc2;
00652
00653         if( nLen < 2 ){
00654             return 0;
00655         }
00656         wc1 = *reinterpret_cast<const uchar16_t *>(pC);
00657         if( bBigEndian ){
00658             wc2 = wc1;
00659             wc2 >>= 8;
00660             wc1 <<= 8;
00661             wc1 |= wc2;
00662         }
00663         if( 3 < nLen && IsUtf16SurrogHi(wc1) ){
00664             return 4;
00665         }else{
00666             return 2;
00667         }
00668     }
00669     int GuessCharLenAsUtf16( const uchar_t* pC, const int nLen )
00670     {
00671         return GuessCharLenAsUtf16_imp( pC, nLen, false );
00672     }
00673     int GuessCharLenAsUtf16Be( const uchar_t* pC, const int nLen )
00674     {
00675         return GuessCharLenAsUtf16_imp( pC, nLen, true );
00676     }
00677 #endif
00678
00682     void GetEncdInf_Uni( const char* pS, const int nLen, UNICODE_INFO* pWEI )
00683     {
00684         uchar_t* ptr;
00685         uchar_t* end_ptr;
00686         int nlostbytes;
00687         int nCRorLF_uni;    // Unicode 版 CR, LF のバイト数
00688         int nCRorLF_ascii;  // ASCII 版 CR, LF のバイト数
00689         int nret;
00690         uchar16_t wc, wc_tmp1, wc_tmp2;
00691
00692         nlostbytes = 0;
00693         nCRorLF_ascii = 0;
00694         nCRorLF_uni = 0;
00695         ptr = (uchar_t *)pS;
00696         end_ptr = ptr + nLen;
00697
00698         while( 0 != (nret = CheckUtf16Char(ptr, end_ptr-ptr)) ){
00699             if( 0 < nret ){
00700                 if( nret == 2 ){
00701                     //
00702                     // ワイド文字(Unicode)の改行とマルチバイト文字の改行をカウント
00703                     //
00704                     wc = *reinterpret_cast<uchar16_t *>(ptr);
00705                     wc_tmp1 = static_cast<uchar16_t>(0x00ff & wc);
00706                     wc_tmp2 = static_cast<uchar16_t>(0xff00 & wc);
00707                     if( 0x000a == wc_tmp1 ){
00708                         nCRorLF_ascii++;
00709                         if( 0x0000 == wc_tmp2 ){
00710                             nCRorLF_uni++;
00711                         }else if( 0x0a00 == wc_tmp2 || 0x0d00 == wc_tmp2 ){
00712                             nCRorLF_ascii++;
00713                         }
00714                     }else if( 0x000d == wc_tmp1 ){
00715                         nCRorLF_ascii++;
00716                         if( 0x0000 == wc_tmp2 ){
00717                             nCRorLF_uni++;
00718                         }else if( 0x0a00 == wc_tmp2 || 0x0d00 == wc_tmp2 ){
00719                             nCRorLF_ascii++;
00720                         }
00721                     }else{
00722                         if( 0x0a00 == wc_tmp2 || 0x0d00 == wc_tmp2 ){
00723                             nCRorLF_ascii++;
00724                         }
00725                     }
00726                 }/*else{ // nret == 4
00727                 }*/
00728                 ptr += nret;
00729             }else if( nret == -2 ){
00730                 // サロゲートペアが片一方しかない, または値が未定義.
00731                 ptr += 2;
00732                 nlostbytes += 2;
00733             }else{
00734                 break;
00735             }
00736         }
00737         pWEI->Uni.eCodeID = CODE_UNICODE;
00738         pWEI->Uni.nCRorLF = nCRorLF_uni;
00739         pWEI->Uni.nLostBytes = nlostbytes;
00740         pWEI->nCRorLF_ascii = nCRorLF_ascii;
00741
00742         nlostbytes = 0;
00743         nCRorLF_uni = 0;
00744         ptr = (uchar_t *)pS;
00745         //end_ptr = ptr + nLen;
00746
00747         while( 0 != (nret = CheckUtf16BeChar(ptr, end_ptr-ptr)) ){
00748             if( 0 < nret ){
00749                 if( nret == 2 ){
00750                     //
00751                     // ワイド文字(Unicode BE)の改行をカウント
00752                     //
00753                     wc = *reinterpret_cast<uchar16_t *>(ptr);
00754                     if( 0x0a00 == wc || 0x0d00 == wc ){
00755                         nCRorLF_uni++;
00756                     }
00757                 }/*else{ // nret == 4
00758                 }*/
00759                 ptr += nret;
00760             }else if( nret == -2 ){
00761                 // サロゲートペアが片一方しかない, または値が未定義.
00762                 ptr += 2;
00763                 nlostbytes += 2;
00764             }else{
00765                 break;
00766             }
00767         }
00768         pWEI->UniBe.eCodeID = CODE_UNICODEBE;
00769         pWEI->UniBe.nCRorLF = nCRorLF_uni;
00770         pWEI->UniBe.nLostBytes = nlostbytes;
00771
00772         return;
00773     }
00774
00775
00776     /*
00777         SJIS のこと.
00778
00779         第１バイト |  1000 0001(0x81)         |   1110 0000(0xE0)         |   1010 0001(0xA1)
00780                    | ～ 1001 1111(0x9F)       |  ～ 1110 1111(0xEF)       |  ～ 1101 1111(0xDF)
00781                    | → SJIS 全角漢字かなカナ |  → SJIS 全角漢字カナかな |  → 半角カナ
00782         -----------+--------------------------+---------------------------+-------------------------
00783         第２バイト |        0100 0000(0x40)  ～  1111 1100(0xFC)          |      ----
00784                    |         ただし 0111 1111(0x7F) は除く.               |
00785
00786         参考：「■G-PROJECT■ -日本語文字コードの判別」http://www.gprj.net/dev/tips/other/kanji.shtml
00787               「ミケネコの文字コードの部屋」http://mikeneko.creator.club.ne.jp/~lab/kcode/index.html
00788     */
00789
00793     int CheckSJisChar( const uchar_t* pS, const int nLen )
00794     {
00795         uchar_t uc;
00796
00797         if( 0 < nLen ){
00798             uc = *pS;
00799             if( (uc & 0x80) == 0 || IsSJisHanKata( uc ) ){
00800                 // ASCII またはローマ字(JIS X 0201 Roman)
00801                 // 半角カナ(JIS X 0201 Kana)
00802                 return 1;
00803             }
00804             if( 1 < nLen && IsSJisKan(pS) ){
00805                 // SJIS 漢字・全角カナかな  (JIS X 0208)
00806                 return 2;
00807             }
00808             return -1;
00809         }
00810         return 0;
00811     }
00812     int CheckSJisCharR( const uchar_t* pS, const int nLen )
00813     {
00814         uchar_t uc;
00815
00816         if( 0 < nLen ){
00817             uc = pS[-1];
00818             if( uc < 0x40 || 0x7f == uc ){
00819                 // ASCII またはローマ字(JIS X 0201 Roman.)
00820                 return 1;
00821             }
00822             if( 1 < nLen && IsSJisKan1(pS[-2]) ){
00823                 // SJIS 漢字・全角カナかな  (JIS X 0208)
00824                 return 2;
00825             }
00826             if( IsSJisHanKata(uc) ){
00827                 // 半角カナ(JIS X 0201 Kana)
00828                 return 1;
00829             }
00830             return -1;
00831         }
00832         return 0;
00833     }
00834     int GuessCharLen_sjis( const uchar_t* pC, const int nLen )
00835     {
00836         if( nLen < 1 ){
00837             return 0;
00838         }
00839         if( 1 < nLen && IsSJisKan1(*pC) ){
00840             return 2;
00841         }
00842         return 1;
00843     }
00844
00848     void GetEncdInf_SJis( const char* pS, const int nLen, MBCODE_INFO* pEI )
00849     {
00850         uchar_t* ptr;
00851         uchar_t* end_ptr;
00852         int nlostbytes;
00853         int num_of_sjis_encoded_bytes;
00854         int nret;
00855
00856         nlostbytes = 0;
00857         num_of_sjis_encoded_bytes = 0;
00858         ptr = (uchar_t *)pS;
00859         end_ptr = ptr + nLen;
00860
00861         while( 0 != (nret = CheckSJisChar( ptr, end_ptr-ptr )) ){
00862             if( 0 < nret ){
00863                 ptr += nret;
00864                 if( 1 < nret ){
00865                     num_of_sjis_encoded_bytes += nret;
00866                 }
00867             }else /* ret < 0 */{
00868                 if( end_ptr-ptr < GuessCharLen_sjis( ptr ) ){
00869                     // データが残り少なくなりました.
00870                     break;
00871                 }
00872                 ptr++;
00873                 nlostbytes++;
00874             }
00875         }
00876         pEI->eCodeID = CODE_SJIS;
00877         pEI->nSpecBytes = num_of_sjis_encoded_bytes;
00878         pEI->nDiff = num_of_sjis_encoded_bytes - nlostbytes;
00879
00880         return;
00881     }
00882
00883
00884
00885     /*
00886         EUC-JP のこと.
00887
00888         第1バイト |   1000 1110(0x8E)   |  1000 1111(0x8F)    |  1010 0001(0xA1) ～ 1111 1110(0xFE)
00889                   |   → 半角カナ       |  → 補助漢字        |  → 漢字かなカナ
00890         ----------+---------------------+---------------------+-------------------------------------
00891         第2バイト |  1010 0001(0xA1)    |   1010 0001(0xA1)   |      1010 0001(0xA1)
00892                   | ～ 1101 1111(0xDF)  |  ～ 1111 1110(0xFE) |     ～ 1111 1110(0xFE)
00893         ----------+---------------------+---------------------+-------------------------------------
00894         第3バイト |        ----         |   1010 0001(0xA1)   |        ----
00895                   |                     |  ～ 1111 1110(0xFE) |
00896
00897         参考：「■G-PROJECT■ -日本語文字コードの判別」http://www.gprj.net/dev/tips/other/kanji.shtml
00898               「ミケネコの文字コードの部屋」http://mikeneko.creator.club.ne.jp/~lab/kcode/index.html
00899     */
00900
00906     int CheckEucJpChar( const uchar_t* pS, const int nLen )
00907     {
00908         uchar_t uc;
00909
00910         if( 0 < nLen ){
00911             uc = *pS;
00912             if( (uc & 0x80) == 0 ){
00913                 // ASCII またはローマ字です.  (JIS X 0201 Roman.)
00914                 return 1;
00915             }
00916             if( 1 < nLen ){
00917                 if( IsEucKan( pS ) ){
00918                     // EUC-JP 漢字・かなカナ です.  (JIS X 0208.)
00919                     return 2;
00920                 }
00921             //- if( uc == 0x8e && IsEucKan( pS ) ){
00922             //-     // 半角カナです.  (JIS X 0201 Kana.)
00923             //-     return 2;
00924             //- }
00925                 if( uc == 0x8e && IsEucHanKana2( pS[1] ) ){
00926                     // 半角カナです.  (JIS X 0201 Kana.)
00927                     return 2;
00928                 }
00929                 if( 2 < nLen ){
00930                     if( uc == 0x8f && IsEucKan( pS+1 ) ){
00931                         // EUC-JP 補助漢字です.  (JIS X 0212.)
00932                         return 3;
00933                     }
00934                 }
00935             }
00936             return -1;
00937         }
00938         return 0;
00939     }
00940     int GuessCharLen_eucjp( const uchar_t*pC, const int nlen )
00941     {
00942         uchar_t uc;
00943
00944         if( nlen < 1 ){
00945             return 0;
00946         }
00947         uc = *pC;
00948         if( 2 < nlen && uc == 0x8f ){
00949             return 3;
00950         }
00951         if( 1 < nlen && (uc == 0x8e || IsEucKan1(uc)) ){
00952             return 2;
00953         }
00954         return 1;
00955     }
00956
00957
00961     void GetEncdInf_EucJp( const char* pS, const int nLen, MBCODE_INFO* pEI )
00962     {
00963         uchar_t* ptr;
00964         uchar_t* end_ptr;
00965         int nlostbytes;
00966         int num_of_eucjp_encoded_bytes;
00967         int nret;
00968
00969         nlostbytes = 0;
00970         num_of_eucjp_encoded_bytes = 0;
00971         ptr = (uchar_t *)pS;
00972         end_ptr = ptr + nLen;
00973         while( 0 != (nret = CheckEucJpChar( ptr, end_ptr-ptr )) ){
00974             if( 0 < nret ){
00975                 ptr += nret;
00976                 if( 1 < nret ){
00977                     num_of_eucjp_encoded_bytes += nret;
00978                 }
00979             }else /* ret < 0 */{
00980                 if( end_ptr-ptr < GuessCharLen_eucjp( ptr ) ){
00981                     // 残りデータが少なくなりました...
00982                     break;
00983                 }
00984                 ptr++;
00985                 nlostbytes++;
00986             }
00987         }
00988         pEI->eCodeID = CODE_EUC;
00989         pEI->nSpecBytes = num_of_eucjp_encoded_bytes;
00990         pEI->nDiff = num_of_eucjp_encoded_bytes - nlostbytes;
00991
00992         return;
00993     }
00994
00995
00996
00997
01008     int GetCharLen_sjis( const uchar_t* pC, const int nLen ){
01009         int nret = CheckSJisChar( pC, nLen );
01010         return 0 <= nret ? nret : -nret;
01011     }
01012     int GetCharLenR_sjis( const uchar_t* pC, const int nLen ){
01013         int nret = CheckSJisCharR( pC, nLen );
01014         return 0 <= nret ? nret : -nret;
01015     }
01016     int GetCharLen_eucjp( const uchar_t* pC, const int nLen ){
01017         int nret = CheckEucJpChar( pC, nLen );
01018         return 0 <= nret ? nret : -nret;
01019     }
01020     int GetCharLen_utf8( const uchar_t* pC, const int nLen ){
01021         int nret = CheckUtf8Char( pC, nLen );
01022         return 0 <= nret ? nret : -nret;
01023     }
01024
01025
01064     int DetectJisESCSeq( const uchar_t* pS, const int nLen, int* pnEscType )
01065     {
01066         const uchar_t* end_ptr = pS + nLen;
01067         uchar_t* p;
01068         int expected_esc_len;
01069         int nEscType;
01070
01071         if( nLen < 1 ){
01072             return 0;
01073         }
01074
01075         nEscType = JISESC_UNKNOWN;
01076         expected_esc_len = 0;
01077
01078         if( *pS == ESC ){
01079             expected_esc_len++;
01080             p = const_cast<uchar_t *>(pS)+1;
01081             if( p+2 <= end_ptr ){
01082                 expected_esc_len += 2;
01083                 if( *p == '(' ){
01084                     if( p[1] == 'B' ){
01085                         nEscType = JISESC_ASCII;            // ESC ( B  -  ASCII
01086                     }else if( p[1] == 'J'){
01087                         nEscType = JISESC_JISX0201Latin;    // ESC ( J  -  JIS X 0201 ラテン
01088                     }else if( p[1] == 'H'){
01089                         nEscType = JISESC_JISX0201Latin_OLD;// ESC ( H  -  JIS X 0201 ラテン
01090                     }else if( p[1] == 'I' ){
01091                         nEscType = JISESC_JISX0201Katakana; // ESC ( I  -  JIS X 0201 片仮名
01092                     }
01093                 }else if( *p == '$' ){
01094                     if( p[1] == 'B' ){
01095                         nEscType = JISESC_JISX0208_1983;    // ESC $ B  -  JIS X 0208-1983
01096                     }else if( p[1] == '@' ){
01097                         nEscType = JISESC_JISX0208_1978;    // ESC $ @  -  JIS X 0208-1978  (旧JIS)
01098                     }
01099                 }
01100             }else if( p+5 <= end_ptr ){
01101                 expected_esc_len += 5;
01102                 if( 0 == memcmp( p, &JISESCDATA_JISX0208_1990[1], 5 ) ){
01103                     nEscType = JISESC_JISX0208_1990;        // ESC & @ ESC $ B  -  JIS X 0208-1990
01104                 }
01105             }
01106         }
01107
01108         if( 0 < expected_esc_len ){
01109             if( pnEscType ){
01110                 *pnEscType = nEscType;
01111             }
01112             if( JISESC_UNKNOWN != nEscType ){
01113                 return expected_esc_len;
01114             }else{
01115                 return 1;
01116             }
01117         }else{
01118             return -1;
01119         }
01120     }
01121
01122 #if 0
01123     int CheckJisChar_JISX0208( const uchar_t* pS, const int nLen )
01124     {
01125         uchar_t uc0, uc1;
01126
01127         if( nLen < 1 ){
01128             return 0;
01129         }
01130         if( 1 < nLen ){
01131             uc0 = *(pS  );
01132             uc1 = *(pS+1);
01133             if( (0x20 < uc0 && uc0 < 0x80)
01134              && (0x20 < uc1 && uc1 < 0x80)
01135             ){
01136                 return 2;
01137             }
01138         }
01139         return -1;
01140     }
01141 #endif
01142
01146     void GetEncdInf_Jis( const char* pS, const int nLen, MBCODE_INFO* pEI )
01147     {
01148         uchar_t* ptr;
01149         uchar_t* end_ptr;
01150         int nescbytes;
01151         int nlostbytes;
01152         int nret;
01153         int nEscType;
01154
01155         nescbytes = 0;
01156         nlostbytes = 0;
01157         nEscType = JISESC_ASCII;
01158         ptr = (uchar_t *)pS;
01159         end_ptr = ptr + nLen;
01160
01161         for( ; 0 != (nret = DetectJisESCSeq(ptr, end_ptr - ptr, &nEscType)); ptr += nret ){
01162             if( nret < 0 ){
01163                 nret = 1;
01164             }else{
01165                 nescbytes += nret;
01166             }
01167             if( *ptr & 0x80 ){
01168                 nlostbytes++;
01169             }
01170         }
01171         pEI->eCodeID = CODE_JIS;
01172         pEI->nSpecBytes = nescbytes;
01173         pEI->nDiff = nescbytes - nlostbytes;
01174
01175         return;
01176     }
01177
01178
01187     int DetectUnicodeBom( const char* pS, int nLen )
01188     {
01189         const uchar_t* pBuf = reinterpret_cast<const uchar_t *>(pS);
01190
01191         if( NULL == pS ){
01192             return 0;
01193         }
01194         if( 2 <= nLen ){
01195             if( pBuf[0] == 0xff && pBuf[1] == 0xfe ){
01196                 return CODE_UNICODE;
01197             }
01198             if( pBuf[0] == 0xfe && pBuf[1] == 0xff ){
01199                 return CODE_UNICODEBE;
01200             }
01201             if( 3 <= nLen ){
01202                 if( pBuf[0] == 0xef && pBuf[1] == 0xbb && pBuf[2] == 0xbf ){
01203                     return CODE_UTF8;
01204                 }
01205             }
01206         }
01207         return 0;
01208     }
01209
01210 } // ends namespace Charcode.
01211
01212 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: charcode.h

charcode.h

文字コード認識ライブラリ [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

ネームスペース

namespace | Charcode

構成

struct | EncodingInfo_t
struct | WC_EncodingInfo_t
struct | UnicodeInfo_t

マクロ定義

#define | TAB (char)'\t'
#define | SPACE (char)' '
#define | CRLF "\015\012"
#define | LFCR "\012\015"
#define | CR (char)'\015'
#define | LF (char)'\012'
#define | ESC (char)'\x1b'
#define | _IS_SJIS_1 Charcode::IsSJisKan1
#define | _IS_SJIS_2 Charcode::IsSJisKan2
#define | UUDECODE_CHAR Charcode::Uu_CharToVal

型定義

typedef unsigned char | uchar_t
typedef unsigned short | uchar16_t
typedef unsigned long | uchar32_t
typedef long | wchar32_t
typedef EncodingInfo_t | MBCODE_INFO
typedef WC_EncodingInfo_t | WCCODE_INFO
typedef UnicodeInfo_t | UNICODE_INFO

列挙型

enum enumJisESCSeqType {
JISESC_UNKNOWN, JISESC_ASCII, JISESC_JISX0201Latin, JISESC_JISX0201Latin_OLD,
JISESC_JISX0201Katakana, JISESC_JISX0208_1978, JISESC_JISX0208_1983, JISESC_JISX0208_1990
}

関数

uchar_t __fastcall | Charcode::Base64_CharToVal (const uchar_t c)
uchar_t __fastcall | Charcode::Base64_ValToChar (const uchar_t v)
uchar_t __fastcall | Charcode::Uu_CharToVal (const uchar_t c)
int __fastcall | Charcode::GetJisESCSeqLen (const enumJisESCSeqType eEscType)
const char *__fastcall | Charcode::GetJisESCSeqData (const enumJisESCSeqType eEscType)
bool __fastcall | Charcode::IsSJisKan1 (const uchar_t c)
bool __fastcall | Charcode::IsSJisKan2 (const uchar_t c)
bool __fastcall | Charcode::IsSJisKan (const uchar_t *pC)
bool __fastcall | Charcode::IsSJisHanKata (const uchar_t c)
bool __fastcall | Charcode::IsEucKan1 (const uchar_t c)
bool __fastcall | Charcode::IsEucKan2 (const uchar_t c)
bool __fastcall | Charcode::IsEucKan (const uchar_t *pC)
bool __fastcall | Charcode::IsEucHanKata2 (const uchar_t)
bool __fastcall | Charcode::IsUtf16SurrogHi (const uchar16_t wc)
bool __fastcall | Charcode::IsUtf16SurrogLow (const uchar16_t wc)
bool __fastcall | Charcode::IsBase64Char (const uchar_t c)
bool __fastcall | Charcode::IsUtf7SetDChar (const uchar_t c)
int | Charcode::GuessCharLen_utf8 (const uchar_t *pC, const int nlen)
int | Charcode::GuessCharLen_sjis (const uchar_t *pC, const int nLen)
int | Charcode::GuessCharLen_eucjp (const uchar_t *pC, const int nlen)
int | Charcode::CheckSJisChar (const uchar_t *pS, const int nLen)
int | Charcode::CheckSJisCharR (const uchar_t *pS, const int nLen)
int | Charcode::CheckEucJpChar (const uchar_t *pS, const int nLen)
int | Charcode::CheckUtf8Char (const uchar_t *pC, const int nLen)
int | Charcode::imp_CheckUtf16Char (const uchar_t *pC, const int nLen, bool bBigEndian)
int | Charcode::CheckUtf16Char (const uchar_t *pC, const int nLen)
int | Charcode::CheckUtf16BeChar (const uchar_t *pC, const int nLen)
int | Charcode::GetCharLen_sjis (const uchar_t *pC, const int nLen)
int | Charcode::GetCharLenR_sjis (const uchar_t *pC, const int nLen)
int | Charcode::GetCharLen_eucjp (const uchar_t *pC, const int nLen)
int | Charcode::GetCharLen_utf8 (const uchar_t *pC, const int nLen)
int | Charcode::CheckUtf7SetDPart (const uchar_t *pS, const int nLen, uchar_t *&ref_pNext)
int | Charcode::CheckUtf7SetBPart (const uchar_t *pS, const int nLen, uchar_t *&ref_pNext)
int | Charcode::DetectJisESCSeq (const uchar_t *pS, const int nLen, int *pnEscType)
int | Charcode::DetectUnicodeBom (const char *pS, int nLen)
void | Charcode::GetEncdInf_SJis (const char *pS, const int nLen, MBCODE_INFO *pEI)
void | Charcode::GetEncdInf_Jis (const char *pS, const int nLen, MBCODE_INFO *pEI)
void | Charcode::GetEncdInf_EucJp (const char *pS, const int nLen, MBCODE_INFO *pEI)
void | Charcode::GetEncdInf_Utf8 (const char *pS, const int nLen, MBCODE_INFO *pEI)
void | Charcode::GetEncdInf_Utf7 (const char *pS, const int nLen, MBCODE_INFO *pEI)
void | Charcode::GetEncdInf_Uni (const char *pS, const int nLen, UNICODE_INFO *pWEI)

変数

const uchar_t | Charcode::BASE64CHAR []
const uchar_t | Charcode::BASE64VAL []
const bool | Charcode::UTF7SetD []
const char | Charcode::JISESCDATA_ASCII []
const char | Charcode::JISESCDATA_JISX0201Latin []
const char | Charcode::JISESCDATA_JISX0201Latin_OLD []
const char | Charcode::JISESCDATA_JISX0201Katakana []
const char | Charcode::JISESCDATA_JISX0208_1978 []
const char | Charcode::JISESCDATA_JISX0208_1983 []
const char | Charcode::JISESCDATA_JISX0208_1990 []
const int | Charcode::TABLE_JISESCLEN []
const char * | Charcode::TABLE_JISESCDATA []

説明

文字コード認識ライブラリ

作者:
Sakura-Editor collaborators
日付:
1998/03/06 新規作成 by 原作者 Norio Nakatani (C) 1998-2001

2006/03/06 名称・ライセンス改訂 [文字コード定数の定義] → [文字コード認識ライブラリ]

charcode.h で定義されています。

マクロ定義

#define _IS_SJIS_1 Charcode::IsSJisKan1

charcode.h の 145 行で定義されています。

参照元 CMemory::_mbcjmstojis_ex()・CalcDirectoryDepth()・cescape_j()・GetFileName()・CEditDoc::GetFileName()・CDlgTagJumpList::GetFileName()・CMemory::GetSizeOfChar()・CEditView::HandleCommand()・CEditDoc::MakeTopicList_tex()・CEditDoc::MakeTopicList_wztxt()・CMemory::MemCharNext()・my_splitpath()・CMemory::Replace_j()・CLayoutMgr::SetLayoutInfo()・sjis_strrchr2().

#define _IS_SJIS_2 Charcode::IsSJisKan2

charcode.h の 146 行で定義されています。

参照元 CMemory::_mbcjmstojis_ex()・GetFileName()・CEditDoc::GetFileName()・CDlgTagJumpList::GetFileName()・CMemory::GetSizeOfChar()・CEditView::HandleCommand()・CMemory::MemCharNext().

#define CR (char)'\015'

charcode.h の 138 行で定義されています。

参照元 C_IsSpace()・CEditView::Command_CHAR()・CEditView::Command_GOLINETOP()・CEditView::Command_INDENT()・CEditView::Command_INSTEXT()・CEditView::Command_PASTE()・CEditView::Command_PASTEBOX()・CEditView::ConvSelectedArea()・CEditView::DeleteData()・CLayoutMgr::InsertData_CLayoutMgr()・CEditView::KeyWordHelpSearchDict()・CBregexp::MakePattern()・CEditDoc::MakeTopicList_cobol()・CDocLineMgr::PrevOrNextWord()・CEditView::SmartIndent_CPP()・CEditView::TranslateCommand_grep()・CMemory::UUDECODE()・CDocLineMgr::WhatKindOfChar()・CDocLineMgr::WhereCurrentWord_2().

#define CRLF "\015\012"

charcode.h の 136 行で定義されています。

参照元 CEditView::GetSelectedData()・CBregexp::MakePattern().

#define ESC (char)'\x1b'

charcode.h の 140 行で定義されています。

参照元 Charcode::DetectJisESCSeq().

#define LF (char)'\012'

charcode.h の 139 行で定義されています。

参照元 C_IsSpace()・CEditView::Command_CHAR()・CEditView::Command_GOLINETOP()・CEditView::Command_INDENT()・CEditView::Command_INSTEXT()・CEditView::Command_PASTE()・CEditView::Command_PASTEBOX()・CEditView::ConvSelectedArea()・CEditView::DeleteData()・CLayoutMgr::InsertData_CLayoutMgr()・CEditView::KeyWordHelpSearchDict()・CBregexp::MakePattern()・CEditDoc::MakeTopicList_cobol()・CDocLineMgr::PrevOrNextWord()・CEditView::TranslateCommand_grep()・CMemory::UUDECODE()・CDocLineMgr::WhatKindOfChar()・CDocLineMgr::WhereCurrentWord_2().

#define LFCR "\012\015"

charcode.h の 137 行で定義されています。

参照元 CBregexp::MakePattern().

#define SPACE (char)' '

charcode.h の 135 行で定義されています。

参照元 CEditView::Command_CHAR()・CEditView::Command_INDENT()・CEditView::Command_UNINDENT()・CEditView::GetLeftWord()・CKeyMacroMgr::LoadKeyMacro()・CEditView::RTrimPrevLine()・CEditView::SmartIndent_CPP()・CMemory::SPACEToTAB()・CDocLineMgr::WhatKindOfChar().

#define TAB (char)'\t'

charcode.h の 134 行で定義されています。

参照元 CLayoutMgr::CaretPos_Log2Phys()・CLayoutMgr::CaretPos_Phys2Log()・CEditView::Command_CHAR()・CEditView::Command_INDENT()・CEditView::Command_INDENT_TAB()・CEditView::Command_UNINDENT()・CEditView::Command_WORDRIGHT()・CEditView::DrawCaretPosInfo()・CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x()・CEditView::GetLeftWord()・CKeyMacroMgr::LoadKeyMacro()・CEditView::RTrimPrevLine()・CMemoryIterator< T >::scanNext()・CEditView::SmartIndent_CPP()・CMemory::SPACEToTAB()・CMemory::TABToSPACE()・CDocLineMgr::WhatKindOfChar().

#define UUDECODE_CHAR Charcode::Uu_CharToVal

charcode.h の 147 行で定義されています。

参照元 CMemory::UUDECODE().

型定義

typedef struct EncodingInfo_t MBCODE_INFO

typedef unsigned short uchar16_t

charcode.h の 38 行で定義されています。

typedef unsigned long uchar32_t

charcode.h の 39 行で定義されています。

typedef unsigned char uchar_t

charcode.h の 37 行で定義されています。

typedef struct UnicodeInfo_t UNICODE_INFO

typedef struct WC_EncodingInfo_t WCCODE_INFO

typedef long wchar32_t

charcode.h の 40 行で定義されています。

列挙型

enum enumJisESCSeqType

JIS コードのエスケープシーケンスたち

列挙型の値:
JISESC_UNKNOWN
JISESC_ASCII
JISESC_JISX0201Latin
JISESC_JISX0201Latin_OLD
JISESC_JISX0201Katakana
JISESC_JISX0208_1978
JISESC_JISX0208_1983
JISESC_JISX0208_1990

charcode.h の 103 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: charcode.h ソースファイル

charcode.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 2006, D. S. Koba, rastiv
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032
00033 #ifndef _CHARCODE_H_
00034 #define _CHARCODE_H_
00035
00036
00037 typedef unsigned char   uchar_t;        //  unsigned char の別名．
00038 typedef unsigned short  uchar16_t;      //  UTF-16 用．
00039 typedef unsigned long   uchar32_t;      //  UTF-32 用．
00040 typedef long wchar32_t;
00041
00042
00043
00044
00045 enum enumCodeType;
00046 #if 0
00047
00048 enum enumCodeType {
00049     CODE_SJIS,              // MS-CP932(Windows-31J), シフトJIS(Shift_JIS)
00050     CODE_JIS,               // MS-CP5022x(ISO-2022-JP-MS)
00051     CODE_EUC,               // MS-CP51932, eucJP-ms(eucJP-open)
00052     CODE_UNICODE,           // UTF-16 LittleEndian(UCS-2)
00053     CODE_UTF8,              // UTF-8(UCS-2)
00054     CODE_UTF7,              // UTF-7(UCS-2)
00055     CODE_UNICODEBE,         // UTF-16 BigEndian(UCS-2)
00056     // ...
00057     CODE_CODEMAX,
00058     CODE_AUTODETECT = 99    /* 文字コード自動判別 */
00059
00060     /*
00061         - MS-CP50220
00062             Unicode から cp50220 への変換時に、
00063             JIS X 0201 片仮名は JIS X 0208 の片仮名に置換される
00064         - MS-CP50221
00065             Unicode から cp50221 への変換時に、
00066             JIS X 0201 片仮名は、G0 集合への指示のエスケープシーケンス ESC ( I を用いてエンコードされる
00067         - MS-CP50222
00068             Unicode から cp50222 への変換時に、
00069             JIS X 0201 片仮名は、SO/SI を用いてエンコードされる
00070
00071         参考
00072         http://legacy-encoding.sourceforge.jp/wiki/
00073     */
00074 };
00075 #endif
00076
00078 /*
00079     符号化文字集合       16進表現            文字列表現[*1]
00080     ------------------------------------------------------------
00081     JIS C 6226-1978      1b 24 40            ESC $ @
00082     JIS X 0208-1983      1b 24 42            ESC $ B
00083     JIS X 0208-1990      1b 26 40 1b 24 42   ESC & @ ESC $ B
00084     JIS X 0212-1990      1b 24 28 44         ESC $ ( D
00085     JIS X 0213:2000 1面  1b 24 28 4f         ESC $ ( O
00086     JIS X 0213:2004 1面  1b 24 28 51         ESC $ ( Q
00087     JIS X 0213:2000 2面  1b 24 28 50         ESC $ ( P
00088     JIS X 0201 ラテン    1b 28 4a            ESC ( J
00089     JIS X 0201 ラテン    1b 28 48            ESC ( H         (歴史的[*2])
00090     JIS X 0201 片仮名    1b 28 49            ESC ( I
00091     ISO/IEC 646 IRV      1b 28 42            ESC ( B
00092
00093
00094       [*1] 各バイトを便宜的にISO/IEC 646 IRVの文字で表したもの。
00095            ただしESCはバイト値1bを表す。
00096
00097       [*2] JIS X 0201の指示としては使用すべきでないが、古いデータでは
00098            使われている可能性がある。
00099
00100     出展：http://www.asahi-net.or.jp/~wq6k-yn/code/
00101     参考：http://homepage2.nifty.com/zaco/code/
00102 */
00103 enum enumJisESCSeqType {
00104     JISESC_UNKNOWN,
00105     JISESC_ASCII,
00106     JISESC_JISX0201Latin,
00107     JISESC_JISX0201Latin_OLD,
00108     JISESC_JISX0201Katakana,
00109     JISESC_JISX0208_1978,
00110     JISESC_JISX0208_1983,
00111     JISESC_JISX0208_1990,
00112 };
00113
00114 /*
00115     文字コード判定情報 構造体群
00116 */
00117 typedef struct EncodingInfo_t {
00118     enumCodeType eCodeID;   // 文字コード識別番号
00119     int nSpecBytes;         // 特有バイト数
00120     int nDiff;              // ポイント数 := 特有バイト数 － 不正バイト数
00121 } MBCODE_INFO;
00122 typedef struct WC_EncodingInfo_t {
00123     enumCodeType eCodeID;   // 文字コード識別番号
00124     int nCRorLF;            // ワイド文字の改行の個数
00125     int nLostBytes;         // 不正バイト数
00126 } WCCODE_INFO;
00127 typedef struct UnicodeInfo_t {
00128     WCCODE_INFO Uni;        // 文字コード判定情報 for UNICODE
00129     WCCODE_INFO UniBe;      // 文字コード判定情報 for UNICODE BE
00130     int nCRorLF_ascii;      // マルチバイト文字の改行の個数
00131 } UNICODE_INFO;
00132
00133
00134 #define TAB                 (char)'\t'
00135 #define SPACE               (char)' '
00136 #define CRLF                "\015\012"
00137 #define LFCR                "\012\015"
00138 #define CR                  (char)'\015'
00139 #define LF                  (char)'\012'
00140 #define ESC                 (char)'\x1b'
00141
00142 /*
00143     関数のエミュレーション
00144 */
00145 #define _IS_SJIS_1      Charcode::IsSJisKan1
00146 #define _IS_SJIS_2      Charcode::IsSJisKan2
00147 #define UUDECODE_CHAR   Charcode::Uu_CharToVal
00148
00149
00150
00151
00152 namespace Charcode
00153 {
00154     // BASE64エンコード後に使用する文字
00155     extern const uchar_t BASE64CHAR[];
00156     // BASE64デコードする際に使うバイナリ値
00157     extern const uchar_t BASE64VAL[];
00158     // UTF7SetD を処理する際に使うブール値
00159     extern const bool UTF7SetD[];
00160     // JIS コードのエスケープシーケンス文字列データ
00161     extern const char JISESCDATA_ASCII[];
00162     extern const char JISESCDATA_JISX0201Latin[];
00163     extern const char JISESCDATA_JISX0201Latin_OLD[];
00164     extern const char JISESCDATA_JISX0201Katakana[];
00165     extern const char JISESCDATA_JISX0208_1978[];
00166     extern const char JISESCDATA_JISX0208_1983[];
00167     extern const char JISESCDATA_JISX0208_1990[];
00168     extern const int TABLE_JISESCLEN[];
00169     extern const char* TABLE_JISESCDATA[];
00170
00171     uchar_t __fastcall Base64_CharToVal( const uchar_t );
00172     uchar_t __fastcall Base64_ValToChar( const uchar_t );
00173     uchar_t __fastcall Uu_CharToVal( const uchar_t );
00174     int __fastcall GetJisESCSeqLen( const enumJisESCSeqType );
00175     const char* __fastcall GetJisESCSeqData( const enumJisESCSeqType );
00176
00177     /*
00178     || 共有実装ヘルパ関数
00179     */
00180
00181     // --- 文字コード判別支援
00182     bool __fastcall IsSJisKan1( const uchar_t );  // SJIS 文字長2 の場合の 0バイト目チェック
00183     bool __fastcall IsSJisKan2( const uchar_t );  // SJIS 文字長2 の場合の 1バイト目チェック
00184     bool __fastcall IsSJisKan( const uchar_t* ); // IsSJisKan1 + IsSJisKan2
00185     bool __fastcall IsSJisHanKata( const uchar_t );  // SJIS 半角カタカナ判別
00186     bool __fastcall IsEucKan1( const uchar_t );  // EUCJP 文字長2 の場合の 0バイト目チェック
00187     bool __fastcall IsEucKan2( const uchar_t );  // EUCJP 文字長2 の場合の 1バイト目チェック
00188     bool __fastcall IsEucKan( const uchar_t* );  // IsEucKan1  + IsEucKan2
00189     bool __fastcall IsEucHanKata2( const uchar_t );  // EUCJP 半角カタカナ 2バイト目判別  add by genta
00190     bool __fastcall IsUtf16SurrogHi( const uchar16_t );  // UTF16 文字長4 の場合の 0-1バイト目チェック
00191     bool __fastcall IsUtf16SurrogLow( const uchar16_t ); // UTF16 文字長4 の場合の 2-3バイト目チェック
00192 #if 0
00193     bool __fastcall IsUtf16Surrogates( const uchar16_t* ); // UTF16 のサロゲートペア判別
00194     bool __fastcall IsUtf16SurrogHiOrLow( const uchar16_t );  // UTF16 のサロゲート片判別
00195 #endif
00196     bool __fastcall IsBase64Char( const uchar_t );  // UTF-7 で使われる Modified BASE64 を判別
00197     bool __fastcall IsUtf7SetDChar( const uchar_t ); // UTF-7 Set D の文字を判別
00198     // --- 文字長予測．
00199     int GuessCharLen_utf8( const uchar_t*, const int nStrLen = 4 );
00200     int GuessCharLen_sjis( const uchar_t*, const int nStrLen = 2 );
00201     int GuessCharLen_eucjp( const uchar_t*, const int nStrLen = 3 );
00202 #if 0
00203     int GuessCharLenAsUtf16_imp( const uchar_t*, const int, bool bBigEndian );
00204     int GuessCharLenAsUtf16( const uchar_t*, const int nStrLen = 4 );
00205     int GuessCharLenAsUtf16Be( const uchar_t*, const int nStrLen = 4 );
00206 #endif
00207     // --- 一文字チェック
00208     int CheckSJisChar( const uchar_t*, const int );
00209     int CheckSJisCharR( const uchar_t*, const int );  // CheckCharLenAsSJis の逆方向モード
00210     int CheckEucJpChar( const uchar_t*, const int );
00211     int CheckUtf8Char( const uchar_t*, const int );
00212     int imp_CheckUtf16Char( const uchar_t*, const int, bool );
00213     int CheckUtf16Char( const uchar_t*, const int );
00214     int CheckUtf16BeChar( const uchar_t*, const int );
00215 #if 0
00216     int CheckJisChar_JISX0208( const uchar_t*, const int );
00217 #endif
00218     // --- 文字長チェック
00219     int GetCharLen_sjis( const uchar_t*, const int );
00220     int GetCharLenR_sjis( const uchar_t*, const int );  // GetCharLenAsSJis の逆方向モード
00221     int GetCharLen_eucjp( const uchar_t*, const int );
00222     int GetCharLen_utf8( const uchar_t*, const int );
00223     // --- UTF-7 正当性チェック
00224     int CheckUtf7SetDPart( const uchar_t*, const int, uchar_t*& ref_pNextC );
00225     int CheckUtf7SetBPart( const uchar_t*, const int, uchar_t*& ref_pNextC );
00226     // --- JIS エスケープシーケンス検出
00227     int DetectJisESCSeq( const uchar_t* pS, const int nLen, int* pnEscType );
00228     // --- ユニコード BOM 検出器
00229     int DetectUnicodeBom( const char*, const int );
00230
00231     /*
00232     || 文字列の文字コード情報を得る．
00233     */
00234
00235     // --- 文字列チェック
00236     void GetEncdInf_SJis( const char*, const int, MBCODE_INFO* );
00237     void GetEncdInf_Jis( const char*, const int, MBCODE_INFO* );
00238     void GetEncdInf_EucJp( const char*, const int, MBCODE_INFO* );
00239     void GetEncdInf_Utf8( const char*, const int, MBCODE_INFO* );
00240     void GetEncdInf_Utf7( const char*, const int, MBCODE_INFO* );
00241     void GetEncdInf_Uni( const char*, const int, UNICODE_INFO* );
00242 } // ends namespace Charcode.
00243
00244 #endif /* _CHARCODE_H_ */
00245
00246 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHokanMgr.cpp

CHokanMgr.cpp

キーワード補完 [詳細]

#include "stdafx.h"
#include "CHokanMgr.h"
#include "debug.h"
#include "CKeyBind.h"
#include "Keycode.h"
#include "CDicMgr.h"
#include "CEditView.h"
#include "mymessage.h"
#include "sakura_rc.h"
#include "etc_uty.h"

CHokanMgr.cppのインクルード依存関係図

ソースコードを見る。

関数

LRESULT APIENTRY | HokanList_SubclassProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

WNDPROC | gm_wpHokanListProc
const DWORD | p_helpids []

説明

キーワード補完

作者:
Norio Nakatani

CHokanMgr.cpp で定義されています。

関数

LRESULT APIENTRY HokanList_SubclassProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CHokanMgr.cpp の 31 行で定義されています。

参照先 _SHIFT・DWLP_USER・getCtrlKeyState()・GetWindowLongPtr・CHokanMgr::KeyProc()・CDialog::m_hwndParent・NULL・TRUE.

参照元 CHokanMgr::DoModeless().

変数

WNDPROC gm_wpHokanListProc

CHokanMgr.cpp の 28 行で定義されています。

参照元 CHokanMgr::DoModeless().

const DWORD p_helpids[]

初期値:

 {
    0, 0
}

CHokanMgr.cpp の 763 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:17:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHokanMgr.cpp ソースファイル

CHokanMgr.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro, genta
00009     Copyright (C) 2001, asa-o
00010     Copyright (C) 2002, YAZAKI
00011     Copyright (C) 2003, Moca, KEITA
00012     Copyright (C) 2004, genta, Moca, novice
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holders to use this code for other purpose.
00016 */
00017 #include "stdafx.h"
00018 #include "CHokanMgr.h"
00019 #include "debug.h"
00020 #include "CKeyBind.h"
00021 #include "Keycode.h"
00022 #include "CDicMgr.h"
00023 #include "CEditView.h"
00024 #include "mymessage.h"
00025 #include "sakura_rc.h"
00026 #include "etc_uty.h"
00027
00028     WNDPROC         gm_wpHokanListProc;
00029
00030
00031 LRESULT APIENTRY HokanList_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00032 {
00033 //#ifdef _DEBUG
00034 //  MYTRACE( "HokanList_SubclassProc() uMsg == %xh\n", uMsg );
00035 //#endif
00036     // Modified by KEITA for WIN64 2003.9.6
00037     CDialog* pCDialog = ( CDialog* )::GetWindowLongPtr( ::GetParent( hwnd ), DWLP_USER );
00038     CHokanMgr* pCHokanMgr = (CHokanMgr*)::GetWindowLongPtr( ::GetParent( hwnd ), DWLP_USER );
00039 //  WORD vkey;
00040 //  WORD nCaretPos;
00041 //  LPARAM hwndLB;
00042 //  int i;
00043     MSG* pMsg;
00044     int nVKey;
00045 //  LPARAM lKeyData;
00046     switch( uMsg ){
00047     case WM_KEYDOWN:
00048         nVKey = (int) wParam;   // virtual-key code
00049 //      lKeyData = lParam;          // key data
00050 //      MYTRACE( "WM_KEYDOWN nVKey = %xh\n", nVKey );
00051         /* キー操作を偽造しよう */
00052         if (nVKey == VK_SPACE){ //  Space
00053 // novice 2004/10/10
00054             /* Shift,Ctrl,Altキーが押されていたか */
00055             int nIdx = getCtrlKeyState();
00056             if (nIdx == _SHIFT){
00057                 //  Shift + Spaceで↑を偽造
00058                 wParam = VK_UP;
00059             }
00060             else if (nIdx == 0) {
00061                 //  Spaceのみで↓を偽造
00062                 wParam = VK_DOWN;
00063             }
00064         }
00065         /* 補完実行キーなら補完する */
00066         if( -1 != pCHokanMgr->KeyProc( wParam, lParam ) ){
00067             /* キーストロークを親に転送 */
00068             ::EnableWindow( ::GetParent( ::GetParent( pCDialog->m_hwndParent ) ), TRUE );
00069 //          ::ShowWindow( pCDialog->m_hWnd, SW_HIDE );
00070 //          ::SetFocus( ::GetParent( ::GetParent( pCDialog->m_hwndParent ) ) );
00071             return ::PostMessage( ::GetParent( ::GetParent( pCDialog->m_hwndParent ) ), uMsg, wParam, lParam );
00072         }
00073         break;
00074     case WM_GETDLGCODE:
00075         pMsg = (MSG*) lParam; // pointer to an MSG structure
00076         if( NULL == pMsg ){
00077 //          MYTRACE( "WM_GETDLGCODE  pMsg==NULL\n" );
00078             return 0;
00079         }
00080 //      MYTRACE( "WM_GETDLGCODE  pMsg->message = %xh\n", pMsg->message );
00081         return DLGC_WANTALLKEYS;/* すべてのキーストロークを私に下さい */    //  Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00082     }
00083     return CallWindowProc( (WNDPROC)gm_wpHokanListProc, hwnd, uMsg, wParam, lParam);
00084 }
00085
00086
00087
00088 CHokanMgr::CHokanMgr()
00089 {
00090 //  m_hFont = NULL;
00091 //  m_hFontOld = NULL;
00092     m_cmemCurWord.SetDataSz( "" );
00093
00094     m_pcmemKouho = NULL;
00095     m_nKouhoNum = 0;;
00096     m_nCurKouhoIdx = -1;
00097     m_pszCurKouho = NULL;
00098 //  m_pcEditView = NULL;
00099     m_bTimerFlag = TRUE;
00100 //  hm_wpHokanListProc = FALSE;
00101     return;
00102 }
00103
00104 CHokanMgr::~CHokanMgr()
00105 {
00106     if( NULL != m_pcmemKouho ){
00107         delete m_pcmemKouho;
00108         m_pcmemKouho = NULL;
00109     }
00110     m_nKouhoNum = 0;;
00111     if( NULL != m_pszCurKouho ){
00112         delete [] m_pszCurKouho;
00113         m_pszCurKouho = NULL;
00114     }
00115
00116 }
00117
00118 /* モードレスダイアログの表示 */
00119 HWND CHokanMgr::DoModeless( HINSTANCE hInstance , HWND hwndParent, LPARAM lParam )
00120 {
00121     HWND hwndWork;
00122     hwndWork = CDialog::DoModeless( hInstance, hwndParent, IDD_HOKAN, lParam, SW_HIDE );
00123     OnSize( 0, 0 );
00124     /* リストをフック */
00125     // Modified by KEITA for WIN64 2003.9.6
00126 	::gm_wpHokanListProc = (WNDPROC) ::SetWindowLongPtr( ::GetDlgItem( m_hWnd, IDC_LIST_WORDS ), GWLP_WNDPROC, (LONG_PTR)HokanList_SubclassProc  );
00127
00128     ::ShowWindow( m_hWnd, SW_HIDE );
00129     return hwndWork;
00130 }
00131
00132 /* モードレス時：対象となるビューの変更 */
00133 void CHokanMgr::ChangeView( LPARAM pcEditView )
00134 {
00135     m_lParam = pcEditView;
00136     return;
00137 }
00138
00139 void CHokanMgr::Hide( void )
00140 {
00141     CEditView* pcEditView;
00142     ::EnableWindow( ::GetParent( ::GetParent( m_hwndParent ) ), TRUE );
00143 //  ::DestroyWindow( hwnd );
00144     ::ShowWindow( m_hWnd, SW_HIDE );
00145     m_nCurKouhoIdx = -1;
00146     /* 入力フォーカスを受け取ったときの処理 */
00147     pcEditView = (CEditView*)m_lParam;
00148     pcEditView->OnSetFocus();
00149 //  m_nCurKouhoIdx = -1;
00150     return;
00151
00152 }
00153
00160 int CHokanMgr::Search(
00161 //  HFONT       hFont,
00162     POINT*      ppoWin,
00163     int         nWinHeight,
00164     int         nColmWidth,
00165     const char* pszCurWord,
00166     const char* pszHokanFile,
00167     int         bHokanLoHiCase, // 入力補完機能：英大文字小文字を同一視する 2001/06/19 asa-o
00168     BOOL        bHokanByFile,   // 編集中データから候補を探す 2003.06.23 Moca
00169     CMemory*    pcmemHokanWord  // 2001/06/19 asa-o
00170 )
00171 {
00172     CEditView* pcEditView = (CEditView*)m_lParam;
00173     /*
00174     ||  補完キーワードの検索
00175     ||
00176     ||  ・見つかった候補をすべて返す(改行で区切って返す)
00177     ||  ・指定された候補の最大数を超えると処理を中断する
00178     ||  ・見つかった数を返す
00179     ||
00180     */
00181     if( NULL != m_pcmemKouho ){
00182         delete m_pcmemKouho;
00183         m_pcmemKouho = NULL;
00184     }
00185     m_nKouhoNum = CDicMgr::HokanSearch(
00186         pszCurWord,
00187 //      m_pShareData->m_Common.m_bHokanLoHiCase,    /* 入力補完機能：英大文字小文字を同一視する */
00188         bHokanLoHiCase,                             // 引数からに変更   2001/06/19 asa-o
00189         &m_pcmemKouho,
00190         0, //Max候補数
00191         pszHokanFile
00192     );
00193
00194     // 2003.05.16 Moca 追加 編集中データ内から候補を探す
00195     if( bHokanByFile ){
00196         m_nKouhoNum = pcEditView->HokanSearchByFile(
00197             pszCurWord,
00198             bHokanLoHiCase,
00199             &m_pcmemKouho,
00200             m_nKouhoNum,
00201             1024 // 編集中データからなので数を制限しておく
00202         );
00203     }
00204     if( 0 == m_nKouhoNum ){
00205         m_nCurKouhoIdx = -1;
00206         return 0;
00207     }
00208
00209 //  2001/06/19 asa-o 候補が１つの場合補完ウィンドウは表示しない(逐次補完の場合は除く)
00210     if( 1 == m_nKouhoNum ){
00211         if(pcmemHokanWord != NULL){
00212             m_nCurKouhoIdx = -1;
00213             // 2004.05.14 Moca m_pcmemKouhoの末尾には改行コードがあり、それを削除してコピーするするように
00214             pcmemHokanWord->SetData( m_pcmemKouho->GetPtr(), m_pcmemKouho->GetLength() - 1 );
00215             return 1;
00216         }
00217     }
00218
00219 //  LOGFONT     lf;
00220 //  HDC         hdc;
00221 //  WNDCLASS    wc;
00222 //  ATOM        atom;
00223     int         i;
00224
00225     /* 共有データ構造体のアドレスを返す */
00226     m_pShareData = CShareData::getInstance()->GetShareData();
00227
00228 //  m_hFont = hFont;
00229     m_poWin.x = ppoWin->x;
00230     m_poWin.y = ppoWin->y;
00231     m_nWinHeight = nWinHeight;
00232     m_nColmWidth = nColmWidth;
00233 //  m_cmemCurWord.SetData( pszCurWord, lstrlen( pszCurWord ) );
00234     m_cmemCurWord.SetDataSz( pszCurWord );
00235
00236
00237     m_nCurKouhoIdx = 0;
00238 //  SetCurKouhoStr();
00239
00240
00241
00242 //  ::ShowWindow( m_hWnd, SW_SHOWNA );
00243
00244
00245
00246
00247
00248
00249
00250     HWND hwndList;
00251     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST_WORDS );
00252     ::SendMessage( hwndList, LB_RESETCONTENT, 0, 0 );
00253     char*   pszCR = "\n";
00254     char*   pszWork;
00255     char*   pszNext;
00256     char*   pszTest;
00257     pszWork = m_pcmemKouho->GetPtr();
00258     for( i = 0; i < m_nKouhoNum; ++i ){
00259         pszNext = strstr( pszWork, pszCR );
00260         if( NULL == pszNext ){
00261             break;
00262         }
00263         pszTest = new char[pszNext - pszWork + 1];
00264         memcpy( pszTest, pszWork, pszNext - pszWork );
00265         pszTest[pszNext - pszWork] = '\0';
00266
00267         ::SendMessage( hwndList, LB_ADDSTRING, 0, (LPARAM) (LPCTSTR) pszTest );
00268
00269         delete [] pszTest;
00270         pszTest = NULL;
00271         pszWork = pszNext + lstrlen( pszCR );
00272     }
00273     ::SendMessage( hwndList, LB_SETCURSEL, 0, 0 );
00274
00275
00276 //? この処理はやらないほうが見やすいかも?
00277 //? /* リストの全アイテム数がリストに収まる時は、リストのサイズを小さくする */
00278 //? int nItemHeight;
00279 //? nItemHeight = ::SendMessage( hwndList, LB_GETITEMHEIGHT, 0, 0 );
00280 //? if( ( m_nKouhoNum + 1 ) * nItemHeight < m_nHeight ){
00281 //?     m_nHeight = ( m_nKouhoNum + 1 ) * nItemHeight;
00282 //? }else{
00283 //?     if( m_nHeight < 1000 ){
00284 //?         m_nHeight = 1000;
00285 //?     }
00286 //? }
00287 //? if( ( m_nKouhoNum + 1 ) * nItemHeight < m_nHeight ){
00288 //?     m_nHeight = ( m_nKouhoNum + 1 ) * nItemHeight;
00289 //? }
00290 //?
00291
00292
00293 //@@    ::EnableWindow( ::GetParent( ::GetParent( m_hwndParent ) ), FALSE );
00294
00295
00296     int nX;
00297     int nY;
00298     int nCX;
00299     int nCY;
00300     RECT    rcDesktop;
00301     //  May 01, 2004 genta マルチモニタ対応
00302 	::GetMonitorWorkRect( m_hWnd, &rcDesktop );
00303
00304     nX = m_poWin.x - m_nColmWidth;
00305     nY = m_poWin.y + m_nWinHeight + 4;
00306     nCX = m_nWidth;
00307     nCY = m_nHeight;
00308
00309     /* 下に入るなら */
00310     if( nY + nCY < rcDesktop.bottom ){
00311         /* 何もしない */
00312     }else
00313     /* 上に入るなら */
00314     if( rcDesktop.top < m_poWin.y - m_nHeight - 4 ){
00315         /* 上に出す */
00316         nY = m_poWin.y - m_nHeight - 4;
00317     }else
00318     /* 上に出すか下に出すか(広いほうに出す) */
00319     if( rcDesktop.bottom - nY > m_poWin.y ){
00320         /* 下に出す */
00321 //      m_nHeight = rcDesktop.bottom - nY;
00322         nCY = rcDesktop.bottom - nY;
00323     }else{
00324         /* 上に出す */
00325         nY = rcDesktop.top;
00326         nCY = m_poWin.y - 4 - rcDesktop.top;
00327     }
00328
00329 //  2001/06/19 Start by asa-o: 表示位置補正
00330
00331     // 右に入る
00332     if(nX + nCX < rcDesktop.right ){
00333         // そのまま
00334     }else
00335     // 左に入る
00336     if(rcDesktop.left < nX - nCX + 8){
00337         // 左に表示
00338         nX -= nCX - 8;
00339     }else{
00340         // サイズを調整して右に表示
00341         nCX = __max((int)(rcDesktop.right - nX) , 100); // 最低サイズを100くらいに
00342     }
00343
00344 //  2001/06/19 End
00345
00346 //  2001/06/18 Start by asa-o: 補正後の位置・サイズを保存
00347     m_poWin.x = nX;
00348     m_poWin.y = nY;
00349     m_nHeight = nCY;
00350     m_nWidth = nCX;
00351 //  2001/06/18 End
00352
00353     /* はみ出すなら小さくする */
00354 //  if( rcDesktop.bottom < nY + nCY ){
00355 //      /* 下にはみ出す */
00356 //      if( m_poWin.y - 4 - nCY < 0 ){
00357 //          /* 上にはみ出す */
00358 //          /* →高さだけ調節 */
00359 //          nCY = rcDesktop.bottom - nY - 4;
00360 //      }else{
00361 //
00362 //      }
00363 //
00364 //  }
00365     ::MoveWindow( m_hWnd, nX, nY, nCX, nCY, TRUE );
00366     ::ShowWindow( m_hWnd, SW_SHOW );
00367 //  ::ShowWindow( m_hWnd, SW_SHOWNA );
00368     ::SetFocus( m_hWnd );
00369 //  ::SetFocus( ::GetDlgItem( m_hWnd, IDC_LIST_WORDS ) );
00370 //  ::SetFocus( ::GetParent( ::GetParent( m_hwndParent ) ) );
00371
00372
00373 //  2001/06/18 asa-o:
00374     ShowTip();  // 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00375
00376 //  2003.06.25 Moca 他のメソッドで使っていないので、とりあえず削除しておく
00377     if( NULL != m_pcmemKouho ){
00378         delete m_pcmemKouho;
00379         m_pcmemKouho = NULL;
00380     }
00381     return m_nKouhoNum;
00382 }
00383
00384
00385 #if 0
00386
00387 void CHokanMgr::SetCurKouhoStr( void )
00388 {
00389     char*   pszCR = "\n";
00390     int     i;
00391     char*   pszWork;
00392     char*   pszNext;
00393     char    szAdd[64];
00394
00395     if( NULL != m_pszCurKouho ){
00396         delete [] m_pszCurKouho;
00397         m_pszCurKouho = NULL;
00398     }
00399     if( m_nCurKouhoIdx >= m_nKouhoNum ){
00400         return;
00401     }
00402     strcpy( szAdd, "" );
00403 //  sprintf( szAdd, " (%d/%d)", m_nCurKouhoIdx + 1, m_nKouhoNum );
00404     pszWork = m_pcmemKouho->GetPtr();
00405     for( i = 0; i <= m_nCurKouhoIdx; ++i ){
00406         pszNext = strstr( pszWork, pszCR );
00407         if( NULL == pszNext ){
00408             return;
00409         }
00410         if( i == m_nCurKouhoIdx ){
00411             pszWork += m_cmemCurWord.GetLength();
00412             m_pszCurKouho = new char[pszNext - pszWork + 1 + lstrlen( szAdd )];
00413             memcpy( m_pszCurKouho, pszWork, pszNext - pszWork );
00414             m_pszCurKouho[pszNext - pszWork] = '\0';
00415             strcat( m_pszCurKouho, szAdd );
00416             ::MoveWindow( m_hWnd,
00417                 m_poWin.x - m_nColmWidth/*+ m_cmemCurWord.GetLength() * m_nColmWidth*/,
00418                 m_poWin.y + m_nWinHeight,
00419 //              m_nColmWidth * lstrlen(m_pszCurKouho) + 2,
00420 //              m_nWinHeight + 2 + 8,
00421                 220,
00422                 180,
00423                 TRUE
00424             );
00425             OnSize( 0, 0 );
00426
00427             return;
00428         }
00429         pszWork = pszNext + lstrlen( pszCR );
00430     }
00431     return;
00432
00433 }
00434 #endif
00435
00436
00437 BOOL CHokanMgr::OnInitDialog( HWND hwndDlg, WPARAM wParam, LPARAM lParam )
00438 {
00439     m_hWnd = hwndDlg;
00440     /* 基底クラスメンバ */
00441 //- CreateSizeBox();
00442     return CDialog::OnInitDialog( hwndDlg, wParam, lParam );
00443
00444 }
00445
00446 BOOL CHokanMgr::OnDestroy( void )
00447 {
00448     /* 基底クラスメンバ */
00449     CreateSizeBox();
00450     return CDialog::OnDestroy();
00451
00452
00453 }
00454
00455
00456 BOOL CHokanMgr::OnSize( WPARAM wParam, LPARAM lParam )
00457 {
00458     /* 基底クラスメンバ */
00459     CDialog::OnSize( wParam, lParam );
00460
00461     int Controls[] = {
00462         IDC_LIST_WORDS
00463     };
00464     int     nControls = sizeof( Controls ) / sizeof( Controls[0] );
00465     int     fwSizeType;
00466     int     nWidth;
00467     int     nHeight;
00468     int     i;
00469     int     nWork;
00470     RECT    rc;
00471     HWND    hwndCtrl;
00472     POINT   po;
00473     RECT    rcDlg;
00474
00475     fwSizeType = wParam;    // resizing flag
00476
00477     ::GetClientRect( m_hWnd, &rcDlg );
00478     nWidth = rcDlg.right - rcDlg.left;  // width of client area
00479     nHeight = rcDlg.bottom - rcDlg.top; // height of client area
00480
00481 //  2001/06/18 Start by asa-o: サイズ変更後の位置を保存
00482     m_poWin.x = rcDlg.left - 4;
00483     m_poWin.y = rcDlg.top - 3;
00484     ::ClientToScreen(m_hWnd,&m_poWin);
00485 //  2001/06/18 End
00486
00487     nWork = 48;
00488     for ( i = 0; i < nControls; ++i ){
00489         hwndCtrl = ::GetDlgItem( m_hWnd, Controls[i] );
00490         ::GetWindowRect( hwndCtrl, &rc );
00491         po.x = rc.left;
00492         po.y = rc.top;
00493         ::ScreenToClient( m_hWnd, &po );
00494         rc.left = po.x;
00495         rc.top  = po.y;
00496         po.x = rc.right;
00497         po.y = rc.bottom;
00498         ::ScreenToClient( m_hWnd, &po );
00499         rc.right = po.x;
00500         rc.bottom  = po.y;
00501         if( Controls[i] == IDC_LIST_WORDS ){
00502             ::SetWindowPos(
00503                 hwndCtrl,
00504                 NULL,
00505                 rc.left,
00506                 rc.top,
00507                 nWidth - rc.left * 2,
00508                 nHeight - rc.top * 2/* - 20*/,
00509                 SWP_NOOWNERZORDER | SWP_NOZORDER
00510             );
00511         }
00512     }
00513
00514 //  2001/06/18 asa-o:
00515     ShowTip();  // 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00516
00517     return TRUE;
00518
00519 }
00520
00521 BOOL CHokanMgr::OnBnClicked( int wID )
00522 {
00523     switch( wID ){
00524     case IDCANCEL:
00525 //      CloseDialog( 0 );
00526         Hide();
00527         return TRUE;
00528     case IDOK:
00529 //      CloseDialog( 0 );
00530         /* 補完実行 */
00531         DoHokan( VK_RETURN );
00532         return TRUE;
00533     }
00534     return FALSE;
00535     return 0;
00536 }
00537
00538
00539
00540 BOOL CHokanMgr::OnKeyDown( WPARAM wParam, LPARAM lParam )
00541 {
00542     int nVKey;
00543     nVKey = (int) wParam;   // virtual-key code
00544 //  lKeyData = lParam;          // key data
00545     switch( nVKey ){
00546     case VK_HOME:
00547     case VK_END:
00548     case VK_UP:
00549     case VK_DOWN:
00550     case VK_PRIOR:
00551     case VK_NEXT:
00552         return 1;
00553     }
00554     return 0;
00555 }
00556
00557
00558 BOOL CHokanMgr::OnCbnSelChange( HWND hwndCtl, int wID )
00559 {
00560 //  2001/06/18 asa-o:
00561     ShowTip();  // 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00562     return TRUE;
00563 }
00564
00565 BOOL CHokanMgr::OnLbnDblclk( int wID )
00566 {
00567     /* 補完実行 */
00568     DoHokan( 0 );
00569     return TRUE;
00570
00571 }
00572
00573
00574 BOOL CHokanMgr::OnKillFocus( WPARAM wParam, LPARAM lParam )
00575 {
00576 //  Hide();
00577     return TRUE;
00578 }
00579
00580
00581
00582 /* 補完実行 */
00583 BOOL CHokanMgr::DoHokan( int nVKey )
00584 {
00585 #ifdef _DEBUG
00586     MYTRACE( "CHokanMgr::DoHokan( nVKey==%xh )\n", nVKey );
00587 #endif
00588     /* 補完候補決定キー */
00589     if( VK_RETURN   == nVKey && FALSE == m_pShareData->m_Common.m_bHokanKey_RETURN )    return FALSE;/* VK_RETURN 補完決定キーが有効/無効 */
00590     if( VK_TAB      == nVKey && FALSE == m_pShareData->m_Common.m_bHokanKey_TAB )       return FALSE;/* VK_TAB    補完決定キーが有効/無効 */
00591     if( VK_RIGHT    == nVKey && FALSE == m_pShareData->m_Common.m_bHokanKey_RIGHT )     return FALSE;/* VK_RIGHT  補完決定キーが有効/無効 */
00592 #if 0
00593     if( VK_SPACE    == nVKey && FALSE == m_pShareData->m_Common.m_bHokanKey_SPACE )     return FALSE;/* VK_SPACE  補完決定キーが有効/無効 */
00594 #endif
00595
00596     HWND hwndList;
00597     int nItem;
00598     char szLabel[1024];
00599     CEditView* pcEditView;
00600     hwndList = ::GetDlgItem( m_hWnd, IDC_LIST_WORDS );
00601     nItem = ::SendMessage( hwndList, LB_GETCURSEL, 0, 0 );
00602     if( LB_ERR == nItem ){
00603         return FALSE;
00604     }
00605     ::SendMessage( hwndList, LB_GETTEXT, nItem, (LPARAM)szLabel );
00606 #if 0
00607     /* スペースで候補決定の場合はスペースをつける */
00608     if( VK_SPACE == nVKey ){
00609         strcat( szLabel, " " );
00610     }
00611 #endif
00612 //  pszWork += m_cmemCurWord.GetLength();
00613
00614     /* テキストを貼り付け */
00615     pcEditView = (CEditView*)m_lParam;
00616     //  Apr. 28, 2000 genta
00617     pcEditView->HandleCommand( F_WordDeleteToStart, FALSE, 0, 0, 0, 0 );
00618     pcEditView->HandleCommand( F_INSTEXT, TRUE, (LPARAM)(szLabel), TRUE, 0, 0 );
00619
00620     // Until here
00621 //  pcEditView->HandleCommand( F_INSTEXT, TRUE, (LPARAM)(szLabel + m_cmemCurWord.GetLength()), TRUE, 0, 0 );
00622     Hide();
00623
00624     m_pShareData->m_Common.m_bUseHokan = FALSE; //  補完したら
00625     return TRUE;
00626 }
00627
00628 /*
00629 戻り値が -2 の場合は、アプリケーションは項目の選択を完了し、
00630 リスト ボックスでそれ以上の動作が必要でないことを示します。
00631
00632 戻り値が -1 の場合は、リスト ボックスがキーストロークに応じて
00633 デフォルトの動作を実行することを示します。
00634
00635  戻り値が 0 以上の場合は、その値はリスト ボックスの項目の 0 を
00636 基準としたインデックスを意味し、リスト ボックスがその項目での
00637 キーストロークに応じてデフォルトの動作を実行することを示します。
00638
00639 */
00640 //  int CHokanMgr::OnVKeyToItem( WPARAM wParam, LPARAM lParam )
00641 //  {
00642 //      return KeyProc( wParam, lParam );
00643 //  }
00644
00645 /*
00646 戻り値が -2 の場合は、アプリケーションは項目の選択を完了し、
00647 リスト ボックスでそれ以上の動作が必要でないことを示します。
00648
00649 戻り値が -1 の場合は、リスト ボックスがキーストロークに応じて
00650 デフォルトの動作を実行することを示します。
00651
00652  戻り値が 0 以上の場合は、その値はリスト ボックスの項目の 0 を
00653 基準としたインデックスを意味し、リスト ボックスがその項目での
00654 キーストロークに応じてデフォルトの動作を実行することを示します。
00655
00656 */
00657 //  int CHokanMgr::OnCharToItem( WPARAM wParam, LPARAM lParam )
00658 //  {
00659 //      WORD vkey;
00660 //      WORD nCaretPos;
00661 //      LPARAM hwndLB;
00662 //      vkey = LOWORD(wParam);      // virtual-key code
00663 //      nCaretPos = HIWORD(wParam); // caret position
00664 //      hwndLB = lParam;            // handle to list box
00665 //  //  switch( vkey ){
00666 //  //  }
00667 //
00668 //      MYTRACE( "CHokanMgr::OnCharToItem vkey=%xh\n", vkey );
00669 //      return -1;
00670 //  }
00671
00672 int CHokanMgr::KeyProc( WPARAM wParam, LPARAM lParam )
00673 {
00674     WORD vkey;
00675     WORD nCaretPos;
00676     LPARAM hwndLB;
00677     vkey = LOWORD(wParam);      // virtual-key code
00678     nCaretPos = HIWORD(wParam); // caret position
00679     hwndLB = lParam;            // handle to list box
00680 //  MYTRACE( "CHokanMgr::OnVKeyToItem vkey=%xh\n", vkey );
00681     switch( vkey ){
00682     case VK_HOME:
00683     case VK_END:
00684     case VK_UP:
00685     case VK_DOWN:
00686     case VK_PRIOR:
00687     case VK_NEXT:
00688         /* リストボックスのデフォルトの動作をさせる */
00689         return -1;
00690     case VK_RETURN:
00691     case VK_TAB:
00692     case VK_RIGHT:
00693 #if 0
00694     case VK_SPACE:
00695 #endif
00696         /* 補完実行 */
00697         if( DoHokan( vkey ) ){
00698             return -1;
00699         }else{
00700             return -2;
00701         }
00702     case VK_ESCAPE:
00703     case VK_LEFT:
00704         m_pShareData->m_Common.m_bUseHokan = FALSE;
00705         return -2;
00706     }
00707     return -2;
00708 }
00709
00710 //BOOL CHokanMgr::OnNextDlgCtl( WPARAM wParam, LPARAM lParam )
00711 //{
00712 //  /* 補完実行 */
00713 //  DoHokan();
00714 //  return 0;
00715 //}
00716
00717
00718 //  2001/06/18 Start by asa-o: 補完ウィンドウで選択中の単語にキーワードヘルプを表示
00719 void CHokanMgr::ShowTip()
00720 {
00721     INT         nItem,
00722                 nTopItem,
00723                 nItemHeight;
00724     CHAR        szLabel[1024];
00725     POINT       point;
00726     CEditView*  pcEditView;
00727     HWND        hwndCtrl;
00728     RECT        rcHokanWin;
00729
00730     hwndCtrl = ::GetDlgItem( m_hWnd, IDC_LIST_WORDS );
00731
00732     nItem = ::SendMessage( hwndCtrl, LB_GETCURSEL, 0, 0 );
00733     if( LB_ERR == nItem )   return ;
00734
00735     ::SendMessage( hwndCtrl, LB_GETTEXT, nItem, (LPARAM)szLabel );  // 選択中の単語を取得
00736
00737     pcEditView = (CEditView*)m_lParam;
00738
00739     // すでに辞書Tipが表示されていたら
00740     if( pcEditView->m_dwTipTimer == 0 )
00741     {
00742         // 辞書Tipを消す
00743         pcEditView -> m_cTipWnd.Hide();
00744         pcEditView -> m_dwTipTimer = ::GetTickCount();
00745     }
00746
00747     // 表示する位置を決定
00748     nTopItem = ::SendMessage(hwndCtrl,LB_GETTOPINDEX,0,0);
00749     nItemHeight = ::SendMessage( hwndCtrl, LB_GETITEMHEIGHT, 0, 0 );
00750     point.x = m_poWin.x + m_nWidth;
00751     point.y = m_poWin.y + 4 + (nItem - nTopItem) * nItemHeight;
00752     // 2001/06/19 asa-o 選択中の単語が補完ウィンドウに表示されているなら辞書Tipを表示
00753     if( point.y > m_poWin.y && point.y < m_poWin.y + m_nHeight )
00754     {
00755         ::SetRect( &rcHokanWin , m_poWin.x, m_poWin.y, m_poWin.x + m_nWidth, m_poWin.y + m_nHeight );
00756         if( !pcEditView -> ShowKeywordHelp( point,szLabel, &rcHokanWin ) )
00757             pcEditView -> m_dwTipTimer = ::GetTickCount();  // 表示するべきキーワードヘルプが無い
00758     }
00759 }
00760 //  2001/06/18 End
00761
00762 //@@@ 2002.01.18 add start
00763 const DWORD p_helpids[] = {
00764     0, 0
00765 };
00766
00767 LPVOID CHokanMgr::GetHelpIdTable(void)
00768 {
00769     return (LPVOID)p_helpids;
00770 }
00771 //@@@ 2002.01.18 add end
00772
00773 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHokanMgr.h

CHokanMgr.h

キーワード補完 [詳細]

#include "CDialog.h"
#include <windows.h>
#include "CMemory.h"

CHokanMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CHokanMgr
キーワード補完 [詳細]

説明

キーワード補完

作者:
Norio Nakatani

CHokanMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHokanMgr.h ソースファイル

CHokanMgr.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, asa-o
00009     Copyright (C) 2003, Moca
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 class CHokanMgr;
00016
00017 #ifndef _CHOKANMGR_H_
00018 #define _CHOKANMGR_H_
00019
00020 #include "CDialog.h"
00021 #include <windows.h>
00022 #include "CMemory.h"
00023
00024 class CEditView;
00025
00026
00031 class SAKURA_CORE_API CHokanMgr : public CDialog
00032 {
00033 public:
00034     /*
00035     ||  Constructors
00036     */
00037     CHokanMgr();
00038     ~CHokanMgr();
00039
00040     HWND DoModeless( HINSTANCE, HWND, LPARAM );/* モードレスダイアログの表示 */
00041     void Hide( void );
00042     /* 初期化 */
00043     int Search(
00044     //  HFONT       hFont,
00045         POINT*      ppoWin,
00046         int         nWinHeight,
00047         int         nColmWidth,
00048         const char* pszCurWord,
00049     //  void*       pcEditView,
00050         const char* pszHokanFile,
00051         BOOL        bHokanLoHiCase,         // 入力補完機能：英大文字小文字を同一視する 2001/06/19 asa-o
00052         BOOL        bHokanByFile,           // 編集中データから候補を探す。 2003.06.23 Moca
00053         CMemory*    pcmemHokanWord = NULL   // 補完候補が１つのときこれに格納 2001/06/19 asa-o
00054     );
00055 //  void SetCurKouhoStr( void );
00056     BOOL DoHokan( int );
00057     void ChangeView( LPARAM );/* モードレス時：対象となるビューの変更 */
00058
00059
00060     BOOL OnInitDialog( HWND, WPARAM wParam, LPARAM lParam );
00061     BOOL OnDestroy( void );
00062     BOOL OnSize( WPARAM wParam, LPARAM lParam );
00063     BOOL OnBnClicked( int wID );
00064     BOOL OnKeyDown( WPARAM wParam, LPARAM lParam );
00065     BOOL OnCbnSelChange( HWND hwndCtl, int wID );
00066     BOOL OnLbnDblclk( int wID );
00067     BOOL OnKillFocus( WPARAM wParam, LPARAM lParam );
00068 //  int OnVKeyToItem( WPARAM wParam, LPARAM lParam );
00069 //  int OnCharToItem( WPARAM wParam, LPARAM lParam );
00070 //  BOOL OnNextDlgCtl( WPARAM, LPARAM );
00071
00072     int KeyProc( WPARAM, LPARAM );
00073
00074 //  2001/06/18 asa-o
00075     void ShowTip(); // 補完ウィンドウで選択中の単語にキーワードヘルプの表示
00076
00077
00078 //  HFONT           m_hFont;
00079 //  HFONT           m_hFontOld;
00080     CMemory         m_cmemCurWord;
00081     CMemory*        m_pcmemKouho;
00082     int             m_nKouhoNum;
00083
00084     int             m_nCurKouhoIdx;
00085     char*           m_pszCurKouho;
00086
00087     POINT           m_poWin;
00088     int             m_nWinHeight;
00089     int             m_nColmWidth;
00090 //  void*           m_pcEditView;
00091     int             m_bTimerFlag;
00092
00093 protected:
00094     /*
00095     ||  実装ヘルパ関数
00096     */
00097     LPVOID GetHelpIdTable(void);    //@@@ 2002.01.18 add
00098
00099 };
00100
00101
00102
00104 #endif /* _CHOKANMGR_H_ */
00105
00106
00107 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHtmlHelp.cpp

CHtmlHelp.cpp

HtmpHelp動的ロード [詳細]

#include "stdafx.h"
#include "CHtmlHelp.h"

CHtmlHelp.cppのインクルード依存関係図

ソースコードを見る。

説明

HtmpHelp動的ロード

HTML Help コンポーネントへの動的アクセスクラス

作者:
genta
日付:
Jul. 5, 2001

CHtmlHelp.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHtmlHelp.cpp ソースファイル

CHtmlHelp.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 2001, genta
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032
00033 #include "stdafx.h"
00034 #include "CHtmlHelp.h"
00035
00036 CHtmlHelp::~CHtmlHelp(void)
00037 {}
00038
00042 LPCTSTR CHtmlHelp::GetDllName(LPCTSTR)
00043 {
00044     return _T("HHCTRL.OCX");
00045 }
00046
00047 int CHtmlHelp::InitDll(void)
00048 {
00049     if((HtmlHelp = (Proc_HtmlHelp)::GetProcAddress(GetInstance(),
00050 #ifdef UNICODE
00051     "HtmlHelpW"
00052 #else
00053     "HtmlHelpA"
00054 #endif
00055     )) == NULL )
00056         return 1;
00057
00058     return 0;
00059 }
00060
00061
00062 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHtmlHelp.h

CHtmlHelp.h

HtmpHelp動的ロード [詳細]

#include "CDllHandler.h"

CHtmlHelp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CHtmlHelp
HtmpHelp動的ロード [詳細]

説明

HtmpHelp動的ロード

HTML Help コンポーネントへの動的アクセスクラス

作者:
genta
日付:
Jul. 5, 2001

CHtmlHelp.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CHtmlHelp.h ソースファイル

CHtmlHelp.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 2001, genta
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032
00033 #ifndef _SAKURA_HTMLHELP_H_
00034 #define _SAKURA_HTMLHELP_H_
00035
00036 #include "CDllHandler.h"
00037
00043 class SAKURA_CORE_API CHtmlHelp : public CDllHandler {
00044 public:
00045     CHtmlHelp(){};
00046     virtual ~CHtmlHelp();
00047
00048     //  HtmlHelp のEntry Point
00049     typedef HWND (WINAPI* Proc_HtmlHelp)(HWND, LPCTSTR, UINT, DWORD_PTR);
00050     Proc_HtmlHelp HtmlHelp;
00051
00052 protected:
00053     virtual int InitDll(void);
00054     virtual const char* GetDllName(const char *);
00055
00056 };
00057
00058 #endif
00059
00060
00061 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CImageListMgr.cpp

CImageListMgr.cpp

ImageListの取り扱い [詳細]

#include "stdafx.h"
#include "CImageListMgr.h"
#include "sakura_rc.h"
#include "CRunningTimer.h"
#include "etc_uty.h"

CImageListMgr.cppのインクルード依存関係図

ソースコードを見る。

関数

static void | FillSolidRect (HDC hdc, int x, int y, int cx, int cy, COLORREF clr)

変数

const int | MAX_X = 32
const int | MAX_Y = 12

説明

ImageListの取り扱い

作者:
genta
日付:
Oct. 11, 2000 genta

CImageListMgr.cpp で定義されています。

関数

static void FillSolidRect | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | int | cx,
 |  | int | cy,
 |  | COLORREF | clr
 | ) | [static]

領域を指定色で塗りつぶす

作者:
Nakatani

CImageListMgr.cpp の 32 行で定義されています。

参照先 NULL.

変数

const int MAX_X = 32

CImageListMgr.cpp の 25 行で定義されています。

参照元 CImageListMgr::Count()・CImageListMgr::Draw().

const int MAX_Y = 12

CImageListMgr.cpp の 26 行で定義されています。

参照元 CImageListMgr::Count().

Sakura-Editorに対してSat Oct 27 02:18:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CImageListMgr.cpp ソースファイル

CImageListMgr.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2001, genta
00009     Copyright (C) 2000, jepro
00010     Copyright (C) 2001, GAE, jepro
00011     Copyright (C) 2003, Moca, genta, wmlhq
00012     Copyright (C) 2007, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holders to use this code for other purpose.
00016 */
00017 #include "stdafx.h"
00018 #include "CImageListMgr.h"
00019 #include "sakura_rc.h"
00020 #include "CRunningTimer.h"
00021 #include "etc_uty.h"
00022
00023 //  Jul. 21, 2003 genta 他でも使うので関数の外に出した
00024 //  Oct. 21, 2000 JEPRO 設定
00025 const int MAX_X = 32;
00026 const int MAX_Y = 12;   //2002.01.17
00027
00032 static void FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr)
00033 {
00034 //  ASSERT_VALID(this);
00035 //  ASSERT(m_hDC != NULL);
00036
00037     RECT rect;
00038     ::SetBkColor( hdc, clr );
00039     ::SetRect( &rect, x, y, x + cx, y + cy );
00040     ::ExtTextOut( hdc, 0, 0, ETO_OPAQUE, &rect, NULL, 0, NULL );
00041 }
00042
00043 //  Destructor
00044 CImageListMgr::~CImageListMgr()
00045 {
00046     //  2003.07.21 Image Listの代わりに描画用bitmapを解放
00047     if( m_hIconBitmap != NULL ){
00048         DeleteObject( m_hIconBitmap );
00049     }
00050 }
00051
00052 /*
00053     @brief Image Listの作成
00054
00055     リソースまたはファイルからbitmapを読み込んで
00056     描画用に保持する．
00057
00058     @param hInstance [in] bitmapリソースを持つインスタンス
00059     @param hWnd [in] 未使用
00060
00061     @date 2003.07.21 genta ImageListの構築は行わない．代わりにbitmapをそのまま保持する．
00062 */
00063 bool CImageListMgr::Create(HINSTANCE hInstance, HWND hWnd)
00064 {
00065     MY_RUNNINGTIMER( cRunningTimer, "CImageListMgr::Create" );
00066     if( m_hIconBitmap != NULL ){    //  既に構築済みなら無視する
00067         return true;
00068     }
00069
00070     HBITMAP hRscbmp;    //  リソースから読み込んだひとかたまりのBitmap
00071     HBITMAP hFOldbmp;   //  SetObjectで得られた1つ前のハンドルを保持する
00072     HDC     dcFrom;     //  描画用
00073     int     nRetPos;    //  後処理用
00074     m_cx = m_cy  = 16;
00075
00076     nRetPos = 0;
00077     do {
00078         //  From Here 2001.7.1 GAE
00079         //  2001.7.1 GAE リソースをローカルファイル(sakuraディレクトリ) my_icons.bmp から読めるように
00080         // 2007.05.19 ryoji 設定ファイル優先に変更
00081         TCHAR szPath[_MAX_PATH];
00082         GetInidirOrExedir( szPath, FN_TOOL_BMP );
00083         hRscbmp = (HBITMAP)::LoadImage( NULL, szPath, IMAGE_BITMAP, 0, 0,
00084             LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );
00085
00086         if( hRscbmp == NULL ) { // ローカルファイルの読み込み失敗時はリソースから取得
00087             //  このブロック内は従来の処理
00088             //  リソースからBitmapを読み込む
00089             //  2003.09.29 wmlhq 環境によってアイコンがつぶれる
00090             //hRscbmp = ::LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_MYTOOL ) );
00091             hRscbmp = (HBITMAP)::LoadImage( hInstance, MAKEINTRESOURCE( IDB_MYTOOL ), IMAGE_BITMAP, 0, 0,
00092                 LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS  );
00093             if( hRscbmp == NULL ){
00094                 //  Oct. 4, 2003 genta エラーコード追加
00095                 //  正常終了と同じコードだとdcFromを不正に解放してしまう
00096                 nRetPos = 2;
00097                 break;
00098             }
00099         }
00100         //  To Here 2001.7.1 GAE
00101         m_hIconBitmap = hRscbmp;
00102
00103         //  透過色を得るためにDCにマップする
00104         //  2003.07.21 genta 透過色を得る以外の目的では使わなくなった
00105         dcFrom = CreateCompatibleDC(0); //  転送元用
00106         if( dcFrom == NULL ){
00107             nRetPos = 1;
00108             break;
00109         }
00110
00111         //  まずbitmapをdcにmapする
00112         //  こうすることでCreateCompatibleBitmapで
00113         //  hRscbmpと同じ形式のbitmapを作れる．
00114         //  単にCreateCompatibleDC(0)で取得したdcや
00115         //  スクリーンのDCに対してCreateCompatibleBitmapを
00116         //  使うとモノクロBitmapになる．
00117         hFOldbmp = (HBITMAP)SelectObject( dcFrom, hRscbmp );
00118         if( hFOldbmp == NULL ){
00119             nRetPos = 4;
00120             break;
00121         }
00122
00123         m_cTrans = GetPixel( dcFrom, 0, 0 );//  取得した画像の(0,0)の色を背景色として使う
00124
00125         //  2003.07.21 genta
00126         //  ImageListへの登録部分は当然ばっさり削除
00127
00128         //  もはや処理とは無関係だが，後学のためにコメントのみ残しておこう
00129         //---------------------------------------------------------
00130         //  BitmapがMemoryDCにAssignされている間はbitmapハンドルを
00131         //  使っても正しいbitmapが取得できない．
00132         //  つまり，DCへの描画命令を発行してもその場でBitmapに
00133         //  反映されるわけではない．
00134         //  BitmapをDCから取り外して初めて内容の保証ができる
00135
00136         //  DCのmap/unmapが速度に大きく影響するため，
00137         //  横長のBitmapを作って一括登録するように変更
00138         //  これによって250msecくらい速度が改善される．
00139         //---------------------------------------------------------
00140
00141     }while(0);  //  1回しか通らない
00142
00143     //  後処理
00144     switch( nRetPos ){
00145     case 0:
00146         //  Oct. 4, 2003 genta hRscBmpをdcFromから切り離しておく必要がある
00147         //  アイコン描画変更時に過って削除されていた
00148         SelectObject( dcFrom, hFOldbmp );
00149     case 4:
00150         DeleteDC( dcFrom );
00151     case 2:
00152     case 1:
00153         //  2003.07.21 genta hRscbmpは m_hIconBitmap としてオブジェクトと
00154         //  同じだけ保持されるので解放してはならない
00155         break;
00156     }
00157
00158     return nRetPos == 0;
00159 }
00160
00161
00168 void CImageListMgr::MyBitBlt(
00169     HDC drawdc,
00170     int nXDest,
00171     int nYDest,
00172     int nWidth,
00173     int nHeight,
00174     HBITMAP bmp,
00175     int nXSrc,
00176     int nYSrc
00177 ) const
00178 {
00179     COLORREF colToTransParent = m_cTrans;   /* BMPの中の透明にする色 */
00180 //  HBRUSH  brShadow, brHilight;
00181     HDC     hdcMask;
00182     HBITMAP bmpMask;
00183     HBITMAP bmpMaskOld;
00184     HDC     hdcMem;
00185     HBITMAP bmpMemOld;
00186     HDC     hdcMem2;
00187     HBITMAP bmpMem2;
00188     HBITMAP bmpMem2Old;
00189     // create a monochrome memory DC
00190     hdcMask = CreateCompatibleDC(0);
00191     bmpMask = CreateCompatibleBitmap( hdcMask, nWidth, nHeight);
00192     bmpMaskOld = (HBITMAP)SelectObject( hdcMask, bmpMask);
00193     /* 元ビットマップ用DC */
00194     hdcMem = ::CreateCompatibleDC( drawdc );
00195     bmpMemOld = (HBITMAP)::SelectObject( hdcMem, bmp );
00196     /* 作業用DC */
00197     hdcMem2 = ::CreateCompatibleDC( drawdc );
00198     bmpMem2 = CreateCompatibleBitmap( drawdc, nWidth, nHeight);
00199     bmpMem2Old = (HBITMAP)SelectObject( hdcMem2, bmpMem2);
00200
00201     // build a mask
00202 //  2003.09.04 Moca bmpMaskとbmpの転送する大きさが同じなので不要
00203 //  PatBlt( hdcMask, 0, 0, nWidth, nHeight, WHITENESS);
00204     SetBkColor( hdcMem, colToTransParent );
00205     BitBlt( hdcMask, 0, 0, nWidth, nHeight, hdcMem, nXSrc,nYSrc, SRCCOPY);
00206
00207     /* マスク描画(透明にしない部分だけ黒く描画) */
00208     ::SetBkColor( drawdc, RGB( 255, 255, 255 ) /* colBkColor */ ); // 2003.08.27 Moca 作画方法変更
00209     ::SetTextColor( drawdc, RGB( 0, 0, 0 ) );
00210     // 2003.08.27 Moca 作画方法変更
00211     ::BitBlt( drawdc, nXDest, nYDest, nWidth, nHeight, hdcMask, 0, 0, SRCAND /* SRCCOPY */ );
00212
00213     /* ビットマップ描画(透明にする色を黒くしてマスクとOR描画) */
00214     ::SetBkColor( hdcMem2, colToTransParent/*RGB( 0, 0, 0 )*/ );
00215     ::SetTextColor( hdcMem2, RGB( 0, 0, 0 ) );
00216     ::BitBlt( hdcMem2, 0, 0, nWidth, nHeight, hdcMask, 0, 0, SRCCOPY );
00217     ::BitBlt( hdcMem2, 0, 0, nWidth, nHeight, hdcMem, nXSrc,nYSrc, SRCINVERT/*SRCPAINT*/ );
00218     ::BitBlt( drawdc, nXDest, nYDest, nWidth, nHeight, hdcMem2,  0, 0, /*SRCCOPY*/SRCPAINT );
00219
00220     ::SelectObject( hdcMask, bmpMaskOld );
00221     ::DeleteObject( bmpMask );
00222     ::DeleteDC( hdcMask );
00223     ::SelectObject( hdcMem, bmpMemOld );
00224     ::DeleteDC( hdcMem );
00225     ::SelectObject( hdcMem2, bmpMem2Old );
00226     ::DeleteObject( bmpMem2 );
00227     ::DeleteDC( hdcMem2 );
00228     return;
00229 }
00230
00238 void CImageListMgr::DitherBlt2( HDC drawdc, int nXDest, int nYDest, int nWidth,
00239                         int nHeight, HBITMAP bmp, int nXSrc, int nYSrc) const
00240 {
00241     HDC     hdcMask;
00242     HBITMAP bmpMask;
00243     HBITMAP bmpMaskOld;
00244     HDC     hdcMem;
00245     HBITMAP bmpMemOld;
00246     HDC     hdcMem2;
00247     HBITMAP bmpMem2;
00248     HBITMAP bmpMem2Old;
00249
00250     //COLORREF colToTransParent = RGB( 192, 192, 192 ); /* BMPの中の透明にする色 */
00251     COLORREF colToTransParent = m_cTrans;
00252
00253     // create a monochrome memory DC
00254     hdcMask = CreateCompatibleDC(0);
00255     bmpMask = CreateCompatibleBitmap( hdcMask, nWidth, nHeight);
00256     bmpMaskOld = (HBITMAP)SelectObject( hdcMask, bmpMask);
00257
00258     hdcMem = CreateCompatibleDC(0);
00259     bmpMemOld = (HBITMAP)SelectObject( hdcMem, bmp);
00260
00261     //  Jul. 21, 2003 genta
00262     //  hdcMemに書き込むと元のbitmapを破壊してしまう
00263     hdcMem2 = ::CreateCompatibleDC( drawdc );
00264     bmpMem2 = CreateCompatibleBitmap( drawdc, nWidth, nHeight);
00265     bmpMem2Old = (HBITMAP)SelectObject( hdcMem2, bmpMem2);
00266
00267     // build a mask
00268     //  2003.09.04 Moca bmpMaskとbmpの転送する大きさが同じなので不要
00269     //PatBlt( hdcMask, 0, 0, nWidth, nHeight, WHITENESS);
00270     SetBkColor( hdcMem, colToTransParent );
00271     BitBlt( hdcMask, 0, 0, nWidth, nHeight, hdcMem, nXSrc,nYSrc, SRCCOPY);
00272     SetBkColor( hdcMem, RGB( 255, 255, 255 ) );
00273     BitBlt( hdcMask, 0, 0, nWidth, nHeight, hdcMem, nXSrc,nYSrc, SRCPAINT);
00274
00275     // Copy the image from the toolbar into the memory DC
00276     // and draw it (grayed) back into the toolbar.
00277     //SK: Looks better on the old shell
00278     // 2003.08.29 Moca 作画方法を変更
00279     COLORREF coltxOld = ::SetTextColor( drawdc, RGB(0, 0, 0) );
00280     COLORREF colbkOld = ::SetBkColor( drawdc, RGB(255, 255, 255) );
00281     ::SetBkColor( hdcMem2, RGB(0, 0, 0));
00282     ::SetTextColor( hdcMem2, ::GetSysColor( COLOR_BTNHILIGHT ) );
00283     ::BitBlt( hdcMem2, 0, 0, nWidth, nHeight, hdcMask, 0, 0, SRCCOPY );
00284     ::BitBlt( drawdc, nXDest+1, nYDest+1, nWidth, nHeight, hdcMask, 0, 0, SRCAND );
00285     ::BitBlt( drawdc, nXDest+1, nYDest+1, nWidth, nHeight, hdcMem2, 0, 0, SRCPAINT);
00286     ::SetTextColor( hdcMem2, ::GetSysColor( COLOR_BTNSHADOW ) );
00287     ::BitBlt( hdcMem2, 0, 0, nWidth, nHeight, hdcMask, 0, 0, SRCCOPY );
00288     ::BitBlt( drawdc, nXDest, nYDest, nWidth, nHeight, hdcMask, 0, 0, SRCAND );
00289     ::BitBlt( drawdc, nXDest, nYDest, nWidth, nHeight, hdcMem2, 0, 0, SRCPAINT);
00290     ::SetTextColor( drawdc, coltxOld );
00291     ::SetBkColor( drawdc, colbkOld );
00292
00293     // reset DCs
00294     SelectObject( hdcMask, bmpMaskOld);
00295     DeleteDC( hdcMask );
00296
00297     SelectObject( hdcMem, bmpMemOld);
00298     DeleteDC( hdcMem );
00299
00300     //  Jul. 21, 2003 genta
00301     ::SelectObject( hdcMem2, bmpMem2Old );
00302     ::DeleteObject( bmpMem2 );
00303     ::DeleteDC( hdcMem2 );
00304
00305     DeleteObject( bmpMask );
00306     return;
00307
00308 }
00309
00327 bool CImageListMgr::Draw(int index, HDC dc, int x, int y, int fstyle ) const
00328 {
00329     if( m_hIconBitmap == NULL )
00330         return false;
00331
00332     if( fstyle == ILD_MASK ){
00333         DitherBlt2( dc, x, y, cx(), cy(), m_hIconBitmap,
00334         ( index % MAX_X ) * cx(), ( index / MAX_X ) * cy());
00335     }
00336     else {
00337         MyBitBlt( dc, x, y, cx(), cy(), m_hIconBitmap,
00338         ( index % MAX_X ) * cx(), ( index / MAX_X ) * cy());
00339     }
00340     return true;
00341 }
00342
00347 int CImageListMgr::Count() const
00348 {
00349     return MAX_X * MAX_Y;
00350 }
00351 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CImageListMgr.h

CImageListMgr.h

ImageListの取り扱い [詳細]

#include "global.h"

CImageListMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CImageListMgr
ImageListの管理 [詳細]

説明

ImageListの取り扱い

作者:
genta
日付:
Oct. 11, 2000 genta

CImageListMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CImageListMgr.h ソースファイル

CImageListMgr.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2003, genta
00009     Copyright (C) 2003, Moca
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #ifndef _CIMAGELIST_MGR_H_
00033 #define _CIMAGELIST_MGR_H_
00034
00035 #include "global.h"
00036 //#include <commctrl.h> 2003.07.21 genta 不要
00037
00053 class SAKURA_CORE_API CImageListMgr {
00054 public:
00055
00056     //  constructor
00057     CImageListMgr() : m_cx( 16 ), m_cy( 16 ), m_hIconBitmap( NULL ), m_cTrans( RGB( 0, 0, 0 )) {}
00058     ~CImageListMgr();
00059
00060     bool Create(HINSTANCE hInstance, HWND hWnd);    //  生成
00061
00074     bool Draw(int index, HDC dc, int x, int y, int fstyle ) const   //  描画
00075     ;
00076
00078     int  Count(void) const; //  アイコン数
00079
00081     int  cx(void) const { return m_cx; }
00083     int  cy(void) const { return m_cy; }
00084
00094     void  SetToolBarImages(HWND hToolBar, int id = 0) const {}
00095
00096 protected:
00097     int m_cx;
00098     int m_cy;
00099
00104     COLORREF m_cTrans;
00105
00109     HBITMAP m_hIconBitmap;
00110
00111     //  オリジナルテキストエディタからの描画関数
00112     //  2003.08.27 Moca 背景を透過処理するので背景色の指定は不要に
00113     void MyBitBlt( HDC drawdc, int nXDest, int nYDest,
00114         int nWidth, int nHeight, HBITMAP bmp, int nXSrc, int nYSrc ) const;
00115     void DitherBlt2( HDC drawdc, int nXDest, int nYDest, int nWidth,
00116                         int nHeight, HBITMAP bmp, int nXSrc, int nYSrc ) const;
00117
00118 };
00119
00120 #endif
00121
00122
00123 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyBind.cpp

CKeyBind.cpp

キー割り当てに関するクラス [詳細]

#include "stdafx.h"
#include "CKeyBind.h"
#include "debug.h"
#include "CSMacroMgr.h"
#include "CFuncLookup.h"
#include "KeyCode.h"
#include "CMemory.h"

CKeyBind.cppのインクルード依存関係図

ソースコードを見る。

説明

キー割り当てに関するクラス

作者:
Norio Nakatani
日付:
1998/03/25 新規作成

1998/05/16 クラス内にデータを持たないように変更

CKeyBind.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyBind.cpp ソースファイル

CKeyBind.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2001, jepro, genta
00011     Copyright (C) 2002, YAZAKI, aroka
00012     Copyright (C) 2007, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CKeyBind.h"
00020 #include "debug.h"
00021 #include "CSMacroMgr.h"// 2002/2/10 aroka
00022 #include "CFuncLookup.h"
00023 #include "KeyCode.h"// 2002/2/10 aroka
00024 #include "CMemory.h"// 2002/2/10 aroka
00025
00026
00027 CKeyBind::CKeyBind()
00028 {
00029     return;
00030 }
00031
00032
00033 CKeyBind::~CKeyBind()
00034 {
00035     return;
00036 }
00037
00038
00039
00040
00044 HACCEL CKeyBind::CreateAccerelator(
00045         int         nKeyNameArrNum,
00046         KEYDATA*    pKeyNameArr
00047 )
00048 {
00049     ACCEL*  pAccelArr;
00050     int     nAccelArrNum;
00051     HACCEL  hAccel;
00052     int     i, j, k;
00053
00054     /* 機能が割り当てられているキーの数をカウント */
00055     nAccelArrNum = 0;
00056     for( i = 0; i < nKeyNameArrNum; ++i ){
00057         if( 0 != pKeyNameArr[i].m_nKeyCode ){
00058             for( j = 0; j < 8; ++j ){
00059                 if( 0 != GetFuncCodeAt( pKeyNameArr[i], j ) ){
00060                     nAccelArrNum++;
00061                 }
00062             }
00063         }
00064     }
00065 //  nAccelArrNum = nKeyNameArrNum * 8;
00066
00067
00068     if( nAccelArrNum <= 0 ){
00069         /* 機能割り当てがゼロ */
00070         return NULL;
00071     }
00072     pAccelArr = new ACCEL[nAccelArrNum];
00073     k = 0;
00074     for( i = 0; i < nKeyNameArrNum; ++i ){
00075         if( 0 != pKeyNameArr[i].m_nKeyCode ){
00076             for( j = 0; j < 8; ++j ){
00077                 if( 0 != GetFuncCodeAt( pKeyNameArr[i], j ) ){
00078                     pAccelArr[k].fVirt = FNOINVERT | FVIRTKEY;;
00079                     pAccelArr[k].key = pKeyNameArr[i].m_nKeyCode;
00080                     pAccelArr[k].cmd = pKeyNameArr[i].m_nKeyCode | (((WORD)j)<<8) ;
00081                     if( j & _SHIFT ){
00082                         pAccelArr[k].fVirt |= FSHIFT;
00083                     }
00084                     if( j & _CTRL ){
00085                         pAccelArr[k].fVirt |= FCONTROL;
00086                     }
00087                     if( j & _ALT ){
00088                         pAccelArr[k].fVirt |= FALT;
00089                     }
00090                     k++;
00091                 }
00092             }
00093         }
00094     }
00095     hAccel = ::CreateAcceleratorTable( pAccelArr, nAccelArrNum );
00096     delete [] pAccelArr;
00097     return hAccel;
00098 }
00099
00100
00101
00102
00103
00104
00110 int CKeyBind::GetFuncCode(
00111         WORD        nAccelCmd,
00112         int         nKeyNameArrNum,
00113         KEYDATA*    pKeyNameArr,
00114         BOOL        bGetDefFuncCode /* = TRUE */
00115 )
00116 {
00117     int i;
00118     int nCmd = (int)( nAccelCmd & 0x00ff );
00119     int nSts = (int)( ( nAccelCmd & 0xff00 ) >> 8 );
00120     for( i = 0; i < nKeyNameArrNum; ++i ){
00121         if( nCmd == pKeyNameArr[i].m_nKeyCode ){
00122             return GetFuncCodeAt( pKeyNameArr[i], nSts, bGetDefFuncCode );
00123         }
00124     }
00125     return 0;
00126 }
00127
00128
00129
00130
00131
00132
00146 int CKeyBind::CreateKeyBindList(
00147         HINSTANCE   hInstance,
00148         int         nKeyNameArrNum,
00149         KEYDATA*    pKeyNameArr,
00150         CMemory&    cMemList,
00151         CFuncLookup* pcFuncLookup,
00152         BOOL        bGetDefFuncCode /* = TRUE */
00153 )
00154 {
00155     int     i;
00156     int     j;
00157     int     nValidKeys;
00158     char    pszStr[256];
00159     char    szFuncName[256];
00160     char    szFuncNameJapanese[256];
00161
00162     nValidKeys = 0;
00163 //  cMemList = "";
00164 //  cMemList.SetData( "", strlen( "" ) );
00165     cMemList.SetDataSz( "" );
00166     char*   pszSHIFT = "Shift+";
00167     char*   pszCTRL = "Ctrl+";
00168     char*   pszALT = "Alt+";
00169 //  char*   pszEQUAL = " = ";
00170     char*   pszTAB = "\t";
00171
00172 //  char*   pszCR = "\n";   //Feb. 17, 2001 JEPRO \n=0x0a=LFが行末コードになってしまうので
00173     char*   pszCR = "\r\n"; //\r=0x0d=CRを追加
00174
00175
00176     cMemList.AppendSz( "キー\t機能名\t関数名\t機能番号\tキーマクロ記録可/不可" );
00177     cMemList.AppendSz( pszCR );
00178     cMemList.AppendSz( "-----\t-----\t-----\t-----\t-----" );
00179     cMemList.AppendSz( pszCR );
00180
00181     for( j = 0; j < 8; ++j ){
00182         for( i = 0; i < nKeyNameArrNum; ++i ){
00183             int iFunc = GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode );
00184
00185             if( 0 != iFunc ){
00186                 nValidKeys++;
00187                 if( j & _SHIFT ){
00188                     cMemList.AppendSz( pszSHIFT );
00189                 }
00190                 if( j & _CTRL ){
00191                     cMemList.AppendSz( pszCTRL );
00192                 }
00193                 if( j & _ALT ){
00194                     cMemList.AppendSz( pszALT );
00195                 }
00196                 cMemList.AppendSz( pKeyNameArr[i].m_szKeyName );
00197 //              cMemList.AppendSz( pszEQUAL );
00198 //              cMemList.AppendSz( pszTAB );
00199                 //  Oct. 31, 2001 genta
00200                 if( !pcFuncLookup->Funccode2Name(
00201                     iFunc,
00202                     szFuncNameJapanese, 255 )){
00203                     strcpy( szFuncNameJapanese, "---名前が定義されていない-----" );
00204                 }
00205                 strcpy( szFuncName, ""/*"---unknown()--"*/ );
00206
00207 //              /* 機能名日本語 */
00208 //              ::LoadString(
00209 //                  hInstance,
00210 //                  pKeyNameArr[i].m_nFuncCodeArr[j],
00211 //                   szFuncNameJapanese, 255
00212 //              );
00213                 cMemList.AppendSz( pszTAB );
00214                 cMemList.AppendSz( szFuncNameJapanese );
00215
00216                 /* 機能ID→関数名，機能名日本語 */
00217                 //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00218 //              CMacro::GetFuncInfoByID(
00219                 CSMacroMgr::GetFuncInfoByID(
00220                     hInstance,
00221                     iFunc,
00222                     szFuncName,
00223                     szFuncNameJapanese
00224                 );
00225
00226                 /* 関数名 */
00227                 cMemList.AppendSz( pszTAB );
00228                 cMemList.AppendSz( szFuncName );
00229
00230                 /* 機能番号 */
00231                 cMemList.AppendSz( pszTAB );
00232                 wsprintf( pszStr, "%d", iFunc );
00233                 cMemList.AppendSz( pszStr );
00234
00235                 /* キーマクロに記録可能な機能かどうかを調べる */
00236                 cMemList.AppendSz( pszTAB );
00237                 //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00238 //              if( CMacro::CanFuncIsKeyMacro( pKeyNameArr[i].m_nFuncCodeArr[j] ) ){
00239                 if( CSMacroMgr::CanFuncIsKeyMacro( iFunc ) ){
00240                     cMemList.AppendSz( "○" );
00241                 }else{
00242                     cMemList.AppendSz( "×" );
00243                 }
00244
00245
00246
00247                 cMemList.AppendSz( pszCR );
00248             }
00249         }
00250     }
00251 //  delete [] pszStr;
00252     return nValidKeys;
00253 }
00254
00255
00256
00260 int CKeyBind::GetKeyStr(
00261         HINSTANCE   hInstance,
00262         int         nKeyNameArrNum,
00263         KEYDATA*    pKeyNameArr,
00264         CMemory&    cMemList,
00265         int         nFuncId,
00266         BOOL        bGetDefFuncCode /* = TRUE */
00267 )
00268 {
00269     int     i;
00270     int     j;
00271     char*   pszSHIFT = "Shift+";
00272     char*   pszCTRL = "Ctrl+";
00273     char*   pszALT = "Alt+";
00274 //  cMemList.SetData( "", strlen( "" ) );
00275     cMemList.SetDataSz( "" );
00276     for( j = 0; j < 8; ++j ){
00277         for( i = 0; i < nKeyNameArrNum; ++i ){
00278             if( nFuncId == GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode ) ){
00279                 if( j & _SHIFT ){
00280 //                  cMemList.Append( pszSHIFT, strlen( pszSHIFT ) );
00281                     cMemList.AppendSz( pszSHIFT );
00282                 }
00283                 if( j & _CTRL ){
00284 //                  cMemList.Append( pszCTRL, strlen( pszCTRL ) );
00285                     cMemList.AppendSz( pszCTRL );
00286                 }
00287                 if( j & _ALT ){
00288 //                  cMemList.Append( pszALT, strlen( pszALT ) );
00289                     cMemList.AppendSz( pszALT );
00290                 }
00291 //              cMemList.Append( pKeyNameArr[i].m_szKeyName, strlen( pKeyNameArr[i].m_szKeyName ) );
00292                 cMemList.AppendSz( pKeyNameArr[i].m_szKeyName );
00293                 return 1;
00294             }
00295         }
00296     }
00297     return 0;
00298 }
00299
00300
00304 int CKeyBind::GetKeyStrList(
00305         HINSTANCE   hInstance,
00306         int         nKeyNameArrNum,
00307         KEYDATA*    pKeyNameArr,
00308         CMemory***  pppcMemList,
00309         int         nFuncId,
00310         BOOL        bGetDefFuncCode /* = TRUE */
00311 )
00312 {
00313     int     i;
00314     int     j;
00315     char*   pszSHIFT = "Shift+";
00316     char*   pszCTRL = "Ctrl+";
00317     char*   pszALT = "Alt+";
00318     int     nAssignedKeysNum;
00319
00320     nAssignedKeysNum = 0;
00321     if( 0 == nFuncId ){
00322         return 0;
00323     }
00324     for( j = 0; j < 8; ++j ){
00325         for( i = 0; i < nKeyNameArrNum; ++i ){
00326             if( nFuncId == GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode ) ){
00327                 nAssignedKeysNum++;
00328             }
00329         }
00330     }
00331     if( 0 == nAssignedKeysNum ){
00332         return 0;
00333     }
00334     (*pppcMemList) = new CMemory*[nAssignedKeysNum + 1];
00335     for( i = 0; i < nAssignedKeysNum; ++i ){
00336         (*pppcMemList)[i] = new CMemory;
00337     }
00338     (*pppcMemList)[i] = NULL;
00339
00340
00341     nAssignedKeysNum = 0;
00342     for( j = 0; j < 8; ++j ){
00343         for( i = 0; i < nKeyNameArrNum; ++i ){
00344             if( nFuncId == GetFuncCodeAt( pKeyNameArr[i], j, bGetDefFuncCode ) ){
00345                 if( j & _SHIFT ){
00346 //                  (*pppcMemList)[nAssignedKeysNum]->Append( pszSHIFT, strlen( pszSHIFT ) );
00347                     (*pppcMemList)[nAssignedKeysNum]->AppendSz( pszSHIFT );
00348                 }
00349                 if( j & _CTRL ){
00350 //                  (*pppcMemList)[nAssignedKeysNum]->Append( pszCTRL, strlen( pszCTRL ) );
00351                     (*pppcMemList)[nAssignedKeysNum]->AppendSz( pszCTRL );
00352                 }
00353                 if( j & _ALT ){
00354 //                  (*pppcMemList)[nAssignedKeysNum]->Append( pszALT, strlen( pszALT ) );
00355                     (*pppcMemList)[nAssignedKeysNum]->AppendSz( pszALT );
00356                 }
00357 //              (*pppcMemList)[nAssignedKeysNum]->Append( pKeyNameArr[i].m_szKeyName, strlen( pKeyNameArr[i].m_szKeyName ) );
00358                 (*pppcMemList)[nAssignedKeysNum]->AppendSz( pKeyNameArr[i].m_szKeyName );
00359                 nAssignedKeysNum++;
00360             }
00361         }
00362     }
00363     return nAssignedKeysNum;
00364 }
00365
00366
00370 char* CKeyBind::GetMenuLabel(
00371         HINSTANCE   hInstance,
00372         int         nKeyNameArrNum,
00373         KEYDATA*    pKeyNameArr,
00374         int         nFuncId,
00375         char*       pszLabel,
00376         BOOL        bKeyStr,
00377         BOOL        bGetDefFuncCode /* = TRUE */
00378 )
00379 {
00380     CMemory     cMemList;
00381 //  int         i;
00382
00383
00384     if( 0 == strlen( pszLabel ) ){
00385         strcpy( pszLabel, "-- undefined name --" );
00386         ::LoadString( hInstance, nFuncId, pszLabel, 255 );
00387     }
00388
00389
00390     /* 機能に対応するキー名を追加するか */
00391     if( bKeyStr ){
00392         /* 機能に対応するキー名の取得 */
00393         if( ( IDM_SELWINDOW <= nFuncId && nFuncId <= IDM_SELWINDOW + 999 )
00394          || ( IDM_SELMRU <= nFuncId && nFuncId <= IDM_SELMRU + 999 )
00395          || ( IDM_SELOPENFOLDER <= nFuncId && nFuncId <= IDM_SELOPENFOLDER + 999 )
00396          ){
00397         }else{
00398             strcat( pszLabel, "\t" );
00399         }
00400         if( GetKeyStr( hInstance, nKeyNameArrNum, pKeyNameArr, cMemList, nFuncId, bGetDefFuncCode ) ){
00401             strcat( pszLabel, cMemList.GetPtr() );
00402         }
00403     }
00404     return pszLabel;
00405 }
00406
00407
00417 int CKeyBind::GetDefFuncCode( int nKeyCode, int nState )
00418 {
00419     DLLSHAREDATA* pShareData = CShareData::getInstance()->GetShareData();
00420     if( pShareData == NULL )
00421         return 0;
00422
00423     int nDefFuncCode = 0;
00424     if( nKeyCode == VK_F4 ){
00425         if( nState == _CTRL ){
00426             nDefFuncCode = F_FILECLOSE; // 閉じて(無題)
00427             if( pShareData->m_Common.m_bDispTabWnd && !pShareData->m_Common.m_bDispTabWndMultiWin ){
00428                 nDefFuncCode = F_WINCLOSE;  // 閉じる
00429             }
00430         }else if( nState == _ALT ){
00431             nDefFuncCode = F_WINCLOSE;  // 閉じる
00432             if( pShareData->m_Common.m_bDispTabWnd && !pShareData->m_Common.m_bDispTabWndMultiWin ){
00433                 if( !pShareData->m_Common.m_bTab_CloseOneWin ){
00434                     nDefFuncCode = F_GROUPCLOSE;    // グループを閉じる // 2007.06.20 ryoji
00435                 }
00436             }
00437         }
00438     }
00439     return nDefFuncCode;
00440 }
00441
00442
00453 int CKeyBind::GetFuncCodeAt( KEYDATA& KeyData, int nState, BOOL bGetDefFuncCode )
00454 {
00455     if( 0 != KeyData.m_nFuncCodeArr[nState] )
00456         return KeyData.m_nFuncCodeArr[nState];
00457     if( bGetDefFuncCode )
00458         return GetDefFuncCode( KeyData.m_nKeyCode, nState );
00459     return 0;
00460 };
00461
00462
00463 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyBind.h

CKeyBind.h

キー割り当てに関するクラス [詳細]

#include <windows.h>

CKeyBind.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | KEYDATA
キー情報を保持する [詳細]
class | CKeyBind
キー割り当て関連ルーチン [詳細]

説明

キー割り当てに関するクラス

作者:
Norio Nakatani
日付:
1998/03/25 新規作成

1998/05/16 クラス内にデータを持たないように変更

CKeyBind.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyBind.h ソースファイル

CKeyBind.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 class CKeyBind;
00015
00016 #ifndef _CKEYBIND_H_
00017 #define _CKEYBIND_H_
00018
00019 #include <windows.h>
00020 class CMemory;// 2002/2/10 aroka
00021
00023 struct KEYDATA {
00025     short           m_nKeyCode;
00026 //  char*           m_pszKeyName;
00027
00029     char            m_szKeyName[64];
00030
00036     /*short*/int    m_nFuncCodeArr[8];
00037 };
00038
00039 class CFuncLookup;
00040
00041 /*-----------------------------------------------------------------------
00042 クラスの宣言
00043 -----------------------------------------------------------------------*/
00049 class CKeyBind
00050 {
00051 public:
00052     /*
00053     ||  Constructors
00054     */
00055     CKeyBind();
00056     ~CKeyBind();
00057
00058     /*
00059     ||  参照系メンバ関数
00060     */
00061     static HACCEL CreateAccerelator( int, KEYDATA* );
00062     static int GetFuncCode( WORD nAccelCmd, int nKeyNameArrNum, KEYDATA* pKeyNameArr, BOOL bGetDefFuncCode = TRUE );
00063     static int GetFuncCodeAt( KEYDATA& KeyData, int nState, BOOL bGetDefFuncCode = TRUE );  /* 特定のキー情報から機能コードを取得する */    // 2007.02.24 ryoji
00064     static int GetDefFuncCode( int nKeyCode, int nState );  /* キーのデフォルト機能を取得する */    // 2007.02.22 ryoji
00065
00067     static int CreateKeyBindList( HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA* pKeyNameArr, CMemory& cMemList, CFuncLookup* pcFuncLookup, BOOL bGetDefFuncCode = TRUE );
00068     static int GetKeyStr( HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA* pKeyNameArr, CMemory& cMemList, int nFuncId, BOOL bGetDefFuncCode = TRUE ); /* 機能に対応するキー名の取得 */
00069     static int GetKeyStrList( HINSTANCE hInstance, int nKeyNameArrNum,KEYDATA* pKeyNameArr, CMemory*** pppcMemList, int nFuncId, BOOL bGetDefFuncCode = TRUE ); /* 機能に対応するキー名の取得(複数) */
00070     static char* GetMenuLabel( HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA* pKeyNameArr, int nFuncId, char* pszLabel, BOOL bKeyStr, BOOL bGetDefFuncCode = TRUE ); /* メニューラベルの作成 */
00071
00072     /*
00073     ||  更新系メンバ関数
00074     */
00075
00076
00077 protected:
00078     /*
00079     ||  メンバ変数
00080     */
00081 //  HINSTANCE   m_hInstance;
00082 //  CKeyData*   m_pKeyNameArr;
00083 //  int         m_nKeyNameArrNum;
00084
00085     /*
00086     ||  実装ヘルパ関数
00087     */
00088 };
00089
00090
00091
00093 #endif /* _CKEYBIND_H_ */
00094
00095
00096 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyMacroMgr.cpp

CKeyMacroMgr.cpp

キーボードマクロ [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include "CKeyMacroMgr.h"
#include "CMacro.h"
#include "CSMacroMgr.h"
#include "debug.h"
#include "charcode.h"
#include "etc_uty.h"
#include "CMemory.h"
#include "CMacroFactory.h"

CKeyMacroMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

キーボードマクロ

作者:
Norio Nakatani
日付:
20011229 aroka バグ修正、コメント追加 YAZAKI 組替え

CKeyMacroMgr.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyMacroMgr.cpp ソースファイル

CKeyMacroMgr.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2001, aroka
00012     Copyright (C) 2002, YAZAKI, aroka, genta
00013     Copyright (C) 2004, genta
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include <stdio.h>
00021 //  #include <stdlib.h>
00022 //  #include <malloc.h>
00023 #include <string.h>
00024 #include "CKeyMacroMgr.h"
00025 #include "CMacro.h"
00026 #include "CSMacroMgr.h"// 2002/2/10 aroka
00027 #include "debug.h"
00028 #include "charcode.h"
00029 #include "etc_uty.h" // Oct. 5, 2002 genta
00030 //  #include "global.h"
00031 //  #include "CEditView.h"
00032 #include "CMemory.h"
00033 #include "CMacroFactory.h"
00034
00035 CKeyMacroMgr::CKeyMacroMgr()
00036 {
00037     m_pTop = NULL;
00038     m_pBot = NULL;
00039 //  m_nKeyMacroDataArrNum = 0;  2002.2.2 YAZAKI
00040     //  Apr. 29, 2002 genta
00041     //  m_nReadyはCMacroManagerBaseへ
00042     return;
00043 }
00044
00045 CKeyMacroMgr::~CKeyMacroMgr()
00046 {
00047     /* キーマクロのバッファをクリアする */
00048     ClearAll();
00049     return;
00050 }
00051
00052
00054 void CKeyMacroMgr::ClearAll( void )
00055 {
00056     CMacro* p = m_pTop;
00057     CMacro* del_p;
00058     while (p){
00059         del_p = p;
00060         p = p->GetNext();
00061         delete del_p;
00062     }
00063 //  m_nKeyMacroDataArrNum = 0;  2002.2.2 YAZAKI
00064     m_pTop = NULL;
00065     m_pBot = NULL;
00066     return;
00067
00068 }
00069
00074 void CKeyMacroMgr::Append( int nFuncID, LPARAM lParam1, CEditView* pcEditView )
00075 {
00076     CMacro* macro = new CMacro( nFuncID );
00077     macro->AddLParam( lParam1, pcEditView );
00078     Append(macro);
00079 }
00080
00084 void CKeyMacroMgr::Append( CMacro* macro )
00085 {
00086     if (m_pTop){
00087         m_pBot->SetNext(macro);
00088         m_pBot = macro;
00089     }
00090     else {
00091         m_pTop = macro;
00092         m_pBot = m_pTop;
00093     }
00094 //  m_nKeyMacroDataArrNum++;    2002.2.2 YAZAKI
00095     return;
00096 }
00097
00098
00099
00103 BOOL CKeyMacroMgr::SaveKeyMacro( HINSTANCE hInstance, const char* pszPath ) const
00104 {
00105     HFILE       hFile;
00106     char        szLine[1024];
00107     CMemory     cmemWork;
00108     hFile = _lcreat( pszPath, 0 );
00109     if( HFILE_ERROR == hFile ){
00110         return FALSE;
00111     }
00112     strcpy( szLine, "//キーボードマクロのファイル\r\n" );
00113     _lwrite( hFile, szLine, strlen( szLine ) );
00114     CMacro* p = m_pTop;
00115
00116     while (p){
00117         p->Save( hInstance, hFile );
00118         p = p->GetNext();
00119     }
00120     _lclose( hFile );
00121     return TRUE;
00122 }
00123
00124
00125
00129 void CKeyMacroMgr::ExecKeyMacro( CEditView* pcEditView ) const
00130 {
00131     CMacro* p = m_pTop;
00132     while (p){
00133         p->Exec(pcEditView);
00134         p = p->GetNext();
00135     }
00136 }
00137
00141 BOOL CKeyMacroMgr::LoadKeyMacro( HINSTANCE hInstance, const char* pszPath )
00142 {
00143     /* キーマクロのバッファをクリアする */
00144     ClearAll();
00145
00146     FILE* hFile = fopen( pszPath, "r" );
00147     if( NULL == hFile ){
00148         m_nReady = false;
00149         return FALSE;
00150     }
00151
00152     char    szFuncName[100];
00153     char    szFuncNameJapanese[256];
00154     int     nFuncID;
00155     int     i;
00156     int     nBgn, nEnd;
00157     CMemory cmemWork;
00158     CMacro* macro = NULL;
00159
00160     //  Jun. 16, 2002 genta
00161     m_nReady = true;    //  エラーがあればfalseになる
00162     static const char MACRO_ERROR_TITLE[] = "Macro読み込みエラー";
00163
00164     // 一行ずつ読みこみ、コメント行を排除した上で、macroコマンドを作成する。
00165     char    szLine[LINEREADBUFSIZE];
00166
00167     int line = 1;   //  エラー時に行番号を通知するため．1始まり．
00168     for( ; NULL != fgets( szLine, sizeof(szLine), hFile ) ; ++line ){
00169         int nLineLen = strlen( szLine );
00170         // 先行する空白をスキップ
00171         for( i = 0; i < nLineLen; ++i ){
00172             //  Jun. 16, 2002 genta '\r' 追加
00173             if( szLine[i] != SPACE && szLine[i] != TAB && szLine[i] != '\r' ){
00174                 break;
00175             }
00176         }
00177         nBgn = i;
00178         // コメント行の検出
00179         //# パフォーマンス：'/'のときだけ２文字目をテスト
00180         if( szLine[nBgn] == '/' && nBgn + 1 < nLineLen && szLine[nBgn + 1] == '/' ){
00181             continue;
00182         }
00183         //  Jun. 16, 2002 genta 空行を無視する
00184         if( szLine[nBgn] == '\n' || szLine[nBgn] == '\0' ){
00185             continue;
00186         }
00187
00188         // 関数名の取得
00189         szFuncName[0]='\0';// 初期化
00190         for( ; i < nLineLen; ++i ){
00191             //# バッファオーバーランチェック
00192             if( szLine[i] == '(' && (i - nBgn)< sizeof(szFuncName) ){
00193                 memcpy( szFuncName, &szLine[nBgn], i - nBgn );
00194                 szFuncName[i - nBgn] = '\0';
00195                 ++i;
00196                 nBgn = i;
00197                 break;
00198             }
00199         }
00200         // 関数名にS_が付いていたら
00201
00202         /* 関数名→機能ID，機能名日本語 */
00203         //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00204 //      nFuncID = CMacro::GetFuncInfoByName( hInstance, szFuncName, szFuncNameJapanese );
00205         nFuncID = CSMacroMgr::GetFuncInfoByName( hInstance, szFuncName, szFuncNameJapanese );
00206         if( -1 != nFuncID ){
00207             macro = new CMacro( nFuncID );
00208             // Jun. 16, 2002 genta プロトタイプチェック用に追加
00209             int nArgs;
00210             const MacroFuncInfo* mInfo= CSMacroMgr::GetFuncInfoByID( nFuncID );
00211             //  Skip Space
00212             for(nArgs = 0; szLine[i] ; ++nArgs ) {
00213                 // Jun. 16, 2002 genta プロトタイプチェック
00214                 if( nArgs >= sizeof( mInfo->m_varArguments ) / sizeof( mInfo->m_varArguments[0] )){
00215                     ::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00216                         _T("Line %d: Column %d: 引数が多すぎます\n" ), line, i + 1 );
00217                     m_nReady = false;
00218                 }
00219
00220                 while( szLine[i] == ' ' || szLine[i] == '\t' )
00221                     i++;
00222
00223                 //@@@ 2002.2.2 YAZAKI PPA.DLLマクロにあわせて仕様変更。文字列は''で囲む。
00224                 //  Jun. 16, 2002 genta double quotationも許容する
00225                 if( '\'' == szLine[i] || '\"' == szLine[i]  ){  //  'で始まったら文字列だよきっと。
00226                     // Jun. 16, 2002 genta プロトタイプチェック
00227                     // Jun. 27, 2002 genta 余分な引数を無視するよう，VT_EMPTYを許容する．
00228                     if( mInfo->m_varArguments[nArgs] != VT_BSTR &&
00229                         mInfo->m_varArguments[nArgs] != VT_EMPTY ){
00230                         ::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00231                             _T("Line %d: Column %d\r\n"
00232                             "関数%sの%d番目の引数に文字列は置けません．" ), line, i + 1, szFuncName, nArgs + 1 );
00233                         m_nReady = false;
00234                         break;
00235                     }
00236                     int cQuote = szLine[i];
00237                     ++i;
00238                     nBgn = i;   //  nBgnは引数の先頭の文字
00239                     //  Jun. 16, 2002 genta
00240                     //  行末の検出のため，ループ回数を1増やした
00241                     for( ; i <= nLineLen; ++i ){        //  最後の文字+1までスキャン
00242                         if( _IS_SJIS_1( (unsigned char)szLine[i] ) ){
00243                             ++i;
00244                             continue;
00245                         }
00246                         if( szLine[i] == '\\' ){    // エスケープのスキップ
00247                             ++i;
00248                             continue;
00249                         }
00250                         if( szLine[i] == cQuote ){  //  始まりと同じquotationで終了。
00251                             nEnd = i;   //  nEndは終わりの次の文字（'）
00252                             break;
00253                         }
00254                         if( szLine[i] == '\0' ){    //  行末に来てしまった
00255                             ::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00256                                 _T("Line %d:\r\n関数%sの%d番目の引数の終わりに%cがありません．" ),
00257                                 line, szFuncName, nArgs + 1, cQuote);
00258                             m_nReady = false;
00259                             nEnd = i - 1;   //  nEndは終わりの次の文字（'）
00260                             break;
00261                         }
00262                     }
00263                     //  Jun. 16, 2002 genta
00264                     if( !m_nReady ){
00265                         break;
00266                     }
00267                     cmemWork.SetData( szLine + nBgn, nEnd - nBgn );
00268                     cmemWork.Replace( "\\\'", "\'" );
00269
00270                     //  Jun. 16, 2002 genta double quotationもエスケープ解除
00271                     cmemWork.Replace( "\\\"", "\"" );
00272                     cmemWork.Replace( "\\\\", "\\" );
00273                     macro->AddParam( cmemWork.GetPtr() );   //  引数を文字列として追加
00274                 }
00275                 else if ( '0' <= szLine[i] && szLine[i] <= '9' ){   //  数字で始まったら数字列だ。
00276                     // Jun. 16, 2002 genta プロトタイプチェック
00277                     // Jun. 27, 2002 genta 余分な引数を無視するよう，VT_EMPTYを許容する．
00278                     if( mInfo->m_varArguments[nArgs] != VT_I4 &&
00279                         mInfo->m_varArguments[nArgs] != VT_EMPTY){
00280 						::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00281                             _T("Line %d: Column %d\r\n"
00282                             "関数%sの%d番目の引数に数値は置けません．" ), line, i + 1, szFuncName, nArgs + 1);
00283                         m_nReady = false;
00284                         break;
00285                     }
00286                     nBgn = i;   //  nBgnは引数の先頭の文字
00287                     for( ; i < nLineLen; ++i ){     //  最後の文字までスキャン
00288                         if( '0' <= szLine[i] && szLine[i] <= '9' ){ // まだ数値
00289 //                          ++i;
00290                             continue;
00291                         }
00292                         else {
00293                             nEnd = i;   //  数字の最後の文字
00294                             i--;
00295                             break;
00296                         }
00297                     }
00298                     cmemWork.SetData( szLine + nBgn, nEnd - nBgn );
00299                     // Jun. 16, 2002 genta
00300                     //  数字の中にquotationは入っていないよ
00301                     //cmemWork.Replace( "\\\'", "\'" );
00302                     //cmemWork.Replace( "\\\\", "\\" );
00303                     macro->AddParam( cmemWork.GetPtr() );   //  引数を文字列として追加
00304                 }
00305                 //  Jun. 16, 2002 genta
00306                 else if( szLine[i] == ')' ){
00307                     //  引数無し
00308                     break;
00309                 }
00310                 else {
00311                     //  Parse Error:文法エラーっぽい。
00312                     //  Jun. 16, 2002 genta
00313                     nBgn = nEnd = i;
00314 					::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00315                         _T("Line %d: Column %d: Syntax Error\n" ), line, i );
00316                     m_nReady = false;
00317                     break;
00318                 }
00319
00320                 for( ; i < nLineLen; ++i ){     //  最後の文字までスキャン
00321                     if( szLine[i] == ')' || szLine[i] == ',' ){ //  ,もしくは)を読み飛ばす
00322                         i++;
00323                         break;
00324                     }
00325                 }
00326                 if (szLine[i-1] == ')'){
00327                     break;
00328                 }
00329             }
00330             //  Jun. 16, 2002 genta
00331             if( !m_nReady ){
00332                 //  どこかでエラーがあったらしい
00333                 delete macro;
00334                 break;
00335             }
00336             /* キーマクロのバッファにデータ追加 */
00337             Append( macro );
00338         }
00339         else {
00340 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, MACRO_ERROR_TITLE,
00341                 _T("Line %d: %sは存在しない関数です．\n" ), line, szFuncName );
00342             //  Jun. 16, 2002 genta
00343             m_nReady = false;
00344             break;
00345         }
00346     }
00347     fclose( hFile );
00348
00349     //  Jun. 16, 2002 genta
00350     //  マクロ中にエラーがあったら異常終了できるようにする．
00351     return m_nReady ? TRUE : FALSE;
00352 }
00353
00354 //  From Here Apr. 29, 2002 genta
00363 CMacroManagerBase* CKeyMacroMgr::Creator(const char* ext)
00364 {
00365     if( strcmp( ext, "mac" ) == 0 ){
00366         return new CKeyMacroMgr;
00367     }
00368     return NULL;
00369 }
00370
00375 void CKeyMacroMgr::declare (void)
00376 {
00377     //  常に実行
00378     CMacroFactory::Instance()->RegisterCreator( Creator );
00379 }
00380 //  To Here Apr. 29, 2002 genta
00381
00382 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyMacroMgr.h

CKeyMacroMgr.h

キーボードマクロ [詳細]

#include <windows.h>
#include "CMacroManagerBase.h"

CKeyMacroMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CKeyMacroMgr
キーボードマクロ [詳細]

説明

キーボードマクロ

作者:
Norio Nakatani

CKeyMacroMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyMacroMgr.h ソースファイル

CKeyMacroMgr.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, aroka
00009     Copyright (C) 2002, YAZAKI, genta
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 #ifndef _CKEYMACROMGR_H_
00016 #define _CKEYMACROMGR_H_
00017
00018 #include <windows.h>
00019 #include "CMacroManagerBase.h"
00020
00021 /*
00022 struct KeyMacroData {
00023     int     m_nFuncID;
00024     LPARAM  m_lParam1;
00025 };
00026 */
00027
00028 //#define MAX_STRLEN            70
00029 //#define MAX_KEYMACRONUM       10000
00030 /*-----------------------------------------------------------------------
00031 クラスの宣言
00032 -----------------------------------------------------------------------*/
00034
00037 class CKeyMacroMgr : public CMacroManagerBase
00038 {
00039 public:
00040     /*
00041     ||  Constructors
00042     */
00043     CKeyMacroMgr();
00044     ~CKeyMacroMgr();
00045
00046     /*
00047     ||  Attributes & Operations
00048     */
00049     void ClearAll( void );              /* キーマクロのバッファをクリアする */
00050     void Append( int , LPARAM, class CEditView* pcEditView );       /* キーマクロのバッファにデータ追加 */
00051     void Append( class CMacro* macro );     /* キーマクロのバッファにデータ追加 */
00052 //  int GetMacroNum() { return m_nKeyMacroDataArrNum; };
00053
00054     /* キーボードマクロをまとめて取り扱う */
00055     BOOL SaveKeyMacro( HINSTANCE hInstance, const char* pszPath) const; /* CMacroの列を、キーボードマクロに保存 */
00056     //@@@2002.2.2 YAZAKI PPA.DLLアリ/ナシ共存のためvirtualに。
00057     virtual void ExecKeyMacro( class CEditView* pcEditView ) const;             /* キーボードマクロの実行 */
00058     virtual BOOL LoadKeyMacro( HINSTANCE hInstance, const char* pszPath);       /* キーボードマクロを読み込み、CMacroの列に変換 */
00059
00060     /* キーボードマクロが読み込み済みか確認する */
00061     //  Apr. 29, 2002 genta
00062     //  IsReadyはCMacroManagerBaseへ移動
00063
00064     // Apr. 29, 2002 genta
00065     static CMacroManagerBase* Creator(const char*);
00066     static void declare(void);
00067
00068 protected:
00069 //  int             m_nKeyMacroDataArrNum;
00070     //  Apr. 29, 2002 genta
00071     //  m_nReadyはCMacroManagerBaseへ移動
00072
00073     class CMacro*   m_pTop; //  先頭と終端を保持
00074     class CMacro*   m_pBot;
00075 };
00076
00077
00078
00080 #endif /* _CKEYMACROMGR_H_ */
00081
00082
00083 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyWordSetMgr.cpp

CKeyWordSetMgr.cpp

強調キーワード管理 [詳細]

#include "stdafx.h"
#include "CKeyWordSetMgr.h"
#include <stdlib.h>
#include <malloc.h>
#include "my_icmp.h"

CKeyWordSetMgr.cppのインクルード依存関係図

ソースコードを見る。

関数

int | GetAlignmentSize (int nSize)
ブロックサイズで整列

変数

static const int | nKeyWordSetBlockSize = 50
1ブロック当たりのキーワード数

説明

強調キーワード管理

作者:
Norio Nakatani
日付:
2000.12.01 MIK binary search

2004.07.29-2005.01.27 Moca キーワードの可変長記憶

CKeyWordSetMgr.cpp で定義されています。

関数

int GetAlignmentSize ( int nSize ) [inline]

ブロックサイズで整列

CKeyWordSetMgr.cpp の 46 行で定義されています。

参照先 nKeyWordSetBlockSize.

参照元 CKeyWordSetMgr::KeyWordReAlloc().

変数

const int nKeyWordSetBlockSize = 50 [static]

1ブロック当たりのキーワード数

CKeyWordSetMgr.cpp の 43 行で定義されています。

参照元 CKeyWordSetMgr::AddKeyWordSet()・CKeyWordSetMgr::CanAddKeyWord()・GetAlignmentSize().

Sakura-Editorに対してSat Oct 27 02:18:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyWordSetMgr.cpp ソースファイル

CKeyWordSetMgr.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2000-2001, MIK
00012     Copyright (C) 2002, genta, Moca
00013     Copyright (C) 2004, Moca
00014     Copyright (C) 2005, Moca, genta
00015
00016     This software is provided 'as-is', without any express or implied
00017     warranty. In no event will the authors be held liable for any damages
00018     arising from the use of this software.
00019
00020     Permission is granted to anyone to use this software for any purpose,
00021     including commercial applications, and to alter it and redistribute it
00022     freely, subject to the following restrictions:
00023
00024         1. The origin of this software must not be misrepresented;
00025            you must not claim that you wrote the original software.
00026            If you use this software in a product, an acknowledgment
00027            in the product documentation would be appreciated but is
00028            not required.
00029
00030         2. Altered source versions must be plainly marked as such,
00031            and must not be misrepresented as being the original software.
00032
00033         3. This notice may not be removed or altered from any source
00034            distribution.
00035 */
00036 #include "stdafx.h"
00037 #include "CKeyWordSetMgr.h"
00038 #include <stdlib.h>
00039 #include <malloc.h>
00040 #include "my_icmp.h" // Nov. 29, 2002 genta/moca
00041
00043 static const int nKeyWordSetBlockSize = 50;
00044
00046 inline int GetAlignmentSize( int nSize )
00047 {
00048     return (nKeyWordSetBlockSize - 1 + nSize) / nKeyWordSetBlockSize * nKeyWordSetBlockSize;
00049 }
00050
00055 CKeyWordSetMgr::CKeyWordSetMgr( void )
00056 {
00057     m_nCurrentKeyWordSetIdx = 0;
00058     m_nKeyWordSetNum = 0;
00059     m_nStartIdx[0] = 0;
00060     m_nStartIdx[1] = 0;
00061     m_nStartIdx[MAX_SETNUM] = 0;
00062     return;
00063 }
00064
00065 CKeyWordSetMgr::~CKeyWordSetMgr( void)
00066 {
00067     m_nKeyWordSetNum = 0;
00068     return;
00069 }
00070
00078 void CKeyWordSetMgr::ResetAllKeyWordSet( void )
00079 {
00080     m_nKeyWordSetNum = 0;
00081     int i;
00082     for( i = 0; i < MAX_SETNUM+1; i++ ){
00083         m_nStartIdx[i] = 0;
00084     }
00085     for( i = 0; i < MAX_SETNUM; i++ ){
00086         m_nKeyWordNumArr[MAX_SETNUM] = 0;
00087     }
00088 }
00089
00090 const CKeyWordSetMgr& CKeyWordSetMgr::operator=( CKeyWordSetMgr& cKeyWordSetMgr )
00091 {
00092 //  int     nDataLen;
00093 //  char*   pData;
00094 //  int     i;
00095     if( this == &cKeyWordSetMgr ){
00096         return *this;
00097     }
00098     m_nCurrentKeyWordSetIdx = cKeyWordSetMgr.m_nCurrentKeyWordSetIdx;
00099     m_nKeyWordSetNum = cKeyWordSetMgr.m_nKeyWordSetNum;
00100     memcpy( m_szSetNameArr, cKeyWordSetMgr.m_szSetNameArr, sizeof( m_szSetNameArr ) );
00101     memcpy( m_nKEYWORDCASEArr, cKeyWordSetMgr.m_nKEYWORDCASEArr, sizeof( m_nKEYWORDCASEArr ) );
00102     memcpy( m_nStartIdx, cKeyWordSetMgr.m_nStartIdx, sizeof( m_nStartIdx ) ); // 2004.07.29 Moca
00103     memcpy( m_nKeyWordNumArr, cKeyWordSetMgr.m_nKeyWordNumArr, sizeof( m_nKeyWordNumArr ) );
00104     memcpy( m_szKeyWordArr, cKeyWordSetMgr.m_szKeyWordArr, sizeof( m_szKeyWordArr ) );
00105     memcpy( m_IsSorted, cKeyWordSetMgr.m_IsSorted, sizeof( m_IsSorted ) );  //MIK 2000.12.01 binary search
00106     return *this;
00107 }
00108
00109
00110
00111
00121 BOOL CKeyWordSetMgr::AddKeyWordSet( const char* pszSetName, BOOL nKEYWORDCASE, int nSize )
00122 {
00123     if( nSize < 0 ) nSize = nKeyWordSetBlockSize;
00124     if( MAX_SETNUM <= m_nKeyWordSetNum ){
00125         return FALSE;
00126     }
00127     int nIdx = m_nKeyWordSetNum;    //追加位置
00128     m_nStartIdx[ ++m_nKeyWordSetNum ] = m_nStartIdx[ nIdx ];// サイズ0でセット追加
00129
00130     if( !KeyWordReAlloc( nIdx, nSize ) ){
00131         --m_nKeyWordSetNum; //  キーワードセットの追加をキャンセルする
00132         return FALSE;
00133     }
00134     strcpy( m_szSetNameArr[nIdx], pszSetName );
00135     m_nKEYWORDCASEArr[nIdx] = nKEYWORDCASE;
00136     m_nKeyWordNumArr[nIdx] = 0;
00137     m_IsSorted[nIdx] = 0;   //MIK 2000.12.01 binary search
00138     return TRUE;
00139 }
00140
00141 /* ｎ番目のセットを削除 */
00142 BOOL CKeyWordSetMgr::DelKeyWordSet( int nIdx )
00143 {
00144     int     i;
00145     if( m_nKeyWordSetNum <= nIdx ||
00146         0 > nIdx
00147     ){
00148         return FALSE;
00149     }
00150     // キーワード領域を開放
00151     KeyWordReAlloc( nIdx, 0 );
00152
00153     for( i = nIdx; i < m_nKeyWordSetNum - 1; ++i ){
00154         memcpy( m_szSetNameArr[i], m_szSetNameArr[i + 1], sizeof( m_szSetNameArr[0] ) );
00155         m_nKEYWORDCASEArr[i] = m_nKEYWORDCASEArr[i + 1];
00156         m_nKeyWordNumArr[i] = m_nKeyWordNumArr[i + 1];
00157         m_nStartIdx[i] = m_nStartIdx[i + 1];    //  2004.07.29 Moca 可変長記憶
00158         m_IsSorted[i] = m_IsSorted[i+1];    //MIK 2000.12.01 binary search
00159     }
00160     m_nStartIdx[m_nKeyWordSetNum - 1] = m_nStartIdx[m_nKeyWordSetNum];  // 2007.07.14 ryoji これが無いと末尾＝最終セットの先頭になってしまう
00161     m_nKeyWordSetNum--;
00162     if( m_nKeyWordSetNum <= m_nCurrentKeyWordSetIdx ){
00163         m_nCurrentKeyWordSetIdx = m_nKeyWordSetNum - 1;
00164 //セットが無くなったとき、m_nCurrentKeyWordSetIdxをわざと-1にするため、コメント化
00165 //      if( 0 > m_nCurrentKeyWordSetIdx ){
00166 //          m_nCurrentKeyWordSetIdx = 0;
00167 //      }
00168     }
00169     return TRUE;
00170 }
00171
00172
00173
00178 const char* CKeyWordSetMgr::GetTypeName( int nIdx )
00179 {
00180     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00181         return NULL;
00182     }
00183     return m_szSetNameArr[nIdx];
00184 }
00185
00190 const char* CKeyWordSetMgr::SetTypeName( int nIdx, const char* name )
00191 {
00192     if( NULL == name || nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00193         return NULL;
00194     }
00195     strncpy( m_szSetNameArr[nIdx], name, MAX_SETNAMELEN );
00196     m_szSetNameArr[nIdx][MAX_SETNAMELEN] = '\0';
00197     return m_szSetNameArr[nIdx];
00198 }
00199
00200 /* ｎ番目のセットのキーワードの数を返す */
00201 int CKeyWordSetMgr::GetKeyWordNum( int nIdx )
00202 {
00203     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00204         return 0;
00205     }
00206     return m_nKeyWordNumArr[nIdx];
00207 }
00208
00214 const char* CKeyWordSetMgr::GetKeyWord( int nIdx, int nIdx2 )
00215 {
00216     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00217         return NULL;
00218     }
00219     if( nIdx2 < 0 || m_nKeyWordNumArr[nIdx] <= nIdx2 ){
00220         return NULL;
00221     }
00222     return m_szKeyWordArr[m_nStartIdx[nIdx] + nIdx2];
00223 }
00224
00231 const char* CKeyWordSetMgr::UpdateKeyWord( int nIdx, int nIdx2, const char* pszKeyWord )
00232 {
00233     int i;
00234     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00235         return NULL;
00236     }
00237     if( nIdx2 < 0 || m_nKeyWordNumArr[nIdx] <= nIdx2 ){
00238         return NULL;
00239     }
00240     /* 0バイトの長さのキーワードは編集しない */
00241     if( pszKeyWord[0] == '\0' ){
00242         return NULL;
00243     }
00244     /* 重複したキーワードは編集しない */
00245     for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; ++i ){
00246         if( 0 == strcmp( m_szKeyWordArr[i], pszKeyWord ) ){
00247             return NULL;
00248         }
00249     }
00250     m_IsSorted[nIdx] = 0;   //MIK 2000.12.01 binary search
00251     return strcpy( m_szKeyWordArr[m_nStartIdx[nIdx] + nIdx2], pszKeyWord );
00252 }
00253
00254
00264 int CKeyWordSetMgr::AddKeyWord( int nIdx, const char* pszKeyWord )
00265 {
00266     int  i;
00267     if( m_nKeyWordSetNum <= nIdx ){
00268         return 1;
00269     }
00270 // 2004.07.29 Moca
00271     if( !KeyWordReAlloc( nIdx, m_nKeyWordNumArr[nIdx] + 1 ) ){
00272         return 2;
00273     }
00274 //  if( MAX_KEYWORDNUM <= m_nKeyWordNumArr[nIdx] ){
00275 //      return FALSE;
00276 //  }
00277
00278     /* 0バイトの長さのキーワードは登録しない */
00279     if( pszKeyWord[0] == '\0' ){
00280         return 3;
00281     }
00282     /* 重複したキーワードは登録しない */
00283     for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; ++i ){
00284         if( 0 == strcmp( m_szKeyWordArr[i], pszKeyWord ) ){
00285             return 4;
00286         }
00287     }
00288     /* MAX_KEYWORDLENより長いキーワードは切り捨てる */
00289     if( MAX_KEYWORDLEN < strlen( pszKeyWord ) ){
00290         memcpy( m_szKeyWordArr[m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]], pszKeyWord, MAX_KEYWORDLEN );
00291         m_szKeyWordArr[m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]][MAX_KEYWORDLEN] = '\0';
00292     }else{
00293         strcpy( m_szKeyWordArr[m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]], pszKeyWord );
00294     }
00295     m_nKeyWordNumArr[nIdx]++;
00296     m_IsSorted[nIdx] = 0;   //MIK 2000.12.01 binary search
00297     return 0;
00298 }
00299
00300
00306 int CKeyWordSetMgr::DelKeyWord( int nIdx, int nIdx2 )
00307 {
00308     if( nIdx < 0 || m_nKeyWordSetNum <= nIdx ){
00309         return 1;
00310     }
00311     if( nIdx2 < 0 ||  m_nKeyWordNumArr[nIdx] <= nIdx2 ){
00312         return 2;
00313     }
00314     if( 0 >= m_nKeyWordNumArr[nIdx] ){
00315         return 3;   //  登録数が0なら上の条件で引っかかるのでここには来ない？
00316     }
00317     int  i;
00318     int  endPos = m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx] - 1;
00319     for( i = m_nStartIdx[nIdx] + nIdx2; i < endPos; ++i ){
00320         strcpy( m_szKeyWordArr[i], m_szKeyWordArr[i + 1] );
00321     }
00322     m_nKeyWordNumArr[nIdx]--;
00323
00324     // 2005.01.26 Moca 1つずらすだけなので、ソートの状態は保持される
00325     // m_IsSorted[nIdx] = 0;    //MIK 2000.12.01 binary search
00326     KeyWordReAlloc( nIdx, m_nKeyWordNumArr[nIdx] ); // 2004.07.29 Moca
00327     return 0;
00328 }
00329
00330 #if 0
00331 /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */
00332 int CKeyWordSetMgr::SearchKeyWord( int nIdx, const char* pszKeyWord, int nKeyWordLen )
00333 {
00334     int i;
00335     if( m_nKEYWORDCASEArr[nIdx] ){  /* キーワードの英大文字小文字区別 */
00336         for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; ++i ){
00337             if( (int)strlen( m_szKeyWordArr[i] ) == nKeyWordLen ){
00338                 if( 0 == memcmp( m_szKeyWordArr[i], pszKeyWord, nKeyWordLen ) ){
00339                     return i;
00340                 }
00341             }
00342         }
00343     }else{
00344         for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; ++i ){
00345             if( (int)strlen( m_szKeyWordArr[i] ) == nKeyWordLen ){
00346                 if( 0 == memicmp( m_szKeyWordArr[i], pszKeyWord, nKeyWordLen ) ){
00347                     return i;
00348                 }
00349             }
00350         }
00351     }
00352     return -1;
00353
00354 }
00355 #endif
00356
00357 #if 0
00358     // 2005.01.29 genta 使われていないようだ
00359 /* 変更状況を調査 */
00360 BOOL CKeyWordSetMgr::IsModify( CKeyWordSetMgr& cKeyWordSetMgrNew, BOOL* pnModifyFlagArr )
00361 {
00362     BOOL    bModifyAll;
00363     int     i;
00364
00365
00366     for( i = 0; i < MAX_SETNUM; ++i ){
00367         pnModifyFlagArr[i] = FALSE;
00368     }
00369     if( this == &cKeyWordSetMgrNew ){
00370         return FALSE;
00371     }
00372
00373     bModifyAll = FALSE;
00374     if( m_nCurrentKeyWordSetIdx != cKeyWordSetMgrNew.m_nCurrentKeyWordSetIdx
00375      || m_nKeyWordSetNum != cKeyWordSetMgrNew.m_nKeyWordSetNum
00376      || 0 != memcmp( &m_szSetNameArr, &cKeyWordSetMgrNew.m_szSetNameArr, sizeof( m_szSetNameArr ) )
00377      || 0 != memcmp( &m_nKEYWORDCASEArr, &cKeyWordSetMgrNew.m_nKEYWORDCASEArr, sizeof( m_nKEYWORDCASEArr ) )
00378      || 0 != memcmp( &m_nStartIdx, &cKeyWordSetMgrNew.m_nStartIdx, sizeof( m_nStartIdx ) ) // 2004.07.29 Moca
00379      || 0 != memcmp( &m_nKeyWordNumArr, &cKeyWordSetMgrNew.m_nKeyWordNumArr, sizeof( m_nKeyWordNumArr ) )
00380      || 0 != memcmp( &m_szKeyWordArr, &cKeyWordSetMgrNew.m_szKeyWordArr, sizeof( m_szKeyWordArr ) )
00381      ){
00382         bModifyAll = TRUE;
00383         for( i = 0; i < MAX_SETNUM; ++i ){
00384             if( 0 != memcmp( &m_szSetNameArr[i], &cKeyWordSetMgrNew.m_szSetNameArr[i], sizeof( m_szSetNameArr[i] ) )
00385              || m_nKEYWORDCASEArr[i] != cKeyWordSetMgrNew.m_nKEYWORDCASEArr[i]
00386              || m_nStartIdx[i] != cKeyWordSetMgrNew.m_nStartIdx[i] // 2004.07.29 Moca
00387              || m_nKeyWordNumArr[i] != cKeyWordSetMgrNew.m_nKeyWordNumArr[i]
00388              || 0 != memcmp( &m_szKeyWordArr[i], &cKeyWordSetMgrNew.m_szKeyWordArr[i], sizeof( m_szKeyWordArr[i] ) )
00389             ){
00390                 pnModifyFlagArr[i] = TRUE;
00391             }
00392         }
00393     }
00394     return bModifyAll;
00395
00396 }
00397 #endif
00398
00399 //MIK START 2000.12.01 binary search
00405 void CKeyWordSetMgr::SortKeyWord( int nIdx )
00406 {
00407     //nIdxのセットをソートする。
00408     if( m_nKEYWORDCASEArr[nIdx] ) {
00409         qsort( m_szKeyWordArr[m_nStartIdx[nIdx]],
00410                 m_nKeyWordNumArr[nIdx],
00411                 sizeof(m_szKeyWordArr[0]),
00412                 (int (__cdecl *)(const void *, const void *))strcmp
00413             );
00414     } else {
00415         qsort( m_szKeyWordArr[m_nStartIdx[nIdx]],
00416                 m_nKeyWordNumArr[nIdx],
00417                 sizeof(m_szKeyWordArr[0]),
00418                 (int (__cdecl *)(const void *, const void *))my_stricmp //Dec. 24, 2002 Moca
00419             );
00420     }
00421     {
00422         int i;
00423         int len;
00424         m_nKeyWordMaxLenArr[nIdx] = 0;
00425         for( i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx]; i++ ){
00426             len = strlen( m_szKeyWordArr[i] );
00427             if( m_nKeyWordMaxLenArr[nIdx] < len ){
00428                 m_nKeyWordMaxLenArr[nIdx] = len;
00429             }
00430         }
00431     }
00432     m_IsSorted[nIdx] = 1;
00433     return;
00434 }
00435 /* ｎ番目のセットから指定キーワードをバイナリサーチ 無いときは-1を返す */
00436 int CKeyWordSetMgr::SearchKeyWord2( int nIdx, const char* pszKeyWord, int nKeyWordLen )
00437 {
00438     int pc, pr, pl, ret, wcase;
00439
00440     //sort
00441     if(m_IsSorted[nIdx] == 0) SortKeyWord(nIdx);
00442
00443     pl = m_nStartIdx[nIdx];
00444     pr = m_nStartIdx[nIdx] + m_nKeyWordNumArr[nIdx] - 1;
00445 //  if( pr < 0 ) return -1;
00446     if( nKeyWordLen > m_nKeyWordMaxLenArr[nIdx] ) return -1;
00447     pc = (pr + 1 - pl) / 2 + pl;
00448     wcase = m_nKEYWORDCASEArr[nIdx];
00449     while(pl <= pr) {
00450         if( wcase ) {
00451             ret = strncmp( pszKeyWord, m_szKeyWordArr[pc], nKeyWordLen );
00452         } else {
00453             ret = strnicmp( pszKeyWord, m_szKeyWordArr[pc], nKeyWordLen );
00454         }
00455         if( ret == 0 ) {
00456             if( (int)strlen( m_szKeyWordArr[pc] ) > nKeyWordLen ) {
00457                 ret = -1;
00458             } else {
00459                 return pc - m_nStartIdx[nIdx];
00460             }
00461         }
00462
00463         if( ret < 0 ) {
00464             pr = pc - 1;
00465         } else {
00466             pl = pc + 1;
00467         }
00468
00469         pc = (pr + 1 - pl) / 2 + pl;
00470     }
00471     return -1;
00472 }
00473 //MIK END
00474 //MIK START 2000.12.01 START
00475 void CKeyWordSetMgr::SetKeyWordCase( int nIdx, int nCase )
00476 {
00477     //大文字小文字判断は１ビットあれば実現できる。
00478     //今はint型(sizeof(int) * セット数 = 4 * 100 = 400)だが,
00479     //char型(sizeof(char) * セット数 = 1 * 100 = 100)で十分だし
00480     //ビット操作してもいい。
00481     if(nCase) {
00482         m_nKEYWORDCASEArr[nIdx] = TRUE;
00483     } else {
00484         m_nKEYWORDCASEArr[nIdx] = FALSE;
00485     }
00486
00487     m_IsSorted[nIdx] = 0;
00488     return;
00489 }
00490
00491 int CKeyWordSetMgr::GetKeyWordCase( int nIdx )
00492 {
00493     return  m_nKEYWORDCASEArr[nIdx];
00494 }
00495 //MIK END
00496
00497
00498 // From Here 2004.07.29 Moca 可変長記憶
00510 int CKeyWordSetMgr::SetKeyWordArr( int nIdx, int nSize, const char* pszKeyWordArr )
00511 {
00512     if( !KeyWordReAlloc( nIdx, nSize ) ){
00513         return 0;
00514     }
00515     int cnt, i;
00516     const char* ptr = pszKeyWordArr;
00517     for( cnt = 0, i = m_nStartIdx[nIdx];
00518         i < m_nStartIdx[nIdx] + nSize && *ptr != '\0'; cnt++, i++ ){
00519         //  May 25, 2003 キーワードの区切りとして\0以外にTABを受け付けるようにする
00520         const char* pTop = ptr; // キーワードの先頭位置を保存
00521         while( *ptr != '\t' && *ptr != '\0' )
00522             ++ptr;
00523         int kwlen = ptr - pTop;
00524         memcpy( m_szKeyWordArr[i], pTop, kwlen );
00525         m_szKeyWordArr[i][kwlen] = '\0';
00526         ++ptr;
00527     }
00528     m_nKeyWordNumArr[nIdx] = cnt;
00529     return nSize;
00530 }
00531
00541 int CKeyWordSetMgr::SetKeyWordArr( int nIdx, int nSize, const char * const *ppszKeyWordArr )
00542 {
00543     if( !KeyWordReAlloc( nIdx, nSize ) ){
00544         return 0;
00545     }
00546     int cnt, i;
00547     for( cnt = 0, i = m_nStartIdx[nIdx]; i < m_nStartIdx[nIdx] + nSize; cnt++, i++ ){
00548         strcpy( m_szKeyWordArr[i], ppszKeyWordArr[cnt] );
00549     }
00550     m_nKeyWordNumArr[nIdx] = nSize;
00551     return nSize;
00552 }
00553
00562 int CKeyWordSetMgr::CleanKeyWords( int nIdx )
00563 {
00564     // 先にソートしておかないと、後で順番が変わると都合が悪い
00565     if( m_IsSorted[nIdx] == 0 ) SortKeyWord( nIdx );
00566
00567     int nDelCount = 0;
00568     int i = 0;
00569     while( i < GetKeyWordNum( nIdx ) - 1 ){
00570         const char* p = GetKeyWord( nIdx, i );
00571         bool bDelKey = false;
00572         // 表示できないキーワードか
00573         int k;
00574         for( k = 0;p[k] != '\0'; k++ ){
00575             if( IS_KEYWORD_CHAR( p[k] ) ){
00576             }else{
00577                 bDelKey = true;
00578                 break;
00579             }
00580         }
00581         if( !bDelKey ){
00582             // 重複するキーワードか
00583             const char* r = GetKeyWord( nIdx, i + 1 );
00584             unsigned int nKeyWordLen = strlen( p );
00585             if( nKeyWordLen == strlen( r ) ){
00586                 if( m_nKEYWORDCASEArr[nIdx] ){
00587                     if( 0 == memcmp( p, r, nKeyWordLen ) ){
00588                         bDelKey = true;
00589                     }
00590                 }else{
00591                     if( 0 == memicmp( p, r, nKeyWordLen ) ){
00592                         bDelKey = true;
00593                     }
00594                 }
00595             }
00596         }
00597         if( bDelKey ){
00598             DelKeyWord( nIdx, i );
00599             nDelCount++;
00600             //後ろがずれるので、iを増やさない
00601         }else{
00602             i++;
00603         }
00604     }
00605     return nDelCount;
00606 }
00607
00616 bool CKeyWordSetMgr::CanAddKeyWord( int nIdx )
00617 {
00618     //  割り当て済みの領域の空きをまず調べる
00619     int nSizeOld = GetAllocSize( nIdx );
00620     if( m_nKeyWordNumArr[nIdx] < nSizeOld ){
00621         return true;
00622     }
00623
00624     //  割り当て済み領域がいっぱいならば，割り当て可能領域の有無を確認
00625     //  一応割り当て最小単位分残っていることを確認．
00626     if( GetFreeSize() >= nKeyWordSetBlockSize ){
00627         return true;
00628     }
00629
00630     //  それでもだめか
00631     return false;
00632 }
00633
00634 #if 0
00635
00638 bool CKeyWordSetMgr::KeyWordAlloc( int nSize )
00639 {
00640     // assert( m_nKeyWordSetNum < MAX_SETNUM );
00641     // assert( 0 <= nSize );
00642
00643     // ブロックのサイズで整列
00644     int nAllocSize = GetAlignmentSize( nSize );
00645
00646     if( GetFreeSize() < nAllocSize ){
00647         // メモリ不足
00648         return false;
00649     }
00650     m_nStartIdx[m_nKeyWordSetNum + 1] = m_nStartIdx[m_nKeyWordSetNum] + nAllocSize;
00651     int i;
00652     for( i = m_nKeyWordSetNum + 1; i < MAX_SETNUM; i++ ){
00653         m_nStartIdx[i + 1] = m_nStartIdx[i];
00654     }
00655     return true;
00656 }
00657 #endif
00658
00664 bool CKeyWordSetMgr::KeyWordReAlloc( int nIdx, int nSize )
00665 {
00666     // assert( 0 <= nIdx && nIdx < m_nKeyWordSetNum );
00667
00668     // ブロックのサイズで整列
00669     int nAllocSize = GetAlignmentSize( nSize );
00670     int nSizeOld = GetAllocSize( nIdx );
00671
00672     if( nSize < 0 ){
00673         return false;
00674     }
00675     if( nAllocSize == nSizeOld ){
00676         // サイズ変更なし
00677         return true;
00678     }
00679
00680     int nDiffSize = nAllocSize - nSizeOld;
00681     if( GetFreeSize() < nDiffSize ){
00682         // メモリ不足
00683         return false;
00684     }
00685     // 後ろのキーワードセットのキーワードをすべて移動する
00686     int i;
00687     if( nIdx + 1 < m_nKeyWordSetNum ){
00688         int nKeyWordIdx = m_nStartIdx[nIdx + 1];
00689         int nKeyWordNum = m_nStartIdx[m_nKeyWordSetNum] - m_nStartIdx[nIdx + 1];
00690         memmove( m_szKeyWordArr[nKeyWordIdx + nDiffSize],
00691             m_szKeyWordArr[nKeyWordIdx],
00692             nKeyWordNum * sizeof( m_szKeyWordArr[0] ) );
00693     }
00694     for( i = nIdx + 1; i <= m_nKeyWordSetNum; i++ ){
00695         m_nStartIdx[ i ] += nDiffSize;
00696     }
00697     return true;
00698 }
00699
00705 int CKeyWordSetMgr::GetAllocSize( int nIdx ) const
00706 {
00707     return m_nStartIdx[nIdx + 1] - m_nStartIdx[nIdx];
00708 }
00709
00716 int CKeyWordSetMgr::GetFreeSize( void ) const
00717 {
00718     return MAX_KEYWORDNUM - m_nStartIdx[m_nKeyWordSetNum];
00719 }
00720 // To Here 2004.07.29 Moca
00721
00722
00723 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyWordSetMgr.h

CKeyWordSetMgr.h

強調キーワード管理 [詳細]

#include <windows.h>
#include "global.h"

CKeyWordSetMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CKeyWordSetMgr
強調キーワード管理 [詳細]

マクロ定義

#define | MAX_SETNUM 25
#define | MAX_SETNAMELEN 32
#define | MAX_KEYWORDNUM 15000
キーワード総数 (2005.01.27 1セットあたりの数→セット全体の総数へ意味変更)
#define | MAX_KEYWORDLEN 63

説明

強調キーワード管理

作者:
Norio Nakatani
日付:
2000.12.01 MIK binary search

2005.01.26 Moca キーワード数可変化

CKeyWordSetMgr.h で定義されています。

マクロ定義

#define MAX_KEYWORDLEN 63

CKeyWordSetMgr.h の 51 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7()・CPropCommon::DispKeywordCount()・CPropCommon::p7_Edit_List_KeyWord()・CShareData::ShareData_IO_KeyWords().

#define MAX_KEYWORDNUM 15000

キーワード総数 (2005.01.27 1セットあたりの数→セット全体の総数へ意味変更)

CKeyWordSetMgr.h の 50 行で定義されています。

参照元 CKeyWordSetMgr::GetFreeSize()・CShareData::ShareData_IO_KeyWords().

#define MAX_SETNAMELEN 32

CKeyWordSetMgr.h の 46 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7()・CKeyWordSetMgr::SetTypeName().

#define MAX_SETNUM 25

CKeyWordSetMgr.h の 45 行で定義されています。

参照元 CKeyWordSetMgr::AddKeyWordSet()・CKeyWordSetMgr::CKeyWordSetMgr()・CPropCommon::DispatchEvent_p7()・CKeyWordSetMgr::ResetAllKeyWordSet().

Sakura-Editorに対してSat Oct 27 02:18:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CKeyWordSetMgr.h ソースファイル

CKeyWordSetMgr.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2000, MIK
00012     Copyright (C) 2001, jepro
00013     Copyright (C) 2004, Moca
00014     Copyright (C) 2005, Moca
00015
00016     This software is provided 'as-is', without any express or implied
00017     warranty. In no event will the authors be held liable for any damages
00018     arising from the use of this software.
00019
00020     Permission is granted to anyone to use this software for any purpose,
00021     including commercial applications, and to alter it and redistribute it
00022     freely, subject to the following restrictions:
00023
00024         1. The origin of this software must not be misrepresented;
00025            you must not claim that you wrote the original software.
00026            If you use this software in a product, an acknowledgment
00027            in the product documentation would be appreciated but is
00028            not required.
00029
00030         2. Altered source versions must be plainly marked as such,
00031            and must not be misrepresented as being the original software.
00032
00033         3. This notice may not be removed or altered from any source
00034            distribution.
00035 */
00036
00037 class CKeyWordSetMgr;
00038
00039 #ifndef _CKEYWORDSETMGR_H_
00040 #define _CKEYWORDSETMGR_H_
00041
00042 #include <windows.h>
00043 #include "global.h"// 2002/2/10 aroka
00044
00045 #define     MAX_SETNUM      25  //Jul. 12, 2001 jepro notes: 強調キーワードのセット数の最大値
00046 #define     MAX_SETNAMELEN  32
00047
00048
00050 #define     MAX_KEYWORDNUM  15000
00051 #define     MAX_KEYWORDLEN  63
00052
00071 class SAKURA_CORE_API CKeyWordSetMgr
00072 {
00073 public:
00074     /*
00075     ||  Constructors
00076     */
00077     CKeyWordSetMgr();
00078     ~CKeyWordSetMgr();
00079
00081
00082     BOOL AddKeyWordSet( const char*, BOOL, int nSize = -1 );
00083     BOOL DelKeyWordSet( int  ); /* ｎ番目のセットを削除 */
00084     const char* GetTypeName( int ); /* ｎ番目のセット名を返す */
00085     const char* SetTypeName( int, const char* );
00086     void SetKeyWordCase( int, int );                /* ｎ番目のセットの大文字小文字判断をセットする */  //MIK
00087     int GetKeyWordCase( int );                      /* ｎ番目のセットの大文字小文字判断を取得する */            //MIK
00088     void SortKeyWord( int ); /* ｎ番目のセットのキーワードをソートする */  //MIK
00089
00090     // From Here 2004.07.29 Moca 追加 可変長記憶
00091     int SetKeyWordArr( int, int, const char* );
00092     int SetKeyWordArr( int, int, const char* const* );
00093     // To Here 2004.07.29 Moca
00095
00097
00098     int GetKeyWordNum( int );   /* ｎ番目のセットのキーワードの数を返す */
00099     const char* GetKeyWord( int , int );    /* ｎ番目のセットのｍ番目のキーワードを返す */
00100     const char* UpdateKeyWord( int , int , const char* );   /* ｎ番目のセットのｍ番目のキーワードを編集 */
00101     int AddKeyWord( int, const char* ); /* ｎ番目のセットにキーワードを追加 */
00102     int DelKeyWord( int , int );            /* ｎ番目のセットのｍ番目のキーワードを削除 */
00103     bool CanAddKeyWord( int );
00104
00105
00107
00108     //int SearchKeyWord( int , const char*, int );  /* ｎ番目のセットから指定キーワードをサーチ 無いときは-1を返す */
00109     BOOL IsModify( CKeyWordSetMgr&, BOOL* pnModifyFlagArr );    /* 変更状況を調査 */
00110     int SearchKeyWord2( int , const char*, int );   /* ｎ番目のセットから指定キーワードをバイナリサーチ 無いときは-1を返す */   //MIK
00112
00113     // From Here 2004.07.29 Moca 追加 可変長記憶
00114     int CleanKeyWords( int );
00115     int GetAllocSize( int ) const;
00116     int GetFreeSize() const;
00117     void ResetAllKeyWordSet( void ); // 全キーワードセットの削除と初期化
00118     // To Here 2004.07.29 Moca
00119
00120     /*
00121     || 演算子
00122     */
00123     const CKeyWordSetMgr& operator=( CKeyWordSetMgr& );
00124     /*
00125     ||  Attributes & Operations
00126     */
00133     int     m_nCurrentKeyWordSetIdx;
00134     int     m_nKeyWordSetNum;
00135     char    m_szSetNameArr[MAX_SETNUM][MAX_SETNAMELEN + 1];
00136     int     m_nKEYWORDCASEArr[MAX_SETNUM];
00137     int     m_nKeyWordNumArr[MAX_SETNUM];
00139     char    m_szKeyWordArr[MAX_KEYWORDNUM][MAX_KEYWORDLEN + 1];
00140     char    m_IsSorted[MAX_SETNUM];   //MIK
00141
00142 protected:
00143     // 2004.07.29 Moca 可変長記憶
00148     int     m_nStartIdx[MAX_SETNUM + 1];
00149     int     m_nKeyWordMaxLenArr[MAX_SETNUM];
00150
00151 protected:
00152     /*
00153     ||  実装ヘルパ関数
00154     */
00155     //bool KeyWordAlloc( int );
00156     bool KeyWordReAlloc( int, int );
00157 };
00158
00159
00160
00162 #endif /* _CKEYWORDSETMGR_H_ */
00163
00164
00165 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayout.cpp

CLayout.cpp

テキストのレイアウト情報 [詳細]

#include "stdafx.h"
#include "CLayout.h"
#include "debug.h"

CLayout.cppのインクルード依存関係図

ソースコードを見る。

説明

テキストのレイアウト情報

作者:
Norio Nakatani
日付:
1998/3/11 新規作成

CLayout.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayout.cpp ソースファイル

CLayout.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, YAZAKI
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 #include "stdafx.h"
00015 #include "CLayout.h"
00016 #include "debug.h"
00017
00018
00019
00020 CLayout::CLayout()
00021 {
00022     m_pPrev = NULL;
00023     m_pNext = NULL;
00024     m_nLinePhysical = 0;    /* 対応する論理行番号 */
00025     m_pCDocLine = NULL;
00026     m_nOffset = 0;  /* 対応する論理行の先頭からのオフセット */
00027     m_nLength = 0;  /* 対応する論理行のハイト数 */
00028     m_nIndent = 0;  /* このレイアウト行のインデント数 @@@ 2002.09.23 YAZAKI */
00029     m_nTypePrev = 0;/* タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列 */
00030     return;
00031 }
00032
00033
00034 CLayout::~CLayout()
00035 {
00036     return;
00037 }
00038
00039 void CLayout::DUMP( void )
00040 {
00041 #ifdef _DEBUG
00042     MYTRACE( "\n\n■CLayout::DUMP()======================\n" );
00043     MYTRACE( "m_nLinePhysical=%d\t\t対応する論理行番号\n", m_nLinePhysical );
00044     MYTRACE( "m_nOffset=%d\t\t対応する論理行の先頭からのオフセット\n", m_nOffset );
00045     MYTRACE( "m_nLength=%d\t\t対応する論理行のハイト数\n", m_nLength );
00046     MYTRACE( "m_nTypePrev=%d\t\tタイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列 \n", m_nTypePrev );
00047     MYTRACE( "======================\n" );
00048 #endif
00049     return;
00050 }
00051
00052
00053 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayout.h

CLayout.h

テキストのレイアウト情報 [詳細]

#include "CEol.h"
#include "CDocLine.h"
#include "CMemory.h"

CLayout.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CLayout

説明

テキストのレイアウト情報

作者:
Norio Nakatani
日付:
1998/3/11 新規作成

CLayout.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayout.h ソースファイル

CLayout.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, YAZAKI, aroka
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 class CLayout;
00016
00017 #ifndef _CLAYOUT_H_
00018 #define _CLAYOUT_H_
00019
00020
00021
00022 #include "CEol.h"// 2002/2/10 aroka
00023 #include "CDocLine.h"// 2002/4/21 YAZAKI
00024 #include "CMemory.h"// 2002/4/21 YAZAKI
00025 /*-----------------------------------------------------------------------
00026 クラスの宣言
00027 -----------------------------------------------------------------------*/
00028 class CLayout
00029 {
00030 public:
00031     /*
00032     ||  Constructors
00033     */
00034     CLayout();
00035     ~CLayout();
00036     void DUMP( void );
00037
00038     /* m_nOffsetで補正したあとの文字列を得る */
00039     char*   GetPtr( void ) const {  return m_pCDocLine->m_pLine->GetPtr() + m_nOffset;  };
00040     int     GetLengthWithEOL( void ) const {    return m_nLength;   };  //  ただしEOLは常に1文字とカウント？？
00041     int     GetLengthWithoutEOL( void ) const { return m_nLength - (m_cEol.GetLen() ? 1 : 0);   };
00042     int     GetLength( void ) const {   return m_nLength;   };  //  CMemoryIterator用（EOL含む）
00043     int     GetIndent( void ) const {   return m_nIndent;   };  //  CMemoryIterator用
00044
00045 public:
00046     CLayout*        m_pPrev;
00047     CLayout*        m_pNext;
00048     int             m_nLinePhysical;
00049     const CDocLine* m_pCDocLine;
00050     int             m_nOffset;
00051     int             m_nLength;
00052     int             m_nIndent;
00053     int             m_nTypePrev;
00054     CEOL            m_cEol;
00055 };
00056
00057
00059 #endif /* _CLAYOUT_H_ */
00060
00061
00062 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr.cpp

CLayoutMgr.cpp

テキストのレイアウト情報管理 [詳細]

#include "stdafx.h"
#include "CLayoutMgr.h"
#include "CShareData.h"
#include "charcode.h"
#include "debug.h"
#include <commctrl.h>
#include "CRunningTimer.h"
#include "CLayout.h"
#include "CDocLine.h"
#include "CDocLineMgr.h"
#include "CMemory.h"
#include "etc_uty.h"
#include "CMemoryIterator.h"

CLayoutMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

テキストのレイアウト情報管理

作者:
Norio Nakatani

CLayoutMgr.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr.cpp ソースファイル

CLayoutMgr.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, MIK, YAZAKI, genta, aroka
00009     Copyright (C) 2003, genta, Moca
00010     Copyright (C) 2004, genta, Moca
00011     Copyright (C) 2005, D.S.Koba, Moca
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016 #include "stdafx.h"
00017 #include "CLayoutMgr.h"
00018 #include "CShareData.h" // 2005.11.20 Moca
00019
00020 #include "charcode.h"
00021 #include "debug.h"
00022 #include <commctrl.h>
00023 #include "CRunningTimer.h"
00024 #include "CLayout.h"
00025 #include "CDocLine.h"
00026 #include "CDocLineMgr.h"
00027 #include "CMemory.h"
00028 #include "etc_uty.h" // Oct. 5, 2002 genta
00029 #include "CMemoryIterator.h" // 2006.07.29 genta
00030
00031
00032
00033
00034
00035 /*
00036 || コンストラクタ
00037 */
00038 CLayoutMgr::CLayoutMgr()
00039 : m_cLineComment(), m_cBlockComment(),
00040     //  2004.04.03 Moca
00041     //  画面折り返し幅がTAB幅以下にならないことを初期値でも保証する
00042     m_nMaxLineSize( 10 ),
00043     //  Nov. 16, 2002 メンバー関数ポインタにはクラス名が必要
00044     getIndentOffset( &CLayoutMgr::getIndentOffset_Normal )  //  Oct. 1, 2002 genta
00045 {
00046     m_pcDocLineMgr = NULL;
00047     m_bWordWrap = TRUE;     /* 英文ワードラップをする */
00048     m_nTabSpace = 8;        /* TAB文字スペース */
00049     m_nStringType = 0;      /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00050     m_bKinsokuHead = FALSE;     /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00051     m_bKinsokuTail = FALSE;     /* 行末禁則 */  //@@@ 2002.04.08 MIK
00052     m_bKinsokuRet  = FALSE;     /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
00053     m_bKinsokuKuto = FALSE;     /* 句読点をぶら下げる */    //@@@ 2002.04.17 MIK
00054     m_pszKinsokuHead_1 = NULL;  /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00055     m_pszKinsokuHead_2 = NULL;  /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00056     m_pszKinsokuTail_1 = NULL;  /* 行末禁則 */  //@@@ 2002.04.08 MIK
00057     m_pszKinsokuTail_2 = NULL;  /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00058     m_pszKinsokuKuto_1 = NULL;  /* 句読点ぶらさげ */    //@@@ 2002.04.17 MIK
00059     m_pszKinsokuKuto_2 = NULL;  /* 句読点ぶらさげ */    //@@@ 2002.04.17 MIK
00060     // 2005.11.21 Moca 色分けフラグをメンバで持つ
00061     m_bDispComment = FALSE;
00062     m_bDispSString = FALSE;
00063     m_bDispWString = FALSE;
00064
00065     Init();
00066     return;
00067 }
00068
00069
00070 /*
00071 || デストラクタ
00072 */
00073 CLayoutMgr::~CLayoutMgr()
00074 {
00075     Empty();
00076
00077     if( NULL != m_pszKinsokuHead_1 ){   /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00078         delete [] m_pszKinsokuHead_1;
00079         m_pszKinsokuHead_1 = NULL;
00080     }
00081     if( NULL != m_pszKinsokuHead_2 ){   /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00082         delete [] m_pszKinsokuHead_2;
00083         m_pszKinsokuHead_2 = NULL;
00084     }
00085     if( NULL != m_pszKinsokuTail_1 ){   /* 行末禁則 */  //@@@ 2002.04.08 MIK
00086         delete [] m_pszKinsokuTail_1;
00087         m_pszKinsokuTail_1 = NULL;
00088     }
00089     if( NULL != m_pszKinsokuTail_2 ){   /* 行末禁則 */  //@@@ 2002.04.08 MIK
00090         delete [] m_pszKinsokuTail_2;
00091         m_pszKinsokuTail_2 = NULL;
00092     }
00093     if( NULL != m_pszKinsokuKuto_1 ){   /* 句読点ぶらさげ */    //@@@ 2002.04.17 MIK
00094         delete [] m_pszKinsokuKuto_1;
00095         m_pszKinsokuKuto_1 = NULL;
00096     }
00097     if( NULL != m_pszKinsokuKuto_2 ){   /* 句読点ぶらさげ */    //@@@ 2002.04.17 MIK
00098         delete [] m_pszKinsokuKuto_2;
00099         m_pszKinsokuKuto_2 = NULL;
00100     }
00101
00102     return;
00103 }
00104
00105
00106 /*
00107 || レイアウト情報の変更
00108 */
00109 void CLayoutMgr::SetLayoutInfo(
00110     int     bDoRayout,
00111     HWND    hwndProgress,
00112     Types&  refType         /* タイプ別設定 */
00113 )
00114 {
00115     MY_RUNNINGTIMER( cRunningTimer, "CLayoutMgr::SetLayoutInfo" );
00116
00117     m_nMaxLineSize = refType.m_nMaxLineSize;
00118     m_bWordWrap     = refType.m_bWordWrap;      /* 英文ワードラップをする */
00119     m_nTabSpace     = refType.m_nTabSpace;
00120     m_nStringType   = refType.m_nStringType;        /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00121
00122     m_cLineComment = refType.m_cLineComment;    /* 行コメントデリミタ */    //@@@ 2002.09.22 YAZAKI
00123     m_cBlockComment = refType.m_cBlockComment;  /* ブロックコメントデリミタ */  //@@@ 2002.09.22 YAZAKI
00124
00125     // 2005.11.21 Moca 色分けフラグをメンバで持つ
00126     m_bDispComment = refType.m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp;
00127     m_bDispSString = refType.m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp;
00128     m_bDispWString = refType.m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp;
00129
00130     //  Oct. 1, 2002 genta タイプによって処理関数を変更する
00131     //  数が増えてきたらテーブルにすべき
00132     switch ( refType.m_nIndentLayout ){ /* 折り返しは2行目以降を字下げ表示 */   //@@@ 2002.09.29 YAZAKI
00133         case 1:
00134             //  Nov. 16, 2002 メンバー関数ポインタにはクラス名が必要
00135             getIndentOffset = &CLayoutMgr::getIndentOffset_Tx2x;
00136             break;
00137         case 2:
00138             getIndentOffset = &CLayoutMgr::getIndentOffset_LeftSpace;
00139             break;
00140         default:
00141             getIndentOffset = &CLayoutMgr::getIndentOffset_Normal;
00142             break;
00143     }
00144
00145     {   //@@@ 2002.04.08 MIK start
00146         unsigned char   *p, *q1, *q2, *k1, *k2;
00147         int length;
00148
00149         //句読点のぶらさげ
00150         m_bKinsokuKuto = refType.m_bKinsokuKuto;    /* 句読点ぶらさげ */    //@@@ 2002.04.17 MIK
00151         if( NULL != m_pszKinsokuKuto_1 )
00152         {
00153             delete [] m_pszKinsokuKuto_1;
00154             m_pszKinsokuKuto_1 = NULL;
00155         }
00156         if( NULL != m_pszKinsokuKuto_2 )
00157         {
00158             delete [] m_pszKinsokuKuto_2;
00159             m_pszKinsokuKuto_2 = NULL;
00160         }
00161         //length = strlen( pszKinsokuHead ) + 1;
00162         //  Kuto_2="。、，．", Kuto_1="｡､,."
00163         length = 16;    //これだけあれば十分
00164         m_pszKinsokuKuto_1 = new char[ length ];
00165         m_pszKinsokuKuto_2 = new char[ length ];
00166         k1 = (unsigned char *)m_pszKinsokuKuto_1;
00167         k2 = (unsigned char *)m_pszKinsokuKuto_2;
00168         memset( (void *)k1, 0, length );
00169         memset( (void *)k2, 0, length );
00170         //データ部は行頭禁則処理で設定する。
00171
00172         //行頭禁則文字の1,2バイト文字を分けて管理する。
00173         m_bKinsokuHead = refType.m_bKinsokuHead;
00174         if( NULL != m_pszKinsokuHead_1 )
00175         {
00176             delete [] m_pszKinsokuHead_1;
00177             m_pszKinsokuHead_1 = NULL;
00178         }
00179         if( NULL != m_pszKinsokuHead_2 )
00180         {
00181             delete [] m_pszKinsokuHead_2;
00182             m_pszKinsokuHead_2 = NULL;
00183         }
00184         length = strlen( refType.m_szKinsokuHead ) + 1;
00185         m_pszKinsokuHead_1 = new char[ length ];
00186         m_pszKinsokuHead_2 = new char[ length ];
00187         q1 = (unsigned char *)m_pszKinsokuHead_1;
00188         q2 = (unsigned char *)m_pszKinsokuHead_2;
00189         memset( (void *)q1, 0, length );
00190         memset( (void *)q2, 0, length );
00191         for( p = (unsigned char *)refType.m_szKinsokuHead; *p; p++ )
00192         {
00193             if( _IS_SJIS_1( *p ) )
00194             {
00195                 if( IsKutoTen( *p, *(p+1) ) )   //句読点は別管理
00196                 {
00197                     unsigned char   *r;
00198                     // 2004.11.12 Moca 重複していたら登録しない
00199                     for( r = (unsigned char *)m_pszKinsokuKuto_2; r < k2; r+=2 ){
00200                         if( *r == *p && *(r + 1) == *(p + 1) ){
00201                             break;
00202                         }
00203                     }
00204                     if( r == k2 ){
00205                         *k2 = *p; k2++; p++;
00206                         *k2 = *p; k2++;
00207                         *k2 = 0;
00208                     }
00209                 }
00210                 else
00211                 {
00212                     *q2 = *p; q2++; p++;
00213                     *q2 = *p; q2++;
00214                     *q2 = 0;
00215                 }
00216             }
00217             else
00218             {
00219                 if( IsKutoTen( *p, 0 ) )    //句読点は別管理
00220                 {
00221                     // Dec.23, 2004 genta チェックすべき点が誤っていたので移動
00222                     unsigned char   *r;
00223                     // 2004.11.12 Moca 重複していたら登録しない
00224                     for( r = (unsigned char *)m_pszKinsokuKuto_1; r < k1; r++ ){
00225                         if( *r == *p ){
00226                             break;
00227                         }
00228                     }
00229                     if( r == k1 ){
00230                         *k1 = *p; k1++;
00231                         *k1 = 0;
00232                     }
00233                 }
00234                 else
00235                 {
00236                     *q1 = *p; q1++;
00237                     *q1 = 0;
00238                 }
00239             }
00240         }
00241
00242         //行末禁則文字の1,2バイト文字を分けて管理する。
00243         m_bKinsokuTail = refType.m_bKinsokuTail;
00244         if( NULL != m_pszKinsokuTail_1 )
00245         {
00246             delete [] m_pszKinsokuTail_1;
00247             m_pszKinsokuTail_1 = NULL;
00248         }
00249         if( NULL != m_pszKinsokuTail_2 )
00250         {
00251             delete [] m_pszKinsokuTail_2;
00252             m_pszKinsokuTail_2 = NULL;
00253         }
00254         length = strlen( refType.m_szKinsokuTail ) + 1;
00255         m_pszKinsokuTail_1 = new char[ length ];
00256         m_pszKinsokuTail_2 = new char[ length ];
00257         q1 = (unsigned char *)m_pszKinsokuTail_1;
00258         q2 = (unsigned char *)m_pszKinsokuTail_2;
00259         memset( (void *)q1, 0, length );
00260         memset( (void *)q2, 0, length );
00261         for( p = (unsigned char *)refType.m_szKinsokuTail; *p; p++ )
00262         {
00263             if( _IS_SJIS_1( *p ) )
00264             {
00265                 *q2 = *p; q2++; p++;
00266                 *q2 = *p; q2++;
00267                 *q2 = 0;
00268             }
00269             else
00270             {
00271                 *q1 = *p; q1++;
00272                 *q1 = 0;
00273             }
00274         }
00275
00276         m_bKinsokuRet = refType.m_bKinsokuRet;  /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
00277
00278     }   //@@@ 2002.04.08 MIK end
00279
00280     if( bDoRayout ){
00281         DoLayout( hwndProgress );
00282     }
00283
00284     return;
00285 }
00286
00287
00288 /*
00289 ||
00290 || 行データ管理クラスのポインタを初期化します
00291 ||
00292 */
00293 void CLayoutMgr::Create( CEditDoc* pcEditDoc, CDocLineMgr* pcDocLineMgr )
00294 {
00295     Init();
00296     //  Jun. 20, 2003 genta EditDocへのポインタ追加
00297     m_pcEditDoc = pcEditDoc;
00298     m_pcDocLineMgr = pcDocLineMgr;
00299     return;
00300 }
00301
00302
00303
00304 void CLayoutMgr::Init()
00305 {
00306     m_pLayoutTop = NULL;
00307     m_pLayoutBot = NULL;
00308     m_nPrevReferLine = 0;
00309     m_pLayoutPrevRefer = NULL;
00310 //  m_pLayoutCurrent = NULL;
00311     m_nLines = 0;           /* 全物理行数 */
00312 //  m_pszLineComment = NULL;            /* 行コメントデリミタ */
00313 //  m_pszBlockCommentFrom = NULL;       /* ブロックコメントデリミタ(From) */
00314 //  m_pszBlockCommentTo = NULL;         /* ブロックコメントデリミタ(To) */
00315     // 2006.10.07 Moca EOFレイアウト位置記憶
00316     m_nEOFLine = -1;
00317     m_nEOFColumn = -1;
00318     return;
00319 }
00320
00321
00322
00323 void CLayoutMgr::Empty()
00324 {
00325     CLayout* pLayout;
00326     CLayout* pLayoutNext;
00327     pLayout = m_pLayoutTop;
00328     while( NULL != pLayout ){
00329         pLayoutNext = pLayout->m_pNext;
00330         delete pLayout;
00331         pLayout = pLayoutNext;
00332     }
00333     return;
00334 }
00335
00336
00343 CLayout* CLayoutMgr::Search( int nLineNum )
00344 {
00345 //#ifdef _DEBUG
00346 //  CRunningTimer cRunningTimer( (const char*)"CLayoutMgr::Search()" );
00347 //#endif
00348     CLayout*    pLayout;
00349     int         nCount;
00350     if( 0 == m_nLines ){
00351         return NULL;
00352     }
00353     //  Mar. 19, 2003 Moca nLineNumが負の場合のチェックを追加
00354     if( 0 > nLineNum || nLineNum >= m_nLines ){
00355 #ifdef _DEBUG
00356         if( 0 > nLineNum ){
00357             MYTRACE( "CLayoutMgr::Search() nLineNum = %d\n", nLineNum );
00358         }
00359 #endif
00360         return NULL;
00361     }
00362 //  /*+++++++ 低速版 +++++++++*/
00363 //  if( nLineNum < (m_nLines / 2) ){
00364 //      nCount = 0;
00365 //      pLayout = m_pLayoutTop;
00366 //      while( NULL != pLayout ){
00367 //          if( nLineNum == nCount ){
00368 //              m_pLayoutPrevRefer = pLayout;
00369 //              m_nPrevReferLine = nLineNum;
00370 //              return pLayout;
00371 //          }
00372 //          pLayout = pLayout->m_pNext;
00373 //          nCount++;
00374 //      }
00375 //  }else{
00376 //      nCount = m_nLines - 1;
00377 //      pLayout = m_pLayoutBot;
00378 //      while( NULL != pLayout ){
00379 //          if( nLineNum == nCount ){
00380 //              m_pLayoutPrevRefer = pLayout;
00381 //              m_nPrevReferLine = nLineNum;
00382 //              return pLayout;
00383 //          }
00384 //          pLayout = pLayout->m_pPrev;
00385 //          nCount--;
00386 //      }
00387 //  }
00388
00389
00390     /*+++++++わずかに高速版+++++++*/
00391     // 2004.03.28 Moca m_pLayoutPrevReferより、Top,Botのほうが近い場合は、そちらを利用する
00392     int nPrevToLineNumDiff = abs( m_nPrevReferLine - nLineNum );
00393     if( m_pLayoutPrevRefer == NULL
00394       || nLineNum < nPrevToLineNumDiff
00395       || m_nLines - nLineNum < nPrevToLineNumDiff
00396     ){
00397         if( nLineNum < (m_nLines / 2) ){
00398             nCount = 0;
00399             pLayout = m_pLayoutTop;
00400             while( NULL != pLayout ){
00401                 if( nLineNum == nCount ){
00402                     m_pLayoutPrevRefer = pLayout;
00403                     m_nPrevReferLine = nLineNum;
00404                     return pLayout;
00405                 }
00406                 pLayout = pLayout->m_pNext;
00407                 nCount++;
00408             }
00409         }else{
00410             nCount = m_nLines - 1;
00411             pLayout = m_pLayoutBot;
00412             while( NULL != pLayout ){
00413                 if( nLineNum == nCount ){
00414                     m_pLayoutPrevRefer = pLayout;
00415                     m_nPrevReferLine = nLineNum;
00416                     return pLayout;
00417                 }
00418                 pLayout = pLayout->m_pPrev;
00419                 nCount--;
00420             }
00421         }
00422     }else{
00423         if( nLineNum == m_nPrevReferLine ){
00424             return m_pLayoutPrevRefer;
00425         }else
00426         if( nLineNum > m_nPrevReferLine ){
00427             nCount = m_nPrevReferLine + 1;
00428             pLayout = m_pLayoutPrevRefer->m_pNext;
00429             while( NULL != pLayout ){
00430                 if( nLineNum == nCount ){
00431                     m_pLayoutPrevRefer = pLayout;
00432                     m_nPrevReferLine = nLineNum;
00433                     return pLayout;
00434                 }
00435                 pLayout = pLayout->m_pNext;
00436                 nCount++;
00437             }
00438         }else{
00439             nCount = m_nPrevReferLine - 1;
00440             pLayout = m_pLayoutPrevRefer->m_pPrev;
00441             while( NULL != pLayout ){
00442                 if( nLineNum == nCount ){
00443                     m_pLayoutPrevRefer = pLayout;
00444                     m_nPrevReferLine = nLineNum;
00445                     return pLayout;
00446                 }
00447                 pLayout = pLayout->m_pPrev;
00448                 nCount--;
00449             }
00450         }
00451     }
00452     return NULL;
00453 }
00454
00455
00456 //@@@ 2002.09.23 YAZAKI CLayout*を作成するところは分離して、InsertLineNext()と共通化
00457 void CLayoutMgr::AddLineBottom( CLayout* pLayout )
00458 {
00459     if( 0 == m_nLines ){
00460         m_pLayoutBot = m_pLayoutTop = pLayout;
00461         m_pLayoutTop->m_pPrev = NULL;
00462     }else{
00463         m_pLayoutBot->m_pNext = pLayout;
00464         pLayout->m_pPrev = m_pLayoutBot;
00465         m_pLayoutBot = pLayout;
00466     }
00467     pLayout->m_pNext = NULL;
00468     m_nLines++;
00469     return;
00470 }
00471
00472 //@@@ 2002.09.23 YAZAKI CLayout*を作成するところは分離して、AddLineBottom()と共通化
00473 CLayout* CLayoutMgr::InsertLineNext( CLayout* pLayoutPrev, CLayout* pLayout )
00474 {
00475     CLayout* pLayoutNext;
00476
00477     if( 0 == m_nLines ){
00478         /* 初 */
00479         m_pLayoutBot = m_pLayoutTop = pLayout;
00480         m_pLayoutTop->m_pPrev = NULL;
00481         m_pLayoutTop->m_pNext = NULL;
00482     }else
00483     if( NULL == pLayoutPrev ){
00484         /* 先頭に挿入 */
00485         m_pLayoutTop->m_pPrev = pLayout;
00486         pLayout->m_pPrev = NULL;
00487         pLayout->m_pNext = m_pLayoutTop;
00488         m_pLayoutTop = pLayout;
00489     }else
00490     if( NULL == pLayoutPrev->m_pNext ){
00491         /* 最後に挿入 */
00492         m_pLayoutBot->m_pNext = pLayout;
00493         pLayout->m_pPrev = m_pLayoutBot;
00494         pLayout->m_pNext = NULL;
00495         m_pLayoutBot = pLayout;
00496     }else{
00497         /* 途中に挿入 */
00498         pLayoutNext = pLayoutPrev->m_pNext;
00499         pLayoutPrev->m_pNext = pLayout;
00500         pLayoutNext->m_pPrev = pLayout;
00501         pLayout->m_pPrev = pLayoutPrev;
00502         pLayout->m_pNext = pLayoutNext;
00503     }
00504     m_nLines++;
00505     return pLayout;
00506 }
00507
00508 /* CLayoutを作成する
00509     @@@ 2002.09.23 YAZAKI
00510 */
00511 CLayout* CLayoutMgr::CreateLayout( CDocLine* pCDocLine, int nLine, int nOffset, int nLength, int nTypePrev, int nIndent )
00512 {
00513     CLayout* pLayout = new CLayout;
00514     pLayout->m_pCDocLine = pCDocLine;
00515
00516     pLayout->m_nLinePhysical = nLine;
00517     pLayout->m_nOffset = nOffset;
00518     pLayout->m_nLength = nLength;
00519     pLayout->m_nTypePrev = nTypePrev;
00520     pLayout->m_nIndent = nIndent;
00521
00522     if( EOL_NONE == pCDocLine->m_cEol ){
00523         pLayout->m_cEol.SetType( EOL_NONE );/* 改行コードの種類 */
00524     }else{
00525         if( pLayout->m_nOffset + pLayout->m_nLength >
00526             pCDocLine->m_pLine->GetLength() - pCDocLine->m_cEol.GetLen()
00527         ){
00528             pLayout->m_cEol = pCDocLine->m_cEol;/* 改行コードの種類 */
00529         }else{
00530             pLayout->m_cEol = EOL_NONE;/* 改行コードの種類 */
00531         }
00532     }
00533     return pLayout;
00534 }
00535
00536
00537 /*
00538 || 指定された物理行のデータへのポインタとその長さを返す Ver0
00539
00540     @date 2002/2/10 aroka CMemory変更
00541 */
00542 const char* CLayoutMgr::GetLineStr( int nLine, int* pnLineLen )
00543 {
00544     CLayout* pLayout;
00545     if( NULL == ( pLayout = Search( nLine ) ) ){
00546         return NULL;
00547     }
00548     *pnLineLen = pLayout->m_nLength;
00549     return pLayout->m_pCDocLine->m_pLine->GetPtr() + pLayout->m_nOffset;
00550 }
00551
00555 const char* CLayoutMgr::GetLineStr( int nLine, int* pnLineLen, const CLayout** ppcLayoutDes )
00556 {
00557 #if 0
00558     const CLayout* pLayout;
00559     const char* pData;
00560     int nDataLen;
00561     if( NULL == ( pLayout = Search( nLine ) ) ){
00562         *ppcLayoutDes = pLayout;
00563         return NULL;
00564     }
00565     pData = m_pcDocLineMgr->GetLineStr( pLayout->m_nLinePhysical, &nDataLen );
00566     *pnLineLen = pLayout->m_nLength;
00567     *ppcLayoutDes = pLayout;
00568     return pData + pLayout->m_nOffset;
00569 #endif
00570     if( NULL == ( (*ppcLayoutDes) = Search( nLine ) ) ){
00571         return NULL;
00572     }
00573     *pnLineLen = (*ppcLayoutDes)->m_nLength;
00574     return (*ppcLayoutDes)->m_pCDocLine->m_pLine->GetPtr() + (*ppcLayoutDes)->m_nOffset;
00575 }
00576
00577 /*
00578 || 指定された位置がレイアウト行の途中の行末かどうか調べる
00579
00580     @date 2002/4/27 MIK
00581 */
00582 bool CLayoutMgr::IsEndOfLine( int nLine, int nPos )
00583 {
00584     CLayout* pLayout;
00585
00586     if( NULL == ( pLayout = Search( nLine ) ) )
00587     {
00588         return false;
00589     }
00590
00591     if( EOL_NONE == pLayout->m_cEol.GetType() )
00592     {   /* この行に改行はない */
00593         /* この行の最後か？ */
00594         if( nPos == pLayout->m_nLength ) return true;
00595     }
00596
00597     return false;
00598 }
00599
00610 void CLayoutMgr::GetEndLayoutPos(int& lX, int& lY)
00611 {
00612     if( -1 != m_nEOFLine ){
00613         lX = m_nEOFColumn;
00614         lY = m_nEOFLine;
00615         return;
00616     }
00617
00618     if( 0 == m_nLines || m_pLayoutBot == NULL ){
00619         // データが空
00620         lX = 0; lY = 0;
00621         m_nEOFColumn = lX;
00622         m_nEOFLine = lY;
00623         return;
00624     }
00625
00626     CLayout *btm = m_pLayoutBot;
00627     if( btm->m_cEol != EOL_NONE ){
00628         //  末尾に改行がある
00629         lX = 0;
00630         lY = GetLineCount();
00631     }
00632     else {
00633         CMemoryIterator<CLayout> it( btm, GetTabSpace() );
00634         int nPosX = 0;
00635         while( !it.end() ){
00636             it.scanNext();
00637             it.addDelta();
00638         }
00639         lX = it.getColumn();
00640         lY = GetLineCount() - 1;
00641         // 2006.10.01 Moca Start [EOF]のみのレイアウト行処理が抜けていたバグを修正
00642         if( GetMaxLineSize() <= lX ){
00643             lX = 0;
00644             lY++;
00645         }
00646         // 2006.10.01 Moca End
00647     }
00648     m_nEOFColumn = lX;
00649     m_nEOFLine = lY;
00650 }
00651
00652
00657 void CLayoutMgr::DeleteData_CLayoutMgr(
00658         int         nLineNum,
00659         int         nDelPos,
00660         int         nDelLen,
00661         int         *pnModifyLayoutLinesOld,
00662         int         *pnModifyLayoutLinesNew,
00663         int         *pnDeleteLayoutLines,
00664         CMemory&    cmemDeleted         /* 削除されたデータ */
00665 //      BOOL        bUndo           /* Undo操作かどうか */
00666 )
00667 {
00668 #ifdef _DEBUG
00669     CRunningTimer cRunningTimer( (const char*)"CLayoutMgr::DeleteData_CLayoutMgr" );
00670 #endif
00671     const char* pLine;
00672     int         nLineLen;
00673     CLayout*    pLayout;
00674     CLayout*    pLayoutPrev;
00675 //  CLayout*    pLayoutNext;
00676     CLayout*    pLayoutWork;
00677     int         nModLineOldFrom;    /* 影響のあった変更前の行(from) */
00678     int         nModLineOldTo;      /* 影響のあった変更前の行(to) */
00679     int         nDelLineOldFrom;    /* 削除された変更前論理行(from) */
00680     int         nDelLineOldNum;     /* 削除された行数 */
00681     int         nRowNum;
00682     int         nAllLinesOld;
00683     int         nDelStartLogicalLine;
00684     int         nDelStartLogicalPos;
00685     int         nCurrentLineType;
00686     int         nAddInsLineNum;
00687     int         nLineWork;
00688
00689     /* 現在行のデータを取得 */
00690     pLine = GetLineStr( nLineNum, &nLineLen );
00691     if( NULL == pLine ){
00692         return;
00693     }
00694     pLayout = m_pLayoutPrevRefer;
00695     nDelStartLogicalLine = pLayout->m_nLinePhysical;
00696     nDelStartLogicalPos  = nDelPos + pLayout->m_nOffset;
00697
00698 //  pLayoutWork = pLayout;
00699 //  do{
00700 //      pLayoutWork = pLayoutWork->m_pNext;
00701 //  }while( NULL != pLayoutWork && 0 != pLayoutWork->m_nOffset );
00702 //  pLayoutNext = pLayoutWork;
00703
00704
00705     pLayoutWork = pLayout;
00706     nLineWork = nLineNum;
00707     while( 0 != pLayoutWork->m_nOffset ){
00708         pLayoutWork = pLayoutWork->m_pPrev;
00709         --nLineWork;
00710     }
00711     nCurrentLineType = pLayoutWork->m_nTypePrev;
00712
00713     /* テキストのデータを削除 */
00714     m_pcDocLineMgr->DeleteData_CDocLineMgr(
00715         nDelStartLogicalLine, nDelStartLogicalPos,
00716         nDelLen, &nModLineOldFrom, &nModLineOldTo,
00717         &nDelLineOldFrom, &nDelLineOldNum, cmemDeleted
00718     );
00719
00720 //  DUMP();
00721
00722     /*--- 変更された行のレイアウト情報を再生成 ---*/
00723     /* 論理行の指定範囲に該当するレイアウト情報を削除して */
00724     /* 削除した範囲の直前のレイアウト情報のポインタを返す */
00725     nAllLinesOld = m_nLines;
00726     pLayoutPrev = DeleteLayoutAsLogical(
00727         pLayoutWork,
00728         nLineWork,
00729
00730         nModLineOldFrom, nModLineOldTo,
00731         nDelStartLogicalLine, nDelStartLogicalPos,
00732         pnModifyLayoutLinesOld
00733     );
00734
00735     /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00736     /* 論理行が削除された場合は０より小さい行数 */
00737     /* 論理行が挿入された場合は０より大きい行数 */
00738     ShiftLogicalLineNum( pLayoutPrev, -1 * nDelLineOldNum );
00739
00740     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00741     if( NULL == pLayoutPrev ){
00742         if( NULL == m_pLayoutTop ){
00743             nRowNum = m_pcDocLineMgr->GetLineCount();
00744         }else{
00745             nRowNum = m_pLayoutTop->m_nLinePhysical;
00746         }
00747     }else{
00748         if( NULL == pLayoutPrev->m_pNext ){
00749             nRowNum =
00750                 m_pcDocLineMgr->GetLineCount() -
00751                 pLayoutPrev->m_nLinePhysical - 1;
00752         }else{
00753             nRowNum =
00754                 pLayoutPrev->m_pNext->m_nLinePhysical -
00755                 pLayoutPrev->m_nLinePhysical - 1;
00756         }
00757     }
00758
00759     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00760     *pnModifyLayoutLinesNew = DoLayout_Range(
00761         pLayoutPrev,
00762         nRowNum,
00763         nDelStartLogicalLine, nDelStartLogicalPos,
00764         nCurrentLineType,
00765         &nAddInsLineNum
00766     );
00767
00768     *pnDeleteLayoutLines = nAllLinesOld - m_nLines + nAddInsLineNum;
00769     return;
00770 }
00771
00772
00773
00774
00775
00776
00781 void CLayoutMgr::InsertData_CLayoutMgr(
00782         int         nLineNum,
00783         int         nInsPos,
00784         const char* pInsData,
00785         int         nInsDataLen,
00786         int*        pnModifyLayoutLinesOld,
00787         int*        pnInsLineNum,       /* 挿入によって増えたレイアウト行の数 */
00788         int*        pnNewLine,          /* 挿入された部分の次の位置の行 */
00789         int*        pnNewPos            /* 挿入された部分の次の位置のデータ位置 */
00790 //      BOOL        bUndo           /* Undo操作かどうか */
00791 )
00792 {
00793     const char* pLine;
00794     int         nLineLen;
00795     CLayout*    pLayout;
00796     CLayout*    pLayoutPrev;
00797 //  CLayout*    pLayoutNext;
00798 //  CLayout*    pLayoutLast;
00799     CLayout*    pLayoutWork;
00800     int         nInsStartLogicalLine;
00801     int         nInsStartLogicalPos;
00802     int         nInsLineNum;
00803     int         nAllLinesOld;
00804     int         nRowNum;
00805     int         nNewLine;           /* 挿入された部分の次の位置の行 */
00806     int         nNewPos;            /* 挿入された部分の次の位置のデータ位置 */
00807     int         nCurrentLineType;
00808     int         nAddInsLineNum;
00809     int         nLineWork;
00810
00811 //  MYTRACE( "CLayoutMgr::InsertData()\n" );
00812
00813     /* 現在行のデータを取得 */
00814     pLine = GetLineStr( nLineNum, &nLineLen );
00815     if( NULL == pLine ){
00816         /*
00817             2004.04.02 FILE / Moca カーソル位置不正のため、空テキストで
00818             nLineNumが0でないときに落ちる対策．データが空であることを
00819             カーソル位置ではなく総行数で判定することでより確実に．
00820         */
00821         if( m_nLines == 0 )
00822         {
00823             /* 空のテキストの先頭に行を作る場合 */
00824             pLayout = NULL;
00825             nLineWork = 0;
00826             nInsStartLogicalLine = m_pcDocLineMgr->GetLineCount();
00827             nInsStartLogicalPos  = 0;
00828             nCurrentLineType = 0;
00829         }else{
00830             pLine = GetLineStr( m_nLines - 1, &nLineLen );
00831 //          pLayoutLast = m_pLayoutPrevRefer;
00832             if( ( nLineLen > 0 && ( pLine[nLineLen - 1] == CR || pLine[nLineLen - 1] == LF )) ||
00833                 ( nLineLen > 1 && ( pLine[nLineLen - 2] == CR || pLine[nLineLen - 2] == LF )) ){
00834                 /* 空でないテキストの最後に行を作る場合 */
00835                 pLayout = NULL;
00836                 nLineWork = 0;
00837                 nInsStartLogicalLine = m_pcDocLineMgr->GetLineCount();
00838                 nInsStartLogicalPos  = 0;
00839                 nCurrentLineType = m_nLineTypeBot;
00840             }else{
00841                 /* 空でないテキストの最後の行を変更する場合 */
00842                 nLineNum = m_nLines - 1;
00843                 nInsPos = nLineLen;
00844                 pLayout = m_pLayoutPrevRefer;
00845                 nLineWork = m_nPrevReferLine;
00846
00847
00848                 nInsStartLogicalLine = pLayout->m_nLinePhysical;
00849                 nInsStartLogicalPos  = nInsPos + pLayout->m_nOffset;
00850                 nCurrentLineType = pLayout->m_nTypePrev;
00851             }
00852         }
00853     }else{
00854         pLayout = m_pLayoutPrevRefer;
00855         nLineWork = m_nPrevReferLine;
00856
00857
00858         nInsStartLogicalLine = pLayout->m_nLinePhysical;
00859         nInsStartLogicalPos  = nInsPos + pLayout->m_nOffset;
00860         nCurrentLineType = pLayout->m_nTypePrev;
00861     }
00862
00863     if( NULL != pLayout ){
00864         pLayoutWork = pLayout;
00865         while( pLayoutWork != NULL && 0 != pLayoutWork->m_nOffset ){
00866             pLayoutWork = pLayoutWork->m_pPrev;
00867             nLineWork--;
00868         }
00869         if( NULL != pLayoutWork ){
00870             nCurrentLineType = pLayoutWork->m_nTypePrev;
00871         }else{
00872             nCurrentLineType = 0;
00873         }
00874     }
00875
00876
00877     /* データの挿入 */
00878     m_pcDocLineMgr->InsertData_CDocLineMgr(
00879         nInsStartLogicalLine,
00880         nInsStartLogicalPos,
00881         pInsData,
00882         nInsDataLen,
00883         &nInsLineNum,
00884         &nNewLine,
00885         &nNewPos
00886     );
00887 //  MYTRACE( "nNewLine=%d nNewPos=%d \n", nNewLine, nNewPos );
00888
00889
00890     /*--- 変更された行のレイアウト情報を再生成 ---*/
00891     /* 論理行の指定範囲に該当するレイアウト情報を削除して */
00892     /* 削除した範囲の直前のレイアウト情報のポインタを返す */
00893     nAllLinesOld = m_nLines;
00894     if( NULL != pLayout ){
00895         pLayoutPrev = DeleteLayoutAsLogical(
00896             pLayoutWork,
00897             nLineWork,
00898
00899             nInsStartLogicalLine, nInsStartLogicalLine,
00900             nInsStartLogicalLine, nInsStartLogicalPos,
00901             pnModifyLayoutLinesOld
00902         );
00903     }else{
00904         pLayoutPrev = m_pLayoutBot;
00905     }
00906
00907     /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00908     /* 論理行が削除された場合は０より小さい行数 */
00909     /* 論理行が挿入された場合は０より大きい行数 */
00910     if( NULL != pLine ){
00911         ShiftLogicalLineNum( pLayoutPrev, nInsLineNum );
00912     }
00913
00914     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00915     if( NULL == pLayoutPrev ){
00916         if( NULL == m_pLayoutTop ){
00917             nRowNum = m_pcDocLineMgr->GetLineCount();
00918         }else{
00919             nRowNum = m_pLayoutTop->m_nLinePhysical;
00920         }
00921     }else{
00922         if( NULL == pLayoutPrev->m_pNext ){
00923             nRowNum =
00924                 m_pcDocLineMgr->GetLineCount() -
00925                 pLayoutPrev->m_nLinePhysical - 1;
00926         }else{
00927             nRowNum =
00928                 pLayoutPrev->m_pNext->m_nLinePhysical -
00929                 pLayoutPrev->m_nLinePhysical - 1;
00930         }
00931     }
00932
00933     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00934     DoLayout_Range(
00935         pLayoutPrev,
00936         nRowNum,
00937         nInsStartLogicalLine, nInsStartLogicalPos,
00938         nCurrentLineType,
00939         &nAddInsLineNum
00940     );
00941
00942     *pnInsLineNum = m_nLines - nAllLinesOld + nAddInsLineNum;
00943
00944     /* 論理位置→レイアウト位置変換 */
00945     pLayout = Search( nNewLine );
00946     XYLogicalToLayout( pLayout, nNewLine, nNewLine, nNewPos, pnNewLine, pnNewPos );
00947     return;
00948 }
00949
00950
00951
00952
00953
00954
00955 /* 論理行の指定範囲に該当するレイアウト情報を削除して */
00956 /* 削除した範囲の直前のレイアウト情報のポインタを返す */
00957 CLayout* CLayoutMgr::DeleteLayoutAsLogical(
00958             CLayout* pLayoutInThisArea,
00959             int     nLineOf_pLayoutInThisArea,
00960
00961             int nLineFrom,
00962             int nLineTo,
00963             int nDelLogicalLineFrom,
00964             int nDelLogicalColFrom,
00965             int* pnDeleteLines
00966 )
00967 {
00968
00969
00970 //#ifdef _DEBUG
00971 //  CRunningTimer cRunningTimer( (const char*)"CLayoutMgr::DeleteLayoutAsLogical" );
00972 //#endif
00973     CLayout* pLayout;
00974     CLayout* pLayoutWork;
00975     CLayout* pLayoutNext;
00976
00977     *pnDeleteLines = 0;
00978     if( 0 == m_nLines){ /* 全物理行数 */
00979         return NULL;
00980     }
00981     if( NULL == pLayoutInThisArea ){
00982         return NULL;
00983     }
00984
00985     // 1999.11.22
00986     m_pLayoutPrevRefer = pLayoutInThisArea->m_pPrev;
00987     m_nPrevReferLine = nLineOf_pLayoutInThisArea - 1;
00988 //  m_pLayoutPrevRefer = NULL;
00989 //  m_nPrevReferLine = 0;
00990
00991
00992     /* 範囲内先頭に該当するレイアウト情報をサーチ */
00993     pLayoutWork = pLayoutInThisArea->m_pPrev;
00994     while( NULL != pLayoutWork && nLineFrom <= pLayoutWork->m_nLinePhysical){
00995         pLayoutWork = pLayoutWork->m_pPrev;
00996     }
00997 //          m_pLayoutPrevRefer = pLayout->m_pPrev;
00998 //          --m_nPrevReferLine;
00999
01000
01001
01002     if( NULL == pLayoutWork ){
01003         pLayout = m_pLayoutTop;
01004     }else{
01005         pLayout = pLayoutWork->m_pNext;
01006     }
01007     while( NULL != pLayout ){
01008         if( pLayout->m_nLinePhysical > nLineTo ){
01009             break;
01010         }
01011         pLayoutNext = pLayout->m_pNext;
01012         if( NULL == pLayoutWork ){
01013             /* 先頭行の処理 */
01014             m_pLayoutTop = pLayout->m_pNext;
01015             if( NULL != pLayout->m_pNext ){
01016                 pLayout->m_pNext->m_pPrev = NULL;
01017             }
01018         }else{
01019             pLayoutWork->m_pNext = pLayout->m_pNext;
01020             if( NULL != pLayout->m_pNext ){
01021                 pLayout->m_pNext->m_pPrev = pLayoutWork;
01022             }
01023         }
01024 //      if( m_pLayoutPrevRefer == pLayout ){
01025 //          // 1999.12.22 前にずらすだけでよいのでは
01026 //          m_pLayoutPrevRefer = pLayout->m_pPrev;
01027 //          --m_nPrevReferLine;
01028 //      }
01029
01030         if( ( nDelLogicalLineFrom == pLayout->m_nLinePhysical &&
01031               nDelLogicalColFrom < pLayout->m_nOffset + pLayout->m_nLength ) ||
01032             ( nDelLogicalLineFrom < pLayout->m_nLinePhysical )
01033         ){
01034             (*pnDeleteLines)++;;
01035         }
01036
01037 #ifdef _DEBUG
01038         if( m_pLayoutPrevRefer == pLayout ){
01039             MYTRACE( "バグバグ\n" );
01040         }
01041 #endif
01042         delete pLayout;
01043
01044         m_nLines--; /* 全物理行数 */
01045         if( NULL == pLayoutNext ){
01046             m_pLayoutBot = pLayoutWork;
01047         }
01048         pLayout = pLayoutNext;
01049     }
01050 //  MYTRACE( "(*pnDeleteLines)=%d\n", (*pnDeleteLines) );
01051
01052     return pLayoutWork;
01053 }
01054
01055
01056
01057
01058 /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
01059 /* 論理行が削除された場合は０より小さい行数 */
01060 /* 論理行が挿入された場合は０より大きい行数 */
01061 void CLayoutMgr::ShiftLogicalLineNum( CLayout* pLayoutPrev, int nShiftLines )
01062 {
01063     MY_RUNNINGTIMER( cRunningTimer, "CLayoutMgr::ShiftLogicalLineNum" );
01064
01065     CLayout* pLayout;
01066 //  CLayout* pLayoutNext;
01067     if( 0 == nShiftLines ){
01068         return;
01069     }
01070     if( NULL == pLayoutPrev ){
01071         pLayout = m_pLayoutTop;
01072     }else{
01073         pLayout = pLayoutPrev->m_pNext;
01074     }
01075     /* レイアウト情報全体を更新する(なな、なんと!!!) */
01076     while( NULL != pLayout ){
01077 //      pLayoutNext = pLayout->m_pNext;
01078         pLayout->m_nLinePhysical += nShiftLines;    /* 対応する論理行番号 */
01079 //      pLayout = pLayoutNext;
01080         pLayout = pLayout->m_pNext;
01081     }
01082     return;
01083 }
01084
01085 /* 現在位置の単語の範囲を調べる */
01086 int CLayoutMgr::WhereCurrentWord(
01087     int         nLineNum,
01088     int         nIdx,
01089     int*        pnLineFrom,
01090     int*        pnIdxFrom,
01091     int*        pnLineTo,
01092     int*        pnIdxTo,
01093     CMemory*    pcmcmWord,
01094     CMemory*    pcmcmWordLeft
01095 )
01096 {
01097     int nRetCode;
01098     CLayout* pLayout;
01099     pLayout = Search( nLineNum );
01100     if( NULL == pLayout ){
01101         return FALSE;
01102     }
01103     /* 現在位置の単語の範囲を調べる */
01104     nRetCode = m_pcDocLineMgr->WhereCurrentWord(
01105         pLayout->m_nLinePhysical,
01106         pLayout->m_nOffset + nIdx,
01107         pnIdxFrom,
01108         pnIdxTo,
01109         pcmcmWord,
01110         pcmcmWordLeft
01111     );
01112     if( nRetCode ){
01113         /* 論理位置→レイアウト位置変換 */
01114         XYLogicalToLayout( pLayout, nLineNum, pLayout->m_nLinePhysical, *pnIdxFrom, pnLineFrom, pnIdxFrom );
01115         XYLogicalToLayout( pLayout, nLineNum, pLayout->m_nLinePhysical, *pnIdxTo,   pnLineTo, pnIdxTo );
01116     }
01117     return nRetCode;
01118
01119 }
01120
01121
01122
01123
01124
01125 /* 現在位置の左右の単語の先頭位置を調べる */
01126 int CLayoutMgr::PrevOrNextWord(
01127         int     nLineNum,
01128         int     nIdx,
01129         int*    pnLineNew,
01130         int*    pnColmNew,
01131         BOOL    bLEFT,
01132         BOOL    bStopsBothEnds
01133 )
01134 {
01135     int         nRetCode;
01136     CLayout*    pLayout;
01137     pLayout = Search( nLineNum );
01138     if( NULL == pLayout ){
01139         return FALSE;
01140     }
01141     /* 現在位置の左右の単語の先頭位置を調べる */
01142     nRetCode = m_pcDocLineMgr->PrevOrNextWord(
01143         pLayout->m_nLinePhysical,
01144         pLayout->m_nOffset + nIdx,
01145         pnColmNew,
01146         bLEFT,
01147         bStopsBothEnds
01148     );
01149
01150     if( nRetCode ){
01151         /* 論理位置→レイアウト位置変換 */
01152         XYLogicalToLayout( pLayout, nLineNum, pLayout->m_nLinePhysical, *pnColmNew, pnLineNew, pnColmNew );
01153     }
01154     return nRetCode;
01155 }
01156
01157
01158
01159
01160
01162 /*
01163     @retval 0 見つからない
01164 */
01165 int CLayoutMgr::SearchWord(
01166     int         nLineNum,       /* 検索開始行 */
01167     int         nIdx,           /* 検索開始位置 */
01168     const char* pszPattern,     /* 検索条件 */
01169     int         bPrevOrNext,    /* 0==前方検索 1==後方検索 */
01170     int         bRegularExp,    /* 1==正規表現 */
01171     int         bLoHiCase,      /* 1==大文字小文字の区別 */
01172     int         bWordOnly,      /* 1==単語のみ検索 */
01173     int*        pnLineFrom,     /* マッチレイアウト行from */
01174     int*        pnIdxFrom,      /* マッチレイアウト位置from */
01175     int*        pnLineTo,       /* マッチレイアウト行to */
01176     int*        pnIdxTo,        /* マッチレイアウト位置to */
01178     CBregexp*   pRegexp //  Jun. 26, 2001 genta
01179
01180 )
01181 {
01182     int         nRetCode;
01183     int         nLogLine;
01184     CLayout*    pLayout;
01185     pLayout = Search( nLineNum );
01186     if( NULL == pLayout ){
01187         return FALSE;
01188     }
01189     /* 単語検索 */
01190     nRetCode = m_pcDocLineMgr->SearchWord(
01191         pLayout->m_nLinePhysical,
01192         pLayout->m_nOffset + nIdx,
01193         pszPattern,
01194         bPrevOrNext,
01195         bRegularExp,
01196         bLoHiCase,
01197         bWordOnly,
01198         pnLineFrom,
01199         pnIdxFrom,
01200         pnIdxTo,
01201         pRegexp         /* 正規表現コンパイルデータ */
01202     );
01203
01204     if( nRetCode ){
01205         /* 論理位置→レイアウト位置変換 */
01206         nLogLine = *pnLineFrom;
01207         CaretPos_Phys2Log(
01208             *pnIdxFrom,
01209             nLogLine,
01210             pnIdxFrom,
01211             pnLineFrom
01212         );
01213         CaretPos_Phys2Log(
01214             *pnIdxTo,
01215             nLogLine,
01216             pnIdxTo,
01217             pnLineTo
01218         );
01219     }
01220     return nRetCode;
01221 }
01222
01223
01224
01225
01226
01227 /* 論理位置→レイアウト位置変換 */
01228 void CLayoutMgr::XYLogicalToLayout(
01229         CLayout*    pLayoutInThisArea,
01230         int         nLayoutLineOfThisArea,
01231         int         nLogLine,
01232         int         nLogIdx,
01233         int*        pnLayLine,
01234         int*        pnLayIdx
01235 )
01236 {
01237     CLayout*    pLayout;
01238     int         nCurLayLine;
01239     *pnLayLine = 0;
01240     *pnLayIdx = 0;
01241
01242     if( pLayoutInThisArea == NULL ){
01243         pLayoutInThisArea = m_pLayoutBot;
01244         nLayoutLineOfThisArea = m_nLines - 1;
01245     }
01246     if( pLayoutInThisArea == NULL ){
01247         *pnLayLine = m_nLines;
01248         *pnLayIdx = 0;
01249         return;
01250     }
01251     /* 範囲内先頭に該当するレイアウト情報をサーチ */
01252     if( (pLayoutInThisArea->m_nLinePhysical > nLogLine) ||
01253         (pLayoutInThisArea->m_nLinePhysical == nLogLine &&
01254          pLayoutInThisArea->m_nOffset > nLogIdx)
01255     ){
01256         /* 現在位置より前方に向かってサーチ */
01257         pLayout =  pLayoutInThisArea->m_pPrev;
01258         nCurLayLine = nLayoutLineOfThisArea - 1;
01259         while( pLayout != NULL ){
01260             if( pLayout->m_nLinePhysical == nLogLine &&
01261                 pLayout->m_nOffset <= nLogIdx &&
01262                 nLogIdx <= pLayout->m_nOffset + pLayout->m_nLength
01263             ){
01264                 *pnLayLine = nCurLayLine;
01265                 *pnLayIdx = nLogIdx - pLayout->m_nOffset;
01266                 return;
01267             }
01268             if( NULL == pLayout->m_pPrev ){
01269                 *pnLayLine = nCurLayLine;
01270                 *pnLayIdx = 0;
01271                 return;
01272             }
01273             pLayout = pLayout->m_pPrev;
01274             nCurLayLine--;
01275         }
01276     }else{
01277         /* 現在位置を含む後方に向かってサーチ */
01278         pLayout =  pLayoutInThisArea;
01279         nCurLayLine = nLayoutLineOfThisArea;
01280         while( pLayout != NULL ){
01281             if( pLayout->m_nLinePhysical == nLogLine &&
01282                 pLayout->m_nOffset <= nLogIdx  &&
01283                 nLogIdx <= pLayout->m_nOffset + pLayout->m_nLength
01284              ){
01285                 *pnLayLine = nCurLayLine;
01286                 *pnLayIdx = nLogIdx - pLayout->m_nOffset;
01287                 return;
01288             }
01289             if( NULL == pLayout->m_pNext ){
01290 //              if( nCurLayLine == nLogLine ){
01291 //                  *pnLayLine = nCurLayLine;
01292 //                  *pnLayIdx = pLayout->m_nLength;
01293 //              }else{
01294                     *pnLayLine = nCurLayLine + 1;
01295                     *pnLayIdx = 0;
01296 //              }
01297                 return;
01298             }else
01299             if( pLayout->m_pNext->m_nLinePhysical > nLogLine ){
01300                 *pnLayLine = nCurLayLine;
01301                 *pnLayIdx = nLogIdx - pLayout->m_nOffset;
01302                 return;
01303             }
01304             pLayout = pLayout->m_pNext;
01305             nCurLayLine++;
01306         }
01307     }
01308     return;
01309 }
01310
01311
01324 void CLayoutMgr::CaretPos_Phys2Log(
01325         int     nX,
01326         int     nY,
01327         int*    pnCaretPosX,
01328         int*    pnCaretPosY
01329 //      BOOL    bFreeCaret
01330 )
01331 {
01332 //#ifdef _DEBUG
01333 //  CRunningTimer cRunningTimer( (const char*)"CLayoutMgr::CaretPos_Phys2Log" );
01334 //#endif
01335     const CLayout*  pLayout;
01336 //  CLayout*        pLayoutNext;
01337     int             nCaretPosX;
01338     int             nCaretPosY;
01339     const char*     pData;
01340     int             nDataLen;
01341     int             i;
01342     int             nCharChars;
01343
01344     *pnCaretPosX = 0;
01345     *pnCaretPosY = 0;
01346 //1999.12.11
01347 //  サーチ開始地点は先頭から
01348 //  pLayout = m_pLayoutTop;
01349 //  nCaretPosY = 0;
01350
01351     /* 改行単位行 <= 折り返し単位行 が成り立つから、
01352     サーチ開始地点をできるだけ目的地へ近づける */
01353 //  pLayout = GetLineData( nY );
01354     pLayout = Search( nY );
01355     if( NULL == pLayout ){
01356         if( 0 < m_nLines ){
01357             *pnCaretPosY = m_nLines;
01358         }
01359         return;
01360     }
01361     nCaretPosY = nY;
01362
01363     //  Layoutを１つずつ先に進めながらnYが物理行に一致するLayoutを探す
01364
01365     nCaretPosX = 0;
01366     do{
01367         if( nY == pLayout->m_nLinePhysical ){
01368             //  2004.06.16 Moca インデント表示の際に位置がずれる(TAB位置ずれによる)
01369             //  TAB幅を正確に計算するには当初からインデント分を加えておく必要がある．
01370             nCaretPosX = pLayout->GetIndent();
01371 //          pData = GetLineStr( nCaretPosY, &nDataLen );
01372 //          pData = pLayout->m_pLine + pLayout->m_nOffset;
01373             pData = pLayout->m_pCDocLine->m_pLine->GetPtr() + pLayout->m_nOffset; // 2002/2/10 aroka CMemory変更
01374             nDataLen = pLayout->m_nLength;
01375
01376             for( i = 0; i < nDataLen; ++i ){
01377                 if( pLayout->m_nOffset + i >= nX ){
01378                     break;
01379                 }
01380                 if( pData[i] == TAB ){
01381                     // Sep. 23, 2002 genta メンバー関数を使うように
01382                     nCharChars = GetActualTabSpace( nCaretPosX );
01383                 }else{
01384                     // 2005-09-02 D.S.Koba GetSizeOfChar
01385                     nCharChars = CMemory::GetSizeOfChar( pData, nDataLen, i );
01386                 }
01387                 if( nCharChars == 0 ){
01388                     nCharChars = 1;
01389                 }
01390                 nCaretPosX += nCharChars;
01391                 if( pData[i] == TAB ){
01392                     nCharChars = 1;
01393                 }
01394                 i += nCharChars - 1;
01395             }
01396             if( i < nDataLen ){
01397                 //  nX, nYがこの行の中に見つかったらループ打ち切り
01398                 break;
01399             }
01400             if( NULL == pLayout->m_pNext ){
01401                 //  当該位置に達していなくても，レイアウト末尾ならデータ末尾を返す．
01402                 nCaretPosX += ( nDataLen - i );
01403 //              nCaretPosX = 0;
01404                 break;
01405             }
01406             if( nY < pLayout->m_pNext->m_nLinePhysical ){
01407                 //  次のLayoutが当該物理行を過ぎてしまう場合はデータ末尾を返す．
01408                 nCaretPosX += ( nDataLen - i );
01409                 break;
01410             }
01411         }
01412         if( nY < pLayout->m_nLinePhysical ){
01413             //  ふつうはここには来ないと思うが... (genta)
01414             //  Layoutの指す物理行が探している行より先を指していたら打ち切り
01415             break;
01416         }
01417
01418         //  次の行へ進む
01419         nCaretPosY++;
01420         pLayout = pLayout->m_pNext;
01421     }while( NULL != pLayout );
01422     //  2004.06.16 Moca インデント表示の際の位置ずれ修正
01423     *pnCaretPosX = pLayout ? nCaretPosX : 0;
01424     *pnCaretPosY = nCaretPosY;
01425 //#ifdef _DEBUG
01426 //  MYTRACE( "\t\tnCaretPosY - nY = %d\n", nCaretPosY - nY );
01427 //#endif
01428     return;
01429 }
01430
01431 /*
01432   カーソル位置変換
01433   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
01434   →
01435   物理位置(行頭からのバイト数、折り返し無し行位置)
01436 */
01437 void CLayoutMgr::CaretPos_Log2Phys(
01438         int     nCaretPosX,
01439         int     nCaretPosY,
01440         int*    pnX,
01441         int*    pnY
01442 )
01443 {
01444 //#ifdef _DEBUG
01445 //  CRunningTimer cRunningTimer( (const char*)"CLayoutMgr::CaretPos_Log2Phys" );
01446 //#endif
01447     int             nX;
01448 //  int             nY;
01449     const CLayout*  pcLayout;
01450     int             i;
01451     const char*     pData;
01452     int             nDataLen;
01453     int             nCharChars;
01454     BOOL            bEOF;
01455     bEOF = FALSE;
01456
01457     *pnX = 0;
01458     *pnY = 0;
01459     if( nCaretPosY > m_nLines ){
01460         *pnX = 0;
01461         *pnY = m_nLines;
01462         return;
01463     }
01464     pcLayout = Search( nCaretPosY );
01465     if( NULL == pcLayout ){
01466         if( 0 < nCaretPosY ){
01467             pcLayout = Search( nCaretPosY - 1 );
01468             if( NULL == pcLayout ){
01469                 *pnX = 0;
01470                 *pnY = m_pcDocLineMgr->GetLineCount(); // 2002/2/10 aroka CDocLineMgr変更
01471                 return;
01472             }else{
01473                 pData = GetLineStr( nCaretPosY - 1, &nDataLen );
01474                 if( pData[nDataLen - 1] == '\r' || pData[nDataLen - 1] == '\n' ){
01475                     *pnX = 0;
01476                     *pnY = m_pcDocLineMgr->GetLineCount(); // 2002/2/10 aroka CDocLineMgr変更
01477                     return;
01478                 }else{
01479                     *pnY = m_pcDocLineMgr->GetLineCount() - 1; // 2002/2/10 aroka CDocLineMgr変更
01480                     bEOF = TRUE;
01481                     nX = 999999;
01482                     goto checkloop;
01483
01484                 }
01485             }
01486         }
01487         *pnX = 0;
01488         *pnY = m_nLines;
01489         return;
01490     }else{
01491         *pnY = pcLayout->m_nLinePhysical;
01492     }
01493
01494     pData = GetLineStr( nCaretPosY, &nDataLen );
01495     nX = pcLayout ? pcLayout->GetIndent() : 0;
01496 checkloop:;
01497 //  enumEOLType nEOLType;
01498     for( i = 0; i < nDataLen; ++i ){
01499         if( pData[i] == TAB ){
01500             // Sep. 23, 2002 genta メンバー関数を使うように
01501             nCharChars = GetActualTabSpace( nX );
01502 //      }else
01503 //      if( pData[i] == '\r' || pData[i] == '\n' ){
01504 //          /* 行終端子の種類を調べる */
01505 //          nEOLType = GetEOLType( &pData[i], nDataLen - i );
01506 //          nCharChars = 1;
01507         }else{
01508             // 2005-09-02 D.S.Koba GetSizeOfChar
01509             nCharChars = CMemory::GetSizeOfChar( pData, nDataLen, i );
01510         }
01511
01512         if( nCharChars == 0 ){
01513             nCharChars = 1;
01514         }
01515         nX += nCharChars;
01516         if( nX > nCaretPosX && !bEOF ){
01517             break;
01518         }
01519         if( pData[i] == TAB ){
01520             nCharChars = 1;
01521         }
01522 //      if( pData[i] == '\r' || pData[i] == '\n' ){
01523 //          nCharChars = gm_pnEolLenArr[nEOLType];
01524 //      }
01525         i += nCharChars - 1;
01526     }
01527     i += pcLayout->m_nOffset;
01528     *pnX = i;
01529     return;
01530 }
01531
01532 bool CLayoutMgr::ChangeLayoutParam( HWND hwndProgress,
01533     int nTabSize, int nMaxLineSize )
01534 {
01535     if( nTabSize < 1 || nTabSize > 64 ) { return false; }
01536     if( nMaxLineSize < MINLINESIZE || nMaxLineSize > MAXLINESIZE ){ return false; }
01537
01538     m_nTabSpace = nTabSize;
01539     m_nMaxLineSize = nMaxLineSize;
01540
01541     DoLayout( hwndProgress );
01542
01543     return true;
01544 }
01545
01546 /* テスト用にレイアウト情報をダンプ */
01547 void CLayoutMgr::DUMP( void )
01548 {
01549 #ifdef _DEBUG
01550     const char* pData;
01551     int nDataLen;
01552     MYTRACE( "------------------------\n" );
01553     MYTRACE( "m_nLines=%d\n", m_nLines );
01554     MYTRACE( "m_pLayoutTop=%08lxh\n", m_pLayoutTop );
01555     MYTRACE( "m_pLayoutBot=%08lxh\n", m_pLayoutBot );
01556     MYTRACE( "m_nMaxLineSize=%d\n", m_nMaxLineSize );
01557
01558     MYTRACE( "m_nTabSpace=%d\n", m_nTabSpace );
01559     CLayout* pLayout;
01560     CLayout* pLayoutNext;
01561     pLayout = m_pLayoutTop;
01562     while( NULL != pLayout ){
01563         pLayoutNext = pLayout->m_pNext;
01564         MYTRACE( "\t-------\n" );
01565         MYTRACE( "\tthis=%08lxh\n", pLayout );
01566         MYTRACE( "\tm_pPrev =%08lxh\n",     pLayout->m_pPrev );
01567         MYTRACE( "\tm_pNext =%08lxh\n",     pLayout->m_pNext );
01568         MYTRACE( "\tm_nLinePhysical=%d\n",  pLayout->m_nLinePhysical );
01569         MYTRACE( "\tm_nOffset=%d\n",        pLayout->m_nOffset );
01570         MYTRACE( "\tm_nLength=%d\n",        pLayout->m_nLength );
01571         MYTRACE( "\tm_enumEOLType =%s\n",   pLayout->m_cEol.GetName() );
01572         MYTRACE( "\tm_nEOLLen =%d\n",       pLayout->m_cEol.GetLen() );
01573         MYTRACE( "\tm_nTypePrev=%d\n",      pLayout->m_nTypePrev );
01574         pData = m_pcDocLineMgr->GetLineStr( pLayout->m_nLinePhysical, &nDataLen );
01575         MYTRACE( "\t[%s]\n", pData );
01576         pLayout = pLayoutNext;
01577     }
01578     MYTRACE( "------------------------\n" );
01579 #endif
01580     return;
01581 }
01582
01583
01584 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr.h

CLayoutMgr.h

テキストのレイアウト情報管理 [詳細]

#include <windows.h>
#include "global.h"
#include "CLineComment.h"
#include "CBlockComment.h"

CLayoutMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | LayoutReplaceArg
class | CLayoutMgr
テキストのレイアウト情報管理 [詳細]

説明

テキストのレイアウト情報管理

作者:
Norio Nakatani
日付:
1998/03/06 新規作成

1998/04/14 データの削除を実装

1999/12/20 データの置換を実装

CLayoutMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:18:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr.h ソースファイル

CLayoutMgr.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2001, jepro
00012     Copyright (C) 2002, MIK, aroka, genta, YAZAKI
00013     Copyright (C) 2003, genta
00014     Copyright (C) 2005, Moca, genta, D.S.Koba
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019
00020 class CLayoutMgr;
00021
00022 #ifndef _CLAYOUTMGR_H_
00023 #define _CLAYOUTMGR_H_
00024
00025 #include <windows.h>// 2002/2/10 aroka
00026 #include "global.h"// 2002/2/10 aroka
00027 #include "CLineComment.h"   //@@@ 2002.09.22 YAZAKI
00028 #include "CBlockComment.h"  //@@@ 2002.09.22 YAZAKI
00029
00030 class CBregexp;// 2002/2/10 aroka
00031 class CLayout;// 2002/2/10 aroka
00032 class CDocLineMgr;// 2002/2/10 aroka
00033 class CDocLine;// 2002/2/10 aroka
00034 class CMemory;// 2002/2/10 aroka
00035 class CEditDoc;// 2003/07/20 genta
00036 struct Types;// 2005.11.20 Moca
00037
00038
00039
00040 struct LayoutReplaceArg {
00041     int         nDelLineFrom;
00042     int         nDelColmFrom;
00043     int         nDelLineTo;
00044     int         nDelColmTo;
00045     CMemory*    pcmemDeleted;
00046     const char* pInsData;
00047     int         nInsDataLen;
00049     int         nAddLineNum;
00050     int         nModLineFrom;
00051     int         nModLineTo;
00053     int         nNewLine;
00054     int         nNewPos;
00056 //  BOOL        bUndo;                  /*!< Undo操作かどうか */    @date 2002/03/24 YAZAKI bUndo削除
00057 };
00058
00059
00060 /*-----------------------------------------------------------------------
00061 クラスの宣言
00062 -----------------------------------------------------------------------*/
00067 class SAKURA_CORE_API CLayoutMgr
00068 {
00069 public:
00070     /*
00071     ||  Constructors
00072     */
00073     CLayoutMgr();
00074     ~CLayoutMgr();
00075     void Create( CEditDoc*, CDocLineMgr* );
00076     /*
00077     ||  参照系
00078     */
00079     int GetLineCount( void ) { return m_nLines; }   /* 全物理行数を返す */
00080     const char* GetLineStr( int , int* );   /* 指定された物理行のデータへのポインタとその長さを返す */
00081     const char* GetLineStr( int , int*, const CLayout** );  /* 指定された物理行のデータへのポインタとその長さを返す */
00082     bool IsEndOfLine( int nLine, int nPos );    /* 指定位置が行末(改行文字の直前)か調べる */    //@@@ 2002.04.18 MIK
00083 //  const CLayout* GetLineData( int );  /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
00084     CLayout* Search( int ); /* 指定された物理行のレイアウトデータ(CLayout)へのポインタを返す */
00085     int WhereCurrentWord( int , int , int* , int* , int* , int*, CMemory*, CMemory* );  /* 現在位置の単語の範囲を調べる */
00086     //  Sep. 23, 2002 genta
00090     int GetTabSpace(void) const { return m_nTabSpace; }
00095     int GetActualTabSpace(int pos) const { return m_nTabSpace - pos % m_nTabSpace; }
00096     //  Aug. 14, 2005 genta
00097     int GetMaxLineSize(void) const { return m_nMaxLineSize; }
00098     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00099     bool ChangeLayoutParam( HWND hwndProgress, int nTabSize, int nMaxLineSize );
00100     // Jul. 29, 2006 genta
00101     void GetEndLayoutPos(int& lX, int& lY);
00102
00103 protected:
00104     int PrevOrNextWord( int, int, int*, int*, BOOL, BOOL bStopsBothEnds );  /* 現在位置の左右の単語の先頭位置を調べる */
00105 public:
00106     int PrevWord( int nLineNum, int nIdx, int* pnLineNew, int* pnColmNew, BOOL bStopsBothEnds ){ return PrevOrNextWord(nLineNum, nIdx, pnLineNew, pnColmNew, TRUE, bStopsBothEnds); }   /* 現在位置の左右の単語の先頭位置を調べる */
00107     int NextWord( int nLineNum, int nIdx, int* pnLineNew, int* pnColmNew, BOOL bStopsBothEnds ){ return PrevOrNextWord(nLineNum, nIdx, pnLineNew, pnColmNew, FALSE, bStopsBothEnds); }  /* 現在位置の左右の単語の先頭位置を調べる */
00108
00109     int SearchWord( int , int , const char* , int , int , int , int , int* , int* , int* , int*, CBregexp* );   /* 単語検索 */
00110     void CaretPos_Phys2Log( int, int, int*, int* );
00111     void CaretPos_Log2Phys( int, int, int*, int* );
00112     void DUMP( void );  /* テスト用にレイアウト情報をダンプ */
00113
00114     /*
00115     || 更新系
00116     */
00117     /* レイアウト情報の変更
00118         @date Jun. 01, 2001 JEPRO char* (行コメントデリミタ3用)を1つ追加
00119         @date 2002.04.13 MIK 禁則,改行文字をぶら下げる,句読点ぶらさげを追加
00120         @date 2002/04/27 YAZAKI Typesを渡すように変更。
00121     */
00122     void SetLayoutInfo( int, HWND, Types& refType );
00123
00124     /* 行内文字削除 */
00125     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00126     void DeleteData_CLayoutMgr(
00127         int         nLineNum,
00128         int         nDelPos,
00129         int         nDelLen,
00130         int         *pnModifyLayoutLinesOld,
00131         int         *pnModifyLayoutLinesNew,
00132         int         *pnDeleteLayoutLines,
00133         CMemory&    cmemDeleted         /* 削除されたデータ */
00134     );
00135     /* 文字列挿入 */
00136     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00137     void InsertData_CLayoutMgr(
00138         int         nLineNum,
00139         int         nInsPos,
00140         const char* pInsData,
00141         int         nInsDataLen,
00142         int*        pnModifyLayoutLinesOld,
00143         int*        pnInsLineNum,       /* 挿入によって増えたレイアウト行の数 */
00144         int*        pnNewLine,          /* 挿入された部分の次の位置の行 */
00145         int*        pnNewPos            /* 挿入された部分の次の位置のデータ位置 */
00146     );
00147
00148     /* 文字列置換 */
00149     void ReplaceData_CLayoutMgr(
00150         LayoutReplaceArg*   pArg
00151     );
00152
00153 protected:
00154     /*
00155     ||  参照系
00156     */
00157     const char* GetFirstLinrStr( int* );    /* 順アクセスモード：先頭行を得る */
00158     const char* GetNextLinrStr( int* ); /* 順アクセスモード：次の行を得る */
00159     void XYLogicalToLayout( CLayout*, int, int, int, int*, int* );  /* 論理位置→レイアウト位置変換 */
00160
00161
00162     /*
00163     || 更新系
00164     */
00165 //  void SetMaxLineSize( int, int, int );   /* 折り返し文字数の変更／レイアウト情報再構築 */
00166     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00167     void DoLayout( HWND );  /* 現在の折り返し文字数に合わせて全データのレイアウト情報を再生成します */
00168 //  void DoLayout( int, BOOL, HWND, BOOL, BOOL );   /* 新しい折り返し文字数に合わせて全データのレイアウト情報を再生成します */
00169 //  int DoLayout3( CLayout* , int, int, int );  /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00170     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00171     int DoLayout_Range( CLayout* , int, int, int, int, int* );  /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00172     CLayout* DeleteLayoutAsLogical( CLayout*, int, int , int, int, int, int* ); /* 論理行の指定範囲に該当するレイアウト情報を削除 */
00173     void ShiftLogicalLineNum( CLayout* , int ); /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00174
00175     /*
00176     || メンバ変数
00177     */
00178 public:
00179     CDocLineMgr*    m_pcDocLineMgr; /* 行バッファ管理マネージャ */
00180 protected:
00181     CLayout*        m_pLayoutTop;
00182     CLayout*        m_pLayoutBot;
00183     //  2002.10.07 YAZAKI add
00184     int             m_nLineTypeBot;
00185     int             m_nLines;                   /* 全物理行数 */
00186     int             m_nMaxLineSize;             /* 折り返し文字数 */
00187     BOOL            m_bWordWrap;                /* 英文ワードラップをする */
00188     BOOL            m_bKinsokuHead;             /* 行頭禁則をする */    //@@@ 2002.04.08 MIK
00189     BOOL            m_bKinsokuTail;             /* 行末禁則をする */    //@@@ 2002.04.08 MIK
00190     BOOL            m_bKinsokuRet;              /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
00191     BOOL            m_bKinsokuKuto;             /* 句読点をぶら下げる */    //@@@ 2002.04.17 MIK
00192     char*           m_pszKinsokuHead_1;         /* 行頭禁則文字 */  //@@@ 2002.04.08 MIK
00193     char*           m_pszKinsokuHead_2;         /* 行頭禁則文字 */  //@@@ 2002.04.08 MIK
00194     char*           m_pszKinsokuTail_1;         /* 行末禁則文字 */  //@@@ 2002.04.08 MIK
00195     char*           m_pszKinsokuTail_2;         /* 行末禁則文字 */  //@@@ 2002.04.08 MIK
00196     char*           m_pszKinsokuKuto_1;         /* 句読点ぶらさげ文字 */    //@@@ 2002.04.17 MIK
00197     char*           m_pszKinsokuKuto_2;         /* 句読点ぶらさげ文字 */    //@@@ 2002.04.17 MIK
00198     int             m_nTabSpace;                /* TAB文字スペース */
00199     BOOL            m_bDispComment;             /* コメントの色分け */      // 2005.11.21 Moca
00200     BOOL            m_bDispSString;             /* シングルクォーテーションの色分け */      // 2005.11.21 Moca
00201     BOOL            m_bDispWString;             /* ダブルクォーテーションの色分け */        // 2005.11.21 Moca
00202     CLineComment    m_cLineComment;             /* 行コメントデリミタ */        //@@@ 2002.09.22 YAZAKI
00203     CBlockComment   m_cBlockComment;            /* ブロックコメントデリミタ */  //@@@ 2002.09.22 YAZAKI
00204     int             m_nStringType;              /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
00205 //  int             m_nIndentLayout;            /* 折り返しは2行目以降を字下げ表示 */   //@@@ 2002.09.29 YAZAKI
00206     //  Oct. 1, 2002 genta インデント幅計算関数を保持
00207     int (CLayoutMgr::*getIndentOffset)( CLayout* );
00208
00209
00210     int             m_nPrevReferLine;
00211     CLayout*        m_pLayoutPrevRefer;
00212
00213     // 2006.10.01 Moca EOFカーソル位置を記憶する(DoLayout/DoLayout_Rangeで無効にする)
00214     int             m_nEOFLine;
00215     int             m_nEOFColumn;
00216
00217     //  Jul. 20, 2003 genta
00218     //  タイプ別の設定を取得するためにCEditDocへの参照が必要
00219     CEditDoc*       m_pcEditDoc;
00220
00221     /*
00222     || 実装ヘルパ系
00223     */
00224     //@@@ 2002.09.23 YAZAKI
00225     CLayout* CreateLayout( CDocLine* pCDocLine, int nLine, int nOffset, int nLength, int nTypePrev, int nIndent );
00226     CLayout* InsertLineNext( CLayout*, CLayout* );
00227     void AddLineBottom( CLayout* );
00228 public:
00229     void Init();
00230     void Empty();
00231
00232 private:
00233     bool IsKinsokuHead( const char *pLine, int length );        //@@@ 2002.04.08 MIK
00234     bool IsKinsokuTail( const char *pLine, int length );        //@@@ 2002.04.08 MIK
00235     bool IsKutoTen( unsigned char c1, unsigned char c2 );       //@@@ 2002.04.17 MIK
00236     bool IsKinsokuKuto( const char *pLine, int length );        //@@@ 2002.04.17 MIK
00237     //  2005-08-20 D.S.Koba 禁則関連処理の関数化
00242     bool IsKinsokuPosKuto(const int nRest, const int nCharChars ) const {
00243         return nRest < nCharChars;
00244     }
00245     bool IsKinsokuPosHead(const int, const int, const int);
00246     bool IsKinsokuPosTail(const int, const int, const int);
00247
00248     //@@@ 2002.09.22 YAZAKI
00249     // 2005.11.21 Moca 引用符の色分け情報を引数から除去
00250     bool CheckColorMODE( int& nCOMMENTMODE, int& nCOMMENTEND, int nPos, int nLineLen, const char* pLine );
00251     int Match_Quote( char szQuote, int nPos, int nLineLen, const char* pLine );
00252 //  int getMaxLineSize( CLayout* pLayoutPrev );
00253
00254     //  Oct. 1, 2002 genta インデント幅計算関数群
00255     int getIndentOffset_Normal( CLayout* pLayoutPrev );
00256     int getIndentOffset_Tx2x( CLayout* pLayoutPrev );
00257     int getIndentOffset_LeftSpace( CLayout* pLayoutPrev );
00258 };
00259
00260
00262 #endif /* _CLAYOUTMGR_H_ */
00263
00264
00265 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr_New.cpp

CLayoutMgr_New.cpp

テキストのレイアウト情報管理 [詳細]

#include "stdafx.h"
#include <mbstring.h>
#include "CLayoutMgr.h"
#include "charcode.h"
#include "etc_uty.h"
#include "debug.h"
#include <commctrl.h>
#include "CRunningTimer.h"
#include "CLayout.h"
#include "CDocLine.h"
#include "CDocLineMgr.h"
#include "CMemory.h"
#include "CMemoryIterator.h"
#include "CEditDoc.h"

CLayoutMgr_New.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | KINSOKU_TYPE_NONE 0
#define | KINSOKU_TYPE_WORDWRAP 1
#define | KINSOKU_TYPE_KINSOKU_HEAD 2
#define | KINSOKU_TYPE_KINSOKU_TAIL 3
#define | KINSOKU_TYPE_KINSOKU_KUTO 4

説明

テキストのレイアウト情報管理

作者:
Norio Nakatani

CLayoutMgr_New.cpp で定義されています。

マクロ定義

#define KINSOKU_TYPE_KINSOKU_HEAD 2

CLayoutMgr_New.cpp の 36 行で定義されています。

#define KINSOKU_TYPE_KINSOKU_KUTO 4

CLayoutMgr_New.cpp の 38 行で定義されています。

参照元 CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range().

#define KINSOKU_TYPE_KINSOKU_TAIL 3

CLayoutMgr_New.cpp の 37 行で定義されています。

#define KINSOKU_TYPE_NONE 0

CLayoutMgr_New.cpp の 34 行で定義されています。

参照元 CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range().

#define KINSOKU_TYPE_WORDWRAP 1

CLayoutMgr_New.cpp の 35 行で定義されています。

参照元 CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range().

Sakura-Editorに対してSat Oct 27 02:18:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr_New.cpp ソースファイル

CLayoutMgr_New.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, MIK
00009     Copyright (C) 2002, MIK, aroka, genta, YAZAKI, novice
00010     Copyright (C) 2003, genta
00011     Copyright (C) 2004, Moca, genta
00012     Copyright (C) 2005, D.S.Koba, Moca
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include <mbstring.h>
00020 #include "CLayoutMgr.h"
00021 #include "charcode.h"
00022 #include "etc_uty.h"
00023 #include "debug.h"
00024 #include <commctrl.h>
00025 #include "CRunningTimer.h"
00026 #include "CLayout.h"
00027 #include "CDocLine.h"
00028 #include "CDocLineMgr.h"// 2002/2/10 aroka
00029 #include "CMemory.h"
00030 #include "CMemoryIterator.h"
00031 #include "CEditDoc.h"
00032
00033 //レイアウト中の禁則タイプ  //@@@ 2002.04.20 MIK
00034 #define KINSOKU_TYPE_NONE           0   //なし
00035 #define KINSOKU_TYPE_WORDWRAP       1   //ワードラップ中
00036 #define KINSOKU_TYPE_KINSOKU_HEAD   2   //行頭禁則中
00037 #define KINSOKU_TYPE_KINSOKU_TAIL   3   //行末禁則中
00038 #define KINSOKU_TYPE_KINSOKU_KUTO   4   //句読点ぶら下げ中
00039
00040
00041
00049 void CLayoutMgr::DoLayout(
00050         HWND    hwndProgress
00051 )
00052 {
00053     MY_RUNNINGTIMER( cRunningTimer, "CLayoutMgr::DoLayout" );
00054
00055     int         nLineNum;
00056     int         nLineLen;
00057     CDocLine*   pCDocLine;
00058     const char* pLine;
00059     int         nBgn;
00061     int         nPos;
00062     /*  表示上のX位置
00063         2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00064     */
00065     int         nPosX;
00066     int         nCOMMENTMODE;
00067     int         nCOMMENTMODE_Prev;
00068     int         nCOMMENTEND;
00069     int         nWordBgn;
00070     int         nWordLen;
00071     int         nAllLineNum;
00072     int         nKinsokuType;   //@@@ 2002.04.20 MIK
00073
00074     int         nIndent;            //  インデント幅
00075     CLayout*    pLayoutCalculated;  //  インデント幅計算済みのCLayout.
00076     int         nMaxLineSize;
00077
00078 // 2002/03/13 novice
00079     nCOMMENTMODE = COLORIDX_TEXT;
00080     nCOMMENTMODE_Prev = COLORIDX_TEXT;
00081
00082     if( NULL != hwndProgress ){
00083         ::PostMessage( hwndProgress, PBM_SETRANGE, 0, MAKELPARAM( 0, 100 ) );
00084         ::PostMessage( hwndProgress, PBM_SETPOS, 0, 0 );
00085         /* 処理中のユーザー操作を可能にする */
00086         if( !::BlockingHook( NULL ) ){
00087             return;
00088         }
00089     }
00090
00091     Empty();
00092     Init();
00093     nLineNum = 0;
00094
00095     //  Nov. 16, 2002 genta
00096     //  折り返し幅 <= TAB幅のとき無限ループするのを避けるため，
00097     //  TABが折り返し幅以上の時はTAB=4としてしまう
00098     //  折り返し幅の最小値=10なのでこの値は問題ない
00099     if( m_nTabSpace >= m_nMaxLineSize ){
00100         m_nTabSpace = 4;
00101     }
00102
00103 //  pLine = m_pcDocLineMgr->GetFirstLinrStr( &nLineLen );
00104     pCDocLine = m_pcDocLineMgr->GetDocLineTop(); // 2002/2/10 aroka CDocLineMgr変更
00105
00106 // 2005-08-20 D.S.Koba 削除
00108 //  if( nCOMMENTMODE_Prev == COLORIDX_COMMENT ){    /* 行コメントである */
00109 //      nCOMMENTMODE_Prev = COLORIDX_TEXT;
00110 //  }
00111 //  nCOMMENTMODE = nCOMMENTMODE_Prev;
00112     nCOMMENTEND = 0;
00113     nAllLineNum = m_pcDocLineMgr->GetLineCount();
00114
00115     /*
00116         2004.03.28 Moca TAB計算を正しくするためにインデントを幅で調整することはしない
00117         nMaxLineSizeは変更しないので，ここでm_nMaxLineSizeを設定する．
00118     */
00119     nMaxLineSize = m_nMaxLineSize;
00120
00121     while( NULL != pCDocLine ){
00122         pLine = pCDocLine->m_pLine->GetPtr( &nLineLen );
00123         nPosX = 0;
00124         nBgn = 0;
00125         nPos = 0;
00126         nWordBgn = 0;
00127         nWordLen = 0;
00128         nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00129
00130         int nEol = pCDocLine->m_cEol.GetLen();
00131         int nEol_1 = nEol - 1;
00132         if( 0 > nEol_1 ){
00133             nEol_1 = 0;
00134         }
00135
00136         nIndent = 0;                //  インデント幅
00137         pLayoutCalculated = NULL;   //  インデント幅計算済みのCLayout.
00138
00139         while( nPos < nLineLen - nEol_1 ){
00140             //  インデント幅の計算コストを下げるための方策
00141             if ( m_pLayoutBot &&
00142                  m_pLayoutBot != pLayoutCalculated &&
00143                  nBgn ){
00144                 //  計算
00145                 //  Oct, 1, 2002 genta Indentサイズを取得するように変更
00146                 nIndent = (this->*getIndentOffset)( m_pLayoutBot );
00147                 // 2004.03.28 Moca nMaxLineSizeを引く方法だと、タブ幅の計算が合わないので、nPosXの初期値をnIndentにする
00148                 //  nMaxLineSize = m_nMaxLineSize - nIndent;
00149
00150                 //  計算済み
00151                 pLayoutCalculated = m_pLayoutBot;
00152             }
00153
00154
00155             SEARCH_START:;
00156
00157             //禁則処理中ならスキップする    @@@ 2002.04.20 MIK
00158             if( KINSOKU_TYPE_NONE != nKinsokuType )
00159             {
00160                 //禁則処理の最後尾に達したら禁則処理中を解除する
00161                 if( nPos >= nWordBgn + nWordLen )
00162                 {
00163                     if( nKinsokuType == KINSOKU_TYPE_KINSOKU_KUTO
00164                      && nPos == nWordBgn + nWordLen )
00165                     {
00166                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol ) )   //改行文字をぶら下げる      //@@@ 2002.04.14 MIK
00167                         {
00168                             AddLineBottom( CreateLayout(pCDocLine, nLineNum, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00169                             m_nLineTypeBot = nCOMMENTMODE;
00170                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00171                             nBgn = nPos;
00172                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00173                             nPosX = nIndent = (this->*getIndentOffset)( m_pLayoutBot );
00174                             pLayoutCalculated = m_pLayoutBot;
00175                         }
00176                     }
00177
00178                     nWordLen = 0;
00179                     nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00180                 }
00181             }
00182             else
00183             {
00184
00185                 /* ワードラップ処理 */
00186                 if( m_bWordWrap /* 英文ワードラップをする */
00187                  && nKinsokuType == KINSOKU_TYPE_NONE )
00188                 {
00189 //              if( 0 == nWordLen ){
00190                     /* 英単語の先頭か */
00191                     //int nCharChars = CMemory::MemCharNext( pLine, nLineLen, &pLine[nPos] ) - &pLine[nPos];
00192                     int nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00193                     if( 0 == nCharChars ){
00194                         nCharChars = 1;
00195                     }
00196                     if( nPos >= nBgn &&
00197                         nCharChars == 1 &&
00198 //                      ( pLine[nPos] == '#' || __iscsym( pLine[nPos] ) )
00199                         IS_KEYWORD_CHAR( pLine[nPos] )
00200                     ){
00201                         /* キーワード文字列の終端を探す */
00202                         int i;
00203                         // 2005-08-27 D.S.Koba 簡略化
00204                         for( i = nPos + 1; i < nLineLen; ++i ){
00205                             //int nCharChars2 = CMemory::MemCharNext( pLine, nLineLen, &pLine[i] ) - &pLine[i];
00206                             int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00207                             if( 0 == nCharChars2 ){
00208                                 nCharChars2 = 1;
00209                             }
00210                             if( nCharChars2 != 1 || !IS_KEYWORD_CHAR( pLine[i] ) ){
00211                                 break;
00212                             }
00213                         }
00214                         nWordBgn = nPos;
00215                         nWordLen = i - nPos;
00216                         nKinsokuType = KINSOKU_TYPE_WORDWRAP;   //@@@ 2002.04.20 MIK
00217                         if( nPosX + i - nPos >= nMaxLineSize
00218                          && nPos - nBgn > 0
00219                         ){
00220                             AddLineBottom( CreateLayout(pCDocLine, nLineNum, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00221                             m_nLineTypeBot = nCOMMENTMODE;
00222                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00223                             nBgn = nPos;
00224                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00225                             nPosX = nIndent = (this->*getIndentOffset)( m_pLayoutBot );
00226                             pLayoutCalculated = m_pLayoutBot;
00227 //?                         continue;
00228                         }
00229                     }
00230 //              }else{
00231 //                  if( nPos == nWordBgn + nWordLen ){
00232 //                      nWordLen = 0;
00233 //                  }
00234 //              }
00235                 }
00236
00237                 //@@@ 2002.04.07 MIK start
00238                 /* 句読点のぶらさげ */
00239                 if( m_bKinsokuKuto
00240                  && (nMaxLineSize - nPosX < 2)
00241                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00242                 {
00243                     // 2005-09-02 D.S.Koba GetSizeOfChar
00244                     int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00245
00246                     if( IsKinsokuPosKuto( nMaxLineSize - nPosX, nCharChars2 )
00247                         && IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )
00248                     {
00249                         //nPos += nCharChars2; nPosX += nCharChars2;
00250                         nWordBgn = nPos;
00251                         nWordLen = nCharChars2;
00252                         nKinsokuType = KINSOKU_TYPE_KINSOKU_KUTO;
00253                     }
00254                 }
00255
00256                 /* 行頭禁則 */
00257                 if( m_bKinsokuHead
00258                  && (nMaxLineSize - nPosX < 4)
00259                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00260                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00261                 {
00262                     // 2005-09-02 D.S.Koba GetSizeOfChar
00263                     int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00264                     int nCharChars3 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00265
00266                     if( IsKinsokuPosHead( nMaxLineSize - nPosX, nCharChars2, nCharChars3 )
00267                      && IsKinsokuHead( &pLine[nPos+nCharChars2], nCharChars3 )
00268                      && ! IsKinsokuHead( &pLine[nPos], nCharChars2 )    //1文字前が行頭禁則でない
00269                      && ! IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )  //句読点でない
00270                     {
00271                         //nPos += nCharChars2 + nCharChars3; nPosX += nCharChars2 + nCharChars3;
00272                         nWordBgn = nPos;
00273                         nWordLen = nCharChars2 + nCharChars3;
00274                         nKinsokuType = KINSOKU_TYPE_KINSOKU_HEAD;
00275                         AddLineBottom( CreateLayout(pCDocLine, nLineNum, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00276                         m_nLineTypeBot = nCOMMENTMODE;
00277                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00278                         nBgn = nPos;
00279                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00280                         nPosX = nIndent = (this->*getIndentOffset)( m_pLayoutBot );
00281                         pLayoutCalculated = m_pLayoutBot;
00282                     }
00283                 }
00284
00285                 /* 行末禁則 */
00286                 if( m_bKinsokuTail
00287                  && (nMaxLineSize - nPosX < 4)
00288                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00289                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00290                 {   /* 行末禁則する && 行末付近 && 行頭でないこと(無限に禁則してしまいそう) */
00291                     // 2005-09-02 D.S.Koba GetSizeOfChar
00292                     int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00293                     int nCharChars3 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00294
00295                     if( IsKinsokuPosTail( nMaxLineSize - nPosX, nCharChars2, nCharChars3 )
00296                         && IsKinsokuTail( &pLine[nPos], nCharChars2 ) )
00297                     {
00298                         //nPos += nCharChars2; nPosX += nCharChars2;
00299                         nWordBgn = nPos;
00300                         nWordLen = nCharChars2;
00301                         nKinsokuType = KINSOKU_TYPE_KINSOKU_TAIL;
00302                         AddLineBottom( CreateLayout(pCDocLine, nLineNum, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00303                         m_nLineTypeBot = nCOMMENTMODE;
00304                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00305                         nBgn = nPos;
00306                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00307                         nPosX = nIndent = (this->*getIndentOffset)( m_pLayoutBot );
00308                         pLayoutCalculated = m_pLayoutBot;
00309                     }
00310                 }
00311                 //@@@ 2002.04.08 MIK end
00312             }   //if( KINSOKU_TYPE_NONE != nKinsokuTyoe ) 禁則処理中
00313
00314             //@@@ 2002.09.22 YAZAKI
00315             bool bGotoSEARCH_START = CheckColorMODE( nCOMMENTMODE, nCOMMENTEND, nPos, nLineLen, pLine );
00316             if ( bGotoSEARCH_START )
00317                 goto SEARCH_START;
00318
00319             if( pLine[nPos] == TAB ){
00320                 //  Sep. 23, 2002 genta せっかく作ったので関数を使う
00321                 int nCharChars2 = GetActualTabSpace( nPosX );
00322                 if( nPosX + nCharChars2 > nMaxLineSize ){
00323                     AddLineBottom( CreateLayout(pCDocLine, nLineNum, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00324                     m_nLineTypeBot = nCOMMENTMODE;
00325                     nCOMMENTMODE_Prev = nCOMMENTMODE;
00326                     nBgn = nPos;
00327                     // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00328                     nPosX = nIndent = (this->*getIndentOffset)( m_pLayoutBot );
00329                     pLayoutCalculated = m_pLayoutBot;
00330                     continue;
00331                 }
00332                 nPosX += nCharChars2;
00333                 nCharChars2 = 1;
00334                 nPos+= nCharChars2;
00335             }else{
00336                 // 2005-09-02 D.S.Koba GetSizeOfChar
00337                 int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00338                 if( 0 == nCharChars2 ){
00339                     nCharChars2 = 1;
00340                     break;  //@@@ 2002.04.16 MIK
00341                 }
00342                 if( nPosX + nCharChars2 > nMaxLineSize ){
00343                     if( nKinsokuType != KINSOKU_TYPE_KINSOKU_KUTO )
00344                     {
00345                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol) )    //改行文字をぶら下げる      //@@@ 2002.04.14 MIK
00346                         {   //@@@ 2002.04.14 MIK
00347                             AddLineBottom( CreateLayout(pCDocLine, nLineNum, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00348                             m_nLineTypeBot = nCOMMENTMODE;
00349                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00350                             nBgn = nPos;
00351                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00352                             nPosX = nIndent = (this->*getIndentOffset)( m_pLayoutBot );
00353                             pLayoutCalculated = m_pLayoutBot;
00354                             continue;
00355                         }   //@@@ 2002.04.14 MIK
00356                     }
00357                 }
00358                 nPos+= nCharChars2;
00359                 nPosX += nCharChars2;
00360             }
00361         }
00362         if( nPos - nBgn > 0 ){
00363 // 2002/03/13 novice
00364             if( nCOMMENTMODE == COLORIDX_COMMENT ){ /* 行コメントである */
00365                 nCOMMENTMODE = COLORIDX_TEXT;
00366             }
00367             AddLineBottom( CreateLayout(pCDocLine, nLineNum, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00368             m_nLineTypeBot = nCOMMENTMODE;
00369             nCOMMENTMODE_Prev = nCOMMENTMODE;
00370         }
00371         nLineNum++;
00372         if( NULL != hwndProgress && 0 < nAllLineNum && 0 == ( nLineNum % 1024 ) ){
00373             ::PostMessage( hwndProgress, PBM_SETPOS, nLineNum * 100 / nAllLineNum , 0 );
00374             /* 処理中のユーザー操作を可能にする */
00375             if( !::BlockingHook( NULL ) ){
00376                 return;
00377             }
00378         }
00379 //      pLine = m_pcDocLineMgr->GetNextLinrStr( &nLineLen );
00380         pCDocLine = pCDocLine->m_pNext;;
00381 // 2002/03/13 novice
00382         if( nCOMMENTMODE_Prev == COLORIDX_COMMENT ){    /* 行コメントである */
00383             nCOMMENTMODE_Prev = COLORIDX_TEXT;
00384         }
00385         nCOMMENTMODE = nCOMMENTMODE_Prev;
00386         nCOMMENTEND = 0;
00387     }
00388     m_nPrevReferLine = 0;
00389     m_pLayoutPrevRefer = NULL;
00390 //  m_pLayoutCurrent = NULL;
00391
00392     if( NULL != hwndProgress ){
00393         ::PostMessage( hwndProgress, PBM_SETPOS, 0, 0 );
00394         /* 処理中のユーザー操作を可能にする */
00395         if( !::BlockingHook( NULL ) ){
00396             return;
00397         }
00398     }
00399     return;
00400 }
00401
00402
00403
00404
00405
00419 int CLayoutMgr::DoLayout_Range(
00420             CLayout* pLayoutPrev,
00421             int     nLineNum,
00422             int     nDelLogicalLineFrom,
00423             int     nDelLogicalColFrom,
00424             int     nCurrentLineType,
00425             int*    pnExtInsLineNum
00426 )
00427 {
00428     int         nLineNumWork;
00429     int         nLineLen;
00430     int         nCurLine;
00431     CDocLine*   pCDocLine;
00432     const char* pLine;
00433     int         nBgn;
00435     int         nPos;
00436     /*  表示上のX位置
00437         2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00438     */
00439     int         nPosX;
00440     CLayout*    pLayout;
00441     int         nModifyLayoutLinesNew;
00442     int         nCOMMENTMODE;
00443     int         nCOMMENTMODE_Prev;
00444     int         nCOMMENTEND;
00445     bool        bNeedChangeCOMMENTMODE = false; //@@@ 2002.09.23 YAZAKI bAddを名称変更
00446     int         nWordBgn;
00447     int         nWordLen;
00448     int         nKinsokuType;   //@@@ 2002.04.20 MIK
00449
00450     int         nIndent;            //  インデント幅
00451     CLayout*    pLayoutCalculated;  //  インデント幅計算済みのCLayout.
00452
00453     //  2004.04.09 genta 関数内では値が変化しないのでループの外に出す
00454     int         nMaxLineSize= m_nMaxLineSize;
00455
00456     nLineNumWork = 0;
00457     *pnExtInsLineNum = 0;
00458     //  Jun. 22, 2005 Moca 最後の行[EOFのみ]のためにはlinenum==0でも処理が必要
00459     //if( 0 == nLineNum ){
00460     //  return 0;
00461     //}
00462     pLayout = pLayoutPrev;
00463     if( NULL == pLayout ){
00464         nCurLine = 0;
00465     }else{
00466         nCurLine = pLayout->m_nLinePhysical + 1;
00467     }
00468     nCOMMENTMODE = nCurrentLineType;
00469     nCOMMENTMODE_Prev = nCOMMENTMODE;
00470
00471 //  pLine = m_pcDocLineMgr->GetLineStr( nCurLine, &nLineLen );
00472     pCDocLine = m_pcDocLineMgr->GetLineInfo( nCurLine );
00473
00474
00475
00476 //  if( nCOMMENTMODE_Prev == 1 ){   /* 行コメントである */
00477 //      nCOMMENTMODE_Prev = 0;
00478 //  }
00479 //  nCOMMENTMODE = nCOMMENTMODE_Prev;
00480     nCOMMENTEND = 0;
00481
00482     nModifyLayoutLinesNew = 0;
00483
00484     // 2006.12.01 Moca 途中にまで再構築した場合にEOF位置がずれたまま
00485     //  更新されないので，範囲にかかわらず必ずリセットする．
00486     m_nEOFColumn = -1;
00487     m_nEOFLine = -1;
00488
00489     while( NULL != pCDocLine ){
00490         pLine = pCDocLine->m_pLine->GetPtr( &nLineLen );
00491         nPosX = 0;
00492         nBgn = 0;
00493         nPos = 0;
00494         nWordBgn = 0;
00495         nWordLen = 0;
00496         nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00497
00498         int nEol = pCDocLine->m_cEol.GetLen();
00499         int nEol_1 = nEol - 1;
00500         if( 0 > nEol_1 ){
00501             nEol_1 = 0;
00502         }
00503
00504         nIndent = 0;                //  インデント幅
00505         pLayoutCalculated = pLayout;    //  インデント幅計算済みのCLayout.
00506
00507         while( nPos < nLineLen - nEol_1 ){
00508             //  インデント幅の計算コストを下げるための方策
00509             if ( pLayout &&
00510                  pLayout != pLayoutCalculated ){
00511                 //  計算
00512                 //  Oct, 1, 2002 genta Indentサイズを取得するように変更
00513                 nIndent = (this->*getIndentOffset)( pLayout );
00514                 // 2004.03.28 Moca nMaxLineSizeを引く方法だと、タブ幅の計算が合わないので、nPosXの初期値をnIndentにする
00515                 //  nMaxLineSize = m_nMaxLineSize - nIndent;
00516                 //  計算済み
00517                 pLayoutCalculated = pLayout;
00518             }
00519
00520             SEARCH_START:;
00521
00522             //禁則処理中ならスキップする    @@@ 2002.04.20 MIK
00523             if( KINSOKU_TYPE_NONE != nKinsokuType )
00524             {
00525                 //禁則処理の最後尾に達したら禁則処理中を解除する
00526                 if( nPos >= nWordBgn + nWordLen )
00527                 {
00528                     if( nKinsokuType == KINSOKU_TYPE_KINSOKU_KUTO
00529                      && nPos == nWordBgn + nWordLen )
00530                     {
00531                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol ) )   //改行文字をぶら下げる      //@@@ 2002.04.14 MIK
00532                         {
00533                             //@@@ 2002.09.23 YAZAKI 最適化
00534                             if( bNeedChangeCOMMENTMODE ){
00535                                 pLayout = pLayout->m_pNext;
00536                                 pLayout->m_nTypePrev = nCOMMENTMODE_Prev;
00537                                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00538                             }
00539                             else {
00540                                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, nCurLine, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00541                             }
00542                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00543
00544                             nBgn = nPos;
00545                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00546                             nPosX = nIndent = (this->*getIndentOffset)( pLayout );
00547                             pLayoutCalculated = pLayout;
00548                             if( ( nDelLogicalLineFrom == nCurLine && nDelLogicalColFrom < nPos ) ||
00549                                 ( nDelLogicalLineFrom < nCurLine )
00550                             ){
00551                                 (nModifyLayoutLinesNew)++;;
00552                             }
00553                         }
00554                     }
00555
00556                     nWordLen = 0;
00557                     nKinsokuType = KINSOKU_TYPE_NONE;   //@@@ 2002.04.20 MIK
00558                 }
00559             }
00560             else
00561             {
00562
00563                 /* ワードラップ処理 */
00564                 if( m_bWordWrap /* 英文ワードラップをする */
00565                  && nKinsokuType == KINSOKU_TYPE_NONE )
00566                 {
00567                     /* 英単語の先頭か */
00568                     // 2005-09-02 D.S.Koba GetSizeOfChar
00569                     int nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00570                     if( 0 == nCharChars ){
00571                         nCharChars = 1;
00572                     }
00573                     if( nPos >= nBgn &&
00574                         nCharChars == 1 &&
00575                         IS_KEYWORD_CHAR( pLine[nPos] )
00576                     ){
00577                         /* キーワード文字列の終端を探す */
00578                         int i;
00579                         // 2005-08-27 D.S.Koba 簡略化
00580                         for( i = nPos + 1; i < nLineLen; ++i ){
00581                             // 2005-09-02 D.S.Koba GetSizeOfChar
00582                             int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, i );
00583                             if( 0 == nCharChars2 ){
00584                                 nCharChars2 = 1;
00585                             }
00586                             if( nCharChars2 != 1 || !IS_KEYWORD_CHAR( pLine[i] ) ){
00587                                 break;
00588                             }
00589                         }
00590                         nWordBgn = nPos;
00591                         nWordLen = i - nPos;
00592                         nKinsokuType = KINSOKU_TYPE_WORDWRAP;   //@@@ 2002.04.20 MIK
00593
00594                         if( nPosX + i - nPos >= nMaxLineSize
00595                          && nPos - nBgn > 0
00596                         ){
00597                             //@@@ 2002.09.23 YAZAKI 最適化
00598                             if( bNeedChangeCOMMENTMODE ){
00599                                 pLayout = pLayout->m_pNext;
00600                                 pLayout->m_nTypePrev = nCOMMENTMODE_Prev;
00601                                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00602                             }
00603                             else {
00604                                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, nCurLine, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00605                             }
00606                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00607
00608                             nBgn = nPos;
00609                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00610                             nPosX = nIndent = (this->*getIndentOffset)( pLayout );
00611                             pLayoutCalculated = pLayout;
00612                             if( ( nDelLogicalLineFrom == nCurLine && nDelLogicalColFrom < nPos ) ||
00613                                 ( nDelLogicalLineFrom < nCurLine )
00614                             ){
00615                                 (nModifyLayoutLinesNew)++;;
00616                             }
00617 //?                         continue;
00618                         }
00619                     }
00620                 }
00621
00622                 //@@@ 2002.04.07 MIK start
00623                 /* 句読点のぶらさげ */
00624                 if( m_bKinsokuKuto
00625                  && (nMaxLineSize - nPosX < 2)
00626                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00627                 {
00628                     // 2005-09-02 D.S.Koba GetSizeOfChar
00629                     int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00630
00631                     if( IsKinsokuPosKuto( nMaxLineSize - nPosX, nCharChars2 )
00632                         && IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )
00633                     {
00634                         //nPos += nCharChars2; nPosX += nCharChars2;
00635                         nWordBgn = nPos;
00636                         nWordLen = nCharChars2;
00637                         nKinsokuType = KINSOKU_TYPE_KINSOKU_KUTO;
00638                     }
00639                 }
00640
00641                 /* 行頭禁則 */
00642                 if( m_bKinsokuHead
00643                  && (nMaxLineSize - nPosX < 4)
00644                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00645                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00646                 {
00647                     // 2005-09-02 D.S.Koba GetSizeOfChar
00648                     int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00649                     int nCharChars3 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00650
00651                     if( IsKinsokuPosHead( nMaxLineSize - nPosX, nCharChars2, nCharChars3 )
00652                      && IsKinsokuHead( &pLine[nPos+nCharChars2], nCharChars3 )
00653                      && ! IsKinsokuHead( &pLine[nPos], nCharChars2 )    //1文字前が行頭禁則でない
00654                      && ! IsKinsokuKuto( &pLine[nPos], nCharChars2 ) )  //句読点でない
00655                     {
00656                         //nPos += nCharChars2 + nCharChars3; nPosX += nCharChars2 + nCharChars3;
00657                         nWordBgn = nPos;
00658                         nWordLen = nCharChars2 + nCharChars3;
00659                         nKinsokuType = KINSOKU_TYPE_KINSOKU_HEAD;
00660                         //@@@ 2002.09.23 YAZAKI 最適化
00661                         if( bNeedChangeCOMMENTMODE ){
00662                             pLayout = pLayout->m_pNext;
00663                             pLayout->m_nTypePrev = nCOMMENTMODE_Prev;
00664                             (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00665                         }
00666                         else {
00667                             pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, nCurLine, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00668                         }
00669                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00670
00671                         nBgn = nPos;
00672                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00673                         nPosX = nIndent = (this->*getIndentOffset)( pLayout );
00674                         pLayoutCalculated = pLayout;
00675                         if( ( nDelLogicalLineFrom == nCurLine && nDelLogicalColFrom < nPos ) ||
00676                             ( nDelLogicalLineFrom < nCurLine )
00677                         ){
00678                             (nModifyLayoutLinesNew)++;;
00679                         }
00680                     }
00681                 }
00682
00683                 /* 行末禁則 */
00684                 if( m_bKinsokuTail
00685                  && (nMaxLineSize - nPosX < 4)
00686                  && ( nPosX > nIndent ) //  2004.04.09 nPosXの解釈変更のため，行頭チェックも変更
00687                  && (nKinsokuType == KINSOKU_TYPE_NONE) )
00688                 {   /* 行末禁則する && 行末付近 && 行頭でないこと(無限に禁則してしまいそう) */
00689                     // 2005-09-02 D.S.Koba GetSizeOfChar
00690                     int nCharChars2 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00691                     int nCharChars3 = CMemory::GetSizeOfChar( pLine, nLineLen, nPos+nCharChars2 );
00692
00693                     if( IsKinsokuPosTail( nMaxLineSize - nPosX, nCharChars2, nCharChars3 )
00694                         && IsKinsokuTail( &pLine[nPos], nCharChars2 ) )
00695                     {
00696                         //nPos += nCharChars2; nPosX += nCharChars2;
00697                         nWordBgn = nPos;
00698                         nWordLen = nCharChars2;
00699                         nKinsokuType = KINSOKU_TYPE_KINSOKU_TAIL;
00700                         //@@@ 2002.09.23 YAZAKI 最適化
00701                         if( bNeedChangeCOMMENTMODE ){
00702                             pLayout = pLayout->m_pNext;
00703                             pLayout->m_nTypePrev = nCOMMENTMODE_Prev;
00704                             (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00705                         }
00706                         else {
00707                             pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, nCurLine, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00708                         }
00709                         nCOMMENTMODE_Prev = nCOMMENTMODE;
00710
00711                         nBgn = nPos;
00712                         // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00713                         nPosX = nIndent = (this->*getIndentOffset)( pLayout );
00714                         pLayoutCalculated = pLayout;
00715                         if( ( nDelLogicalLineFrom == nCurLine && nDelLogicalColFrom < nPos ) ||
00716                             ( nDelLogicalLineFrom < nCurLine )
00717                         ){
00718                             (nModifyLayoutLinesNew)++;;
00719                         }
00720                     }
00721                 }
00722                 //@@@ 2002.04.08 MIK end
00723             }   // if( nKinsokuType != KINSOKU_TYPE_NONE )
00724
00725             //@@@ 2002.09.22 YAZAKI
00726             bool bGotoSEARCH_START = CheckColorMODE( nCOMMENTMODE, nCOMMENTEND, nPos, nLineLen, pLine );
00727             if ( bGotoSEARCH_START )
00728                 goto SEARCH_START;
00729
00730             int nCharChars;
00731             if( pLine[nPos] == TAB ){
00732                 //  Sep. 23, 2002 genta せっかく作ったので関数を使う
00733                 nCharChars = GetActualTabSpace( nPosX );
00734                 if( nPosX + nCharChars > nMaxLineSize ){
00735                     //@@@ 2002.09.23 YAZAKI 最適化
00736                     if( bNeedChangeCOMMENTMODE ){
00737                         pLayout = pLayout->m_pNext;
00738                         pLayout->m_nTypePrev = nCOMMENTMODE_Prev;
00739                         (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00740                     }
00741                     else {
00742                         pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, nCurLine, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00743                     }
00744                     nCOMMENTMODE_Prev = nCOMMENTMODE;
00745
00746                     nBgn = nPos;
00747                     // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00748                     nPosX = nIndent = (this->*getIndentOffset)( pLayout );
00749                     pLayoutCalculated = pLayout;
00750                     if( ( nDelLogicalLineFrom == nCurLine && nDelLogicalColFrom < nPos ) ||
00751                         ( nDelLogicalLineFrom < nCurLine )
00752                     ){
00753                         (nModifyLayoutLinesNew)++;;
00754                     }
00755                     continue;
00756                 }
00757                 nPos++;
00758             }else{
00759                 // 2005-09-02 D.S.Koba GetSizeOfChar
00760                 nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, nPos );
00761                 if( 0 == nCharChars ){
00762                     nCharChars = 1;
00763                     break;  //@@@ 2002.04.16 MIK
00764                 }
00765                 if( nPosX + nCharChars > nMaxLineSize ){
00766                     if( nKinsokuType != KINSOKU_TYPE_KINSOKU_KUTO )
00767                     {
00768                         if( ! (m_bKinsokuRet && (nPos == nLineLen - nEol) && nEol) )    //改行文字をぶら下げる      //@@@ 2002.04.14 MIK
00769                         {   //@@@ 2002.04.14 MIK
00770                             //@@@ 2002.09.23 YAZAKI 最適化
00771                             if( bNeedChangeCOMMENTMODE ){
00772                                 pLayout = pLayout->m_pNext;
00773                                 pLayout->m_nTypePrev = nCOMMENTMODE_Prev;
00774                                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00775                             }
00776                             else {
00777                                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, nCurLine, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00778                             }
00779                             nCOMMENTMODE_Prev = nCOMMENTMODE;
00780
00781                             nBgn = nPos;
00782                             // 2004.03.28 Moca nPosXはインデント幅を含むように変更(TAB位置調整のため)
00783                             nPosX = nIndent = (this->*getIndentOffset)( pLayout );
00784                             pLayoutCalculated = pLayout;
00785                             if( ( nDelLogicalLineFrom == nCurLine && nDelLogicalColFrom < nPos ) ||
00786                                 ( nDelLogicalLineFrom < nCurLine )
00787                             ){
00788                                 (nModifyLayoutLinesNew)++;;
00789                             }
00790                             continue;
00791                         }
00792                     }
00793                 }
00794                 nPos+= nCharChars;
00795             }
00796
00797             nPosX += nCharChars;
00798         }
00799         if( nPos - nBgn > 0 ){
00800 // 2002/03/13 novice
00801             if( nCOMMENTMODE == COLORIDX_COMMENT ){ /* 行コメントである */
00802                 nCOMMENTMODE = COLORIDX_TEXT;
00803             }
00804             //@@@ 2002.09.23 YAZAKI 最適化
00805             if( bNeedChangeCOMMENTMODE ){
00806                 pLayout = pLayout->m_pNext;
00807                 pLayout->m_nTypePrev = nCOMMENTMODE_Prev;
00808                 (*pnExtInsLineNum)++;                               //  再描画してほしい行数+1
00809             }
00810             else {
00811                 pLayout = InsertLineNext( pLayout, CreateLayout(pCDocLine, nCurLine, nBgn, nPos - nBgn, nCOMMENTMODE_Prev, nIndent) );
00812             }
00813             nCOMMENTMODE_Prev = nCOMMENTMODE;
00814
00815             if( ( nDelLogicalLineFrom == nCurLine && nDelLogicalColFrom < nPos ) ||
00816                 ( nDelLogicalLineFrom < nCurLine )
00817             ){
00818                 (nModifyLayoutLinesNew)++;;
00819             }
00820         }
00821
00822         nLineNumWork++;
00823         nCurLine++;
00824
00825         /* 目的の行数(nLineNum)に達したか、または通り過ぎた（＝行数が増えた）か確認 */
00826         //@@@ 2002.09.23 YAZAKI 最適化
00827         if( nLineNumWork >= nLineNum ){
00828             if( NULL != pLayout
00829              && NULL != pLayout->m_pNext
00830              && ( nCOMMENTMODE_Prev != pLayout->m_pNext->m_nTypePrev )
00831             ){
00832                 //  COMMENTMODEが異なる行が増えましたので、次の行→次の行と更新していきます。
00833                 bNeedChangeCOMMENTMODE = true;
00834             }else{
00835                 break;  //  while( NULL != pCDocLine ) 終了
00836             }
00837         }
00838 //      pLine = m_pcDocLineMgr->GetNextLinrStr( &nLineLen );
00839         pCDocLine = pCDocLine->m_pNext;
00840 // 2002/03/13 novice
00841         if( nCOMMENTMODE_Prev == COLORIDX_COMMENT ){    /* 行コメントである */
00842             nCOMMENTMODE_Prev = COLORIDX_TEXT;
00843         }
00844         nCOMMENTMODE = nCOMMENTMODE_Prev;
00845         nCOMMENTEND = 0;
00846
00847     }
00848
00849     // 2004.03.28 Moca EOFだけの論理行の直前の行の色分けが確認・更新された
00850     if( nCurLine == m_pcDocLineMgr->GetLineCount() ){
00851         m_nLineTypeBot = nCOMMENTMODE_Prev;
00852         // 2006.10.01 Moca 最終行が変更された。EOF位置情報を破棄する。
00853         m_nEOFColumn = -1;
00854         m_nEOFLine = -1;
00855     }
00856
00857 // 1999.12.22 レイアウト情報がなくなる訳ではないので
00858 //  m_nPrevReferLine = 0;
00859 //  m_pLayoutPrevRefer = NULL;
00860 //  m_pLayoutCurrent = NULL;
00861
00862     return nModifyLayoutLinesNew;
00863 }
00864
00873 bool CLayoutMgr::IsKinsokuHead( const char *pLine, int length )
00874 {
00875     const unsigned char *p;
00876
00877     if(      length == 1 ) p = (const unsigned char *)m_pszKinsokuHead_1;
00878     else if( length == 2 ) p = (const unsigned char *)m_pszKinsokuHead_2;
00879     else return false;
00880
00881     if( ! p ) return false;
00882
00883     for( ; *p; p += length )
00884     {
00885         if( memcmp( pLine, p, length ) == 0 ) return true;
00886     }
00887
00888     return false;
00889 }
00890
00899 bool CLayoutMgr::IsKinsokuTail( const char *pLine, int length )
00900 {
00901     const unsigned char *p;
00902
00903     if(      length == 1 ) p = (const unsigned char *)m_pszKinsokuTail_1;
00904     else if( length == 2 ) p = (const unsigned char *)m_pszKinsokuTail_2;
00905     else return false;
00906
00907     if( ! p ) return false;
00908
00909     for( ; *p; p += length )
00910     {
00911         if( memcmp( pLine, p, length ) == 0 ) return true;
00912     }
00913
00914     return false;
00915 }
00916
00926 bool CLayoutMgr::IsKutoTen( unsigned char c1, unsigned char c2 )
00927 {
00928     static const char   *KUTOTEN_1 = "｡､,.";
00929     static const char   *KUTOTEN_2 = "。、，．";
00930     unsigned const char *p;
00931
00932     if( c2 )    //全角
00933     {
00934         for( p = (const unsigned char *)KUTOTEN_2; *p; p += 2 )
00935         {
00936             if( *p == c1 && *(p + 1) == c2 ) return true;
00937         }
00938     }
00939     else        //半角
00940     {
00941         for( p = (const unsigned char *)KUTOTEN_1; *p; p++ )
00942         {
00943             if( *p == c1 ) return true;
00944         }
00945     }
00946
00947     return false;
00948 }
00949
00958 bool CLayoutMgr::IsKinsokuKuto( const char *pLine, int length )
00959 {
00960     const unsigned char *p;
00961
00962     if(      length == 1 ) p = (const unsigned char *)m_pszKinsokuKuto_1;
00963     else if( length == 2 ) p = (const unsigned char *)m_pszKinsokuKuto_2;
00964     else return false;
00965
00966     if( ! p ) return false;
00967
00968     for( ; *p; p += length )
00969     {
00970         if( memcmp( pLine, p, length ) == 0 ) return true;
00971     }
00972
00973     return false;
00974 }
00975
00977 //  @date 2005-08-20 D.S.Koba DoLayout()とDoLayout_Range()から分離
00978 //*/
00979 //bool CLayoutMgr::IsKinsokuPosKuto(const int nMaxLineSize, const int nPosX, const int nCharChars)
00980 //{
00981 //  switch( nMaxLineSize - nPosX )
00982 //  {
00983 //  case 1: // 1文字前
00984 //      if( nCharChars == 2 ){
00985 //          return true;
00986 //      }
00987 //      break;
00988 //  case 0: //
00989 //      if( nCharChars == 1 || nCharChars == 2 ){
00990 //          return true;
00991 //      }
00992 //      break;
00993 //  }
00994 //  return false;
00995 //}
00996
01004 bool CLayoutMgr::IsKinsokuPosHead(const int nRest,
01005                                   const int nCharChars, const int nCharChars2)
01006 {
01007     switch( nRest )
01008     {
01009     //    321012  ↓マジックナンバー
01010     // 3 "る）" : 22 "）"の2バイト目で折り返しのとき
01011     // 2  "Z）" : 12 "）"の2バイト目で折り返しのとき
01012     // 2  "る）": 22 "）"で折り返しのとき
01013     // 2  "る)" : 21 ")"で折り返しのとき
01014     // 1   "Z）": 12 "）"で折り返しのとき
01015     // 1   "Z)" : 11 ")"で折り返しのとき
01016     //↑何文字前か？
01017     // ※ただし、"るZ"部分が禁則なら処理しない。
01018     case 3: // 3文字前
01019         if( nCharChars == 2 && nCharChars2 == 2 ){
01020             return true;
01021         }
01022         break;
01023     case 2: // 2文字前
01024         if( nCharChars == 2 /*&& nCharChars2 > 0*/ ){
01025             return true;
01026         }
01027         else if( nCharChars == 1 && nCharChars2 == 2 ){
01028             return true;
01029         }
01030         break;
01031     case 1: // 1文字前
01032         if( nCharChars == 1 /*&& nCharChars2 > 0*/ ){
01033             return true;
01034         }
01035         break;
01036     }
01037     return false;
01038 }
01039
01047 bool CLayoutMgr::IsKinsokuPosTail(const int nRest,
01048                                   const int nCharChars, const int nCharChars2)
01049 {
01050     switch( nRest )
01051     {
01052     case 3: // 3文字前
01053         if( nCharChars == 2 && nCharChars2 == 2){
01054             // "（あ": "あ"の2バイト目で折り返しのとき
01055             return true;
01056         }
01057         break;
01058     case 2: // 2文字前
01059         if( nCharChars == 2 ){
01060             // "（あ": "あ"で折り返しのとき
01061             return true;
01062         }else if( nCharChars == 1 && nCharChars2 == 2){
01063             // "(あ": "あ"の2バイト目で折り返しのとき
01064             return true;
01065         }
01066         break;
01067     case 1: // 1文字前
01068         if( nCharChars == 1 ){
01069             // "(あ": "あ"で折り返しのとき
01070             return true;
01071         }
01072         break;
01073     }
01074     return false;
01075 }
01076
01077 int CLayoutMgr::Match_Quote( char szQuote, int nPos, int nLineLen, const char* pLine )
01078 {
01079     int nCharChars;
01080     int i;
01081     for( i = nPos; i < nLineLen; ++i ){
01082         // 2005-09-02 D.S.Koba GetSizeOfChar
01083         nCharChars = CMemory::GetSizeOfChar( (const char *)pLine, nLineLen, i );
01084         if( 0 == nCharChars ){
01085             nCharChars = 1;
01086         }
01087         if( m_nStringType == 0 ){   /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01088             if( 1 == nCharChars && pLine[i] == '\\' ){
01089                 ++i;
01090             }else
01091             if( 1 == nCharChars && pLine[i] == szQuote ){
01092                 return i + 1;
01093             }
01094         }else
01095         if( m_nStringType == 1 ){   /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
01096             if( 1 == nCharChars && pLine[i] == szQuote ){
01097                 if( i + 1 < nLineLen && pLine[i + 1] == szQuote ){
01098                     ++i;
01099                 }else{
01100                     return i + 1;
01101                 }
01102             }
01103         }
01104         if( 2 == nCharChars ){
01105             ++i;
01106         }
01107     }
01108     return nLineLen;
01109 }
01110
01111 bool CLayoutMgr::CheckColorMODE( int &nCOMMENTMODE, int &nCOMMENTEND, int nPos, int nLineLen, const char* pLine )
01112 {
01113     switch( nCOMMENTMODE ){
01114     case COLORIDX_TEXT: // 2002/03/13 novice
01115         // 2005.11.20 Mocaコメントの色分けがON/OFF関係なく行われていたバグを修正
01116         if( m_bDispComment && m_cLineComment.Match( nPos, nLineLen, pLine ) ){
01117             nCOMMENTMODE = COLORIDX_COMMENT;    /* 行コメントである */ // 2002/03/13 novice
01118         }else
01119         if( m_bDispComment && m_cBlockComment.Match_CommentFrom( 0, nPos, nLineLen, pLine ) ){
01120             nCOMMENTMODE = COLORIDX_BLOCK1; /* ブロックコメント1である */ // 2002/03/13 novice
01121             /* この物理行にブロックコメントの終端があるか */
01122             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 0, nPos + m_cBlockComment.getBlockFromLen(0), nLineLen, pLine );
01123 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
01124         }else
01125         if( m_bDispComment &&  m_cBlockComment.Match_CommentFrom( 1, nPos, nLineLen, pLine ) ){
01126             nCOMMENTMODE = COLORIDX_BLOCK2; /* ブロックコメント2である */ // 2002/03/13 novice
01127             /* この物理行にブロックコメントの終端があるか */
01128             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 1, nPos + m_cBlockComment.getBlockFromLen(1), nLineLen, pLine );
01129 //#endif
01130         }else
01131         if( m_bDispSString && /* シングルクォーテーション文字列を表示する */
01132             pLine[nPos] == '\''
01133         ){
01134             nCOMMENTMODE = COLORIDX_SSTRING;    /* シングルクォーテーション文字列である */ // 2002/03/13 novice
01135             /* シングルクォーテーション文字列の終端があるか */
01136             nCOMMENTEND = Match_Quote( '\'', nPos + 1, nLineLen, pLine );
01137         }else
01138         if( m_bDispWString && /* ダブルクォーテーション文字列を表示する */
01139             pLine[nPos] == '"'
01140         ){
01141             nCOMMENTMODE = COLORIDX_WSTRING;    /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
01142             /* ダブルクォーテーション文字列の終端があるか */
01143             nCOMMENTEND = Match_Quote( '"', nPos + 1, nLineLen, pLine );
01144         }
01145         break;
01146     case COLORIDX_COMMENT:  /* 行コメントである */ // 2002/03/13 novice
01147         break;
01148     case COLORIDX_BLOCK1:   /* ブロックコメント1である */ // 2002/03/13 novice
01149         if( 0 == nCOMMENTEND ){
01150             /* この物理行にブロックコメントの終端があるか */
01151             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 0, nPos, nLineLen, pLine );
01152         }else
01153         if( nPos == nCOMMENTEND ){
01154             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01155             return true;
01156         }
01157         break;
01158 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
01159     case COLORIDX_BLOCK2:   /* ブロックコメント2である */ // 2002/03/13 novice
01160         if( 0 == nCOMMENTEND ){
01161             /* この物理行にブロックコメントの終端があるか */
01162             nCOMMENTEND = m_cBlockComment.Match_CommentTo( 1, nPos, nLineLen, pLine );
01163         }else
01164         if( nPos == nCOMMENTEND ){
01165             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01166             return true;
01167         }
01168         break;
01169 //#endif
01170     case COLORIDX_SSTRING:  /* シングルクォーテーション文字列である */ // 2002/03/13 novice
01171         if( 0 == nCOMMENTEND ){
01172             /* シングルクォーテーション文字列の終端があるか */
01173             nCOMMENTEND = Match_Quote( '\'', nPos, nLineLen, pLine );
01174         }else
01175         if( nPos == nCOMMENTEND ){
01176             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01177             return true;
01178         }
01179         break;
01180     case COLORIDX_WSTRING:  /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
01181         if( 0 == nCOMMENTEND ){
01182             /* ダブルクォーテーション文字列の終端があるか */
01183             nCOMMENTEND = Match_Quote( '"', nPos, nLineLen, pLine );
01184         }else
01185         if( nPos == nCOMMENTEND ){
01186             nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
01187             return true;
01188         }
01189         break;
01190     }
01191     return false;
01192 }
01193
01205 int CLayoutMgr::getIndentOffset_Normal( CLayout* )
01206 {
01207     return 0;
01208 }
01209
01222 int CLayoutMgr::getIndentOffset_Tx2x( CLayout* pLayoutPrev )
01223 {
01224     //  前の行が無いときは、インデント不要。
01225     if ( pLayoutPrev == NULL ) return 0;
01226
01227     int nIpos = pLayoutPrev->GetIndent();
01228
01229     //  前の行が折り返し行ならばそれに合わせる
01230     if( pLayoutPrev->m_nOffset > 0 )
01231         return nIpos;
01232
01233     CMemoryIterator<CLayout> it( pLayoutPrev, m_nTabSpace );
01234     while( !it.end() ){
01235         it.scanNext();
01236         if ( it.getIndexDelta() == 1 && it.getCurrentChar() == TAB ){
01237             nIpos = it.getColumn() + it.getColumnDelta();
01238         }
01239         it.addDelta();
01240     }
01241     if ( m_nMaxLineSize - nIpos < 6 ){
01242         nIpos = pLayoutPrev->GetIndent();   //  あきらめる
01243     }
01244     return nIpos;   //  インデント
01245 }
01246
01258 int CLayoutMgr::getIndentOffset_LeftSpace( CLayout* pLayoutPrev )
01259 {
01260     //  前の行が無いときは、インデント不要。
01261     if ( pLayoutPrev == NULL ) return 0;
01262
01263     //  インデントの計算
01264     int nIpos = pLayoutPrev->GetIndent();
01265
01266     //  Oct. 5, 2002 genta
01267     //  折り返しの3行目以降は1つ前の行のインデントに合わせる．
01268     if( pLayoutPrev->m_nOffset > 0 )
01269         return nIpos;
01270
01271     //  2002.10.07 YAZAKI インデントの計算
01272     CMemoryIterator<CLayout> it( pLayoutPrev, m_nTabSpace );
01273
01274     //  Jul. 20, 2003 genta 自動インデントに準じた動作にする
01275     bool bZenSpace = m_pcEditDoc->GetDocumentAttribute().m_bAutoIndent_ZENSPACE != FALSE ? 1 : 0;
01276     const char* szSpecialIndentChar = m_pcEditDoc->GetDocumentAttribute().m_szIndentChars;
01277     while( !it.end() ){
01278         it.scanNext();
01279         if (( it.getIndexDelta() == 1 && (it.getCurrentChar() == TAB || it.getCurrentChar() == ' ') ) ||
01280             //  Jul. 20, 2003 genta 全角スペース対応
01281             ( bZenSpace && it.getIndexDelta() == 2 &&
01282                 it.getCurrentChar() == (char)0x81 && it.getCurrentPos()[1] == (char)0x40 ))
01283         {
01284             //  インデントのカウントを継続する
01285         }
01286         //  Jul. 20, 2003 genta インデント対象文字
01287         else if( szSpecialIndentChar[0] != '\0' ){
01288             unsigned char buf[3]; // 文字の長さは1 or 2
01289             memcpy( buf, it.getCurrentPos(), it.getIndexDelta() );
01290             buf[ it.getIndexDelta() ] = '\0';
01291             if( NULL != _mbsstr( (const unsigned char*)szSpecialIndentChar, buf )){
01292                 //  インデントのカウントを継続する
01293             }
01294             else {
01295                 nIpos = it.getColumn(); //  終了
01296                 break;
01297             }
01298         }
01299         else {
01300             nIpos = it.getColumn(); //  終了
01301             break;
01302         }
01303         it.addDelta();
01304     }
01305     if ( m_nMaxLineSize - nIpos < 6 ){
01306         nIpos = pLayoutPrev->GetIndent();   //  あきらめる
01307     }
01308     return nIpos;   //  インデント
01309 }
01310
01311 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr_New2.cpp

CLayoutMgr_New2.cpp

テキストのレイアウト情報管理 [詳細]

#include "stdafx.h"
#include "CLayoutMgr.h"
#include "charcode.h"
#include "etc_uty.h"
#include "debug.h"
#include <commctrl.h>
#include <stdlib.h>
#include "CLayout.h"
#include "CDocLineMgr.h"

CLayoutMgr_New2.cppのインクルード依存関係図

ソースコードを見る。

説明

テキストのレイアウト情報管理

作者:
Norio Nakatani

CLayoutMgr_New2.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLayoutMgr_New2.cpp ソースファイル

CLayoutMgr_New2.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, MIK, aroka
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013 #include "stdafx.h"
00014 #include "CLayoutMgr.h"
00015 #include "charcode.h"
00016 #include "etc_uty.h"
00017 #include "debug.h"
00018 #include <commctrl.h>
00019 #include <stdlib.h>
00020 #include "CLayout.h" // 2002/2/10 aroka
00021 #include "CDocLineMgr.h" // 2002/2/10 aroka
00022
00023
00024
00025 /* 文字列置換 */
00026 void CLayoutMgr::ReplaceData_CLayoutMgr(
00027     LayoutReplaceArg*   pArg
00028 )
00029 {
00030 //  int nDeletedLineNum;    /* 削除した行の総数 */
00031 //  int nInsLineNum;        /* 挿入によって増えた行の数 */
00032 //  int nNewLine;           /* 挿入された部分の次の位置の行 */
00033 //  int nNewPos;            /* 挿入された部分の次の位置のデータ位置 */
00034     int nxFrom;
00035     int nyFrom;
00036     int nxTo;
00037     int nyTo;
00038     CLayout* pLayout;
00039     CLayout* pLayoutWork;
00040     int nCurrentLineType;
00041     int nLineWork;
00042
00043     int nWork_nLines = m_nLines;    //変更前の全行数の保存  @@@ 2002.04.19 MIK
00044
00045     /* 置換先頭位置のレイアウト情報 */
00046     pLayout = (CLayout*)Search( pArg->nDelLineFrom );
00047     nCurrentLineType = 0;
00048     pLayoutWork = pLayout;
00049     nLineWork = pArg->nDelLineFrom;
00050
00051     if( NULL != pLayoutWork ){
00052         while( 0 != pLayoutWork->m_nOffset ){
00053             pLayoutWork = pLayoutWork->m_pPrev;
00054             nLineWork--;
00055         }
00056         nCurrentLineType = pLayoutWork->m_nTypePrev;
00057     }
00058
00059
00060     /*
00061     ||  カーソル位置変換
00062     ||  レイアウト位置(行頭からの表示桁位置、折り返しあり行位置) →
00063     ||  物理位置(行頭からのバイト数、折り返し無し行位置)
00064     */
00065     CaretPos_Log2Phys( pArg->nDelColmFrom, pArg->nDelLineFrom, &nxFrom, &nyFrom );
00066     CaretPos_Log2Phys( pArg->nDelColmTo, pArg->nDelLineTo, &nxTo, &nyTo );
00067
00068     /* 指定範囲のデータを置換(削除 & データを挿入)
00069       Fromを含む位置からToの直前を含むデータを削除する
00070       Fromの位置へテキストを挿入する
00071     */
00072     DocLineReplaceArg DLRArg;
00073     DLRArg.nDelLineFrom = nyFrom;           /* 削除範囲行  From 改行単位の行番号 0開始) */
00074     DLRArg.nDelPosFrom = nxFrom;            /* 削除範囲位置From 改行単位の行頭からのバイト位置 0開始) */
00075     DLRArg.nDelLineTo = nyTo;               /* 削除範囲行  To   改行単位の行番号 0開始) */
00076     DLRArg.nDelPosTo = nxTo;                /* 削除範囲位置To   改行単位の行頭からのバイト位置 0開始) */
00077     DLRArg.pcmemDeleted = pArg->pcmemDeleted;   /* 削除されたデータを保存 */
00078 //  DLRArg.nDeletedLineNum = 0;                 /* 削除した行の総数 */
00079     DLRArg.pInsData = pArg->pInsData;           /* 挿入するデータ */
00080     DLRArg.nInsDataLen = pArg->nInsDataLen;     /* 挿入するデータの長さ */
00081 //  DLRArg.nInsLineNum = 0;                     /* 挿入によって増えた行の数 */
00082 //  DLRArg.nNewLine = 0;                        /* 挿入された部分の次の位置の行 */
00083 //  DLRArg.nNewPos = 0;                         /* 挿入された部分の次の位置のデータ位置 */
00084     m_pcDocLineMgr->ReplaceData(
00085         &DLRArg
00086 #if 0
00087         nyFrom,                 /* 削除範囲行  From 改行単位の行番号 0開始) */
00088         nxFrom,                 /* 削除範囲位置From 改行単位の行頭からのバイト位置 0開始) */
00089         nyTo,                   /* 削除範囲行  To   改行単位の行番号 0開始) */
00090         nxTo,                   /* 削除範囲位置To   改行単位の行頭からのバイト位置 0開始) */
00091         pArg->pcmemDeleted,     /* 削除されたデータを保存 */
00092         &nDeletedLineNum,       /* 削除した行の総数 */
00093
00094         pArg->pInsData,         /* 挿入するデータ */
00095         pArg->nInsDataLen,      /* 挿入するデータの長さ */
00096         &nInsLineNum,           /* 挿入によって増えた行の数 */
00097         &pArg->nNewLine,        /* 挿入された部分の次の位置の行 */
00098         &pArg->nNewPos          /* 挿入された部分の次の位置のデータ位置 */
00099 #endif
00100     );
00101 //  nDeletedLineNum = DLRArg.nDeletedLineNum;   /* 削除した行の総数 */
00102 //  pArg->nInsLineNum = DLRArg.nInsLineNum;     /* 挿入によって増えた行の数 */
00103     pArg->nNewLine = DLRArg.nNewLine;           /* 挿入された部分の次の位置の行 */
00104     pArg->nNewPos = DLRArg.nNewPos;             /* 挿入された部分の次の位置のデータ位置 */
00105
00106
00107
00108 //  DUMP();
00109
00110     /*--- 変更された行のレイアウト情報を再生成 ---*/
00111     /* 論理行の指定範囲に該当するレイアウト情報を削除して */
00112     /* 削除した範囲の直前のレイアウト情報のポインタを返す */
00113
00114     int nAllLinesOld = m_nLines;
00115     int nModifyLayoutLinesOld = 0;
00116     CLayout* pLayoutPrev;
00117     int nWork;
00118     nWork = __max( DLRArg.nDeletedLineNum, DLRArg.nInsLineNum );
00119 //  if( 0 < nWork ){
00120 //      --nWork;
00121 //  }
00122
00123
00124 //  DUMP();
00125
00126     if( NULL != pLayoutWork ){
00127         pLayoutPrev = DeleteLayoutAsLogical(
00128             pLayoutWork,
00129             nLineWork,
00130
00131             nyFrom,
00132             nyFrom + nWork,
00133             nyFrom, nxFrom,
00134             &nModifyLayoutLinesOld
00135         );
00136
00137 //      DUMP();
00138
00139         /* 指定行より後の行のレイアウト情報について、論理行番号を指定行数だけシフトする */
00140         /* 論理行が削除された場合は０より小さい行数 */
00141         /* 論理行が挿入された場合は０より大きい行数 */
00142         if( 0 != DLRArg.nInsLineNum - DLRArg.nDeletedLineNum ){
00143             ShiftLogicalLineNum( pLayoutPrev,
00144                 DLRArg.nInsLineNum - DLRArg.nDeletedLineNum
00145             );
00146         }
00147     }else{
00148         pLayoutPrev = m_pLayoutBot;
00149     }
00150 //  DUMP();
00151
00152     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00153     int nRowNum;
00154     if( NULL == pLayoutPrev ){
00155         if( NULL == m_pLayoutTop ){
00156             nRowNum = m_pcDocLineMgr->GetLineCount();
00157         }else{
00158             nRowNum = m_pLayoutTop->m_nLinePhysical;
00159         }
00160     }else{
00161         if( NULL == pLayoutPrev->m_pNext ){
00162             nRowNum =
00163                 m_pcDocLineMgr->GetLineCount() -
00164                 pLayoutPrev->m_nLinePhysical - 1;
00165         }else{
00166             nRowNum =
00167                 pLayoutPrev->m_pNext->m_nLinePhysical -
00168                 pLayoutPrev->m_nLinePhysical - 1;
00169         }
00170     }
00171
00172     /* 指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする */
00173     int nAddInsLineNum;
00174     pArg->nModLineTo = DoLayout_Range(
00175         pLayoutPrev,
00176         nRowNum,
00177         nyFrom, nxFrom,
00178         nCurrentLineType,
00179         &nAddInsLineNum
00180     );
00181
00182 //  DUMP();
00183
00184     pArg->nAddLineNum = nWork_nLines - m_nLines;    //変更後の全行数との差分    @@@ 2002.04.19 MIK
00185     if( 0 == pArg->nAddLineNum )
00186         pArg->nAddLineNum = nModifyLayoutLinesOld - pArg->nModLineTo;/* nAddInsLineNum;*/   /* 再描画ヒント レイアウト行の増減 */
00187     pArg->nModLineFrom = pArg->nDelLineFrom;    /* 再描画ヒント 変更されたレイアウト行From */
00188     pArg->nModLineTo += ( pArg->nModLineFrom - 1 ) ;    /* 再描画ヒント 変更されたレイアウト行To */
00189
00190 #ifdef _DEBUG
00191 //  MYTRACE( "削除した行の総数( DLRArg.nDeletedLineNum ) == %d \n" , DLRArg.nDeletedLineNum );/* 削除した行の総数 */
00192 //  MYTRACE( "挿入によって増えた行の数( DLRArg.nInsLineNum ) == %d \n" , DLRArg.nInsLineNum );/* 挿入によって増えた行の数 */
00193 //  MYTRACE( "挿入された部分の次の位置の行( nNewLine ) == %d \n" , nNewLine );/* 挿入された部分の次の位置の行 */
00194 //  MYTRACE( "挿入された部分の次の位置のデータ位置( nNewPos ) == %d \n" , nNewPos );/* 挿入された部分の次の位置のデータ位置 */
00195 //  MYTRACE( "nModifyLayoutLinesOld == %d \n" , nModifyLayoutLinesOld );
00196
00197 //  MYTRACE( "\n\n■■■■■■■■■■■■■■\n" );
00198 //  MYTRACE( "再描画ヒント レイアウト行の増減(pArg->nAddLineNum) == %d \n" , pArg->nAddLineNum );
00199 //  MYTRACE( "再描画ヒント 変更されたレイアウト行From(pArg->nModLineFrom) == %d \n" , pArg->nModLineFrom );
00200 //  MYTRACE( "再描画ヒント 変更されたレイアウト行To(pArg->nModLineTo) == %d \n" , pArg->nModLineTo );
00201 #endif
00202
00203 //  DoLayout( NULL, bDispSSTRING, bDispWSTRING );
00204
00205     /* レイアウト位置への変換 */
00206     CaretPos_Phys2Log( pArg->nNewPos, pArg->nNewLine, &pArg->nNewPos, &pArg->nNewLine );
00207
00208     return;
00209 }
00210
00211
00212 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLineComment.cpp

CLineComment.cpp

行コメントデリミタを管理する [詳細]

#include "stdafx.h"
#include "CLineComment.h"
#include "my_icmp.h"

CLineComment.cppのインクルード依存関係図

ソースコードを見る。

説明

行コメントデリミタを管理する

作者:
Yazaki
日付:
2002/09/17 新規作成

CLineComment.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:45 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLineComment.cpp ソースファイル

CLineComment.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, Yazaki, Moca
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 #include "stdafx.h"
00015 #include "CLineComment.h"
00016 #include "my_icmp.h" // 2002/11/30 Moca 追加
00017
00018 CLineComment::CLineComment()
00019 {
00020     int i;
00021     for ( i=0; i<COMMENT_DELIMITER_NUM; i++ ){
00022         m_pszLineComment[i][0] = '\0';
00023         m_nLineCommentPos[i] = -1;
00024     }
00025 }
00026
00033 void CLineComment::CopyTo( const int n, const char* buffer, int nCommentPos )
00034 {
00035     int nStrLen = lstrlen( buffer );
00036     if( 0 < nStrLen && nStrLen < COMMENT_DELIMITER_BUFFERSIZE ){
00037         strcpy( m_pszLineComment[n], buffer );
00038         m_nLineCommentPos[n] = nCommentPos;
00039         m_nLineCommentLen[n] = nStrLen;
00040     }
00041     else {
00042         m_pszLineComment[n][0] = '\0';
00043         m_nLineCommentPos[n] = -1;
00044         m_nLineCommentLen[n] = 0;
00045     }
00046 }
00047
00048 bool CLineComment::Match( int nPos, int nLineLen, const char* pLine ) const
00049 {
00050     int i;
00051     for ( i=0; i<COMMENT_DELIMITER_NUM; i++ ){
00052         if (
00053           '\0' != m_pszLineComment[i][0] && /* 行コメントデリミタ */
00054           ( m_nLineCommentPos[i] < 0 || nPos == m_nLineCommentPos[i] ) &&   //  位置指定ON.
00055           nPos <= nLineLen - m_nLineCommentLen[i] &&    /* 行コメントデリミタ */
00056           0 == memicmp( &pLine[nPos], m_pszLineComment[i], m_nLineCommentLen[i] )
00057         ){
00058             return true;
00059         }
00060     }
00061     return false;
00062 }
00063 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLineComment.h

CLineComment.h

行コメントデリミタを管理する [詳細]

#include "global.h"

CLineComment.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CLineComment

マクロ定義

#define | COMMENT_DELIMITER_NUM 3
#define | COMMENT_DELIMITER_BUFFERSIZE 16

説明

行コメントデリミタを管理する

作者:
Yazaki
日付:
2002/09/17 新規作成

CLineComment.h で定義されています。

マクロ定義

#define COMMENT_DELIMITER_BUFFERSIZE 16

CLineComment.h の 24 行で定義されています。

参照元 CLineComment::CopyTo()・CPropTypes::GetData_p3_new()・CPropTypes::SetData_p3_new().

#define COMMENT_DELIMITER_NUM 3

CLineComment.h の 23 行で定義されています。

参照元 CLineComment::CLineComment()・CPropTypes::GetData_p3_new()・CLineComment::Match()・CPropTypes::SetData_p3_new().

Sakura-Editorに対してSat Oct 27 02:20:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CLineComment.h ソースファイル

CLineComment.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, Yazaki
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 #ifndef _CLINECOMMENT_H_
00015 #define _CLINECOMMENT_H_
00016
00017 //  sakura
00018 #include "global.h"
00019
00020 /*-----------------------------------------------------------------------
00021 クラスの宣言
00022 -----------------------------------------------------------------------*/
00023 #define COMMENT_DELIMITER_NUM   3
00024 #define COMMENT_DELIMITER_BUFFERSIZE    16
00025
00030 class SAKURA_CORE_API CLineComment
00031 {
00032     char    m_pszLineComment[COMMENT_DELIMITER_NUM][COMMENT_DELIMITER_BUFFERSIZE];  /* 行コメントデリミタ */
00033     int     m_nLineCommentPos[COMMENT_DELIMITER_NUM];
00034     int     m_nLineCommentLen[COMMENT_DELIMITER_NUM];
00035
00036 public:
00037     /*
00038     ||  Constructors：コンパイラ標準を使用。
00039     */
00040     CLineComment();
00041
00042     void CopyTo( const int n, const char* buffer, int nCommentPos );    //  行コメントデリミタをコピーする
00043     bool Match( int nPos, int nLineLen, const char* pLine ) const;  //  行コメントに値するか確認する
00044
00045     const char* getLineComment( const int n ){
00046         return m_pszLineComment[n];
00047     };
00048     int getLineCommentPos( const int n ) const {
00049         return m_nLineCommentPos[n];
00050     };
00051 };
00052
00053
00055 #endif /* _CLINECOMMENT_H_ */
00056
00057
00058 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacro.cpp

CMacro.cpp

#include "stdafx.h"
#include "funccode.h"
#include "CMacro.h"
#include "CEditApp.h"
#include "CEditView.h"
#include "CSMacroMgr.h"
#include "etc_uty.h"
#include "CEditDoc.h"
#include "debug.h"
#include "OleTypes.h"

CMacro.cppのインクルード依存関係図

ソースコードを見る。

説明

キーボードマクロ

作者:
Norio Nakatani

CMacro.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacro.cpp ソースファイル

CMacro.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, jepro
00009     Copyright (C) 2001, hor
00010     Copyright (C) 2002, YAZAKI, aroka, genta, Moca, hor
00011     Copyright (C) 2003, 鬼, ryoji, Moca
00012     Copyright (C) 2004, genta, zenryaku
00013     Copyright (C) 2005, MIK, genta, maru, zenryaku, FILE
00014     Copyright (C) 2006, かろと
00015     Copyright (C) 2007, ryoji, maru
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 #include "stdafx.h"
00022 #include "funccode.h"
00023 #include "CMacro.h"
00024 #include "CEditApp.h"
00025 #include "CEditView.h" //2002/2/10 aroka
00026 #include "CSMacroMgr.h" //2002/2/10 aroka
00027 #include "etc_uty.h" //2002/2/10 aroka
00028 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00029 #include "debug.h"
00030 #include "OleTypes.h" //2003-02-21 鬼
00031
00032 CMacro::CMacro( int nFuncID )
00033 {
00034     m_nFuncID = nFuncID;
00035     m_pNext = NULL;
00036     m_pParamTop = m_pParamBot = NULL;
00037 }
00038
00039 CMacro::~CMacro( void )
00040 {
00041     CMacroParam* p = m_pParamTop;
00042     CMacroParam* del_p;
00043     while (p){
00044         del_p = p;
00045         p = p->m_pNext;
00046         delete del_p->m_pData;
00047         delete del_p;
00048     }
00049     return;
00050 }
00051
00052 /*  引数の型振り分け
00053     機能IDによって、期待する型は異なります。
00054     そこで、引数の型を機能IDによって振り分けて、AddParamしましょう。
00055     たとえば、F_INSTEXTの1つめ、2つめの引数は文字列、3つめの引数はintだったりするのも、ここでうまく振り分けられることを期待しています。
00056
00057     lParamは、HandleCommandのparamに値を渡しているコマンドの場合にのみ使います。
00058 */
00059 void CMacro::AddLParam( LPARAM lParam, CEditView* pcEditView )
00060 {
00061     switch( m_nFuncID ){
00062     /*  文字列パラメータを追加 */
00063     case F_INSTEXT:
00064     case F_FILEOPEN:
00065     case F_EXECCOMMAND:
00066         {
00067             AddParam( (const char *)lParam );   //  lParamを追加。
00068             LPARAM lFlag = 0x00;
00069             lFlag = pcEditView->m_pShareData->m_nExecFlgOpt;
00070             AddParam( lFlag );
00071         }
00072         break;
00073
00074     case F_JUMP:    //  指定行へジャンプ（ただしPL/SQLコンパイルエラー行へのジャンプは未対応）
00075         {
00076             AddParam( pcEditView->m_pcEditDoc->m_cDlgJump.m_nLineNum );
00077             LPARAM lFlag = 0x00;
00078             lFlag |= pcEditView->m_pShareData->m_bLineNumIsCRLF     ? 0x01 : 0x00;
00079             lFlag |= pcEditView->m_pcEditDoc->m_cDlgJump.m_bPLSQL   ? 0x02 : 0x00;
00080             AddParam( lFlag );
00081         }
00082         break;
00083
00084     case F_BOOKMARK_PATTERN:    //2002.02.08 hor
00085     case F_SEARCH_NEXT:
00086     case F_SEARCH_PREV:
00087         {
00088             AddParam( pcEditView->m_pShareData->m_szSEARCHKEYArr[0] );  //  lParamを追加。
00089
00090             LPARAM lFlag = 0x00;
00091             lFlag |= pcEditView->m_pShareData->m_Common.m_bWordOnly         ? 0x01 : 0x00;
00092             lFlag |= pcEditView->m_pShareData->m_Common.m_bLoHiCase         ? 0x02 : 0x00;
00093             lFlag |= pcEditView->m_pShareData->m_Common.m_bRegularExp       ? 0x04 : 0x00;
00094             lFlag |= pcEditView->m_pShareData->m_Common.m_bNOTIFYNOTFOUND   ? 0x08 : 0x00;
00095             lFlag |= pcEditView->m_pShareData->m_Common.m_bAutoCloseDlgFind ? 0x10 : 0x00;
00096             lFlag |= pcEditView->m_pShareData->m_Common.m_bSearchAll        ? 0x20 : 0x00;
00097             AddParam( lFlag );
00098         }
00099         break;
00100     case F_REPLACE:
00101     case F_REPLACE_ALL:
00102         {
00103             AddParam( pcEditView->m_pShareData->m_szSEARCHKEYArr[0] );  //  lParamを追加。
00104             AddParam( pcEditView->m_pShareData->m_szREPLACEKEYArr[0] ); //  lParamを追加。
00105
00106             LPARAM lFlag = 0x00;
00107             lFlag |= pcEditView->m_pShareData->m_Common.m_bWordOnly         ? 0x01 : 0x00;
00108             lFlag |= pcEditView->m_pShareData->m_Common.m_bLoHiCase         ? 0x02 : 0x00;
00109             lFlag |= pcEditView->m_pShareData->m_Common.m_bRegularExp       ? 0x04 : 0x00;
00110             lFlag |= pcEditView->m_pShareData->m_Common.m_bNOTIFYNOTFOUND   ? 0x08 : 0x00;
00111             lFlag |= pcEditView->m_pShareData->m_Common.m_bAutoCloseDlgFind ? 0x10 : 0x00;
00112             lFlag |= pcEditView->m_pShareData->m_Common.m_bSearchAll        ? 0x20 : 0x00;
00113             lFlag |= pcEditView->m_pcEditDoc->m_cDlgReplace.m_nPaste        ? 0x40 : 0x00;  //  CShareDataに入れなくていいの？
00114             lFlag |= pcEditView->m_pShareData->m_Common.m_bSelectedArea     ? 0x80 : 0x00;  //  置換する時は選べない
00115             lFlag |= pcEditView->m_pcEditDoc->m_cDlgReplace.m_nReplaceTarget << 8;  //  8bitシフト（0x100で掛け算）
00116             lFlag |= pcEditView->m_pShareData->m_Common.m_bConsecutiveAll   ? 0x0400: 0x00; // 2007.01.16 ryoji
00117             AddParam( lFlag );
00118         }
00119         break;
00120     case F_GREP:
00121         {
00122             AddParam( pcEditView->m_pShareData->m_szSEARCHKEYArr[0] );  //  lParamを追加。
00123             AddParam( pcEditView->m_pShareData->m_szGREPFILEArr[0] );   //  lParamを追加。
00124             AddParam( pcEditView->m_pShareData->m_szGREPFOLDERArr[0] ); //  lParamを追加。
00125
00126             LPARAM lFlag = 0x00;
00127             lFlag |= pcEditView->m_pShareData->m_Common.m_bGrepSubFolder                ? 0x01 : 0x00;
00128             //          この編集中のテキストから検索する(0x02.未実装)
00129             lFlag |= pcEditView->m_pShareData->m_Common.m_bLoHiCase                     ? 0x04 : 0x00;
00130             lFlag |= pcEditView->m_pShareData->m_Common.m_bRegularExp                   ? 0x08 : 0x00;
00131             lFlag |= (pcEditView->m_pShareData->m_Common.m_nGrepCharSet == CODE_AUTODETECT) ? 0x10 : 0x00;  //  2002/09/21 Moca 下位互換性のための処理
00132             lFlag |= pcEditView->m_pShareData->m_Common.m_bGrepOutputLine               ? 0x20 : 0x00;
00133             lFlag |= (pcEditView->m_pShareData->m_Common.m_nGrepOutputStyle == 2)       ? 0x40 : 0x00;  //  CShareDataに入れなくていいの？
00134             lFlag |= pcEditView->m_pShareData->m_Common.m_nGrepCharSet << 8;
00135             AddParam( lFlag );
00136         }
00137         break;
00138     /*  数値パラメータを追加 */
00139     case F_CHAR:
00140         AddParam( lParam );
00141         break;
00142
00143     /*  標準もパラメータを追加 */
00144     default:
00145         AddParam( lParam );
00146         break;
00147     }
00148 }
00149
00150 /*  引数に文字列を追加。
00151 */
00152 void CMacro::AddParam( const char* szParam )
00153 {
00154     CMacroParam* param = new CMacroParam;
00155     param->m_pNext = NULL;
00156
00157     //  必要な領域を確保してコピー。
00158     int nLen = lstrlen( szParam );
00159     param->m_pData = new char[nLen + 1];
00160     memcpy((char*)param->m_pData, szParam, nLen );
00161     param->m_pData[nLen] = '\0';
00162
00163     //  リストの整合性を保つ
00164     if (m_pParamTop){
00165         m_pParamBot->m_pNext = param;
00166         m_pParamBot = param;
00167     }
00168     else {
00169         m_pParamTop = param;
00170         m_pParamBot = m_pParamTop;
00171     }
00172 }
00173
00174 /*  引数に数値を追加。
00175 */
00176 void CMacro::AddParam( const int nParam )
00177 {
00178     CMacroParam* param = new CMacroParam;
00179     param->m_pNext = NULL;
00180
00181     //  必要な領域を確保してコピー。
00182     param->m_pData = new char[16];  //  数値格納（最大16桁）用
00183     itoa(nParam, param->m_pData, 10);
00184
00185     //  リストの整合性を保つ
00186     if (m_pParamTop){
00187         m_pParamBot->m_pNext = param;
00188         m_pParamBot = param;
00189     }
00190     else {
00191         m_pParamTop = param;
00192         m_pParamBot = m_pParamTop;
00193     }
00194 }
00195
00196 /*  コマンドを実行する（pcEditView->HandleCommandを発行する）
00197     m_nFuncIDによって、引数の型を正確に渡してあげましょう。
00198
00199     paramArrは何かのポインタ（アドレス）をLONGであらわした値になります。
00200     引数がchar*のときは、paramArr[i]をそのままHandleCommandに渡してかまいません。
00201     引数がintのときは、*((int*)paramArr[i])として渡しましょう。
00202
00203     たとえば、F_INSTEXTの1つめ、2つめの引数は文字列、3つめの引数はint、4つめの引数が無し。だったりする場合は、次のようにしましょう。
00204     pcEditView->HandleCommand( m_nFuncID, TRUE, paramArr[0], paramArr[1], *((int*)paramArr[2]), 0);
00205 */
00206 void CMacro::Exec( CEditView* pcEditView )
00207 {
00208     const char* paramArr[4] = {NULL, NULL, NULL, NULL}; //  4つに限定。
00209
00210     CMacroParam* p = m_pParamTop;
00211     int i = 0;
00212     for (i = 0; i < 4; i++) {
00213         if (!p) break;  //  pが無ければbreak;
00214         paramArr[i] = p->m_pData;
00215         p = p->m_pNext;
00216     }
00217     CMacro::HandleCommand(pcEditView, m_nFuncID, paramArr, i);
00218 }
00219
00220 /*  CMacroを再現するための情報をhFileに書き出します。
00221
00222     InsText("なんとか");
00223     のように。
00224 */
00225 void CMacro::Save( HINSTANCE hInstance, HFILE hFile )
00226 {
00227     char    szFuncName[1024];
00228     char    szFuncNameJapanese[500];
00229     int     nTextLen;
00230     const char* pText;
00231 //  int     i;
00232     char        szLine[1024];
00233 //  const char* szFuncName;
00234     CMemory     cmemWork;
00235
00236     /* 2002.2.2 YAZAKI CSMacroMgrに頼む */
00237     if (CSMacroMgr::GetFuncInfoByID( hInstance, m_nFuncID, szFuncName, szFuncNameJapanese)){
00238 #if 0
00239     for( i = 0; i < m_nMacroFuncInfoArrNum; ++i ){
00240         if( m_MacroFuncInfoArr[i].m_nFuncID == m_nFuncID ){
00241             szFuncName = m_MacroFuncInfoArr[i].m_pszFuncName;
00242             ::LoadString( hInstance, m_nFuncID, szFuncNameJapanese, 255 );
00243 #endif
00244         switch ( m_nFuncID ){
00245         case F_INSTEXT:
00246         case F_FILEOPEN:
00247             //  引数ひとつ分だけ保存
00248             pText = m_pParamTop->m_pData;
00249             nTextLen = strlen(pText);
00250             cmemWork.SetData( pText, nTextLen );
00251             cmemWork.Replace_j( "\\", "\\\\" );
00252             cmemWork.Replace_j( "\'", "\\\'" );
00253             wsprintf( szLine, "S_%s(\'%s\');\t// %s\r\n", szFuncName, cmemWork.GetPtr(), szFuncNameJapanese );
00254             _lwrite( hFile, szLine, strlen( szLine ) );
00255             break;
00256         case F_JUMP:        //  指定行へジャンプ（ただしPL/SQLコンパイルエラー行へのジャンプは未対応）
00257             wsprintf( szLine, "S_%s(%d, %d);\t// %s\r\n", szFuncName, (m_pParamTop->m_pData ? atoi(m_pParamTop->m_pData) : 1), m_pParamTop->m_pNext->m_pData ? atoi(m_pParamTop->m_pNext->m_pData) : 0, szFuncNameJapanese );
00258             _lwrite( hFile, szLine, strlen( szLine ) );
00259             break;
00260         case F_BOOKMARK_PATTERN:    //2002.02.08 hor
00261         case F_SEARCH_NEXT:
00262         case F_SEARCH_PREV:
00263             pText = m_pParamTop->m_pData;
00264             nTextLen = strlen(pText);
00265             cmemWork.SetData( pText, nTextLen );
00266             cmemWork.Replace_j( "\\", "\\\\" );
00267             cmemWork.Replace_j( "\'", "\\\'" );
00268             wsprintf( szLine, "S_%s(\'%s\', %d);\t// %s\r\n", szFuncName, cmemWork.GetPtr(), m_pParamTop->m_pNext->m_pData ? atoi(m_pParamTop->m_pNext->m_pData) : 0, szFuncNameJapanese );
00269             _lwrite( hFile, szLine, strlen( szLine ) );
00270             break;
00271         case F_EXECCOMMAND:
00272             //  引数ひとつ分だけ保存
00273             pText = m_pParamTop->m_pData;
00274             nTextLen = strlen(pText);
00275             cmemWork.SetData( pText, nTextLen );
00276             cmemWork.Replace_j( "\\", "\\\\" );
00277             cmemWork.Replace_j( "\'", "\\\'" );
00278             wsprintf( szLine, "S_%s(\'%s\', %d);\t// %s\r\n", szFuncName, cmemWork.GetPtr(), m_pParamTop->m_pNext->m_pData ? atoi(m_pParamTop->m_pNext->m_pData) : 0, szFuncNameJapanese );
00279             _lwrite( hFile, szLine, strlen( szLine ) );
00280             break;
00281         case F_REPLACE:
00282         case F_REPLACE_ALL:
00283             pText = m_pParamTop->m_pData;
00284             nTextLen = strlen(pText);
00285             cmemWork.SetData( pText, nTextLen );
00286             cmemWork.Replace_j( "\\", "\\\\" );
00287             cmemWork.Replace_j( "\'", "\\\'" );
00288             {
00289                 CMemory cmemWork2(m_pParamTop->m_pNext->m_pData, strlen(m_pParamTop->m_pNext->m_pData));
00290                 cmemWork2.Replace_j( "\\", "\\\\" );
00291                 cmemWork2.Replace_j( "\'", "\\\'" );
00292                 wsprintf( szLine, "S_%s(\'%s\', \'%s\', %d);\t// %s\r\n", szFuncName, cmemWork.GetPtr(), cmemWork2.GetPtr(), m_pParamTop->m_pNext->m_pNext->m_pData ? atoi(m_pParamTop->m_pNext->m_pNext->m_pData) : 0, szFuncNameJapanese );
00293                 _lwrite( hFile, szLine, strlen( szLine ) );
00294             }
00295             break;
00296         case F_GREP:
00297             pText = m_pParamTop->m_pData;
00298             nTextLen = strlen(pText);
00299             cmemWork.SetData( pText, nTextLen );
00300             cmemWork.Replace_j( "\\", "\\\\" );
00301             cmemWork.Replace_j( "\'", "\\\'" );
00302             {
00303                 CMemory cmemWork2(m_pParamTop->m_pNext->m_pData, strlen(m_pParamTop->m_pNext->m_pData));
00304                 cmemWork2.Replace_j( "\\", "\\\\" );
00305                 cmemWork2.Replace_j( "\'", "\\\'" );
00306
00307                 CMemory cmemWork3(m_pParamTop->m_pNext->m_pNext->m_pData, strlen(m_pParamTop->m_pNext->m_pNext->m_pData));
00308                 cmemWork3.Replace_j( "\\", "\\\\" );
00309                 cmemWork3.Replace_j( "\'", "\\\'" );
00310                 wsprintf( szLine, "S_%s(\'%s\', \'%s\', \'%s\', %d);\t// %s\r\n", szFuncName, cmemWork.GetPtr(), cmemWork2.GetPtr(), cmemWork3.GetPtr(), m_pParamTop->m_pNext->m_pNext->m_pNext->m_pData ? atoi(m_pParamTop->m_pNext->m_pNext->m_pNext->m_pData) : 0, szFuncNameJapanese );
00311                 _lwrite( hFile, szLine, strlen( szLine ) );
00312             }
00313             break;
00314         default:
00315             if( 0 == m_pParamTop ){
00316                 wsprintf( szLine, "S_%s();\t// %s\r\n", szFuncName, szFuncNameJapanese );
00317             }else{
00318                 wsprintf( szLine, "S_%s(%d);\t// %s\r\n", szFuncName, m_pParamTop->m_pData ? atoi(m_pParamTop->m_pData) : 0, szFuncNameJapanese );
00319             }
00320             _lwrite( hFile, szLine, strlen( szLine ) );
00321             break;
00322         }
00323         return;
00324 #if 0
00325         }
00326     }
00327 #endif
00328     }
00329     wsprintf( szLine, "CMacro::GetFuncInfoByID()に、バグがあるのでエラーが出ましたぁぁぁぁぁぁあああ\r\n" );
00330     _lwrite( hFile, szLine, strlen( szLine ) );
00331 }
00332
00343 void CMacro::HandleCommand( CEditView* pcEditView, const int Index, const char* Argument[], const int ArgSize )
00344 {
00345     const char EXEC_ERROR_TITLE[] = "Macro実行エラー";
00346     switch (Index)
00347     {
00348     case F_CHAR:        //  文字入力。数値は文字コード
00349     case F_IME_CHAR:    //  日本語入力
00350     case F_CHGMOD_EOL:  //  入力改行コード指定。enumEOLTypeの数値を指定。2003.06.23 Moca
00351         //  Jun. 16, 2002 genta
00352         if( Argument[0] == NULL ){
00353 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00354                 _T( "挿入すべき文字コードが指定されていません．" ));
00355             break;
00356         }
00357         /* NO BREAK */
00358     case F_GOLINETOP:   //  行頭に移動。数値は、0x0（デフォルト）、0x1（空白を無視して先頭に移動）、0x2（未定義）、0x4（選択して移動）、0x8（改行単位で先頭に移動：未実装）
00359         //  一つ目の引数が数値。
00360         pcEditView->HandleCommand( Index, FALSE, (Argument[0] != NULL ? atoi(Argument[0]) : 0 ), 0, 0, 0 );
00361         break;
00362     case F_INSTEXT:     //  テキスト挿入
00363     case F_ADDTAIL:     //  この操作はキーボード操作では存在しないので保存することができない？
00364     case F_SET_QUOTESTRING: // Jan. 29, 2005 genta 追加 テキスト引数1つを取るマクロはここに統合していこう．
00365         //  一つ目の引数が文字列。
00366         //  ただし2つ目の引数は文字数。
00367         if( Argument[0] == NULL ){
00368 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00369                 _T( "引数(文字列)が指定されていません．" ));
00370             break;
00371         }
00372         {
00373             int len = strlen(Argument[0]);
00374             pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0], len, 0, 0 );  //  標準
00375         }
00376         break;
00377     /* 一つ目、二つ目とも引数は数値 */
00378     case F_JUMP:        //  指定行へジャンプ（ただしPL/SQLコンパイルエラー行へのジャンプは未対応）
00379         //  Argument[0]へジャンプ。オプションはArgument[1]に。
00380         //      ******** 以下「行番号の単位」 ********
00381         //      0x00    折り返し単位の行番号
00382         //      0x01    改行単位の行番号
00383         //      **************************************
00384         //      0x02    PL/SQLコンパイルエラー行を処理する
00385         //      未定義  テキストの□行目をブロックの1行目とする
00386         //      未定義  検出されたPL/SQLパッケージのブロックから選択
00387         if( Argument[0] == NULL ){
00388 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00389                 _T( "ジャンプ先行番号が指定されていません．" ));
00390             break;
00391         }
00392         {
00393             pcEditView->m_pcEditDoc->m_cDlgJump.m_nLineNum = atoi(Argument[0]); //ジャンプ先
00394             LPARAM lFlag = Argument[1] != NULL ? atoi(Argument[1]) : 1; // デフォルト1
00395             pcEditView->m_pShareData->m_bLineNumIsCRLF = lFlag & 0x01 ? 1 : 0;
00396             pcEditView->m_pcEditDoc->m_cDlgJump.m_bPLSQL = lFlag & 0x02 ? 1 : 0;
00397             pcEditView->HandleCommand( Index, FALSE, 0, 0, 0, 0 );  //  標準
00398         }
00399         break;
00400     /*  一つ目の引数は文字列、二つ目の引数は数値    */
00401     case F_BOOKMARK_PATTERN:    //2002.02.08 hor
00402         if( Argument[0] == NULL ){
00403 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00404                 _T( "マーク行のパターンが指定されていません．" ));
00405             break;
00406         }
00407         /* NO BREAK */
00408     case F_SEARCH_NEXT:
00409     case F_SEARCH_PREV:
00410         //  Argument[0]を検索。オプションはArgument[1]に。
00411         //  Argument[1]:
00412         //      0x01    単語単位で探す
00413         //      0x02    英大文字と小文字を区別する
00414         //      0x04    正規表現
00415         //      0x08    見つからないときにメッセージを表示
00416         //      0x10    検索ダイアログを自動的に閉じる
00417         //      0x20    先頭（末尾）から再検索する
00418         //  各値をShareDataに設定してコマンドを発行し、ShareDataの値を元に戻す。
00419         {
00420             if( 0 < lstrlen( Argument[0] ) ){
00421                 /* 正規表現 */
00422                 if( pcEditView->m_pShareData->m_Common.m_bRegularExp && !CheckRegexpSyntax( Argument[0], NULL, true ) ){
00423                     break;
00424                 }
00425
00426                 /* 検索文字列 */
00427                 CShareData::getInstance()->AddToSearchKeyArr( (const char*)Argument[0] );
00428             }
00429             //  設定値バックアップ
00430             //  マクロパラメータ→設定値変換
00431             LPARAM lFlag = Argument[1] != NULL ? atoi(Argument[1]) : 0;
00432             pcEditView->m_pShareData->m_Common.m_bWordOnly          = lFlag & 0x01 ? 1 : 0;
00433             pcEditView->m_pShareData->m_Common.m_bLoHiCase          = lFlag & 0x02 ? 1 : 0;
00434             pcEditView->m_pShareData->m_Common.m_bRegularExp        = lFlag & 0x04 ? 1 : 0;
00435             pcEditView->m_pShareData->m_Common.m_bNOTIFYNOTFOUND    = lFlag & 0x08 ? 1 : 0;
00436             pcEditView->m_pShareData->m_Common.m_bAutoCloseDlgFind  = lFlag & 0x10 ? 1 : 0;
00437             pcEditView->m_pShareData->m_Common.m_bSearchAll         = lFlag & 0x20 ? 1 : 0;
00438
00439             //  コマンド発行
00440         //  pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00441             pcEditView->HandleCommand( Index, FALSE, 0, 0, 0, 0);
00442         }
00443         break;
00444     case F_DIFF:
00445         //  Argument[0]とDiff差分表示。オプションはArgument[1]に。
00446         //  Argument[1]:
00447         //      次の数値の和。
00448         //      0x0001 -i ignore-case         大文字小文字同一視
00449         //      0x0002 -w ignore-all-space    空白無視
00450         //      0x0004 -b ignore-space-change 空白変更無視
00451         //      0x0008 -B ignore-blank-lines  空行無視
00452         //      0x0010 -t expand-tabs         TAB-SPACE変換
00453         //      0x0020    (編集中のファイルが旧ファイル)
00454         //      0x0040    (DIFF差分がないときにメッセージ表示)
00455         /* NO BREAK */
00456     case F_EXECCOMMAND:
00457         //  Argument[0]を実行。オプションはArgument[1]に。
00458         //  Argument[1]:
00459         //      次の数値の和。
00460         //      0x01    標準出力を得る
00461         //      0x02    標準出力をキャレット位置に  //  2007.01.02 maru 引数の拡張
00462         //      0x04    編集中ファイルを標準入力へ  //  2007.01.02 maru 引数の拡張
00463         /* NO BREAK */
00464     case F_TRACEOUT:        // 2006.05.01 マクロ用アウトプットウインドウに出力
00465         //  Argument[0]を出力。オプションはArgument[1]に。
00466         //  Argument[1]:
00467         //      次の数値の和。
00468         //      0x01    ExpandParameterによる文字列展開を行う
00469         //      0x02    テキスト末尾に改行コードを付加しない
00470         if( Argument[0] == NULL ){
00471 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00472                 _T( "引数(文字列)が指定されていません．" ));
00473             break;
00474         }
00475         {
00476             pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0], (LPARAM)(Argument[1] != NULL ? atoi(Argument[1]) : 0 ), 0, 0);
00477         }
00478         break;
00479     /* はじめの引数は文字列。２つ目と３つ目は数値 */
00480     case F_PUTFILE:     // 2006.12.10 作業中ファイルの一時出力
00481         //  Argument[0]に出力。Argument[1]に文字コード。オプションはArgument[2]に。
00482         //  Argument[2]:
00483         //      次の値の和
00484         //      0x01    選択範囲を出力（非選択状態なら空ファイルを生成）
00485         // no break
00486     case F_INSFILE:     // 2006.12.10 キャレット位置にファイル挿入
00487         //  Argument[0]に出力。Argument[1]に文字コード。オプションはArgument[2]に。
00488         //  Argument[2]:
00489         //      現在は特になし
00490         if( Argument[0] == NULL ){
00491 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00492                 _T( "ファイル名が指定されていません．" ));
00493             break;
00494         }
00495         {
00496             pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0],
00497                         (LPARAM)(Argument[1] != NULL ? atoi(Argument[1]) : 0 ),
00498                         (LPARAM)(Argument[2] != NULL ? atoi(Argument[2]) : 0 ), 0);
00499         }
00500         break;
00501
00502     /* はじめの2つの引数は文字列。3つ目は数値 */
00503     case F_REPLACE:
00504     case F_REPLACE_ALL:
00505         //  Argument[0]を、Argument[1]に置換。オプションはArgument[2]に（入れる予定）
00506         //  Argument[2]:
00507         //      次の数値の和。
00508         //      0x001   単語単位で探す
00509         //      0x002   英大文字と小文字を区別する
00510         //      0x004   正規表現
00511         //      0x008   見つからないときにメッセージを表示
00512         //      0x010   検索ダイアログを自動的に閉じる
00513         //      0x020   先頭（末尾）から再検索する
00514         //      0x040   クリップボードから貼り付ける
00515         //      ******** 以下「置換範囲」 ********
00516         //      0x000   ファイル全体
00517         //      0x080   選択範囲
00518         //      **********************************
00519         //      ******** 以下「置換対象」 ********
00520         //      0x000   見つかった文字列と置換
00521         //      0x100   見つかった文字列の前に挿入
00522         //      0x200   見つかった文字列の後に追加
00523         //      **********************************
00524         //      0x400   「すべて置換」は置換の繰返し（ON:連続置換, OFF:一括置換）
00525         //  各値をShareDataに設定してコマンドを発行し、ShareDataの値を元に戻す。
00526         if( Argument[0] == NULL ){
00527 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00528                 _T( "置換元パターンが指定されていません．" ));
00529             break;
00530         }
00531         if( Argument[1] == NULL ){
00532 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00533                 _T( "置換先パターンが指定されていません．" ));
00534             break;
00535         }
00536         {
00537 //          if( 0 < lstrlen( Argument[0] ) ){
00538                 /* 正規表現 */
00539                 if( pcEditView->m_pShareData->m_Common.m_bRegularExp && !CheckRegexpSyntax( Argument[0], NULL, true ) ){
00540                     break;
00541                 }
00542
00543                 /* 検索文字列 */
00544                 CShareData::getInstance()->AddToSearchKeyArr( (const char*)Argument[0] );
00545 //          }
00546 //          if( 0 < lstrlen( Argument[1] ) ){
00547                 /* 検索文字列 */
00548                 CShareData::getInstance()->AddToReplaceKeyArr( (const char*)Argument[1] );
00549 //          }
00550             LPARAM lFlag = Argument[2] != NULL ? atoi(Argument[2]) : 0;
00551             pcEditView->m_pShareData->m_Common.m_bWordOnly          = lFlag & 0x01 ? 1 : 0;
00552             pcEditView->m_pShareData->m_Common.m_bLoHiCase          = lFlag & 0x02 ? 1 : 0;
00553             pcEditView->m_pShareData->m_Common.m_bRegularExp        = lFlag & 0x04 ? 1 : 0;
00554             pcEditView->m_pShareData->m_Common.m_bNOTIFYNOTFOUND    = lFlag & 0x08 ? 1 : 0;
00555             pcEditView->m_pShareData->m_Common.m_bAutoCloseDlgFind  = lFlag & 0x10 ? 1 : 0;
00556             pcEditView->m_pShareData->m_Common.m_bSearchAll         = lFlag & 0x20 ? 1 : 0;
00557             pcEditView->m_pcEditDoc->m_cDlgReplace.m_nPaste         = lFlag & 0x40 ? 1 : 0; //  CShareDataに入れなくていいの？
00558 //          pcEditView->m_pShareData->m_Common.m_bSelectedArea      = 0;    //  lFlag & 0x80 ? 1 : 0;
00559             pcEditView->m_pShareData->m_Common.m_bConsecutiveAll    = lFlag & 0x0400 ? 1 : 0;   // 2007.01.16 ryoji
00560             if (Index == F_REPLACE) {
00561                 //  置換する時は選べない
00562                 pcEditView->m_pShareData->m_Common.m_bSelectedArea  = 0;
00563             }
00564             else if (Index == F_REPLACE_ALL) {
00565                 //  全置換の時は選べる？
00566                 pcEditView->m_pShareData->m_Common.m_bSelectedArea  = lFlag & 0x80 ? 1 : 0;
00567             }
00568             pcEditView->m_pcEditDoc->m_cDlgReplace.m_nReplaceTarget = (lFlag >> 8) & 0x03;  //  8bitシフト（0x100で割り算） // 2007.01.16 ryoji 下位 2bitだけ取り出す
00569             //  コマンド発行
00570             pcEditView->HandleCommand( Index, FALSE, 0, 0, 0, 0);
00571         }
00572         break;
00573     case F_GREP:
00574         //  Argument[0] 検索文字列
00575         //  Argument[1] 検索対象にするファイル名
00576         //  Argument[2] 検索対象にするフォルダ名
00577         //  Argument[3]:
00578         //      次の数値の和。
00579         //      0x01    サブフォルダからも検索する
00580         //      0x02    この編集中のテキストから検索する（未実装）
00581         //      0x04    英大文字と英小文字を区別する
00582         //      0x08    正規表現
00583         //      0x10    文字コード自動判別
00584         //      ******** 以下「結果出力」 ********
00585         //      0x00    該当行
00586         //      0x20    該当部分
00587         //      **********************************
00588         //      ******** 以下「出力形式」 ********
00589         //      0x00    ノーマル
00590         //      0x40    ファイル毎
00591         //      **********************************
00592         //      0x0100 ～ 0xff00    文字コードセット番号 * 0x100
00593         if( Argument[0] == NULL ){
00594 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00595                 _T( "GREPパターンが指定されていません．" ));
00596             break;
00597         }
00598         if( Argument[1] == NULL ){
00599 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00600                 _T( "ファイル種別が指定されていません．" ));
00601             break;
00602         }
00603         if( Argument[2] == NULL ){
00604 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00605                 _T( "検索先フォルダが指定されていません．" ));
00606             break;
00607         }
00608         {
00609             //  常に外部ウィンドウに。
00610             /*======= Grepの実行 =============*/
00611             /* Grep結果ウィンドウの表示 */
00612             char    pCmdLine[1024];
00613             char    pOpt[64];
00614 //          int     nDataLen;
00615             int     nCharSet;
00616
00617             CMemory cmWork1;    cmWork1.SetDataSz( Argument[0] );   cmWork1.Replace_j( "\"", "\"\"" );  //  検索文字列
00618             CMemory cmWork2;    cmWork2.SetDataSz( Argument[1] );   cmWork2.Replace_j( "\"", "\"\"" );  //  ファイル名
00619             CMemory cmWork3;    cmWork3.SetDataSz( Argument[2] );   cmWork3.Replace_j( "\"", "\"\"" );  //  フォルダ名
00620
00621             LPARAM lFlag = Argument[3] != NULL ? atoi(Argument[3]) : 5;
00622
00623             // 2002/09/21 Moca 文字コードセット
00624             {
00625                 nCharSet = CODE_SJIS;
00626                 if( lFlag & 0x10 ){ // 文字コード自動判別(下位互換用)
00627                     nCharSet = CODE_AUTODETECT;
00628                 }
00629                 int nCode = (lFlag >> 8) & 0xff; // 下から 7-15 ビット目(0開始)を使う
00630                 if( ( 0 < nCode && nCode < CODE_CODEMAX ) || CODE_AUTODETECT == nCode ){
00631                     nCharSet = nCode;
00632                 }
00633             }
00634             /*
00635             || -GREPMODE -GKEY="1" -GFILE="*.*;*.c;*.h" -GFOLDER="c:\" -GCODE=0 -GOPT=S
00636             */
00637             wsprintf( pCmdLine, "-GREPMODE -GKEY=\"%s\" -GFILE=\"%s\" -GFOLDER=\"%s\" -GCODE=%d",
00638                 cmWork1.GetPtr(),
00639                 cmWork2.GetPtr(),
00640                 cmWork3.GetPtr(),
00641                 nCharSet
00642             );
00643
00644             pOpt[0] = '\0';
00645             if( lFlag & 0x01 ){ /* サブフォルダからも検索する */
00646                 strcat( pOpt, "S" );
00647             }
00648         //  if( lFlag & 0x02 ){ /* この編集中のテキストから検索する */
00649         //
00650         //  }
00651             if( lFlag & 0x04 ){ /* 英大文字と英小文字を区別する */
00652                 strcat( pOpt, "L" );
00653             }
00654             if( lFlag & 0x08 ){ /* 正規表現 */
00655                 strcat( pOpt, "R" );
00656             }
00657 //          2002/09/21 Moca -GCODE に統合
00658 //          if( lFlag & 0x10 ){ /* 文字コード自動判別 */
00659 //              strcat( pOpt, "K" );
00660 //          }
00661             if( lFlag & 0x20 ){ /* 行を出力するか該当部分だけ出力するか */
00662                 strcat( pOpt, "P" );
00663             }
00664             if( lFlag & 0x40 ){ /* Grep: 出力形式 */
00665                 strcat( pOpt, "2" );
00666             }
00667             else {
00668                 strcat( pOpt, "1" );
00669             }
00670             if( 0 < lstrlen( pOpt ) ){
00671                 strcat( pCmdLine, " -GOPT=" );
00672                 strcat( pCmdLine, pOpt );
00673             }
00674             /* 新規編集ウィンドウの追加 ver 0 */
00675             CEditApp::OpenNewEditor( pcEditView->m_hInstance, pcEditView->m_hWnd, pCmdLine, 0, FALSE );
00676             /*======= Grepの実行 =============*/
00677             /* Grep結果ウィンドウの表示 */
00678         }
00679         break;
00680     case F_FILEOPEN:
00681         //  Argument[0]を開く。
00682         if( Argument[0] == NULL ){
00683 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00684                 _T( "読み込みファイル名が指定されていません．" ));
00685             break;
00686         }
00687         {
00688             pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00689         }
00690         break;
00691     case F_FILESAVEAS:
00692         //  Argument[0]を別名で保存。
00693         if( Argument[0] == NULL ){
00694 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, EXEC_ERROR_TITLE,
00695                 _T( "保存ファイル名が指定されていません．" ));
00696             break;
00697         }
00698         {
00699             /* デフォルト値 */
00700             //  Sep. 11, 2004 genta 初期値を「変更しない」に
00701             //  0だとSJIS指定となってしまうため
00702             int nCharCode = CODE_AUTODETECT;
00703             int nSaveLineCode = 0;
00704
00705             if (Argument[1] != NULL){
00706                 nCharCode = atoi( Argument[1] );
00707             }
00708             if (Argument[2] != NULL){
00709                 nSaveLineCode = atoi( Argument[2] );
00710             }
00711             // 文字コードセット
00712             //  Sep. 11, 2004 genta 文字コード設定の範囲チェック
00713             if( 0 <= nCharCode && nCharCode < CODE_CODEMAX &&
00714                 nCharCode != pcEditView->m_pcEditDoc->m_nCharCode ){
00715                 pcEditView->m_pcEditDoc->m_nCharCode = nCharCode;
00716                 //  From Here Jul. 26, 2003 ryoji BOM状態を初期化
00717                 switch( pcEditView->m_pcEditDoc->m_nCharCode ){
00718                 case CODE_UNICODE:
00719                 case CODE_UNICODEBE:
00720                     pcEditView->m_pcEditDoc->m_bBomExist = TRUE;
00721                     break;
00722                 case CODE_UTF8:
00723                 default:
00724                     pcEditView->m_pcEditDoc->m_bBomExist = FALSE;
00725                     break;
00726                 }
00727                 //  To Here Jul. 26, 2003 ryoji BOM状態を初期化
00728             }
00729             // 改行コード
00730             switch (nSaveLineCode){
00731             case 0:
00732                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_NONE;
00733                 break;
00734             case 1:
00735                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_CRLF;
00736                 break;
00737             case 2:
00738                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_LF;
00739                 break;
00740             case 3:
00741                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_CR;
00742                 break;
00743             default:
00744                 pcEditView->m_pcEditDoc->m_cSaveLineCode = EOL_NONE;
00745                 break;
00746             }
00747
00748             pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00749         }
00750         break;
00751     // Jul. 5, 2002 genta
00752     case F_EXTHTMLHELP:
00753         pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0], (LPARAM)Argument[1], 0, 0);
00754         break;
00755     //  From Here Dec. 4, 2002 genta
00756     case F_FILE_REOPEN              ://開き直す
00757     case F_FILE_REOPEN_SJIS         ://SJISで開き直す
00758     case F_FILE_REOPEN_JIS          ://JISで開き直す
00759     case F_FILE_REOPEN_EUC          ://EUCで開き直す
00760     case F_FILE_REOPEN_UNICODE      ://Unicodeで開き直す
00761     case F_FILE_REOPEN_UNICODEBE    ://UnicodeBEで開き直す
00762     case F_FILE_REOPEN_UTF8         ://UTF-8で開き直す
00763     case F_FILE_REOPEN_UTF7         ://UTF-7で開き直す
00764         {
00765             int noconfirm = 0;
00766             if (Argument[0] != NULL){
00767                 noconfirm = ( atoi( Argument[0] ) != 0 );
00768             }
00769             pcEditView->HandleCommand( Index, FALSE, noconfirm, 0, 0, 0 );
00770         }
00771         break;
00772     //  To Here Dec. 4, 2002 genta
00773     case F_TOPMOST:
00774         {
00775             int lparam1;
00776             if( Argument[0] != NULL ){
00777                 lparam1 = atoi( Argument[0] );
00778                 pcEditView->HandleCommand( Index, FALSE, lparam1, 0, 0, 0 );
00779             }
00780         }
00781         break;  //  Jan. 29, 2005 genta 抜けていた
00782     case F_TAGJUMP_KEYWORD: // @@ 2005.03.31 MIK
00783         {
00784             //引数はNULLでもOK
00785             pcEditView->HandleCommand( Index, FALSE, (LPARAM)Argument[0], 0, 0, 0);
00786         }
00787         break;
00788     default:
00789         //  引数なし。
00790         pcEditView->HandleCommand( Index, FALSE, 0, 0, 0, 0 );  //  標準
00791         break;
00792     }
00793 }
00794
00811 bool CMacro::HandleFunction(CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result)
00812 {
00813     Variant varCopy;    // VT_BYREFだと困るのでコピー用
00814
00815     //2003-02-21 鬼
00816     switch(ID)
00817     {
00818     case F_GETFILENAME:
00819         {
00820             char const * FileName = View->m_pcEditDoc->GetFilePath();
00821             SysString S(FileName, lstrlen(FileName));
00822             Wrap(&Result)->Receive(S);
00823         }
00824         return true;
00825     case F_GETSELECTED:
00826         {
00827             if(View->IsTextSelected())
00828             {
00829                 CMemory cMem;
00830                 if(!View->GetSelectedData(cMem, FALSE, NULL, FALSE, FALSE)) return false;
00831                 SysString S(cMem.GetPtr(), cMem.GetLength());
00832                 Wrap(&Result)->Receive(S);
00833             }
00834             else
00835             {
00836                 Result.vt = VT_BSTR;
00837                 Result.bstrVal = SysAllocString(L"");
00838             }
00839         }
00840         return true;
00841     case F_EXPANDPARAMETER:
00842         // 2003.02.24 Moca
00843         {
00844             if(ArgSize != 1) return false;
00845             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_BSTR) != S_OK) return false; // VT_BSTRとして解釈
00846             //void ExpandParameter(const char* pszSource, char* pszBuffer, int nBufferLen);
00847             //pszSourceを展開して、pszBufferにコピー
00848             char *Source;
00849             int SourceLength;
00850             Wrap(&varCopy.Data.bstrVal)->Get(&Source, &SourceLength);
00851             char Buffer[2048];
00852             View->m_pcEditDoc->ExpandParameter(Source, Buffer, 2047);
00853             delete[] Source;
00854             SysString S(Buffer, lstrlen(Buffer));
00855             Wrap(&Result)->Receive(S);
00856         }
00857         return true;
00858     case F_GETLINESTR:
00859         //  2003.06.01 Moca マクロ追加
00860         {
00861             if( ArgSize != 1 ) return false;
00862             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_I4) != S_OK) return false;   // VT_I4として解釈
00863             if( -1 < varCopy.Data.lVal ){
00864                 const char *Buffer;
00865                 int nLength, nLine;
00866                 if( 0 == varCopy.Data.lVal ){
00867                     nLine = View->m_nCaretPosY_PHY;
00868                 }else{
00869                     nLine = varCopy.Data.lVal - 1;
00870                 }
00871                 Buffer = View->m_pcEditDoc->m_cDocLineMgr.GetLineStr( nLine, &nLength );
00872                 if( Buffer != NULL ){
00873                     SysString S( Buffer, nLength );
00874                     Wrap( &Result )->Receive( S );
00875                 }else{
00876                     Result.vt = VT_BSTR;
00877                     Result.bstrVal = SysAllocString(L"");
00878                 }
00879             }else{
00880                 return false;
00881             }
00882         }
00883         return true;
00884     case F_GETLINECOUNT:
00885         //  2003.06.01 Moca マクロ追加
00886         {
00887             if( ArgSize != 1 ) return false;
00888             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_I4) != S_OK) return false;   // VT_I4として解釈
00889             if( 0 == varCopy.Data.lVal ){
00890                 int nLineCount;
00891                 nLineCount = View->m_pcEditDoc->m_cDocLineMgr.GetLineCount();
00892                 Wrap( &Result )->Receive( nLineCount );
00893             }else{
00894                 return false;
00895             }
00896         }
00897         return true;
00898     case F_CHGTABWIDTH:
00899         //  2004.03.16 zenryaku マクロ追加
00900         {
00901             if( ArgSize != 1 ) return false;
00902             if(VariantChangeType(&varCopy.Data, &(Arguments[0]), 0, VT_I4) != S_OK) return false;   // VT_I4として解釈
00903             Wrap( &Result )->Receive( View->m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
00904             View->m_pcEditDoc->ChangeLayoutParam( false,
00905                 varCopy.Data.iVal, View->m_pcEditDoc->m_cLayoutMgr.GetMaxLineSize() );
00906         }
00907         return true;
00908     case F_ISTEXTSELECTED:
00909         //  2005.07.30 maru マクロ追加
00910         {
00911             if(View->IsTextSelected()) {
00912                 if(View->m_bBeginBoxSelect) {
00913                     Wrap( &Result )->Receive( 2 );  //矩形選択中
00914                 } else {
00915                     Wrap( &Result )->Receive( 1 );  //選択中
00916                 }
00917             } else {
00918                 Wrap( &Result )->Receive( 0 );      //非選択中
00919             }
00920         }
00921         return true;
00922     case F_GETSELLINEFROM:
00923         //  2005.07.30 maru マクロ追加
00924         {
00925             Wrap( &Result )->Receive( View->m_nSelectLineFrom + 1 );
00926         }
00927         return true;
00928     case F_GETSELCOLMFROM:
00929         //  2005.07.30 maru マクロ追加
00930         {
00931             Wrap( &Result )->Receive( View->m_nSelectColmFrom + 1 );
00932         }
00933         return true;
00934     case F_GETSELLINETO:
00935         //  2005.07.30 maru マクロ追加
00936         {
00937             Wrap( &Result )->Receive( View->m_nSelectLineTo + 1 );
00938         }
00939         return true;
00940     case F_GETSELCOLMTO:
00941         //  2005.07.30 maru マクロ追加
00942         {
00943             Wrap( &Result )->Receive( View->m_nSelectColmTo + 1);
00944         }
00945         return true;
00946     case F_ISINSMODE:
00947         //  2005.07.30 maru マクロ追加
00948         {
00949             Wrap( &Result )->Receive(View->IsInsMode() /* Oct. 2, 2005 genta */);
00950         }
00951         return true;
00952     case F_GETCHARCODE:
00953         //  2005.07.31 maru マクロ追加
00954         {
00955             Wrap( &Result )->Receive(View->m_pcEditDoc->m_nCharCode);
00956         }
00957         return true;
00958     case F_GETLINECODE:
00959         //  2005.08.04 maru マクロ追加
00960         {
00961             switch( View->m_pcEditDoc->GetNewLineCode() ){
00962             case EOL_CRLF:
00963                 Wrap( &Result )->Receive( 0 );
00964                 break;
00965             case EOL_CR:
00966                 Wrap( &Result )->Receive( 1 );
00967                 break;
00968             case EOL_LF:
00969                 Wrap( &Result )->Receive( 2 );
00970                 break;
00971             }
00972         }
00973         return true;
00974     case F_ISPOSSIBLEUNDO:
00975         //  2005.08.04 maru マクロ追加
00976         {
00977             Wrap( &Result )->Receive( View->m_pcEditDoc->IsEnableUndo() );
00978         }
00979         return true;
00980     case F_ISPOSSIBLEREDO:
00981         //  2005.08.04 maru マクロ追加
00982         {
00983             Wrap( &Result )->Receive( View->m_pcEditDoc->IsEnableRedo() );
00984         }
00985         return true;
00986     default:
00987         return false;
00988     }
00989 }
00990
00991 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacro.h

CMacro.h

キーボードマクロ [詳細]

#include <windows.h>

CMacro.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMacro
キーボードマクロの1コマンド [詳細]
struct | CMacro::CMacroParam

説明

キーボードマクロ

CMacroのインスタンスひとつが、1コマンドになる。

作者:
Norio Nakatani

CMacro.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacro.h ソースファイル

CMacro.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2002, YAZAKI
00011     Copyright (C) 2003, 鬼
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 class CMacro;
00018
00019 #ifndef _CMACRO_H_
00020 #define _CMACRO_H_
00021
00022 #include <windows.h>
00023 //#include "oleauto.h" //2003-02-21 鬼
00024
00025 class CEditView;
00026
00042 class CMacro
00043 {
00044 public:
00045     /*
00046     ||  Constructors
00047     */
00048     CMacro( int nFuncID );  //  機能IDを指定して初期化
00049     ~CMacro();
00050
00051     void SetNext(CMacro* pNext){ m_pNext = pNext; };
00052     CMacro* GetNext(){ return m_pNext;};
00053     void Exec( CEditView* pcEditView );
00054     void Save( HINSTANCE hInstance, HFILE hFile );
00055
00056     void AddLParam( LPARAM lParam, CEditView* pcEditView  );    //@@@ 2002.2.2 YAZAKI pcEditViewも渡す
00057     void AddParam( const char* lParam );
00058     void AddParam( const int lParam );
00059
00060     static void HandleCommand( CEditView* pcEditView, const int Index,  const char* Argument[], const int ArgSize );
00061     static bool HandleFunction(CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result);
00062 #if 0
00063     /*
00064     ||  Attributes & Operations
00065     */
00066     static char* GetFuncInfoByID( HINSTANCE , int , char* , char* );    /* 機能ID→関数名，機能名日本語 */
00067     static int GetFuncInfoByName( HINSTANCE , const char* , char* );    /* 関数名→機能ID，機能名日本語 */
00068     static BOOL CanFuncIsKeyMacro( int );   /* キーマクロに記録可能な機能かどうかを調べる */
00069 #endif
00070
00071 protected:
00072     /*
00073     ||  実装ヘルパ関数
00074     */
00075     int     m_nFuncID;  //  機能ID
00076     struct CMacroParam{
00077         char* m_pData;
00078         CMacroParam* m_pNext;
00079     } *m_pParamTop, *m_pParamBot;           //  パラメータ
00080     CMacro* m_pNext;    //  次のマクロへのポインタ
00081 //  CMacro* m_pPrev;    前のマクロに戻ることは無い？
00082 };
00083
00084
00085
00087 #endif /* _CMACRO_H_ */
00088
00089 /*[EOF]*/
00090
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroFactory.cpp

CMacroFactory.cpp

マクロ種別管理 [詳細]

#include "stdafx.h"
#include "CMacroFactory.h"
#include <algorithm>
#include "ctype.h"
#include "debug.h"

CMacroFactory.cppのインクルード依存関係図

ソースコードを見る。

変数

static const char NULSTR [] = ""

説明

マクロ種別管理

作者:
genta
日付:
2002.4.29

CMacroFactory.cpp で定義されています。

変数

const char NULSTR[] = "" [static]

CMacroFactory.cpp の 37 行で定義されています。

参照元 CMacroFactory::Ext2Key().

Sakura-Editorに対してSat Oct 27 02:20:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroFactory.cpp ソースファイル

CMacroFactory.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, genta
00009     Copyright (C) 2004, genta
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031 #include "stdafx.h"
00032 #include "CMacroFactory.h"
00033 #include <algorithm>
00034 #include "ctype.h"
00035 #include "debug.h"
00036
00037 static const char NULSTR[] = "";
00038
00039 CMacroFactory::CMacroFactory()
00040 {}
00041
00051 std::string CMacroFactory::Ext2Key(const char *ext)
00052 {
00053     if( ext == NULL ){
00054         ext = NULSTR;
00055     }
00056
00057     std::string key = ext;
00058     std::transform( key.begin(), key.end(), key.begin(), (int (*)(int))tolower);
00059
00060     return key;
00061 }
00062
00063 #if 0
00064 // Jan. 31, 2004 genta
00065 // バイナリサイズ削減のため拡張子保持用mapを削除
00066
00079 bool CMacroFactory::RegisterExt( const char* ext, Creator f )
00080 {
00081     if( f == NULL ){
00082         return false;
00083     }
00084
00085     std::string key = Ext2Key( ext );
00086
00087 #ifdef _DEBUG
00088     MYTRACE( "CMacroFactory::RegisterExt(%s)\n", key.c_str() );
00089 #endif
00090
00091     //  上書きチェックは行わない
00092     m_mMacroExts[ key ] = f;
00093     return true;
00094 }
00095 #endif
00096
00109 bool CMacroFactory::RegisterCreator( Creator f )
00110 {
00111     if( f == NULL ){
00112         return false;
00113     }
00114
00115     m_mMacroCreators.push_back( f );
00116     return true;
00117 }
00118
00124 bool CMacroFactory::Unregister( Creator f )
00125 {
00126 #if 0
00127     // Jan. 31, 2004 genta
00128     // バイナリサイズ削減のため拡張子保持用mapを削除
00129     //  拡張子リストからの削除
00130     MacroTypeRep::iterator ext_it = m_mMacroExts.begin();
00131     while( ext_it != m_mMacroExts.end() ){
00132         if( ext_it->second == f ){
00133             MacroTypeRep::iterator tmp_it;
00134
00135             //  いきなり削除するとiteratorが無効になるので，
00136             //  iteratorを1つ進めてから現在位置を削除する．
00137             tmp_it = ext_it++;
00138             m_mMacroExts.erase( tmp_it );
00139         }
00140         else {
00141             ++ ext_it;
00142         }
00143     }
00144 #endif
00145
00146     //  Creator Listからの削除
00147     MacroEngineRep::iterator c_it = m_mMacroCreators.begin();
00148     while( c_it != m_mMacroCreators.end() ){
00149         if( *c_it == f ){
00150             MacroEngineRep::iterator tmp_it;
00151
00152             //  いきなり削除するとiteratorが無効になるので，
00153             //  iteratorを1つ進めてから現在位置を削除する．
00154             tmp_it = c_it++;
00155             m_mMacroCreators.erase( tmp_it );
00156             //  重複登録されている場合を考慮して，
00157             //  1つ見つかっても最後までチェックする
00158         }
00159         else {
00160             ++ c_it;
00161         }
00162     }
00163
00164     return true;
00165 }
00166
00167 /*
00168     Object Factory
00169
00170     登録されたFactory Objectを順に呼び出して、
00171     Objectが得られたらそれを返す。
00172
00173     @pararm ext [in] 拡張子
00174     @return Macroオブジェクト。適切なものが見つからなければNULL。
00175 */
00176 CMacroManagerBase* CMacroFactory::Create(const char* ext)
00177 {
00178     std::string key = Ext2Key( ext );
00179
00180 #if 0
00181     // Jan. 31, 2004 genta
00182     // バイナリサイズ削減のため拡張子保持用mapを削除
00183     MacroTypeRep::iterator ext_it = m_mMacroExts.find( key );
00184     if( ext_it != m_mMacroExts.end()){
00185         CMacroManagerBase* pobj = (*ext_it->second)(key.c_str());
00186         if( pobj != NULL ){
00187 #ifdef _DEBUG
00188             MYTRACE( "CMacroFactory::Create/ Found in map (%s)\n", key.c_str() );
00189 #endif
00190             return pobj;
00191         }
00192
00193         //  NULLが返された場合
00194     }
00195 #endif
00196     //  Creatorを順に試す
00197     for( MacroEngineRep::iterator c_it = m_mMacroCreators.begin();
00198         c_it != m_mMacroCreators.end(); ++ c_it ){
00199         CMacroManagerBase* pobj = (*c_it)(key.c_str());
00200         if( pobj != NULL ){
00201 #ifdef _DEBUG
00202             MYTRACE( "CMacroFactory::Create/ Answered for (%s)\n", key.c_str() );
00203 #endif
00204             //  対応表に登録する
00205 #if 0
00206             // Jan. 31, 2004 genta
00207             // バイナリサイズ削減のため拡張子保持用mapを削除
00208             m_mMacroExts[ key ] = *c_it;
00209 #endif
00210             return pobj;
00211         }
00212     }
00213
00214     return NULL;
00215 }
00216
00222 CMacroFactory* CMacroFactory::Instance(void)
00223 {
00224     static CMacroFactory factory;
00225     return &factory;
00226 }
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroFactory.h

CMacroFactory.h

マクロ種別管理 [詳細]

#include <map>
#include <list>
#include <string>

CMacroFactory.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMacroFactory
マクロHandler生成クラス [詳細]

説明

マクロ種別管理

作者:
genta
日付:
2002.4.29

CMacroFactory.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroFactory.h ソースファイル

CMacroFactory.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, genta
00009     Copyright (C) 2004, genta
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #ifndef __CMACROTYPEMGR_H_
00033 #define __CMACROTYPEMGR_H_
00034
00035 #pragma warning(disable: 4786)
00036
00037 #include <map>
00038 #include <list>
00039 #include <string>
00040
00041 class CMacroManagerBase;
00042
00057 class CMacroFactory {
00058 public:
00059     typedef CMacroManagerBase* (*Creator)(const char*);
00060
00061     bool RegisterCreator( Creator );
00062     // Jan. 31, 2004 genta
00063     // バイナリサイズ削減のためm_mMacroExtsを削除
00064     //bool RegisterExt( const char*, Creator );
00065     bool Unregister( Creator );
00066
00067     CMacroManagerBase* Create(const char*);
00068
00069     static CMacroFactory* Instance();
00070
00071 private:
00072     CMacroFactory();
00073     std::string Ext2Key(const char *ext);
00074
00075     // Jan. 31, 2004 genta
00076     // バイナリサイズ削減のため拡張子保持用mapを削除
00077     //  typedef std::map<std::string, Creator> MacroTypeRep;
00078     typedef std::list<Creator> MacroEngineRep;
00079
00080     // Jan. 31, 2004 genta
00081     // バイナリサイズ削減のため
00082     //MacroTypeRep m_mMacroExts;    /*!< 拡張子対応表 */
00087     MacroEngineRep m_mMacroCreators;
00088
00089 };
00090 #endif
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroManagerBase.cpp

CMacroManagerBase.cpp

マクロエンジン [詳細]

#include "stdafx.h"
#include "CMacroManagerBase.h"

CMacroManagerBase.cppのインクルード依存関係図

ソースコードを見る。

説明

マクロエンジン

作者:
genta
日付:
2002.4.29

CMacroManagerBase.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroManagerBase.cpp ソースファイル

CMacroManagerBase.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030 #include "stdafx.h"
00031 #include "CMacroManagerBase.h"
00032
00033 //  デフォルトのコンストラクタ・デストラクタ
00034
00035 CMacroManagerBase::CMacroManagerBase()
00036  : m_nReady( false )
00037 {}
00038
00039 CMacroManagerBase::~CMacroManagerBase()
00040 {}
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroManagerBase.h

CMacroManagerBase.h

マクロエンジン [詳細]

#include <windows.h>

CMacroManagerBase.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMacroManagerBase
マクロを処理するエンジン部分の基底クラス [詳細]

説明

マクロエンジン

作者:
genta
日付:
2002.4.29

CMacroManagerBase.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMacroManagerBase.h ソースファイル

CMacroManagerBase.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef __CMACROMGR_BASE_H_
00032 #define __CMACROMGR_BASE_H_
00033
00034 #include <windows.h>
00035 class CEditView;
00040 class CMacroManagerBase {
00041 public:
00042
00047     virtual void ExecKeyMacro( class CEditView* pcEditView ) const = 0;
00048
00054     virtual BOOL LoadKeyMacro( HINSTANCE hInstance, const char* pszPath) = 0;
00055
00056     //static CMacroManagerBase* Creator( const char* str );
00057     //純粋仮想クラスは実体化できないのでFactoryは不要。
00058     //継承先クラスでは必要。
00059
00060     //  デストラクタのvirtualを忘れずに
00061     virtual ~CMacroManagerBase();
00062
00063
00064 protected:
00066     bool m_nReady;
00067
00068 public:
00074     bool IsReady(){ return m_nReady; }
00075
00076     // Constructor
00077     CMacroManagerBase();
00078
00079 };
00080
00081 #endif
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMarkMgr.cpp

CMarkMgr.cpp

現在行のマークを管理する [詳細]

#include "stdafx.h"
#include "global.h"
#include "CMarkMgr.h"

CMarkMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

現在行のマークを管理する

作者:
genta

CMarkMgr.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMarkMgr.cpp ソースファイル

CMarkMgr.cpp

説明を見る。
00001 //
00007 /*
00008     Copyright (C) 2000-2001, genta
00009     Copyright (C) 2002, aroka
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #include "stdafx.h"
00033 #include "global.h"
00034 #include "CMarkMgr.h"
00035
00036 //-----------------------------------
00037 // CMarkMgr
00038 //-----------------------------------
00046 void CMarkMgr::SetMax(int max)
00047 {
00048     m_nMaxitem = max;
00049     Expire();   //  指定した数に要素を減らす
00050 }
00051
00058 bool CMarkMgr::CheckCurrent(void) const
00059 {
00060     if( m_nCurpos < Count() )
00061         return m_cMarkChain[ m_nCurpos ].IsValid();
00062
00063     return false;
00064 }
00065
00072 bool CMarkMgr::CheckPrev(void) const
00073 {
00074     for( int i = m_nCurpos - 1; i >= 0; i-- ){
00075         if( m_cMarkChain[ i ].IsValid() )
00076             return true;
00077     }
00078     return false;
00079 }
00080
00087 bool CMarkMgr::CheckNext(void) const
00088 {
00089     for( int i = m_nCurpos + 1; i < Count(); i++ ){
00090         if( m_cMarkChain[ i ].IsValid() )
00091             return true;
00092     }
00093     return false;
00094 }
00095
00102 bool CMarkMgr::PrevValid(void)
00103 {
00104     for( int i = m_nCurpos - 1; i >= 0; i-- ){
00105         if( m_cMarkChain[ i ].IsValid() ){
00106             m_nCurpos = i;
00107             return true;
00108         }
00109     }
00110     return false;
00111 }
00118 bool CMarkMgr::NextValid(void)
00119 {
00120     for( int i = m_nCurpos + 1; i < Count(); i++ ){
00121         if( m_cMarkChain[ i ].IsValid() ){
00122             m_nCurpos = i;
00123             return true;
00124         }
00125     }
00126     return false;
00127 }
00128
00129 //  From Here Apr. 1, 2001 genta
00136 void CMarkMgr::Flush(void)
00137 {
00138     m_cMarkChain.erase( m_cMarkChain.begin(), m_cMarkChain.end() );
00139     m_nCurpos = 0;
00140 }
00141 //  To Here
00142
00143 //-----------------------------------
00144 // CAutoMarkMgr
00145 //-----------------------------------
00146
00153 void CAutoMarkMgr::Add(const CMark& m)
00154 {
00155     //  現在位置が途中の時
00156     if( m_nCurpos < (int)m_cMarkChain.size() ){
00157         //  現在位置まで要素を削除
00158         m_cMarkChain.erase( m_cMarkChain.begin() + m_nCurpos, m_cMarkChain.end() );
00159     }
00160
00161     //  要素の追加
00162     m_cMarkChain.push_back(m);
00163     ++m_nCurpos;
00164
00165     //  規定数を超えてしまうときの対応
00166     Expire();
00167 }
00168
00173 void CAutoMarkMgr::Expire(void)
00174 {
00175     int range = m_cMarkChain.size() - GetMax();
00176
00177     if( range <= 0 )    return;
00178
00179     //  最大値を超えている場合
00180     m_cMarkChain.erase( m_cMarkChain.begin(), m_cMarkChain.begin() + range );
00181     m_nCurpos -= range;
00182     if( m_nCurpos < 0 )
00183         m_nCurpos = 0;
00184 }
00185
00186
00187 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMarkMgr.h

CMarkMgr.h

現在行のマークを管理する [詳細]

#include <vector>
#include <string>

CMarkMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMarkMgr
class | CMarkMgr::CMark
class | CAutoMarkMgr
移動履歴の管理クラス [詳細]

説明

現在行のマークを管理する

作者:
genta

CMarkMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMarkMgr.h ソースファイル

CMarkMgr.h

説明を見る。
00001 //
00007 /*
00008     Copyright (C) 2000-2001, genta
00009     Copyright (C) 2002, aroka
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #ifndef __CMARKMGR_H_
00033 #define __CMARKMGR_H_
00034
00035 #pragma warning(disable: 4786)
00036 #include <vector>
00037 #include <string>
00038
00039 using namespace std;
00040
00059 class CMarkMgr {
00060 public:
00061
00062     //  項目のクラス
00063     class CMark {
00064     public:
00065         //  constructor
00066         CMark( int x, int y ) : m_pos(x), m_line(y) /* , m_extra(0) */ {}
00067 //      CMark( void ) : m_extra(-1) {}
00068
00069         //  type converter
00070 //      const char *GetNameStr(void) const { return m_name.c_str(); }
00071 //      void SetNameStr(const char* newstr) { m_name = newstr; }
00072
00073         int GetLine(void) const { return m_line; }
00074         int GetPos(void) const { return m_pos; }
00075         void SetPosition(int x, int y) { m_pos = x; m_line = y; }
00076
00077 //      int GetExtra(void) const { return m_extra; }
00078 //      void SetExtra(int l) { m_extra = l; }
00079
00080         bool IsValid(void) const { return true; }
00081 //      bool IsValid(void) const { return m_extra != -1; }
00082 //      void Invalidate(void){ m_extra = -1; }
00083
00084         bool operator==(CMark &r) const { return m_line == r.m_line; }
00085         bool operator!=(CMark &r) const { return m_line != r.m_line; }
00086
00087     private:
00088 //      string m_name;  //!<    要素名
00089         int m_line;
00090         int m_pos;
00091 //      int m_extra;    //!<    サブクラスで使える予備領域。
00092     };
00093
00094     // GENERATE_FACTORY(CMark,CMarkFactory);    //  CMark用Factory class
00095
00096     //  型宣言
00097     typedef std::vector<CMark> CMarkChain;
00098     typedef std::vector<CMark>::const_iterator  CMarkIterator;
00099
00100     //  Interface
00101     //  constructor
00102     CMarkMgr() : m_nCurpos(0), m_nMaxitem(10){}
00103     // CMarkMgr(const CDocLineMgr *p) : doc(p) {}
00104
00105     int Count(void) const { return (int)m_cMarkChain.size(); }
00106     int GetMax(void) const { return m_nMaxitem; }
00107     void SetMax(int max);
00108
00109     virtual void Add(const CMark& m) = 0;
00110
00111     //  Apr. 1, 2001 genta
00112     virtual void Flush(void);
00113
00115     const CMark& GetCurrent(void) const { return m_cMarkChain[m_nCurpos]; }
00116
00117     //  有効性の確認
00118     bool  CheckCurrent(void) const;
00119     bool  CheckPrev(void) const;
00120     bool  CheckNext(void) const;
00121
00122     //  現在位置の移動
00123     bool NextValid(void);
00124     bool PrevValid(void);
00125
00126     const CMark& operator[](int index) const { return m_cMarkChain[index]; }
00127
00128     //  連続取得インターフェース
00129 //  CMarkIterator CurrentPos(void) const { return (CMarkIterator)m_cMarkChain.begin() + m_nCurpos; }
00130 //  CMarkIterator Begin(void) const { return (CMarkIterator)m_cMarkChain.begin(); }
00131 //  CMarkIterator End(void) const { return (CMarkIterator)m_cMarkChain.end(); }
00132
00133 protected:
00134     virtual void Expire(void) = 0;
00135
00136     // CMarkFactory m_factory;  //  Factory Class (マクロで生成される）
00137     CMarkChain m_cMarkChain;    //  マークデータ本体
00138     int m_nCurpos;  //  現在位置（番号）
00139
00140     int m_nMaxitem; //  保管可能アイテムの最大数
00141 private:
00142     //CMarkMgr( const CMarkMgr& );  //  Copy禁止
00143
00144 };
00145
00146 // ----------------------------------------------------
00152 class CAutoMarkMgr : public CMarkMgr{
00153 public:
00154     virtual void Add(const CMark& m);
00155     virtual void Expire(void);
00156 };
00157
00158 #endif
00159
00160
00161 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMemory.cpp

CMemory.cpp

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <mbstring.h>
#include <ctype.h>
#include <locale.h>
#include <limits.h>
#include "CMemory.h"
#include "etc_uty.h"
#include "CEol.h"
#include "charcode.h"
#include "CESI.h"
#include "my_icmp.h"
#include "global.h"
#include "debug.h"
#include "CRunningTimer.h"

CMemory.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | ESC_JIS "\x01b$B"
#define | ESC_ASCII "\x01b(B"
#define | ESC_8BIT "\x01b(I"
#define | MIME_BASE64 1
#define | MIME_QUOTED 2
#define | CHAR_ASCII 0
#define | CHAR_8BITCODE 1
#define | CHAR_ZENKAKU 2
#define | CHAR_NULL 3
#define | TO_KATAKANA 0x01
#define | TO_HIRAGANA 0x02
#define | TO_EISU 0x04

説明

メモリバッファクラス

作者:
Norio Nakatani
日付:
1998/03/06 新規作成

CMemory.cpp で定義されています。

マクロ定義

#define CHAR_8BITCODE 1

CMemory.cpp の 70 行で定義されています。

#define CHAR_ASCII 0

CMemory.cpp の 69 行で定義されています。

参照元 CMemory::JIStoSJIS()・CMemory::StrSJIStoJIS().

#define CHAR_NULL 3

CMemory.cpp の 72 行で定義されています。

参照元 CMemory::StrSJIStoJIS().

#define CHAR_ZENKAKU 2

CMemory.cpp の 71 行で定義されています。

#define ESC_8BIT "\x01b(I"

CMemory.cpp の 61 行で定義されています。

#define ESC_ASCII "\x01b(B"

CMemory.cpp の 60 行で定義されています。

#define ESC_JIS "\x01b$B"

CMemory.cpp の 59 行で定義されています。

#define MIME_BASE64 1

CMemory.cpp の 63 行で定義されています。

参照元 CMemory::JIStoSJIS().

#define MIME_QUOTED 2

CMemory.cpp の 64 行で定義されています。

参照元 CMemory::JIStoSJIS().

#define TO_EISU 0x04

CMemory.cpp の 2233 行で定義されています。

#define TO_HIRAGANA 0x02

CMemory.cpp の 2232 行で定義されています。

#define TO_KATAKANA 0x01

全角→半角 nMode 0x01 カタカナに影響アリ 0x02 ひらがなに影響アリ 0x04 英数字に影響アリ

CMemory.cpp の 2231 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:20:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMemory.cpp ソースファイル

CMemory.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, jepro, genta
00010     Copyright (C) 2001, mik, misaka, Stonee, hor
00011     Copyright (C) 2002, Moca, sui, aroka, genta
00012     Copyright (C) 2003, genta, Moca, かろと
00013     Copyright (C) 2004, Moca
00014     Copyright (C) 2005, Moca, D.S.Koba
00015
00016     This software is provided 'as-is', without any express or implied
00017     warranty. In no event will the authors be held liable for any damages
00018     arising from the use of this software.
00019
00020     Permission is granted to anyone to use this software for any purpose,
00021     including commercial applications, and to alter it and redistribute it
00022     freely, subject to the following restrictions:
00023
00024         1. The origin of this software must not be misrepresented;
00025            you must not claim that you wrote the original software.
00026            If you use this software in a product, an acknowledgment
00027            in the product documentation would be appreciated but is
00028            not required.
00029
00030         2. Altered source versions must be plainly marked as such,
00031            and must not be misrepresented as being the original software.
00032
00033         3. This notice may not be removed or altered from any source
00034            distribution.
00035 */
00036
00037 #include "stdafx.h"
00038 #include <stdio.h>
00039 #include <windows.h>
00040 #include <mbstring.h>
00041 #include <ctype.h>
00042 #include <locale.h>
00043 #include <limits.h>
00044 #include "CMemory.h"
00045 #include "etc_uty.h"
00046 #include "CEol.h"// 2002/2/3 aroka
00047 #include "charcode.h"
00048 #include "CESI.h"  // 2006.12.16  rastiv
00049 #include "my_icmp.h" // Nov. 29, 2002 genta/moca
00050
00051 //#ifdef _DEBUG
00052 #include "global.h"
00053 #include "debug.h"
00054 #include "CRunningTimer.h"
00055 //#endif
00056
00057
00058
00059 #define ESC_JIS     "\x01b$B"
00060 #define ESC_ASCII   "\x01b(B"
00061 #define ESC_8BIT    "\x01b(I"
00062
00063 #define MIME_BASE64 1
00064 #define MIME_QUOTED 2
00065
00066 // #define UUDECODE_CHAR(c) ((((unsigned char)c) - ((unsigned char)32)) & (unsigned char)0x3f)
00067
00068 /* 文字種別 */
00069 #define CHAR_ASCII      0   /* ASCII文字 */
00070 #define CHAR_8BITCODE   1   /* 8ビットコード(半角カタカナなど) */
00071 #define CHAR_ZENKAKU    2   /* 全角文字 */
00072 #define CHAR_NULL       3   /* なにもない */
00073
00074
00075
00076 /*///////////////////////////////////////////////////////////////////////////
00077 //
00078 //  CMemory::CMemory
00079 //  CMemory()
00080 //
00081 //  説明
00082 //      CMemoryクラス コンストラクタ
00083 //
00085 CMemory::CMemory()
00086 {
00087     m_nDataBufSize = 0;
00088     m_pData = NULL;
00089     m_nDataLen = 0;
00090     return;
00091 }
00092
00093
00094
00095 /*///////////////////////////////////////////////////////////////////////////
00096 //
00097 //  CMemory::CMemory
00098 //  CMemory( const char* pData, int nDataLen )
00099 //
00100 //  引数
00101 //    pData     格納データアドレス
00102 //    nDataLen  格納データの有効長
00103 //
00104 //  説明
00105 //      CMemoryクラス  コンストラクタ
00106 //
00107 //
00108 //  戻値
00109 //      なし
00110 //
00111 //  備考
00112 //      格納データにはNULLを含むことができる
00113 //
00115 CMemory::CMemory( const char* pData, int nDataLen )
00116 {
00117     m_nDataBufSize = 0;
00118     m_pData = NULL;
00119     m_nDataLen = 0;
00120     SetData( pData, nDataLen );
00121     return;
00122 }
00123
00124
00125 CMemory::~CMemory()
00126 {
00127     Empty();
00128     return;
00129 }
00130
00131
00132
00133
00134 const CMemory& CMemory::operator = ( char cChar )
00135 {
00136     char pszChar[2];
00137     pszChar[0] = cChar;
00138     pszChar[1] = '\0';
00139     SetData( pszChar, 1 );
00140     return *this;
00141 }
00142
00143
00144 //const CMemory& CMemory::operator = ( const char* pszStr )
00145 //{
00146 //  SetData( pszStr, strlen( pszStr ) );
00147 //  return *this;
00148 //}
00149
00150 /******
00151 const CMemory& CMemory::operator=( const char* pData, int nDataLen )
00152 {
00153     SetData( pData, nDataLen );
00154     return *this;
00155 }
00156 *******/
00157
00158 const CMemory& CMemory::operator = ( const CMemory& cMemory )
00159 {
00160     if( this != &cMemory ){
00161         SetData( (CMemory*)&(cMemory) );
00162     }
00163     return *this;
00164 }
00165
00166
00167
00168
00169
00170 //const CMemory& CMemory::operator += ( const char* pszStr )
00171 //{
00172 //  AllocBuffer( m_nDataLen + strlen( pszStr ) );
00173 //  AddData( pszStr, strlen( pszStr ) );
00174 //  return *this;
00175 //}
00176
00177
00179 //void Append( const char* pData, int nDataLen )
00180 //{
00181 //  AllocBuffer( m_nDataLen + nDataLen );
00182 //  AddData( pData, nDataLen );
00183 //  return;
00184 //}
00185
00186
00187 const CMemory& CMemory::operator += ( const CMemory& cMemory )
00188 {
00189     int         nDataLen;
00190     const char* pData;
00191     if( this == &cMemory ){
00192         CMemory cm = cMemory;
00193         pData = cm.GetPtr( &nDataLen );
00194         AllocBuffer( m_nDataLen + nDataLen );
00195         AddData( pData, nDataLen );
00196     }else{
00197         pData = cMemory.GetPtr( &nDataLen );
00198         AllocBuffer( m_nDataLen + nDataLen );
00199         AddData( (const char*)pData, nDataLen );
00200     }
00201     return *this;
00202 }
00203
00204
00205 const CMemory& CMemory::operator += ( char ch )
00206 {
00207     char szChar[2];
00208     szChar[0] = ch;
00209     szChar[1] = '\0';
00210     AllocBuffer( m_nDataLen + sizeof( ch ) );
00211     AddData( szChar, sizeof( ch ) );
00212     return *this;
00213 }
00214
00215
00216
00217 //CMemory::operator char*() const
00218 //{
00219 //  return (char*)m_pData;
00220 //}
00221 //CMemory::operator const char*() const
00222 //{
00223 //  return (const char*)m_pData;
00224 //}
00225 //CMemory::operator unsigned char*() const
00226 //{
00227 //  return (unsigned char*)m_pData;
00228 //}
00229 //CMemory::operator const unsigned char*() const
00230 //{
00231 //  return (const unsigned char*)m_pData;
00232 //}
00233 //
00234 //CMemory::operator void*() const
00235 //{
00236 //  return (void*)m_pData;
00237 //}
00238 //CMemory::operator const void*() const
00239 //{
00240 //  return (const void*)m_pData;
00241 //}
00242
00243
00244 /*
00245 ||  GetAt()と同機能
00246 */
00247 const char CMemory::operator[](int nIndex) const
00248 {
00249     if( nIndex < m_nDataLen ){
00250         return m_pData[nIndex];
00251     }else{
00252         return 0;
00253     }
00254 }
00255
00256
00257
00258
00259
00260
00261
00262
00263 /*
00264 || バッファの最後にデータを追加する（protectメンバ
00265 */
00266 void CMemory::AddData( const char* pData, int nDataLen )
00267 {
00268     if( NULL == m_pData ){
00269         return;
00270     }
00271     memcpy( &m_pData[m_nDataLen], pData, nDataLen );
00272     m_nDataLen += nDataLen;
00273     m_pData[m_nDataLen] = '\0';
00274     return;
00275 }
00276
00291 unsigned short CMemory::_mbcjmstojis_ex( unsigned char* pszSrc )
00292 {
00293     unsigned int    tmpw;   /* ← int が 16 bit 以上である事を期待しています。 */
00294
00295     if( _IS_SJIS_1(* pszSrc    ) && /* Shift_JIS 全角文字の 1バイト目 */
00296         _IS_SJIS_2(*(pszSrc+1) )    /* Shift_JIS 全角文字の 2バイト目 */
00297     ){  /* Shift_JIS全角文字である */
00298         tmpw = ( ((unsigned int)*pszSrc) << 8 ) | ( (unsigned int)*(pszSrc + 1) );
00299         if(
00300             ( *pszSrc == 0x0fa ) ||
00301             ( *pszSrc == 0x0fb ) ||
00302             ( ( *pszSrc == 0x0fc ) && ( *(pszSrc+1) <= 0x04b ) )
00303         ) {     /* fa40～fc4b の文字である。 */
00304             /* 文字コード変換処理 */
00305             if        ( tmpw <= 0xfa49 ) {  tmpw -= 0x0b51; }   /* fa40～fa49 → eeef～eef8 (ⅰ～ⅹ) */
00306             else    if( tmpw <= 0xfa53 ) {  tmpw -= 0x72f6; }   /* fa4a～fa53 → 8754～875d (Ⅰ～Ⅹ) */
00307             else    if( tmpw <= 0xfa57 ) {  tmpw -= 0x0b5b; }   /* fa54～fa57 → eef9～eefc (￢～＂) */
00308             else    if( tmpw == 0xfa58 ) {  tmpw  = 0x878a; }   /* ㈱ */
00309             else    if( tmpw == 0xfa59 ) {  tmpw  = 0x8782; }   /* № */
00310             else    if( tmpw == 0xfa5a ) {  tmpw  = 0x8784; }   /* ℡ */
00311             else    if( tmpw == 0xfa5b ) {  tmpw  = 0x879a; }   /* ∵ */
00312             else    if( tmpw <= 0xfa7e ) {  tmpw -= 0x0d1c; }   /* fa5c～fa7e → ed40～ed62 (纊～兊) */
00313             else    if( tmpw <= 0xfa9b ) {  tmpw -= 0x0d1d; }   /* fa80～fa9b → ed63～ed7e (兤～﨏) */
00314             else    if( tmpw <= 0xfafc ) {  tmpw -= 0x0d1c; }   /* fa9c～fafc → ed80～ede0 (塚～浯) */
00315             else    if( tmpw <= 0xfb5b ) {  tmpw -= 0x0d5f; }   /* fb40～fb5b → ede1～edfc (涖～犱) */
00316             else    if( tmpw <= 0xfb7e ) {  tmpw -= 0x0d1c; }   /* fb5c～fb7e → ee40～ee62 (犾～神) */
00317             else    if( tmpw <= 0xfb9b ) {  tmpw -= 0x0d1d; }   /* fb80～fb9b → ee63～ee7e (祥～蕙) */
00318             else    if( tmpw <= 0xfbfc ) {  tmpw -= 0x0d1c; }   /* fb9c～fbfc → ee80～eee0 (蕫～髙) */
00319             else{                           tmpw -= 0x0d5f; }   /* fc40～fc4b → eee1～eeec (髜～黑) */
00320         }
00321         return (unsigned short) _mbcjmstojis( tmpw );
00322     }
00323     return 0;
00324 }
00325
00326
00327 /* コード変換 SJIS→JIS */
00328 void CMemory::SJIStoJIS( void )
00329 {
00330     char*   pBufJIS;
00331     int     nBufJISLen;
00332     CMemory cMem;
00333
00334     /* SJIS→JIS */
00335     StrSJIStoJIS( &cMem, (unsigned char *)m_pData, m_nDataLen );
00336     pBufJIS = cMem.GetPtr( &nBufJISLen );
00337     SetData( pBufJIS, nBufJISLen );
00338     return;
00339 }
00340
00341
00346 int CMemory::StrSJIStoJIS( CMemory* pcmemDes, unsigned char* pszSrc, int nSrcLen )
00347 {
00348 //  BOOL bSJISKAN   = FALSE;
00349 //  BOOL b8BITCODE  = FALSE;
00350
00351     long            nWorkBgn;
00352     long            nWorkLen;
00353     int             i;
00354     int             j;
00355     unsigned char * pszWork;
00356     int             nCharKindOld;
00357     int             nCharKind;
00358     int             bChange;
00359     nCharKind = CHAR_ASCII;     /* ASCII文字 */
00360     nCharKindOld = nCharKind;
00361     bChange = FALSE;
00362 //  /* 文字種別 */
00363 //  #define CHAR_ASCII      0   /* ASCII文字 */
00364 //  #define CHAR_8BITCODE   1   /* 8ビットコード(半角カタカナなど) */
00365 //  #define CHAR_ZENKAKU    2   /* 全角文字 */
00366
00367     pcmemDes->SetDataSz( "" );
00368     pcmemDes->AllocBuffer( nSrcLen );
00369 //  bSJISKAN  = FALSE;
00370     nWorkBgn = 0;
00371     for( i = 0;; i++ ){
00372         /* 処理が終了した */
00373         if( i >= nSrcLen ){
00374             nCharKind = CHAR_NULL;  /* なにもない */
00375         }else
00376         // 漢字か？
00377         if( ( i < nSrcLen - 1) &&
00378             /* SJIS全角コードの1バイト目か */   //Sept. 1, 2000 jepro 'シフト'を'S'に変更
00379             _IS_SJIS_1( pszSrc[i + 0] ) &&
00380             /* SJIS全角コードの2バイト目か */
00381             _IS_SJIS_2( pszSrc[i + 1] )
00382         ){
00383             nCharKind = CHAR_ZENKAKU;   /* 全角文字 */
00384 //          ++i;
00385         }else
00386         if( pszSrc[i] & (unsigned char)0x80 ){
00387             nCharKind = CHAR_8BITCODE;  /* 8ビットコード(半角カタカナなど) */
00388         }else{
00389             nCharKind = CHAR_ASCII;     /* ASCII文字 */
00390         }
00391         /* 文字種類が変化した */
00392         if( nCharKindOld != nCharKind ){
00393             if( CHAR_NULL != nCharKind ){
00394                 bChange = TRUE;
00395             }
00396
00397             nWorkLen = i - nWorkBgn;
00398             /* 以前の文字種類 */
00399             switch( nCharKindOld ){
00400             case CHAR_ASCII:    /* ASCII文字 */
00401                 if( 0 < nWorkLen ){
00402                     pcmemDes->Append( (char *)&(pszSrc[nWorkBgn]), nWorkLen );
00403                 }
00404                 break;
00405             case CHAR_8BITCODE: /* 8ビットコード(半角カタカナなど) */
00406                 if( 0 < nWorkLen ){
00407                     pszWork = new unsigned char[nWorkLen + 1];
00408                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00409                     pszWork[ nWorkLen ] = '\0';
00410                     for( j = 0; j < nWorkLen; ++j ){
00411                         pszWork[j] -= (unsigned char)0x80;
00412                     }
00413                     pcmemDes->Append( (char *)pszWork, nWorkLen );
00414                     delete [] pszWork;
00415                 }
00416                 break;
00417             case CHAR_ZENKAKU:  /* 全角文字 */
00418                 if( 0 < nWorkLen ){
00419                     pszWork = new unsigned char[nWorkLen + 1];
00420                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00421                     pszWork[ nWorkLen ] = '\0';
00422                     // SJIS→JIS変換
00423                     nWorkLen = MemSJIStoJIS( pszWork, nWorkLen );
00424                     pcmemDes->Append( (char *)pszWork, nWorkLen );
00425                     delete [] pszWork;
00426                 }
00427                 break;
00428             }
00429             /* 新しい文字種類 */
00430             switch( nCharKind ){
00431             case CHAR_ASCII:    /* ASCII文字 */
00432                 pcmemDes->AppendSz( ESC_ASCII );
00433                 break;
00434             case CHAR_NULL:     /* なにもない */
00435                 if( bChange &&                  /* 一回は文字種が変化した */
00436                     nCharKindOld != CHAR_ASCII  /* 直前がASCII文字ではない */
00437                 ){
00438                     pcmemDes->AppendSz( ESC_ASCII );
00439                 }
00440                 break;
00441             case CHAR_8BITCODE: /* 8ビットコード(半角カタカナなど) */
00442                 pcmemDes->AppendSz( ESC_8BIT );
00443                 break;
00444             case CHAR_ZENKAKU:  /* 全角文字 */
00445                 pcmemDes->AppendSz( ESC_JIS );
00446                 break;
00447             }
00448             nCharKindOld = nCharKind;
00449             nWorkBgn = i;
00450             if( nCharKind == CHAR_NULL ){   /* なにもない */
00451                 break;
00452             }
00453         }
00454         if( nCharKind == CHAR_ZENKAKU ){    /* 全角文字 */
00455             ++i;
00456         }
00457     }
00458     return pcmemDes->m_nDataLen;
00459 }
00460
00461
00462
00463 /* SJIS→JIS変換 */
00464 long CMemory::MemSJIStoJIS( unsigned char* pszSrc, long nSrcLen )
00465 {
00466     int             i, j;
00467     char *          pszDes;
00468     unsigned short  sCode;
00469
00470     pszDes = new char[nSrcLen + 1];
00471     memset( pszDes, 0, nSrcLen + 1 );
00472     j = 0;
00473     for( i = 0; i < nSrcLen - 1; i++ ){
00474         //  Oct. 3, 2002 genta IBM拡張文字対応
00475         sCode = _mbcjmstojis_ex( pszSrc + i );
00476         if( sCode != 0 ){
00477             pszDes[j    ] = (unsigned char)(sCode >> 8);
00478             pszDes[j + 1] = (unsigned char)(sCode);
00479             ++i;
00480             j += 2;
00481         }else{
00482             pszDes[j] = pszSrc[i];
00483             j++;
00484         }
00485     }
00486     pszDes[j] = 0;
00487     memcpy( (char *)pszSrc, (const char *)pszDes, j );
00488     delete [] pszDes;
00489     return j;
00490 }
00491
00492
00493 /* コード変換 JIS→SJIS */
00494 void CMemory::JIStoSJIS( bool bMIMEdecode )
00495 {
00496     int             i;
00497     int             j;
00498     unsigned char*  pszDes;
00499     unsigned char*  pszSrc = (unsigned char*)m_pData;
00500     long            nSrcLen = m_nDataLen;
00501     BOOL            bMIME = FALSE;
00502     int             nMEME_Selected;
00503     long            nWorkBgn;
00504     long            nWorkLen;
00505     unsigned char*  pszWork;
00506
00507     int             nISOCode = CHAR_ASCII;
00508     int             nOldISOCode = nISOCode;
00509     BOOL            bFindESCSeq = FALSE;
00510     int             nESCSeqLen  = - 1; // エスケープシーケンス長 - 1
00511
00512     pszDes = new unsigned char [nSrcLen + 1];
00513     memset( pszDes, 0, nSrcLen + 1 );
00514     j = 0;
00515     if( false != bMIMEdecode ){
00516         for( i = 0; i < nSrcLen; i++ ){
00517             if( i <= nSrcLen - 16 && '=' == pszSrc[i] ){
00518                 if( 0 == _memicmp( "=?ISO-2022-JP?B?", &pszSrc[i], 16 ) ){
00519                     nMEME_Selected = MIME_BASE64;
00520                     bMIME = TRUE;
00521                     i += 15;
00522                     nWorkBgn = i + 1;
00523                     continue;
00524                 }
00525                 if( 0 == _memicmp( "=?ISO-2022-JP?Q?", &pszSrc[i], 16 ) ){
00526                     nMEME_Selected = MIME_QUOTED;
00527                     bMIME = TRUE;
00528                     i += 15;
00529                     nWorkBgn = i + 1;
00530                     continue;
00531                 }
00532             }
00533             if( bMIME == TRUE ){
00534                 if( i <= nSrcLen - 2  &&
00535                     0 == memcmp( "?=", &pszSrc[i], 2 ) ){
00536                     nWorkLen = i - nWorkBgn;
00537                     pszWork = new unsigned char [nWorkLen + 1];
00538 //                  memset( pszWork, 0, nWorkLen + 1 );
00539                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00540                     pszWork[nWorkLen] = '\0';
00541                     switch( nMEME_Selected ){
00542                       case MIME_BASE64:
00543                         // Base64デコード
00544                         nWorkLen = MemBASE64_Decode(pszWork, nWorkLen);
00545                         break;
00546                       case MIME_QUOTED:
00547                         // Quoted-Printableデコード
00548                         nWorkLen = QuotedPrintable_Decode( (char*)pszWork, nWorkLen );
00549                         break;
00550                     }
00551                     memcpy( &pszDes[j], pszWork, nWorkLen );
00552                     bMIME = FALSE;
00553                     j += nWorkLen;
00554                     ++i;
00555                     delete [] pszWork;
00556                     continue;
00557                 }else{
00558                     continue;
00559                 }
00560             }
00561             pszDes[j] = pszSrc[i];
00562             j++;
00563         }
00564         if( bMIME ){
00565             nWorkBgn -= 16; // MIMEヘッダをそのままコピー
00566             nWorkLen = i - nWorkBgn;
00567             memcpy( &pszDes[j], &pszSrc[nWorkBgn], nWorkLen );
00568             j += nWorkLen;
00569         }
00570
00571         // 非ASCIIテキスト対応メッセージヘッダのMIMEコード
00572         memcpy( (char *)pszSrc, (const char *)pszDes, j );
00573
00574         nSrcLen = j;
00575     }
00576
00577     nWorkBgn = 0;
00578     j = 0;
00579     for( i = 0; i < nSrcLen; i++ ){
00580         if( i <= nSrcLen - 3        &&
00581             pszSrc[i + 0] == 0x1b   &&
00582             pszSrc[i + 1] == '$'    &&
00583            (pszSrc[i + 2] == 'B' || pszSrc[i + 2] == '@') ){
00584
00585             bFindESCSeq = TRUE;
00586             nOldISOCode = nISOCode;
00587             nISOCode = CHAR_ZENKAKU;
00588             nESCSeqLen = 2;
00589         }else
00590         if( i <= nSrcLen - 3        &&
00591             pszSrc[i + 0] == 0x1b   &&
00592             pszSrc[i + 1] == '('    &&
00593             pszSrc[i + 2] == 'I' ){
00594
00595             bFindESCSeq = TRUE;
00596             nOldISOCode = nISOCode;
00597             nISOCode = CHAR_8BITCODE;
00598             nESCSeqLen = 2;
00599         }else
00600         if( i <= nSrcLen - 3        &&
00601             pszSrc[i + 0] == 0x1b   &&
00602             pszSrc[i + 1] == '('    &&
00603            (pszSrc[i + 2] == 'B' || pszSrc[i + 2] == 'J') ){
00604
00605             bFindESCSeq = TRUE;
00606             nOldISOCode = nISOCode;
00607             nISOCode = CHAR_ASCII;
00608             nESCSeqLen = 2;
00609         }
00610         // else{}
00611
00612         if( bFindESCSeq ){
00613             if( 0 < i - nWorkBgn ){
00614                 if( CHAR_ZENKAKU == nOldISOCode ){
00615                     nWorkLen = i - nWorkBgn;
00616                     pszWork = new unsigned char [nWorkLen + 1];
00617                     memcpy( pszWork, &pszSrc[nWorkBgn], nWorkLen );
00618                     pszWork[nWorkLen] = '\0';
00619                     // JIS→SJIS変換
00620                     nWorkLen = MemJIStoSJIS( (unsigned char*)pszWork, nWorkLen );
00621                     memcpy( &pszDes[j], pszWork, nWorkLen );
00622                     j += nWorkLen;
00623                     delete [] pszWork;
00624                 }
00625             }
00626             i += nESCSeqLen;
00627             nWorkBgn = i + 1;
00628             bFindESCSeq = FALSE;
00629             continue;
00630         }else
00631         if( CHAR_ASCII == nISOCode ){
00632             pszDes[j] = pszSrc[i];
00633             j++;
00634             continue;
00635         }else
00636         if( CHAR_8BITCODE == nISOCode ){
00637             pszDes[j] = (unsigned char)0x80 | pszSrc[i];
00638             j++;
00639             continue;
00640         }
00641     }
00642
00643     // ESCSeqがASCIIに戻らなかったときに，データを失わないように
00644     if( CHAR_ZENKAKU == nISOCode ){
00645         if( 0 < i - nWorkBgn ){
00646             nWorkBgn -= nESCSeqLen + 1; // ESCSeqも残しておきたい
00647             nWorkLen = i - nWorkBgn;
00648             memcpy( &pszDes[j], &pszSrc[nWorkBgn], nWorkLen );
00649             j += nWorkLen;
00650         }
00651     }
00652
00653     memcpy( pszSrc, pszDes, j );
00654     m_nDataLen = j;
00655     delete [] pszDes;
00656     return;
00657 }
00658
00659
00660
00661
00662
00663 /* 文字がBase64のデータか */
00664 int CMemory::IsBASE64Char( char cData )
00665 {
00666     int nret = -1;
00667     if( (unsigned char)cData < 0x80 ){
00668         nret = Charcode::BASE64VAL[cData];
00669         if( nret == 0xff ){
00670             nret = -1;
00671         }
00672     }
00673     return nret;
00674 }
00675
00676 // BASE64 => デコード後
00677 // 4文字  => 3文字
00678
00679 // Base64デコード
00680 long CMemory::MemBASE64_Decode( unsigned char* pszSrc, long nSrcLen )
00681 {
00682     int             i, j, k;
00683     long            nSrcSize;
00684     long            lData;
00685     unsigned char*  pszDes;
00686     long            nDesLen;
00687     long            lDesSize;
00688     int             sMax;
00689
00690     //Srcの有効長の算出
00691     for( i = 0; i < nSrcLen; i++ ){
00692         if( pszSrc[i] == '=' ){
00693             break;
00694         }
00695     }
00696     nSrcSize = i;
00697     nDesLen = (nSrcSize / 4) * 3;
00698     nDesLen += ((nSrcSize % 4) * 6) / 8;
00699     pszDes = new unsigned char[nDesLen + 1];
00700     memset( pszDes, 0, nDesLen + 1 );
00701
00702     lDesSize = 0;
00703     for( i = 0; i < nSrcSize; i++ ){
00704         if( i < nSrcSize - (nSrcSize % 4) ){
00705             sMax = 4;
00706         }else{
00707             sMax = (nSrcSize % 4);
00708         }
00709         lData = 0;
00710         for( j = 0; j < sMax; j++ ){
00711             k = IsBASE64Char( pszSrc[i + j] );
00712             if( k >= 0 ){
00713                 lData |= (((long)k) << ((4 - j - 1) * 6));
00714             }else{
00715             }
00716         }
00717         for( j = 0; j < (sMax * 6)/ 8 ; j++ ){
00718             pszDes[lDesSize] = (unsigned char)((lData >> (8 * (2 - j))) & 0x0000ff);
00719             lDesSize++;
00720         }
00721         i+= 3;
00722     }
00723     pszDes[lDesSize] = 0;
00724     memcpy( (char *)pszSrc, (const char *)pszDes, lDesSize );
00725     delete [] pszDes;
00726     return lDesSize;
00727 }
00728
00729
00730 /*
00731 * Base64エンコード
00732 *
00733 *   符号化したデータは、新たに確保したメモリに格納されます
00734 *   終了時に、そのメモリハンドルを指定されたアドレスに格納します
00735 *   符号化されたデータ列は、一応NULL終端文字列になっています
00736 *
00737 */
00738 int CMemory::MemBASE64_Encode(
00739     const char* pszSrc      ,   // エンコード対象データ
00740     int         nSrcLen     ,   // エンコード対象データ長
00741     char**      ppszDes     ,   // 結果データ格納メモリポインタのアドレス
00742 //  HGLOBAL*    phgDes      ,   // 結果データのメモリハンドル格納場所
00743 //  long*       pnDesLen    ,   // 結果データのデータ長格納場所
00744     int         nWrap       ,   // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
00745     int         bPadding        // パディングするか
00746 )
00747 {
00748     int         i, j, k, m, n;
00749     long        nDesIdx;
00750 //  char*       pszDes;
00751     long        nDataDes;
00752     long        nDataSrc;
00753     long        nLineLen;
00754     char        cw;
00755     const char  szBASE64CODE[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
00756     int         nBASE64CODE_Num = sizeof( szBASE64CODE ) / sizeof( szBASE64CODE[0] );
00757     int         nDesLen;
00758
00759     // 符号化後の長さを算出（ヘッダー・フッターを除く）
00760     //=?ISO-2022-JP?B? GyRC QXc/ Lkgi JE4/ NiRq Siwk MRso Qg== ?=
00761 //  if( bPadding ){
00762         nDesLen = ((nSrcLen / 3) + ((nSrcLen % 3)? 1:0)) * 4;
00763         if( -1 != nWrap ){
00764             nDesLen += 2 * ( nDesLen / nWrap + ((nDesLen % nWrap)? 1:0 ));
00765         }
00766 //  }else{
00767 //      nDesLen = ?????????????????????????????????????????;
00768 //  }
00769
00770 //  *phgDes = GlobalAlloc( GHND, nDesLen + 1 );
00771 //  pszDes = (char *)GlobalLock( *phgDes );
00772     (*ppszDes) = new char[nDesLen + 1];
00773     memset( (*ppszDes), 0, nDesLen + 1 );
00774
00775     nDesIdx = 0;
00776     nLineLen = 0;
00777     for( i = 0; i < nSrcLen; i += 3 ){
00778         memcpy( (void *)&nDataDes, "====", 4 );
00779         nDataSrc = 0;
00780         if( nSrcLen - i < 3 ){
00781             k = (nSrcLen % 3) * 8 / 6 + 1;
00782             for( m = 0; m < nSrcLen % 3; m++ ){
00783                 ((char*)&nDataSrc)[3 - m] = pszSrc[i + m];
00784             }
00785         }else{
00786             k = 4;
00787             for( m = 0; m < 3; m++ ){
00788                 ((char*)&nDataSrc)[3 - m] = pszSrc[i + m];
00789             }
00790         }
00791         for( j = 0; j < k; j++ ){
00792             cw = (char)((nDataSrc >> (6 * (3 - j) + 8)) & 0x0000003f);
00793             ((char*)&nDataDes)[j] = szBASE64CODE[(int)cw];
00794         }
00795         if( bPadding ){     // パディングするか
00796             k = 4;
00797         }else{
00798             nDesLen -= (4 - k);
00799         }
00800         for( n = 0; n < k; n++ ){
00801             // 自動折り返しの処理
00802             if( nWrap != -1 && nLineLen == nWrap ){
00803                 (*ppszDes)[nDesIdx + 0] = CR;
00804                 (*ppszDes)[nDesIdx + 1] = LF;
00805                 nDesIdx += 2;
00806                 nLineLen = 0;
00807             }
00808             (*ppszDes)[nDesIdx] = ((char*)&nDataDes)[n];
00809             nDesIdx++;
00810             nLineLen++;
00811         }
00812     }
00813 //  GlobalUnlock( *phgDes );
00814     return nDesLen;
00815 }
00816
00817
00818
00819 /* Base64デコード */
00820 void CMemory::BASE64Decode( void )
00821 {
00822     int     nBgn;
00823     int     nPos;
00824     char*   pszSrc = m_pData;
00825     long    nSrcLen = m_nDataLen;
00826     CMemory cmemBuf;
00827
00828     nBgn = 0;
00829     nPos = 0;
00830     while( nBgn < nSrcLen ){
00831         while( nBgn < nSrcLen && 0 > IsBASE64Char( pszSrc[nBgn] ) ){
00832             nBgn++;
00833         }
00834         nPos = nBgn + 1;
00835         while( nPos < nSrcLen && 0 <= IsBASE64Char( pszSrc[nPos] ) ){
00836             nPos++;
00837         }
00838         if( nBgn < nSrcLen && nPos - nBgn > 0 ){
00839             char*   pData;
00840             int     nDesLen;
00841             pData = new char[nPos - nBgn];
00842             memcpy( pData, &pszSrc[nBgn], nPos - nBgn );
00843
00844             // Base64デコード
00845             nDesLen = MemBASE64_Decode( (unsigned char *)pData, nPos - nBgn );
00846             cmemBuf.Append( pData, nDesLen );
00847             delete [] pData;
00848         }
00849         nBgn = nPos;
00850     }
00851     SetData( cmemBuf.GetPtr(), cmemBuf.m_nDataLen );
00852     return;
00853 }
00854
00855
00856
00857
00858 /* Uudecode (デコード）*/
00859 void CMemory::UUDECODE( char* pszFileName )
00860 {
00861     unsigned char*  pszSrc = (unsigned char *)m_pData;
00862     long            nSrcLen = m_nDataLen;
00863     CMemory         cmemBuf;
00864     int             nBgn;
00865     int             nPos;
00866     BOOL            bBEGIN;
00867     unsigned char   uchDecode[64];
00868     bBEGIN = FALSE;
00869     nBgn = 0;
00870     while( nBgn < nSrcLen ){
00871         nPos = nBgn;
00872         while( nPos < nSrcLen && pszSrc[nPos] != CR && pszSrc[nPos] != LF ){
00873             nPos++;
00874         }
00875         if( nBgn < nSrcLen && nPos - nBgn > 0 ){
00876             int             nBufLen = nPos - nBgn;
00877             unsigned char*  pBuf = new unsigned char[ nBufLen + 1];
00878             memset( pBuf, 0, nBufLen + 1 );
00879             memcpy( pBuf, &pszSrc[nBgn], nBufLen );
00880             if( !bBEGIN ){
00881                 if( 0 == memcmp( pBuf, "begin ", 6 ) ){
00882                     bBEGIN = TRUE;
00883                     char*   pTok;
00884                     /* 最初のトークンを取得します。*/
00885                     pTok = strtok( (char*)pBuf, " " );
00886                     /* 次のトークンを取得します。*/
00887                     pTok = strtok( NULL, " " );
00888                     /* 更に次のトークンを取得します。*/
00889                     pTok = strtok( NULL, "\0" );
00890                     if( NULL != pszFileName ){
00891                         strcpy( pszFileName, pTok );
00892                     }
00893                 }
00894             }else{
00895                 if( 0 == memcmp( pBuf, "end", 3 ) ){
00896                     break;
00897                 }else{
00898                     int     nBytes;
00899                     nBytes = UUDECODE_CHAR( pBuf[0] );
00900                     if( 0 == nBytes ){
00901                         break;
00902                     }
00903                     int     iByteIndex = 0;
00904                     int     iCharIndex = 1;
00905                     while ( iByteIndex < nBytes ) {
00906                         // Note that nBytes may not be a multiple of 3, but the
00907                         // number of characters on the line should be a multiple of 4.
00908                         // If the number of encoded bytes is not a multiple of 3 then
00909                         // extra pad characters should have been added to the text
00910                         // by the encoder to make the character count a multiple of 4.
00911 //                      if( pBuf[iCharIndex] == '\0' ||
00912 //                          pBuf[iCharIndex + 1] == '\0' ||
00913 //                          pBuf[iCharIndex + 2] == '\0' ||
00914 //                          pBuf[iCharIndex + 3] == '\0') {
00915 //                          //break;
00916 //                      }
00917                         // Decode the line in 3-byte (=4-character) jumps.
00918                         if( iByteIndex < nBytes ){
00919                             uchDecode[iByteIndex] =
00920                                 (unsigned char)((UUDECODE_CHAR(pBuf[iCharIndex]) << 2) |
00921                                 (UUDECODE_CHAR(pBuf[iCharIndex + 1]) >> 4));
00922                             iByteIndex++;
00923                         }
00924                         if( iByteIndex < nBytes ){
00925                             uchDecode[iByteIndex] =
00926                                 (unsigned char)((UUDECODE_CHAR(pBuf[iCharIndex + 1]) << 4) |
00927                                 (UUDECODE_CHAR(pBuf[iCharIndex + 2]) >> 2));
00928                             iByteIndex++;
00929                         }
00930                         if( iByteIndex < nBytes ){
00931                             uchDecode[iByteIndex] =
00932                                 (unsigned char)((UUDECODE_CHAR(pBuf[iCharIndex + 2]) << 6) |
00933                                 UUDECODE_CHAR(pBuf[iCharIndex + 3]));
00934                             iByteIndex++;
00935                         }
00936                         iCharIndex += 4;
00937                     }
00938                     cmemBuf.Append( (char*)uchDecode, iByteIndex );
00939                 }
00940             }
00941             delete [] pBuf;
00942         }
00943         nBgn = nPos;
00944         while( nBgn < nSrcLen && ( pszSrc[nBgn] == CR || pszSrc[nBgn] == LF ) ){
00945             nBgn++;
00946         }
00947     }
00948     SetData( cmemBuf.GetPtr(), cmemBuf.m_nDataLen );
00949     return;
00950 }
00951
00952
00953
00954 /* Quoted-Printableデコード */
00955 long CMemory::QuotedPrintable_Decode( char* pszSrc, long nSrcLen )
00956 {
00957     int         i;
00958     char*       pszDes;
00959     long        lDesSize;
00960     char        szHex[3];
00961     int         nHex;
00962
00963     memset( szHex, 0, 3 );
00964     pszDes = new char [nSrcLen + 1];
00965     memset( pszDes, 0, nSrcLen + 1 );
00966     lDesSize = 0;
00967     for( i = 0; i < nSrcLen; i++ ){
00968         if( pszSrc[i] == '=' ){
00969             szHex[0] = pszSrc[i + 1];
00970             szHex[1] = pszSrc[i + 2];
00971             sscanf( szHex, "%x", &nHex );
00972             pszDes[lDesSize] = (char)nHex;
00973             lDesSize++;
00974             i += 2;
00975         }else{
00976             pszDes[lDesSize] = pszSrc[i];
00977             lDesSize++;
00978         }
00979     }
00980     pszDes[lDesSize] = 0;
00981     memcpy( (char *)pszSrc, (const char *)pszDes, lDesSize );
00982     delete [] pszDes;
00983     return lDesSize;
00984 }
00985
00986
00987
00988
00989
00990 /* JIS→SJIS変換 */
00991 long CMemory::MemJIStoSJIS( unsigned char* pszSrc, long nSrcLen )
00992 {
00993     int             i, j;
00994     char*           pszDes;
00995     unsigned short  sCode;
00996
00997     pszDes = new char [nSrcLen + 1];
00998     memset( pszDes, 0, nSrcLen + 1 );
00999     j = 0;
01000     for( i = 0; i < nSrcLen - 1; i++ ){
01001         sCode = (unsigned short)_mbcjistojms(
01002             (unsigned int)
01003             (((unsigned short)pszSrc[i    ] << 8) |
01004              ((unsigned short)pszSrc[i + 1]))
01005         );
01006         if( sCode != 0 ){
01007             pszDes[j    ] = (unsigned char)(sCode >> 8);
01008             pszDes[j + 1] = (unsigned char)(sCode);
01009             ++i;
01010             j+=2;
01011         }else{
01012             pszDes[j] = pszSrc[i];
01013             j++;
01014         }
01015     }
01016     pszDes[j] = 0;
01017     memcpy( (char *)pszSrc, (const char *)pszDes, j );
01018     delete [] pszDes;
01019     return j;
01020 }
01021
01022
01023
01024 /************************************************************************
01025 *
01026 *【関数名】
01027 *   EUCToSJIS
01028 *
01029 *【機能】
01030 *   指定範囲のバッファ内にEUC漢字コード
01031 *   があればSJIS全角コードに変換する。  //Sept. 1, 2000 jepro 'シフト'を'S'に変更
01032 *   半角文字は変換せずにそのまま残す。
01033 *
01034 *   制御文字CRLF以外のバイナリコードが混入している場合には結果が不定と
01035 *   なることがあるので注意。
01036 *   バッファの最後に漢字コードの1バイト目だけがあると困る
01037 *
01038 *【入力】   なし
01039 *
01040 *【戻り値】 なし
01041 *
01042 ************************************************************************/
01043 /* EUC→SJISコード変換 */
01044 void CMemory::EUCToSJIS( void )
01045 {
01046     char*           pBuf = m_pData;
01047     int             nBufLen = m_nDataLen;
01048     int             nPtr = 0L;
01049     int             nPtrDes = 0L;
01050     char*           pszDes = new char[nBufLen];
01051     unsigned int    sCode;
01052
01053     while( nPtr < nBufLen ){
01054         if( (unsigned char)pBuf[nPtr] == (unsigned char)0x8e && nPtr < nBufLen - 1 ){
01055             /* 半角カタカナ */
01056             pszDes[nPtrDes] = pBuf[nPtr + 1];
01057             nPtrDes++;
01058             nPtr += 2;
01059         }else
01060         /* EUC漢字コードか? */
01061         if( nPtr < nBufLen - 1 && Charcode::IsEucKan1(pBuf[nPtr]) && Charcode::IsEucKan2(pBuf[nPtr + 1L]) ){
01062             /* 通常のJISコードに変換 */
01063             pBuf[nPtr     ] &= 0x7f;
01064             pBuf[nPtr + 1L] &= 0x7f;
01065
01066             /* SJISコードに変換 */  //Sept. 1, 2000 jepro 'シフト'を'S'に変更
01067             sCode = (unsigned short)_mbcjistojms(
01068                 (unsigned int)
01069                 (((unsigned short)pBuf[nPtr] << 8) |
01070                  ((unsigned short)pBuf[nPtr + 1]))
01071             );
01072             if( sCode != 0 ){
01073                 pszDes[nPtrDes    ] = (unsigned char)(sCode >> 8);
01074                 pszDes[nPtrDes + 1] = (unsigned char)(sCode);
01075                 nPtrDes += 2;;
01076                 nPtr += 2;
01077             }else{
01078                 pszDes[nPtrDes] = pBuf[nPtr];
01079                 nPtrDes++;
01080                 nPtr++;
01081             }
01082         }else{
01083             pszDes[nPtrDes] = pBuf[nPtr];
01084             nPtrDes++;
01085             nPtr++;
01086         }
01087     }
01088     SetData( pszDes, nPtrDes );
01089     delete [] pszDes;
01090     return;
01091 }
01092
01093
01094
01095
01096 /* SJIS→EUCコード変換 */
01097 void CMemory::SJISToEUC( void )
01098 {
01099     unsigned char*  pBuf = (unsigned char*)m_pData;
01100     int             nBufLen = m_nDataLen;
01101     int             i;
01102     int             nCharChars;
01103     unsigned char*  pDes;
01104     int             nDesIdx;
01105     unsigned short  sCode;
01106
01107     pDes = new unsigned char[nBufLen * 2];
01108     nDesIdx = 0;
01109     for( i = 0; i < nBufLen; ++i ){
01110         // 2005-09-02 D.S.Koba GetSizeOfChar
01111         nCharChars = CMemory::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
01112         if( nCharChars == 1 ){
01113             if( pBuf[i] >= (unsigned char)0x80 ){
01114                 /* 半角カタカナ */
01115                 pDes[nDesIdx    ] = (unsigned char)0x8e;
01116                 pDes[nDesIdx + 1] = pBuf[i];
01117                 nDesIdx += 2;
01118             }else{
01119                 pDes[nDesIdx] = pBuf[i];
01120                 nDesIdx++;
01121             }
01122         }else
01123         if( nCharChars == 2 ){
01124             /* 全角文字 */
01125             //  Oct. 3, 2002 genta IBM拡張文字対応
01126             sCode = (unsigned short)_mbcjmstojis_ex( pBuf + i );
01127             if(sCode != 0){
01128                 pDes[nDesIdx    ] = (unsigned char)0x80 | (unsigned char)(sCode >> 8);
01129                 pDes[nDesIdx + 1] = (unsigned char)0x80 | (unsigned char)(sCode);
01130                 nDesIdx += 2;
01131                 ++i;
01132             }else{
01133                 pDes[nDesIdx    ] = pBuf[i];
01134                 pDes[nDesIdx + 1] = pBuf[i + 1];
01135                 nDesIdx += 2;
01136                 ++i;
01137             }
01138         }else
01139         if( nCharChars > 0 ){
01140             i += nCharChars - 1;
01141         }
01142     }
01143     SetData( (const char *)pDes, nDesIdx );
01144     delete [] pDes;
01145     return;
01146 }
01147
01148 /****
01149 UTF-8のコード
01150     ビット列        内容
01151     0xxx xxxx   1バイトコード
01152     10xx xxxx   2バイトコード、3バイトコードの2, 3文字目
01153     110x xxxx   2バイトコードの先頭バイト
01154     1110 xxxx   3バイトコードの先頭バイト
01155
01156 UTF-8のエンコーディング
01157     フォーマット    Unicode         Unicodeビット列                     UTFビット列             備考
01158     1バイトコード   \u0～\u7F       0000 0000 0aaa bbbb                 0aaa bbbb
01159     2バイトコード   \u80～\u7FF     0000 0aaa bbbb cccc                 110a aabb 10bb cccc
01160     3バイトコード   \u800～\uFFFF   aaaa bbbb cccc dddd                 1110 aaaa 10bb bbcc 10cc dddd
01161     4バイトコード   Surrogate       110110wwwwzzzzyy + 110111yyyyxxxxxx 1111 0uuu 10uu zzzz 10yy yyyy 10xx xxxx Javaでは未使用
01162 ***/
01163
01164 /* UTF-8の文字か */
01165 int CMemory::IsUTF8( const unsigned char* pData, int nDataLen )
01166 {
01167     if( 3 <= nDataLen
01168      && (unsigned char)0xe0 == (unsigned char)(pData[0] & (unsigned char)0xf0)
01169      && (unsigned char)0x80 == (unsigned char)(pData[1] & (unsigned char)0xc0)
01170      && (unsigned char)0x80 == (unsigned char)(pData[2] & (unsigned char)0xc0)
01171     ){
01172         return 3;
01173     }
01174     if( 2 <= nDataLen
01175      && (unsigned char)0xc0 == (unsigned char)(pData[0] & (unsigned char)0xe0)
01176      && (unsigned char)0x80 == (unsigned char)(pData[1] & (unsigned char)0xc0)
01177     ){
01178         return 2;
01179     }
01180 //  if( 1 <= nDataLen
01181 //   && (unsigned char)0 == (unsigned char)(pData[0] & (unsigned char)0x80)
01182 //  ){
01183 //      return 1;
01184 //  }
01185     return 0;
01186
01187 }
01188
01189 int CMemory::DecodeUTF8toUnicode( const unsigned char* pData, int nUTF8Bytes, unsigned char* pDes )
01190 {
01191     switch( nUTF8Bytes ){
01192     case 1:
01193         pDes[1] = 0x00;
01194         pDes[0] = pData[0];
01195         return 2;
01196     case 2:
01197         pDes[1] = ( pData[0] & 0x1c ) >> 2;
01198         pDes[0] = ( pData[0] << 6 ) | ( pData[1] & 0x3f );
01199         return 2;
01200     case 3:
01201         pDes[1] =  ( ( pData[0] & 0x0f ) << 4 )
01202                  | ( ( pData[1] & 0x3c ) >> 2 );
01203         pDes[0] =  (   pData[2] & 0x3f )
01204                  | ( ( pData[1] & 0x03 ) << 6 );
01205         return 2;
01206     }
01207     return 0;
01208 }
01209
01210 /* UTF-8→SJISコード変換 */
01211 void CMemory::UTF8ToSJIS( void )
01212 {
01213     unsigned char*  pBuf = (unsigned char*)m_pData;
01214     int             nBufLen = m_nDataLen;
01215     int             i;
01216     int             j;
01217 //  int             nCharChars;
01218     unsigned char*  pDes;
01219     int             k;
01220 //  unsigned short  sCode;
01221     int             nUTF8Bytes;
01222     int             nUNICODEBytes;
01223     unsigned char   pWork[100];
01224
01225     setlocale( LC_ALL, "Japanese" );
01226     pDes = new unsigned char[nBufLen * 2];
01227     k = 0;
01228     for( i = 0; i < nBufLen; ){
01229         /* UTF-8の文字か */
01230         nUTF8Bytes = IsUTF8( &pBuf[i], nBufLen - i );
01231         switch( nUTF8Bytes ){
01232         case 1:
01233         case 2:
01234         case 3:
01235             nUNICODEBytes = DecodeUTF8toUnicode( &pBuf[i], nUTF8Bytes, pWork );
01236 //          memcpy( &pDes[k], pWork, nUNICODEBytes );
01237 //          k += nUNICODEBytes;
01238
01239             if( 2 == nUNICODEBytes ){
01240                 j = wctomb( (char*)&(pDes[k]), ((wchar_t*)pWork)[0] );
01241                 if( -1 == j ){
01242                     memcpy( &pDes[k], &pBuf[i], nUTF8Bytes );
01243                     k += nUTF8Bytes;
01244                 }else{
01245                     k += j;
01246                 }
01247             }else{
01248                 memcpy( &pDes[k], &pBuf[i], nUTF8Bytes );
01249                 k += nUTF8Bytes;
01250             }
01251
01252             i += nUTF8Bytes;
01253             break;
01254         default:
01255             pDes[k] = pBuf[i];
01256             ++i;
01257             k++;
01258             break;
01259         }
01260     }
01261     SetData( (const char *)pDes, k );
01262     delete [] pDes;
01263     return;
01264
01265 }
01266
01267
01268
01269
01270
01271 /* コード変換 SJIS→UTF-8 */
01272 void CMemory::SJISToUTF8( void )
01273 {
01274     /* コード変換 SJIS→Unicode */
01275     SJISToUnicode();
01276
01277     /* コード変換 Unicode→UTF-8 */
01278     UnicodeToUTF8();
01279     return;
01280 }
01281
01282 /* コード変換 SJIS→UTF-7 */
01283 void CMemory::SJISToUTF7( void )
01284 {
01285     /* コード変換 SJIS→Unicode */
01286     SJISToUnicode();
01287
01288     /* コード変換 Unicode→UTF-7 */
01289     UnicodeToUTF7();
01290     return;
01291 }
01292
01293
01294
01295
01296 /* コード変換 Unicode→UTF-8 */
01297 void CMemory::UnicodeToUTF8( void )
01298 {
01299     wchar_t*        pUniBuf = (wchar_t*)m_pData;
01300 //  char*           pBuf = (char*)m_pData;
01301     int             nBufLen = m_nDataLen;
01302     int             i;
01303 //  int             j;
01304 //  int             nCharChars;
01305     unsigned char*  pWork;
01306     unsigned char*  pDes;
01307     int             k;
01308 //  unsigned short  sCode;
01309 //  int             nUTF8Bytes;
01310 //  int             nUNICODEBytes;
01311 //  unsigned char   pWork[100];
01312 //  unsigned char*  pBufUTF8;
01313 //  wchar_t*        pUniBuf;
01314
01315
01316     setlocale( LC_ALL, "Japanese" );
01317     k = 0;
01318     for( i = 0; i < (int)(nBufLen / sizeof( wchar_t )); ++i ){
01319         if( 0x0000 <= pUniBuf[i] && 0x007f >= pUniBuf[i] ){
01320             k += 1;
01321         }else
01322         if( 0x0080 <= pUniBuf[i] && 0x07ff >= pUniBuf[i] ){
01323             k += 2;
01324         }else
01325         if( 0x0800 <= pUniBuf[i] && 0xffff >= pUniBuf[i] ){
01326             k += 3;
01327         }
01328     }
01329     pDes = new unsigned char[k + 1];
01330     memset( pDes, 0, k + 1 );
01331     k = 0;
01332     for( i = 0; i < (int)(nBufLen / sizeof( wchar_t )); ++i ){
01333         pWork = (unsigned char*)&((pUniBuf[i]));
01334 //      pWork = (unsigned char*)pUniBuf;
01335 //      pWork += sizeof( wchar_t ) * i;
01336
01337         if( 0x0000 <= pUniBuf[i] && 0x007f >= pUniBuf[i] ){
01338             pDes[k] = pWork[0];
01339             k += 1;
01340         }else
01341         if( 0x0080 <= pUniBuf[i] && 0x07ff >= pUniBuf[i] ){
01342             pDes[k] = ( ( pWork[0] & 0xc0 ) >> 6 )
01343                     | ( ( pWork[1] & 0x07 ) << 2 )
01344                     | 0xc0;
01345             pDes[k + 1] = ( pWork[0] & 0x3f ) | 0x80;
01346             k += 2;
01347         }else
01348         if( 0x0800 <= pUniBuf[i] && 0xffff >= pUniBuf[i] ){
01349             pDes[k] = ( ( pWork[1] & 0xf0 ) >> 4 )
01350                         | 0xe0;
01351             pDes[k + 1] = 0x80
01352                         | ( ( pWork[1] & 0x0f ) << 2 )
01353                         | ( ( pWork[0] & 0xc0 ) >> 6 );
01354             pDes[k + 2] = 0x80
01355                         | ( pWork[0] & 0x3f );
01356
01357             k += 3;
01358         }else{
01359         }
01360     }
01361     SetData( (const char *)pDes, k );
01362     delete [] pDes;
01363     return;
01364 }
01365
01366 /* コード変換 UTF-7→SJIS
01367
01368     UTF-7についてはRFC 2152参照．
01369 */
01370 void CMemory::UTF7ToSJIS( void )
01371 {
01372     char*       pBuf = (char*)m_pData;
01373     int         nBufLen = m_nDataLen;
01374     int         i;
01375     char*       pszWork;
01376     int         nWorkLen;
01377     char*       pDes;
01378     int         k;
01379     BOOL        bBASE64;
01380     int         nBgn;
01381 //  CMemory     cmemWork;
01382     CMemory*    pcmemWork;
01383
01384     pcmemWork = new CMemory;
01385
01386     pDes = new char[nBufLen + 1];
01387     setlocale( LC_ALL, "Japanese" );
01388     k = 0;
01389     bBASE64 = FALSE;
01390     // 2002.10.05 Moca < を<= に変更 ただし，pBuf[nBufLen]は存在しないことに注意
01391     for( i = 0; i <= nBufLen; ++i ){
01392         if( !bBASE64 ){
01393             if( i < nBufLen - 1
01394               &&  '+' == pBuf[i]
01395               &&  '-' == pBuf[i + 1]
01396             ){
01397                 pDes[k] = '+';
01398                 k++;
01399                 ++i;
01400             }else
01401             if( i < nBufLen - 2
01402               &&  '+' == pBuf[i]
01403               &&  -1 != IsBASE64Char( pBuf[i + 1] ) /* 文字がBase64のデータか */
01404             ){
01405                 nBgn = i + 1;
01406                 bBASE64 = TRUE;
01407             }else
01408             if( i < nBufLen ){
01409                 pDes[k] = pBuf[i];
01410                 k++;
01411             }
01412         }else{
01413             if( i == nBufLen ||             //  2002.10.25 Moca データ終端時もデコード
01414                 -1 == IsBASE64Char( pBuf[i] ) ){    //  Oct. 10, 2000 genta
01415                 nWorkLen = i - nBgn;
01416                 BOOL bSuccess;
01417                 bSuccess = TRUE;
01418
01419                 if( 3 <= nWorkLen ){
01420                     pszWork = new char [nWorkLen + 1];
01421 //                  memset( pszWork, 0, nWorkLen + 1 );
01422                     memcpy( pszWork, &pBuf[nBgn], nWorkLen );
01423                     pszWork[nWorkLen] = '\0';
01424                     // Base64デコード
01425                     nWorkLen = MemBASE64_Decode( (unsigned char *)pszWork, nWorkLen );
01426                     pszWork[nWorkLen] = '\0';
01427                     if( 0 == nWorkLen % 2 ){
01428                         /* Unicodeは2バイト単位 */
01429                         pcmemWork->SetData( pszWork, nWorkLen );
01430                         /* コード変換 UnicodeBE→SJIS */
01431                         pcmemWork->UnicodeBEToSJIS();
01432                         memcpy( &pDes[k], pcmemWork->m_pData, pcmemWork->m_nDataLen );
01433                         k += pcmemWork->m_nDataLen; //  Oct. 10, 2000 genta
01434
01435                         //  Oct. 10, 2000 genta
01436                         //  '-'はBase64部の終わりを示す記号
01437                         // それ以外はBase64の終わりを示すと同時に有意な文字列
01438                         if( i < nBufLen && '-' != pBuf[i] )
01439                             --i;
01440                     }else{
01441                         bSuccess = FALSE;
01442                     }
01443                     delete [] pszWork;
01444                     pszWork = NULL;
01445                 }else{
01446                     bSuccess = FALSE;
01447
01448                 }
01449                 if( FALSE == bSuccess ){
01450                     if( i < nBufLen ){
01451                         nWorkLen = i - nBgn + 2;
01452                     }else{ // pBuf[nBufLen] は無効
01453                         nWorkLen = i - nBgn + 1;
01454                     }
01455                     memcpy( &pDes[k],  &pBuf[nBgn - 1], nWorkLen );
01456                     k += nWorkLen;
01457                 }
01458                 bBASE64 = FALSE;
01459             }
01460         }
01461     }
01462     pDes[k] = '\0';
01463     SetData( (const char *)pDes, k );
01464     delete [] pDes;
01465     delete pcmemWork;
01466     return;
01467 }
01468
01481 int CMemory::IsUTF7Direct( wchar_t wc )
01482 {
01483     int nret = 0;
01484     if( (wc & 0xff00) == 0 ){
01485         nret = Charcode::IsUtf7SetDChar( (unsigned char)wc );
01486     }
01487     return nret;
01488 }
01489
01490
01491
01495 void CMemory::UnicodeToUTF7( void )
01496 {
01497     wchar_t*        pUniBuf;
01498 //  int             nBufLen = m_nDataLen;
01499     int             nUniBufLen = m_nDataLen / sizeof(wchar_t);
01500     int             i;
01501     int             j;
01502     unsigned char*  pDes;
01503     int             k;
01504     BOOL            bBASE64;
01505 //  char            mbchar[4];
01506     int             nBgn;
01507     char*           pszBase64Buf;
01508     int             nBase64BufLen;
01509     char*           pszWork;
01510     char            cWork;
01511
01512 //  setlocale( LC_ALL, "Japanese" ); // wctomb を使わなくなったためコメントアウト
01513     k = 0;
01514     bBASE64 = FALSE;
01515     nBgn = 0;
01516     pUniBuf = new wchar_t[nUniBufLen + 1];
01517 //  memset( pUniBuf, 0, (nUniBufLen + 1) * sizeof( wchar_t ) );
01518     memcpy( pUniBuf, m_pData, nUniBufLen * sizeof( wchar_t ) );
01519     pUniBuf[nUniBufLen] = L'\0';
01520     for( i = 0; i < nUniBufLen; ++i ){
01521         j = IsUTF7Direct( pUniBuf[i]);
01522         if( !bBASE64 ){
01523             if( 1 == j ){
01524                 k++;
01525             }else
01526             if( L'+' == pUniBuf[i] ){
01527                 k += 2;
01528             }else{
01529                 bBASE64 = TRUE;
01530                 nBgn = i;
01531             }
01532         }else{
01533             if( 1 == j ){
01534                 /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
01535                 pszWork = (char*)(char*)&pUniBuf[nBgn];
01536                 for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
01537                     cWork = pszWork[j + 1];
01538                     pszWork[j + 1] = pszWork[j];
01539                     pszWork[j] = cWork;
01540                 }
01541                 /* Base64エンコード */
01542                 pszBase64Buf = NULL;
01543                 nBase64BufLen = 0;
01544                 nBase64BufLen = MemBASE64_Encode(
01545                     (char*)&pUniBuf[nBgn],          // エンコード対象データ
01546                     (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
01547                     &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
01548                     -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
01549                     FALSE   // パディングするか
01550                 );
01551 //              MYTRACE( "pszBase64Buf=[%s]\n", pszBase64Buf );
01553                 k++;
01554                 k += nBase64BufLen;
01555                 k++;
01557                 delete [] pszBase64Buf;
01558                 pszBase64Buf = NULL;
01559                 nBase64BufLen = 0;
01560                 bBASE64 = FALSE;
01561                 i--;
01562             }else{
01563             }
01564         }
01565     }
01566     if( bBASE64 && 0 < (i - nBgn) ){
01567         /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
01568         pszWork = (char*)(char*)&pUniBuf[nBgn];
01569         for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
01570             cWork = pszWork[j + 1];
01571             pszWork[j + 1] = pszWork[j];
01572             pszWork[j] = cWork;
01573         }
01574         /* Base64エンコード */
01575         pszBase64Buf = NULL;
01576         nBase64BufLen = 0;
01577         nBase64BufLen = MemBASE64_Encode(
01578             (char*)&pUniBuf[nBgn],          // エンコード対象データ
01579             (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
01580             &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
01581             -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
01582             FALSE   // パディングするか
01583         );
01584 //      MYTRACE( "pszBase64Buf=[%s]\n", pszBase64Buf );
01586         k++;
01587         k += nBase64BufLen;
01588         k++;
01590         delete [] pszBase64Buf;
01591         pszBase64Buf = NULL;
01592         nBase64BufLen = 0;
01593         bBASE64 = FALSE;
01594     }
01595     delete [] pUniBuf;
01596
01597     pDes = new unsigned char[k + 1];
01598     memset( pDes, 0, k + 1 );
01599     k = 0;
01600     bBASE64 = FALSE;
01601     nBgn = 0;
01602     pUniBuf = (wchar_t*)m_pData;
01603     for( i = 0; i < nUniBufLen; ++i ){
01604         j = IsUTF7Direct( pUniBuf[i] );
01605         if( !bBASE64 ){
01606             if( 1 == j ){
01607                 pDes[k] = (unsigned char)(pUniBuf[i] & 0x007f);
01608                 k++;
01609             }else
01610             if( L'+' == pUniBuf[i] ){
01611                 pDes[k    ] = '+';
01612                 pDes[k + 1] = '-';
01613                 k += 2;
01614             }else{
01615                 bBASE64 = TRUE;
01616                 nBgn = i;
01617             }
01618         }else{
01619             if( 1 == j ){
01620                 /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
01621                 pszWork = (char*)(char*)&pUniBuf[nBgn];
01622                 for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
01623                     cWork = pszWork[j + 1];
01624                     pszWork[j + 1] = pszWork[j];
01625                     pszWork[j] = cWork;
01626                 }
01627                 char*   pszBase64Buf;
01628                 int     nBase64BufLen;
01629                 /* Base64エンコード */
01630                 nBase64BufLen = MemBASE64_Encode(
01631                     (char*)&pUniBuf[nBgn],          // エンコード対象データ
01632                     (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
01633                     &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
01634                     -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
01635                     FALSE   // パディングするか
01636                 );
01637 //              MYTRACE( "pszBase64Buf=[%s]\n", pszBase64Buf );
01639                 pDes[k] = '+';
01640                 k++;
01641                 memcpy( &pDes[k], pszBase64Buf, nBase64BufLen );
01642                 k += nBase64BufLen;
01643                 pDes[k] = '-';
01644                 k++;
01646                 delete [] pszBase64Buf;
01647                 bBASE64 = FALSE;
01648                 i--;
01649             }else{
01650             }
01651         }
01652     }
01653     if( bBASE64 && 0 < (i - nBgn) ){
01654         /* 2バイトのUnicodeがあるという前提でLO/HIバイトを交換 */
01655         pszWork = (char*)(char*)&pUniBuf[nBgn];
01656         for( j = 0; j < (int)((i - nBgn) * sizeof( wchar_t )); j += 2 ){
01657             cWork = pszWork[j + 1];
01658             pszWork[j + 1] = pszWork[j];
01659             pszWork[j] = cWork;
01660         }
01661         /* Base64エンコード */
01662         pszBase64Buf = NULL;
01663         nBase64BufLen = 0;
01664         nBase64BufLen = MemBASE64_Encode(
01665             (char*)&pUniBuf[nBgn],          // エンコード対象データ
01666             (i - nBgn) * sizeof( wchar_t ), // エンコード対象データ長
01667             &pszBase64Buf,                  // 結果データ格納メモリポインタのアドレス
01668             -1,     // エンコード後のデータを自動的にCRLFで折り返す場合の１行最大文字数 (-1が指定された場合は折り返さない)
01669             FALSE   // パディングするか
01670         );
01671 //      MYTRACE( "pszBase64Buf=[%s]\n", pszBase64Buf );
01673         pDes[k] = '+';
01674         k++;
01675         memcpy( &pDes[k], pszBase64Buf, nBase64BufLen );
01676         k += nBase64BufLen;
01677         pDes[k] = '-';
01678         k++;
01680         delete [] pszBase64Buf;
01681         pszBase64Buf = NULL;
01682         nBase64BufLen = 0;
01683         bBASE64 = FALSE;
01684     }
01685     SetData( (const char *)pDes, k );
01686     delete [] pDes;
01687     return;
01688 }
01689
01690
01691
01692
01693
01694 /* 小文字 */
01695 void CMemory::ToLower( void )
01696 {
01697     unsigned char*  pBuf = (unsigned char*)m_pData;
01698     int             nBufLen = m_nDataLen;
01699     int             i;
01700     int             nCharChars;
01701     unsigned char   uc;
01702     for( i = 0; i < nBufLen; ++i ){
01703         // 2005-09-02 D.S.Koba GetSizeOfChar
01704         nCharChars = CMemory::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
01705         if( nCharChars == 1 ){
01706             uc = (unsigned char)tolower( pBuf[i] );
01707             pBuf[i] = uc;
01708         }else
01709         if( nCharChars == 2 ){
01710             /* 全角英大文字→全角英小文字 */
01711             if( pBuf[i] == 0x82 && pBuf[i + 1] >= 0x60 && pBuf[i + 1] <= 0x79 ){
01712                 pBuf[i] = pBuf[i];
01713                 pBuf[i + 1] = pBuf[i + 1] + 0x21;
01714 //@@@ 2001.02.03 Start by MIK: ギリシャ文字変換
01715             //大文字:0x839f～0x83b6
01716             //小文字:0x83bf～0x83d6
01717             }else if( pBuf[i] == 0x83 && pBuf[i + 1] >= 0x9f && pBuf[i + 1] <= 0xb6 ){
01718                 pBuf[i] = pBuf[i];
01719                 pBuf[i + 1] = pBuf[i + 1] + 0x20;
01720 //@@@ 2001.02.03 End
01721 //@@@ 2001.02.03 Start by MIK: ロシア文字変換
01722             //大文字:0x8440～0x8460
01723             //小文字:0x8470～0x8491 0x847fがない！
01724             }else if( pBuf[i] == 0x84 && pBuf[i + 1] >= 0x40 && pBuf[i + 1] <= 0x60 ){
01725                 pBuf[i] = pBuf[i];
01726                 if( pBuf[i + 1] >= 0x4f ){
01727                     pBuf[i + 1] = pBuf[i + 1] + 0x31;
01728                 }else{
01729                     pBuf[i + 1] = pBuf[i + 1] + 0x30;
01730                 }
01731 //@@@ 2001.02.03 End
01732             }
01733         }
01734         if( nCharChars > 0 ){
01735             i += nCharChars - 1;
01736         }
01737     }
01738     return;
01739 }
01740
01741
01742
01743
01744
01745 /* 大文字 */
01746 void CMemory::ToUpper( void )
01747 {
01748     unsigned char*  pBuf = (unsigned char*)m_pData;
01749     int             nBufLen = m_nDataLen;
01750     int             i;
01751     int             nCharChars;
01752     unsigned char   uc;
01753     for( i = 0; i < nBufLen; ++i ){
01754         // 2005-09-02 D.S.Koba GetSizeOfChar
01755         nCharChars = CMemory::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
01756         if( nCharChars == 1 ){
01757             uc = (unsigned char)toupper( pBuf[i] );
01758             pBuf[i] = uc;
01759         }else
01760         if( nCharChars == 2 ){
01761             /* 全角英小文字→全角英大文字 */
01762             if( pBuf[i] == 0x82 && pBuf[i + 1] >= 0x81 && pBuf[i + 1] <= 0x9a ){
01763                 pBuf[i] = pBuf[i];
01764                 pBuf[i + 1] = pBuf[i + 1] - 0x21;
01765 //@@@ 2001.02.03 Start by MIK: ギリシャ文字変換
01766             //大文字:0x839f～0x83b6
01767             //小文字:0x83bf～0x83d6
01768             }else if( pBuf[i] == 0x83 && pBuf[i + 1] >= 0xbf && pBuf[i + 1] <= 0xd6 ){
01769                 pBuf[i] = pBuf[i];
01770                 pBuf[i + 1] = pBuf[i + 1] - 0x20;
01771 //@@@ 2001.02.03 End
01772 //@@@ 2001.02.03 Start by MIK: ロシア文字変換
01773             //大文字:0x8440～0x8460
01774             //小文字:0x8470～0x8491 0x847fがない！
01775             }else if( pBuf[i] == 0x84 && pBuf[i + 1] >= 0x70 && pBuf[i + 1] <= 0x91 && pBuf[i + 1] != 0x7f ){
01776                 pBuf[i] = pBuf[i];
01777                 if( pBuf[i + 1] >= 0x7f ){
01778                     pBuf[i + 1] = pBuf[i + 1] - 0x31;
01779                 }else{
01780                     pBuf[i + 1] = pBuf[i + 1] - 0x30;
01781                 }
01782 //@@@ 2001.02.03 End
01783             }
01784         }
01785         if( nCharChars > 0 ){
01786             i += nCharChars - 1;
01787         }
01788     }
01789     return;
01790 }
01791
01792
01793
01794 /* ポインタで示した文字の次にある文字の位置を返します */
01795 /* 次にある文字がバッファの最後の位置を越える場合は&pData[nDataLen]を返します */
01796 const char* CMemory::MemCharNext( const char* pData, int nDataLen, const char* pDataCurrent )
01797 {
01798 //#ifdef _DEBUG
01799 //  CRunningTimer cRunningTimer( (const char*)"CMemory::MemCharNext" );
01800 //#endif
01801
01802     const char* pNext;
01803     if( pDataCurrent[0] == '\0' ){
01804         pNext = pDataCurrent + 1;
01805     }else
01806     {
01807 //      pNext = ::CharNext( pDataCurrent );
01808         if(
01809             /* SJIS全角コードの1バイト目か */   //Sept. 1, 2000 jepro 'シフト'を'S'に変更
01810             _IS_SJIS_1( (unsigned char)pDataCurrent[0] )
01811             &&
01812             /* SJIS全角コードの2バイト目か */   //Sept. 1, 2000 jepro 'シフト'を'S'に変更
01813             _IS_SJIS_2( (unsigned char)pDataCurrent[1] )
01814         ){
01815             pNext = pDataCurrent + 2;
01816         }else{
01817             pNext = pDataCurrent + 1;
01818         }
01819     }
01820
01821     if( pNext >= &pData[nDataLen] ){
01822         pNext = &pData[nDataLen];
01823     }
01824     return pNext;
01825 }
01826
01827
01828
01829 /* ポインタで示した文字の直前にある文字の位置を返します */
01830 /* 直前にある文字がバッファの先頭の位置を越える場合はpDataを返します */
01831 const char* CMemory::MemCharPrev( const char* pData, int nDataLen, const char* pDataCurrent )
01832 {
01833 //#ifdef _DEBUG
01834 //  CRunningTimer cRunningTimer( (const char*)"CMemory::MemCharPrev" );
01835 //#endif
01836
01837
01838     const char* pPrev;
01839     pPrev = ::CharPrev( pData, pDataCurrent );
01840
01841 //===1999.08.12  このやり方だと、ダメだった。===============-
01842 //
01843 //  if( (pDataCurrent - 1)[0] == '\0' ){
01844 //      pPrev = pDataCurrent - 1;
01845 //  }else{
01846 //      if( pDataCurrent - pData >= 2 &&
01847 //          /* SJIS全角コードの1バイト目か */   //Sept. 1, 2000 jepro 'シフト'を'S'に変更
01848 //          (
01849 //          ( (unsigned char)0x81 <= (unsigned char)pDataCurrent[-2] && (unsigned char)pDataCurrent[-2] <= (unsigned char)0x9F ) ||
01850 //          ( (unsigned char)0xE0 <= (unsigned char)pDataCurrent[-2] && (unsigned char)pDataCurrent[-2] <= (unsigned char)0xFC )
01851 //          ) &&
01852 //          /* SJIS全角コードの2バイト目か */   //Sept. 1, 2000 jepro 'シフト'を'S'に変更
01853 //          (
01854 //          ( (unsigned char)0x40 <= (unsigned char)pDataCurrent[-1] && (unsigned char)pDataCurrent[-1] <= (unsigned char)0x7E ) ||
01855 //          ( (unsigned char)0x80 <= (unsigned char)pDataCurrent[-1] && (unsigned char)pDataCurrent[-1] <= (unsigned char)0xFC )
01856 //          )
01857 //      ){
01858 //          pPrev = pDataCurrent - 2;
01859 //      }else{
01860 //          pPrev = pDataCurrent - 1;
01861 //      }
01862 //  }
01863 //  if( pPrev < pData ){
01864 //      pPrev = pData;
01865 //  }
01866     return pPrev;
01867 }
01868
01869
01870
01871 /* コード変換 SJIS→Unicode */
01872 void CMemory::SJISToUnicode( void )
01873 {
01874     char*   pBufUnicode;
01875     int     nBufUnicodeLen;
01876     nBufUnicodeLen = CMemory::MemSJISToUnicode( &pBufUnicode, m_pData, m_nDataLen );
01877     SetData( pBufUnicode, nBufUnicodeLen );
01878     delete [] pBufUnicode;
01879     return;
01880 }
01881
01882
01883
01884 /* コード変換 SJIS→UnicodeBE */
01885 void CMemory::SJISToUnicodeBE( void )
01886 {
01887     char*   pBufUnicode;
01888     int     nBufUnicodeLen;
01889     nBufUnicodeLen = CMemory::MemSJISToUnicode( &pBufUnicode, m_pData, m_nDataLen );
01890     SetData( pBufUnicode, nBufUnicodeLen );
01891     delete [] pBufUnicode;
01892     SwapHLByte();
01893     return;
01894 }
01895
01896
01897
01898 /* コード変換 Unicode→SJIS */
01899 void CMemory::UnicodeToSJIS( void )
01900 {
01901     char*           pBufUnicode;
01902     int             nBufUnicodeLen;
01903     unsigned char*  pBuf;
01904     pBuf = (unsigned char*)m_pData;
01905 //  BOMの削除はここではしないように変更
01906 //  呼び出し側で対処してください 2002/08/30 Moca
01907         nBufUnicodeLen = CMemory::MemUnicodeToSJIS( &pBufUnicode, m_pData, m_nDataLen );
01908         SetData( pBufUnicode, nBufUnicodeLen );
01909         delete [] pBufUnicode;
01910     return;
01911 }
01912
01913
01914 /* コード変換 UnicodeBE→SJIS */
01915 void CMemory::UnicodeBEToSJIS( void ){
01916
01917     SwapHLByte();
01918     UnicodeToSJIS();
01919
01920     return;
01921 }
01922
01923
01924 /* ASCII&SJIS文字列をUnicodeに変換 */
01925 int CMemory::MemSJISToUnicode( char** ppBufUnicode, const char*pBuf, int nBufLen )
01926 {
01927     int         i, j, k;
01928     wchar_t     wchar;
01929     char*       pBufUnicode;
01930     int         nCharChars;
01931
01932     setlocale( LC_ALL, "Japanese" );
01933     i = 0;
01934     k = 0;
01935     // 2005-09-02 D.S.Koba GetSizeOfChar
01936     nCharChars = CMemory::GetSizeOfChar( pBuf, nBufLen, i );
01937     while( nCharChars > 0 && i < nBufLen ){
01938         i += nCharChars;
01939         k += 2;
01940         // 2005-09-02 D.S.Koba GetSizeOfChar
01941         nCharChars = CMemory::GetSizeOfChar( pBuf, nBufLen, i );
01942     }
01943     pBufUnicode = new char[k + 1];
01944     i = 0;
01945     k = 0;
01946     // 2005-09-02 D.S.Koba GetSizeOfChar
01947     nCharChars = CMemory::GetSizeOfChar( pBuf, nBufLen, i );
01948     while( nCharChars > 0 && i < nBufLen ){
01949         j = mbtowc( &wchar, &pBuf[i], nCharChars );
01950         if( j == -1 || j == 0 ){
01951             pBufUnicode[k] = 0;
01952             pBufUnicode[k + 1] = pBuf[i];
01953             ++i;
01954         }else{
01955 #if 0
01956         // 2005.11.16 実用に耐えないほど速度低下するので無効化する
01957             if( j != 2 ){
01958                 MYTRACE( "%dバイトのUnicode文字に変換された SJIS(?)=%x %x\n", j,pBuf[i],((nCharChars >= 2)?(pBuf[i + 1]):0) );
01959             }
01960 #endif
01961             *((wchar_t*)&(pBufUnicode[k])) = wchar;
01962             i += j;
01963         }
01964         k += 2;
01965         // 2005-09-02 D.S.Koba GetSizeOfChar
01966         nCharChars = CMemory::GetSizeOfChar( pBuf, nBufLen, i );
01967     }
01968     *ppBufUnicode = pBufUnicode;
01969     return k;
01970 }
01971
01972
01973
01974
01975
01976 /* Unicode文字列をASCII&SJISに変換 */
01977 int CMemory::MemUnicodeToSJIS( char** ppBufSJIS, const char*pBuf, int nBufLen )
01978 {
01979     int         i, j, k;;
01980     char*       pBufSJIS;
01981     wchar_t*    pUniBuf;
01982     char        mbchar[4];
01983
01984     setlocale( LC_ALL, "Japanese" );
01985     pUniBuf = (wchar_t*)pBuf;
01986     i = 0;
01987     k = 0;
01988     for( i = 0; i < nBufLen / (int)sizeof( wchar_t ); ++i ){
01989         j = wctomb( (char*)mbchar, pUniBuf[i] );
01990         if( -1 == j ){
01991             k += sizeof( wchar_t );
01992         }else{
01993             k += j;
01994         }
01995     }
01996     pBufSJIS = new char[k];
01997
01998     k = 0;
01999     for( i = 0; i < nBufLen / (int)sizeof( wchar_t ); ++i ){
02000         j = wctomb( (char*)&(pBufSJIS[k]), pUniBuf[i] );
02001         if( -1 == j ){
02002             memcpy( &pBufSJIS[k], &pUniBuf[i], sizeof( wchar_t ) );
02003             k += sizeof( wchar_t );
02004         }else{
02005             k += j;
02006         }
02007     }
02008     *ppBufSJIS = pBufSJIS;
02009     return k;
02010 }
02011
02012
02013
02014
02015
02016 /* 文字列置換 */
02017 void CMemory::Replace( char* pszFrom, char* pszTo )
02018 {
02019     CMemory     cmemWork;
02020     int         nFromLen = strlen( pszFrom );
02021     int         nToLen = strlen( pszTo );
02022     int         nBgnOld = 0;
02023     int         nBgn = 0;
02024     while( nBgn <= m_nDataLen - nFromLen ){
02025         if( 0 == memcmp( &m_pData[nBgn], pszFrom, nFromLen ) ){
02026             if( 0  < nBgn - nBgnOld ){
02027                 cmemWork.Append( &m_pData[nBgnOld], nBgn - nBgnOld );
02028             }
02029             cmemWork.Append( pszTo, nToLen );
02030             nBgn = nBgn + nFromLen;
02031             nBgnOld = nBgn;
02032         }else{
02033             nBgn++;
02034         }
02035     }
02036     if( 0  < m_nDataLen - nBgnOld ){
02037         cmemWork.Append( &m_pData[nBgnOld], m_nDataLen - nBgnOld );
02038     }
02039     SetData( &cmemWork );
02040     return;
02041 }
02042
02043
02044
02045 /* 文字列置換（日本語考慮版） */
02046 void CMemory::Replace_j( char* pszFrom, char* pszTo )
02047 {
02048     CMemory     cmemWork;
02049     int         nFromLen = strlen( pszFrom );
02050     int         nToLen = strlen( pszTo );
02051     int         nBgnOld = 0;
02052     int         nBgn = 0;
02053     while( nBgn <= m_nDataLen - nFromLen ){
02054         if( 0 == memcmp( &m_pData[nBgn], pszFrom, nFromLen ) ){
02055             if( 0  < nBgn - nBgnOld ){
02056                 cmemWork.Append( &m_pData[nBgnOld], nBgn - nBgnOld );
02057             }
02058             cmemWork.Append( pszTo, nToLen );
02059             nBgn = nBgn + nFromLen;
02060             nBgnOld = nBgn;
02061         }else{
02062             if( _IS_SJIS_1( (unsigned char)m_pData[nBgn] ) ) nBgn++;
02063             nBgn++;
02064         }
02065     }
02066     if( 0  < m_nDataLen - nBgnOld ){
02067         cmemWork.Append( &m_pData[nBgnOld], m_nDataLen - nBgnOld );
02068     }
02069     SetData( &cmemWork );
02070     return;
02071 }
02072
02073
02074
02075 /* 等しい内容か */
02076 int CMemory::IsEqual( CMemory& cmem1, CMemory& cmem2 )
02077 {
02078     char*   psz1;
02079     char*   psz2;
02080     int     nLen1;
02081     int     nLen2;
02082
02083     psz1 = cmem1.GetPtr( &nLen1 );
02084     psz2 = cmem2.GetPtr( &nLen2 );
02085     if( nLen1 == nLen2 ){
02086         if( 0 == memcmp( psz1, psz2, nLen1 ) ){
02087             return TRUE;
02088         }
02089     }
02090     return FALSE;
02091 }
02092
02093
02094
02095
02096
02097 /* 半角→全角 */
02098 void CMemory::ToZenkaku(
02099         int bHiragana,      /* 1== ひらがな 0==カタカナ //2==英数専用 2001/07/30 Misaka 追加 */
02100         int bHanKataOnly    /* 1== 半角カタカナにのみ作用する*/
02101 )
02102 {
02103     unsigned char*          pBuf = (unsigned char*)m_pData;
02104     int                     nBufLen = m_nDataLen;
02105     int                     i;
02106     int                     nCharChars;
02107 //  unsigned char           uc;
02108     unsigned short          usSrc;
02109     unsigned short          usDes;
02110     unsigned char*          pBufDes;
02111     int                     nBufDesLen;
02112     static unsigned char*   pszHanKataSet = (unsigned char*)"｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ";
02113     static unsigned char*   pszDakuSet = (unsigned char*)"ｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾊﾋﾌﾍﾎ";
02114     static unsigned char*   pszYouSet = (unsigned char*)"ﾊﾋﾌﾍﾎ";
02115     BOOL                    bHenkanOK;
02116
02117     pBufDes = new unsigned char[nBufLen * 2 + 1];
02118     if( NULL == pBufDes ){
02119         return;
02120     }
02121     nBufDesLen = 0;
02122     for( i = 0; i < nBufLen; ++i ){
02123         // 2005-09-02 D.S.Koba GetSizeOfChar
02124         nCharChars = CMemory::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
02125         if( nCharChars == 1){
02126             bHenkanOK = FALSE;
02127             if( bHanKataOnly ){ /* 1== 半角カタカナにのみ作用する */
02128                 if( NULL != strchr( (const char *)pszHanKataSet, pBuf[i] ) ){
02129                     bHenkanOK = TRUE;
02130                 }
02131             }else{
02133                 if( ( (unsigned char)0x20 <= pBuf[i] && pBuf[i] <= (unsigned char)0x7E ) ||
02134                     ( bHiragana != 2 && (unsigned char)0xA1 <= pBuf[i] && pBuf[i] <= (unsigned char)0xDF )
02135                 ){
02136                     bHenkanOK = TRUE;
02137                 }
02138             }
02139             if( bHenkanOK ){
02140                 usSrc = pBuf[i];
02141                 if( FALSE == bHiragana &&
02142                     pBuf[i]     == (unsigned char)'ｳ' &&
02143                     pBuf[i + 1] == (unsigned char)'ﾞ' &&
02144                     bHiragana != 2
02145                 ){
02146                     usDes = (unsigned short)0x8394; /* ヴ */
02147                     nCharChars = 2;
02148                 }else {
02149                     usDes = _mbbtombc( usSrc );
02150                     /* 濁音 */
02151                     if( bHiragana != 2 && pBuf[i + 1] == (unsigned char)'ﾞ' && NULL != strchr( (const char *)pszDakuSet, pBuf[i] ) ){
02152                         usDes++;
02153                         nCharChars = 2;
02154                     }
02155                     /* 拗音 */
02158                     if( bHiragana != 2 && pBuf[i + 1] == (unsigned char)'ﾟ' && NULL != strchr( (const char *)pszYouSet, pBuf[i] ) ){
02159                         usDes += 2;
02160                         nCharChars = 2;
02161                     }
02162                 }
02163
02164                 if( bHiragana == 1 ){
02165                     /* ひらがなに変換可能なカタカナならば、ひらがなに変換する */
02166                     if( (unsigned short)0x8340 <= usDes && usDes <= (unsigned short)0x837e ){   /* ァ～ミ */
02167                         usDes-= (unsigned short)0x00a1;
02168                     }else
02169                     if( (unsigned short)0x8380 <= usDes && usDes <= (unsigned short)0x8393 ){   /* ム～ン */
02170                         usDes-= (unsigned short)0x00a2;
02171                     }
02172                 }
02173                 pBufDes[nBufDesLen]     = ( usDes & 0xff00 ) >>  8;
02174                 pBufDes[nBufDesLen + 1] = ( usDes & 0x00ff );
02175                 nBufDesLen += 2;
02176             }else{
02177                 memcpy( &pBufDes[nBufDesLen], &pBuf[i], nCharChars );
02178                 nBufDesLen += nCharChars;
02179
02180             }
02181         }else
02182         if( nCharChars == 2 ){
02183             usDes = usSrc = pBuf[i + 1] | ( pBuf[i] << 8 );
02184             if( bHanKataOnly == 0 ){
02185                 if( bHiragana == 1 ){//英数変換を付加したために数値で指定した　2001/07/30 Misaka
02186                     /* 全角ひらがなに変換可能な全角カタカナならば、ひらがなに変換する */
02187                     if( (unsigned short)0x8340 <= usSrc && usSrc <= (unsigned short)0x837e ){   /* ァ～ミ */
02188                         usDes = usSrc - (unsigned short)0x00a1;
02189                     }else
02190                     if( (unsigned short)0x8380 <= usSrc && usSrc <= (unsigned short)0x8393 ){   /* ム～ン */
02191                         usDes = usSrc - (unsigned short)0x00a2;
02192                     }
02193                 }else if( bHiragana == 0 ){//英数変換を付加したために数値で指定した　2001/07/30 Misaka
02194                     /* 全角カタカナに変換可能な全角ひらがなならば、カタカナに変換する */
02195                     if( (unsigned short)0x829f <= usSrc && usSrc <= (unsigned short)0x82dd ){   /* ぁ～み */
02196                         usDes = usSrc + (unsigned short)0x00a1;
02197                     }else
02198                     if( (unsigned short)0x82de <= usSrc && usSrc <= (unsigned short)0x82f1 ){   /* む～ん */
02199                         usDes = usSrc + (unsigned short)0x00a2;
02200                     }
02201                 }
02202             }
02203             pBufDes[nBufDesLen]     = ( usDes & 0xff00 ) >> 8;
02204             pBufDes[nBufDesLen + 1] = ( usDes & 0x00ff );
02205             nBufDesLen += 2;
02206         }else{
02207             memcpy( &pBufDes[nBufDesLen], &pBuf[i], nCharChars );
02208             nBufDesLen += nCharChars;
02209
02210         }
02211         if( nCharChars > 0 ){
02212             i += nCharChars - 1;
02213         }
02214     }
02215     pBufDes[nBufDesLen] = '\0';
02216     SetData( (const char *)pBufDes, nBufDesLen );
02217     delete [] pBufDes;
02218
02219
02220     return;
02221 }
02222
02223
02224
02231 #define TO_KATAKANA 0x01
02232 #define TO_HIRAGANA 0x02
02233 #define TO_EISU     0x04
02234 void CMemory::ToHankaku(
02235         int nMode       /* 0==カタカナ 1== ひらがな 2==英数専用 */
02236 )
02237 {
02238     static unsigned char*   pszZenDAKU = (unsigned char*)"がぎぐげござじずぜぞだぢづでどばびぶべぼガギグゲゴザジズゼゾダヂヅデドバビブベボヴ";
02239     static unsigned char*   pszZenYOU  = (unsigned char*)"ぱぴぷぺぽパピプペポ";
02240
02241     /* 入力 */
02242     unsigned char*          pBuf = (unsigned char*)m_pData;
02243     int                     nBufLen = m_nDataLen;
02244     unsigned int            uiSrc;
02245
02246     /* 出力 */
02247     unsigned char*          pBufDes = new unsigned char[nBufLen + 1];
02248     int                     nBufDesLen = 0;
02249     unsigned int            uiDes;
02250     if( NULL == pBufDes ){
02251         return;
02252     }
02253
02254     /* 作業用 */
02255     int                     nCharChars;
02256     unsigned char           pszZen[3];  //  全角文字用バッファ
02257     int i;
02258     BOOL bHenkanOK;
02259     bool bInHiraKata = false;               // 前の文字がカタカナorひらがなだったなら、trueとし、長音、濁点、半濁点を半角へ変換可能とする
02260     for( i = 0; i < nBufLen; ++i ){
02261         // 2005-09-02 D.S.Koba GetSizeOfChar
02262         nCharChars = CMemory::GetSizeOfChar( (const char *)pBuf, nBufLen, i );
02263         if( nCharChars == 2 ){
02264             uiSrc = pBuf[i + 1] | ( pBuf[i] << 8 );
02265
02266             bHenkanOK = FALSE;
02267             if( nMode == 0x00 ){    //  どんな文字もokモード
02268                 bHenkanOK = TRUE;
02269             }
02270             if( nMode & TO_KATAKANA ){  /* カタカナに作用する */
02271                 if( ( 0x8340 <= uiSrc && uiSrc <= 0x8396 )
02272                 // 2007.01.26 maru ToZenkakuの動作に合わせてカナ記号も変換対象に含める(。「」、・)
02273                 ||( 0x8141==uiSrc || 0x8142==uiSrc || 0x8145==uiSrc || 0x8175==uiSrc || 0x8176==uiSrc) ){
02274                     bHenkanOK = TRUE;
02275                     bInHiraKata = true;
02276                 } else {
02277                     // 2003-04-30 かろと 長音がが変換できなかったのを修正
02278                     // 但し、ひらがな・カタカナの区別がない文字なので直前の文字で決定する
02279                     if( bInHiraKata == true ) {
02280                         // 長音"ー"(0x815b)・濁点(0x814a)・半濁点(0x814b)
02281                         if( uiSrc == 0x815b || uiSrc == 0x814a || uiSrc == 0x814b ) {
02282                             bHenkanOK = TRUE;
02283                         } else {
02284                             bInHiraKata = false;
02285                         }
02286                     }
02287                 }
02288             }
02289             if( nMode & TO_HIRAGANA ){  /* ひらがなに作用する */
02290                 if( 0x829F <= uiSrc && uiSrc <= 0x82F1 ){
02291                     bHenkanOK = TRUE;
02292                     bInHiraKata = true;
02293                 } else {
02294                     // 2003-04-30 かろと 長音がが変換できなかったのを修正
02295                     // 但し、ひらがな・カタカナの区別がない文字なので直前の文字で決定する
02296                     if( bInHiraKata == true ) {
02297                         // 長音"ー"(0x815b)・濁点(0x814a)・半濁点(0x814b)
02298                         if( uiSrc == 0x815b || uiSrc == 0x814a || uiSrc == 0x814b ) {
02299                             bHenkanOK = TRUE;
02300                         } else {
02301                             bInHiraKata = false;
02302                         }
02303                     }
02304                 }
02305             }
02306             if ( nMode & TO_EISU ){     /* 英数に作用する */
02307                 /* From Here 2007.01.16 maru 7bitのASCII範囲を対象とするように変更 */
02308                 if( 0x8140 <= uiSrc && uiSrc <= 0x8197){
02309                     switch(uiSrc){  /* カナ記号が変換されないように */
02310                     case 0x8141:    // 、
02311                     case 0x8142:    // 。
02312                     case 0x8145:    // ・
02313                     case 0x814a:    // ゛
02314                     case 0x814b:    // ゜
02315                     case 0x815b:    // ー
02316                     case 0x8175:    //「
02317                     case 0x8176:    // 」
02318                         break;
02319                     default:
02320                         bHenkanOK = TRUE;
02321                     }
02322                 }
02323                 else if( 0x824f <= uiSrc && uiSrc <= 0x829a){   //  英数字
02324                     bHenkanOK = TRUE;
02325                 }
02326                 /* From Here 2007.01.16 maru 7bitのASCII範囲を対象とするように変更 */
02327             }
02328             if (bHenkanOK == TRUE){
02329                 uiDes = _mbctombb( uiSrc );
02330                 if( uiDes == uiSrc ){   //  変換不可能
02331                     memcpy( &pBufDes[nBufDesLen], &pBuf[i], nCharChars );
02332                     nBufDesLen += nCharChars;
02333                 }else{
02334                     pBufDes[nBufDesLen] = (unsigned char)uiDes;
02335                     nBufDesLen++;
02336
02337                     memcpy( pszZen, &pBuf[i], 2 );
02338                     pszZen[2] = '\0';
02339                     /* 濁音探し */
02340                     if( NULL != strstr( (const char *)pszZenDAKU, (const char *)pszZen ) ){
02341                         pBufDes[nBufDesLen] = (unsigned char)'ﾞ';
02342                         nBufDesLen++;
02343                     }else
02344                     /* 拗音探し */
02345                     if( NULL != strstr( (const char *)pszZenYOU,  (const char *)pszZen ) ){
02346                         pBufDes[nBufDesLen] = (unsigned char)'ﾟ';
02347                         nBufDesLen++;
02348                     }
02349                 }
02350             }
02351             else {
02352                 memcpy( &pBufDes[nBufDesLen], &pBuf[i], nCharChars );
02353                 nBufDesLen += nCharChars;
02354             }
02355         }else{
02356             memcpy( &pBufDes[nBufDesLen], &pBuf[i], nCharChars );
02357             nBufDesLen += nCharChars;
02358         }
02359         if( nCharChars > 0 ){
02360             i += nCharChars - 1;
02361         }
02362     }
02363     pBufDes[nBufDesLen] = '\0';
02364     SetData( (const char *)pBufDes, nBufDesLen );
02365     delete [] pBufDes;
02366
02367 }
02368
02369
02370 /*
02371 || ファイルの日本語コードセット判別
02372 ||
02373 || 【戻り値】
02374 ||  SJIS        0
02375 ||  JIS         1
02376 ||  EUC         2
02377 ||  Unicode     3
02378 ||  UTF-8       4
02379 ||  UTF-7       5
02380 ||  UnicodeBE   6
02381 ||  エラー      -1
02382 ||  エラー以外は enumCodeType を使う
02383 */
02384 int CMemory::CheckKanjiCodeOfFile( const char* pszFile )
02385 {
02386     HFILE                   hFile;
02387     HGLOBAL                 hgData;
02388     const unsigned char*    pBuf;
02389     int                     nBufLen;
02390     int                     nCodeType;
02391
02392     /* メモリ確保 & ファイル読み込み */
02393     hgData = NULL;
02394     hFile = _lopen( pszFile, OF_READ );
02395     if( HFILE_ERROR == hFile ){
02396         return -1;
02397     }
02398     nBufLen = _llseek( hFile, 0, FILE_END );
02399     _llseek( hFile, 0, FILE_BEGIN );
02400     if( nBufLen > CheckKanjiCode_MAXREADLENGTH ){
02401         nBufLen = CheckKanjiCode_MAXREADLENGTH;
02402     }
02403
02404     if( 0 == nBufLen ){
02405         _lclose( hFile );
02406         return CODE_SJIS;
02407     }
02408
02409     hgData = ::GlobalAlloc( GHND, nBufLen + 1 );
02410     if( NULL == hgData ){
02411         _lclose( hFile );
02412         return -1;
02413     }
02414     pBuf = (const unsigned char*)::GlobalLock( hgData );
02415     _lread( hFile, (void *)pBuf, nBufLen );
02416     _lclose( hFile );
02417
02418     /* 日本語コードセット判別 */
02419 // From Here 2006.09.22  rastiv
02420     nCodeType = Charcode::DetectUnicodeBom( (const char *)pBuf, nBufLen );
02421     if( nCodeType == 0 ){
02422         // Unicode BOM は検出されませんでした．
02423         nCodeType = CheckKanjiCode( (const unsigned char *)pBuf, nBufLen );
02424     }
02425 // To Here
02426
02427     if( NULL != hgData ){
02428         ::GlobalUnlock( hgData );
02429         ::GlobalFree( hgData );
02430         hgData = NULL;
02431     }
02432     return nCodeType;
02433 }
02434
02435
02436 /*
02437 || 日本語コードセット判別
02438 ||
02439 || 【戻り値】
02440 ||  SJIS        0
02441 ||  JIS         1
02442 ||  EUC         2
02443 ||  Unicode     3
02444 ||  UTF-8       4
02445 ||  UTF-7       5
02446 ||  UnicodeBE   6
02447 */
02448
02449 // 2006.12.16  rastiv   アルゴリズムを改定．
02450 int CMemory::CheckKanjiCode( const unsigned char* pBuf, int nBufLen )
02451 {
02452     CESI cesi;
02453     WCCODE_INFO wci;
02454     MBCODE_INFO mbci;
02455     int nPt;    //
02456
02457     if( !cesi.ScanEncoding((const char *)pBuf, nBufLen) ){
02458         // スキャンに失敗しました．
02459         return CODE_SJIS;  // ←デフォルト文字コードを返却．
02460     }
02461
02462     nPt = cesi.DetectUnicode( &wci );
02463     if( 0 != nPt ){
02464         // UNICODE が検出されました.
02465         return wci.eCodeID;
02466     }//else{
02467         nPt = cesi.DetectMultibyte( &mbci );
02468         //nPt := 特有バイト数 － 不正バイト数
02469         if( 0 < nPt ){
02470             return mbci.eCodeID;
02471         }//else{
02472             return CODE_SJIS;  // ←デフォルト文字コードを返却．
02473         //}
02474     //}
02475 }
02476
02477
02478
02479
02480 /* 自動判別→SJISコード変換 */
02481 void CMemory::AUTOToSJIS( void )
02482 {
02483     int nCodeType;
02484     /*
02485     || 日本語コードセット判別
02486     ||
02487     || 【戻り値】
02488     ||  SJIS        0
02489     ||  JIS         1
02490     ||  EUC         2
02491     ||  Unicode     3
02492     ||  UTF-8       4
02493     ||  UTF-7       5
02494     ||  UnicodeBE   6
02495     */
02496     nCodeType = CheckKanjiCode( (const unsigned char*)m_pData, m_nDataLen );
02497     switch( nCodeType ){
02498     case CODE_JIS:          JIStoSJIS();break;      /* E-Mail(JIS→SJIS)コード変換 */
02499     case CODE_EUC:          EUCToSJIS();break;      /* EUC→SJISコード変換 */
02500     case CODE_UNICODE:      UnicodeToSJIS();break;  /* Unicode→SJISコード変換 */
02501     case CODE_UTF8:         UTF8ToSJIS();break;     /* UTF-8→SJISコード変換 */
02502     case CODE_UTF7:         UTF7ToSJIS();break;     /* UTF-7→SJISコード変換 */
02503     case CODE_UNICODEBE:    UnicodeBEToSJIS();break;/* UnicodeBE→SJISコード変換 */
02504     };
02505     return;
02506 }
02507
02508
02509
02510
02511
02512 /* TAB→空白 */
02513 void CMemory::TABToSPACE( int nTabSpace /* TABの文字数 */ )
02514 {
02515     const char* pLine;
02516     int         nLineLen;
02517     char*       pDes;
02518     int         nBgn;
02519     int         i;
02520     int         nPosDes;
02521 //  BOOL        bEOL;
02522     int         nPosX;
02523     int         nWork;
02524     CEOL        cEol;
02525     nBgn = 0;
02526     nPosDes = 0;
02527     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
02528     while( NULL != ( pLine = GetNextLine( m_pData, m_nDataLen, &nLineLen, &nBgn, &cEol ) ) ){
02529         if( 0 < nLineLen ){
02530             nPosX = 0;
02531             for( i = 0; i < nLineLen; ++i ){
02532                 if( TAB == pLine[i] ){
02533                     nWork = nTabSpace - ( nPosX % nTabSpace );
02534                     nPosDes += nWork;
02535                     nPosX += nWork;
02536                 }else{
02537                     nPosDes++;
02538                     nPosX++;
02539                 }
02540             }
02541         }
02542         nPosDes += cEol.GetLen();
02543     }
02544     if( 0 >= nPosDes ){
02545         return;
02546     }
02547     pDes = new char[nPosDes + 1];
02548     nBgn = 0;
02549     nPosDes = 0;
02550     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
02551     while( NULL != ( pLine = GetNextLine( m_pData, m_nDataLen, &nLineLen, &nBgn, &cEol ) ) ){
02552         if( 0 < nLineLen ){
02553             nPosX = 0;
02554             for( i = 0; i < nLineLen; ++i ){
02555                 if( TAB == pLine[i] ){
02556                     nWork = nTabSpace - ( nPosX % nTabSpace );
02557                     memset( (void*)&pDes[nPosDes], ' ', nWork );
02558                     nPosDes += nWork;
02559                     nPosX += nWork;
02560                 }else{
02561                     pDes[nPosDes] = pLine[i];
02562                     nPosDes++;
02563                     nPosX++;
02564                 }
02565             }
02566         }
02567         memcpy( &pDes[nPosDes], cEol.GetValue(), cEol.GetLen() );
02568         nPosDes += cEol.GetLen();
02569     }
02570     pDes[nPosDes] = '\0';
02571
02572     SetData( pDes, nPosDes );
02573     delete [] pDes;
02574     pDes = NULL;
02575     return;
02576 }
02577
02578
02580
02587 void CMemory::SPACEToTAB( int nTabSpace )
02588 {
02589     const char* pLine;
02590     int         nLineLen;
02591     char*       pDes;
02592     int         nBgn;
02593     int         i;
02594     int         nPosDes;
02595     int         nPosX;
02596     CEOL        cEol;
02597
02598     BOOL        bSpace = FALSE; //スペースの処理中かどうか
02599     int     j;
02600     int     nStartPos;
02601
02602     nBgn = 0;
02603     nPosDes = 0;
02604     /* 変換後に必要なバイト数を調べる */
02605     while( NULL != ( pLine = GetNextLine( m_pData, m_nDataLen, &nLineLen, &nBgn, &cEol ) ) ){
02606         if( 0 < nLineLen ){
02607             nPosDes += nLineLen;
02608         }
02609         nPosDes += cEol.GetLen();
02610     }
02611     if( 0 >= nPosDes ){
02612         return;
02613     }
02614     pDes = new char[nPosDes + 1];
02615     nBgn = 0;
02616     nPosDes = 0;
02617     /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
02618     while( NULL != ( pLine = GetNextLine( m_pData, m_nDataLen, &nLineLen, &nBgn, &cEol ) ) ){
02619         if( 0 < nLineLen ){
02620             nPosX = 0;  // 処理中のiに対応する表示桁位置
02621             bSpace = FALSE; //直前がスペースか
02622             nStartPos = 0;  // スペースの先頭
02623             for( i = 0; i < nLineLen; ++i ){
02624                 if( SPACE == pLine[i] || TAB == pLine[i] ){
02625                     if( bSpace == FALSE ){
02626                         nStartPos = nPosX;
02627                     }
02628                     bSpace = TRUE;
02629                     if( SPACE == pLine[i] ){
02630                         nPosX++;
02631                     }else if( TAB == pLine[i] ){
02632                         nPosX += nTabSpace - (nPosX % nTabSpace);
02633                     }
02634                 }else{
02635                     if( bSpace ){
02636                         if( (1 == nPosX - nStartPos) && (SPACE == pLine[i - 1]) ){
02637                             pDes[nPosDes] = SPACE;
02638                             nPosDes++;
02639                         } else{
02640                             for( j = nStartPos / nTabSpace; j < (nPosX / nTabSpace); j++ ){
02641                                 pDes[nPosDes] = TAB;
02642                                 nPosDes++;
02643                                 nStartPos += nTabSpace - ( nStartPos % nTabSpace );
02644                             }
02645                             //  2003.08.05 Moca
02646                             //  変換後にTABが1つも入らない場合にスペースを詰めすぎて
02647                             //  バッファをはみ出すのを修正
02648                             for( j = nStartPos; j < nPosX; j++ ){
02649                                 pDes[nPosDes] = SPACE;
02650                                 nPosDes++;
02651                             }
02652                         }
02653                     }
02654                     nPosX++;
02655                     pDes[nPosDes] = pLine[i];
02656                     nPosDes++;
02657                     bSpace = FALSE;
02658                 }
02659             }
02660             //for( ; i < nLineLen; ++i ){
02661             //  pDes[nPosDes] = pLine[i];
02662             //  nPosDes++;
02663             //}
02664             if( bSpace ){
02665                 if( (1 == nPosX - nStartPos) && (SPACE == pLine[i - 1]) ){
02666                     pDes[nPosDes] = SPACE;
02667                     nPosDes++;
02668                 } else{
02669                     //for( j = nStartPos - 1; (j + nTabSpace) <= nPosX + 1; j+=nTabSpace ){
02670                     for( j = nStartPos / nTabSpace; j < (nPosX / nTabSpace); j++ ){
02671                         pDes[nPosDes] = TAB;
02672                         nPosDes++;
02673                         nStartPos += nTabSpace - ( nStartPos % nTabSpace );
02674                     }
02675                     //  2003.08.05 Moca
02676                     //  変換後にTABが1つも入らない場合にスペースを詰めすぎて
02677                     //  バッファをはみ出すのを修正
02678                     for( j = nStartPos; j < nPosX; j++ ){
02679                         pDes[nPosDes] = SPACE;
02680                         nPosDes++;
02681                     }
02682                 }
02683             }
02684         }
02685
02686         /* 行末の処理 */
02687         memcpy( &pDes[nPosDes], cEol.GetValue(), cEol.GetLen() );
02688         nPosDes += cEol.GetLen();
02689     }
02690     pDes[nPosDes] = '\0';
02691
02692     SetData( pDes, nPosDes );
02693     delete [] pDes;
02694     pDes = NULL;
02695     return;
02696 }
02697
02698
02699
02700
02701
02702 /* !上位バイトと下位バイトを交換する
02703
02704     @author Moca
02705     @date 2002/5/27
02706
02707     @note   nBufLen が2の倍数でないときは、最後の1バイトは交換されない
02708 */
02709 void CMemory::SwapHLByte( void ){
02710     unsigned char *p;
02711     unsigned char ctemp;
02712     unsigned char *p_end;
02713     unsigned int *pdwchar;
02714     unsigned int *pdw_end;
02715     unsigned char*  pBuf;
02716     int         nBufLen;
02717
02718     pBuf = (unsigned char*)GetPtr( &nBufLen );
02719
02720     if( nBufLen < 2){
02721         return;
02722     }
02723     // 高速化のため
02724     if( (size_t)pBuf % 2 == 0){
02725         if( (size_t)pBuf % 4 == 2 ){
02726             ctemp = pBuf[0];
02727             pBuf[0]  = pBuf[1];
02728             pBuf[1]  = ctemp;
02729             pdwchar = (unsigned int*)(pBuf + 2);
02730         }else{
02731             pdwchar = (unsigned int*)pBuf;
02732         }
02733         pdw_end = (unsigned int*)(pdwchar + nBufLen / sizeof(int)) - 1;
02734
02735         for(; pdwchar <= pdw_end ; ++pdwchar ){
02736             pdwchar[0] = ((pdwchar[0] & (unsigned int)0xff00ff00) >> 8) |
02737                          ((pdwchar[0] & (unsigned int)0x00ff00ff) << 8);
02738         }
02739     }
02740     p = (unsigned char*)pdwchar;
02741     p_end = pBuf + nBufLen - 2;
02742
02743     for(; p <= p_end ; p+=2){
02744         ctemp = p[0];
02745         p[0]  = p[1];
02746         p[1]  = ctemp;
02747     }
02748     return;
02749 }
02750
02751
02752 //  /* バッファの先頭にデータを挿入する */
02753 //  void CMemory::InsertTop( const char* pData, int nDataLen )
02754 //  {
02755 //      AllocBuffer( m_nDataLen + nDataLen );
02756 //      memmove( m_pData + nDataLen, m_pData, m_nDataLen );
02757 //      memcpy( m_pData, pData, nDataLen );
02758 //      m_nDataLen += nDataLen;
02759 //      m_pData[m_nDataLen] = '\0';
02760 //  }
02761
02762
02763
02764
02765
02766 /*
02767 || バッファサイズの調整
02768 */
02769 void CMemory::AllocBuffer( int nNewDataLen )
02770 {
02771     int     nWorkLen;
02772     char*   pWork = NULL;
02773     nWorkLen = nNewDataLen + 1; /* 1バイト多くメモリ確保しておく(\0を入れる) */
02774     if( m_nDataBufSize == 0 ){
02775         /* 未確保の状態 */
02776         pWork = (char*)malloc( nWorkLen );
02777         m_nDataBufSize = nWorkLen;
02778     }else{
02779         /* 現在のバッファサイズより大きくなった場合のみ再確保する */
02780         if( m_nDataBufSize < nWorkLen ){
02781             pWork = (char*)realloc( m_pData, nWorkLen );
02782             m_nDataBufSize = nWorkLen;
02783         }else{
02784             return;
02785         }
02786     }
02787
02788
02789     if( NULL == pWork ){
02790 		::MYMESSAGEBOX(   NULL, MB_OKCANCEL | MB_ICONQUESTION | MB_TOPMOST, GSTR_APPNAME,
02791             "CMemory::AllocBuffer(nNewDataLen==%d)\nメモリ確保に失敗しました。\n", nNewDataLen
02792         );
02793         if( NULL != m_pData && 0 != nWorkLen ){
02794             /* 古いバッファを解放して初期化 */
02795             free( m_pData );
02796             m_pData = NULL;
02797             m_nDataBufSize = 0;
02798             m_nDataLen = 0;
02799         }
02800         return;
02801     }
02802     m_pData = pWork;
02803     return;
02804 }
02805
02806
02807
02808 /* バッファの内容を置き換える */
02809 void CMemory::SetData( const char* pData, int nDataLen )
02810 {
02811     Empty();
02812     AllocBuffer( nDataLen );
02813     AddData( pData, nDataLen );
02814     return;
02815 }
02816
02817
02818
02819 /* バッファの内容を置き換える */
02820 void CMemory::SetDataSz( const char* pszData )
02821 {
02822     int     nDataLen;
02823     nDataLen = strlen( pszData );
02824
02825     Empty();
02826     AllocBuffer( nDataLen );
02827     AddData( pszData, nDataLen );
02828     return;
02829 }
02830
02831
02832 /* バッファの内容を置き換える */
02833 void CMemory::SetData( CMemory* pcmemData )
02834 {
02835     char*   pData;
02836     int     nDataLen;
02837     pData = pcmemData->GetPtr( &nDataLen );
02838     Empty();
02839     AllocBuffer( nDataLen );
02840     AddData( pData, nDataLen );
02841     return;
02842 }
02843
02844
02845 /* バッファの最後にデータを追加する（publicメンバ）*/
02846 const char* CMemory::Append( const char* pData, int nDataLen )
02847 {
02848     AllocBuffer( m_nDataLen + nDataLen );
02849     AddData( pData, nDataLen );
02850     return m_pData;
02851 }
02852 /* バッファの最後にデータを追加する（publicメンバ）*/
02853 void CMemory::AppendSz( const char* pszData )
02854 {
02855     int     nDataLen;
02856     nDataLen = strlen( pszData );
02857     AllocBuffer( m_nDataLen + nDataLen );
02858     AddData( pszData, nDataLen );
02859 }
02860 /* バッファの最後にデータを追加する（publicメンバ）*/
02861 void CMemory::Append( CMemory* pcmemData )
02862 {
02863     char*   pData;
02864     int     nDataLen;
02865     pData = pcmemData->GetPtr( &nDataLen );
02866     AllocBuffer( m_nDataLen + nDataLen );
02867     AddData( pData, nDataLen );
02868 }
02869
02870 void CMemory::Empty( void )
02871 {
02872     if( m_pData != NULL ){
02873         free( m_pData );
02874         m_pData = NULL;
02875     }
02876     m_nDataBufSize = 0;
02877     m_pData = NULL;
02878     m_nDataLen = 0;
02879     return;
02880 }
02881
02892 int CMemory::GetSizeOfChar( const char* pData, const int nDataLen, const int nIdx )
02893 {
02894     if( nIdx >= nDataLen ){
02895         return 0;
02896     }else if( nIdx == (nDataLen - 1) ){
02897         return 1;
02898     }
02899
02900     if( _IS_SJIS_1( reinterpret_cast<const unsigned char*>(pData)[nIdx] )
02901             && _IS_SJIS_2( reinterpret_cast<const unsigned char*>(pData)[nIdx+1] ) ){
02902         return 2;
02903     }
02904     return 1;
02905 }
02906
02907 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMemory.h

CMemory.h

メモリバッファクラス [詳細]

#include "global.h"

CMemory.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMemory
メモリバッファクラス [詳細]

マクロ定義

#define | CheckKanjiCode_MAXREADLENGTH 16384

説明

メモリバッファクラス

作者:
Norio Nakatani
日付:
1998/03/06 新規作成

CMemory.h で定義されています。

マクロ定義

#define CheckKanjiCode_MAXREADLENGTH 16384

ファイル文字コードセット判別時の先読み最大サイズ

CMemory.h の 39 行で定義されています。

参照元 CMemory::CheckKanjiCodeOfFile().

Sakura-Editorに対してSat Oct 27 02:21:02 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMemory.h ソースファイル

CMemory.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, jepro, Stonee
00010     Copyright (C) 2002, Moca, genta, aroka
00011     Copyright (C) 2005, D.S.Koba
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00033 class CMemory;
00034
00035 #ifndef _CMEMORY_H_
00036 #define _CMEMORY_H_
00037
00039 #define CheckKanjiCode_MAXREADLENGTH 16384
00040
00041 #include "global.h"
00042
00044 class SAKURA_CORE_API CMemory
00045 {
00046 public:
00047     /*
00048     ||  Constructors
00049     */
00050     CMemory();
00051     CMemory( const char*, int );
00052     ~CMemory();
00053
00054     /*
00055     || 関数
00056     */
00057 //  int GetLength() const;
00058     int GetLength() const { return m_nDataLen; }
00059     void AllocBuffer( int );    /* バッファサイズの調整 */
00060     void SetData( const char*, int );   /* バッファの内容を置き換える */
00061     void SetDataSz( const char* );  /* バッファの内容を置き換える */
00062     void SetData( CMemory* );   /* バッファの内容を置き換える */
00063     const char* Append( const char* pData, int nDataLen );/* バッファの最後にデータを追加する（publicメンバ）*/
00064     void AppendSz( const char* pszData );/* バッファの最後にデータを追加する（publicメンバ）*/
00065     void Append( CMemory* );/* バッファの最後にデータを追加する（publicメンバ）*/
00066 //  void InsertTop( const char*, int ); /* バッファの先頭にデータを挿入する */
00067     // 2005-09-02 D.S.Koba
00068     static int GetSizeOfChar( const char*, const int, const int );
00069
00070     static int IsEqual( CMemory&, CMemory& );   /* 等しい内容か */
00071
00072     /*
00073     || 変換関数
00074     */
00075     void Replace( char*, char* );   /* 文字列置換 */
00076     void Replace_j( char*, char* ); /* 文字列置換（日本語考慮版） */
00077     void ToLower( void );   /* 小文字 */
00078     void ToUpper( void );   /* 大文字 */
00079
00080     void AUTOToSJIS( void );    /* 自動判別→SJISコード変換 */
00081     void SJIStoJIS( void );     /* SJIS→JISコード変換 */
00082 //  void JIStoSJIS( bool base64decode = false);     /* E-Mail(JIS→SJIS)コード変換 */
00083     void JIStoSJIS( bool base64decode = true);      /* E-Mail(JIS→SJIS)コード変換 */   //Jul. 15, 2001 JEPRO
00084     void SJISToUnicode( void ); /* SJIS→Unicodeコード変換 */
00085     void SJISToUnicodeBE( void );   /* SJIS→UnicodeBEコード変換 */
00086     void SJISToEUC( void );     /* SJIS→EUCコード変換 */
00087     void EUCToSJIS( void );     /* EUC→SJISコード変換 */
00088     void UnicodeToSJIS( void ); /* Unicode→SJISコード変換 */
00089     void UnicodeBEToSJIS( void );   /* UnicodeBE→SJISコード変換 */
00090     void UTF8ToSJIS( void );    /* UTF-8→SJISコード変換 */
00091     void UTF7ToSJIS( void );    /* UTF-7→SJISコード変換 */
00092     void SJISToUTF8( void );    /* SJIS→UTF-8コード変換 */
00093     void SJISToUTF7( void );    /* SJIS→UTF-7コード変換  */
00094     void UnicodeToUTF8( void ); /* Unicode→UTF-8コード変換 */
00095     void UnicodeToUTF7( void ); /* Unicode→UTF-7コード変換 */
00096     void TABToSPACE( int ); /* TAB→空白 */
00097     void SPACEToTAB( int ); /* 空白→TAB */  //#### Stonee, 2001/05/27
00098     void SwapHLByte( void ); /* Byteを交換する */
00099
00100     void BASE64Decode( void );  // Base64デコード
00101     void UUDECODE( char* );     /* uudecode(デコード) */
00102 //  static const char* MemCharNext( const char*, int, const char* );    /* ポインタで示した文字の次にある文字の位置を返します */
00103 //  static const char* MemCharNext( /*const char*, int,*/ const char* );    /* ポインタで示した文字の次にある文字の位置を返します */
00104     static const char* MemCharNext( const char*, int, const char* );    /* ポインタで示した文字の次にある文字の位置を返します */
00105     static const char* MemCharPrev( const char*, int, const char* );    /* ポインタで示した文字の直前にある文字の位置を返します */
00106     void ToZenkaku( int, int ); /* 半角→全角 */
00107     void ToHankaku( int nMode );    /* 全角→半角 */
00108
00109     /* ファイルの日本語コードセット判別 */
00110     static int CheckKanjiCodeOfFile( const char* );
00111     /* 日本語コードセット判別 */
00112     static int CheckKanjiCode( const unsigned char*, int );
00113
00114
00115     /*
00116     || 演算子
00117     */
00118     const CMemory& operator=( char );
00119 //  const CMemory& operator=( const char* );
00120     const CMemory& operator=( const CMemory& );
00121 //  const CMemory& operator+=( const char* );
00122     const CMemory& operator+=( const CMemory& );
00123     const CMemory& operator+=( char );
00124 //  operator char*() const;
00125 //  operator const char*() const;
00126 //  operator unsigned char*() const;
00127 //  operator const unsigned char*() const;
00128 //  operator void*() const;
00129 //  operator const void*() const;
00130     const char operator[](int nIndex) const;
00131
00132     /* データへのポインタと長さ返す */
00133     __forceinline char* GetPtr( int* pnLength ) const
00134     {
00135         if( NULL != pnLength ){
00136             *pnLength = GetLength();
00137         }
00138         return (char*)m_pData;
00139     }
00140
00141     __forceinline char* GetPtr( void ) const
00142     {
00143         return (char*)m_pData;
00144     }
00145
00146
00147 //  void Append( const char*, int );    /* データの最後に追加 publicメンバ */
00148 protected: // 2002/2/10 aroka アクセス権変更
00149     /*
00150     || メンバ変数
00151     */
00152     int     m_nDataBufSize;
00153     char*   m_pData;
00154     int     m_nDataLen;
00155
00156     /*
00157     ||  実装ヘルパ関数
00158     */
00159 //  void Init( void );
00160     void Empty( void );
00161     void AddData( const char*, int );
00162     static int MemSJISToUnicode( char**, const char*, int );    /* ASCII&SJIS文字列をUnicode に変換 */
00163     static int MemUnicodeToSJIS( char**, const char*, int );    /* Unicode文字列をASCII&SJIS に変換 */
00164     long MemJIStoSJIS(unsigned char*, long );   /* JIS→SJIS変換 */
00165     long MemSJIStoJIS( unsigned char*, long );  /* SJIS→JIS変換 */
00166     static int DecodeUTF8toUnicode( const unsigned char*, int, unsigned char* );
00167     static long MemBASE64_Decode( unsigned char*, long );   /* Base64デコード */
00168     int MemBASE64_Encode( const char*, int, char**, int, int );/* Base64エンコード */
00169     long QuotedPrintable_Decode(char*, long );  /* Quoted-Printableデコード */
00170     int StrSJIStoJIS( CMemory*, unsigned char*, int );  /* SJIS→JISで新メモリ確保 */
00171     static int IsUTF8( const unsigned char*, int ); /* UTF-8の文字か */
00172     static int IsBASE64Char( char );    /* 文字がBaseE64のデータか */
00173     static int IsUTF7Direct( wchar_t ); /* Unicode文字がUTF7で直接エンコードできるか */ // 2002.10.25 Moca
00174     //  Oct. 3, 2002 genta
00175     static unsigned short _mbcjmstojis_ex( unsigned char* pszSrc );
00176
00177 };
00178
00179
00181 #endif /* _CMEMORY_H_ */
00182
00183
00184 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMemoryIterator.h

CMemoryIterator.h

CLayoutとCDocLineのイテレータ [詳細]

#include "global.h"

CMemoryIterator.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CMemoryIterator< T >

説明

CLayoutとCDocLineのイテレータ

作者:
Yazaki
日付:
2002/09/25 新規作成

CMemoryIterator.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:03 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMemoryIterator.h ソースファイル

CMemoryIterator.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, Yazaki
00009     Copyright (C) 2003, genta
00010     Copyright (C) 2005, D.S.Koba
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015
00016 #ifndef _CMEMORYITERATOR_H_
00017 #define _CMEMORYITERATOR_H_
00018
00019 //  sakura
00020 #include "global.h"
00021
00022 /*-----------------------------------------------------------------------
00023 クラスの宣言
00024 -----------------------------------------------------------------------*/
00028 template <class T>
00029 class SAKURA_CORE_API CMemoryIterator
00030 {
00031     int m_nIndent;
00032     int m_nIndex;
00033     int m_nColumn;
00034     int m_nIndex_Delta;
00035     int m_nColumn_Delta;
00036
00037     const char* m_pLine;
00038     const int m_nLineLen;
00039     const int m_nTabSpace;
00040 public:
00041     CMemoryIterator( const T* pcT, int nTabSpace )
00042         : m_pLine( pcT ? pcT->GetPtr() : NULL ),
00043           m_nLineLen( pcT ? pcT->GetLength() : 0 ),
00044           m_nTabSpace( nTabSpace ),
00045           m_nIndent( pcT ? pcT->GetIndent() : 0 )
00046     {
00047         first();
00048     };
00049
00051     void first(){
00052         m_nIndex = 0;
00053         m_nColumn = m_nIndent;
00054         m_nIndex_Delta = 0;
00055         m_nColumn_Delta = 0;
00056     };
00057
00061     bool end() const {
00062         return (m_nLineLen <= m_nIndex);
00063     };
00064     void scanNext(){    //  次の文字を確認して次の文字との差を求める
00065         if (m_pLine[m_nIndex] == TAB){
00066             m_nIndex_Delta = 1;
00067             m_nColumn_Delta = m_nTabSpace - ( m_nColumn % m_nTabSpace );
00068         }
00069         else{
00070             // 2005-09-02 D.S.Koba GetSizeOfChar
00071             m_nIndex_Delta = CMemory::GetSizeOfChar( m_pLine, m_nLineLen, m_nIndex );
00072             if( 0 == m_nIndex_Delta ){
00073                 m_nIndex_Delta = 1;
00074             }
00075             m_nColumn_Delta = m_nIndex_Delta;
00076         }
00077     };
00078
00082     void addDelta(){
00083         m_nColumn += m_nColumn_Delta;
00084         m_nIndex += m_nIndex_Delta;
00085     };  //  ポインタをずらす
00086
00087     int getIndex() const {  return m_nIndex;    };
00088     int getColumn() const { return m_nColumn;   };
00089     int getIndexDelta() const { return m_nIndex_Delta;  };
00090     int getColumnDelta() const {    return m_nColumn_Delta; };
00091
00092     //  2002.10.07 YAZAKI
00093     const char getCurrentChar(){    return m_pLine[m_nIndex];   };
00094     //  Jul. 20, 2003 genta 追加
00095     //  memcpyをするのにポインタがとれないと面倒
00096     const char* getCurrentPos(){    return m_pLine + m_nIndex;  };
00097 };
00098
00099
00101 #endif /* _CBLOCKCOMMENT_H_ */
00102
00103
00104 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMenuDrawer.cpp

CMenuDrawer.cpp

メニュー管理＆表示 [詳細]

#include "stdafx.h"
#include "CMenuDrawer.h"
#include "sakura_rc.h"
#include "global.h"
#include "debug.h"
#include "CSplitBoxWnd.h"
#include "CEditWnd.h"
#include "etc_uty.h"

CMenuDrawer.cppのインクルード依存関係図

ソースコードを見る。

関数

void | FillSolidRect (HDC hdc, int x, int y, int cx, int cy, COLORREF clr)

変数

const int | SIZEOF_MENUITEMINFO = 44

説明

メニュー管理＆表示

作者:
Norio Nakatani

CMenuDrawer.cpp で定義されています。

関数

void FillSolidRect | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | int | cx,
 |  | int | cy,
 |  | COLORREF | clr
 | ) |

CMenuDrawer.cpp の 34 行で定義されています。

参照先 NULL.

変数

const int SIZEOF_MENUITEMINFO = 44

CMenuDrawer.cpp の 32 行で定義されています。

参照元 CMenuDrawer::DrawItem()・CMenuDrawer::OnMenuChar().

Sakura-Editorに対してSat Oct 27 02:21:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMenuDrawer.cpp ソースファイル

CMenuDrawer.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, genta, Jepro
00009     Copyright (C) 2001, jepro, MIK, Misaka, YAZAKI, hor, genta
00010     Copyright (C) 2002, MIK, genta, YAZAKI, ai, Moca, hor, aroka
00011     Copyright (C) 2003, MIK, genta, Moca
00012     Copyright (C) 2004, Kazika, genta, Moca, isearch
00013     Copyright (C) 2005, genta, MIK, aroka
00014     Copyright (C) 2006, aroka, fon
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020 #include "stdafx.h"
00021 #include "CMenuDrawer.h"
00022 #include "sakura_rc.h"
00023 #include "global.h"
00024 #include "debug.h"
00025 #include "CSplitBoxWnd.h"
00026 #include "CEditWnd.h"
00027 #include "etc_uty.h"
00028
00029 //  Jan. 29, 2002 genta
00030 //  Win95/NTが納得するsizeof( MENUITEMINFO )
00031 //  これ以外の値を与えると古いOSでちゃんと動いてくれない．
00032 const int SIZEOF_MENUITEMINFO = 44;
00033
00034 void FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr)
00035 {
00036 //  ASSERT_VALID(this);
00037 //  ASSERT(m_hDC != NULL);
00038
00039     RECT rect;
00040     ::SetBkColor( hdc, clr );
00041     ::SetRect( &rect, x, y, x + cx, y + cy );
00042     ::ExtTextOut( hdc, 0, 0, ETO_OPAQUE, &rect, NULL, 0, NULL );
00043 }
00044
00045
00046 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00047 CMenuDrawer::CMenuDrawer()
00048 {
00049     /* 共有データ構造体のアドレスを返す */
00050     m_pShareData = CShareData::getInstance()->GetShareData();
00051
00052     m_nMenuItemNum = 0;
00053     m_nMenuHeight = 0;
00054     m_hFontMenu = NULL;
00055     m_hFontMenuUndelLine = NULL;
00056
00057 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。   /* ツールバーのボタン TBBUTTON構造体 */
00058     /* ツールバーのボタン TBBUTTON構造体 */
00059     /*
00060     typedef struct _TBBUTTON {
00061         int iBitmap;    // ボタン イメージの 0 から始まるインデックス
00062         int idCommand;  // ボタンが押されたときに送られるコマンド
00063         BYTE fsState;   // ボタンの状態--以下を参照
00064         BYTE fsStyle;   // ボタン スタイル--以下を参照
00065         DWORD dwData;   // アプリケーション-定義された値
00066         int iString;    // ボタンのラベル文字列の 0 から始まるインデックス
00067     } TBBUTTON;
00068     */
00069     SetTBBUTTONVal( &m_tbMyButton[0], 0, 0, 0, TBSTYLE_SEP, 0, 0 );     //セパレータ
00070 #if 0
00071     2002/04/26 無用な汎用性は排除。
00072     struct TBUTTONDATA {
00073         int         idCommand;
00074         BYTE        fsState;
00075         BYTE        fsStyle;
00076         DWORD       dwData;
00077         int         iString;
00078     };
00079 #endif
00080 //  キーワード：アイコン順序(アイコンインデックス)
00081 //  Sept. 16, 2000 Jepro note: アイコン登録メニュー
00082 //  以下の登録はツールバーだけでなくアイコンをもつすべてのメニューで利用されている
00083 //  数字はビットマップリソースのIDB_MYTOOLに登録されているアイコンの先頭からの順番のようである
00084 //  アイコンをもっと登録できるように横幅を16dotsx218=2048dotsに拡大
00085 //  縦も15dotsから16dotsにして「プリンタ」アイコンや「ヘルプ1」の、下が欠けている部分を補ったが15dotsまでしか表示されないらしく効果なし
00086 //  →
00087 //  Sept. 17, 2000 縦16dot目を表示できるようにした
00088 //  修正したファイルにはJEPRO_16thdotとコメントしてあるのでもし間違っていたらそれをキーワードにして検索してください(Sept. 28, 2000現在 6箇所変更)
00089 //  IDB_MYTOOLの16dot目に見やすいように横16dotsづつの区切りになる目印を付けた
00090 //
00091 //  Sept. 16, 2000 見やすいように横に20個(あるいは32個)づつに配列しようとしたが配列構造を変えなければうまく格納できないので
00092 //  それを解決するのが先決(→げんた氏改修版ur3β13で解決)
00093 //
00094 //  Sept. 16, 2000 JEPRO できるだけ系ごとに集まるように順番を大幅に入れ替えた  それに伴いCShareData.cppで設定している初期設定値も変更
00095 //  Oct. 22, 2000 JEPRO アイコンのビットマップリソースの2次元配置が可能になったため根本的に配置転換した
00096 //  ・配置の基本は「コマンド一覧」に入っている機能(コマンド)順  なお「コマンド一覧」自体は「メニューバー」の順におおよそ準拠している
00097 //  ・アイコンビットマップファイルには横32個X13段あるが有効にしてあるのは11段まで(12段目は基本的に作業用, 13段目は試作品など保管用)
00098 //  ・メニューに属する系および各系の段との関係は次の通り(Oct. 22, 2000 現在)：
00099 //      ファイル----- ファイル操作系    (1段目32個: 1-32)
00100 //      編集--------- 編集系            (2段目32個: 33-64)
00101 //      移動--------- カーソル移動系    (3段目32個: 65-96)
00102 //      選択--------- 選択系            (4段目32個: 97-128)
00103 //                  + 矩形選択系        (5段目32個: 129-160) //(注. 矩形選択系のほとんどは未実装)
00104 //                  + クリップボード系  (6段目24個: 161-184)
00105 //          ★挿入系                    (6段目残りの8個: 185-192)
00106 //      変換--------- 変換系            (7段目32個: 193-224)
00107 //      検索--------- 検索系            (8段目32個: 225-256)
00108 //      ツール------- モード切り替え系  (9段目4個: 257-260)
00109 //                  + 設定系            (9段目次の16個: 261-276)
00110 //                  + マクロ系          (9段目最後の12個: 277-288)
00111 //                  + 外部マクロ        (12段目12個: 353-372)
00112 //                  + カスタムメニュー  (10段目32個: 289-320)
00113 //      ウィンドウ--- ウィンドウ系      (11段目22個: 321-342)
00114 //      ヘルプ------- 支援              (11段目残りの10個: 343-352)
00115 //          ★その他                    (12段目残りの10個: 373-384)
00116 //  注1.「挿入系」はメニューでは「編集」に入っている
00117 //  注2.「その他」はメニューには入っていないものを入れる (現在何もないので12段目を設定してない)
00118 //  注3.「コマンド一覧」で敢えて重複していれてあるコマンドはその「本家」の方に配置した
00119 //  注4.「コマンド一覧」に入ってないコマンドもわかっている範囲で位置予約にしておいた
00120 //  注5. F_DISABLE は未定義用(ダミーとしても使う)
00121 //  注6. ユーザー用に確保された場所は特にないので各段の空いている後ろの方を使ってください。
00122
00123     int /* TBUTTONDATA */ tbd[] = {
00124 /* ファイル操作系(1段目32個: 1-32) */
00125 /*  1 */        F_FILENEW                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //新規作成
00126 /*  2 */        F_FILEOPEN                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //開く
00127 /*  3 */        F_FILESAVE                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //上書き保存
00128 /*  4 */        F_FILESAVEAS_DIALOG         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //名前を付けて保存  //Sept. 18, 2000 JEPRO 追加
00129 /*  5 */        F_FILECLOSE                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //閉じて(無題)  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00130 /*  6 */        F_FILECLOSE_OPEN            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //閉じて開く
00131 /*  7 */        F_FILE_REOPEN_SJIS          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJISで開き直す
00132 /*  8 */        F_FILE_REOPEN_JIS           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //JISで開き直す
00133 /*  9 */        F_FILE_REOPEN_EUC           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //EUCで開き直す
00134 /* 10 */        F_FILE_REOPEN_UNICODE       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Unicodeで開き直す
00135 /* 11 */        F_FILE_REOPEN_UTF8          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-8で開き直す
00136 /* 12 */        F_FILE_REOPEN_UTF7          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-7で開き直す
00137 /* 13 */        F_PRINT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //印刷
00138 /* 14 */        F_PRINT_PREVIEW             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //印刷プレビュー
00139 /* 15 */        F_PRINT_PAGESETUP           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //印刷ページ設定    //Sept. 21, 2000 JEPRO 追加
00140 /* 16 */        F_OPEN_HfromtoC             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
00141 /* 17 */        F_OPEN_HHPP                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //同名のC/C++ヘッダファイルを開く   //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00142 /* 18 */        F_OPEN_CCPP                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //同名のC/C++ソースファイルを開く   //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00143 /* 19 */        F_ACTIVATE_SQLPLUS          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Oracle SQL*Plusをアクティブ表示 */    //Sept. 20, 2000 JEPRO 追加
00144 /* 20 */        F_PLSQL_COMPILE_ON_SQLPLUS  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Oracle SQL*Plusで実行 */  //Sept. 17, 2000 jepro 説明の「コンパイル」を「実行」に統一
00145 /* 21 */        F_BROWSE                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブラウズ
00146 /* 22 */        F_PROPERTY_FILE             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイルのプロパティ//Sept. 16, 2000 JEPRO mytool1.bmpにあった「ファイルのプロパティ」アイコンをIDB_MYTOOLにコピー
00147 /* 23 */        F_READONLY                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //読み取り専用
00148 /* 24 */        F_FILE_REOPEN_UNICODEBE     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UnicodeBEで開き直す // Moca, 2002/05/26 追加
00149 /* 25 */        F_FILEOPEN_DROPDOWN         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //開く(ドロップダウン)
00150 /* 26 */        F_FILE_REOPEN               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //開きなおす
00151 /* 27 */        F_EXITALL                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //サクラエディタの全終了    //Dec. 27, 2000 JEPRO 追加
00152 /* 28 */        F_FILESAVECLOSE             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //保存して閉じる Feb. 28, 2004 genta
00153 /* 29 */        F_DISABLE                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00154 /* 30 */        F_FILESAVEALL                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全て上書き保存 Jan. 24, 2005 genta
00155 /* 31 */        F_EXITALLEDITORS            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //編集の全終了  // 2007.02.13 ryoji 追加
00156 /* 32 */        F_DISABLE                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00157
00158 /* 編集系(2段目32個: 32-64) */
00159 /* 33 */        F_UNDO                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //元に戻す(Undo)
00160 /* 34 */        F_REDO                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //やり直し(Redo)
00161 /* 35 */        F_DELETE                        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //削除
00162 /* 36 */        F_DELETE_BACK                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル前を削除
00163 /* 37 */        F_WordDeleteToStart             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の左端まで削除
00164 /* 38 */        F_WordDeleteToEnd               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の右端まで削除
00165 /* 39 */        F_WordDelete                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語削除
00166 /* 40 */        F_WordCut                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語切り取り
00167 /* 41 */        F_LineDeleteToStart             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行頭まで削除(改行単位)
00168 /* 42 */        F_LineDeleteToEnd               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行末まで削除(改行単位)
00169 /* 43 */        F_LineCutToStart                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行頭まで切り取り(改行単位)
00170 /* 44 */        F_LineCutToEnd                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行末まで切り取り(改行単位)
00171 /* 45 */        F_DELETE_LINE                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行削除(折り返し単位)
00172 /* 46 */        F_CUT_LINE                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行切り取り(改行単位)
00173 /* 47 */        F_DUPLICATELINE                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行の二重化(折り返し単位)
00174 /* 48 */        F_INDENT_TAB                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //TABインデント
00175 /* 49 */        F_UNINDENT_TAB                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //逆TABインデント
00176 /* 50 */        F_INDENT_SPACE                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SPACEインデント
00177 /* 51 */        F_UNINDENT_SPACE                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //逆SPACEインデント
00178 /* 52 */        F_DISABLE/*F_WORDSREFERENCE*/   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語リファレンス  //アイコン未作
00179 /* 53 */        F_LTRIM                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //LTRIM     // 2001.12.03 hor
00180 /* 54 */        F_RTRIM                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //RTRIM     // 2001.12.03 hor
00181 /* 55 */        F_SORT_ASC                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SORT_ASC  // 2001.12.06 hor
00182 /* 56 */        F_SORT_DESC                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SORT_DES  // 2001.12.06 hor
00183 /* 57 */        F_MERGE                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //MERGE     // 2001.12.06 hor
00184 /* 58 */        F_RECONVERT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //再変換    // 2002.4.12 YAZAKI
00185 /* 59 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00186 /* 60 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00187 /* 61 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00188 /* 62 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00189 /* 63 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00190 /* 64 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00191
00192 /* カーソル移動系(3段目32個: 65-96) */
00193 /* 65 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00194 /* 66 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00195 /* 67 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00196 /* 68 */        F_UP                            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル上移動
00197 /* 69 */        F_DOWN                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル下移動
00198 /* 70 */        F_LEFT                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル左移動
00199 /* 71 */        F_RIGHT                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル右移動
00200 /* 72 */        F_UP2                           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル上移動(２行ごと)
00201 /* 73 */        F_DOWN2                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル下移動(２行ごと)
00202 /* 74 */        F_WORDLEFT                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の左端に移動
00203 /* 75 */        F_WORDRIGHT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //単語の右端に移動
00204 /* 76 */        F_GOLINETOP                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行頭に移動(折り返し単位)
00205 /* 77 */        F_GOLINEEND                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //行末に移動(折り返し単位)
00206 /* 78 */        F_HalfPageUp                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半ページアップ    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00207 /* 79 */        F_HalfPageDown                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半ページダウン    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00208 /* 80 */        F_1PageUp                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00209 /* 81 */        F_1PageDown                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00210 /* 82 */        F_DISABLE/*F_DISPLAYTOP*/       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //画面の先頭に移動(未実装)
00211 /* 83 */        F_DISABLE/*F_DISPLAYEND*/       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //画面の最後に移動(未実装)
00212 /* 84 */        F_GOFILETOP                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイルの先頭に移動
00213 /* 85 */        F_GOFILEEND                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイルの最後に移動
00214 /* 86 */        F_CURLINECENTER                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //カーソル行をウィンドウ中央へ
00215 /* 87 */        F_JUMPHIST_PREV                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //移動履歴: 前へ    //Sept. 28, 2000 JEPRO 追加
00216 /* 88 */        F_JUMPHIST_NEXT                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //移動履歴: 次へ    //Sept. 28, 2000 JEPRO 追加
00217 /* 89 */        F_WndScrollDown                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //テキストを１行下へスクロール  //Jun. 28, 2001 JEPRO 追加
00218 /* 90 */        F_WndScrollUp                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //テキストを１行上へスクロール  //Jun. 28, 2001 JEPRO 追加
00219 /* 91 */        F_GONEXTPARAGRAPH               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次の段落へ
00220 /* 92 */        F_GOPREVPARAGRAPH               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前の段落へ
00221 /* 93 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00222 /* 94 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00223 /* 95 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00224 /* 96 */        F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00225
00226 /* 選択系(4段目32個: 97-128) */
00227 /* 97 */        F_SELECTWORD                    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //現在位置の単語選択
00228 /* 98 */        F_SELECTALL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //すべて選択    //Sept. 21, 2000 JEPRO 追加
00229 /* 99 */        F_BEGIN_SEL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //範囲選択開始
00230 /* 100 */       F_UP_SEL                        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル上移動
00231 /* 101 */       F_DOWN_SEL                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル下移動
00232 /* 102 */       F_LEFT_SEL                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル左移動
00233 /* 103 */       F_RIGHT_SEL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル右移動
00234 /* 104 */       F_UP2_SEL                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル上移動(２行ごと)
00235 /* 105 */       F_DOWN2_SEL                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)カーソル下移動(２行ごと)
00236 /* 106 */       F_WORDLEFT_SEL                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)単語の左端に移動
00237 /* 107 */       F_WORDRIGHT_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)単語の右端に移動
00238 /* 108 */       F_GOLINETOP_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)行頭に移動(折り返し単位)
00239 /* 109 */       F_GOLINEEND_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)行末に移動(折り返し単位)
00240 /* 110 */       F_HalfPageUp_Sel                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)半ページアップ  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00241 /* 111 */       F_HalfPageDown_Sel              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)半ページダウン  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00242 /* 112 */       F_1PageUp_Sel                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)１ページアップ  //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00243 /* 113 */       F_1PageDown_Sel                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)１ページダウン  //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00244 /* 114 */       F_DISABLE/*F_DISPLAYTOP_SEL*/   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)画面の先頭に移動(未実装)
00245 /* 115 */       F_DISABLE/*F_DISPLAYEND_SEL*/   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)画面の最後に移動(未実装)
00246 /* 116 */       F_GOFILETOP_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)ファイルの先頭に移動
00247 /* 117 */       F_GOFILEEND_SEL                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)ファイルの最後に移動
00248 /* 118 */       F_GONEXTPARAGRAPH_SEL           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)次の段落へ
00249 /* 119 */       F_GOPREVPARAGRAPH_SEL           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(範囲選択)前の段落へ
00250 /* 120 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00251 /* 121 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00252 /* 122 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00253 /* 123 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00254 /* 124 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00255 /* 125 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00256 /* 126 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00257 /* 127 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00258 /* 128 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00259
00260 /* 矩形選択系(5段目32個: 129-160) */ //(注. 矩形選択系のほとんどは未実装)
00261 /* 129 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00262 /* 130 */       F_DISABLE/*F_BOXSELALL*/                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //矩形ですべて選択
00263 /* 131 */       F_BEGIN_BOX                             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //矩形範囲選択開始  //Sept. 29, 2000 JEPRO 追加
00264 /* 132 */       F_DISABLE/*F_UP_BOX*/                   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル上移動
00265 /* 133 */       F_DISABLE/*F_DOWN_BOX*/                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル下移動
00266 /* 134 */       F_DISABLE/*F_LEFT_BOX*/                 /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル左移動
00267 /* 135 */       F_DISABLE/*F_RIGHT_BOX*/                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル右移動
00268 /* 136 */       F_DISABLE/*F_UP2_BOX*/                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル上移動(２行ごと)
00269 /* 137 */       F_DISABLE/*F_DOWN2_BOX*/                /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)カーソル下移動(２行ごと)
00270 /* 138 */       F_DISABLE/*F_WORDLEFT_BOX*/             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)単語の左端に移動
00271 /* 139 */       F_DISABLE/*F_WORDRIGHT_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)単語の右端に移動
00272 /* 140 */       F_DISABLE/*F_GOLINETOP_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)行頭に移動(折り返し単位)
00273 /* 141 */       F_DISABLE/*F_GOLINEEND_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)行末に移動(折り返し単位)
00274 /* 142 */       F_DISABLE/*F_HalfPageUp_Box*/           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)半ページアップ
00275 /* 143 */       F_DISABLE/*F_HalfPageDown_Box*/         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)半ページダウン
00276 /* 144 */       F_DISABLE/*F_1PageUp_Box*/              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)１ページアップ
00277 /* 145 */       F_DISABLE/*F_1PageDown_Box*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)１ページダウン
00278 /* 146 */       F_DISABLE/*F_DISABLE/*F_DISPLAYTOP_BOX*//* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)画面の先頭に移動(未実装)
00279 /* 147 */       F_DISABLE/*F_DISPLAYEND_BOX*/           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)画面の最後に移動(未実装)
00280 /* 148 */       F_DISABLE/*F_GOFILETOP_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)ファイルの先頭に移動
00281 /* 149 */       F_DISABLE/*F_GOFILEEND_BOX*/            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //(矩形選択)ファイルの最後に移動
00282 /* 150 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00283 /* 151 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00284 /* 152 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00285 /* 153 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00286 /* 154 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00287 /* 155 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00288 /* 156 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00289 /* 157 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00290 /* 158 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00291 /* 159 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00292 /* 160 */       F_DISABLE                               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00293
00294 /* クリップボード系(6段目24個: 161-184) */
00295 /* 161 */       F_CUT                           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //切り取り(選択範囲をクリップボードにコピーして削除)
00296 /* 162 */       F_COPY                          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //コピー(選択範囲をクリップボードにコピー)
00297 /* 163 */       F_COPY_CRLF                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //CRLF改行でコピー
00298 /* 164 */       F_PASTE                         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //貼り付け(クリップボードから貼り付け)
00299 /* 165 */       F_PASTEBOX                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //矩形貼り付け(クリップボードから貼り付け)
00300 /* 166 */       F_DISABLE/*F_INSTEXT*/          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //テキストを貼り付け    (未公開コマンド？未完成？)
00301 /* 167 */       F_DISABLE/*F_ADDTAIL*/          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //最後にテキストを追加  (未公開コマンド？未完成？)
00302 /* 168 */       F_COPYLINES                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //選択範囲内全行コピー  //Sept. 30, 2000 JEPRO 追加
00303 /* 169 */       F_COPYLINESASPASSAGE            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //選択範囲内全行引用符付きコピー    //Sept. 30, 2000 JEPRO 追加
00304 /* 170 */       F_COPYLINESWITHLINENUMBER       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //選択範囲内全行行番号付きコピー    //Sept. 30, 2000 JEPRO 追加
00305 /* 171 */       F_COPYPATH                      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //このファイルのパス名をコピー //added Oct. 22, 2000 JEPRO              //Nov. 5, 2000 JEPRO 追加
00306 /* 172 */       F_COPYTAG                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //このファイルのパス名とカーソル位置をコピー //added Oct. 22, 2000 JEPRO    //Nov. 5, 2000 JEPRO 追加
00307 /* 173 */       F_CREATEKEYBINDLIST             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //キー割り当て一覧をコピー //added Oct. 22, 2000 JEPRO  //Dec. 25, 2000 JEPRO アイコン追加
00308 /* 174 */       F_COPYFNAME                     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //このファイル名をクリップボードにコピー //2002/2/3 aroka
00309 /* 175 */       F_COPY_ADDCRLF                  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //折り返し位置に改行をつけてコピー
00310 /* 176 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00311 /* 177 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00312 /* 178 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00313 /* 179 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00314 /* 180 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00315 /* 181 */       F_DISABLE                       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00316 /* 182 */       F_CHGMOD_EOL_CRLF,  // 2003.06.23 Moca
00317 /* 183 */       F_CHGMOD_EOL_LF,    // 2003.06.23 Moca
00318 /* 184 */       F_CHGMOD_EOL_CR,    // 2003.06.23 Moca
00319
00320 /* 挿入系(6段目残り8個: 185-192) */
00321 /* 185 */       F_INS_DATE  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //日付挿入  //Nov. 5, 2000 JEPRO 追加
00322 /* 186 */       F_INS_TIME  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //時刻挿入  //Nov. 5, 2000 JEPRO 追加
00323 /* 187 */       F_CTRL_CODE_DIALOG  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //コントロールコードの入力(ダイアログ)  //@@@ 2002.06.02 MIK
00324 /* 188 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00325 /* 189 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00326 /* 190 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00327 /* 191 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00328 /* 192 */       F_DISABLE   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00329
00330 /* 変換系(7段目32個: 193-224) */
00331 /* 193 */       F_TOLOWER               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //小文字
00332 /* 194 */       F_TOUPPER               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //大文字
00333 /* 195 */       F_TOHANKAKU             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全角→半角
00334 /* 196 */       F_TOZENKAKUKATA         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角＋全ひら→全角・カタカナ  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00335 /* 197 */       F_TOZENKAKUHIRA         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角＋全カタ→全角・ひらがな  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00336 /* 198 */       F_HANKATATOZENKAKUKATA  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角カタカナ→全角カタカナ    //Sept. 18, 2000 JEPRO 追加
00337 /* 199 */       F_HANKATATOZENKAKUHIRA  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角カタカナ→全角ひらがな    //Sept. 18, 2000 JEPRO 追加
00338 /* 200 */       F_TABTOSPACE            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //TAB→空白 //Sept. 20, 2000 JEPRO 追加
00339 /* 201 */       F_CODECNV_AUTO2SJIS     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //自動判別→SJISコード変換
00340 /* 202 */       F_CODECNV_EMAIL         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //E-Mail(JIS→SIJIS)コード変換
00341 /* 203 */       F_CODECNV_EUC2SJIS      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //EUC→SJISコード変換
00342 /* 204 */       F_CODECNV_UNICODE2SJIS  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Unicode→SJISコード変換
00343 /* 205 */       F_CODECNV_UTF82SJIS     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-8→SJISコード変換
00344 /* 206 */       F_CODECNV_UTF72SJIS     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UTF-7→SJISコード変換
00345 /* 207 */       F_CODECNV_SJIS2JIS      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→JISコード変換
00346 /* 208 */       F_CODECNV_SJIS2EUC      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→EUCコード変換
00347 /* 209 */       F_CODECNV_SJIS2UTF8     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→UTF-8コード変換
00348 /* 210 */       F_CODECNV_SJIS2UTF7     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //SJIS→UTF-7コード変換
00349 /* 211 */       F_BASE64DECODE          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Base64デコードして保存    //Sept. 28, 2000 JEPRO 追加
00350 /* 212 */       F_UUDECODE              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //uudecodeしてファイルに保存//Sept. 28, 2000 JEPRO 追加 //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00351 /* 213 */       F_SPACETOTAB            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //空白→TAB //Jun. 01, 2001 JEPRO 追加
00352 /* 214 */       F_TOZENEI               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //半角英数→全角英数 //July. 30, 2001 Misaka 追加
00353 /* 215 */       F_TOHANEI               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全角英数→半角英数
00354 /* 216 */       F_CODECNV_UNICODEBE2SJIS/* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //UnicodeBE→SJISコード変換 //Moca, 2002/05/26
00355 /* 217 */       F_TOHANKATA             /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //全角カタカナ→半角カタカナ    //Aug. 29, 2002 ai
00356 /* 218 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00357 /* 219 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00358 /* 220 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00359 /* 221 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00360 /* 222 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00361 /* 223 */       F_DISABLE               /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00362 /* 224 */       F_OUTLINE_TOGGLE        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //アウトライン解析(toggle) // 20060201 aroka
00363
00364 /* 検索系(8段目32個: 225-256) */
00365 /* 225 */       F_SEARCH_DIALOG     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索(単語検索ダイアログ)
00366 /* 226 */       F_SEARCH_NEXT       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次を検索
00367 /* 227 */       F_SEARCH_PREV       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前を検索
00368 /* 228 */       F_REPLACE_DIALOG    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //置換  //Sept. 21, 2000 JEPRO 追加
00369 /* 229 */       F_SEARCH_CLEARMARK  /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索マークのクリア
00370 /* 230 */       F_GREP_DIALOG       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //Grep
00371 /* 231 */       F_JUMP_DIALOG       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //指定行へジャンプ      //Sept. 21, 2000 JEPRO 追加
00372 /* 232 */       F_OUTLINE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //アウトライン解析
00373 /* 233 */       F_TAGJUMP           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タグジャンプ機能          //Sept. 21, 2000 JEPRO 追加
00374 /* 234 */       F_TAGJUMPBACK       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タグジャンプバック機能    //Sept. 21, 2000 JEPRO 追加
00375 /* 235 */       F_COMPARE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファイル内容比較  //Sept. 21, 2000 JEPRO 追加
00376 /* 236 */       F_BRACKETPAIR       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //対括弧の検索  //Sept. 20, 2000 JEPRO 追加
00377 /* 237 */       F_BOOKMARK_SET      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブックマーク設定・解除    // 2001.12.03 hor
00378 /* 238 */       F_BOOKMARK_NEXT     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次のブックマークへ        // 2001.12.03 hor
00379 /* 239 */       F_BOOKMARK_PREV     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前のブックマークへ        // 2001.12.03 hor
00380 /* 240 */       F_BOOKMARK_RESET    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブックマークの全解除      // 2001.12.03 hor
00381 /* 241 */       F_BOOKMARK_VIEW     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ブックマークの一覧        // 2001.12.03 hor
00382 /* 242 */       F_DIFF_DIALOG       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //DIFF差分表示  //@@@ 2002.05.25 MIK
00383 /* 243 */       F_DIFF_NEXT         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //次の差分へ    //@@@ 2002.05.25 MIK
00384 /* 244 */       F_DIFF_PREV         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前の差分へ    //@@@ 2002.05.25 MIK
00385 /* 245 */       F_DIFF_RESET        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //差分の全解除  //@@@ 2002.05.25 MIK
00386 /* 246 */       F_SEARCH_BOX        /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索(ボックス)
00387 /* 247 */       F_JUMP_SRCHSTARTPOS /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //検索開始位置へ戻る    // 02/06/26 ai
00388 /* 248 */       F_TAGS_MAKE         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タグファイルの作成    //@@@ 2003.04.13 MIK
00389 /* 249 */       F_DIRECT_TAGJUMP    /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダイレクトタグジャンプ    //@@@ 2003.04.15 MIK
00390 /* 250 */       F_ISEARCH_NEXT      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //前方インクリメンタルサーチ //2004.10.13 isearch
00391 /* 251 */       F_ISEARCH_PREV      /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //後方インクリメンタルサーチ //2004.10.13 isearch
00392 /* 252 */       F_ISEARCH_REGEXP_NEXT   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //正規表現前方インクリメンタルサーチ //2004.10.13 isearch
00393 /* 253 */       F_ISEARCH_REGEXP_PREV   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //正規表現前方インクリメンタルサーチ //2004.10.13 isearch
00394 /* 254 */       F_ISEARCH_MIGEMO_NEXT   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //MIGEMO前方インクリメンタルサーチ //2004.10.13 isearch
00395 /* 255 */       F_ISEARCH_MIGEMO_PREV   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //MIGEMO前方インクリメンタルサーチ //2004.10.13 isearch
00396 /* 256 */       F_TAGJUMP_KEYWORD   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //キーワードを指定してダイレクトタグジャンプ //2005.03.31 MIK
00397
00398 /* モード切り替え系(9段目4個: 257-260) */
00399 /* 257 */       F_CHGMOD_INS    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //挿入／上書きモード切り替え    //Nov. 5, 2000 JEPRO 追加
00400 /* 258 */       F_CANCEL_MODE   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //各種モードの取り消し          //Nov. 7, 2000 JEPRO 追加
00401 /* 259 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00402 /* 260 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00403
00404 /* 設定系(9段目次の16個: 261-276) */
00405 /* 261 */       F_SHOWTOOLBAR       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ツールバーの表示
00406 /* 262 */       F_SHOWFUNCKEY       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ファンクションキーの表示
00407 /* 263 */       F_SHOWSTATUSBAR     /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ステータスバーの表示
00408 /* 264 */       F_TYPE_LIST         /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タイプ別設定一覧  //Sept. 18, 2000 JEPRO 追加
00409 /* 265 */       F_OPTION_TYPE       /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タイプ別設定
00410 /* 266 */       F_OPTION            /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //共通設定          //Sept. 16, 2000 jepro 説明を「設定プロパティシート」から変更
00411 /* 267 */       F_FONT              /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //フォント設定
00412 /* 268 */       F_WRAPWINDOWWIDTH   /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //現在のウィンドウ幅で折り返し  //  Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00413 /* 269 */       F_FAVORITE          /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //履歴の管理    //@@@ 2003.04.08 MIK
00414 /* 270 */       F_SHOWTAB           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //タブの表示    //@@@ 2003.06.10 MIK
00415 /* 271 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00416 /* 272 */       F_TOGGLE_KEY_SEARCH /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //キーワードヘルプ自動表示 2007.03.92 genta
00417 /* 273 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00418 /* 274 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00419 /* 275 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00420 /* 276 */       F_DISABLE           /* , TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,  //ダミー
00421
00422 /* マクロ系(9段目最後の12個: 277-288) */
00423 /* 277 */       F_RECKEYMACRO           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの記録開始／終了
00424 /* 278 */       F_SAVEKEYMACRO          /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの保存      //Sept. 21, 2000 JEPRO 追加
00425 /* 279 */       F_LOADKEYMACRO          /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの読み込み  //Sept. 21, 2000 JEPRO 追加
00426 /* 280 */       F_EXECKEYMACRO          /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //キーマクロの実行      //Sept. 16, 2000 JEPRO 下から上に移動した
00427 /* 281 */       F_EXECCOMMAND_DIALOG    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部コマンド実行//Sept. 20, 2000 JEPRO 名称をCMMANDからCOMMANDに変更(EXECCMMAND→EXECCMMAND)
00428 /* 282 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00429 /* 283 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00430 /* 284 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00431 /* 285 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00432 /* 286 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00433 /* 287 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00434 /* 288 */       F_DISABLE               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00435
00436 /* カスタムメニュー(10段目32個: 289-320) */
00437 /* 289 */       F_MENU_RBUTTON              /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //右クリックメニュー    //Sept. 30, 2000 JEPRO 追加
00438 /* 290 */       F_CUSTMENU_1                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー1
00439 /* 291 */       F_CUSTMENU_2                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー2
00440 /* 292 */       F_CUSTMENU_3                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー3
00441 /* 293 */       F_CUSTMENU_4                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー4
00442 /* 294 */       F_CUSTMENU_5                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー5
00443 /* 295 */       F_CUSTMENU_6                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー6
00444 /* 296 */       F_CUSTMENU_7                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー7
00445 /* 297 */       F_CUSTMENU_8                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー8
00446 /* 298 */       F_CUSTMENU_9                /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー9
00447 /* 299 */       F_CUSTMENU_10               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー10
00448 /* 300 */       F_DISABLE/*F_CUSTMENU_11*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー11    //アイコン未作
00449 /* 301 */       F_DISABLE/*F_CUSTMENU_12*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー12    //アイコン未作
00450 /* 302 */       F_DISABLE/*F_CUSTMENU_13*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー13    //アイコン未作
00451 /* 303 */       F_DISABLE/*F_CUSTMENU_14*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー14    //アイコン未作
00452 /* 304 */       F_DISABLE/*F_CUSTMENU_15*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー15    //アイコン未作
00453 /* 305 */       F_DISABLE/*F_CUSTMENU_16*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー16    //アイコン未作
00454 /* 306 */       F_DISABLE/*F_CUSTMENU_17*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー17    //アイコン未作
00455 /* 307 */       F_DISABLE/*F_CUSTMENU_18*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー18    //アイコン未作
00456 /* 308 */       F_DISABLE/*F_CUSTMENU_19*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー19    //アイコン未作
00457 /* 309 */       F_DISABLE/*F_CUSTMENU_20*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー20    //アイコン未作
00458 /* 310 */       F_DISABLE/*F_CUSTMENU_21*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー21    //アイコン未作
00459 /* 311 */       F_DISABLE/*F_CUSTMENU_22*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー22    //アイコン未作
00460 /* 312 */       F_DISABLE/*F_CUSTMENU_23*/  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー23    //アイコン未作
00461 /* 313 */       F_CUSTMENU_24               /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //カスタムメニュー24    //アイコン未作
00462 /* 314 */       F_TAB_MOVERIGHT             /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //タブを右に移動    // 2007.06.20 ryoji
00463 /* 315 */       F_TAB_MOVELEFT              /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //タブを左に移動    // 2007.06.20 ryoji
00464 /* 316 */       F_TAB_SEPARATE              /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //新規グループ  // 2007.06.20 ryoji
00465 /* 317 */       F_TAB_JOINTNEXT             /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //次のグループに移動    // 2007.06.20 ryoji
00466 /* 318 */       F_TAB_JOINTPREV             /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //前のグループに移動    // 2007.06.20 ryoji
00467 /* 319 */       F_DISABLE                   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00468 /* 320 */       F_DISABLE                   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00469
00470 /* ウィンドウ系(11段目22個: 321-342) */
00471 /* 321 */       F_SPLIT_V       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //上下に分割    //Sept. 16, 2000 jepro 説明を「縦」から「上下に」に変更
00472 /* 322 */       F_SPLIT_H       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //左右に分割    //Sept. 16, 2000 jepro 説明を「横」から「左右に」に変更
00473 /* 323 */       F_SPLIT_VH      /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //縦横に分割    //Sept. 17, 2000 jepro 説明に「に」を追加
00474 /* 324 */       F_WINCLOSE      /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ウィンドウを閉じる
00475 /* 325 */       F_WIN_CLOSEALL  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //すべてのウィンドウを閉じる    //Sept. 18, 2000 JEPRO 追加 //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00476 /* 329 */       F_NEXTWINDOW    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //次のウィンドウ
00477 /* 330 */       F_PREVWINDOW    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //前のウィンドウ
00478 /* 326 */       F_CASCADE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //重ねて表示
00479 /* 237 */       F_TILE_V        /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //上下に並べて表示
00480 /* 328 */       F_TILE_H        /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //左右に並べて表示
00481 /* 331 */       F_MAXIMIZE_V    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //縦方向に最大化
00482 /* 332 */       F_MAXIMIZE_H    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //横方向に最大化 //2001.02.10 by MIK
00483 /* 333 */       F_MINIMIZE_ALL  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //すべて最小化                  //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00484 /* 334 */       F_REDRAW        /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //再描画                        //Sept. 30, 2000 JEPRO 追加
00485 /* 335 */       F_WIN_OUTPUT    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //アウトプットウィンドウ表示    //Sept. 18, 2000 JEPRO 追加
00486 /* 336 */       F_BIND_WINDOW   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //結合して表示  2004.07.14 kazika / Design Oct. 1, 2004 genta
00487 /* 337 */       F_TOPMOST       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //常に手前に表示 2004.09.21 Moca
00488 /* 338 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00489 /* 339 */       F_WINLIST       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ウィンドウ一覧ポップアップ表示    // 2006.03.23 fon
00490 /* 340 */       F_GROUPCLOSE    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //グループを閉じる  // 2007.06.20 ryoji
00491 /* 341 */       F_NEXTGROUP     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //次のグループ  // 2007.06.20 ryoji
00492 /* 342 */       F_PREVGROUP     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //前のグループ  // 2007.06.20 ryoji
00493
00494 /* 支援(11段目残りの10個: 343-352) */
00495 /* 343 */       F_HOKAN         /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //入力補完
00496 /* 344 */       F_HELP_CONTENTS /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ヘルプ目次            //Nov. 25, 2000 JEPRO 追加
00497 /* 345 */       F_HELP_SEARCH   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ヘルプキーワード検索  //Nov. 25, 2000 JEPRO 追加
00498 /* 346 */       F_MENU_ALLFUNC  /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //コマンド一覧          //Sept. 30, 2000 JEPRO 追加
00499 /* 347 */       F_EXTHELP1      /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部ヘルプ１
00500 /* 348 */       F_EXTHTMLHELP   /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部HTMLヘルプ
00501 /* 349 */       F_ABOUT         /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //バージョン情報    //Dec. 24, 2000 JEPRO 追加
00502 /* 350 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00503 /* 351 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00504 /* 352 */       F_DISABLE       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00505
00506 //2002.01.17 hor ｢その他｣のエリアを外部マクロ用に割当て
00507 /* 外部マクロ(12段目32個: 353-384) */
00508 /* 353 */       F_USERMACRO_0       /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ①
00509 /* 354 */       F_USERMACRO_0+1     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ②
00510 /* 355 */       F_USERMACRO_0+2     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ③
00511 /* 356 */       F_USERMACRO_0+3     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ④
00512 /* 357 */       F_USERMACRO_0+4     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑤
00513 /* 358 */       F_USERMACRO_0+5     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑥
00514 /* 359 */       F_USERMACRO_0+6     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑦
00515 /* 360 */       F_USERMACRO_0+7     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑧
00516 /* 361 */       F_USERMACRO_0+8     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑨
00517 /* 362 */       F_USERMACRO_0+9     /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑩
00518 /* 363 */       F_USERMACRO_0+10    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑪
00519 /* 364 */       F_USERMACRO_0+11    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑫
00520 /* 365 */       F_USERMACRO_0+12    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑬
00521 /* 366 */       F_USERMACRO_0+13    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑭
00522 /* 367 */       F_USERMACRO_0+14    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑮
00523 /* 368 */       F_USERMACRO_0+15    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑯
00524 /* 369 */       F_USERMACRO_0+16    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑰
00525 /* 370 */       F_USERMACRO_0+17    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑱
00526 /* 371 */       F_USERMACRO_0+18    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑲
00527 /* 372 */       F_USERMACRO_0+19    /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //外部マクロ⑳
00528 /* 373 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00529 /* 374 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00530 /* 375 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00531 /* 376 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00532 /* 377 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00533 /* 378 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00534 /* 379 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00535 /* 380 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00536 /* 381 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00537 /* 382 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00538 /* 383 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */,   //ダミー
00539 /* 384 */       F_DISABLE           /*, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 */    //最終行用ダミー(Jepro note: 最終行末にはカンマを付けないこと)
00540
00541 };
00542     int tbd_num = sizeof( tbd ) / sizeof( tbd[0] );
00543     BYTE    style;  //@@@ 2002.06.15 MIK
00544
00545     for( int i = 0; i < tbd_num; i++ ){
00546         switch( tbd[i] )    //@@@ 2002.06.15 MIK
00547         {
00548         case F_FILEOPEN_DROPDOWN:
00549             style = TBSTYLE_DROPDOWN;   //ドロップダウン
00550             break;
00551
00552         case F_SEARCH_BOX:
00553             style = TBSTYLE_COMBOBOX;   //コンボボックス
00554             break;
00555
00556         default:
00557             style = TBSTYLE_BUTTON; //ボタン
00558             break;
00559         }
00560
00561         //  m_tbMyButton[0]にはセパレータが入っているため。
00562         SetTBBUTTONVal(
00563             &m_tbMyButton[i+1],
00564             i,
00565             tbd[i],             //  tbd[i].idCommand,
00566             TBSTATE_ENABLED,    //  tbd[i].fsState,
00567             style /*TBSTYLE_BUTTON*/,       //  tbd[i].fsStyle,
00568             0,                  //  tbd[i].dwData,
00569             0                   //  tbd[i].iString
00570         );
00571     }
00572
00573     // ツールバー改行用の仮想ボタン（実際は表示されない） // 20050809 aroka
00574     SetTBBUTTONVal(
00575         &m_tbMyButton[tbd_num],
00576         0,
00577         F_MENU_NOT_USED_FIRST,          //  tbd[i].idCommand,
00578         TBSTATE_ENABLED|TBSTATE_WRAP,   //  tbd[i].fsState,
00579         TBSTYLE_SEP,            //  tbd[i].fsStyle,
00580         0,                      //  tbd[i].dwData,
00581         0                       //  tbd[i].iString
00582     );
00583     m_nMyButtonNum = tbd_num + 1;   //  + 1は、セパレータの分
00584     return;
00585 }
00586
00587
00588 CMenuDrawer::~CMenuDrawer()
00589 {
00590     if( NULL != m_hFontMenu ){
00591         ::DeleteObject( m_hFontMenu );
00592         m_hFontMenu = NULL;
00593     }
00594     if( NULL != m_hFontMenuUndelLine ){
00595         ::DeleteObject( m_hFontMenuUndelLine );
00596         m_hFontMenuUndelLine = NULL;
00597     }
00598     return;
00599 }
00600
00601 void CMenuDrawer::Create( HINSTANCE hInstance, HWND hWndOwner, CImageListMgr* pcIcons )
00602 {
00603     m_hInstance = hInstance;
00604     m_hWndOwner = hWndOwner;
00605     m_pcIcons = pcIcons;
00606
00607     return;
00608 }
00609
00610
00611 void CMenuDrawer::ResetContents( void )
00612 {
00613     int     i;
00614     LOGFONT lf;
00615     for( i = 0; i < m_nMenuItemNum; ++i ){
00616         m_cmemMenuItemStrArr[i].SetData( "", 0 );
00617         m_nMenuItemFuncArr[i] = 0;
00618     }
00619     m_nMenuItemNum = 0;
00620
00621     NONCLIENTMETRICS    ncm;
00622     ncm.cbSize = sizeof( NONCLIENTMETRICS );
00623     ::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), (PVOID)&ncm, 0 );
00624
00625     m_nMenuHeight = ncm.iMenuHeight;
00626     if( 21 > m_nMenuHeight ){
00627         m_nMenuHeight = 21;
00628     }
00629
00630     if( NULL != m_hFontMenu ){
00631         ::DeleteObject( m_hFontMenu );
00632         m_hFontMenu = NULL;
00633     }
00634     if( NULL != m_hFontMenuUndelLine ){
00635         ::DeleteObject( m_hFontMenuUndelLine );
00636         m_hFontMenuUndelLine = NULL;
00637     }
00638     lf = ncm.lfMenuFont;
00639     m_hFontMenu = ::CreateFontIndirect( &lf );
00640     lf.lfUnderline = TRUE;
00641     m_hFontMenuUndelLine = ::CreateFontIndirect( &lf );
00642 //@@@ 2002.01.03 YAZAKI 不使用のため
00643 //  m_nMaxTab = 0;
00644 //  m_nMaxTabLen = 0;
00645     return;
00646 }
00647
00648
00649
00650
00651 /* メニューアイテムの描画サイズを計算 */
00652 int CMenuDrawer::MeasureItem( int nFuncID, int* pnItemHeight )
00653 {
00654
00655
00656     *pnItemHeight = m_nMenuHeight;
00657     const char* pszLabel;
00658     RECT rc;
00659     HDC hdc;
00660     HFONT hFontOld;
00661
00662     if( NULL == ( pszLabel = GetLabel( nFuncID ) ) ){
00663         return 0;
00664     }
00665     hdc = ::GetDC( m_hWndOwner );
00666     hFontOld = (HFONT)::SelectObject( hdc, m_hFontMenu );
00667     ::DrawText( hdc, pszLabel, strlen( pszLabel ), &rc, DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_CALCRECT );
00668     ::SelectObject( hdc, hFontOld );
00669     ::ReleaseDC( m_hWndOwner, hdc );
00670
00671
00672 //  *pnItemHeight = 20;
00673 //  *pnItemHeight = 2 + 15 + 1;
00674     //@@@ 2002.2.2 YAZAKI Windowsの設定でメニューのフォントを大きくすると表示が崩れる問題に対処
00675     *pnItemHeight = GetSystemMetrics(SM_CYMENU);
00676
00677     return rc.right - rc.left + 20 + 8;
00678 //  return m_nMaxTab + 16 + m_nMaxTabLen;
00679
00680 }
00681
00682 /* メニュー項目を追加 */
00683 //void CMenuDrawer::MyAppendMenu( HMENU hMenu, int nFlag, int nFuncId, const char* pszLabel, BOOL bAddKeyStr )
00684 void CMenuDrawer::MyAppendMenu( HMENU hMenu, int nFlag, int nFuncId, const char* pszLabel, BOOL bAddKeyStr, int nForceIconId )  //お気に入り    //@@@ 2003.04.08 MIK
00685 {
00686     char        szLabel[256];
00687     int         nFlagAdd = 0;
00688     int         i;
00689
00690     if( nForceIconId == -1 ) nForceIconId = nFuncId;    //お気に入り    //@@@ 2003.04.08 MIK
00691
00692     szLabel[0] = '\0';
00693     if( NULL != pszLabel ){
00694         strncpy( szLabel, pszLabel, sizeof( szLabel ) / sizeof( szLabel[0] ) - 1 );
00695         szLabel[ sizeof( szLabel ) / sizeof( szLabel[0] ) - 1 ] = '\0';
00696     }
00697     if( nFuncId != 0 ){
00698         /* メニューラベルの作成 */
00699         CKeyBind::GetMenuLabel(
00700             m_hInstance,
00701             m_pShareData->m_nKeyNameArrNum,
00702             m_pShareData->m_pKeyNameArr,
00703             nFuncId,
00704             szLabel,
00705             bAddKeyStr
00706          );
00707
00708         /* アイコン用ビットマップを持つものは、オーナードロウにする */
00709
00710         if( m_nMenuItemNum + 1 > MAX_MENUITEMS ){
00711 			::MYMESSAGEBOX(  NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00712                 "CMenuDrawer::MyAppendMenu()エラー\n\nCMenuDrawerが管理できるメニューアイテムの上限はCMenuDrawer::MAX_MENUITEMS==%dです。\n ", MAX_MENUITEMS
00713             );
00714         }else{
00715
00716             m_nMenuItemBitmapIdxArr[m_nMenuItemNum] = -1;
00717             m_nMenuItemFuncArr[m_nMenuItemNum] = nFuncId;
00718             m_cmemMenuItemStrArr[m_nMenuItemNum].SetData( szLabel, strlen( szLabel ) );
00719 //#ifdef _DEBUG
00720             /* メニュー項目をオーナー描画にする */
00721             /* メニューにアイコンを表示する */
00722             if( m_pShareData->m_Common.m_bMenuIcon ){
00723                 nFlagAdd = MF_OWNERDRAW;
00724             }
00725 //#endif
00726             /* 機能のビットマップがあるかどうか調べておく */
00727 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00728 //          for( i = 0; i < m_cShareData.m_nMyButtonNum; ++i ){
00729 //              if( nFuncId == m_cShareData.m_tbMyButton[i].idCommand ){
00730 //                  /* 機能のビットマップの情報を覚えておく */
00731 //                  m_nMenuItemBitmapIdxArr[m_nMenuItemNum] = m_cShareData.m_tbMyButton[i].iBitmap;
00732 //                  break;
00733 //              }
00734 //          }
00735             for( i = 0; i < m_nMyButtonNum; ++i ){
00736                 //if( nFuncId == m_tbMyButton[i].idCommand ){
00737                 if( nForceIconId == m_tbMyButton[i].idCommand ){    //お気に入り    //@@@ 2003.04.08 MIK
00738                     /* 機能のビットマップの情報を覚えておく */
00739                     m_nMenuItemBitmapIdxArr[m_nMenuItemNum] = m_tbMyButton[i].iBitmap;
00740                     break;
00741                 }
00742             }
00743             m_nMenuItemNum++;
00744         }
00745     }
00746
00747     MENUITEMINFO mii;
00748     memset( &mii, 0, sizeof( MENUITEMINFO ) );
00749     //  Aug. 31, 2001 genta
00750 #ifdef _WIN64
00751     mii.cbSize = sizeof( MENUITEMINFO ); // 64bit版ではサイズ違う
00752 #else
00753     //mii.cbSize = sizeof( MENUITEMINFO ); // 本当はこちらの書き方が正しいが，
00754     mii.cbSize = SIZEOF_MENUITEMINFO; // サイズが大きいとWin95で動かないので，Win95が納得する値を決め打ち
00755 #endif
00756     mii.fMask = MIIM_CHECKMARKS | MIIM_DATA | MIIM_ID | MIIM_STATE | MIIM_SUBMENU | MIIM_TYPE;
00757     mii.fType = 0;
00758     if( MF_OWNERDRAW    & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_OWNERDRAW;
00759     if( MF_SEPARATOR    & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_SEPARATOR;
00760     if( MF_STRING       & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_STRING;
00761     if( MF_MENUBREAK    & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_MENUBREAK;
00762     if( MF_MENUBARBREAK & ( nFlag | nFlagAdd ) ) mii.fType |= MFT_MENUBARBREAK;
00763
00764     mii.fState = 0;
00765     if( MF_GRAYED       & ( nFlag | nFlagAdd ) ) mii.fState |= MFS_GRAYED;
00766     if( MF_CHECKED      & ( nFlag | nFlagAdd ) ) mii.fState |= MFS_CHECKED;
00767
00768     mii.wID = nFuncId;
00769     mii.hSubMenu = (nFlag&MF_POPUP)?((HMENU)nFuncId):NULL;
00770     mii.hbmpChecked = NULL;
00771     mii.hbmpUnchecked = NULL;
00772     mii.dwItemData = (ULONG_PTR)this;
00773     mii.dwTypeData = szLabel;
00774     mii.cch = 0;
00775
00776     // メニュー内の指定された位置に、新しいメニュー項目を挿入します。
00777     ::InsertMenuItem( hMenu, 0xFFFFFFFF, TRUE, &mii );
00778     return;
00779 }
00780
00781
00782
00783
00788 void CMenuDrawer::DrawItem( DRAWITEMSTRUCT* lpdis )
00789 {
00790
00791 //  int         i;
00792     int         j;
00793     int         nItemIndex;
00794     HDC         hdc;
00795     const char* pszItemStr;
00796     int         nItemStrLen;
00797 //  TEXTMETRIC  tm;
00798 //  SIZE        sz;
00799     HFONT       hFontOld;
00800     int         nIndentLeft;
00801     int         nIndentRight;
00802     int         nTextTopMargin;
00803     RECT        rc1;
00804     HBRUSH      hBrush;
00805     RECT        rcText;
00806     int         nBkModeOld;
00807
00808     nIndentLeft = 26;
00809     nIndentRight = 8;
00810     nTextTopMargin = 3;
00811
00812 /*  for( i = 0; i < m_nMenuItemNum; ++i ){
00813         if( (int)lpdis->itemID == m_nMenuItemFuncArr[i] ){
00814             break;
00815         }
00816     }
00817     if( i >= m_nMenuItemNum ){
00818         return;
00819     }
00820     nItemIndex = i;
00821 */
00822 //@@@ 2002.01.03 YAZAKI 極力メンバ関数を使用するように。
00823     nItemIndex = Find( (int)lpdis->itemID );
00824     pszItemStr = m_cmemMenuItemStrArr[nItemIndex].GetPtr( &nItemStrLen );
00825
00826 //  hdc = ::GetDC( m_hWndOwner );
00827     hdc = lpdis->hDC;
00828     hFontOld = (HFONT)::SelectObject( hdc, m_hFontMenu );
00829
00830
00831     /* アイテム矩形塗りつぶし */
00832 //  hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_MENU ) );
00833     hBrush = ::GetSysColorBrush( COLOR_MENU );
00834     ::FillRect( hdc, &lpdis->rcItem, hBrush );
00835 //  ::DeleteObject( hBrush );
00836
00837
00838     /* アイテムが選択されている */
00839     nBkModeOld = ::SetBkMode( hdc, TRANSPARENT );
00840     if( lpdis->itemState & ODS_SELECTED ){
00841 //      hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_HIGHLIGHT/*COLOR_3DHIGHLIGHT*/ ) );
00842         hBrush = ::GetSysColorBrush( COLOR_HIGHLIGHT );
00843         rc1 = lpdis->rcItem;
00844         if( -1 != m_nMenuItemBitmapIdxArr[nItemIndex] || lpdis->itemState & ODS_CHECKED ){
00845             rc1.left += (nIndentLeft - 2);
00846         }
00847         /* 選択ハイライト矩形 */
00848         ::FillRect( hdc, &rc1, hBrush );
00849 //      ::DeleteObject( hBrush );
00850
00851         /* アイテムが使用不可 */
00852         if( lpdis->itemState & ODS_DISABLED ){
00853             ::SetTextColor( hdc, ::GetSysColor( COLOR_MENU/*COLOR_3DSHADOW*/ ) );
00854         }else{
00855             ::SetTextColor( hdc, ::GetSysColor( COLOR_HIGHLIGHTTEXT/*COLOR_MENUTEXT*//*COLOR_3DHIGHLIGHT*/ ) );
00856         }
00857     }else{
00858         /* アイテムが使用不可 */
00859         if( lpdis->itemState & ODS_DISABLED ){
00860             ::SetTextColor( hdc, ::GetSysColor( COLOR_3DSHADOW ) );
00861         }else{
00862             ::SetTextColor( hdc, ::GetSysColor( COLOR_MENUTEXT ) );
00863         }
00864     }
00865
00866 #ifdef _DEBUG
00867     char    szText[1024];
00868     MENUITEMINFO mii;
00869     // メニュー項目に関する情報を取得します。
00870     memset( &mii, 0, sizeof( MENUITEMINFO ) );
00871 #ifdef _WIN64
00872     mii.cbSize = sizeof( MENUITEMINFO ); // 64bit版ではサイズ違う
00873 #else
00874     mii.cbSize = SIZEOF_MENUITEMINFO; // Jan. 29, 2002 genta
00875 #endif
00876     mii.fMask = MIIM_CHECKMARKS | MIIM_DATA | MIIM_ID | MIIM_STATE | MIIM_SUBMENU | MIIM_TYPE;
00877     mii.fType = MFT_STRING;
00878     strcpy( szText, "--unknown--" );
00879     mii.dwTypeData = (LPTSTR)szText;
00880     mii.cch = sizeof( szText ) - 1;
00881     if( 0 != ::GetMenuItemInfo( (HMENU)lpdis->hwndItem, lpdis->itemID, FALSE, (MENUITEMINFO*)&mii )
00882      && NULL == mii.hSubMenu
00883      && 0 == /* CEditWnd */::FuncID_To_HelpContextID( lpdis->itemID )   /* 機能IDに対応するメニューコンテキスト番号を返す */
00884     ){
00885         //@@@ 2001.12.21 YAZAKI
00886         if( lpdis->itemState & ODS_SELECTED ){
00887             ::SetTextColor( hdc, ::GetSysColor( COLOR_HIGHLIGHTTEXT ) );    //  ハイライトカラー
00888         }
00889         else {
00890             ::SetTextColor( hdc, RGB( 0, 0, 255 ) );    //  青くしてる。
00891         }
00892 //      ::SetTextColor( hdc, RGB( 0, 0, 255 ) );
00893     }
00894 #endif
00895
00896     rcText = lpdis->rcItem;
00897     rcText.left += nIndentLeft;
00898     rcText.right -= nIndentRight;
00899
00900     /* TAB文字の前と後ろに分割してテキストを描画する */
00901     for( j = 0; j < nItemStrLen; ++j ){
00902         if( pszItemStr[j] == '\t' ){
00903             break;
00904         }
00905     }
00906     /* TAB文字の後ろ側のテキストを描画する */
00907     if( j < nItemStrLen ){
00908         /* アイテムが使用不可 */
00909         if( lpdis->itemState & ODS_DISABLED && !(lpdis->itemState & ODS_SELECTED)  ){
00910             COLORREF colOld = ::SetTextColor( hdc, ::GetSysColor( COLOR_3DHIGHLIGHT ) );
00911                 rcText.left++;
00912                 rcText.top++;
00913                 rcText.right++;
00914                 rcText.bottom++;
00915                 ::DrawText( hdc, &pszItemStr[j + 1], strlen( &pszItemStr[j + 1] ), &rcText, DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_RIGHT );
00916                 rcText.left--;
00917                 rcText.top--;
00918                 rcText.right--;
00919                 rcText.bottom--;
00920                 ::SetTextColor( hdc, colOld );
00921         }
00922         ::DrawText( hdc, &pszItemStr[j + 1], strlen( &pszItemStr[j + 1] ), &rcText, DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_RIGHT );
00923     }
00924     /* TAB文字の前側のテキストを描画する */
00925     /* アイテムが使用不可 */
00926     if( lpdis->itemState & ODS_DISABLED && !(lpdis->itemState & ODS_SELECTED)  ){
00927         COLORREF colOld = ::SetTextColor( hdc, ::GetSysColor( COLOR_3DHIGHLIGHT ) );
00928             rcText.left++;
00929             rcText.top++;
00930             rcText.right++;
00931             rcText.bottom++;
00932             ::DrawText( hdc, pszItemStr, j, &rcText, DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_LEFT );
00933             rcText.left--;
00934             rcText.top--;
00935             rcText.right--;
00936             rcText.bottom--;
00937             ::SetTextColor( hdc, colOld );
00938     }
00939     ::DrawText( hdc, pszItemStr, j, &rcText, DT_SINGLELINE | DT_VCENTER | DT_EXPANDTABS | DT_LEFT );
00940     ::SelectObject( hdc, hFontOld  );
00941     ::SetBkMode( hdc, nBkModeOld );
00942
00943     /* チェック状態なら凹んだ3D枠を描画する */
00944     if( lpdis->itemState & ODS_CHECKED ){
00945         /* アイコンを囲む枠 */
00946         CSplitBoxWnd::Draw3dRect(
00947             hdc, lpdis->rcItem.left + 1, lpdis->rcItem.top,
00948             2 + 16 + 2, lpdis->rcItem.bottom - lpdis->rcItem.top,
00949             ::GetSysColor( COLOR_3DSHADOW ),
00950             ::GetSysColor( COLOR_3DHILIGHT )
00951         );
00952         /* アイテムが選択されていない場合は3D枠の中を明るく塗りつぶす */
00953         if( lpdis->itemState & ODS_SELECTED ){
00954         }else{
00955 //          HBRUSH hbr = ::CreateSolidBrush( ::GetSysColor( COLOR_3DHILIGHT ) );
00956 //          HBRUSH hbr = ::CreateSolidBrush( ::GetSysColor( COLOR_3DLIGHT ) );
00957             HBRUSH hbr = ::GetSysColorBrush( COLOR_3DLIGHT );
00958             HBRUSH hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
00959             RECT rc;
00960             ::SetRect( &rc, lpdis->rcItem.left + 1 + 1, lpdis->rcItem.top + 1, lpdis->rcItem.left + 1 + 1 + 16 + 2, lpdis->rcItem.top + 1+ 15 + 2 );
00961             ::FillRect( hdc, &rc, hbr );
00962             ::SelectObject( hdc, hbrOld );
00963 //          ::DeleteObject( hbr );
00964         }
00965     }
00966
00967
00968     /* 機能の画像が存在するならメニューアイコン?を描画する */
00969     if( -1 != m_nMenuItemBitmapIdxArr[nItemIndex] ){
00970         /* 3D枠を描画する */
00971         /* アイテムが選択されている */
00972         if( lpdis->itemState & ODS_SELECTED ){
00973             /* アイテムが使用不可 */
00974             if( lpdis->itemState & ODS_DISABLED /*&& !(lpdis->itemState & ODS_SELECTED)*/  ){
00975             }else{
00976                 if( lpdis->itemState & ODS_CHECKED ){
00977                 }else{
00978                     /* アイコンを囲む枠 */
00979                     CSplitBoxWnd::Draw3dRect(
00980                         hdc, lpdis->rcItem.left + 1, lpdis->rcItem.top,
00981                         2 + 16 + 2, lpdis->rcItem.bottom - lpdis->rcItem.top,
00982                         ::GetSysColor( COLOR_3DHILIGHT ),
00983                         ::GetSysColor( COLOR_3DSHADOW )
00984                      );
00985                 }
00986             }
00987         }
00988
00989         /* アイテムが使用不可 */
00990         if( lpdis->itemState & ODS_DISABLED ){
00991             /* 淡色アイコン */
00992             // 2003.09.04 Moca SetTextColorする必要は無い
00993 //          COLORREF cOld;
00994 //          cOld = SetTextColor( hdc, GetSysColor(COLOR_3DSHADOW) );    //Oct. 24, 2000 これは標準ではRGB(128,128,128)と同じ
00995 //          cOld = SetTextColor( hdc, RGB(132,132,132) );   //Oct. 24, 2000 JEPRO もう少し薄くした
00996             m_pcIcons->Draw( m_nMenuItemBitmapIdxArr[nItemIndex],
00997                 hdc,    //  Target DC
00998                 lpdis->rcItem.left + 1, //  X
00999                 //@@@ 2002.1.29 YAZAKI Windowsの設定でメニューのフォントを大きくすると表示が崩れる問題に対処
01000                 //lpdis->rcItem.top + 1,        //  Y
01001                 lpdis->rcItem.top + GetSystemMetrics(SM_CYMENU)/2 - 8,  //  Y
01002                 ILD_MASK
01003             );
01004 //          SetTextColor( hdc, cOld );
01005
01006         }else{
01007 /*
01008             COLORREF colBk;
01009             if( lpdis->itemState & ODS_CHECKED && !( lpdis->itemState & ODS_SELECTED ) ){
01010                 colBk = ::GetSysColor( COLOR_3DLIGHT );
01011 //              colBk = ::GetSysColor( COLOR_3DHILIGHT );
01012             }else{
01013                 colBk = ::GetSysColor( COLOR_MENU );
01014             }
01015 */
01016             /* 通常のアイコン */
01017             m_pcIcons->Draw( m_nMenuItemBitmapIdxArr[nItemIndex],
01018                 hdc,    //  Target DC
01019                 lpdis->rcItem.left + 1 + 1, //  X
01020                 //@@@ 2002.1.29 YAZAKI Windowsの設定でメニューのフォントを大きくすると表示が崩れる問題に対処
01021                 lpdis->rcItem.top + GetSystemMetrics(SM_CYMENU)/2 - 8,  //  Y
01022                 //lpdis->rcItem.top + 1,        //  Y
01023                 ILD_NORMAL
01024             );
01025         }
01026
01027     }else{
01028         if( lpdis->itemState & ODS_CHECKED ){
01029             /* アイコンがないチェックマークの表示 */
01030             int nX, nY;
01031             nX = lpdis->rcItem.left + 1 + 8;
01032             nY = lpdis->rcItem.top + 8;
01033             ::MoveToEx( hdc, nX, nY, NULL );
01034             ::LineTo( hdc, nX + 1, nY + 1 );
01035             ::LineTo( hdc, nX + 4, nY - 2 );
01036
01037             nY++;
01038             ::MoveToEx( hdc, nX, nY, NULL );
01039             ::LineTo( hdc, nX + 1, nY + 1 );
01040             ::LineTo( hdc, nX + 4, nY - 2 );
01041
01042         }
01043     }
01044
01045     //  ::ReleaseDC( m_hWndOwner, hdc );
01046     return;
01047 }
01048
01049
01050 /* ツールバーボタンリストのアイテム描画
01051     @date 2005.08.09 aroka m_nMyButtonNum隠蔽のため追加
01052     @retval みつからなければ-1を返す。
01053 */
01054 int CMenuDrawer::FindIndexFromCommandId( int idCommand )
01055 {
01056     int nIndex = -1;
01057     for( int i = 1; i < m_nMyButtonNum; i++ ){
01058         if( m_tbMyButton[i].idCommand == idCommand ){
01059             nIndex = i;
01060             break;
01061         }
01062     }
01063
01064     return nIndex;
01065 }
01066
01067 int CMenuDrawer::Find( int nFuncID )
01068 {
01069     int i;
01070     for( i = 0; i < m_nMenuItemNum; ++i ){
01071         if( (int)nFuncID == m_nMenuItemFuncArr[i] ){
01072             break;
01073         }
01074     }
01075     if( i >= m_nMenuItemNum ){
01076         return -1;
01077     }else{
01078         return i;
01079     }
01080 }
01081
01082
01083 const char* CMenuDrawer::GetLabel( int nFuncID )
01084 {
01085     int i;
01086     if( -1 == ( i = Find( nFuncID ) ) ){
01087         return NULL;
01088     }
01089     return m_cmemMenuItemStrArr[i].GetPtr();
01090 }
01091
01092 char CMenuDrawer::GetAccelCharFromLabel( const char* pszLabel )
01093 {
01094     int i;
01095     for( i = 0; i + 1 < (int)strlen( pszLabel ); ++i ){
01096         if( '&' == pszLabel[i] ){
01097             if( '&' == pszLabel[i + 1]  ){
01098                 i++;
01099             }else{
01100                 return toupper( pszLabel[i + 1] );
01101             }
01102         }
01103     }
01104     return (char)0;
01105 }
01106
01107
01108
01109
01110
01112 LRESULT CMenuDrawer::OnMenuChar( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01113 {
01114     TCHAR               chUser;
01115     UINT                fuFlag;
01116     HMENU               hmenu;
01117 //  HMENU               hMenu;
01118     MENUITEMINFO        mii;
01119     int i;
01120     chUser = (TCHAR) LOWORD(wParam);    // character code
01121     fuFlag = (UINT) HIWORD(wParam);     // menu flag
01122     hmenu = (HMENU) lParam;             // handle to menu
01123 //  MYTRACE( "::GetMenuItemCount( %xh )==%d\n", hmenu, ::GetMenuItemCount( hmenu ) );
01124
01125     //  Oct. 27, 2000 genta
01126     if( 0 <= chUser && chUser < ' '){
01127         chUser += '@';
01128     }
01129     else {
01130         chUser = toupper( chUser );
01131     }
01132
01133     struct WorkData{
01134         int             idx;
01135         MENUITEMINFO    mii;
01136     };
01137
01138     WorkData vecAccel[100];
01139     int nAccelNum;
01140     int nAccelSel;
01141     nAccelNum = 0;
01142     nAccelSel = 99999;
01143     for( i = 0; i < ::GetMenuItemCount( hmenu ); i++ ){
01144         char    szText[1024];
01145         // メニュー項目に関する情報を取得します。
01146         memset( &mii, 0, sizeof( MENUITEMINFO ) );
01147 #ifdef _WIN64
01148     mii.cbSize = sizeof( MENUITEMINFO ); // 64bit版ではサイズ違う
01149 #else
01150         // Jan. 29, 2002 gentaWinNT4でアクセラレータが効かないのが直るはず
01151         mii.cbSize = SIZEOF_MENUITEMINFO;
01152 #endif
01153         mii.fMask = MIIM_CHECKMARKS | MIIM_DATA | MIIM_ID | MIIM_STATE | MIIM_SUBMENU | MIIM_TYPE;
01154         mii.fType = MFT_STRING;
01155         strcpy( szText, "--unknown--" );
01156         mii.dwTypeData = (LPTSTR)szText;
01157         mii.cch = sizeof( szText ) - 1;
01158         if( 0 == ::GetMenuItemInfo( hmenu, i, TRUE, (MENUITEMINFO*)&mii ) ){
01159             continue;
01160         }
01161         const char* pszLabel;
01162         if( NULL == ( pszLabel = GetLabel( mii.wID ) ) ){
01163             continue;
01164         }
01165         if( chUser == GetAccelCharFromLabel( pszLabel ) ){
01166             vecAccel[nAccelNum].idx = i;
01167             vecAccel[nAccelNum].mii = mii;
01168             if( /*-1 == nAccelSel ||*/ MFS_HILITE & mii.fState ){
01169                 nAccelSel = nAccelNum;
01170             }
01171             nAccelNum++;
01172         }
01173     }
01174 //  MYTRACE( "%d\n", (int)mapAccel.size() );
01175     if( 0 == nAccelNum ){
01176         return  MAKELONG( 0, MNC_IGNORE );
01177     }
01178     if( 1 == nAccelNum ){
01179         return  MAKELONG( vecAccel[0].idx, MNC_EXECUTE );
01180     }
01181 //  MYTRACE( "nAccelSel=%d nAccelNum=%d\n", nAccelSel, nAccelNum );
01182     if( nAccelSel + 1 >= nAccelNum ){
01183 //      MYTRACE( "vecAccel[0].idx=%d\n", vecAccel[0].idx );
01184         return  MAKELONG( vecAccel[0].idx, MNC_SELECT );
01185     }else{
01186 //      MYTRACE( "vecAccel[nAccelSel + 1].idx=%d\n", vecAccel[nAccelSel + 1].idx );
01187         return  MAKELONG( vecAccel[nAccelSel + 1].idx, MNC_SELECT );
01188     }
01189 }
01190
01191 //  Jul. 21, 2003 genta
01192 //  コメントアウトされていた部分を削除 (CImageListで再利用)
01193
01194
01195 /* TBBUTTON構造体にデータをセット */
01196 void CMenuDrawer::SetTBBUTTONVal(
01197     TBBUTTON*   ptb,
01198     int         iBitmap,
01199     int         idCommand,
01200     BYTE        fsState,
01201     BYTE        fsStyle,
01202     DWORD_PTR   dwData,
01203     INT_PTR     iString
01204 )
01205 {
01206     /*
01207 typedef struct _TBBUTTON {
01208     int iBitmap;    // ボタン イメージの 0 から始まるインデックス
01209     int idCommand;  // ボタンが押されたときに送られるコマンド
01210     BYTE fsState;   // ボタンの状態--以下を参照
01211     BYTE fsStyle;   // ボタン スタイル--以下を参照
01212     DWORD dwData;   // アプリケーション-定義された値
01213     int iString;    // ボタンのラベル文字列の 0 から始まるインデックス
01214 } TBBUTTON;
01215 */
01216
01217     ptb->iBitmap    = iBitmap;
01218     ptb->idCommand  = idCommand;
01219     ptb->fsState    = fsState;
01220     ptb->fsStyle    = fsStyle;
01221     ptb->dwData     = dwData;
01222     ptb->iString    = iString;
01223     return;
01224 }
01225
01226 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMenuDrawer.h

CMenuDrawer.h

メニュー管理＆表示 [詳細]

#include <windows.h>
#include "CShareData.h"
#include "CMemory.h"

CMenuDrawer.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMenuDrawer
メニュー表示＆管理 [詳細]

マクロ定義

#define | MAX_MENUITEMS 400
#define | TBSTYLE_COMBOBOX ((BYTE)0x40)
#define | TBSTYLE_DROPDOWN 0x0008
#define | TB_SETEXTENDEDSTYLE (WM_USER + 84)
#define | TBSTYLE_EX_DRAWDDARROWS 0x00000001

説明

メニュー管理＆表示

作者:
Norio Nakatani

CMenuDrawer.h で定義されています。

マクロ定義

#define MAX_MENUITEMS 400

CMenuDrawer.h の 30 行で定義されています。

参照元 CMenuDrawer::MyAppendMenu().

#define TB_SETEXTENDEDSTYLE (WM_USER + 84)

CMenuDrawer.h の 38 行で定義されています。

参照元 CEditWnd::CreateToolBar().

#define TBSTYLE_COMBOBOX ((BYTE)0x40)

CMenuDrawer.h の 33 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・CEditWnd::CreateToolBar().

#define TBSTYLE_DROPDOWN 0x0008

CMenuDrawer.h の 35 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・CEditWnd::CreateToolBar().

#define TBSTYLE_EX_DRAWDDARROWS 0x00000001

CMenuDrawer.h の 41 行で定義されています。

参照元 CEditWnd::CreateToolBar().

Sakura-Editorに対してSat Oct 27 02:21:06 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMenuDrawer.h ソースファイル

CMenuDrawer.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, genta
00009     Copyright (C) 2002, YAZAKI, MIK, aroka
00010     Copyright (C) 2003, MIK
00011     Copyright (C) 2005, aroka, genta
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 class CMenuDrawer;
00018
00019 #ifndef _CMENUDRAWER_H_
00020 #define _CMENUDRAWER_H_
00021
00022 #include <windows.h>
00023 #include "CShareData.h" // MAX_TOOLBARBUTTONS
00024 #include "CMemory.h"// 2002/2/10 aroka
00025 class CImageListMgr;// 2002/2/10 aroka
00026
00027 //#define MAX_MENUPOS   10
00028 //  Jul. 2, 2005 genta : マクロをたくさん登録すると上限を超えてしまうので
00029 //  初期値の300から増やす
00030 #define MAX_MENUITEMS   400
00031
00032 //ツールバーの拡張  //@@@ 2002.06.15 MIK
00033 #define TBSTYLE_COMBOBOX    ((BYTE)0x40)    //ツールバーにコンボボックス
00034 #ifndef TBSTYLE_DROPDOWN    //IE3以上
00035     #define TBSTYLE_DROPDOWN    0x0008
00036 #endif
00037 #ifndef TB_SETEXTENDEDSTYLE //IE4以上
00038     #define TB_SETEXTENDEDSTYLE     (WM_USER + 84)  // For TBSTYLE_EX_*
00039 #endif
00040 #ifndef TBSTYLE_EX_DRAWDDARROWS //IE4以上
00041     #define TBSTYLE_EX_DRAWDDARROWS 0x00000001
00042 #endif
00043
00044 /*-----------------------------------------------------------------------
00045 クラスの宣言
00046 -----------------------------------------------------------------------*/
00053 class SAKURA_CORE_API CMenuDrawer
00054 {
00055 public:
00056     /*
00057     ||  Constructors
00058     */
00059     CMenuDrawer();
00060     ~CMenuDrawer();
00061     void Create( HINSTANCE, HWND, CImageListMgr* );
00062
00063
00064     /*
00065     ||  Attributes & Operations
00066     */
00067     void ResetContents( void );
00068     //void MyAppendMenu( HMENU , int , int , const char*, BOOL = TRUE );    /* メニュー項目を追加 */
00069     void MyAppendMenu( HMENU , int , int , const char*, BOOL = TRUE, int = -1 );    /* メニュー項目を追加 */    //お気に入り    //@@@ 2003.04.08 MIK
00070     int MeasureItem( int, int* );   /* メニューアイテムの描画サイズを計算 */
00071     void DrawItem( DRAWITEMSTRUCT* );   /* メニューアイテム描画 */
00072     LRESULT OnMenuChar( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
00073     int FindIndexFromCommandId( int idCommand ); /* ツールバーIndexの取得 */// 20050809 aroka
00074     int GetIconId( int nIndex ){ return m_tbMyButton[nIndex].iBitmap; }
00075
00076     TBBUTTON getButton( int index ) const{ return m_tbMyButton[index]; } // 20050809 aroka
00077 private:
00078     int Find( int nFuncID );
00079     const char* GetLabel( int nFuncID );
00080     char GetAccelCharFromLabel( const char* pszLabel );
00081 //@@@ 2002.01.03 YAZAKI 不使用のため
00082 //  static void MyBitBlt( HDC drawdc, int nXDest, int nYDest, int nWidth,
00083 //                          int nHeight, HBITMAP bmp, int nXSrc, int nYSrc, COLORREF, COLORREF);
00084 //  void DitherBlt2( HDC drawdc, int nXDest, int nYDest, int nWidth,
00085 //                      int nHeight, HBITMAP bmp, int nXSrc, int nYSrc);
00086
00087
00088     DLLSHAREDATA*   m_pShareData;
00089
00090     HINSTANCE       m_hInstance;
00091     HWND            m_hWndOwner;
00092
00093     int             m_nMenuItemNum;
00094 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00095     TBBUTTON        m_tbMyButton[MAX_TOOLBARBUTTONS+1]; /* ツールバーのボタン +1はセパレータ */
00096     int             m_nMyButtonNum;
00097
00098     int             m_nMenuItemBitmapIdxArr[MAX_MENUITEMS];
00099     int             m_nMenuItemFuncArr[MAX_MENUITEMS];
00100     CMemory         m_cmemMenuItemStrArr[MAX_MENUITEMS];
00101     int             m_nMenuHeight;
00102     HFONT           m_hFontMenu;
00103     HFONT           m_hFontMenuUndelLine;
00104 //@@@ 2002.01.03 YAZAKI 不使用のため
00105 //  int             m_nMaxTab;
00106 //  int             m_nMaxTabLen;
00107
00108     //  Oct. 16, 2000 genta
00109     CImageListMgr   *m_pcIcons; //  Image List
00110
00111 protected:
00112     /*
00113     ||  実装ヘルパ関数
00114     */
00115     int GetData( void );    /* ダイアログデータの取得 */
00116
00117 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00118     void SetTBBUTTONVal( TBBUTTON*, int, int, BYTE, BYTE, DWORD_PTR, INT_PTR ); /* TBBUTTON構造体にデータをセット */
00119 };
00120
00121
00122
00124 #endif /* _CMENUDRAWER_H_ */
00125
00126
00127 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMigemo.cpp

CMigemo.cpp

C/Migemo インターフェース [詳細]

#include "stdafx.h"
#include <io.h>
#include "CMigemo.h"
#include "Csharedata.h"
#include "etc_uty.h"

CMigemo.cppのインクルード依存関係図

ソースコードを見る。

説明

C/Migemo インターフェース

作者:
isearch
日付:
2004.09.14 新規作成

CMigemo.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:07 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMigemo.cpp ソースファイル

CMigemo.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2004, isearch
00009     Copyright (C) 2007, ryoji
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015
00016 #include "stdafx.h"
00017 #include <io.h>
00018 #include "CMigemo.h"
00019 #include "Csharedata.h"
00020 #include "etc_uty.h"
00021 //-----------------------------------------
00022 //  DLL 初期化関数
00023 //-----------------------------------------
00024 CMigemo* CMigemo::_instance;
00025
00026 CMigemo* CMigemo::getInstance(){
00027     return _instance;
00028 }
00029
00030 CMigemo::CMigemo() {
00031     _instance = this;
00032 }
00033
00034
00035 int CMigemo::InitDll(void)
00036 {
00037     //  staticにしてはいけないらしい
00038
00039     const ImportTable table[] = {
00040         &m_migemo_open              ,"migemo_open"              ,
00041         &m_migemo_close             ,"migemo_close"             ,
00042         &m_migemo_query             ,"migemo_query"             ,
00043         &m_migemo_release           ,"migemo_release"           ,
00044         &m_migemo_set_operator      ,"migemo_set_operator"      ,
00045         &m_migemo_get_operator      ,"migemo_get_operator"      ,
00046         &m_migemo_setproc_char2int  ,"migemo_setproc_char2int"  ,
00047         &m_migemo_setproc_int2char  ,"migemo_setproc_int2char"  ,
00048         &m_migemo_load              ,"migemo_load"              ,
00049         &m_migemo_is_enable         ,"migemo_is_enable"         ,
00050         NULL, 0
00051     };
00052
00053     if( ! RegisterEntries(table) ){
00054             return 1;
00055     }
00056
00057     if( ! migemo_open(NULL) )
00058         return 1;
00059
00060     return 0;
00061 }
00062
00063 int CMigemo::DeInitDll(void)
00064 {
00065     migemo_close();
00066     return 0;
00067 }
00068
00069 const char* CMigemo::GetDllName(const char *)
00070 {
00071     char* szDll;
00072     static char szDllName[_MAX_PATH];
00073     szDll = CShareData::getInstance()->GetShareData()->m_Common.m_szMigemoDll;
00074
00075     if(strlen(szDll)==0){
00076         GetInidir( szDllName, _T("migemo.dll") );
00077         return ( _taccess( szDllName, 0 ) != -1 )? szDllName: _T("migemo.dll");
00078     }else{
00079         if(_IS_REL_PATH(szDll)){
00080             GetInidirOrExedir(szDllName , szDll);   // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00081             szDll = szDllName;
00082         }
00083         return szDll;
00084     }
00085     //return "migemo.dll";
00086 }
00087
00088 long CMigemo::migemo_open(char* dict)
00089 {
00090
00091     if (!IsAvailable())
00092         return 0;
00093
00094     m_migemo = (*m_migemo_open)(NULL);
00095
00096     if (m_migemo == NULL)
00097         return 0;
00098
00099     //if (!migemo_load(MIGEMO_DICTID_MIGEMO, path2))
00100     //  return 0;
00101
00102     return 1;
00103 }
00104 void CMigemo::migemo_close()
00105 {
00106     if (!IsAvailable() || (m_migemo == NULL))
00107         return;
00108
00109     (*m_migemo_close)(m_migemo);
00110
00111 }
00112 unsigned char* CMigemo::migemo_query(unsigned char* query)
00113 {
00114     if (!IsAvailable() || (m_migemo == NULL))
00115         return NULL;
00116
00117     return (*m_migemo_query)(m_migemo, query);
00118 }
00119 void CMigemo::migemo_release( unsigned char* string)
00120 {
00121     if (!IsAvailable() || (m_migemo == NULL))
00122         return;
00123
00124     (*m_migemo_release)(m_migemo, string);
00125
00126 }
00127 int CMigemo::migemo_set_operator(int index, unsigned char* op)
00128 {
00129     if (!IsAvailable() || (m_migemo == NULL))
00130         return 0;
00131
00132     return (*m_migemo_set_operator)(m_migemo, index, op);
00133
00134 }
00135 const unsigned char* CMigemo::migemo_get_operator(int index)
00136 {
00137     if (!IsAvailable() || (m_migemo == NULL))
00138         return NULL;
00139
00140     return (*m_migemo_get_operator)(m_migemo,index);
00141
00142 }
00143 void CMigemo::migemo_setproc_char2int(MIGEMO_PROC_CHAR2INT proc)
00144 {
00145     if (!IsAvailable() || (m_migemo == NULL))
00146         return ;
00147
00148     (*m_migemo_setproc_char2int)(m_migemo,proc);
00149 }
00150 void CMigemo::migemo_setproc_int2char(MIGEMO_PROC_INT2CHAR proc)
00151 {
00152     if (!IsAvailable() || (m_migemo == NULL))
00153         return;
00154
00155     (*m_migemo_setproc_int2char)(m_migemo,proc);
00156 }
00157 int CMigemo::migemo_load(int dict_id, char* dict_file)
00158 {
00159     if (!IsAvailable() || (m_migemo == NULL))
00160         return 0;
00161     return (*m_migemo_load)(m_migemo, dict_id, dict_file);
00162
00163 }
00164 int CMigemo::migemo_is_enable()
00165 {
00166     if (!IsAvailable() || (m_migemo == NULL))
00167         return 0;
00168
00169     return (*m_migemo_is_enable)(m_migemo);
00170 }
00171
00172 int CMigemo::migemo_load_all()
00173 {
00174     if( !migemo_is_enable()){
00175
00176         char* szDict = CShareData::getInstance()->GetShareData()->m_Common.m_szMigemoDict;
00177         char path[MAX_PATH];
00178         //char path2[MAX_PATH];
00179         char *ppath;
00180
00181         if (strlen(szDict) == 0){
00182             GetInidirOrExedir(path,_T("dict")); // 2007.05.20 ryoji 相対パスは設定ファイルからのパスを優先
00183
00184             //::GetModuleFileName(NULL,path,MAX_PATH);
00185             //::GetFullPathName(path,260,path2,&ppath);
00186             //strcpy(ppath, "dict\\");
00187         }else{
00188             if (_IS_REL_PATH(szDict)){
00189                 GetInidirOrExedir(path,szDict); // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00190             }else{
00191                 strcpy(path,szDict);
00192             }
00193         }
00194         ppath = &path[strlen(path)];
00195         *(ppath++) = '\\';
00196
00197         strcpy(ppath,"migemo-dict");
00198         migemo_load(MIGEMO_DICTID_MIGEMO,path);
00199         strcpy(ppath,"han2zen.dat");
00200         migemo_load(MIGEMO_DICTID_HAN2ZEN,path);
00201         strcpy(ppath,"hira2kata.dat");
00202         migemo_load(MIGEMO_DICTID_HIRA2KATA,path);
00203         strcpy(ppath,"roma2hira.dat");
00204         migemo_load(MIGEMO_DICTID_ROMA2HIRA,path);
00205     }
00206     return 1;
00207 }
00208
00209 CMigemo::~CMigemo()
00210 {
00211 }
00212
00213
00214 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMigemo.h

CMigemo.h

Migemo関連 [詳細]

#include "CDllHandler.h"

CMigemo.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMigemo

マクロ定義

#define | MIGEMO_VERSION "1.1"
#define | MIGEMO_DICTID_INVALID 0
#define | MIGEMO_DICTID_MIGEMO 1
#define | MIGEMO_DICTID_ROMA2HIRA 2
#define | MIGEMO_DICTID_HIRA2KATA 3
#define | MIGEMO_DICTID_HAN2ZEN 4
#define | MIGEMO_OPINDEX_OR 0
#define | MIGEMO_OPINDEX_NEST_IN 1
#define | MIGEMO_OPINDEX_NEST_OUT 2
#define | MIGEMO_OPINDEX_SELECT_IN 3
#define | MIGEMO_OPINDEX_SELECT_OUT 4
#define | MIGEMO_OPINDEX_NEWLINE 5

型定義

typedef int(* | MIGEMO_PROC_CHAR2INT )(unsigned char *, unsigned int *)
typedef int(* | MIGEMO_PROC_INT2CHAR )(unsigned int, unsigned char *)
typedef _migemo | migemo

説明

Migemo関連

C/Migemoアクセス関数

作者:
isearch
日付:
2004.09.14 新規作成

CMigemo.h で定義されています。

マクロ定義

#define MIGEMO_DICTID_HAN2ZEN 4

CMigemo.h の 27 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_DICTID_HIRA2KATA 3

CMigemo.h の 26 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_DICTID_INVALID 0

CMigemo.h の 23 行で定義されています。

#define MIGEMO_DICTID_MIGEMO 1

CMigemo.h の 24 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_DICTID_ROMA2HIRA 2

CMigemo.h の 25 行で定義されています。

参照元 CMigemo::migemo_load_all().

#define MIGEMO_OPINDEX_NEST_IN 1

CMigemo.h の 31 行で定義されています。

#define MIGEMO_OPINDEX_NEST_OUT 2

CMigemo.h の 32 行で定義されています。

#define MIGEMO_OPINDEX_NEWLINE 5

CMigemo.h の 35 行で定義されています。

#define MIGEMO_OPINDEX_OR 0

CMigemo.h の 30 行で定義されています。

#define MIGEMO_OPINDEX_SELECT_IN 3

CMigemo.h の 33 行で定義されています。

#define MIGEMO_OPINDEX_SELECT_OUT 4

CMigemo.h の 34 行で定義されています。

#define MIGEMO_VERSION "1.1"

CMigemo.h の 20 行で定義されています。

型定義

typedef struct _migemo migemo

Migemoオブジェクト。migemo_open()で作成され、migemo_closeで破棄される。

CMigemo.h の 44 行で定義されています。

typedef int(* MIGEMO_PROC_CHAR2INT)(unsigned char *, unsigned int *)

CMigemo.h の 38 行で定義されています。

typedef int(* MIGEMO_PROC_INT2CHAR)(unsigned int, unsigned char *)

CMigemo.h の 39 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:07 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMigemo.h ソースファイル

CMigemo.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 2004, isearch
00011     Copyright (C) 2005, aroka
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 #ifndef _SAKURA_MIGEMO_H_
00018 #define _SAKURA_MIGEMO_H_
00019
00020 #define MIGEMO_VERSION "1.1"
00021
00022 /* for migemo_load() */
00023 #define MIGEMO_DICTID_INVALID       0
00024 #define MIGEMO_DICTID_MIGEMO        1
00025 #define MIGEMO_DICTID_ROMA2HIRA     2
00026 #define MIGEMO_DICTID_HIRA2KATA     3
00027 #define MIGEMO_DICTID_HAN2ZEN       4
00028
00029 /* for migemo_set_operator()/migemo_get_operator().  see: rxgen.h */
00030 #define MIGEMO_OPINDEX_OR       0
00031 #define MIGEMO_OPINDEX_NEST_IN      1
00032 #define MIGEMO_OPINDEX_NEST_OUT     2
00033 #define MIGEMO_OPINDEX_SELECT_IN    3
00034 #define MIGEMO_OPINDEX_SELECT_OUT   4
00035 #define MIGEMO_OPINDEX_NEWLINE      5
00036
00037 /* see: rxgen.h */
00038 typedef int (*MIGEMO_PROC_CHAR2INT)(unsigned char*, unsigned int*);
00039 typedef int (*MIGEMO_PROC_INT2CHAR)(unsigned int, unsigned char*);
00040
00044 typedef struct _migemo migemo;
00045
00046
00047 #include "CDllHandler.h"
00048
00049 class SAKURA_CORE_API CMigemo : public CDllHandler {
00050
00051
00052 public:
00053     CMigemo() ;
00054     virtual ~CMigemo();
00055     static CMigemo* _instance;
00056     static CMigemo* getInstance();
00057
00058     //  Entry Point
00059 protected:
00060     //  Aug. 20, 2005 Aroka : 最適化オプションでデフォルトを__fastcallに変更しても
00061     //  影響を受けないようにする．
00062     typedef migemo* (__cdecl *Proc_migemo_open)(char* dict);
00063     typedef void (__cdecl *Proc_migemo_close)(migemo* object);
00064     typedef unsigned char* (__cdecl *Proc_migemo_query)(migemo* object, unsigned char* query);
00065     typedef void (__cdecl *Proc_migemo_release)(migemo* object, unsigned char* string);
00066     typedef int (__cdecl *Proc_migemo_set_operator)(migemo* object, int index, unsigned char* op);
00067     typedef const unsigned char* (__cdecl *Proc_migemo_get_operator)(migemo* object, int index);
00068     typedef void (__cdecl *Proc_migemo_setproc_char2int)(migemo* object, MIGEMO_PROC_CHAR2INT proc);
00069     typedef void (__cdecl *Proc_migemo_setproc_int2char)(migemo* object, MIGEMO_PROC_INT2CHAR proc);
00070     typedef int (__cdecl *Proc_migemo_load)(migemo* obj, int dict_id, char* dict_file);
00071     typedef int (__cdecl *Proc_migemo_is_enable)(migemo* obj);
00072
00073     Proc_migemo_open                  m_migemo_open                ;
00074     Proc_migemo_close                 m_migemo_close               ;
00075     Proc_migemo_query                 m_migemo_query               ;
00076     Proc_migemo_release               m_migemo_release             ;
00077     Proc_migemo_set_operator          m_migemo_set_operator        ;
00078     Proc_migemo_get_operator          m_migemo_get_operator        ;
00079     Proc_migemo_setproc_char2int      m_migemo_setproc_char2int    ;
00080     Proc_migemo_setproc_int2char      m_migemo_setproc_int2char    ;
00081     Proc_migemo_load                  m_migemo_load                ;
00082     Proc_migemo_is_enable             m_migemo_is_enable           ;
00083
00084     migemo* m_migemo;
00085
00086     const char* GetDllName(const char *);
00087     int InitDll(void);
00088     int DeInitDll(void);
00089
00090 public:
00091     long migemo_open(char* dict);
00092     void migemo_close();
00093     unsigned char* migemo_query(unsigned char* query);
00094     void migemo_release( unsigned char* string);
00095     int migemo_set_operator(int index, unsigned char* op);
00096     const unsigned char* migemo_get_operator(int index);
00097     void migemo_setproc_char2int(MIGEMO_PROC_CHAR2INT proc);
00098     void migemo_setproc_int2char(MIGEMO_PROC_INT2CHAR proc);
00099     int migemo_load(int dict_id, char* dict_file);
00100     int migemo_is_enable();
00101     int migemo_load_all();
00102
00103 };
00104
00105 #endif
00106
00107
00108 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRU.cpp

CMRU.cpp

MRUリストと呼ばれるリストを管理する [詳細]

#include "stdafx.h"
#include "CShareData.h"
#include "CMenuDrawer.h"
#include "global.h"
#include <stdio.h>
#include "CMRU.h"
#include "CRecent.h"
#include "etc_uty.h"
#include "my_icmp.h"

CMRU.cppのインクルード依存関係図

ソースコードを見る。

説明

MRUリストと呼ばれるリストを管理する

作者:
YAZAKI
日付:
2001/12/23 新規作成

CMRU.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRU.cpp ソースファイル

CMRU.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, MIK, YAZAKI
00010     Copyright (C) 2002, YAZAKI, Moca, genta
00011     Copyright (C) 2003, MIK
00012     Copyright (C) 2006, genta
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CShareData.h"
00020 #include "CMenuDrawer.h"    //  これでいいのか？
00021 #include "global.h"
00022 #include <stdio.h>
00023 #include "CMRU.h"
00024 #include "CRecent.h"    //履歴の管理    //@@@ 2003.04.08 MIK
00025 #include "etc_uty.h"
00026 #include "my_icmp.h" // 2002/11/30 Moca 追加
00027
00031 CMRU::CMRU()
00032 {
00033     //  初期化。
00034     m_pShareData = CShareData::getInstance()->GetShareData();
00035
00036     //履歴の管理    //@@@ 2003.04.08 MIK
00037     (void)m_cRecent.EasyCreate( RECENT_FOR_FILE );
00038 }
00039
00040 /*  デストラクタ    */
00041 CMRU::~CMRU()
00042 {
00043     m_cRecent.Terminate();
00044 }
00045
00054 HMENU CMRU::CreateMenu( CMenuDrawer* pCMenuDrawer )
00055 {
00056     HMENU   hMenuPopUp;
00057     char    szFile2[_MAX_PATH * 2]; //  全部&でも問題ないように。
00058     char    szMemu[300];            //  メニューキャプション
00059     int     i;
00060     bool    bFavorite;
00061     FileInfo    *p;
00062
00063     CShareData::getInstance()->TransformFileName_MakeCache();
00064
00065     //  空メニューを作る
00066     hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
00067     for( i = 0; i < m_cRecent.GetItemCount(); ++i )
00068     {
00069         //  「共通設定」→「全般」→「ファイルの履歴MAX」を反映
00070         if ( i >= m_cRecent.GetViewCount() ) break;
00071
00072         /* MRUリストの中にある開かれていないファイル */
00073
00074         p = (FileInfo*)m_cRecent.GetItem( i );
00075
00076         CShareData::getInstance()->GetTransformFileNameFast( p->m_szPath, szMemu, _MAX_PATH );
00077         //  &を&&に置換。
00078         //  Jan. 19, 2002 genta
00079         dupamp( szMemu, szFile2 );
00080
00081         bFavorite = m_cRecent.IsFavorite( i );
00082         //  j >= 10 + 26 の時の考慮を省いた(に近い)がファイルの履歴MAXを36個にしてあるので事実上OKでしょう
00083         wsprintf( szMemu, "&%c %s%s",
00084             (i < 10) ? ('0' + i) : ('A' + i - 10),
00085             (FALSE == m_pShareData->m_Common.m_bMenuIcon && bFavorite) ? "★ " : "",
00086             szFile2 );
00087
00088         //  ファイル名のみ必要。
00089         //  文字コード表記
00090         if( 0 <  p->m_nCharCode  &&
00091                  p->m_nCharCode  < CODE_CODEMAX ){
00092             strcat( szMemu, gm_pszCodeNameArr_3[ p->m_nCharCode ] );
00093         }
00094
00095         //  メニューに追加。
00096         pCMenuDrawer->MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, IDM_SELMRU + i, szMemu, TRUE,
00097             bFavorite ? F_FAVORITE : -1 );
00098     }
00099     return hMenuPopUp;
00100 }
00101
00102 BOOL CMRU::DestroyMenu( HMENU hMenuPopUp )
00103 {
00104     return ::DestroyMenu( hMenuPopUp );
00105 }
00106
00114 void CMRU::GetPathList( char** ppszMRU )
00115 {
00116     int i;
00117
00118     for( i = 0; i < m_cRecent.GetItemCount(); ++i )
00119     {
00120         //  「共通設定」→「全般」→「ファイルの履歴MAX」を反映
00121         if ( i >= m_cRecent.GetViewCount() ) break;
00122         ppszMRU[i] = (char*)m_cRecent.GetDataOfItem( i );
00123     }
00124     ppszMRU[i] = NULL;
00125 }
00126
00128 int CMRU::Length(void)
00129 {
00130     return m_cRecent.GetItemCount();
00131 }
00132
00136 void CMRU::ClearAll(void)
00137 {
00138     m_cRecent.DeleteAllItem();
00139 }
00140
00150 BOOL CMRU::GetFileInfo( int num, FileInfo* pfi )
00151 {
00152     FileInfo    *p;
00153
00154     p = (FileInfo*)m_cRecent.GetItem( num );
00155     if( NULL == p ) return FALSE;
00156
00157     *pfi = *p;
00158
00159     return TRUE;
00160 }
00161
00173 BOOL CMRU::GetFileInfo( const char* pszPath, FileInfo* pfi )
00174 {
00175     FileInfo    *p;
00176
00177     p = (FileInfo*)m_cRecent.GetItem( m_cRecent.FindItem( pszPath ) );
00178     if( NULL == p ) return FALSE;
00179
00180     *pfi = *p;
00181
00182     return TRUE;
00183 }
00184
00194 void CMRU::Add( FileInfo* pFileInfo )
00195 {
00196     //  ファイル名が無ければ無視
00197     if( NULL == pFileInfo
00198      || 0 == strlen( pFileInfo->m_szPath ) )
00199     {
00200         return;
00201     }
00202
00203     char    szDrive[_MAX_DRIVE];
00204     char    szDir[_MAX_DIR];
00205     char    szFolder[_MAX_PATH + 1];    //  ドライブ＋フォルダ
00206
00207     _splitpath( pFileInfo->m_szPath, szDrive, szDir, NULL, NULL );  //  ドライブとフォルダを取り出す。
00208
00209     //  Jan.  10, 2006 genta USBメモリはRemovable mediaと認識されるようなので，
00210     //  一応無効化する．
00211     //  リムーバブルなら非登録？
00212     //if (/* 「リムーバブルなら登録しない」オン && */ ! IsLocalDrive( szDrive ) ){
00213     //  return;
00214     //}
00215
00216     //  szFolder作成
00217     strcpy( szFolder, szDrive );
00218     strcat( szFolder, szDir );
00219     //  Folderを、CMRUFolderに登録
00220     CMRUFolder cMRUFolder;
00221     cMRUFolder.Add(szFolder);
00222
00223     m_cRecent.AppendItem( (char*)pFileInfo );
00224 }
00225
00226 #if 0
00227 // etc_uty.cppのIsLocalDrive()へ統合
00228
00242 bool CMRU::IsRemovableDrive( const char* pszDrive )
00243 {
00244     char    szDriveType[_MAX_DRIVE+1];  // "A:\"登録用
00245     long    lngRet;
00246     char    c;
00247
00248     c = pszDrive[0];
00249     if( c >= 'a' && c <= 'z' ){
00250         c = c - ('a' - 'A');
00251     }
00252     if( c >= 'A' && c <= 'Z' ){
00253         sprintf( szDriveType, "%c:\\", c );
00254         lngRet = GetDriveType( szDriveType );
00255         if( DRIVE_REMOVABLE == lngRet
00256          || DRIVE_CDROM     == lngRet){
00257             return true;
00258         }
00259     }
00260     return false;
00261 }
00262 #endif
00263 /*EOF*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRU.h

CMRU.h

MRUリストと呼ばれるリストを管理する [詳細]

#include <windows.h>
#include "CRecent.h"

CMRU.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMRU

列挙型

enum | MRU_maxdata { MAX_MRU = 36 }

説明

MRUリストと呼ばれるリストを管理する

作者:
YAZAKI
日付:
2001/12/23 新規作成

CMRU.h で定義されています。

列挙型

enum MRU_maxdata

列挙型の値:
MAX_MRU

CMRU.h の 44 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRU.h ソースファイル

CMRU.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, YAZAKI
00009     Copyright (C) 2000, jepro
00010     Copyright (C) 2002, YAZAKI, aroka
00011     Copyright (C) 2003, MIK
00012     Copyright (C) 2004, genta
00013
00014     This software is provided 'as-is', without any express or implied
00015     warranty. In no event will the authors be held liable for any damages
00016     arising from the use of this software.
00017
00018     Permission is granted to anyone to use this software for any purpose,
00019     including commercial applications, and to alter it and redistribute it
00020     freely, subject to the following restrictions:
00021
00022         1. The origin of this software must not be misrepresented;
00023            you must not claim that you wrote the original software.
00024            If you use this software in a product, an acknowledgment
00025            in the product documentation would be appreciated but is
00026            not required.
00027
00028         2. Altered source versions must be plainly marked as such,
00029            and must not be misrepresented as being the original software.
00030
00031         3. This notice may not be removed or altered from any source
00032            distribution.
00033 */
00034 class CMRU;
00035
00036 #ifndef _CMRU_H_
00037 #define _CMRU_H_
00038
00039 #include <windows.h>
00040 #include "CRecent.h"
00041 struct FileInfo; // 2004.04.11 genta パラメータ内のstructを削除するため．doxygen対策
00042
00043 /*  MRUリストに関係するmaxdata  */
00044 enum MRU_maxdata{
00045     MAX_MRU                     =  36,  //Sept. 27, 2000 JEPRO 0-9, A-Z で36個になるのでそれに合わせて30→36に変更
00046 };
00047
00048 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00049 class CMRU{
00050 public:
00051     //  コンストラクタ
00052     CMRU();
00053     ~CMRU();
00054
00055     //  メニューを取得する
00056     HMENU CreateMenu( class CMenuDrawer* pCMenuDrawer );    //  うーん。pCMenuDrawerが必要なくなるといいなぁ。
00057     BOOL DestroyMenu( HMENU hMenu );
00058
00059     //  ファイル名の一覧を教えて
00060     void GetPathList( char** ppszMRU ); //  ppszMRUにはファイル名をコピーしません。変更しないでね☆
00061
00062     //  アクセス関数
00063     int Length(void);   //  アイテムの数。
00064     void ClearAll(void);//  アイテムを削除～。
00065     BOOL GetFileInfo( int num, FileInfo* pfi );             //  番号で指定したFileInfo（情報をまるごと）
00066     BOOL GetFileInfo( const char* pszPath, FileInfo* pfi ); //  ファイル名で指定したFileInfo（情報をまるごと）
00067     void Add( FileInfo* pFileInfo );        //  *pFileInfoを追加する。
00068
00069 protected:
00070     //  共有メモリアクセス用。
00071     struct DLLSHAREDATA*    m_pShareData;       //  共有メモリを参照するよ。
00072     bool IsRemovableDrive( const char* pszDrive );
00073
00074 private:
00075     CRecent m_cRecent;  //履歴  //@@@ 2003.04.08 MIK
00076
00077 };
00078 #endif
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRUFolder.cpp

CMRUFolder.cpp

MRUリストと呼ばれるリストを管理する [詳細]

#include "stdafx.h"
#include "CShareData.h"
#include "CMenuDrawer.h"
#include "CMRUFolder.h"
#include "CRecent.h"
#include "etc_uty.h"
#include "my_icmp.h"

CMRUFolder.cppのインクルード依存関係図

ソースコードを見る。

説明

MRUリストと呼ばれるリストを管理する

作者:
YAZAKI
日付:
2001/12/23 新規作成

CMRUFolder.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRUFolder.cpp ソースファイル

CMRUFolder.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, YAZAKI
00010     Copyright (C) 2002, YAZAKI, Moca, genta
00011     Copyright (C) 2003, MIK
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 #include "stdafx.h"
00018 #include "CShareData.h"
00019 #include "CMenuDrawer.h"    //  これでいいのか？
00020 #include "CMRUFolder.h"
00021 #include "CRecent.h"    //履歴の管理    //@@@ 2003.04.08 MIK
00022 #include "etc_uty.h"
00023 #include "my_icmp.h" // 2002/11/30 Moca 追加
00024
00029 CMRUFolder::CMRUFolder()
00030 {
00031     //  初期化。
00032     m_pShareData = CShareData::getInstance()->GetShareData();
00033
00034     //履歴の管理    //@@@ 2003.04.08 MIK
00035     (void)m_cRecent.EasyCreate( RECENT_FOR_FOLDER );
00036 }
00037
00038 /*  デストラクタ    */
00039 CMRUFolder::~CMRUFolder()
00040 {
00041     m_cRecent.Terminate();
00042 }
00043
00044 HMENU CMRUFolder::CreateMenu( CMenuDrawer* pCMenuDrawer )
00045 {
00046     HMENU   hMenuPopUp;
00047     char    szFolder2[_MAX_PATH * 2];   //  全部&でも問題ないように :-)
00048     char    szMemu[300];                //  メニューキャプション
00049     int     i;
00050     bool    bFavorite;
00051
00052     hMenuPopUp = ::CreatePopupMenu();   // Jan. 29, 2002 genta
00053     CShareData::getInstance()->TransformFileName_MakeCache();
00054     for( i = 0; i < m_cRecent.GetItemCount(); ++i )
00055     {
00056         //  「共通設定」→「全般」→「ファイルの履歴MAX」を反映
00057         if ( i >= m_cRecent.GetViewCount() ) break;
00058
00059         CShareData::getInstance()->GetTransformFileNameFast( m_cRecent.GetDataOfItem( i ), szMemu, _MAX_PATH );
00060         //  &を&&に置換。
00061         //  Jan. 19, 2002 genta
00062         dupamp( szMemu, szFolder2 );
00063
00064         bFavorite = m_cRecent.IsFavorite( i );
00065         //  j >= 10 + 26 の時の考慮を省いた(に近い)がフォルダの履歴MAXを36個にしてあるので事実上OKでしょう
00066         wsprintf( szMemu, "&%c %s%s",
00067             (i < 10) ? ('0' + i) : ('A' + i - 10),
00068             (FALSE == m_pShareData->m_Common.m_bMenuIcon && bFavorite) ? "★ " : "",
00069             szFolder2 );
00070
00071         //  メニューに追加
00072         pCMenuDrawer->MyAppendMenu( hMenuPopUp, MF_BYPOSITION | MF_STRING, IDM_SELOPENFOLDER + i, szMemu, TRUE,
00073             bFavorite ? F_FAVORITE : -1 );
00074     }
00075     return hMenuPopUp;
00076 }
00077
00078 void CMRUFolder::GetPathList( char** ppszOPENFOLDER )
00079 {
00080     int i;
00081
00082     for( i = 0; i < m_cRecent.GetItemCount(); ++i )
00083     {
00084         //  「共通設定」→「全般」→「フォルダの履歴MAX」を反映
00085         if ( i >= m_cRecent.GetViewCount() ) break;
00086         ppszOPENFOLDER[i] = (char*)m_cRecent.GetDataOfItem( i );
00087     }
00088     ppszOPENFOLDER[i] = NULL;
00089 }
00090
00091 int CMRUFolder::Length()
00092 {
00093     return m_cRecent.GetItemCount();
00094 }
00095
00096 void CMRUFolder::ClearAll()
00097 {
00098     m_cRecent.DeleteAllItem();
00099 }
00100
00101 /*  @brief 開いたフォルダ リストへの登録
00102
00103     @date 2001.12.26  CShareData::AddOPENFOLDERListから移動した。（YAZAKI）
00104 */
00105 void CMRUFolder::Add( const char* pszFolder )
00106 {
00107     if( NULL == pszFolder
00108      || 0 == strlen( pszFolder ) )
00109     {   //  長さが0なら排除。
00110         return;
00111     }
00112
00113     (void)m_cRecent.AppendItem( pszFolder );
00114 }
00115
00116 const char* CMRUFolder::GetPath(int num)
00117 {
00118     return m_cRecent.GetDataOfItem( num );
00119 }
00120
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRUFolder.h

CMRUFolder.h

MRUリストと呼ばれるリストを管理する。フォルダ版。 [詳細]

#include <windows.h>
#include "CRecent.h"

CMRUFolder.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMRUFolder

列挙型

enum | MRUFolder_maxdata { MAX_OPENFOLDER = 36 }
BOOL,HMENU // 2002/2/10 aroka [詳細]

説明

MRUリストと呼ばれるリストを管理する。フォルダ版。

作者:
YAZAKI
日付:
2001/12/23 新規作成

CMRUFolder.h で定義されています。

列挙型

enum MRUFolder_maxdata

BOOL,HMENU // 2002/2/10 aroka

列挙型の値:
MAX_OPENFOLDER

CMRUFolder.h の 41 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMRUFolder.h ソースファイル

CMRUFolder.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, YAZAKI
00009     Copyright (C) 2000, jepro
00010     Copyright (C) 2002, YAZAKI, aroka
00011     Copyright (C) 2003, MIK
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00033 class CMRUFolder;
00034
00035 #ifndef _CMRUFOLDER_H_
00036 #define _CMRUFOLDER_H_
00037
00038 #include <windows.h>
00039 #include "CRecent.h"
00040
00041 enum MRUFolder_maxdata{
00042     MAX_OPENFOLDER              =  36,  //Sept. 27, 2000 JEPRO 0-9, A-Z で36個になるのでそれに合わせて30→36に変更
00043 };
00044
00045 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00046 class CMRUFolder {
00047 public:
00048     //  コンストラクタ
00049     CMRUFolder();
00050     ~CMRUFolder();
00051
00052     //  メニューを取得する
00053     HMENU CreateMenu( class CMenuDrawer* pCMenuDrawer );    //  うーん。pCMenuDrawerが必要なくなるといいなぁ。
00054     BOOL DestroyMenu( HMENU hMenu );
00055
00056     //  フォルダ名の一覧を教えて
00057     void GetPathList( char** ppszMRU ); //  ppszMRUにはフォルダ名をコピーしません。変更しないでね☆
00058
00059     //  アクセス関数
00060     int Length();   //  アイテムの数。
00061     void ClearAll();                    //  アイテムを削除～。
00062     void Add( const char* pszFolder );  //  pszFolderを追加する。
00063     const char* GetPath(int num);
00064
00065 protected:
00066
00067     //  共有メモリアクセス用。
00068     struct DLLSHAREDATA*    m_pShareData;           //  共有メモリを参照するよ。
00069
00070 private:
00071     CRecent m_cRecent;  //履歴  //@@@ 2003.04.08 MIK
00072 };
00073
00074 #endif
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMutex.h

CMutex.h

Mutex管理 [詳細]

#include <windows.h>

CMutex.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CMutex
class | LockGuard< EXCLUSIVE_OBJECT >

説明

Mutex管理

作者:
ryoji
日付:
2007.07.05

CMutex.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CMutex.h ソースファイル

CMutex.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2007, ryoji, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef _CMUTEX_H_
00032 #define _CMUTEX_H_
00033
00034 #include <windows.h>
00035
00039 class CMutex
00040 {
00041 public:
00042     CMutex( BOOL bInitialOwner, LPCTSTR pszName, LPSECURITY_ATTRIBUTES psa = NULL )
00043     {
00044         m_hObj = ::CreateMutex( psa, bInitialOwner, pszName );
00045     }
00046     ~CMutex()
00047     {
00048         if( NULL != m_hObj )
00049         {
00050             ::CloseHandle( m_hObj );
00051             m_hObj = NULL;
00052         }
00053     }
00054     BOOL Lock( DWORD dwTimeout = INFINITE )
00055     {
00056         DWORD dwRet = ::WaitForSingleObject( m_hObj, dwTimeout );
00057         if( dwRet == WAIT_OBJECT_0 || dwRet == WAIT_ABANDONED )
00058             return TRUE;
00059         else
00060             return FALSE;
00061     }
00062     BOOL Unlock()
00063     {
00064         return ::ReleaseMutex( m_hObj );
00065     }
00066     operator HANDLE() const { return m_hObj; }
00067 protected:
00068     HANDLE m_hObj;
00069 };
00070
00091 template<class EXCLUSIVE_OBJECT>
00092 class LockGuard {
00093     EXCLUSIVE_OBJECT& o_;
00094 public:
00095     LockGuard(EXCLUSIVE_OBJECT& ex) : o_( ex ){
00096         o_.Lock();
00097     }
00098     template<class PARAM>
00099     LockGuard(EXCLUSIVE_OBJECT& ex, PARAM p) : o_( ex ){
00100         o_.Lock(p);
00101     }
00102
00103     ~LockGuard() {
00104         o_.Unlock();
00105     }
00106 };
00107
00108 #endif /* _CMUTEX_H_ */
00109 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CNormalProcess.cpp

CNormalProcess.cpp

エディタプロセスクラス [詳細]

#include "stdafx.h"
#include "CNormalProcess.h"
#include "CCommandLine.h"
#include "CEditApp.h"
#include "CShareData.h"
#include "Debug.h"
#include "etc_uty.h"
#include "CEditWnd.h"
#include "mymessage.h"
#include "CDocLine.h"
#include <tchar.h>
#include "CRunningTimer.h"

CNormalProcess.cppのインクルード依存関係図

ソースコードを見る。

説明

エディタプロセスクラス

作者:
aroka
日付:
2002/01/07 Create

CNormalProcess.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CNormalProcess.cpp ソースファイル

CNormalProcess.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000-2001, genta
00010     Copyright (C) 2002, aroka CProcessより分離
00011     Copyright (C) 2002, YAZAKI, Moca, genta
00012     Copyright (C) 2003, genta, Moca, MIK
00013     Copyright (C) 2004, Moca, naoh
00014     Copyright (C) 2007, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019
00020
00021 #include "stdafx.h"
00022 #include "CNormalProcess.h"
00023 #include "CCommandLine.h"
00024 #include "CEditApp.h"
00025 #include "CShareData.h"
00026 #include "Debug.h"
00027 #include "etc_uty.h"
00028 #include "CEditWnd.h" // 2002/2/3 aroka
00029 #include "mymessage.h" // 2002/2/3 aroka
00030 #include "CDocLine.h" // 2003/03/28 MIK
00031 #include <tchar.h>
00032 #include "CRunningTimer.h"
00033
00034
00047 bool CNormalProcess::Initialize()
00048 {
00049     MY_RUNNINGTIMER( cRunningTimer, "NormalProcess::Init" );
00050
00051     HANDLE          hMutex;
00052     HWND            hWnd;
00053
00054     /* プロセス初期化の目印 */
00055     hMutex = GetInitializeMutex();  // 2002/2/8 aroka 込み入っていたので分離
00056     if( NULL == hMutex ){
00057         return false;
00058     }
00059
00060     if ( CProcess::Initialize() == false ){
00061         return false;
00062     }
00063
00064     /* コマンドラインオプション */
00065     bool            bReadOnly;
00066     bool            bDebugMode;
00067     bool            bGrepMode;
00068     bool            bGrepDlg;
00069     int             nGroup; // 2007.06.26 ryoji
00070     GrepInfo        gi;
00071     FileInfo        fi;
00072
00073     /* コマンドラインで受け取ったファイルが開かれている場合は */
00074     /* その編集ウィンドウをアクティブにする */
00075     CCommandLine::Instance()->GetFileInfo(fi); // 2002/2/8 aroka ここに移動
00076     if( 0 < strlen( fi.m_szPath ) ){
00077         //  Oct. 27, 2000 genta
00078         //  MRUからカーソル位置を復元する操作はCEditDoc::FileReadで
00079         //  行われるのでここでは必要なし．
00080
00081         HWND hwndOwner;
00082         /* 指定ファイルが開かれているか調べる */
00083         // 2007.03.13 maru 文字コードが異なるときはワーニングを出すように
00084         if( FALSE != m_cShareData.IsPathOpened( fi.m_szPath, &hwndOwner, fi.m_nCharCode ) ){
00085             //  From Here Oct. 19, 2001 genta
00086             //  カーソル位置が引数に指定されていたら指定位置にジャンプ
00087             if( fi.m_nY >= 0 ){ //  行の指定があるか
00088                 POINT& pt = *(POINT*)CProcess::m_pShareData->m_szWork;
00089                 if( fi.m_nX < 0 ){
00090                     //  桁の指定が無い場合
00091                     ::SendMessage( hwndOwner, MYWM_GETCARETPOS, 0, 0 );
00092                 }
00093                 else {
00094                     pt.x = fi.m_nX;
00095                 }
00096                 pt.y = fi.m_nY;
00097                 ::SendMessage( hwndOwner, MYWM_SETCARETPOS, 0, 0 );
00098             }
00099             //  To Here Oct. 19, 2001 genta
00100             /* アクティブにする */
00101             ActivateFrameWindow( hwndOwner );
00102             ::ReleaseMutex( hMutex );
00103             ::CloseHandle( hMutex );
00104             return false;
00105         }else{
00106
00107         }
00108     }
00109
00110     MY_TRACETIME( cRunningTimer, "CheckFile" );
00111 //複数プロセス版
00112     /* エディタウィンドウオブジェクトを作成 */
00113     m_pcEditWnd = new CEditWnd;
00114     MY_TRACETIME( cRunningTimer, "CEditWnd Created" );
00115
00116     /* コマンドラインの解析 */   // 2002/2/8 aroka ここに移動
00117     bDebugMode = CCommandLine::Instance()->IsDebugMode();
00118     bGrepMode = CCommandLine::Instance()->IsGrepMode();
00119     bGrepDlg = CCommandLine::Instance()->IsGrepDlg();
00120     nGroup = CCommandLine::Instance()->GetGroupId();    // 2007.06.26 ryoji
00121
00122     if( bDebugMode ){
00123         hWnd = m_pcEditWnd->Create( m_hInstance, m_pShareData->m_hwndTray, nGroup, NULL, 0, FALSE );
00124
00125 //  #ifdef _DEBUG/////////////////////////////////////////////
00126         /* デバッグモニタモードに設定 */
00127         m_pcEditWnd->SetDebugModeON();
00128         // 2004.09.20 naoh アウトプット用タイプ別設定
00129         m_pcEditWnd->m_cEditDoc.SetDocumentType( m_cShareData.GetDocumentTypeExt("output"), true );
00130 //  #endif////////////////////////////////////////////////////
00131     }else
00132     if( bGrepMode ){
00133         hWnd = m_pcEditWnd->Create( m_hInstance, m_pShareData->m_hwndTray, nGroup, NULL, 0, FALSE );
00134         // 2004.05.13 Moca CEditWnd::Create()に失敗した場合の考慮を追加
00135         if( NULL == hWnd ){
00136             goto end_of_func;
00137         }
00138         /* GREP */
00139         CCommandLine::Instance()->GetGrepInfo(gi); // 2002/2/8 aroka ここに移動
00140         if( false == bGrepDlg ){
00141             TCHAR szWork[MAX_PATH];
00142             /* ロングファイル名を取得する */
00143             if( FALSE != ::GetLongFileName( gi.cmGrepFolder.GetPtr(), szWork ) ){
00144                 gi.cmGrepFolder.SetData( szWork, strlen( szWork ) );
00145             }
00146             // 2003.06.23 Moca GREP実行前にMutexを開放
00147             //  こうしないとGrepが終わるまで新しいウィンドウを開けない
00148             m_hWnd = hWnd;
00149             ::ReleaseMutex( hMutex );
00150             ::CloseHandle( hMutex );
00151             m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].DoGrep(
00152                 &gi.cmGrepKey,
00153                 &gi.cmGrepFile,
00154                 &gi.cmGrepFolder,
00155                 gi.bGrepSubFolder,
00156                 gi.bGrepNoIgnoreCase,
00157                 gi.bGrepRegularExp,
00158                 gi.nGrepCharSet,    //  2002/09/21 Moca
00159                 gi.bGrepOutputLine,
00160                 gi.bGrepWordOnly,   //  Jun. 26, 2001 genta
00161                 gi.nGrepOutputStyle
00162             );
00163             return true; // 2003.06.23 Moca
00164         }else{
00165             //-GREPDLGでダイアログを出す。　引数も反映（2002/03/24 YAZAKI）
00166             CShareData::getInstance()->AddToSearchKeyArr( gi.cmGrepKey.GetPtr() );
00167             CShareData::getInstance()->AddToGrepFileArr( gi.cmGrepFile.GetPtr() );
00168             CShareData::getInstance()->AddToGrepFolderArr( gi.cmGrepFolder.GetPtr() );
00169             m_pShareData->m_Common.m_bGrepSubFolder = gi.bGrepSubFolder;
00170             m_pShareData->m_Common.m_bLoHiCase = gi.bGrepNoIgnoreCase;
00171             m_pShareData->m_Common.m_bRegularExp = gi.bGrepRegularExp;
00172             m_pShareData->m_Common.m_nGrepCharSet = gi.nGrepCharSet;
00173             m_pShareData->m_Common.m_bGrepOutputLine = gi.bGrepOutputLine;
00174             m_pShareData->m_Common.m_bWordOnly = gi.bGrepWordOnly;
00175             m_pShareData->m_Common.m_nGrepOutputStyle = gi.nGrepOutputStyle;
00176             // 2003.06.23 Moca GREPダイアログ表示前にMutexを開放
00177             //  こうしないとGrepが終わるまで新しいウィンドウを開けない
00178             m_hWnd = hWnd;
00179             ::ReleaseMutex( hMutex );
00180             ::CloseHandle( hMutex );
00181
00182             //  Oct. 9, 2003 genta コマンドラインからGERPダイアログを表示させた場合に
00183             //  引数の設定がBOXに反映されない
00184             lstrcpy( m_pcEditWnd->m_cEditDoc.m_cDlgGrep.m_szText, gi.cmGrepKey.GetPtr() );      /* 検索文字列 */
00185             lstrcpy( m_pcEditWnd->m_cEditDoc.m_cDlgGrep.m_szFile, gi.cmGrepFile.GetPtr() );     /* 検索ファイル */
00186             lstrcpy( m_pcEditWnd->m_cEditDoc.m_cDlgGrep.m_szFolder, gi.cmGrepFolder.GetPtr() ); /* 検索フォルダ */
00187
00188
00189             // Feb. 23, 2003 Moca Owner windowが正しく指定されていなかった
00190             int nRet = m_pcEditWnd->m_cEditDoc.m_cDlgGrep.DoModal( m_hInstance, hWnd,  NULL);
00191             if( FALSE != nRet ){
00192                 m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].HandleCommand(F_GREP, TRUE, 0, 0, 0, 0);
00193             }
00194             return true; // 2003.06.23 Moca
00195         }
00196     }else{
00197         // 2004.05.13 Moca さらにif分の中から前に移動
00198         // ファイル名が与えられなくてもReadOnly指定を有効にするため．
00199         bReadOnly = CCommandLine::Instance()->IsReadOnly(); // 2002/2/8 aroka ここに移動
00200         if( 0 < strlen( fi.m_szPath ) ){
00201             //  Mar. 9, 2002 genta 文書タイプ指定
00202             hWnd = m_pcEditWnd->Create( m_hInstance, m_pShareData->m_hwndTray, nGroup,
00203                             fi.m_szPath, fi.m_nCharCode, bReadOnly/* 読み取り専用か */,
00204                             fi.m_szDocType[0] == '\0' ? -1 :
00205                                 m_cShareData.GetDocumentTypeExt( fi.m_szDocType )
00206                  );
00207             // 2004.05.13 Moca CEditWnd::Create()に失敗した場合の考慮を追加
00208             if( NULL == hWnd ){
00209                 goto end_of_func;
00210             }
00211             //  Nov. 6, 2000 genta
00212             //  キャレット位置の復元のため
00213             //  オプション指定がないときは画面移動を行わないようにする
00214             //  Oct. 19, 2001 genta
00215             //  未設定＝-1になるようにしたので，安全のため両者が指定されたときだけ
00216             //  移動するようにする． || → &&
00217             if( ( 0 <= fi.m_nViewTopLine && 0 <= fi.m_nViewLeftCol )
00218                 && fi.m_nViewTopLine < m_pcEditWnd->m_cEditDoc.m_cLayoutMgr.GetLineCount() ){
00219                 m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].m_nViewTopLine = fi.m_nViewTopLine;
00220                 m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].m_nViewLeftCol = fi.m_nViewLeftCol;
00221             }
00222
00223             //  オプション指定がないときはカーソル位置設定を行わないようにする
00224             //  Oct. 19, 2001 genta
00225             //  0も位置としては有効な値なので判定に含めなくてはならない
00226             if( 0 <= fi.m_nX || 0 <= fi.m_nY ){
00227                 /*
00228                   カーソル位置変換
00229                   物理位置(行頭からのバイト数、折り返し無し行位置)
00230                   →
00231                   レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00232                 */
00233                 int     nPosX;
00234                 int     nPosY;
00235                 m_pcEditWnd->m_cEditDoc.m_cLayoutMgr.CaretPos_Phys2Log(
00236                     fi.m_nX,
00237                     fi.m_nY,
00238                     &nPosX,
00239                     &nPosY
00240                 );
00241                 // 2004.04.03 Moca EOFだけの行で終わっていると、EOFの一つ上の行に移動してしまうバグ修正
00242                 // MoveCursorが補正するのである程度行わなくて良くなった
00243 //              if( nPosY < m_pcEditWnd->m_cEditDoc.m_cLayoutMgr.GetLineCount() )
00244                 {
00245                     // From Here Mar. 28, 2003 MIK
00246                     //改行の真ん中にカーソルが来ないように。
00247                     const CDocLine *pTmpDocLine = m_pcEditWnd->m_cEditDoc.m_cDocLineMgr.GetLineInfo( fi.m_nY ); // 2008.08.20 ryoji 改行単位の行番号を渡すように修正
00248                     if( pTmpDocLine ){
00249                         if( pTmpDocLine->GetLengthWithoutEOL() < fi.m_nX ) nPosX--;
00250                     }
00251                     // To Here Mar. 28, 2003 MIK
00252                     m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].MoveCursor( nPosX, nPosY, TRUE );
00253                     m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].m_nCaretPosX_Prev =
00254                         m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].m_nCaretPosX;
00255                 // 2004.04.03 Moca 削除
00256                 // }else{
00257                 //  int     i;
00258                 //  i = m_pcEditWnd->m_cEditDoc.m_cLayoutMgr.GetLineCount() - 1;
00259                 //  if( i < 0 ){
00260                 //      i = 0;
00261                 //  }
00262                 //  m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].MoveCursor( 0, i, TRUE );
00263                 //  m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].m_nCaretPosX_Prev = 0;
00264                 }
00265             }
00266             m_pcEditWnd->m_cEditDoc.m_cEditViewArr[0].RedrawAll();
00267         }else{
00268             // 2004.05.13 Moca ファイル名が与えられなくてもReadOnlyとタイプ指定を有効にする
00269             hWnd = m_pcEditWnd->Create( m_hInstance, m_pShareData->m_hwndTray, nGroup,
00270                                         NULL, fi.m_nCharCode, bReadOnly/* 読み取り専用か */,
00271                                         fi.m_szDocType[0] == '\0' ? -1 :
00272                                         m_cShareData.GetDocumentTypeExt( fi.m_szDocType )
00273                                     );
00274         }
00275     }
00276     MY_TRACETIME( cRunningTimer, "EditDoc->Create() End" );
00277
00278 end_of_func:
00279     m_hWnd = hWnd;
00280     ::ReleaseMutex( hMutex );
00281     ::CloseHandle( hMutex );
00282     return hWnd ? true : false;
00283 }
00284
00291 bool CNormalProcess::MainLoop()
00292 {
00293     if( NULL != m_pcEditWnd && NULL != m_hWnd ){
00294         m_pcEditWnd->MessageLoop(); /* メッセージループ */
00295         return true;
00296     }
00297     return false;
00298 }
00299
00307 void CNormalProcess::Terminate()
00308 {
00309 }
00310
00311
00312
00318 CNormalProcess::~CNormalProcess()
00319 {
00320     if( m_pcEditWnd ){
00321         delete m_pcEditWnd;
00322     }
00323 };
00324
00325
00335 HANDLE CNormalProcess::GetInitializeMutex() const
00336 {
00337     MY_RUNNINGTIMER( cRunningTimer, "NormalProcess::GetInitializeMutex" );
00338     HANDLE hMutex;
00339     hMutex = ::CreateMutex( NULL, TRUE, GSTR_MUTEX_SAKURA_INIT );
00340     if( NULL == hMutex ){
00341         ::MessageBeep( MB_ICONSTOP );
00342 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST,
00343             GSTR_APPNAME, _T("CreateMutex()失敗。\n終了します。") );
00344         return NULL;
00345     }
00346     if( ::GetLastError() == ERROR_ALREADY_EXISTS ){
00347         DWORD dwRet = ::WaitForSingleObject( hMutex, 15000 );   // 2002/2/8 aroka 少し長くした
00348         if( WAIT_TIMEOUT == dwRet ){// 別の誰かが起動中
00349 			::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00350                 _T("エディタまたはシステムがビジー状態です。\nしばらく待って開きなおしてください。") );
00351             ::CloseHandle( hMutex );
00352             return NULL;
00353         }
00354     }
00355     return hMutex;
00356 }
00357
00358 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CNormalProcess.h

CNormalProcess.h

エディタプロセスクラスヘッダファイル [詳細]

#include "global.h"
#include "CProcess.h"
#include "CMigemo.h"

CNormalProcess.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CNormalProcess
エディタプロセスクラス [詳細]

説明

エディタプロセスクラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CNormalProcess.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CNormalProcess.h ソースファイル

CNormalProcess.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, aroka 新規作成
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 #ifndef _CNORMALPROCESS_H_
00015 #define _CNORMALPROCESS_H_
00016
00017 #include "global.h"
00018 #include "CProcess.h"
00019 #include "CMigemo.h"
00020 class CEditWnd;
00021
00022 /*-----------------------------------------------------------------------
00023 クラスの宣言
00024 -----------------------------------------------------------------------*/
00030 class SAKURA_CORE_API CNormalProcess : public CProcess {
00031 public:
00032     CNormalProcess( HINSTANCE hInstance, LPSTR lpCmdLine ) :
00033         m_pcEditWnd( 0 ),
00034         CProcess( hInstance, lpCmdLine ){}
00035     virtual ~CNormalProcess(); // 2002/2/3 aroka
00036
00037     //migemo
00038     CMigemo m_cMigemo;
00039
00040 protected:
00041     CNormalProcess();
00042     virtual bool Initialize();
00043     virtual bool MainLoop();
00044     virtual void Terminate();
00045
00046     HANDLE GetInitializeMutex() const; // 2002/2/8 aroka
00047 private:
00048     CEditWnd*   m_pcEditWnd;
00049 };
00050
00051
00053 #endif /* _CNORMALPROCESS_H_ */
00054
00055 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpe.cpp

COpe.cpp

編集操作要素 [詳細]

#include "stdafx.h"
#include "COpe.h"
#include "debug.h"
#include "CMemory.h"

COpe.cppのインクルード依存関係図

ソースコードを見る。

説明

編集操作要素

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpe.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpe.cpp ソースファイル

COpe.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 #include "stdafx.h"
00015 #include "COpe.h"
00016 #include "debug.h"
00017 #include "CMemory.h"// 2002/2/10 aroka
00018
00019
00020 /* COpeクラス構築 */
00021 COpe::COpe()
00022 {
00023     m_nOpe = 0;                 /* 操作種別 */
00024 //  m_nCaretPosX_Before = 0;    /* 操作前のキャレット位置Ｘ */
00025 //  m_nCaretPosY_Before = 0;    /* 操作前のキャレット位置Ｙ */
00026 //  m_nCaretPosX_To = 0;        /* 操作前のキャレット位置Ｘ To */
00027 //  m_nCaretPosY_To = 0;        /* 操作前のキャレット位置Ｙ To */
00028 //  m_nCaretPosX_After = 0;     /* 操作後のキャレット位置Ｘ */
00029 //  m_nCaretPosY_After = 0;     /* 操作後のキャレット位置Ｙ */
00030
00031     m_nCaretPosX_PHY_To = 0;    /* 操作前のキャレット位置Ｘ To 改行単位行の行番号（０開始）*/
00032     m_nCaretPosY_PHY_To = 0;    /* 操作前のキャレット位置Ｙ To 改行単位行先頭からのバイト数（０開始）*/
00033     m_nCaretPosX_PHY_Before = -1;   /* カーソル位置 改行単位行先頭からのバイト数（０開始）*/
00034     m_nCaretPosY_PHY_Before = -1;   /* カーソル位置 改行単位行の行番号（０開始）*/
00035     m_nCaretPosX_PHY_After = -1;    /* カーソル位置 改行単位行先頭からのバイト数（０開始）*/
00036     m_nCaretPosY_PHY_After = -1;    /* カーソル位置 改行単位行の行番号（０開始）*/
00037 //  m_nOpePosX = 0;             /* 操作位置Ｘ */
00038 //  m_nOpePosY = 0;             /* 操作位置Ｙ */
00039     m_nDataLen = 0;             /* 操作に関連するデータのサイズ */
00040     m_pcmemData = NULL;         /* 操作に関連するデータ */
00041     return;
00042 }
00043
00044
00045
00046
00047 /* COpeクラス消滅 */
00048 COpe::~COpe()
00049 {
00050     if( NULL != m_pcmemData ){  /* 操作に関連するデータ */
00051         delete m_pcmemData;
00052         m_pcmemData = NULL;
00053     }
00054     return;
00055 }
00056
00057 /* 編集操作要素のダンプ */
00058 void COpe::DUMP( void )
00059 {
00060 #ifdef _DEBUG
00061     MYTRACE( "\t\tm_nOpe              = [%d]\n", m_nOpe               );
00062     MYTRACE( "\t\tm_nCaretPosX_PHY_Before  = [%d]\n", m_nCaretPosX_PHY_Before   );
00063     MYTRACE( "\t\tm_nCaretPosY_PHY_Before  = [%d]\n", m_nCaretPosY_PHY_Before   );
00064     MYTRACE( "\t\tm_nCaretPosX_PHY_After;  = [%d]\n", m_nCaretPosX_PHY_After   );
00065     MYTRACE( "\t\tm_nCaretPosY_PHY_After;  = [%d]\n", m_nCaretPosY_PHY_After   );
00066     MYTRACE( "\t\tm_nDataLen          = [%d]\n", m_nDataLen           );
00067     if( NULL == m_pcmemData ){
00068         MYTRACE( "\t\tm_pcmemData         = [NULL]\n" );
00069     }else{
00070         MYTRACE( "\t\tm_pcmemData         = [%s]\n", m_pcmemData->GetPtr() );
00071     }
00072 #endif
00073     return;
00074 }
00075
00076
00077 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpe.h

COpe.h

編集操作要素 [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class COpe
編集操作要素 [詳細]

説明

編集操作要素

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpe.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpe.h ソースファイル

COpe.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class COpe;
00015
00016 #ifndef _COPE_H_
00017 #define _COPE_H_
00018
00019 class CMemory;// 2002/2/10 aroka
00020
00027 class COpe {
00028     public:
00029         COpe();     /* COpeクラス構築 */
00030         ~COpe();    /* COpeクラス消滅 */
00031
00032         void DUMP( void );  /* 編集操作要素のダンプ */
00033
00034         int     m_nOpe;         /* 操作種別 */
00035
00036 //- 1999.12.22 メモリ食う
00037 //-     int     m_nCaretPosX_Before;    /* 操作前のキャレット位置Ｘ */
00038 //-     int     m_nCaretPosY_Before;    /* 操作前のキャレット位置Ｙ */
00039 //-     int     m_nCaretPosX_To;        /* 操作前のキャレット位置Ｘ To */
00040 //-     int     m_nCaretPosY_To;        /* 操作前のキャレット位置Ｙ To */
00041 //-     int     m_nCaretPosX_After;     /* 操作後のキャレット位置Ｘ */
00042 //-     int     m_nCaretPosY_After;     /* 操作後のキャレット位置Ｙ */
00043
00044         int     m_nCaretPosX_PHY_Before;    /* カーソル位置 改行単位行先頭からのバイト数（０開始） */
00045         int     m_nCaretPosY_PHY_Before;    /* カーソル位置 改行単位行の行番号（０開始） */
00046         int     m_nCaretPosX_PHY_To;        /* 操作前のキャレット位置Ｘ To 改行単位行先頭からのバイト数（０開始）*/
00047         int     m_nCaretPosY_PHY_To;        /* 操作前のキャレット位置Ｙ To 改行単位行の行番号（０開始）*/
00048         int     m_nCaretPosX_PHY_After;     /* カーソル位置 改行単位行先頭からのバイト数（０開始） */
00049         int     m_nCaretPosY_PHY_After;     /* カーソル位置 改行単位行の行番号（０開始） */
00050
00051
00052         int     m_nDataLen;                 /* 操作に関連するデータのサイズ */
00053         CMemory*    m_pcmemData;            /* 操作に関連するデータ */
00054
00055     public:
00056     private:
00057 };
00058
00059
00060
00062 #endif /* _COPE_H_ */
00063
00064
00065 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBlk.cpp

COpeBlk.cpp

編集操作要素ブロック [詳細]

#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include <malloc.h>
#include "COpeBlk.h"
#include "debug.h"

COpeBlk.cppのインクルード依存関係図

ソースコードを見る。

説明

編集操作要素ブロック

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpeBlk.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBlk.cpp ソースファイル

COpeBlk.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013 #include "stdafx.h"
00014 #include <windows.h>
00015 #include <stdlib.h>
00016 #include <malloc.h>
00017 #include "COpeBlk.h"
00018 #include "debug.h"
00019
00020
00021
00022 /* COpeBlkクラス構築 */
00023 COpeBlk::COpeBlk()
00024 {
00025     Init();
00026     return;
00027 }
00028
00029 void COpeBlk::Init( void )
00030 {
00031     m_nCOpeArrNum = 0;  /* 操作の数 */
00032     m_ppCOpeArr = NULL; /* 操作の配列 */
00033 }
00034
00035 void COpeBlk::Empty( void )
00036 {
00037     int     i;
00038     /* 操作の配列を削除する */
00039     if( 0 < m_nCOpeArrNum && NULL != m_ppCOpeArr ){
00040         for( i = 0; i < m_nCOpeArrNum; ++i ){
00041             if( NULL != m_ppCOpeArr[i] ){
00042                 delete m_ppCOpeArr[i];
00043                 m_ppCOpeArr[i] = NULL;
00044             }
00045         }
00046         free( m_ppCOpeArr );
00047         m_ppCOpeArr = NULL;
00048         m_nCOpeArrNum = 0;
00049     }
00050     return;
00051 }
00052
00053
00054
00055 /* COpeBlkクラス消滅 */
00056 COpeBlk::~COpeBlk()
00057 {
00058     Empty();
00059
00060 }
00061
00062
00063
00064
00065
00066 /* 操作の追加 */
00067 int COpeBlk::AppendOpe( COpe* pcOpe/*, CLayoutMgr* pCLayoutMgr*/ )
00068 {
00069     if( -1 == pcOpe->m_nCaretPosX_PHY_Before    /* カーソル位置 改行単位行先頭からのバイト数（０開始）*/
00070      || -1 == pcOpe->m_nCaretPosY_PHY_Before    /* カーソル位置 改行単位行の行番号（０開始）*/
00071      || -1 == pcOpe->m_nCaretPosX_PHY_After     /* カーソル位置 改行単位行先頭からのバイト数（０開始）*/
00072      || -1 == pcOpe->m_nCaretPosY_PHY_After     /* カーソル位置 改行単位行の行番号（０開始）*/
00073     ){
00074 //      MessageBox( 0, "COpeBlk::AppendOpe() error", "バグ", MB_OK );
00075         MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00076             "COpeBlk::AppendOpe() error.\n バグ\n pcOpe->m_nCaretPosX_PHY_Before = %d\npcOpe->m_nCaretPosY_PHY_Before = %d\npcOpe->m_nCaretPosX_PHY_After = %d\npcOpe->m_nCaretPosY_PHY_After = %d\n",
00077             pcOpe->m_nCaretPosX_PHY_Before,
00078             pcOpe->m_nCaretPosY_PHY_Before,
00079             pcOpe->m_nCaretPosX_PHY_After,
00080             pcOpe->m_nCaretPosY_PHY_After
00081         );
00082     }
00083 //  /*
00084 //    カーソル位置変換
00085 //    レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)
00086 //    →
00087 //    物理位置(行頭からのバイト数、折り返し無し行位置)
00088 //  */
00089 //  int     nX;
00090 //  int     nY;
00091 //  pCLayoutMgr->CaretPos_Log2Phys(
00092 //      pcOpe->m_nCaretPosX_Before,
00093 //      pcOpe->m_nCaretPosY_Before,
00094 //      &pcOpe->m_nCaretPosX_PHY_Before,
00095 //      &pcOpe->m_nCaretPosY_PHY_Before
00096 //  );
00097 //  pCLayoutMgr->CaretPos_Log2Phys(
00098 //      pcOpe->m_nCaretPosX_After,
00099 //      pcOpe->m_nCaretPosY_After,
00100 //      &pcOpe->m_nCaretPosX_PHY_After,
00101 //      &pcOpe->m_nCaretPosY_PHY_After
00102 //  );
00103
00104
00105     /* 配列のメモリサイズを調整 */
00106     if( 0 == m_nCOpeArrNum ){
00107         m_ppCOpeArr = (COpe**)malloc( sizeof( COpe* ) );
00108     }else{
00109         m_ppCOpeArr = (COpe**)realloc( (void*)m_ppCOpeArr,  sizeof( COpe* ) * (m_nCOpeArrNum + 1 ) );
00110     }
00111     if( NULL == m_ppCOpeArr ){
00112         MessageBox( 0, "COpeBlk::AppendOpe() error", "メモリ確保に失敗しました。\n非常に危険な状態です。", MB_OK );
00113         return FALSE;
00114     }
00115     m_ppCOpeArr[m_nCOpeArrNum] = pcOpe;
00116     m_nCOpeArrNum++;
00117     return TRUE;
00118 }
00119
00120
00121
00122
00123
00124 /* 操作を返す */
00125 COpe* COpeBlk::GetOpe( int nIndex )
00126 {
00127     if( m_nCOpeArrNum <= nIndex ){
00128         return NULL;
00129     }
00130     return m_ppCOpeArr[nIndex];
00131 }
00132
00133
00134 /* 編集操作要素ブロックのダンプ */
00135 void COpeBlk::DUMP( void )
00136 {
00137 #ifdef _DEBUG
00138     int i;
00139     for( i = 0; i < m_nCOpeArrNum; ++i ){
00140         MYTRACE( "\tCOpeBlk.m_ppCOpeArr[%d]----\n", i );
00141         m_ppCOpeArr[i]->DUMP();
00142     }
00143 #endif
00144     return;
00145 }
00146
00147
00148 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBlk.h

COpeBlk.h

編集操作要素ブロック [詳細]

#include "COpe.h"

COpeBlk.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class COpeBlk
編集操作要素ブロック [詳細]

説明

編集操作要素ブロック

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpeBlk.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBlk.h ソースファイル

COpeBlk.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class COpeBlk;
00015
00016 #ifndef _COPEBLK_H_
00017 #define _COPEBLK_H_
00018
00019 #include "COpe.h"
00020
00021
00022
00023
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00032 class COpeBlk {
00033     public:
00034         COpeBlk();  /* COpeBlkクラス構築 */
00035         ~COpeBlk(); /* COpeBlkクラス消滅 */
00036
00037         int GetNum( void ){ return m_nCOpeArrNum; };    /* 操作の数を返す */
00038 //      int AppendOpe( COpe*, CLayoutMgr* );    /* 操作の追加 */
00039         int AppendOpe( COpe* ); /* 操作の追加 */
00040         COpe* GetOpe( int );    /* 操作を返す */
00041
00042         void DUMP( void );  /* 編集操作要素ブロックのダンプ */
00043     private:
00044         void Init( void );
00045         void Empty( void );
00046
00047         /* データ */
00048         int     m_nCOpeArrNum;  /* 操作の数 */
00049         COpe**  m_ppCOpeArr;    /* 操作の配列 */
00050 };
00051
00052
00053
00055 #endif /* _COPEBLK_H_ */
00056
00057
00058 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBuf.cpp

COpeBuf.cpp

アンドゥ・リドゥバッファ [詳細]

#include "stdafx.h"
#include "COpeBuf.h"
#include "COpeBlk.h"
#include "debug.h"

COpeBuf.cppのインクルード依存関係図

ソースコードを見る。

説明

アンドゥ・リドゥバッファ

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpeBuf.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBuf.cpp ソースファイル

COpeBuf.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013 #include "stdafx.h"
00014 #include "COpeBuf.h"
00015 #include "COpeBlk.h"// 2002/2/10 aroka
00016 #include "debug.h"
00017
00018 /* COpeBufクラス構築 */
00019 COpeBuf::COpeBuf()
00020 {
00021     m_nCOpeBlkArrNum = 0;   /* 操作ブロックの数 */
00022     m_ppCOpeBlkArr = NULL;  /* 操作ブロックの配列 */
00023     m_nCurrentPointer = 0;  /* 現在位置 */
00024     m_nNoModifiedIndex = 0; /* 無変更な状態になった位置 */
00025
00026     return;
00027
00028 }
00029
00030
00031
00032
00033 /* COpeBufクラス消滅 */
00034 COpeBuf::~COpeBuf()
00035 {
00036     int     i;
00037     /* 操作ブロックの配列を削除する */
00038     if( 0 >= m_nCOpeBlkArrNum && NULL != m_ppCOpeBlkArr ){
00039         return;
00040     }
00041     for( i = 0; i < m_nCOpeBlkArrNum; ++i ){
00042         if( NULL != m_ppCOpeBlkArr[i] ){
00043             delete m_ppCOpeBlkArr[i];
00044             m_ppCOpeBlkArr[i] = NULL;
00045         }
00046     }
00047     free( m_ppCOpeBlkArr );
00048     m_ppCOpeBlkArr = NULL;
00049     m_nCOpeBlkArrNum = 0;
00050     return;
00051 }
00052
00053
00054
00055
00056
00057 /* 操作の追加 */
00058 int COpeBuf::AppendOpeBlk( COpeBlk* pcOpeBlk )
00059 {
00060     int i;
00061 //  pcOpeBlk->DUMP();
00062     /* 現在位置より後ろ（アンドゥ対象）がある場合は、消去 */
00063     if( m_nCurrentPointer < m_nCOpeBlkArrNum ){
00064         for( i = m_nCurrentPointer; i < m_nCOpeBlkArrNum; ++i ){
00065             if( NULL != m_ppCOpeBlkArr[i] ){
00066                 delete m_ppCOpeBlkArr[i];
00067                 m_ppCOpeBlkArr[i] = NULL;
00068             }
00069         }
00070         m_nCOpeBlkArrNum = m_nCurrentPointer;
00071         /* 配列の要素数がゼロになった場合は配列のメモリを解放 */
00072         if( 0 == m_nCOpeBlkArrNum ){
00073             free( m_ppCOpeBlkArr );
00074             m_ppCOpeBlkArr = NULL;
00075         }
00076     }
00077     /* 配列のメモリサイズを調整 */
00078     if( 0 == m_nCOpeBlkArrNum ){
00079         m_ppCOpeBlkArr = (COpeBlk**)malloc( sizeof( COpeBlk* ) );
00080     }else{
00081         m_ppCOpeBlkArr = (COpeBlk**)realloc( (void*)m_ppCOpeBlkArr,  sizeof( COpeBlk* ) * (m_nCOpeBlkArrNum + 1 ) );
00082     }
00083     if( NULL == m_ppCOpeBlkArr ){
00084         ::MessageBox( 0, "COpeBlk::AppendOpe() error", "メモリ確保に失敗しました。\n非常に危険な状態です。", MB_OK );
00085         return FALSE;
00086     }
00087     m_ppCOpeBlkArr[m_nCOpeBlkArrNum] = pcOpeBlk;
00088     m_nCOpeBlkArrNum++;
00089     m_nCurrentPointer++;
00090     return TRUE;
00091 }
00092
00093
00094
00095
00096
00097 /* Undo可能な状態か */
00098 int COpeBuf::IsEnableUndo( void )
00099 {
00100     if( 0 < m_nCOpeBlkArrNum && 0 < m_nCurrentPointer ){
00101         return TRUE;
00102     }else{
00103         return FALSE;
00104     }
00105 }
00106
00107
00108
00109
00110
00111 /* Redo可能な状態か */
00112 int COpeBuf::IsEnableRedo( void )
00113 {
00114     if( 0 < m_nCOpeBlkArrNum && m_nCurrentPointer < m_nCOpeBlkArrNum ){
00115         return TRUE;
00116     }else{
00117         return FALSE;
00118     }
00119 }
00120
00121
00122
00123
00124
00125 /* 現在のUndo対象の操作ブロックを返す */
00126 COpeBlk* COpeBuf::DoUndo( int* pbModified )
00127 {
00128     /* Undo可能な状態か */
00129     if( !IsEnableUndo() ){
00130         return FALSE;
00131     }
00132     m_nCurrentPointer--;
00133     if( m_nCurrentPointer == m_nNoModifiedIndex ){      /* 無変更な状態になった位置 */
00134         *pbModified = FALSE;
00135     }else{
00136         *pbModified = TRUE;
00137     }
00138     return m_ppCOpeBlkArr[m_nCurrentPointer];
00139 }
00140
00141
00142
00143
00144
00145 /* 現在のRedo対象の操作ブロックを返す */
00146 COpeBlk* COpeBuf::DoRedo( int* pbModified )
00147 {
00148     COpeBlk*    pcOpeBlk;
00149     /* Redo可能な状態か */
00150     if( !IsEnableRedo() ){
00151         return FALSE;
00152     }
00153     pcOpeBlk = m_ppCOpeBlkArr[m_nCurrentPointer];
00154     m_nCurrentPointer++;
00155     if( m_nCurrentPointer == m_nNoModifiedIndex ){      /* 無変更な状態になった位置 */
00156         *pbModified = FALSE;
00157     }else{
00158         *pbModified = TRUE;
00159     }
00160     return pcOpeBlk;
00161 }
00162
00163
00164
00165 /* 現在位置で無変更な状態になったことを通知 */
00166 void COpeBuf::SetNoModified( void )
00167 {
00168     m_nNoModifiedIndex = m_nCurrentPointer; /* 無変更な状態になった位置 */
00169     return;
00170 }
00171
00172
00173 /* アンドゥ・リドゥバッファのダンプ */
00174 void COpeBuf::DUMP( void )
00175 {
00176 #ifdef _DEBUG
00177     int i;
00178     MYTRACE( "COpeBuf.m_nCurrentPointer=[%d]----\n", m_nCurrentPointer );
00179     for( i = 0; i < m_nCOpeBlkArrNum; ++i ){
00180         MYTRACE( "COpeBuf.m_ppCOpeBlkArr[%d]----\n", i );
00181         m_ppCOpeBlkArr[i]->DUMP();
00182     }
00183     MYTRACE( "COpeBuf.m_nCurrentPointer=[%d]----\n", m_nCurrentPointer );
00184 #endif
00185     return;
00186 }
00187
00188
00189 /* 全要素のクリア */
00190 void COpeBuf::ClearAll( void )
00191 {
00192     int     i;
00193     /* 操作ブロックの配列を削除する */
00194     if( 0 < m_nCOpeBlkArrNum && NULL != m_ppCOpeBlkArr ){
00195         for( i = 0; i < m_nCOpeBlkArrNum; ++i ){
00196             if( NULL != m_ppCOpeBlkArr[i] ){
00197                 delete m_ppCOpeBlkArr[i];
00198                 m_ppCOpeBlkArr[i] = NULL;
00199             }
00200         }
00201         free( m_ppCOpeBlkArr );
00202         m_ppCOpeBlkArr = NULL;
00203         m_nCOpeBlkArrNum = 0;
00204     }
00205     m_nCurrentPointer = 0;  /* 現在位置 */
00206     m_nNoModifiedIndex = 0; /* 無変更な状態になった位置 */
00207     return;
00208 }
00209
00210
00211 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBuf.h

COpeBuf.h

アンドゥ・リドゥバッファ [詳細]

#include "global.h"

COpeBuf.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | COpeBuf
2002/2/10 aroka アンドゥ・リドゥバッファ [詳細]

列挙型

enum | enumOPECODE { OPE_INSERT = 1, OPE_DELETE = 2, OPE_MOVECARET = 3 }

説明

アンドゥ・リドゥバッファ

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

COpeBuf.h で定義されています。

列挙型

enum enumOPECODE

列挙型の値:
OPE_INSERT
OPE_DELETE
OPE_MOVECARET

COpeBuf.h の 20 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COpeBuf.h ソースファイル

COpeBuf.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class COpeBuf;
00015
00016 #ifndef _COPEBUF_H_
00017 #define _COPEBUF_H_
00018
00019 /* アンドゥバッファ用 操作コード */
00020 enum enumOPECODE {
00021     OPE_INSERT      = 1,
00022     OPE_DELETE      = 2,
00023     OPE_MOVECARET   = 3,
00024 };
00025
00026
00027 #include "global.h"
00028 class COpeBlk;
00029
00030
00031
00032
00033 /*-----------------------------------------------------------------------
00034 クラスの宣言
00035 -----------------------------------------------------------------------*/
00039 class SAKURA_CORE_API COpeBuf {
00040     public:
00041         COpeBuf();  /* COpeBufクラス構築 */
00042         ~COpeBuf(); /* COpeBufクラス消滅 */
00043         void ClearAll( void );  /* 全要素のクリア */
00044         int AppendOpeBlk( COpeBlk* );   /* 操作ブロックの追加 */
00045         int IsEnableUndo( void );   /* Undo可能な状態か */
00046         int IsEnableRedo( void );   /* Redo可能な状態か */
00047         COpeBlk* DoUndo( int* );    /* 現在のUndo対象の操作ブロックを返す */
00048         COpeBlk* DoRedo( int* );    /* 現在のRedo対象の操作ブロックを返す */
00049         void SetNoModified( void ); /* 現在位置で無変更な状態になったことを通知 */
00050
00051         void DUMP( void );  /* 編集操作要素ブロックのダンプ */
00052     private:
00053         int          m_nCOpeBlkArrNum;  /* 操作ブロックの数 */
00054         COpeBlk**   m_ppCOpeBlkArr; /* 操作ブロックの配列 */
00055         int         m_nCurrentPointer;  /* 現在位置 */
00056         int         m_nNoModifiedIndex; /* 無変更な状態になった位置 */
00057 };
00058
00059
00060
00062 #endif /* _COPEBUF_H_ */
00063
00064
00065 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COsVersionInfo.h

COsVersionInfo.h

COsVersionInfo [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class COsVersionInfo

説明

COsVersionInfo

OSVERSIONINFOをラッピング

作者:
YAZAKI
日付:
2002年3月3日

COsVersionInfo.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: COsVersionInfo.h ソースファイル

COsVersionInfo.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 2001, YAZAKI, shoji masami
00011     Copyright (C) 2002, YAZAKI, minfu
00012     Copyright (C) 2003, genta
00013     Copyright (C) 2005, ryoji
00014     Copyright (C) 2006, ryoji
00015     Copyright (C) 2007, ryoji
00016
00017     This software is provided 'as-is', without any express or implied
00018     warranty. In no event will the authors be held liable for any damages
00019     arising from the use of this software.
00020
00021     Permission is granted to anyone to use this software for any purpose,
00022     including commercial applications, and to alter it and redistribute it
00023     freely, subject to the following restrictions:
00024
00025         1. The origin of this software must not be misrepresented;
00026            you must not claim that you wrote the original software.
00027            If you use this software in a product, an acknowledgment
00028            in the product documentation would be appreciated but is
00029            not required.
00030
00031         2. Altered source versions must be plainly marked as such,
00032            and must not be misrepresented as being the original software.
00033
00034         3. This notice may not be removed or altered from any source
00035            distribution.
00036 */
00037
00038 #ifndef _COSVERSIONINFO_H_
00039 #define _COSVERSIONINFO_H_
00040
00041 class COsVersionInfo {
00042 public:
00043     COsVersionInfo(){
00044         memset( (void *)&m_cOsVersionInfo, 0, sizeof( m_cOsVersionInfo ) );
00045         m_cOsVersionInfo.dwOSVersionInfoSize = sizeof( m_cOsVersionInfo );
00046         m_bSuccess = ::GetVersionEx( &m_cOsVersionInfo );
00047     };
00048
00049     /* OsVersionが取得できたか？ */
00050     BOOL GetVersion(){
00051         return m_bSuccess;
00052     }
00053
00054     /* 使用しているOS（Windows）が、動作対象か確認する */
00055     BOOL OsIsEnableVersion(){
00056         return !( m_cOsVersionInfo.dwMajorVersion < 4 );
00057     };
00058
00059
00060     // From Here Jul. 5, 2001 shoji masami
00066     BOOL IsWin32NT(){
00067         return (m_cOsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT);
00068     }
00069
00070     // 2005.10.31 ryoji
00076     BOOL IsWin32Windows(){
00077         return (m_cOsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS);
00078     }
00079
00080     /*  ::WinHelp( hwnd, lpszHelp, HELP_COMMAND, (ULONG_PTR)"CONTENTS()" );
00081         が使用できないバージョンなら、TRUE
00082         使用できるバージョンなら、FALSE
00083     */
00084     BOOL HasWinHelpContentsProblem(){
00085         return ( IsWin32NT() && (m_cOsVersionInfo.dwMajorVersion <= 4));
00086     }
00087
00088     /*  再変換がOS標準で提供されていないか。
00089         提供されていないなら、TRUE。
00090         提供されているなら、FALSE。
00091
00092         Windows95 or WindowsNTなら、TRUE（提供されていない）
00093         それ以外のOSなら、FALSE（提供されている）
00094     */
00095     BOOL OsDoesNOTSupportReconvert(){
00096         return ((4 == m_cOsVersionInfo.dwMajorVersion) && ( 0 == m_cOsVersionInfo.dwMinorVersion ));
00097     }
00098 #if 0
00099     2002.04.11 YAZAKI カプセル化を守る。
00100     // 2002.04.08 minfu OSVERSIONINFO構造体へのポインタを返す
00101     POSVERSIONINFO GetOsVersionInfo(){
00102         return &m_cOsVersionInfo;
00103     }
00104 #endif
00105
00112     BOOL IsWinXP_or_later(){
00113         return ( m_cOsVersionInfo.dwMajorVersion >= 6 ||    // 2006.06.17 ryoji Ver 6.0, 7.0,...も含める
00114             (m_cOsVersionInfo.dwMajorVersion >= 5 && m_cOsVersionInfo.dwMinorVersion >= 1) );
00115     }
00116
00123     BOOL IsWin2000_or_later(){
00124         return ( IsWin32NT() && (5 <= m_cOsVersionInfo.dwMajorVersion) );
00125     }
00126
00133     BOOL IsWinMe(){
00134         return ( IsWin32Windows() && (4 == m_cOsVersionInfo.dwMajorVersion) && ( 90 == m_cOsVersionInfo.dwMinorVersion ) );
00135     }
00136
00143     BOOL IsWinVista_or_later(){
00144         return ( 6 <= m_cOsVersionInfo.dwMajorVersion );
00145     }
00146
00147 protected:
00148     BOOL m_bSuccess;
00149     OSVERSIONINFO m_cOsVersionInfo;
00150 };
00151
00152 #endif
00153
00154 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPA.cpp

CPPA.cpp

PPA Library Handler [詳細]

#include "stdafx.h"
#include "CPPA.h"
#include "CEditView.h"
#include "Funccode.h"
#include "debug.h"
#include "CMacro.h"
#include "CSMacroMgr.h"
#include "CShareData.h"
#include "etc_uty.h"
#include "CEditApp.h"
#include "CEditDoc.h"
#include "OleTypes.h"

CPPA.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | NEVER_USED_PARAM(p) ((void)p)
#define | omGet (0)
#define | omSet (1)

説明

PPA Library Handler

PPA.DLLを利用するためのインターフェース

作者:
YAZAKI
日付:
2002年1月26日

CPPA.cpp で定義されています。

マクロ定義

#define NEVER_USED_PARAM ( p ) ((void)p)

CPPA.cpp の 48 行で定義されています。

参照元 CPPA::stdIntFunc()・CPPA::stdProc()・CPPA::stdStrFunc()・CPPA::stdStrObj().

#define omGet (0)

CPPA.cpp の 52 行で定義されています。

参照元 CPPA::stdStrObj().

#define omSet (1)

CPPA.cpp の 53 行で定義されています。

参照元 CPPA::stdStrObj().

Sakura-Editorに対してSat Oct 27 02:21:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPA.cpp ソースファイル

CPPA.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 2001, YAZAKI
00011     Copyright (C) 2002, YAZAKI, aroka, genta, Moca
00012     Copyright (C) 2003, Moca, genta
00013
00014     This software is provided 'as-is', without any express or implied
00015     warranty. In no event will the authors be held liable for any damages
00016     arising from the use of this software.
00017
00018     Permission is granted to anyone to use this software for any purpose,
00019     including commercial applications, and to alter it and redistribute it
00020     freely, subject to the following restrictions:
00021
00022         1. The origin of this software must not be misrepresented;
00023            you must not claim that you wrote the original software.
00024            If you use this software in a product, an acknowledgment
00025            in the product documentation would be appreciated but is
00026            not required.
00027
00028         2. Altered source versions must be plainly marked as such,
00029            and must not be misrepresented as being the original software.
00030
00031         3. This notice may not be removed or altered from any source
00032            distribution.
00033 */
00034
00035 #include "stdafx.h"
00036 #include "CPPA.h"
00037 #include "CEditView.h"
00038 #include "Funccode.h"
00039 #include "debug.h"
00040 #include "CMacro.h"
00041 #include "CSMacroMgr.h"// 2002/2/10 aroka
00042 #include "CShareData.h"
00043 #include "etc_uty.h"
00044 #include "CEditApp.h"
00045 #include "CEditDoc.h"   //  2002/5/13 YAZAKI ヘッダ整理
00046 #include "OleTypes.h"
00047
00048 #define NEVER_USED_PARAM(p) ((void)p)
00049
00050
00051 // 2003.06.01 Moca
00052 #define omGet (0)
00053 #define omSet (1)
00054
00055 CMemory         CPPA::m_cMemRet;
00056 CMemory         CPPA::m_cMemDebug;
00057 CEditView*      CPPA::m_pcEditView = NULL;
00058 DLLSHAREDATA*   CPPA::m_pShareData = NULL;
00059 bool            CPPA::m_bError = false;
00060
00061
00062 CPPA::CPPA()
00063 {
00064 }
00065
00066 CPPA::~CPPA()
00067 {
00068     //  Apr. 15, 2002 genta cleanup処理追加
00069     if( IsAvailable()){
00070         DeinitDll();
00071     }
00072 }
00073
00074
00075 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00076 void CPPA::Execute(CEditView* pcEditView )
00077 {
00078     m_pcEditView = pcEditView;
00079     m_pShareData = CShareData::getInstance()->GetShareData();
00080     m_bError = false;           //  2003.06.01 Moca
00081     m_cMemDebug.SetDataSz("");  //  2003.06.01 Moca
00082     m_fnExecute();
00083 }
00084
00085 LPCTSTR CPPA::GetDllName( LPCTSTR str )
00086 {
00087     return _T("PPA.DLL");
00088 }
00089
00098 int CPPA::InitDll()
00099 {
00100     /* PPA.DLLが持っている関数を準備 */
00101
00102     //  Apr. 15, 2002 genta constを付けた
00103     //  アドレスの入れ場所はオブジェクトに依存するので
00104     //  static配列にはできない。
00105     const ImportTable table[] =
00106     {
00107         { &m_fnExecute,     "Execute" },
00108         { &m_fnSetDeclare,  "SetDeclare" },
00109         { &m_fnSetSource,   "SetSource" },
00110         { &m_fnSetDefProc,  "SetDefProc" },
00111         { &m_fnSetDefine,   "SetDefine" },
00112         { &m_fnSetIntFunc,  "SetIntFunc" },
00113         { &m_fnSetStrFunc,  "SetStrFunc" },
00114         { &m_fnSetProc,     "SetProc" },
00115         { &m_fnSetErrProc,  "SetErrProc" },
00116         { &m_fnAbort,       "ppaAbort" },
00117         { &m_fnGetVersion,  "GetVersion" },
00118         { &m_fnDeleteVar,   "DeleteVar" },
00119         { &m_fnGetArgInt,   "GetArgInt" },
00120         { &m_fnGetArgStr,   "GetArgStr" },
00121         { &m_fnGetArgBStr,  "GetArgBStr" },
00122         { &m_fnGetIntVar,   "GetIntVar" },
00123         { &m_fnGetStrVar,   "GetStrVar" },
00124         { &m_fnGetBStrVar,  "GetBStrVar" },
00125         { &m_fnSetIntVar,   "SetIntVar" },
00126         { &m_fnSetStrVar,   "SetStrVar" },
00127         { &m_fnAddIntObj,   "AddIntObj" },
00128         { &m_fnAddStrObj,   "AddStrObj" },
00129         { &m_fnAddIntVar,   "AddIntVar" },
00130         { &m_fnAddStrVar,   "AddStrVar" },
00131         { &m_fnSetIntObj,   "SetIntObj" },
00132         { &m_fnSetStrObj,   "SetStrObj" },
00133
00134 #if PPADLL_VER >= 120
00135         { &m_fnAddRealVar,  "AddRealVar" },
00136         { &m_fnSetRealObj,  "SetRealObj" },
00137         { &m_fnAddRealObj,  "AddRealObj" },
00138         { &m_fnGetRealVar,  "GetRealVar" },
00139         { &m_fnSetRealVar,  "SetRealVar" },
00140         { &m_fnSetRealFunc, "SetRealFunc" },
00141         { &m_fnGetArgReal,  "GetArgReal" },
00142 #endif
00143
00144 #if PPADLL_VER >= 123
00145         { &m_fnIsRunning, "IsRunning" },
00146         { &m_fnSetFinishProc, "SetFinishProc"}, // 2003.06.23 Moca
00147 #endif
00148
00149         { NULL, 0 }
00150     };
00151
00152     //  Apr. 15, 2002 genta
00153     //  CDllHandlerの共通関数化した
00154     if( ! RegisterEntries(table) )
00155         return 1;
00156
00157     SetIntFunc((void*)CPPA::stdIntFunc);    // 2003.02.24 Moca
00158     SetStrFunc((void*)CPPA::stdStrFunc);
00159     SetProc((void*)CPPA::stdProc);
00160
00161     // 2003.06.01 Moca エラーメッセージを追加
00162     SetErrProc((void*)CPPA::stdError);
00163     SetStrObj((void*)CPPA::stdStrObj);  // UserErrorMes用
00164 #if PPADLL_VER >= 123
00165     SetFinishProc((void*)CPPA::stdFinishProc);
00166 #endif
00167
00168     SetDefine( "sakura-editor" );   // 2003.06.01 Moca SAKURAエディタ用独自関数を準備
00169     AddStrObj( "UserErrorMes", "", FALSE, 2 ); // 2003.06.01 デバッグ用文字列変数を用意
00170
00171     int i;
00172
00173     //  Jun. 16, 2003 genta 一時作業エリア
00174     char buf[1024];
00175     // コマンドに置き換えられない関数 ＝ PPA無しでは使えない。。。
00176     for (i=0; CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_pszFuncName != NULL; i++) {
00177         //  2003.06.08 Moca メモリーリークの修正
00178         //  2003.06.16 genta バッファを外から与えるように
00179         //  関数登録用文字列を作成する
00180         GetDeclarations( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i], buf );
00181         SetDefProc( buf );
00182     }
00183
00184     // コマンドに置き換えられる関数 ＝ PPA無しでも使える。
00185     for (i=0; CSMacroMgr::m_MacroFuncInfoArr[i].m_pszFuncName != NULL; i++) {
00186         //  2003.06.08 Moca メモリーリークの修正
00187         //  2003.06.16 genta バッファを外から与えるように
00188         //  関数登録用文字列を作成する
00189         GetDeclarations( CSMacroMgr::m_MacroFuncInfoArr[i], buf );
00190         SetDefProc( buf );
00191     }
00192     return 0;
00193 }
00194
00208 char* CPPA::GetDeclarations( const MacroFuncInfo& cMacroFuncInfo, char* szBuffer )
00209 {
00210     char szType[20];            //  procedure/function用バッファ
00211     char szReturn[20];          //  戻り値型用バッファ
00212     if (cMacroFuncInfo.m_varResult == VT_EMPTY){
00213         strcpy( szType, "procedure" );
00214         szReturn[0] = '\0';
00215     }
00216     else {
00217         strcpy( szType, "function" );
00218         if (cMacroFuncInfo.m_varResult == VT_BSTR){
00219             strcpy( szReturn, ": string" );
00220         }
00221         else if ( cMacroFuncInfo.m_varResult == VT_I4 ){
00222             strcpy( szReturn, ": Integer" );
00223         }
00224         else {
00225             szReturn[0] = '\0';
00226         }
00227     }
00228
00229     char szArguments[4][20];    //  引数用バッファ
00230     int i;
00231     for (i=0; i<4; i++){
00232         if ( cMacroFuncInfo.m_varArguments[i] == VT_EMPTY ){
00233             break;
00234         }
00235         if ( cMacroFuncInfo.m_varArguments[i] == VT_BSTR ){
00236             strcpy( szArguments[i], "s0: string" );
00237             szArguments[i][1] = '0' + i;
00238         }
00239         else if ( cMacroFuncInfo.m_varArguments[i] == VT_I4 ){
00240             strcpy( szArguments[i], "i0: Integer" );
00241             szArguments[i][1] = '0' + i;
00242         }
00243         else {
00244             strcpy( szArguments[i], "u0: Unknown" );
00245         }
00246     }
00247     if ( i > 0 ){   //  引数があったとき
00248         int j;
00249         char szArgument[80];
00250         // 2002.12.06 Moca 原因不明だが，strcatがVC6Proでうまく動かなかったため，strcpyにしてみたら動いた
00251         strcpy( szArgument, szArguments[0] );
00252         for ( j=1; j<i; j++){
00253             strcat( szArgument, "; " );
00254             strcat( szArgument, szArguments[j] );
00255         }
00256         sprintf( szBuffer, "%s S_%s(%s)%s; index %d;",
00257             szType,
00258             cMacroFuncInfo.m_pszFuncName,
00259             szArgument,
00260             szReturn,
00261             cMacroFuncInfo.m_nFuncID
00262         );
00263     }
00264     else {
00265         sprintf( szBuffer, "%s S_%s%s; index %d;",
00266             szType,
00267             cMacroFuncInfo.m_pszFuncName,
00268             szReturn,
00269             cMacroFuncInfo.m_nFuncID
00270         );
00271     }
00272     //  Jun. 01, 2003 Moca / Jun. 16, 2003 genta
00273     return szBuffer;
00274 }
00275
00278 int CPPA::DeinitDll( void )
00279 {
00280     // Jun. 01, 2003 Moca m_pszDataを使わなくなったため，
00281     //  CSMacroMgr::m_MacroFuncInfoArr[i].m_pszDataの後始末を削除
00282
00283     return 0;
00284 }
00285
00286
00290 void __stdcall CPPA::stdStrObj(const char* ObjName, int Index, BYTE GS_Mode, int* Err_CD, char** Value)
00291 {
00292     NEVER_USED_PARAM(ObjName);
00293     *Err_CD = 0;
00294     switch(Index){
00295     case 2:
00296         switch(GS_Mode){
00297         case omGet:
00298 //          ::MessageBox( m_pcEditView->m_hWnd, m_cMemDebug.GetPtr(), "GetStrObj", MB_OK );
00299             *Value = m_cMemDebug.GetPtr();
00300             break;
00301         case omSet:
00302 //          ::MessageBox( m_pcEditView->m_hWnd, *Value, "SetStrObj", MB_OK );
00303             m_cMemDebug.SetDataSz(*Value);
00304             break;
00305         }
00306         break;
00307     default:
00308         *Err_CD = -1;
00309     }
00310 }
00311
00312
00326 void __stdcall CPPA::stdError( int Err_CD, const char* Err_Mes )
00327 {
00328     if( false != m_bError ){
00329         return;
00330     }
00331     m_bError = true; // 関数内で関数を呼ぶ場合等、2回表示されるのを防ぐ
00332
00333     char szMes[2048]; // 2048あれば足りるかと
00334     const char* pszErr;
00335     pszErr = szMes;
00336     if( 0 < Err_CD ){
00337         int i, FuncID;
00338         FuncID = Err_CD - 1;
00339         for( i = 0; CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_nFuncID != -1; i++ ){
00340             if( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_nFuncID == FuncID ){
00341                 break;
00342             }
00343         }
00344         if( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i].m_nFuncID != -1 ){
00345             char szFuncDec[1024];
00346             GetDeclarations( CSMacroMgr::m_MacroFuncInfoNotCommandArr[i], szFuncDec );
00347             wsprintf( szMes, "関数の実行エラー\n%s", szFuncDec );
00348         }else{
00349             wsprintf( szMes, "不明な関数の実行エラー(バグです)\nFunc_ID=%d", FuncID );
00350         }
00351     }else{
00352         switch( Err_CD ){
00353         case 0:
00354             if( 0 == lstrlen( Err_Mes ) ){
00355                 pszErr = "詳細不明のエラー";
00356             }else{
00357                 pszErr = Err_Mes;
00358             }
00359             break;
00360         default:
00361             wsprintf( szMes, "未定義のエラー\nError_CD=%d\n%s", Err_CD, Err_Mes );
00362         }
00363     }
00364     if( 0 == m_cMemDebug.GetLength() ){
00365         ::MessageBox( m_pcEditView->m_hWnd, pszErr, "PPA実行エラー", MB_OK );
00366     }else{
00367         char* p = new char [ lstrlen(pszErr) + m_cMemDebug.GetLength() + 2 ];
00368         strcpy( p, pszErr );
00369         strcat( p, "\n" );
00370         strcat( p, m_cMemDebug.GetPtr() );
00371         ::MessageBox( m_pcEditView->m_hWnd, p, "PPA実行エラー", MB_OK );
00372         delete [] p;
00373     }
00374 }
00375
00376
00377
00378 //----------------------------------------------------------------------
00379 void __stdcall CPPA::stdProc(
00380     const char* FuncName, const int Index,
00381     const char* Argument[], const int ArgSize, int* Err_CD)
00382 {
00383     NEVER_USED_PARAM(FuncName);
00384
00385     *Err_CD = 0;
00386     CMacro::HandleCommand( m_pcEditView, Index, Argument, ArgSize );
00387 }
00388
00389 //----------------------------------------------------------------------
00397 void __stdcall CPPA::stdIntFunc(
00398     const char* FuncName, const int Index,
00399     const char* Argument[], const int ArgSize, int* Err_CD,
00400     int* ResultValue)
00401 {
00402     NEVER_USED_PARAM(FuncName);
00403     VARIANT Ret;
00404     ::VariantInit(&Ret);
00405
00406     *ResultValue = 0;
00407     *Err_CD = 0;
00408     if( false != CallHandleFunction(Index, Argument, ArgSize, &Ret) ){
00409         switch( Ret.vt ){
00410         case VT_I4:
00411             *ResultValue = Ret.lVal;
00412             break;
00413         case VT_INT:
00414             *ResultValue = Ret.intVal;
00415             break;
00416         case VT_UINT:
00417             *ResultValue = Ret.uintVal;
00418             break;
00419         default:
00420             *Err_CD = -2; // 2003.06.01 Moca 値変更
00421         }
00422         ::VariantClear(&Ret);
00423         return;
00424     }
00425     *Err_CD = Index + 1; // 2003.06.01 Moca
00426     ::VariantClear(&Ret);
00427     return;
00428 }
00429
00430 //----------------------------------------------------------------------
00437 void __stdcall CPPA::stdStrFunc(
00438     const char* FuncName, const int Index,
00439     const char* Argument[], const int ArgSize, int* Err_CD,
00440     char** ResultValue)
00441 {
00442     NEVER_USED_PARAM(FuncName);
00443 //  2003.06.01 Moca スタティックメンバに変更
00444 //  static CMemory cMem; // ANSI文字列でなければならない
00445 //                      // これの管理するポインタをPPAに渡すのでstaticである必要がある。
00446     VARIANT Ret;
00447     ::VariantInit(&Ret);
00448     *Err_CD = 0;
00449     if( false != CallHandleFunction(Index, Argument, ArgSize, &Ret) ){
00450         if(VT_BSTR == Ret.vt){
00451             int len;
00452             char* buf;
00453             Wrap(&Ret.bstrVal)->Get(&buf,&len);
00454             m_cMemRet.SetData(buf,len); // Mar. 9, 2003 genta
00455             delete[] buf;
00456             *ResultValue = m_cMemRet.GetPtr();
00457             ::VariantClear(&Ret);
00458             return;
00459         }
00460     }
00461     ::VariantClear(&Ret);
00462     *Err_CD = Index + 1;
00463     *ResultValue = "";
00464     return;
00465 }
00466
00473 bool CPPA::CallHandleFunction(
00474     const int Index, const char* Arg[],
00475     int ArgSize, VARIANT* Result )
00476 {
00477     int i, ArgCnt;
00478     VARIANT vtArg[4];
00479     const MacroFuncInfo* mfi;
00480     bool Ret;
00481
00482     mfi = CSMacroMgr::GetFuncInfoByID(Index);
00483     for( i=0; i<4; i++ ){
00484         ::VariantInit( &vtArg[i] );
00485     }
00486     for(i=0, ArgCnt=0; i<4 && i<ArgSize; i++ ){
00487         if(VT_EMPTY == mfi->m_varArguments[i]){
00488             break;
00489         }
00490
00491         switch( mfi->m_varArguments[i] ){
00492         case VT_I4:
00493         {
00494             vtArg[i].vt = VT_I4;
00495             vtArg[i].lVal = atoi( Arg[i] );
00496             break;
00497         }
00498         case VT_BSTR:
00499         {
00500             SysString S(Arg[i],lstrlen(Arg[i]));
00501             Wrap(&vtArg[i])->Receive(S);
00502             break;
00503         }
00504         default:
00505             for( i=0; i<4; i++ ){
00506                 ::VariantClear( &vtArg[i] );
00507             }
00508             return false;
00509         }
00510         ArgCnt++;
00511     }
00512
00513     if(Index >= F_FUNCTION_FIRST)
00514     {
00515         Ret = CMacro::HandleFunction(m_pcEditView, Index, vtArg, ArgCnt, *Result);
00516         for( i=0; i<4; i++ ){
00517             ::VariantClear( &vtArg[i] );
00518         }
00519         return Ret;
00520     }else{
00521         for( i=0; i<4; i++ ){
00522             ::VariantClear( &vtArg[i] );
00523         }
00524         return false;
00525     }
00526 }
00527
00528
00529 #if PPADLL_VER >= 123
00530
00536 void __stdcall CPPA::stdFinishProc()
00537 {
00538     m_cMemRet.SetDataSz("");
00539     m_cMemDebug.SetDataSz("");
00540     m_pShareData = NULL;
00541     m_pcEditView = NULL;
00542     m_bError = false;
00543 }
00544
00545 #endif
00546
00547 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPA.h

CPPA.h

PPA Library Handler [詳細]

#include "CSMacroMgr.h"
#include "CDllHandler.h"
#include "stdio.h"

CPPA.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CPPA
PPA.DLL をサポートするクラス [詳細]

マクロ定義

#define | PPADLL_VER 123

説明

PPA Library Handler

PPA.DLLを利用するためのインターフェース

作者:
YAZAKI
日付:
2002年1月26日

CPPA.h で定義されています。

マクロ定義

#define PPADLL_VER 123

CPPA.h の 42 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPA.h ソースファイル

CPPA.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 2001, YAZAKI, genta
00011     Copyright (C) 2002, YAZAKI, Moca
00012     Copyright (C) 2003, genta, Moca
00013
00014     This software is provided 'as-is', without any express or implied
00015     warranty. In no event will the authors be held liable for any damages
00016     arising from the use of this software.
00017
00018     Permission is granted to anyone to use this software for any purpose,
00019     including commercial applications, and to alter it and redistribute it
00020     freely, subject to the following restrictions:
00021
00022         1. The origin of this software must not be misrepresented;
00023            you must not claim that you wrote the original software.
00024            If you use this software in a product, an acknowledgment
00025            in the product documentation would be appreciated but is
00026            not required.
00027
00028         2. Altered source versions must be plainly marked as such,
00029            and must not be misrepresented as being the original software.
00030
00031         3. This notice may not be removed or altered from any source
00032            distribution.
00033 */
00034
00035 #ifndef _DLL_CPPA_H_
00036 #define _DLL_CPPA_H_
00037
00038 #include "CSMacroMgr.h"
00039 #include "CDllHandler.h"
00040 #include "stdio.h"
00041
00042 #define PPADLL_VER 123
00043
00044
00052 class SAKURA_CORE_API CPPA : public CDllHandler {
00053 public:
00054     CPPA();
00055     virtual ~CPPA();
00056
00057     const char* GetVersion(){
00058         if ( IsAvailable() ){
00059             sprintf(m_szMsg, "PPA.DLL Version %d.%d", m_fnGetVersion() / 100, m_fnGetVersion() % 100);
00060             return m_szMsg;
00061         }
00062         return "";
00063     }
00064
00066     const char* GetLastMessage(void) const { return m_szMsg; }
00067
00068     //  Jun. 16, 2003 genta 引数追加
00069     static char* GetDeclarations( const MacroFuncInfo&, char* buf );
00070
00071 protected:
00072     //  Jul. 5, 2001 genta インターフェース変更に伴う引数追加
00073 public:
00074     virtual LPCTSTR GetDllName(LPCTSTR);
00075 protected:
00076     virtual int InitDll(void);
00077     virtual int DeinitDll(void);
00078
00079 private:
00080     //  DLL Interfaceの受け皿
00081     typedef void (WINAPI *PPA_Execute)();
00082     typedef void (WINAPI *PPA_SetSource)(const char*);
00083     typedef void (WINAPI *PPA_SetDeclare)(const char*);
00084     typedef void (WINAPI *PPA_SetDefProc)(const char*);
00085     typedef void (WINAPI *PPA_SetDefine)(const char*);
00086     typedef void (WINAPI *PPA_AddIntVar)(const char*, int, int);
00087     typedef void (WINAPI *PPA_AddStrVar)(const char*, const char*, int);
00088     typedef void (WINAPI *PPA_SetIntFunc)(void*);
00089     typedef void (WINAPI *PPA_SetStrFunc)(void*);
00090     typedef void (WINAPI *PPA_SetProc)(void*);
00091     typedef void (WINAPI *PPA_SetErrProc)(void*);
00092     typedef void (WINAPI *PPA_Abort)();
00093     typedef int  (WINAPI *PPA_GetVersion)();
00094     typedef void (WINAPI *PPA_DeleteVar)(const char*);
00095     typedef int  (WINAPI *PPA_GetArgInt)(int);
00096     typedef char*(WINAPI *PPA_GetArgStr)(int);
00097     typedef char*(WINAPI *PPA_GetArgBStr)(int);
00098     typedef void (WINAPI *PPA_SetStrObj)(void*);
00099     typedef void (WINAPI *PPA_SetIntObj)(void*);
00100     typedef void (WINAPI *PPA_AddIntObj)(const char*, int, BOOL, int);
00101     typedef void (WINAPI *PPA_AddStrObj)(const char*, const char*, BOOL, int);
00102     typedef int  (WINAPI *PPA_GetIntVar)(const char*);
00103     typedef char*(WINAPI *PPA_GetStrVar)(const char*);
00104     typedef char*(WINAPI *PPA_GetBStrVar)(const char*);
00105     typedef BOOL (WINAPI *PPA_SetIntVar)(const char*, int);
00106     typedef BOOL (WINAPI *PPA_SetStrVar)(const char*, const char*);
00107
00108     // 以下は PPA.DLL Version 1.20 で追加された関数 --
00109     #if PPADLL_VER >= 120
00110     typedef void   (WINAPI *PPA_AddRealVar)(const char*, double, BOOL);
00111     typedef void   (WINAPI *PPA_SetRealObj)(void*);
00112     typedef void   (WINAPI *PPA_AddRealObj)(const char*, double, BOOL, LONG);
00113     typedef double (WINAPI *PPA_GetRealVar)(const char*);
00114     typedef BOOL   (WINAPI *PPA_SetRealVar)(const char*, double);
00115     typedef void   (WINAPI *PPA_SetRealFunc)(void*);
00116     typedef DWORD  (WINAPI *PPA_GetArgReal)(int);
00117     #endif // PPADLL_VER >= 120
00118
00119     // 以下は PPA.DLL Version 1.23 で追加された関数 --
00120     #if PPADLL_VER >= 123
00121     typedef BYTE (WINAPI *PPA_IsRunning)();
00122     typedef void (WINAPI *PPA_SetFinishProc)(void*);    //  2003.06.01 Moca
00123     #endif // PPADLL_VER >= 123
00124
00125     PPA_Execute    m_fnExecute;
00126     PPA_SetSource  m_fnSetSource;
00127     PPA_SetDeclare m_fnSetDeclare;
00128     PPA_SetDefProc m_fnSetDefProc;
00129     PPA_SetDefine  m_fnSetDefine;
00130     PPA_AddIntVar  m_fnAddIntVar;
00131     PPA_AddStrVar  m_fnAddStrVar;
00132     PPA_SetIntFunc m_fnSetIntFunc;
00133     PPA_SetStrFunc m_fnSetStrFunc;
00134     PPA_SetProc    m_fnSetProc;
00135     PPA_SetErrProc m_fnSetErrProc;
00136     PPA_Abort      m_fnAbort;
00137     PPA_GetVersion m_fnGetVersion;
00138     PPA_DeleteVar  m_fnDeleteVar;
00139     PPA_GetArgInt  m_fnGetArgInt;
00140     PPA_GetArgStr  m_fnGetArgStr;
00141     PPA_GetArgBStr m_fnGetArgBStr;
00142     PPA_SetStrObj  m_fnSetStrObj;
00143     PPA_SetIntObj  m_fnSetIntObj;
00144     PPA_AddIntObj  m_fnAddIntObj;
00145     PPA_AddStrObj  m_fnAddStrObj;
00146     PPA_GetIntVar  m_fnGetIntVar;
00147     PPA_GetStrVar  m_fnGetStrVar;
00148     PPA_GetBStrVar m_fnGetBStrVar;
00149     PPA_SetIntVar  m_fnSetIntVar;
00150     PPA_SetStrVar  m_fnSetStrVar;
00151
00152 #if PPADLL_VER >= 120
00153     PPA_AddRealVar  m_fnAddRealVar;
00154     PPA_SetRealObj  m_fnSetRealObj;
00155     PPA_AddRealObj  m_fnAddRealObj;
00156     PPA_GetRealVar  m_fnGetRealVar;
00157     PPA_SetRealVar  m_fnSetRealVar;
00158     PPA_SetRealFunc m_fnSetRealFunc;
00159     PPA_GetArgReal  m_fnGetArgReal;
00160 #endif
00161
00162 #if PPADLL_VER >= 123
00163     PPA_IsRunning m_fnIsRunning;
00164     PPA_SetFinishProc m_fnSetFinishProc;    //  2003.06.01 Moca
00165 #endif
00166
00167 public:
00168     // exported
00169     void Execute(class CEditView* pcEditView );
00170     void SetSource(const char* ss)
00171         { m_fnSetSource(ss); }
00172     void SetDeclare(const char* ss)
00173         { m_fnSetDeclare(ss); }
00174     void SetDefProc(const char* ss)
00175         { m_fnSetDefProc(ss); }
00176     void SetDefine(const char* ss)
00177         { m_fnSetDefine(ss); }
00178     void AddIntVar(const char* lpszDef, int nVal, int nCnst)
00179         { m_fnAddIntVar(lpszDef, nVal, nCnst); }
00180     void AddStrVar(const char* lpszDef, const char* lpszVal, int nCnst)
00181         { m_fnAddStrVar(lpszDef, lpszVal, nCnst); }
00182     void SetIntFunc(void* proc)
00183         { m_fnSetIntFunc(proc); }
00184     void SetStrFunc(void* proc)
00185         { m_fnSetStrFunc(proc); }
00186     void SetProc(void* proc)
00187         { m_fnSetProc(proc); }
00188     void SetErrProc(void* proc)
00189         { m_fnSetErrProc(proc); }
00190     void Abort()
00191         { m_fnAbort(); }
00192 //  int  GetVersion()
00193 //      { return m_fnGetVersion(); }
00194     void DeleteVar(const char* ss)
00195         { m_fnDeleteVar(ss); }
00196     int  GetArgInt(int index)
00197         { return m_fnGetArgInt(index); }
00198     char* GetArgStr(int index)
00199         { return m_fnGetArgStr(index); }
00200     char* GetArgBStr(int index)
00201         { return m_fnGetArgBStr(index); }
00202     void SetStrObj(void* proc)
00203         { m_fnSetStrObj(proc); }
00204     void SetIntObj(void* proc)
00205         { m_fnSetIntObj(proc); }
00206     void AddIntObj(const char* ss, int def, BOOL read, int index)
00207         { m_fnAddIntObj(ss, def, read, index); }
00208     void AddStrObj(const char* ss, const char* def, BOOL read, int index)
00209         { m_fnAddStrObj(ss, def, read, index); }
00210     int  GetIntVar(const char* ss)
00211         { return m_fnGetIntVar(ss); }
00212     char* GetStrVar(const char* ss)
00213         { return m_fnGetStrVar(ss); }
00214     char* GetBStrVar(const char* ss)
00215         { return m_fnGetBStrVar(ss); }
00216     BOOL SetIntVar(const char* ss, int val)
00217         { return m_fnSetIntVar(ss, val); }
00218     BOOL SetStrVar(const char* ss, const char* val)
00219         { return m_fnSetStrVar(ss, val); }
00220
00221 #if PPADLL_VER >= 120
00222     void AddRealVar(const char* ss, double val, BOOL cnst)
00223         { m_fnAddRealVar(ss, val, cnst); }
00224     void SetRealObj(void* proc)
00225         { m_fnSetRealObj(proc); }
00226     void AddRealObj(const char* ss, double val, BOOL read, LONG index)
00227         { m_fnAddRealObj(ss, val, read, index); }
00228     double GetRealVar(const char* ss)
00229         { return m_fnGetRealVar(ss); }
00230     BOOL SetRealVar(const char* ss, double val)
00231         { return m_fnSetRealVar(ss, val); }
00232     void SetRealFunc(void* proc)
00233         { m_fnSetRealFunc(proc); }
00234     DWORD GetArgReal(int index)
00235         { return m_fnGetArgReal(index); }
00236 #endif
00237
00238 #if PPADLL_VER >= 123
00239     BOOL IsRunning()
00240         { return (BOOL)m_fnIsRunning(); }
00241     void SetFinishProc(void* proc)  //  2003.06.01 Moca
00242         { m_fnSetFinishProc(proc); }
00243 #endif
00244
00245 private:
00246     // コールバックプロシージャ群
00247     static void __stdcall stdStrObj(const char*, int, BYTE, int*, char**);  //  2003.06.01 Moca
00248
00249     static void __stdcall stdProc( const char* FuncName, const int Index, const char* Argument[], const int ArgSize, int* Err_CD);
00250     static void __stdcall stdIntFunc( const char* FuncName, const int Index,
00251         const char* Argument[], const int ArgSize, int* Err_CD, int* ResultValue); // 2002.02.24 Moca
00252     static void __stdcall stdStrFunc( const char* FuncName, const int Index, const char* Argument[], const int ArgSize, int* Err_CD, char** ResultValue);
00253     static bool CallHandleFunction( const int Index, const char* Arg[], int ArgSize, VARIANT* Result ); // 2002.02.24 Moca
00254
00255     static void __stdcall stdError( int, const char* ); //  2003.06.01 Moca
00256     static void __stdcall stdFinishProc();  //  2003.06.01 Moca
00257
00258     //  メンバ変数
00259     char        m_szMsg[80];
00260
00261     static CMemory          m_cMemRet;
00262     static CEditView*       m_pcEditView;   //  2003.06.01 Moca
00263     static DLLSHAREDATA*    m_pShareData;   //  2003.06.01 Moca
00264     static bool             m_bError;       //<! エラーが2回表示されるのを防ぐ  2003.06.01 Moca
00265     static CMemory          m_cMemDebug;    //<! デバッグ用変数UserErrorMes 2003.06.01 Moca
00266
00267 /*  関数名はCMacroが持つ。
00268     static struct MacroFuncInfo S_Table[];
00269     static int                  m_nFuncNum; //  SAKURAエディタ用関数の数
00270 */
00271 };
00272
00273 #endif
00274 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPAMacroMgr.cpp

CPPAMacroMgr.cpp

キーボードマクロ [詳細]

#include "stdafx.h"
#include "CPPAMacroMgr.h"
#include "CPPA.h"
#include "CMemory.h"
#include "CMacroFactory.h"
#include <string.h>

CPPAMacroMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

キーボードマクロ

作者:
YAZAKI
日付:
2002年1月26日

CPPAMacroMgr.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPAMacroMgr.cpp ソースファイル

CPPAMacroMgr.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, YAZAKI, genta
00009     Copyright (C) 2004, genta
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 #include "stdafx.h"
00015 #include "CPPAMacroMgr.h"
00016 #include "CPPA.h"
00017 #include "CMemory.h"
00018 #include "CMacroFactory.h"
00019 #include <string.h>
00020
00021 CPPA CPPAMacroMgr::m_cPPA;
00022
00023 CPPAMacroMgr::CPPAMacroMgr()
00024 {
00025 }
00026
00027 CPPAMacroMgr::~CPPAMacroMgr()
00028 {
00029 }
00030
00034 void CPPAMacroMgr::ExecKeyMacro( CEditView* pcEditView ) const
00035 {
00036     m_cPPA.SetSource( m_cBuffer.GetPtr() );
00037     m_cPPA.Execute(pcEditView);
00038 }
00039
00043 BOOL CPPAMacroMgr::LoadKeyMacro( HINSTANCE hInstance, const char* pszPath )
00044 {
00045     FILE* hFile = fopen( pszPath, "r" );
00046     if( NULL == hFile ){
00047         m_nReady = false;
00048         return FALSE;
00049     }
00050
00051     CMemory cmemWork;
00052
00053     // バッファ（cmemWork）にファイル内容を読み込み、m_cPPAに渡す。
00054     char    szLine[LINEREADBUFSIZE];    //  1行がLINEREADBUFSIZE以上だったら無条件にアウト
00055     while( NULL != fgets( szLine, sizeof(szLine), hFile ) ){
00056         int nLineLen = strlen( szLine );
00057         cmemWork.Append(szLine, nLineLen);
00058     }
00059     fclose( hFile );
00060
00061     m_cBuffer.SetData( &cmemWork ); //  m_cBufferにコピー
00062
00063     m_nReady = true;
00064     return TRUE;
00065 }
00066
00067 //  From Here Apr. 29, 2002 genta
00077 CMacroManagerBase* CPPAMacroMgr::Creator(const char* ext)
00078 {
00079     if( strcmp( ext, "ppa" ) == 0 ){
00080         return new CPPAMacroMgr;
00081     }
00082     return NULL;
00083 }
00084
00091 void CPPAMacroMgr::declare (void)
00092 {
00093     if( m_cPPA.Init() ){
00094         CMacroFactory::Instance()->RegisterCreator( Creator );
00095     }
00096 }
00097 //  To Here Apr. 29, 2002 genta
00098
00099 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPAMacroMgr.h

CPPAMacroMgr.h

PPA.DLLマクロ [詳細]

#include <windows.h>
#include "CKeyMacroMgr.h"
#include "CMemory.h"

CPPAMacroMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CPPAMacroMgr
PPAマクロ [詳細]

説明

PPA.DLLマクロ

作者:
YAZAKI
日付:
2002年1月26日

CPPAMacroMgr.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPPAMacroMgr.h ソースファイル

CPPAMacroMgr.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, aroka
00010     Copyright (C) 2002, YAZAKI, genta
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015
00016 #ifndef _CPPAMACROMGR_H_
00017 #define _CPPAMACROMGR_H_
00018
00019 #include <windows.h>
00020 #include "CKeyMacroMgr.h"
00021 #include "CMemory.h"
00022
00023 /*-----------------------------------------------------------------------
00024 クラスの宣言
00025 -----------------------------------------------------------------------*/
00027 class CPPAMacroMgr: public CMacroManagerBase
00028 {
00029 public:
00030     /*
00031     ||  Constructors
00032     */
00033     CPPAMacroMgr();
00034     ~CPPAMacroMgr();
00035
00036     /*
00037     ||  PPA.DLLに委譲する部分
00038     */
00039     virtual void ExecKeyMacro( class CEditView* pcEditView ) const;             /* キーボードマクロの実行 */
00040     virtual BOOL LoadKeyMacro( HINSTANCE hInstance, const char* pszPath);   /* キーボードマクロを読み込み、CMacroの列に変換 */
00041
00042     static class CPPA m_cPPA;
00043
00044     // Apr. 29, 2002 genta
00045     static CMacroManagerBase* Creator(const char*);
00046     static void declare(void);
00047
00048 protected:
00049     CMemory m_cBuffer;
00050 };
00051
00052
00053
00055 #endif /* _CPPAMACROMGR_H_ */
00056
00057
00058 /*[EOF]*/
00059
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrint.cpp

CPrint.cpp

印刷 [詳細]

#include "stdafx.h"
#include <stdlib.h>
#include "CPrint.h"
#include "global.h"
#include "debug.h"
#include "CShareData.h"
#include <winspool.h>

CPrint.cppのインクルード依存関係図

ソースコードを見る。

説明

印刷

作者:
Norio Nakatani
日付:
2006.08.14 Moca 用紙名一覧の重複削除・情報の統合

CPrint.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrint.cpp ソースファイル

CPrint.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2001, hor
00011     Copyright (C) 2002, MIK
00012     Copyright (C) 2003, かろと
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include <stdlib.h>
00020 #include "CPrint.h"
00021 #include "global.h"
00022 #include "debug.h" // 2002/2/10 aroka
00023 #include "CShareData.h"
00024 #include <winspool.h>
00025
00026
00027 // 2006.08.14 Moca 用紙名一覧の重複削除・情報の統合
00028 const PAPER_INFO CPrint::m_paperInfoArr[] = {
00029     //  用紙ID, 幅
00030     {DMPAPER_A4,                  2100,  2970, "A4 (210 x 297 mm)"},
00031     {DMPAPER_A3,                  2970,  4200, "A3 (297 x 420 mm)"},
00032     {DMPAPER_A4SMALL,             2100,  2970, "A4 small(210 x 297 mm)"},
00033     {DMPAPER_A5,                  1480,  2100, "A5 (148 x 210 mm)"},
00034     {DMPAPER_B4,                  2500,  3540, "B4 (250 x 354 mm)"},
00035     {DMPAPER_B5,                  1820,  2570, "B5 (182 x 257 mm)"},
00036     {DMPAPER_QUARTO,              2150,  2750, "Quarto(215 x 275 mm)"},
00037     {DMPAPER_ENV_DL,              1100,  2200, "DL Envelope(110 x 220 mm)"},
00038     {DMPAPER_ENV_C5,              1620,  2290, "C5 Envelope(162 x 229 mm)"},
00039     {DMPAPER_ENV_C3,              3240,  4580, "C3 Envelope(324 x 458 mm)"},
00040     {DMPAPER_ENV_C4,              2290,  3240, "C4 Envelope(229 x 324 mm)"},
00041     {DMPAPER_ENV_C6,              1140,  1620, "C6 Envelope(114 x 162 mm)"},
00042     {DMPAPER_ENV_C65,             1140,  2290, "C65 Envelope(114 x 229 mm)"},
00043     {DMPAPER_ENV_B4,              2500,  3530, "B4 Envelope(250 x 353 mm)"},
00044     {DMPAPER_ENV_B5,              1760,  2500, "B5 Envelope(176 x 250 mm)"},
00045     {DMPAPER_ENV_B6,              1760,  1250, "B6 Envelope(176 x 125 mm)"},
00046     {DMPAPER_ENV_ITALY,           1100,  2300, "Italy Envelope(110 x 230 mm)"},
00047     {DMPAPER_LETTER,              2159,  2794, "Letter (8 1/2 x 11 inch)"},
00048     {DMPAPER_LEGAL,               2159,  3556, "Legal  (8 1/2 x 14 inch)"},
00049     {DMPAPER_CSHEET,              4318,  5588, "C sheet (17 x 22 inch)"},
00050     {DMPAPER_DSHEET,              5588,  8634, "D sheet (22 x 34 inch)"},
00051     {DMPAPER_ESHEET,              8634, 11176, "E sheet (34 x 44 inch)"},
00052     {DMPAPER_LETTERSMALL,         2159,  2794, "Letter Small (8 1/2 x 11 inch)"},
00053     {DMPAPER_TABLOID,             2794,  4318, "Tabloid (11 x 17 inch)"},
00054     {DMPAPER_LEDGER,              4318,  2794, "Ledger  (17 x 11 inch)"},
00055     {DMPAPER_STATEMENT,           1397,  2159, "Statement (5 1/2 x 8 1/2 inch)"},
00056     {DMPAPER_EXECUTIVE,           1841,  2667, "Executive (7 1/4 x 10 1/2 inch)"},
00057     {DMPAPER_FOLIO,               2159,  3302, "Folio (8 1/2 x 13 inch)"},
00058     {DMPAPER_10X14,               2540,  3556, "10x14 inch sheet"},
00059     {DMPAPER_11X17,               2794,  4318, "11x17 inch sheet"},
00060     {DMPAPER_NOTE,                2159,  2794, "Note (8 1/2 x 11 inch)"},
00061     {DMPAPER_ENV_9,                984,  2254, "#9 Envelope  (3 7/8 x 8 7/8 inch)"},
00062     {DMPAPER_ENV_10,              1047,  2413, "#10 Envelope (4 1/8 x 9 1/2 inch)"},
00063     {DMPAPER_ENV_11,              1143,  2635, "#11 Envelope (4 1/2 x 10 3/8 inch)"},
00064     {DMPAPER_ENV_12,              1206,  2794, "#12 Envelope (4 3/4 x 11 inch)"},
00065     {DMPAPER_ENV_14,              1270,  2921, "#14 Envelope (5 x 11 1/2 inch)"},
00066     {DMPAPER_ENV_MONARCH,          984,  1905, "Monarch Envelope (3 7/8 x 7 1/2 inch)"},
00067     {DMPAPER_ENV_PERSONAL,         920,  1651, "6 3/4 Envelope (3 5/8 x 6 1/2 inch)"},
00068     {DMPAPER_FANFOLD_US,          3778,  2794, "US Std Fanfold (14 7/8 x 11 inch)"},
00069     {DMPAPER_FANFOLD_STD_GERMAN,  2159,  3048, "German Std Fanfold   (8 1/2 x 12 inch)"},
00070     {DMPAPER_FANFOLD_LGL_GERMAN,  2159,  3302, "German Legal Fanfold (8 1/2 x 13 inch)"},
00071 };
00072
00073 const int CPrint::m_nPaperInfoArrNum = sizeof( m_paperInfoArr ) / sizeof( m_paperInfoArr[0] );
00074
00075
00076
00077 CPrint::CPrint( void )
00078 {
00079     m_hDevMode  = NULL;
00080     m_hDevNames = NULL;
00081     return;
00082 }
00083
00084 CPrint::~CPrint( void )
00085 {
00086     // メモリ割り当て済みならば、解放する
00087     // 2003.05.18 かろと
00088     if ( m_hDevMode != NULL ) {
00089         ::GlobalFree( m_hDevMode );
00090     }
00091     if ( m_hDevNames != NULL ) {
00092         ::GlobalFree( m_hDevNames );
00093     }
00094     m_hDevMode  = NULL;
00095     m_hDevNames = NULL;
00096     return;
00097 }
00098
00099
00100
00109 BOOL CPrint::PrintDlg( PRINTDLG *pPD, MYDEVMODE *pMYDEVMODE )
00110 {
00111     DEVMODE*    pDEVMODE;
00112     DEVNAMES*   pDEVNAMES;      /* プリンタ設定 DEVNAMES用*/
00113
00114     // デフォルトプリンタが選択されていなければ、選択する
00115     if ( m_hDevMode == NULL ) {
00116         if ( FALSE == GetDefaultPrinter( pMYDEVMODE ) ) {
00117             return FALSE;
00118         }
00119     }
00120
00121     //
00122     //  現在のプリンタ設定の必要部分を変更
00123     //
00124     pDEVMODE = (DEVMODE*)::GlobalLock( m_hDevMode );
00125     pDEVMODE->dmOrientation         = pMYDEVMODE->dmOrientation;
00126     pDEVMODE->dmPaperSize           = pMYDEVMODE->dmPaperSize;
00127     pDEVMODE->dmPaperLength         = pMYDEVMODE->dmPaperLength;
00128     pDEVMODE->dmPaperWidth          = pMYDEVMODE->dmPaperWidth;
00129     // PrintDlg()でReAllocされる事を考えて、呼び出す前にUnlock
00130     ::GlobalUnlock( m_hDevMode );
00131
00132     /* プリンタダイアログを表示して、プリンタを選択 */
00133     pPD->lStructSize = sizeof(PRINTDLG);
00134     pPD->hDevMode = m_hDevMode;
00135     pPD->hDevNames = m_hDevNames;
00136     if( FALSE == ::PrintDlg( pPD ) ){
00137         // プリンタを変更しなかった
00138         return FALSE;
00139     }
00140
00141     m_hDevMode = pPD->hDevMode;
00142     m_hDevNames = pPD->hDevNames;
00143
00144     pDEVMODE = (DEVMODE*)::GlobalLock( m_hDevMode );
00145     pDEVNAMES = (DEVNAMES*)::GlobalLock( m_hDevNames );
00146
00147     strcpy( pMYDEVMODE->m_szPrinterDriverName, (char*)pDEVNAMES + pDEVNAMES->wDriverOffset );   /* プリンタドライバ名 */
00148     strcpy( pMYDEVMODE->m_szPrinterDeviceName, (char*)pDEVNAMES + pDEVNAMES->wDeviceOffset );   /* プリンタデバイス名 */
00149     strcpy( pMYDEVMODE->m_szPrinterOutputName, (char*)pDEVNAMES + pDEVNAMES->wOutputOffset );   /* プリンタポート名 */
00150
00151     // プリンタから得られた、dmFieldsは変更しない
00152     // プリンタがサポートしないbitをセットすると、プリンタドライバによっては、不安定な動きをする場合がある
00153     // pMYDEVMODEは、コピーしたいbitで１のものだけセットする
00154     // →プリンタから得られた dmFieldsが1でないLength,Width情報に、間違った長さが入っているプリンタドライバでは、
00155     //   縦・横が正しく印刷されない不具合となっていた(2003.07.03 かろと)
00156     pMYDEVMODE->dmFields = pDEVMODE->dmFields & (DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00157     pMYDEVMODE->dmOrientation       = pDEVMODE->dmOrientation;
00158     pMYDEVMODE->dmPaperSize         = pDEVMODE->dmPaperSize;
00159     pMYDEVMODE->dmPaperLength       = pDEVMODE->dmPaperLength;
00160     pMYDEVMODE->dmPaperWidth        = pDEVMODE->dmPaperWidth;
00161
00162 #ifdef _DEBUG
00163     MYTRACE( " (入力/出力) デバイス ドライバ=[%s]\n", (char*)pDEVNAMES + pDEVNAMES->wDriverOffset );
00164     MYTRACE( " (入力/出力) デバイス名=[%s]\n", (char*)pDEVNAMES + pDEVNAMES->wDeviceOffset );
00165     MYTRACE( "物理出力メディア (出力ポート) =[%s]\n", (char*)pDEVNAMES + pDEVNAMES->wOutputOffset );
00166     MYTRACE( "デフォルトのプリンタか=[%d]\n", pDEVNAMES->wDefault );
00167 #endif
00168
00169     ::GlobalUnlock( m_hDevMode );
00170     ::GlobalUnlock( m_hDevNames );
00171     return TRUE;
00172 }
00173
00174
00179 BOOL CPrint::GetDefaultPrinter( MYDEVMODE* pMYDEVMODE )
00180 {
00181     PRINTDLG    pd;
00182     DEVMODE*    pDEVMODE;
00183     DEVNAMES*   pDEVNAMES;      /* プリンタ設定 DEVNAMES用*/
00184
00185     // すでに DEVMODEを取得済みなら、何もしない
00186     if (m_hDevMode != NULL) {
00187         return TRUE;
00188     }
00189
00190     //
00191     // PRINTDLG構造体を初期化する（ダイアログは表示しないように）
00192     // PrintDlg()でデフォルトプリンタのデバイス名などを取得する
00193     //
00194     memset ( &pd, 0, sizeof(PRINTDLG) );
00195     pd.lStructSize  = sizeof(PRINTDLG);
00196     pd.Flags        = PD_RETURNDEFAULT;
00197     if( FALSE == ::PrintDlg( &pd ) ){
00198         pMYDEVMODE->m_bPrinterNotFound = TRUE;  /* プリンタがなかったフラグ */
00199         return FALSE;
00200     }
00201     pMYDEVMODE->m_bPrinterNotFound = FALSE; /* プリンタがなかったフラグ */
00202
00203     /* 初期化 */
00204     memset( (void *)pMYDEVMODE, 0, sizeof(MYDEVMODE) );
00205     m_hDevMode = pd.hDevMode;
00206     m_hDevNames = pd.hDevNames;
00207
00208     // MYDEVMODEへのコピー
00209     pDEVMODE = (DEVMODE*)::GlobalLock( m_hDevMode );
00210     pDEVNAMES = (DEVNAMES*)::GlobalLock( m_hDevNames );
00211
00212     strcpy( pMYDEVMODE->m_szPrinterDriverName, (char*)pDEVNAMES + pDEVNAMES->wDriverOffset );   /* プリンタドライバ名 */
00213     strcpy( pMYDEVMODE->m_szPrinterDeviceName, (char*)pDEVNAMES + pDEVNAMES->wDeviceOffset );   /* プリンタデバイス名 */
00214     strcpy( pMYDEVMODE->m_szPrinterOutputName, (char*)pDEVNAMES + pDEVNAMES->wOutputOffset );   /* プリンタポート名 */
00215
00216     // プリンタから得られた、dmFieldsは変更しない
00217     // プリンタがサポートしないbitをセットすると、プリンタドライバによっては、不安定な動きをする場合がある
00218     // pMYDEVMODEは、コピーしたいbitで１のものだけコピーする
00219     // →プリンタから得られた dmFieldsが1でないLength,Width情報に、間違った長さが入っているプリンタドライバでは、
00220     //   縦・横が正しく印刷されない不具合となっていた(2003.07.03 かろと)
00221     pMYDEVMODE->dmFields = pDEVMODE->dmFields & (DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00222     pMYDEVMODE->dmOrientation       = pDEVMODE->dmOrientation;
00223     pMYDEVMODE->dmPaperSize         = pDEVMODE->dmPaperSize;
00224     pMYDEVMODE->dmPaperLength       = pDEVMODE->dmPaperLength;
00225     pMYDEVMODE->dmPaperWidth        = pDEVMODE->dmPaperWidth;
00226
00227 #ifdef _DEBUG
00228     MYTRACE( " (入力/出力) デバイス ドライバ=[%s]\n", (char*)pDEVNAMES + pDEVNAMES->wDriverOffset );
00229     MYTRACE( " (入力/出力) デバイス名=[%s]\n", (char*)pDEVNAMES + pDEVNAMES->wDeviceOffset );
00230     MYTRACE( "物理出力メディア (出力ポート) =[%s]\n", (char*)pDEVNAMES + pDEVNAMES->wOutputOffset );
00231     MYTRACE( "デフォルトのプリンタか=[%d]\n", pDEVNAMES->wDefault );
00232 #endif
00233
00234     ::GlobalUnlock( m_hDevMode );
00235     ::GlobalUnlock( m_hDevNames );
00236     return TRUE;
00237 }
00238
00242 HDC CPrint::CreateDC(
00243     MYDEVMODE*  pMYDEVMODE,
00244     char*       pszErrMsg       /* エラーメッセージ格納場所 */
00245 )
00246 {
00247     HDC         hdc = NULL;
00248     HANDLE      hPrinter = NULL;
00249     DEVMODE*    pDEVMODE;
00250
00251     // プリンタが選択されていなければ、NULLを返す
00252     if ( m_hDevMode == NULL ) {
00253         return NULL;
00254     }
00255
00256     //
00257     // OpenPrinter()で、デバイス名でプリンタハンドルを取得
00258     //
00259     if( FALSE == ::OpenPrinter(
00260         pMYDEVMODE->m_szPrinterDeviceName,      /* プリンタデバイス名 */
00261         &hPrinter,                  /* プリンタハンドルのポインタ */
00262         (PRINTER_DEFAULTS*)NULL
00263     ) ){
00264         wsprintf( pszErrMsg,
00265             "OpenPrinter()に失敗。\nプリンタデバイス名=[%s]",
00266             pMYDEVMODE->m_szPrinterDeviceName   /* プリンタデバイス名 */
00267         );
00268         goto end_of_func;
00269     }
00270
00271     pDEVMODE = (DEVMODE*)::GlobalLock( m_hDevMode );
00272     pDEVMODE->dmOrientation         = pMYDEVMODE->dmOrientation;
00273     pDEVMODE->dmPaperSize           = pMYDEVMODE->dmPaperSize;
00274     pDEVMODE->dmPaperLength         = pMYDEVMODE->dmPaperLength;
00275     pDEVMODE->dmPaperWidth          = pMYDEVMODE->dmPaperWidth;
00276
00277     //
00278     //DocumentProperties()でアプリケーション独自のプリンタ設定に変更する
00279     //
00280     ::DocumentProperties(
00281         NULL,
00282         hPrinter,
00283         pMYDEVMODE->m_szPrinterDeviceName   /* プリンタデバイス名 */,
00284         pDEVMODE,
00285         pDEVMODE,
00286         DM_OUT_BUFFER | DM_IN_BUFFER
00287     );
00288     /* 指定デバイスに対するデバイス コンテキストを作成します。 */
00289     hdc = ::CreateDC(
00290         (LPCTSTR)pMYDEVMODE->m_szPrinterDriverName, /* プリンタドライバ名 */
00291         (LPCTSTR)pMYDEVMODE->m_szPrinterDeviceName, /* プリンタデバイス名 */
00292         (LPCTSTR)pMYDEVMODE->m_szPrinterOutputName, /* プリンタポート名 */
00293         pDEVMODE
00294     );
00295
00296     // pMYDEVMODEは、コピーしたいbitで１のものだけコピーする
00297     // →プリンタから得られた dmFieldsが1でないLength,Width情報に、間違った長さが入っているプリンタドライバでは、
00298     //   縦・横が正しく印刷されない不具合となっていた(2003.07.03 かろと)
00299     pMYDEVMODE->dmFields = pDEVMODE->dmFields & (DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00300     pMYDEVMODE->dmOrientation       = pDEVMODE->dmOrientation;
00301     pMYDEVMODE->dmPaperSize         = pDEVMODE->dmPaperSize;
00302     pMYDEVMODE->dmPaperLength       = pDEVMODE->dmPaperLength;
00303     pMYDEVMODE->dmPaperWidth        = pDEVMODE->dmPaperWidth;
00304
00305     ::GlobalUnlock( m_hDevMode );
00306
00307 end_of_func:;
00308     if (hPrinter != NULL) {
00309         ::ClosePrinter( hPrinter );
00310     }
00311
00312     return hdc;
00313 }
00314
00315
00316 /* 印刷/プレビューに必要な情報を取得 */
00317 BOOL CPrint::GetPrintMetrics(
00318     MYDEVMODE*  pMYDEVMODE,
00319     int*        pnPaperAllWidth,    /* 用紙幅 */
00320     int*        pnPaperAllHeight,   /* 用紙高さ */
00321     int*        pnPaperWidth,       /* 用紙印刷可能幅 */
00322     int*        pnPaperHeight,      /* 用紙印刷可能高さ */
00323     int*        pnPaperOffsetLeft,  /* 用紙余白左端 */
00324     int*        pnPaperOffsetTop,   /* 用紙余白上端 */
00325     char*       pszErrMsg       /* エラーメッセージ格納場所 */
00326 )
00327 {
00328     BOOL        bRet;
00329     HDC         hdc;
00330     bRet = TRUE;
00331
00332     /* 現在の設定で、用紙の幅、高さを確定し、CreateDCに渡す */
00333     if( FALSE == GetPaperSize( pnPaperAllWidth, pnPaperAllHeight, pMYDEVMODE ) ){
00334         *pnPaperAllWidth = *pnPaperWidth + 2 * (*pnPaperOffsetLeft);
00335         *pnPaperAllHeight = *pnPaperHeight + 2 * (*pnPaperOffsetTop);
00336
00337         bRet = TRUE;
00338     }
00339
00340     // pMYDEVMODEを使って、hdcを取得
00341     if ( NULL == (hdc = CreateDC( pMYDEVMODE, pszErrMsg )) ){
00342         bRet = FALSE;
00343         goto end_of_func;
00344     }
00345
00346     /* CreateDC実行によって得られた実際のプリンタの用紙の幅、高さを取得 */
00347     if( FALSE == GetPaperSize( pnPaperAllWidth, pnPaperAllHeight, pMYDEVMODE ) ){
00348         *pnPaperAllWidth = *pnPaperWidth + 2 * (*pnPaperOffsetLeft);
00349         *pnPaperAllHeight = *pnPaperHeight + 2 * (*pnPaperOffsetTop);
00350
00351         bRet = TRUE;
00352     }
00353
00354     /* マッピング モードの設定 */
00355     ::SetMapMode( hdc, MM_LOMETRIC );   //MM_LOMETRIC   それぞれの論理単位は 0.1 mm にマップされます。
00356
00357     /* 最小左マージンと最小上マージンを取得(1mm単位) */
00358     POINT   po;
00359     if( 0 < ::Escape( hdc, GETPRINTINGOFFSET, (int)NULL, NULL, (LPPOINT)&po ) ){
00360         ::DPtoLP( hdc, &po, 1 );
00361         *pnPaperOffsetLeft = abs( po.x );   /* 用紙余白左端 */
00362         *pnPaperOffsetTop = abs( po.y );    /* 用紙余白上端 */
00363     }else{
00364         *pnPaperOffsetLeft = 0; /* 用紙余白左端 */
00365         *pnPaperOffsetTop = 0;  /* 用紙余白上端 */
00366     }
00367
00368     /* 用紙の印刷可能な幅、高さ */
00369     po.x = ::GetDeviceCaps( hdc, HORZRES ); /* 用紙印刷可能幅←物理ディスプレイの幅 (mm 単位) */
00370     po.y = ::GetDeviceCaps( hdc, VERTRES ); /* 用紙印刷可能高さ←物理ディスプレイの高さ (mm 単位)  */
00371     ::DPtoLP( hdc, &po, 1 );
00372     *pnPaperWidth = abs( po.x );
00373     *pnPaperHeight = abs( po.y );
00374
00375     ::DeleteDC( hdc );
00376
00377 end_of_func:;
00378
00379     return bRet;
00380 }
00381
00382
00383
00384 /* 用紙の幅、高さ */
00385 BOOL CPrint::GetPaperSize(
00386     int*        pnPaperAllWidth,
00387     int*        pnPaperAllHeight,
00388     MYDEVMODE*  pDEVMODE
00389 )
00390 {
00391     int nWork;
00392
00393
00394     if( pDEVMODE->dmFields &  DM_PAPERSIZE ){
00395         // 2006.08.14 Moca swich/caseテーブルを廃止して 用紙情報を統合
00396         const PAPER_INFO* pi = FindPaperInfo( pDEVMODE->dmPaperSize );
00397         if( NULL != pi ){
00398             *pnPaperAllWidth = pi->m_nAllWidth;
00399             *pnPaperAllHeight = pi->m_nAllHeight;
00400         }else{
00401             // 2001.12.21 hor マウスでクリックしたままリスト外に出るとここにくるけど、
00402             //  異常ではないので FALSE を返すことにする
00403             //  ::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00404             //  "不明な用紙。処理できません。\nプログラムバグ。\n%s"
00405             //  );
00406             return FALSE;
00407         }
00408     }
00409     if(pDEVMODE->dmFields & DM_PAPERLENGTH && 0 != pDEVMODE->dmPaperLength ){
00410         /* pDEVMODE->dmPaperLengthは1/10mm単位である */
00411         *pnPaperAllHeight = pDEVMODE->dmPaperLength/* * 10*/;
00412     } else {
00413         pDEVMODE->dmPaperLength = *pnPaperAllHeight;
00414         pDEVMODE->dmFields |= DM_PAPERLENGTH;
00415     }
00416     if(pDEVMODE->dmFields & DM_PAPERWIDTH && 0 != pDEVMODE->dmPaperWidth ){
00417         /* pDEVMODE->dmPaperWidthは1/10mm単位である */
00418         *pnPaperAllWidth = pDEVMODE->dmPaperWidth/* * 10*/;
00419     } else {
00420         pDEVMODE->dmPaperWidth = *pnPaperAllWidth;
00421         pDEVMODE->dmFields |= DM_PAPERWIDTH;
00422     }
00423     /* 用紙の方向 */
00424     if( DMORIENT_LANDSCAPE == pDEVMODE->dmOrientation ){
00425         nWork = *pnPaperAllWidth;
00426         *pnPaperAllWidth = *pnPaperAllHeight;
00427         *pnPaperAllHeight = nWork;
00428     }
00429     return TRUE;
00430 }
00431
00432
00433
00434
00435
00436
00437
00438 /* 印刷 ジョブ開始 */
00439 BOOL CPrint::PrintOpen(
00440     char*       pszJobName,
00441     MYDEVMODE*  pMYDEVMODE,
00442     HDC*        phdc,
00443     char*       pszErrMsg       /* エラーメッセージ格納場所 */
00444 )
00445 {
00446     BOOL        bRet;
00447     HDC         hdc;
00448     DOCINFO     di;
00449     bRet = TRUE;
00450     //
00451     // hdcを取得
00452     //
00453     if ( NULL == (hdc = CreateDC( pMYDEVMODE, pszErrMsg )) ){
00454         bRet = FALSE;
00455         goto end_of_func;
00456     }
00457
00458     /* マッピング モードの設定 */
00459     ::SetMapMode( hdc, MM_LOMETRIC );   //MM_LOMETRIC       それぞれの論理単位は、0.1 mm にマップされます。
00460
00461     //
00462     //  印刷ジョブ開始
00463     //
00464     memset( (void *) &di, 0, sizeof( DOCINFO ) );
00465     di.cbSize = sizeof(DOCINFO);
00466     di.lpszDocName = pszJobName;
00467     di.lpszOutput  = NULL;
00468     di.lpszDatatype = NULL;
00469     di.fwType = 0;
00470     if( 0 >= ::StartDoc( hdc, &di ) ){
00471         wsprintf( pszErrMsg,
00472             "StartDoc()に失敗。\nプリンタデバイス名=[%s]",
00473             pMYDEVMODE->m_szPrinterDeviceName   /* プリンタデバイス名 */
00474         );
00475         bRet = FALSE;
00476         goto end_of_func;
00477     }
00478
00479     *phdc = hdc;
00480
00481 end_of_func:;
00482
00483     return bRet;
00484 }
00485
00486
00487
00488 /* 印刷 ページ開始 */
00489 void CPrint::PrintStartPage( HDC hdc )
00490 {
00491     ::StartPage( hdc );
00492
00493 }
00494
00495
00496
00497 /* 印刷 ページ終了 */
00498 void CPrint::PrintEndPage( HDC hdc )
00499 {
00500     ::EndPage( hdc );
00501
00502 }
00503
00504
00505 /* 印刷 ジョブ終了 */
00506 void CPrint::PrintClose( HDC hdc )
00507 {
00508     ::EndDoc( hdc );
00509     ::DeleteDC( hdc );
00510 }
00511
00512
00513
00514
00515
00516 /* 用紙の名前を取得 */
00517 char* CPrint::GetPaperName( int nPaperSize, char* pszPaperName )
00518 {
00519     // 2006.08.14 Moca 用紙情報の統合
00520     const PAPER_INFO* paperInfo = FindPaperInfo( nPaperSize );
00521     if( NULL != paperInfo ){
00522         strcpy( pszPaperName, paperInfo->m_pszName );
00523     }else{
00524         strcpy( pszPaperName, "不明" );
00525     }
00526     return pszPaperName;
00527
00528
00529
00530 }
00531
00536 const PAPER_INFO* CPrint::FindPaperInfo( int id )
00537 {
00538     for( int i = 0; i < m_nPaperInfoArrNum; ++i ){
00539         if( m_paperInfoArr[i].m_nId == id ){
00540             return &(m_paperInfoArr[i]);
00541         }
00542     }
00543     return NULL;
00544 }
00545
00546
00554 void CPrint::SettingInitialize( PRINTSETTING& pPrintSetting, const char* settingName )
00555 {
00556     strcpy( pPrintSetting.m_szPrintSettingName, settingName );  /* 印刷設定の名前 */
00557     strcpy( pPrintSetting.m_szPrintFontFaceHan, "ＭＳ 明朝" );              /* 印刷フォント */
00558     strcpy( pPrintSetting.m_szPrintFontFaceZen, "ＭＳ 明朝" );              /* 印刷フォント */
00559     pPrintSetting.m_nPrintFontWidth = 12;                               /* 印刷フォント幅(1/10mm単位) */
00560     pPrintSetting.m_nPrintFontHeight = pPrintSetting.m_nPrintFontWidth * 2; /* 印刷フォント高さ(1/10mm単位単位) */
00561     pPrintSetting.m_nPrintDansuu = 1;           /* 段組の段数 */
00562     pPrintSetting.m_nPrintDanSpace = 70;        /* 段と段の隙間(1/10mm) */
00563     pPrintSetting.m_bPrintWordWrap = TRUE;      /* 英文ワードラップする */
00564     pPrintSetting.m_bPrintKinsokuHead = FALSE;      /* 行頭禁則する */  //@@@ 2002.04.09 MIK
00565     pPrintSetting.m_bPrintKinsokuTail = FALSE;      /* 行末禁則する */  //@@@ 2002.04.09 MIK
00566     pPrintSetting.m_bPrintKinsokuRet = FALSE;       /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
00567     pPrintSetting.m_bPrintKinsokuKuto = FALSE;      // 2006.08.14 Moca 初期化ミス
00568     pPrintSetting.m_bPrintLineNumber = FALSE;   /* 行番号を印刷する */
00569     pPrintSetting.m_nPrintLineSpacing = 30; /* 印刷フォント行間 文字の高さに対する割合(%) */
00570     pPrintSetting.m_nPrintMarginTY = 100;       /* 印刷用紙マージン 上(1/10mm単位) */
00571     pPrintSetting.m_nPrintMarginBY = 200;       /* 印刷用紙マージン 下(1/10mm単位) */
00572     pPrintSetting.m_nPrintMarginLX = 200;       /* 印刷用紙マージン 左(1/10mm単位) */
00573     pPrintSetting.m_nPrintMarginRX = 100;       /* 印刷用紙マージン 右(1/10mm単位) */
00574     pPrintSetting.m_nPrintPaperOrientation = DMORIENT_PORTRAIT; /* 用紙方向 DMORIENT_PORTRAIT (1) または DMORIENT_LANDSCAPE (2) */
00575     pPrintSetting.m_nPrintPaperSize = DMPAPER_A4;   /* 用紙サイズ */
00576     /* プリンタ設定 DEVMODE用 */
00577     /* プリンタ設定を取得するのはコストがかかるので、後ほど */
00578     //  m_cPrint.GetDefaultPrinterInfo( &(pPrintSetting.m_mdmDevMode) );
00579     pPrintSetting.m_bHeaderUse[0] = TRUE;
00580     pPrintSetting.m_bHeaderUse[1] = FALSE;
00581     pPrintSetting.m_bHeaderUse[2] = FALSE;
00582     strcpy( pPrintSetting.m_szHeaderForm[0], "$f" );
00583     strcpy( pPrintSetting.m_szHeaderForm[1], "" );
00584     strcpy( pPrintSetting.m_szHeaderForm[2], "" );
00585     pPrintSetting.m_bFooterUse[0] = TRUE;
00586     pPrintSetting.m_bFooterUse[1] = FALSE;
00587     pPrintSetting.m_bFooterUse[2] = FALSE;
00588     strcpy( pPrintSetting.m_szFooterForm[0], "" );
00589     strcpy( pPrintSetting.m_szFooterForm[1], "- $p -" );
00590     strcpy( pPrintSetting.m_szFooterForm[2], "" );
00591 }
00592
00593 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrint.h

CPrint.h

印刷関連 [詳細]

#include <winspool.h>

CPrint.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | MYDEVMODE
struct | PAPER_INFO
用紙情報 [詳細]
class | CPrint
印刷関連機能 [詳細]

説明

印刷関連

作者:
Norio Nakatani
日付:
1998/06/09 新規作成

CPrint.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrint.h ソースファイル

CPrint.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2003, かろと
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 class CPrint;
00016
00017 #ifndef _CPRINT_H_
00018 #define _CPRINT_H_
00019
00020 #include <winspool.h>
00021
00022 struct  MYDEVMODE {
00023     BOOL    m_bPrinterNotFound; /* プリンタがなかったフラグ */
00024     char    m_szPrinterDriverName[_MAX_PATH + 1];   /* プリンタドライバ名 */
00025     char    m_szPrinterDeviceName[_MAX_PATH + 1];               /* プリンタデバイス名 */
00026     char    m_szPrinterOutputName[_MAX_PATH + 1];   /* プリンタポート名 */
00027     DWORD   dmFields;
00028     short   dmOrientation;
00029     short   dmPaperSize;
00030     short   dmPaperLength;
00031     short   dmPaperWidth;
00032     short   dmScale;
00033     short   dmCopies;
00034     short   dmDefaultSource;
00035     short   dmPrintQuality;
00036     short   dmColor;
00037     short   dmDuplex;
00038     short   dmYResolution;
00039     short   dmTTOption;
00040     short   dmCollate;
00041     BCHAR   dmFormName[CCHFORMNAME];
00042     WORD    dmLogPixels;
00043     DWORD   dmBitsPerPel;
00044     DWORD   dmPelsWidth;
00045     DWORD   dmPelsHeight;
00046     DWORD   dmDisplayFlags;
00047     DWORD   dmDisplayFrequency;
00048 };
00049
00050 // 2006.08.14 Moca 用紙情報の統合 PAPER_INFO新設
00052 struct PAPER_INFO {
00053     int m_nId;
00054     int m_nAllWidth;
00055     int m_nAllHeight;
00056     const char* m_pszName;
00057 };
00058
00059 struct PRINTSETTING;
00060
00061
00062 /*-----------------------------------------------------------------------
00063 クラスの宣言
00064 -----------------------------------------------------------------------*/
00070 class CPrint
00071 {
00072 public:
00073     static const PAPER_INFO m_paperInfoArr[];
00074     static const int m_nPaperInfoArrNum;
00075
00076
00077     /*
00078     ||  static関数群
00079     */
00080     static void SettingInitialize( PRINTSETTING&, const char* settingName );
00081
00082     static char* GetPaperName( int , char* );   /* 用紙の名前を取得 */
00083     /* 用紙の幅、高さ */
00084     static BOOL GetPaperSize(
00085         int*        pnPaperAllWidth,
00086         int*        pnPaperAllHeight,
00087         MYDEVMODE*  pDEVMODE
00088     );
00089
00090 public:
00091     /*
00092     ||  Constructors
00093     */
00094     CPrint();
00095     ~CPrint();
00096
00097     /*
00098     ||  Attributes & Operations
00099     */
00100     BOOL GetDefaultPrinter( MYDEVMODE *pMYDEVMODE );        /* デフォルトのプリンタ情報を取得 */
00101     BOOL PrintDlg( PRINTDLG *pd, MYDEVMODE *pMYDEVMODE );               /* プリンタ情報を取得 */
00102     /* 印刷/プレビューに必要な情報を取得 */
00103     BOOL GetPrintMetrics(
00104         MYDEVMODE*  pMYDEVMODE,
00105         int*        pnPaperAllWidth,    /* 用紙幅 */
00106         int*        pnPaperAllHeight,   /* 用紙高さ */
00107         int*        pnPaperWidth,       /* 用紙印刷可能幅 */
00108         int*        pnPaperHeight,      /* 用紙印刷可能高さ */
00109         int*        pnPaperOffsetLeft,  /* 用紙余白左端 */
00110         int*        pnPaperOffsetTop,   /* 用紙余白上端 */
00111         char*       pszErrMsg           /* エラーメッセージ格納場所 */
00112     );
00113
00114
00115     /* 印刷 ジョブ開始 */
00116     BOOL PrintOpen(
00117         char*       pszJobName,
00118         MYDEVMODE*  pMYDEVMODE,
00119         HDC*        phdc,
00120         char*       pszErrMsg       /* エラーメッセージ格納場所 */
00121     );
00122     void PrintStartPage( HDC ); /* 印刷 ページ開始 */
00123     void PrintEndPage( HDC );   /* 印刷 ページ終了 */
00124     void PrintClose( HDC );     /* 印刷 ジョブ終了 */ // 2003.05.02 かろと 不要なhPrinter削除
00125
00126 protected:
00127     /*
00128     ||  実装ヘルパ関数
00129     */
00130     // DC作成する(処理をまとめた) 2003.05.02 かろと
00131     HDC CreateDC( MYDEVMODE *pMYDEVMODE, char *pszErrMsg);
00132
00133     static const PAPER_INFO* FindPaperInfo( int id );
00134 private:
00135     /*
00136     ||  メンバ変数
00137     */
00138     HGLOBAL m_hDevMode;
00139     HGLOBAL m_hDevNames;
00140 };
00141
00142
00143
00145 #endif /* _CPRINT_H_ */
00146
00147
00148 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrintPreview.cpp

CPrintPreview.cpp

印刷プレビュー管理クラス [詳細]

#include "stdafx.h"
#include "CPrintPreview.h"
#include "CLayout.h"
#include "CEditWnd.h"
#include "charcode.h"
#include "CDlgPrintPage.h"
#include "CDlgCancel.h"
#include "CDlgInput1.h"
#include "Debug.h"
#include "etc_uty.h"
#include <stdio.h>

CPrintPreview.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | MIN_PREVIEW_ZOOM 10
2002/2/3 aroka to here
#define | MAX_PREVIEW_ZOOM 400
#define | LINE_RANGE_X 48
#define | LINE_RANGE_Y 24
#define | PAGE_RANGE_X 160
#define | PAGE_RANGE_Y 160
#define | COMPAT_BMP_BASE 1
#define | COMPAT_BMP_SCALE 2

説明

印刷プレビュー管理クラス

作者:
YAZAKI
日付:
2002/1/11 新規作成

CPrintPreview.cpp で定義されています。

マクロ定義

#define COMPAT_BMP_BASE 1

CPrintPreview.cpp の 39 行で定義されています。

参照元 CPrintPreview::OnPaint().

#define COMPAT_BMP_SCALE 2

CPrintPreview.cpp の 40 行で定義されています。

参照元 CPrintPreview::OnSize().

#define LINE_RANGE_X 48

CPrintPreview.cpp の 33 行で定義されています。

#define LINE_RANGE_Y 24

CPrintPreview.cpp の 34 行で定義されています。

参照元 CPrintPreview::OnHScroll()・CPrintPreview::OnVScroll().

#define MAX_PREVIEW_ZOOM 400

CPrintPreview.cpp の 31 行で定義されています。

参照元 CPrintPreview::OnPreviewZoom().

#define MIN_PREVIEW_ZOOM 10

2002/2/3 aroka to here

CPrintPreview.cpp の 30 行で定義されています。

参照元 CPrintPreview::OnPreviewZoom().

#define PAGE_RANGE_X 160

CPrintPreview.cpp の 36 行で定義されています。

#define PAGE_RANGE_Y 160

CPrintPreview.cpp の 37 行で定義されています。

参照元 CPrintPreview::OnHScroll()・CPrintPreview::OnVScroll().

Sakura-Editorに対してSat Oct 27 02:21:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrintPreview.cpp ソースファイル

CPrintPreview.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2001, Stonee, jepro, genta
00009     Copyright (C) 2002, YAZAKI, aroka, MIK, genta
00010     Copyright (C) 2003, genta, かろと, おきた, KEITA
00011     Copyright (C) 2005, D.S.Koba
00012     Copyright (C) 2006, ryoji, Moca
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CPrintPreview.h"
00020 #include "CLayout.h"
00021 #include "CEditWnd.h"
00022 #include "charcode.h"
00023 #include "CDlgPrintPage.h"
00024 #include "CDlgCancel.h"
00025 #include "CDlgInput1.h"
00026 #include "Debug.h"
00027 #include "etc_uty.h"
00028 #include <stdio.h>
00029
00030 #define MIN_PREVIEW_ZOOM 10
00031 #define MAX_PREVIEW_ZOOM 400
00032
00033 #define     LINE_RANGE_X    48      /* 水平方向の１回のスクロール幅 */
00034 #define     LINE_RANGE_Y    24      /* 垂直方向の１回のスクロール幅 */
00035
00036 #define     PAGE_RANGE_X    160     /* 水平方向の１回のページスクロール幅 */
00037 #define     PAGE_RANGE_Y    160     /* 垂直方向の１回のページスクロール幅 */
00038
00039 #define     COMPAT_BMP_BASE     1   /* COMPAT_BMP_SCALEピクセル幅を複写する画面ピクセル幅 */
00040 #define     COMPAT_BMP_SCALE    2   /* 互換BMPのCOMPAT_BMP_BASEに対する倍率(1以上の整数倍) */
00041
00042 CPrint CPrintPreview::m_cPrint;
00043
00048 CPrintPreview::CPrintPreview(CEditWnd* pParentWnd ) :
00049     m_nPreview_Zoom( 100 ),         /* 印刷プレビュー倍率 */
00050     m_nPreviewVScrollPos( 0 ),
00051     m_nPreviewHScrollPos( 0 ),
00052     m_nCurPageNum( 0 ),             /* 現在のページ */
00053     m_pParentWnd( pParentWnd ),
00054     m_hdcCompatDC( NULL ),          // 再描画用コンパチブルDC
00055     m_hbmpCompatBMP( NULL ),        // 再描画用メモリBMP
00056     m_hbmpCompatBMPOld( NULL ),     // 再描画用メモリBMP(OLD)
00057     m_nbmpCompatScale( COMPAT_BMP_BASE )
00058 {
00059     /* 印刷用のレイアウト情報の作成 */
00060     m_pLayoutMgr_Print = new CLayoutMgr;
00061
00062     /* 印刷プレビュー コントロール 作成 */
00063     CreatePrintPreviewControls();
00064
00065     // 再描画用コンパチブルDC
00066     HDC hdc = ::GetDC( pParentWnd->m_hWnd );
00067     m_hdcCompatDC = ::CreateCompatibleDC( hdc );
00068     ::ReleaseDC( pParentWnd->m_hWnd, hdc );
00069 }
00070
00071 CPrintPreview::~CPrintPreview()
00072 {
00073     /* 印刷プレビュー コントロール 破棄 */
00074     DestroyPrintPreviewControls();
00075
00076     /* 印刷用のレイアウト情報の削除 */
00077     delete m_pLayoutMgr_Print;
00078
00079     // 2006.08.17 Moca CompatDC削除。CEditWndから移設
00080     // 再描画用メモリBMP
00081     if( m_hbmpCompatBMP != NULL ){
00082         // 再描画用メモリBMP(OLD)
00083         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );
00084         ::DeleteObject( m_hbmpCompatBMP );
00085     }
00086     // 再描画用コンパチブルDC
00087     if( m_hdcCompatDC != NULL ){
00088         ::DeleteDC( m_hdcCompatDC );
00089     }
00090 }
00091
00097 LRESULT CPrintPreview::OnPaint(
00098     HWND            hwnd,   // handle of window
00099     UINT            uMsg,   // message identifier
00100     WPARAM          wParam, // first message parameter
00101     LPARAM          lParam  // second message parameter
00102 )
00103 {
00104     PAINTSTRUCT     ps;
00105     HDC             hdcOld = ::BeginPaint( hwnd, &ps );
00106     HDC             hdc = m_hdcCompatDC;    //  親ウィンドウのComatibleDCに描く
00107
00108     /* 印刷プレビュー 操作バー */
00109     RECT            rc;
00110     ::GetClientRect( hwnd, &rc );
00111
00112     // BMPはあとで縮小コピーするので拡大して作画する必要あり
00113     RECT bmpRc = rc;
00114     bmpRc.right = (bmpRc.right * m_nbmpCompatScale) / COMPAT_BMP_BASE;
00115     bmpRc.bottom = (bmpRc.bottom * m_nbmpCompatScale) / COMPAT_BMP_BASE;
00116     ::FillRect( hdc, &bmpRc, (HBRUSH)::GetStockObject( GRAY_BRUSH ) );
00117
00118     int nToolBarHeight = 0;
00119     if( NULL != m_hwndPrintPreviewBar ){
00120         ::GetWindowRect( m_hwndPrintPreviewBar, &rc );
00121         nToolBarHeight = rc.bottom - rc.top;
00122     }
00123
00124     /* プリンタ情報の表示 */
00125     char    szText[1024];
00126     char    szPaperName[256];
00127     ::SetDlgItemText( m_hwndPrintPreviewBar, IDC_STATIC_PRNDEV, m_pPrintSetting->m_mdmDevMode.m_szPrinterDeviceName );
00128     CPrint::GetPaperName( m_pPrintSetting->m_mdmDevMode.dmPaperSize , szPaperName );
00129     wsprintf( szText, "%s  %s",
00130         szPaperName,
00131         (m_pPrintSetting->m_mdmDevMode.dmOrientation & DMORIENT_LANDSCAPE) ? "横" : "縦"
00132     );
00133     ::SetDlgItemText( m_hwndPrintPreviewBar, IDC_STATIC_PAPER, szText );
00134
00135     /* バックグラウンド モードを変更 */
00136     ::SetBkMode( hdc, TRANSPARENT );
00137
00138     /* マッピングモードの変更 */
00139     int nMapModeOld =
00140     ::SetMapMode( hdc, MM_LOMETRIC );
00141     ::SetMapMode( hdc, MM_ANISOTROPIC );
00142
00143     /* 出力倍率の変更 */
00144     SIZE            sz;
00145     ::GetWindowExtEx( hdc, &sz );
00146     int nCx = sz.cx;
00147     int nCy = sz.cy;
00148     nCx = (int)( ((long)nCx) * 100L / ((long)m_nPreview_Zoom) );
00149     nCy = (int)( ((long)nCy) * 100L / ((long)m_nPreview_Zoom) );
00150     // 作画時は、 COMPAT_BMP_SCALE/COMPAT_BMP_BASE倍の座標 (SetWindowExtExは逆なので反対になる)
00151     nCx = (nCx * COMPAT_BMP_BASE) / m_nbmpCompatScale;
00152     nCy = (nCy * COMPAT_BMP_BASE) / m_nbmpCompatScale;
00153     ::SetWindowExtEx( hdc, nCx, nCy, &sz );
00154
00155     /* 印刷フォント作成 & 設定 */
00156     m_lfPreviewHan.lfHeight = m_pPrintSetting->m_nPrintFontHeight;
00157     m_lfPreviewHan.lfWidth  = m_pPrintSetting->m_nPrintFontWidth;
00158     strcpy( m_lfPreviewHan.lfFaceName, m_pPrintSetting->m_szPrintFontFaceHan );
00159
00160     m_lfPreviewZen.lfHeight = m_pPrintSetting->m_nPrintFontHeight;
00161     m_lfPreviewZen.lfWidth  = m_pPrintSetting->m_nPrintFontWidth;
00162     strcpy( m_lfPreviewZen.lfFaceName, m_pPrintSetting->m_szPrintFontFaceZen );
00163
00164     /* 印刷用半角フォントと全角フォントを生成 */
00165     HFONT   hFontHan = CreateFontIndirect( &m_lfPreviewHan );
00166     HFONT   hFontZen = CreateFontIndirect( &m_lfPreviewZen );
00167
00168     /* 印刷用半角フォントに設定し、以前のフォントを保持 */
00169     HFONT   hFontOld = (HFONT)::SelectObject( hdc, hFontHan );
00170
00171     /* 操作ウィンドウの下に物理座標原点を移動 */
00172     POINT           poViewPortOld;
00173     ::SetViewportOrgEx( hdc, ((-1 * m_nPreviewHScrollPos) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00174         ((nToolBarHeight + m_nPreviewVScrollPos) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00175         &poViewPortOld );
00176
00177     // 以下 0.1mm座標でレンダリング
00178
00179     /* 用紙の描画 */
00180     int nDirectY = -1;  //  Y座標の下をプラス方向にするため？
00181     ::Rectangle( hdc,
00182         m_nPreview_ViewMarginLeft,
00183         nDirectY * ( m_nPreview_ViewMarginTop ),
00184         m_nPreview_ViewMarginLeft + m_nPreview_PaperAllWidth + 1,
00185         nDirectY * (m_nPreview_ViewMarginTop + m_nPreview_PaperAllHeight + 1 )
00186     );
00187     /* マージン枠の表示 */
00188     HPEN            hPen, hPenOld;
00189     hPen = ::CreatePen( PS_SOLID, 0, RGB(128,128,128) ); // 2006.08.14 Moca 127を128に変更
00190     hPenOld = (HPEN)::SelectObject( hdc, hPen );
00191     ::Rectangle( hdc,
00192         m_nPreview_ViewMarginLeft + m_pPrintSetting->m_nPrintMarginLX,
00193         nDirectY * ( m_nPreview_ViewMarginTop + m_pPrintSetting->m_nPrintMarginTY ),
00194         m_nPreview_ViewMarginLeft + m_nPreview_PaperAllWidth - m_pPrintSetting->m_nPrintMarginRX + 1,
00195         nDirectY * ( m_nPreview_ViewMarginTop + m_nPreview_PaperAllHeight - m_pPrintSetting->m_nPrintMarginBY )
00196     );
00197     ::SelectObject( hdc, hPenOld );
00198     ::DeleteObject( hPen );
00199
00200     ::SetTextColor( hdc, RGB( 0, 0, 0 ) );
00201
00202     RECT cRect; /* 紙の大きさをあらわすRECT */
00203     cRect.left   = m_nPreview_ViewMarginLeft +                             m_pPrintSetting->m_nPrintMarginLX + 5;
00204     cRect.right  = m_nPreview_ViewMarginLeft + m_nPreview_PaperAllWidth - (m_pPrintSetting->m_nPrintMarginRX + 5);
00205     cRect.top    = nDirectY * ( m_nPreview_ViewMarginTop +                              m_pPrintSetting->m_nPrintMarginTY + 5);
00206     cRect.bottom = nDirectY * ( m_nPreview_ViewMarginTop + m_nPreview_PaperAllHeight - (m_pPrintSetting->m_nPrintMarginBY + 5));
00207
00208     /* ヘッダ */
00209     DrawHeader( hdc, cRect, hFontZen );
00210
00211     /* 印刷/印刷プレビュー ページテキストの描画 */
00212     DrawPageText(
00213         hdc,
00214         m_nPreview_ViewMarginLeft + m_pPrintSetting->m_nPrintMarginLX,
00215         m_nPreview_ViewMarginTop  + m_pPrintSetting->m_nPrintMarginTY + 2 * ( m_pPrintSetting->m_nPrintFontHeight + (m_pPrintSetting->m_nPrintFontHeight * m_pPrintSetting->m_nPrintLineSpacing / 100) ),
00216         m_nCurPageNum,
00217         hFontZen,
00218         NULL
00219     );
00220
00221     DrawFooter( hdc, cRect, hFontZen );
00222
00223     /* 印刷フォント解除 & 破棄 */
00224     ::SelectObject( hdc, hFontOld );
00225     ::DeleteObject( hFontZen );
00226     ::DeleteObject( hFontHan );
00227
00228     /* マッピングモードの変更 */
00229     ::SetMapMode( hdc, nMapModeOld );
00230
00231     /* 物理座標原点をもとに戻す */
00232     ::SetViewportOrgEx( hdc, poViewPortOld.x, poViewPortOld.y, NULL );
00233
00234
00235     /* メモリＤＣを利用した再描画の場合はメモリＤＣに描画した内容を画面へコピーする */
00236     rc = ps.rcPaint;
00237     ::DPtoLP( hdc, (POINT*)&rc, 2 );
00238     if( 1 == (m_nbmpCompatScale / COMPAT_BMP_BASE) ){
00239         ::BitBlt(
00240             hdcOld,
00241             ps.rcPaint.left,
00242             ps.rcPaint.top,
00243             ps.rcPaint.right - ps.rcPaint.left,
00244             ps.rcPaint.bottom - ps.rcPaint.top,
00245             hdc,
00246             ps.rcPaint.left,
00247             ps.rcPaint.top,
00248             SRCCOPY
00249         );
00250     }else{
00251         int stretchModeOld = SetStretchBltMode( hdcOld, STRETCH_HALFTONE );
00252         ::StretchBlt(
00253             hdcOld,
00254             ps.rcPaint.left,
00255             ps.rcPaint.top,
00256             ps.rcPaint.right - ps.rcPaint.left,
00257             ps.rcPaint.bottom - ps.rcPaint.top,
00258             hdc,
00259             (ps.rcPaint.left * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00260             (ps.rcPaint.top * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00261             ((ps.rcPaint.right - ps.rcPaint.left) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00262             ((ps.rcPaint.bottom - ps.rcPaint.top) * m_nbmpCompatScale) / COMPAT_BMP_BASE,
00263             SRCCOPY
00264         );
00265         SetStretchBltMode( hdcOld, stretchModeOld );
00266     }
00267     ::EndPaint( hwnd, &ps );
00268     return 0L;
00269 }
00270
00271 LRESULT CPrintPreview::OnSize( WPARAM wParam, LPARAM lParam )
00272 {
00273     int cx = LOWORD( lParam );
00274     int cy = HIWORD( lParam );
00275
00276     /* 印刷プレビュー 操作バー */
00277     int nToolBarHeight = 0;
00278     if( NULL != m_hwndPrintPreviewBar ){
00279         RECT            rc;
00280         ::GetWindowRect( m_hwndPrintPreviewBar, &rc );
00281         nToolBarHeight = rc.bottom - rc.top;
00282         ::MoveWindow( m_hwndPrintPreviewBar, 0, 0, cx, nToolBarHeight, TRUE );
00283     }
00284
00285     /* 印刷プレビュー 垂直スクロールバーウィンドウ */
00286     int nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
00287     int nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
00288     if( NULL != m_hwndVScrollBar ){
00289         ::MoveWindow( m_hwndVScrollBar, cx - nCxVScroll, nToolBarHeight, nCxVScroll, cy - nCyVScroll - nToolBarHeight, TRUE );
00290     }
00291
00292     /* 印刷プレビュー 水平スクロールバーウィンドウ */
00293     int nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
00294     int nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
00295     if( NULL != m_hwndHScrollBar ){
00296         ::MoveWindow( m_hwndHScrollBar, 0, cy - nCyHScroll, cx - nCxVScroll, nCyHScroll, TRUE );
00297     }
00298
00299     /* 印刷プレビュー サイズボックスウィンドウ */
00300     if( NULL != m_hwndSizeBox){
00301         ::MoveWindow( m_hwndSizeBox, cx - nCxVScroll, cy - nCyHScroll, nCxHScroll, nCyVScroll, TRUE );
00302     }
00303
00304     HDC         hdc = ::GetDC( m_pParentWnd->m_hWnd );
00305     int nMapModeOld = ::SetMapMode( hdc, MM_LOMETRIC );
00306     ::SetMapMode( hdc, MM_ANISOTROPIC );
00307
00308     /* 出力倍率の変更 */
00309     SIZE        sz;
00310     ::GetWindowExtEx( hdc, &sz );
00311     int nCx = sz.cx;
00312     int nCy = sz.cy;
00313     nCx = (int)( ((long)nCx) * 100L / ((long)m_nPreview_Zoom) );
00314     nCy = (int)( ((long)nCy) * 100L / ((long)m_nPreview_Zoom) );
00315     ::SetWindowExtEx( hdc, nCx, nCy, &sz );
00316
00317     /* ビューのサイズ */
00318     POINT       po;
00319     po.x = m_nPreview_PaperAllWidth + m_nPreview_ViewMarginLeft * 2;
00320     po.y = m_nPreview_PaperAllHeight + m_nPreview_ViewMarginTop * 2;
00321     ::LPtoDP( hdc, &po, 1 );
00322
00323     /* 再描画用メモリＢＭＰ */
00324     if( m_hbmpCompatBMP != NULL ){
00325         ::SelectObject( m_hdcCompatDC, m_hbmpCompatBMPOld );    /* 再描画用メモリＢＭＰ(OLD) */
00326         ::DeleteObject( m_hbmpCompatBMP );
00327     }
00328     // 2007.02.11 Moca プレビューを滑らかにする
00329     COsVersionInfo osVer;
00330     // Win9xでは 巨大なBMPは作成できないことと
00331     // StretchBltでSTRETCH_HALFTONEが未サポートであるので Win2K 以上のみで有効にする。
00332     if( BST_CHECKED == ::IsDlgButtonChecked( m_hwndPrintPreviewBar, IDC_CHECK_ANTIALIAS ) &&
00333             osVer.IsWin2000_or_later() ){
00334         m_nbmpCompatScale = COMPAT_BMP_SCALE;
00335     }else{
00336         // Win9x: BASE = SCALE で 1:1
00337         m_nbmpCompatScale = COMPAT_BMP_BASE;
00338     }
00339     m_hbmpCompatBMP = ::CreateCompatibleBitmap( hdc, (cx * m_nbmpCompatScale + COMPAT_BMP_BASE - 1) / COMPAT_BMP_BASE,
00340         (cy * m_nbmpCompatScale + COMPAT_BMP_BASE - 1) / COMPAT_BMP_BASE);
00341     m_hbmpCompatBMPOld = (HBITMAP)::SelectObject( m_hdcCompatDC, m_hbmpCompatBMP );
00342
00343     ::SetMapMode( hdc, nMapModeOld );
00344
00345     ::ReleaseDC( m_pParentWnd->m_hWnd, hdc );
00346
00347     /* 印刷プレビュー：ビュー幅(ピクセル) */
00348     m_nPreview_ViewWidth = abs( po.x );
00349
00350     /* 印刷プレビュー：ビュー高さ(ピクセル) */
00351     m_nPreview_ViewHeight = abs( po.y );
00352
00353     /* 印刷プレビュー スクロールバー初期化 */
00354     InitPreviewScrollBar();
00355
00356     /* 印刷プレビュー スクロールバーの初期化 */
00357
00358     m_pParentWnd->m_nDragPosOrgX = 0;
00359     m_pParentWnd->m_nDragPosOrgY = 0;
00360     m_pParentWnd->m_bDragMode = TRUE;
00361     OnMouseMove( 0, MAKELONG( 0, 0 ) );
00362     m_pParentWnd->m_bDragMode = FALSE;
00363     //  SizeBox問題テスト
00364     if( NULL != m_hwndSizeBox ){
00365         if( wParam == SIZE_MAXIMIZED ){
00366             ::ShowWindow( m_hwndSizeBox, SW_HIDE );
00367         }else
00368         if( wParam == SIZE_RESTORED ){
00369             if( ::IsZoomed( m_pParentWnd->m_hWnd ) ){
00370                 ::ShowWindow( m_hwndSizeBox, SW_HIDE );
00371             }else{
00372                 ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00373             }
00374         }else{
00375             ::ShowWindow( m_hwndSizeBox, SW_SHOW );
00376         }
00377     }
00378     ::InvalidateRect( m_pParentWnd->m_hWnd, NULL, TRUE );
00379     return 0L;
00380 }
00381
00385 LRESULT CPrintPreview::OnVScroll( WPARAM wParam, LPARAM lParam )
00386 {
00387     int         nPreviewVScrollPos;
00388     SCROLLINFO  si;
00389     int         nNowPos;
00390     int         nMove;
00391     int         nNewPos;
00392     int         nScrollCode;
00393     int         nPos;
00394     HWND        hwndScrollBar;
00395     nScrollCode = (int) LOWORD(wParam);
00396     nPos = (int) HIWORD(wParam);
00397     hwndScrollBar = (HWND) lParam;
00398     si.cbSize = sizeof( SCROLLINFO );
00399     si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00400     ::GetScrollInfo( hwndScrollBar, SB_CTL, &si );
00401     nNowPos = ::GetScrollPos( hwndScrollBar, SB_CTL );
00402     nNewPos = 0;
00403     nMove = 0;
00404     switch( nScrollCode ){
00405     case SB_LINEUP:
00406         nMove = -1 * LINE_RANGE_Y;
00407         break;
00408     case SB_LINEDOWN:
00409         nMove = LINE_RANGE_Y;
00410         break;
00411     case SB_PAGEUP:
00412         nMove = -1 * PAGE_RANGE_Y;
00413         break;
00414     case SB_PAGEDOWN:
00415         nMove = PAGE_RANGE_Y;
00416         break;
00417     case SB_THUMBPOSITION:
00418     case SB_THUMBTRACK:
00419         nMove = nPos - nNowPos;
00420         break;
00421     // 2006.08.14 Moca SB_TOP, SB_BOTTOMへの対応
00422     case SB_TOP:
00423         nMove = -1 * nNowPos;
00424         break;
00425     case SB_BOTTOM:
00426         nMove = si.nMax - nNowPos;
00427         break;
00428     default:
00429         return 0;
00430     }
00431     nNewPos = nNowPos + nMove;
00432     if( nNewPos < 0 ){
00433         nNewPos = 0;
00434     }else
00435     if( nNewPos > (int)(si.nMax - si.nPage + 1) ){
00436         nNewPos = (int)(si.nMax - si.nPage + 1);
00437     }
00438     nMove = nNowPos - nNewPos;
00439     nPreviewVScrollPos = -1 * nNewPos;
00440     if( nPreviewVScrollPos != m_nPreviewVScrollPos ){
00441         ::SetScrollPos( hwndScrollBar, SB_CTL, nNewPos, TRUE);
00442         m_nPreviewVScrollPos = nPreviewVScrollPos;
00443         /* 描画 */
00444         ::ScrollWindowEx( m_pParentWnd->m_hWnd, 0, nMove, NULL, NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE );
00445     }
00446     return 0;
00447 }
00448
00452 LRESULT CPrintPreview::OnHScroll( WPARAM wParam, LPARAM lParam )
00453 {
00454     int         nPreviewHScrollPos;
00455     SCROLLINFO  si;
00456     int         nNowPos;
00457     int         nMove;
00458     int         nNewPos;
00459     int         nScrollCode;
00460     int         nPos;
00461     HWND        hwndScrollBar;
00462     nScrollCode = (int) LOWORD(wParam);
00463     nPos = (int) HIWORD(wParam);
00464     hwndScrollBar = (HWND) lParam;
00465     si.cbSize = sizeof( SCROLLINFO );
00466     si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00467     ::GetScrollInfo( hwndScrollBar, SB_CTL, &si );
00468     nNowPos = ::GetScrollPos( hwndScrollBar, SB_CTL );
00469     nMove = 0;
00470     switch( nScrollCode ){
00471     case SB_LINEUP:
00472         nMove = -1 * LINE_RANGE_Y;
00473         break;
00474     case SB_LINEDOWN:
00475         nMove = LINE_RANGE_Y;
00476         break;
00477     case SB_PAGEUP:
00478         nMove = -1 * PAGE_RANGE_Y;
00479         break;
00480     case SB_PAGEDOWN:
00481         nMove = PAGE_RANGE_Y;
00482         break;
00483     case SB_THUMBPOSITION:
00484     case SB_THUMBTRACK:
00485         nMove = nPos - nNowPos;
00486         break;
00487     // 2006.08.14 Moca SB_LEFT, SB_RIGHTへの対応
00488     case SB_LEFT:
00489         nMove = -1 * nNowPos;
00490         break;
00491     case SB_RIGHT:
00492         nMove = si.nMax - nNowPos;
00493     default:
00494         return 0;
00495     }
00496     nNewPos = nNowPos + nMove;
00497     if( nNewPos < 0 ){
00498         nNewPos = 0;
00499     }else
00500     if( nNewPos > (int)(si.nMax - si.nPage + 1) ){
00501         nNewPos = (int)(si.nMax - si.nPage + 1);
00502     }
00503     nMove = nNowPos - nNewPos;
00504     nPreviewHScrollPos = nNewPos;
00505     if( nPreviewHScrollPos != m_nPreviewHScrollPos ){
00506         ::SetScrollPos( hwndScrollBar, SB_CTL, nNewPos, TRUE);
00507         m_nPreviewHScrollPos = nPreviewHScrollPos;
00508         /* 描画 */
00509         ::ScrollWindowEx( m_pParentWnd->m_hWnd, nMove, 0, NULL, NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE );
00510     }
00511     return 0;
00512 }
00513
00514 LRESULT CPrintPreview::OnMouseMove( WPARAM wParam, LPARAM lParam )
00515 {
00516     /* 手カーソル */
00517     ::SetCursor( ::LoadCursor( m_pParentWnd->m_hInstance, MAKEINTRESOURCE( IDC_CURSOR_HAND ) ) );
00518     if( !m_pParentWnd->m_bDragMode ){
00519         return 0;
00520     }
00521 //  WPARAM      fwKeys = wParam;            // key flags
00522     int         xPos = LOWORD( lParam );    // horizontal position of cursor
00523     int         yPos = HIWORD( lParam );    // vertical position of cursor
00524     RECT        rc;
00525     GetClientRect( m_pParentWnd->m_hWnd, &rc );
00526     POINT       po;
00527     po.x = xPos;
00528     po.y = yPos;
00529     if( !PtInRect( &rc, po ) ){ //  プレビュー内かチェック。
00530         return 0;
00531     }
00532
00533     //  Y軸
00534     SCROLLINFO  siV;
00535     siV.cbSize = sizeof( SCROLLINFO );
00536     siV.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00537     GetScrollInfo( m_hwndVScrollBar, SB_CTL, &siV );
00538     int         nMoveY;
00539     if( m_SCROLLBAR_VERT ){
00540         int     nNowPosY = GetScrollPos( m_hwndVScrollBar, SB_CTL );
00541         nMoveY = m_pParentWnd->m_nDragPosOrgY - yPos;
00542
00543         int     nNewPosY = nNowPosY + nMoveY;
00544         if( nNewPosY < 0 ){
00545             nNewPosY = 0;
00546         }else
00547         if( nNewPosY > (int)(siV.nMax - siV.nPage + 1) ){
00548             nNewPosY = (int)(siV.nMax - siV.nPage + 1);
00549         }
00550         nMoveY = nNowPosY - nNewPosY;
00551         SetScrollPos( m_hwndVScrollBar, SB_CTL, nNewPosY, TRUE );
00552         m_nPreviewVScrollPos = -1 * nNewPosY;
00553     }else{
00554         nMoveY = 0;
00555     }
00556
00557     //  X軸
00558     SCROLLINFO  siH;
00559     siH.cbSize = sizeof( SCROLLINFO );
00560     siH.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
00561     GetScrollInfo( m_hwndHScrollBar, SB_CTL, &siH );
00562     int         nMoveX;
00563     if( m_SCROLLBAR_HORZ ){
00564         int     nNowPosX = GetScrollPos( m_hwndHScrollBar, SB_CTL );
00565         nMoveX = m_pParentWnd->m_nDragPosOrgX - xPos;
00566
00567         int     nNewPosX = nNowPosX + nMoveX;
00568         if( nNewPosX < 0 ){
00569             nNewPosX = 0;
00570         }else
00571         if( nNewPosX > (int)(siH.nMax - siH.nPage + 1) ){
00572             nNewPosX = (int)(siH.nMax - siH.nPage + 1);
00573         }
00574         nMoveX = nNowPosX - nNewPosX;
00575         SetScrollPos( m_hwndHScrollBar, SB_CTL, nNewPosX, TRUE );
00576         m_nPreviewHScrollPos = nNewPosX;
00577     }else{
00578         nMoveX = 0;
00579     }
00580
00581     m_pParentWnd->m_nDragPosOrgX = xPos;
00582     m_pParentWnd->m_nDragPosOrgY = yPos;
00583     /* 描画 */
00584     ScrollWindowEx( m_pParentWnd->m_hWnd, nMoveX, nMoveY, NULL, NULL, NULL , NULL, SW_ERASE | SW_INVALIDATE );
00585     return 0;
00586 }
00587
00588 LRESULT CPrintPreview::OnMouseWheel( WPARAM wParam, LPARAM lParam )
00589 {
00590 //  WORD    fwKeys = LOWORD(wParam);            // key flags
00591     short   zDelta = (short) HIWORD(wParam);    // wheel rotation
00592 //  short   xPos = (short) LOWORD(lParam);      // horizontal position of pointer
00593 //  short   yPos = (short) HIWORD(lParam);      // vertical position of pointer
00594
00595     int     nScrollCode;
00596     if( 0 < zDelta ){
00597         nScrollCode = SB_LINEUP;
00598     }else{
00599         nScrollCode = SB_LINEDOWN;
00600     }
00601
00602     int     i;
00603     for( i = 0; i < 3; ++i ){
00604         /* 印刷プレビュー 垂直スクロールバーメッセージ処理 WM_VSCROLL */
00605         ::PostMessage( m_pParentWnd->m_hWnd, WM_VSCROLL, MAKELONG( nScrollCode, 0 ), (LPARAM)m_hwndVScrollBar );
00606
00607         /* 処理中のユーザー操作を可能にする */
00608         if( !::BlockingHook( NULL ) ){
00609             return -1;
00610         }
00611     }
00612     return 0;
00613 }
00614
00615 void CPrintPreview::OnChangePrintSetting( void )
00616 {
00617     HDC     hdc = ::GetDC( m_pParentWnd->m_hWnd );
00618     ::SetMapMode( hdc, MM_LOMETRIC ); //MM_HIMETRIC それぞれの論理単位は、0.01 mm にマップされます
00619     ::SetMapMode( hdc, MM_ANISOTROPIC );
00620
00621     ::EnumFontFamilies(
00622         hdc,
00623         NULL,
00624         (FONTENUMPROC)CPrintPreview::MyEnumFontFamProc,
00625         (LPARAM)this
00626     );
00627
00628     /* 印刷プレビュー表示情報 */
00629     m_nPreview_LineNumberColmns = 0;    /* 行番号エリアの幅(文字数) */
00630
00631     /* 行番号を表示するか */
00632     if( m_pPrintSetting->m_bPrintLineNumber ){
00633         /* 行番号表示に必要な桁数を計算 */
00634         m_nPreview_LineNumberColmns = m_pParentWnd->m_cEditDoc.m_cEditViewArr[0].DetectWidthOfLineNumberArea_calculate();
00635     }
00636     /* 現在のページ設定の、用紙サイズと用紙方向を反映させる */
00637     m_pPrintSetting->m_mdmDevMode.dmPaperSize = m_pPrintSetting->m_nPrintPaperSize;
00638     m_pPrintSetting->m_mdmDevMode.dmOrientation = m_pPrintSetting->m_nPrintPaperOrientation;
00639     // 用紙サイズ、用紙方向は変更したのでビットを立てる
00640     m_pPrintSetting->m_mdmDevMode.dmFields |= ( DM_ORIENTATION | DM_PAPERSIZE );
00641     // 用紙の長さ、幅は決まっていないので、ビットを下ろす
00642     m_pPrintSetting->m_mdmDevMode.dmFields &= (~DM_PAPERLENGTH );
00643     m_pPrintSetting->m_mdmDevMode.dmFields &= (~DM_PAPERWIDTH);
00644
00645     /* 印刷/プレビューに必要な情報を取得 */
00646     char    szErrMsg[1024];
00647     if( FALSE == m_cPrint.GetPrintMetrics(
00648         &m_pPrintSetting->m_mdmDevMode, /* プリンタ設定 DEVMODE用*/
00649         &m_nPreview_PaperAllWidth,      /* 用紙幅 */
00650         &m_nPreview_PaperAllHeight,     /* 用紙高さ */
00651         &m_nPreview_PaperWidth,         /* 用紙印刷有効幅 */
00652         &m_nPreview_PaperHeight,        /* 用紙印刷有効高さ */
00653         &m_nPreview_PaperOffsetLeft,    /* 印刷可能位置左端 */
00654         &m_nPreview_PaperOffsetTop,     /* 印刷可能位置上端 */
00655         szErrMsg                        /* エラーメッセージ格納場所 */
00656     ) ){
00657         /* エラーの場合、A4縦(210mm×297mm)で初期化 */
00658         m_nPreview_PaperAllWidth = 210 * 10;    /* 用紙幅 */
00659         m_nPreview_PaperAllHeight = 297 * 10;   /* 用紙高さ */
00660         m_nPreview_PaperWidth = 210 * 10;       /* 用紙印刷有効幅 */
00661         m_nPreview_PaperHeight = 297 * 10;      /* 用紙印刷有効高さ */
00662         m_nPreview_PaperOffsetLeft = 0;         /* 印刷可能位置左端 */
00663         m_nPreview_PaperOffsetTop = 0;          /* 印刷可能位置上端 */
00664         // DEVMODE構造体もA4縦で初期化 2003.07.03 かろと
00665         m_pPrintSetting->m_mdmDevMode.dmPaperSize = DMPAPER_A4;
00666         m_pPrintSetting->m_mdmDevMode.dmOrientation = DMORIENT_PORTRAIT;
00667         m_pPrintSetting->m_mdmDevMode.dmPaperLength = m_nPreview_PaperHeight;
00668         m_pPrintSetting->m_mdmDevMode.dmPaperWidth = m_nPreview_PaperWidth;
00669         m_pPrintSetting->m_mdmDevMode.dmFields |= ( DM_ORIENTATION | DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH);
00670     }else{
00671         if( m_pPrintSetting->m_nPrintPaperSize != m_pPrintSetting->m_mdmDevMode.dmPaperSize ){
00672             char    szPaperNameOld[256];
00673             char    szPaperNameNew[256];
00674             /* 用紙の名前を取得 */
00675             CPrint::GetPaperName( m_pPrintSetting->m_nPrintPaperSize , szPaperNameOld );
00676             CPrint::GetPaperName( m_pPrintSetting->m_mdmDevMode.dmPaperSize , szPaperNameNew );
00677
00678 			::MYMESSAGEBOX( m_pParentWnd->m_hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00679                 "現在のプリンタ %s では、\n指定された用紙 %s は使用できません。\n利用可能な用紙 %s に変更しました。",
00680                 m_pPrintSetting->m_mdmDevMode.m_szPrinterDeviceName,
00681                 szPaperNameOld, szPaperNameNew
00682             );
00683         }
00684     }
00685     /* 現在のページ設定の、用紙サイズと用紙方向を反映させる(エラーでA4縦になった場合も考慮してif文の外へ移動 2003.07.03 かろと) */
00686     m_pPrintSetting->m_nPrintPaperSize = m_pPrintSetting->m_mdmDevMode.dmPaperSize;
00687     m_pPrintSetting->m_nPrintPaperOrientation = m_pPrintSetting->m_mdmDevMode.dmOrientation;    // 用紙方向の反映忘れを修正 2003/07/03 かろと
00688
00689     m_nPreview_ViewMarginLeft = 8 * 10;     /* 印刷プレビュー：ビュー左端と用紙の間隔(1/10mm単位) */
00690     m_nPreview_ViewMarginTop = 8 * 10;      /* 印刷プレビュー：ビュー左端と用紙の間隔(1/10mm単位) */
00691
00692     m_bPreview_EnableColms =
00693         ( m_nPreview_PaperAllWidth - m_pPrintSetting->m_nPrintMarginLX - m_pPrintSetting->m_nPrintMarginRX
00694         - ( m_pPrintSetting->m_nPrintDansuu - 1 ) * m_pPrintSetting->m_nPrintDanSpace
00695         - ( m_pPrintSetting->m_nPrintDansuu ) * ( ( m_nPreview_LineNumberColmns /*+ (m_nPreview_LineNumberColmns?1:0)*/ ) * m_pPrintSetting->m_nPrintFontWidth )
00696         ) / m_pPrintSetting->m_nPrintFontWidth / m_pPrintSetting->m_nPrintDansuu;   /* 印字可能桁数/ページ */
00697     m_bPreview_EnableLines = ( m_nPreview_PaperAllHeight - m_pPrintSetting->m_nPrintMarginTY - m_pPrintSetting->m_nPrintMarginBY ) / ( m_pPrintSetting->m_nPrintFontHeight + ( m_pPrintSetting->m_nPrintFontHeight * m_pPrintSetting->m_nPrintLineSpacing / 100 ) ) - 4;    /* 印字可能行数/ページ */
00698
00699     /* 印刷用のレイアウト管理情報の初期化 */
00700     m_pLayoutMgr_Print->Create( &m_pParentWnd->m_cEditDoc, &m_pParentWnd->m_cEditDoc.m_cDocLineMgr );
00701
00702     /* 印刷用のレイアウト情報の変更 */
00703 //  Types& ref = m_pParentWnd->m_cEditDoc.GetDocumentAttribute();
00704     Types ref = m_pParentWnd->m_cEditDoc.GetDocumentAttribute();
00705     ref.m_nMaxLineSize =        m_bPreview_EnableColms;
00706     ref.m_bWordWrap =           m_pPrintSetting->m_bPrintWordWrap;  /* 英文ワードラップをする */
00707     //  Sep. 23, 2002 genta LayoutMgrの値を使う
00708     ref.m_nTabSpace =           m_pParentWnd->m_cEditDoc.m_cLayoutMgr.GetTabSpace();
00709
00710     //@@@ 2002.09.22 YAZAKI
00711     ref.m_cLineComment.CopyTo(0, "", -1);   /* 行コメントデリミタ */
00712     ref.m_cLineComment.CopyTo(1, "", -1);   /* 行コメントデリミタ2 */
00713     ref.m_cLineComment.CopyTo(2, "", -1);   /* 行コメントデリミタ3 */   //Jun. 01, 2001 JEPRO 追加
00714     ref.m_cBlockComment.CopyTo(0, "", "");  /* ブロックコメントデリミタ */
00715     ref.m_cBlockComment.CopyTo(1, "", "");  /* ブロックコメントデリミタ2 */
00716
00717     ref.m_nStringType =         0;      /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
00718     ref.m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp = FALSE;
00719     ref.m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
00720     ref.m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
00721     ref.m_bKinsokuHead = m_pPrintSetting->m_bPrintKinsokuHead,  /* 行頭禁則する */  //@@@ 2002.04.08 MIK
00722     ref.m_bKinsokuTail = m_pPrintSetting->m_bPrintKinsokuTail,  /* 行末禁則する */  //@@@ 2002.04.08 MIK
00723     ref.m_bKinsokuRet = m_pPrintSetting->m_bPrintKinsokuRet,    /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
00724     ref.m_bKinsokuKuto = m_pPrintSetting->m_bPrintKinsokuKuto,  /* 句読点をぶら下げる */    //@@@ 2002.04.17 MIK
00725     m_pLayoutMgr_Print->SetLayoutInfo(
00726         TRUE,
00727         NULL,
00728         ref
00729     );
00730     m_nAllPageNum = m_pLayoutMgr_Print->GetLineCount() / ( m_bPreview_EnableLines * m_pPrintSetting->m_nPrintDansuu );      /* 全ページ数 */
00731     if( 0 < m_pLayoutMgr_Print->GetLineCount() % ( m_bPreview_EnableLines * m_pPrintSetting->m_nPrintDansuu ) ){
00732         m_nAllPageNum++;
00733     }
00734     if( m_nAllPageNum <= m_nCurPageNum ){   /* 現在のページ */
00735         m_nCurPageNum = 0;
00736     }
00737     int     i;
00738     for( i = 0; i < ( sizeof( m_pnDx ) / sizeof( m_pnDx[0]) ); ++i ){
00739         m_pnDx[i] = m_pPrintSetting->m_nPrintFontWidth;
00740     }
00741     /* WM_SIZE 処理 */
00742     RECT    rc;
00743     ::GetClientRect( m_pParentWnd->m_hWnd, &rc );
00744     OnSize( SIZE_RESTORED, MAKELONG( rc.right - rc.left, rc.bottom - rc.top ) );
00745     ::ReleaseDC( m_pParentWnd->m_hWnd, hdc );
00746     /* プレビュー ページ指定 */
00747     OnPreviewGoPage( m_nCurPageNum );
00748     return;
00749 }
00750
00755 void CPrintPreview::OnPreviewGoDirectPage( void )
00756 {
00757     const int  INPUT_PAGE_NUM_LEN = 12;
00758
00759     CDlgInput1 cDlgInputPage;
00760     TCHAR      szMessage[512];
00761     TCHAR      szPageNum[INPUT_PAGE_NUM_LEN];
00762
00763     wsprintf( szMessage, "表示するページ番号を指定してください。(1 - %d)" , m_nAllPageNum );
00764     wsprintf( szPageNum, "%d", m_nCurPageNum + 1 );
00765
00766     if( FALSE != cDlgInputPage.DoModal( m_pParentWnd->m_hInstance, m_hwndPrintPreviewBar,
00767         "プレビューページ指定", szMessage, INPUT_PAGE_NUM_LEN, szPageNum ) ){
00768         int i;
00769         int nPageNumLen = lstrlen( szPageNum );
00770         for( i = 0; i < nPageNumLen;  i++ ){
00771             if( !('0' <= szPageNum[i] &&  szPageNum[i] <= '9') ){
00772                 return;
00773             }
00774         }
00775         int nPage = atoi( szPageNum );
00776         OnPreviewGoPage( nPage - 1 );
00777     }
00778 }
00779
00780 void CPrintPreview::OnPreviewGoPage( int nPage )
00781 {
00782     if( m_nAllPageNum <= nPage ){   /* 現在のページ */
00783         nPage = m_nAllPageNum - 1;
00784     }
00785     if( 0 > nPage ){                /* 現在のページ */
00786         nPage = 0;
00787     }
00788     m_nCurPageNum = nPage;
00789
00790     if( 0 == m_nCurPageNum ){
00791         //  最初のページのときは、前のページボタンをオフ。
00792         //  Jul. 18, 2001 genta FocusのあるWindowをDisableにすると操作できなくなるのを回避
00793         ::SetFocus( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_NEXTPAGE ));
00794         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_PREVPAGE ), FALSE );
00795     }else{
00796         //  前のページボタンをオン
00797         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_PREVPAGE ), TRUE );
00798     }
00799
00800     if( m_nAllPageNum <= m_nCurPageNum + 1 ){
00801         //  最後のページのときは、次のページボタンをオフ。
00802         //  Jul. 18, 2001 genta FocusのあるWindowをDisableにすると操作できなくなるのを回避
00803         //  Mar. 9, 2003 genta 1ページしか無いときは「前へ」ボタンもDisableされているので、
00804         //  最後のページまで達したら「戻る」にフォーカスを移すように
00805         ::SetFocus( ::GetDlgItem( m_hwndPrintPreviewBar, IDCANCEL ));
00806         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_NEXTPAGE ), FALSE );
00807     }else{
00808         //  次のページボタンをオン。
00809         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_NEXTPAGE ), TRUE );
00810     }
00811
00812     char    szEdit[1024];
00813     wsprintf( szEdit, "%d/%d頁", m_nCurPageNum + 1, m_nAllPageNum );
00814     ::SetDlgItemText( m_hwndPrintPreviewBar, IDC_STATIC_PAGENUM, szEdit );
00815
00816     wsprintf( szEdit, "%d %%", m_nPreview_Zoom );
00817     ::SetDlgItemText( m_hwndPrintPreviewBar, IDC_STATIC_ZOOM, szEdit );
00818
00819     ::InvalidateRect( m_pParentWnd->m_hWnd, NULL, TRUE );
00820     return;
00821 }
00822
00823 void CPrintPreview::OnPreviewZoom( BOOL bZoomUp )
00824 {
00825     if( bZoomUp ){
00826         m_nPreview_Zoom += 10;  /* 印刷プレビュー倍率 */
00827         if( MAX_PREVIEW_ZOOM < m_nPreview_Zoom ){
00828             m_nPreview_Zoom = MAX_PREVIEW_ZOOM;
00829         }
00830     }else{
00831         /* スクロール位置を調整 */
00832         m_nPreviewVScrollPos = 0;
00833         m_nPreviewHScrollPos = 0;
00834
00835         m_nPreview_Zoom -= 10;  /* 印刷プレビュー倍率 */
00836         if( MIN_PREVIEW_ZOOM > m_nPreview_Zoom ){
00837             m_nPreview_Zoom = MIN_PREVIEW_ZOOM;
00838         }
00839     }
00840
00841     //  縮小ボタンのON/OFF
00842     if( MIN_PREVIEW_ZOOM == m_nPreview_Zoom ){
00843         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMDOWN ), FALSE );
00844     }else{
00845         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMDOWN ), TRUE );
00846     }
00847     //  拡大ボタンのON/OFF
00848     if( MAX_PREVIEW_ZOOM == m_nPreview_Zoom ){
00849         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMUP ), FALSE );
00850     }else{
00851         ::EnableWindow( ::GetDlgItem( m_hwndPrintPreviewBar, IDC_BUTTON_ZOOMUP ), TRUE );
00852     }
00853
00854     char    szEdit[1024];
00855     wsprintf( szEdit, "%d %%", m_nPreview_Zoom );
00856     ::SetDlgItemText( m_hwndPrintPreviewBar, IDC_STATIC_ZOOM, szEdit );
00857
00858     /* WM_SIZE 処理 */
00859     RECT        rc1;
00860     ::GetClientRect( m_pParentWnd->m_hWnd, &rc1 );
00861     OnSize( SIZE_RESTORED, MAKELONG( rc1.right - rc1.left, rc1.bottom - rc1.top ) );
00862
00863     /* 印刷プレビュー スクロールバー初期化 */
00864     InitPreviewScrollBar();
00865
00866     /* 再描画 */
00867     ::InvalidateRect( m_pParentWnd->m_hWnd, NULL, TRUE );
00868     return;
00869 }
00870
00871
00876 void CPrintPreview::OnCheckAntialias( void )
00877 {
00878     /* WM_SIZE 処理 */
00879     RECT    rc;
00880     ::GetClientRect( m_pParentWnd->m_hWnd, &rc );
00881     OnSize( SIZE_RESTORED, MAKELONG( rc.right - rc.left, rc.bottom - rc.top ) );
00882 }
00883
00884
00885
00886
00887 void CPrintPreview::OnPrint( void )
00888 {
00889     HDC         hdc;
00890     char        szJobName[256 + 1];
00891     char        szProgress[100];
00892     char        szErrMsg[1024];
00893     int         nDirectY = -1;
00894     int         i;
00895     HFONT       hFontOld;   //  OnPrint以前のフォント
00896     HFONT       hFontHan;   //  印刷用半角フォント
00897     HFONT       hFontZen;   //  印刷用全角フォント
00898
00899     if( 0 == m_nAllPageNum ){
00900 		::MYMESSAGEBOX( m_pParentWnd->m_hWnd, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
00901             "印刷するページがありません。"
00902         );
00903         return;
00904     }
00905
00906     /* プリンタに渡すジョブ名を生成 */
00907     if( ! m_pParentWnd->m_cEditDoc.IsFilePathAvailable() ){ /* 現在編集中のファイルのパス */
00908         strcpy( szJobName, "無題" );
00909     }else{
00910         char    szFileName[_MAX_FNAME];
00911         char    szExt[_MAX_EXT];
00912         _splitpath( m_pParentWnd->m_cEditDoc.GetFilePath(), NULL, NULL, szFileName, szExt );
00913         wsprintf( szJobName, "%s%s", szFileName, szExt );
00914     }
00915
00916     /* 印刷範囲を指定できるプリンタダイアログを作成 */
00917     //  2003.05.02 かろと
00918     PRINTDLG pd;
00919     memset( &pd, 0, sizeof(PRINTDLG) );
00920 #ifndef _DEBUG
00921 // Debugモードで、hwndOwnerを指定すると、Win2000では落ちるので・・・
00922     pd.hwndOwner = m_pParentWnd->m_hWnd;
00923 #endif
00924     pd.nMinPage = 1;
00925     pd.nMaxPage = m_nAllPageNum;
00926     pd.nFromPage = 1;
00927     pd.nToPage = m_nAllPageNum;
00928     pd.Flags = PD_ALLPAGES | PD_NOSELECTION | PD_USEDEVMODECOPIESANDCOLLATE;
00929     if (FALSE == m_cPrint.PrintDlg( &pd, &m_pPrintSetting->m_mdmDevMode )) {
00930         return;
00931     }
00932     // 印刷開始ページと、印刷ページ数を確認
00933     int         nFrom;
00934     int         nNum;
00935     if( 0 != (pd.Flags & PD_PAGENUMS) ){    // 2003.05.02 かろと
00936         nFrom = pd.nFromPage - 1;
00937         nNum  = pd.nToPage - nFrom;
00938     }else{
00939         nFrom = 0;
00940         nNum  = m_nAllPageNum;
00941     }
00942
00943     /* 印刷過程を表示して、キャンセルするためのダイアログを作成 */
00944     CDlgCancel  cDlgPrinting;
00945     cDlgPrinting.DoModeless( m_pParentWnd->m_hInstance, m_pParentWnd->m_hWnd, IDD_PRINTING );
00946     ::SetDlgItemText( cDlgPrinting.m_hWnd, IDC_STATIC_JOBNAME, szJobName );
00947
00948     /* 親ウィンドウを無効化 */
00949     ::EnableWindow( m_pParentWnd->m_hWnd, FALSE );
00950
00951     /* 印刷 ジョブ開始 */
00952     if( FALSE == m_cPrint.PrintOpen(
00953         szJobName,
00954         &m_pPrintSetting->m_mdmDevMode, /* プリンタ設定 DEVMODE用*/
00955         &hdc,
00956         szErrMsg                        /* エラーメッセージ格納場所 */
00957     ) ){
00958 //      MYTRACE( "%s\n", szErrMsg );
00959     }
00960
00961     /* 印刷用半角フォントと、印刷用全角フォントを作成 */
00962     hFontHan = CreateFontIndirect( &m_lfPreviewHan );
00963     hFontZen = CreateFontIndirect( &m_lfPreviewZen );
00964
00965     // 現在のフォントを印刷用半角フォントに設定＆以前のフォントを保持
00966     hFontOld = (HFONT)::SelectObject( hdc, hFontHan );
00967
00968     /* 紙の大きさをあらわすRECTを設定 */
00969     RECT cRect;
00970     cRect.left   =                             m_pPrintSetting->m_nPrintMarginLX - m_nPreview_PaperOffsetLeft + 5;
00971     cRect.right  = m_nPreview_PaperAllWidth - (m_pPrintSetting->m_nPrintMarginRX + m_nPreview_PaperOffsetLeft + 5);
00972     cRect.top    = nDirectY * (                              m_pPrintSetting->m_nPrintMarginTY - m_nPreview_PaperOffsetTop + 5 );
00973     cRect.bottom = nDirectY * ( m_nPreview_PaperAllHeight - (m_pPrintSetting->m_nPrintMarginBY + m_nPreview_PaperOffsetTop + 5) );
00974
00975     /* ヘッダ・フッタの$pを展開するために、m_nCurPageNumを保持 */
00976     int nCurPageNumOld = m_nCurPageNum;
00977     for( i = 0; i < nNum; ++i ){
00978         m_nCurPageNum = nFrom + i;
00979
00980         /* 印刷過程を表示 */
00981         //  Jun. 18, 2001 genta ページ番号表示の計算ミス修正
00982         sprintf( szProgress, "%d/%d", i + 1, nNum );
00983         ::SetDlgItemText( cDlgPrinting.m_hWnd, IDC_STATIC_PROGRESS, szProgress );
00984
00985         /* 印刷 ページ開始 */
00986         m_cPrint.PrintStartPage( hdc );
00987
00988         //  From Here Jun. 26, 2003 かろと / おきた
00989         //  Windows 95/98ではStartPage()関数の呼び出し時に、属性はリセットされて既定値へ戻ります．
00990         //  このとき開発者は次のページの印刷を始める前にオブジェクトを選択し直し，
00991         //  マッピングモードをもう一度設定しなければなりません
00992         //  Windows NT/2000ではStartPageでも属性はリセットされません．
00993
00994         /* マッピングモードの変更 */
00995         ::SetMapMode( hdc, MM_LOMETRIC );       //それぞれの論理単位は、0.1 mm にマップされます
00996         ::SetMapMode( hdc, MM_ANISOTROPIC );    //論理単位は、任意にスケーリングされた軸上の任意の単位にマップされます
00997
00998         // 現在のフォントを印刷用半角フォントに設定
00999         ::SelectObject( hdc, hFontHan );
01000         //  To Here Jun. 26, 2003 かろと / おきた
01001
01002         /* ヘッダ印刷 */
01003         DrawHeader( hdc, cRect, hFontZen );
01004
01005         /* 印刷/印刷プレビュー ページテキストの描画 */
01006         DrawPageText(
01007             hdc,
01008             m_pPrintSetting->m_nPrintMarginLX - m_nPreview_PaperOffsetLeft ,
01009             m_pPrintSetting->m_nPrintMarginTY - m_nPreview_PaperOffsetTop+ 2 * ( m_pPrintSetting->m_nPrintFontHeight + (m_pPrintSetting->m_nPrintFontHeight * m_pPrintSetting->m_nPrintLineSpacing / 100) ),
01010             nFrom + i,
01011             hFontZen,
01012             &cDlgPrinting
01013         );
01014
01015         /* フッタ印刷 */
01016         DrawFooter( hdc, cRect, hFontZen );
01017
01018         /* 印刷 ページ終了 */
01019         m_cPrint.PrintEndPage( hdc );
01020
01021         /* 中断ボタン押下チェック */
01022         if( cDlgPrinting.IsCanceled() ){
01023             break;
01024         }
01025     }
01026     //  印刷前のフォントに戻す 2003.05.02 かろと hdc解放の前に処理順序を変更
01027     ::SelectObject( hdc, hFontOld );
01028
01029     /* 印刷 ジョブ終了 */
01030     m_cPrint.PrintClose( hdc );
01031
01032     //  印刷用フォントを削除。
01033     ::DeleteObject( hFontZen );
01034     ::DeleteObject( hFontHan );
01035
01036     ::EnableWindow( m_pParentWnd->m_hWnd, TRUE );
01037     cDlgPrinting.CloseDialog( 0 );
01038
01039     m_nCurPageNum = nCurPageNumOld;
01040
01041     // 印刷が終わったら、Previewから抜ける 2003.05.02 かろと
01042     m_pParentWnd->PrintPreviewModeONOFF();
01043     return;
01044 }
01045
01048 void CPrintPreview::DrawHeader( HDC hdc, RECT& rect, HFONT hFontZen )
01049 {
01050     /*  ヘッダ  */
01051     const int nHeaderWorkLen = 1024;
01052     char      szHeaderWork[1024 + 1];
01053
01054     /* 左寄せ */
01055     m_pParentWnd->m_cEditDoc.ExpandParameter(m_pPrintSetting->m_szHeaderForm[POS_LEFT], szHeaderWork, nHeaderWorkLen);
01056     Print_DrawLine( hdc,
01057         rect.left,
01058         rect.top,
01059         szHeaderWork, lstrlen( szHeaderWork ), 0,
01060         hFontZen
01061     );
01062
01063     /* 中央寄せ */
01064     m_pParentWnd->m_cEditDoc.ExpandParameter(m_pPrintSetting->m_szHeaderForm[POS_CENTER], szHeaderWork, nHeaderWorkLen);
01065     Print_DrawLine( hdc,
01066         ( rect.right + rect.left - lstrlen( szHeaderWork ) * m_pPrintSetting->m_nPrintFontWidth) / 2,
01067         rect.top,
01068         szHeaderWork, lstrlen( szHeaderWork ), 0,
01069         hFontZen
01070     );
01071
01072     /* 右寄せ */
01073     m_pParentWnd->m_cEditDoc.ExpandParameter(m_pPrintSetting->m_szHeaderForm[POS_RIGHT], szHeaderWork, nHeaderWorkLen);
01074     Print_DrawLine( hdc,
01075         rect.right - lstrlen( szHeaderWork ) * m_pPrintSetting->m_nPrintFontWidth,
01076         rect.top,
01077         szHeaderWork, lstrlen( szHeaderWork ), 0,
01078         hFontZen
01079     );
01080 }
01081
01084 void CPrintPreview::DrawFooter( HDC hdc, RECT& rect, HFONT hFontZen )
01085 {
01086     /*  フッタ  */
01087     const int nFooterWorkLen = 1024;
01088     char      szFooterWork[1024 + 1];
01089
01090     /* 左寄せ */
01091     m_pParentWnd->m_cEditDoc.ExpandParameter(m_pPrintSetting->m_szFooterForm[POS_LEFT], szFooterWork, nFooterWorkLen);
01092     //  左寄せx座標
01093     Print_DrawLine( hdc,
01094         rect.left,
01095         rect.bottom + m_pPrintSetting->m_nPrintFontHeight,
01096         szFooterWork, lstrlen( szFooterWork ), 0,
01097         hFontZen
01098     );
01099
01100     /* 中央寄せ */
01101     m_pParentWnd->m_cEditDoc.ExpandParameter(m_pPrintSetting->m_szFooterForm[POS_CENTER], szFooterWork, nFooterWorkLen);
01102     Print_DrawLine( hdc,
01103         ( rect.right + rect.left - lstrlen( szFooterWork ) * m_pPrintSetting->m_nPrintFontWidth) / 2,
01104         rect.bottom + m_pPrintSetting->m_nPrintFontHeight,
01105         szFooterWork, lstrlen( szFooterWork ), 0,
01106         hFontZen
01107     );
01108
01109     /* 右寄せ */
01110     m_pParentWnd->m_cEditDoc.ExpandParameter(m_pPrintSetting->m_szFooterForm[POS_RIGHT], szFooterWork, nFooterWorkLen);
01111     Print_DrawLine( hdc,
01112         rect.right - lstrlen( szFooterWork ) * m_pPrintSetting->m_nPrintFontWidth,
01113         rect.bottom + m_pPrintSetting->m_nPrintFontHeight,
01114         szFooterWork, lstrlen( szFooterWork ), 0,
01115         hFontZen
01116     );
01117 }
01118
01119 /* 印刷/印刷プレビュー ページテキストの描画
01120     DrawPageTextでは、行番号を（半角フォントで）印刷。
01121     本文はPrint_DrawLineにお任せ
01122     @date 2006.08.14 Moca 共通式のくくりだしと、コードの整理
01123 */
01124 void CPrintPreview::DrawPageText(
01125     HDC             hdc,
01126     int             nOffX,
01127     int             nOffY,
01128     int             nPageNum,
01129     HFONT           hFontZen,
01130     CDlgCancel*     pCDlgCancel
01131 )
01132 {
01133     int             nDirectY = -1;
01134     TEXTMETRIC      tm;
01135
01136     const int       nLineHeight = m_pPrintSetting->m_nPrintFontHeight + ( m_pPrintSetting->m_nPrintFontHeight * m_pPrintSetting->m_nPrintLineSpacing / 100 );
01137     // 段と段の間隔の幅
01138     const int       nDanWidth = m_bPreview_EnableColms * m_pPrintSetting->m_nPrintFontWidth + m_pPrintSetting->m_nPrintDanSpace;
01139     // 行番号の幅
01140     const int       nLineNumWidth = m_nPreview_LineNumberColmns * m_pPrintSetting->m_nPrintFontWidth;
01141
01142     /* 半角フォントの情報を取得＆半角フォントに設定 */
01143     ::GetTextMetrics( hdc, &tm );
01144     int nAscentHan = tm.tmAscent;
01145
01146     int             nDan;   //  段数カウンタ
01147     int             i;  //  行数カウンタ
01148     for( nDan = 0; nDan < m_pPrintSetting->m_nPrintDansuu; ++nDan ){
01149         // 本文1桁目の左隅の座標(行番号がある場合はこの座標より左側)
01150         const int nBasePosX = nOffX + nDanWidth * nDan + nLineNumWidth * (nDan + 1);
01151
01152         for( i = 0; i < m_bPreview_EnableLines; ++i ){
01153             if( NULL != pCDlgCancel ){
01154                 /* 処理中のユーザー操作を可能にする */
01155                 if( !::BlockingHook( pCDlgCancel->m_hWnd ) ){
01156                     return;
01157                 }
01158             }
01159
01160             /*  現在描画しようとしている行の物理行数（折り返しごとにカウントした行数）
01161                 関係するものは、
01162                 「ページ数（nPageNum）」
01163                 「段数（m_pPrintSetting->m_nPrintDansuu）」
01164                 「段数が1のときに、1ページあたりに何行入るか（m_bPreview_EnableLines）」
01165             */
01166 //          int nLineNum = nPageNum * ( m_bPreview_EnableLines * m_pPrintSetting->m_nPrintDansuu ) + m_bPreview_EnableLines * nDan + i;
01167             const int nLineNum = (nPageNum * m_pPrintSetting->m_nPrintDansuu + nDan) * m_bPreview_EnableLines + i;
01168             const CLayout*  pcLayout = m_pLayoutMgr_Print->Search( nLineNum );
01169             if( NULL == pcLayout ){
01170                 break;
01171             }
01172             /* 行番号を表示するか */
01173             if( m_pPrintSetting->m_bPrintLineNumber ){
01174                 char            szLineNum[64];  //  行番号を入れる。
01175                 /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
01176                 if( m_pParentWnd->m_cEditDoc.GetDocumentAttribute().m_bLineNumIsCRLF ){
01177                     /* 論理行番号表示モード */
01178                     if( 0 != pcLayout->m_nOffset ){
01179                         strcpy( szLineNum, " " );
01180                     }else{
01181                         _itoa( pcLayout->m_nLinePhysical + 1, szLineNum, 10 );  /* 対応する論理行番号 */
01182                     }
01183                 }else{
01184                     /* 物理行(レイアウト行)番号表示モード */
01185                     _itoa( nLineNum + 1, szLineNum, 10 );
01186                 }
01187                 /* 行番号区切り  0=なし 1=縦線 2=任意 */
01188                 if( 2 == m_pParentWnd->m_cEditDoc.GetDocumentAttribute().m_nLineTermType ){
01189                     char szLineTerm[2];
01190                     wsprintf( szLineTerm, "%c", m_pParentWnd->m_cEditDoc.GetDocumentAttribute().m_cLineTermChar );  /* 行番号区切り文字 */
01191                     strcat( szLineNum, szLineTerm );
01192                 }else{
01193                     strcat( szLineNum, " " );
01194                 }
01195                 const int nLineCols = lstrlen( szLineNum );
01196                 ::ExtTextOut( hdc,
01197                     nBasePosX - nLineCols * m_pPrintSetting->m_nPrintFontWidth,
01198                     nDirectY * ( nOffY + nLineHeight * i + ( m_pPrintSetting->m_nPrintFontHeight - nAscentHan ) ), 0,
01199                     NULL, szLineNum, nLineCols, m_pnDx
01200                 );
01201             }
01202
01203             const int nLineLen = pcLayout->GetLengthWithoutEOL();
01204             if( 0 == nLineLen ){
01205                 continue;
01206             }
01207
01208             /* 印刷／プレビュー 行描画 */
01209             Print_DrawLine(
01210                 hdc,
01211                 nBasePosX,
01212                 nDirectY * ( nOffY + nLineHeight * i ),
01213                 pcLayout->GetPtr(),
01214                 nLineLen,
01215                 pcLayout->GetIndent(), // 2006.05.16 Add Moca. レイアウトインデント分ずらす。
01216                 hFontZen
01217             );
01218         }
01219         // 2006.08.14 Moca 行番号が縦線の場合は1度に引く
01220         if( m_pPrintSetting->m_bPrintLineNumber &&
01221                 1 == m_pParentWnd->m_cEditDoc.GetDocumentAttribute().m_nLineTermType ){
01222             // 縦線は本文と行番号の隙間1桁の中心に作画する(画面作画では、右詰め)
01223             ::MoveToEx( hdc,
01224                 nBasePosX - (m_pPrintSetting->m_nPrintFontWidth / 2 ),
01225                 nDirectY * nOffY,
01226                 NULL );
01227             ::LineTo( hdc,
01228                 nBasePosX - (m_pPrintSetting->m_nPrintFontWidth / 2 ),
01229                 nDirectY * ( nOffY + nLineHeight * i )
01230             );
01231         }
01232     }
01233     return;
01234 }
01235
01236
01237
01238
01239
01240
01241 /* 印刷プレビュー スクロールバー初期化 */
01242 void CPrintPreview::InitPreviewScrollBar( void )
01243 {
01244     SCROLLINFO  si;
01245     RECT        rc;
01246     int         cx, cy;
01247     int         nToolBarHeight = 0;
01248     if( NULL != m_hwndPrintPreviewBar ){
01249         ::GetWindowRect( m_hwndPrintPreviewBar, &rc );
01250         nToolBarHeight = rc.bottom - rc.top;
01251     }
01252     ::GetClientRect( m_pParentWnd->m_hWnd, &rc );
01253     cx = rc.right - rc.left;
01254     cy = rc.bottom - rc.top - nToolBarHeight;
01255
01256     if( NULL != m_hwndVScrollBar ){
01257         /* 垂直スクロールバー */
01258         si.cbSize = sizeof( SCROLLINFO );
01259         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01260         si.nMin  = 0;
01261         if( m_nPreview_ViewHeight <= cy - nToolBarHeight ){
01262             si.nMax  = cy - nToolBarHeight;         /* 全幅 */
01263             si.nPage = cy - nToolBarHeight;         /* 表示域の桁数 */
01264             si.nPos  = -1 * m_nPreviewVScrollPos;   /* 表示域の一番左の位置 */
01265             si.nTrackPos = 0;
01266             m_SCROLLBAR_VERT = FALSE;
01267         }else{
01268             si.nMax  = m_nPreview_ViewHeight;       /* 全幅 */
01269             si.nPage = cy - nToolBarHeight;         /* 表示域の桁数 */
01270             si.nPos  = -1 * m_nPreviewVScrollPos;   /* 表示域の一番左の位置 */
01271             si.nTrackPos = 100;
01272             m_SCROLLBAR_VERT = TRUE;
01273         }
01274         ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
01275     }
01276     /* 印刷プレビュー 水平スクロールバーウィンドウハンドル */
01277     if( NULL != m_hwndHScrollBar ){
01278         si.cbSize = sizeof( si );
01279         si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01280         /* 水平スクロールバー */
01281 //      si.cbSize = sizeof( si );
01282 //      si.fMask = SIF_ALL;
01283         si.nMin  = 0;
01284         if( m_nPreview_ViewWidth <= cx ){
01285             si.nMax  = cx;                          /* 全幅 */
01286             si.nPage = cx;                          /* 表示域の桁数 */
01287             si.nPos  = m_nPreviewHScrollPos;        /* 表示域の一番左の位置 */
01288             si.nTrackPos = 0;
01289             m_SCROLLBAR_HORZ = FALSE;
01290         }else{
01291             si.nMax  = m_nPreview_ViewWidth;        /* 全幅 */
01292             si.nPage = cx;                          /* 表示域の桁数 */
01293             si.nPos  = m_nPreviewHScrollPos;        /* 表示域の一番左の位置 */
01294             si.nTrackPos = 100;
01295             m_SCROLLBAR_HORZ = TRUE;
01296         }
01297         ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
01298     }
01299     return;
01300 }
01301
01307 void CPrintPreview::Print_DrawLine(
01308     HDC         hdc,
01309     int         x,
01310     int         y,
01311     const char* pLine,
01312     int         nLineLen,
01313     int         nIndent,  // 2006.08.14 Moca 追加
01314     HFONT       hFontZen
01315 )
01316 {
01317     const int MODE_SINGLEBYTE = 1;
01318     const int MODE_DOUBLEBYTE = 2;
01319
01320     int         nCharChars;
01321     int         nPreviousChars = MODE_SINGLEBYTE;
01322     TEXTMETRIC  tm;
01323
01324     /* 全角文字のアセント（文字高）を取得 */
01325     HFONT   hFontHan = (HFONT)::SelectObject( hdc, hFontZen );
01326     ::GetTextMetrics( hdc, &tm );
01327     int nAscentZen = tm.tmAscent;
01328
01329     /* 半角文字のアセント（文字高）を取得 */
01330     //  半角文字用フォントが選択されていることを期待している。
01331     ::SelectObject( hdc, hFontHan );
01332     ::GetTextMetrics( hdc, &tm );
01333     int nAscentHan = tm.tmAscent;
01334
01335     /*  pLineをスキャンして、半角文字は半角文字でまとめて、全角文字は全角文字でまとめて描画する。
01336     */
01337     int         nPosX = nIndent;    //  TABを展開した後のバイト数で、テキストの何バイト目まで描画したか？
01338     int         nBgn = 0;   //  TABを展開する前のバイト数で、pLineの何バイト目まで描画したか？
01339     int         i;          //  pLineの何文字目をスキャン？
01340     //  Sep. 23, 2002 genta LayoutMgrの値を使う
01341     int         nTabSpace = m_pParentWnd->m_cEditDoc.m_cLayoutMgr.GetTabSpace();
01342
01343     for( i = 0; i < nLineLen; ++i ){
01344         // 2005-09-02 D.S.Koba GetSizeOfChar
01345         nCharChars = CMemory::GetSizeOfChar( pLine, nLineLen, i );
01346         if( 0 == nCharChars ){  //  0バイト文字？
01347             nCharChars = 1;
01348         }
01349         if( nCharChars == 1 ){  //  1バイト文字
01350             if( MODE_SINGLEBYTE == nPreviousChars ){
01351                 //  引き続き1バイト文字。
01352                 if( TAB == pLine[i] ){  //  タブ文字
01353                     if( 0 < i - nBgn ){
01354                         //  タブ文字の前までを描画。
01355                         ::ExtTextOut(
01356                             hdc,
01357                             x + nPosX * m_pPrintSetting->m_nPrintFontWidth,
01358                             y - ( m_pPrintSetting->m_nPrintFontHeight - nAscentHan ),
01359                             0,
01360                             NULL,
01361                             &pLine[nBgn], i - nBgn,
01362                             m_pnDx
01363                         );
01364                         nPosX += ( i - nBgn );  //  実際の文字数と、バイト数の差を埋める。
01365                     }
01366                     nPosX += ( nTabSpace - nPosX % nTabSpace );
01367                     nBgn = i + 1;   //  スキャン中の次のバイト
01368                 }
01369             }else{
01370                 /*  2バイト文字から、1バイト文字に切り替わったとき
01371                     2バイト文字の塊を描画。
01372                 */
01373                 if( 0 < i - nBgn ){
01374                     ::SelectObject( hdc, hFontZen );
01375                     ::ExtTextOut(
01376                         hdc,
01377                         x + nPosX * m_pPrintSetting->m_nPrintFontWidth,
01378                         y - ( m_pPrintSetting->m_nPrintFontHeight - nAscentZen ),
01379                         0,
01380                         NULL,
01381                         &pLine[nBgn], i - nBgn,
01382                         m_pnDx
01383                     );
01384                     ::SelectObject( hdc, hFontHan );
01385                     nPosX += ( i - nBgn );
01386                 }
01387                 nBgn = i;
01388                 nPreviousChars = MODE_SINGLEBYTE;
01389                 if( TAB == pLine[i] ){  //  タブ文字
01390                     nPosX += ( nTabSpace - nPosX % nTabSpace );
01391                     nBgn = i + 1;
01392                 }
01393             }
01394         }else{  //  1バイト文字
01395             if( MODE_SINGLEBYTE == nPreviousChars ){
01396                 if( 0 < i - nBgn ){
01397                     ::ExtTextOut(
01398                         hdc,
01399                         x + nPosX * m_pPrintSetting->m_nPrintFontWidth,
01400                         y - ( m_pPrintSetting->m_nPrintFontHeight - nAscentHan ),
01401                         0,
01402                         NULL,
01403                         &pLine[nBgn], i - nBgn,
01404                         m_pnDx
01405                     );
01406                     nPosX += ( i - nBgn );
01407                 }
01408                 nBgn = i;
01409                 nPreviousChars = MODE_DOUBLEBYTE;
01410             }
01411             ++i;
01412         }
01413     }
01414
01415     if( 0 < i - nBgn ){
01416         if( MODE_DOUBLEBYTE == nPreviousChars ){    /*  2バイト文字描画 */
01417             ::SelectObject( hdc, hFontZen );
01418             ::ExtTextOut(
01419                 hdc,
01420                 x + nPosX * m_pPrintSetting->m_nPrintFontWidth,
01421                 y - ( m_pPrintSetting->m_nPrintFontHeight - nAscentZen ),
01422                 0,
01423                 NULL,
01424                 &pLine[nBgn], i - nBgn,
01425                 m_pnDx
01426             );
01427             ::SelectObject( hdc, hFontHan );
01428         }else{              /* 1バイト文字描画。フォントは標準で1バイト文字用。 */
01429             ::ExtTextOut(
01430                 hdc,
01431                 x + nPosX * m_pPrintSetting->m_nPrintFontWidth,
01432                 y - ( m_pPrintSetting->m_nPrintFontHeight - nAscentHan ),
01433                 0,
01434                 NULL,
01435                 &pLine[nBgn], i - nBgn,
01436                 m_pnDx
01437             );
01438         }
01439     }
01440     return;
01441 }
01442
01443 /*  印刷プレビューフォント（半角）を設定する
01444     typedef struct tagLOGFONT {
01445        LONG lfHeight;
01446        LONG lfWidth;
01447        LONG lfEscapement;
01448        LONG lfOrientation;
01449        LONG lfWeight;
01450        BYTE lfItalic;
01451        BYTE lfUnderline;
01452        BYTE lfStrikeOut;
01453        BYTE lfCharSet;
01454        BYTE lfOutPrecision;
01455        BYTE lfClipPrecision;
01456        BYTE lfQuality;
01457        BYTE lfPitchAndFamily;
01458        TCHAR lfFaceName[LF_FACESIZE];
01459     } LOGFONT;
01460 */
01461 void CPrintPreview::SetPreviewFontHan( LOGFONT* lf )
01462 {
01463     m_lfPreviewHan = *lf;
01464
01465     //  PrintSettingからコピー
01466     m_lfPreviewHan.lfHeight         = m_pPrintSetting->m_nPrintFontHeight;
01467     m_lfPreviewHan.lfWidth          = m_pPrintSetting->m_nPrintFontWidth;
01468     strcpy(m_lfPreviewHan.lfFaceName, m_pPrintSetting->m_szPrintFontFaceHan);
01469 }
01470
01471 void CPrintPreview::SetPreviewFontZen( LOGFONT* lf )
01472 {
01473     m_lfPreviewZen = *lf;
01474     //  PrintSettingからコピー
01475     m_lfPreviewZen.lfHeight = m_pPrintSetting->m_nPrintFontHeight;
01476     m_lfPreviewZen.lfWidth  = m_pPrintSetting->m_nPrintFontWidth;
01477     strcpy(m_lfPreviewZen.lfFaceName, m_pPrintSetting->m_szPrintFontFaceZen );
01478 }
01479
01480 int CALLBACK CPrintPreview::MyEnumFontFamProc(
01481     ENUMLOGFONT*    pelf,       // pointer to logical-font data
01482     NEWTEXTMETRIC*  pntm,       // pointer to physical-font data
01483     int             nFontType,  // type of font
01484     LPARAM          lParam      // address of application-defined data
01485 )
01486 {
01487     CPrintPreview* pCPrintPreview = (CPrintPreview*)lParam;
01488     if( 0 == strcmp( pelf->elfLogFont.lfFaceName, pCPrintPreview->m_pPrintSetting->m_szPrintFontFaceHan ) ){
01489         pCPrintPreview->SetPreviewFontHan(&pelf->elfLogFont);
01490     }
01491     if( 0 == strcmp( pelf->elfLogFont.lfFaceName, pCPrintPreview->m_pPrintSetting->m_szPrintFontFaceZen ) ){
01492         pCPrintPreview->SetPreviewFontZen(&pelf->elfLogFont);
01493     }
01494
01495     return 1;
01496 }
01497
01501 void CPrintPreview::CreatePrintPreviewControls( void )
01502 {
01503     int         nCxHScroll = ::GetSystemMetrics( SM_CXHSCROLL );
01504     int         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
01505     int         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
01506     int         nCyVScroll = ::GetSystemMetrics( SM_CYVSCROLL );
01507
01508     /* 印刷プレビュー 操作バー */
01509     m_hwndPrintPreviewBar = ::CreateDialogParam(
01510         m_pParentWnd->m_hInstance,                          // handle to application instance
01511         MAKEINTRESOURCE( IDD_PRINTPREVIEWBAR ),             // identifies dialog box template name
01512         m_pParentWnd->m_hWnd,                               // handle to owner window
01513         (DLGPROC)CPrintPreview::PrintPreviewBar_DlgProc,    // pointer to dialog box procedure
01514         (LPARAM)this
01515     );
01516
01517     /* 縦スクロールバーの作成 */
01518     m_hwndVScrollBar = ::CreateWindowEx(
01519         0L,                                 /* no extended styles           */
01520         "SCROLLBAR",                        /* scroll bar control class     */
01521         (LPSTR) NULL,                       /* text for window title bar    */
01522         WS_VISIBLE | WS_CHILD | SBS_VERT,   /* scroll bar styles            */
01523         0,                                  /* horizontal position          */
01524         0,                                  /* vertical position            */
01525         200,                                /* width of the scroll bar      */
01526         CW_USEDEFAULT,                      /* default height               */
01527         m_pParentWnd->m_hWnd,                               /* handle of main window        */
01528         (HMENU) NULL,                       /* no menu for a scroll bar     */
01529         m_pParentWnd->m_hInstance,                      /* instance owning this window  */
01530         (LPVOID) NULL                       /* pointer not needed           */
01531     );
01532     SCROLLINFO  si;
01533     si.cbSize = sizeof( si );
01534     si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01535     si.nMin  = 0;
01536     si.nMax  = 29;
01537     si.nPage = 10;
01538     si.nPos  = 0;
01539     si.nTrackPos = 1;
01540     ::SetScrollInfo( m_hwndVScrollBar, SB_CTL, &si, TRUE );
01541     ::ShowScrollBar( m_hwndVScrollBar, SB_CTL, TRUE );
01542
01543     /* 横スクロールバーの作成 */
01544     m_hwndHScrollBar = ::CreateWindowEx(
01545         0L,                                 /* no extended styles           */
01546         "SCROLLBAR",                        /* scroll bar control class     */
01547         (LPSTR) NULL,                       /* text for window title bar    */
01548         WS_VISIBLE | WS_CHILD | SBS_HORZ,   /* scroll bar styles            */
01549         0,                                  /* horizontal position          */
01550         0,                                  /* vertical position            */
01551         200,                                /* width of the scroll bar      */
01552         CW_USEDEFAULT,                      /* default height               */
01553         m_pParentWnd->m_hWnd,                               /* handle of main window        */
01554         (HMENU) NULL,                       /* no menu for a scroll bar     */
01555         m_pParentWnd->m_hInstance,                      /* instance owning this window  */
01556         (LPVOID) NULL                       /* pointer not needed           */
01557     );
01558     si.cbSize = sizeof( si );
01559     si.fMask = SIF_ALL | SIF_DISABLENOSCROLL;
01560     si.nMin  = 0;
01561     si.nMax  = 29;
01562     si.nPage = 10;
01563     si.nPos  = 0;
01564     si.nTrackPos = 1;
01565     ::SetScrollInfo( m_hwndHScrollBar, SB_CTL, &si, TRUE );
01566     ::ShowScrollBar( m_hwndHScrollBar, SB_CTL, TRUE );
01567
01568     /* サイズボックスの作成 */
01569     m_hwndSizeBox = ::CreateWindowEx(
01570         WS_EX_CONTROLPARENT/*0L*/,                          /* no extended styles           */
01571         "SCROLLBAR",                                        /* scroll bar control class     */
01572         (LPSTR) NULL,                                       /* text for window title bar    */
01573         WS_VISIBLE | WS_CHILD | SBS_SIZEBOX | SBS_SIZEGRIP, /* scroll bar styles            */
01574         0,                                                  /* horizontal position          */
01575         0,                                                  /* vertical position            */
01576         200,                                                /* width of the scroll bar      */
01577         CW_USEDEFAULT,                                      /* default height               */
01578         m_pParentWnd->m_hWnd,                                           /* handle of main window        */
01579         (HMENU) NULL,                                       /* no menu for a scroll bar     */
01580         m_pParentWnd->m_hInstance,                                      /* instance owning this window  */
01581         (LPVOID) NULL                                       /* pointer not needed           */
01582     );
01583     ::ShowWindow( m_hwndPrintPreviewBar, SW_SHOW );
01584
01585
01586     /* WM_SIZE 処理 */
01587     RECT        rc1;
01588     ::GetClientRect( m_pParentWnd->m_hWnd, &rc1 );
01589     OnSize( SIZE_RESTORED, MAKELONG( rc1.right - rc1.left, rc1.bottom - rc1.top ) );
01590     return;
01591 }
01592
01593
01597 void CPrintPreview::DestroyPrintPreviewControls( void )
01598 {
01599     /* 印刷プレビュー 操作バー 削除 */
01600     if ( m_hwndPrintPreviewBar ){
01601         ::DestroyWindow( m_hwndPrintPreviewBar );
01602         m_hwndPrintPreviewBar = NULL;
01603     }
01604
01605     /* 印刷プレビュー 垂直スクロールバーウィンドウ 削除 */
01606     if( m_hwndVScrollBar ){
01607         ::DestroyWindow( m_hwndVScrollBar );
01608         m_hwndVScrollBar = NULL;
01609     }
01610     /* 印刷プレビュー 水平スクロールバーウィンドウ 削除 */
01611     if( m_hwndHScrollBar ){
01612         ::DestroyWindow( m_hwndHScrollBar );
01613         m_hwndHScrollBar = NULL;
01614     }
01615     /* 印刷プレビュー サイズボックスウィンドウ 削除 */
01616     if ( m_hwndSizeBox ){
01617         ::DestroyWindow( m_hwndSizeBox );
01618         m_hwndSizeBox = NULL;
01619     }
01620 }
01621
01622 /* ダイアログプロシージャ */
01623 INT_PTR CALLBACK CPrintPreview::PrintPreviewBar_DlgProc(
01624     HWND hwndDlg,   // handle to dialog box
01625     UINT uMsg,      // message
01626     WPARAM wParam,  // first message parameter
01627     LPARAM lParam   // second message parameter
01628 )
01629 {
01630     CPrintPreview* pCPrintPreview;
01631     switch( uMsg ){
01632     case WM_INITDIALOG:
01633         // Modified by KEITA for WIN64 2003.9.6
01634 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01635         // 2007.02.11 Moca WM_INITもDispatchEvent_PPBを呼ぶように
01636         pCPrintPreview = ( CPrintPreview* )lParam;
01637         if( NULL != pCPrintPreview ){
01638             return pCPrintPreview->DispatchEvent_PPB( hwndDlg, uMsg, wParam, lParam );
01639         }
01640         return TRUE;
01641     default:
01642         // Modified by KEITA for WIN64 2003.9.6
01643         pCPrintPreview = ( CPrintPreview* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
01644         if( NULL != pCPrintPreview ){
01645             return pCPrintPreview->DispatchEvent_PPB( hwndDlg, uMsg, wParam, lParam );
01646         }else{
01647             return FALSE;
01648         }
01649     }
01650 }
01651
01652 /* 印刷プレビュー 操作バーにフォーカスを当てる */
01653 void CPrintPreview::SetFocusToPrintPreviewBar( void )
01654 {
01655     if( NULL != m_hwndPrintPreviewBar ){
01656         ::SetFocus( m_hwndPrintPreviewBar );
01657     }
01658 }
01659
01660 /* 印刷プレビュー 操作バー ダイアログのメッセージ処理 */
01661 INT_PTR CPrintPreview::DispatchEvent_PPB(
01662     HWND                hwndDlg,    // handle to dialog box
01663     UINT                uMsg,       // message
01664     WPARAM              wParam,     // first message parameter
01665     LPARAM              lParam      // second message parameter
01666 )
01667 {
01668     WORD                wNotifyCode;
01669     WORD                wID;
01670     HWND                hwndCtl;
01671     CMemory             cMemBuf;
01672     char                szHelpFile[_MAX_PATH];
01673
01674
01675
01676     switch( uMsg ){
01677
01678     case WM_INITDIALOG:
01679         // 2007.02.11 Moca DWLP_USER設定は不要
01681         //::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01682         {
01683             COsVersionInfo cOsVer;
01684             if( cOsVer.IsWin2000_or_later() ){
01685                 ::EnableWindow( ::GetDlgItem(hwndDlg, IDC_CHECK_ANTIALIAS), TRUE );
01686             }
01687         }
01688         return TRUE;
01689     case WM_COMMAND:
01690         wNotifyCode = HIWORD(wParam);   /* 通知コード */
01691         wID         = LOWORD(wParam);   /* 項目ID、コントロールID またはアクセラレータID */
01692         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
01693         switch( wNotifyCode ){
01694         /* ボタン／チェックボックスがクリックされた */
01695         case BN_CLICKED:
01696             switch( wID ){
01697             case IDC_BUTTON_PRINTERSELECT:
01698                 // From Here 2003.05.03 かろと
01699                 // PRINTDLGを初期化
01700                 PRINTDLG    pd;
01701                 memset( &pd, 0, sizeof(PRINTDLG) );
01702                 pd.Flags = PD_PRINTSETUP | PD_NONETWORKBUTTON;
01703                 pd.hwndOwner = m_pParentWnd->m_hWnd;
01704                 if (TRUE == m_cPrint.PrintDlg( &pd, &m_pPrintSetting->m_mdmDevMode )) {
01705                     // 用紙サイズと用紙方向を反映させる 2003.05.03 かろと
01706                     m_pPrintSetting->m_nPrintPaperSize = m_pPrintSetting->m_mdmDevMode.dmPaperSize;
01707                     m_pPrintSetting->m_nPrintPaperOrientation = m_pPrintSetting->m_mdmDevMode.dmOrientation;
01708                     /* 印刷プレビュー スクロールバー初期化 */
01709                     InitPreviewScrollBar();
01710                     OnChangePrintSetting();
01711                     ::InvalidateRect( m_pParentWnd->m_hWnd, NULL, TRUE );
01712                 }
01713                 // To Here 2003.05.03 かろと
01714                 break;
01715             case IDC_BUTTON_PRINTSETTING:
01716                 m_pParentWnd->OnPrintPageSetting();
01717                 break;
01718             case IDC_BUTTON_ZOOMUP:
01719                 /* プレビュー拡大縮小 */
01720                 OnPreviewZoom( TRUE );
01721                 break;
01722             case IDC_BUTTON_ZOOMDOWN:
01723                 /* プレビュー拡大縮小 */
01724                 OnPreviewZoom( FALSE );
01725                 break;
01726             case IDC_BUTTON_PREVPAGE:
01727                 /* 前ページ */
01728                 OnPreviewGoPreviousPage( );
01729                 break;
01730             case IDC_BUTTON_NEXTPAGE:
01731                 /* 次ページ */
01732                 OnPreviewGoNextPage( );
01733                 break;
01734             //From Here 2007.02.11 Moca ダイレクトジャンプおよびアンチエイリアス
01735             case IDC_BUTTON_DIRECTPAGE:
01736                 OnPreviewGoDirectPage( );
01737                 break;
01738             case IDC_CHECK_ANTIALIAS:
01739                 OnCheckAntialias();
01740                 break;
01741             //To Here 2007.02.11 Moca
01742             case IDC_BUTTON_HELP:
01743                 /* ヘルプファイルのフルパスを返す */
01744 				::GetHelpFilePath( szHelpFile );
01745                 /* 印刷プレビューのヘルプ */
01746                 //Stonee, 2001/03/12 第四引数を、機能番号からヘルプトピック番号を調べるようにした
01747                 MyWinHelp( hwndDlg, szHelpFile, HELP_CONTEXT, ::FuncID_To_HelpContextID(F_PRINT_PREVIEW) ); // 2006.10.10 ryoji MyWinHelpに変更に変更
01748                 break;
01749             case IDOK:
01750                 /* 印刷実行 */
01751                 OnPrint();
01752                 return TRUE;
01753             case IDCANCEL:
01754                 /* 印刷プレビューモードのオン/オフ */
01755                 m_pParentWnd->PrintPreviewModeONOFF();
01756                 return TRUE;
01757             }
01758             break;  /* BN_CLICKED */
01759         }
01760         break;  /* WM_COMMAND */
01761     }
01762     return FALSE;
01763 }
01764
01765
01766 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrintPreview.h

CPrintPreview.h

印刷プレビュー管理クラス [詳細]

#include "CShareData.h"
#include "CPrint.h"
#include <windows.h>

CPrintPreview.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CPrintPreview

説明

印刷プレビュー管理クラス

作者:
YAZAKI
日付:
2002/1/11 新規作成

CPrintPreview.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPrintPreview.h ソースファイル

CPrintPreview.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, YAZAKI
00009     Copyright (C) 2003, かろと
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 class CPrintPreview;
00015
00016 #ifndef _CPRINTPREVIEW_H_
00017 #define _CPRINTPREVIEW_H_
00018 #include "CShareData.h"
00019 #include "CPrint.h" // 2002/2/10 aroka
00020 #include <windows.h> // 2002/2/10 aroka
00021
00022 class CPrintPreview {
00023 /* メンバ関数宣言 */
00024 public:
00025     /*
00026     ||  コンストラクタ
00027     */
00028     CPrintPreview( class CEditWnd* pParentWnd );
00029     ~CPrintPreview();
00030
00031     /*
00032     ||  イベント
00033     */
00034     //  Window Messages
00035     LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );  /* 描画処理 */
00036     LRESULT OnSize( WPARAM, LPARAM );               /* WM_SIZE 処理 */
00037     LRESULT OnVScroll( WPARAM wParam, LPARAM lParam );
00038     LRESULT OnHScroll( WPARAM wParam, LPARAM lParam );
00039     LRESULT OnMouseMove( WPARAM wParam, LPARAM lParam );
00040     LRESULT OnMouseWheel( WPARAM wParam, LPARAM lParam );
00041
00042     //  User Messages
00043     void OnChangePrintSetting( void );
00044     void OnPreviewGoPage( int nPage );  /* プレビュー ページ指定 */
00045     void OnPreviewGoPreviousPage(){ OnPreviewGoPage( m_nCurPageNum - 1 ); }     //  前のページへ
00046     void OnPreviewGoNextPage(){ OnPreviewGoPage( m_nCurPageNum + 1 ); }     //  前のページへ
00047     void OnPreviewGoDirectPage( void );
00048     void OnPreviewZoom( BOOL bZoomUp );
00049     void OnPrint( void );   /* 印刷実行 */
00050     BOOL OnPrintPageSetting( void );
00051     void OnCheckAntialias( void );
00052
00053     /*
00054     ||  コントロール
00055     */
00056     //  スクロールバー
00057     void InitPreviewScrollBar( void );
00058
00059     //  PrintPreviewバー（画面上部のコントロール）
00060     void CreatePrintPreviewControls( void );
00061     void DestroyPrintPreviewControls( void );
00062
00063     void SetFocusToPrintPreviewBar( void );
00064     HWND GetPrintPreviewBarHANDLE( void ){ return m_hwndPrintPreviewBar;    }
00065
00066     //  PrintPreviewバーのメッセージ処理。
00067     //  まずPrintPreviewBar_DlgProcにメッセージが届き、DispatchEvent_PPBに転送する仕組み
00068     static INT_PTR CALLBACK PrintPreviewBar_DlgProc(
00069         HWND    hwndDlg,    // handle to dialog box
00070         UINT    uMsg,       // message
00071         WPARAM  wParam,     // first message parameter
00072         LPARAM  lParam      // second message parameter
00073     );
00074     INT_PTR DispatchEvent_PPB(
00075         HWND    hwndDlg,    // handle to dialog box
00076         UINT    uMsg,       // message
00077         WPARAM  wParam,     // first message parameter
00078         LPARAM  lParam      // second message parameter
00079     );
00080
00081 protected:
00082     /*
00083     ||  描画。
00084     ||  DrawXXXXX()は、現在のフォントを半角フォントに設定してから呼び出すこと。
00085     ||  また、DrawXXXXX()から抜けてきたときは、半角フォントに設定されていることを期待してよい。
00086     ||  フォントは、半角フォントと全角フォントしかないことも期待してよい。
00087     */
00088     void DrawHeader( HDC hdc, RECT& rect, HFONT hFontZen );
00089     void DrawPageText( HDC, int, int, int, HFONT hFontZen, class CDlgCancel* );
00090     void DrawFooter( HDC hdc, RECT& rect, HFONT hFontZen );
00091
00092     /* 印刷／プレビュー 行描画 */
00093     void Print_DrawLine(
00094         HDC         hdc,
00095         int         x,
00096         int         y,
00097         const char* pLine,
00098         int         nLineLen,
00099         int         nIndent, // 折り返しインデント桁数 // 2006.08.14 Moca
00100         HFONT       hFontZen
00101     );
00102
00103
00104 public:
00105     //  フォント列挙
00106     static int CALLBACK MyEnumFontFamProc(
00107         ENUMLOGFONT*    pelf,       // pointer to logical-font data
00108         NEWTEXTMETRIC*  pntm,       // pointer to physical-font data
00109         int             nFontType,  // type of font
00110         LPARAM          lParam      // address of application-defined data
00111     );
00112
00113     /*
00114     ||  アクセサ
00115     */
00116     void SetPrintSetting( PRINTSETTING* pPrintSetting ){ m_pPrintSetting = pPrintSetting; }
00117     BOOL GetDefaultPrinterInfo(){ return m_cPrint.GetDefaultPrinter( &m_pPrintSetting->m_mdmDevMode ); };
00118     int  GetCurPageNum(){ return m_nCurPageNum; }   /* 現在のページ */
00119     int  GetAllPageNum(){ return m_nAllPageNum; }   /* 現在のページ */
00120
00121
00122     /*
00123     ||  ヘッダ・フッタ
00124     */
00125     void SetHeader(char* pszWork[]);    //  &fなどを登録
00126     void SetFooter(char* pszWork[]);    //  &p/&Pなどを登録
00127
00128 protected:
00129     void SetPreviewFontHan( LOGFONT* lf );
00130     void SetPreviewFontZen( LOGFONT* lf );
00131
00132 /* メンバ変数宣言 */
00133 public:
00134     /* none */
00135
00136 protected:
00137     CEditWnd*       m_pParentWnd;   //  親のCEditDoc*。
00138
00139     // 2006.08.17 Moca YAZAKIさんのメモの通りDC/BMPをCEditDocからCPrintPreviewへ移動
00140     HDC             m_hdcCompatDC;
00141     HBITMAP         m_hbmpCompatBMP;
00142     HBITMAP         m_hbmpCompatBMPOld;
00143     int             m_nbmpCompatScale;
00144
00145     /*  コントロール制御用  */
00146     //  操作バー
00147     HWND            m_hwndPrintPreviewBar;  /* 印刷プレビュー 操作バー */
00148     //  スクロールバー
00149     int             m_nPreviewVScrollPos;   /* 印刷プレビュー：スクロール位置縦 */
00150     int             m_nPreviewHScrollPos;   /* 印刷プレビュー：スクロール位置横 */
00151     BOOL            m_SCROLLBAR_HORZ;
00152     BOOL            m_SCROLLBAR_VERT;
00153     HWND            m_hwndVScrollBar;   /* 垂直スクロールバーウィンドウハンドル */
00154     HWND            m_hwndHScrollBar;   /* 水平スクロールバーウィンドウハンドル */
00155     //  サイズボックス
00156     HWND            m_hwndSizeBox;      /* サイズボックスウィンドウハンドル */
00157     BOOL            m_SizeBoxCanMove;   /* サイズボックスウィンドウハンドルを動かせるかどうか */
00158
00159     //  表示
00160     int             m_nPreview_Zoom;    /* 印刷プレビュー：倍率 */
00161
00162     //  印刷位置を決定するための変数
00163     int             m_nPreview_ViewWidth;       /* 印刷プレビュー：ビュー幅(ピクセル) */
00164     int             m_nPreview_ViewHeight;      /* 印刷プレビュー：ビュー高さ(ピクセル) */
00165     int             m_nPreview_ViewMarginLeft;  /* 印刷プレビュー：ビュー左端と用紙の間隔(1/10mm単位) */
00166     int             m_nPreview_ViewMarginTop;   /* 印刷プレビュー：ビュー左端と用紙の間隔(1/10mm単位) */
00167     int             m_nPreview_PaperAllWidth;   /* 用紙幅(1/10mm単位) */
00168     int             m_nPreview_PaperAllHeight;  /* 用紙高さ(1/10mm単位) */
00169     int             m_nPreview_PaperWidth;  /* 用紙印刷有効幅(1/10mm単位) */
00170     int             m_nPreview_PaperHeight; /* 用紙印刷有効高さ(1/10mm単位) */
00171     int             m_nPreview_PaperOffsetLeft; /* 用紙余白左端(1/10mm単位) */
00172     int             m_nPreview_PaperOffsetTop;  /* 用紙余白上端(1/10mm単位) */
00173 //  int             m_nPreview_PaperOffsetRight;    /* 用紙余白右端(1/10mm単位) */
00174 //  int             m_nPreview_PaperOffsetBottom;   /* 用紙余白下端(1/10mm単位) */
00175     int             m_bPreview_EnableColms; /* 印字可能桁数/ページ */
00176     int             m_bPreview_EnableLines; /* 印字可能行数/ページ */
00177     int             m_nPreview_LineNumberColmns;    /* 行番号エリアの幅（文字数） */
00178     int             m_nAllPageNum;  /* 全ページ数 */
00179     int             m_nCurPageNum;  /* 現在のページ */
00180
00181     PRINTSETTING*   m_pPrintSetting;    /* 現在の印刷設定 */
00182     LOGFONT         m_lfPreviewHan; /* プレビュー用フォント */
00183     LOGFONT         m_lfPreviewZen; /* プレビュー用フォント */
00184
00185     class CLayoutMgr*   m_pLayoutMgr_Print; /* 印刷用のレイアウト管理情報 */
00186
00187     int             m_pnDx[MAXLINESIZE + 10];   /* 文字列描画用文字幅配列 */
00188     // プレビューから出ても現在のプリンタ情報を記憶しておけるようにstaticにする 2003.05.02 かろと
00189     static CPrint   m_cPrint;
00190 };
00191
00192 #endif
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcess.cpp

CProcess.cpp

プロセス基底クラス [詳細]

#include "stdafx.h"
#include "CProcess.h"
#include "debug.h"
#include "etc_uty.h"

CProcess.cppのインクルード依存関係図

ソースコードを見る。

説明

プロセス基底クラス

作者:
aroka
日付:
2002/01/07 作成

2002/01/17 修正

CProcess.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcess.cpp ソースファイル

CProcess.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 2002, aroka 新規作成
00010     Copyright (C) 2004, Moca
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015
00016
00017 #include "stdafx.h"
00018 #include "CProcess.h"
00019 #include "debug.h"
00020 #include "etc_uty.h"
00021
00028 CProcess::CProcess(
00029     HINSTANCE   hInstance,
00030     LPSTR       lpCmdLine
00031 ) :
00032     m_hInstance( hInstance ),
00033     m_CommandLine( lpCmdLine ),
00034     m_hWnd( 0 )
00035 {
00036 }
00037
00043 bool CProcess::Initialize()
00044 {
00045     /* 共有データ構造体のアドレスを返す */
00046     if( !m_cShareData.Init() ){
00047         //  適切なデータを得られなかった
00048         ::MYMESSAGEBOX( NULL, MB_OK | MB_ICONERROR,
00049             GSTR_APPNAME, _T("異なるバージョンのエディタを同時に起動することはできません。") );
00050         return false;
00051     }
00052     m_pShareData = m_cShareData.GetShareData();
00053
00054     /* リソースから製品バージョンの取得 */
00055     //  2004.05.13 Moca 共有データのバージョン情報はコントロールプロセスだけが
00056     //  ShareDataで設定するように変更したのでここからは削除
00057
00058     return true;
00059 }
00060
00067 bool CProcess::Run(void)
00068 {
00069     if( true == Initialize() ){
00070         MainLoop() ;
00071         Terminate();
00072         return true;
00073     }
00074     return false;
00075 }
00076 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcess.h

CProcess.h

プロセス基底クラスヘッダファイル [詳細]

#include "global.h"
#include "CShareData.h"

CProcess.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CProcess
プロセス基底クラス [詳細]

説明

プロセス基底クラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CProcess.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcess.h ソースファイル

CProcess.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, aroka 新規作成
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 #ifndef _CPROCESS_H_
00015 #define _CPROCESS_H_
00016
00017 #include "global.h"
00018 #include "CShareData.h"
00019
00020 /*-----------------------------------------------------------------------
00021 クラスの宣言
00022 -----------------------------------------------------------------------*/
00026 class SAKURA_CORE_API CProcess {
00027 public:
00028     CProcess( HINSTANCE hInstance, LPSTR lpCmdLine );
00029     bool Run();
00030     virtual ~CProcess(){};
00031 protected:
00032     CProcess();
00033     virtual bool Initialize();
00034     virtual bool MainLoop() = 0;
00035     virtual void Terminate() = 0;
00036
00037     HINSTANCE m_hInstance;
00038     HWND m_hWnd;
00039     LPSTR m_CommandLine;
00040
00041     //  唯一のCShareDateとする。（CProcessが責任を持ってnew/deleteする）
00042     CShareData m_cShareData;
00043     DLLSHAREDATA*   m_pShareData;
00044
00045 private:
00046 };
00047
00048
00050 #endif /* _CPROCESS_H_ */
00051
00052 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcessFactory.cpp

CProcessFactory.cpp

プロセス生成クラス [詳細]

#include "stdafx.h"
#include "CProcessFactory.h"
#include "CControlProcess.h"
#include "CNormalProcess.h"
#include "CCommandLine.h"
#include "CEditApp.h"
#include "Debug.h"
#include "etc_uty.h"
#include <io.h>
#include <tchar.h>
#include "COsVersionInfo.h"
#include "CRunningTimer.h"

CProcessFactory.cppのインクルード依存関係図

ソースコードを見る。

説明

プロセス生成クラス

作者:
aroka
日付:
2002/01/03 Create

CProcessFactory.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcessFactory.cpp ソースファイル

CProcessFactory.cpp

説明を見る。
00001 //  この行は文字化け対策用です．消さないでください
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2000-2001, genta
00011     Copyright (C) 2001, masami shoji
00012     Copyright (C) 2002, aroka WinMainより分離
00013     Copyright (C) 2006, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include "CProcessFactory.h"
00021 #include "CControlProcess.h"
00022 #include "CNormalProcess.h"
00023 #include "CCommandLine.h"
00024 #include "CEditApp.h"
00025 #include "Debug.h"
00026 #include "etc_uty.h"
00027 #include <io.h>
00028 #include <tchar.h>
00029 #include "COsVersionInfo.h"
00030 #include "CRunningTimer.h"
00031
00032 class CProcess;
00033
00034
00048 CProcess* CProcessFactory::Create( HINSTANCE hInstance, LPSTR lpCmdLine )
00049 {
00050     CCommandLine::Instance(lpCmdLine);
00051
00052     CProcess* process = 0;
00053     if( !IsValidVersion() ){
00054         return 0;
00055     }
00056
00057     // プロセスクラスを生成する
00058     //
00059     // Note: 以下の処理において使用される IsExistControlProcess() は、コントロールプロセスが
00060     // 存在しない場合だけでなく、コントロールプロセスが起動して ::CreateMutex() を実行するまで
00061     // の間も false（コントロールプロセス無し）を返す。
00062     // 従って、複数のノーマルプロセスが同時に起動した場合などは複数のコントロールプロセスが
00063     // 起動されることもある。
00064     // しかし、そのような場合でもミューテックスを最初に確保したコントロールプロセスが唯一生き残る。
00065     //
00066     if( IsStartingControlProcess() ){
00067         if( TestWriteQuit() ){  // 2007.09.04 ryoji「設定を保存して終了する」オプション処理（sakuext連携用）
00068             return 0;
00069         }
00070         if( !IsExistControlProcess() ){
00071             process = new CControlProcess( hInstance, lpCmdLine );
00072         }
00073     }else{
00074         if( !IsExistControlProcess() ){
00075             StartControlProcess();
00076         }
00077         if( WaitForInitializedControlProcess() ){   // 2006.04.10 ryoji コントロールプロセスの初期化完了待ち
00078             process = new CNormalProcess( hInstance, lpCmdLine );
00079         }
00080     }
00081     return process;
00082 }
00083
00084
00094 bool CProcessFactory::IsValidVersion()
00095 {
00096     /* Windowsバージョンのチェック */
00097     COsVersionInfo  cOsVer;
00098     if( cOsVer.GetVersion() ){
00099         if( !cOsVer.OsIsEnableVersion() ){
00100             ::MYMESSAGEBOX( NULL, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00101                 "このアプリケーションを実行するには、\nWindows95以上 または WindowsNT4.0以上のOSが必要です。\nアプリケーションを終了します。"
00102             );
00103             return false;
00104         }
00105     }else{
00106 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00107             "OSのバージョンが取得できません。\nアプリケーションを終了します。"
00108         );
00109         return false;
00110     }
00111
00112     /* システムリソースのチェック */
00113     // Jul. 5, 2001 shoji masami NTではリソースチェックを行わない
00114     if( !cOsVer.IsWin32NT() ){
00115         if( !CheckSystemResources( GSTR_APPNAME ) ){
00116             return false;
00117         }
00118     }
00119     return true;
00120 }
00121
00122
00129 bool CProcessFactory::IsStartingControlProcess()
00130 {
00131     return CCommandLine::Instance()->IsNoWindow();
00132 }
00133
00141 bool CProcessFactory::IsExistControlProcess()
00142 {
00143     HANDLE hMutexCP;
00144     hMutexCP = ::OpenMutex( MUTEX_ALL_ACCESS, FALSE, GSTR_MUTEX_SAKURA_CP );    // 2006.04.10 ryoji ::CreateMutex() を ::OpenMutex()に変更
00145     if( NULL != hMutexCP ){
00146         ::CloseHandle( hMutexCP );
00147         return true;    // コントロールプロセスが見つかった
00148     }
00149
00150     return false;   // コントロールプロセスは存在していないか、まだ CreateMutex() してない
00151 }
00152
00153 //  From Here Aug. 28, 2001 genta
00163 bool CProcessFactory::StartControlProcess()
00164 {
00165     MY_RUNNINGTIMER(cRunningTimer,"StartControlProcess" );
00166
00167     //  プロセスの起動
00168     PROCESS_INFORMATION p;
00169     STARTUPINFO s;
00170
00171     s.cb = sizeof( s );
00172     s.lpReserved = NULL;
00173     s.lpDesktop = NULL;
00174     s.lpTitle = NULL;
00175
00176     s.dwFlags = STARTF_USESHOWWINDOW;
00177     s.wShowWindow = SW_SHOWDEFAULT;
00178     s.cbReserved2 = 0;
00179     s.lpReserved2 = NULL;
00180
00181     TCHAR szCmdLineBuf[1024];   //  コマンドライン
00182     TCHAR szEXE[MAX_PATH + 1];  //  アプリケーションパス名
00183     TCHAR szDir[MAX_PATH + 1];  //  ディレクトリパス名
00184
00185     ::GetModuleFileName( ::GetModuleHandle( NULL ), szEXE, sizeof( szEXE ));
00186     ::wsprintf( szCmdLineBuf, _T("%s -NOWIN"), szEXE );
00187     ::GetSystemDirectory( szDir, sizeof( szDir ));
00188
00189     if( 0 == ::CreateProcess( szEXE, szCmdLineBuf, NULL, NULL, FALSE,
00190         CREATE_DEFAULT_ERROR_MODE, NULL, szDir, &s, &p ) ){
00191         //  失敗
00192         LPVOID pMsg;
00193         ::FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
00194                         FORMAT_MESSAGE_IGNORE_INSERTS |
00195                         FORMAT_MESSAGE_FROM_SYSTEM,
00196                         NULL,
00197                         ::GetLastError(),
00198                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
00199                         (LPTSTR) &pMsg,
00200                         0,
00201                         NULL
00202         );
00203 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00204             _T("\'%s\'\nプロセスの起動に失敗しました。\n%s"), szEXE, (LPTSTR)pMsg );
00205         ::LocalFree( (HLOCAL)pMsg );    //  エラーメッセージバッファを解放
00206         return false;
00207     }
00208
00209     // 起動したプロセスが完全に立ち上がるまでちょっと待つ．
00210     //
00211     // Note: この待ちにより、ここで起動したコントロールプロセスが競争に生き残れなかった場合でも、
00212     // 唯一生き残ったコントロールプロセスが多重起動防止用ミューテックスを作成しているはず。
00213     //
00214     int nResult = ::WaitForInputIdle( p.hProcess, 10000 );  //  最大10秒間待つ
00215     if( 0 != nResult ){
00216 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00217             _T("\'%s\'\nコントロールプロセスの起動に失敗しました。"), szEXE );
00218         ::CloseHandle( p.hThread );
00219         ::CloseHandle( p.hProcess );
00220         return false;
00221     }
00222
00223     ::CloseHandle( p.hThread );
00224     ::CloseHandle( p.hProcess );
00225
00226     return true;
00227 }
00228 //  To Here Aug. 28, 2001 genta
00229
00236 bool CProcessFactory::WaitForInitializedControlProcess()
00237 {
00238     // 初期化完了イベントを待つ
00239     //
00240     // Note: コントロールプロセス側は多重起動防止用ミューテックスを ::CreateMutex() で
00241     // 作成するよりも先に初期化完了イベントを ::CreateEvent() で作成する。
00242     //
00243     if( !IsExistControlProcess() ){
00244         // コントロールプロセスが多重起動防止用のミューテックス作成前に異常終了した場合など
00245         return false;
00246     }
00247
00248     HANDLE hEvent;
00249     hEvent = ::OpenEvent( EVENT_ALL_ACCESS, FALSE, GSTR_EVENT_SAKURA_CP_INITIALIZED );
00250     if( NULL == hEvent ){
00251         // 動作中のコントロールプロセスを旧バージョンとみなし、イベントを待たずに処理を進める
00252         //
00253         // Note: Ver1.5.9.91以前のバージョンは初期化完了イベントを作らない。
00254         // このため、コントロールプロセスが常駐していないときに複数ウィンドウをほぼ
00255         // 同時に起動すると、競争に生き残れなかったコントロールプロセスの親プロセスや、
00256         // 僅かに出遅れてコントロールプロセスを作成しなかったプロセスでも、
00257         // コントロールプロセスの初期化処理を追い越してしまい、異常終了したり、
00258         // 「タブバーが表示されない」のような問題が発生していた。
00259         //
00260         return true;
00261     }
00262     DWORD dwRet = ::WaitForSingleObject( hEvent, 10000 );   // 最大10秒間待つ
00263     if( WAIT_TIMEOUT == dwRet ){    // コントロールプロセスの初期化が終了しない
00264         ::CloseHandle( hEvent );
00265 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00266             _T("エディタまたはシステムがビジー状態です。\nしばらく待って開きなおしてください。") );
00267         return false;
00268     }
00269     ::CloseHandle( hEvent );
00270     return true;
00271 }
00272
00279 bool CProcessFactory::TestWriteQuit()
00280 {
00281     if( CCommandLine::Instance()->IsWriteQuit() ){
00282         TCHAR szIniFileIn[_MAX_PATH];
00283         TCHAR szIniFileOut[_MAX_PATH];
00284         CShareData::GetIniFileNameDirect( szIniFileIn, szIniFileOut );
00285         if( szIniFileIn[0] != _T('\0') ){   // マルチユーザ用設定か
00286             // 既にマルチユーザ用のiniファイルがあればEXE基準のiniファイルに上書き更新して終了
00287             if( _taccess( szIniFileIn, 0 ) == 0 ){
00288                 if( ::CopyFile( szIniFileIn, szIniFileOut, FALSE ) ){
00289                     return true;
00290                 }
00291             }
00292         }else{
00293             // 既にEXE基準のiniファイルがあれば何もせず終了
00294             if( _taccess( szIniFileOut, 0 ) == 0 ){
00295                 return true;
00296             }
00297         }
00298     }
00299     return false;
00300 }
00301
00302 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcessFactory.h

CProcessFactory.h

プロセス生成クラスヘッダファイル [詳細]

#include "global.h"

CProcessFactory.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CProcessFactory
プロセス生成クラス [詳細]

説明

プロセス生成クラスヘッダファイル

作者:
aroka
日付:
2002/01/08 作成

CProcessFactory.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProcessFactory.h ソースファイル

CProcessFactory.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, aroka 新規作成
00009     Copyright (C) 2006, ryoji
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014
00015 #ifndef _CPROCESSFACTORY_H_
00016 #define _CPROCESSFACTORY_H_
00017
00018 #include "global.h"
00019
00020 class CProcess;
00021
00022 /*-----------------------------------------------------------------------
00023 クラスの宣言
00024 -----------------------------------------------------------------------*/
00034 class SAKURA_CORE_API CProcessFactory {
00035 public:
00036     CProcess* Create( HINSTANCE hInstance, LPSTR lpCmdLine );
00037 protected:
00038 private:
00039     bool IsValidVersion();
00040     bool IsStartingControlProcess();
00041     bool IsExistControlProcess();
00042     bool StartControlProcess();
00043     bool WaitForInitializedControlProcess();    // 2006.04.10 ryoji コントロールプロセスの初期化完了イベントを待つ
00044     bool TestWriteQuit();   // 2007.09.04 ryoji 「設定を保存して終了する」オプション処理（sakuext連携用）
00045 };
00046
00048 #endif /* _CPROCESSFACTORY_H_ */
00049
00050 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProfile.cpp

CProfile.cpp

INIファイル入出力 [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include "CProfile.h"
#include "Debug.h"

CProfile.cppのインクルード依存関係図

ソースコードを見る。

説明

INIファイル入出力

作者:
D.S.Koba
日付:
2003-10-21 D.S.Koba メンバ関数の名前と引数をそのままにしてメンバ変数，関数の中身を書き直し

2004-01-10 D.S.Koba 返値をBOOLからboolへ変更。IOProfileDataを型別の関数に分け，引数を減らす

2006-02-11 D.S.Koba 読み込み/書き出しを引数でなく，メンバで判別

2006-02-12 D.S.Koba IOProfileDataの中身の読み込みと書き出しを関数に分ける

CProfile.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProfile.cpp ソースファイル

CProfile.cpp

説明を見る。
00001
00010 /*
00011     Copyright (C) 2003, D.S.Koba
00012     Copyright (C) 2004, D.S.Koba, MIK, genta
00013     Copyright (C) 2006, D.S.Koba, ryoji
00014
00015     This software is provided 'as-is', without any express or implied
00016     warranty. In no event will the authors be held liable for any damages
00017     arising from the use of this software.
00018
00019     Permission is granted to anyone to use this software for any purpose,
00020     including commercial applications, and to alter it and redistribute it
00021     freely, subject to the following restrictions:
00022
00023         1. The origin of this software must not be misrepresented;
00024            you must not claim that you wrote the original software.
00025            If you use this software in a product, an acknowledgment
00026            in the product documentation would be appreciated but is
00027            not required.
00028
00029         2. Altered source versions must be plainly marked as such,
00030            and must not be misrepresented as being the original software.
00031
00032         3. This notice may not be removed or altered from any source
00033            distribution.
00034 */
00035 #include "stdafx.h"
00036 #ifdef USE_STREAM
00037 #  include <fstream>
00038 #else
00039 #  include <stdio.h>
00040 #  include <string.h>
00041 #endif
00042 //#include <sstream>
00043 #include <algorithm>
00044 #include "CProfile.h"
00045 #include "Debug.h"
00046
00047
00052 void CProfile::Init( void )
00053 {
00054     m_strProfileName = _T("");
00055     m_ProfileData.clear();
00056     m_bRead = true;
00057     return;
00058 }
00059
00067 void CProfile::ReadOneline(
00068     const std::basic_string< TCHAR >& line
00069 )
00070 {
00071     //  空行を読み飛ばす
00072     if( line.empty() )
00073         return;
00074
00075     //コメント行を読みとばす
00076     if( 0 == line.compare( 0, 2, _T("//") ))
00077         return;
00078
00079     // セクション取得
00080     //  Jan. 29, 2004 genta compare使用
00081     if( line.compare( 0, 1, _T("[") ) == 0
00082             && line.find( _T("=") ) == line.npos
00083             && line.find( _T("]") ) == ( line.size() - 1 ) ) {
00084         Section Buffer;
00085         Buffer.strSectionName = line.substr( 1, line.size() - 1 - 1 );
00086         m_ProfileData.push_back( Buffer );
00087     }
00088     // エントリ取得
00089     else if( !m_ProfileData.empty() ) { //最初のセクション以前の行のエントリは無視
00090         std::basic_string< TCHAR >::size_type idx = line.find( _T("=") );
00091         if( line.npos != idx ) {
00092             m_ProfileData.back().mapEntries.insert( PAIR_STR_STR( line.substr(0,idx), line.substr(idx+1) ) );
00093         }
00094     }
00095 }
00096
00110 bool CProfile::ReadProfile( const TCHAR* pszProfileName )
00111 {
00112     m_strProfileName = pszProfileName;
00113 #ifdef USE_STREAM
00114     std::basic_ifstream< TCHAR > ifs( m_strProfileName.c_str() );
00115     if(!ifs.is_open()) return false;
00116
00117     std::basic_string< TCHAR > strWork;
00118     try {
00119         for(;;) {
00120             std::getline( ifs, strWork );
00121             ReadOneline( strWork );
00122             if(ifs.eof()) break;
00123         }
00124     } //try
00125     catch(...) {
00126         //ファイルの読み込み失敗
00127         ifs.close();
00128         return false;
00129     }
00130     ifs.close();
00131 #else
00132     FILE* fp = _tfopen( m_strProfileName.c_str(), _T( "r" ));
00133     if( fp == NULL ){
00134         return false;
00135     }
00136
00137     const int CHUNK_SIZE = 2048;            // てきと～
00138     TCHAR* buf = new TCHAR[ CHUNK_SIZE ];   //  読み込み用
00139     std::basic_string< TCHAR > bstr;        //  作業用
00140     unsigned int offset = 0;                //  出力済み領域チェック用
00141
00142     try {
00143         while( !feof( fp )){
00144             int length = fread( buf, sizeof( TCHAR ), CHUNK_SIZE, fp );
00145
00146             //  エラーチェック
00147             if( ferror( fp )){
00148                 delete [] buf;
00149                 fclose( fp );
00150                 return false;
00151             }
00152
00153             bstr = bstr.substr( offset ) + std::basic_string< TCHAR >( buf, length );
00154             offset = 0;
00155
00156             int pos;
00157             //  \nが見つかる間ループ
00158             while(( pos = bstr.find( _T('\n' ), offset ) ) != bstr.npos ){
00159                 //  改行コードは渡さない
00160                 ReadOneline( bstr.substr( offset, pos - offset ) );
00161                 offset = pos + 1;
00162             }
00163
00164             if( feof( fp )){
00165                 if( offset < bstr.size() ){
00166                     //  最終行は\nが無くてもとりあえず
00167                     ReadOneline( bstr.substr( offset ) );
00168                 }
00169                 break;
00170             }
00171         }
00172     }
00173     catch( ... ){
00174         delete [] buf;
00175         fclose( fp );
00176         return false;
00177     }
00178     delete [] buf;
00179     fclose( fp );
00180 #endif
00181
00182 #ifdef _DEBUG
00183     //DUMP();
00184 #endif
00185     return true;
00186 }
00187
00188
00200 bool CProfile::WriteProfile(
00201     const TCHAR* pszProfileName,
00202     const TCHAR* pszComment
00203 )
00204 {
00205     if( NULL != pszProfileName ) {
00206         m_strProfileName = pszProfileName;
00207     }
00208
00209     std::vector< std::basic_string< TCHAR > > vecLine;
00210     if( NULL != pszComment ) {
00211         vecLine.push_back( _T("//") + std::basic_string< TCHAR >( pszComment ) );
00212         vecLine.push_back( _T("") );
00213     }
00214     std::vector< Section >::iterator iter;
00215     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00216     MAP_STR_STR::iterator mapiter;
00217     MAP_STR_STR::iterator mapiterEnd;
00218     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00219         //セクション名を書き込む
00220         vecLine.push_back( _T("[") + iter->strSectionName + _T("]") );
00221         mapiterEnd = iter->mapEntries.end();
00222         for( mapiter = iter->mapEntries.begin(); mapiter != mapiterEnd; mapiter++ ) {
00223             //エントリを書き込む
00224             vecLine.push_back( mapiter->first + _T("=") + mapiter->second );
00225         }
00226         vecLine.push_back( _T("") );
00227     }
00228
00229     return WriteFile( m_strProfileName, vecLine );
00230 }
00231
00243 bool CProfile::WriteFile(
00244     const std::basic_string< TCHAR >& strFilename,
00245     std::vector< std::basic_string< TCHAR > >& vecLine
00246 )
00247 {
00248 #ifdef USE_STREAM
00249     std::basic_ofstream< TCHAR > ofs( strFilename.c_str() );
00250     if(!ofs.is_open()) return false;
00251
00252     std::vector< std::basic_string< TCHAR > >::iterator iter;
00253     std::vector< std::basic_string< TCHAR > >::iterator iterEnd = vecLine.end();
00254
00255     try {
00256         for( iter = vecLine.begin(); iter != iterEnd; iter++ ) {
00257             ofs << iter->c_str() << _T("\n");
00258         }
00259     }
00260     catch(...) {
00261         ofs.close();
00262         return false;
00263     }
00264     ofs.close();
00265
00266 #else
00267     //  Jan. 29, 2004 genta standard i/o version
00268     FILE* fp = _tfopen( strFilename.c_str(), _T( "w" ));
00269     if( fp == NULL ){
00270         return false;
00271     }
00272
00273     std::vector< std::basic_string< TCHAR > >::iterator iter;
00274     std::vector< std::basic_string< TCHAR > >::iterator iterEnd = vecLine.end();
00275
00276     for( iter = vecLine.begin(); iter != iterEnd; iter++ ) {
00277         //  文字列に\0を含む場合を考慮してバイナリ出力
00278         if( fwrite( iter->data(), sizeof( TCHAR ), iter->size(), fp ) != iter->size() ){
00279             fclose( fp );
00280             return false;
00281         }
00282         if( _fputtc( _T('\n'), fp ) == _TEOF ){
00283             fclose( fp );
00284             return false;
00285         }
00286     }
00287     fclose( fp );
00288 #endif
00289     return true;
00290 }
00291
00292 bool CProfile::IOProfileData(
00293     const TCHAR* pszSectionName, const TCHAR* pszEntryKey, bool& bEntryValue)
00294 {
00295     if(m_bRead) return GetProfileData( pszSectionName, pszEntryKey, bEntryValue );
00296     else        return SetProfileData( pszSectionName, pszEntryKey, bEntryValue );
00297 }
00298
00299 bool CProfile::IOProfileData(
00300     const TCHAR* pszSectionName, const TCHAR* pszEntryKey, int& nEntryValue)
00301 {
00302     if(m_bRead) return GetProfileData( pszSectionName, pszEntryKey, nEntryValue );
00303     else        return SetProfileData( pszSectionName, pszEntryKey, nEntryValue );
00304 }
00305
00306 bool CProfile::IOProfileData(
00307     const TCHAR* pszSectionName, const TCHAR* pszEntryKey, WORD& wEntryValue)
00308 {
00309     if(m_bRead) return GetProfileData( pszSectionName, pszEntryKey, wEntryValue );
00310     else        return SetProfileData( pszSectionName, pszEntryKey, wEntryValue );
00311 }
00312
00313 bool CProfile::IOProfileData(
00314     const TCHAR* pszSectionName, const TCHAR* pszEntryKey, TCHAR& chEntryValue)
00315 {
00316     if(m_bRead) return GetProfileData( pszSectionName, pszEntryKey, chEntryValue );
00317     else        return SetProfileData( pszSectionName, pszEntryKey, chEntryValue );
00318 }
00319
00320 bool CProfile::IOProfileData(
00321     const TCHAR*    pszSectionName,
00322     const TCHAR*    pszEntryKey,
00323     TCHAR*          pEntryValue,
00324     const int&      nEntryValueSize
00325 )
00326 {
00327     if(m_bRead) return GetProfileData( pszSectionName, pszEntryKey, pEntryValue, nEntryValueSize );
00328     else        return SetProfileData( pszSectionName, pszEntryKey, pEntryValue, nEntryValueSize );
00329 }
00330
00331 bool CProfile::IOProfileData(
00332     const std::basic_string< TCHAR >&   strSectionName,
00333     const std::basic_string< TCHAR >&   strEntryKey,
00334     std::basic_string< TCHAR >&         strEntryValue
00335 )
00336 {
00337     if(m_bRead) return GetProfileData( strSectionName, strEntryKey, strEntryValue );
00338     else        return SetProfileData( strSectionName, strEntryKey, strEntryValue );
00339 }
00340
00352 bool CProfile::GetProfileData(
00353     const TCHAR*    pszSectionName,
00354     const TCHAR*    pszEntryKey,
00355     bool&           bEntryValue
00356 )
00357 {
00358     std::basic_string< TCHAR > strWork;
00359     if( false == GetProfileData( pszSectionName, pszEntryKey, strWork ) ) return false;
00360     if( strWork != _T("0") )    bEntryValue = true;
00361     else                        bEntryValue = false;
00362     return true;
00363 }
00364
00376 bool CProfile::SetProfileData(
00377     const TCHAR*    pszSectionName,
00378     const TCHAR*    pszEntryKey,
00379     const bool&     bEntryValue
00380 )
00381 {
00382     std::basic_string< TCHAR > strNewEntryValue;
00383     if( bEntryValue == true )   strNewEntryValue = _T("1");
00384     else                        strNewEntryValue = _T("0");
00385     return SetProfileData( pszSectionName, pszEntryKey, strNewEntryValue );
00386 }
00387
00400 bool CProfile::GetProfileData(
00401     const TCHAR*    pszSectionName,
00402     const TCHAR*    pszEntryKey,
00403     int&            nEntryValue
00404 )
00405 {
00406     std::basic_string< TCHAR > strWork;
00407     if( false == GetProfileData( pszSectionName, pszEntryKey, strWork ) ) return false;
00408     nEntryValue = _ttoi( strWork.c_str() );
00409     //std::basic_stringstream< TCHAR > stream;
00410     //stream << strWork;
00411     //stream >> EntryValue;
00412     return true;
00413 }
00414
00415
00428 bool CProfile::SetProfileData(
00429     const TCHAR*    pszSectionName,
00430     const TCHAR*    pszEntryKey,
00431     const int&      nEntryValue
00432 )
00433 {
00434     TCHAR szWork[32];
00435     _itot( nEntryValue, szWork, 10 );
00436     std::basic_string< TCHAR > strNewEntryValue( szWork );
00437     //std::basic_string< TCHAR > strNewEntryValue;
00438     //std::basic_stringstream< TCHAR > stream;
00439     //stream << EntryValue;
00440     //stream >> strNewEntryValue;
00441     return SetProfileData( pszSectionName, pszEntryKey, strNewEntryValue );
00442 }
00443
00455 bool CProfile::GetProfileData(
00456     const TCHAR*    pszSectionName,
00457     const TCHAR*    pszEntryKey,
00458     WORD&           wEntryValue
00459 )
00460 {
00461     std::basic_string< TCHAR > strWork;
00462     if( false == GetProfileData( pszSectionName, pszEntryKey, strWork ) ) return false;
00463     wEntryValue = _ttoi( strWork.c_str() );
00464     //std::basic_stringstream< TCHAR > stream;
00465     //stream << strWork;
00466     //stream >> EntryValue;
00467     return true;
00468 }
00469
00481 bool CProfile::SetProfileData(
00482     const TCHAR*    pszSectionName,
00483     const TCHAR*    pszEntryKey,
00484     const WORD&     wEntryValue
00485 )
00486 {
00487     TCHAR szWork[32];
00488     _itot( wEntryValue, szWork, 10 );
00489     std::basic_string< TCHAR > strNewEntryValue( szWork );
00490     //std::basic_string< TCHAR > strNewEntryValue;
00491     //std::basic_stringstream< TCHAR > stream;
00492     //stream << EntryValue;
00493     //stream >> strNewEntryValue;
00494     return SetProfileData( pszSectionName, pszEntryKey, strNewEntryValue );
00495 }
00496
00508 bool CProfile::GetProfileData(
00509     const TCHAR*    pszSectionName,
00510     const TCHAR*    pszEntryKey,
00511     TCHAR&          chEntryValue
00512 )
00513 {
00514     std::basic_string< TCHAR > strWork;
00515     if( false == GetProfileData( pszSectionName, pszEntryKey, strWork ) ) return false;
00516     if( 0 == strWork.length() ) chEntryValue = _T('\0');
00517     else                        chEntryValue = strWork.at(0);
00518     return true;
00519 }
00520
00532 bool CProfile::SetProfileData(
00533     const TCHAR*    pszSectionName,
00534     const TCHAR*    pszEntryKey,
00535     const TCHAR&    chEntryValue
00536 )
00537 {
00538     std::basic_string< TCHAR > strNewEntryValue;
00539     if( _T('\0') == chEntryValue )  strNewEntryValue = _T("");
00540     else                            strNewEntryValue = chEntryValue;
00541     return SetProfileData( pszSectionName, pszEntryKey, strNewEntryValue );
00542 }
00543
00556 bool CProfile::GetProfileData(
00557     const TCHAR*    pszSectionName,
00558     const TCHAR*    pszEntryKey,
00559     TCHAR*          pEntryValue,
00560     const int&      nEntryValueSize
00561 )
00562 {
00563     std::basic_string< TCHAR > strWork;
00564     if( false == GetProfileData( pszSectionName, pszEntryKey, strWork ) ) return false;
00565     if( nEntryValueSize > static_cast<int>(strWork.length())
00566             || nEntryValueSize ==0 ) {
00567         strWork.copy( pEntryValue, strWork.length() );
00568         //copy()はNULL文字終端しないのでNULL文字追加
00569         pEntryValue[strWork.length()] = _T('\0');
00570     }
00571     else {
00572         strWork.copy( pEntryValue, nEntryValueSize-1 );
00573         //copy()はNULL文字終端しないのでNULL文字追加
00574         pEntryValue[nEntryValueSize-1] = _T('\0');
00575     }
00576     return true;
00577 }
00578
00591 bool CProfile::SetProfileData(
00592     const TCHAR*    pszSectionName,
00593     const TCHAR*    pszEntryKey,
00594     const TCHAR*    pEntryValue,
00595     const int&      nEntryValueSize
00596 )
00597 {
00598     return SetProfileData( pszSectionName, pszEntryKey, std::basic_string< TCHAR >(pEntryValue) );
00599 }
00600
00612 bool CProfile::GetProfileData(
00613     const std::basic_string< TCHAR >&   strSectionName,
00614     const std::basic_string< TCHAR >&   strEntryKey,
00615     std::basic_string< TCHAR >&         strEntryValue
00616 )
00617 {
00618     std::basic_string< TCHAR > strWork;
00619     std::vector< Section >::iterator iter;
00620     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00621     MAP_STR_STR::iterator mapiter;
00622     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00623         if( iter->strSectionName == strSectionName ) {
00624             mapiter = iter->mapEntries.find( strEntryKey );
00625             if( iter->mapEntries.end() != mapiter ) {
00626                 strEntryValue = mapiter->second;
00627                 return true;
00628             }
00629         }
00630     }
00631     return false;
00632 }
00633
00645 bool CProfile::SetProfileData(
00646     const std::basic_string< TCHAR >&   strSectionName,
00647     const std::basic_string< TCHAR >&   strEntryKey,
00648     const std::basic_string< TCHAR >&   strEntryValue
00649 )
00650 {
00651     std::vector< Section >::iterator iter;
00652     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00653     MAP_STR_STR::iterator mapiter;
00654     MAP_STR_STR::iterator mapiterEnd;
00655     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00656         if( iter->strSectionName == strSectionName ) {
00657             //既存のセクションの場合
00658             mapiter = iter->mapEntries.find( strEntryKey );
00659             if( iter->mapEntries.end() != mapiter ) {
00660                 //既存のエントリの場合は値を上書き
00661                 mapiter->second = strEntryValue;
00662                 break;
00663             }
00664             else {
00665                 //既存のエントリが見つからない場合は追加
00666                 iter->mapEntries.insert( PAIR_STR_STR( strEntryKey, strEntryValue ) );
00667                 break;
00668             }
00669         }
00670     }
00671     //既存のセクションではない場合，セクション及びエントリを追加
00672     if( iterEnd == iter ) {
00673         Section Buffer;
00674         Buffer.strSectionName = strSectionName;
00675         Buffer.mapEntries.insert( PAIR_STR_STR( strEntryKey, strEntryValue ) );
00676         m_ProfileData.push_back( Buffer );
00677     }
00678     return true;
00679 }
00680
00681
00682
00683 void CProfile::DUMP( void )
00684 {
00685 #ifdef _DEBUG
00686     std::vector< Section >::iterator iter;
00687     std::vector< Section >::iterator iterEnd = m_ProfileData.end();
00688     //  2006.02.20 ryoji: MAP_STR_STR_ITER削除時の修正漏れによるコンパイルエラー修正
00689     MAP_STR_STR::iterator mapiter;
00690     MAP_STR_STR::iterator mapiterEnd;
00691     MYTRACE( "\n\nCProfile::DUMP()======================" );
00692     for( iter = m_ProfileData.begin(); iter != iterEnd; iter++ ) {
00693         MYTRACE( "\n■strSectionName=%s", iter->strSectionName.c_str() );
00694         mapiterEnd = iter->mapEntries.end();
00695         for( mapiter = iter->mapEntries.begin(); mapiter != mapiterEnd; mapiter++ ) {
00696             MYTRACE( "\"%s\" = \"%s\"\n", mapiter->first.c_str(), mapiter->second.c_str() );
00697         }
00698     }
00699     MYTRACE( "========================================\n" );
00700 #endif
00701     return;
00702 }
00703
00704 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProfile.h

CProfile.h

INIファイル入出力 [詳細]

#include <windows.h>
#include <string>
#include <vector>
#include <map>

CProfile.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CProfile
INIファイル入出力 [詳細]
struct | CProfile::Section

説明

INIファイル入出力

作者:
D.S.Koba
日付:
2003-10-21 D.S.Koba メンバ関数の名前と引数をそのままにしてメンバ変数，関数の中身を書き直し

2004-01-10 D.S.Koba 返値をBOOLからboolへ変更。IOProfileDataを型別の関数に分け，引数を減らす

2006-02-11 D.S.Koba 読み込み/書き出しを引数でなく，メンバで判別

2006-02-12 D.S.Koba IOProfileDataの中身の読み込みと書き出しを関数に分ける

CProfile.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CProfile.h ソースファイル

CProfile.h

説明を見る。
00001
00010 /*
00011     Copyright (C) 2003-2006, D.S.Koba
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00033
00034 class CProfile;
00035 #ifndef _CPROFILE_H_
00036 #define _CPROFILE_H_
00037
00038 #pragma warning( disable : 4786 )
00039
00040 #include <windows.h>
00041 #include <string>
00042 #include <vector>
00043 #include <map>
00044
00045 /*-----------------------------------------------------------------------
00046 クラスの宣言
00047 -----------------------------------------------------------------------*/
00051 class CProfile
00052 {
00053     typedef std::pair< std::basic_string< TCHAR >, std::basic_string< TCHAR > > PAIR_STR_STR;
00054     typedef std::map< std::basic_string< TCHAR >, std::basic_string< TCHAR > > MAP_STR_STR;
00055     struct Section
00056     {
00057         std::basic_string< TCHAR > strSectionName;
00058         MAP_STR_STR mapEntries;
00059     };
00060
00061 public:
00062     CProfile() {}
00063     ~CProfile() {};
00064     void Init( void );
00065     bool IsReadingMode( void ) { return m_bRead; }
00066     void SetReadingMode( void ) { m_bRead = true; }
00067     void SetWritingMode( void ) { m_bRead = false; }
00068     bool ReadProfile( const TCHAR* );
00069     bool WriteProfile( const TCHAR*, const TCHAR* );
00070
00071     bool IOProfileData( const TCHAR*, const TCHAR*, bool& );
00072     bool IOProfileData( const TCHAR*, const TCHAR*, int& );
00073     bool IOProfileData( const TCHAR*, const TCHAR*, WORD& );
00074     bool IOProfileData( const TCHAR*, const TCHAR*, TCHAR& );
00075     bool IOProfileData( const TCHAR*, const TCHAR*, TCHAR*, const int& );
00076     bool IOProfileData( const std::basic_string< TCHAR >&, const std::basic_string< TCHAR >&, std::basic_string< TCHAR >& );
00077
00078     void DUMP( void );
00079
00080 protected:
00081     void ReadOneline( const std::basic_string< TCHAR >& line );
00082     bool WriteFile( const std::basic_string< TCHAR >&, std::vector< std::basic_string< TCHAR > >& );
00083
00084     bool GetProfileData( const TCHAR*, const TCHAR*, bool& );
00085     bool GetProfileData( const TCHAR*, const TCHAR*, int& );
00086     bool GetProfileData( const TCHAR*, const TCHAR*, WORD& );
00087     bool GetProfileData( const TCHAR*, const TCHAR*, TCHAR& );
00088     bool GetProfileData( const TCHAR*, const TCHAR*, TCHAR*, const int& );
00089     bool GetProfileData( const std::basic_string< TCHAR >&, const std::basic_string< TCHAR >&, std::basic_string< TCHAR >& );
00090     bool SetProfileData( const TCHAR*, const TCHAR*, const bool& );
00091     bool SetProfileData( const TCHAR*, const TCHAR*, const int& );
00092     bool SetProfileData( const TCHAR*, const TCHAR*, const WORD& );
00093     bool SetProfileData( const TCHAR*, const TCHAR*, const TCHAR& );
00094     bool SetProfileData( const TCHAR*, const TCHAR*, const TCHAR*, const int& );
00095     bool SetProfileData( const std::basic_string< TCHAR >&, const std::basic_string< TCHAR >&, const std::basic_string< TCHAR >& );
00096
00097     // メンバ変数
00098     std::basic_string< TCHAR > m_strProfileName;
00099     std::vector< Section > m_ProfileData;
00100     bool m_bRead;
00101 };
00102
00104 #endif /* _CPROFILE_H_ */
00105
00106 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComBackup.cpp

CPropComBackup.cpp

共通設定ダイアログボックス、「バックアップ」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "etc_uty.h"
#include "sakura.hh"

CPropComBackup.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「バックアップ」ページ

作者:
Norio Nakatani

CPropComBackup.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_BACKUP_FOLDER_REF,   HIDC_BUTTON_BACKUP_FOLDER_REF,
    IDC_CHECK_BACKUP,               HIDC_CHECK_BACKUP,
    IDC_CHECK_BACKUP_YEAR,          HIDC_CHECK_BACKUP_YEAR,
    IDC_CHECK_BACKUP_MONTH,         HIDC_CHECK_BACKUP_MONTH,
    IDC_CHECK_BACKUP_DAY,           HIDC_CHECK_BACKUP_DAY,
    IDC_CHECK_BACKUP_HOUR,          HIDC_CHECK_BACKUP_HOUR,
    IDC_CHECK_BACKUP_MIN,           HIDC_CHECK_BACKUP_MIN,
    IDC_CHECK_BACKUP_SEC,           HIDC_CHECK_BACKUP_SEC,
    IDC_CHECK_BACKUPDIALOG,         HIDC_CHECK_BACKUPDIALOG,
    IDC_CHECK_BACKUPFOLDER,         HIDC_CHECK_BACKUPFOLDER,
    IDC_CHECK_BACKUP_DUSTBOX,       HIDC_CHECK_BACKUP_DUSTBOX,
    IDC_EDIT_BACKUPFOLDER,          HIDC_EDIT_BACKUPFOLDER,
    IDC_EDIT_BACKUP_3,              HIDC_EDIT_BACKUP_3,
    IDC_RADIO_BACKUP_TYPE1,         HIDC_RADIO_BACKUP_TYPE1,

    IDC_RADIO_BACKUP_TYPE3,         HIDC_RADIO_BACKUP_TYPE3NEWHID,
    IDC_RADIO_BACKUP_DATETYPE1,     HIDC_RADIO_BACKUP_DATETYPE1,
    IDC_RADIO_BACKUP_DATETYPE2,     HIDC_RADIO_BACKUP_DATETYPE2,
    IDC_SPIN_BACKUP_GENS,           HIDC_EDIT_BACKUP_3,
    IDC_CHECK_BACKUP_RETAINEXT,     HIDC_CHECK_BACKUP_RETAINEXT,
    IDC_CHECK_BACKUP_ADVANCED,      HIDC_CHECK_BACKUP_ADVANCED,
    IDC_EDIT_BACKUPFILE,            HIDC_EDIT_BACKUPFILE,

    0, 0
}

CPropComBackup.cpp の 27 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComBackup.cpp ソースファイル

CPropComBackup.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, genta, jepro
00009     Copyright (C) 2001, MIK, asa-o, genta, jepro
00010     Copyright (C) 2002, MIK, YAZAKI, genta, Moca
00011     Copyright (C) 2003, KEITA
00012     Copyright (C) 2004, genta
00013     Copyright (C) 2005, genta, aroka
00014     Copyright (C) 2006, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holder to use this code for other purpose.
00018 */
00019 #include "stdafx.h"
00020 #include "CPropCommon.h"
00021
00022 #include "etc_uty.h"
00023
00024 //@@@ 2001.02.04 Start by MIK: Popup Help
00025 #if 1   //@@@ 2002.01.03 MIK
00026 #include "sakura.hh"
00027 static const DWORD p_helpids[] = {  //10000
00028     IDC_BUTTON_BACKUP_FOLDER_REF,   HIDC_BUTTON_BACKUP_FOLDER_REF,  //バックアップフォルダ参照
00029     IDC_CHECK_BACKUP,               HIDC_CHECK_BACKUP,              //バックアップの作成
00030     IDC_CHECK_BACKUP_YEAR,          HIDC_CHECK_BACKUP_YEAR,         //バックアップファイル名（西暦年）
00031     IDC_CHECK_BACKUP_MONTH,         HIDC_CHECK_BACKUP_MONTH,        //バックアップファイル名（月）
00032     IDC_CHECK_BACKUP_DAY,           HIDC_CHECK_BACKUP_DAY,          //バックアップファイル名（日）
00033     IDC_CHECK_BACKUP_HOUR,          HIDC_CHECK_BACKUP_HOUR,         //バックアップファイル名（時）
00034     IDC_CHECK_BACKUP_MIN,           HIDC_CHECK_BACKUP_MIN,          //バックアップファイル名（分）
00035     IDC_CHECK_BACKUP_SEC,           HIDC_CHECK_BACKUP_SEC,          //バックアップファイル名（秒）
00036     IDC_CHECK_BACKUPDIALOG,         HIDC_CHECK_BACKUPDIALOG,        //作成前に確認
00037     IDC_CHECK_BACKUPFOLDER,         HIDC_CHECK_BACKUPFOLDER,        //指定フォルダに作成
00038     IDC_CHECK_BACKUP_DUSTBOX,       HIDC_CHECK_BACKUP_DUSTBOX,      //バックアップファイルをごみ箱に放り込む    //@@@ 2001.12.11 add MIK
00039     IDC_EDIT_BACKUPFOLDER,          HIDC_EDIT_BACKUPFOLDER,         //保存フォルダ名
00040     IDC_EDIT_BACKUP_3,              HIDC_EDIT_BACKUP_3,             //世代数
00041     IDC_RADIO_BACKUP_TYPE1,         HIDC_RADIO_BACKUP_TYPE1,        //バックアップの種類（拡張子）
00042 //  IDC_RADIO_BACKUP_TYPE2,         HIDC_RADIO_BACKUP_TYPE2NEWHID,      //バックアップの種類（日付・時刻） // 2002.11.09 Moca HIDが.._TYPE3と逆だった   // Jun.  5, 2004 genta 廃止
00043     IDC_RADIO_BACKUP_TYPE3,         HIDC_RADIO_BACKUP_TYPE3NEWHID,      //バックアップの種類（連番）// 2002.11.09 Moca HIDが.._TYPE2と逆だった
00044     IDC_RADIO_BACKUP_DATETYPE1,     HIDC_RADIO_BACKUP_DATETYPE1,    //付加する日時の種類（作成日時）    //Jul. 05, 2001 JEPRO 追加
00045     IDC_RADIO_BACKUP_DATETYPE2,     HIDC_RADIO_BACKUP_DATETYPE2,    //付加する日時の種類（更新日時）    //Jul. 05, 2001 JEPRO 追加
00046     IDC_SPIN_BACKUP_GENS,           HIDC_EDIT_BACKUP_3,             //保存する世代数のスピン
00047     IDC_CHECK_BACKUP_RETAINEXT,     HIDC_CHECK_BACKUP_RETAINEXT,    //元の拡張子を保存  // 2006.08.06 ryoji
00048     IDC_CHECK_BACKUP_ADVANCED,      HIDC_CHECK_BACKUP_ADVANCED,     //詳細設定  // 2006.08.06 ryoji
00049     IDC_EDIT_BACKUPFILE,            HIDC_EDIT_BACKUPFILE,           //詳細設定のエディットボックス  // 2006.08.06 ryoji
00050 //  IDC_STATIC,                     -1,
00051     0, 0
00052 };
00053 #else
00054 static const DWORD p_helpids[] = {  //10000
00055     IDC_BUTTON_BACKUP_FOLDER_REF,   10000,  //バックアップフォルダ参照
00056     IDC_CHECK_BACKUP,               10010,  //バックアップの作成
00057     IDC_CHECK_BACKUP_YEAR,          10011,  //バックアップファイル名（西暦年）
00058     IDC_CHECK_BACKUP_MONTH,         10012,  //バックアップファイル名（月）
00059     IDC_CHECK_BACKUP_DAY,           10013,  //バックアップファイル名（日）
00060     IDC_CHECK_BACKUP_HOUR,          10014,  //バックアップファイル名（時）
00061     IDC_CHECK_BACKUP_MIN,           10015,  //バックアップファイル名（分）
00062     IDC_CHECK_BACKUP_SEC,           10016,  //バックアップファイル名（秒）
00063     IDC_CHECK_BACKUPDIALOG,         10017,  //作成前に確認
00064     IDC_CHECK_BACKUPFOLDER,         10018,  //指定フォルダに作成
00065     IDC_CHECK_BACKUP_DUSTBOX,       10019,  //バックアップファイルをごみ箱に放り込む    //@@@ 2001.12.11 add MIK
00066     IDC_EDIT_BACKUPFOLDER,          10040,  //保存フォルダ名
00067     IDC_EDIT_BACKUP_3,              10041,  //世代数
00068     IDC_RADIO_BACKUP_TYPE1,         10060,  //バックアップの種類（拡張子）
00069 //  IDC_RADIO_BACKUP_TYPE2,         10062,  //バックアップの種類（日付・時刻    // Jun.  5, 2004 genta 廃止
00070     IDC_RADIO_BACKUP_TYPE3,         10061,  //バックアップの種類（連番）
00071     IDC_RADIO_BACKUP_DATETYPE1,     10063,  //付加する日時の種類（作成日時）    //Jul. 05, 2001 JEPRO 追加
00072     IDC_RADIO_BACKUP_DATETYPE2,     10064,  //付加する日時の種類（更新日時）    //Jul. 05, 2001 JEPRO 追加
00073     IDC_SPIN_BACKUP_GENS,           -1,
00074 //  IDC_STATIC,                     -1,
00075     0, 0
00076 };
00077 #endif
00078 //@@@ 2001.02.04 End
00079
00080 //  From Here Jun. 2, 2001 genta
00087 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_BACKUP(
00088     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00089 {
00090     return DlgProc( &CPropCommon::DispatchEvent_PROP_BACKUP, hwndDlg, uMsg, wParam, lParam );
00091 }
00092 //  To Here Jun. 2, 2001 genta
00093
00094
00095 /* メッセージ処理 */
00096 INT_PTR CPropCommon::DispatchEvent_PROP_BACKUP( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00097 {
00098     WORD        wNotifyCode;
00099     WORD        wID;
00100     HWND        hwndCtl;
00101     NMHDR*      pNMHDR;
00102     NM_UPDOWN*  pMNUD;
00103     int         idCtrl;
00104 //  int         nVal;
00105     int         nVal;   //Sept.21, 2000 JEPRO スピン要素を加えたので復活させた
00106     char        szFolder[_MAX_PATH];
00107 //  int         nDummy;
00108 //  int         nCharChars;
00109
00110     switch( uMsg ){
00111
00112     case WM_INITDIALOG:
00113         /* ダイアログデータの設定 p1 */
00114         SetData_PROP_BACKUP( hwndDlg );
00115         // Modified by KEITA for WIN64 2003.9.6
00116 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00117
00118         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00119         //  Oct. 5, 2002 genta バックアップフォルダ名の入力サイズを指定
00120         //  Oct. 8, 2002 genta 最後に付加される\の領域を残すためバッファサイズ-1しか入力させない
00121         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ),  EM_LIMITTEXT, (WPARAM)( sizeof( m_Common.m_szBackUpFolder ) - 1 - 1 ), 0 );
00122         // 20051107 aroka
00123         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ),  EM_LIMITTEXT, (WPARAM)( sizeof( m_Common.m_szBackUpPathAdvanced ) - 1 - 1 ), 0 );
00124         return TRUE;
00125 //****  From Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるので以下のWM_NOTIFYをコメントアウトにし下に修正を置いた
00126 //  case WM_NOTIFY:
00127 //      idCtrl = (int)wParam;
00128 //      pNMHDR = (NMHDR*)lParam;
00129 //      pMNUD  = (NM_UPDOWN*)lParam;
00132 //          switch( pNMHDR->code ){
00133 //          case PSN_HELP:
00134 //              OnHelp( hwndDlg, IDD_PROP_BACKUP );
00135 //              return TRUE;
00136 //          case PSN_KILLACTIVE:
00137 //              /* ダイアログデータの取得 p1 */
00138 //              GetData_PROP_BACKUP( hwndDlg );
00139 //              return TRUE;
00140 //          }
00141 //          break;
00143 //      break;
00144
00145     case WM_NOTIFY:
00146         idCtrl = (int)wParam;
00147         pNMHDR = (NMHDR*)lParam;
00148         pMNUD  = (NM_UPDOWN*)lParam;
00149         switch( idCtrl ){
00150         default:
00151             switch( pNMHDR->code ){
00152             case PSN_HELP:
00153                 OnHelp( hwndDlg, IDD_PROP_BACKUP );
00154                 return TRUE;
00155             case PSN_KILLACTIVE:
00156                 /* ダイアログデータの取得 p1 */
00157                 GetData_PROP_BACKUP( hwndDlg );
00158                 return TRUE;
00159 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00160             case PSN_SETACTIVE:
00161                 m_nPageNum = ID_PAGENUM_BACKUP; //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更(参照しているのはCPropCommon.cppのみの1箇所)
00162                 return TRUE;
00163             }
00164             break;
00165
00166         case IDC_SPIN_BACKUP_GENS:
00167             /* バックアップファイルの世代数 */
00168             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, NULL, FALSE );
00169             if( pMNUD->iDelta < 0 ){
00170                 ++nVal;
00171             }else
00172             if( pMNUD->iDelta > 0 ){
00173                 --nVal;
00174             }
00175             if( nVal < 1 ){
00176                 nVal = 1;
00177             }
00178             if( nVal > 99 ){
00179                 nVal = 99;
00180             }
00181             ::SetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, nVal, FALSE );
00182             return TRUE;
00183         }
00184 //****  To Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるので以下のWM_NOTIFYをコメントアウトにし下に修正を置いた
00185         break;
00186
00187     case WM_COMMAND:
00188         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00189         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00190         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00191         switch( wNotifyCode ){
00192         /* ボタン／チェックボックスがクリックされた */
00193         case BN_CLICKED:
00194             switch( wID ){
00195             case IDC_RADIO_BACKUP_TYPE1:
00196                 //  Aug. 16, 2000 genta
00197                 //  バックアップ方式追加
00198             case IDC_RADIO_BACKUP_TYPE3:
00199             case IDC_CHECK_BACKUP:
00200             case IDC_CHECK_BACKUPFOLDER:
00201                 //  Aug. 21, 2000 genta
00202             case IDC_CHECK_AUTOSAVE:
00203             //  Jun.  5, 2004 genta IDC_RADIO_BACKUP_TYPE2を廃止して，
00204             //  IDC_RADIO_BACKUP_DATETYPE1, IDC_RADIO_BACKUP_DATETYPE2を同列に持ってきた
00205             case IDC_RADIO_BACKUP_DATETYPE1:
00206             case IDC_RADIO_BACKUP_DATETYPE2:
00207             // 20051107 aroka
00208             case IDC_CHECK_BACKUP_ADVANCED:
00209                 GetData_PROP_BACKUP( hwndDlg );
00210                 UpdateBackupFile( hwndDlg );
00211                 EnableBackupInput(hwndDlg);
00212                 return TRUE;
00213             case IDC_BUTTON_BACKUP_FOLDER_REF:  /* フォルダ参照 */
00214 //              strcpy( szFolder, m_Common.m_szBackUpFolder );
00215                 /* バックアップを作成するフォルダ */
00216                 ::GetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFOLDER, szFolder, sizeof( szFolder ));
00217
00218                 if( SelectDir( hwndDlg, "バックアップを作成するフォルダを選んでください", (const char *)szFolder, (char *)szFolder ) ){
00219                     strcpy( m_Common.m_szBackUpFolder, szFolder );
00220                     ::SetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_szBackUpFolder );
00221                 }
00222                 UpdateBackupFile( hwndDlg );
00223                 return TRUE;
00224             default: // 20051107 aroka Default節 追加
00225                 GetData_PROP_BACKUP( hwndDlg );
00226                 UpdateBackupFile( hwndDlg );
00227             }
00228             break;  /* BN_CLICKED */
00229         case EN_CHANGE: // 20051107 aroka フォルダが変更されたらリアルタイムにエディットボックス内を更新
00230             switch( wID ){
00231             case IDC_EDIT_BACKUPFOLDER:
00232                 ::GetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_szBackUpFolder, sizeof( m_Common.m_szBackUpFolder ));
00233                 UpdateBackupFile( hwndDlg );
00234                 break;
00235             }
00236             break;  /* EN_CHANGE */
00237         }
00238         break;  /* WM_COMMAND */
00239
00240 //@@@ 2001.02.04 Start by MIK: Popup Help
00241     case WM_HELP:
00242         {
00243             HELPINFO *p = (HELPINFO *)lParam;
00244             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00245         }
00246         return TRUE;
00247         /*NOTREACHED*/
00248         //break;
00249 //@@@ 2001.02.04 End
00250
00251 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00252     //Context Menu
00253     case WM_CONTEXTMENU:
00254         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00255         return TRUE;
00256 //@@@ 2001.12.22 End
00257
00258     }
00259     return FALSE;
00260 }
00261
00262
00269 void CPropCommon::SetData_PROP_BACKUP( HWND hwndDlg )
00270 {
00271 //  BOOL    bRet;
00272
00273 //  BOOL                m_bGrepExitConfirm; /* Grepモードで保存確認するか */
00274
00275
00276     /* バックアップの作成 */
00277     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP, m_Common.m_bBackUp );
00278     /* バックアップの作成前に確認 */
00279     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUPDIALOG, m_Common.m_bBackUpDialog );
00280 //  /* 指定フォルダにバックアップを作成する */ //   20051107 aroka 「バックアップの作成」に連動させる
00281 //  ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUPFOLDER, m_Common.m_bBackUpFolder );
00282
00283     /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
00284     //  Jun.  5, 2004 genta 元の拡張子を残す設定(5,6)を追加．
00285     switch( m_Common.GetBackupType() ){
00286     case 2:
00287         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1, 1 ); // 付加する日付のタイプ(現時刻)
00288         break;
00289     case 3:
00290     case 6:
00291         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_TYPE3, 1 );
00292         break;
00293     case 4:
00294         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2, 1 ); // 付加する日付のタイプ(前回の保存時刻)
00295         break;
00296     case 5:
00297     case 1:
00298     default:
00299         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_TYPE1, 1 );
00300         break;
00301     }
00302
00303     //  Jun.  5, 2004 genta 元の拡張子を残す設定(5,6)を追加．
00304     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT,
00305         ( m_Common.GetBackupType() == 5 || m_Common.GetBackupType() == 6 ) ? 1 : 0
00306      );
00307
00308     /* バックアップファイル名：日付の年 */
00309     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_YEAR, m_Common.GetBackupOpt(BKUP_YEAR) );
00310     /* バックアップファイル名：日付の月 */
00311     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_MONTH, m_Common.GetBackupOpt(BKUP_MONTH) );
00312     /* バックアップファイル名：日付の日 */
00313     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_DAY, m_Common.GetBackupOpt(BKUP_DAY) );
00314     /* バックアップファイル名：日付の時 */
00315     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_HOUR, m_Common.GetBackupOpt(BKUP_HOUR) );
00316     /* バックアップファイル名：日付の分 */
00317     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_MIN, m_Common.GetBackupOpt(BKUP_MIN) );
00318     /* バックアップファイル名：日付の秒 */
00319     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_SEC, m_Common.GetBackupOpt(BKUP_SEC) );
00320
00321     /* 指定フォルダにバックアップを作成する */ // 20051107 aroka 移動：連動対象にする。
00322     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUPFOLDER, m_Common.m_bBackUpFolder );
00323
00324     /* バックアップを作成するフォルダ */
00325     ::SetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_szBackUpFolder );
00326
00327     /* バックアップファイルをごみ箱に放り込む */    //@@@ 2001.12.11 add MIK
00328     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX, m_Common.m_bBackUpDustBox );   //@@@ 2001.12.11 add MIK
00329
00330     /* バックアップ先フォルダを詳細設定する */ // 20051107 aroka
00331     ::CheckDlgButton( hwndDlg, IDC_CHECK_BACKUP_ADVANCED, m_Common.m_bBackUpPathAdvanced );
00332
00333     /* バックアップを作成するフォルダの詳細設定 */ // 20051107 aroka
00334     ::SetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFILE, m_Common.m_szBackUpPathAdvanced );
00335
00336     /* バックアップを作成するフォルダの詳細設定 */ // 20051128 aroka
00337     switch( m_Common.GetBackupTypeAdv() ){
00338     case 2:
00339         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A, 1 );    // 付加する日付のタイプ(現時刻)
00340         break;
00341     case 4:
00342         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A, 1 );    // 付加する日付のタイプ(前回の保存時刻)
00343         break;
00344     default:
00345         ::CheckDlgButton( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A, 1 );
00346         break;
00347     }
00348
00349     //  From Here Aug. 16, 2000 genta
00350     int nN = m_Common.GetBackupCount();
00351     nN = nN < 1  ?  1 : nN;
00352     nN = nN > 99 ? 99 : nN;
00353
00354     ::SetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, nN, FALSE );   //  Oct. 29, 2001 genta
00355     //  To Here Aug. 16, 2000 genta
00356
00357     UpdateBackupFile( hwndDlg );
00358
00359     EnableBackupInput(hwndDlg);
00360     return;
00361 }
00362
00363
00364
00365
00366
00367
00368
00369
00370 /* ダイアログデータの取得 */
00371 int CPropCommon::GetData_PROP_BACKUP( HWND hwndDlg )
00372 {
00373 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00374 //  m_nPageNum = ID_PAGENUM_BACKUP;
00375
00376     /* バックアップの作成 */
00377     m_Common.m_bBackUp = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP );
00378     /* バックアップの作成前に確認 */
00379     m_Common.m_bBackUpDialog = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPDIALOG );
00380 //  /* 指定フォルダにバックアップを作成する */ // 20051107 aroka 「バックアップの作成」に連動させる
00381 //  m_Common.m_bBackUpFolder = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPFOLDER );
00382
00383
00384     /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
00385     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ) ){
00386         //  Jun.  5, 2005 genta 拡張子を残すパターンを追加
00387         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT )){
00388             m_Common.SetBackupType(5);
00389         }
00390         else {
00391             m_Common.SetBackupType(1);
00392         }
00393     }
00394 //  if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE2 ) ){
00395         // 2001/06/05 Start by asa-o: 日付のタイプ
00396         if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ) ){
00397             m_Common.SetBackupType(2);  // 現時刻
00398         }
00399         if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ) ){
00400             m_Common.SetBackupType(4);  // 前回の保存時刻
00401         }
00402         // 2001/06/05 End
00403 //  }
00404
00405     //  Aug. 16, 2000 genta
00406     //  3 = *.b??
00407     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ) ){
00408         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT )){
00409             m_Common.SetBackupType(6);
00410         }
00411         else {
00412             m_Common.SetBackupType(3);
00413         }
00414     }
00415
00416     /* バックアップファイル名：日付の年 */
00417     m_Common.SetBackupOpt(BKUP_YEAR, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_YEAR ) == BST_CHECKED);
00418     /* バックアップファイル名：日付の月 */
00419     m_Common.SetBackupOpt(BKUP_MONTH, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_MONTH ) == BST_CHECKED);
00420     /* バックアップファイル名：日付の日 */
00421     m_Common.SetBackupOpt(BKUP_DAY, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_DAY ) == BST_CHECKED);
00422     /* バックアップファイル名：日付の時 */
00423     m_Common.SetBackupOpt(BKUP_HOUR, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_HOUR ) == BST_CHECKED);
00424     /* バックアップファイル名：日付の分 */
00425     m_Common.SetBackupOpt(BKUP_MIN, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_MIN ) == BST_CHECKED);
00426     /* バックアップファイル名：日付の秒 */
00427     m_Common.SetBackupOpt(BKUP_SEC, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_SEC ) == BST_CHECKED);
00428
00429     /* 指定フォルダにバックアップを作成する */ // 20051107 aroka 移動
00430     m_Common.m_bBackUpFolder = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPFOLDER );
00431
00432     /* バックアップを作成するフォルダ */
00433     //  Oct. 5, 2002 genta サイズをsizeof()で指定
00434     //  Oct. 8, 2002 genta 後ろに\が追加されるので，1文字余裕を見る必要がある．
00435     ::GetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFOLDER, m_Common.m_szBackUpFolder, sizeof( m_Common.m_szBackUpFolder ) - 1);
00436
00437     /* バックアップファイルをごみ箱に放り込む */    //@@@ 2001.12.11 add MIK
00438     m_Common.m_bBackUpDustBox = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX );  //@@@ 2001.12.11 add MIK
00439
00440     /* 指定フォルダにバックアップを作成する詳細設定 */ // 20051107 aroka
00441     m_Common.m_bBackUpPathAdvanced = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_ADVANCED );
00442     /* バックアップを作成するフォルダ */ // 20051107 aroka
00443     ::GetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFILE, m_Common.m_szBackUpPathAdvanced, sizeof( m_Common.m_szBackUpPathAdvanced ) - 1);
00444
00445     // 20051128 aroka 詳細設定の日付のタイプ
00446     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ) ){
00447         m_Common.SetBackupTypeAdv(2);   // 現時刻
00448     }
00449     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ) ){
00450         m_Common.SetBackupTypeAdv(4);   // 前回の保存時刻
00451     }
00452
00453 //  int nDummy;
00454 //  int nCharChars;
00455 //  nDummy = strlen( m_Common.m_szBackUpFolder );
00456 //  if( 0 < nDummy ){
00457 //      /* フォルダの最後が「半角かつ'\\'」でない場合は、付加する */
00458 //      nCharChars = &m_Common.m_szBackUpFolder[nDummy] - CMemory::MemCharPrev( m_Common.m_szBackUpFolder, nDummy, &m_Common.m_szBackUpFolder[nDummy] );
00459 //      if( 1 == nCharChars && m_Common.m_szBackUpFolder[nDummy - 1] == '\\' ){
00460 //      }else{
00461 //          strcat( m_Common.m_szBackUpFolder, "\\" );
00462 //      }
00463 //  }
00464
00465     //  From Here Aug. 16, 2000 genta
00466     //  世代数の取得
00467 //  char szNumBuf[6];
00468     int  nN;
00469 //  char *pDigit;
00470     nN = ::GetDlgItemInt( hwndDlg, IDC_EDIT_BACKUP_3, NULL, FALSE );    //  Oct. 29, 2001 genta
00471
00472 //  for( nN = 0, pDigit = szNumBuf; *pDigit != '\0'; pDigit++ ){
00473 //      if( '0' <= *pDigit && *pDigit <= '9' ){
00474 //          nN = nN * 10 + *pDigit - '0';
00475 //      }
00476 //      else
00477 //          break;
00478 //  }
00479     nN = nN < 1  ?  1 : nN;
00480     nN = nN > 99 ? 99 : nN;
00481     m_Common.SetBackupCount( nN );
00482     //  To Here Aug. 16, 2000 genta
00483
00484     return TRUE;
00485 }
00486
00487 //  From Here Aug. 16, 2000 genta
00498 void CPropCommon::EnableBackupInput(HWND hwndDlg)
00499 {
00500     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP ) ){
00501         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_ADVANCED ), TRUE ); // 20050628 aroka
00502         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUP_ADVANCED ) ){
00503             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ), FALSE );
00504             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ), FALSE );
00505             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), FALSE );
00506             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), FALSE );
00507             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), FALSE );
00508             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), FALSE );
00509             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), FALSE );
00510             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), FALSE );
00511             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), FALSE );
00512             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), FALSE );
00513             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ), FALSE );
00514             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ), FALSE );
00515             //  Jun.  5, 2005 genta 追加
00516             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), FALSE );
00517             //  20051107 aroka 追加
00518             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), FALSE ); // 20051107 aroka
00519             // 詳細設定
00520             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ), TRUE );
00521             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP ), SW_SHOW );
00522             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), TRUE );
00523             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), SW_SHOW );
00524             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), TRUE );
00525             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), SW_SHOW );
00526             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), TRUE );
00527             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), SW_SHOW );
00528         }else{
00529             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ), TRUE );
00530             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ), TRUE );
00531             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ), TRUE );
00532             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ), TRUE );
00533
00534             if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ) ||
00535                 ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE3 )){
00536                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), TRUE );
00537             }
00538             else {
00539                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), FALSE );
00540             }
00541
00542             if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ) ){
00543                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), TRUE );
00544                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), TRUE );
00545                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), TRUE );  // added Oct. 6, JEPRO Enableになるように変更
00546             }
00547             else {
00548                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), FALSE );
00549                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), FALSE );
00550                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), FALSE ); // added Oct. 6, JEPRO Disableになるように変更
00551             }
00552             if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ) ||
00553                 ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ) ){
00554                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), TRUE );
00555                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), TRUE );
00556                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), TRUE );
00557                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), TRUE );
00558                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), TRUE );
00559                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), TRUE );
00560             }else{
00561                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), FALSE );
00562                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), FALSE );
00563                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), FALSE );
00564                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), FALSE );
00565                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), FALSE );
00566                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), FALSE );
00567             }
00568
00569             // 詳細設定
00570             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ), FALSE );
00571             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP ), SW_HIDE );
00572             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), SW_HIDE );
00573             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), SW_HIDE );
00574             ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), SW_HIDE );
00575         }
00576
00577         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPFOLDER ), TRUE );
00578         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_BACKUPFOLDER ) ){
00579             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_4 ), TRUE );    // added Sept. 6, JEPRO フォルダ指定したときだけEnableになるように変更
00580             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ), TRUE );
00581             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKUP_FOLDER_REF ), TRUE );
00582         }else{
00583             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_4 ), FALSE );   // added Sept. 6, JEPRO フォルダ指定したときだけEnableになるように変更
00584             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ), FALSE );
00585             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKUP_FOLDER_REF ), FALSE );
00586         }
00587         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX ), TRUE );  //@@@ 2001.12.11 add MIK
00588
00589         // 作成前に確認
00590         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPDIALOG ), TRUE );
00591     }else{
00592         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE1 ), FALSE );
00593         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_TYPE3 ), FALSE );
00594         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_YEAR ), FALSE );
00595         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MONTH ), FALSE );
00596         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DAY ), FALSE );
00597         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_HOUR ), FALSE );
00598         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_MIN ), FALSE );
00599         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_SEC ), FALSE );
00600         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_3 ), FALSE );
00601         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUP_3 ), FALSE );
00602         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPDIALOG ), FALSE );
00603         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUPFOLDER ), FALSE );
00604         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_4 ), FALSE );   // added Sept. 6, JEPRO フォルダ指定したときだけEnableになるように変更
00605         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFOLDER ), FALSE );
00606         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKUP_FOLDER_REF ), FALSE );
00607         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1 ), FALSE );
00608         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2 ), FALSE );
00609         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_DUSTBOX ), FALSE ); //@@@ 2001.12.11 add MIK
00610         //  Jun.  5, 2005 genta 追加
00611         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_RETAINEXT ), FALSE );
00612         //  20051107 aroka 追加
00613         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_BACKUP_GENS ), FALSE ); // 20051107 aroka
00614         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_BACKUP_ADVANCED ), FALSE );
00615         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_BACKUPFILE ), FALSE );
00616         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP ), SW_HIDE );
00617         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_BACKUP_HELP2 ), SW_HIDE );
00618         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE1A ), SW_HIDE );
00619         ::ShowWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_BACKUP_DATETYPE2A ), SW_HIDE );
00620     }
00621 }
00622 //  To Here Aug. 16, 2000 genta
00623
00624
00632 void CPropCommon::UpdateBackupFile(HWND hwndDlg)    //  バックアップファイルの詳細設定
00633 {
00634     char temp[MAX_PATH];
00635     /* バックアップを作成するファイル */ // 20051107 aroka
00636     if( !m_Common.m_bBackUp ){
00637         _tcscpy( temp, _T("") );
00638     }
00639     else{
00640         if( m_Common.m_bBackUpFolder ){
00641             _tcscpy( temp, _T("") );
00642         }
00643         else if( m_Common.m_bBackUpDustBox  ){
00644             wsprintf( temp, _T("%s\\"), _T("(ゴミ箱)") );
00645         }
00646         else{
00647             wsprintf( temp, _T(".\\") );
00648         }
00649
00650         switch( m_Common.GetBackupType() ){
00651         case 1: // .bak
00652             _tcscat( temp, _T("$0.bak") );
00653             break;
00654         case 5: // .*.bak
00655             _tcscat( temp, _T("$0.*.bak") );
00656             break;
00657         case 3: // .b??
00658             _tcscat( temp, _T("$0.b??") );
00659             break;
00660         case 6: // .*.b??
00661             _tcscat( temp, _T("$0.*.b??") );
00662             break;
00663         case 2: //  日付，時刻
00664         case 4: //  日付，時刻
00665             _tcscat( temp, _T("$0_") );
00666
00667             if( m_Common.GetBackupOpt(BKUP_YEAR) ){ /* バックアップファイル名：日付の年 */
00668                 _tcscat( temp, _T("%Y") );
00669             }
00670             if( m_Common.GetBackupOpt(BKUP_MONTH) ){    /* バックアップファイル名：日付の月 */
00671                 _tcscat( temp, _T("%m") );
00672             }
00673             if( m_Common.GetBackupOpt(BKUP_DAY) ){  /* バックアップファイル名：日付の日 */
00674                 _tcscat( temp, _T("%d") );
00675             }
00676             if( m_Common.GetBackupOpt(BKUP_HOUR) ){ /* バックアップファイル名：日付の時 */
00677                 _tcscat( temp, _T("%H") );
00678             }
00679             if( m_Common.GetBackupOpt(BKUP_MIN) ){  /* バックアップファイル名：日付の分 */
00680                 _tcscat( temp, _T("%M") );
00681             }
00682             if( m_Common.GetBackupOpt(BKUP_SEC) ){  /* バックアップファイル名：日付の秒 */
00683                 _tcscat( temp, _T("%S") );
00684             }
00685
00686             _tcscat( temp, _T(".*") );
00687             break;
00688         default:
00689             break;
00690         }
00691     }
00692     if( !m_Common.m_bBackUpPathAdvanced ){  // 詳細設定モードでないときだけ自動更新する
00693         wsprintf( m_Common.m_szBackUpPathAdvanced, _T("%s"), temp );
00694         ::SetDlgItemText( hwndDlg, IDC_EDIT_BACKUPFILE, m_Common.m_szBackUpPathAdvanced );
00695     }
00696     return;
00697 }
00698 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComCustmenu.cpp

CPropComCustmenu.cpp

#include "stdafx.h"
#include "CPropCommon.h"
#include "CDlgInput1.h"
#include "CDlgOpenFile.h"
#include "etc_uty.h"
#include "debug.h"
#include "sakura.hh"

CPropComCustmenu.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | STR_CUSTMENU_HEAD_LEN 46
#define | STR_CUSTMENU_HEAD "テキストエディタ カスタムメニュー設定ファイル\x1a"

変数

static const DWORD | p_helpids []

説明

共通設定ダイアログボックス、「カスタムメニュー」ページ

作者:
Norio Nakatani

CPropComCustmenu.cpp で定義されています。

マクロ定義

#define STR_CUSTMENU_HEAD "テキストエディタ カスタムメニュー設定ファイル\x1a"

CPropComCustmenu.cpp の 26 行で定義されています。

#define STR_CUSTMENU_HEAD_LEN 46

CPropComCustmenu.cpp の 25 行で定義されています。

参照元 CPropCommon::p8_Import_CustMenuSetting().

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_DELETE,              HIDC_BUTTON_DELETE,
    IDC_BUTTON_INSERTSEPARATOR,     HIDC_BUTTON_INSERTSEPARATOR,
    IDC_BUTTON_INSERT,              HIDC_BUTTON_INSERT,
    IDC_BUTTON_ADD,                 HIDC_BUTTON_ADD,
    IDC_BUTTON_UP,                  HIDC_BUTTON_UP,
    IDC_BUTTON_DOWN,                HIDC_BUTTON_DOWN,
    IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT,
    IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT,
    IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND,
    IDC_COMBO_MENU,                 HIDC_COMBO_MENU,
    IDC_LIST_FUNC,                  HIDC_LIST_FUNC,
    IDC_LIST_RES,                   HIDC_LIST_RES,

    0, 0
}

CPropComCustmenu.cpp の 33 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComCustmenu.cpp ソースファイル

CPropComCustmenu.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, genta, MIK, jepro
00009     Copyright (C) 2002, YAZAKI, MIK, aroka
00010     Copyright (C) 2003, KEITA
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 #include "stdafx.h"
00018 #include "CPropCommon.h"
00019 #include "CDlgInput1.h"
00020 #include "CDlgOpenFile.h"
00021 #include "etc_uty.h"
00022 #include "debug.h" // 2002/2/10 aroka
00023
00024 //  From Here Sept. 5, 2000 JEPRO 半角カタカナの全角化に伴い文字長を変更(27→46)
00025 #define STR_CUSTMENU_HEAD_LEN   46
00026 #define STR_CUSTMENU_HEAD       "テキストエディタ カスタムメニュー設定ファイル\x1a"
00027 //  To Here Sept. 5, 2000
00028
00029
00030 //@@@ 2001.02.04 Start by MIK: Popup Help
00031 #if 1   //@@@ 2002.01.03 add MIK
00032 #include "sakura.hh"
00033 static const DWORD p_helpids[] = {  //10100
00034     IDC_BUTTON_DELETE,              HIDC_BUTTON_DELETE,             //メニューから機能削除
00035     IDC_BUTTON_INSERTSEPARATOR,     HIDC_BUTTON_INSERTSEPARATOR,    //セパレータ挿入
00036     IDC_BUTTON_INSERT,              HIDC_BUTTON_INSERT,             //メニューへ機能挿入
00037     IDC_BUTTON_ADD,                 HIDC_BUTTON_ADD,                //メニューへ機能追加
00038     IDC_BUTTON_UP,                  HIDC_BUTTON_UP,                 //メニューの機能を上へ移動
00039     IDC_BUTTON_DOWN,                HIDC_BUTTON_DOWN,               //メニューの機能を下へ移動
00040     IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT,             //インポート
00041     IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT,             //エクスポート
00042     IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND,            //機能の種別
00043     IDC_COMBO_MENU,                 HIDC_COMBO_MENU,                //メニューの種別
00044     IDC_LIST_FUNC,                  HIDC_LIST_FUNC,                 //機能一覧
00045     IDC_LIST_RES,                   HIDC_LIST_RES,                  //メニュー一覧
00046 //  IDC_LABEL_MENUFUNCKIND,         -1,
00047 //  IDC_LABEL_MENUCHOICE,           -1,
00048 //  IDC_LABEL_MENUFUNC,             -1,
00049 //  IDC_LABEL_MENU,                 -1,
00050 //  IDC_LABEL_MENUKEYCHANGE,        -1,
00051 //  IDC_STATIC,                     -1,
00052     0, 0
00053 };
00054 #else
00055 static const DWORD p_helpids[] = {  //10100
00056     IDC_BUTTON_DELETE,              10100,  //メニューから機能削除
00057     IDC_BUTTON_INSERTSEPARATOR,     10101,  //セパレータ挿入
00058     IDC_BUTTON_INSERT,              10102,  //メニューへ機能挿入
00059     IDC_BUTTON_ADD,                 10103,  //メニューへ機能追加
00060     IDC_BUTTON_UP,                  10104,  //メニューの機能を上へ移動
00061     IDC_BUTTON_DOWN,                10105,  //メニューの機能を下へ移動
00062     IDC_BUTTON_IMPORT,              10106,  //インポート
00063     IDC_BUTTON_EXPORT,              10107,  //エクスポート
00064     IDC_COMBO_FUNCKIND,             10130,  //機能の種別
00065     IDC_COMBO_MENU,                 10131,  //メニューの種別
00066     IDC_LIST_FUNC,                  10150,  //機能一覧
00067     IDC_LIST_RES,                   10151,  //メニュー一覧
00068     IDC_LABEL_MENUFUNCKIND,         -1,
00069     IDC_LABEL_MENUCHOICE,           -1,
00070     IDC_LABEL_MENUFUNC,             -1,
00071     IDC_LABEL_MENU,                 -1,
00072     IDC_LABEL_MENUKEYCHANGE,        -1,
00073 //  IDC_STATIC,                     -1,
00074     0, 0
00075 };
00076 #endif
00077 //@@@ 2001.02.04 End
00078
00079 //  From Here Jun. 2, 2001 genta
00086 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_CUSTMENU(
00087     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00088 {
00089     return DlgProc( &CPropCommon::DispatchEvent_p8, hwndDlg, uMsg, wParam, lParam );
00090 }
00091 //  To Here Jun. 2, 2001 genta
00092
00093 /* p8 メッセージ処理 */
00094 INT_PTR CPropCommon::DispatchEvent_p8(
00095     HWND    hwndDlg,    // handle to dialog box
00096     UINT    uMsg,       // message
00097     WPARAM  wParam,     // first message parameter
00098     LPARAM  lParam      // second message parameter
00099 )
00100 {
00101     WORD        wNotifyCode;
00102     WORD        wID;
00103     HWND        hwndCtl;
00104     NMHDR*      pNMHDR;
00105     NM_UPDOWN*  pMNUD;
00106     int         idCtrl;
00107     static HWND hwndCOMBO_FUNCKIND;
00108     static HWND hwndLIST_FUNC;
00109     static HWND hwndCOMBO_MENU;
00110     static HWND hwndLIST_RES;
00111 //  static HWND hwndEDIT_KEY;
00112
00113 //  int         nLength;
00114 //  int         nAssignedKeyNum;
00115 //  const char* cpszString;
00116
00117 //  int         nIndex;
00118 //  int         nIndex2;
00119 //  int         nIndex3;
00120     int         i;
00121 //  int         j;
00122 //  int         nNum;
00123 //  int         nFuncCode;
00124
00125     int         nIdx1;
00126     int         nIdx2;
00127     int         nNum2;
00128     int         nIdx3;
00129     int         nIdx4;
00130     char        szLabel[300];
00131     char        szLabel2[300];
00132     char        szKey[2];
00133     int         nFunc;
00134     char        cKey;
00135 //  WORD        vkey;       // virtual-key code
00136 //  WORD        nCaretPos;  // caret position
00137 //  HWND        hwndLB;     // handle of list box
00138 //  char*       pszWork;
00139     CDlgInput1  cDlgInput1;
00140
00141     switch( uMsg ){
00142     case WM_INITDIALOG:
00143         /* ダイアログデータの設定 p8 */
00144         SetData_p8( hwndDlg );
00145         // Modified by KEITA for WIN64 2003.9.6
00146 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00147
00148         /* コントロールのハンドルを取得 */
00149         hwndCOMBO_FUNCKIND = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00150         hwndLIST_FUNC = ::GetDlgItem( hwndDlg, IDC_LIST_FUNC );
00151         hwndCOMBO_MENU = ::GetDlgItem( hwndDlg, IDC_COMBO_MENU );
00152         hwndLIST_RES = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00153 //      hwndEDIT_KEY = ::GetDlgItem( hwndDlg, IDC_EDIT_KEY );
00154
00155 //      /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00156 //      ::SendMessage( hwndEDIT_KEY, EM_LIMITTEXT, (WPARAM)1, 0 );
00157
00158
00159 //      ::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)"テストテスト1" );
00160 //      ::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)"テストテスト2" );
00161 //      ::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)"テストテスト3" );
00162 //      ::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)"テストテスト4" );
00163
00164
00165         /* キー選択時の処理 */
00166 //      ::SendMessage( hwndKeyList, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00167         ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCOMBO_FUNCKIND );
00168 //      ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00169
00170
00171         ::SetTimer( hwndDlg, 1, 300, NULL );
00172
00173         return TRUE;
00174
00175     case WM_NOTIFY:
00176         idCtrl = (int)wParam;
00177         pNMHDR = (NMHDR*)lParam;
00178         pMNUD  = (NM_UPDOWN*)lParam;
00179         switch( pNMHDR->code ){
00180         case PSN_HELP:
00181             OnHelp( hwndDlg, IDD_PROP_CUSTMENU );
00182             return TRUE;
00183         case PSN_KILLACTIVE:
00184 //          MYTRACE( "p8 PSN_KILLACTIVE\n" );
00185             /* ダイアログデータの取得 p8 */
00186             GetData_p8( hwndDlg );
00187             return TRUE;
00188 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00189         case PSN_SETACTIVE:
00190             m_nPageNum = ID_PAGENUM_CUSTMENU;
00191             return TRUE;
00192         }
00193         break;
00194
00195     case WM_COMMAND:
00196         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00197         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00198         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00199
00200         switch( wNotifyCode ){
00201         /* ボタン／チェックボックスがクリックされた */
00202         case BN_CLICKED:
00203             switch( wID ){
00204             case IDC_BUTTON_IMPORT: /* インポート */
00205                 /* p8:カスタムメニュー設定をインポートする */
00206                 p8_Import_CustMenuSetting( hwndDlg );
00207                 return TRUE;
00208             case IDC_BUTTON_EXPORT: /* エクスポート */
00209                 /* p8:カスタムメニュー設定をエクスポートする */
00210                 p8_Export_CustMenuSetting( hwndDlg );
00211                 return TRUE;
00212             case IDC_BUTTON_MENUNAME:
00213                 //  メニュー文字列の設定
00214                 nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00215                 if( LB_ERR == nIdx1 ){
00216                     break;
00217                 }
00218                 ::GetDlgItemText( hwndDlg, IDC_EDIT_MENUNAME,
00219                     m_Common.m_szCustMenuNameArr[nIdx1], MAX_CUSTOM_MENU_NAME_LEN );
00220                 //  Combo Boxも変更 削除＆再登録
00221                 ::SendMessage( hwndCOMBO_MENU, CB_DELETESTRING, nIdx1, 0 );
00222                 ::SendMessage( hwndCOMBO_MENU, CB_INSERTSTRING, nIdx1,
00223                     (LPARAM)m_Common.m_szCustMenuNameArr[nIdx1] );
00224                 // 削除すると選択が解除されるので，元に戻す
00225                 ::SendMessage( hwndCOMBO_MENU, CB_SETCURSEL, nIdx1, 0 );
00226                 return TRUE;
00227             }
00228             break;  /* BN_CLICKED */
00229         }
00230
00231         if( hwndCOMBO_MENU == hwndCtl ){
00232             switch( wNotifyCode ){
00233             case CBN_SELCHANGE:
00234                 nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00235                 if( CB_ERR == nIdx1 ){
00236                     break;
00237                 }
00238                 /* メニュー項目一覧に文字列をセット（リストボックス）*/
00239                 ::SendMessage( hwndLIST_RES, LB_RESETCONTENT, 0, 0 );
00240                 for( i = 0; i < m_Common.m_nCustMenuItemNumArr[nIdx1]; ++i ){
00241                     if( 0 == m_Common.m_nCustMenuItemFuncArr[nIdx1][i] ){
00242 //                      strcpy( szLabel2, "セパレータ" );
00243 //                      strcpy( szLabel2, "--------------------------------" );
00244                         strcpy( szLabel2, " ─────────────" );  //Oct. 18, 2000 JEPRO 「ツールバー」タブで使っているセパレータと同じ線種に統一した
00245                     }else{
00246                         //  Oct. 3, 2001 genta
00247                         m_cLookup.Funccode2Name( m_Common.m_nCustMenuItemFuncArr[nIdx1][i], szLabel, 256 );
00248             //          ::LoadString( m_hInstance, m_Common.m_nCustMenuItemFuncArr[nIdx1][i], szLabel, 256 );
00249                         /* キー */
00250                         if( '\0' == m_Common.m_nCustMenuItemKeyArr[nIdx1][i] ){
00251                             strcpy( szLabel2, szLabel );
00252                         }else{
00253                             wsprintf( szLabel2, "%s(%c)", szLabel, m_Common.m_nCustMenuItemKeyArr[nIdx1][i] );
00254                         }
00255                     }
00256             //      /* キー */
00257             //      if( '\0' == m_Common.nCustMenuItemKeyArr[nIdx][i] ||
00258             //          ' '  == m_Common.nCustMenuItemKeyArr[nIdx][i] ){
00259             //          strcpy( szKey, "" );
00260             //      }else{
00261             //          sprintf( szKey, "%c", m_Common.nCustMenuItemKeyArr[nIdx][i] );
00262             //      }
00263             //      ::SetWindowText( hwndEDIT_KEY, szKey );
00264                     ::SendMessage( hwndLIST_RES, LB_ADDSTRING, 0, (LPARAM)szLabel2 );
00265                 }
00266                 //  Oct. 15, 2001 genta メニュー名を設定
00267                 ::SetDlgItemText( hwndDlg, IDC_EDIT_MENUNAME, m_Common.m_szCustMenuNameArr[nIdx1] );
00268
00269 //  From Here Sept. 7, 2000 JEPRO わかりにくいので選択しないようにコメントアウトに変更
00270 //  (実際にはここでは選択されていないようなのでコメントアウトしなくても同じ。選択されているのはSetData_p8()の方)
00271 //              /* カスタムメニューの先頭の項目を選択（リストボックス）*/
00272 //              ::SendMessage( hwndLIST_RES, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00273 //  To Here Sept. 7, 2000
00274                 break;  /* CBN_SELCHANGE */
00275             }
00276         }else
00277         if( hwndLIST_RES == hwndCtl ){
00278             switch( wNotifyCode ){
00279             case LBN_DBLCLK:
00280                 nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00281                 if( LB_ERR == nIdx1 ){
00282                     break;
00283                 }
00284                 nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00285                 if( LB_ERR == nIdx2 ){
00286                     break;
00287                 }
00288
00289                 if( 0 == m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] ){
00290                     break;
00291                 }
00292
00293 //          idListBox = (int) LOWORD(wParam);   // identifier of list box
00294 //          hwndListBox = (HWND) lParam;        // handle of list box
00295                 wsprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00296                 if( FALSE == cDlgInput1.DoModal( m_hInstance, hwndDlg, "メニューアイテムのアクセスキー設定", "キーを入力してください。", 1, szKey ) ){
00297                     return TRUE;
00298                 }
00299                 //  Oct. 3, 2001 genta
00300                 m_cLookup.Funccode2Name( m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2], szLabel, 255 );
00301                 //::LoadString( m_hInstance, m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2], szLabel, 255 );
00302 //              if( ( szKey[0] == '\0' ) || ( '0' <= szKey[0] && szKey[0] <= '9' ) || ( 'A' <= szKey[0] && szKey[0] <= 'Z' ) ){
00303                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = szKey[0];
00304 //@@@ 2002.01.08 YAZAKI カスタムメニューでアクセスキーを消した時、左カッコ ( がメニュー項目に一回残るバグ修正
00305 //                  wsprintf( szLabel2, "%s(%c)", szLabel, m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00306                     if (m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2]){
00307                         wsprintf( szLabel2, "%s(%c)", szLabel, m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00308                     }
00309                     else {
00310                         wsprintf( szLabel2, "%s", szLabel );
00311                     }
00312 //              }else{
00313 //                  m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = '\0';
00314 //                  sprintf( szLabel2, "%s", szLabel );
00315 //              }
00316                 ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)szLabel2 );
00317                 ::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2 + 1, 0 );
00318
00319
00321
00322 //              ::SendMessage( hwndLIST_RES, LBN_SELCHANGE,  MAKELONG( IDC_LIST_RES, 0 ), (LPARAM)hwndLIST_RES );
00323
00324                 break;
00325             case LBN_SELCHANGE:
00326                 nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00327                 if( LB_ERR == nIdx1 ){
00328 //                  ::SetWindowText( hwndEDIT_KEY, "" );
00329                     break;
00330                 }
00331
00332                 if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
00333 //                  ::SetWindowText( hwndEDIT_KEY, "" );
00334                     break;
00335                 }
00336
00337                 nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00338                 if( LB_ERR == nIdx2 ){
00339 //                  ::SetWindowText( hwndEDIT_KEY, "" );
00340                     break;
00341                 }
00342
00343                 /* キー */
00344                 if( '\0' == m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] ||
00345                     ' '  == m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] ){
00346 //                  strcpy( szKey, "" );
00347                 }else{
00348 //                  sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00349                 }
00350 //              ::SetWindowText( hwndEDIT_KEY, szKey );
00351                 break;  /* LBN_SELCHANGE */
00352             }
00353         }else
00354         if( hwndCOMBO_FUNCKIND == hwndCtl ){
00355             switch( wNotifyCode ){
00356             case CBN_SELCHANGE:
00357                 nIdx1 = ::SendMessage( hwndCOMBO_MENU, LB_GETCURSEL, 0, 0 );
00358                 nIdx2 = ::SendMessage( hwndLIST_RES, CB_GETCURSEL, 0, 0 );
00359                 nIdx3 = ::SendMessage( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00360                 nIdx4 = ::SendMessage( hwndLIST_FUNC, CB_GETCURSEL, 0, 0 );
00361
00362
00363                 /* 機能一覧に文字列をセット（リストボックス）*/
00364 //  Oct. 14, 2000 jepro note: ここのforブロックで実際にリストを書いているようである
00365                 // Oct. 3, 2001 genta
00366                 // 専用ルーチンに置き換え
00367                 m_cLookup.SetListItem( hwndLIST_FUNC, nIdx3 );
00368 #if 0
00369                 ::SendMessage( hwndLIST_FUNC, LB_RESETCONTENT, 0, 0 );
00370                 for( i = 0; i < nsFuncCode::pnFuncListNumArr[nIdx3]; ++i ){
00371                     if( 0 < ::LoadString( m_hInstance, (nsFuncCode::ppnFuncListArr[nIdx3])[i], szLabel, 255 ) ){
00372                         ::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)szLabel );
00373                     }else{
00374                         ::SendMessage( hwndLIST_FUNC, LB_ADDSTRING, 0, (LPARAM)"--未定義--" );
00375                     }
00376                 }
00377 #endif
00378                 i = 0;
00379 //              if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00380 //                  i |= _SHIFT;
00381 //              }
00382 //              if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00383 //                  i |= _CTRL;
00384 //              }
00385 //              if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00386 //                  i |= _ALT;
00387 //              }
00388 //              nFuncCode = m_pKeyNameArr[nIndex].m_nFuncCodeArr[i];
00389 //              for( i = 0; i < nFincListNumArrNum; ++i ){
00390 //                  if( -1 != ( nIndex3 = SearchIntArr( nFuncCode, (int*)(nsFuncCode::ppnFuncListArr[i]), nsFuncCode::pnFuncListNumArr[i] ) ) ){
00391 //                      if( nIndex2 == i ){
00392 //                          ::SendMessage( hwndFuncList, LB_SETCURSEL, (WPARAM)nIndex3, (LPARAM)0 );
00393 //                      }
00394 //                  }
00395 //              }
00396                 return TRUE;
00397             }
00398         }else{
00399             switch( wNotifyCode ){
00400             /* ボタン／チェックボックスがクリックされた */
00401             case BN_CLICKED:
00402                 switch( wID ){
00403                 case IDC_BUTTON_INSERTSEPARATOR:
00404                     nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00405                     if( LB_ERR == nIdx1 ){
00406                         break;
00407                     }
00408
00409                     if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
00410                         break;
00411                     }
00412
00413                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00414                     if( LB_ERR == nIdx2 ){
00415                         nIdx2 = 0;
00416                     }
00417 //                  nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)"セパレータ" );    //Oct. 8, 2000 jepro 「ツールバー」タブ内のセパレータボタンで入る文字列
00418 //                  nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)"--------------------------------" );
00419                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)" ─────────────" );   //Oct. 18, 2000 JEPRO 「ツールバー」タブで使っているセパレータと同じ線種に統一した
00420                     if( nIdx2 == LB_ERR || nIdx2 == LB_ERRSPACE ){
00421                         break;
00422                     }
00423                     ::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00424
00425
00426                     for( i = m_Common.m_nCustMenuItemNumArr[nIdx1]; i > nIdx2; i--){
00427                         m_Common.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_nCustMenuItemFuncArr[nIdx1][i - 1];
00428                         m_Common.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_nCustMenuItemKeyArr[nIdx1][i - 1];
00429                     }
00430                     m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = 0;
00431                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = '\0';
00432                     m_Common.m_nCustMenuItemNumArr[nIdx1]++;
00433
00434 //                  ::SetWindowText( hwndEDIT_KEY, "" );
00435                     break;
00436                 case IDC_BUTTON_DELETE:
00437                     nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00438                     if( LB_ERR == nIdx1 ){
00439                         break;
00440                     }
00441
00442                     if( 0 == m_Common.m_nCustMenuItemNumArr[nIdx1] ){
00443                         break;
00444                     }
00445
00446                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00447                     if( LB_ERR == nIdx2 ){
00448                         break;
00449                     }
00450                     nNum2 = ::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
00451                     if( nNum2 == LB_ERR ){
00452                         break;
00453                     }
00454
00455                     for( i = nIdx2; i < m_Common.m_nCustMenuItemNumArr[nIdx1]; ++i ){
00456                         m_Common.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_nCustMenuItemFuncArr[nIdx1][i + 1];
00457                         m_Common.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_nCustMenuItemKeyArr[nIdx1][i + 1];
00458                     }
00459                     m_Common.m_nCustMenuItemNumArr[nIdx1]--;
00460
00461                     if( nNum2 > 0 ){
00462                         if( nNum2 <= nIdx2 ){
00463                             nIdx2 = nNum2 - 1;
00464                         }
00465                         nIdx2 = ::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00466
00467 //                      sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00468 //                      ::SetWindowText( hwndEDIT_KEY, szKey );
00469                     }else{
00470 //                      ::SetWindowText( hwndEDIT_KEY, "" );
00471                     }
00472                     break;
00473
00474
00475                 case IDC_BUTTON_INSERT:
00476                     nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00477                     if( LB_ERR == nIdx1 ){
00478                         break;
00479                     }
00480
00481                     if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
00482                         break;
00483                     }
00484
00485                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00486                     if( LB_ERR == nIdx2 ){
00487                         nIdx2 = 0;
00488                     }
00489                     nIdx3 = ::SendMessage( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00490                     if( LB_ERR == nIdx3 ){
00491                         break;
00492                     }
00493                     nIdx4 = ::SendMessage( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
00494                     if( LB_ERR == nIdx4 ){
00495                         break;
00496                     }
00497                     ::SendMessage( hwndLIST_FUNC, LB_GETTEXT, nIdx4, (LPARAM)szLabel );
00498
00499                     for( i = m_Common.m_nCustMenuItemNumArr[nIdx1]; i > nIdx2; i-- ){
00500                         m_Common.m_nCustMenuItemFuncArr[nIdx1][i] = m_Common.m_nCustMenuItemFuncArr[nIdx1][i - 1];
00501                         m_Common.m_nCustMenuItemKeyArr[nIdx1][i] = m_Common.m_nCustMenuItemKeyArr[nIdx1][i - 1];
00502                     }
00503                     //  Oct. 3, 2001 genta
00504                     m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = m_cLookup.Pos2FuncCode( nIdx3, nIdx4 );
00505 //                  m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = nsFuncCode::ppnFuncListArr[nIdx3][nIdx4];
00506                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] = '\0';
00507                     m_Common.m_nCustMenuItemNumArr[nIdx1]++;
00508
00509                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2, (LPARAM)szLabel );
00510                     if( LB_ERR == nIdx2 || LB_ERRSPACE == nIdx2 ){
00511                         break;
00512                     }
00513                     ::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00514
00515 //                  sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00516 //                  ::SetWindowText( hwndEDIT_KEY, szKey );
00517
00518                     break;
00519
00520
00521                 case IDC_BUTTON_ADD:
00522                     nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00523                     if( LB_ERR == nIdx1 ){
00524                         break;
00525                     }
00526
00527                     if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
00528                         break;
00529                     }
00530
00531                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00532                     if( LB_ERR == nIdx2 ){
00533                         nIdx2 = 0;
00534                     }
00535                     nNum2 = ::SendMessage( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
00536                     if( LB_ERR == nNum2 ){
00537                         nIdx2 = 0;
00538                     }
00539                     nIdx3 = ::SendMessage( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00540                     if( LB_ERR == nIdx3 ){
00541                         break;
00542                     }
00543                     nIdx4 = ::SendMessage( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
00544                     if( LB_ERR == nIdx4 ){
00545                         break;
00546                     }
00547                     //  Oct. 3, 2001 genta
00548                     if( m_cLookup.Pos2FuncCode( nIdx3, nIdx4 ) == 0 )
00549                         break;
00550 //                  if( 0 == nsFuncCode::ppnFuncListArr[nIdx3][nIdx4] ){
00551 //                      break;
00552 //                  }
00553
00554                     ::SendMessage( hwndLIST_FUNC, LB_GETTEXT, nIdx4, (LPARAM)szLabel );
00555
00556                     //  Oct. 3, 2001 genta
00557                     m_Common.m_nCustMenuItemFuncArr[nIdx1][nNum2] = m_cLookup.Pos2FuncCode( nIdx3, nIdx4 );
00558 //                  m_Common.m_nCustMenuItemFuncArr[nIdx1][nNum2] = nsFuncCode::ppnFuncListArr[nIdx3][nIdx4];
00559                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nNum2] = '\0';
00560                     m_Common.m_nCustMenuItemNumArr[nIdx1]++;
00561
00562                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_ADDSTRING, nIdx2, (LPARAM)szLabel );
00563                     if( LB_ERR == nIdx2 || LB_ERRSPACE == nIdx2 ){
00564                         break;
00565                     }
00566                     ::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2, 0 );
00567
00568 //                  sprintf( szKey, "%c", m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2] );
00569 //                  ::SetWindowText( hwndEDIT_KEY, szKey );
00570
00571                     break;
00572
00573                 case IDC_BUTTON_UP:
00574                     nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00575                     if( LB_ERR == nIdx1 ){
00576                         break;
00577                     }
00578                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00579                     if( LB_ERR == nIdx2 ){
00580                         break;
00581                     }
00582                     if( 0 == nIdx2 ){
00583                         break;
00584                     }
00585                     nFunc = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 - 1];
00586                     cKey = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 - 1];
00587                     m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 - 1] = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2];
00588                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 - 1]  = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2];
00589                     m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = nFunc;
00590                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2]  = cKey;
00591
00592                     ::SendMessage( hwndLIST_RES, LB_GETTEXT, nIdx2, (LPARAM)szLabel );
00593                     ::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
00594                     ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2 - 1, (LPARAM)szLabel );
00595                     ::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2 - 1, 0 );
00596                     break;
00597
00598                 case IDC_BUTTON_DOWN:
00599                     nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00600                     if( LB_ERR == nIdx1 ){
00601                         break;
00602                     }
00603                     nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00604                     if( LB_ERR == nIdx2 ){
00605                         break;
00606                     }
00607                     nNum2 = ::SendMessage( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
00608                     if( LB_ERR == nNum2 ){
00609                         break;
00610                     }
00611                     if( nNum2 - 1 <= nIdx2 ){
00612                         break;
00613                     }
00614                     nFunc = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 + 1];
00615                     cKey = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 + 1];
00616                     m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2 + 1] = m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2];
00617                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2 + 1]  = m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2];
00618                     m_Common.m_nCustMenuItemFuncArr[nIdx1][nIdx2] = nFunc;
00619                     m_Common.m_nCustMenuItemKeyArr[nIdx1][nIdx2]  = cKey;
00620
00621                     ::SendMessage( hwndLIST_RES, LB_GETTEXT, nIdx2, (LPARAM)szLabel );
00622                     ::SendMessage( hwndLIST_RES, LB_DELETESTRING, nIdx2, 0 );
00623                     ::SendMessage( hwndLIST_RES, LB_INSERTSTRING, nIdx2 + 1, (LPARAM)szLabel );
00624                     ::SendMessage( hwndLIST_RES, LB_SETCURSEL, nIdx2 + 1, 0 );
00625                     break;
00626                 }
00627
00628                 break;
00629             }
00630         }
00631         break;
00632
00633     case WM_TIMER:
00634         nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00635         nIdx2 = ::SendMessage( hwndLIST_RES, LB_GETCURSEL, 0, 0 );
00636         nIdx3 = ::SendMessage( hwndCOMBO_FUNCKIND, CB_GETCURSEL, 0, 0 );
00637         nIdx4 = ::SendMessage( hwndLIST_FUNC, LB_GETCURSEL, 0, 0 );
00638         i = ::SendMessage( hwndLIST_RES, LB_GETCOUNT, 0, 0 );
00639         if( LB_ERR == nIdx2 ){
00640             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), FALSE );
00641             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00642             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00643         }else{
00644             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), TRUE );
00645             if( nIdx2 <= 0 ){
00646                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00647             }else{
00648                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), TRUE );
00649             }
00650             if( nIdx2 + 1 >= i ){
00651                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00652             }else{
00653                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), TRUE );
00654             }
00655         }
00656         if( LB_ERR == nIdx2 || LB_ERR == nIdx4 ){
00657             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00658         }else{
00659             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), TRUE );
00660         }
00661         if( LB_ERR == nIdx4 ){
00662             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00663         }else{
00664             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), TRUE );
00665         }
00666         if( MAX_CUSTOM_MENU_ITEMS <= m_Common.m_nCustMenuItemNumArr[nIdx1] ){
00667             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERTSEPARATOR ), FALSE );
00668             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00669             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00670         }
00671         if( LB_ERR != nIdx3 && LB_ERR != nIdx4 &&
00672             //0 == nsFuncCode::ppnFuncListArr[nIdx3][nIdx4]
00673             m_cLookup.Pos2FuncCode( nIdx3, nIdx4 ) == 0
00674         ){
00675             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00676             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00677         }
00678         break;
00679 //  case WM_VKEYTOITEM:
00680 //      vkey = LOWORD(wParam);      // virtual-key code
00681 //      nCaretPos = HIWORD(wParam); // caret position
00682 //      hwndLB = (HWND)lParam;      // handle of list box
00683 //      MYTRACE( "WM_VKEYTOITEM  vkey=%d(%xh) nCaretPos=%d\n", vkey, vkey, nCaretPos );
00684 //      nIdx1 = ::SendMessage( hwndCOMBO_MENU, CB_GETCURSEL, 0, 0 );
00685 //      if( ( '0' <= vkey && vkey <= '9' ) || ( 'A' <= vkey && vkey <= 'Z' ) ){
00686 //          m_Common.m_nCustMenuItemKeyArr[nIdx1][nCaretPos] = (char)vkey;
00687 //
00692 //      }
00693 //      return -1;
00694
00695     case WM_DESTROY:
00696         ::KillTimer( hwndDlg, 1 );
00697         break;
00698
00699 //@@@ 2001.02.04 Start by MIK: Popup Help
00700     case WM_HELP:
00701         {
00702             HELPINFO *p = (HELPINFO *)lParam;
00703             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00704         }
00705         return TRUE;
00706         /*NOTREACHED*/
00707         //break;
00708 //@@@ 2001.02.04 End
00709
00710 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00711     //Context Menu
00712     case WM_CONTEXTMENU:
00713         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00714         return TRUE;
00715 //@@@ 2001.12.22 End
00716
00717     }
00718     return FALSE;
00719 }
00720
00721
00722
00723
00724 /* ダイアログデータの設定 p8 */
00725 void CPropCommon::SetData_p8( HWND hwndDlg )
00726 {
00727     HWND        hwndCOMBO_MENU;
00728     HWND        hwndCombo;
00729 //  HWND        hwndKeyList;    //Oct. 14, 2000 JEPRO killed
00730     HWND        hwndLIST_RES;
00731 //  HWND        hwndEDIT_KEY;
00732     int         i;
00733     int         nIdx;
00734     char        szLabel[300];
00735     char        szLabel2[300];
00736 //  char        szKey[2];
00737
00738     /* 機能種別一覧に文字列をセット（コンボボックス） */
00739     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00740     m_cLookup.SetCategory2Combo( hwndCombo );   //  Oct. 3, 2001 genta
00741 #if 0
00742     for( i = 0; i < nsFuncCode::nFuncKindNum; ++i ){
00743         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)nsFuncCode::ppszFuncKind[i] );
00744     }
00745 #endif
00746     /* 種別の先頭の項目を選択（コンボボックス）*/
00747 //  ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)1, (LPARAM)0 );
00748     ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 ); //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように大元 Funcode.cpp で変更してある
00749
00750     /* キー一覧に文字列をセット（リストボックス）*/
00751 //  Oct. 14, 2000 JEPRO note: ここのforブロックでは実際にはリストを書いていないようなのでコメントアウトした
00752 /*
00753     hwndKeyList = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00754 /   for( i = 0; i < m_nKeyNameArrNum; ++i ){
00755         ::SendMessage( hwndKeyList, LB_ADDSTRING, 0, (LPARAM)m_pKeyNameArr[i].m_szKeyName );
00756     }
00757 */
00758
00759     /* メニュー一覧に文字列をセット（コンボボックス）*/
00760     hwndCOMBO_MENU = ::GetDlgItem( hwndDlg, IDC_COMBO_MENU );
00761     for( i = 0; i < MAX_CUSTOM_MENU; ++i ){
00762         ::SendMessage( hwndCOMBO_MENU, CB_ADDSTRING, 0, (LPARAM)m_Common.m_szCustMenuNameArr[i] );
00763     }
00764     /* メニュー一覧の先頭の項目を選択（コンボボックス）*/
00765     ::SendMessage( hwndCOMBO_MENU, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00766
00767     /* メニュー項目一覧に文字列をセット（リストボックス）*/
00768     hwndLIST_RES = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00769 //  hwndEDIT_KEY = ::GetDlgItem( hwndDlg, IDC_EDIT_KEY );
00770     ::SendMessage( hwndLIST_RES, LB_RESETCONTENT, 0, 0 );
00771     nIdx = 0;
00772     for( i = 0; i < m_Common.m_nCustMenuItemNumArr[nIdx]; ++i ){
00773         if( 0 == m_Common.m_nCustMenuItemFuncArr[nIdx][i] ){
00774 //          strcpy( szLabel, "セパレータ" );    //Oct. 8, 2000 jepro iniファイルやデフォルト設定などの情報から入る文字列
00775 //          strcpy( szLabel, "--------------------------------" );
00776             strcpy( szLabel, " ─────────────" );   //Oct. 18, 2000 JEPRO 「ツールバー」タブで使っているセパレータと同じ線種に統一した
00777         }else{
00778             //  Oct. 3, 2001 genta
00779             m_cLookup.Funccode2Name( m_Common.m_nCustMenuItemFuncArr[nIdx][i], szLabel, 256 );
00780             //::LoadString( m_hInstance, m_Common.m_nCustMenuItemFuncArr[nIdx][i], szLabel, 256 );
00781         }
00782         /* キー */
00783         if( '\0' == m_Common.m_nCustMenuItemKeyArr[nIdx][i] ){
00784             strcpy( szLabel2, szLabel );
00785         }else{
00786             wsprintf( szLabel2, "%s(%c)", szLabel, m_Common.m_nCustMenuItemKeyArr[nIdx][i] );
00787         }
00788 //  Oct. 14, 2000 JEPRO {}の対応を検索しやすいように部分的にコメントアウトせず、ペアになるように冗長でも上から次の１行をコピー
00789 //      if( '\0' == m_Common.m_nCustMenuItemKeyArr[nIdx][i] ){
00790 //          strcpy( szKey, "" );
00791 //      }else{
00792 //          sprintf( szKey, "%c", m_Common.nCustMenuItemKeyArr[nIdx][i] );
00793 //      }
00794 //      ::SetWindowText( hwndEDIT_KEY, szKey );
00795         ::SendMessage( hwndLIST_RES, LB_ADDSTRING, 0, (LPARAM)szLabel2 );
00796     }
00797
00798     //  Oct. 15, 2001 genta メニュー名を設定
00799     ::SetDlgItemText( hwndDlg, IDC_EDIT_MENUNAME, m_Common.m_szCustMenuNameArr[0] );
00800
00801 //  /* カスタムメニューの先頭の項目を選択（リストボックス）*/   //Oct. 8, 2000 JEPRO ここをコメントアウトすると先頭項目が選択されなくなる
00802     ::SendMessage( hwndLIST_RES, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00803     return;
00804 }
00805
00806
00807
00808 /* ダイアログデータの取得 p8 */
00809 int CPropCommon::GetData_p8( HWND hwndDlg )
00810 {
00811 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00812 //  m_nPageNum = ID_PAGENUM_CUSTMENU;
00813
00814     return TRUE;
00815 }
00816
00817
00818
00819
00820
00821 /* p8:カスタムメニュー設定をインポートする */
00822 void CPropCommon::p8_Import_CustMenuSetting( HWND hwndDlg )
00823 {
00824     CDlgOpenFile    cDlgOpenFile;
00825     char            szPath[_MAX_PATH + 1];
00826     HFILE           hFile;
00827 //  char            szLine[1024];
00828 //  int             i;
00829
00830     char            pHeader[STR_CUSTMENU_HEAD_LEN + 1];
00831 //  short           nKeyNameArrNum;             /* キー割り当て表の有効データ数 */
00832 //  KEYDATA         pKeyNameArr[100];           /* キー割り当て表 */
00833     HWND            hwndCtrl;
00834     char            szInitDir[_MAX_PATH + 1];
00835
00836     strcpy( szPath, "" );
00837     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00838     /* ファイルオープンダイアログの初期化 */
00839     cDlgOpenFile.Create(
00840         m_hInstance,
00841         hwndDlg,
00842         "*.mnu",
00843         szInitDir
00844     );
00845     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00846         return;
00847     }
00848     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00849     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00850 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00851     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00852
00853     hFile = _lopen( szPath, OF_READ );
00854     if( HFILE_ERROR == hFile ){
00855 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00856             "ファイルを開けませんでした。\n\n%s", szPath
00857         );
00858         return;
00859     }
00860     if( STR_CUSTMENU_HEAD_LEN                       != _lread( hFile, (LPVOID)pHeader, STR_CUSTMENU_HEAD_LEN ) ||
00861         sizeof( m_Common.m_szCustMenuNameArr    )   != _lread( hFile, (LPVOID)&m_Common.m_szCustMenuNameArr   , sizeof( m_Common.m_szCustMenuNameArr    ) ) ||
00862         sizeof( m_Common.m_nCustMenuItemNumArr  )   != _lread( hFile, (LPVOID)&m_Common.m_nCustMenuItemNumArr , sizeof( m_Common.m_nCustMenuItemNumArr  ) ) ||
00863         sizeof( m_Common.m_nCustMenuItemFuncArr )   != _lread( hFile, (LPVOID)&m_Common.m_nCustMenuItemFuncArr, sizeof( m_Common.m_nCustMenuItemFuncArr ) ) ||
00864         sizeof( m_Common.m_nCustMenuItemKeyArr  )   != _lread( hFile, (LPVOID)&m_Common.m_nCustMenuItemKeyArr , sizeof( m_Common.m_nCustMenuItemKeyArr  ) ) ||
00865         0 != memcmp( pHeader, STR_CUSTMENU_HEAD, STR_CUSTMENU_HEAD_LEN )
00866     ){
00867 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00868             "カスタムメニュー設定ファイルの形式が違います。\n\n%s", szPath
00869         );
00870         return;
00871     }
00872     _lclose( hFile );
00873
00874     hwndCtrl = ::GetDlgItem( hwndDlg, IDC_COMBO_MENU );
00875     ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_COMBO_MENU, CBN_SELCHANGE ), (LPARAM)hwndCtrl );
00876
00877     return;
00878 }
00879
00880 /* p8:カスタムメニュー設定をエクスポートする */
00881 void CPropCommon::p8_Export_CustMenuSetting( HWND hwndDlg )
00882 {
00883     CDlgOpenFile    cDlgOpenFile;
00884     char            szPath[_MAX_PATH + 1];
00885     HFILE           hFile;
00886 //  char            szLine[1024];
00887 //  int             i;
00888     char            szInitDir[_MAX_PATH + 1];
00889
00890     strcpy( szPath, "" );
00891     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00892     /* ファイルオープンダイアログの初期化 */
00893     cDlgOpenFile.Create(
00894         m_hInstance,
00895         hwndDlg,
00896         "*.mnu",
00897         szInitDir
00898     );
00899     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00900         return;
00901     }
00902     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00903     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00904 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00905     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00906
00907     hFile = _lcreat( szPath, 0 );
00908     if( HFILE_ERROR == hFile ){
00909 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00910             "ファイルを開けませんでした。\n\n%s", szPath
00911         );
00912         return;
00913     }
00914 //  /* カスタムメニュー情報 */
00915 //  char                m_szCustMenuNameArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_NAME_LEN + 1];
00916 //  int                 m_nCustMenuItemNumArr [MAX_CUSTOM_MENU];
00917 //  int                 m_nCustMenuItemFuncArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS];
00918 //  char                m_nCustMenuItemKeyArr [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS];
00919
00920     if( STR_CUSTMENU_HEAD_LEN                       != _lwrite( hFile, (LPCSTR)STR_CUSTMENU_HEAD, STR_CUSTMENU_HEAD_LEN ) ||
00921         sizeof( m_Common.m_szCustMenuNameArr    )   != _lwrite( hFile, (LPCSTR)&m_Common.m_szCustMenuNameArr   , sizeof( m_Common.m_szCustMenuNameArr    ) ) ||
00922         sizeof( m_Common.m_nCustMenuItemNumArr  )   != _lwrite( hFile, (LPCSTR)&m_Common.m_nCustMenuItemNumArr , sizeof( m_Common.m_nCustMenuItemNumArr  ) ) ||
00923         sizeof( m_Common.m_nCustMenuItemFuncArr )   != _lwrite( hFile, (LPCSTR)&m_Common.m_nCustMenuItemFuncArr, sizeof( m_Common.m_nCustMenuItemFuncArr ) ) ||
00924         sizeof( m_Common.m_nCustMenuItemKeyArr  )   != _lwrite( hFile, (LPCSTR)&m_Common.m_nCustMenuItemKeyArr , sizeof( m_Common.m_nCustMenuItemKeyArr  ) )
00925     ){
00926 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00927             "ファイルの書き込みに失敗しました。\n\n%s", szPath
00928         );
00929         return;
00930     }
00931     _lclose( hFile );
00932
00933     return;
00934
00935 }
00936
00937
00938 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComEdit.cpp

CPropComEdit.cpp

共通設定ダイアログボックス、「編集」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "debug.h"
#include "sakura.hh"

CPropComEdit.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「編集」ページ

作者:
Norio Nakatani

CPropComEdit.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_CHECK_ADDCRLFWHENCOPY,          HIDC_CHECK_ADDCRLFWHENCOPY,
    IDC_CHECK_COPYnDISABLESELECTEDAREA, HIDC_CHECK_COPYnDISABLESELECTEDAREA,
    IDC_CHECK_DRAGDROP,                 HIDC_CHECK_DRAGDROP,
    IDC_CHECK_DROPSOURCE,               HIDC_CHECK_DROPSOURCE,
    IDC_CHECK_bNotOverWriteCRLF,        HIDC_CHECK_bNotOverWriteCRLF,

    IDC_CHECK_bSelectClickedURL,    HIDC_CHECK_bSelectClickedURL,

    0, 0
}

CPropComEdit.cpp の 27 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComEdit.cpp ソースファイル

CPropComEdit.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009     Copyright (C) 2001, MIK, jepro, genta
00010     Copyright (C) 2002, YAZAKI, MIK, aroka
00011     Copyright (C) 2003, KEITA
00012     Copyright (C) 2006, ryoji
00013     Copyright (C) 2007, genta
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holders to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include "CPropCommon.h"
00021 #include "debug.h" // 2002/2/10 aroka
00022
00023
00024 //@@@ 2001.02.04 Start by MIK: Popup Help
00025 #if 1   //@@@ 2002.01.03 add MIK
00026 #include "sakura.hh"
00027 static const DWORD p_helpids[] = {  //10210
00028     IDC_CHECK_ADDCRLFWHENCOPY,          HIDC_CHECK_ADDCRLFWHENCOPY,             //折り返し行に改行を付けてコピー
00029     IDC_CHECK_COPYnDISABLESELECTEDAREA, HIDC_CHECK_COPYnDISABLESELECTEDAREA,    //コピーしたら選択解除
00030     IDC_CHECK_DRAGDROP,                 HIDC_CHECK_DRAGDROP,                    //Drag&Drop編集する
00031     IDC_CHECK_DROPSOURCE,               HIDC_CHECK_DROPSOURCE,                  //ドロップ元にする
00032     IDC_CHECK_bNotOverWriteCRLF,        HIDC_CHECK_bNotOverWriteCRLF,           //上書きモード
00033     //  2007.02.11 genta クリッカブルURLをこのページに移動
00034     IDC_CHECK_bSelectClickedURL,    HIDC_CHECK_bSelectClickedURL,   //クリッカブルURL
00035 //  IDC_STATIC,                         -1,
00036     0, 0
00037 };
00038 #else
00039 static const DWORD p_helpids[] = {  //10210
00040     IDC_CHECK_ADDCRLFWHENCOPY,          10210,  //折り返し行に改行を付けてコピー
00041     IDC_CHECK_COPYnDISABLESELECTEDAREA, 10211,  //コピーしたら選択解除
00042     IDC_CHECK_DRAGDROP,                 10212,  //Drag&Drop編集する
00043     IDC_CHECK_DROPSOURCE,               10213,  //ドロップ元にする
00044     IDC_CHECK_bNotOverWriteCRLF,        10214,  //上書きモード
00045 //  IDC_STATIC,                         -1,
00046     0, 0
00047 };
00048 #endif
00049 //@@@ 2001.02.04 End
00050
00051 //  From Here Jun. 2, 2001 genta
00058 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_EDIT(
00059     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00060 {
00061     return DlgProc( &CPropCommon::DispatchEvent_PROP_EDIT, hwndDlg, uMsg, wParam, lParam );
00062 }
00063 //  To Here Jun. 2, 2001 genta
00064
00065 /* メッセージ処理 */
00066 INT_PTR CPropCommon::DispatchEvent_PROP_EDIT(
00067     HWND        hwndDlg,    // handle to dialog box
00068     UINT        uMsg,       // message
00069     WPARAM      wParam,     // first message parameter
00070     LPARAM      lParam      // second message parameter
00071 )
00072 {
00073     WORD        wNotifyCode;
00074     WORD        wID;
00075     HWND        hwndCtl;
00076     NMHDR*      pNMHDR;
00077     NM_UPDOWN*  pMNUD;
00078     int         idCtrl;
00079 //  int         nVal;
00080 //  LPDRAWITEMSTRUCT pDis;
00081
00082     switch( uMsg ){
00083
00084     case WM_INITDIALOG:
00085         /* ダイアログデータの設定 p1 */
00086         SetData_PROP_EDIT( hwndDlg );
00087         // Modified by KEITA for WIN64 2003.9.6
00088 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00089
00090         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00091
00092         return TRUE;
00093     case WM_COMMAND:
00094         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00095         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00096         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00097         switch( wNotifyCode ){
00098         /* ボタン／チェックボックスがクリックされた */
00099         case BN_CLICKED:
00100             switch( wID ){
00101             case IDC_CHECK_DRAGDROP:    /* タスクトレイを使う */
00102                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DRAGDROP ) ){
00103 //  From Here Sept. 9, 2000 JEPRO
00104 //  前のチェック状態が残るように次の行をコメントアウトに変更
00105 //                  ::CheckDlgButton( hwndDlg, IDC_CHECK_DROPSOURCE, TRUE );    /* DropSource */
00106                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), TRUE );
00107 //  To Here Sept. 9, 2000
00108                 }else{
00109 //  From Here Sept. 9, 2000 JEPRO
00110 //  前のチェック状態が残るように次の行をコメントアウトに変更
00111 //                  ::CheckDlgButton( hwndDlg, IDC_CHECK_DROPSOURCE, FALSE );   /* DropSource */
00112                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), FALSE );
00113 //  To Here Sept. 9, 2000
00114                 }
00115                 return TRUE;
00116             }
00117             break;
00118         }
00119         break;
00120
00121     case WM_NOTIFY:
00122         idCtrl = (int)wParam;
00123         pNMHDR = (NMHDR*)lParam;
00124         pMNUD  = (NM_UPDOWN*)lParam;
00125 //      switch( idCtrl ){
00126 //      default:
00127             switch( pNMHDR->code ){
00128             case PSN_HELP:
00129                 OnHelp( hwndDlg, IDD_PROP_EDIT );
00130                 return TRUE;
00131             case PSN_KILLACTIVE:
00132 #ifdef _DEBUG
00133                 MYTRACE( "p1 PSN_KILLACTIVE\n" );
00134 #endif
00135                 /* ダイアログデータの取得 p1 */
00136                 GetData_PROP_EDIT( hwndDlg );
00137                 return TRUE;
00138 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00139             case PSN_SETACTIVE:
00140                 m_nPageNum = ID_PAGENUM_EDIT;   //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更(参照しているのはCPropCommon.cppのみの1箇所)
00141                 return TRUE;
00142             }
00143 //          break;  /* default */
00144 //      }
00145         break;  /* WM_NOTIFY */
00146
00147 //@@@ 2001.02.04 Start by MIK: Popup Help
00148     case WM_HELP:
00149         {
00150             HELPINFO *p = (HELPINFO *)lParam;
00151             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00152         }
00153         return TRUE;
00154         /*NOTREACHED*/
00155         //break;
00156 //@@@ 2001.02.04 End
00157
00158 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00159     //Context Menu
00160     case WM_CONTEXTMENU:
00161         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00162         return TRUE;
00163 //@@@ 2001.12.22 End
00164
00165     }
00166     return FALSE;
00167 }
00168
00169
00170 /* ダイアログデータの設定 */
00171 void CPropCommon::SetData_PROP_EDIT( HWND hwndDlg )
00172 {
00173 //  BOOL    bRet;
00174
00175     /* ドラッグ & ドロップ編集 */
00176     ::CheckDlgButton( hwndDlg, IDC_CHECK_DRAGDROP, m_Common.m_bUseOLE_DragDrop );
00177     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DRAGDROP ) ){
00178 //  From Here Sept. 9, 2000 JEPRO
00179 //  前のチェック状態が残るように次の行をコメントアウトに変更
00180 //      ::CheckDlgButton( hwndDlg, IDC_CHECK_DROPSOURCE, TRUE );    /* DropSource */
00181         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), TRUE );
00182 //  To Here Sept. 9, 2000
00183     }else{
00184 //  From Here Sept. 9, 2000 JEPRO
00185 //  前のチェック状態が残るように次の行をコメントアウトに変更
00186 //      ::CheckDlgButton( hwndDlg, IDC_CHECK_DROPSOURCE, FALSE );   /* DropSource */
00187         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DROPSOURCE ), FALSE );
00188 //  To Here Sept. 9, 2000
00189     }
00190
00191     /* DropSource */
00192     ::CheckDlgButton( hwndDlg, IDC_CHECK_DROPSOURCE, m_Common.m_bUseOLE_DropSource );
00193
00194     /* 折り返し行に改行を付けてコピー */
00195     ::CheckDlgButton( hwndDlg, IDC_CHECK_ADDCRLFWHENCOPY, m_Common.m_bAddCRLFWhenCopy );
00196
00197     /* コピーしたら選択解除 */
00198     ::CheckDlgButton( hwndDlg, IDC_CHECK_COPYnDISABLESELECTEDAREA, m_Common.m_bCopyAndDisablSelection );
00199
00200     /* 改行は上書きしない */
00201     ::CheckDlgButton( hwndDlg, IDC_CHECK_bNotOverWriteCRLF, m_Common.m_bNotOverWriteCRLF );
00202
00203     //  URLがクリックされたら選択するか */  // 2007.02.11 genta このページへ移動
00204     ::CheckDlgButton( hwndDlg, IDC_CHECK_bSelectClickedURL, m_Common.m_bSelectClickedURL );
00205     return;
00206 }
00207
00208
00209
00210
00211
00212 /* ダイアログデータの取得 */
00213 int CPropCommon::GetData_PROP_EDIT( HWND hwndDlg )
00214 {
00215 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00216 //  m_nPageNum = ID_PAGENUM_EDIT;
00217
00218     /* ドラッグ & ドロップ編集 */
00219     m_Common.m_bUseOLE_DragDrop = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DRAGDROP );
00220     /* DropSource */
00221     m_Common.m_bUseOLE_DropSource = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DROPSOURCE );
00222
00223     /* 折り返し行に改行を付けてコピー */
00224     m_Common.m_bAddCRLFWhenCopy = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ADDCRLFWHENCOPY );
00225
00226     /* コピーしたら選択解除 */
00227     m_Common.m_bCopyAndDisablSelection = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_COPYnDISABLESELECTEDAREA );
00228
00229     /* 改行は上書きしない */
00230     m_Common.m_bNotOverWriteCRLF = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bNotOverWriteCRLF );
00231
00232     /* URLがクリックされたら選択するか */   // 2007.02.11 genta このページへ移動
00233     m_Common.m_bSelectClickedURL = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bSelectClickedURL );
00234     return TRUE;
00235 }
00236
00237
00238 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComFile.cpp

CPropComFile.cpp

共通設定ダイアログボックス、「書式」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "debug.h"
#include "sakura.hh"

CPropComFile.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「書式」ページ

作者:
Norio Nakatani

CPropComFile.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    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,
    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,
    IDC_CHECK_QueryIfCodeChange,            HIDC_CHECK_QueryIfCodeChange,
    IDC_CHECK_AlertIfFileNotExist,          HIDC_CHECK_AlertIfFileNotExist,
    IDC_CHECK_NoFilterSaveNew,              HIDC_CHECK_NoFilterSaveNew,
    IDC_CHECK_NoFilterSaveFile,             HIDC_CHECK_NoFilterSaveFile,

    0, 0
}

CPropComFile.cpp の 25 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComFile.cpp ソースファイル

CPropComFile.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, genta, MIK, jepro
00009     Copyright (C) 2002, YAZAKI, MIK, aroka, hor
00010     Copyright (C) 2004, genta, ryoji
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holders to use this code for other purpose.
00015 */
00016
00017 #include "stdafx.h"
00018 #include "CPropCommon.h"
00019 #include "debug.h" // 2002/2/10 aroka
00020
00021
00022 //@@@ 2001.02.04 Start by MIK: Popup Help
00023 #if 1   //@@@ 2002.01.03 add MIK
00024 #include "sakura.hh"
00025 static const DWORD p_helpids[] = {  //01310
00026     IDC_CHECK_EXCVLUSIVE_NO,                HIDC_CHECK_EXCVLUSIVE_NO,               //ファイルの排他制御（排他制御しない）
00027     IDC_CHECK_bCheckFileTimeStamp,          HIDC_CHECK_bCheckFileTimeStamp,         //更新の監視
00028     IDC_CHECK_EXCVLUSIVE_WRITE,             HIDC_CHECK_EXCVLUSIVE_WRITE,            //ファイルの排他制御（上書き禁止）
00029     IDC_CHECK_EXCVLUSIVE_READWRITE,         HIDC_CHECK_EXCVLUSIVE_READWRITE,        //ファイルお排他制御（読み書き禁止）
00030     IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE,    HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE,   //無変更でも上書き
00031     IDC_CHECK_AUTOSAVE,                     HIDC_CHECK_AUTOSAVE,                    //自動的に保存
00032     IDC_CHECK_bDropFileAndClose,            HIDC_CHECK_bDropFileAndClose,           //閉じて開く
00033     IDC_CHECK_RestoreCurPosition,           HIDC_CHECK_RestoreCurPosition,          //カーソル位置の復元
00034     IDC_CHECK_AutoMIMEDecode,               HIDC_CHECK_AutoMIMEDecode,              //MIMEデコード
00035     IDC_EDIT_AUTOBACKUP_INTERVAL,           HIDC_EDIT_AUTOBACKUP_INTERVAL,          //自動保存間隔
00036     IDC_EDIT_nDropFileNumMax,               HIDC_EDIT_nDropFileNumMax,              //ファイルドロップ最大数
00037     IDC_SPIN_AUTOBACKUP_INTERVAL,           HIDC_EDIT_AUTOBACKUP_INTERVAL,
00038     IDC_SPIN_nDropFileNumMax,               HIDC_EDIT_nDropFileNumMax,
00039     IDC_CHECK_RestoreBookmarks,             HIDC_CHECK_RestoreBookmarks,            // 2002.01.16 hor ブックマークの復元
00040     IDC_CHECK_QueryIfCodeChange,            HIDC_CHECK_QueryIfCodeChange,           //前回と異なる文字コードのとき問い合わせを行う  // 2006.08.06 ryoji
00041     IDC_CHECK_AlertIfFileNotExist,          HIDC_CHECK_AlertIfFileNotExist,         //開こうとしたファイルが存在しないとき警告する  // 2006.08.06 ryoji
00042     IDC_CHECK_NoFilterSaveNew,              HIDC_CHECK_NoFilterSaveNew,             // 新規から保存時は全ファイル表示   // 2006.11.16 ryoji
00043     IDC_CHECK_NoFilterSaveFile,             HIDC_CHECK_NoFilterSaveFile,            // 新規以外から保存時は全ファイル表示   // 2006.11.16 ryoji
00044 //  IDC_STATIC,                             -1,
00045     0, 0
00046 };
00047 #else
00048 static const DWORD p_helpids[] = {  //01310
00049     IDC_CHECK_EXCVLUSIVE_NO,                10310,  //ファイルの排他制御（排他制御しない）
00050     IDC_CHECK_bCheckFileTimeStamp,          10311,  //更新の監視
00051     IDC_CHECK_EXCVLUSIVE_WRITE,             10312,  //ファイルの排他制御（上書き禁止）
00052     IDC_CHECK_EXCVLUSIVE_READWRITE,         10313,  //ファイルお排他制御（読み書き禁止）
00053     IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE,    10314,  //無変更でも上書き
00054     IDC_CHECK_AUTOSAVE,                     10315,  //自動的に保存
00055     IDC_CHECK_bDropFileAndClose,            10316,  //閉じて開く
00056     IDC_CHECK_RestoreCurPosition,           10317,  //カーソル位置の復元
00057     IDC_CHECK_AutoMIMEDecode,               10318,  //MIMEデコード
00058     IDC_EDIT_AUTOBACKUP_INTERVAL,           10340,  //自動保存間隔
00059     IDC_EDIT_nDropFileNumMax,               10341,  //ファイルドロップ最大数
00060     IDC_CHECK_RestoreBookmarks              10342,  // 2002.01.16 hor ブックマークの復元
00061     IDC_SPIN_AUTOBACKUP_INTERVAL,           -1,
00062     IDC_SPIN_nDropFileNumMax,               -1,
00063 //  IDC_STATIC,                             -1,
00064     0, 0
00065 };
00066 #endif
00067 //@@@ 2001.02.04 End
00068
00069 //  From Here Jun. 2, 2001 genta
00076 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FILE(
00077     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00078 {
00079     return DlgProc( &CPropCommon::DispatchEvent_p2, hwndDlg, uMsg, wParam, lParam );
00080 }
00081 //  To Here Jun. 2, 2001 genta
00082
00084 INT_PTR CPropCommon::DispatchEvent_p2(
00085     HWND    hwndDlg,
00086     UINT    uMsg,
00087     WPARAM  wParam,
00088     LPARAM  lParam
00089 )
00090 {
00091     WORD        wNotifyCode;
00092     WORD        wID;
00093     HWND        hwndCtl;
00094     NMHDR*      pNMHDR;
00095     NM_UPDOWN*  pMNUD;
00096     int         idCtrl;
00097 //  int         nVal;
00098     int         nVal;   //Sept.21, 2000 JEPRO スピン要素を加えたので復活させた
00099 //  char        szFolder[_MAX_PATH];
00100
00101     switch( uMsg ){
00102     case WM_INITDIALOG:
00103         /* ダイアログデータの設定 p2 */
00104         SetData_p2( hwndDlg );
00105 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00106
00107         return TRUE;
00108 //****  From Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるので以下のWM_NOTIFYをコメントアウトにし下に修正を置いた
00109 //  case WM_NOTIFY:
00110 //      idCtrl = (int)wParam;
00111 //      pNMHDR = (NMHDR*)lParam;
00112 //      pMNUD  = (NM_UPDOWN*)lParam;
00115 //          switch( pNMHDR->code ){
00116 //          case PSN_HELP:
00117 //              OnHelp( hwndDlg, IDD_PROP_FILE );
00118 //              return TRUE;
00119 //          case PSN_KILLACTIVE:
00121 //              /* ダイアログデータの取得 p2 */
00122 //              GetData_p2( hwndDlg );
00123 //              return TRUE;
00124 //          }
00126 //      break;
00127
00128     case WM_NOTIFY:
00129         idCtrl = (int)wParam;
00130         pNMHDR = (NMHDR*)lParam;
00131         pMNUD  = (NM_UPDOWN*)lParam;
00132         switch( idCtrl ){
00133         default:
00134             switch( pNMHDR->code ){
00135             case PSN_HELP:
00136                 OnHelp( hwndDlg, IDD_PROP_FILE );
00137                 return TRUE;
00138             case PSN_KILLACTIVE:
00139 //              MYTRACE( "p2 PSN_KILLACTIVE\n" );
00140                 /* ダイアログデータの取得 p2 */
00141                 GetData_p2( hwndDlg );
00142                 return TRUE;
00143 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00144             case PSN_SETACTIVE:
00145                 m_nPageNum = ID_PAGENUM_FILE;
00146                 return TRUE;
00147             }
00148         break;
00149         case IDC_SPIN_nDropFileNumMax:
00150             /* 一度にドロップ可能なファイル数 */
00151             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, NULL, FALSE );
00152             if( pMNUD->iDelta < 0 ){
00153                 ++nVal;
00154             }else
00155             if( pMNUD->iDelta > 0 ){
00156                 --nVal;
00157             }
00158             if( nVal < 1 ){
00159                 nVal = 1;
00160             }
00161             if( nVal > 99 ){
00162                 nVal = 99;
00163             }
00164             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, nVal, FALSE );
00165             return TRUE;
00166 //@@@ 2001.03.21 Start by MIK
00167             /*NOTREACHED*/
00168 //          break;
00169         case IDC_SPIN_AUTOBACKUP_INTERVAL:
00170             /* バックアップ間隔 */
00171             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, NULL, FALSE );
00172             if( pMNUD->iDelta < 0 ){
00173                 ++nVal;
00174             }else
00175             if( pMNUD->iDelta > 0 ){
00176                 --nVal;
00177             }
00178             if( nVal < 1 ){
00179                 nVal = 1;
00180             }
00181             if( nVal > 35791 ){
00182                 nVal = 35791;
00183             }
00184             ::SetDlgItemInt( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, nVal, FALSE );
00185             return TRUE;
00186             /*NOTREACHED*/
00187 //          break;
00188 //@@@ 2001.03.21 End by MIK
00189         }
00190 //****  To Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるのでWM_NOTIFYをコメントアウトにしその下に修正を置いた
00191         break;
00192
00193     case WM_COMMAND:
00194         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00195         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00196         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00197         switch( wNotifyCode ){
00198         /* ボタン／チェックボックスがクリックされた */
00199         case BN_CLICKED:
00200             switch( wID ){
00201             case IDC_CHECK_EXCVLUSIVE_NO:
00202             case IDC_CHECK_EXCVLUSIVE_WRITE:
00203             case IDC_CHECK_EXCVLUSIVE_READWRITE:
00204             case IDC_CHECK_bDropFileAndClose:/* ファイルをドロップしたときは閉じて開く */
00205             case IDC_CHECK_AUTOSAVE:
00206                 EnableFilePropInput(hwndDlg);
00207                 break;
00208             }
00209             break;
00210         }
00211         break;
00212
00213 //@@@ 2001.02.04 Start by MIK: Popup Help
00214     case WM_HELP:
00215         {
00216             HELPINFO *p = (HELPINFO *)lParam;
00217             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00218         }
00219         return TRUE;
00220         /*NOTREACHED*/
00221 //      break;
00222 //@@@ 2001.02.04 End
00223
00224 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00225     //Context Menu
00226     case WM_CONTEXTMENU:
00227         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00228         return TRUE;
00229 //@@@ 2001.12.22 End
00230
00231     }
00232     return FALSE;
00233 }
00234
00235
00236
00237
00238
00247 void CPropCommon::SetData_p2( HWND hwndDlg )
00248 {
00249     /*--- p2 ---*/
00250     /* ファイルの排他制御モード */
00251     switch( m_Common.m_nFileShareMode ){
00252     case OF_SHARE_DENY_WRITE:   /* 書き込み禁止 */
00253         ::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_WRITE, BST_CHECKED );
00254         break;
00255     case OF_SHARE_EXCLUSIVE:    /* 読み書き禁止 */
00256         ::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_READWRITE, BST_CHECKED );
00257         break;
00258     case 0: /* 排他なし */
00259     default:    /* 排他なし */
00260         ::CheckDlgButton( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO, BST_CHECKED );
00261         break;
00262     }
00263     /* 更新の監視 */
00264     ::CheckDlgButton( hwndDlg, IDC_CHECK_bCheckFileTimeStamp, m_Common.m_bCheckFileTimeStamp );
00265
00266     /* 無変更でも上書きするか */
00267     ::CheckDlgButton( hwndDlg, IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE, m_Common.m_bEnableUnmodifiedOverwrite );
00268
00269     /* ファイルをドロップしたときは閉じて開く */
00270     ::CheckDlgButton( hwndDlg, IDC_CHECK_bDropFileAndClose, m_Common.m_bDropFileAndClose );
00271     /* 一度にドロップ可能なファイル数 */
00272     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, m_Common.m_nDropFileNumMax, FALSE );
00273
00274     //  From Here Aug. 21, 2000 genta
00275     //  自動保存の有効・無効
00276     ::CheckDlgButton( hwndDlg, IDC_CHECK_AUTOSAVE, m_Common.IsAutoBackupEnabled() );
00277
00278     char buf[6];
00279     int nN;
00280
00281     nN = m_Common.GetAutoBackupInterval();
00282     nN = nN < 1  ?  1 : nN;
00283     nN = nN > 35791 ? 35791 : nN;
00284
00285     wsprintf( buf, "%d", nN);
00286     ::SetDlgItemText( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, buf );
00287     //  To Here Aug. 21, 2000 genta
00288
00289     //  Oct. 27, 2000 genta カーソル位置復元フラグ
00290     ::CheckDlgButton( hwndDlg, IDC_CHECK_RestoreCurPosition, m_Common.GetRestoreCurPosition() );
00291     // 2002.01.16 hor ブックマーク復元フラグ
00292     ::CheckDlgButton( hwndDlg, IDC_CHECK_RestoreBookmarks, m_Common.GetRestoreBookmarks() );
00293     //  Nov. 12, 2000 genta MIME Decodeフラグ
00294     ::CheckDlgButton( hwndDlg, IDC_CHECK_AutoMIMEDecode, m_Common.GetAutoMIMEdecode() );
00295     //  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
00296     ::CheckDlgButton( hwndDlg, IDC_CHECK_QueryIfCodeChange, m_Common.GetQueryIfCodeChange() );
00297     //  Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告するかどうかのフラグ
00298     ::CheckDlgButton( hwndDlg, IDC_CHECK_AlertIfFileNotExist, m_Common.GetAlertIfFileNotExist() );
00299
00300     // ファイル保存ダイアログのフィルタ設定 // 2006.11.16 ryoji
00301     ::CheckDlgButton( hwndDlg, IDC_CHECK_NoFilterSaveNew, m_Common.m_bNoFilterSaveNew );    // 新規から保存時は全ファイル表示
00302     ::CheckDlgButton( hwndDlg, IDC_CHECK_NoFilterSaveFile, m_Common.m_bNoFilterSaveFile );  // 新規以外から保存時は全ファイル表示
00303
00304     EnableFilePropInput(hwndDlg);
00305     return;
00306 }
00307
00317 int CPropCommon::GetData_p2( HWND hwndDlg )
00318 {
00319 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00320 //  m_nPageNum = ID_PAGENUM_FILE;
00321
00322     /* ファイルの排他制御モード */
00323     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO ) ){ /* 排他なし */
00324         m_Common.m_nFileShareMode = 0;
00325     }else
00326     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_WRITE ) ){  /* 書き込み禁止 */
00327         m_Common.m_nFileShareMode = OF_SHARE_DENY_WRITE ;
00328     }else
00329     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_READWRITE ) ){  /* 読み書き禁止 */
00330         m_Common.m_nFileShareMode = OF_SHARE_EXCLUSIVE;
00331     }else{
00332         /* 排他なし */
00333         m_Common.m_nFileShareMode = 0;
00334     }
00335     /* 更新の監視 */
00336     m_Common.m_bCheckFileTimeStamp = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bCheckFileTimeStamp );
00337
00338     /* 無変更でも上書きするか */
00339     m_Common.m_bEnableUnmodifiedOverwrite = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE );
00340
00341     /* ファイルをドロップしたときは閉じて開く */
00342     m_Common.m_bDropFileAndClose = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bDropFileAndClose );
00343     /* 一度にドロップ可能なファイル数 */
00344     m_Common.m_nDropFileNumMax = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nDropFileNumMax, NULL, FALSE );
00345     if( 1 > m_Common.m_nDropFileNumMax ){
00346         m_Common.m_nDropFileNumMax = 1;
00347     }
00348     if( 99 < m_Common.m_nDropFileNumMax ){  //Sept. 21, 2000, JEPRO 16より大きいときに99と制限されていたのを修正(16→99と変更)
00349         m_Common.m_nDropFileNumMax = 99;
00350     }
00351
00352     //  From Here Aug. 16, 2000 genta
00353     //  自動保存を行うかどうか
00354     m_Common.EnableAutoBackup( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AUTOSAVE ) == TRUE );
00355
00356     //  自動保存間隔の取得
00357     char szNumBuf[/*6*/ 7]; //@@@ 2001.03.21 by MIK
00358     int  nN;
00359     char *pDigit;
00360
00361     ::GetDlgItemText( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL, szNumBuf, /*5*/ 6 );   //@@@ 2001.03.21 by MIK
00362
00363     for( nN = 0, pDigit = szNumBuf; *pDigit != '\0'; pDigit++ ){
00364         if( '0' <= *pDigit && *pDigit <= '9' ){
00365             nN = nN * 10 + *pDigit - '0';
00366         }
00367         else
00368             break;
00369     }
00370     nN = nN < 1  ?  1 : nN;
00371     nN = nN > 35791 ? 35791 : nN;
00372     m_Common.SetAutoBackupInterval( nN );
00373
00374     //  To Here Aug. 16, 2000 genta
00375
00376     //  Oct. 27, 2000 genta カーソル位置復元フラグ
00377     m_Common.SetRestoreCurPosition( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RestoreCurPosition ) == TRUE );
00378     // 2002.01.16 hor ブックマーク復元フラグ
00379     m_Common.SetRestoreBookmarks( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RestoreBookmarks ) == TRUE );
00380     //  Nov. 12, 2000 genta MIME Decodeフラグ
00381     m_Common.SetAutoMIMEdecode( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AutoMIMEDecode ) == TRUE );
00382     //  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
00383     m_Common.SetQueryIfCodeChange( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_QueryIfCodeChange ) == TRUE );
00384     //  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ
00385     m_Common.SetAlertIfFileNotExist( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AlertIfFileNotExist ) == TRUE );
00386
00387     // ファイル保存ダイアログのフィルタ設定 // 2006.11.16 ryoji
00388     m_Common.m_bNoFilterSaveNew = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_NoFilterSaveNew );   // 新規から保存時は全ファイル表示
00389     m_Common.m_bNoFilterSaveFile = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_NoFilterSaveFile ); // 新規以外から保存時は全ファイル表示
00390
00391     return TRUE;
00392 }
00393
00394 //  From Here Aug. 21, 2000 genta
00400 void CPropCommon::EnableFilePropInput(HWND hwndDlg)
00401 {
00402
00403     //  Drop時の動作
00404     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bDropFileAndClose ) ){
00405         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE3 ), FALSE );  // added Sept. 6, JEPRO 自動保存にしたときだけEnableになるように変更
00406         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE4 ), FALSE );  // added Sept. 6, JEPRO 同上
00407         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_nDropFileNumMax ), FALSE );
00408         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_nDropFileNumMax ), FALSE );// added Oct. 6, JEPRO ファイルオープンを「閉じて開く」にしたときはDisableになるように変更
00409     }else{
00410         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE3 ), TRUE );   // added Sept. 6, JEPRO 同上
00411         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE4 ), TRUE );   // added Sept. 6, JEPRO 同上
00412         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_nDropFileNumMax ), TRUE );
00413         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_nDropFileNumMax ), TRUE );// added Oct. 6, JEPRO ファイルオープンを「複数ファイルドロップ」にしたときだけEnableになるように変更
00414     }
00415
00416     //  排他するかどうか
00417     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXCVLUSIVE_NO ) ){
00418         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_bCheckFileTimeStamp ), TRUE );
00419     }else{
00420         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_bCheckFileTimeStamp ), FALSE );
00421     }
00422
00423     //  自動保存
00424     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_AUTOSAVE ) ){
00425         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL ), TRUE );
00426         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE ), TRUE );
00427         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE2 ), TRUE );   //Sept. 6, 2000 JEPRO 自動保存にしたときだけEnableになるように変更
00428         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_AUTOBACKUP_INTERVAL ), TRUE );  //@@@ 2001.03.21 by MIK
00429     }else{
00430         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_AUTOBACKUP_INTERVAL ), FALSE );
00431         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE ), FALSE );
00432         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_AUTOSAVE2 ), FALSE );  //Sept. 6, 2000 JEPRO 同上
00433         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_AUTOBACKUP_INTERVAL ), FALSE ); //@@@ 2001.03.21 by MIK
00434     }
00435 }
00436 //  To Here Aug. 21, 2000 genta
00437
00438
00439 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComFileName.cpp

CPropComFileName.cpp

#include "stdafx.h"
#include "sakura_rc.h"
#include "CPropCommon.h"
#include "CShareData.h"
#include "sakura.hh"

CPropComFileName.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「ファイル名表示」ページ

作者:
Moca
日付:
2002.12.09 Moca CPropTypesRegex.cppを参考にして作成

CPropComFileName.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_LIST_FNAME,         HIDC_LIST_FNAME,
    IDC_EDIT_FNAME_FROM,    HIDC_EDIT_FNAME_FROM,
    IDC_EDIT_FNAME_TO,      HIDC_EDIT_FNAME_TO,
    IDC_BUTTON_FNAME_INS,   HIDC_BUTTON_FNAME_INS,
    IDC_BUTTON_FNAME_ADD,   HIDC_BUTTON_FNAME_ADD,
    IDC_BUTTON_FNAME_UPD,   HIDC_BUTTON_FNAME_UPD,
    IDC_BUTTON_FNAME_DEL,   HIDC_BUTTON_FNAME_DEL,
    IDC_BUTTON_FNAME_TOP,   HIDC_BUTTON_FNAME_TOP,
    IDC_BUTTON_FNAME_UP,    HIDC_BUTTON_FNAME_UP,
    IDC_BUTTON_FNAME_DOWN,  HIDC_BUTTON_FNAME_DOWN,
    IDC_BUTTON_FNAME_LAST,  HIDC_BUTTON_FNAME_LAST,

    0, 0
}

CPropComFileName.cpp の 41 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:21:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComFileName.cpp ソースファイル

CPropComFileName.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2001, MIK
00009     Copyright (C) 2002, Moca, YAZAKI
00010     Copyright (C) 2003, Moca, KEITA
00011     Copyright (C) 2004, D.S.Koba
00012     Copyright (C) 2006, ryoji
00013
00014     This software is provided 'as-is', without any express or implied
00015     warranty. In no event will the authors be held liable for any damages
00016     arising from the use of this software.
00017
00018     Permission is granted to anyone to use this software for any purpose,
00019     including commercial applications, and to alter it and redistribute it
00020     freely, subject to the following restrictions:
00021
00022         1. The origin of this software must not be misrepresented;
00023            you must not claim that you wrote the original software.
00024            If you use this software in a product, an acknowledgment
00025            in the product documentation would be appreciated but is
00026            not required.
00027
00028         2. Altered source versions must be plainly marked as such,
00029            and must not be misrepresented as being the original software.
00030
00031         3. This notice may not be removed or altered from any source
00032            distribution.
00033 */
00034 #include "stdafx.h"
00035 #include "sakura_rc.h"
00036 #include "CPropCommon.h"
00037 #include "CShareData.h"
00038 #include "sakura.hh"
00039
00040
00041 static const DWORD p_helpids[] = {  //13400
00042     IDC_LIST_FNAME,         HIDC_LIST_FNAME,        // ファイル名置換リスト
00043     IDC_EDIT_FNAME_FROM,    HIDC_EDIT_FNAME_FROM,   // 置換前
00044     IDC_EDIT_FNAME_TO,      HIDC_EDIT_FNAME_TO,     // 置換後
00045     IDC_BUTTON_FNAME_INS,   HIDC_BUTTON_FNAME_INS,  // 挿入
00046     IDC_BUTTON_FNAME_ADD,   HIDC_BUTTON_FNAME_ADD,  // 追加
00047     IDC_BUTTON_FNAME_UPD,   HIDC_BUTTON_FNAME_UPD,  // 更新
00048     IDC_BUTTON_FNAME_DEL,   HIDC_BUTTON_FNAME_DEL,  // 削除
00049     IDC_BUTTON_FNAME_TOP,   HIDC_BUTTON_FNAME_TOP,  // 先頭
00050     IDC_BUTTON_FNAME_UP,    HIDC_BUTTON_FNAME_UP,   // 上へ
00051     IDC_BUTTON_FNAME_DOWN,  HIDC_BUTTON_FNAME_DOWN, // 下へ
00052     IDC_BUTTON_FNAME_LAST,  HIDC_BUTTON_FNAME_LAST, // 最終
00053 //  IDC_CHECK_FNAME,        HIDC_CHECK_FNAME,   // ファイル名を簡易表示する
00054     0, 0 //
00055 };
00056
00057
00058
00059 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FILENAME(
00060     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00061 {
00062     return DlgProc( &CPropCommon::DispatchEvent_PROP_FILENAME, hwndDlg, uMsg, wParam, lParam );
00063 }
00064
00065 INT_PTR CPropCommon::DispatchEvent_PROP_FILENAME( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00066 {
00067
00068     HWND    hListView;
00069     int     nIndex;
00070     TCHAR   szFrom[_MAX_PATH];
00071     TCHAR   szTo[_MAX_PATH];
00072
00073     switch( uMsg ){
00074
00075     case WM_INITDIALOG:
00076         {
00077             RECT        rc;
00078             LV_COLUMN   col;
00079             hListView = GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00080
00081             // Modified by KEITA for WIN64 2003.9.6
00082 			::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00083             ::GetWindowRect( hListView, &rc );
00084             col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00085             col.fmt      = LVCFMT_LEFT;
00086             col.cx       = ( rc.right - rc.left ) * 60 / 100;
00087             col.pszText  = _T("置換前");
00088             col.iSubItem = 0;
00089             ListView_InsertColumn( hListView, 0, &col );
00090             col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00091             col.fmt      = LVCFMT_LEFT;
00092             col.cx       = ( rc.right - rc.left ) * 35 / 100;
00093             col.pszText  = _T("置換後");
00094             col.iSubItem = 1;
00095             ListView_InsertColumn( hListView, 1, &col );
00096
00097             // Apr. 28, 2003 Moca 初期化漏れ修正
00098             // ダイアログを開いたときにリストが選択されていてもフィールドが空の場合があった
00099             m_nLastPos_FILENAME = -1;
00100
00101             // ダイアログデータの設定
00102             SetData_PROP_FILENAME( hwndDlg );
00103
00104             // エディット コントロールに入力できるテキストの長さを制限する
00105             ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_FNAME_FROM ),  EM_LIMITTEXT, (WPARAM)( _MAX_PATH - 1 ), 0 );
00106             ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_FNAME_TO ),    EM_LIMITTEXT, (WPARAM)( _MAX_PATH - 1 ), 0 );
00107         }
00108         return TRUE;
00109
00110     case WM_NOTIFY:
00111         {
00112             NMHDR*      pNMHDR = (NMHDR*)lParam;
00113             NM_UPDOWN*  pMNUD  = (NM_UPDOWN*)lParam;
00114             int         idCtrl = (int)wParam;
00115
00116             switch( idCtrl ){
00117             case IDC_LIST_FNAME:
00118                 switch( pNMHDR->code ){
00119                 case LVN_ITEMCHANGED:
00120                     hListView = GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00121                     nIndex = ListView_GetNextItem( hListView, -1, LVNI_SELECTED );
00122                     // 未選択
00123                     if( -1 == nIndex ){
00124                         ::SetDlgItemText( hwndDlg, IDC_EDIT_FNAME_FROM, _T("") );
00125                         ::SetDlgItemText( hwndDlg, IDC_EDIT_FNAME_TO, _T("") );
00126                     }else if( nIndex != m_nLastPos_FILENAME ){
00127                         GetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo );
00128                         ::SetDlgItemText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom );
00129                         ::SetDlgItemText( hwndDlg, IDC_EDIT_FNAME_TO, szTo );
00130                     }else{
00131                         // nIndex == m_nLastPos_FILENAMEのとき
00132                         // リスト→エディットボックスにデータをコピーすると[更新]がうまくうまく動作しない
00133                     }
00134                     m_nLastPos_FILENAME = nIndex;
00135                     break;
00136                 }
00137                 break;
00138             default:
00139                 switch( pNMHDR->code ){
00140                 case PSN_HELP:
00141                     OnHelp( hwndDlg, IDD_PROP_FNAME );
00142                     return TRUE;
00143                 case PSN_KILLACTIVE:
00144                     // ダイアログデータの取得
00145                     GetData_PROP_FILENAME( hwndDlg );
00146                     return TRUE;
00147     //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00148                 case PSN_SETACTIVE:
00149                     m_nPageNum = ID_PAGENUM_FILENAME;
00150                     return TRUE;
00151                 }
00152                 break;
00153             }
00154         }
00155         break;
00156
00157     case WM_COMMAND:
00158         {
00159             WORD    wNotifyCode = HIWORD(wParam);   // 通知コード
00160             WORD    wID = LOWORD(wParam);           // 項目ID､ コントロールID､ またはアクセラレータID
00161             HWND    hwndCtl = (HWND) lParam;        // コントロールのハンドル
00162             int     nCount;
00163
00164             switch( wNotifyCode ){
00165             // ボタンがクリックされた
00166             case BN_CLICKED:
00167                 hListView = GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00168                 nIndex = ListView_GetNextItem( hListView, -1, LVNI_SELECTED );
00169                 switch( wID ){
00170                 case IDC_BUTTON_FNAME_INS:  // 挿入
00171                     // 選択中のキーを探す
00172                     nCount = ListView_GetItemCount( hListView );
00173                     if( -1 == nIndex ){
00174                         // 選択中でなければ最後に追加
00175                         nIndex = nCount;
00176                     }
00177                     ::GetDlgItemText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom, _MAX_PATH );
00178                     ::GetDlgItemText( hwndDlg, IDC_EDIT_FNAME_TO,   szTo,   _MAX_PATH );
00179
00180                     if( -1 != SetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo, true ) ){
00181                         return TRUE;
00182                     }
00183                     break;
00184                 case IDC_BUTTON_FNAME_ADD:  // 追加
00185                     nCount = ListView_GetItemCount( hListView );
00186
00187                     ::GetDlgItemText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom, _MAX_PATH );
00188                     ::GetDlgItemText( hwndDlg, IDC_EDIT_FNAME_TO,   szTo,   _MAX_PATH );
00189
00190                     if( -1 != SetListViewItem_FILENAME( hListView, nCount, szFrom, szTo, true ) ){
00191                         return TRUE;
00192                     }
00193                     break;
00194
00195                 case IDC_BUTTON_FNAME_UPD:  // 更新
00196                     if( -1 != nIndex ){
00197                         ::GetDlgItemText( hwndDlg, IDC_EDIT_FNAME_FROM, szFrom, _MAX_PATH );
00198                         ::GetDlgItemText( hwndDlg, IDC_EDIT_FNAME_TO,   szTo,   _MAX_PATH );
00199                         if( -1 != SetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo, false ) ){
00200                             return TRUE;
00201                         }
00202                     }else{
00203                         // 未選択でリストにひとつも項目がない場合は追加しておく
00204                         if( 0 == ListView_GetItemCount( hListView ) ){
00205                             if( -1 != SetListViewItem_FILENAME( hListView, 0, szFrom, szTo, true ) ){
00206                                 return TRUE;
00207                             }
00208                         }
00209                     }
00210                     break;
00211                 case IDC_BUTTON_FNAME_DEL:  // 削除
00212                     if( -1 != nIndex ){
00213                         ListView_DeleteItem( hListView, nIndex );   //古いキーを削除
00214                         ListView_SetItemState( hListView, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00215                         return TRUE;
00216                     }
00217                     break;
00218                 case IDC_BUTTON_FNAME_TOP:  // 先頭
00219                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, 0 ) ){
00220                         return TRUE;
00221                     }
00222                     break;
00223                 case IDC_BUTTON_FNAME_UP:   // 上へ
00224                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, nIndex - 1 ) ){
00225                         return TRUE;
00226                     }
00227                     break;
00228                 case IDC_BUTTON_FNAME_DOWN: // 下へ
00229                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, nIndex + 1 ) ){
00230                         return TRUE;
00231                     }
00232                     break;
00233                 case IDC_BUTTON_FNAME_LAST: // 最終
00234                     nCount = ListView_GetItemCount( hListView );
00235                     if( -1 != MoveListViewItem_FILENAME( hListView, nIndex, nCount - 1 ) ){
00236                         return TRUE;
00237                     }
00238                     break;
00239                 // default:
00240                 }
00241                 break;
00242             // default:
00243             }
00244         }
00245
00246         break;  /* WM_COMMAND */
00247 //@@@ 2001.02.04 Start by MIK: Popup Help
00248     case WM_HELP:
00249         {
00250             HELPINFO *p = (HELPINFO *)lParam;
00251             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00252         }
00253         return TRUE;
00254 //@@@ 2001.02.04 End
00255
00256 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00257     //Context Menu
00258     case WM_CONTEXTMENU:
00259         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00260         return TRUE;
00261 //@@@ 2001.12.22 End
00262
00263     }
00264     return FALSE;
00265 }
00266
00267
00268
00274 void CPropCommon::SetData_PROP_FILENAME( HWND hwndDlg )
00275 {
00276     int nIndex;
00277     int i;
00278     LVITEM Item;
00279
00280     // ファイル名を簡易表示する
00281 //  if( FALSE != m_bUseTransformFileName ){
00282 //      CheckDlgButton( hwndDlg, IDC_CHECK_FNAME, BST_CHECKED );
00283 //  }else{
00284 //      CheckDlgButton( hwndDlg, IDC_CHECK_REGEX, BST_UNCHECKED );
00285 //  }
00286 //  EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_FNAME ), FALSE );
00287
00288     // ファイル名置換リスト
00289     HWND hListView = ::GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00290     ListView_DeleteAllItems( hListView ); // リストを空にする
00291
00292     // リストにデータをセット
00293     for( i = 0, nIndex = 0; i < m_nTransformFileNameArrNum; i++ ){
00294         if( '\0' == m_szTransformFileNameFrom[i][0] ) continue;
00295
00296         ::ZeroMemory( &Item, sizeof( Item ));
00297         Item.mask     = LVIF_TEXT;
00298         Item.iItem    = nIndex;
00299         Item.iSubItem = 0;
00300         Item.pszText  = m_szTransformFileNameFrom[i];
00301         ListView_InsertItem( hListView, &Item );
00302
00303         ::ZeroMemory( &Item, sizeof( Item ));
00304         Item.mask     = LVIF_TEXT;
00305         Item.iItem    = nIndex;
00306         Item.iSubItem = 1;
00307         Item.pszText  = m_szTransformFileNameTo[i];
00308         ListView_SetItem( hListView, &Item );
00309
00310         nIndex++;
00311     }
00312
00313     // 一番上を選択しておく
00314     if( 0 != nIndex ){
00315         ListView_SetItemState( hListView, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00316     }
00317     //  リストビューの行選択を可能にする．
00318     DWORD dwStyle;
00319     dwStyle = ListView_GetExtendedListViewStyle( hListView );
00320     dwStyle |= LVS_EX_FULLROWSELECT;
00321     ListView_SetExtendedListViewStyle( hListView, dwStyle );
00322
00323     return;
00324 }
00325
00332 int CPropCommon::GetData_PROP_FILENAME( HWND hwndDlg )
00333 {
00334
00335     int nIndex;
00336     int nCount;
00337
00338     // ファイル名を簡易表示する
00339 //  if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_FNAME ) ){
00340 //      m_bUseTransformFileName = TRUE;
00341 //  }else{
00342 //      m_bUseRegexKeyword = FALSE;
00343 //  }
00344
00345     // ファイル名置換リスト
00346     HWND hListView = ::GetDlgItem( hwndDlg, IDC_LIST_FNAME );
00347     m_nTransformFileNameArrNum = ListView_GetItemCount( hListView );
00348
00349     for( nIndex = 0, nCount = 0; nIndex < MAX_TRANSFORM_FILENAME ; ++nIndex ){
00350         if( nIndex < m_nTransformFileNameArrNum ){
00351             ListView_GetItemText( hListView, nIndex, 0, m_szTransformFileNameFrom[nCount], _MAX_PATH );
00352
00353             // 置換前文字列がNULLだったら捨てる
00354             if( '\0' == m_szTransformFileNameFrom[nCount][0] ){
00355                 m_szTransformFileNameTo[nIndex][0] = '\0';
00356             }else{
00357                 ListView_GetItemText( hListView, nIndex, 1, m_szTransformFileNameTo[nCount], _MAX_PATH );
00358                 nCount++;
00359             }
00360         }else{
00361             m_szTransformFileNameFrom[nIndex][0] = '\0';
00362             m_szTransformFileNameTo[nIndex][0] = '\0';
00363         }
00364     }
00365
00366     return TRUE;
00367 }
00368
00369
00370 int CPropCommon::SetListViewItem_FILENAME( HWND hListView, int nIndex, LPTSTR szFrom, LPTSTR szTo, bool bInsMode )
00371 {
00372     LV_ITEM Item;
00373     int nCount;
00374
00375     if( '\0' == szFrom[0] || -1 == nIndex ) return -1;
00376
00377     nCount = ListView_GetItemCount( hListView );
00378
00379     // これ以上追加できない
00380     if( bInsMode && MAX_TRANSFORM_FILENAME <= nCount ){
00381         ::MessageBox( GetParent( hListView ), _T("これ以上登録できません。"), GSTR_APPNAME, MB_OK | MB_ICONSTOP );
00382         return -1;
00383     }
00384
00385     ::ZeroMemory( &Item, sizeof( Item ));
00386     Item.mask     = LVIF_TEXT;
00387     Item.iItem    = nIndex;
00388     Item.iSubItem = 0;
00389     Item.pszText  = szFrom;
00390     if( bInsMode ){
00391         ListView_InsertItem( hListView, &Item );
00392     }else{
00393         ListView_SetItem( hListView, &Item );
00394     }
00395
00396     ::ZeroMemory( &Item, sizeof( Item ));
00397     Item.mask     = LVIF_TEXT;
00398     Item.iItem    = nIndex;
00399     Item.iSubItem = 1;
00400     Item.pszText  = szTo;
00401     ListView_SetItem( hListView, &Item );
00402
00403     ListView_SetItemState( hListView, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00404     return nIndex;
00405 }
00406
00407
00408 void CPropCommon::GetListViewItem_FILENAME( HWND hListView, int nIndex, LPTSTR szFrom, LPTSTR szTo )
00409 {
00410     ListView_GetItemText( hListView, nIndex, 0, szFrom, _MAX_PATH );
00411     ListView_GetItemText( hListView, nIndex, 1, szTo, _MAX_PATH );
00412 }
00413
00414
00415 int CPropCommon::MoveListViewItem_FILENAME( HWND hListView, int nIndex, int nIndex2 )
00416 {
00417     TCHAR szFrom[_MAX_PATH];
00418     TCHAR szTo[_MAX_PATH];
00419     int nCount = ListView_GetItemCount( hListView );
00420
00421     //  2004.03.24 dskoba
00422     if( nIndex > nCount - 1 ){
00423         nIndex = nCount - 1;
00424     }
00425     if( nIndex2 > nCount - 1 ){
00426         nIndex2 = nCount - 1;
00427     }
00428     if( nIndex < 0 ){
00429         nIndex = 0;
00430     }
00431     if( nIndex2 < 0 ){
00432         nIndex2 = 0;
00433     }
00434
00435     if( nIndex == nIndex2 ){
00436         return -1;
00437     }
00438
00439     GetListViewItem_FILENAME( hListView, nIndex, szFrom, szTo );
00440     ListView_DeleteItem( hListView, nIndex );   //古いキーを削除
00441     SetListViewItem_FILENAME( hListView, nIndex2, szFrom, szTo, true );
00442     return nIndex2;
00443 }
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComFormat.cpp

CPropComFormat.cpp

#include "stdafx.h"
#include "CPropCommon.h"
#include "etc_uty.h"
#include "debug.h"
#include "sakura.hh"

CPropComFormat.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD | p_helpids []
static const char * | p_date_form []
static const char * | p_time_form []

説明

共通設定ダイアログボックス、「書式」ページ

作者:
Norio Nakatani

CPropComFormat.cpp で定義されています。

変数

const char* p_date_form[] [static]

初期値:

 {
    "yyyy'年'M'月'd'日'",
    "yyyy'年'M'月'd'日('dddd')'",
    "yyyy'年'MM'月'dd'日'",
    "yyyy'年'M'月'd'日' dddd",
    "yyyy'年'MM'月'dd'日' dddd",
    "yyyy/MM/dd",
    "yy/MM/dd",
    "yy/M/d",
    "yyyy/M/d",
    "yy/MM/dd' ('ddd')'",
    "yy/M/d' ('ddd')'",
    "yyyy/MM/dd' ('ddd')'",
    "yyyy/M/d' ('ddd')'",
    "yyyy/M/d' ('ddd')'",
    NULL
}

CPropComFormat.cpp の 60 行で定義されています。

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_EDIT_DFORM,                     HIDC_EDIT_DFORM,
    IDC_EDIT_TFORM,                     HIDC_EDIT_TFORM,
    IDC_EDIT_DFORM_EX,                  HIDC_EDIT_DFORM_EX,
    IDC_EDIT_TFORM_EX,                  HIDC_EDIT_TFORM_EX,
    IDC_EDIT_MIDASHIKIGOU,              HIDC_EDIT_MIDASHIKIGOU,
    IDC_EDIT_INYOUKIGOU,                HIDC_EDIT_INYOUKIGOU,
    IDC_RADIO_DFORM_0,                  HIDC_RADIO_DFORM_0,
    IDC_RADIO_DFORM_1,                  HIDC_RADIO_DFORM_1,
    IDC_RADIO_TFORM_0,                  HIDC_RADIO_TFORM_0,
    IDC_RADIO_TFORM_1,                  HIDC_RADIO_TFORM_1,

    0, 0
}

CPropComFormat.cpp の 27 行で定義されています。

const char* p_time_form[] [static]

初期値:

 {
    "hh:mm:ss",
    "tthh'時'mm'分'ss'秒'",
    "H:mm:ss",
    "HH:mm:ss",
    "tt h:mm:ss",
    "tt hh:mm:ss",
    NULL
}

CPropComFormat.cpp の 78 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:00 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComFormat.cpp ソースファイル

CPropComFormat.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009     Copyright (C) 2001, MIK, genta
00010     Copyright (C) 2002, YAZAKI, MIK, aroka
00011     Copyright (C) 2003, KEITA
00012     Copyright (C) 2006, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CPropCommon.h"
00020 #include "etc_uty.h"
00021 #include "debug.h" // 2002/2/10 aroka
00022
00023
00024 //@@@ 2001.02.04 Start by MIK: Popup Help
00025 #if 1   //@@@ 2002.01.03 add MIK
00026 #include "sakura.hh"
00027 static const DWORD p_helpids[] = {  //10400
00028     IDC_EDIT_DFORM,                     HIDC_EDIT_DFORM,        //日付書式
00029     IDC_EDIT_TFORM,                     HIDC_EDIT_TFORM,        //時刻書式
00030     IDC_EDIT_DFORM_EX,                  HIDC_EDIT_DFORM_EX,     //日付書式（表示例）
00031     IDC_EDIT_TFORM_EX,                  HIDC_EDIT_TFORM_EX,     //時刻書式（表示例）
00032     IDC_EDIT_MIDASHIKIGOU,              HIDC_EDIT_MIDASHIKIGOU, //見出し記号
00033     IDC_EDIT_INYOUKIGOU,                HIDC_EDIT_INYOUKIGOU,   //引用符
00034     IDC_RADIO_DFORM_0,                  HIDC_RADIO_DFORM_0,     //日付書式（標準）
00035     IDC_RADIO_DFORM_1,                  HIDC_RADIO_DFORM_1,     //日付書式（カスタム）
00036     IDC_RADIO_TFORM_0,                  HIDC_RADIO_TFORM_0,     //時刻書式（標準）
00037     IDC_RADIO_TFORM_1,                  HIDC_RADIO_TFORM_1,     //時刻書式（カスタム）
00038 //  IDC_STATIC,                         -1,
00039     0, 0
00040 };
00041 #else
00042 static const DWORD p_helpids[] = {  //10400
00043     IDC_EDIT_DFORM,                     10440,  //日付書式
00044     IDC_EDIT_TFORM,                     10441,  //時刻書式
00045     IDC_EDIT_DFORM_EX,                  10442,  //日付書式（表示例）
00046     IDC_EDIT_TFORM_EX,                  10443,  //時刻書式（表示例）
00047     IDC_EDIT_MIDASHIKIGOU,              10444,  //見出し記号
00048     IDC_EDIT_INYOUKIGOU,                10445,  //引用符
00049     IDC_RADIO_DFORM_0,                  10460,  //日付書式（標準）
00050     IDC_RADIO_DFORM_1,                  10461,  //日付書式（カスタム）
00051     IDC_RADIO_TFORM_0,                  10462,  //時刻書式（標準）
00052     IDC_RADIO_TFORM_1,                  10463,  //時刻書式（カスタム）
00053 //  IDC_STATIC,                         -1,
00054     0, 0
00055 };
00056 #endif
00057 //@@@ 2001.02.04 End
00058
00059 //@@@ 2002.01.12 add start
00060 static const char *p_date_form[] = {
00061     "yyyy'年'M'月'd'日'",
00062     "yyyy'年'M'月'd'日('dddd')'",
00063     "yyyy'年'MM'月'dd'日'",
00064     "yyyy'年'M'月'd'日' dddd",
00065     "yyyy'年'MM'月'dd'日' dddd",
00066     "yyyy/MM/dd",
00067     "yy/MM/dd",
00068     "yy/M/d",
00069     "yyyy/M/d",
00070     "yy/MM/dd' ('ddd')'",
00071     "yy/M/d' ('ddd')'",
00072     "yyyy/MM/dd' ('ddd')'",
00073     "yyyy/M/d' ('ddd')'",
00074     "yyyy/M/d' ('ddd')'",
00075     NULL
00076 };
00077
00078 static const char *p_time_form[] = {
00079     "hh:mm:ss",
00080     "tthh'時'mm'分'ss'秒'",
00081     "H:mm:ss",
00082     "HH:mm:ss",
00083     "tt h:mm:ss",
00084     "tt hh:mm:ss",
00085     NULL
00086 };
00087 //@@@ 2002.01.12 add end
00088
00089 //  From Here Jun. 2, 2001 genta
00096 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FORMAT(
00097     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00098 {
00099     return DlgProc( &CPropCommon::DispatchEvent_p9, hwndDlg, uMsg, wParam, lParam );
00100 }
00101 //  To Here Jun. 2, 2001 genta
00102
00103 void CPropCommon::ChangeDateExample( HWND hwndDlg )
00104 {
00105     /* ダイアログデータの取得 p9 */
00106     GetData_p9( hwndDlg );
00107
00108     /* 日付をフォーマット */
00109     char szText[1024];
00110     SYSTEMTIME systime;
00111     ::GetLocalTime( &systime );
00112     CShareData::getInstance()->MyGetDateFormat( systime, szText, sizeof( szText ) - 1, m_Common.m_nDateFormatType, m_Common.m_szDateFormat );
00113     ::SetDlgItemText( hwndDlg, IDC_EDIT_DFORM_EX, szText );
00114     return;
00115 }
00116 void CPropCommon::ChangeTimeExample( HWND hwndDlg )
00117 {
00118     /* ダイアログデータの取得 p9 */
00119     GetData_p9( hwndDlg );
00120
00121     /* 時刻をフォーマット */
00122     char szText[1024];
00123     SYSTEMTIME systime;
00124     ::GetLocalTime( &systime );
00125     CShareData::getInstance()->MyGetTimeFormat( systime, szText, sizeof( szText ) - 1, m_Common.m_nTimeFormatType, m_Common.m_szTimeFormat );
00126     ::SetDlgItemText( hwndDlg, IDC_EDIT_TFORM_EX, szText );
00127     return;
00128 }
00129
00130
00131 /* p9 メッセージ処理 */
00132 INT_PTR CPropCommon::DispatchEvent_p9(
00133     HWND    hwndDlg,    // handle to dialog box
00134     UINT    uMsg,   // message
00135     WPARAM  wParam, // first message parameter
00136     LPARAM  lParam  // second message parameter
00137 )
00138 {
00139     WORD        wNotifyCode;
00140     WORD        wID;
00141     HWND        hwndCtl;
00142     NMHDR*      pNMHDR;
00143     NM_UPDOWN*  pMNUD;
00144     int         idCtrl;
00145 //  int         nVal;
00146
00147     switch( uMsg ){
00148     case WM_INITDIALOG:
00149         /* ダイアログデータの設定 p9 */
00150         SetData_p9( hwndDlg );
00151         // Modified by KEITA for WIN64 2003.9.6
00152 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00153
00154         ChangeDateExample( hwndDlg );
00155         ChangeTimeExample( hwndDlg );
00156
00157
00158         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00159 //      /* 外部ヘルプ１ */
00160 //      ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_EXTHELP1 ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00161 //      /* 外部HTMLヘルプ */
00162 //      ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_EXTHTMLHELP ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00163
00164
00165         /* 見出し記号 */
00166         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_MIDASHIKIGOU ), EM_LIMITTEXT, (WPARAM)(sizeof(m_Common.m_szMidashiKigou) - 1 ), 0 );
00167
00168         /* 引用符 */
00169         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_INYOUKIGOU ), EM_LIMITTEXT, (WPARAM)(sizeof(m_Common.m_szInyouKigou) - 1 ), 0 );
00170
00171         /* 日付書式 */
00172         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_DFORM ), EM_LIMITTEXT, (WPARAM)(sizeof(m_Common.m_szDateFormat) - 1 ), 0 );
00173
00174         /* 時刻書式 */
00175         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TFORM ), EM_LIMITTEXT, (WPARAM)(sizeof(m_Common.m_szTimeFormat) - 1 ), 0 );
00176
00177
00178
00179         return TRUE;
00180     case WM_COMMAND:
00181         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00182         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00183         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00184         switch( wNotifyCode ){
00185         case EN_CHANGE:
00186             if( IDC_EDIT_DFORM == wID ){
00187                 ChangeDateExample( hwndDlg );
00188                 return 0;
00189             }
00190             if( IDC_EDIT_TFORM == wID  ){
00191                 ChangeTimeExample( hwndDlg );
00192                 return 0;
00193             }
00194             break;
00195
00196         /* ボタン／チェックボックスがクリックされた */
00197         case BN_CLICKED:
00198             switch( wID ){
00199             case IDC_RADIO_DFORM_0:
00200             case IDC_RADIO_DFORM_1:
00201                 ChangeDateExample( hwndDlg );
00202             //  From Here Sept. 10, 2000 JEPRO
00203             //  日付書式 0=標準 1=カスタム
00204             //  日付書式をカスタムにするときだけ書式指定文字入力をEnableに設定
00205                 EnableFormatPropInput( hwndDlg );
00206             //  To Here Sept. 10, 2000
00207                 return 0;
00208             case IDC_RADIO_TFORM_0:
00209             case IDC_RADIO_TFORM_1:
00210                 ChangeTimeExample( hwndDlg );
00211             //  From Here Sept. 10, 2000 JEPRO
00212             //  時刻書式 0=標準 1=カスタム
00213             //  時刻書式をカスタムにするときだけ書式指定文字入力をEnableに設定
00214                 EnableFormatPropInput( hwndDlg );
00215             //  To Here Sept. 10, 2000
00216                 return 0;
00217
00218
00219
00220
00221
00222 //          case IDC_BUTTON_OPENHELP1:  /* 外部ヘルプ１の「参照...」ボタン */
00223 //              {
00224 //                  CDlgOpenFile    cDlgOpenFile;
00225 //                  char*           pszMRU = NULL;;
00226 //                  char*           pszOPENFOLDER = NULL;;
00227 //                  char            szPath[_MAX_PATH + 1];
00228 //                  strcpy( szPath, m_Common.m_szExtHelp1 );
00229 //                  /* ファイルオープンダイアログの初期化 */
00230 //                  cDlgOpenFile.Create(
00231 //                      m_hInstance,
00232 //                      hwndDlg,
00233 //                      "*.hlp",
00234 //                      m_Common.m_szExtHelp1,
00235 //                      (const char **)&pszMRU,
00236 //                      (const char **)&pszOPENFOLDER
00237 //                  );
00238 //                  if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00239 //                      strcpy( m_Common.m_szExtHelp1, szPath );
00240 //                      ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_szExtHelp1 );
00241 //                  }
00242 //              }
00243 //              return TRUE;
00244 //          case IDC_BUTTON_OPENEXTHTMLHELP:    /* 外部HTMLヘルプの「参照...」ボタン */
00245 //              {
00246 //                  CDlgOpenFile    cDlgOpenFile;
00247 //                  char*           pszMRU = NULL;;
00248 //                  char*           pszOPENFOLDER = NULL;;
00249 //                  char            szPath[_MAX_PATH + 1];
00250 //                  strcpy( szPath, m_Common.m_szExtHtmlHelp );
00251 //                  /* ファイルオープンダイアログの初期化 */
00252 //                  cDlgOpenFile.Create(
00253 //                      m_hInstance,
00254 //                      hwndDlg,
00255 //                      "*.chm;*.col",
00256 //                      m_Common.m_szExtHtmlHelp,
00257 //                      (const char **)&pszMRU,
00258 //                      (const char **)&pszOPENFOLDER
00259 //                  );
00260 //                  if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00261 //                      strcpy( m_Common.m_szExtHtmlHelp, szPath );
00262 //                      ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_szExtHtmlHelp );
00263 //                  }
00264 //              }
00265 //              return TRUE;
00266 //
00267             }
00268             break;  /* BN_CLICKED */
00269         }
00270         break;  /* WM_COMMAND */
00271     case WM_NOTIFY:
00272         idCtrl = (int)wParam;
00273         pNMHDR = (NMHDR*)lParam;
00274         pMNUD  = (NM_UPDOWN*)lParam;
00275 //      switch( idCtrl ){
00276 //      case ???????:
00277 //          return 0L;
00278 //      default:
00279             switch( pNMHDR->code ){
00280             case PSN_HELP:
00281                 OnHelp( hwndDlg, IDD_PROP_FORMAT );
00282                 return TRUE;
00283             case PSN_KILLACTIVE:
00284 //              MYTRACE( "p9 PSN_KILLACTIVE\n" );
00285                 /* ダイアログデータの取得 p9 */
00286                 GetData_p9( hwndDlg );
00287                 return TRUE;
00288 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00289             case PSN_SETACTIVE:
00290                 m_nPageNum = ID_PAGENUM_FORMAT;
00291                 return TRUE;
00292             }
00293 //          break;  /* default */
00294 //      }
00295
00296 //      MYTRACE( "pNMHDR->hwndFrom=%xh\n", pNMHDR->hwndFrom );
00297 //      MYTRACE( "pNMHDR->idFrom  =%xh\n", pNMHDR->idFrom );
00298 //      MYTRACE( "pNMHDR->code    =%xh\n", pNMHDR->code );
00299 //      MYTRACE( "pMNUD->iPos    =%d\n", pMNUD->iPos );
00300 //      MYTRACE( "pMNUD->iDelta  =%d\n", pMNUD->iDelta );
00301         break;  /* WM_NOTIFY */
00302
00303 //@@@ 2001.02.04 Start by MIK: Popup Help
00304     case WM_HELP:
00305         {
00306             HELPINFO *p = (HELPINFO *)lParam;
00307             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00308         }
00309         return TRUE;
00310         /*NOTREACHED*/
00311         break;
00312 //@@@ 2001.02.04 End
00313
00314 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00315     //Context Menu
00316     case WM_CONTEXTMENU:
00317         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00318         return TRUE;
00319 //@@@ 2001.12.22 End
00320
00321     }
00322     return FALSE;
00323 }
00324
00325
00326
00327
00328
00329 /* ダイアログデータの設定 p9 */
00330 void CPropCommon::SetData_p9( HWND hwndDlg )
00331 {
00332
00333     /* 見出し記号 */
00334     ::SetDlgItemText( hwndDlg, IDC_EDIT_MIDASHIKIGOU, m_Common.m_szMidashiKigou );
00335
00336 //  /* 外部ヘルプ１ */
00337 //  ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_szExtHelp1 );
00338 //
00339 //  /* 外部HTMLヘルプ */
00340 //  ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_szExtHtmlHelp );
00341
00342     /* 引用符 */
00343     ::SetDlgItemText( hwndDlg, IDC_EDIT_INYOUKIGOU, m_Common.m_szInyouKigou );
00344
00345
00346     //日付書式のタイプ
00347     if( 0 == m_Common.m_nDateFormatType ){
00348         ::CheckDlgButton( hwndDlg, IDC_RADIO_DFORM_0, BST_CHECKED );
00349     }else{
00350         ::CheckDlgButton( hwndDlg, IDC_RADIO_DFORM_1, BST_CHECKED );
00351     }
00352     //日付書式
00353     ::SetDlgItemText( hwndDlg, IDC_EDIT_DFORM, m_Common.m_szDateFormat );
00354
00355     //時刻書式のタイプ
00356     if( 0 == m_Common.m_nTimeFormatType ){
00357         ::CheckDlgButton( hwndDlg, IDC_RADIO_TFORM_0, BST_CHECKED );
00358     }else{
00359         ::CheckDlgButton( hwndDlg, IDC_RADIO_TFORM_1, BST_CHECKED );
00360     }
00361     //時刻書式
00362     ::SetDlgItemText( hwndDlg, IDC_EDIT_TFORM, m_Common.m_szTimeFormat );
00363
00364     //  From Here Sept. 10, 2000 JEPRO
00365     //  日付/時刻書式 0=標準 1=カスタム
00366     //  日付/時刻書式をカスタムにするときだけ書式指定文字入力をEnableに設定
00367     EnableFormatPropInput( hwndDlg );
00368     //  To Here Sept. 10, 2000
00369
00370     return;
00371 }
00372
00373
00374
00375
00376 /* ダイアログデータの取得 p9 */
00377 int CPropCommon::GetData_p9( HWND hwndDlg )
00378 {
00379 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00380 //  m_nPageNum = ID_PAGENUM_FORMAT;
00381
00382     /* 見出し記号 */
00383     ::GetDlgItemText( hwndDlg, IDC_EDIT_MIDASHIKIGOU, m_Common.m_szMidashiKigou, sizeof(m_Common.m_szMidashiKigou) );
00384
00385 //  /* 外部ヘルプ１ */
00386 //  ::GetDlgItemText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_szExtHelp1, MAX_PATH - 1 );
00387 //
00388 //  /* 外部HTMLヘルプ */
00389 //  ::GetDlgItemText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_szExtHtmlHelp, MAX_PATH - 1 );
00390
00391     /* 引用符 */
00392     ::GetDlgItemText( hwndDlg, IDC_EDIT_INYOUKIGOU, m_Common.m_szInyouKigou, sizeof(m_Common.m_szInyouKigou) );
00393
00394
00395     //日付書式のタイプ
00396     if( BST_CHECKED == ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_DFORM_0 ) ){
00397         m_Common.m_nDateFormatType = 0;
00398     }else{
00399         m_Common.m_nDateFormatType = 1;
00400     }
00401     //日付書式
00402     ::GetDlgItemText( hwndDlg, IDC_EDIT_DFORM, m_Common.m_szDateFormat, sizeof( m_Common.m_szDateFormat ));
00403
00404     //時刻書式のタイプ
00405     if( BST_CHECKED == ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_TFORM_0 ) ){
00406         m_Common.m_nTimeFormatType = 0;
00407     }else{
00408         m_Common.m_nTimeFormatType = 1;
00409     }
00410
00411     //時刻書式
00412     ::GetDlgItemText( hwndDlg, IDC_EDIT_TFORM, m_Common.m_szTimeFormat, sizeof( m_Common.m_szTimeFormat ));
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425     return TRUE;
00426 }
00427
00428
00429
00430
00431
00432 //  From Here Sept. 10, 2000 JEPRO
00433 //  チェック状態に応じてダイアログボックス要素のEnable/Disableを
00434 //  適切に設定する
00435 void CPropCommon::EnableFormatPropInput( HWND hwndDlg )
00436 {
00437     //  日付書式をカスタムにするかどうか
00438     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_DFORM_1 ) ){
00439         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_DFORM ), TRUE );
00440         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_DFORM ), TRUE );
00441     }else{
00442         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_DFORM ), FALSE );
00443         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_DFORM ), FALSE );
00444     }
00445
00446     //  時刻書式をカスタムにするかどうか
00447     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_TFORM_1 ) ){
00448         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_TFORM ), TRUE );
00449         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TFORM ), TRUE );
00450     }else{
00451         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_TFORM ), FALSE );
00452         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TFORM ), FALSE );
00453     }
00454 }
00455 //  To Here Sept. 10, 2000
00456
00457
00458 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComGrep.cpp

CPropComGrep.cpp

共通設定ダイアログボックス、「Grep」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "CBregexp.h"
#include "sakura.hh"

CPropComGrep.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「Grep」ページ

作者:
Norio Nakatani

CPropComGrep.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_EDIT_REGEXPLIB,             HIDC_EDIT_REGEXPLIB,
    IDC_LABEL_REGEXP,               HIDC_EDIT_REGEXPLIB,
    IDC_LABEL_REGEXP_VER,           HIDC_LABEL_REGEXPVER,
    IDC_CHECK_bCaretTextForSearch,  HIDC_CHECK_bCaretTextForSearch,
    IDC_CHECK_bGrepExitConfirm,     HIDC_CHECK_bGrepExitConfirm,
    IDC_CHECK_GTJW_RETURN,          HIDC_CHECK_GTJW_RETURN,
    IDC_CHECK_GTJW_LDBLCLK,         HIDC_CHECK_GTJW_LDBLCLK,
    IDC_CHECK_GREPREALTIME,         HIDC_CHECK_GREPREALTIME,

    0, 0
}

CPropComGrep.cpp の 24 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:01 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComGrep.cpp ソースファイル

CPropComGrep.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, MIK, genta
00009     Copyright (C) 2002, YAZAKI, MIK
00010     Copyright (C) 2003, KEITA
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 #include "stdafx.h"
00018 #include "CPropCommon.h"
00019 #include "CBregexp.h"   // 2007.08/12 genta バージョン取得
00020
00021 //@@@ 2001.02.04 Start by MIK: Popup Help
00022 #if 1   //@@@ 2002.01.03 add MIK
00023 #include "sakura.hh"
00024 static const DWORD p_helpids[] = {  //10500
00025     IDC_EDIT_REGEXPLIB,             HIDC_EDIT_REGEXPLIB,    //正規表現ライブラリ選択    // 2007.09.02 genta
00026     IDC_LABEL_REGEXP,               HIDC_EDIT_REGEXPLIB,
00027     IDC_LABEL_REGEXP_VER,           HIDC_LABEL_REGEXPVER,   //正規表現ライブラリバージョン  // 2007.09.02 genta
00028     IDC_CHECK_bCaretTextForSearch,  HIDC_CHECK_bCaretTextForSearch, //カーソル位置の文字列をデフォルトの検索文字列にする    // 2006.08.23 ryoji
00029     IDC_CHECK_bGrepExitConfirm,     HIDC_CHECK_bGrepExitConfirm,    //GREPの保存確認
00030     IDC_CHECK_GTJW_RETURN,          HIDC_CHECK_GTJW_RETURN,         //タグジャンプ（エンターキー）
00031     IDC_CHECK_GTJW_LDBLCLK,         HIDC_CHECK_GTJW_LDBLCLK,        //タグジャンプ（ダブルクリック）
00032     IDC_CHECK_GREPREALTIME,         HIDC_CHECK_GREPREALTIME,        //リアルタイムで表示する    // 2006.08.08 ryoji
00033 //  IDC_STATIC,                     -1,
00034     0, 0
00035 };
00036 #else
00037 static const DWORD p_helpids[] = {  //10500
00038     IDC_CHECK_bGrepExitConfirm,     10510,  //GREPの保存確認
00039     IDC_CHECK_GTJW_RETURN,          10511,  //タグジャンプ（エンターキー）
00040     IDC_CHECK_GTJW_LDBLCLK,         10512,  //タグジャンプ（ダブルクリック）
00041 //  IDC_STATIC,                     -1,
00042     0, 0
00043 };
00044 #endif
00045 //@@@ 2001.02.04 End
00046
00047 //  From Here Jun. 2, 2001 genta
00054 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_GREP(
00055     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00056 {
00057     return DlgProc( &CPropCommon::DispatchEvent_PROP_GREP, hwndDlg, uMsg, wParam, lParam );
00058 }
00059 //  To Here Jun. 2, 2001 genta
00060
00061 /* メッセージ処理 */
00062 INT_PTR CPropCommon::DispatchEvent_PROP_GREP( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00063 {
00064 //  WORD        wNotifyCode;
00065 //  WORD        wID;
00066 //  HWND        hwndCtl;
00067     NMHDR*      pNMHDR;
00068     NM_UPDOWN*  pMNUD;
00069     int         idCtrl;
00070 //  int         nVal;
00071 //    LPDRAWITEMSTRUCT pDis;
00072
00073     switch( uMsg ){
00074
00075     case WM_INITDIALOG:
00076         /* ダイアログデータの設定 p1 */
00077         SetData_PROP_GREP( hwndDlg );
00078         // Modified by KEITA for WIN64 2003.9.6
00079 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00080
00081         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00082
00083         return TRUE;
00084     case WM_NOTIFY:
00085         idCtrl = (int)wParam;
00086         pNMHDR = (NMHDR*)lParam;
00087         pMNUD  = (NM_UPDOWN*)lParam;
00088 //      switch( idCtrl ){
00089 //      default:
00090             switch( pNMHDR->code ){
00091             case PSN_HELP:
00092                 OnHelp( hwndDlg, IDD_PROP_GREP );
00093                 return TRUE;
00094             case PSN_KILLACTIVE:
00095                 /* ダイアログデータの取得 p1 */
00096                 GetData_PROP_GREP( hwndDlg );
00097                 return TRUE;
00098 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00099             case PSN_SETACTIVE:
00100                 m_nPageNum = ID_PAGENUM_GREP;
00101                 return TRUE;
00102             }
00103 //          break;  /* default */
00104 //      }
00105         break;  /* WM_NOTIFY */
00106     case WM_COMMAND:
00107         //  2007.08.12 genta 正規表現DLLの変更に応じてVersionを再取得する
00108         if( wParam == MAKEWPARAM( IDC_EDIT_REGEXPLIB, EN_KILLFOCUS )){
00109             SetRegexpVersion( hwndDlg );
00110         }
00111         break;
00112
00113 //@@@ 2001.02.04 Start by MIK: Popup Help
00114     case WM_HELP:
00115         {
00116             HELPINFO *p = (HELPINFO *)lParam;
00117             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00118         }
00119         return TRUE;
00120         /*NOTREACHED*/
00121         //break;
00122 //@@@ 2001.02.04 End
00123
00124 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00125     //Context Menu
00126     case WM_CONTEXTMENU:
00127         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00128         return TRUE;
00129 //@@@ 2001.12.22 End
00130
00131     }
00132     return FALSE;
00133 }
00134
00135
00136 /* ダイアログデータの設定 */
00137 void CPropCommon::SetData_PROP_GREP( HWND hwndDlg )
00138 {
00139 //  BOOL    bRet;
00140
00141 //  BOOL    m_bGrepExitConfirm; /* Grepモードで保存確認するか */
00142
00143     /* 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする */
00144     ::CheckDlgButton( hwndDlg, IDC_CHECK_bCaretTextForSearch, m_Common.m_bCaretTextForSearch );
00145
00146     /* Grepモードで保存確認するか */
00147     ::CheckDlgButton( hwndDlg, IDC_CHECK_bGrepExitConfirm, m_Common.m_bGrepExitConfirm );
00148
00149     /* Grep結果のリアルタイム表示 */
00150     ::CheckDlgButton( hwndDlg, IDC_CHECK_GREPREALTIME, m_Common.m_bGrepRealTimeView );  // 2006.08.08 ryoji ID修正
00151
00152
00153     /* Grepモード: エンターキーでタグジャンプ */
00154     ::CheckDlgButton( hwndDlg, IDC_CHECK_GTJW_RETURN, m_Common.m_bGTJW_RETURN );
00155
00156     /* Grepモード: ダブルクリックでタグジャンプ */
00157     ::CheckDlgButton( hwndDlg, IDC_CHECK_GTJW_LDBLCLK, m_Common.m_bGTJW_LDBLCLK );
00158
00159     //  2007.08.12 genta 正規表現DLL
00160     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_REGEXPLIB ),  EM_LIMITTEXT, (WPARAM)( sizeof(m_Common.m_szRegexpLib ) - 1 ), 0 );
00161     ::SetDlgItemText( hwndDlg, IDC_EDIT_REGEXPLIB, m_Common.m_szRegexpLib);
00162     SetRegexpVersion( hwndDlg );
00163
00164     return;
00165 }
00166
00167
00168
00169
00170 /* ダイアログデータの取得 */
00171 int CPropCommon::GetData_PROP_GREP( HWND hwndDlg )
00172 {
00173 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00174 //  m_nPageNum = ID_PAGENUM_GREP;
00175
00176     /* 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする */
00177     m_Common.m_bCaretTextForSearch = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bCaretTextForSearch );
00178
00179     /* Grepモードで保存確認するか */
00180     m_Common.m_bGrepExitConfirm = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bGrepExitConfirm );
00181
00182     /* Grep結果のリアルタイム表示 */
00183     m_Common.m_bGrepRealTimeView = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_GREPREALTIME ); // 2006.08.08 ryoji ID修正
00184
00185     /* Grepモード: エンターキーでタグジャンプ */
00186     m_Common.m_bGTJW_RETURN = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_GTJW_RETURN );
00187
00188     /* Grepモード: ダブルクリックでタグジャンプ */
00189     m_Common.m_bGTJW_LDBLCLK = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_GTJW_LDBLCLK );
00190
00191     //  2007.08.12 genta 正規表現DLL
00192     ::GetDlgItemText( hwndDlg, IDC_EDIT_REGEXPLIB, m_Common.m_szRegexpLib, sizeof( m_Common.m_szRegexpLib ));
00193
00194     return TRUE;
00195 }
00196
00197 void CPropCommon::SetRegexpVersion( HWND hwndDlg )
00198 {
00199     TCHAR regexp_dll[_MAX_PATH];
00200
00201     ::GetDlgItemText( hwndDlg, IDC_EDIT_REGEXPLIB, regexp_dll, sizeof( regexp_dll ));
00202     CBregexp breg;
00203     if( ! breg.Init( regexp_dll ) ){
00204         ::SetDlgItemText( hwndDlg, IDC_LABEL_REGEXP_VER, _T("正規表現は使用できません") );
00205         return;
00206     }
00207     ::SetDlgItemText( hwndDlg, IDC_LABEL_REGEXP_VER, breg.GetVersion() );
00208 }
00209
00210
00211 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComHelper.cpp

CPropComHelper.cpp

共通設定ダイアログボックス、「支援」ページ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CPropCommon.h"
#include "debug.h"
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
#include "CDlgOpenFile.h"
#include "etc_uty.h"
#include "CDlgInput1.h"
#include "global.h"
#include "sakura.hh"

CPropComHelper.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「支援」ページ

作者:
Norio Nakatani

CPropComHelper.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_OPENHELP1,           HIDC_BUTTON_OPENHELP1,
    IDC_BUTTON_OPENEXTHTMLHELP,     HIDC_BUTTON_OPENEXTHTMLHELP,

    IDC_CHECK_m_bHokanKey_RETURN,   HIDC_CHECK_m_bHokanKey_RETURN,
    IDC_CHECK_m_bHokanKey_TAB,      HIDC_CHECK_m_bHokanKey_TAB,
    IDC_CHECK_m_bHokanKey_RIGHT,    HIDC_CHECK_m_bHokanKey_RIGHT,

    IDC_CHECK_HTMLHELPISSINGLE,     HIDC_CHECK_HTMLHELPISSINGLE,
    IDC_EDIT_EXTHELP1,              HIDC_EDIT_EXTHELP1,
    IDC_EDIT_EXTHTMLHELP,           HIDC_EDIT_EXTHTMLHELP,

    IDC_BUTTON_KEYWORDHELPFONT,     HIDC_BUTTON_KEYWORDHELPFONT,
    IDC_EDIT_MIGEMO_DLL,            HIDC_EDIT_MIGEMO_DLL,
    IDC_BUTTON_OPENMDLL,            HIDC_BUTTON_OPENMDLL,
    IDC_EDIT_MIGEMO_DICT,           HIDC_EDIT_MIGEMO_DICT,
    IDC_BUTTON_OPENMDICT,           HIDC_BUTTON_OPENMDICT,

    0, 0
}

CPropComHelper.cpp の 35 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:03 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComHelper.cpp ソースファイル

CPropComHelper.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009     Copyright (C) 2001, genta, MIK, jepro, asa-o
00010     Copyright (C) 2002, YAZAKI, MIK, genta
00011     Copyright (C) 2003, Moca, KEITA
00012     Copyright (C) 2006, ryoji
00013     Copyright (C) 2007, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holders to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include "sakura_rc.h"
00021 #include "CPropCommon.h"
00022 #include "debug.h"
00023 #include <windows.h>
00024 #include <stdio.h>
00025 #include <commctrl.h>
00026 #include "CDlgOpenFile.h"
00027 #include "etc_uty.h"
00028 #include "CDlgInput1.h"
00029 #include "global.h"
00030
00031
00032 //@@@ 2001.02.04 Start by MIK: Popup Help
00033 #if 1   //@@@ 2002.01.03 add MIK
00034 #include "sakura.hh"
00035 static const DWORD p_helpids[] = {  //10600
00036     IDC_BUTTON_OPENHELP1,           HIDC_BUTTON_OPENHELP1,          //外部ヘルプファイル参照
00037     IDC_BUTTON_OPENEXTHTMLHELP,     HIDC_BUTTON_OPENEXTHTMLHELP,    //外部HTMLファイル参照
00038 //  IDC_CHECK_USEHOKAN,             HIDC_CHECK_USEHOKAN,            //逐次入力補完
00039     IDC_CHECK_m_bHokanKey_RETURN,   HIDC_CHECK_m_bHokanKey_RETURN,  //候補決定キー（Enter）
00040     IDC_CHECK_m_bHokanKey_TAB,      HIDC_CHECK_m_bHokanKey_TAB,     //候補決定キー（Tab）
00041     IDC_CHECK_m_bHokanKey_RIGHT,    HIDC_CHECK_m_bHokanKey_RIGHT,   //候補決定キー（→）
00042 //  IDC_CHECK_m_bHokanKey_SPACE,    HIDC_CHECK_m_bHokanKey_SPACE,   //候補決定キー（Space）
00043     IDC_CHECK_HTMLHELPISSINGLE,     HIDC_CHECK_HTMLHELPISSINGLE,    //ビューアの複数起動
00044     IDC_EDIT_EXTHELP1,              HIDC_EDIT_EXTHELP1,             //外部ヘルプファイル名
00045     IDC_EDIT_EXTHTMLHELP,           HIDC_EDIT_EXTHTMLHELP,          //外部HTMLヘルプファイル名
00046     //  2007.02.04 genta カーソル位置の単語の辞書検索は共通設定から外した
00047     //IDC_CHECK_CLICKKEYSEARCH,     HIDC_CHECK_CLICKKEYSEARCH,      //キャレット位置の単語を辞書検索    // 2006.03.24 fon
00048     IDC_BUTTON_KEYWORDHELPFONT,     HIDC_BUTTON_KEYWORDHELPFONT,    //キーワードヘルプのフォント
00049     IDC_EDIT_MIGEMO_DLL,            HIDC_EDIT_MIGEMO_DLL,           //Migemo DLLファイル名  // 2006.08.06 ryoji
00050     IDC_BUTTON_OPENMDLL,            HIDC_BUTTON_OPENMDLL,           //Migemo DLLファイル参照    // 2006.08.06 ryoji
00051     IDC_EDIT_MIGEMO_DICT,           HIDC_EDIT_MIGEMO_DICT,          //Migemo 辞書ファイル名 // 2006.08.06 ryoji
00052     IDC_BUTTON_OPENMDICT,           HIDC_BUTTON_OPENMDICT,          //Migemo 辞書ファイル参照   // 2006.08.06 ryoji
00053 //  IDC_STATIC,                     -1,
00054     0, 0
00055 };
00056 #else
00057 static const DWORD p_helpids[] = {  //10600
00058 //  IDC_BUTTON_HOKANFILE_REF,       10600,  //入力補完 単語ファイル参照     //Jul. 05, 2001 JEPRO タイプ別に移動
00059 //  IDC_BUTTON_KEYWORDHELPFILE_REF, 10601,  //キーワードヘルプファイル参照  //Jul. 05, 2001 JEPRO タイプ別に移動
00060     IDC_BUTTON_OPENHELP1,           10602,  //外部ヘルプファイル参照
00061     IDC_BUTTON_OPENEXTHTMLHELP,     10603,  //外部HTMLファイル参照
00062 //  IDC_CHECK_USEHOKAN,             10610,  //逐次入力補完
00063 //  IDC_CHECK_HOKANLOHICASE,        10611,  //入力補完の英大文字小文字      //Jul. 05, 2001 JEPRO タイプ別に移動
00064     IDC_CHECK_m_bHokanKey_RETURN,   10612,  //候補決定キー（Enter）
00065     IDC_CHECK_m_bHokanKey_TAB,      10613,  //候補決定キー（Tab）
00066     IDC_CHECK_m_bHokanKey_RIGHT,    10614,  //候補決定キー（→）
00067 //  IDC_CHECK_m_bHokanKey_SPACE,    10615,  //候補決定キー（Space）
00068 //  IDC_CHECK_USEKEYWORDHELP,       10616,  //キーワードヘルプ機能          //Jul. 05, 2001 JEPRO タイプ別に移動
00069     IDC_CHECK_HTMLHELPISSINGLE,     10617,  //ビューアの複数起動
00070 //  IDC_EDIT_HOKANFILE,             10640,  //単語ファイル名                //Jul. 05, 2001 JEPRO タイプ別に移動
00071 //  IDC_EDIT_KEYWORDHELPFILE,       10641,  //辞書ファイル名                //Jul. 05, 2001 JEPRO タイプ別に移動
00072     IDC_EDIT_EXTHELP1,              10642,  //外部ヘルプファイル名
00073     IDC_EDIT_EXTHTMLHELP,           10643,  //外部HTMLヘルプファイル名
00074 //  IDC_STATIC,                     -1,
00075     0, 0
00076 };
00077 #endif
00078 //@@@ 2001.02.04 End
00079
00080 //  From Here Jun. 2, 2001 genta
00087 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_HELPER(
00088     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00089 {
00090     return DlgProc( &CPropCommon::DispatchEvent_p10, hwndDlg, uMsg, wParam, lParam );
00091 }
00092 //  To Here Jun. 2, 2001 genta
00093
00094 /* p10 メッセージ処理 */
00095 INT_PTR CPropCommon::DispatchEvent_p10(
00096     HWND    hwndDlg,    // handle to dialog box
00097     UINT    uMsg,       // message
00098     WPARAM  wParam,     // first message parameter
00099     LPARAM  lParam      // second message parameter
00100 )
00101 {
00102     WORD        wNotifyCode;
00103     WORD        wID;
00104     HWND        hwndCtl;
00105     NMHDR*      pNMHDR;
00106     NM_UPDOWN*  pMNUD;
00107     int         idCtrl;
00108 //  int         nVal;
00109
00110     switch( uMsg ){
00111     case WM_INITDIALOG:
00112         /* ダイアログデータの設定 p10 */
00113         SetData_p10( hwndDlg );
00114         // Modified by KEITA for WIN64 2003.9.6
00115 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00116
00117         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00118         /* 入力補完 単語ファイル */
00119 //      ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_HOKANFILE ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00120         /* キーワードヘルプ 辞書ファイル */
00121 //      ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYWORDHELPFILE ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00122
00123         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00124         /* 外部ヘルプ１ */
00125         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_EXTHELP1 ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00126         /* 外部HTMLヘルプ */
00127         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_EXTHTMLHELP ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
00128
00129
00130         return TRUE;
00131     case WM_COMMAND:
00132         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00133         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00134         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00135         switch( wNotifyCode ){
00136         /* ボタン／チェックボックスがクリックされた */
00137         case BN_CLICKED:
00138             /* ダイアログデータの取得 p10 */
00139             GetData_p10( hwndDlg );
00140             switch( wID ){
00141 //  2001/06/14 Start By:asa-o タイプ別設定に移動したので削除
00142 //          case IDC_BUTTON_HOKANFILE_REF:  /* 入力補完 単語ファイルの「参照...」ボタン */
00143 //              {
00144 //                  CDlgOpenFile    cDlgOpenFile;
00145 //                  char*           pszMRU = NULL;;
00146 //                  char*           pszOPENFOLDER = NULL;;
00147 //                  char            szPath[_MAX_PATH + 1];
00148 //                  strcpy( szPath, m_Common.m_szHokanFile );
00149 //                  /* ファイルオープンダイアログの初期化 */
00150 //                  cDlgOpenFile.Create(
00151 //                      m_hInstance,
00152 //                      hwndDlg,
00153 //                      "*.*",
00154 //                      m_Common.m_szHokanFile,
00155 //                      (const char **)&pszMRU,
00156 //                      (const char **)&pszOPENFOLDER
00157 //                  );
00158 //                  if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00159 //                      strcpy( m_Common.m_szHokanFile, szPath );
00160 //                      ::SetDlgItemText( hwndDlg, IDC_EDIT_HOKANFILE, m_Common.m_szHokanFile );
00161 //                  }
00162 //              }
00163 //              return TRUE;
00164 //
00165 //          //  From Here Sept. 12, 2000 JEPRO
00166 //          case IDC_CHECK_USEKEYWORDHELP:  /* キーワードヘルプ機能を使う時だけ辞書ファイル指定と参照ボタンをEnableにする */
00167 //              ::CheckDlgButton( hwndDlg, IDC_CHECK_USEKEYWORDHELP, m_Common.m_bUseKeyWordHelp );
00168 //              if( BST_CHECKED == m_Common.m_bUseKeyWordHelp ){
00169 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_KEYWORDHELPFILE ), TRUE );
00170 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYWORDHELPFILE ), TRUE );
00171 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_KEYWORDHELPFILE_REF ), TRUE );
00172 //              }else{
00173 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_KEYWORDHELPFILE ), FALSE );
00174 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYWORDHELPFILE ), FALSE );
00175 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_KEYWORDHELPFILE_REF ), FALSE );
00176 //              }
00177 //              return TRUE;
00178 //          //  To Here Sept. 12, 2000
00179 //
00180 //          case IDC_BUTTON_KEYWORDHELPFILE_REF:    /* キーワードヘルプ 辞書ファイルの「参照...」ボタン */
00181 //              {
00182 //                  CDlgOpenFile    cDlgOpenFile;
00183 //                  char*           pszMRU = NULL;;
00184 //                  char*           pszOPENFOLDER = NULL;;
00185 //                  char            szPath[_MAX_PATH + 1];
00186 //                  strcpy( szPath, m_Common.m_szKeyWordHelpFile );
00187 //                  /* ファイルオープンダイアログの初期化 */
00188 //                  cDlgOpenFile.Create(
00189 //                      m_hInstance,
00190 //                      hwndDlg,
00191 //                      "*.*",
00192 //                      m_Common.m_szKeyWordHelpFile,
00193 //                      (const char **)&pszMRU,
00194 //                      (const char **)&pszOPENFOLDER
00195 //                  );
00196 //                  if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00197 //                      strcpy( m_Common.m_szKeyWordHelpFile, szPath );
00198 //                      ::SetDlgItemText( hwndDlg, IDC_EDIT_KEYWORDHELPFILE, m_Common.m_szKeyWordHelpFile );
00199 //                  }
00200 //              }
00201 //              return TRUE;
00202 // 2001/06/14 End
00203             case IDC_BUTTON_OPENHELP1:  /* 外部ヘルプ１の「参照...」ボタン */
00204                 {
00205                     CDlgOpenFile    cDlgOpenFile;
00206                     char            szPath[_MAX_PATH + 1];
00207                     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00208                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00209                     if( _IS_REL_PATH( m_Common.m_szExtHelp ) ){
00210                         GetInidirOrExedir( szPath, m_Common.m_szExtHelp, TRUE );
00211                     }else{
00212                         strcpy( szPath, m_Common.m_szExtHelp );
00213                     }
00214                     /* ファイルオープンダイアログの初期化 */
00215                     cDlgOpenFile.Create(
00216                         m_hInstance,
00217                         hwndDlg,
00218                         "*.hlp",
00219                         szPath
00220                     );
00221                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00222                         strcpy( m_Common.m_szExtHelp, szPath );
00223                         ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_szExtHelp );
00224                     }
00225                 }
00226                 return TRUE;
00227             case IDC_BUTTON_OPENEXTHTMLHELP:    /* 外部HTMLヘルプの「参照...」ボタン */
00228                 {
00229                     CDlgOpenFile    cDlgOpenFile;
00230                     char            szPath[_MAX_PATH + 1];
00231                     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00232                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00233                     if( _IS_REL_PATH( m_Common.m_szExtHtmlHelp ) ){
00234                         GetInidirOrExedir( szPath, m_Common.m_szExtHtmlHelp, TRUE );
00235                     }else{
00236                         strcpy( szPath, m_Common.m_szExtHtmlHelp );
00237                     }
00238                     /* ファイルオープンダイアログの初期化 */
00239                     cDlgOpenFile.Create(
00240                         m_hInstance,
00241                         hwndDlg,
00242                         "*.chm;*.col",
00243                         szPath
00244                     );
00245                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00246                         strcpy( m_Common.m_szExtHtmlHelp, szPath );
00247                         ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_szExtHtmlHelp );
00248                     }
00249                 }
00250                 return TRUE;
00251             // ai 02/05/21 Add S
00252             case IDC_BUTTON_KEYWORDHELPFONT:    /* キーワードヘルプの「フォント」ボタン */
00253                 {
00254                     CHOOSEFONT      cf;
00255                     LOGFONT         lf;
00256
00257                     /* LOGFONTの初期化 */
00258                     memcpy(&lf, &(m_Common.m_lf_kh), sizeof(LOGFONT));
00259
00260                     /* CHOOSEFONTの初期化 */
00261                     memset(&cf, 0, sizeof(CHOOSEFONT));
00262                     cf.lStructSize = sizeof(cf);
00263                     cf.hwndOwner = hwndDlg;
00264                     cf.hDC = NULL;
00265                     cf.lpLogFont = &lf;
00266 //                  cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_EFFECTS;
00267                     cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
00268                     if(ChooseFont(&cf))
00269                     {
00270                         memcpy(&(m_Common.m_lf_kh), &lf, sizeof(LOGFONT));
00271                     }
00272                 }
00273                 return TRUE;
00274             // ai 02/05/21 Add E
00275             case IDC_BUTTON_OPENMDLL:   /* MIGEMODLL場所指定「参照...」ボタン */
00276                 {
00277                     CDlgOpenFile    cDlgOpenFile;
00278                     char            szPath[_MAX_PATH + 1];
00279                     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00280                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
00281                     if( _IS_REL_PATH( m_Common.m_szMigemoDll ) ){
00282                         GetInidirOrExedir( szPath, m_Common.m_szMigemoDll, TRUE );
00283                     }else{
00284                         strcpy( szPath, m_Common.m_szMigemoDll );
00285                     }
00286                     /* ファイルオープンダイアログの初期化 */
00287                     cDlgOpenFile.Create(
00288                         m_hInstance,
00289                         hwndDlg,
00290                         "*.dll",
00291                         szPath
00292                     );
00293                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00294                         strcpy( m_Common.m_szMigemoDll, szPath );
00295                         ::SetDlgItemText( hwndDlg, IDC_EDIT_MIGEMO_DLL, m_Common.m_szMigemoDll );
00296                     }
00297                 }
00298                 return TRUE;
00299             case IDC_BUTTON_OPENMDICT:  /* MigemoDict場所指定「参照...」ボタン */
00300                 {
00301                     char    szPath[MAX_PATH];
00302                     /* 検索フォルダ */
00303                     // 2007.05.27 ryoji 相対パスは設定ファイルからのパスを優先
00304                     if( _IS_REL_PATH( m_Common.m_szMigemoDict ) ){
00305                         GetInidirOrExedir( szPath, m_Common.m_szMigemoDict, TRUE );
00306                     }else{
00307                         strcpy( szPath, m_Common.m_szMigemoDict );
00308                     }
00309                     if( SelectDir( hwndDlg, "検索するフォルダを選んでください", szPath, szPath ) ){
00310                         strcpy( m_Common.m_szMigemoDict, szPath );
00311                         ::SetDlgItemText( hwndDlg, IDC_EDIT_MIGEMO_DICT, m_Common.m_szMigemoDict );
00312                     }
00313                 }
00314                 return TRUE;
00315             }
00316             break;  /* BN_CLICKED */
00317         }
00318         break;  /* WM_COMMAND */
00319     case WM_NOTIFY:
00320         idCtrl = (int)wParam;
00321         pNMHDR = (NMHDR*)lParam;
00322         pMNUD  = (NM_UPDOWN*)lParam;
00323 //      switch( idCtrl ){
00324 //      case ???????:
00325 //          return 0L;
00326 //      default:
00327             switch( pNMHDR->code ){
00328             case PSN_HELP:
00329                 OnHelp( hwndDlg, IDD_PROP_HELPER );
00330                 return TRUE;
00331             case PSN_KILLACTIVE:
00332 //              MYTRACE( "p10 PSN_KILLACTIVE\n" );
00333                 /* ダイアログデータの取得 p10 */
00334                 GetData_p10( hwndDlg );
00335                 return TRUE;
00336 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00337             case PSN_SETACTIVE:
00338                 m_nPageNum = ID_PAGENUM_HELPER;
00339                 return TRUE;
00340             }
00341 //          break;  /* default */
00342 //      }
00343
00344 //      MYTRACE( "pNMHDR->hwndFrom=%xh\n", pNMHDR->hwndFrom );
00345 //      MYTRACE( "pNMHDR->idFrom  =%xh\n", pNMHDR->idFrom );
00346 //      MYTRACE( "pNMHDR->code    =%xh\n", pNMHDR->code );
00347 //      MYTRACE( "pMNUD->iPos    =%d\n", pMNUD->iPos );
00348 //      MYTRACE( "pMNUD->iDelta  =%d\n", pMNUD->iDelta );
00349         break;  /* WM_NOTIFY */
00350
00351 //@@@ 2001.02.04 Start by MIK: Popup Help
00352     case WM_HELP:
00353         {
00354             HELPINFO *p = (HELPINFO *)lParam;
00355             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00356         }
00357         return TRUE;
00358         /*NOTREACHED*/
00359         //break;
00360 //@@@ 2001.02.04 End
00361
00362 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00363     //Context Menu
00364     case WM_CONTEXTMENU:
00365         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00366         return TRUE;
00367 //@@@ 2001.12.22 End
00368
00369     }
00370     return FALSE;
00371 }
00372
00373 /* ダイアログデータの設定 p10 */
00374 void CPropCommon::SetData_p10( HWND hwndDlg )
00375 {
00376     /*  入力補完機能を使用する */
00377 //  ::CheckDlgButton( hwndDlg, IDC_CHECK_USEHOKAN, m_Common.m_bUseHokan );
00378
00379 //  2001/06/19 Start By:asa-o タイプ別設定に移動したので削除
00380     /* 入力補完機能：英大文字小文字を同一視する */
00381 //  ::CheckDlgButton( hwndDlg, IDC_CHECK_HOKANLOHICASE, m_Common.m_bHokanLoHiCase );
00382
00383 //  2001/06/14 Start By:asa-o タイプ別設定に移動したので削除
00384     /* 入力補完 単語ファイル */
00385 //  ::SetDlgItemText( hwndDlg, IDC_EDIT_HOKANFILE, m_Common.m_szHokanFile );
00386
00387     /* キーワードヘルプを使用する  */
00388 //  ::CheckDlgButton( hwndDlg, IDC_CHECK_USEKEYWORDHELP, m_Common.m_bUseKeyWordHelp );
00389 //  From Here Sept. 12, 2000 JEPRO キーワードヘルプ機能を使う時だけ辞書ファイル指定と参照ボタンをEnableにする
00390 //  if( BST_CHECKED == m_Common.m_bUseKeyWordHelp ){
00391 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_KEYWORDHELPFILE ), TRUE );
00392 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYWORDHELPFILE ), TRUE );
00393 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_KEYWORDHELPFILE_REF ), TRUE );
00394 //  }else{
00395 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_KEYWORDHELPFILE ), FALSE );
00396 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYWORDHELPFILE ), FALSE );
00397 //      ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_KEYWORDHELPFILE_REF ), FALSE );
00398 //  }
00399 //  To Here Sept. 12, 2000
00400
00401     /* キーワードヘルプ 辞書ファイル */
00402 //  ::SetDlgItemText( hwndDlg, IDC_EDIT_KEYWORDHELPFILE, m_Common.m_szKeyWordHelpFile );
00403 //  2001/06/14 End
00404
00405     /* 外部ヘルプ１ */
00406     ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_szExtHelp );
00407
00408     /* 外部HTMLヘルプ */
00409     ::SetDlgItemText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_szExtHtmlHelp );
00410
00411     /* HtmlHelpビューアはひとつ */
00412     ::CheckDlgButton( hwndDlg, IDC_CHECK_HTMLHELPISSINGLE, m_Common.m_bHtmlHelpIsSingle );
00413
00414     /* 補完候補決定キー */
00415     ::CheckDlgButton( hwndDlg, IDC_CHECK_m_bHokanKey_RETURN, m_Common.m_bHokanKey_RETURN ); //VK_RETURN 補完決定キーが有効/無効
00416     ::CheckDlgButton( hwndDlg, IDC_CHECK_m_bHokanKey_TAB, m_Common.m_bHokanKey_TAB );       //VK_TAB    補完決定キーが有効/無効
00417     ::CheckDlgButton( hwndDlg, IDC_CHECK_m_bHokanKey_RIGHT, m_Common.m_bHokanKey_RIGHT );   //VK_RIGHT  補完決定キーが有効/無効
00418 //  ::CheckDlgButton( hwndDlg, IDC_CHECK_m_bHokanKey_SPACE, m_Common.m_bHokanKey_SPACE );   //VK_SPACE  補完決定キーが有効/無効
00419
00420     //migemo dict
00421     ::SetDlgItemText( hwndDlg, IDC_EDIT_MIGEMO_DLL, m_Common.m_szMigemoDll);
00422     ::SetDlgItemText( hwndDlg, IDC_EDIT_MIGEMO_DICT, m_Common.m_szMigemoDict);
00423
00424     return;
00425 }
00426
00427
00428 /* ダイアログデータの取得 p10 */
00429 int CPropCommon::GetData_p10( HWND hwndDlg )
00430 {
00431 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00432 //  m_nPageNum = ID_PAGENUM_HELPER;
00433
00434     /*  入力補完機能を使用する */
00435 //  m_Common.m_bUseHokan = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_USEHOKAN );
00436
00437 //  2001/06/14 Start By:asa-o タイプ別設定に移動したので削除
00438     /* 入力補完機能：英大文字小文字を同一視する */
00439 //  m_Common.m_bHokanLoHiCase = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_HOKANLOHICASE );
00440
00441 //  2001/06/14 Start By:asa-o タイプ別設定に移動したので削除
00442     /* 入力補完 単語ファイル */
00443 //  ::GetDlgItemText( hwndDlg, IDC_EDIT_HOKANFILE, m_Common.m_szHokanFile, MAX_PATH - 1 );
00444
00445
00446     /* キーワードヘルプを使用する */
00447 //  m_Common.m_bUseKeyWordHelp = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_USEKEYWORDHELP );
00448
00449     /* キーワードヘルプ 辞書ファイル */
00450 //  ::GetDlgItemText( hwndDlg, IDC_EDIT_KEYWORDHELPFILE, m_Common.m_szKeyWordHelpFile, MAX_PATH - 1 );
00451 //  2001/06/14 End
00452
00453     // Oct. 5, 2002 genta サイズ制限方法変更
00454     /* 外部ヘルプ１ */
00455     ::GetDlgItemText( hwndDlg, IDC_EDIT_EXTHELP1, m_Common.m_szExtHelp, sizeof( m_Common.m_szExtHelp ));
00456
00457     /* 外部HTMLヘルプ */
00458     ::GetDlgItemText( hwndDlg, IDC_EDIT_EXTHTMLHELP, m_Common.m_szExtHtmlHelp, sizeof( m_Common.m_szExtHtmlHelp ));
00459
00460     /* HtmlHelpビューアはひとつ */
00461     m_Common.m_bHtmlHelpIsSingle = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_HTMLHELPISSINGLE );
00462
00463
00464     /* 補完候補決定キー */
00465     m_Common.m_bHokanKey_RETURN = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_m_bHokanKey_RETURN );//VK_RETURN 補完決定キーが有効/無効
00466     m_Common.m_bHokanKey_TAB = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_m_bHokanKey_TAB );      //VK_TAB    補完決定キーが有効/無効
00467     m_Common.m_bHokanKey_RIGHT = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_m_bHokanKey_RIGHT );  //VK_RIGHT  補完決定キーが有効/無効
00468 //  m_Common.m_bHokanKey_SPACE = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_m_bHokanKey_SPACE );  //VK_SPACE  補完決定キーが有効/無効
00469
00470     ::GetDlgItemText( hwndDlg, IDC_EDIT_MIGEMO_DLL, m_Common.m_szMigemoDll, sizeof( m_Common.m_szMigemoDll ));
00471     ::GetDlgItemText( hwndDlg, IDC_EDIT_MIGEMO_DICT, m_Common.m_szMigemoDict, sizeof( m_Common.m_szMigemoDict ));
00472
00473
00474     return TRUE;
00475 }
00476
00477
00478 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComKeybind.cpp

CPropComKeybind.cpp

共通設定ダイアログボックス、「キーバインド」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "CDlgOpenFile.h"
#include "etc_uty.h"
#include "CSMacroMgr.h"
#include "KeyCode.h"
#include "debug.h"
#include <stdio.h>
#include "sakura.hh"

CPropComKeybind.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | STR_KEYDATA_HEAD_LEN 34
2002/2/3 aroka from here
#define | STR_KEYDATA_HEAD "テキストエディタ キー設定ファイル\x1a"
#define | STR_SHIFT_PLUS "Shift+"
#define | STR_CTRL_PLUS "Ctrl+"
#define | STR_ALT_PLUS "Alt+"

関数

LRESULT CALLBACK | CPropComKeybindWndProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

const char | STR_KEYDATA_HEAD2 [] = "// テキストエディタキー設定 Ver2"
static const DWORD | p_helpids []

説明

共通設定ダイアログボックス、「キーバインド」ページ

作者:
Norio Nakatani

CPropComKeybind.cpp で定義されています。

マクロ定義

#define STR_ALT_PLUS "Alt+"

CPropComKeybind.cpp の 37 行で定義されています。

#define STR_CTRL_PLUS "Ctrl+"

CPropComKeybind.cpp の 36 行で定義されています。

#define STR_KEYDATA_HEAD "テキストエディタ キー設定ファイル\x1a"

CPropComKeybind.cpp の 31 行で定義されています。

#define STR_KEYDATA_HEAD_LEN 34

2002/2/3 aroka from here

CPropComKeybind.cpp の 29 行で定義されています。

参照元 CPropCommon::p5_Import_KeySetting().

#define STR_SHIFT_PLUS "Shift+"

CPropComKeybind.cpp の 35 行で定義されています。

関数

LRESULT CALLBACK CPropComKeybindWndProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPropComKeybind.cpp の 104 行で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT_KEYBIND,
    IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT_KEYBIND,
    IDC_BUTTON_ASSIGN,              HIDC_BUTTON_ASSIGN,
    IDC_BUTTON_RELEASE,             HIDC_BUTTON_RELEASE,
    IDC_CHECK_SHIFT,                HIDC_CHECK_SHIFT,
    IDC_CHECK_CTRL,                 HIDC_CHECK_CTRL,
    IDC_CHECK_ALT,                  HIDC_CHECK_ALT,
    IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND_KEYBIND,
    IDC_EDIT_KEYSFUNC,              HIDC_EDIT_KEYSFUNC,
    IDC_LIST_FUNC,                  HIDC_LIST_FUNC_KEYBIND,
    IDC_LIST_KEY,                   HIDC_LIST_KEY,
    IDC_LIST_ASSIGNEDKEYS,          HIDC_LIST_ASSIGNEDKEYS,
    IDC_LABEL_MENUFUNCKIND,         -1,
    IDC_LABEL_MENUFUNC,             -1,
    IDC_LABEL_KEYKIND,              -1,
    IDC_LABEL_FUNCtoKEY,            -1,
    IDC_LABEL_KEYtoFUNC,            -1,

    0, 0
}

CPropComKeybind.cpp の 42 行で定義されています。

const char STR_KEYDATA_HEAD2[] = "// テキストエディタキー設定 Ver2"

CPropComKeybind.cpp の 33 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComKeybind.cpp ソースファイル

CPropComKeybind.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, genta, MIK, jepro
00009     Copyright (C) 2002, MIK, YAZAKI, aroka
00010     Copyright (C) 2003, KEITA
00011     Copyright (C) 2006, ryoji
00012     Copyright (C) 2007, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holders to use this code for other purpose.
00016 */
00017
00018
00019 #include "stdafx.h"
00020 #include "CPropCommon.h"
00021 #include "CDlgOpenFile.h"
00022 #include "etc_uty.h"
00023 #include "CSMacroMgr.h" // 2002/2/10 aroka
00024 #include "KeyCode.h"
00025 #include "debug.h"
00026 #include <stdio.h>
00027
00028 //  From Here Sept. 5, 2000 JEPRO 半角カタカナの全角化に伴い文字長を変更(21→34)
00029 #define STR_KEYDATA_HEAD_LEN  34
00030 //  To Here Sept. 5, 2000
00031 #define STR_KEYDATA_HEAD      "テキストエディタ キー設定ファイル\x1a"
00032
00033 const char STR_KEYDATA_HEAD2[] = "// テキストエディタキー設定 Ver2";    //@@@ 2001.11.07 add MIK
00034
00035 #define STR_SHIFT_PLUS        "Shift+"  //@@@ 2001.11.08 add MIK
00036 #define STR_CTRL_PLUS         "Ctrl+"  //@@@ 2001.11.08 add MIK
00037 #define STR_ALT_PLUS          "Alt+"  //@@@ 2001.11.08 add MIK
00038
00039 //@@@ 2001.02.04 Start by MIK: Popup Help
00040 #if 1   //@@@ 2002.01.03 add MIK
00041 #include "sakura.hh"
00042 static const DWORD p_helpids[] = {  //10700
00043     IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT_KEYBIND,     //インポート
00044     IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT_KEYBIND,     //エクスポート
00045     IDC_BUTTON_ASSIGN,              HIDC_BUTTON_ASSIGN,             //キー割り当て
00046     IDC_BUTTON_RELEASE,             HIDC_BUTTON_RELEASE,            //キー解除
00047     IDC_CHECK_SHIFT,                HIDC_CHECK_SHIFT,               //Shiftキー
00048     IDC_CHECK_CTRL,                 HIDC_CHECK_CTRL,                //Ctrlキー
00049     IDC_CHECK_ALT,                  HIDC_CHECK_ALT,                 //Altキー
00050     IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND_KEYBIND,    //機能の種別
00051     IDC_EDIT_KEYSFUNC,              HIDC_EDIT_KEYSFUNC,             //キーに割り当てられている機能
00052     IDC_LIST_FUNC,                  HIDC_LIST_FUNC_KEYBIND,         //機能一覧
00053     IDC_LIST_KEY,                   HIDC_LIST_KEY,                  //キー一覧
00054     IDC_LIST_ASSIGNEDKEYS,          HIDC_LIST_ASSIGNEDKEYS,         //機能に割り当てられているキー
00055     IDC_LABEL_MENUFUNCKIND,         -1,
00056     IDC_LABEL_MENUFUNC,             -1,
00057     IDC_LABEL_KEYKIND,              -1,
00058     IDC_LABEL_FUNCtoKEY,            -1,
00059     IDC_LABEL_KEYtoFUNC,            -1,
00060 //  IDC_STATIC,                     -1,
00061     0, 0
00062 };
00063 #else
00064 static const DWORD p_helpids[] = {  //10700
00065     IDC_BUTTON_IMPORT,              10700,  //インポート
00066     IDC_BUTTON_EXPORT,              10701,  //エクスポート
00067     IDC_BUTTON_ASSIGN,              10702,  //キー割り当て
00068     IDC_BUTTON_RELEASE,             10703,  //キー解除
00069     IDC_CHECK_SHIFT,                10710,  //Shiftキー
00070     IDC_CHECK_CTRL,                 10711,  //Ctrlキー
00071     IDC_CHECK_ALT,                  10712,  //Altキー
00072     IDC_COMBO_FUNCKIND,             10730,  //機能の種別
00073     IDC_EDIT_KEYSFUNC,              10740,  //キーに割り当てられている機能
00074     IDC_LIST_FUNC,                  10750,  //機能一覧
00075     IDC_LIST_KEY,                   10751,  //キー一覧
00076     IDC_LIST_ASSIGNEDKEYS,          10752,  //機能に割り当てられているキー
00077     IDC_LABEL_MENUFUNCKIND,         -1,
00078     IDC_LABEL_MENUFUNC,             -1,
00079     IDC_LABEL_KEYKIND,              -1,
00080     IDC_LABEL_FUNCtoKEY,            -1,
00081     IDC_LABEL_KEYtoFUNC,            -1,
00082 //  IDC_STATIC,                     -1,
00083     0, 0
00084 };
00085 #endif
00086 //@@@ 2001.02.04 End
00087
00088 //  From Here Jun. 2, 2001 genta
00095 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_KEYBIND(
00096     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00097 {
00098     return DlgProc( &CPropCommon::DispatchEvent_p5, hwndDlg, uMsg, wParam, lParam );
00099 }
00100 //  To Here Jun. 2, 2001 genta
00101
00102 /* From Here Oct. 13, 2000 Studio CでMr.コーヒー氏に教わったやり方ですがうまくいってません */
00103 // ウィンドウプロシージャの中で・・・
00104 LRESULT CALLBACK CPropComKeybindWndProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00105 {
00106     switch( uMsg ) {
00107     // WM_CTLCOLORSTATIC メッセージに対して
00108     case WM_CTLCOLORSTATIC:
00109     // 白色のブラシハンドルを返す
00110         return (LRESULT)GetStockObject(WHITE_BRUSH);
00111 //  default:
00112 //      break;
00113     }
00114     return 0;
00115 }
00116 /* To Here Oct. 13, 2000 */
00117
00118
00119
00120
00121
00122
00123
00124 /* p5 メッセージ処理 */
00125 INT_PTR CPropCommon::DispatchEvent_p5(
00126     HWND    hwndDlg,    // handle to dialog box
00127     UINT    uMsg,   // message
00128     WPARAM  wParam, // first message parameter
00129     LPARAM  lParam  // second message parameter
00130 )
00131 {
00132     WORD        wNotifyCode;
00133     WORD        wID;
00134     HWND        hwndCtl;
00135     NMHDR*      pNMHDR;
00136     NM_UPDOWN*  pMNUD;
00137     int         idCtrl;
00138     static HWND hwndCombo;
00139     static HWND hwndFuncList;
00140     static HWND hwndKeyList;
00141     static HWND hwndCheckShift;
00142     static HWND hwndCheckCtrl;
00143     static HWND hwndCheckAlt;
00144     static HWND hwndAssignedkeyList;
00145 //  static HWND hwndLIST_KEYSFUNC;
00146     static HWND hwndEDIT_KEYSFUNC;
00147     CMemory**   ppcAssignedKeyList;
00148 //  int         nLength;
00149     int         nAssignedKeyNum;
00150     const char* cpszString;
00151
00152     int         nIndex;
00153     int         nIndex2;
00154     int         nIndex3;
00155     int         i;
00156     int         j;
00157 //  int         nNum;
00158     int         nFuncCode;
00159     static char pszLabel[256];
00160 //  static char szKeyState[64];
00161 //  int         nIndexTop;
00162
00163     switch( uMsg ){
00164     case WM_INITDIALOG:
00165         /* ダイアログデータの設定 p5 */
00166         SetData_p5( hwndDlg );
00167         // Modified by KEITA for WIN64 2003.9.6
00168 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00169
00170         /* コントロールのハンドルを取得 */
00171         hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00172         hwndFuncList = ::GetDlgItem( hwndDlg, IDC_LIST_FUNC );
00173         hwndAssignedkeyList = ::GetDlgItem( hwndDlg, IDC_LIST_ASSIGNEDKEYS );
00174         hwndCheckShift = ::GetDlgItem( hwndDlg, IDC_CHECK_SHIFT );
00175         hwndCheckCtrl = ::GetDlgItem( hwndDlg, IDC_CHECK_CTRL );
00176         hwndCheckAlt = ::GetDlgItem( hwndDlg, IDC_CHECK_ALT );
00177         hwndKeyList = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00178 //      hwndLIST_KEYSFUNC = ::GetDlgItem( hwndDlg, IDC_LIST_KEYSFUNC );
00179         hwndEDIT_KEYSFUNC = ::GetDlgItem( hwndDlg, IDC_EDIT_KEYSFUNC );
00180
00181         /* キー選択時の処理 */
00182 //  From Here Oct. 14, 2000 JEPRO わかりにくいので選択しないように変更  //Oct. 17, 2000 JEPRO 復活！
00183 //  /* キーリストの先頭の項目を選択（リストボックス）*/
00184         ::SendMessage( hwndKeyList, LB_SETCURSEL, (WPARAM)0, (LPARAM)0 );   //Oct. 14, 2000 JEPRO ここをコメントアウトすると先頭項目が選択されなくなる
00185         ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList ); //Oct. 14, 2000 JEPRO ここはどっちでもいい？(わからん)
00186 //  To Here Oct. 14, 2000
00187         ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCombo );
00188
00189 //      /* コンボボックスのユーザー インターフェイスを拡張インターフェースにする */
00190 //      ::SendMessage( hwndCombo, CB_SETEXTENDEDUI, (WPARAM) (BOOL) TRUE, 0 );
00191
00192         return TRUE;
00193
00194     case WM_NOTIFY:
00195         idCtrl = (int)wParam;
00196         pNMHDR = (NMHDR*)lParam;
00197         pMNUD  = (NM_UPDOWN*)lParam;
00198         switch( pNMHDR->code ){
00199         case PSN_HELP:
00200 //          OnHelp( hwndDlg, IDD_PROP1P5 );     // Sept. 9, 2000 JEPRO 実際のID名に変更
00201             OnHelp( hwndDlg, IDD_PROP_KEYBIND );
00202             return TRUE;
00203         case PSN_KILLACTIVE:
00204 //          MYTRACE( "p5 PSN_KILLACTIVE\n" );
00205             /* ダイアログデータの取得 p5 */
00206             GetData_p5( hwndDlg );
00207             return TRUE;
00208 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00209         case PSN_SETACTIVE:
00210             m_nPageNum = ID_PAGENUM_KEYBOARD;
00211             return TRUE;
00212         }
00213         break;
00214
00215     case WM_COMMAND:
00216         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00217         wID = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00218         hwndCtl = (HWND) lParam;    /* コントロールのハンドル */
00219
00220         switch( wNotifyCode ){
00221         /* ボタン／チェックボックスがクリックされた */
00222         case BN_CLICKED:
00223             switch( wID ){
00224             case IDC_BUTTON_IMPORT: /* インポート */
00225                 /* p5:キー割り当て設定をインポートする */
00226                 p5_Import_KeySetting( hwndDlg );
00227                 return TRUE;
00228             case IDC_BUTTON_EXPORT: /* エクスポート */
00229                 /* p5:キー割り当て設定をエクスポートする */
00230                 p5_Export_KeySetting( hwndDlg );
00231                 return TRUE;
00232             case IDC_BUTTON_ASSIGN: /* 割付 */
00233                 nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00234                 nIndex2 = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
00235                 nIndex3 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
00236                 nFuncCode = m_cLookup.Pos2FuncCode( nIndex2, nIndex3 ); // Oct. 2, 2001 genta
00237 //              nFuncCode = (nsFuncCode::ppnFuncListArr[nIndex2])[nIndex3];
00238                 i = 0;
00239                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00240                     i |= _SHIFT;
00241                 }
00242                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00243                     i |= _CTRL;
00244                 }
00245                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00246                     i |= _ALT;
00247                 }
00248                 m_pKeyNameArr[nIndex].m_nFuncCodeArr[i] = nFuncCode;
00249                 ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00250                 ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_FUNC, LBN_SELCHANGE ), (LPARAM)hwndFuncList );
00251                 return TRUE;
00252             case IDC_BUTTON_RELEASE:    /* 解除 */
00253                 nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00254                 nIndex2 = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
00255                 nIndex3 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
00256                 nFuncCode = 0;
00257                 i = 0;
00258                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00259                     i |= _SHIFT;
00260                 }
00261                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00262                     i |= _CTRL;
00263                 }
00264                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00265                     i |= _ALT;
00266                 }
00267                 m_pKeyNameArr[nIndex].m_nFuncCodeArr[i] = nFuncCode;
00268                 ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00269                 ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_FUNC, LBN_SELCHANGE ), (LPARAM)hwndFuncList );
00270                 return TRUE;
00271             }
00272             break;  /* BN_CLICKED */
00273         }
00274         if( hwndCheckShift == hwndCtl
00275          || hwndCheckCtrl == hwndCtl
00276          || hwndCheckAlt == hwndCtl
00277         ){
00278             switch( wNotifyCode ){
00279             case BN_CLICKED:
00280                 p5_ChangeKeyList( hwndDlg );
00281 // 別関数へ
00282 #if 0
00283                 nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00284                 nIndexTop = ::SendMessage( hwndKeyList, LB_GETTOPINDEX, 0, 0 );
00285                 strcpy( szKeyState, "" );
00286                 i = 0;
00287                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00288                     i |= _SHIFT;
00289                     strcat( szKeyState, "Shift+" );
00290                 }
00291                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00292                     i |= _CTRL;
00293                     strcat( szKeyState, "Ctrl+" );
00294                 }
00295                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00296                     i |= _ALT;
00297                     strcat( szKeyState, "Alt+" );
00298                 }
00299                 /* キー一覧に文字列をセット（リストボックス）*/
00300                 ::SendMessage( hwndKeyList, LB_RESETCONTENT, 0, 0 );
00301                 for( i = 0; i < m_nKeyNameArrNum; ++i ){
00302                     wsprintf( pszLabel, "%s%s", szKeyState, m_pKeyNameArr[i].m_szKeyName );
00303                     ::SendMessage( hwndKeyList, LB_ADDSTRING, 0, (LPARAM)pszLabel );
00304                 }
00305                 ::SendMessage( hwndKeyList, LB_SETCURSEL, nIndex, 0 );
00306                 ::SendMessage( hwndKeyList, LB_SETTOPINDEX, nIndexTop, 0 );
00307                 ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00308 #endif
00309                 return TRUE;
00310             }
00311         }else
00312         if( hwndKeyList == hwndCtl ){
00313             switch( wNotifyCode ){
00314             case LBN_SELCHANGE:
00315                 nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00316                 i = 0;
00317                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00318                     i |= _SHIFT;
00319                 }
00320                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00321                     i |= _CTRL;
00322                 }
00323                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00324                     i |= _ALT;
00325                 }
00326                 nFuncCode = m_pKeyNameArr[nIndex].m_nFuncCodeArr[i];
00327                 // Oct. 2, 2001 genta
00328                 if( m_cLookup.Funccode2Name( nFuncCode, pszLabel, 255 )){
00329 //              if( 0 < ::LoadString( m_hInstance, nFuncCode, pszLabel, 255 )  ){   //}
00330                     ::SetWindowText( hwndEDIT_KEYSFUNC, pszLabel );
00331                 }else{
00332                     ::SetWindowText( hwndEDIT_KEYSFUNC, "--不明--" );
00333                 }
00334                 return TRUE;
00335             }
00336         }else
00337         if( hwndFuncList == hwndCtl ){
00338             switch( wNotifyCode ){
00339             case LBN_SELCHANGE:
00340                 nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00341                 nIndex2 = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
00342                 nIndex3 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
00343                 nFuncCode = m_cLookup.Pos2FuncCode( nIndex2, nIndex3 ); // Oct. 2, 2001 genta
00344 //              nFuncCode = (nsFuncCode::ppnFuncListArr[nIndex2])[nIndex3];
00345                 /* 機能に対応するキー名の取得(複数) */
00346                 nAssignedKeyNum = CKeyBind::GetKeyStrList(  /* 機能に対応するキー名の取得(複数) */
00347                     m_hInstance, m_nKeyNameArrNum, (KEYDATA*)m_pKeyNameArr,
00348                     &ppcAssignedKeyList, nFuncCode,
00349                     FALSE   // 2007.02.22 ryoji デフォルト機能は取得しない
00350                 );
00351                 /* 割り当てキーリストをクリアして値の設定 */
00352                 ::SendMessage( hwndAssignedkeyList, LB_RESETCONTENT, 0, 0 );
00353                 if( 0 < nAssignedKeyNum){
00354                     for( j = 0; j < nAssignedKeyNum; ++j ){
00355                         /* デバッグモニタに出力 */
00356                         cpszString = ppcAssignedKeyList[j]->GetPtr();
00357                         ::SendMessage( hwndAssignedkeyList, LB_ADDSTRING, 0, (LPARAM)cpszString );
00358                         delete ppcAssignedKeyList[j];
00359                     }
00360                     delete [] ppcAssignedKeyList;
00361                 }
00362                 return TRUE;
00363             }
00364         }else
00365         if( hwndCombo == hwndCtl){
00366             switch( wNotifyCode ){
00367             case CBN_SELCHANGE:
00368 //              nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00369                 nIndex2 = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
00370                 /* 機能一覧に文字列をセット（リストボックス）*/
00371                 m_cLookup.SetListItem( hwndFuncList, nIndex2 ); //  Oct. 2, 2001 genta
00372 #if 0
00373                 ::SendMessage( hwndFuncList, LB_RESETCONTENT, 0, 0 );
00374                 for( i = 0; i < nsFuncCode::pnFuncListNumArr[nIndex2]; ++i ){
00375                     if( 0 < ::LoadString( m_hInstance, (nsFuncCode::ppnFuncListArr[nIndex2])[i], pszLabel, 255 ) ){
00376                         ::SendMessage( hwndFuncList, LB_ADDSTRING, 0, (LPARAM)pszLabel );
00377                     }else{
00378                         ::SendMessage( hwndFuncList, LB_ADDSTRING, 0, (LPARAM)"--未定義--" );
00379                     }
00380                 }
00381 #endif
00382 //  From Here Sept. 7, 2000 JEPRO わかりにくいので選択しないように変更
00383 //              ::SendMessage( hwndFuncList, LB_SETCURSEL, (WPARAM)0, 0 );
00384 //  To Here Sept. 7, 2000
00385                 return TRUE;
00386             }
00387
00388 //@@@ 2001.11.08 add start MIK
00389         }else
00390         if( hwndAssignedkeyList == hwndCtl){
00391             switch( wNotifyCode ){
00392             case LBN_SELCHANGE:
00393             //case LBN_DBLCLK:
00394                 {
00395                     char    buff[1024], *p;
00396                     int ret;
00397
00398                     nIndex = ::SendMessage( hwndAssignedkeyList, LB_GETCURSEL, 0, 0 );
00399                     memset(buff, 0, sizeof(buff));
00400                     ret = ::SendMessage( hwndAssignedkeyList, LB_GETTEXT, nIndex, (LPARAM)buff);
00401                     if( ret != LB_ERR )
00402                     {
00403                         i = 0;
00404                         p = buff;
00405                         //SHIFT
00406                         if( memcmp(p, STR_SHIFT_PLUS, strlen(STR_SHIFT_PLUS)) == 0 ){
00407                             p += strlen(STR_SHIFT_PLUS);
00408                             i |= _SHIFT;
00409                         }
00410                         //CTRL
00411                         if( memcmp(p, STR_CTRL_PLUS, strlen(STR_CTRL_PLUS)) == 0 ){
00412                             p += strlen(STR_CTRL_PLUS);
00413                             i |= _CTRL;
00414                         }
00415                         //ALT
00416                         if( memcmp(p, STR_ALT_PLUS, strlen(STR_ALT_PLUS)) == 0 ){
00417                             p += strlen(STR_ALT_PLUS);
00418                             i |= _ALT;
00419                         }
00420                         for(j = 0; j < m_nKeyNameArrNum; j++)
00421                         {
00422                             if( strcmp(m_pKeyNameArr[j].m_szKeyName, p) == 0 )
00423                             {
00424                                 ::SendMessage( hwndKeyList, LB_SETCURSEL, (WPARAM)j, (LPARAM)0);
00425                                 if( i & _SHIFT ) ::CheckDlgButton( hwndDlg, IDC_CHECK_SHIFT, BST_CHECKED );  //チェック
00426                                 else             ::CheckDlgButton( hwndDlg, IDC_CHECK_SHIFT, BST_UNCHECKED );  //チェックをはずす
00427                                 if( i & _CTRL )  ::CheckDlgButton( hwndDlg, IDC_CHECK_CTRL,  BST_CHECKED );  //チェック
00428                                 else             ::CheckDlgButton( hwndDlg, IDC_CHECK_CTRL,  BST_UNCHECKED );  //チェックをはずす
00429                                 if( i & _ALT )   ::CheckDlgButton( hwndDlg, IDC_CHECK_ALT,   BST_CHECKED );  //チェック
00430                                 else             ::CheckDlgButton( hwndDlg, IDC_CHECK_ALT,   BST_UNCHECKED );  //チェックをはずす
00431                                 ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00432
00433                                 // キー一覧の文字列も変更
00434                                 p5_ChangeKeyList( hwndDlg );
00435                                 break;
00436                             }
00437                         }
00438                     }
00439                     return TRUE;
00440                 }
00441             }
00442 //@@@ 2001.11.08 add end MIK
00443
00444         }
00445         break;
00446
00447 //@@@ 2001.02.04 Start by MIK: Popup Help
00448     case WM_HELP:
00449         {
00450             HELPINFO *p = (HELPINFO *)lParam;
00451             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00452         }
00453         return TRUE;
00454         /*NOTREACHED*/
00455         //break;
00456 //@@@ 2001.02.04 End
00457
00458 //@@@ 2001.11.07 Start by MIK: Context Menu Help
00459     //Context Menu
00460     case WM_CONTEXTMENU:
00461         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00462         return TRUE;
00463 //@@@ 2001.11.07 End
00464
00465     }
00466     return FALSE;
00467 }
00468
00469
00470
00471
00472
00473
00474
00475 /* ダイアログデータの設定 p5 */
00476 void CPropCommon::SetData_p5( HWND hwndDlg )
00477 {
00478     HWND        hwndCombo;
00479     HWND        hwndKeyList;
00480     int         i;
00481
00482     /* 機能種別一覧に文字列をセット（コンボボックス）*/
00483     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00484     m_cLookup.SetCategory2Combo( hwndCombo );   //  Oct. 2, 2001 genta
00485 #if 0
00486     for( i = 0; i < nsFuncCode::nFuncKindNum; ++i ){
00487         ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)nsFuncCode::ppszFuncKind[i] );
00488     }
00489 #endif
00490     /* 種別の先頭の項目を選択（コンボボックス）*/
00491     ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 ); //Oct. 14, 2000 JEPRO JEPRO 「--未定義--」を表示させないように大元 Funcode.cpp で変更してある
00492     /* キー一覧に文字列をセット（リストボックス）*/
00493     hwndKeyList = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00494     for( i = 0; i < m_nKeyNameArrNum; ++i ){
00495             ::SendMessage( hwndKeyList, LB_ADDSTRING, 0, (LPARAM)m_pKeyNameArr[i].m_szKeyName );
00496     }
00497     return;
00498 }
00499
00500
00501
00502 /* ダイアログデータの取得 p5 */
00503 int CPropCommon::GetData_p5( HWND hwndDlg )
00504 {
00505 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00506 //  m_nPageNum = ID_PAGENUM_KEYBOARD;
00507     return TRUE;
00508 }
00510 void CPropCommon::p5_ChangeKeyList( HWND hwndDlg){
00511     HWND    hwndKeyList;
00512     int     nIndex;
00513     int     nIndexTop;
00514     int     i;
00515     char    pszLabel[256];
00516     char    szKeyState[64];
00517
00518     hwndKeyList = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00519     nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00520     nIndexTop = ::SendMessage( hwndKeyList, LB_GETTOPINDEX, 0, 0 );
00521     strcpy( szKeyState, "" );
00522     i = 0;
00523     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SHIFT ) ){
00524         i |= _SHIFT;
00525         strcat( szKeyState, "Shift+" );
00526     }
00527     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CTRL ) ){
00528         i |= _CTRL;
00529         strcat( szKeyState, "Ctrl+" );
00530     }
00531     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ALT ) ){
00532         i |= _ALT;
00533         strcat( szKeyState, "Alt+" );
00534     }
00535     /* キー一覧に文字列をセット（リストボックス）*/
00536     ::SendMessage( hwndKeyList, LB_RESETCONTENT, 0, 0 );
00537     for( i = 0; i < m_nKeyNameArrNum; ++i ){
00538         wsprintf( pszLabel, "%s%s", szKeyState, m_pKeyNameArr[i].m_szKeyName );
00539         ::SendMessage( hwndKeyList, LB_ADDSTRING, 0, (LPARAM)pszLabel );
00540     }
00541     ::SendMessage( hwndKeyList, LB_SETCURSEL, nIndex, 0 );
00542     ::SendMessage( hwndKeyList, LB_SETTOPINDEX, nIndexTop, 0 );
00543     ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndKeyList );
00544 }
00545
00546 /* p5:キー割り当て設定をインポートする */
00547 void CPropCommon::p5_Import_KeySetting( HWND hwndDlg )
00548 {
00549     CDlgOpenFile    cDlgOpenFile;
00550     char            szPath[_MAX_PATH + 1];
00551     HFILE           hFile;
00552 //  char            szLine[1024];
00553 //  int             i;
00554
00555     char            pHeader[STR_KEYDATA_HEAD_LEN + 1];
00556     short           nKeyNameArrNum;             /* キー割り当て表の有効データ数 */
00557     KEYDATA         pKeyNameArr[100];               /* キー割り当て表 */
00558     HWND            hwndCtrl;
00559     char            szInitDir[_MAX_PATH + 1];
00560
00561     strcpy( szPath, "" );
00562     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00563     /* ファイルオープンダイアログの初期化 */
00564     cDlgOpenFile.Create(
00565         m_hInstance,
00566         hwndDlg,
00567         "*.key",
00568         szInitDir
00569     );
00570     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00571         return;
00572     }
00573     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00574     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00575 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00576     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00577
00578     hFile = _lopen( szPath, OF_READ );
00579     if( HFILE_ERROR == hFile ){
00580 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00581             "ファイルを開けませんでした。\n\n%s", szPath
00582         );
00583         return;
00584     }
00585     if( STR_KEYDATA_HEAD_LEN        != _lread( hFile, pHeader, STR_KEYDATA_HEAD_LEN ) ||
00586         sizeof( nKeyNameArrNum )    != _lread( hFile, &nKeyNameArrNum, sizeof( nKeyNameArrNum ) ) ||
00587         sizeof( pKeyNameArr )       != _lread( hFile,  pKeyNameArr,    sizeof( pKeyNameArr ) ) ||
00588         0 != memcmp( pHeader, STR_KEYDATA_HEAD, STR_KEYDATA_HEAD_LEN )
00589     ){
00590         _lclose( hFile );  //@@@ 2001.11.07 add MIK
00591
00592 //@@@ 2001.11.07 add start MIK
00593         {
00594             FILE    *fp;
00595             int i, j, cnt, kc, n, an;
00596             char    buff[1024], name[1024], szFuncNameJapanese[256], s[1024], *p, *q;
00597
00598             if( (fp = fopen( szPath, "r" )) == NULL )
00599             {
00600 				::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00601                     "ファイルを開けませんでした。\n\n%s", szPath
00602                 );
00603                 return;
00604             }
00605
00606             if( fgets(buff, sizeof(buff), fp) != NULL
00607              && memcmp(buff, STR_KEYDATA_HEAD2, strlen(STR_KEYDATA_HEAD2)) == 0
00608              && fgets(buff, sizeof(buff), fp) != NULL )
00609             {
00610                 cnt = sscanf(buff, "Count=%d", &an);
00611                 nKeyNameArrNum = an;
00612                 if( cnt == 1 && an >= 0 && an <= 100 )
00613                 {
00614                     for(i = 0; i < 100; i++)
00615                     {
00616                         name[0] = '\0';
00617                         if( fgets(buff, sizeof(buff), fp) == NULL ) break;
00618                         for(j = strlen(buff) - 1; j >= 0; j--){
00619                             if( buff[j] == '\n' || buff[j] == '\r' ) buff[j] = '\0';
00620                         }
00621                         cnt = sscanf(buff, "KeyBind[%03d]=%04x,%s",
00622                             &n,
00623                             &kc,
00624                             s,
00625                             name);
00626                         if( cnt != 3 ) break;
00627                         if( i != n ) break;
00628                         pKeyNameArr[i].m_nKeyCode = kc;
00629
00630                         p = s;
00631                         for(j = 0; j < 8; j++)
00632                         {
00633                             q = strstr(p, ",");
00634                             if( !q )
00635                                 break;
00636                             *q = '\0';
00637                             //機能名を数値に置き換える。(数値の機能名もあるかも)
00638                             //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00639 //                          n = CMacro::GetFuncInfoByName(m_hInstance, p, szFuncNameJapanese);
00640                             n = CSMacroMgr::GetFuncInfoByName(m_hInstance, p, szFuncNameJapanese);
00641                             if( n == -1 )
00642                             {
00643                                 if( *p >= '0' && *p <= '9' )
00644                                 {
00645                                     n = atol(p);
00646                                 }
00647                                 else
00648                                 {
00649                                     n = 0;
00650                                 }
00651                             }
00652                             pKeyNameArr[i].m_nFuncCodeArr[j] = n;
00653                             p = q + 1;
00654                         }
00655
00656                         if( j != 8 ) break;
00657
00658                         strcpy(pKeyNameArr[i].m_szKeyName, p);
00659                     }
00660                     if( i == 100 )
00661                     {
00662                         fclose(fp);
00663                         goto ToMaster;
00664                     }
00665                 }
00666             }
00667             fclose(fp);
00668         }
00669 //@@@ 2001.11.07 add end MIK
00670
00671 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00672             "キー設定ファイルの形式が違います。\n\n%s", szPath
00673         );
00674         return;
00675     }
00676     _lclose( hFile );
00677
00678 ToMaster:   //@@@ 2001.11.07 add MIK
00679     /* データのコピー */
00680     m_nKeyNameArrNum = nKeyNameArrNum;
00681     memcpy( m_pKeyNameArr, pKeyNameArr, sizeof( pKeyNameArr ) );
00682
00683 //  CShareData::SetKeyNames( m_pShareData );    /* キー名称のセット */
00684
00685
00686 //  /* ダイアログデータの設定 p5 */
00687 //  SetData_p5( hwndDlg );
00688 //@@@ 2001.11.07 modify start MIK: 機能に割り当てられているキー一覧を更新する。
00689     hwndCtrl = ::GetDlgItem( hwndDlg, IDC_LIST_KEY );
00690     ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_KEY, LBN_SELCHANGE ), (LPARAM)hwndCtrl );
00691     hwndCtrl = ::GetDlgItem( hwndDlg, IDC_LIST_FUNC );
00692     ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_FUNC, LBN_SELCHANGE ), (LPARAM)hwndCtrl );
00693 //@@@ 2001.11.07 modify end MIK
00694
00695     return;
00696 }
00697
00698
00699 /* p5:キー割り当て設定をエクスポートする */
00700 void CPropCommon::p5_Export_KeySetting( HWND hwndDlg )
00701 {
00702     CDlgOpenFile    cDlgOpenFile;
00703     char            szPath[_MAX_PATH + 1];
00704 //  HFILE           hFile;  //@@@ 2001.11.07 del MIK
00705 //  char            szLine[1024];
00706 //  int             i;
00707 //  char            pHeader[STR_KEYDATA_HEAD_LEN + 1];
00708 //  short           nKeyNameArrNum;             /* キー割り当て表の有効データ数 */
00709 //  KEYDATA         pKeyNameArr[100];               /* キー割り当て表 */
00710     char            szInitDir[_MAX_PATH + 1];
00711
00712     strcpy( szPath, "" );
00713     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00714     /* ファイルオープンダイアログの初期化 */
00715     cDlgOpenFile.Create(
00716         m_hInstance,
00717         hwndDlg,
00718         "*.key",
00719         szInitDir
00720     );
00721     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00722         return;
00723     }
00724     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00725     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00726 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00727     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00728
00729 #if 0  //@@@ 2001.11.07 del start MIK
00730     hFile = _lcreat( szPath, 0 );
00731     if( HFILE_ERROR == hFile ){
00732 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00733             "ファイルを開けませんでした。\n\n%s", szPath
00734         );
00735         return;
00736     }
00737     if( STR_KEYDATA_HEAD_LEN        != _lwrite( hFile, (LPCSTR)STR_KEYDATA_HEAD, STR_KEYDATA_HEAD_LEN ) ||
00738         sizeof( m_nKeyNameArrNum )  != _lwrite( hFile, (LPCSTR)&m_nKeyNameArrNum, sizeof( m_nKeyNameArrNum ) ) ||
00739         sizeof( m_pKeyNameArr )     != _lwrite( hFile, (LPCSTR) m_pKeyNameArr,    sizeof( m_pKeyNameArr ) )
00740     ){
00741 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00742             "ファイルの書き込みに失敗しました。\n\n%s", szPath
00743         );
00744         _lclose( hFile );   //@@@ 2001.11.09 add MIK
00745         return;
00746     }
00747     _lclose( hFile );
00748 #endif  //@@@ 2001.11.07 del end MIK
00749 //@@@ 2001.11.07 add start MIK: テキスト形式で保存
00750     {
00751         FILE    *fp;
00752         int i, j;
00753         char    szFuncName[256], szFuncNameJapanese[256], *p;
00754
00755         if( (fp = fopen( szPath, "w" )) == NULL )
00756         {
00757 			::MYMESSAGEBOX(  hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00758                 "ファイルを開けませんでした。\n\n%s", szPath
00759             );
00760             return;
00761         }
00762
00763         fprintf(fp, "%s\n", STR_KEYDATA_HEAD2);
00764         fprintf(fp, "Count=%d\n", m_nKeyNameArrNum);
00765
00766         for(i = 0; i < 100; i++)
00767         {
00768             fprintf(fp, "KeyBind[%03d]=%04x", i, m_pKeyNameArr[i].m_nKeyCode);
00769
00770             for(j = 0; j < 8; j++)
00771             {
00772                 //@@@ 2002.2.2 YAZAKI マクロをCSMacroMgrに統一
00773 //              p = CMacro::GetFuncInfoByID(m_hInstance, m_pKeyNameArr[i].m_nFuncCodeArr[j], szFuncName, szFuncNameJapanese);
00774                 p = CSMacroMgr::GetFuncInfoByID(m_hInstance, m_pKeyNameArr[i].m_nFuncCodeArr[j], szFuncName, szFuncNameJapanese);
00775                 if( p ) {
00776                     fprintf(fp, ",%s", p);
00777                 }
00778                 else {
00779                     fprintf(fp, ",%d", m_pKeyNameArr[i].m_nFuncCodeArr[j]);
00780                 }
00781             }
00782
00783             fprintf(fp, ",%s\n", m_pKeyNameArr[i].m_szKeyName);
00784         }
00785
00786         fclose(fp);
00787     }
00788 //@@@ 2001.11.07 add end MIK
00789
00790     return;
00791 }
00792
00793
00794 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComKeyword.cpp

CPropComKeyword.cpp

共通設定ダイアログボックス、「強調キーワード」ページ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CPropCommon.h"
#include "debug.h"
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
#include "CDlgOpenFile.h"
#include "etc_uty.h"
#include "CDlgInput1.h"
#include "global.h"
#include "sakura.hh"

CPropComKeyword.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「強調キーワード」ページ

作者:
Norio Nakatani

CPropComKeyword.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_ADDSET,              HIDC_BUTTON_ADDSET,
    IDC_BUTTON_DELSET,              HIDC_BUTTON_DELSET,
    IDC_BUTTON_ADDKEYWORD,          HIDC_BUTTON_ADDKEYWORD,
    IDC_BUTTON_EDITKEYWORD,         HIDC_BUTTON_EDITKEYWORD,
    IDC_BUTTON_DELKEYWORD,          HIDC_BUTTON_DELKEYWORD,
    IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT_KEYWORD,
    IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT_KEYWORD,
    IDC_CHECK_KEYWORDCASE,          HIDC_CHECK_KEYWORDCASE,
    IDC_COMBO_SET,                  HIDC_COMBO_SET,
    IDC_LIST_KEYWORD,               HIDC_LIST_KEYWORD,
    IDC_BUTTON_KEYCLEAN     ,       HIDC_BUTTON_KEYCLEAN,
    IDC_BUTTON_KEYSETRENAME,        HIDC_BUTTON_KEYSETRENAME,

    0, 0
}

CPropComKeyword.cpp の 36 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:06 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComKeyword.cpp ソースファイル

CPropComKeyword.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, MIK
00009     Copyright (C) 2001, genta, MIK
00010     Copyright (C) 2002, YAZAKI, MIK, genta
00011     Copyright (C) 2003, KEITA
00012     Copyright (C) 2005, genta, Moca
00013     Copyright (C) 2006, ryoji
00014     Copyright (C) 2007, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holders to use this code for other purpose.
00018 */
00019
00020 #include "stdafx.h"
00021 #include "sakura_rc.h"
00022 #include "CPropCommon.h"
00023 #include "debug.h"
00024 #include <windows.h>
00025 #include <stdio.h>
00026 #include <commctrl.h>
00027 #include "CDlgOpenFile.h"
00028 #include "etc_uty.h"
00029 #include "CDlgInput1.h"
00030 #include "global.h"
00031
00032
00033 //@@@ 2001.02.04 Start by MIK: Popup Help
00034 #if 1   //@@@ 2002.01.03 add MIK
00035 #include "sakura.hh"
00036 static const DWORD p_helpids[] = {  //10800
00037     IDC_BUTTON_ADDSET,              HIDC_BUTTON_ADDSET,         //キーワードセット追加
00038     IDC_BUTTON_DELSET,              HIDC_BUTTON_DELSET,         //キーワードセット削除
00039     IDC_BUTTON_ADDKEYWORD,          HIDC_BUTTON_ADDKEYWORD,     //キーワード追加
00040     IDC_BUTTON_EDITKEYWORD,         HIDC_BUTTON_EDITKEYWORD,    //キーワード編集
00041     IDC_BUTTON_DELKEYWORD,          HIDC_BUTTON_DELKEYWORD,     //キーワード削除
00042     IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT_KEYWORD, //インポート
00043     IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT_KEYWORD, //エクスポート
00044     IDC_CHECK_KEYWORDCASE,          HIDC_CHECK_KEYWORDCASE,     //キーワードの英大文字小文字区別
00045     IDC_COMBO_SET,                  HIDC_COMBO_SET,             //強調キーワードセット名
00046     IDC_LIST_KEYWORD,               HIDC_LIST_KEYWORD,          //キーワード一覧
00047     IDC_BUTTON_KEYCLEAN     ,       HIDC_BUTTON_KEYCLEAN,       //キーワード整理    // 2006.08.06 ryoji
00048     IDC_BUTTON_KEYSETRENAME,        HIDC_BUTTON_KEYSETRENAME,   //セットの名称変更  // 2006.08.06 ryoji
00049 //  IDC_STATIC,                     -1,
00050     0, 0
00051 };
00052 #else
00053 static const DWORD p_helpids[] = {  //10800
00054     IDC_BUTTON_ADDSET,              10800,  //キーワードセット追加
00055     IDC_BUTTON_DELSET,              10801,  //キーワードセット削除
00056     IDC_BUTTON_ADDKEYWORD,          10802,  //キーワード追加
00057     IDC_BUTTON_EDITKEYWORD,         10803,  //キーワード編集
00058     IDC_BUTTON_DELKEYWORD,          10804,  //キーワード削除
00059     IDC_BUTTON_IMPORT,              10805,  //インポート
00060     IDC_BUTTON_EXPORT,              10806,  //エクスポート
00061     IDC_CHECK_KEYWORDCASE,          10810,  //キーワードの英大文字小文字区別
00062     IDC_COMBO_SET,                  10830,  //強調キーワードセット名
00063     IDC_LIST_KEYWORD,               10840,  //キーワード一覧
00064 //  IDC_STATIC,                     -1,
00065     0, 0
00066 };
00067 #endif
00068 //@@@ 2001.02.04 End
00069
00070 //  From Here Jun. 2, 2001 genta
00077 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_KEYWORD(
00078     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00079 {
00080     return DlgProc( &CPropCommon::DispatchEvent_p7, hwndDlg, uMsg, wParam, lParam );
00081 }
00082 //  To Here Jun. 2, 2001 genta
00083
00084 /* p7 メッセージ処理 */
00085 INT_PTR CPropCommon::DispatchEvent_p7(
00086     HWND    hwndDlg,    // handle to dialog box
00087     UINT    uMsg,       // message
00088     WPARAM  wParam,     // first message parameter
00089     LPARAM  lParam      // second message parameter
00090 )
00091 {
00092     WORD                wNotifyCode;
00093     WORD                wID;
00094     HWND                hwndCtl;
00095     NMHDR*              pNMHDR;
00096     NM_UPDOWN*          pMNUD;
00097     int                 idCtrl;
00098 //  LPDRAWITEMSTRUCT    pDis;
00099     int                 nIndex1;
00100 //  int                 nIndex2;
00101 //  int                 nIndex3;
00102 //  int                 nNum;
00103     int                 i;
00104 //  int                 j;
00105     static char         pszLabel[1024];
00106 //  HDC                 hdc;
00107 //  TEXTMETRIC          tm;
00108     static int          nListItemHeight;
00109 //  LRESULT             lResult;
00110     LV_COLUMN           lvc;
00111 //  LV_ITEM             lvi;
00112     LV_ITEM*            plvi;
00113     static HWND         hwndCOMBO_SET;
00114     static HWND         hwndLIST_KEYWORD;
00115     RECT                rc;
00116     CDlgInput1          cDlgInput1;
00117     char                szKeyWord[MAX_KEYWORDLEN + 1];
00118     DWORD               dwStyle;
00119     LV_DISPINFO*        plvdi;
00120     LV_KEYDOWN*         pnkd;
00121
00122     switch( uMsg ){
00123     case WM_INITDIALOG:
00124         /* ダイアログデータの設定 p7 */
00125         SetData_p7( hwndDlg );
00126         // Modified by KEITA for WIN64 2003.9.6
00127 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00128
00129         /* コントロールのハンドルを取得 */
00130         hwndCOMBO_SET = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
00131         hwndLIST_KEYWORD = ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD );
00132         ::GetWindowRect( hwndLIST_KEYWORD, &rc );
00133         lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00134         lvc.fmt = LVCFMT_LEFT;
00135         lvc.cx = rc.right - rc.left;
00136         lvc.pszText = "";
00137         lvc.iSubItem = 0;
00138         ListView_InsertColumn( hwndLIST_KEYWORD, 0, &lvc );
00139
00140         dwStyle = (DWORD)::GetWindowLong( hwndLIST_KEYWORD, GWL_STYLE );
00141         ::SetWindowLong( hwndLIST_KEYWORD, GWL_STYLE, dwStyle | LVS_SHOWSELALWAYS );
00142 //              (dwStyle & ~LVS_TYPEMASK) | dwView);
00143
00144
00145         /* コントロール更新のタイミング用のタイマーを起動 */
00146         ::SetTimer( hwndDlg, 1, 300, NULL );
00147
00148         return TRUE;
00149
00150     case WM_NOTIFY:
00151         idCtrl = (int)wParam;
00152         pNMHDR = (NMHDR*)lParam;
00153         pnkd = (LV_KEYDOWN *)lParam;
00154         pMNUD  = (NM_UPDOWN*)lParam;
00155         plvdi = (LV_DISPINFO*)lParam;
00156         plvi = &plvdi->item;
00157
00158         if( hwndLIST_KEYWORD == pNMHDR->hwndFrom ){
00159             switch( pNMHDR->code ){
00160             case NM_DBLCLK:
00161 //              MYTRACE( "NM_DBLCLK     \n" );
00162                 /* p7:リスト中で選択されているキーワードを編集する */
00163                 p7_Edit_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00164                 return TRUE;
00165             case LVN_BEGINLABELEDIT:
00166 #ifdef _DEBUG
00167                 MYTRACE( "LVN_BEGINLABELEDIT\n" );
00168                                                 MYTRACE( "  plvi->mask =[%xh]\n", plvi->mask );
00169                                                 MYTRACE( "  plvi->iItem =[%d]\n", plvi->iItem );
00170                                                 MYTRACE( "  plvi->iSubItem =[%d]\n", plvi->iSubItem );
00171                 if (plvi->mask & LVIF_STATE)    MYTRACE( "  plvi->state =[%xf]\n", plvi->state );
00172                                                 MYTRACE( "  plvi->stateMask =[%xh]\n", plvi->stateMask );
00173                 if (plvi->mask & LVIF_TEXT)     MYTRACE( "  plvi->pszText =[%s]\n", plvi->pszText );
00174                                                 MYTRACE( "  plvi->cchTextMax=[%d]\n", plvi->cchTextMax );
00175                 if (plvi->mask & LVIF_IMAGE)    MYTRACE( "  plvi->iImage=[%d]\n", plvi->iImage );
00176                 if (plvi->mask & LVIF_PARAM)    MYTRACE( "  plvi->lParam=[%xh(%d)]\n", plvi->lParam, plvi->lParam );
00177 #endif
00178                 return TRUE;
00179             case LVN_ENDLABELEDIT:
00180 #ifdef _DEBUG
00181                 MYTRACE( "LVN_ENDLABELEDIT\n" );
00182                                                 MYTRACE( "  plvi->mask =[%xh]\n", plvi->mask );
00183                                                 MYTRACE( "  plvi->iItem =[%d]\n", plvi->iItem );
00184                                                 MYTRACE( "  plvi->iSubItem =[%d]\n", plvi->iSubItem );
00185                 if (plvi->mask & LVIF_STATE)    MYTRACE( "  plvi->state =[%xf]\n", plvi->state );
00186                                                 MYTRACE( "  plvi->stateMask =[%xh]\n", plvi->stateMask );
00187                 if (plvi->mask & LVIF_TEXT)     MYTRACE( "  plvi->pszText =[%s]\n", plvi->pszText  );
00188                                                 MYTRACE( "  plvi->cchTextMax=[%d]\n", plvi->cchTextMax );
00189                 if (plvi->mask & LVIF_IMAGE)    MYTRACE( "  plvi->iImage=[%d]\n", plvi->iImage );
00190                 if (plvi->mask & LVIF_PARAM)    MYTRACE( "  plvi->lParam=[%xh(%d)]\n", plvi->lParam, plvi->lParam );
00191 #endif
00192                 if( NULL == plvi->pszText ){
00193                     return TRUE;
00194                 }
00195                 if( 0 < strlen( plvi->pszText ) ){
00196                     if( MAX_KEYWORDLEN < strlen( plvi->pszText ) ){
00197 						::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00198                             "キーワードの長さは%dバイトまでです。", MAX_KEYWORDLEN
00199                         );
00200                         return TRUE;
00201                     }
00202                     /* ｎ番目のセットにキーワードを編集 */
00203                     m_CKeyWordSetMgr.UpdateKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, plvi->lParam, plvi->pszText );
00204                 }else{
00205                     /* ｎ番目のセットのｍ番目のキーワードを削除 */
00206                     m_CKeyWordSetMgr.DelKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, plvi->lParam );
00207                 }
00208                 /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00209                 SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00210
00211                 ListView_SetItemState( hwndLIST_KEYWORD, plvi->iItem, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00212
00213                 return TRUE;
00214             case LVN_KEYDOWN:
00215 //              MYTRACE( "LVN_KEYDOWN\n" );
00216                 switch( pnkd->wVKey ){
00217                 case VK_DELETE:
00218                     /* p7:リスト中で選択されているキーワードを削除する */
00219                     p7_Delete_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00220                     break;
00221                 case VK_SPACE:
00222                     /* p7:リスト中で選択されているキーワードを編集する */
00223                     p7_Edit_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00224                     break;
00225                 }
00226                 return TRUE;
00227             }
00228         }else{
00229             switch( pNMHDR->code ){
00230             case PSN_HELP:
00231                 OnHelp( hwndDlg, IDD_PROP_KEYWORD );
00232                 return TRUE;
00233             case PSN_KILLACTIVE:
00234 #ifdef _DEBUG
00235                 MYTRACE( "p7 PSN_KILLACTIVE\n" );
00236 #endif
00237                 /* ダイアログデータの取得 p7 */
00238                 GetData_p7( hwndDlg );
00239                 return TRUE;
00240 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00241             case PSN_SETACTIVE:
00242                 m_nPageNum = ID_PAGENUM_KEYWORD;
00243                 return TRUE;
00244             }
00245         }
00246         break;
00247     case WM_COMMAND:
00248         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00249         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00250         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00251         if( hwndCOMBO_SET == hwndCtl){
00252             switch( wNotifyCode ){
00253             case CBN_SELCHANGE:
00254                 nIndex1 = ::SendMessage( hwndCOMBO_SET, CB_GETCURSEL, 0, 0 );
00255                 /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00256                 SetData_p7_KeyWordSet( hwndDlg, nIndex1 );
00257                 return TRUE;
00258             }
00259         }else{
00260             switch( wNotifyCode ){
00261             /* ボタン／チェックボックスがクリックされた */
00262             case BN_CLICKED:
00263                 switch( wID ){
00264                 case IDC_BUTTON_ADDSET: /* セット追加 */
00265                     if( MAX_SETNUM <= m_CKeyWordSetMgr.m_nKeyWordSetNum ){
00266 						::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00267                             "セットは%d個までしか登録できません。\n", MAX_SETNUM
00268                         );
00269                         return TRUE;
00270                     }
00271                     /* モードレスダイアログの表示 */
00272                     strcpy( szKeyWord, "" );
00273                     //  Oct. 5, 2002 genta 長さ制限の設定を修正．バッファオーバーランしていた．
00274                     if( FALSE == cDlgInput1.DoModal( m_hInstance, hwndDlg, "キーワードのセット追加", "セット名を入力してください。", MAX_SETNAMELEN, szKeyWord ) ){
00275                         return TRUE;
00276                     }
00277                     if( 0 < strlen( szKeyWord ) ){
00278                         /* セットの追加 */
00279                         m_CKeyWordSetMgr.AddKeyWordSet( szKeyWord, FALSE );
00280
00281                         m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx = m_CKeyWordSetMgr.m_nKeyWordSetNum - 1;
00282
00283                         /* ダイアログデータの設定 p7 */
00284                         SetData_p7( hwndDlg );
00285                     }
00286                     return TRUE;
00287                 case IDC_BUTTON_DELSET: /* セット削除 */
00288                     nIndex1 = ::SendMessage( hwndCOMBO_SET, CB_GETCURSEL, 0, 0 );
00289                     if( CB_ERR == nIndex1 ){
00290                         return TRUE;
00291                     }
00292                     /* 削除対象のセットを使用しているファイルタイプを列挙 */
00293                     strcpy( pszLabel, "" );
00294                     for( i = 0; i < MAX_TYPES; ++i ){
00295                         // 2002/04/25 YAZAKI Types全体を保持する必要はないし、m_pShareDataを直接見ても問題ない。
00296                         if( nIndex1 == m_Types_nKeyWordSetIdx[i][0]
00297                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][1]
00298                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][2]
00299                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][3]
00300                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][4]
00301                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][5]
00302                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][6]
00303                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][7]
00304                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][8]
00305                         ||  nIndex1 == m_Types_nKeyWordSetIdx[i][9] ){
00306                             strcat( pszLabel, "・" );
00307                             strcat( pszLabel, m_pShareData->m_Types[i].m_szTypeName );
00308                             strcat( pszLabel, "（" );
00309                             strcat( pszLabel, m_pShareData->m_Types[i].m_szTypeExts );
00310                             strcat( pszLabel, "）" );
00311                             strcat( pszLabel, "\n" );
00312                         }
00313                     }
00314                     if( IDCANCEL == ::MYMESSAGEBOX( hwndDlg, MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME,
00315                         "「%s」のセットを削除します。\nよろしいですか？\n削除しようとするセットは、以下のファイルタイプに割り当てられています。\n削除したセットは無効になります。\n\n%s",
00316                         m_CKeyWordSetMgr.GetTypeName( nIndex1 ),
00317                         pszLabel
00318                     ) ){
00319                         return TRUE;
00320                     }
00321                     /* 削除対象のセットを使用しているファイルタイプのセットをクリア */
00322                     for( i = 0; i < MAX_TYPES; ++i ){
00323                         // 2002/04/25 YAZAKI Types全体を保持する必要はない。
00324                         for( int j = 0; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
00325                             if( nIndex1 == m_Types_nKeyWordSetIdx[i][j] ){
00326                                 m_Types_nKeyWordSetIdx[i][j] = -1;
00327                             }
00328                             else if( nIndex1 < m_Types_nKeyWordSetIdx[i][j] ){
00329                                 m_Types_nKeyWordSetIdx[i][j]--;
00330                             }
00331                         }
00332                     }
00333                     /* ｎ番目のセットを削除 */
00334                     m_CKeyWordSetMgr.DelKeyWordSet( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00335                     /* ダイアログデータの設定 p7 */
00336                     SetData_p7( hwndDlg );
00337                     return TRUE;
00338                 case IDC_BUTTON_KEYSETRENAME: // キーワードセットの名称変更
00339                     // モードレスダイアログの表示
00340                     strcpy( szKeyWord, m_CKeyWordSetMgr.GetTypeName( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ) );
00341                     if( FALSE == cDlgInput1.DoModal( m_hInstance, hwndDlg, "セットの名称変更",
00342                             "セット名を入力してください。", MAX_SETNAMELEN, szKeyWord ) ){
00343                         return TRUE;
00344                     }
00345                     if( 0 < strlen( szKeyWord ) ){
00346                         m_CKeyWordSetMgr.SetTypeName( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, szKeyWord );
00347
00348                         // ダイアログデータの設定 p7
00349                         SetData_p7( hwndDlg );
00350                     }
00351                     return TRUE;
00352                 case IDC_CHECK_KEYWORDCASE: /* キーワードの英大文字小文字区別 */
00353 //                  m_CKeyWordSetMgr.m_nKEYWORDCASEArr[ m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ] = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYWORDCASE );    //MIK 2000.12.01 case sense
00354                     m_CKeyWordSetMgr.SetKeyWordCase(m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYWORDCASE ));          //MIK 2000.12.01 case sense
00355                     return TRUE;
00356                 case IDC_BUTTON_ADDKEYWORD: /* キーワード追加 */
00357                     /* ｎ番目のセットのキーワードの数を返す */
00358                     if( !m_CKeyWordSetMgr.CanAddKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ) ){
00359                         ::MYMESSAGEBOX( hwndDlg,    MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00360                             "登録できるキーワード数が上限に達しています。\n"
00361                         );
00362                         return TRUE;
00363                     }
00364                     /* モードレスダイアログの表示 */
00365                     strcpy( szKeyWord, "" );
00366                     if( FALSE == cDlgInput1.DoModal( m_hInstance, hwndDlg, "キーワード追加", "キーワードを入力してください。", MAX_KEYWORDLEN, szKeyWord ) ){
00367                         return TRUE;
00368                     }
00369                     if( 0 < strlen( szKeyWord ) ){
00370                         /* ｎ番目のセットにキーワードを追加 */
00371                         if( 0 == m_CKeyWordSetMgr.AddKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, szKeyWord ) ){
00372                             // ダイアログデータの設定 p7 指定キーワードセットの設定
00373                             SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00374                         }
00375                     }
00376                     return TRUE;
00377                 case IDC_BUTTON_EDITKEYWORD:    /* キーワード編集 */
00378                     /* p7:リスト中で選択されているキーワードを編集する */
00379                     p7_Edit_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00380                     return TRUE;
00381                 case IDC_BUTTON_DELKEYWORD: /* キーワード削除 */
00382                     /* p7:リスト中で選択されているキーワードを削除する */
00383                     p7_Delete_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00384                     return TRUE;
00385                 // From Here 2005.01.26 Moca
00386                 case IDC_BUTTON_KEYCLEAN:
00387                     p7_Clean_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00388                     return TRUE;
00389                 // To Here 2005.01.26 Moca
00390                 case IDC_BUTTON_IMPORT: /* インポート */
00391                     /* p7:リスト中のキーワードをインポートする */
00392                     p7_Import_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00393                     return TRUE;
00394                 case IDC_BUTTON_EXPORT: /* エクスポート */
00395                     /* p7:リスト中のキーワードをエクスポートする */
00396                     p7_Export_List_KeyWord( hwndDlg, hwndLIST_KEYWORD );
00397                     return TRUE;
00398                 }
00399                 break;  /* BN_CLICKED */
00400             }
00401         }
00402         break;  /* WM_COMMAND */
00403
00404     case WM_TIMER:
00405         nIndex1 = ListView_GetNextItem( hwndLIST_KEYWORD, -1, LVNI_ALL | LVNI_SELECTED );
00406         if( -1 == nIndex1 ){
00407             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), FALSE );
00408             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), FALSE );
00409         }else{
00410             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), TRUE );
00411             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), TRUE );
00412         }
00413         break;
00414
00415     case WM_DESTROY:
00416         ::KillTimer( hwndDlg, 1 );
00417         break;
00418
00419 //@@@ 2001.02.04 Start by MIK: Popup Help
00420     case WM_HELP:
00421         {
00422             HELPINFO *p = (HELPINFO *)lParam;
00423             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00424         }
00425         return TRUE;
00426         /*NOTREACHED*/
00427         //break;
00428 //@@@ 2001.02.04 End
00429
00430 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00431     //Context Menu
00432     case WM_CONTEXTMENU:
00433         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00434         return TRUE;
00435 //@@@ 2001.12.22 End
00436
00437     }
00438     return FALSE;
00439 }
00440
00441 /* p7:リスト中で選択されているキーワードを編集する */
00442 void CPropCommon::p7_Edit_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00443 {
00444     int         nIndex1;
00445     LV_ITEM     lvi;
00446     char        szKeyWord[MAX_KEYWORDLEN + 1];
00447     CDlgInput1  cDlgInput1;
00448
00449     nIndex1 = ListView_GetNextItem( hwndLIST_KEYWORD, -1, LVNI_ALL | LVNI_SELECTED );
00450     if( -1 == nIndex1 ){
00451         return;
00452     }
00453     lvi.mask = LVIF_PARAM;
00454     lvi.iItem = nIndex1;
00455     lvi.iSubItem = 0;
00456     ListView_GetItem( hwndLIST_KEYWORD, &lvi );
00457
00458     /* ｎ番目のセットのｍ番目のキーワードを返す */
00459     strcpy( szKeyWord, m_CKeyWordSetMgr.GetKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, lvi.lParam ) );
00460
00461     /* モードレスダイアログの表示 */
00462     if( FALSE == cDlgInput1.DoModal( m_hInstance, hwndDlg, "キーワード編集", "キーワードを編集してください。", MAX_KEYWORDLEN, szKeyWord ) ){
00463         return;
00464     }
00465     if( 0 < strlen( szKeyWord ) ){
00466         /* ｎ番目のセットにキーワードを編集 */
00467         m_CKeyWordSetMgr.UpdateKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, lvi.lParam, szKeyWord );
00468     }else{
00469         /* ｎ番目のセットのｍ番目のキーワードを削除 */
00470         m_CKeyWordSetMgr.DelKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, lvi.lParam );
00471     }
00472     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00473     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00474
00475     ListView_SetItemState( hwndLIST_KEYWORD, nIndex1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00476     return;
00477 }
00478
00479
00480
00481 /* p7:リスト中で選択されているキーワードを削除する */
00482 void CPropCommon::p7_Delete_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00483 {
00484     int         nIndex1;
00485     LV_ITEM     lvi;
00486
00487     nIndex1 = ListView_GetNextItem( hwndLIST_KEYWORD, -1, LVNI_ALL | LVNI_SELECTED );
00488     if( -1 == nIndex1 ){
00489         return;
00490     }
00491     lvi.mask = LVIF_PARAM;
00492     lvi.iItem = nIndex1;
00493     lvi.iSubItem = 0;
00494     ListView_GetItem( hwndLIST_KEYWORD, &lvi );
00495     /* ｎ番目のセットのｍ番目のキーワードを削除 */
00496     m_CKeyWordSetMgr.DelKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, lvi.lParam );
00497     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00498     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00499     ListView_SetItemState( hwndLIST_KEYWORD, nIndex1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00500
00501     //キーワード数を表示する。
00502     DispKeywordCount( hwndDlg );
00503
00504     return;
00505 }
00506
00507
00508 /* p7:リスト中のキーワードをインポートする */
00509 void CPropCommon::p7_Import_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00510 {
00511 //  ::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00512 //      "ファイルから単語をインポートする機能は、まだ完成していないのです。\n"
00513 //  );
00514 //  return;
00515
00516
00517     CDlgOpenFile    cDlgOpenFile;
00518     char            szPath[_MAX_PATH + 1];
00519     char            szInitDir[_MAX_PATH + 1];
00520     FILE*           pFile;
00521     char            szLine[1024];
00522     int             i;
00523     bool            bAddError = false;
00524
00525     // 2007.05.19 ryoji 他画面と同じようにインポート用フォルダ設定を使うようにした
00526     strcpy( szPath, "" );
00527     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00528     /* ファイルオープンダイアログの初期化 */
00529     cDlgOpenFile.Create(
00530         m_hInstance,
00531         hwndDlg,
00532         "*.kwd",
00533         szInitDir
00534     );
00535     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00536         return;
00537     }
00538     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00539     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00540 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00541     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00542
00543     pFile = fopen( szPath, "r" );
00544     if( NULL == pFile ){
00545 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00546             "ファイルを開けませんでした。\n\n%s", szPath
00547         );
00548         return;
00549     }
00550     while( NULL != fgets( szLine, sizeof(szLine), pFile ) ){
00551 //      MYTRACE( szLine );
00552         if( 2 < strlen( szLine ) && 0 == memcmp( szLine, "//", 2 )  ){
00553         }else{
00554             if( 0 < (int)strlen( szLine ) ){
00555                 for( i = 0; i < (int)strlen( szLine ); ++i ){
00556                     if( szLine[i] == '\r' || szLine[i] == '\n' ){
00557                         szLine[i] = '\0';
00558                     }
00559                 }
00560             }
00561             if( 0 < (int)strlen( szLine ) ){
00562                 /* ｎ番目のセットにキーワードを追加 */
00563                 int nRetValue = m_CKeyWordSetMgr.AddKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, szLine );
00564                 if( 2 == nRetValue ){
00565                     bAddError = true;
00566                     break;
00567                 }
00568             }
00569         }
00570     }
00571     fclose( pFile );
00572     if( bAddError ){
00573 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00574             "キーワードの数が上限に達したため、いくつかのキーワードを追加できませんでした。"
00575         );
00576     }
00577     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00578     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00579     return;
00580 }
00581
00582
00583 /* p7:リスト中のキーワードをエクスポートする */
00584 void CPropCommon::p7_Export_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00585 {
00586 //  ::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00587 //      "単語をファイルへエクスポートする機能は、まだ完成していないのです。\n"
00588 //  );
00589     CDlgOpenFile    cDlgOpenFile;
00590     char            szPath[_MAX_PATH + 1];
00591     char            szInitDir[_MAX_PATH + 1];
00592     FILE*           pFile;
00593 //  char            szLine[1024];
00594     int             i;
00595     int             nKeyWordNum;
00596
00597     // 2007.05.19 ryoji 他画面と同じようにインポート用フォルダ設定を使うようにした
00598     strcpy( szPath, "" );
00599     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00600     /* ファイルオープンダイアログの初期化 */
00601     cDlgOpenFile.Create(
00602         m_hInstance,
00603         hwndDlg,
00604         "*.kwd",
00605         szInitDir
00606     );
00607     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00608         return;
00609     }
00610 //  MYTRACE( "%s\n", szPath );
00611     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00612     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00613 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00614     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00615
00616     pFile = fopen( szPath, "w" );
00617     if( NULL == pFile ){
00618 		::MYMESSAGEBOX(   hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00619             "ファイルを開けませんでした。\n\n%s", szPath
00620         );
00621         return;
00622     }
00623     fputs( "// ", pFile );
00624     fputs( m_CKeyWordSetMgr.GetTypeName( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ), pFile );
00625     fputs( "  キーワード定義ファイル", pFile );
00626     fputs( "\n", pFile );
00627     fputs( "\n", pFile );
00628
00629     m_CKeyWordSetMgr.SortKeyWord(m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx); //MIK 2000.12.01 sort keyword
00630
00631     /* ｎ番目のセットのキーワードの数を返す */
00632     nKeyWordNum = m_CKeyWordSetMgr.GetKeyWordNum( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00633     for( i = 0; i < nKeyWordNum; ++i ){
00634         /* ｎ番目のセットのｍ番目のキーワードを返す */
00635         m_CKeyWordSetMgr.GetKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, i );
00636         fputs( m_CKeyWordSetMgr.GetKeyWord( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, i ), pFile );
00637         fputs( "\n", pFile );
00638     }
00639     fclose( pFile );
00640     /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00641     SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00642
00643 	::MYMESSAGEBOX(    hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00644         "ファイルへエクスポートしました。\n\n%s", szPath
00645     );
00646
00647     return;
00648 }
00649
00650
00652 void CPropCommon::p7_Clean_List_KeyWord( HWND hwndDlg, HWND hwndLIST_KEYWORD )
00653 {
00654     if( IDYES == ::MessageBox( hwndDlg, "現在の設定では強調キーワードとして表示できないキーワードを削除しますか？",
00655             GSTR_APPNAME, MB_YESNO | MB_ICONSTOP ) ){
00656         if( m_CKeyWordSetMgr.CleanKeyWords( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx ) ){
00657         }
00658         SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00659     }
00660 }
00661
00662 /* ダイアログデータの設定 p7 */
00663 void CPropCommon::SetData_p7( HWND hwndDlg )
00664 {
00665     int     i;
00666 //  LV_ITEM lvi;
00667     HWND    hwndWork;
00668 //  int     nIdx;
00669 //  char*   pszWork;
00670
00671
00672     /* セット名コンボボックスの値セット */
00673     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
00674     ::SendMessage( hwndWork, CB_RESETCONTENT, 0, 0 );  /* コンボボックスを空にする */
00675     if( 0 < m_CKeyWordSetMgr.m_nKeyWordSetNum ){
00676         for( i = 0; i < m_CKeyWordSetMgr.m_nKeyWordSetNum; ++i ){
00677             ::SendMessage( hwndWork, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)m_CKeyWordSetMgr.GetTypeName( i ) );
00678         }
00679         /* セット名コンボボックスのデフォルト選択 */
00680         ::SendMessage( hwndWork, CB_SETCURSEL, (WPARAM)m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx, 0 );
00681
00682         /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00683         SetData_p7_KeyWordSet( hwndDlg, m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00684     }else{
00685         /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00686         SetData_p7_KeyWordSet( hwndDlg, -1 );
00687     }
00688
00689     return;
00690 }
00691
00692
00693 /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00694 void CPropCommon::SetData_p7_KeyWordSet( HWND hwndDlg, int nIdx )
00695 {
00696     int     i;
00697     int     nNum;
00698     char*   pszKeyWord;
00699     HWND    hwndList;
00700     LV_ITEM lvi;
00701
00702     ListView_DeleteAllItems( ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD ) );
00703     if( 0 <= nIdx ){
00704         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELSET ), TRUE );
00705         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_KEYWORDCASE ), TRUE );
00706         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD ), TRUE );
00707         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADDKEYWORD ), TRUE );
00708         //  Jan. 29, 2005 genta キーワードセット切り替え直後はキーワードは未選択
00709         //  そのため有効にしてすぐにタイマーで無効になる．
00710         //  なのでここで無効にしておく．
00711         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), FALSE );
00712         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), FALSE );
00713         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_IMPORT ), TRUE );
00714         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EXPORT ), TRUE );
00715     }else{
00716         ::CheckDlgButton( hwndDlg, IDC_CHECK_KEYWORDCASE, FALSE );
00717
00718         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELSET ), FALSE );
00719         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_KEYWORDCASE ), FALSE );
00720         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD ), FALSE );
00721         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADDKEYWORD ), FALSE );
00722         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EDITKEYWORD ), FALSE );
00723         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELKEYWORD ), FALSE );
00724         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_IMPORT ), FALSE );
00725         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_EXPORT ), FALSE );
00726         return;
00727     }
00728
00729     /* キーワードの英大文字小文字区別 */
00730 //  if( TRUE == m_CKeyWordSetMgr.m_ppcKeyWordSetArr[nIdx]->m_nKEYWORDCASE ){
00731 //  if( TRUE == m_CKeyWordSetMgr.m_cKeyWordSetArr[nIdx].m_nKEYWORDCASE ){
00732 //  if( TRUE == m_CKeyWordSetMgr.m_nKEYWORDCASEArr[nIdx] ){     //MIK 2000.12.01 case sense
00733     if( TRUE == m_CKeyWordSetMgr.GetKeyWordCase(nIdx) ){        //MIK 2000.12.01 case sense
00734         ::CheckDlgButton( hwndDlg, IDC_CHECK_KEYWORDCASE, TRUE );
00735     }else{
00736         ::CheckDlgButton( hwndDlg, IDC_CHECK_KEYWORDCASE, FALSE );
00737     }
00738
00739     /* ｎ番目のセットのキーワードの数を返す */
00740     nNum = m_CKeyWordSetMgr.GetKeyWordNum( nIdx );
00741     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD );
00742
00743     // 2005.01.25 Moca/genta リスト追加中は再描画を抑制してすばやく表示
00744     ::SendMessage( hwndList, WM_SETREDRAW, FALSE, 0 );
00745
00746     for( i = 0; i < nNum; ++i ){
00747         /* ｎ番目のセットのｍ番目のキーワードを返す */
00748         pszKeyWord =  const_cast<char*>(m_CKeyWordSetMgr.GetKeyWord( nIdx, i ));
00749
00750         lvi.mask = LVIF_TEXT | LVIF_PARAM;
00751         lvi.pszText = pszKeyWord;
00752         lvi.iItem = i;
00753         lvi.iSubItem = 0;
00754         lvi.lParam  = i;
00755         ListView_InsertItem( hwndList, &lvi );
00756
00757     }
00758     m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx = nIdx;
00759
00760     // 2005.01.25 Moca/genta リスト追加完了のため再描画許可
00761     ::SendMessage( hwndList, WM_SETREDRAW, TRUE, 0 );
00762
00763     //キーワード数を表示する。
00764     DispKeywordCount( hwndDlg );
00765
00766     return;
00767 }
00768
00769
00770
00771 /* ダイアログデータの取得 p7 */
00772 int CPropCommon::GetData_p7( HWND hwndDlg )
00773 {
00774 //  HWND    hwndResList;
00775 //  int     i;
00776 //  int     j;
00777 //  int     k;
00778
00779 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00780 //  m_nPageNum = ID_PAGENUM_KEYWORD;
00781
00782
00783     return TRUE;
00784 }
00785
00786 /* ダイアログデータの取得 p7 指定キーワードセットの取得 */
00787 void CPropCommon::GetData_p7_KeyWordSet( HWND hwndDlg, int nIdx )
00788 {
00789 }
00790
00791 //キーワード数を表示する。
00792 void CPropCommon::DispKeywordCount( HWND hwndDlg )
00793 {
00794     HWND    hwndList;
00795     int     n;
00796     TCHAR szCount[ 256 ];
00797
00798     hwndList = ::GetDlgItem( hwndDlg, IDC_LIST_KEYWORD );
00799     n = ListView_GetItemCount( hwndList );
00800     if( n < 0 ) n = 0;
00801
00802     int     nAlloc;
00803     nAlloc = m_CKeyWordSetMgr.GetAllocSize( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00804     nAlloc -= m_CKeyWordSetMgr.GetKeyWordNum( m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx );
00805     nAlloc += m_CKeyWordSetMgr.GetFreeSize();
00806
00807     wsprintf( szCount, _T("(最大 %d 文字, 登録数 %d, 空き %d 個)"), MAX_KEYWORDLEN, n, nAlloc );
00808     ::SetWindowText( ::GetDlgItem( hwndDlg, IDC_STATIC_KEYWORD_COUNT ), szCount );
00809 }
00810
00811 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComMacro.cpp

CPropComMacro.cpp

#include "stdafx.h"
#include "CPropCommon.h"
#include <memory.h>
#include <stdlib.h>
#include "etc_uty.h"
#include "sakura.hh"

CPropComMacro.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []
Popup Help用ID

説明

共通設定ダイアログボックス、「マクロ」ページ

作者:
genta
日付:
Jun. 2, 2001 genta

CPropComMacro.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_MACRODIRREF,    HIDC_MACRODIRREF,
    IDC_MACRO_REG,      HIDC_MACRO_REG,
    IDC_COMBO_MACROID,  HIDC_COMBO_MACROID,
    IDC_MACROPATH,      HIDC_MACROPATH,
    IDC_MACRONAME,      HIDC_MACRONAME,
    IDC_MACROLIST,      HIDC_MACROLIST,
    IDC_MACRODIR,       HIDC_MACRODIR,
    IDC_CHECK_RELOADWHENEXECUTE,    HIDC_CHECK_RELOADWHENEXECUTE,

    0, 0
}
Popup Help用ID

CPropComMacro.cpp の 47 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:06 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComMacro.cpp ソースファイル

CPropComMacro.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2001, genta, MIK
00009     Copyright (C) 2002, YAZAKI, MIK, genta, novice
00010     Copyright (C) 2003, Moca, KEITA
00011     Copyright (C) 2006, ryoji
00012     Copyright (C) 2007, ryoji
00013
00014     This software is provided 'as-is', without any express or implied
00015     warranty. In no event will the authors be held liable for any damages
00016     arising from the use of this software.
00017
00018     Permission is granted to anyone to use this software for any purpose,
00019     including commercial applications, and to alter it and redistribute it
00020     freely, subject to the following restrictions:
00021
00022         1. The origin of this software must not be misrepresented;
00023            you must not claim that you wrote the original software.
00024            If you use this software in a product, an acknowledgment
00025            in the product documentation would be appreciated but is
00026            not required.
00027
00028         2. Altered source versions must be plainly marked as such,
00029            and must not be misrepresented as being the original software.
00030
00031         3. This notice may not be removed or altered from any source
00032            distribution.
00033 */
00034
00035
00036 #include "stdafx.h"
00037 #include "CPropCommon.h"
00038 #include <memory.h>
00039 #include <stdlib.h>
00040 // #include <Shlobj.h>
00041 #include "etc_uty.h" // 2002/04/14 novice
00042
00044 //@@@ 2001.12.22 Start by MIK: Popup Help
00045 #if 1   //@@@ 2002.01.03 add MIK
00046 #include "sakura.hh"
00047 static const DWORD p_helpids[] = {  //11700
00048     IDC_MACRODIRREF,    HIDC_MACRODIRREF,   //マクロディレクトリ参照
00049     IDC_MACRO_REG,      HIDC_MACRO_REG,     //マクロ設定
00050     IDC_COMBO_MACROID,  HIDC_COMBO_MACROID, //ID
00051     IDC_MACROPATH,      HIDC_MACROPATH,     //File
00052     IDC_MACRONAME,      HIDC_MACRONAME,     //マクロ名
00053     IDC_MACROLIST,      HIDC_MACROLIST,     //マクロリスト
00054     IDC_MACRODIR,       HIDC_MACRODIR,      //マクロ一覧
00055     IDC_CHECK_RELOADWHENEXECUTE,    HIDC_CHECK_RELOADWHENEXECUTE,   //マクロを実行するたびにファイルを読み込みなおす    // 2006.08.06 ryoji
00056 //  IDC_STATIC,         -1,
00057     0, 0
00058 };
00059 #else
00060 static const DWORD p_helpids[] = {  //11700
00061     IDC_MACRODIRREF,    11700,  //参照
00062     IDC_MACRO_REG,      11701,  //設定
00063     IDC_COMBO_MACROID,  11730,  //ID
00064     IDC_MACROPATH,      11731,  //パス
00065     IDC_MACRONAME,      11740,  //マクロ名
00066     IDC_MACROLIST,      11741,  //リスト
00067     IDC_MACRODIR,       11750,  //マクロ一覧
00068 //  IDC_STATIC,         -1,
00069     0, 0
00070 };
00071 #endif
00072 //@@@ 2001.12.22 End
00073
00080 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_MACRO(
00081     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00082 {
00083     return DlgProc(&CPropCommon::DispatchEvent_PROP_Macro, hwndDlg, uMsg, wParam, lParam );
00084 }
00085
00092 INT_PTR CPropCommon::DispatchEvent_PROP_Macro( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00093 {
00094     NMHDR*      pNMHDR;
00095     NM_UPDOWN*  pMNUD;
00096     int         idCtrl;
00097
00098     WORD        wNotifyCode;
00099     WORD        wID;
00100     HWND        hwndCtl;
00101
00102     switch( uMsg ){
00103
00104     case WM_INITDIALOG:
00105         /* ダイアログデータの設定 p1 */
00106         InitDialog_PROP_Macro( hwndDlg );
00107         SetData_PROP_Macro( hwndDlg );
00108         // Modified by KEITA for WIN64 2003.9.6
00109 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00110
00111         //  Oct. 5, 2002 genta エディット コントロールに入力できるテキストの長さを制限する
00112         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_MACRONAME ),  EM_LIMITTEXT, (WPARAM)( sizeof( m_MacroTable[0].m_szName ) - 1 ), 0 );
00113         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_MACROPATH ),  EM_LIMITTEXT, (WPARAM)( sizeof( m_MacroTable[0].m_szFile ) - 1 ), 0 );
00114         // 2003.06.23 Moca
00115         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_MACRODIR ),  EM_LIMITTEXT, (WPARAM)( sizeof(m_szMACROFOLDER ) - 1 ), 0 );
00116
00117         return TRUE;
00118     case WM_NOTIFY:
00119         idCtrl = (int)wParam;
00120         pNMHDR = (NMHDR*)lParam;
00121         pMNUD  = (NM_UPDOWN*)lParam;
00122         switch( idCtrl ){
00123         case IDC_MACROLIST:
00124             switch( pNMHDR->code ){
00125             case LVN_ITEMCHANGED:
00126                 CheckListPosition_Macro( hwndDlg );
00127                 break;
00128             }
00129             break;
00130         default:
00131             switch( pNMHDR->code ){
00132             case PSN_HELP:
00133                 OnHelp( hwndDlg, IDD_PROP_MACRO );
00134                 return TRUE;
00135             case PSN_KILLACTIVE:
00136                 /* ダイアログデータの取得 p1 */
00137                 GetData_PROP_Macro( hwndDlg );
00138                 return TRUE;
00139 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00140             case PSN_SETACTIVE:
00141                 m_nPageNum = ID_PAGENUM_MACRO;
00142                 return TRUE;
00143             }
00144             break;
00145         }
00146         break;
00147
00148     case WM_COMMAND:
00149         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00150         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00151         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00152
00153         switch( wNotifyCode ){
00154         /* ボタン／チェックボックスがクリックされた */
00155         case BN_CLICKED:
00156             switch( wID ){
00157             case IDC_MACRODIRREF:   // マクロディレクトリ参照
00158                 SelectBaseDir_Macro( hwndDlg );
00159                 break;
00160             case IDC_MACRO_REG:     // マクロ設定
00161                 SetMacro2List_Macro( hwndDlg );
00162                 break;
00163             }
00164             break;
00165         case CBN_DROPDOWN:
00166             switch( wID ){
00167             case IDC_MACROPATH:
00168                 OnFileDropdown_Macro( hwndDlg );
00169                 break;
00170             }
00171             break;  /* CBN_DROPDOWN */
00172         // From Here 2003.06.23 Moca マクロフォルダの最後の\がなければ付ける
00173         case EN_KILLFOCUS:
00174             switch( wID ){
00175             case IDC_MACRODIR:
00176                 {
00177                     TCHAR szDir[_MAX_PATH];
00178                     ::GetDlgItemText( hwndDlg, IDC_MACRODIR, szDir, _MAX_PATH );
00179                     if( 1 == AddLastChar( szDir, _MAX_PATH, '\\' ) ){
00180                         ::SetDlgItemText( hwndDlg, IDC_MACRODIR, szDir );
00181                     }
00182                 }
00183                 break;
00184             }
00185             break;
00186         // To Here 2003.06.23 Moca
00187         }
00188
00189         break;  /* WM_COMMAND */
00190 //@@@ 2001.02.04 Start by MIK: Popup Help
00191     case WM_HELP:
00192         {
00193             HELPINFO *p = (HELPINFO *)lParam;
00194             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00195         }
00196         return TRUE;
00197         /*NOTREACHED*/
00198         //break;
00199 //@@@ 2001.02.04 End
00200
00201 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00202     //Context Menu
00203     case WM_CONTEXTMENU:
00204         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00205         return TRUE;
00206 //@@@ 2001.12.22 End
00207
00208     }
00209     return FALSE;
00210 }
00211
00212
00218 void CPropCommon::SetData_PROP_Macro( HWND hwndDlg )
00219 {
00220     int index;
00221     LVITEM sItem;
00222
00223     //  マクロデータ
00224     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00225
00226     for( index = 0; index < MAX_CUSTMACRO; ++index ){
00227         memset( &sItem, 0, sizeof( sItem ));
00228         sItem.iItem = index;
00229         sItem.mask = LVIF_TEXT;
00230         sItem.iSubItem = 1;
00231         sItem.pszText = m_pShareData->m_MacroTable[index].m_szName;
00232         ListView_SetItem( hListView, &sItem );
00233
00234         memset( &sItem, 0, sizeof( sItem ));
00235         sItem.iItem = index;
00236         sItem.mask = LVIF_TEXT;
00237         sItem.iSubItem = 2;
00238         sItem.pszText = m_pShareData->m_MacroTable[index].m_szFile;
00239         ListView_SetItem( hListView, &sItem );
00240
00241         memset( &sItem, 0, sizeof( sItem ));
00242         sItem.iItem = index;
00243         sItem.mask = LVIF_TEXT;
00244         sItem.iSubItem = 3;
00245         sItem.pszText = m_pShareData->m_MacroTable[index].m_bReloadWhenExecute ? "on" : "off";
00246         ListView_SetItem( hListView, &sItem );
00247     }
00248
00249     //  マクロディレクトリ
00250     ::SetDlgItemText( hwndDlg, IDC_MACRODIR, /*m_pShareData->*/m_szMACROFOLDER );
00251
00252     nLastPos_Macro = -1;
00253
00254     //  リストビューの行選択を可能にする．
00255     //  IE 3.x以降が入っている場合のみ動作する．
00256     //  これが無くても，番号部分しか選択できないだけで操作自体は可能．
00257     DWORD dwStyle;
00258     dwStyle = ListView_GetExtendedListViewStyle( hListView );
00259     dwStyle |= LVS_EX_FULLROWSELECT;
00260     ListView_SetExtendedListViewStyle( hListView, dwStyle );
00261
00262     return;
00263 }
00264
00271 int CPropCommon::GetData_PROP_Macro( HWND hwndDlg )
00272 {
00273 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00274 //  m_nPageNum = ID_PAGENUM_MACRO;
00275
00276     int index;
00277     LVITEM sItem;
00278
00279     //  マクロデータ
00280     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00281
00282     for( index = 0; index < MAX_CUSTMACRO; ++index ){
00283         memset( &sItem, 0, sizeof( sItem ));
00284         sItem.iItem = index;
00285         sItem.mask = LVIF_TEXT;
00286         sItem.iSubItem = 1;
00287         sItem.cchTextMax = MACRONAME_MAX - 1;
00288 //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00289         sItem.pszText = /*m_pShareData->*/m_MacroTable[index].m_szName;
00290         ListView_GetItem( hListView, &sItem );
00291
00292         memset( &sItem, 0, sizeof( sItem ));
00293         sItem.iItem = index;
00294         sItem.mask = LVIF_TEXT;
00295         sItem.iSubItem = 2;
00296         sItem.cchTextMax = _MAX_PATH;
00297 //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00298         sItem.pszText = /*m_pShareData->*/m_MacroTable[index].m_szFile;
00299         ListView_GetItem( hListView, &sItem );
00300
00301         memset( &sItem, 0, sizeof( sItem ));
00302         sItem.iItem = index;
00303         sItem.mask = LVIF_TEXT;
00304         sItem.iSubItem = 3;
00305         char buf[MAX_PATH];
00306         sItem.pszText = buf;
00307         sItem.cchTextMax = MAX_PATH;
00308         ListView_GetItem( hListView, &sItem );
00309         if ( strcmp(buf, "on") == 0){
00310             m_MacroTable[index].m_bReloadWhenExecute = TRUE;
00311         }
00312         else {
00313             m_MacroTable[index].m_bReloadWhenExecute = FALSE;
00314         }
00315     }
00316
00317     //  マクロディレクトリ
00318 //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00319     ::GetDlgItemText( hwndDlg, IDC_MACRODIR, /*m_pShareData->*/m_szMACROFOLDER, _MAX_PATH );
00320     // 2003.06.23 Moca マクロフォルダの最後の\がなければ付ける
00321     AddLastChar( m_szMACROFOLDER, _MAX_PATH, '\\' );
00322
00323     return TRUE;
00324 }
00325
00326 void CPropCommon::InitDialog_PROP_Macro( HWND hwndDlg )
00327 {
00328     struct ColumnData {
00329         char *title;
00330         int width;
00331     } ColumnList[] = {
00332         { "番号", 40 },
00333         { "マクロ名", 180 },
00334         { "ファイル名", 180 },
00335         { "実行時に読み込み", 40 },
00336     };
00337
00338     //  ListViewの初期化
00339     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00340     if( hListView == NULL ){
00341         ::MessageBox( hwndDlg, "PropComMacro::InitDlg::NoListView", "バグ報告お願い", MB_OK );
00342         return; //  よくわからんけど失敗した
00343     }
00344
00345     LVCOLUMN sColumn;
00346     int pos;
00347
00348     for( pos = 0; pos < sizeof( ColumnList ) / sizeof( ColumnList[0] ); ++pos ){
00349
00350         memset( &sColumn, 0, sizeof( sColumn ));
00351         sColumn.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_FMT;
00352         sColumn.pszText = ColumnList[pos].title;
00353         sColumn.cx = ColumnList[pos].width;
00354         sColumn.iSubItem = pos;
00355         sColumn.fmt = LVCFMT_LEFT;
00356
00357         if( ListView_InsertColumn( hListView, pos, &sColumn ) < 0 ){
00358             ::MessageBox( hwndDlg, "PropComMacro::InitDlg::ColumnRegistrationFail", "バグ報告お願い", MB_OK );
00359             return; //  よくわからんけど失敗した
00360         }
00361     }
00362
00363     //  メモリの確保
00364     //  必要な数だけ先に確保する．
00365     ListView_SetItemCount( hListView, MAX_CUSTMACRO );
00366
00367     //  Index部分の登録
00368     for( pos = 0; pos < MAX_CUSTMACRO ; ++pos ){
00369         LVITEM sItem;
00370         char buf[4];
00371         memset( &sItem, 0, sizeof( sItem ));
00372         sItem.mask = LVIF_TEXT | LVIF_PARAM;
00373         sItem.iItem = pos;
00374         sItem.iSubItem = 0;
00375         itoa( pos, buf, 10 );
00376         sItem.pszText = buf;
00377         sItem.lParam = pos;
00378         ListView_InsertItem( hListView, &sItem );
00379     }
00380
00381     // 登録先指定 ComboBoxの初期化
00382     HWND hNumCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_MACROID );
00383     for( pos = 0; pos < MAX_CUSTMACRO ; ++pos ){
00384         char buf[10];
00385         wsprintf( buf, "%d", pos );
00386         int result = ::SendMessage( hNumCombo, CB_ADDSTRING, (WPARAM)0, (LPARAM)buf );
00387         if( result == CB_ERR ){
00388             ::MessageBox( hwndDlg, "PropComMacro::InitDlg::AddMacroId", "バグ報告お願い", MB_OK );
00389             return; //  よくわからんけど失敗した
00390         }
00391         else if( result == CB_ERRSPACE ){
00392             ::MessageBox( hwndDlg, "PropComMacro::InitDlg::AddMacroId/InsufficientSpace",
00393                 "バグ報告お願い", MB_OK );
00394             return; //  よくわからんけど失敗した
00395         }
00396     }
00397     ::SendMessage( hNumCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 );
00398 }
00399
00400 void CPropCommon::SetMacro2List_Macro( HWND hwndDlg )
00401 {
00402     int index;
00403     LVITEM sItem;
00404     char buf[256];
00405
00406     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00407     HWND hNum = ::GetDlgItem( hwndDlg, IDC_COMBO_MACROID );
00408
00409     //  設定先取得
00410     index = ::SendMessage( hNum, CB_GETCURSEL, 0, 0 );
00411     if( index == CB_ERR ){
00412         ::MessageBox( hwndDlg, "PropComMacro::SetMacro2List::GetCurSel",
00413             "バグ報告お願い", MB_OK );
00414         return; //  よくわからんけど失敗した
00415     }
00416
00417     // マクロ名
00418     memset( &sItem, 0, sizeof( sItem ));
00419     sItem.iItem = index;
00420     sItem.mask = LVIF_TEXT;
00421     sItem.iSubItem = 1;
00422
00423     ::GetDlgItemText( hwndDlg, IDC_MACRONAME, buf, MACRONAME_MAX );
00424     sItem.pszText = buf;
00425     ListView_SetItem( hListView, &sItem );
00426
00427     // ファイル名
00428     memset( &sItem, 0, sizeof( sItem ));
00429     sItem.iItem = index;
00430     sItem.mask = LVIF_TEXT;
00431     sItem.iSubItem = 2;
00432
00433     ::GetDlgItemText( hwndDlg, IDC_MACROPATH, buf, _MAX_PATH );
00434     sItem.pszText = buf;
00435     ListView_SetItem( hListView, &sItem );
00436
00437     // チェック
00438     memset( &sItem, 0, sizeof( sItem ));
00439     sItem.iItem = index;
00440     sItem.mask = LVIF_TEXT;
00441     sItem.iSubItem = 3;
00442     sItem.pszText = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RELOADWHENEXECUTE ) ? "on" : "off";
00443     ListView_SetItem( hListView, &sItem );
00444 }
00445
00451 void CPropCommon::SelectBaseDir_Macro( HWND hwndDlg )
00452 {
00453
00454 // 2002/04/14 novice
00455 //  SelectDir()に分離された部分を削除
00456     TCHAR szDir[MAX_PATH + 1]; // 追加する\\用に1足した
00457
00458     /* 検索フォルダ */
00459     ::GetDlgItemText( hwndDlg, IDC_MACRODIR, szDir, _MAX_PATH );
00460
00461     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00462     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00463     if( _IS_REL_PATH( szDir ) ){
00464         char folder[_MAX_PATH];
00465         strcpy( folder, szDir );
00466         GetInidirOrExedir( szDir, folder );
00467     }
00468
00469     if( SelectDir( hwndDlg, "Macroディレクトリの選択", szDir, szDir ) ){
00470         //  末尾に\\マークを追加する．
00471         AddLastChar( szDir, _MAX_PATH, '\\' );
00472         ::SetDlgItemText( hwndDlg, IDC_MACRODIR, szDir );
00473     }
00474 }
00475
00476 // 2002/04/14 novice
00477 #if 0
00478
00489 int CALLBACK CPropCommon::DirCallback_Macro( HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData )
00490 {
00491     if( uMsg == BFFM_INITIALIZED ){ //  初期化完了
00492         ::SendMessage( hwnd, BFFM_SETSELECTION, TRUE, lpData);
00493     }
00494     return 0;
00495 }
00496 #endif
00497
00504 void CPropCommon::OnFileDropdown_Macro( HWND hwndDlg )
00505 {
00506     char path[_MAX_PATH * 2 ];
00507     WIN32_FIND_DATA wf;
00508     HANDLE hFind;
00509     HWND hCombo = ::GetDlgItem( hwndDlg, IDC_MACROPATH );
00510
00511     ::GetDlgItemText( hwndDlg, IDC_MACRODIR, path, _MAX_PATH );
00512
00513     // 2003.06.23 Moca 相対パスは実行ファイルからのパス
00514     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00515     if( _IS_REL_PATH( path ) ){
00516         char folder[_MAX_PATH];
00517         strcpy( folder, path );
00518         GetInidirOrExedir( path, folder );
00519     }
00520     strcat( path, "*.*" );  //  2002/05/01 YAZAKI どんなファイルもどんと来い。
00521
00522     //  候補の初期化
00523     ::SendMessage( hCombo, CB_RESETCONTENT, (WPARAM)0, (LPARAM)0 );
00524
00525     //  ファイルの検索
00526     hFind = FindFirstFile(path, &wf);
00527
00528     if (hFind == INVALID_HANDLE_VALUE) {
00529         return;
00530     }
00531
00532     do {
00533         //  コンボボックスに設定
00534         //  でも.と..は勘弁。
00535         if (strcmp( wf.cFileName, "." ) != 0 && strcmp( wf.cFileName, ".." ) != 0){
00536             int result = ::SendMessage( hCombo, CB_ADDSTRING, (WPARAM)0, (LPARAM)wf.cFileName );
00537             if( result == CB_ERR || result == CB_ERRSPACE )
00538                 break;
00539         }
00540     } while( FindNextFile( hFind, &wf ));
00541
00542     FindClose(hFind);
00543 }
00544
00545 void CPropCommon::CheckListPosition_Macro( HWND hwndDlg )
00546 {
00547     HWND hListView = ::GetDlgItem( hwndDlg, IDC_MACROLIST );
00548     HWND hNum = ::GetDlgItem( hwndDlg, IDC_COMBO_MACROID );
00549
00550     //  現在のFocus取得
00551     int current = ListView_GetNextItem( hListView, -1, LVNI_SELECTED);
00552
00553     if( current == -1 || current == nLastPos_Macro )
00554         return;
00555
00556     nLastPos_Macro = current;
00557
00558     //  初期値の設定
00559     ::SendMessage( hNum, CB_SETCURSEL, nLastPos_Macro, 0 );
00560
00561     char buf[MAX_PATH + MACRONAME_MAX]; // MAX_PATHとMACRONAME_MAXの両方より大きい値
00562     LVITEM sItem;
00563
00564     memset( &sItem, 0, sizeof( sItem ));
00565     sItem.iItem = current;
00566     sItem.mask = LVIF_TEXT;
00567     sItem.iSubItem = 1;
00568     sItem.pszText = buf;
00569     sItem.cchTextMax = MACRONAME_MAX;
00570
00571     ListView_GetItem( hListView, &sItem );
00572     ::SetDlgItemText( hwndDlg, IDC_MACRONAME, buf );
00573
00574     memset( &sItem, 0, sizeof( sItem ));
00575     sItem.iItem = current;
00576     sItem.mask = LVIF_TEXT;
00577     sItem.iSubItem = 2;
00578     sItem.pszText = buf;
00579     sItem.cchTextMax = MAX_PATH;
00580
00581     ListView_GetItem( hListView, &sItem );
00582     ::SetDlgItemText( hwndDlg, IDC_MACROPATH, buf );
00583
00584     memset( &sItem, 0, sizeof( sItem ));
00585     sItem.iItem = current;
00586     sItem.mask = LVIF_TEXT;
00587     sItem.iSubItem = 3;
00588     sItem.pszText = buf;
00589     sItem.cchTextMax = MAX_PATH;
00590     ListView_GetItem( hListView, &sItem );
00591     if ( strcmp(buf, "on") == 0){
00592         ::CheckDlgButton( hwndDlg, IDC_CHECK_RELOADWHENEXECUTE, true );
00593     }
00594     else {
00595         ::CheckDlgButton( hwndDlg, IDC_CHECK_RELOADWHENEXECUTE, false );
00596     }
00597 }
00598
00599
00600 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropCommon.cpp

CPropCommon.cpp

共通設定ダイアログボックス、「全般」ページ [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CPropCommon.h"
#include "debug.h"
#include <windows.h>
#include <commctrl.h>
#include "CDlgOpenFile.h"
#include "etc_uty.h"
#include "global.h"
#include "CDlgInput1.h"
#include "CDlgDebug.h"
#include "CSplitBoxWnd.h"
#include "CMenuDrawer.h"
#include "funccode.h"
#include "sakura.hh"

CPropCommon.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | ComPropSheetInfo

変数

static const DWORD | p_helpids []

説明

共通設定ダイアログボックス、「全般」ページ

作者:
Norio Nakatani
日付:
1998/12/24 新規作成

CPropCommon.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_CLEAR_MRU_FILE,      HIDC_BUTTON_CLEAR_MRU_FILE,
    IDC_BUTTON_CLEAR_MRU_FOLDER,    HIDC_BUTTON_CLEAR_MRU_FOLDER,
    IDC_CHECK_FREECARET,            HIDC_CHECK_FREECARET,

    IDC_CHECK_USETRAYICON,          HIDC_CHECK_USETRAYICON,
    IDC_CHECK_STAYTASKTRAY,         HIDC_CHECK_STAYTASKTRAY,
    IDC_CHECK_REPEATEDSCROLLSMOOTH, HIDC_CHECK_REPEATEDSCROLLSMOOTH,
    IDC_CHECK_CLOSEALLCONFIRM,      HIDC_CHECK_CLOSEALLCONFIRM,
    IDC_CHECK_EXITCONFIRM,          HIDC_CHECK_EXITCONFIRM,
    IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD, HIDC_CHECK_STOPS_WORD,
    IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH, HIDC_CHECK_STOPS_PARAGRAPH,
    IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE,
    IDC_HOTKEY_TRAYMENU,            HIDC_HOTKEY_TRAYMENU,
    IDC_EDIT_REPEATEDSCROLLLINENUM, HIDC_EDIT_REPEATEDSCROLLLINENUM,
    IDC_EDIT_MAX_MRU_FILE,          HIDC_EDIT_MAX_MRU_FILE,
    IDC_EDIT_MAX_MRU_FOLDER,        HIDC_EDIT_MAX_MRU_FOLDER,
    IDC_RADIO_CARETTYPE0,           HIDC_RADIO_CARETTYPE0,
    IDC_RADIO_CARETTYPE1,           HIDC_RADIO_CARETTYPE1,
    IDC_SPIN_REPEATEDSCROLLLINENUM, HIDC_EDIT_REPEATEDSCROLLLINENUM,
    IDC_SPIN_MAX_MRU_FILE,          HIDC_EDIT_MAX_MRU_FILE,
    IDC_SPIN_MAX_MRU_FOLDER,        HIDC_EDIT_MAX_MRU_FOLDER,

    0, 0
}

CPropCommon.cpp の 38 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:07 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropCommon.cpp ソースファイル

CPropCommon.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2002, Norio Nakatani
00009     Copyright (C) 2000-2001, jepro
00010     Copyright (C) 2001, genta, MIK, hor, Stonee, YAZAKI
00011     Copyright (C) 2002, YAZAKI, aroka, MIK, Moca, こおり
00012     Copyright (C) 2003, MIK, KEITA
00013     Copyright (C) 2006, ryoji
00014     Copyright (C) 2007, genta, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holders to use this code for other purpose.
00018 */
00019
00020 #include "stdafx.h"
00021 #include "sakura_rc.h"
00022 #include "CPropCommon.h"
00023 #include "debug.h"
00024 #include <windows.h>
00025 #include <commctrl.h>
00026 #include "CDlgOpenFile.h"
00027 #include "etc_uty.h"
00028 #include "global.h"
00029 #include "CDlgInput1.h"
00030 #include "CDlgDebug.h"
00031 #include "CSplitBoxWnd.h"
00032 #include "CMenuDrawer.h"
00033 #include "funccode.h"   //Stonee, 2001/05/18
00034
00035 //@@@ 2001.02.04 Start by MIK: Popup Help
00036 #if 1   //@@@ 2002.01.03 add MIK
00037 #include "sakura.hh"
00038 static const DWORD p_helpids[] = {  //10900
00039     IDC_BUTTON_CLEAR_MRU_FILE,      HIDC_BUTTON_CLEAR_MRU_FILE,         //履歴をクリア（ファイル）
00040     IDC_BUTTON_CLEAR_MRU_FOLDER,    HIDC_BUTTON_CLEAR_MRU_FOLDER,       //履歴をクリア（フォルダ）
00041     IDC_CHECK_FREECARET,            HIDC_CHECK_FREECARET,               //フリーカーソル
00042 //DEL   IDC_CHECK_INDENT,               HIDC_CHECK_INDENT,                  //自動インデント ：タイプ別へ移動
00043 //DEL   IDC_CHECK_INDENT_WSPACE,        HIDC_CHECK_INDENT_WSPACE,           //全角空白もインデント ：タイプ別へ移動
00044     IDC_CHECK_USETRAYICON,          HIDC_CHECK_USETRAYICON,             //タスクトレイを使う
00045     IDC_CHECK_STAYTASKTRAY,         HIDC_CHECK_STAYTASKTRAY,            //タスクトレイに常駐
00046     IDC_CHECK_REPEATEDSCROLLSMOOTH, HIDC_CHECK_REPEATEDSCROLLSMOOTH,    //少し滑らかにする
00047     IDC_CHECK_CLOSEALLCONFIRM,      HIDC_CHECK_CLOSEALLCONFIRM,         //[すべて閉じる]で他に編集用のウィンドウがあれば確認する    // 2006.12.25 ryoji
00048     IDC_CHECK_EXITCONFIRM,          HIDC_CHECK_EXITCONFIRM,             //終了の確認
00049     IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD, HIDC_CHECK_STOPS_WORD, //単語単位で移動するときに単語の両端に止まる
00050     IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH, HIDC_CHECK_STOPS_PARAGRAPH, // 段落単位で移動するときに段落の両端に止まる
00051     IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, // マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない 2007.10.08 genta
00052     IDC_HOTKEY_TRAYMENU,            HIDC_HOTKEY_TRAYMENU,               //左クリックメニューのショートカットキー
00053     IDC_EDIT_REPEATEDSCROLLLINENUM, HIDC_EDIT_REPEATEDSCROLLLINENUM,    //スクロール行数
00054     IDC_EDIT_MAX_MRU_FILE,          HIDC_EDIT_MAX_MRU_FILE,             //ファイル履歴の最大数
00055     IDC_EDIT_MAX_MRU_FOLDER,        HIDC_EDIT_MAX_MRU_FOLDER,           //フォルダ履歴の最大数
00056     IDC_RADIO_CARETTYPE0,           HIDC_RADIO_CARETTYPE0,              //カーソル形状（Windows風）
00057     IDC_RADIO_CARETTYPE1,           HIDC_RADIO_CARETTYPE1,              //カーソル形状（MS-DOS風）
00058     IDC_SPIN_REPEATEDSCROLLLINENUM, HIDC_EDIT_REPEATEDSCROLLLINENUM,
00059     IDC_SPIN_MAX_MRU_FILE,          HIDC_EDIT_MAX_MRU_FILE,
00060     IDC_SPIN_MAX_MRU_FOLDER,        HIDC_EDIT_MAX_MRU_FOLDER,
00061 //  IDC_STATIC,                     -1,
00062     0, 0
00063 };
00064 #else
00065 static const DWORD p_helpids[] = {  //10900
00066     IDC_BUTTON_CLEAR_MRU_FILE,      10900,  //履歴をクリア（ファイル）
00067     IDC_BUTTON_CLEAR_MRU_FOLDER,    10901,  //履歴をクリア（フォルダ）
00068     IDC_CHECK_FREECARET,            10910,  //フリーカーソル
00069     IDC_CHECK_INDENT,               10911,  //自動インデント
00070     IDC_CHECK_INDENT_WSPACE,        10912,  //全角空白もインデント
00071     IDC_CHECK_USETRAYICON,          10913,  //タスクトレイを使う
00072     IDC_CHECK_STAYTASKTRAY,         10914,  //タスクトレイに常駐
00073     IDC_CHECK_REPEATEDSCROLLSMOOTH, 10915,  //少し滑らかにする
00074     IDC_CHECK_EXITCONFIRM,          10916,  //終了の確認
00075     IDC_HOTKEY_TRAYMENU,            10940,  //左クリックメニューのショートカットキー
00076     IDC_EDIT_REPEATEDSCROLLLINENUM, 10941,  //スクロール行数
00077     IDC_EDIT_MAX_MRU_FILE,          10942,  //ファイル履歴の最大数
00078     IDC_EDIT_MAX_MRU_FOLDER,        10943,  //フォルダ履歴の最大数
00079     IDC_RADIO_CARETTYPE0,           10960,  //カーソル形状（Windows風）
00080     IDC_RADIO_CARETTYPE1,           10961,  //カーソル形状（MS-DOS風）
00081     IDC_SPIN_REPEATEDSCROLLLINENUM, -1,
00082     IDC_SPIN_MAX_MRU_FILE,          -1,
00083     IDC_SPIN_MAX_MRU_FOLDER,        -1,
00084 //  IDC_STATIC,                     -1,
00085     0, 0
00086 };
00087 #endif
00088 //@@@ 2001.02.04 End
00089
00090
00091
00092
00093
00094
00095 int CPropCommon::SearchIntArr( int nKey, int* pnArr, int nArrNum )
00096 {
00097     int i;
00098     for( i = 0; i < nArrNum; ++i ){
00099         if( nKey == pnArr[i] ){
00100             return i;
00101         }
00102     }
00103     return -1;
00104 }
00105
00106 //  From Here Jun. 2, 2001 genta
00107 //  Dialog procedureの処理を共通化し、各ページのDialog Procedureでは
00108 //  真の処理メソッドを指定して共通関数を呼ぶだけにした．
00115 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_GENERAL(
00116     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00117 {
00118     return DlgProc( &CPropCommon::DispatchEvent_p1, hwndDlg, uMsg, wParam, lParam );
00119 }
00120
00131 INT_PTR CPropCommon::DlgProc(
00132     INT_PTR (CPropCommon::*DispatchPage)( HWND, UINT, WPARAM, LPARAM ),
00133     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
00134 )
00135 {
00136     PROPSHEETPAGE*  pPsp;
00137     CPropCommon*    pCPropCommon;
00138     switch( uMsg ){
00139     case WM_INITDIALOG:
00140         pPsp = (PROPSHEETPAGE*)lParam;
00141         pCPropCommon = ( CPropCommon* )(pPsp->lParam);
00142         if( NULL != pCPropCommon ){
00143             return (pCPropCommon->*DispatchPage)( hwndDlg, uMsg, wParam, pPsp->lParam );
00144         }else{
00145             return FALSE;
00146         }
00147     default:
00148         // Modified by KEITA for WIN64 2003.9.6
00149         pCPropCommon = ( CPropCommon* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00150         if( NULL != pCPropCommon ){
00151             return (pCPropCommon->*DispatchPage)( hwndDlg, uMsg, wParam, lParam );
00152         }else{
00153             return FALSE;
00154         }
00155     }
00156 }
00157 //  To Here Jun. 2, 2001 genta
00158
00159 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00160 CPropCommon::CPropCommon()
00161 {
00162 //  int     i;
00163 //  long    lPathLen;
00164
00165     /* 共有データ構造体のアドレスを返す */
00166     m_pShareData = CShareData::getInstance()->GetShareData();
00167
00168     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00169     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00170     m_hwndThis  = NULL;     /* このダイアログのハンドル */
00171     m_nPageNum = 0;
00172
00173     /* ヘルプファイルのフルパスを返す */
00174 	::GetHelpFilePath( m_szHelpFile );
00175
00176     return;
00177 }
00178
00179
00180
00181
00182
00183 CPropCommon::~CPropCommon()
00184 {
00185 }
00186
00187
00188
00189
00190
00191 /* 初期化 */
00192 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00193 void CPropCommon::Create( HINSTANCE hInstApp, HWND hwndParent, CImageListMgr* cIcons, CSMacroMgr* pMacro, CMenuDrawer* pMenuDrawer )
00194 {
00195     m_hInstance = hInstApp;     /* アプリケーションインスタンスのハンドル */
00196     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00197     m_pcIcons = cIcons;
00198     m_pcSMacro = pMacro;
00199     m_cLookup.Init( m_hInstance, m_pcSMacro, &m_Common );   //  機能名・番号resolveクラス．
00200 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00201     m_pcMenuDrawer = pMenuDrawer;
00202
00203     return;
00204 }
00205
00206
00207
00208
00209
00210 /* 色選択ダイアログ */
00211 BOOL CPropCommon::SelectColor( HWND hwndParent, COLORREF* pColor )
00212 {
00213     int         i;
00214     CHOOSECOLOR cc;
00215     DWORD   dwCustColors[16] ;
00216     for( i = 0; i < 16; i++ ){
00217         dwCustColors[i] = (DWORD)RGB( 255, 255, 255 );
00218     }
00219     cc.lStructSize = sizeof( cc );
00220     cc.hwndOwner = hwndParent;
00221     cc.hInstance = NULL;
00222     cc.rgbResult = *pColor;
00223     cc.lpCustColors = (LPDWORD) dwCustColors;
00224     cc.Flags = /*CC_PREVENTFULLOPEN |*/ CC_RGBINIT;
00225     cc.lCustData = NULL;
00226     cc.lpfnHook = NULL;
00227     cc.lpTemplateName = NULL;
00228     if( FALSE == ::ChooseColor( &cc ) ){
00229         return FALSE;
00230     }
00231     *pColor = cc.rgbResult;
00232     return TRUE;
00233 }
00234
00235
00236 // 2002.11.09 Moca 未使用
00237 #if 0
00238
00239 /* 色ボタンの描画 */
00240 void CPropCommon::DrawColorButton( DRAWITEMSTRUCT* pDis, COLORREF cColor )
00241 {
00242 #ifdef _DEBUG
00243     MYTRACE( "pDis->itemAction = " );
00244 #endif
00245     COLORREF    cBtnHiLight     = (COLORREF)::GetSysColor(COLOR_3DHILIGHT);
00246     COLORREF    cBtnShadow      = (COLORREF)::GetSysColor(COLOR_3DSHADOW);
00247     COLORREF    cBtnDkShadow    = (COLORREF)::GetSysColor(COLOR_3DDKSHADOW);
00248     COLORREF    cBtnFace        = (COLORREF)::GetSysColor(COLOR_3DFACE);
00249     COLORREF    cRim;
00250     HBRUSH      hBrush;
00251     HBRUSH      hBrushOld;
00252     HPEN        hPen;
00253     HPEN        hPenOld;
00254     RECT        rc;
00255     RECT        rcFocus;
00256
00257     /* ボタンの表面の色で塗りつぶす */
00258     hBrush = ::CreateSolidBrush( cBtnFace );
00259     ::FillRect( pDis->hDC, &(pDis->rcItem), hBrush );
00260     ::DeleteObject( hBrush );
00261
00262     /* 枠の描画 */
00263     rcFocus = rc = pDis->rcItem;
00264     rc.top += 4;
00265     rc.left += 4;
00266     rc.right -= 4;
00267     rc.bottom -= 4;
00268     rcFocus = rc;
00269 //  rc.right -= 11;
00270
00271     if( pDis->itemState & ODS_SELECTED ){
00272         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00273         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00274         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00275         ::LineTo( pDis->hDC, 0, 0 );
00276         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00277         ::SelectObject( pDis->hDC, hPenOld );
00278         ::DeleteObject( hPen );
00279
00280         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00281         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00282         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 3, NULL );
00283         ::LineTo( pDis->hDC, 1, 1 );
00284         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 1 );
00285         ::SelectObject( pDis->hDC, hPenOld );
00286         ::DeleteObject( hPen );
00287
00288         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00289         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00290         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00291         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00292         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00293         ::SelectObject( pDis->hDC, hPenOld );
00294         ::DeleteObject( hPen );
00295
00296         rc.top += 1;
00297         rc.left += 1;
00298         rc.right += 1;
00299         rc.bottom += 1;
00300
00301         rcFocus.top += 1;
00302         rcFocus.left += 1;
00303         rcFocus.right += 1;
00304         rcFocus.bottom += 1;
00305
00306     }else{
00307         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00308         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00309         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00310         ::LineTo( pDis->hDC, 0, 0 );
00311         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00312         ::SelectObject( pDis->hDC, hPenOld );
00313         ::DeleteObject( hPen );
00314
00315         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00316         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00317         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 2, NULL );
00318         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, pDis->rcItem.bottom - 2 );
00319         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 0 );
00320         ::SelectObject( pDis->hDC, hPenOld );
00321         ::DeleteObject( hPen );
00322
00323         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00324         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00325         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00326         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00327         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00328         ::SelectObject( pDis->hDC, hPenOld );
00329         ::DeleteObject( hPen );
00330     }
00331     /* 指定色で塗りつぶす */
00332     hBrush = ::CreateSolidBrush( cColor );
00333     hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
00334     cRim = cBtnShadow;
00335     hPen = ::CreatePen( PS_SOLID, 0, cRim );
00336     hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00337     ::RoundRect( pDis->hDC, rc.left, rc.top, rc.right, rc.bottom , 5, 5 );
00338     ::SelectObject( pDis->hDC, hPenOld );
00339     ::SelectObject( pDis->hDC, hBrushOld );
00340     ::DeleteObject( hPen );
00341     ::DeleteObject( hBrush );
00342
00343
00344 //  /* 区切り縦棒 */
00345 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00346 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00347 //  ::MoveToEx( pDis->hDC, rc.right + 3, rc.top, NULL );
00348 //  ::LineTo( pDis->hDC, rc.right + 3, rc.bottom );
00349 //  ::SelectObject( pDis->hDC, hPenOld );
00350 //  ::DeleteObject( hPen );
00351 //
00352 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00353 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00354 //  ::MoveToEx( pDis->hDC, rc.right + 4, rc.top, NULL );
00355 //  ::LineTo( pDis->hDC, rc.right + 4, rc.bottom );
00356 //  ::SelectObject( pDis->hDC, hPenOld );
00357 //  ::DeleteObject( hPen );
00358 //
00359 //  /* ▼記号 */
00360 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00361 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00362 //  ::MoveToEx( pDis->hDC, rc.right + 6     , rc.top + 6, NULL );
00363 //  ::LineTo(   pDis->hDC, rc.right + 6 + 5 , rc.top + 6 );
00364 //  ::MoveToEx( pDis->hDC, rc.right + 7     , rc.top + 7, NULL );
00365 //  ::LineTo(   pDis->hDC, rc.right + 7 + 3 , rc.top + 7 );
00366 //  ::MoveToEx( pDis->hDC, rc.right + 8     , rc.top + 8, NULL );
00367 //  ::LineTo(   pDis->hDC, rc.right + 8 + 1 , rc.top + 8 );
00368 //  ::SelectObject( pDis->hDC, hPenOld );
00369 //  ::DeleteObject( hPen );
00370
00371     /* フォーカスの長方形 */
00372     if( pDis->itemState & ODS_FOCUS ){
00373         rcFocus.top -= 3;
00374         rcFocus.left -= 3;
00375         rcFocus.right += 2;
00376         rcFocus.bottom += 2;
00377         ::DrawFocusRect( pDis->hDC, &rcFocus );
00378     }
00379     return;
00380 }
00381
00382 #endif
00383
00384
00385
00386
00387 //  From Here Jun. 2, 2001 genta
00392 struct ComPropSheetInfo {
00393     const char* szTabname;
00394     unsigned int resId;
00395     INT_PTR (CALLBACK *DProc)(HWND, UINT, WPARAM, LPARAM);
00397 };
00398 //  To Here Jun. 2, 2001 genta
00399
00400 //  キーワード：共通設定タブ順序(プロパティシート)
00404 int CPropCommon::DoPropertySheet( int nPageNum/*, int nActiveItem*/ )
00405 {
00406 //  m_nActiveItem = nActiveItem;
00407
00408     /* 共有データ構造体のアドレスを返す */
00409     m_pShareData = CShareData::getInstance()->GetShareData();
00410
00411     int             nRet;
00412     PROPSHEETPAGE   psp[32];
00413     PROPSHEETHEADER psh;
00414     int             nIdx;
00415     int             i;
00416
00417 //  m_Common.m_nMAXLINELEN_org = m_Common.m_nMAXLINELEN;
00418
00419     //  From Here Jun. 2, 2001 genta
00421     static ComPropSheetInfo ComPropSheetInfoList[] = {
00422         { "全般",           IDD_PROP1P1,        DlgProc_PROP_GENERAL },
00423         { "ウィンドウ",     IDD_PROP_WIN,       DlgProc_PROP_WIN },
00424         //  Feb. 11, 2007 genta URLをTABと入れ換え  // 2007.02.13 順序変更（TABをWINの次に）
00425         { "タブバー",       IDD_PROP_TAB,       DlgProc_PROP_TAB },
00426         { "編集",           IDD_PROP_EDIT,      DlgProc_PROP_EDIT },
00427         { "ファイル",       IDD_PROP_FILE,      DlgProc_PROP_FILE },
00428         { "バックアップ",   IDD_PROP_BACKUP,    DlgProc_PROP_BACKUP },
00429         { "書式",           IDD_PROP_FORMAT,    DlgProc_PROP_FORMAT },
00430         { "検索",           IDD_PROP_GREP,      DlgProc_PROP_GREP },    // 2006.08.23 ryoji タイトル変更（Grep -> 検索）
00431         { "キー割り当て",   IDD_PROP_KEYBIND,   DlgProc_PROP_KEYBIND },
00432         { "カスタムメニュー",IDD_PROP_CUSTMENU, DlgProc_PROP_CUSTMENU },
00433         { "ツールバー",     IDD_PROP_TOOLBAR,   DlgProc_PROP_TOOLBAR },
00434         { "強調キーワード", IDD_PROP_KEYWORD,   DlgProc_PROP_KEYWORD },
00435         { "支援",           IDD_PROP_HELPER,    DlgProc_PROP_HELPER },
00436         { "マクロ",         IDD_PROP_MACRO,     DlgProc_PROP_MACRO },
00437         { "ファイル名表示", IDD_PROP_FNAME,  DlgProc_PROP_FILENAME},
00438     };
00439
00440     for( nIdx = 0, i = 0; i < sizeof(ComPropSheetInfoList)/sizeof(ComPropSheetInfoList[0])
00441             && nIdx < 32 ; i++ ){
00442         if( ComPropSheetInfoList[i].szTabname != NULL ){
00443             PROPSHEETPAGE *p = &psp[nIdx];
00444             memset( p, 0, sizeof( PROPSHEETPAGE ) );
00445             p->dwSize = sizeof( PROPSHEETPAGE );
00446             p->dwFlags = /*PSP_USEICONID |*/ PSP_USETITLE | PSP_HASHELP;
00447             p->hInstance = m_hInstance;
00448             p->pszTemplate = MAKEINTRESOURCE( ComPropSheetInfoList[i].resId );
00449             p->pszIcon = NULL/*MAKEINTRESOURCE( IDI_FONT )*/;
00450             p->pfnDlgProc = (DLGPROC)(ComPropSheetInfoList[i].DProc);
00451             p->pszTitle = ComPropSheetInfoList[i].szTabname;
00452             p->lParam = (LPARAM)this;
00453             p->pfnCallback = NULL;
00454             nIdx++;
00455         }
00456     }
00457     //  To Here Jun. 2, 2001 genta
00458
00459     memset( &psh, 0, sizeof( PROPSHEETHEADER ) );
00460 #ifdef _WIN64
00461     psh.dwSize = sizeof( psh );
00462 #else
00463     //  Jun. 29, 2002 こおり
00464     //  Windows 95対策．Property SheetのサイズをWindows95が認識できる物に固定する．
00465     const size_t sizeof_old_PROPSHEETHEADER=40;
00466     psh.dwSize = sizeof_old_PROPSHEETHEADER;
00467 #endif
00468 //  JEPROtest Sept. 30, 2000 共通設定の隠れ[適用]ボタンの正体はここ。行頭のコメントアウトを入れ替えてみればわかる
00469 //  psh.dwFlags = /*PSH_USEICONID |*/ /*PSH_NOAPPLYNOW |*/ PSH_PROPSHEETPAGE/* | PSH_HASHELP*/;
00470     psh.dwFlags = /*PSH_USEICONID |*/ PSH_NOAPPLYNOW | PSH_PROPSHEETPAGE/* | PSH_HASHELP*/;
00471     psh.hwndParent = m_hwndParent;
00472     psh.hInstance = m_hInstance;
00473     psh.pszIcon = NULL /*MAKEINTRESOURCE( IDI_CELL_PROPERTIES )*/;
00474     psh.pszCaption = (LPSTR) "共通設定";
00475     psh.nPages = nIdx;
00476
00477     //- 20020106 aroka # psh.nStartPage は unsigned なので負にならない
00478     if( -1 == nPageNum ){
00479         psh.nStartPage = m_nPageNum;
00480     }else
00481     if( 0 > nPageNum ){         //- 20020106 aroka
00482         psh.nStartPage = 0;
00483     }else{
00484         psh.nStartPage = nPageNum;
00485     }
00486 //  if( 0 > psh.nStartPage ){   //- 20020106 aroka
00487 //      psh.nStartPage = 0;
00488 //  }
00489     if( psh.nPages - 1 < psh.nStartPage ){
00490         psh.nStartPage = psh.nPages - 1;
00491     }
00492
00493     psh.ppsp = (LPCPROPSHEETPAGE)psp;
00494     psh.pfnCallback = NULL;
00495
00496     nRet = MyPropertySheet( &psh ); // 2007.05.24 ryoji 独自拡張プロパティシート
00497     if( -1 == nRet ){
00498         char*   pszMsgBuf;
00499         ::FormatMessage(
00500             FORMAT_MESSAGE_ALLOCATE_BUFFER |
00501             FORMAT_MESSAGE_FROM_SYSTEM |
00502             FORMAT_MESSAGE_IGNORE_INSERTS,
00503             NULL,
00504             ::GetLastError(),
00505             MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),  // デフォルト言語
00506             (LPTSTR) &pszMsgBuf,
00507             0,
00508             NULL
00509         );
00510 		::MYMESSAGEBOX(   NULL, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, "作者に教えて欲しいエラー",
00511             "CPropCommon::DoPropertySheet()内でエラーが出ました。\npsh.nStartPage=[%d]\n::PropertySheet()失敗\n\n%s\n", psh.nStartPage, pszMsgBuf
00512         );
00513         ::LocalFree( pszMsgBuf );
00514     }
00515 //  {
00516 //      CDlgDebug   cDlgDebug;
00517 //      CMemory     cmemDebugInfo;
00518 //      char        szText[1024];
00519 //
00520 //      sprintf( szText, "aaaaaaaaa\r\nbbbbbbbbbbb\r\nccccccccccc\r\n" );
00521 //      cmemDebugInfo.Append( szText, strlen( szText ) );
00522 //      cDlgDebug.DoModal( m_hInstance, m_hwndParent, cmemDebugInfo );
00523 //  }
00524
00525     return nRet;
00526 }
00527
00528
00529
00533 void CPropCommon::InitData( void )
00534 {
00535     int i;
00536     m_Common = m_pShareData->m_Common;
00537     m_nKeyNameArrNum = m_pShareData->m_nKeyNameArrNum;
00538     for( i = 0; i < sizeof( m_pShareData->m_pKeyNameArr ) / sizeof( m_pShareData->m_pKeyNameArr[0] ); ++i ){
00539         m_pKeyNameArr[i] = m_pShareData->m_pKeyNameArr[i];
00540     }
00541     m_CKeyWordSetMgr = m_pShareData->m_CKeyWordSetMgr;
00542
00543     //2002/04/25 YAZAKI Types全体を保持する必要はない。
00544     for( i = 0; i < MAX_TYPES; ++i ){
00545         for( int j = 0; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
00546             m_Types_nKeyWordSetIdx[i][j] = m_pShareData->m_Types[i].m_nKeyWordSetIdx[j];
00547         }
00548     }
00549     /* マクロ関係
00550     @@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00551     */
00552     for( i = 0; i < MAX_CUSTMACRO; ++i ){
00553         m_MacroTable[i] = m_pShareData->m_MacroTable[i];
00554     }
00555     memcpy( m_szMACROFOLDER, m_pShareData->m_szMACROFOLDER, sizeof( m_pShareData->m_szMACROFOLDER ) );
00556
00557     // ファイル名簡易表示関係
00558     memcpy( m_szTransformFileNameFrom, m_pShareData->m_szTransformFileNameFrom,
00559         sizeof( m_pShareData->m_szTransformFileNameFrom ) );
00560     memcpy( m_szTransformFileNameTo, m_pShareData->m_szTransformFileNameTo,
00561         sizeof( m_pShareData->m_szTransformFileNameTo ) );
00562     m_nTransformFileNameArrNum = m_pShareData->m_nTransformFileNameArrNum;
00563
00564 }
00565
00570 void CPropCommon::ApplyData( void )
00571 {
00572     int i;
00573
00574     for( i = 0; i < sizeof( m_pShareData->m_pKeyNameArr ) / sizeof( m_pShareData->m_pKeyNameArr[0] ); ++i ){
00575         m_pShareData->m_pKeyNameArr[i] = m_pKeyNameArr[i];
00576     }
00577     m_pShareData->m_CKeyWordSetMgr = m_CKeyWordSetMgr;
00578
00579     m_pShareData->m_Common = m_Common;
00580
00581     for( i = 0; i < MAX_TYPES; ++i ){
00582         //2002/04/25 YAZAKI Types全体を保持する必要はない。
00583         /* 変更された設定値のコピー */
00584         for( int j = 0; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
00585             m_pShareData->m_Types[i].m_nKeyWordSetIdx[j] = m_Types_nKeyWordSetIdx[i][j];
00586         }
00587     }
00588
00589     /* マクロ関係 */
00590     for( i = 0; i < MAX_CUSTMACRO; ++i ){
00591         m_pShareData->m_MacroTable[i] = m_MacroTable[i];
00592     }
00593     memcpy( m_pShareData->m_szMACROFOLDER, m_szMACROFOLDER, sizeof( m_pShareData->m_szMACROFOLDER ) );
00594
00595     // ファイル名簡易表示関係
00596     // 念のため，書き換える前に 0 を設定しておく
00597     m_pShareData->m_nTransformFileNameArrNum = 0;
00598     memcpy( m_pShareData->m_szTransformFileNameFrom, m_szTransformFileNameFrom,
00599         sizeof( m_pShareData->m_szTransformFileNameFrom ) );
00600     memcpy( m_pShareData->m_szTransformFileNameTo, m_szTransformFileNameTo,
00601         sizeof( m_pShareData->m_szTransformFileNameTo ) );
00602
00603     m_pShareData->m_nTransformFileNameArrNum = m_nTransformFileNameArrNum;
00604
00605 }
00606
00607
00608
00609
00610 /* p1 メッセージ処理 */
00611 INT_PTR CPropCommon::DispatchEvent_p1(
00612     HWND    hwndDlg,    // handle to dialog box
00613     UINT    uMsg,       // message
00614     WPARAM  wParam,     // first message parameter
00615     LPARAM  lParam      // second message parameter
00616 )
00617 {
00618     WORD        wNotifyCode;
00619     WORD        wID;
00620 //  HWND        hwndCtl;
00621     NMHDR*      pNMHDR;
00622     NM_UPDOWN*  pMNUD;
00623     int         idCtrl;
00624     int         nVal;
00625 //  LPDRAWITEMSTRUCT pDis;
00626
00627     switch( uMsg ){
00628
00629     case WM_INITDIALOG:
00630         /* ダイアログデータの設定 p1 */
00631         SetData_p1( hwndDlg );
00632         // Modified by KEITA for WIN64 2003.9.6
00633 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00634
00635         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00636
00637         return TRUE;
00638     case WM_COMMAND:
00639         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00640         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00641 //      hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00642         switch( wNotifyCode ){
00643         /* ボタン／チェックボックスがクリックされた */
00644         case BN_CLICKED:
00645             switch( wID ){
00646 //  /* タスクトレイを使う */
00647 //  m_Common.m_bUseTaskTray = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_USETRAYICON );
00648 //  /* タスクトレイに常駐 */
00649 //  m_Common.m_bStayTaskTray = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STAYTASKTRAY );
00650
00651             case IDC_CHECK_USETRAYICON: /* タスクトレイを使う */
00652             // From Here 2001.12.03 hor
00653             //      操作しにくいって評判だったのでタスクトレイ関係のEnable制御をやめました
00654             //@@@ YAZAKI 2001.12.31 IDC_CHECKSTAYTASKTRAYのアクティブ、非アクティブのみ制御。
00655                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_USETRAYICON ) ){
00656                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), TRUE );
00657                 }else{
00658             //      ::CheckDlgButton( hwndDlg, IDC_CHECK_STAYTASKTRAY, FALSE ); /* タスクトレイに常駐 */
00659                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), FALSE );
00660                 }
00661             //  if(!::IsDlgButtonChecked( hwndDlg, IDC_CHECK_USETRAYICON ) ){
00662             //      ::CheckDlgButton( hwndDlg, IDC_CHECK_STAYTASKTRAY, FALSE ); /* タスクトレイに常駐 */
00663             //  }
00664             // To Here 2001.12.03 hor
00665                 return TRUE;
00666
00667             case IDC_CHECK_STAYTASKTRAY:    /* タスクトレイに常駐 */
00668             //@@@ YAZAKI 2001.12.31 制御しない。
00669             //  if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STAYTASKTRAY ) ){
00670             //      ::CheckDlgButton( hwndDlg, IDC_CHECK_USETRAYICON, TRUE );   /* タスクトレイを使う */
00671             //  }else{
00672             //  }
00673                 return TRUE;
00674
00675 #if 0
00676                 case IDC_CHECK_INDENT:  /* オートインデント */
00677 //              MYTRACE( "IDC_CHECK_INDENT\n" );
00678                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_INDENT ) ){
00679                     /* 日本語空白もインデント */
00680                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_INDENT_WSPACE ), TRUE );
00681                 }else{
00682                     /* 日本語空白もインデント */
00683                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_INDENT_WSPACE ), FALSE );
00684                 }
00685                 return TRUE;
00686 #endif
00687             case IDC_BUTTON_CLEAR_MRU_FILE:
00688                 /* ファイルの履歴をクリア */
00689                 if( IDCANCEL == ::MYMESSAGEBOX( hwndDlg, MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME,
00690                     "最近使ったファイルの履歴を削除します。\nよろしいですか？\n" ) ){
00691                     return TRUE;
00692                 }
00693 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00694 //              m_pShareData->m_nMRUArrNum = 0;
00695                 {
00696                     CMRU cMRU;
00697                     cMRU.ClearAll();
00698                 }
00699 				::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00700                     "最近使ったファイルの履歴を削除しました。\n"
00701                 );
00702                 return TRUE;
00703             case IDC_BUTTON_CLEAR_MRU_FOLDER:
00704                 /* フォルダの履歴をクリア */
00705                 if( IDCANCEL == ::MYMESSAGEBOX( hwndDlg, MB_OKCANCEL | MB_ICONQUESTION, GSTR_APPNAME,
00706                     "最近使ったフォルダの履歴を削除します。\nよろしいですか？\n" ) ){
00707                     return TRUE;
00708                 }
00709 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00710 //              m_pShareData->m_nOPENFOLDERArrNum = 0;
00711                 {
00712                     CMRUFolder cMRUFolder;  //  MRUリストの初期化。ラベル内だと問題あり？
00713                     cMRUFolder.ClearAll();
00714                 }
00715 				::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00716                     "最近使ったフォルダの履歴を削除しました。\n"
00717                 );
00718                 return TRUE;
00719
00720             }
00721             break;  /* BN_CLICKED */
00722         }
00723         break;  /* WM_COMMAND */
00724     case WM_NOTIFY:
00725         idCtrl = (int)wParam;
00726         pNMHDR = (NMHDR*)lParam;
00727         pMNUD  = (NM_UPDOWN*)lParam;
00728         switch( idCtrl ){
00729 //      case IDC_SPIN_MAXLINELEN:
00730 //          /* 折り返し文字数 */
00731 //          MYTRACE( "IDC_SPIN_MAXLINELEN\n" );
00732 //          nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, NULL, FALSE );
00733 //          if( pMNUD->iDelta < 0 ){
00734 //              ++nVal;
00735 //          }else
00736 //          if( pMNUD->iDelta > 0 ){
00737 //              --nVal;
00738 //          }
00739 //          if( nVal < MINLINESIZE ){
00740 //              nVal = MINLINESIZE;
00741 //          }
00742 //          if( nVal > MAXLINESIZE ){
00743 //              nVal = MAXLINESIZE;
00744 //          }
00745 //          ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, nVal, FALSE );
00746 //          return TRUE;
00747 //      case IDC_SPIN_CHARSPACE:
00748 //          /* 文字の隙間 */
00749 //          MYTRACE( "IDC_SPIN_CHARSPACE\n" );
00750 //          nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, NULL, FALSE );
00751 //          if( pMNUD->iDelta < 0 ){
00752 //              ++nVal;
00753 //          }else
00754 //          if( pMNUD->iDelta > 0 ){
00755 //              --nVal;
00756 //          }
00757 //          if( nVal < 0 ){
00758 //              nVal = 0;
00759 //          }
00760 //          if( nVal > 16 ){
00761 //              nVal = 16;
00762 //          }
00763 //          ::SetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, nVal, FALSE );
00764 //          return TRUE;
00765 //      case IDC_SPIN_LINESPACE:
00766 //          /* 行の隙間 */
00767 //          MYTRACE( "IDC_SPIN_LINESPACE\n" );
00768 //          nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, NULL, FALSE );
00769 //          if( pMNUD->iDelta < 0 ){
00770 //              ++nVal;
00771 //          }else
00772 //          if( pMNUD->iDelta > 0 ){
00773 //              --nVal;
00774 //          }
00775 //          if( nVal < 0 ){
00776 //              nVal = 0;
00777 //          }
00778 //          if( nVal > 16 ){
00779 //              nVal = 16;
00780 //          }
00781 //          ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, nVal, FALSE );
00782 //          return TRUE;
00783         case IDC_SPIN_REPEATEDSCROLLLINENUM:
00784             /* キーリピート時のスクロール行数 */
00785 //          MYTRACE( "IDC_SPIN_REPEATEDSCROLLLINENUM\n" );
00786             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, NULL, FALSE );
00787             if( pMNUD->iDelta < 0 ){
00788                 ++nVal;
00789             }else
00790             if( pMNUD->iDelta > 0 ){
00791                 --nVal;
00792             }
00793             if( nVal < 1 ){
00794                 nVal = 1;
00795             }
00796             if( nVal > 10 ){
00797                 nVal = 10;
00798             }
00799             ::SetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, nVal, FALSE );
00800             return TRUE;
00801         case IDC_SPIN_MAX_MRU_FILE:
00802             /* ファイルの履歴MAX */
00803 //          MYTRACE( "IDC_SPIN_MAX_MRU_FILE\n" );
00804             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, NULL, FALSE );
00805             if( pMNUD->iDelta < 0 ){
00806                 ++nVal;
00807             }else
00808             if( pMNUD->iDelta > 0 ){
00809                 --nVal;
00810             }
00811             if( nVal < 0 ){
00812                 nVal = 0;
00813             }
00814             if( nVal > MAX_MRU ){
00815                 nVal = MAX_MRU;
00816             }
00817             ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, nVal, FALSE );
00818             return TRUE;
00819         case IDC_SPIN_MAX_MRU_FOLDER:
00820             /* フォルダの履歴MAX */
00821 //          MYTRACE( "IDC_SPIN_MAX_MRU_FOLDER\n" );
00822             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, NULL, FALSE );
00823             if( pMNUD->iDelta < 0 ){
00824                 ++nVal;
00825             }else
00826             if( pMNUD->iDelta > 0 ){
00827                 --nVal;
00828             }
00829             if( nVal < 0 ){
00830                 nVal = 0;
00831             }
00832             if( nVal > MAX_OPENFOLDER ){
00833                 nVal = MAX_OPENFOLDER;
00834             }
00835             ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, nVal, FALSE );
00836             return TRUE;
00837         default:
00838             switch( pNMHDR->code ){
00839             case PSN_HELP:
00840                 OnHelp( hwndDlg, IDD_PROP1P1 );
00841                 return TRUE;
00842             case PSN_KILLACTIVE:
00843 //              MYTRACE( "p1 PSN_KILLACTIVE\n" );
00844                 /* ダイアログデータの取得 p1 */
00845                 GetData_p1( hwndDlg );
00846                 return TRUE;
00847 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00848             case PSN_SETACTIVE:
00849                 m_nPageNum = ID_PAGENUM_ZENPAN; //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更(参照しているのはCPropCommon.cppのみの1箇所)
00850                 return TRUE;
00851             }
00852             break;
00853         }
00854
00855 //      MYTRACE( "pNMHDR->hwndFrom=%xh\n", pNMHDR->hwndFrom );
00856 //      MYTRACE( "pNMHDR->idFrom  =%xh\n", pNMHDR->idFrom );
00857 //      MYTRACE( "pNMHDR->code    =%xh\n", pNMHDR->code );
00858 //      MYTRACE( "pMNUD->iPos    =%d\n", pMNUD->iPos );
00859 //      MYTRACE( "pMNUD->iDelta  =%d\n", pMNUD->iDelta );
00860         break;
00861
00862 //@@@ 2001.02.04 Start by MIK: Popup Help
00863     case WM_HELP:
00864         {
00865             HELPINFO *p = (HELPINFO *)lParam;
00866             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00867         }
00868         return TRUE;
00869         /*NOTREACHED*/
00870 //      break;
00871 //@@@ 2001.02.04 End
00872
00873 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00874     //Context Menu
00875     case WM_CONTEXTMENU:
00876         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00877         return TRUE;
00878 //@@@ 2001.12.22 End
00879
00880     }
00881     return FALSE;
00882 }
00883
00884
00885
00886
00887
00888 /* ダイアログデータの設定 p1 */
00889 void CPropCommon::SetData_p1( HWND hwndDlg )
00890 {
00891     BOOL    bRet;
00892
00893     /* カーソルのタイプ 0=win 1=dos  */
00894     if( 0 == m_Common.GetCaretType() ){
00895         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE0, TRUE );
00896         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE1, FALSE );
00897     }else{
00898         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE0, FALSE );
00899         ::CheckDlgButton( hwndDlg, IDC_RADIO_CARETTYPE1, TRUE );
00900     }
00901
00902
00903     /* フリーカーソルモード */
00904     ::CheckDlgButton( hwndDlg, IDC_CHECK_FREECARET, m_Common.m_bIsFreeCursorMode );
00905
00906     /* 単語単位で移動するときに、単語の両端で止まるか */
00907     ::CheckDlgButton( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD, m_Common.m_bStopsBothEndsWhenSearchWord );
00908
00909     /* 段落単位で移動するときに、段落の両端で止まるか */
00910     ::CheckDlgButton( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH, m_Common.m_bStopsBothEndsWhenSearchParagraph );
00911
00912     //  2007.10.08 genta マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない (2007.10.02 by nasukoji)
00913     ::CheckDlgButton( hwndDlg, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE, m_Common.m_bNoCaretMoveByActivation );
00914
00915     /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */    // 2006.12.25 ryoji
00916     ::CheckDlgButton( hwndDlg, IDC_CHECK_CLOSEALLCONFIRM, m_Common.m_bCloseAllConfirm );
00917
00918     /* 終了時の確認をする */
00919     ::CheckDlgButton( hwndDlg, IDC_CHECK_EXITCONFIRM, m_Common.m_bExitConfirm );
00920
00921     /* キーリピート時のスクロール行数 */
00922     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, m_Common.m_nRepeatedScrollLineNum, FALSE );
00923
00924     /* キーリピート時のスクロールを滑らかにするか */
00925     ::CheckDlgButton( hwndDlg, IDC_CHECK_REPEATEDSCROLLSMOOTH, m_Common.m_nRepeatedScroll_Smooth );
00926
00927     /* ファイルの履歴MAX */
00928     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, m_Common.m_nMRUArrNum_MAX, FALSE );
00929
00930     /* フォルダの履歴MAX */
00931     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, m_Common.m_nOPENFOLDERArrNum_MAX, FALSE );
00932
00933     /* タスクトレイを使う */
00934     ::CheckDlgButton( hwndDlg, IDC_CHECK_USETRAYICON, m_Common.m_bUseTaskTray );
00935 // From Here 2001.12.03 hor
00936 //@@@ YAZAKI 2001.12.31 ここは制御する。
00937     if( m_Common.m_bUseTaskTray ){
00938         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), TRUE );
00939     }else{
00940         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), FALSE );
00941     }
00942 // To Here 2001.12.03 hor
00943     /* タスクトレイに常駐 */
00944     ::CheckDlgButton( hwndDlg, IDC_CHECK_STAYTASKTRAY, m_Common.m_bStayTaskTray );
00945
00946     /* タスクトレイ左クリックメニューのショートカット */
00947     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_HOTKEY_TRAYMENU ), HKM_SETHOTKEY, MAKEWORD( m_Common.m_wTrayMenuHotKeyCode, m_Common.m_wTrayMenuHotKeyMods ), 0 );
00948
00949     return;
00950 }
00951
00952
00953
00954
00955
00956 /* ダイアログデータの取得 p1 */
00957 int CPropCommon::GetData_p1( HWND hwndDlg )
00958 {
00959     /* カーソルのタイプ 0=win 1=dos  */
00960     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_CARETTYPE0 ) ){
00961         m_Common.SetCaretType(0);
00962     }
00963     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_CARETTYPE1 ) ){
00964         m_Common.SetCaretType(1);
00965     }
00966
00967     /* フリーカーソルモード */
00968     m_Common.m_bIsFreeCursorMode = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_FREECARET );
00969
00970     /* 単語単位で移動するときに、単語の両端で止まるか */
00971     m_Common.m_bStopsBothEndsWhenSearchWord = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD );
00972     //  2007.10.08 genta マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない (2007.10.02 by nasukoji)
00973     m_Common.m_bNoCaretMoveByActivation = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE );
00974
00975     /* 段落単位で移動するときに、段落の両端で止まるか */
00976     m_Common.m_bStopsBothEndsWhenSearchParagraph = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH );
00977
00978     /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */    // 2006.12.25 ryoji
00979     m_Common.m_bCloseAllConfirm = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CLOSEALLCONFIRM );
00980
00981     /* 終了時の確認をする */
00982     m_Common.m_bExitConfirm = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_EXITCONFIRM );
00983
00984     /* キーリピート時のスクロール行数 */
00985     m_Common.m_nRepeatedScrollLineNum = ::GetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, NULL, FALSE );
00986     if( m_Common.m_nRepeatedScrollLineNum < 1 ){
00987         m_Common.m_nRepeatedScrollLineNum = 1;
00988     }
00989     if( m_Common.m_nRepeatedScrollLineNum > 10 ){
00990         m_Common.m_nRepeatedScrollLineNum = 10;
00991     }
00992
00993     /* キーリピート時のスクロールを滑らかにするか */
00994     m_Common.m_nRepeatedScroll_Smooth = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_REPEATEDSCROLLSMOOTH );
00995
00996     /* ファイルの履歴MAX */
00997     m_Common.m_nMRUArrNum_MAX = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FILE, NULL, FALSE );
00998     if( m_Common.m_nMRUArrNum_MAX < 0 ){
00999         m_Common.m_nMRUArrNum_MAX = 0;
01000     }
01001     if( m_Common.m_nMRUArrNum_MAX > MAX_MRU ){
01002         m_Common.m_nMRUArrNum_MAX = MAX_MRU;
01003     }
01004
01005     {   //履歴の管理    //@@@ 2003.04.09 MIK
01006         CRecent cRecentFile;
01007         cRecentFile.EasyCreate( RECENT_FOR_FILE );
01008         cRecentFile.UpdateView();
01009         cRecentFile.Terminate();
01010     }
01011
01012     /* フォルダの履歴MAX */
01013     m_Common.m_nOPENFOLDERArrNum_MAX = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAX_MRU_FOLDER, NULL, FALSE );
01014     if( m_Common.m_nOPENFOLDERArrNum_MAX < 0 ){
01015         m_Common.m_nOPENFOLDERArrNum_MAX = 0;
01016     }
01017     if( m_Common.m_nOPENFOLDERArrNum_MAX > MAX_OPENFOLDER ){
01018         m_Common.m_nOPENFOLDERArrNum_MAX = MAX_OPENFOLDER;
01019     }
01020
01021     {   //履歴の管理    //@@@ 2003.04.09 MIK
01022         CRecent cRecentFolder;
01023         cRecentFolder.EasyCreate( RECENT_FOR_FOLDER );
01024         cRecentFolder.UpdateView();
01025         cRecentFolder.Terminate();
01026     }
01027
01028     /* タスクトレイを使う */
01029     m_Common.m_bUseTaskTray = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_USETRAYICON );
01030 //@@@ YAZAKI 2001.12.31 m_bUseTaskTrayに引きづられるように。
01031     if( m_Common.m_bUseTaskTray ){
01032         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), TRUE );
01033     }else{
01034         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_STAYTASKTRAY ), FALSE );
01035     }
01036     /* タスクトレイに常駐 */
01037     m_Common.m_bStayTaskTray = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_STAYTASKTRAY );
01038
01039     /* タスクトレイ左クリックメニューのショートカット */
01040     LRESULT lResult;
01041     lResult = ::SendMessage( ::GetDlgItem( hwndDlg, IDC_HOTKEY_TRAYMENU ), HKM_GETHOTKEY, 0, 0 );
01042     m_Common.m_wTrayMenuHotKeyCode = LOBYTE( lResult );
01043     m_Common.m_wTrayMenuHotKeyMods = HIBYTE( lResult );
01044
01045     return TRUE;
01046 }
01047
01048
01049
01050 /* ヘルプ */
01051 //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
01052 void CPropCommon::OnHelp( HWND hwndParent, int nPageID )
01053 {
01054     int     nContextID;
01055     switch( nPageID ){
01056     case IDD_PROP1P1:
01057         nContextID = ::FuncID_To_HelpContextID(F_OPTION_GENERAL);
01058         break;
01059     case IDD_PROP_FORMAT:
01060         nContextID = ::FuncID_To_HelpContextID(F_OPTION_FORMAT);
01061         break;
01062     case IDD_PROP_FILE:
01063         nContextID = ::FuncID_To_HelpContextID(F_OPTION_FILE);
01064         break;
01065 //  Sept. 10, 2000 JEPRO ID名を実際の名前に変更するため以下の行はコメントアウト
01066 //  変更は少し後の行(Sept. 9, 2000)で行っている
01067 //  case IDD_PROP1P5:
01068 //      nContextID = 84;
01069 //      break;
01070     case IDD_PROP_TOOLBAR:
01071         nContextID = ::FuncID_To_HelpContextID(F_OPTION_TOOLBAR);
01072         break;
01073     case IDD_PROP_KEYWORD:
01074         nContextID = ::FuncID_To_HelpContextID(F_OPTION_KEYWORD);
01075         break;
01076     case IDD_PROP_CUSTMENU:
01077         nContextID = ::FuncID_To_HelpContextID(F_OPTION_CUSTMENU);
01078         break;
01079     case IDD_PROP_HELPER:
01080         nContextID = ::FuncID_To_HelpContextID(F_OPTION_HELPER);
01081         break;
01082
01083     // From Here Sept. 9, 2000 JEPRO 共通設定のヘルプボタンが効かなくなっていた部分を以下の追加によって修正
01084     case IDD_PROP_EDIT:
01085         nContextID = ::FuncID_To_HelpContextID(F_OPTION_EDIT);
01086         break;
01087     case IDD_PROP_BACKUP:
01088         nContextID = ::FuncID_To_HelpContextID(F_OPTION_BACKUP);
01089         break;
01090     case IDD_PROP_WIN:
01091         nContextID = ::FuncID_To_HelpContextID(F_OPTION_WINDOW);
01092         break;
01093     case IDD_PROP_TAB:
01094         nContextID = ::FuncID_To_HelpContextID(F_OPTION_TAB);
01095         break;
01096     case IDD_PROP_GREP:
01097         nContextID = ::FuncID_To_HelpContextID(F_OPTION_GREP);
01098         break;
01099     case IDD_PROP_KEYBIND:
01100         nContextID = ::FuncID_To_HelpContextID(F_OPTION_KEYBIND);
01101         break;
01102     // To Here Sept. 9, 2000
01103     case IDD_PROP_MACRO:    //@@@ 2002.01.02
01104         nContextID = ::FuncID_To_HelpContextID(F_OPTION_MACRO);
01105         break;
01106     case IDD_PROP_FNAME:    // 2002.12.09 Moca FNAME追加
01107         nContextID = ::FuncID_To_HelpContextID(F_OPTION_FNAME);
01108         break;
01109
01110     default:
01111         nContextID = -1;
01112         break;
01113     }
01114     if( -1 != nContextID ){
01115         MyWinHelp( hwndParent, m_szHelpFile, HELP_CONTEXT, nContextID );    // 2006.10.10 ryoji MyWinHelpに変更に変更
01116     }
01117     return;
01118 }
01119
01120
01121 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropCommon.h

CPropCommon.h

共通設定ダイアログボックスの処理 [詳細]

#include <windows.h>
#include "CShareData.h"
#include "sakura_rc.h"
#include "CFuncLookup.h"
#include "etc_uty.h"

CPropCommon.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CPropCommon
共通設定ダイアログボックスクラス [詳細]

マクロ定義

#define | ID_PAGENUM_ZENPAN 0
#define | ID_PAGENUM_WIN 1
#define | ID_PAGENUM_TAB 2
#define | ID_PAGENUM_EDIT 3
#define | ID_PAGENUM_FILE 4
#define | ID_PAGENUM_BACKUP 5
#define | ID_PAGENUM_FORMAT 6
#define | ID_PAGENUM_GREP 7
#define | ID_PAGENUM_KEYBOARD 8
#define | ID_PAGENUM_CUSTMENU 9
#define | ID_PAGENUM_TOOLBAR 10
#define | ID_PAGENUM_KEYWORD 11
#define | ID_PAGENUM_HELPER 12
#define | ID_PAGENUM_MACRO 13
#define | ID_PAGENUM_FILENAME 14

説明

共通設定ダイアログボックスの処理

作者:
Norio Nakatani
日付:
1998/12/24 新規作成

CPropCommon.h で定義されています。

マクロ定義

#define ID_PAGENUM_BACKUP 5

CPropCommon.h の 38 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define ID_PAGENUM_CUSTMENU 9

CPropCommon.h の 42 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8().

#define ID_PAGENUM_EDIT 3

CPropCommon.h の 36 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_EDIT().

#define ID_PAGENUM_FILE 4

CPropCommon.h の 37 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2().

#define ID_PAGENUM_FILENAME 14

CPropCommon.h の 47 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define ID_PAGENUM_FORMAT 6

CPropCommon.h の 39 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9().

#define ID_PAGENUM_GREP 7

CPropCommon.h の 40 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_GREP().

#define ID_PAGENUM_HELPER 12

CPropCommon.h の 45 行で定義されています。

参照元 CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP().

#define ID_PAGENUM_KEYBOARD 8

CPropCommon.h の 41 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define ID_PAGENUM_KEYWORD 11

CPropCommon.h の 44 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7().

#define ID_PAGENUM_MACRO 13

CPropCommon.h の 46 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro().

#define ID_PAGENUM_TAB 2

CPropCommon.h の 35 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TAB().

#define ID_PAGENUM_TOOLBAR 10

CPropCommon.h の 43 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define ID_PAGENUM_WIN 1

CPropCommon.h の 34 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define ID_PAGENUM_ZENPAN 0

CPropCommon.h の 33 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropCommon.h ソースファイル

CPropCommon.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, genta, jepro
00010     Copyright (C) 2001, genta
00011     Copyright (C) 2002, YAZAKI, aroka, Moca
00012     Copyright (C) 2005, MIK, Moca, aroka
00013     Copyright (C) 2006, ryoji
00014     Copyright (C) 2007, genta, ryoji
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holders to use this code for other purpose.
00018 */
00019
00020 class CPropCommon;
00021
00022 #ifndef _CPROP1_H_
00023 #define _CPROP1_H_
00024 #include <windows.h>
00025 #include "CShareData.h"
00026 #include "sakura_rc.h"
00027 #include "CFuncLookup.h"
00028 #include "etc_uty.h"
00029 class CImageListMgr;
00030 class CSMacroMgr;
00031 class CMenuDrawer;// 2002/2/10 aroka to here
00032
00033 #define ID_PAGENUM_ZENPAN   0   //Oct. 25, 2000 JEPRO ZENPAN1→ZENPAN に変更
00034 #define ID_PAGENUM_WIN      1   //Oct. 25, 2000 JEPRO  5→ 1 に変更
00035 #define ID_PAGENUM_TAB      2   //Feb. 11, 2007 genta URLと入れ換え // 2007.02.13 順序変更（TABをWINの次に）
00036 #define ID_PAGENUM_EDIT     3
00037 #define ID_PAGENUM_FILE     4
00038 #define ID_PAGENUM_BACKUP   5
00039 #define ID_PAGENUM_FORMAT   6   //Oct. 25, 2000 JEPRO  1→ 5 に変更
00040 #define ID_PAGENUM_GREP     7
00041 #define ID_PAGENUM_KEYBOARD 8
00042 #define ID_PAGENUM_CUSTMENU 9   //Oct. 25, 2000 JEPRO 11→ 9 に変更
00043 #define ID_PAGENUM_TOOLBAR  10  //Oct. 25, 2000 JEPRO  9→10 に変更
00044 #define ID_PAGENUM_KEYWORD  11  //Oct. 25, 2000 JEPRO 10→11 に変更
00045 #define ID_PAGENUM_HELPER   12
00046 #define ID_PAGENUM_MACRO    13  //Oct. 25, 2000 JEPRO 10→11 に変更
00047 #define ID_PAGENUM_FILENAME 14  // Moca 追加
00048
00049 /*-----------------------------------------------------------------------
00050 クラスの宣言
00051 -----------------------------------------------------------------------*/
00060 class SAKURA_CORE_API CPropCommon
00061 {
00062 public:
00063     /*
00064     ||  Constructors
00065     */
00066     CPropCommon();
00067     ~CPropCommon();
00068     //  Sep. 29, 2001 genta マクロクラスを渡すように;
00069 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00070     void Create( HINSTANCE, HWND, CImageListMgr*, CSMacroMgr* , CMenuDrawer* ); /* 初期化 */
00071
00072     /*
00073     ||  Attributes & Operations
00074     */
00075     int DoPropertySheet( int/*, int*/ );    /* プロパティシートの作成 */
00076
00077     // 2002.12.11 Moca 追加
00078     void InitData( void );
00079     void ApplyData( void );
00080
00081     //  Jun. 2, 2001 genta
00082     //  ここにあったEvent Handlerはprotectedエリアに移動した．
00083
00084     HINSTANCE       m_hInstance;    /* アプリケーションインスタンスのハンドル */
00085     HWND            m_hwndParent;   /* オーナーウィンドウのハンドル */
00086     HWND            m_hwndThis;     /* このダイアログのハンドル */
00087     int             m_nPageNum;
00088     DLLSHAREDATA*   m_pShareData;
00089     int             m_nSettingType;
00090 //  int             m_nActiveItem;
00091
00092     //  Oct. 16, 2000 genta
00093     CImageListMgr*  m_pcIcons;  //  Image List
00094
00095     //  Oct. 2, 2001 genta 外部マクロ追加に伴う，対応部分の別クラス化
00096     //  Oct. 15, 2001 genta Lookupはダイアログボックス内で別インスタンスを作るように
00097     //  (検索対象として，設定用common領域を指すようにするため．)
00098     CFuncLookup         m_cLookup;
00099     CSMacroMgr*         m_pcSMacro;
00100
00101     CMenuDrawer*        m_pcMenuDrawer;
00102     /*
00103     || ダイアログデータ
00104     */
00105     char            m_szHelpFile[_MAX_PATH + 1];
00106     Common          m_Common;
00107     short           m_nKeyNameArrNum;               /* キー割り当て表の有効データ数 */
00108     KEYDATA         m_pKeyNameArr[100];             /* キー割り当て表 */
00109
00110     CKeyWordSetMgr  m_CKeyWordSetMgr;
00111     //2002/04/25 YAZAKI Types全体を保持する必要はない。
00112     //Types         m_Types[MAX_TYPES];
00113     // 2005.01.13 MIK セット数増加
00114     int             m_Types_nKeyWordSetIdx[MAX_TYPES][MAX_KEYWORDSET_PER_TYPE];
00115     //@@@ 2002.01.03 YAZAKI 共通設定『マクロ』がタブを切り替えるだけで設定が保存されないように。
00116     MacroRec        m_MacroTable[MAX_CUSTMACRO];
00117     char            m_szMACROFOLDER[_MAX_PATH];     /* マクロ用フォルダ */
00118
00120     int     m_nTransformFileNameArrNum;
00121     char    m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00122     char    m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00123
00124 protected:
00125     /*
00126     ||  実装ヘルパ関数
00127     */
00128     void OnHelp( HWND, int );   /* ヘルプ */
00129     int SearchIntArr( int , int* , int );
00130 //  void DrawToolBarItemList( DRAWITEMSTRUCT* );    /* ツールバーボタンリストのアイテム描画 */
00131 //  void DrawColorButton( DRAWITEMSTRUCT* , COLORREF ); /* 色ボタンの描画 */ // 2002.11.09 Moca 未使用
00132     BOOL SelectColor( HWND , COLORREF* );   /* 色選択ダイアログ */
00133
00134     //  Jun. 2, 2001 genta
00135     //  Event Handler, Dialog Procedureの見直し
00136     //  Global関数だったDialog procedureをclassのstatic methodとして
00137     //  組み込んだ．
00138     //  ここから以下 Macroまで配置の見直しとstatic methodの追加
00139
00141     static INT_PTR DlgProc(
00142         INT_PTR (CPropCommon::*DispatchPage)( HWND, UINT, WPARAM, LPARAM ),
00143         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00144
00145     //==============================================================
00147     static INT_PTR CALLBACK DlgProc_PROP_GENERAL(
00148         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00149     INT_PTR DispatchEvent_p1( HWND, UINT, WPARAM, LPARAM );
00150     void SetData_p1( HWND );    /* ダイアログデータの設定 p1 */
00151     int  GetData_p1( HWND );    /* ダイアログデータの取得 p1 */
00152
00153     //==============================================================
00155     static INT_PTR CALLBACK DlgProc_PROP_FILE(
00156         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00158     INT_PTR DispatchEvent_p2( HWND, UINT, WPARAM, LPARAM );
00159     void SetData_p2( HWND );    /* ダイアログデータの設定 p2 */
00160     int  GetData_p2( HWND );    /* ダイアログデータの取得 p2 */
00161
00162     //==============================================================
00164     static INT_PTR CALLBACK DlgProc_PROP_KEYBIND(
00165         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00167     INT_PTR DispatchEvent_p5( HWND, UINT, WPARAM, LPARAM );
00168     void SetData_p5( HWND );    /* ダイアログデータの設定 p5 */
00169     int  GetData_p5( HWND );    /* ダイアログデータの取得 p5 */
00170     void p5_ChangeKeyList( HWND ); /* p5: キーリストをチェックボックスの状態に合わせて更新する*/
00171     void p5_Import_KeySetting( HWND );  /* p5:キー割り当て設定をインポートする */
00172     void p5_Export_KeySetting( HWND );  /* p5:キー割り当て設定をエクスポートする */
00173
00174     //==============================================================
00176     // 20050809 aroka _p6から_PROP_TOOLBARに名前変更
00177     static INT_PTR CALLBACK DlgProc_PROP_TOOLBAR(
00178         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00180     INT_PTR DispatchEvent_PROP_TOOLBAR( HWND, UINT, WPARAM, LPARAM );
00181     void SetData_PROP_TOOLBAR( HWND );  /* ツールバー ダイアログデータの設定 */
00182     int  GetData_PROP_TOOLBAR( HWND );  /* ツールバー ダイアログデータの取得 */
00183     void DrawToolBarItemList( DRAWITEMSTRUCT* );    /* ツールバーボタンリストのアイテム描画 */
00184
00185     //==============================================================
00187     static INT_PTR CALLBACK DlgProc_PROP_KEYWORD(
00188         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00190     INT_PTR DispatchEvent_p7( HWND, UINT, WPARAM, LPARAM );
00191     void SetData_p7( HWND );    /* ダイアログデータの設定 p7 */
00192     void SetData_p7_KeyWordSet( HWND , int );   /* ダイアログデータの設定 p7 指定キーワードセットの設定 */
00193     int  GetData_p7( HWND );    /* ダイアログデータの取得 p7 */
00194     void GetData_p7_KeyWordSet( HWND , int );   /* ダイアログデータの取得 p7 指定キーワードセットの取得 */
00195     void DispKeywordCount( HWND hwndDlg );
00196
00197     //==============================================================
00199     static INT_PTR CALLBACK DlgProc_PROP_CUSTMENU(
00200         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00202     INT_PTR DispatchEvent_p8( HWND, UINT, WPARAM, LPARAM );
00203     void SetData_p8( HWND );    /* ダイアログデータの設定 p8 */
00204     int  GetData_p8( HWND );    /* ダイアログデータの取得 p8 */
00205
00206     //==============================================================
00208     static INT_PTR CALLBACK DlgProc_PROP_FORMAT(
00209         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00211     INT_PTR DispatchEvent_p9( HWND, UINT, WPARAM, LPARAM );
00212     void SetData_p9( HWND );    /* ダイアログデータの設定 p9 */
00213     int  GetData_p9( HWND );    /* ダイアログデータの取得 p9 */
00214     void ChangeDateExample( HWND hwndDlg );
00215     void ChangeTimeExample( HWND hwndDlg );
00216
00217     //==============================================================
00219     static INT_PTR CALLBACK DlgProc_PROP_HELPER(
00220         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00222     INT_PTR DispatchEvent_p10( HWND, UINT, WPARAM, LPARAM );
00223     void SetData_p10( HWND );
00224     int  GetData_p10( HWND );
00225
00226     //==============================================================
00228     static INT_PTR CALLBACK DlgProc_PROP_BACKUP(
00229         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00231     INT_PTR DispatchEvent_PROP_BACKUP( HWND, UINT, WPARAM, LPARAM );
00232     void SetData_PROP_BACKUP( HWND );
00233     int GetData_PROP_BACKUP( HWND );
00234
00235     //==============================================================
00237     static INT_PTR CALLBACK DlgProc_PROP_WIN(
00238         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00240     INT_PTR DispatchEvent_PROP_WIN( HWND, UINT, WPARAM, LPARAM );
00241     void SetData_PROP_WIN( HWND );
00242     int GetData_PROP_WIN( HWND );
00243
00244     //==============================================================
00246     static INT_PTR CALLBACK DlgProc_PROP_TAB(
00247         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00249     INT_PTR DispatchEvent_PROP_TAB( HWND, UINT, WPARAM, LPARAM );
00250     void SetData_PROP_TAB( HWND );
00251     int GetData_PROP_TAB( HWND );
00252     void EnableTabPropInput(HWND hwndDlg);
00253
00254     //==============================================================
00256     static INT_PTR CALLBACK DlgProc_PROP_EDIT(
00257         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00259     INT_PTR DispatchEvent_PROP_EDIT( HWND, UINT, WPARAM, LPARAM );
00260     void SetData_PROP_EDIT( HWND );
00261     int GetData_PROP_EDIT( HWND );
00262
00263     //==============================================================
00265     static INT_PTR CALLBACK DlgProc_PROP_GREP(
00266         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00268     INT_PTR DispatchEvent_PROP_GREP( HWND, UINT, WPARAM, LPARAM );
00269     void SetData_PROP_GREP( HWND );
00270     int GetData_PROP_GREP( HWND );
00271     void SetRegexpVersion( HWND ); // 2007.08.12 genta バージョン表示
00272
00273     //  From Here Jun. 2, 2001 genta
00274     //==============================================================
00276     static INT_PTR CALLBACK DlgProc_PROP_MACRO(
00277         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00279     INT_PTR DispatchEvent_PROP_Macro( HWND, UINT, WPARAM, LPARAM );
00280     void SetData_PROP_Macro( HWND );
00281     int GetData_PROP_Macro( HWND );
00282     void InitDialog_PROP_Macro( HWND hwndDlg );
00283     //  To Here Jun. 2, 2001 genta
00284     void SetMacro2List_Macro( HWND hwndDlg );
00285     void SelectBaseDir_Macro( HWND hwndDlg );
00286     void OnFileDropdown_Macro( HWND hwndDlg );
00287     void CheckListPosition_Macro( HWND hwndDlg );
00288     static int CALLBACK DirCallback_Macro( HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData );
00289
00290     //==============================================================
00292     static INT_PTR CALLBACK DlgProc_PROP_FILENAME(
00293         HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00295     INT_PTR DispatchEvent_PROP_FILENAME( HWND, UINT, WPARAM, LPARAM );
00296     void SetData_PROP_FILENAME( HWND );
00297     int  GetData_PROP_FILENAME( HWND );
00298     static int SetListViewItem_FILENAME( HWND hListView, int, LPTSTR, LPTSTR, bool );
00299     static void GetListViewItem_FILENAME( HWND hListView, int, LPTSTR, LPTSTR );
00300     static int MoveListViewItem_FILENAME( HWND hListView, int, int );
00301
00302
00303
00304     int nLastPos_Macro;
00305     int m_nLastPos_FILENAME;
00306
00307
00308     void p7_Edit_List_KeyWord( HWND, HWND );    /* p7:リスト中で選択されているキーワードを編集する */
00309     void p7_Delete_List_KeyWord( HWND , HWND ); /* p7:リスト中で選択されているキーワードを削除する */
00310     void p7_Import_List_KeyWord( HWND , HWND ); /* p7:リスト中のキーワードをインポートする */
00311     void p7_Export_List_KeyWord( HWND , HWND ); /* p7:リスト中のキーワードをエクスポートする */
00312     void p7_Clean_List_KeyWord( HWND , HWND );
00313
00314     void p8_Import_CustMenuSetting( HWND ); /* p8:カスタムメニュー設定をインポートする */
00315     void p8_Export_CustMenuSetting( HWND ); /* p8:カスタムメニュー設定をエクスポートする */
00316
00317     //  Aug. 16, 2000 genta
00318     void EnableBackupInput(HWND hwndDlg);   //  バックアップ設定のON/OFF
00319     //  20051107 aroka
00320     void UpdateBackupFile(HWND hwndDlg);    //  バックアップファイルの詳細設定
00321
00322     //  Aug. 21, 2000 genta
00323     void EnableFilePropInput(HWND hwndDlg); //  ファイル設定のON/OFF
00324     //  Sept. 9, 2000 JEPRO     次行を追加
00325     void EnableWinPropInput( HWND hwndDlg) ;    //  ウィンドウ設定のON/OFF
00326     //  Sept. 10, 2000 JEPRO    次行を追加
00327     void CPropCommon::EnableFormatPropInput( HWND hwndDlg );    //  書式設定のON/OFF
00328 };
00329
00330
00331
00333 #endif /* _CPROP1_H_ */
00334
00335
00336 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComTab.cpp

CPropComTab.cpp

共通設定ダイアログボックス、「タブバー」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "sakura.hh"

CPropComTab.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「タブバー」ページ

作者:
Norio Nakatani
日付:
2007.02.11 genta 共通設定に新規タブを追加

CPropComTab.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_CHECK_DispTabWnd,           HIDC_CHECK_DispTabWnd,
    IDC_CHECK_SameTabWidth,         HIDC_CHECK_SameTabWidth,
    IDC_CHECK_DispTabIcon,          HIDC_CHECK_DispTabIcon,
    IDC_CHECK_SortTabList,          HIDC_CHECK_SortTabList,
    IDC_CHECK_DispTabWndMultiWin,   HIDC_CHECK_DispTabWndMultiWin,
    IDC_TABWND_CAPTION,             HIDC_TABWND_CAPTION,
    IDC_CHECK_RetainEmptyWindow,    HIDC_CHECK_RetainEmptyWindow,
    IDC_CHECK_CloseOneWin,          HIDC_CHECK_CloseOneWin,
    IDC_CHECK_ChgWndByWheel,        HIDC_CHECK_ChgWndByWheel,
    0, 0
}

CPropComTab.cpp の 21 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComTab.cpp ソースファイル

CPropComTab.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2007, genta
00010     Copyright (C) 2001, MIK, genta
00011     Copyright (C) 2002, YAZAKI, MIK
00012     Copyright (C) 2003, KEITA
00013     Copyright (C) 2006, ryoji
00014     Copyright (C) 2007, genta, ryoji
00015 */
00016
00017 #include "stdafx.h"
00018 #include "CPropCommon.h"
00019
00020 #include "sakura.hh"
00021 static const DWORD p_helpids[] = {
00022     IDC_CHECK_DispTabWnd,           HIDC_CHECK_DispTabWnd,          //タブウインドウ表示    //@@@ 2003.05.31 MIK
00023     IDC_CHECK_SameTabWidth,         HIDC_CHECK_SameTabWidth,        //等幅  // 2006.08.06 ryoji
00024     IDC_CHECK_DispTabIcon,          HIDC_CHECK_DispTabIcon,         //アイコン表示  // 2006.08.06 ryoji
00025     IDC_CHECK_SortTabList,          HIDC_CHECK_SortTabList,         //タブ一覧ソート    // 2006.08.06 ryoji
00026     IDC_CHECK_DispTabWndMultiWin,   HIDC_CHECK_DispTabWndMultiWin,  //タブウインドウ表示    //@@@ 2003.05.31 MIK
00027     IDC_TABWND_CAPTION,             HIDC_TABWND_CAPTION,            //タブウインドウキャプション    //@@@ 2003.06.15 MIK
00028     IDC_CHECK_RetainEmptyWindow,    HIDC_CHECK_RetainEmptyWindow,   //最後のファイルを閉じたとき(無題)文書を残す    // 2007.02.13 ryoji
00029     IDC_CHECK_CloseOneWin,          HIDC_CHECK_CloseOneWin,         //ウィンドウの閉じるボタンは現在のファイルのみ閉じる    // 2007.02.13 ryoji
00030     IDC_CHECK_ChgWndByWheel,        HIDC_CHECK_ChgWndByWheel,       //マウスホイールでウィンドウ切り替え 2007.04.03 ryoji
00031     0, 0
00032 };
00033
00034 //  From Here Jun. 2, 2001 genta
00041 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_TAB(
00042     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00043 {
00044     return DlgProc( &CPropCommon::DispatchEvent_PROP_TAB, hwndDlg, uMsg, wParam, lParam );
00045 }
00046 //  To Here Jun. 2, 2001 genta
00047
00048 /* メッセージ処理 */
00049 INT_PTR CPropCommon::DispatchEvent_PROP_TAB( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00050 {
00051     NMHDR*      pNMHDR;
00052     NM_UPDOWN*  pMNUD;
00053     int         idCtrl;
00054
00055     switch( uMsg ){
00056
00057     case WM_INITDIALOG:
00058         /* ダイアログデータの設定 p1 */
00059         SetData_PROP_TAB( hwndDlg );
00060         // Modified by KEITA for WIN64 2003.9.6
00061 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00062
00063         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00064
00065         return TRUE;
00066     case WM_NOTIFY:
00067         idCtrl = (int)wParam;
00068         pNMHDR = (NMHDR*)lParam;
00069         pMNUD  = (NM_UPDOWN*)lParam;
00070 //      switch( idCtrl ){
00071 //      default:
00072             switch( pNMHDR->code ){
00073             case PSN_HELP:
00074                 OnHelp( hwndDlg, IDD_PROP_TAB );
00075                 return TRUE;
00076             case PSN_KILLACTIVE:
00077                 /* ダイアログデータの取得 p1 */
00078                 GetData_PROP_TAB( hwndDlg );
00079                 return TRUE;
00080 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00081             case PSN_SETACTIVE:
00082                 m_nPageNum = ID_PAGENUM_TAB;
00083                 return TRUE;
00084             }
00085 //          break;  /* default */
00086 //      }
00087         break;  /* WM_NOTIFY */
00088
00089     case WM_COMMAND:
00090         {
00091             WORD wNotifyCode = HIWORD(wParam);  /* 通知コード */
00092             WORD wID = LOWORD(wParam);  /* 項目ID､ コントロールID､ またはアクセラレータID */
00093             if( wNotifyCode == BN_CLICKED &&
00094                 (wID == IDC_CHECK_DispTabWnd || wID == IDC_CHECK_DispTabWndMultiWin ) ){
00095
00096                 EnableTabPropInput( hwndDlg );
00097             }
00098         }
00099         break;
00100 //@@@ 2001.02.04 Start by MIK: Popup Help
00101     case WM_HELP:
00102         {
00103             HELPINFO *p = (HELPINFO *)lParam;
00104             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00105         }
00106         return TRUE;
00107         /*NOTREACHED*/
00108         //break;
00109 //@@@ 2001.02.04 End
00110
00111 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00112     //Context Menu
00113     case WM_CONTEXTMENU:
00114         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00115         return TRUE;
00116 //@@@ 2001.12.22 End
00117
00118     }
00119     return FALSE;
00120 }
00121
00122
00123 /* ダイアログデータの設定 */
00124 void CPropCommon::SetData_PROP_TAB( HWND hwndDlg )
00125 {
00126
00127     //  Feb. 11, 2007 genta「ウィンドウ」シートより移動
00128     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabWnd, m_Common.m_bDispTabWnd );  //@@@ 2003.05.31 MIK
00129     ::CheckDlgButton( hwndDlg, IDC_CHECK_SameTabWidth, m_Common.m_bSameTabWidth );  //@@@ 2006.01.28 ryoji
00130     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabIcon, m_Common.m_bDispTabIcon );    //@@@ 2006.01.28 ryoji
00131     ::CheckDlgButton( hwndDlg, IDC_CHECK_SortTabList, m_Common.m_bSortTabList );            //@@@ 2006.03.23 fon
00132     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTabWndMultiWin, ! m_Common.m_bDispTabWndMultiWin ); //@@@ 2003.05.31 MIK
00133     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_TABWND_CAPTION ), EM_LIMITTEXT, (WPARAM)(sizeof( m_Common.m_szTabWndCaption ) - 1 ), (LPARAM)0 );
00134     ::SetDlgItemText( hwndDlg, IDC_TABWND_CAPTION, m_Common.m_szTabWndCaption );
00135
00136     //  Feb. 11, 2007 genta 新規作成
00137     ::CheckDlgButton( hwndDlg, IDC_CHECK_RetainEmptyWindow, m_Common.m_bTab_RetainEmptyWin );
00138     ::CheckDlgButton( hwndDlg, IDC_CHECK_CloseOneWin, m_Common.m_bTab_CloseOneWin );
00139     ::CheckDlgButton( hwndDlg, IDC_CHECK_ChgWndByWheel, m_Common.m_bChgWndByWheel );    // 2007.04.03 ryoji
00140
00141     EnableTabPropInput(hwndDlg);
00142     return;
00143 }
00144
00145 /* ダイアログデータの取得 */
00146 int CPropCommon::GetData_PROP_TAB( HWND hwndDlg )
00147 {
00148     //  Feb. 11, 2007 genta「ウィンドウ」シートより移動
00149     m_Common.m_bDispTabWnd = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWnd );
00150     m_Common.m_bSameTabWidth = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SameTabWidth );     // 2006.01.28 ryoji
00151     m_Common.m_bDispTabIcon = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabIcon );       // 2006.01.28 ryoji
00152     m_Common.m_bSortTabList = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SortTabList );       // 2006.03.23 fon
00153     m_Common.m_bDispTabWndMultiWin =
00154         ( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWndMultiWin ) == BST_CHECKED ) ? FALSE : TRUE;
00155     ::GetDlgItemText( hwndDlg, IDC_TABWND_CAPTION, m_Common.m_szTabWndCaption, sizeof( m_Common.m_szTabWndCaption ) );
00156
00157     //  Feb. 11, 2007 genta 新規作成
00158     m_Common.m_bTab_RetainEmptyWin = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RetainEmptyWindow );
00159     m_Common.m_bTab_CloseOneWin = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_CloseOneWin );
00160     m_Common.m_bChgWndByWheel = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_ChgWndByWheel );   // 2007.04.03 ryoji
00161
00162     return TRUE;
00163 }
00164
00169 void CPropCommon::EnableTabPropInput(HWND hwndDlg)
00170 {
00171     if( !::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWnd ) )
00172     {
00173         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SameTabWidth       ), FALSE );
00174         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabIcon        ), FALSE );
00175         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SortTabList        ), FALSE );
00176         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_TABWND_CAPTION           ), FALSE );
00177         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabWndMultiWin ), FALSE );
00178         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_RetainEmptyWindow  ), FALSE );
00179         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_CloseOneWin        ), FALSE );
00180         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_ChgWndByWheel      ), FALSE ); // 2007.04.03 ryoji
00181     }
00182     else
00183     {
00184         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SameTabWidth       ), TRUE );
00185         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabIcon        ), TRUE );
00186         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_SortTabList        ), TRUE );
00187         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_TABWND_CAPTION           ), TRUE );
00188         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DispTabWndMultiWin ), TRUE );
00189         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_ChgWndByWheel      ), TRUE );  // 2007.04.03 ryoji
00190         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTabWndMultiWin ) )
00191         {
00192             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_RetainEmptyWindow ), TRUE );
00193             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_CloseOneWin       ), TRUE );
00194         }
00195         else {
00196             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_RetainEmptyWindow ), FALSE );
00197             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_CloseOneWin       ), FALSE );
00198         }
00199     }
00200 }
00201 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComToolbar.cpp

CPropComToolbar.cpp

共通設定ダイアログボックス、「ツールバー」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "CMenuDrawer.h"
#include "CImageListMgr.h"
#include "debug.h"
#include "sakura.hh"

CPropComToolbar.cppのインクルード依存関係図

ソースコードを見る。

関数

int | Listbox_INSERTDATA (HWND hWnd, int index, int value)
int | Listbox_ADDDATA (HWND hWnd, int index, int value)

変数

static const DWORD | p_helpids []

説明

共通設定ダイアログボックス、「ツールバー」ページ

作者:
Norio Nakatani

CPropComToolbar.cpp で定義されています。

関数

int Listbox_ADDDATA | ( | HWND | hWnd,
 |  | int | index,
 |  | int | value
 | ) |

Owner Draw List Boxに指定の値を追加する (Windows XPの問題回避用)

Windows XP + manifestの時にLB_ADDSTRINGが値0を受け付けないので とりあえず0以外の値を入れてから0に設定し直して回避する。 1回目の挿入は0でなければ何でもいいはず。

引数:
hWnd | [in] リストボックスのウィンドウハンドル
index | [in] 挿入位置
value | [in] 挿入する値
戻り値:
挿入位置。エラーの時はLB_ERRまたはLB_ERRSPACE
日付:
2002.04.13 genta
引数:
hWnd | handle to destination window
index | item index

CPropComToolbar.cpp の 131 行で定義されています。

参照先 GSTR_APPNAME・MYMESSAGEBOX・NULL.

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::SetData_PROP_TOOLBAR().

int Listbox_INSERTDATA | ( | HWND | hWnd,
 |  | int | index,
 |  | int | value
 | ) |

Owner Draw List Boxに指定の値を挿入する (Windows XPの問題回避用)

Windows XP + manifestの時にLB_INSERTSTRINGが値0を受け付けないので とりあえず0以外の値を入れてから0に設定し直して回避する。 1回目の挿入は0でなければ何でもいいはず。

引数:
hWnd | [in] リストボックスのウィンドウハンドル
index | [in] 挿入位置
value | [in] 挿入する値
戻り値:
挿入位置。エラーの時はLB_ERRまたはLB_ERRSPACE
日付:
2002.04.13 genta
引数:
hWnd | handle to destination window
index | item index

CPropComToolbar.cpp の 96 行で定義されています。

参照先 GSTR_APPNAME・MYMESSAGEBOX・NULL.

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_DELETE,              HIDC_BUTTON_DELETE_TOOLBAR,
    IDC_BUTTON_INSERTSEPARATOR,     HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR,
    IDC_BUTTON_INSERT,              HIDC_BUTTON_INSERT_TOOLBAR,
    IDC_BUTTON_ADD,                 HIDC_BUTTON_ADD_TOOLBAR,
    IDC_BUTTON_UP,                  HIDC_BUTTON_UP_TOOLBAR,
    IDC_BUTTON_DOWN,                HIDC_BUTTON_DOWN_TOOLBAR,
    IDC_CHECK_TOOLBARISFLAT,        HIDC_CHECK_TOOLBARISFLAT,
    IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND_TOOLBAR,
    IDC_LIST_FUNC,                  HIDC_LIST_FUNC_TOOLBAR,
    IDC_LIST_RES,                   HIDC_LIST_RES_TOOLBAR,
    IDC_BUTTON_INSERTWRAP,          HIDC_BUTTON_INSERTWRAP,
    IDC_LABEL_MENUFUNCKIND,         -1,
    IDC_LABEL_MENUFUNC,             -1,
    IDC_LABEL_TOOLBAR,              -1,

    0, 0
}

CPropComToolbar.cpp の 28 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComToolbar.cpp ソースファイル

CPropComToolbar.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, genta, jepro, MIK
00009     Copyright (C) 2002, genta, MIK, YAZAKI, aroka
00010     Copyright (C) 2003, Moca, KEITA
00011     Copyright (C) 2005, aroka
00012     Copyright (C) 2006, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holders to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CPropCommon.h"
00020 #include "CMenuDrawer.h" // 2002/2/10 aroka
00021 #include "CImageListMgr.h" // 2005/8/9 aroka
00022 #include "debug.h" // 2002/2/10 aroka
00023
00024
00025 //@@@ 2001.02.04 Start by MIK: Popup Help
00026 #if 1   //@@@ 2002.01.03 add MIK
00027 #include "sakura.hh"
00028 static const DWORD p_helpids[] = {  //11000
00029     IDC_BUTTON_DELETE,              HIDC_BUTTON_DELETE_TOOLBAR,             //ツールバーから機能削除
00030     IDC_BUTTON_INSERTSEPARATOR,     HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR,    //セパレータ挿入
00031     IDC_BUTTON_INSERT,              HIDC_BUTTON_INSERT_TOOLBAR,             //ツールバーへ機能挿入
00032     IDC_BUTTON_ADD,                 HIDC_BUTTON_ADD_TOOLBAR,                //ツールバーへ機能追加
00033     IDC_BUTTON_UP,                  HIDC_BUTTON_UP_TOOLBAR,                 //ツールバーの機能を上へ移動
00034     IDC_BUTTON_DOWN,                HIDC_BUTTON_DOWN_TOOLBAR,               //ツールバーの機能を下へ移動
00035     IDC_CHECK_TOOLBARISFLAT,        HIDC_CHECK_TOOLBARISFLAT,               //フラットなボタン
00036     IDC_COMBO_FUNCKIND,             HIDC_COMBO_FUNCKIND_TOOLBAR,            //機能の種別
00037     IDC_LIST_FUNC,                  HIDC_LIST_FUNC_TOOLBAR,                 //機能一覧
00038     IDC_LIST_RES,                   HIDC_LIST_RES_TOOLBAR,                  //ツールバー一覧
00039     IDC_BUTTON_INSERTWRAP,          HIDC_BUTTON_INSERTWRAP,                 //ツールバー折返    // 2006.08.06 ryoji
00040     IDC_LABEL_MENUFUNCKIND,         -1,
00041     IDC_LABEL_MENUFUNC,             -1,
00042     IDC_LABEL_TOOLBAR,              -1,
00043 //  IDC_STATIC,                     -1,
00044     0, 0
00045 };
00046 #else
00047 static const DWORD p_helpids[] = {  //11000
00048     IDC_BUTTON_DELETE,              11000,  //ツールバーから機能削除
00049     IDC_BUTTON_INSERTSEPARATOR,     11001,  //セパレータ挿入
00050     IDC_BUTTON_INSERT,              11002,  //ツールバーへ機能挿入
00051     IDC_BUTTON_ADD,                 11003,  //ツールバーへ機能追加
00052     IDC_BUTTON_UP,                  11004,  //ツールバーの機能を上へ移動
00053     IDC_BUTTON_DOWN,                11005,  //ツールバーの機能を下へ移動
00054     IDC_CHECK_TOOLBARISFLAT,        11010,  //フラットなボタン
00055     IDC_COMBO_FUNCKIND,             11030,  //機能の種別
00056     IDC_LIST_FUNC,                  11040,  //機能一覧
00057     IDC_LIST_RES,                   11041,  //ツールバー一覧
00058     IDC_LABEL_MENUFUNCKIND,         -1,
00059     IDC_LABEL_MENUFUNC,             -1,
00060     IDC_LABEL_TOOLBAR,              -1,
00061 //  IDC_STATIC,                     -1,
00062     0, 0
00063 };
00064 #endif
00065 //@@@ 2001.02.04 End
00066
00067 //  From Here Jun. 2, 2001 genta
00074 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_TOOLBAR(
00075     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00076 {
00077     return DlgProc( &CPropCommon::DispatchEvent_PROP_TOOLBAR, hwndDlg, uMsg, wParam, lParam );
00078 }
00079 //  To Here Jun. 2, 2001 genta
00080
00081 //  From Here Apr. 13, 2002 genta
00096 int Listbox_INSERTDATA(
00097     HWND hWnd,
00098     int index,
00099     int value
00100 )
00101 {
00102     int nIndex1 = ::SendMessage( hWnd, LB_INSERTSTRING, index, 1 );
00103     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00104 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00105             _T("Toolbar Dialog: 要素の挿入に失敗しました。(%d:%d)"), index, nIndex1 );
00106         return nIndex1;
00107     }
00108     else if( ::SendMessage( hWnd, LB_SETITEMDATA, nIndex1, value ) == LB_ERR ){
00109 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00110             _T("Toolbar Dialog: INS: 値の設定に失敗しました。:%d"), nIndex1 );
00111         return LB_ERR;
00112     }
00113     return nIndex1;
00114 }
00115
00116 //  From Here Apr. 13, 2002 genta
00131 int Listbox_ADDDATA(
00132     HWND hWnd,
00133     int index,
00134     int value
00135 )
00136 {
00137     int nIndex1 = ::SendMessage( hWnd, LB_ADDSTRING, index, 1 );
00138     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00139 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00140             _T("Toolbar Dialog: 要素の追加に失敗しました。(%d:%d)"), index, nIndex1 );
00141         return nIndex1;
00142     }
00143     else if( ::SendMessage( hWnd, LB_SETITEMDATA, nIndex1, value ) == LB_ERR ){
00144 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00145             _T("Toolbar Dialog: ADD: 値の設定に失敗しました。:%d"), nIndex1 );
00146         return LB_ERR;
00147     }
00148     return nIndex1;
00149 }
00150
00151 /* PROP_TOOLBAR メッセージ処理 */
00152 INT_PTR CPropCommon::DispatchEvent_PROP_TOOLBAR(
00153     HWND    hwndDlg,    // handle to dialog box
00154     UINT    uMsg,       // message
00155     WPARAM  wParam,     // first message parameter
00156     LPARAM  lParam      // second message parameter
00157 )
00158 {
00159     WORD                wNotifyCode;
00160     WORD                wID;
00161     HWND                hwndCtl;
00162     NMHDR*              pNMHDR;
00163     NM_UPDOWN*          pMNUD;
00164     int                 idCtrl;
00165     static HWND         hwndCombo;
00166     static HWND         hwndFuncList;
00167     static HWND         hwndResList;
00168     LPDRAWITEMSTRUCT    pDis;
00169     int                 nIndex1;
00170     int                 nIndex2;
00171 //  int                 nIndex3;
00172     int                 nNum;
00173     int                 i;
00174     int                 j;
00175     static char         pszLabel[256];
00176     HDC                 hdc;
00177     TEXTMETRIC          tm;
00178     static int          nListItemHeight;
00179     LRESULT             lResult;
00180
00181     switch( uMsg ){
00182     case WM_INITDIALOG:
00183         /* ダイアログデータの設定 PROP_TOOLBAR */
00184         SetData_PROP_TOOLBAR( hwndDlg );
00185         // Modified by KEITA for WIN64 2003.9.6
00186 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00187
00188         /* コントロールのハンドルを取得 */
00189         hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00190         hwndFuncList = ::GetDlgItem( hwndDlg, IDC_LIST_FUNC );
00191         hwndResList = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00192
00193         hdc = ::GetDC( hwndDlg );
00194         ::GetTextMetrics( hdc, &tm );
00195         ::ReleaseDC( hwndDlg, hdc );
00196         nListItemHeight = 18/*18*/; //Oct. 18, 2000 JEPRO 「ツールバー」タブでの機能アイテムの行間を少し狭くして表示行数を増やした(20→18 これ以上小さくしても効果はないようだ)
00197         if( nListItemHeight < tm.tmHeight ){
00198             nListItemHeight = tm.tmHeight;
00199         }
00200 //      nListItemHeight+=2;
00201
00202 //  From Here Oct.14, 2000 JEPRO added  (Ref. CPropComCustmenu.cpp 内のWM_INITDIALOGを参考にした)
00203         /* キー選択時の処理 */
00204         ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCombo );
00205 //  To Here Oct. 14, 2000
00206
00207         ::SetTimer( hwndDlg, 1, 300, NULL );
00208
00209         return TRUE;
00210
00211     case WM_DRAWITEM:
00212         idCtrl = (UINT) wParam; /* コントロールのID */
00213         pDis = (LPDRAWITEMSTRUCT) lParam;   /* 項目描画情報 */
00214         switch( idCtrl ){
00215         case IDC_LIST_RES:  /* ツールバーボタン結果リスト */
00216         case IDC_LIST_FUNC: /* ボタン一覧リスト */
00217             DrawToolBarItemList( pDis );    /* ツールバーボタンリストのアイテム描画 */
00218             return TRUE;
00219         }
00220         return TRUE;
00221
00222     case WM_NOTIFY:
00223         idCtrl = (int)wParam;
00224         pNMHDR = (NMHDR*)lParam;
00225         pMNUD  = (NM_UPDOWN*)lParam;
00226         switch( pNMHDR->code ){
00227         case PSN_HELP:
00228             OnHelp( hwndDlg, IDD_PROP_TOOLBAR );
00229             return TRUE;
00230         case PSN_KILLACTIVE:
00231 //          MYTRACE( "PROP_TOOLBAR PSN_KILLACTIVE\n" );
00232             /* ダイアログデータの取得 PROP_TOOLBAR */
00233             GetData_PROP_TOOLBAR( hwndDlg );
00234             return TRUE;
00235 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00236         case PSN_SETACTIVE:
00237             m_nPageNum = ID_PAGENUM_TOOLBAR;
00238             return TRUE;
00239         }
00240         break;
00241
00242     case WM_COMMAND:
00243         wNotifyCode = HIWORD( wParam ); /* 通知コード */
00244         wID = LOWORD( wParam );         /* 項目ID､ コントロールID､ またはアクセラレータID */
00245         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00246
00247         if( hwndResList == hwndCtl ){
00248             switch( wNotifyCode ){
00249             case LBN_SELCHANGE:
00250                 return TRUE;
00251             }
00252         }else
00253         if( hwndCombo == hwndCtl ){
00254             switch( wNotifyCode ){
00255             case CBN_SELCHANGE:
00256 //              nIndex = ::SendMessage( hwndKeyList, LB_GETCURSEL, 0, 0 );
00257                 nIndex2 = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
00258
00259                 ::SendMessage( hwndFuncList, LB_RESETCONTENT, 0, 0 );
00260 //              nNum = ::SendMessage( hwndFuncList, LB_GETCOUNT, 0, 0 );
00261 //              for( i = 0; i < nNum; ++i ){
00262 //                  ::SendMessage( hwndFuncList, LB_DELETESTRING, 0, 0 );
00263 //              }
00264                 /* 機能一覧に文字列をセット (リストボックス) */
00265                 //  From Here Oct. 15, 2001 genta Lookupを使うように変更
00266                 nNum = m_cLookup.GetItemCount( nIndex2 );
00267                 for( i = 0; i < nNum; ++i ){
00268                     nIndex1 = m_cLookup.Pos2FuncCode( nIndex2, i );
00269 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00270 //                  for( j = 0; j < m_cShareData.m_nMyButtonNum; ++j ){
00271 //                      if( m_cShareData.m_tbMyButton[j].idCommand == nIndex1 ){
00272 // 2005/8/9 aroka CMenuDrawerのメンバ変数をカプセル化
00273 //                  for( j = 0; j < m_pcMenuDrawer->m_nMyButtonNum; ++j ){
00274 //                      if( m_pcMenuDrawer->m_tbMyButton[j].idCommand == nIndex1 ){ //  jは、nIndex1で指定された機能コードを持つ
00275 //              //  To Here Oct. 15, 2001 genta Lookupを使うように変更
00276 //                          break;
00277 //                      }
00278 //                  }
00279                     int nIndex = m_pcMenuDrawer->FindIndexFromCommandId( nIndex1 );
00280 //jepro note: 次行不要???
00281 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00282 //                  if( j < m_cShareData.m_nMyButtonNum ){
00283 // 2005/8/9 aroka CMenuDrawerのメンバ変数をカプセル化
00284 //                  if( j < m_pcMenuDrawer->m_nMyButtonNum ){
00285                     if( nIndex >= 0 ){
00286
00287 //                      /* ツールバーボタンの情報をセット (リストボックス) */
00288 //                      for( i = 0; i < m_Common.m_nToolBarButtonNum; ++i ){
00289                             //  From Here Apr. 13, 2002 genta
00290                             lResult = ::Listbox_ADDDATA( hwndFuncList, 0, (LPARAM)nIndex );
00291                             if( lResult == LB_ERR || lResult == LB_ERRSPACE ){
00292                                 break;
00293                             }
00294                             //  To Here Apr. 13, 2002 genta
00295                             lResult = ::SendMessage( hwndFuncList, LB_SETITEMHEIGHT , lResult, (LPARAM)MAKELPARAM(nListItemHeight, 0) );
00296 //                      }
00297                     }
00298
00299 //jeprotest コメントアウトされていた以下の５行のコメントアウトを解除するとエラーが出る
00300 //                  if( 0 < ::LoadString( m_hInstance, (nsFuncCode::ppnFuncListArr[nIndex2])[i], pszLabel, sizeof(pszLabel) ) ){
00301 //                      ::SendMessage( hwndFuncList, LB_ADDSTRING, 0, (LPARAM)pszLabel );
00302 //                  }else{
00303 //                      ::SendMessage( hwndFuncList, LB_ADDSTRING, 0, (LPARAM)"--未定義--" );
00304 //                  }
00305                 }
00306                 return TRUE;
00307             }
00308         }else{
00309             switch( wNotifyCode ){
00310             /* ボタン／チェックボックスがクリックされた */
00311             case BN_CLICKED:
00312                 switch( wID ){
00313                 case IDC_BUTTON_INSERTSEPARATOR:
00314                     nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
00315                     if( LB_ERR == nIndex1 ){
00316 //                      break;
00317                         nIndex1 = 0;
00318                     }
00319                     //  From Here Apr. 13, 2002 genta
00320                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, 0 );
00321                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00322                         break;
00323                     }
00324                     //  To Here Apr. 13, 2002 genta
00325                     ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00326                     break;
00327
00328 // 2005/8/9 aroka 折返ボタンが押されたら、右のリストに「ツールバー折返」を追加する。
00329                 case IDC_BUTTON_INSERTWRAP:
00330                     nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
00331                     if( LB_ERR == nIndex1 ){
00332 //                      break;
00333                         nIndex1 = 0;
00334                     }
00335                     //  From Here Apr. 13, 2002 genta
00336                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, MAX_TOOLBARBUTTONS );
00337                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00338                         break;
00339                     }
00340                     //  To Here Apr. 13, 2002 genta
00341                     ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00342                     break;
00343
00344                 case IDC_BUTTON_DELETE:
00345                     nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
00346                     if( LB_ERR == nIndex1 ){
00347                         break;
00348                     }
00349                     i = ::SendMessage( hwndResList, LB_DELETESTRING, nIndex1, 0 );
00350                     if( i == LB_ERR ){
00351                         break;
00352                     }
00353                     if( nIndex1 >= i ){
00354                         if( i == 0 ){
00355                             i = ::SendMessage( hwndResList, LB_SETCURSEL, 0, 0 );
00356                         }else{
00357                             i = ::SendMessage( hwndResList, LB_SETCURSEL, i - 1, 0 );
00358                         }
00359                     }else{
00360                         i = ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00361                     }
00362                     break;
00363
00364                 case IDC_BUTTON_INSERT:
00365                     nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
00366                     if( LB_ERR == nIndex1 ){
00367 //                      break;
00368                         nIndex1 = 0;
00369                     }
00370                     nIndex2 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
00371                     if( LB_ERR == nIndex2 ){
00372                         break;
00373                     }
00374                     i = ::SendMessage( hwndFuncList, LB_GETITEMDATA, nIndex2, 0 );
00375                     //  From Here Apr. 13, 2002 genta
00376                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, i );
00377                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00378                         break;
00379                     }
00380                     //  To Here Apr. 13, 2002 genta
00381                     ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1 + 1, 0 );
00382                     break;
00383
00384
00385                 case IDC_BUTTON_ADD:
00386                     nIndex1 = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
00387                     nIndex2 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
00388                     if( LB_ERR == nIndex2 ){
00389                         break;
00390                     }
00391                     i = ::SendMessage( hwndFuncList, LB_GETITEMDATA, nIndex2, 0 );
00392                     //  From Here Apr. 13, 2002 genta
00393                     //  ここでは i != 0 だとは思うけど、一応保険です。
00394                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1, i );
00395                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00396 						::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00397                             _T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
00398                         break;
00399                     }
00400                     //  To Here Apr. 13, 2002 genta
00401                     ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00402                     break;
00403
00404                 case IDC_BUTTON_UP:
00405                     nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
00406                     if( LB_ERR == nIndex1 || 0 >= nIndex1 ){
00407                         break;
00408                     }
00409                     i = ::SendMessage( hwndResList, LB_GETITEMDATA, nIndex1, 0 );
00410
00411                     j = ::SendMessage( hwndResList, LB_DELETESTRING, nIndex1, 0 );
00412                     if( j == LB_ERR ){
00413                         break;
00414                     }
00415                     //  From Here Apr. 13, 2002 genta
00416                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1 - 1, i );
00417                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00418 						::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00419                             _T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
00420                         break;
00421                     }
00422                     //  To Here Apr. 13, 2002 genta
00423                     ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00424                     break;
00425
00426                 case IDC_BUTTON_DOWN:
00427                     i = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
00428                     nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
00429                     if( LB_ERR == nIndex1 || nIndex1 + 1 >= i ){
00430                         break;
00431                     }
00432                     i = ::SendMessage( hwndResList, LB_GETITEMDATA, nIndex1, 0 );
00433
00434                     j = ::SendMessage( hwndResList, LB_DELETESTRING, nIndex1, 0 );
00435                     if( j == LB_ERR ){
00436                         break;
00437                     }
00438                     //  From Here Apr. 13, 2002 genta
00439                     nIndex1 = ::Listbox_INSERTDATA( hwndResList, nIndex1 + 1, i );
00440                     if( nIndex1 == LB_ERR || nIndex1 == LB_ERRSPACE ){
00441 						::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP | MB_TOPMOST, GSTR_APPNAME,
00442                             _T("Toolbar Dialog: 要素の追加に失敗しました。:%d"), nIndex1 );
00443                         break;
00444                     }
00445                     ::SendMessage( hwndResList, LB_SETCURSEL, nIndex1, 0 );
00446                     //  To Here Apr. 13, 2002 genta
00447                     break;
00448                 }
00449
00450                 break;
00451             }
00452         }
00453         break;
00454
00455     case WM_TIMER:
00456         nIndex1 = ::SendMessage( hwndResList, LB_GETCURSEL, 0, 0 );
00457         nIndex2 = ::SendMessage( hwndFuncList, LB_GETCURSEL, 0, 0 );
00458         i = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
00459         if( LB_ERR == nIndex1 ){
00460             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), FALSE );
00461             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00462             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00463         }else{
00464             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DELETE ), TRUE );
00465             if( nIndex1 <= 0 ){
00466                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), FALSE );
00467             }else{
00468                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_UP ), TRUE );
00469             }
00470             if( nIndex1 + 1 >= i ){
00471                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), FALSE );
00472             }else{
00473                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_DOWN ), TRUE );
00474             }
00475         }
00476         if( LB_ERR == nIndex1 || LB_ERR == nIndex2 ){
00477             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), FALSE );
00478         }else{
00479             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_INSERT ), TRUE );
00480         }
00481         if( LB_ERR == nIndex2 ){
00482             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), FALSE );
00483         }else{
00484             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_ADD ), TRUE );
00485         }
00486         break;
00487
00488     case WM_DESTROY:
00489         ::KillTimer( hwndDlg, 1 );
00490         break;
00491
00492 //@@@ 2001.02.04 Start by MIK: Popup Help
00493     case WM_HELP:
00494         {
00495             HELPINFO *p = (HELPINFO *)lParam;
00496             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00497         }
00498         return TRUE;
00499         /*NOTREACHED*/
00500         //break;
00501 //@@@ 2001.02.04 End
00502
00503 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00504     //Context Menu
00505     case WM_CONTEXTMENU:
00506         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00507         return TRUE;
00508 //@@@ 2001.12.22 End
00509
00510     }
00511     return FALSE;
00512 }
00513
00514
00515
00516
00517 /* ダイアログデータの設定 PROP_TOOLBAR */
00518 void CPropCommon::SetData_PROP_TOOLBAR( HWND hwndDlg )
00519 {
00520     HWND        hwndCombo;
00521     HWND        hwndResList;
00522     HDC         hdc;
00523     int         i;
00524     int         nListItemHeight;
00525     LRESULT     lResult;
00526     TEXTMETRIC  tm;
00527
00528     /* 機能種別一覧に文字列をセット(コンボボックス) */
00529     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_FUNCKIND );
00530     m_cLookup.SetCategory2Combo( hwndCombo );   //  Oct. 15, 2001 genta
00531 //  for( i = 0; i < nsFuncCode::nFuncKindNum; ++i ){
00532 //      ::SendMessage( hwndCombo, CB_ADDSTRING, 0, (LPARAM)nsFuncCode::ppszFuncKind[i] );
00533 //  }
00534
00535     /* 種別の先頭の項目を選択(コンボボックス) */
00536     ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 ); //Oct. 14, 2000 JEPRO JEPRO 「--未定義--」を表示させないように大元 Funcode.cpp で変更してある
00537     ::PostMessage( hwndCombo, WM_COMMAND, MAKELONG( IDC_COMBO_FUNCKIND, CBN_SELCHANGE ), (LPARAM)hwndCombo );
00538
00539     /* コントロールのハンドルを取得 */
00540     hwndResList = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00541
00542     hdc = ::GetDC( hwndDlg );
00543     ::GetTextMetrics( hdc, &tm );
00544     ::ReleaseDC( hwndDlg, hdc );
00545
00546     nListItemHeight = 18; //Oct. 18, 2000 JEPRO 「ツールバー」タブでのツールバーアイテムの行間を少し狭くして表示行数を増やした(20→18 これ以上小さくしても効果はないようだ)
00547     if( nListItemHeight < tm.tmHeight ){
00548         nListItemHeight = tm.tmHeight;
00549     }
00550 //  nListItemHeight+=2;
00551
00552     /* ツールバーボタンの情報をセット(リストボックス)*/
00553     for( i = 0; i < m_Common.m_nToolBarButtonNum; ++i ){
00554         //  From Here Apr. 13, 2002 genta
00555         lResult = ::Listbox_ADDDATA( hwndResList, 0, (LPARAM)m_Common.m_nToolBarButtonIdxArr[i] );
00556         if( lResult == LB_ERR || lResult == LB_ERRSPACE ){
00557             break;
00558         }
00559         //  To Here Apr. 13, 2002 genta
00560         lResult = ::SendMessage( hwndResList, LB_SETITEMHEIGHT , lResult, (LPARAM)MAKELPARAM(nListItemHeight, 0) );
00561     }
00562 //  /* ツールバーの先頭の項目を選択(リストボックス)*/
00563     ::SendMessage( hwndResList, LB_SETCURSEL, 0, 0 );   //Oct. 14, 2000 JEPRO ここをコメントアウトすると先頭項目が選択されなくなる
00564
00565     /* フラットツールバーにする／しない  */
00566     ::CheckDlgButton( hwndDlg, IDC_CHECK_TOOLBARISFLAT, m_Common.m_bToolBarIsFlat );
00567     return;
00568 }
00569
00570
00571
00572 /* ダイアログデータの取得 PROP_TOOLBAR */
00573 int CPropCommon::GetData_PROP_TOOLBAR( HWND hwndDlg )
00574 {
00575     HWND    hwndResList;
00576     int     i;
00577     int     j;
00578     int     k;
00579
00580 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00581 //  m_nPageNum = ID_PAGENUM_TOOLBAR;
00582
00583
00584     hwndResList = ::GetDlgItem( hwndDlg, IDC_LIST_RES );
00585
00586     /* ツールバーボタンの数 */
00587     m_Common.m_nToolBarButtonNum = ::SendMessage( hwndResList, LB_GETCOUNT, 0, 0 );
00588
00589     /* ツールバーボタンの情報を取得 */
00590     k = 0;
00591     for( i = 0; i < m_Common.m_nToolBarButtonNum; ++i ){
00592         j = ::SendMessage( hwndResList, LB_GETITEMDATA, i, 0 );
00593         if( LB_ERR != j ){
00594             m_Common.m_nToolBarButtonIdxArr[k] = j;
00595             k++;
00596         }
00597     }
00598     m_Common.m_nToolBarButtonNum = k;
00599
00600     /* フラットツールバーにする／しない  */
00601     m_Common.m_bToolBarIsFlat = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TOOLBARISFLAT );
00602
00603     return TRUE;
00604 }
00605
00606 /* ツールバーボタンリストのアイテム描画
00607     @date 2003.08.27 Moca システムカラーのブラシはCreateSolidBrushをやめGetSysColorBrushに
00608     @date 2005.08.09 aroka CPropCommon.cpp から移動
00609 */
00610 void CPropCommon::DrawToolBarItemList( DRAWITEMSTRUCT* pDis )
00611 {
00612     char        szLabel[256];
00613     TBBUTTON    tbb;
00614     HBRUSH      hBrush;
00615     RECT        rc;
00616     RECT        rc0;
00617     RECT        rc1;
00618     RECT        rc2;
00619
00620
00621 //  hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
00622     hBrush = ::GetSysColorBrush( COLOR_WINDOW );
00623     ::FillRect( pDis->hDC, &pDis->rcItem, hBrush );
00624 //  ::DeleteObject( hBrush );
00625
00626     rc  = pDis->rcItem;
00627     rc0 = pDis->rcItem;
00628     rc0.left += 18;//20 //Oct. 18, 2000 JEPRO 行先頭のアイコンとそれに続くキャプションとの間を少し詰めた(20→18)
00629     rc1 = rc0;
00630     rc2 = rc0;
00631
00632     if( (int)pDis->itemID < 0 ){
00633     }else{
00634
00635 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。
00636 //      tbb = m_cShareData.m_tbMyButton[pDis->itemData];
00637 //      tbb = m_pcMenuDrawer->m_tbMyButton[pDis->itemData];
00638         tbb = m_pcMenuDrawer->getButton(pDis->itemData);
00639
00640         if( (0 != tbb.idCommand) && (F_MENU_NOT_USED_FIRST > tbb.idCommand) ){
00641             /* ビットマップの表示 灰色を透明描画 */
00642             m_pcIcons->Draw( tbb.iBitmap, pDis->hDC, rc.left + 2, rc.top + 2, ILD_NORMAL );
00643         }
00644
00645         if( 0 == tbb.idCommand ){
00646             strcpy( szLabel, "───────────" );    // nLength 未使用 2003/01/09 Moca
00647         //  From Here Oct. 15, 2001 genta
00648         }else if( !m_cLookup.Funccode2Name( tbb.idCommand, szLabel, sizeof( szLabel ) )){
00649             wsprintf( szLabel, "%s", "-- UNKNOWN --" );
00650         }
00651         //  To Here Oct. 15, 2001 genta
00652
00653         /* アイテムが選択されている */
00654         if( pDis->itemState & ODS_SELECTED ){
00655 //          hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_HIGHLIGHT ) );
00656             hBrush = ::GetSysColorBrush( COLOR_HIGHLIGHT );
00657             ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_HIGHLIGHTTEXT ) );
00658         }else{
00659 //          hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
00660             hBrush = ::GetSysColorBrush( COLOR_WINDOW );
00661             ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_WINDOWTEXT ) );
00662         }
00663         rc1.left++;
00664         rc1.top++;
00665         rc1.right--;
00666         rc1.bottom--;
00667         ::FillRect( pDis->hDC, &rc1, hBrush );
00668 //      ::DeleteObject( hBrush );
00669
00670         ::SetBkMode( pDis->hDC, TRANSPARENT );
00671         ::TextOut( pDis->hDC, rc1.left + 4, rc1.top + 2, szLabel, strlen( szLabel ) );
00672
00673     }
00674
00675     /* アイテムにフォーカスがある */
00676     if( pDis->itemState & ODS_FOCUS ){
00677         ::DrawFocusRect( pDis->hDC, &rc2 );
00678     }
00679     return;
00680 }
00681
00682
00683 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComWin.cpp

CPropComWin.cpp

共通設定ダイアログボックス、「ウィンドウ」ページ [詳細]

#include "stdafx.h"
#include "CPropCommon.h"
#include "debug.h"
#include "global.h"
#include "CDlgWinSize.h"
#include "sakura.hh"

CPropComWin.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

共通設定ダイアログボックス、「ウィンドウ」ページ

作者:
Norio Nakatani

CPropComWin.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_CHECK_DispFUNCKEYWND,       HIDC_CHECK_DispFUNCKEYWND,
    IDC_CHECK_DispSTATUSBAR,        HIDC_CHECK_DispSTATUSBAR,
    IDC_CHECK_DispTOOLBAR,          HIDC_CHECK_DispTOOLBAR,
    IDC_CHECK_bScrollBarHorz,       HIDC_CHECK_bScrollBarHorz,
    IDC_CHECK_bMenuIcon,            HIDC_CHECK_bMenuIcon,
    IDC_CHECK_SplitterWndVScroll,   HIDC_CHECK_SplitterWndVScroll,
    IDC_CHECK_SplitterWndHScroll,   HIDC_CHECK_SplitterWndHScroll,
    IDC_EDIT_nRulerBottomSpace,     HIDC_EDIT_nRulerBottomSpace,
    IDC_EDIT_nRulerHeight,          HIDC_EDIT_nRulerHeight,
    IDC_EDIT_nLineNumberRightSpace, HIDC_EDIT_nLineNumberRightSpace,
    IDC_RADIO_FUNCKEYWND_PLACE1,    HIDC_RADIO_FUNCKEYWND_PLACE1,
    IDC_RADIO_FUNCKEYWND_PLACE2,    HIDC_RADIO_FUNCKEYWND_PLACE2,
    IDC_EDIT_FUNCKEYWND_GROUPNUM,   HIDC_EDIT_FUNCKEYWND_GROUPNUM,
    IDC_SPIN_nRulerBottomSpace,     HIDC_EDIT_nRulerBottomSpace,
    IDC_SPIN_nRulerHeight,          HIDC_EDIT_nRulerHeight,
    IDC_SPIN_nLineNumberRightSpace, HIDC_EDIT_nLineNumberRightSpace,
    IDC_SPIN_FUNCKEYWND_GROUPNUM,   HIDC_EDIT_FUNCKEYWND_GROUPNUM,
    IDC_WINCAPTION_ACTIVE,          HIDC_WINCAPTION_ACTIVE,
    IDC_WINCAPTION_INACTIVE,        HIDC_WINCAPTION_INACTIVE,
    IDC_BUTTON_WINSIZE,             HIDC_BUTTON_WINSIZE,

    0, 0
}

CPropComWin.cpp の 28 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropComWin.cpp ソースファイル

CPropComWin.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, jepro
00009     Copyright (C) 2001, genta, MIK, asa-o
00010     Copyright (C) 2002, YAZAKI, genta, Moca, aroka
00011     Copyright (C) 2003, MIK, KEITA, genta
00012     Copyright (C) 2004, Moca
00013     Copyright (C) 2006, ryoji, fon
00014     Copyright (C) 2007, genta
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holders to use this code for other purpose.
00018 */
00019
00020 #include "stdafx.h"
00021 #include "CPropCommon.h"
00022 #include "debug.h" // 2002/2/10 aroka
00023 #include "global.h"
00024 #include "CDlgWinSize.h"    //  2004.05.13 Moca
00025
00026 //@@@ 2001.02.04 Start by MIK: Popup Help
00027 #include "sakura.hh"
00028 static const DWORD p_helpids[] = {  //11200
00029     IDC_CHECK_DispFUNCKEYWND,       HIDC_CHECK_DispFUNCKEYWND,      //ファンクションキー表示
00030     IDC_CHECK_DispSTATUSBAR,        HIDC_CHECK_DispSTATUSBAR,       //ステータスバー表示
00031     IDC_CHECK_DispTOOLBAR,          HIDC_CHECK_DispTOOLBAR,         //ツールバー表示
00032     IDC_CHECK_bScrollBarHorz,       HIDC_CHECK_bScrollBarHorz,      //水平スクロールバー
00033     IDC_CHECK_bMenuIcon,            HIDC_CHECK_bMenuIcon,           //アイコン付きメニュー
00034     IDC_CHECK_SplitterWndVScroll,   HIDC_CHECK_SplitterWndVScroll,  //垂直スクロールの同期  //Jul. 05, 2001 JEPRO 追加
00035     IDC_CHECK_SplitterWndHScroll,   HIDC_CHECK_SplitterWndHScroll,  //水平スクロールの同期  //Jul. 05, 2001 JEPRO 追加
00036     IDC_EDIT_nRulerBottomSpace,     HIDC_EDIT_nRulerBottomSpace,    //ルーラーの高さ
00037     IDC_EDIT_nRulerHeight,          HIDC_EDIT_nRulerHeight,         //ルーラーとテキストの間隔
00038     IDC_EDIT_nLineNumberRightSpace, HIDC_EDIT_nLineNumberRightSpace,    //行番号とテキストの隙間
00039     IDC_RADIO_FUNCKEYWND_PLACE1,    HIDC_RADIO_FUNCKEYWND_PLACE1,   //ファンクションキー表示位置
00040     IDC_RADIO_FUNCKEYWND_PLACE2,    HIDC_RADIO_FUNCKEYWND_PLACE2,   //ファンクションキー表示位置
00041     IDC_EDIT_FUNCKEYWND_GROUPNUM,   HIDC_EDIT_FUNCKEYWND_GROUPNUM,  //ファンクションキーのグループボタン数
00042     IDC_SPIN_nRulerBottomSpace,     HIDC_EDIT_nRulerBottomSpace,
00043     IDC_SPIN_nRulerHeight,          HIDC_EDIT_nRulerHeight,
00044     IDC_SPIN_nLineNumberRightSpace, HIDC_EDIT_nLineNumberRightSpace,
00045     IDC_SPIN_FUNCKEYWND_GROUPNUM,   HIDC_EDIT_FUNCKEYWND_GROUPNUM,
00046     IDC_WINCAPTION_ACTIVE,          HIDC_WINCAPTION_ACTIVE,         //アクティブ時  //@@@ 2003.06.15 MIK
00047     IDC_WINCAPTION_INACTIVE,        HIDC_WINCAPTION_INACTIVE,       //非アクティブ時    //@@@ 2003.06.15 MIK
00048     IDC_BUTTON_WINSIZE,             HIDC_BUTTON_WINSIZE,            //位置と大きさの設定    // 2006.08.06 ryoji
00049     //  Feb. 11, 2007 genta TAB関連は「タブバー」シートへ移動
00050 //  IDC_STATIC,                     -1,
00051     0, 0
00052 };
00053 //@@@ 2001.02.04 End
00054
00055 //  From Here Jun. 2, 2001 genta
00062 INT_PTR CALLBACK CPropCommon::DlgProc_PROP_WIN(
00063     HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
00064 {
00065     return DlgProc( &CPropCommon::DispatchEvent_PROP_WIN, hwndDlg, uMsg, wParam, lParam );
00066 }
00067 //  To Here Jun. 2, 2001 genta
00068
00069
00070 /* メッセージ処理 */
00071 INT_PTR CPropCommon::DispatchEvent_PROP_WIN(
00072     HWND    hwndDlg,    // handle to dialog box
00073     UINT    uMsg,   // message
00074     WPARAM  wParam, // first message parameter
00075     LPARAM  lParam  // second message parameter
00076 )
00077 {
00078 //  WORD        wNotifyCode;
00079 //  WORD        wID;
00080 //  HWND        hwndCtl;
00081
00082 // From Here Sept. 9, 2000 JEPRO
00083     WORD        wNotifyCode;
00084     WORD        wID;
00085     HWND        hwndCtl;
00086 // To Here Sept. 9, 2000
00087
00088     NMHDR*      pNMHDR;
00089     NM_UPDOWN*  pMNUD;
00090     int         idCtrl;
00091 //  int         nVal;
00092     int         nVal;   //Sept.21, 2000 JEPRO スピン要素を加えたので復活させた
00093 //  LPDRAWITEMSTRUCT pDis;
00094
00095     switch( uMsg ){
00096
00097     case WM_INITDIALOG:
00098         /* ダイアログデータの設定 p1 */
00099         SetData_PROP_WIN( hwndDlg );
00100         // Modified by KEITA for WIN64 2003.9.6
00101 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00102
00103         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00104         /* ルーラー高さ */
00105         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_nRulerHeight ), EM_LIMITTEXT, (WPARAM)2, 0 );
00106         /* ルーラーとテキストの隙間 */
00107         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_nRulerBottomSpace ), EM_LIMITTEXT, (WPARAM)2, 0 );
00108
00109         return TRUE;
00110 //****  From Here Sept. 21, 2000 JEPRO ダイアログ要素にスピンを入れるので以下のWM_NOTIFYをコメントアウトにし下に修正を置いた
00111 //  case WM_NOTIFY:
00112 //      idCtrl = (int)wParam;
00113 //      pNMHDR = (NMHDR*)lParam;
00114 //      pMNUD  = (NM_UPDOWN*)lParam;
00117 //          switch( pNMHDR->code ){
00118 //          case PSN_HELP:
00119 //              OnHelp( hwndDlg, IDD_PROP_WIN );
00120 //              return TRUE;
00121 //          case PSN_KILLACTIVE:
00123 //              /* ダイアログデータの取得 p1 */
00124 //              GetData_PROP_WIN( hwndDlg );
00125 //              return TRUE;
00126 //          }
00129 //      break;
00130
00131     case WM_NOTIFY:
00132         idCtrl = (int)wParam;
00133         pNMHDR = (NMHDR*)lParam;
00134         pMNUD  = (NM_UPDOWN*)lParam;
00135         switch( idCtrl ){
00136         default:
00137             switch( pNMHDR->code ){
00138             case PSN_HELP:
00139                 OnHelp( hwndDlg, IDD_PROP_WIN );
00140                 return TRUE;
00141             case PSN_KILLACTIVE:
00142 //              MYTRACE( "p1 PSN_KILLACTIVE\n" );
00143                 /* ダイアログデータの取得 p1 */
00144                 GetData_PROP_WIN( hwndDlg );
00145                 return TRUE;
00146 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00147             case PSN_SETACTIVE:
00148                 m_nPageNum = ID_PAGENUM_WIN;
00149                 return TRUE;
00150             }
00151             break;
00152         case IDC_SPIN_nRulerHeight:
00153             /* ルーラ－の高さ */
00154             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, NULL, FALSE );
00155             if( pMNUD->iDelta < 0 ){
00156                 ++nVal;
00157             }else
00158             if( pMNUD->iDelta > 0 ){
00159                 --nVal;
00160             }
00161             if( nVal < IDC_SPIN_nRulerHeight_MIN ){
00162                 nVal = IDC_SPIN_nRulerHeight_MIN;
00163             }
00164             if( nVal > IDC_SPIN_nRulerHeight_MAX ){
00165                 nVal = IDC_SPIN_nRulerHeight_MAX;
00166             }
00167             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, nVal, FALSE );
00168             return TRUE;
00169         case IDC_SPIN_nRulerBottomSpace:
00170             /* ルーラーとテキストの隙間 */
00171             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, NULL, FALSE );
00172             if( pMNUD->iDelta < 0 ){
00173                 ++nVal;
00174             }else
00175             if( pMNUD->iDelta > 0 ){
00176                 --nVal;
00177             }
00178             if( nVal < 0 ){
00179                 nVal = 0;
00180             }
00181             if( nVal > 32 ){
00182                 nVal = 32;
00183             }
00184             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, nVal, FALSE );
00185             return TRUE;
00186         case IDC_SPIN_nLineNumberRightSpace:
00187             /* ルーラーとテキストの隙間 */
00188             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, NULL, FALSE );
00189             if( pMNUD->iDelta < 0 ){
00190                 ++nVal;
00191             }else
00192             if( pMNUD->iDelta > 0 ){
00193                 --nVal;
00194             }
00195             if( nVal < 0 ){
00196                 nVal = 0;
00197             }
00198             if( nVal > 32 ){
00199                 nVal = 32;
00200             }
00201             ::SetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, nVal, FALSE );
00202             return TRUE;
00203         case IDC_SPIN_FUNCKEYWND_GROUPNUM:
00204             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, NULL, FALSE );
00205             if( pMNUD->iDelta < 0 ){
00206                 ++nVal;
00207             }else
00208             if( pMNUD->iDelta > 0 ){
00209                 --nVal;
00210             }
00211             if( nVal < 1 ){
00212                 nVal = 1;
00213             }
00214             if( nVal > 12 ){
00215                 nVal = 12;
00216             }
00217             ::SetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, nVal, FALSE );
00218             return TRUE;
00219         }
00220         break;
00221 //****  To Here Sept. 21, 2000
00222 //  From Here Sept. 9, 2000 JEPRO
00223     case WM_COMMAND:
00224         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00225         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00226         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00227         switch( wNotifyCode ){
00228         /* ボタン／チェックボックスがクリックされた */
00229         case BN_CLICKED:
00230             switch( wID ){
00231             //  ファンクションキーを表示する時だけその位置指定をEnableに設定
00232             case IDC_CHECK_DispFUNCKEYWND:
00233                 EnableWinPropInput( hwndDlg );
00234                 break;
00235
00236             // From Here 2004.05.13 Moca 「位置と大きさの設定」ボタン
00237             //  ウィンドウ設定ダイアログにて起動時のウィンドウ状態指定
00238             case IDC_BUTTON_WINSIZE:
00239                 {
00240                     CDlgWinSize cDlgWinSize;
00241                     RECT rc;
00242                     rc.right  = m_Common.m_nWinSizeCX;
00243                     rc.bottom = m_Common.m_nWinSizeCY;
00244                     rc.top    = m_Common.m_nWinPosX;
00245                     rc.left   = m_Common.m_nWinPosY;
00246                     cDlgWinSize.DoModal( ::GetModuleHandle(NULL), hwndDlg,
00247                         m_Common.m_nSaveWindowSize, m_Common.m_nSaveWindowPos,
00248                         m_Common.m_nWinSizeType, rc
00249                     );
00250                     m_Common.m_nWinSizeCX = rc.right;
00251                     m_Common.m_nWinSizeCY = rc.bottom;
00252                     m_Common.m_nWinPosX = rc.top;
00253                     m_Common.m_nWinPosY = rc.left;
00254                 }
00255                 break;
00256             // To Here 2004.05.13 Moca
00257             }
00258             break;
00259         }
00260         break;
00261 //  To Here Sept. 9, 2000
00262
00263 //@@@ 2001.02.04 Start by MIK: Popup Help
00264     case WM_HELP:
00265         {
00266             HELPINFO *p = (HELPINFO *)lParam;
00267             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00268         }
00269         return TRUE;
00270         /*NOTREACHED*/
00271         //break;
00272 //@@@ 2001.02.04 End
00273
00274 //@@@ 2001.12.22 Start by MIK: Context Menu Help
00275     //Context Menu
00276     case WM_CONTEXTMENU:
00277         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00278         return TRUE;
00279 //@@@ 2001.12.22 End
00280
00281     }
00282     return FALSE;
00283 }
00284
00285 /* ダイアログデータの設定 */
00286 void CPropCommon::SetData_PROP_WIN( HWND hwndDlg )
00287 {
00288 //  BOOL    bRet;
00289
00290     /* 次回ウィンドウを開いたときツールバーを表示する */
00291     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispTOOLBAR, m_Common.m_bDispTOOLBAR );
00292
00293     /* 次回ウィンドウを開いたときファンクションキーを表示する */
00294     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispFUNCKEYWND, m_Common.m_bDispFUNCKEYWND );
00295
00296     /* ファンクションキー表示位置／0:上 1:下 */
00297     if( 0 == m_Common.m_nFUNCKEYWND_Place ){
00298         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1, TRUE );
00299         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2, FALSE );
00300     }else{
00301         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1, FALSE );
00302         ::CheckDlgButton( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2, TRUE );
00303     }
00304     // 2002/11/04 Moca ファンクションキーのグループボタン数
00305     ::SetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, m_Common.m_nFUNCKEYWND_GroupNum, FALSE );
00306
00307     //From Here@@@ 2003.06.13 MIK
00308     //  Feb. 12, 2007 genta TAB関連は「タブバー」シートへ移動
00309
00310     //To Here@@@ 2003.06.13 MIK
00311     //  Feb. 11, 2007 genta TAB関連は「タブバー」シートへ移動
00312
00313     /* 次回ウィンドウを開いたときステータスバーを表示する */
00314     ::CheckDlgButton( hwndDlg, IDC_CHECK_DispSTATUSBAR, m_Common.m_bDispSTATUSBAR );
00315
00316     /* ルーラー高さ */
00317     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, m_Common.m_nRulerHeight, FALSE );
00318     /* ルーラーとテキストの隙間 */
00319     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, m_Common.m_nRulerBottomSpace, FALSE );
00320     //  Sep. 18. 2002 genta 行番号とテキストの隙間
00321     ::SetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, m_Common.m_nLineNumRightSpace, FALSE );
00322
00323     /* ルーラーのタイプ */
00324     if( 0 == m_Common.m_nRulerType ){
00325         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_0, TRUE );
00326         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_1, FALSE );
00327     }else{
00328         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_0, FALSE );
00329         ::CheckDlgButton( hwndDlg, IDC_RADIO_nRulerType_1, TRUE );
00330     }
00331
00332     /* 水平スクロールバー */
00333     ::CheckDlgButton( hwndDlg, IDC_CHECK_bScrollBarHorz, m_Common.m_bScrollBarHorz );
00334
00335     /* アイコン付きメニュー */
00336     ::CheckDlgButton( hwndDlg, IDC_CHECK_bMenuIcon, m_Common.m_bMenuIcon );
00337
00338     //  2001/06/20 Start by asa-o:  スクロールの同期
00339     ::CheckDlgButton( hwndDlg, IDC_CHECK_SplitterWndVScroll, m_Common.m_bSplitterWndVScroll );
00340     ::CheckDlgButton( hwndDlg, IDC_CHECK_SplitterWndHScroll, m_Common.m_bSplitterWndHScroll );
00341     //  2001/06/20 End
00342
00343     //  Apr. 05, 2003 genta ウィンドウキャプションのカスタマイズ
00344     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_WINCAPTION_ACTIVE   ), EM_LIMITTEXT, (WPARAM)(sizeof( m_Common.m_szWindowCaptionActive   ) - 1 ), (LPARAM)0 );    //@@@ 2003.06.13 MIK
00345     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_WINCAPTION_INACTIVE ), EM_LIMITTEXT, (WPARAM)(sizeof( m_Common.m_szWindowCaptionInactive ) - 1 ), (LPARAM)0 );    //@@@ 2003.06.13 MIK
00346     ::SetDlgItemText( hwndDlg, IDC_WINCAPTION_ACTIVE, m_Common.m_szWindowCaptionActive );
00347     ::SetDlgItemText( hwndDlg, IDC_WINCAPTION_INACTIVE, m_Common.m_szWindowCaptionInactive );
00348
00349     //  Fronm Here Sept. 9, 2000 JEPRO
00350     //  ファンクションキーを表示する時だけその位置指定をEnableに設定
00351     EnableWinPropInput( hwndDlg );
00352     //  To Here Sept. 9, 2000
00353
00354     return;
00355 }
00356
00357
00358
00359
00360
00361 /* ダイアログデータの取得 */
00362 int CPropCommon::GetData_PROP_WIN( HWND hwndDlg )
00363 {
00364 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00365 //  m_nPageNum = ID_PAGENUM_WIN;
00366
00367     /* 次回ウィンドウを開いたときツールバーを表示する */
00368     m_Common.m_bDispTOOLBAR = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispTOOLBAR );
00369
00370     /* 次回ウィンドウを開いたときファンクションキーを表示する */
00371     m_Common.m_bDispFUNCKEYWND = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispFUNCKEYWND );
00372
00373     /* ファンクションキー表示位置／0:上 1:下 */
00374     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1 ) ){
00375         m_Common.m_nFUNCKEYWND_Place = 0;
00376     }
00377     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2) ){
00378         m_Common.m_nFUNCKEYWND_Place = 1;
00379     }
00380
00381     // 2002/11/04 Moca ファンクションキーのグループボタン数
00382     m_Common.m_nFUNCKEYWND_GroupNum = ::GetDlgItemInt( hwndDlg, IDC_EDIT_FUNCKEYWND_GROUPNUM, NULL, FALSE );
00383     if( m_Common.m_nFUNCKEYWND_GroupNum < 1 ){
00384         m_Common.m_nFUNCKEYWND_GroupNum = 1;
00385     }
00386     if( m_Common.m_nFUNCKEYWND_GroupNum > 12 ){
00387         m_Common.m_nFUNCKEYWND_GroupNum = 12;
00388     }
00389
00390     //From Here@@@ 2003.06.13 MIK
00391     //  Feb. 12, 2007 genta TAB関連は「タブバー」シートへ移動
00392     //To Here@@@ 2003.06.13 MIK
00393
00394     /* 次回ウィンドウを開いたときステータスバーを表示する */
00395     m_Common.m_bDispSTATUSBAR = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispSTATUSBAR );
00396
00397     /* ルーラーのタイプ */
00398     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_nRulerType_0 ) ){
00399         m_Common.m_nRulerType = 0;
00400     }
00401     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_nRulerType_1 ) ){
00402         m_Common.m_nRulerType = 1;
00403     }
00404
00405     /* ルーラー高さ */
00406     m_Common.m_nRulerHeight = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerHeight, NULL, FALSE );
00407     if( m_Common.m_nRulerHeight < IDC_SPIN_nRulerHeight_MIN ){
00408         m_Common.m_nRulerHeight = IDC_SPIN_nRulerHeight_MIN;
00409     }
00410     if( m_Common.m_nRulerHeight > IDC_SPIN_nRulerHeight_MAX ){
00411         m_Common.m_nRulerHeight = IDC_SPIN_nRulerHeight_MAX;
00412     }
00413     /* ルーラーとテキストの隙間 */
00414     m_Common.m_nRulerBottomSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nRulerBottomSpace, NULL, FALSE );
00415     if( m_Common.m_nRulerBottomSpace < 0 ){
00416         m_Common.m_nRulerBottomSpace = 0;
00417     }
00418     if( m_Common.m_nRulerBottomSpace > 32 ){
00419         m_Common.m_nRulerBottomSpace = 32;
00420     }
00421
00422     //  Sep. 18. 2002 genta 行番号とテキストの隙間
00423     m_Common.m_nLineNumRightSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_nLineNumberRightSpace, NULL, FALSE );
00424     if( m_Common.m_nLineNumRightSpace < 0 ){
00425         m_Common.m_nLineNumRightSpace = 0;
00426     }
00427     if( m_Common.m_nLineNumRightSpace > 32 ){
00428         m_Common.m_nLineNumRightSpace = 32;
00429     }
00430
00431     /* 水平スクロールバー */
00432     m_Common.m_bScrollBarHorz = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bScrollBarHorz );
00433
00434     /* アイコン付きメニュー */
00435     m_Common.m_bMenuIcon = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_bMenuIcon );
00436
00437     //  2001/06/20 Start by asa-o:  スクロールの同期
00438     m_Common.m_bSplitterWndVScroll = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SplitterWndVScroll );
00439     m_Common.m_bSplitterWndHScroll = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_SplitterWndHScroll );
00440     //  2001/06/20 End
00441
00442     //  Apr. 05, 2003 genta ウィンドウキャプションのカスタマイズ
00443     ::GetDlgItemText( hwndDlg, IDC_WINCAPTION_ACTIVE, m_Common.m_szWindowCaptionActive,
00444         sizeof( m_Common.m_szWindowCaptionActive ) );
00445     ::GetDlgItemText( hwndDlg, IDC_WINCAPTION_INACTIVE, m_Common.m_szWindowCaptionInactive,
00446         sizeof( m_Common.m_szWindowCaptionInactive ) );
00447
00448     return TRUE;
00449 }
00450
00451
00452
00453
00454
00455 //  From Here Sept. 9, 2000 JEPRO
00456 //  チェック状態に応じてダイアログボックス要素のEnable/Disableを
00457 //  適切に設定する
00458 void CPropCommon::EnableWinPropInput( HWND hwndDlg )
00459 {
00460     //  ファクションキーを表示するかどうか
00461         if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DispFUNCKEYWND ) ){
00462         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_GROUP_FUNCKEYWND_POSITION ), TRUE );
00463         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1 ), TRUE );
00464         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2 ), TRUE );
00465     }else{
00466         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_GROUP_FUNCKEYWND_POSITION ), FALSE );
00467         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE1 ), FALSE );
00468         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_RADIO_FUNCKEYWND_PLACE2 ), FALSE );
00469     }
00470 }
00471 //  To Here Sept. 9, 2000
00472
00473
00474 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypes.cpp

CPropTypes.cpp

タイプ別設定ダイアログボックス [詳細]

#include "stdafx.h"
#include "sakura_rc.h"
#include "CPropTypes.h"
#include "debug.h"
#include <windows.h>
#include <commctrl.h>
#include "CDlgOpenFile.h"
#include "CDlgKeywordSelect.h"
#include "etc_uty.h"
#include "global.h"
#include "CProfile.h"
#include "CShareData.h"
#include "funccode.h"
#include "CDlgSameColor.h"
#include "sakura.hh"

CPropTypes.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | TYPE_NAME

マクロ定義

#define | STR_COLORDATA_HEAD_LEN 32
#define | STR_COLORDATA_HEAD "テキストエディタ 色設定ファイル\x1a"
#define | STR_COLORDATA_HEAD3 " テキストエディタ色設定 Ver3"
#define | STR_COLORDATA_SECTION "SakuraColor"

関数

char * | MakeRGBStr (DWORD dwRGB, char *pszText)
INT_PTR CALLBACK | PropTypesP1Proc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
INT_PTR CALLBACK | PropTypesP2Proc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
INT_PTR CALLBACK | PropTypesP3_newProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
LRESULT APIENTRY | ColorList_SubclassProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

TYPE_NAME OlmArr []
const int | nOlmArrNum = sizeof( OlmArr ) / sizeof( OlmArr[0] )
TYPE_NAME SmartIndentArr []
const int | nSmartIndentArrNum = sizeof( SmartIndentArr ) / sizeof( SmartIndentArr[0] )
TYPE_NAME ImeStateArr []
const int | nImeStateArrNum = sizeof( ImeStateArr ) / sizeof( ImeStateArr[0] )
TYPE_NAME ImeSwitchArr []
const int | nImeSwitchArrNum = sizeof( ImeSwitchArr ) / sizeof( ImeSwitchArr[0] )
TYPE_NAME IndentTypeArr []
const int | nIndentTypeArrNum = sizeof( IndentTypeArr ) / sizeof( IndentTypeArr[0] )
struct {
int nEditID
int nCheckBoxID
int nTextID
} cLineComment [COMMENT_DELIMITER_NUM]
WNDPROC | m_wpColorListProc
static const DWORD | p_helpids1 []
static const DWORD | p_helpids2 []
static const DWORD | p_helpids3 []

説明

タイプ別設定ダイアログボックス

作者:
Norio Nakatani
日付:
1998/12/24 新規作成

CPropTypes.cpp で定義されています。

マクロ定義

#define STR_COLORDATA_HEAD "テキストエディタ 色設定ファイル\x1a"

CPropTypes.cpp の 109 行で定義されています。

#define STR_COLORDATA_HEAD3 " テキストエディタ色設定 Ver3"

CPropTypes.cpp の 113 行で定義されています。

#define STR_COLORDATA_HEAD_LEN 32

CPropTypes.cpp の 108 行で定義されています。

#define STR_COLORDATA_SECTION "SakuraColor"

CPropTypes.cpp の 114 行で定義されています。

関数

LRESULT APIENTRY ColorList_SubclassProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPropTypes.cpp の 1824 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

char* MakeRGBStr | ( | DWORD | dwRGB,
 |  | char * | pszText
 | ) |

CPropTypes.cpp の 116 行で定義されています。

INT_PTR CALLBACK PropTypesP1Proc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPropTypes.cpp の 224 行で定義されています。

参照先 CPropTypes::DispatchEvent_p1()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 CPropTypes::DoPropertySheet().

INT_PTR CALLBACK PropTypesP2Proc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPropTypes.cpp の 254 行で定義されています。

参照先 CPropTypes::DispatchEvent_p2()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 CPropTypes::DoPropertySheet().

INT_PTR CALLBACK PropTypesP3_newProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPropTypes.cpp の 320 行で定義されています。

参照先 CPropTypes::DispatchEvent_p3_new()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 CPropTypes::DoPropertySheet().

変数

struct { ... } cLineComment[COMMENT_DELIMITER_NUM]

参照元 CPropTypes::GetData_p3_new()・CPropTypes::SetData_p3_new().

TYPE_NAME ImeStateArr[]

初期値:

 {
    { 0, "標準設定" },
    { 1, "全角" },
    { 2, "全角ひらがな" },
    { 3, "全角カタカナ" },
    { 4, "無変換" }
}

CPropTypes.cpp の 65 行で定義されています。

TYPE_NAME ImeSwitchArr[]

初期値:

 {
    { 0, "そのまま" },
    { 1, "常にON" },
    { 2, "常にOFF" },
}

CPropTypes.cpp の 74 行で定義されています。

TYPE_NAME IndentTypeArr[]

初期値:

 {
    { 0, "なし" },
    { 1, "tx2x" },
    { 2, "論理行先頭" },
}
2行目以降のインデント方法

参照:
CLayoutMgr::SetLayoutInfo()
日付:
Oct. 1, 2002 genta

CPropTypes.cpp の 86 行で定義されています。

WNDPROC m_wpColorListProc

CPropTypes.cpp の 105 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

int nCheckBoxID

CPropTypes.cpp の 97 行で定義されています。

参照元 CPropTypes::GetData_p3_new().

int nEditID

CPropTypes.cpp の 96 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

const int nImeStateArrNum = sizeof( ImeStateArr ) / sizeof( ImeStateArr[0] )

CPropTypes.cpp の 72 行で定義されています。

const int nImeSwitchArrNum = sizeof( ImeSwitchArr ) / sizeof( ImeSwitchArr[0] )

CPropTypes.cpp の 79 行で定義されています。

const int nIndentTypeArrNum = sizeof( IndentTypeArr ) / sizeof( IndentTypeArr[0] )

CPropTypes.cpp の 91 行で定義されています。

const int nOlmArrNum = sizeof( OlmArr ) / sizeof( OlmArr[0] )

CPropTypes.cpp の 55 行で定義されています。

参照元 CPropTypes::SetData_p1().

const int nSmartIndentArrNum = sizeof( SmartIndentArr ) / sizeof( SmartIndentArr[0] )

CPropTypes.cpp の 62 行で定義されています。

int nTextID

CPropTypes.cpp の 98 行で定義されています。

TYPE_NAME OlmArr[]

初期値:

 {

    { OUTLINE_CPP,      "C/C++" },
    { OUTLINE_PLSQL,    "PL/SQL" },
    { OUTLINE_JAVA,     "Java" },
    { OUTLINE_COBOL,    "COBOL" },
    { OUTLINE_PERL,     "Perl" },
    { OUTLINE_ASM,      "アセンブラ" },
    { OUTLINE_VB,       "Visual Basic" },
    { OUTLINE_PYTHON,   "Python" },
    { OUTLINE_WZTXT,    "WZ階層付テキスト" },
    { OUTLINE_HTML,     "HTML" },
    { OUTLINE_TEX,      "TeX" },
    { OUTLINE_TEXT,     "テキスト" }
}

CPropTypes.cpp の 40 行で定義されています。

const DWORD p_helpids1[] [static]

CPropTypes.cpp の 130 行で定義されています。

const DWORD p_helpids2[] [static]

CPropTypes.cpp の 167 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

const DWORD p_helpids3[] [static]

初期値:

 {
    IDC_BUTTON_HOKANFILE_REF,       HIDC_BUTTON_HOKANFILE_REF,
    IDC_CHECK_HOKANLOHICASE,        HIDC_CHECK_HOKANLOHICASE,
    IDC_CHECK_HOKANBYFILE,          HIDC_CHECK_HOKANBYFILE,
    IDC_EDIT_HOKANFILE,             HIDC_EDIT_HOKANFILE,
    IDC_EDIT_TYPEEXTHELP,           HIDC_EDIT_TYPEEXTHELP,
    IDC_BUTTON_TYPEOPENHELP,        HIDC_BUTTON_TYPEOPENHELP,
    IDC_EDIT_TYPEEXTHTMLHELP,       HIDC_EDIT_TYPEEXTHTMLHELP,
    IDC_BUTTON_TYPEOPENEXTHTMLHELP, HIDC_BUTTON_TYPEOPENEXTHTMLHELP,
    IDC_CHECK_TYPEHTMLHELPISSINGLE, HIDC_CHECK_TYPEHTMLHELPISSINGLE,

    0, 0
}

CPropTypes.cpp の 206 行で定義されています。

TYPE_NAME SmartIndentArr[]

初期値:

 {
    { SMARTINDENT_NONE, "なし" },
    { SMARTINDENT_CPP,  "C/C++" }
}

CPropTypes.cpp の 58 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypes.cpp ソースファイル

CPropTypes.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2002, Norio Nakatani
00009     Copyright (C) 2000, jepro, genta
00010     Copyright (C) 2001, jepro, genta, MIK, hor, Stonee, asa-o
00011     Copyright (C) 2002, YAZAKI, aroka, MIK, genta, こおり, Moca
00012     Copyright (C) 2003, MIK, zenryaku, Moca, naoh, KEITA, genta
00013     Copyright (C) 2005, MIK, genta, Moca, ryoji
00014     Copyright (C) 2006, ryoji, fon
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 #include "stdafx.h"
00022 #include "sakura_rc.h"
00023 #include "CPropTypes.h"
00024 #include "debug.h"
00025 #include <windows.h>
00026 #include <commctrl.h>
00027 #include "CDlgOpenFile.h"
00028 #include "CDlgKeywordSelect.h"
00029 #include "etc_uty.h"
00030 #include "global.h"
00031 #include "CProfile.h"
00032 #include "CShareData.h"
00033 #include "funccode.h"   //Stonee, 2001/05/18
00034 #include "CDlgSameColor.h"  // 2006.04.26 ryoji
00035
00036 struct TYPE_NAME {
00037     int     nMethod;
00038     char*   pszName;
00039 };
00040 TYPE_NAME OlmArr[] = {
00041 //  { OUTLINE_C,        "C" },
00042     { OUTLINE_CPP,      "C/C++" },
00043     { OUTLINE_PLSQL,    "PL/SQL" },
00044     { OUTLINE_JAVA,     "Java" },
00045     { OUTLINE_COBOL,    "COBOL" },
00046     { OUTLINE_PERL,     "Perl" },           //Sep. 8, 2000 genta
00047     { OUTLINE_ASM,      "アセンブラ" },
00048     { OUTLINE_VB,       "Visual Basic" },   // 2001/06/23 N.Nakatani
00049     { OUTLINE_PYTHON,   "Python" },     //  2007.02.08 genta
00050     { OUTLINE_WZTXT,    "WZ階層付テキスト" },   // 2003.05.20 zenryaku, 2003.06.23 Moca 名称変更
00051     { OUTLINE_HTML,     "HTML" },           // 2003.05.20 zenryaku
00052     { OUTLINE_TEX,      "TeX" },            // 2003.07.20 naoh
00053     { OUTLINE_TEXT,     "テキスト" }        //Jul. 08, 2001 JEPRO 常に最後尾におく
00054 };
00055 const int   nOlmArrNum = sizeof( OlmArr ) / sizeof( OlmArr[0] );
00056
00057
00058 TYPE_NAME SmartIndentArr[] = {
00059     { SMARTINDENT_NONE, "なし" },
00060     { SMARTINDENT_CPP,  "C/C++" }
00061 };
00062 const int   nSmartIndentArrNum = sizeof( SmartIndentArr ) / sizeof( SmartIndentArr[0] );
00063
00064 //  Nov. 20, 2000 genta
00065 TYPE_NAME ImeStateArr[] = {
00066     { 0, "標準設定" },
00067     { 1, "全角" },
00068     { 2, "全角ひらがな" },
00069     { 3, "全角カタカナ" },
00070     { 4, "無変換" }
00071 };
00072 const int nImeStateArrNum = sizeof( ImeStateArr ) / sizeof( ImeStateArr[0] );
00073
00074 TYPE_NAME ImeSwitchArr[] = {
00075     { 0, "そのまま" },
00076     { 1, "常にON" },
00077     { 2, "常にOFF" },
00078 };
00079 const int nImeSwitchArrNum = sizeof( ImeSwitchArr ) / sizeof( ImeSwitchArr[0] );
00080
00086 TYPE_NAME IndentTypeArr[] = {
00087     { 0, "なし" },
00088     { 1, "tx2x" },
00089     { 2, "論理行先頭" },
00090 };
00091 const int nIndentTypeArrNum = sizeof( IndentTypeArr ) / sizeof( IndentTypeArr[0] );
00092
00093
00094 //  行コメントに関する情報
00095 struct {
00096     int nEditID;
00097     int nCheckBoxID;
00098     int nTextID;
00099 } const cLineComment[COMMENT_DELIMITER_NUM] = {
00100     { IDC_EDIT_LINECOMMENT  , IDC_CHECK_LCPOS , IDC_EDIT_LINECOMMENTPOS },
00101     { IDC_EDIT_LINECOMMENT2 , IDC_CHECK_LCPOS2, IDC_EDIT_LINECOMMENTPOS2},
00102     { IDC_EDIT_LINECOMMENT3 , IDC_CHECK_LCPOS3, IDC_EDIT_LINECOMMENTPOS3}
00103 };
00104
00105 WNDPROC m_wpColorListProc;
00106
00107 //Sept. 5, 2000 JEPRO 半角カタカナの全角化に伴い文字長を変更(21→32)
00108 #define STR_COLORDATA_HEAD_LEN  32
00109 #define STR_COLORDATA_HEAD      "テキストエディタ 色設定ファイル\x1a"
00110
00111 //#define STR_COLORDATA_HEAD2   " テキストエディタ色設定 Ver2"
00112 //#define STR_COLORDATA_HEAD21  " テキストエディタ色設定 Ver2.1"    //Nov. 2, 2000 JEPRO 変更 [注]. 0.3.9.0:ur3β10以降、設定項目の番号を入れ替えたため
00113 #define STR_COLORDATA_HEAD3     " テキストエディタ色設定 Ver3"      //Jan. 15, 2001 Stonee  色設定Ver3ドラフト(設定ファイルのキーを連番→文字列に)  //Feb. 11, 2001 JEPRO 有効にした
00114 #define STR_COLORDATA_SECTION   "SakuraColor"
00115
00116 char* MakeRGBStr( DWORD dwRGB, char* pszText )
00117 {
00118     wsprintf( pszText, "RGB( %d, %d, %d )",
00119         GetRValue( dwRGB ),
00120         GetGValue( dwRGB ),
00121         GetBValue( dwRGB )
00122     );
00123     return pszText;
00124
00125 }
00126
00127
00128 //@@@ 2001.02.04 Start by MIK: Popup Help
00129 #include "sakura.hh"
00130 static const DWORD p_helpids1[] = { //11300
00131     IDC_CHECK_WORDWRAP,             HIDC_CHECK_WORDWRAP,        //英文ワードラップ
00132     IDC_EDIT_TABSPACE,              HIDC_EDIT_TABSPACE,         //TAB幅 // Sep. 19, 2002 genta
00133     IDC_COMBO_IMESWITCH,            HIDC_COMBO_IMESWITCH,       //IMEのON/OFF状態
00134     IDC_COMBO_IMESTATE,             HIDC_COMBO_IMESTATE,        //IMEの入力モード
00135     IDC_COMBO_SMARTINDENT,          HIDC_COMBO_SMARTINDENT,     //スマートインデント
00136     IDC_COMBO_OUTLINES,             HIDC_COMBO_OUTLINES,        //アウトライン解析方法
00137     IDC_EDIT_TYPENAME,              HIDC_EDIT_TYPENAME,         //設定の名前
00138     IDC_EDIT_TYPEEXTS,              HIDC_EDIT_TYPEEXTS,         //ファイル拡張子
00139     IDC_EDIT_MAXLINELEN,            HIDC_EDIT_MAXLINELEN,       //折り返し桁数
00140     IDC_EDIT_CHARSPACE,             HIDC_EDIT_CHARSPACE,        //文字の間隔
00141     IDC_EDIT_LINESPACE,             HIDC_EDIT_LINESPACE,        //行の間隔
00142     IDC_EDIT_INDENTCHARS,           HIDC_EDIT_INDENTCHARS,      //その他のインデント対象文字
00143     IDC_EDIT_TABVIEWSTRING,         HIDC_EDIT_TABVIEWSTRING,    //TAB表示文字列
00144     IDC_CHECK_INS_SPACE,            HIDC_CHECK_INS_SPACE,       //スペースの挿入
00145     IDC_SPIN_MAXLINELEN,            HIDC_EDIT_MAXLINELEN,
00146     IDC_SPIN_CHARSPACE,             HIDC_EDIT_CHARSPACE,
00147     IDC_SPIN_LINESPACE,             HIDC_EDIT_LINESPACE,
00148     IDC_CHECK_KINSOKUHEAD,          HIDC_CHECK_KINSOKUHEAD,     //行頭禁則  //@@@ 2002.04.08 MIK
00149     IDC_CHECK_KINSOKUTAIL,          HIDC_CHECK_KINSOKUTAIL,     //行末禁則  //@@@ 2002.04.08 MIK
00150     IDC_CHECK_KINSOKURET,           HIDC_CHECK_KINSOKURET,      //改行文字をぶら下げる  //@@@ 2002.04.14 MIK
00151     IDC_CHECK_KINSOKUKUTO,          HIDC_CHECK_KINSOKUKUTO,     //句読点をぶら下げる    //@@@ 2002.04.17 MIK
00152     IDC_EDIT_KINSOKUHEAD,           HIDC_EDIT_KINSOKUHEAD,      //行頭禁則  //@@@ 2002.04.08 MIK
00153     IDC_EDIT_KINSOKUTAIL,           HIDC_EDIT_KINSOKUTAIL,      //行末禁則  //@@@ 2002.04.08 MIK
00154     IDC_CHECK_TAB_ARROW,            HIDC_CHECK_TAB_ARROW,       //矢印表示  // 2006.08.06 ryoji
00155     IDC_CHECK_INDENT,               HIDC_CHECK_INDENT,          //自動インデント    // 2006.08.19 ryoji
00156     IDC_CHECK_INDENT_WSPACE,        HIDC_CHECK_INDENT_WSPACE,   //全角空白もインデント  // 2006.08.19 ryoji
00157     IDC_COMBO_INDENTLAYOUT,         HIDC_COMBO_INDENTLAYOUT,    //折り返し行インデント  // 2006.08.06 ryoji
00158     IDC_CHECK_RTRIM_PREVLINE,       HIDC_CHECK_RTRIM_PREVLINE,  //改行時に末尾の空白を削除  // 2006.08.06 ryoji
00159     IDC_RADIO_OUTLINEDEFAULT,       HIDC_RADIO_OUTLINEDEFAULT,  //標準ルール    // 2006.08.06 ryoji
00160     IDC_RADIO_OUTLINERULEFILE,      HIDC_RADIO_OUTLINERULEFILE, //ルールファイル    // 2006.08.06 ryoji
00161     IDC_EDIT_OUTLINERULEFILE,       HIDC_EDIT_OUTLINERULEFILE,  //ルールファイル名  // 2006.08.06 ryoji
00162     IDC_BUTTON_RULEFILE_REF,        HIDC_BUTTON_RULEFILE_REF,   //ルールファイル参照    // 2006/09/09 novice
00163     IDC_CHECK_DOCICON,              HIDC_CHECK_DOCICON,         //文書アイコンを使う    // 2006.08.06 ryoji
00164 //  IDC_STATIC,                     -1,
00165     0, 0
00166 };
00167 static const DWORD p_helpids2[] = { //11400
00168     IDC_BUTTON_TEXTCOLOR,           HIDC_BUTTON_TEXTCOLOR,          //文字色
00169     IDC_BUTTON_BACKCOLOR,           HIDC_BUTTON_BACKCOLOR,          //背景色
00170     IDC_BUTTON_SAMETEXTCOLOR,       HIDC_BUTTON_SAMETEXTCOLOR,      //文字色統一
00171     IDC_BUTTON_SAMEBKCOLOR,         HIDC_BUTTON_SAMEBKCOLOR,        //背景色統一
00172     IDC_BUTTON_IMPORT,              HIDC_BUTTON_IMPORT_COLOR,       //インポート
00173     IDC_BUTTON_EXPORT,              HIDC_BUTTON_EXPORT_COLOR,       //エクスポート
00174     IDC_CHECK_DISP,                 HIDC_CHECK_DISP,                //色分け表示
00175     IDC_CHECK_FAT,                  HIDC_CHECK_FAT,                 //太字
00176     IDC_CHECK_UNDERLINE,            HIDC_CHECK_UNDERLINE,           //下線
00177     IDC_CHECK_LCPOS,                HIDC_CHECK_LCPOS,               //桁指定１
00178     IDC_CHECK_LCPOS2,               HIDC_CHECK_LCPOS2,              //桁指定２
00179     IDC_COMBO_SET,                  HIDC_COMBO_SET_COLOR,           //強調キーワード１セット名
00180     IDC_COMBO_SET2,                 HIDC_COMBO_SET2_COLOR,          //強調キーワード２セット名
00181     IDC_EDIT_BLOCKCOMMENT_FROM,     HIDC_EDIT_BLOCKCOMMENT_FROM,    //ブロックコメント１開始
00182     IDC_EDIT_BLOCKCOMMENT_TO,       HIDC_EDIT_BLOCKCOMMENT_TO,      //ブロックコメント１終了
00183     IDC_EDIT_LINECOMMENT,           HIDC_EDIT_LINECOMMENT,          //行コメント１
00184     IDC_EDIT_LINECOMMENT2,          HIDC_EDIT_LINECOMMENT2,         //行コメント２
00185     IDC_EDIT_LINECOMMENTPOS,        HIDC_EDIT_LINECOMMENTPOS,       //桁数１
00186     IDC_EDIT_LINECOMMENTPOS2,       HIDC_EDIT_LINECOMMENTPOS2,      //桁数２
00187     IDC_EDIT_LINETERMCHAR,          HIDC_EDIT_LINETERMCHAR,         //行番号区切り
00188     IDC_EDIT_BLOCKCOMMENT_FROM2,    HIDC_EDIT_BLOCKCOMMENT_FROM2,   //ブロックコメント２開始
00189     IDC_EDIT_BLOCKCOMMENT_TO2,      HIDC_EDIT_BLOCKCOMMENT_TO2,     //ブロックコメント２終了
00190     IDC_EDIT_LINECOMMENT3,          HIDC_EDIT_LINECOMMENT3,         //行コメント３
00191     IDC_LIST_COLORS,                HIDC_LIST_COLORS,               //色指定
00192     IDC_CHECK_LCPOS3,               HIDC_CHECK_LCPOS3,              //桁指定３
00193     IDC_EDIT_LINECOMMENTPOS3,       HIDC_EDIT_LINECOMMENTPOS3,      //桁数３
00194     IDC_RADIO_ESCAPETYPE_1,         HIDC_RADIO_ESCAPETYPE_1,        //文字列エスケープ（C言語風）
00195     IDC_RADIO_ESCAPETYPE_2,         HIDC_RADIO_ESCAPETYPE_2,        //文字列エスケープ（PL/SQL風）
00196     IDC_RADIO_LINENUM_LAYOUT,       HIDC_RADIO_LINENUM_LAYOUT,      //行番号の表示（折り返し単位）
00197     IDC_RADIO_LINENUM_CRLF,         HIDC_RADIO_LINENUM_CRLF,        //行番号の表示（改行単位）
00198     IDC_RADIO_LINETERMTYPE0,        HIDC_RADIO_LINETERMTYPE0,       //行番号区切り（なし）
00199     IDC_RADIO_LINETERMTYPE1,        HIDC_RADIO_LINETERMTYPE1,       //行番号区切り（縦線）
00200     IDC_RADIO_LINETERMTYPE2,        HIDC_RADIO_LINETERMTYPE2,       //行番号区切り（任意）
00201     IDC_BUTTON_KEYWORD_SELECT,      HIDC_BUTTON_KEYWORD_SELECT,     //強調キーワード2～10   // 2006.08.06 ryoji
00202     IDC_EDIT_VERTLINE,              HIDC_EDIT_VERTLINE,             //縦線の桁指定  // 2006.08.06 ryoji
00203 //  IDC_STATIC,                     -1,
00204     0, 0
00205 };
00206 static const DWORD p_helpids3[] = { //11500
00207     IDC_BUTTON_HOKANFILE_REF,       HIDC_BUTTON_HOKANFILE_REF,          //入力補完 単語ファイル参照
00208     IDC_CHECK_HOKANLOHICASE,        HIDC_CHECK_HOKANLOHICASE,           //入力補完の英大文字小文字
00209     IDC_CHECK_HOKANBYFILE,          HIDC_CHECK_HOKANBYFILE,             //現在のファイルから入力補完
00210     IDC_EDIT_HOKANFILE,             HIDC_EDIT_HOKANFILE,                //単語ファイル名
00211     IDC_EDIT_TYPEEXTHELP,           HIDC_EDIT_TYPEEXTHELP,              //外部ヘルプファイル名  // 2006.08.06 ryoji
00212     IDC_BUTTON_TYPEOPENHELP,        HIDC_BUTTON_TYPEOPENHELP,           //外部ヘルプファイル参照    // 2006.08.06 ryoji
00213     IDC_EDIT_TYPEEXTHTMLHELP,       HIDC_EDIT_TYPEEXTHTMLHELP,          //外部HTMLヘルプファイル名  // 2006.08.06 ryoji
00214     IDC_BUTTON_TYPEOPENEXTHTMLHELP, HIDC_BUTTON_TYPEOPENEXTHTMLHELP,    //外部HTMLヘルプファイル参照    // 2006.08.06 ryoji
00215     IDC_CHECK_TYPEHTMLHELPISSINGLE, HIDC_CHECK_TYPEHTMLHELPISSINGLE,    //ビューアを複数起動しない  // 2006.08.06 ryoji
00216 //  IDC_STATIC,                     -1,
00217     0, 0
00218 };
00219 //To Here Jul. 05, 2001
00220
00221
00222
00223 /* p1 ダイアログプロシージャ */
00224 INT_PTR CALLBACK PropTypesP1Proc(
00225     HWND    hwndDlg,    // handle to dialog box
00226     UINT    uMsg,       // message
00227     WPARAM  wParam,     // first message parameter
00228     LPARAM  lParam      // second message parameter
00229 )
00230 {
00231     PROPSHEETPAGE*  pPsp;
00232     CPropTypes* pCPropTypes;
00233     switch( uMsg ){
00234     case WM_INITDIALOG:
00235         pPsp = (PROPSHEETPAGE*)lParam;
00236         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00237         if( NULL != pCPropTypes ){
00238             return pCPropTypes->DispatchEvent_p1( hwndDlg, uMsg, wParam, pPsp->lParam );
00239         }else{
00240             return FALSE;
00241         }
00242     default:
00243         // Modified by KEITA for WIN64 2003.9.6
00244         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00245         if( NULL != pCPropTypes ){
00246             return pCPropTypes->DispatchEvent_p1( hwndDlg, uMsg, wParam, lParam );
00247         }else{
00248             return FALSE;
00249         }
00250     }
00251 }
00252
00253 /* p2 ダイアログプロシージャ */
00254 INT_PTR CALLBACK PropTypesP2Proc(
00255     HWND    hwndDlg,    // handle to dialog box
00256     UINT    uMsg,       // message
00257     WPARAM  wParam,     // first message parameter
00258     LPARAM  lParam      // second message parameter
00259 )
00260 {
00261     PROPSHEETPAGE*  pPsp;
00262     CPropTypes* pCPropTypes;
00263     switch( uMsg ){
00264     case WM_INITDIALOG:
00265         pPsp = (PROPSHEETPAGE*)lParam;
00266         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00267         if( NULL != pCPropTypes ){
00268             return pCPropTypes->DispatchEvent_p2( hwndDlg, uMsg, wParam, pPsp->lParam );
00269         }else{
00270             return FALSE;
00271         }
00272     default:
00273         // Modified by KEITA for WIN64 2003.9.6
00274         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00275         if( NULL != pCPropTypes ){
00276             return pCPropTypes->DispatchEvent_p2( hwndDlg, uMsg, wParam, lParam );
00277         }else{
00278             return FALSE;
00279         }
00280     }
00281 }
00282
00283
00284
00285
00286
00287
00288 //  /* p3 ダイアログプロシージャ */
00289 //  BOOL CALLBACK PropTypesP3Proc(
00290 //      HWND    hwndDlg,    // handle to dialog box
00291 //      UINT    uMsg,       // message
00292 //      WPARAM  wParam,     // first message parameter
00293 //      LPARAM  lParam      // second message parameter
00294 //  )
00295 //  {
00296 //  PROPSHEETPAGE*  pPsp;
00297 //  CPropTypes*     pCPropTypes;
00298 //  switch( uMsg ){
00299 //  case WM_INITDIALOG:
00300 //      pPsp = (PROPSHEETPAGE*)lParam;
00301 //      pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00302 //      if( NULL != pCPropTypes ){
00303 //          return pCPropTypes->DispatchEvent_p3( hwndDlg, uMsg, wParam, pPsp->lParam );
00304 //      }else{
00305 //          return FALSE;
00306 //      }
00307 //  default:
00308 //      pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00309 //      if( NULL != pCPropTypes ){
00310 //          return pCPropTypes->DispatchEvent_p3( hwndDlg, uMsg, wParam, lParam );
00311 //      }else{
00312 //          return FALSE;
00313 //      }
00314 //  }
00315 //  }
00316
00317
00318
00319 /* p3 ダイアログプロシージャ */
00320 INT_PTR CALLBACK PropTypesP3_newProc(
00321     HWND    hwndDlg,    // handle to dialog box
00322     UINT    uMsg,       // message
00323     WPARAM  wParam,     // first message parameter
00324     LPARAM  lParam      // second message parameter
00325 )
00326 {
00327     PROPSHEETPAGE*  pPsp;
00328     CPropTypes*     pCPropTypes;
00329     switch( uMsg ){
00330     case WM_INITDIALOG:
00331         pPsp = (PROPSHEETPAGE*)lParam;
00332         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00333         if( NULL != pCPropTypes ){
00334             return pCPropTypes->DispatchEvent_p3_new( hwndDlg, uMsg, wParam, pPsp->lParam );
00335         }else{
00336             return FALSE;
00337         }
00338     default:
00339         // Modified by KEITA for WIN64 2003.9.6
00340         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00341         if( NULL != pCPropTypes ){
00342             return pCPropTypes->DispatchEvent_p3_new( hwndDlg, uMsg, wParam, lParam );
00343         }else{
00344             return FALSE;
00345         }
00346     }
00347 }
00348
00349
00350
00351
00352 CPropTypes::CPropTypes()
00353 {
00354     /* 共有データ構造体のアドレスを返す */
00355     m_pShareData = CShareData::getInstance()->GetShareData();
00356     // Mar. 31, 2003 genta メモリ削減のためポインタに変更
00357     m_pCKeyWordSetMgr = &(m_pShareData->m_CKeyWordSetMgr);
00358
00359     m_hInstance = NULL;     /* アプリケーションインスタンスのハンドル */
00360     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00361     m_hwndThis  = NULL;     /* このダイアログのハンドル */
00362     m_nPageNum = 0;
00363
00364     // 2005.11.30 Moca カスタム色を設定・保持
00365     int i;
00366     for( i = 0; i < sizeof(m_dwCustColors)/sizeof(m_dwCustColors[0]); i++ ){
00367         m_dwCustColors[i] = RGB( 255, 255, 255 );
00368     }
00369
00370     /* ヘルプファイルのフルパスを返す */
00371 	::GetHelpFilePath( m_szHelpFile );
00372
00373     return;
00374 }
00375
00376
00377
00378
00379
00380 CPropTypes::~CPropTypes()
00381 {
00382 //  if( NULL != m_hbmpToolButtons ){
00383 //      /* ビットマップ破棄 */
00384 //      ::DeleteObject( m_hbmpToolButtons );
00385 //  }
00386     return;
00387 }
00388
00389
00390
00391
00392
00393 /* 初期化 */
00394 void CPropTypes::Create( HINSTANCE hInstApp, HWND hwndParent )
00395 {
00396     m_hInstance = hInstApp;     /* アプリケーションインスタンスのハンドル */
00397     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00398     return;
00399 }
00400
00401
00402
00403
00404
00405 /* 色選択ダイアログ */
00406 BOOL CPropTypes::SelectColor( HWND hwndParent, COLORREF* pColor, DWORD* pCustColors )
00407 {
00408     CHOOSECOLOR     cc;
00409     cc.lStructSize = sizeof( cc );
00410     cc.hwndOwner = hwndParent;
00411     cc.hInstance = NULL;
00412     cc.rgbResult = *pColor;
00413     cc.lpCustColors = pCustColors;
00414     cc.Flags = /*CC_PREVENTFULLOPEN |*/ CC_RGBINIT;
00415     cc.lCustData = NULL;
00416     cc.lpfnHook = NULL;
00417     cc.lpTemplateName = NULL;
00418     if( FALSE == ::ChooseColor( &cc ) ){
00419         return FALSE;
00420     }
00421     *pColor = cc.rgbResult;
00422     return TRUE;
00423 }
00424
00425
00426
00427
00428
00429 /* 色ボタンの描画 */
00430 void CPropTypes::DrawColorButton( DRAWITEMSTRUCT* pDis, COLORREF cColor )
00431 {
00432 //  MYTRACE( "pDis->itemAction = " );
00433
00434     COLORREF    cBtnHiLight     = (COLORREF)::GetSysColor(COLOR_3DHILIGHT);
00435     COLORREF    cBtnShadow      = (COLORREF)::GetSysColor(COLOR_3DSHADOW);
00436     COLORREF    cBtnDkShadow    = (COLORREF)::GetSysColor(COLOR_3DDKSHADOW);
00437     COLORREF    cBtnFace        = (COLORREF)::GetSysColor(COLOR_3DFACE);
00438     COLORREF    cRim;
00439     HBRUSH      hBrush;
00440     HBRUSH      hBrushOld;
00441     HPEN        hPen;
00442     HPEN        hPenOld;
00443     RECT        rc;
00444     RECT        rcFocus;
00445
00446     /* ボタンの表面の色で塗りつぶす */
00447     hBrush = ::CreateSolidBrush( cBtnFace );
00448     ::FillRect( pDis->hDC, &(pDis->rcItem), hBrush );
00449     ::DeleteObject( hBrush );
00450
00451     /* 枠の描画 */
00452     rcFocus = rc = pDis->rcItem;
00453     rc.top += 4;
00454     rc.left += 4;
00455     rc.right -= 4;
00456     rc.bottom -= 4;
00457     rcFocus = rc;
00458 //  rc.right -= 11;
00459
00460     if( pDis->itemState & ODS_SELECTED ){
00461         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00462         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00463         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00464         ::LineTo( pDis->hDC, 0, 0 );
00465         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00466         ::SelectObject( pDis->hDC, hPenOld );
00467         ::DeleteObject( hPen );
00468
00469         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00470         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00471         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 3, NULL );
00472         ::LineTo( pDis->hDC, 1, 1 );
00473         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 1 );
00474         ::SelectObject( pDis->hDC, hPenOld );
00475         ::DeleteObject( hPen );
00476
00477         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00478         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00479         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00480         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00481         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00482         ::SelectObject( pDis->hDC, hPenOld );
00483         ::DeleteObject( hPen );
00484
00485         rc.top += 1;
00486         rc.left += 1;
00487         rc.right += 1;
00488         rc.bottom += 1;
00489
00490         rcFocus.top += 1;
00491         rcFocus.left += 1;
00492         rcFocus.right += 1;
00493         rcFocus.bottom += 1;
00494
00495     }else{
00496         hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00497         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00498         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 2, NULL );
00499         ::LineTo( pDis->hDC, 0, 0 );
00500         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, 0 );
00501         ::SelectObject( pDis->hDC, hPenOld );
00502         ::DeleteObject( hPen );
00503
00504         hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00505         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00506         ::MoveToEx( pDis->hDC, 1, pDis->rcItem.bottom - 2, NULL );
00507         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, pDis->rcItem.bottom - 2 );
00508         ::LineTo( pDis->hDC, pDis->rcItem.right - 2, 0 );
00509         ::SelectObject( pDis->hDC, hPenOld );
00510         ::DeleteObject( hPen );
00511
00512         hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00513         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00514         ::MoveToEx( pDis->hDC, 0, pDis->rcItem.bottom - 1, NULL );
00515         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, pDis->rcItem.bottom - 1 );
00516         ::LineTo( pDis->hDC, pDis->rcItem.right - 1, -1 );
00517         ::SelectObject( pDis->hDC, hPenOld );
00518         ::DeleteObject( hPen );
00519     }
00520     if( pDis->itemState & ODS_DISABLED ){
00521     }else{
00522         /* 指定色で塗りつぶす */
00523         hBrush = ::CreateSolidBrush( cColor );
00524         hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
00525         cRim = cBtnShadow;
00526         hPen = ::CreatePen( PS_SOLID, 0, cRim );
00527         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00528         ::RoundRect( pDis->hDC, rc.left, rc.top, rc.right, rc.bottom , 5, 5 );
00529         ::SelectObject( pDis->hDC, hPenOld );
00530         ::SelectObject( pDis->hDC, hBrushOld );
00531         ::DeleteObject( hPen );
00532         ::DeleteObject( hBrush );
00533     }
00534
00535
00536 //  /* 区切りたて棒 */
00537 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnShadow );
00538 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00539 //  ::MoveToEx( pDis->hDC, rc.right + 3, rc.top, NULL );
00540 //  ::LineTo( pDis->hDC, rc.right + 3, rc.bottom );
00541 //  ::SelectObject( pDis->hDC, hPenOld );
00542 //  ::DeleteObject( hPen );
00543 //
00544 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnHiLight );
00545 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00546 //  ::MoveToEx( pDis->hDC, rc.right + 4, rc.top, NULL );
00547 //  ::LineTo( pDis->hDC, rc.right + 4, rc.bottom );
00548 //  ::SelectObject( pDis->hDC, hPenOld );
00549 //  ::DeleteObject( hPen );
00550 //
00551 //  /* ▼記号 */
00552 //  hPen = ::CreatePen( PS_SOLID, 0, cBtnDkShadow );
00553 //  hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
00554 //  ::MoveToEx( pDis->hDC, rc.right + 6     , rc.top + 6, NULL );
00555 //  ::LineTo(   pDis->hDC, rc.right + 6 + 5 , rc.top + 6 );
00556 //  ::MoveToEx( pDis->hDC, rc.right + 7     , rc.top + 7, NULL );
00557 //  ::LineTo(   pDis->hDC, rc.right + 7 + 3 , rc.top + 7 );
00558 //  ::MoveToEx( pDis->hDC, rc.right + 8     , rc.top + 8, NULL );
00559 //  ::LineTo(   pDis->hDC, rc.right + 8 + 1 , rc.top + 8 );
00560 //  ::SelectObject( pDis->hDC, hPenOld );
00561 //  ::DeleteObject( hPen );
00562
00563     /* フォーカスの長方形 */
00564     if( pDis->itemState & ODS_FOCUS ){
00565         rcFocus.top -= 3;
00566         rcFocus.left -= 3;
00567         rcFocus.right += 2;
00568         rcFocus.bottom += 2;
00569         ::DrawFocusRect( pDis->hDC, &rcFocus );
00570     }
00571     return;
00572 }
00573
00574
00575
00576
00577
00578
00579
00580
00581
00582
00583 //  キーワード：タイプ別設定タブ順序(プロパティシート)
00584 /* プロパティシートの作成 */
00585 int CPropTypes::DoPropertySheet( int nPageNum )
00586 {
00587     int             nRet;
00588     PROPSHEETPAGE   psp[16];
00589     PROPSHEETHEADER psh;
00590     int             nIdx;
00591
00592     m_nMaxLineSize_org = m_Types.m_nMaxLineSize;
00593
00594     // 2005.11.30 Moca カスタム色の先頭にテキスト色を設定しておく
00595     m_dwCustColors[0] = m_Types.m_ColorInfoArr[COLORIDX_TEXT].m_colTEXT;
00596     m_dwCustColors[1] = m_Types.m_ColorInfoArr[COLORIDX_TEXT].m_colBACK;
00597
00598     nIdx = 0;
00599     memset( &psp[nIdx], 0, sizeof( PROPSHEETPAGE ) );
00600     psp[nIdx].dwSize = sizeof( PROPSHEETPAGE );
00601     psp[nIdx].dwFlags = /*PSP_USEICONID |*/ PSP_USETITLE | PSP_HASHELP;
00602     psp[nIdx].hInstance = m_hInstance;
00603     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROPTYPESP1 );
00604     psp[nIdx].pszIcon = NULL/*MAKEINTRESOURCE( IDI_FONT )*/;
00605     psp[nIdx].pfnDlgProc = (DLGPROC)PropTypesP1Proc;
00606     psp[nIdx].pszTitle = "スクリーン";
00607     psp[nIdx].lParam = (LPARAM)this;
00608     psp[nIdx].pfnCallback = NULL;
00609     nIdx++;
00610
00611 //  memset( &psp[nIdx], 0, sizeof( PROPSHEETPAGE ) );
00612 //  psp[nIdx].dwSize = sizeof( PROPSHEETPAGE );
00613 //  psp[nIdx].dwFlags = /*PSP_USEICONID |*/ PSP_USETITLE | PSP_HASHELP;
00614 //  psp[nIdx].hInstance = m_hInstance;
00615 //  psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROP1P3 );
00616 //  psp[nIdx].pszIcon = NULL /*MAKEINTRESOURCE( IDI_BORDER )*/;
00617 //  psp[nIdx].pfnDlgProc = (DLGPROC)PropTypesP3Proc;
00618 //  psp[nIdx].pszTitle = "カラー";
00619 //  psp[nIdx].lParam = (LPARAM)this;
00620 //  psp[nIdx].pfnCallback = NULL;
00621 //  nIdx++;
00622
00623     memset( &psp[nIdx], 0, sizeof( PROPSHEETPAGE ) );
00624     psp[nIdx].dwSize = sizeof( PROPSHEETPAGE );
00625     psp[nIdx].dwFlags = /*PSP_USEICONID |*/ PSP_USETITLE | PSP_HASHELP;
00626     psp[nIdx].hInstance = m_hInstance;
00627     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROP_COLOR );
00628     psp[nIdx].pszIcon = NULL /*MAKEINTRESOURCE( IDI_BORDER) */;
00629     psp[nIdx].pfnDlgProc = (DLGPROC)PropTypesP3_newProc;
00630     psp[nIdx].pszTitle = "カラー";
00631     psp[nIdx].lParam = (LPARAM)this;
00632     psp[nIdx].pfnCallback = NULL;
00633     nIdx++;
00634
00635     // 2001/06/14 Start by asa-o: タイプ別設定に支援タブ追加
00636     memset( &psp[nIdx], 0, sizeof( PROPSHEETPAGE ) );
00637     psp[nIdx].dwSize = sizeof( PROPSHEETPAGE );
00638     psp[nIdx].dwFlags = PSP_USETITLE | PSP_HASHELP;
00639     psp[nIdx].hInstance = m_hInstance;
00640     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROPTYPESP2 );
00641     psp[nIdx].pszIcon = NULL;
00642     psp[nIdx].pfnDlgProc = (DLGPROC)PropTypesP2Proc;
00643     psp[nIdx].pszTitle = "支援";
00644     psp[nIdx].lParam = (LPARAM)this;
00645     psp[nIdx].pfnCallback = NULL;
00646     nIdx++;
00647     // 2001/06/14 End
00648
00649     // 2001.11.17 add start MIK タイプ別設定に正規表現キーワードタブ追加
00650     memset( &psp[nIdx], 0, sizeof( PROPSHEETPAGE ) );
00651     psp[nIdx].dwSize = sizeof( PROPSHEETPAGE );
00652     psp[nIdx].dwFlags = PSP_USETITLE | PSP_HASHELP;
00653     psp[nIdx].hInstance = m_hInstance;
00654     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROP_REGEX );
00655     psp[nIdx].pszIcon = NULL;
00656     psp[nIdx].pfnDlgProc = (DLGPROC)PropTypesRegex;
00657     psp[nIdx].pszTitle = "正規表現キーワード";
00658     psp[nIdx].lParam = (LPARAM)this;
00659     psp[nIdx].pfnCallback = NULL;
00660     nIdx++;
00661     // 2001.11.17 add end MIK
00662
00663     // 2006.04.10 fon ADD-start タイプ別設定に「キーワードヘルプ」タブを追加
00664     memset( &psp[nIdx], 0, sizeof( PROPSHEETPAGE ) );
00665     psp[nIdx].dwSize = sizeof( PROPSHEETPAGE );
00666     psp[nIdx].dwFlags = PSP_USETITLE | PSP_HASHELP;
00667     psp[nIdx].hInstance = m_hInstance;
00668     psp[nIdx].pszTemplate = MAKEINTRESOURCE( IDD_PROP_KEYHELP );
00669     psp[nIdx].pszIcon = NULL;
00670     psp[nIdx].pfnDlgProc = (DLGPROC)PropTypesKeyHelp;
00671     psp[nIdx].pszTitle = "キーワードヘルプ";
00672     psp[nIdx].lParam = (LPARAM)this;
00673     psp[nIdx].pfnCallback = NULL;
00674     nIdx++;
00675     // 2006.04.10 fon ADD-end
00676
00677     memset( &psh, 0, sizeof( PROPSHEETHEADER ) );
00678 #ifdef _WIN64
00679     psh.dwSize = sizeof( psh );
00680 #else
00681     //  Jun. 29, 2002 こおり
00682     //  Windows 95対策．Property SheetのサイズをWindows95が認識できる物に固定する．
00683     const size_t sizeof_old_PROPSHEETHEADER=40;
00684     psh.dwSize = sizeof_old_PROPSHEETHEADER;
00685 #endif
00686 // JEPROtest Sept. 30, 2000 タイプ別設定の隠れ[適用]ボタンの正体はここ。行頭のコメントアウトを入れ替えてみればわかる
00687 //  psh.dwFlags = /*PSH_USEICONID |*/ /*PSH_NOAPPLYNOW |*/ PSH_PROPSHEETPAGE/* | PSH_HASHELP*/;
00688     psh.dwFlags = /*PSH_USEICONID |*/ PSH_NOAPPLYNOW | PSH_PROPSHEETPAGE/* | PSH_HASHELP*/;
00689     psh.hwndParent = m_hwndParent;
00690     psh.hInstance = m_hInstance;
00691     psh.pszIcon = NULL /*MAKEINTRESOURCE( IDI_CELL_PROPERTIES )*/;
00692     psh.pszCaption = (LPSTR)"タイプ別設定"; // Sept. 8, 2000 jepro 単なる「設定」から変更
00693     psh.nPages = nIdx;
00694
00695     //- 20020106 aroka # psh.nStartPage は unsigned なので負にならない
00696     if( -1 == nPageNum ){
00697         psh.nStartPage = m_nPageNum;
00698     }else
00699     if( 0 > nPageNum ){         //- 20020106 aroka
00700         psh.nStartPage = 0;
00701     }else{
00702         psh.nStartPage = nPageNum;
00703     }
00704 //  if( 0 > psh.nStartPage ){   //- 20020106 aroka
00705 //      psh.nStartPage = 0;
00706 //  }
00707     if( psh.nPages - 1 < psh.nStartPage ){
00708         psh.nStartPage = psh.nPages - 1;
00709     }
00710     psh.ppsp = (LPCPROPSHEETPAGE)psp;
00711     psh.pfnCallback = NULL;
00712
00713 //  m_hbmpToolButtons = ::LoadBitmap( m_hInstance, MAKEINTRESOURCE( IDB_MYTOOL ) );
00714
00715     nRet = MyPropertySheet( &psh ); // 2007.05.24 ryoji 独自拡張プロパティシート
00716     if( -1 == nRet ){
00717         char*   pszMsgBuf;
00718         ::FormatMessage(
00719             FORMAT_MESSAGE_ALLOCATE_BUFFER |
00720             FORMAT_MESSAGE_FROM_SYSTEM |
00721             FORMAT_MESSAGE_IGNORE_INSERTS,
00722             NULL,
00723             ::GetLastError(),
00724             MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // デフォルト言語
00725             (LPTSTR)&pszMsgBuf,
00726             0,
00727             NULL
00728         );
00729 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONINFORMATION | MB_TOPMOST, "作者に教えて欲しいエラー",
00730             "CPropTypes::DoPropertySheet()内でエラーが出ました。\npsh.nStartPage=[%d]\n::PropertySheet()失敗。\n\n%s\n", psh.nStartPage, pszMsgBuf
00731         );
00732         ::LocalFree( pszMsgBuf );
00733     }
00734
00735 //  ::DeleteObject( m_hbmpToolButtons );
00736 //  m_hbmpToolButtons = NULL;
00737     return nRet;
00738 }
00739
00740
00741
00742
00743
00744 /* p1 メッセージ処理 */
00745 INT_PTR CPropTypes::DispatchEvent_p1(
00746     HWND        hwndDlg,    // handle to dialog box
00747     UINT        uMsg,       // message
00748     WPARAM      wParam,     // first message parameter
00749     LPARAM      lParam      // second message parameter
00750 )
00751 {
00752     WORD        wNotifyCode;
00753     WORD        wID;
00754 //  HWND        hwndCtl;
00755     NMHDR*      pNMHDR;
00756     NM_UPDOWN*  pMNUD;
00757     int         idCtrl;
00758     int         nVal;
00759 //  LPDRAWITEMSTRUCT pDis;
00760
00761     switch( uMsg ){
00762
00763     case WM_INITDIALOG:
00764         m_hwndThis = hwndDlg;
00765         /* ダイアログデータの設定 p1 */
00766         SetData_p1( hwndDlg );
00767         // Modified by KEITA for WIN64 2003.9.6
00768 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00769
00770         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00771         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPENAME ), EM_LIMITTEXT, (WPARAM)( sizeof( m_Types.m_szTypeName ) - 1 ), 0 );
00772         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPEEXTS ), EM_LIMITTEXT, (WPARAM)( sizeof( m_Types.m_szTypeExts ) - 1 ), 0 );
00773         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_INDENTCHARS ), EM_LIMITTEXT, (WPARAM)( sizeof( m_Types.m_szIndentChars ) - 1 ), 0 );
00774 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
00775         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), EM_LIMITTEXT, (WPARAM)( sizeof( m_Types.m_szTabViewString ) - 1 ), 0 );
00776 //#endif
00777         //  Oct. 5, 2002 genta 画面上でも入力制限
00778         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ),  EM_LIMITTEXT, (WPARAM)( sizeof( m_Types.m_szOutlineRuleFilename ) - 1 ), 0 );
00779
00780         if( 0 == m_Types.m_nIdx ){
00781             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPENAME ), FALSE );
00782             ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TYPEEXTS ), FALSE );
00783         }
00784
00785         return TRUE;
00786     case WM_COMMAND:
00787         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00788         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00789 //      hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
00790         switch( wNotifyCode ){
00791         /* ボタン／チェックボックスがクリックされた */
00792         case BN_CLICKED:
00793             switch( wID ){
00794             /*  2002.04.01 YAZAKI オートインデントを削除（もともと不要）
00795                 アウトライン解析にルールファイル関連を追加
00796             */
00797             case IDC_RADIO_OUTLINEDEFAULT:  /* アウトライン解析→標準ルール */
00798                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), TRUE );
00799                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), FALSE );
00800                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), FALSE );
00801
00802                 ::SendMessage( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), CB_SETCURSEL, 0, 0 );
00803
00804                 return TRUE;
00805             case IDC_RADIO_OUTLINERULEFILE: /* アウトライン解析→ルールファイル */
00806                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), FALSE );
00807                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), TRUE );
00808                 ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), TRUE );
00809                 return TRUE;
00810
00811             case IDC_BUTTON_RULEFILE_REF:   /* アウトライン解析→ルールファイルの「参照...」ボタン */
00812                 {
00813                     CDlgOpenFile    cDlgOpenFile;
00814                     char            szPath[_MAX_PATH + 1];
00815                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
00816                     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00817                     if( _IS_REL_PATH( m_Types.m_szOutlineRuleFilename ) ){
00818                         GetInidirOrExedir( szPath, m_Types.m_szOutlineRuleFilename );
00819                     }else{
00820                         strcpy( szPath, m_Types.m_szOutlineRuleFilename );
00821                     }
00822                     /* ファイルオープンダイアログの初期化 */
00823                     cDlgOpenFile.Create(
00824                         m_hInstance,
00825                         hwndDlg,
00826                         "*.*",
00827                         szPath
00828                     );
00829                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00830                         strcpy( m_Types.m_szOutlineRuleFilename, szPath );
00831                         ::SetDlgItemText( hwndDlg, IDC_EDIT_OUTLINERULEFILE, m_Types.m_szOutlineRuleFilename );
00832                     }
00833                 }
00834                 return TRUE;
00835
00836 //          case IDC_CHECK_KINSOKUHEAD: /* 行頭禁則 */  //@@@ 2002.04.08 MIK
00837 //              if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUHEAD ) ){
00838 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUHEAD ), TRUE );
00839 //              }else{
00840 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUHEAD ), FALSE );
00841 //              }
00842 //              return TRUE;
00843
00844 //          case IDC_CHECK_KINSOKUTAIL: /* 行末禁則 */  //@@@ 2002.04.08 MIK
00845 //              if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUTAIL ) ){
00846 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUTAIL ), TRUE );
00847 //              }else{
00848 //                  ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUTAIL ), FALSE );
00849 //              }
00850 //              return TRUE;
00851
00852                 case IDC_CHECK_TAB_ARROW:
00853                 // Mar. 31, 2003 genta 矢印表示のON/OFFをTAB文字列設定に連動させる
00854                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TAB_ARROW ) ){
00855                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), FALSE );
00856                 }
00857                 else {
00858                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), TRUE );
00859                 }
00860                 return TRUE;
00861
00862             }
00863             break;  /* BN_CLICKED */
00864         }
00865         break;  /* WM_COMMAND */
00866     case WM_NOTIFY:
00867         idCtrl = (int)wParam;
00868         pNMHDR = (NMHDR*)lParam;
00869         pMNUD  = (NM_UPDOWN*)lParam;
00870         switch( idCtrl ){
00871         case IDC_SPIN_MAXLINELEN:
00872             /* 折り返し文字数 */
00873 //          MYTRACE( "IDC_SPIN_MAXLINELEN\n" );
00874             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, NULL, FALSE );
00875             if( pMNUD->iDelta < 0 ){
00876                 ++nVal;
00877             }else
00878             if( pMNUD->iDelta > 0 ){
00879                 --nVal;
00880             }
00881             if( nVal < MINLINESIZE ){
00882                 nVal = MINLINESIZE;
00883             }
00884             if( nVal > MAXLINESIZE ){
00885                 nVal = MAXLINESIZE;
00886             }
00887             ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, nVal, FALSE );
00888             return TRUE;
00889         case IDC_SPIN_CHARSPACE:
00890             /* 文字の隙間 */
00891 //          MYTRACE( "IDC_SPIN_CHARSPACE\n" );
00892             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, NULL, FALSE );
00893             if( pMNUD->iDelta < 0 ){
00894                 ++nVal;
00895             }else
00896             if( pMNUD->iDelta > 0 ){
00897                 --nVal;
00898             }
00899             if( nVal < 0 ){
00900                 nVal = 0;
00901             }
00902             if( nVal > COLUMNSPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
00903                 nVal = COLUMNSPACE_MAX;
00904             }
00905             ::SetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, nVal, FALSE );
00906             return TRUE;
00907         case IDC_SPIN_LINESPACE:
00908             /* 行の隙間 */
00909 //          MYTRACE( "IDC_SPIN_LINESPACE\n" );
00910             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, NULL, FALSE );
00911             if( pMNUD->iDelta < 0 ){
00912                 ++nVal;
00913             }else
00914             if( pMNUD->iDelta > 0 ){
00915                 --nVal;
00916             }
00917 //  From Here Oct. 8, 2000 JEPRO 行間も最小0まで設定できるように変更(昔に戻っただけ?)
00918 //          if( nVal < 1 ){
00919 //              nVal = 1;
00920 //          }
00921             if( nVal < 0 ){
00922                 nVal = 0;
00923             }
00924 //  To Here  Oct. 8, 2000
00925             if( nVal > LINESPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
00926                 nVal = LINESPACE_MAX;
00927             }
00928             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, nVal, FALSE );
00929             return TRUE;
00930         case IDC_SPIN_REPEATEDSCROLLLINENUM:
00931             /* キーリピート時のスクロール行数 */
00932 //          MYTRACE( "IDC_SPIN_REPEATEDSCROLLLINENUM\n" );
00933             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, NULL, FALSE );
00934             if( pMNUD->iDelta < 0 ){
00935                 ++nVal;
00936             }else
00937             if( pMNUD->iDelta > 0 ){
00938                 --nVal;
00939             }
00940             if( nVal < 1 ){
00941                 nVal = 1;
00942             }
00943             if( nVal > 10 ){
00944                 nVal = 10;
00945             }
00946             ::SetDlgItemInt( hwndDlg, IDC_EDIT_REPEATEDSCROLLLINENUM, nVal, FALSE );
00947             return TRUE;
00948         case IDC_SPIN_TABSPACE:
00949             //  Sep. 22, 2002 genta
00950             /* TAB幅 */
00951 //          MYTRACE( "IDC_SPIN_CHARSPACE\n" );
00952             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, NULL, FALSE );
00953             if( pMNUD->iDelta < 0 ){
00954                 ++nVal;
00955             }else
00956             if( pMNUD->iDelta > 0 ){
00957                 --nVal;
00958             }
00959             if( nVal < 1 ){
00960                 nVal = 1;
00961             }
00962             if( nVal > 64 ){
00963                 nVal = 64;
00964             }
00965             ::SetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, nVal, FALSE );
00966             return TRUE;
00967
00968         default:
00969             switch( pNMHDR->code ){
00970             case PSN_HELP:
00971                 OnHelp( hwndDlg, IDD_PROPTYPESP1 );
00972                 return TRUE;
00973             case PSN_KILLACTIVE:
00974 //              MYTRACE( "p1 PSN_KILLACTIVE\n" );
00975                 /* ダイアログデータの取得 p1 */
00976                 GetData_p1( hwndDlg );
00977
00978 //              if( m_nMaxLineSize_org != m_Types.m_nMaxLineSize ){
00979 //                  if( IDNO == ::MessageBox( hwndDlg, "折り返し桁数を変更すると、アンドゥ・リドゥバッファがクリアされます。\nよろしいですか？", GSTR_APPNAME, MB_YESNO | MB_ICONQUESTION ) ){
00980 //                      m_Types.m_nMaxLineSize = m_nMaxLineSize_org;
00981 //                      SetData_p1( hwndDlg );
00982 //                  }
00983 //              }
00984                 return TRUE;
00985 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00986             case PSN_SETACTIVE:
00987                 m_nPageNum = 0;
00988                 return TRUE;
00989             }
00990             break;
00991         }
00992
00993 //      MYTRACE( "pNMHDR->hwndFrom  =%xh\n",    pNMHDR->hwndFrom );
00994 //      MYTRACE( "pNMHDR->idFrom    =%xh\n",    pNMHDR->idFrom );
00995 //      MYTRACE( "pNMHDR->code      =%xh\n",    pNMHDR->code );
00996 //      MYTRACE( "pMNUD->iPos       =%d\n",     pMNUD->iPos );
00997 //      MYTRACE( "pMNUD->iDelta     =%d\n",     pMNUD->iDelta );
00998         break;
00999
01000 //@@@ 2001.02.04 Start by MIK: Popup Help
01001     case WM_HELP:
01002         {
01003             HELPINFO *p = (HELPINFO *)lParam;
01004             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids1 );   // 2006.10.10 ryoji MyWinHelpに変更に変更
01005         }
01006         return TRUE;
01007         /*NOTREACHED*/
01008 //      break;
01009 //@@@ 2001.02.04 End
01010
01011 //@@@ 2001.11.17 add start MIK
01012     //Context Menu
01013     case WM_CONTEXTMENU:
01014         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids1 );    // 2006.10.10 ryoji MyWinHelpに変更に変更
01015         return TRUE;
01016 //@@@ 2001.11.17 add end MIK
01017
01018     }
01019     return FALSE;
01020 }
01021
01022
01023
01024
01025
01026 /* ダイアログデータの設定 p1 */
01027 void CPropTypes::SetData_p1( HWND hwndDlg )
01028 {
01029     BOOL    bRet;
01030     static  int nTabArr[] = { 2, 3, 4, 6, 8 };
01031     static  int nTabArrNum = sizeof( nTabArr ) / sizeof( nTabArr[0] );
01032     int         i;
01033     //char      szWork[32];
01034
01035     /* タイプ属性：名称 */
01036     ::SetDlgItemText( hwndDlg, IDC_EDIT_TYPENAME, m_Types.m_szTypeName );
01037
01038     /* タイプ属性：拡張子リスト */
01039     ::SetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTS, m_Types.m_szTypeExts );
01040
01041     /* 折り返し文字数 */
01042     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, m_Types.m_nMaxLineSize, FALSE );
01043
01044     /* 文字の隙間 */
01045     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, m_Types.m_nColmSpace, FALSE );
01046
01047     /* 行の隙間 */
01048     bRet = ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, m_Types.m_nLineSpace, FALSE );
01049
01050     /* TAB幅 */
01051     //  Sep. 22, 2002 genta
01052     ::SetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, m_Types.m_nTabSpace, FALSE );
01053     //j = 0;
01054     //for( i = 0; i < nTabArrNum; ++i ){
01055     //  wsprintf( szWork, "%d", nTabArr[i] );
01056     //  ::SendDlgItemMessage( hwndDlg, IDC_COMBO_TABSPACE, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)szWork );
01057     //  if( m_Types.m_nTabSpace == nTabArr[i] ){
01058     //      j = i;
01059     //  }
01060     //}
01061     //::SendDlgItemMessage( hwndDlg, IDC_COMBO_TABSPACE, CB_SETCURSEL, (WPARAM)j, 0 );
01062 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
01063     /* TAB表示文字列 */
01064     ::SetDlgItemText( hwndDlg, IDC_EDIT_TABVIEWSTRING, m_Types.m_szTabViewString );
01065 //#endif
01066
01067     //タブ矢印表示  //@@@ 2003.03.26 MIK
01068     ::CheckDlgButton( hwndDlg, IDC_CHECK_TAB_ARROW, m_Types.m_bTabArrow );
01069     // Mar. 31, 2003 genta 矢印表示のON/OFFをTAB文字列設定に連動させる
01070     if( m_Types.m_bTabArrow ){
01071         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), FALSE );
01072     }
01073     else {
01074         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_TABVIEWSTRING ), TRUE );
01075     }
01076 // From Here 2001.12.03 hor
01077     /* スペースの挿入 */
01078     ::CheckDlgButton( hwndDlg, IDC_CHECK_INS_SPACE, m_Types.m_bInsSpace );
01079 // To Here 2001.12.03 hor
01080
01081     /* その他のインデント対象文字 */
01082     ::SetDlgItemText( hwndDlg, IDC_EDIT_INDENTCHARS, m_Types.m_szIndentChars );
01083
01084
01085     /* アウトライン解析方法
01086
01087         2002.04.01 YAZAKI ルールファイル関連追加
01088     */
01089     HWND    hwndCombo;
01090     int     nSelPos;
01091     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES );
01092     ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
01093     nSelPos = 0;
01094     for( i = 0; i < nOlmArrNum; ++i ){
01095         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)OlmArr[i].pszName );
01096         if( OlmArr[i].nMethod == m_Types.m_nDefaultOutline ){   /* アウトライン解析方法 */
01097             nSelPos = i;
01098         }
01099     }
01100
01101     // 2003.06.23 Moca ルールファイル名は使わなくてもセットしておく
01102     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), TRUE );
01103     ::SetDlgItemText( hwndDlg, IDC_EDIT_OUTLINERULEFILE, m_Types.m_szOutlineRuleFilename );
01104
01105     if( m_Types.m_nDefaultOutline == OUTLINE_FILE ){
01106         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINEDEFAULT, FALSE );
01107         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINERULEFILE, TRUE );
01108
01109         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), FALSE );
01110         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), TRUE );
01111
01112     }else{
01113         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINEDEFAULT, TRUE );
01114         ::CheckDlgButton( hwndDlg, IDC_RADIO_OUTLINERULEFILE, FALSE );
01115
01116         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES ), TRUE );
01117         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_OUTLINERULEFILE ), FALSE );
01118         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_RULEFILE_REF ), FALSE );
01119
01120         ::SendMessage( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01121     }
01122
01123     /* インデント */
01124     ::CheckDlgButton( hwndDlg, IDC_CHECK_INDENT, m_Types.m_bAutoIndent );
01125
01126     /* 日本語空白もインデント */
01127     ::CheckDlgButton( hwndDlg, IDC_CHECK_INDENT_WSPACE, m_Types.m_bAutoIndent_ZENSPACE );
01128
01129     /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
01130     ::CheckDlgButton( hwndDlg, IDC_CHECK_RTRIM_PREVLINE, m_Types.m_bRTrimPrevLine );
01131
01132     /* スマートインデント種別 */
01133 //  HWND    hwndCombo;
01134 //  int     nSelPos;
01135     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_SMARTINDENT );
01136     ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
01137     nSelPos = 0;
01138     for( i = 0; i < nSmartIndentArrNum; ++i ){
01139         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)SmartIndentArr[i].pszName );
01140         if( SmartIndentArr[i].nMethod == m_Types.m_nSmartIndent ){  /* スマートインデント種別 */
01141             nSelPos = i;
01142         }
01143     }
01144     ::SendMessage( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01145
01146     /* 折り返しは2行目以降を字下げ表示 */
01147     //  Oct. 1, 2002 genta コンボボックスに変更
01148     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_INDENTLAYOUT );
01149     ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
01150     nSelPos = 0;
01151     for( i = 0; i < nIndentTypeArrNum; ++i ){
01152         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)IndentTypeArr[i].pszName );
01153         if( IndentTypeArr[i].nMethod == m_Types.m_nIndentLayout ){  /* 折り返しインデント種別 */
01154             nSelPos = i;
01155         }
01156     }
01157     ::SendMessage( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01158
01159     //  From Here Nov. 20, 2000 genta
01160     //  IME入力モード
01161     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESTATE );
01162     ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
01163     int ime = m_Types.m_nImeState >> 2;
01164     nSelPos = 0;
01165     for( i = 0; i < nImeStateArrNum; ++i ){
01166         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)ImeStateArr[i].pszName );
01167         if( ImeStateArr[i].nMethod == ime ){    /* IME状態 */
01168             nSelPos = i;
01169         }
01170     }
01171     ::SendMessage( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01172     //  IME ON/OFF制御
01173     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESWITCH );
01174     ::SendMessage( hwndCombo, CB_RESETCONTENT, 0, 0 );
01175     ime = m_Types.m_nImeState & 3;
01176     nSelPos = 0;
01177     for( i = 0; i < nImeSwitchArrNum; ++i ){
01178         ::SendMessage( hwndCombo, CB_INSERTSTRING, i, (LPARAM)ImeSwitchArr[i].pszName );
01179         if( ImeSwitchArr[i].nMethod == ime ){   /* IME状態 */
01180             nSelPos = i;
01181         }
01182     }
01183     ::SendMessage( hwndCombo, CB_SETCURSEL, nSelPos, 0 );
01184     //  To Here Nov. 20, 2000 genta
01185
01186     /* 英文ワードラップをする */
01187     ::CheckDlgButton( hwndDlg, IDC_CHECK_WORDWRAP, m_Types.m_bWordWrap );
01188
01189     /* 禁則処理 */
01190     {   //@@@ 2002.04.08 MIK start
01191         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKUHEAD, m_Types.m_bKinsokuHead ? TRUE : FALSE );
01192         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKUTAIL, m_Types.m_bKinsokuTail ? TRUE : FALSE );
01193         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKURET,  m_Types.m_bKinsokuRet  ? TRUE : FALSE );  /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
01194         ::CheckDlgButton( hwndDlg, IDC_CHECK_KINSOKUKUTO, m_Types.m_bKinsokuKuto ? TRUE : FALSE );  /* 句読点をぶら下げる */    //@@@ 2002.04.17 MIK
01195         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUHEAD ), EM_LIMITTEXT, (WPARAM)(sizeof(m_Types.m_szKinsokuHead) - 1 ), 0 );
01196         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUTAIL ), EM_LIMITTEXT, (WPARAM)(sizeof(m_Types.m_szKinsokuTail) - 1 ), 0 );
01197         ::SetDlgItemText( hwndDlg, IDC_EDIT_KINSOKUHEAD, m_Types.m_szKinsokuHead );
01198         ::SetDlgItemText( hwndDlg, IDC_EDIT_KINSOKUTAIL, m_Types.m_szKinsokuTail );
01199 //      if( m_Types.m_bKinsokuHead ){
01200 //          ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUHEAD ), TRUE );
01201 //      }else{
01202 //          ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUHEAD ), FALSE );
01203 //      }
01204 //      if( m_Types.m_bKinsokuTail ){
01205 //          ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUTAIL ), TRUE );
01206 //      }else{
01207 //          ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_KINSOKUTAIL ), FALSE );
01208 //      }
01209     }   //@@@ 2002.04.08 MIK end
01210
01211     //  Sep. 10, 2002 genta
01212     ::CheckDlgButton( hwndDlg, IDC_CHECK_DOCICON, m_Types.m_bUseDocumentIcon  ? TRUE : FALSE );
01213
01214     return;
01215 }
01216
01217
01218
01219
01220
01221 /* ダイアログデータの取得 p1 */
01222 int CPropTypes::GetData_p1( HWND hwndDlg )
01223 {
01224 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
01225     char szTab[8+1+1]; /* +1. happy */
01226     int  i;
01227 //#endif
01228
01229 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
01230 //  m_nPageNum = 0;
01231     /* タイプ属性：名称 */
01232     ::GetDlgItemText( hwndDlg, IDC_EDIT_TYPENAME, m_Types.m_szTypeName, sizeof( m_Types.m_szTypeName ) );
01233     /* タイプ属性：拡張子リスト */
01234     ::GetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTS, m_Types.m_szTypeExts, sizeof( m_Types.m_szTypeExts ) );
01235
01236
01237     /* 折り返し文字数 */
01238     m_Types.m_nMaxLineSize = ::GetDlgItemInt( hwndDlg, IDC_EDIT_MAXLINELEN, NULL, FALSE );
01239     if( m_Types.m_nMaxLineSize < MINLINESIZE ){
01240         m_Types.m_nMaxLineSize = MINLINESIZE;
01241     }
01242     if( m_Types.m_nMaxLineSize > MAXLINESIZE ){
01243         m_Types.m_nMaxLineSize = MAXLINESIZE;
01244     }
01245
01246     /* 文字の隙間 */
01247     m_Types.m_nColmSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_CHARSPACE, NULL, FALSE );
01248     if( m_Types.m_nColmSpace < 0 ){
01249         m_Types.m_nColmSpace = 0;
01250     }
01251     if( m_Types.m_nColmSpace > COLUMNSPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
01252         m_Types.m_nColmSpace = COLUMNSPACE_MAX;
01253     }
01254
01255     /* 行の隙間 */
01256     m_Types.m_nLineSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINESPACE, NULL, FALSE );
01257 //  From Here Oct. 8, 2000 JEPRO 行間も最小0まで設定できるように変更(昔に戻っただけ?)
01258 //  if( m_Types.m_nLineSpace < 1 ){
01259 //      m_Types.m_nLineSpace = 1;
01260 //  }
01261     if( m_Types.m_nLineSpace < 0 ){
01262         m_Types.m_nLineSpace = 0;
01263     }
01264 //  To Here  Oct. 8, 2000
01265     if( m_Types.m_nLineSpace > LINESPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
01266         m_Types.m_nLineSpace = LINESPACE_MAX;
01267     }
01268
01269     /* その他のインデント対象文字 */
01270     ::GetDlgItemText( hwndDlg, IDC_EDIT_INDENTCHARS, m_Types.m_szIndentChars, sizeof( m_Types.m_szIndentChars ) - 1 );
01271
01272     /* TAB幅 */
01273     m_Types.m_nTabSpace = ::GetDlgItemInt( hwndDlg, IDC_EDIT_TABSPACE, NULL, FALSE );
01274     if( m_Types.m_nTabSpace < 1 ){
01275         m_Types.m_nTabSpace = 1;
01276     }
01277     if( m_Types.m_nTabSpace > 64 ){
01278         m_Types.m_nTabSpace = 64;
01279     }
01280
01281 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
01282     /* TAB表示文字列 */
01283     ::GetDlgItemText( hwndDlg, IDC_EDIT_TABVIEWSTRING, szTab, sizeof( szTab ) - 1 );
01284     strcpy( m_Types.m_szTabViewString, "^       " );
01285     for( i = 0; i < 8; i++ ){
01286         if( (szTab[i] == '\0') || (szTab[i] < 0x20 || szTab[i] >= 0x7f) ) break;
01287         m_Types.m_szTabViewString[i] = szTab[i];
01288     }
01289 //#endif
01290
01291     //タブ矢印表示  //@@@ 2003.03.26 MIK
01292     m_Types.m_bTabArrow = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TAB_ARROW );
01293 // 2001.12.03 hor
01294     /* スペースの挿入 */
01295     m_Types.m_bInsSpace = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_INS_SPACE );
01296 // From Here 2001.12.03 hor
01297
01298     /* アウトライン解析方法
01299
01300         2002.04.01 YAZAKI ルールファイル関連追加
01301     */
01302     HWND    hwndCombo;
01303     int     nSelPos;
01304
01305     // 2003.06.23 Moca ルールを使っていなくてもファイル名を保持
01306     ::GetDlgItemText( hwndDlg, IDC_EDIT_OUTLINERULEFILE, m_Types.m_szOutlineRuleFilename, sizeof( m_Types.m_szOutlineRuleFilename ));
01307
01308     if ( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_OUTLINERULEFILE) ){
01309         m_Types.m_nDefaultOutline = OUTLINE_FILE;
01310     }
01311     else {
01312         hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_OUTLINES );
01313         nSelPos = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
01314         m_Types.m_nDefaultOutline = OlmArr[nSelPos].nMethod;    /* アウトライン解析方法 */
01315     }
01316
01317     /* インデント */
01318     m_Types.m_bAutoIndent = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_INDENT );
01319
01320     /* 日本語空白もインデント */
01321     m_Types.m_bAutoIndent_ZENSPACE = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_INDENT_WSPACE );
01322
01323     /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
01324     m_Types.m_bRTrimPrevLine = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_RTRIM_PREVLINE );
01325
01326     /* スマートインデント種別 */
01327 //  HWND    hwndCombo;
01328 //  int     nSelPos;
01329     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_SMARTINDENT );
01330     nSelPos = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
01331     m_Types.m_nSmartIndent = SmartIndentArr[nSelPos].nMethod;   /* スマートインデント種別 */
01332
01333     /* 折り返しは2行目以降を字下げ表示 */
01334     //  Oct. 1, 2002 genta コンボボックスに変更
01335     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_INDENTLAYOUT );
01336     nSelPos = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
01337     m_Types.m_nIndentLayout = IndentTypeArr[nSelPos].nMethod;   /* 折り返し部インデント種別 */
01338
01339     //  From Here Nov. 20, 2000 genta   IME状態
01340     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESTATE );
01341     nSelPos = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
01342     m_Types.m_nImeState = ImeStateArr[nSelPos].nMethod << 2;    //  IME入力モード
01343
01344     hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_IMESWITCH );
01345     nSelPos = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
01346     m_Types.m_nImeState |= ImeSwitchArr[nSelPos].nMethod;   //  IME ON/OFF
01347     //  To Here Nov. 20, 2000 genta
01348
01349     /* 英文ワードラップをする */
01350     m_Types.m_bWordWrap = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_WORDWRAP );
01351
01352     /* 禁則処理 */
01353     {   //@@@ 2002.04.08 MIK start
01354         m_Types.m_bKinsokuHead = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUHEAD ) ? TRUE : FALSE;
01355         m_Types.m_bKinsokuTail = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUTAIL ) ? TRUE : FALSE;
01356         m_Types.m_bKinsokuRet  = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKURET  ) ? TRUE : FALSE; /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
01357         m_Types.m_bKinsokuKuto = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_KINSOKUKUTO ) ? TRUE : FALSE; /* 句読点をぶら下げる */    //@@@ 2002.04.17 MIK
01358         ::GetDlgItemText( hwndDlg, IDC_EDIT_KINSOKUHEAD, m_Types.m_szKinsokuHead, sizeof( m_Types.m_szKinsokuHead ) );
01359         ::GetDlgItemText( hwndDlg, IDC_EDIT_KINSOKUTAIL, m_Types.m_szKinsokuTail, sizeof( m_Types.m_szKinsokuTail ) );
01360     }   //@@@ 2002.04.08 MIK end
01361
01362     //  Sep. 10, 2002 genta
01363     m_Types.m_bUseDocumentIcon = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DOCICON ) ? TRUE : FALSE;
01364
01365     return TRUE;
01366 }
01367
01368
01369
01370 // 2001/06/13 Start By asa-o: タイプ別設定の支援タブに関する処理
01371
01372 /* p2 メッセージ処理 */
01373 INT_PTR CPropTypes::DispatchEvent_p2(
01374     HWND        hwndDlg,    // handle to dialog box
01375     UINT        uMsg,       // message
01376     WPARAM      wParam,     // first message parameter
01377     LPARAM      lParam      // second message parameter
01378 )
01379 {
01380     WORD        wNotifyCode;
01381     WORD        wID;
01382     NMHDR*      pNMHDR;
01383
01384     switch( uMsg ){
01385     case WM_INITDIALOG:
01386         /* ダイアログデータの設定 p2 */
01387         SetData_p2( hwndDlg );
01388         // Modified by KEITA for WIN64 2003.9.6
01389 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01390
01391         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
01392         /* 入力補完 単語ファイル */
01393         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_HOKANFILE ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
01394         /* キーワードヘルプ 辞書ファイル */
01395         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYWORDHELPFILE ), EM_LIMITTEXT, (WPARAM)(_MAX_PATH - 1 ), 0 );
01396
01397         return TRUE;
01398     case WM_COMMAND:
01399         wNotifyCode = HIWORD(wParam);   /* 通知コード */
01400         wID         = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
01401 //      hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
01402         switch( wNotifyCode ){
01403         /* ボタン／チェックボックスがクリックされた */
01404         case BN_CLICKED:
01405             /* ダイアログデータの取得 p2 */
01406             GetData_p2( hwndDlg );
01407             switch( wID ){
01408             case IDC_BUTTON_HOKANFILE_REF:  /* 入力補完 単語ファイルの「参照...」ボタン */
01409                 {
01410                     CDlgOpenFile    cDlgOpenFile;
01411                     char            szPath[_MAX_PATH + 1];
01412                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
01413                     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
01414                     if( _IS_REL_PATH( m_Types.m_szHokanFile ) ){
01415                         GetInidirOrExedir( szPath, m_Types.m_szHokanFile );
01416                     }else{
01417                         strcpy( szPath, m_Types.m_szHokanFile );
01418                     }
01419                     /* ファイルオープンダイアログの初期化 */
01420                     cDlgOpenFile.Create(
01421                         m_hInstance,
01422                         hwndDlg,
01423                         "*.*",
01424                         szPath
01425                     );
01426                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01427                         strcpy( m_Types.m_szHokanFile, szPath );
01428                         ::SetDlgItemText( hwndDlg, IDC_EDIT_HOKANFILE, m_Types.m_szHokanFile );
01429                     }
01430                 }
01431                 return TRUE;
01432             case IDC_BUTTON_TYPEOPENHELP:   /* 外部ヘルプ１の「参照...」ボタン */
01433                 {
01434                     CDlgOpenFile    cDlgOpenFile;
01435                     char            szPath[_MAX_PATH + 1];
01436                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
01437                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
01438                     if( _IS_REL_PATH( m_Types.m_szExtHelp ) ){
01439                         GetInidirOrExedir( szPath, m_Types.m_szExtHelp, TRUE );
01440                     }else{
01441                         strcpy( szPath, m_Types.m_szExtHelp );
01442                     }
01443                     /* ファイルオープンダイアログの初期化 */
01444                     cDlgOpenFile.Create(
01445                         m_hInstance,
01446                         hwndDlg,
01447                         "*.hlp",
01448                         szPath
01449                     );
01450                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01451                         strcpy( m_Types.m_szExtHelp, szPath );
01452                         ::SetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTHELP, m_Types.m_szExtHelp );
01453                     }
01454                 }
01455                 return TRUE;
01456             case IDC_BUTTON_TYPEOPENEXTHTMLHELP:    /* 外部HTMLヘルプの「参照...」ボタン */
01457                 {
01458                     CDlgOpenFile    cDlgOpenFile;
01459                     char            szPath[_MAX_PATH + 1];
01460                     // 2003.06.23 Moca 相対パスは実行ファイルからのパスとして開く
01461                     // 2007.05.21 ryoji 相対パスは設定ファイルからのパスを優先
01462                     if( _IS_REL_PATH( m_Types.m_szExtHtmlHelp ) ){
01463                         GetInidirOrExedir( szPath, m_Types.m_szExtHtmlHelp, TRUE );
01464                     }else{
01465                         strcpy( szPath, m_Types.m_szExtHtmlHelp );
01466                     }
01467                     /* ファイルオープンダイアログの初期化 */
01468                     cDlgOpenFile.Create(
01469                         m_hInstance,
01470                         hwndDlg,
01471                         "*.chm;*.col",
01472                         szPath
01473                     );
01474                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01475                         strcpy( m_Types.m_szExtHtmlHelp, szPath );
01476                         ::SetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTHTMLHELP, m_Types.m_szExtHtmlHelp );
01477                     }
01478                 }
01479                 return TRUE;
01480             }
01481             break;  /* BN_CLICKED */
01482         }
01483         break;  /* WM_COMMAND */
01484     case WM_NOTIFY:
01485 //      idCtrl = (int)wParam;
01486         pNMHDR = (NMHDR*)lParam;
01487 //      pMNUD  = (NM_UPDOWN*)lParam;
01488         switch( pNMHDR->code ){
01489         case PSN_HELP:  //Jul. 03, 2001 JEPRO 支援タブのヘルプを有効化
01490             OnHelp( hwndDlg, IDD_PROPTYPESP2 );
01491             return TRUE;
01492         case PSN_KILLACTIVE:
01493             /* ダイアログデータの取得 p2 */
01494             GetData_p2( hwndDlg );
01495             return TRUE;
01496 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
01497         case PSN_SETACTIVE:
01498             m_nPageNum = 2;
01499             return TRUE;
01500         }
01501         break;
01502
01503 //From Here Jul. 05, 2001 JEPRO: Popup Help
01504     case WM_HELP:
01505         {
01506             HELPINFO *p = (HELPINFO *)lParam;
01507             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids3 );   // 2006.10.10 ryoji MyWinHelpに変更に変更
01508         }
01509         return TRUE;
01510         /*NOTREACHED*/
01511 //      break;
01512 //To Here  Jul. 05, 2001
01513
01514 //@@@ 2001.11.17 add start MIK
01515     //Context Menu
01516     case WM_CONTEXTMENU:
01517         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids3 );    // 2006.10.10 ryoji MyWinHelpに変更に変更
01518         return TRUE;
01519 //@@@ 2001.11.17 add end MIK
01520
01521     }
01522     return FALSE;
01523 }
01524
01525 /* ダイアログデータの設定 p2 */
01526 void CPropTypes::SetData_p2( HWND hwndDlg )
01527 {
01528     /* 入力補完 単語ファイル */
01529     ::SetDlgItemText( hwndDlg, IDC_EDIT_HOKANFILE, m_Types.m_szHokanFile );
01530
01531 //  2001/06/19 asa-o
01532     /* 入力補完機能：英大文字小文字を同一視する */
01533     ::CheckDlgButton( hwndDlg, IDC_CHECK_HOKANLOHICASE, m_Types.m_bHokanLoHiCase );
01534
01535     // 2003.06.25 Moca ファイルからの補完機能
01536     ::CheckDlgButton( hwndDlg, IDC_CHECK_HOKANBYFILE, m_Types.m_bUseHokanByFile );
01537
01538     //@@@ 2002.2.2 YAZAKI
01539     ::SetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTHELP, m_Types.m_szExtHelp );
01540     ::SetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTHTMLHELP, m_Types.m_szExtHtmlHelp );
01541     ::CheckDlgButton( hwndDlg, IDC_CHECK_TYPEHTMLHELPISSINGLE, m_Types.m_bHtmlHelpIsSingle );
01542     return;
01543 }
01544
01545 /* ダイアログデータの取得 p2 */
01546 int CPropTypes::GetData_p2( HWND hwndDlg )
01547 {
01548 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
01549 //  m_nPageNum = 2;
01550
01551 //  2001/06/19  asa-o
01552     /* 入力補完機能：英大文字小文字を同一視する */
01553     m_Types.m_bHokanLoHiCase = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_HOKANLOHICASE );
01554
01555     m_Types.m_bUseHokanByFile = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_HOKANBYFILE );
01556
01557     /* 入力補完 単語ファイル */
01558     ::GetDlgItemText( hwndDlg, IDC_EDIT_HOKANFILE, m_Types.m_szHokanFile, sizeof( m_Types.m_szHokanFile ));
01559
01560     //@@@ 2002.2.2 YAZAKI
01561     ::GetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTHELP, m_Types.m_szExtHelp, sizeof( m_Types.m_szExtHelp ));
01562     ::GetDlgItemText( hwndDlg, IDC_EDIT_TYPEEXTHTMLHELP, m_Types.m_szExtHtmlHelp, sizeof( m_Types.m_szExtHtmlHelp ));
01563     m_Types.m_bHtmlHelpIsSingle = ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_TYPEHTMLHELPISSINGLE );
01564     return TRUE;
01565 }
01566
01567 // 2001/06/13 End
01568
01569
01570
01571
01572 /* 色の設定をインポート */
01573 void CPropTypes::p3_Import_Colors( HWND hwndDlg )
01574 {
01575     CDlgOpenFile    cDlgOpenFile;
01576     char*           pszMRU = NULL;;
01577     char*           pszOPENFOLDER = NULL;;
01578     char            szPath[_MAX_PATH + 1];
01579     HFILE           hFile;
01580 //  char            szLine[1024];
01581 //  int             i;
01582     int             i;
01583
01584     char            pHeader[1024];
01585     int             nColorInfoArrNum;                       /* キー割り当て表の有効データ数 */
01586     ColorInfo       ColorInfoArr[64];
01587     char            szInitDir[_MAX_PATH + 1];
01588 //  HWND            hwndCtrl;
01589     CProfile        cProfile;
01590
01591     cProfile.SetReadingMode();
01592
01593     strcpy( szPath, "" );
01594     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
01595
01596     /* ファイルオープンダイアログの初期化 */
01597     cDlgOpenFile.Create(
01598         m_hInstance,
01599         hwndDlg,
01600         "*.col",
01601         szInitDir,
01602         (const char **)&pszMRU,
01603         (const char **)&pszOPENFOLDER
01604     );
01605     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
01606         return;
01607     }
01608     /* ファイルのフルパスを、フォルダとファイル名に分割 */
01609     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
01610 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
01611     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
01612
01613
01614     /* 色設定Ver1か */
01615     hFile = _lopen( szPath, OF_READ );
01616     if( HFILE_ERROR == hFile ){
01617 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "ファイルを開けませんでした。\n\n%s", szPath );
01618         return;
01619     }
01620 //  if( STR_COLORDATA_HEAD_LEN      == _lread( hFile, pHeader, STR_COLORDATA_HEAD_LEN )
01621 //   && sizeof( nColorInfoArrNum )  == _lread( hFile, &nColorInfoArrNum, sizeof( nColorInfoArrNum ) )
01622 //   && 0 == memcmp( pHeader, STR_COLORDATA_HEAD, STR_COLORDATA_HEAD_LEN )
01623 //  ){
01624 //      int nWorkWork = sizeof( ColorInfoArr[0] );
01625 //
01626 //      for( i = 0; i < nColorInfoArrNum && i < m_Types.m_nColorInfoArrNum; ++i ){
01627 //          if( sizeof( ColorInfoArr[i] ) != _lread( hFile,  &ColorInfoArr[i], sizeof( ColorInfoArr[i] ) ) ){
01628 //              ::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
01629 //                  "色設定ファイルの形式が違います。\n\n%s", szPath
01630 //              );
01631 //              _lclose( hFile );
01632 //              return;
01633 //          }
01634 //      }
01635 //      _lclose( hFile );
01636 //      goto complete;
01637 //  }else{
01638         /* ファイル先頭 */
01639         _llseek( hFile, 0, FILE_BEGIN );
01640         char    szWork[256];
01641         int     nWorkLen;
01642 //      wsprintf( szWork, "//%s\r\n", STR_COLORDATA_HEAD2 );
01643 #ifndef STR_COLORDATA_HEAD3
01644         wsprintf( szWork, "//%s\r\n", STR_COLORDATA_HEAD21 );   //Nov. 2, 2000 JEPRO 変更 [注]. 0.3.9.0:ur3β10以降、設定項目の番号を入れ替えたため
01645 #else
01646         wsprintf( szWork, "//%s\r\n", STR_COLORDATA_HEAD3 );    //Jan. 15, 2001 Stonee
01647 #endif
01648         nWorkLen = strlen( szWork );
01649         if( nWorkLen == (int)_lread( hFile, pHeader, nWorkLen ) &&
01650             0 == memcmp( pHeader, szWork, nWorkLen )
01651         ){
01652         }else{
01653 			::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
01654 //              "色設定ファイルの形式が違います。\n古い形式はサポートされなくなりました。\n%s", szPath
01655 //              Nov. 2, 2000 JEPRO 変更 [注]. 0.3.9.0:ur3β10以降、設定項目の番号を入れ替えたため
01656 //              Dec. 26, 2000 JEPRO UR1.2.24.0で強調キーワード2が入ってきたためCI[13]が追加された. それに伴い13番以降を1つづらした
01657 //              "色設定ファイルの形式が違います。\n古い形式はサポートされなくなりました。\n%s\n\n"
01658                 "色設定ファイルの形式が違います。古い形式はサポートされなくなりました。\n%s\n\n"    //Jan. 20, 2001 JEPRO 改行を1つ取った
01659 #ifdef STR_COLORDATA_HEAD3
01660 //              "色設定ファイルの変更内容はヘルプをご覧ください。"  //Jan. 15, 2001 Stonee added    //Jan. 20, 2001 JEPRO killed
01661 // From Here Jan. 20, 2001 JEPRO 文字数オーバーのためコメントアウト！
01662 //              "現在の色設定Ver3では CI[インデックス番号] から C[インデックス名] に仕様が変更されました (CI→C に注意)。\n"
01663 //              "上記の色設定ファイルの設定内容を利用したい場合は、そのファイルをコピーしエディタで\n"
01664 //              "以下の修正を行ってからインポートしてください。\n\n"
01665 //              "・UR1.2.24.0 (2000/12/04) 以降で使っていた場合は\n"
01666 //              "  (1) 一行目に書いてある Ver2 (or 2.1) を Ver3 と書き換え、CI をすべて C に縮める\n"
01667 //              "  (2) (1)に加えて、インデックス番号を( )内の文字列に変更:\n"
01668 //              "      00(TXT), 01(RUL), 02(UND), 03(LNO), 04(MOD), 05(TAB), 06(ZEN), 07(CTL), 08(EOL),\n"
01669 //              "      09(RAP), 10(EOF), 11(FND), 12(KW1), 13(KW2), 14(CMT), 15(SQT), 16(WQT), 17(URL)\n\n"
01670 //              "・ur3β10 (2000/09/28)～UR1.2.23.0 (2000/11/29) で使っていた場合は\n"
01671 //              "  (3) (1)に加えて、インデックス番号を( )内の文字列に変更:\n"
01672 //              "      00(TXT), 01(RUL), 02(UND), 03(LNO), 04(MOD), 05(TAB), 06(ZEN), 07(CTL), 08(EOL),\n"
01673 //              "      09(RAP), 10(EOF), 11(FND), 12(KW1), 13(CMT), 14(SQT), 15(WQT), 16(URL)\n\n"
01674 //              "  (4) (1)に加えて、番号を( )内の文字列に変更:\n"
01675 //              "      00(TXT), 01(LNO), 02(EOL), 03(TAB), 04(ZEN), 05(EOF), 06(KW1), 07(CMT), 08(SQT),\n"
01676 //              "      09(WQT), 10(UND), 11(RAP), 12(CTL), 13(URL), 14(FND), 15(MOD), 16(RUL)\n\n"
01677 // To Here Jan. 20, 2001
01678 // From Here Jan. 21, 2001 JEPRO
01679                 "色設定Ver3では CI[番号] から C[名前] に変更されました。\n"
01680                 "上記ファイルの設定内容を利用したい場合は、以下の修正を行ってからインポートしてください。\n\n"
01681                 "・UR1.2.24.0 (00/12/04) 以降で使っていた場合は\n"
01682                 "  (1) 一行目を Ver3 と書き換え、CI をすべて C に縮める\n"
01683                 "  (2) (1)の後、番号を( )内の文字列に変更:\n"
01684                 "      00(TXT), 01(RUL), 02(UND), 03(LNO), 04(MOD), 05(TAB), 06(ZEN), 07(CTL), 08(EOL),\n"
01685                 "      09(RAP), 10(EOF), 11(FND), 12(KW1), 13(KW2), 14(CMT), 15(SQT), 16(WQT), 17(URL)\n\n"
01686                 "・ur3β10 (00/09/28)～UR1.2.23.0 (00/11/29) で使っていた場合は\n"
01687                 "  (3) (1)の後、00-12 までは(2)と同じ  13(CMT), 14(SQT), 15(WQT), 16(URL)\n\n"
01688                 "・ur3β9 (00/09/26) 以前で使っていた場合は\n"
01689                 "  (4) (1)の後、(2)と同様:\n"
01690                 "      00(TXT), 01(LNO), 02(EOL), 03(TAB), 04(ZEN), 05(EOF), 06(KW1), 07(CMT), 08(SQT),\n"
01691                 "      09(WQT), 10(UND), 11(RAP), 12(CTL), 13(URL), 14(FND), 15(MOD), 16(RUL)\n\n"
01692 // To Here Jan. 21, 2001
01693 #else
01694 // From Here Nov. 2, Dec. 26, 2000, Dec. 26, 2000 追加, Jan. 21, 2001 修正 JEPRO
01695                 "現在の色設定Ver2.1ではVer2での仕様が一部変更されました。\n"
01696                 "上記のファイルの設定内容を利用したい場合は、そのファイルをコピーしエディタで\n"
01697                 "以下の修正を行ってからインポートしてください。\n\n"
01698                 "・0.3.9.0 UR1.2.24.0 (2000/12/04) 以降で使っていた場合は\n"
01699                 "  (1) 一行目に書かれている Ver2 を Ver2.1 と書き換える\n\n"
01700                 "・0.3.9.0:ur3β10 (2000/09/28)～UR1.2.23.0 (2000/11/29) で使っていた場合は\n"
01701                 "  (2) (1)に加えて CI[12] の次行に CI[12] の設定をコピーして CI[13] とし\n"
01702                 "      元の CI[13] 以降の番号を1つづつ17までずらす\n\n"
01703                 "・0.3.9.0:ur3β9 (2000/09/26) 以前で使っていた場合は\n"
01704                 "  (3) (1)に加えて CI の[ ]内を順に\n"
01705                 "      00, 17, 10, 01, 16, 03, 04, 12, 02, 11, 05, 15, 06, 07, 08, 09, 14\n"
01706                 "      と書き換えた後、CI[12] の設定をコピーして CI[13] とする\n\n"
01707 // To Here Nov. 2, Dec. 26, 2000, Jan. 21, 2001 JEPRO
01708 #endif
01709                 , szPath
01710             );
01711             _lclose( hFile );
01712             return;
01713         }
01714 //  }
01715     _lclose( hFile );
01716
01717
01718     /* 色設定Ver2 */
01719     nColorInfoArrNum = COLORIDX_LAST;
01720     if( false == cProfile.ReadProfile( szPath ) ){
01721         /* 設定ファイルが存在しない */
01722         ::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
01723             "ファイルを開けませんでした。\n\n%s", szPath
01724         );
01725         return;
01726     }
01727     /* 色設定 I/O */
01728     for( i = 0; i < m_Types.m_nColorInfoArrNum; ++i ){
01729         ColorInfoArr[i] = m_Types.m_ColorInfoArr[i];
01730         strcpy( ColorInfoArr[i].m_szName, m_Types.m_ColorInfoArr[i].m_szName );
01731     }
01732     CShareData::IO_ColorSet( &cProfile, STR_COLORDATA_SECTION, ColorInfoArr );
01733
01734
01735 //complete:;
01736     /* データのコピー */
01737     m_Types.m_nColorInfoArrNum = nColorInfoArrNum;
01738     for( i = 0; i < m_Types.m_nColorInfoArrNum; ++i ){
01739         m_Types.m_ColorInfoArr[i] =  ColorInfoArr[i];
01740         strcpy( m_Types.m_ColorInfoArr[i].m_szName, ColorInfoArr[i].m_szName );
01741     }
01742     /* ダイアログデータの設定 p5 */
01743     SetData_p3_new( hwndDlg );
01744     return;
01745 }
01746
01747
01748 /* 色の設定をエクスポート */
01749 void CPropTypes::p3_Export_Colors( HWND hwndDlg )
01750 {
01751     CDlgOpenFile    cDlgOpenFile;
01752     char*           pszMRU = NULL;;
01753     char*           pszOPENFOLDER = NULL;;
01754     char            szPath[_MAX_PATH + 1];
01755 //  HFILE           hFile;
01756 //  int             i;
01757     char            szInitDir[_MAX_PATH + 1];
01758 //  char            szLine[1024];
01759 //  int             i;
01760 //  char            pHeader[STR_KEYDATA_HEAD_LEN + 1];
01761 //  short           m_nColorInfoArrNum;             /* キー割り当て表の有効データ数 */
01762 //  KEYDATA         pKeyNameArr[100];               /* キー割り当て表 */
01763     CProfile        cProfile;
01764
01765     cProfile.SetWritingMode();
01766
01767     strcpy( szPath, "" );
01768     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
01769
01770     /* ファイルオープンダイアログの初期化 */
01771     cDlgOpenFile.Create(
01772         m_hInstance,
01773         hwndDlg,
01774         "*.col",
01775         szInitDir,
01776         (const char **)&pszMRU,
01777         (const char **)&pszOPENFOLDER
01778     );
01779     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
01780         return;
01781     }
01782     /* ファイルのフルパスをフォルダとファイル名に分割 */
01783     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
01784 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
01785     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
01786
01787 //  hFile = _lcreat( szPath, 0 );
01788 //  if( HFILE_ERROR == hFile ){
01789 //      ::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
01790 //          "ファイルを開けませんでした。\n\n%s", szPath
01791 //      );
01792 //      return;
01793 //  }
01794 //  if( STR_COLORDATA_HEAD_LEN                  != _lwrite( hFile, (LPCSTR)STR_COLORDATA_HEAD, STR_COLORDATA_HEAD_LEN )
01795 //   || sizeof( m_Types.m_nColorInfoArrNum )    != _lwrite( hFile, (LPCSTR)&m_Types.m_nColorInfoArrNum, sizeof( m_Types.m_nColorInfoArrNum ) )
01796 //  ){
01797 //      ::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
01798 //          "ファイルの書き込みに失敗しました。\n\n%s", szPath
01799 //      );
01800 //      return;
01801 //  }
01802 //  for( i = 0; i < m_Types.m_nColorInfoArrNum; ++i ){
01803 //      if( sizeof( m_Types.m_ColorInfoArr[i] ) != _lwrite( hFile, (LPCSTR)&m_Types.m_ColorInfoArr[i], sizeof( m_Types.m_ColorInfoArr[i] ) ) ){
01804 //          ::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
01805 //              "ファイルの書き込みに失敗しました。\n\n%s", szPath
01806 //          );
01807 //          return;
01808 //      }
01809 //  }
01810 //  _lclose( hFile );
01811
01812     /* 色設定 I/O */
01813     CShareData::IO_ColorSet( &cProfile, STR_COLORDATA_SECTION, m_Types.m_ColorInfoArr );
01814 //  cProfile.WriteProfile( szPath, STR_COLORDATA_HEAD2 );
01815 #ifndef STR_COLORDATA_HEAD3
01816     cProfile.WriteProfile( szPath, STR_COLORDATA_HEAD21 );  //Nov. 2, 2000 JEPRO 変更 [注]. 0.3.9.0:ur3β10以降、設定項目の番号を入れ替えたため
01817 #else
01818     cProfile.WriteProfile( szPath, STR_COLORDATA_HEAD3 );   //Jan. 15, 2001 Stonee
01819 #endif
01820     return;
01821 }
01822
01823
01824 LRESULT APIENTRY ColorList_SubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01825 {
01826 //  WPARAM      fwKeys; // key flags
01827 //  int         xPos;   // horizontal position of cursor
01828 //  int         yPos;   // vertical position of cursor
01829 //  HWND        hwndLoseFocus;
01830 //  HWND        hwndGetFocus;
01831 //  int         fwKeys;
01832     int         xPos;
01833     int         yPos;
01834     int         nIndex;
01835     int         nItemNum;
01836     RECT        rcItem;
01837     int         i;
01838     POINT       poMouse;
01839     ColorInfo*  pColorInfo;
01840
01841     switch( uMsg ){
01842     case WM_RBUTTONDOWN:
01843     case WM_LBUTTONDBLCLK:
01844     case WM_LBUTTONUP:
01845 //      fwKeys = wParam;        // key flags
01846         xPos = LOWORD(lParam);  // horizontal position of cursor
01847         yPos = HIWORD(lParam);  // vertical position of cursor
01848 //      nIndex = ::SendMessage( hwnd, LB_GETCURSEL, 0, 0 );
01849 //      MYTRACE( "fwKeys=%d\n", fwKeys );
01850 //      MYTRACE( "xPos  =%d\n", xPos );
01851 //      MYTRACE( "yPos  =%d\n", yPos );
01852 //      MYTRACE( "nIndex=%d\n", nIndex );
01853 //      MYTRACE( "\n" );
01854         poMouse.x = xPos;
01855         poMouse.y = yPos;
01856         nItemNum = ::SendMessage( hwnd, LB_GETCOUNT, 0, 0 );
01857         nIndex = -1;
01858         for( i = 0; i < nItemNum; ++i ){
01859             ::SendMessage( hwnd, LB_GETITEMRECT, i, (LPARAM)&rcItem );
01860             if( ::PtInRect( &rcItem, poMouse ) ){
01861 //              MYTRACE( "hit at i==%d\n", i );
01862 //              MYTRACE( "\n" );
01863                 nIndex = i;
01864                 break;
01865             }
01866         }
01867         break;
01868     }
01869     switch( uMsg ){
01870     case WM_RBUTTONDOWN:
01871
01872         if( -1 == nIndex ){
01873             break;
01874         }
01875         ::SendMessage( hwnd, LB_SETCURSEL, nIndex, 0 );
01876         ::SendMessage( ::GetParent( hwnd ), WM_COMMAND, MAKELONG( IDC_LIST_COLORS, LBN_SELCHANGE ), (LPARAM)hwnd );
01877         pColorInfo = (ColorInfo*)::SendMessage( hwnd, LB_GETITEMDATA, nIndex, 0 );
01878         /* 下線 */
01879         if( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_NO_UNDERLINE) ) // 2006.12.18 ryoji フラグ利用で簡素化
01880         {
01881             if( pColorInfo->m_bUnderLine ){ /* 下線で表示 */
01882                 pColorInfo->m_bUnderLine = FALSE;
01883                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_UNDERLINE, FALSE );
01884             }else{
01885                 pColorInfo->m_bUnderLine = TRUE;
01886                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_UNDERLINE, TRUE );
01887             }
01888             ::InvalidateRect( hwnd, &rcItem, TRUE );
01889         }
01890         break;
01891
01892     case WM_LBUTTONDBLCLK:
01893         if( -1 == nIndex ){
01894             break;
01895         }
01896         pColorInfo = (ColorInfo*)::SendMessage( hwnd, LB_GETITEMDATA, nIndex, 0 );
01897         /* 太字で表示 */
01898         if( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_NO_BOLD) )  // 2006.12.18 ryoji フラグ利用で簡素化
01899         {
01900             if( pColorInfo->m_bFatFont ){   /* 太字で表示 */
01901                 pColorInfo->m_bFatFont = FALSE;
01902                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_FAT, FALSE );
01903             }else{
01904                 pColorInfo->m_bFatFont = TRUE;
01905                 ::CheckDlgButton( ::GetParent( hwnd ), IDC_CHECK_FAT, TRUE );
01906             }
01907             ::InvalidateRect( hwnd, &rcItem, TRUE );
01908         }
01909         break;
01910     case WM_LBUTTONUP:
01911         if( -1 == nIndex ){
01912             break;
01913         }
01914         pColorInfo = (ColorInfo*)::SendMessage( hwnd, LB_GETITEMDATA, nIndex, 0 );
01915         /* 色分け/表示 する */
01916         if( 2 <= xPos && xPos <= 16
01917             && ( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_FORCE_DISP) )  // 2006.12.18 ryoji フラグ利用で簡素化
01918             )
01919         {
01920             if( pColorInfo->m_bDisp ){  /* 色分け/表示する */
01921                 pColorInfo->m_bDisp = FALSE;
01922             }else{
01923                 pColorInfo->m_bDisp = TRUE;
01924             }
01925             if( COLORIDX_GYOU == nIndex ){
01926                 pColorInfo = (ColorInfo*)::SendMessage( hwnd, LB_GETITEMDATA, nIndex, 0 );
01927
01928             }
01929
01930             ::InvalidateRect( hwnd, &rcItem, TRUE );
01931         }else
01932         /* 前景色見本 矩形 */
01933         if( rcItem.right - 27 <= xPos && xPos <= rcItem.right - 27 + 12 ){
01934             /* 色選択ダイアログ */
01935             // 2005.11.30 Moca カスタム色保持
01936             DWORD* pColors = (DWORD*)::GetProp( hwnd, "ptrCustomColors" );
01937             if( CPropTypes::SelectColor( hwnd, &pColorInfo->m_colTEXT, pColors ) ){
01938                 ::InvalidateRect( hwnd, &rcItem, TRUE );
01939                 ::InvalidateRect( ::GetDlgItem( ::GetParent( hwnd ), IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
01940             }
01941         }else
01942         /* 前景色見本 矩形 */
01943         if( rcItem.right - 13 <= xPos && xPos <= rcItem.right - 13 + 12
01944             && ( 0 == (g_ColorAttributeArr[nIndex].fAttribute & COLOR_ATTRIB_NO_BACK) ) // 2006.12.18 ryoji フラグ利用で簡素化
01945             )
01946         {
01947             /* 色選択ダイアログ */
01948             // 2005.11.30 Moca カスタム色保持
01949             DWORD* pColors = (DWORD*)::GetProp( hwnd, "ptrCustomColors" );
01950             if( CPropTypes::SelectColor( hwnd, &pColorInfo->m_colBACK, pColors ) ){
01951                 ::InvalidateRect( hwnd, &rcItem, TRUE );
01952                 ::InvalidateRect( ::GetDlgItem( ::GetParent( hwnd ), IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
01953             }
01954         }
01955         break;
01956     // 2005.11.30 Moca カスタム色保持
01957     case WM_DESTROY:
01958         if( ::GetProp( hwnd, "ptrCustomColors" ) ){
01959             ::RemoveProp( hwnd, "ptrCustomColors" );
01960         }
01961         break;
01962     }
01963 //  return CallWindowProc( (int (__stdcall *)(void))(WNDPROC)m_wpColorListProc, hwnd, uMsg, wParam, lParam );
01964     return CallWindowProc( (WNDPROC)m_wpColorListProc, hwnd, uMsg, wParam, lParam );
01965 }
01966
01967
01968
01969
01970
01971 /* p3 メッセージ処理 */
01972 INT_PTR CPropTypes::DispatchEvent_p3_new(
01973     HWND                hwndDlg,    // handle to dialog box
01974     UINT                uMsg,       // message
01975     WPARAM              wParam,     // first message parameter
01976     LPARAM              lParam      // second message parameter
01977 )
01978 {
01979     WORD                wNotifyCode;
01980     WORD                wID;
01981     HWND                hwndCtl;
01982     NMHDR*              pNMHDR;
01983     NM_UPDOWN*          pMNUD;
01984     int                 idCtrl;
01985     int                 nVal;
01986     int                 nIndex;
01987     static HWND         hwndListColor;
01988     LPDRAWITEMSTRUCT    pDis;
01989
01990     switch( uMsg ){
01991     case WM_INITDIALOG:
01992         // Modified by KEITA for WIN64 2003.9.6
01993 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
01994
01995         hwndListColor = ::GetDlgItem( hwndDlg, IDC_LIST_COLORS );
01996
01997         /* ダイアログデータの設定 p3 */
01998         SetData_p3_new( hwndDlg );
01999
02000         /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
02001         ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINETERMCHAR ), EM_LIMITTEXT, (WPARAM)1, 0 );
02002
02003
02004         /* 色リストをフック */
02005         // Modified by KEITA for WIN64 2003.9.6
02006         m_wpColorListProc = (WNDPROC) ::SetWindowLongPtr( hwndListColor, GWLP_WNDPROC, (LONG_PTR)ColorList_SubclassProc );
02007         // 2005.11.30 Moca カスタム色を保持
02008         ::SetProp( hwndListColor, "ptrCustomColors", m_dwCustColors );
02009
02010         return TRUE;
02011
02012     case WM_COMMAND:
02013         wNotifyCode = HIWORD( wParam ); /* 通知コード */
02014         wID         = LOWORD( wParam ); /* 項目ID､ コントロールID､ またはアクセラレータID */
02015         hwndCtl     = (HWND) lParam;    /* コントロールのハンドル */
02016         if( hwndListColor == hwndCtl ){
02017             switch( wNotifyCode ){
02018             case LBN_SELCHANGE:
02019                 nIndex = ::SendMessage( hwndListColor, LB_GETCURSEL, 0, 0 );
02020                 m_nCurrentColorType = nIndex;       /* 現在選択されている色タイプ */
02021
02022                 {
02023                     // 各種コントロールの有効／無効を切り替える // 2006.12.18 ryoji フラグ利用で簡素化
02024                     unsigned int fAttribute = g_ColorAttributeArr[nIndex].fAttribute;
02025                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DISP ),            (0 == (fAttribute & COLOR_ATTRIB_FORCE_DISP))? TRUE: FALSE );
02026                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_FAT ),             (0 == (fAttribute & COLOR_ATTRIB_NO_BOLD))? TRUE: FALSE );
02027                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_UNDERLINE ),       (0 == (fAttribute & COLOR_ATTRIB_NO_UNDERLINE))? TRUE: FALSE );
02028                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMETEXTCOLOR ),  TRUE );
02029                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_STATIC_HAIKEI ),         (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? TRUE: FALSE );
02030                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ),      (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? TRUE: FALSE );
02031                     ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMEBKCOLOR ),    (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? TRUE: FALSE );
02032
02033                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_DISP ),                (0 == (fAttribute & COLOR_ATTRIB_FORCE_DISP))? SW_SHOW: SW_HIDE );
02034                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_FAT ),             (0 == (fAttribute & COLOR_ATTRIB_NO_BOLD))? SW_SHOW: SW_HIDE );
02035                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_CHECK_UNDERLINE ),           (0 == (fAttribute & COLOR_ATTRIB_NO_UNDERLINE))? SW_SHOW: SW_HIDE );
02036                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMETEXTCOLOR ),  TRUE );
02037                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_STATIC_HAIKEI ),         (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? SW_SHOW: SW_HIDE );
02038                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ),      (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? SW_SHOW: SW_HIDE );
02039                     //::ShowWindow( ::GetDlgItem( hwndDlg, IDC_BUTTON_SAMEBKCOLOR ),        (0 == (fAttribute & COLOR_ATTRIB_NO_BACK))? SW_SHOW: SW_HIDE );
02040                 }
02041
02042                 /* 色分け/表示 をする */
02043                 if( m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bDisp ){
02044                     ::CheckDlgButton( hwndDlg, IDC_CHECK_DISP, TRUE );
02045                 }else{
02046                     ::CheckDlgButton( hwndDlg, IDC_CHECK_DISP, FALSE );
02047                 }
02048                 /* 太字で表示 */
02049                 if( m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bFatFont ){
02050                     ::CheckDlgButton( hwndDlg, IDC_CHECK_FAT, TRUE );
02051                 }else{
02052                     ::CheckDlgButton( hwndDlg, IDC_CHECK_FAT, FALSE );
02053                 }
02054                 /* 下線を表示 */
02055                 if( m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bUnderLine ){
02056                     ::CheckDlgButton( hwndDlg, IDC_CHECK_UNDERLINE, TRUE );
02057                 }else{
02058                     ::CheckDlgButton( hwndDlg, IDC_CHECK_UNDERLINE, FALSE );
02059                 }
02060
02061
02062                 ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
02063                 ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
02064                 return TRUE;
02065             }
02066         }
02067         switch( wNotifyCode ){
02068         /* ボタン／チェックボックスがクリックされた */
02069         case BN_CLICKED:
02070             switch( wID ){
02071             case IDC_BUTTON_SAMETEXTCOLOR: /* 文字色統一 */
02072                 {
02073                     // 2006.04.26 ryoji 文字色／背景色統一ダイアログを使う
02074                     CDlgSameColor cDlgSameColor;
02075                     COLORREF cr = m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colTEXT;
02076                     cDlgSameColor.DoModal( ::GetModuleHandle(NULL), hwndDlg, wID, &m_Types, cr );
02077                 }
02078                 ::InvalidateRect( hwndListColor, NULL, TRUE );
02079                 return TRUE;
02080
02081             case IDC_BUTTON_SAMEBKCOLOR:    /* 背景色統一 */
02082                 {
02083                     // 2006.04.26 ryoji 文字色／背景色統一ダイアログを使う
02084                     CDlgSameColor cDlgSameColor;
02085                     COLORREF cr = m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colBACK;
02086                     cDlgSameColor.DoModal( ::GetModuleHandle(NULL), hwndDlg, wID, &m_Types, cr );
02087                 }
02088                 ::InvalidateRect( hwndListColor, NULL, TRUE );
02089                 return TRUE;
02090
02091             case IDC_BUTTON_TEXTCOLOR:  /* テキスト色 */
02092                 /* 色選択ダイアログ */
02093                 if( SelectColor( hwndDlg, &m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colTEXT, m_dwCustColors ) ){
02094                     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
02095                 }
02096                 /* 現在選択されている色タイプ */
02097                 ::SendMessage( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
02098                 return TRUE;
02099             case IDC_BUTTON_BACKCOLOR:  /* 背景色 */
02100                 /* 色選択ダイアログ */
02101                 if( SelectColor( hwndDlg, &m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colBACK, m_dwCustColors ) ){
02102                     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
02103                 }
02104                 /* 現在選択されている色タイプ */
02105                 ::SendMessage( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
02106                 return TRUE;
02107             case IDC_CHECK_DISP:    /* 色分け/表示 をする */
02108                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_DISP ) ){
02109                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bDisp = TRUE;
02110                 }else{
02111                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bDisp = FALSE;
02112                 }
02113                 /* 現在選択されている色タイプ */
02114                 ::SendMessage( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
02115                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile  //@@@ 2001.11.17 add MIK 正規表現キーワードのため
02116                 return TRUE;
02117             case IDC_CHECK_FAT: /* 太字か */
02118                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_FAT ) ){
02119                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bFatFont = TRUE;
02120                 }else{
02121                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bFatFont = FALSE;
02122                 }
02123                 /* 現在選択されている色タイプ */
02124                 ::SendMessage( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
02125                 return TRUE;
02126             case IDC_CHECK_UNDERLINE:   /* 下線を表示 */
02127                 if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_UNDERLINE ) ){
02128                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bUnderLine = TRUE;
02129                 }else{
02130                     m_Types.m_ColorInfoArr[m_nCurrentColorType].m_bUnderLine = FALSE;
02131                 }
02132                 /* 現在選択されている色タイプ */
02133                 ::SendMessage( hwndListColor, LB_SETCURSEL, m_nCurrentColorType, 0 );
02134                 return TRUE;
02135
02136             case IDC_BUTTON_IMPORT: /* 色の設定をインポート */
02137                 p3_Import_Colors( hwndDlg );
02138                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile  //@@@ 2001.11.17 add MIK 正規表現キーワードのため
02139                 return TRUE;
02140
02141             case IDC_BUTTON_EXPORT: /* 色の設定をエクスポート */
02142                 p3_Export_Colors( hwndDlg );
02143                 return TRUE;
02144
02145             //  From Here Sept. 10, 2000 JEPRO
02146             //  行番号区切りを任意の半角文字にするときだけ指定文字入力をEnableに設定
02147             case IDC_RADIO_LINETERMTYPE0: /* 行番号区切り 0=なし 1=縦線 2=任意 */
02148             case IDC_RADIO_LINETERMTYPE1:
02149             case IDC_RADIO_LINETERMTYPE2:
02150             //  From Here Jun. 6, 2001 genta
02151             //  行コメント開始桁指定のON/OFF
02152             case IDC_CHECK_LCPOS:
02153             case IDC_CHECK_LCPOS2:
02154             case IDC_CHECK_LCPOS3:
02155             //  To Here Jun. 6, 2001 genta
02156                 EnableTypesPropInput( hwndDlg );
02157                 return TRUE;
02158             //  To Here Sept. 10, 2000
02159
02160             //強調キーワードの選択
02161             case IDC_BUTTON_KEYWORD_SELECT:
02162                 {
02163                     CDlgKeywordSelect cDlgKeywordSelect;
02164                     //強調キーワード1を取得する。
02165                     HWND hwndCombo = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
02166                     int nIdx = ::SendMessage( hwndCombo, CB_GETCURSEL, 0, 0 );
02167                     if( CB_ERR == nIdx || 0 == nIdx ){
02168                         m_nSet[ 0 ] = -1;
02169                     }else{
02170                         m_nSet[ 0 ] = nIdx - 1;
02171                     }
02172                     cDlgKeywordSelect.DoModal( ::GetModuleHandle(NULL), hwndDlg, m_nSet );
02173                     RearrangeKeywordSet( hwndDlg ); //  Jan. 23, 2005 genta キーワードセット再配置
02174                     //強調キーワード1を反映する。
02175                     if( -1 == m_nSet[ 0 ] ){
02176                         ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)0, 0 );
02177                     }else{
02178                         ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)m_nSet[ 0 ] + 1, 0 );
02179                     }
02180                 }
02181                 break;
02182             }
02183             break;  /* BN_CLICKED */
02184         }
02185         break;  /* WM_COMMAND */
02186     case WM_NOTIFY:
02187         idCtrl = (int)wParam;
02188         pNMHDR = (NMHDR*)lParam;
02189         pMNUD  = (NM_UPDOWN*)lParam;
02190         switch( idCtrl ){
02191         //  From Here May 21, 2001 genta activate spin control
02192         case IDC_SPIN_LCColNum:
02193             /* 行コメント桁位置 */
02194             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS, NULL, FALSE );
02195             if( pMNUD->iDelta < 0 ){
02196                 ++nVal;
02197             }else
02198             if( pMNUD->iDelta > 0 ){
02199                 --nVal;
02200             }
02201             if( nVal < 1 ){
02202                 nVal = 1;
02203             }
02204             if( nVal > 1000 ){
02205                 nVal = 1000;
02206             }
02207             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS, nVal, FALSE );
02208             return TRUE;
02209         case IDC_SPIN_LCColNum2:
02210             /* 行コメント桁位置 */
02211             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS2, NULL, FALSE );
02212             if( pMNUD->iDelta < 0 ){
02213                 ++nVal;
02214             }else
02215             if( pMNUD->iDelta > 0 ){
02216                 --nVal;
02217             }
02218             if( nVal < 1 ){
02219                 nVal = 1;
02220             }
02221             if( nVal > 1000 ){
02222                 nVal = 1000;
02223             }
02224             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS2, nVal, FALSE );
02225             return TRUE;
02226         //  To Here May 21, 2001 genta activate spin control
02227
02228         //  From Here Jun. 01, 2001 JEPRO 3つ目を追加
02229         case IDC_SPIN_LCColNum3:
02230             /* 行コメント桁位置 */
02231             nVal = ::GetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS3, NULL, FALSE );
02232             if( pMNUD->iDelta < 0 ){
02233                 ++nVal;
02234             }else
02235             if( pMNUD->iDelta > 0 ){
02236                 --nVal;
02237             }
02238             if( nVal < 1 ){
02239                 nVal = 1;
02240             }
02241             if( nVal > 1000 ){
02242                 nVal = 1000;
02243             }
02244             ::SetDlgItemInt( hwndDlg, IDC_EDIT_LINECOMMENTPOS3, nVal, FALSE );
02245             return TRUE;
02246         //  To Here Jun. 01, 2001
02247         default:
02248             switch( pNMHDR->code ){
02249             case PSN_HELP:
02250 //  Sept. 10, 2000 JEPRO ID名を実際の名前に変更するため以下の行はコメントアウト
02251 //              OnHelp( hwndDlg, IDD_PROP1P3 );
02252                 OnHelp( hwndDlg, IDD_PROP_COLOR );
02253                 return TRUE;
02254             case PSN_KILLACTIVE:
02255 //              MYTRACE( "p3 PSN_KILLACTIVE\n" );
02256                 /* ダイアログデータの取得 p3 */
02257                 GetData_p3_new( hwndDlg );
02258                 return TRUE;
02259 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
02260             case PSN_SETACTIVE:
02261                 m_nPageNum = 1;
02262                 return TRUE;
02263             }
02264             break;  /* default */
02265         }
02266         break;  /* WM_NOTIFY */
02267     case WM_DRAWITEM:
02268         idCtrl = (UINT) wParam;             /* コントロールのID */
02269         pDis = (LPDRAWITEMSTRUCT) lParam;   /* 項目描画情報 */
02270         switch( idCtrl ){
02271
02272         case IDC_BUTTON_TEXTCOLOR:  /* テキスト色 */
02273             DrawColorButton( pDis, m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colTEXT );
02274             return TRUE;
02275         case IDC_BUTTON_BACKCOLOR:  /* 背景色 */
02276             DrawColorButton( pDis, m_Types.m_ColorInfoArr[m_nCurrentColorType].m_colBACK );
02277             return TRUE;
02278         case IDC_LIST_COLORS:       /* 色種別リスト */
02279             DrawColorListItem( pDis );
02280             return TRUE;
02281         }
02282         break;
02283
02284 //@@@ 2001.02.04 Start by MIK: Popup Help
02285     case WM_HELP:
02286         {
02287             HELPINFO *p = (HELPINFO *)lParam;
02288             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids2 );   // 2006.10.10 ryoji MyWinHelpに変更に変更
02289         }
02290         return TRUE;
02291         /*NOTREACHED*/
02292 //      break;
02293 //@@@ 2001.02.04 End
02294
02295 //@@@ 2001.11.17 add start MIK
02296     //Context Menu
02297     case WM_CONTEXTMENU:
02298         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids2 );    // 2006.10.10 ryoji MyWinHelpに変更に変更
02299         return TRUE;
02300 //@@@ 2001.11.17 add end MIK
02301
02302     }
02303     return FALSE;
02304 }
02305
02306
02307
02308
02309
02310 /* ダイアログデータの設定 p3 */
02311 void CPropTypes::SetData_p3_new( HWND hwndDlg )
02312 {
02313
02314     HWND    hwndWork;
02315     int     i;
02316     int     nItem;
02317
02318     m_nCurrentColorType = 0;    /* 現在選択されている色タイプ */
02319
02320     /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */ //@@@ 2002.09.22 YAZAKI
02321     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENT )        , EM_LIMITTEXT, (WPARAM)( COMMENT_DELIMITER_BUFFERSIZE - 1 ), 0 );
02322     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENT2 )       , EM_LIMITTEXT, (WPARAM)( COMMENT_DELIMITER_BUFFERSIZE - 1 ), 0 );
02323     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENT3 )       , EM_LIMITTEXT, (WPARAM)( COMMENT_DELIMITER_BUFFERSIZE - 1 ), 0 );  //Jun. 01, 2001 JEPRO 追加
02324     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM )  , EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02325     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO )    , EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02326 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
02327     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM2 ) , EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02328     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO2 )   , EM_LIMITTEXT, (WPARAM)( BLOCKCOMMENT_BUFFERSIZE - 1 ), 0 );
02329 //#endif
02330
02331     ::SetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM   , m_Types.m_cBlockComment.getBlockCommentFrom(0) ); /* ブロックコメントデリミタ(From) */
02332     ::SetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO     , m_Types.m_cBlockComment.getBlockCommentTo(0) );   /* ブロックコメントデリミタ(To) */
02333 //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
02334     ::SetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM2  , m_Types.m_cBlockComment.getBlockCommentFrom(1) ); /* ブロックコメントデリミタ2(From) */
02335     ::SetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO2    , m_Types.m_cBlockComment.getBlockCommentTo(1) );   /* ブロックコメントデリミタ2(To) */
02336 //#endif
02337
02338     /* 行コメントデリミタ @@@ 2002.09.22 YAZAKI*/
02339     //  From Here May 12, 2001 genta
02340     //  行コメントの開始桁位置設定
02341     //  May 21, 2001 genta 桁位置を1から数えるように
02342     for ( i=0; i<COMMENT_DELIMITER_NUM; i++ ){
02343         //  テキスト
02344         ::SetDlgItemText( hwndDlg, cLineComment[i].nEditID, m_Types.m_cLineComment.getLineComment(i) );
02345
02346         //  桁数チェックと、数値
02347         int nPos = m_Types.m_cLineComment.getLineCommentPos(i);
02348         if( nPos >= 0 ){
02349             ::CheckDlgButton( hwndDlg, cLineComment[i].nCheckBoxID, TRUE );
02350             ::SetDlgItemInt( hwndDlg, cLineComment[i].nTextID, nPos + 1, FALSE );
02351         }
02352         else {
02353             ::CheckDlgButton( hwndDlg, cLineComment[i].nCheckBoxID, FALSE );
02354             ::SetDlgItemInt( hwndDlg, cLineComment[i].nTextID, (~nPos) + 1, FALSE );
02355         }
02356     }
02357
02358     if( 0 == m_Types.m_nStringType ){   /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
02359         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_1, TRUE );
02360         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_2, FALSE );
02361     }else{
02362         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_1, FALSE );
02363         ::CheckDlgButton( hwndDlg, IDC_RADIO_ESCAPETYPE_2, TRUE );
02364     }
02365
02366     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
02367     if( FALSE == m_Types.m_bLineNumIsCRLF ){
02368         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_LAYOUT, TRUE );
02369         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_CRLF, FALSE );
02370     }else{
02371         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_LAYOUT, FALSE );
02372         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINENUM_CRLF, TRUE );
02373     }
02374
02375
02376     /* セット名コンボボックスの値セット */
02377     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
02378     ::SendMessage( hwndWork, CB_RESETCONTENT, 0, 0 );  /* コンボボックスを空にする */
02379     /* 一行目は空白 */
02380     ::SendMessage( hwndWork, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)" " );
02381     //  Mar. 31, 2003 genta KeyWordSetMgrをポインタに
02382     if( 0 < m_pCKeyWordSetMgr->m_nKeyWordSetNum ){
02383         for( i = 0; i < m_pCKeyWordSetMgr->m_nKeyWordSetNum; ++i ){
02384             ::SendMessage( hwndWork, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)m_pCKeyWordSetMgr->GetTypeName( i ) );
02385         }
02386         if( -1 == m_Types.m_nKeyWordSetIdx[0] ){
02387             /* セット名コンボボックスのデフォルト選択 */
02388             ::SendMessage( hwndWork, CB_SETCURSEL, (WPARAM)0, 0 );
02389         }else{
02390             /* セット名コンボボックスのデフォルト選択 */
02391             ::SendMessage( hwndWork, CB_SETCURSEL, (WPARAM)m_Types.m_nKeyWordSetIdx[0] + 1, 0 );
02392         }
02393     }
02394
02395     //強調キーワード1～10の設定
02396     for( i = 0; i < MAX_KEYWORDSET_PER_TYPE; i++ ){
02397         m_nSet[ i ] = m_Types.m_nKeyWordSetIdx[i];
02398     }
02399
02400     /* 色をつける文字種類のリスト */
02401     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_COLORS );
02402     ::SendMessage( hwndWork, LB_RESETCONTENT, 0, 0 );  /* コンボボックスを空にする */
02403     for( i = 0; i < COLORIDX_LAST; ++i ){
02404         nItem = ::SendMessage( hwndWork, LB_ADDSTRING, 0, (LPARAM)(char*)m_Types.m_ColorInfoArr[i].m_szName );
02405         ::SendMessage( hwndWork, LB_SETITEMDATA, nItem, (LPARAM)(void*)&m_Types.m_ColorInfoArr[i] );
02406     }
02407     /* 現在選択されている色タイプ */
02408     ::SendMessage( hwndWork, LB_SETCURSEL, m_nCurrentColorType, 0 );
02409     ::SendMessage( hwndDlg, WM_COMMAND, MAKELONG( IDC_LIST_COLORS, LBN_SELCHANGE ), (LPARAM)hwndWork );
02410
02411     /* 行番号区切り  0=なし 1=縦線 2=任意 */
02412     if( 0 == m_Types.m_nLineTermType ){
02413         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE0, TRUE );
02414         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE1, FALSE );
02415         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE2, FALSE );
02416     }else
02417     if( 1 == m_Types.m_nLineTermType ){
02418         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE0, FALSE );
02419         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE1, TRUE );
02420         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE2, FALSE );
02421     }else
02422     if( 2 == m_Types.m_nLineTermType ){
02423         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE0, FALSE );
02424         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE1, FALSE );
02425         ::CheckDlgButton( hwndDlg, IDC_RADIO_LINETERMTYPE2, TRUE );
02426     }
02427
02428     /* 行番号区切り文字 */
02429     char    szLineTermChar[2];
02430     wsprintf( szLineTermChar, "%c", m_Types.m_cLineTermChar );
02431     ::SetDlgItemText( hwndDlg, IDC_EDIT_LINETERMCHAR, szLineTermChar );
02432
02433     //  From Here Sept. 10, 2000 JEPRO
02434     //  行番号区切りを任意の半角文字にするときだけ指定文字入力をEnableに設定
02435     EnableTypesPropInput( hwndDlg );
02436     //  To Here Sept. 10, 2000
02437
02438
02439     // from here 2005.11.30 Moca 指定位置縦線の設定
02440     TCHAR szVertLine[MAX_VERTLINES * 15] = "";
02441     int offset = 0;
02442     for( i = 0; i < MAX_VERTLINES && m_Types.m_nVertLineIdx[i] != 0; i++ ){
02443         int nXCol = m_Types.m_nVertLineIdx[i];
02444         int nXColEnd = nXCol;
02445         int nXColAdd = 1;
02446         if( nXCol < 0 ){
02447             if( i < MAX_VERTLINES - 2 ){
02448                 nXCol = -nXCol;
02449                 nXColEnd = m_Types.m_nVertLineIdx[++i];
02450                 nXColAdd = m_Types.m_nVertLineIdx[++i];
02451                 if( nXColEnd < nXCol || nXColAdd <= 0 ){
02452                     continue;
02453                 }
02454                 if(offset){
02455                     szVertLine[offset] = ',';
02456                     szVertLine[offset+1] = '\0';
02457                     offset += 1;
02458                 }
02459                 offset += wsprintf( &szVertLine[offset], "%d(%d,%d)", nXColAdd, nXCol, nXColEnd );
02460             }
02461         }else{
02462             if(offset){
02463                 szVertLine[offset] = ',';
02464                 szVertLine[offset+1] = '\0';
02465                 offset += 1;
02466             }
02467             offset += wsprintf( &szVertLine[offset], "%d", nXCol );
02468         }
02469     }
02470     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_VERTLINE ), EM_LIMITTEXT, (WPARAM)(MAX_VERTLINES * 15), 0 );
02471     ::SetDlgItemText( hwndDlg, IDC_EDIT_VERTLINE, szVertLine );
02472     // to here 2005.11.30 Moca 指定位置縦線の設定
02473     return;
02474 }
02475
02476
02477
02478
02479
02480 /* ダイアログデータの取得 p3 */
02481 int CPropTypes::GetData_p3_new( HWND hwndDlg )
02482 {
02483     int     nIdx;
02484     HWND    hwndWork;
02485
02486 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
02487 //  m_nPageNum = 1;
02488
02489     //  From Here May 12, 2001 genta
02490     //  コメントの開始桁位置の取得
02491     //  May 21, 2001 genta 桁位置を1から数えるように
02492     char buffer[COMMENT_DELIMITER_BUFFERSIZE];  //@@@ 2002.09.22 YAZAKI LineCommentを取得するためのバッファ
02493     int pos;
02494     UINT en;
02495     BOOL bTranslated;
02496
02497     int i;
02498     for( i=0; i<COMMENT_DELIMITER_NUM; i++ ){
02499         en = ::IsDlgButtonChecked( hwndDlg, cLineComment[i].nCheckBoxID );
02500         pos = ::GetDlgItemInt( hwndDlg, cLineComment[i].nTextID, &bTranslated, FALSE );
02501         if( bTranslated != TRUE ){
02502             en = 0;
02503             pos = 0;
02504         }
02505         //  pos == 0のときは無効扱い
02506         if( pos == 0 )  en = 0;
02507         else            --pos;
02508         //  無効のときは1の補数で格納
02509
02510         ::GetDlgItemText( hwndDlg, cLineComment[i].nEditID      , buffer    , COMMENT_DELIMITER_BUFFERSIZE );       /* 行コメントデリミタ */
02511         m_Types.m_cLineComment.CopyTo( i, buffer, en ? pos : ~pos );
02512     }
02513
02514     char szFromBuffer[BLOCKCOMMENT_BUFFERSIZE]; //@@@ 2002.09.22 YAZAKI
02515     char szToBuffer[BLOCKCOMMENT_BUFFERSIZE];   //@@@ 2002.09.22 YAZAKI
02516
02517     ::GetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM   , szFromBuffer  , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(From) */
02518     ::GetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO     , szToBuffer    , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(To) */
02519     m_Types.m_cBlockComment.CopyTo( 0, szFromBuffer, szToBuffer );
02520
02521     ::GetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_FROM2  , szFromBuffer  , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(From) */
02522     ::GetDlgItemText( hwndDlg, IDC_EDIT_BLOCKCOMMENT_TO2    , szToBuffer    , BLOCKCOMMENT_BUFFERSIZE );    /* ブロックコメントデリミタ(To) */
02523     m_Types.m_cBlockComment.CopyTo( 1, szFromBuffer, szToBuffer );
02524
02525     /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
02526     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_ESCAPETYPE_1 ) ){
02527         m_Types.m_nStringType = 0;
02528     }else{
02529         m_Types.m_nStringType = 1;
02530     }
02531     /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
02532     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINENUM_LAYOUT ) ){
02533         m_Types.m_bLineNumIsCRLF = FALSE;
02534     }else{
02535         m_Types.m_bLineNumIsCRLF = TRUE;
02536     }
02537
02538     /* セット名コンボボックスの値セット */
02539     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_SET );
02540     nIdx = ::SendMessage( hwndWork, CB_GETCURSEL, 0, 0 );
02541     if( CB_ERR == nIdx ||
02542         0 == nIdx ){
02543         m_Types.m_nKeyWordSetIdx[0] = -1;
02544     }else{
02545         m_Types.m_nKeyWordSetIdx[0] = nIdx - 1;
02546
02547     }
02548
02549     //強調キーワード2～10の取得(1は別)
02550     for( nIdx = 1; nIdx < MAX_KEYWORDSET_PER_TYPE; nIdx++ ){
02551         m_Types.m_nKeyWordSetIdx[nIdx] = m_nSet[nIdx];
02552     }
02553
02554     /* 行番号区切り  0=なし 1=縦線 2=任意 */
02555     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE0 ) ){
02556         m_Types.m_nLineTermType = 0;
02557     }else
02558     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE1 ) ){
02559         m_Types.m_nLineTermType = 1;
02560     }else
02561     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE2 ) ){
02562         m_Types.m_nLineTermType = 2;
02563     }
02564
02565
02566     /* 行番号区切り文字 */
02567     char    szLineTermChar[2];
02568 //  sprintf( szLineTermChar, "%c", m_Types.m_cLineTermChar );
02569     ::GetDlgItemText( hwndDlg, IDC_EDIT_LINETERMCHAR, szLineTermChar, 2 );
02570     m_Types.m_cLineTermChar = szLineTermChar[0];
02571
02572
02573     // from here 2005.11.30 Moca 指定位置縦線の設定
02574     TCHAR szVertLine[MAX_VERTLINES * 15];
02575     ::GetDlgItemText( hwndDlg, IDC_EDIT_VERTLINE, szVertLine, MAX_VERTLINES * 15 );
02576
02577     int offset = 0;
02578     i = 0;
02579     while( i < MAX_VERTLINES ){
02580         int value = 0;
02581         for(; '0' <= szVertLine[offset] && szVertLine[offset] <= '9';  offset++){
02582             value = szVertLine[offset] - '0' + value * 10;
02583         }
02584         if( value <= 0 ){
02585             break;
02586         }
02587         if( szVertLine[offset] == '(' ){
02588             offset++;
02589             int valueBegin = 0;
02590             int valueEnd = 0;
02591             for(; '0' <= szVertLine[offset] && szVertLine[offset] <= '9';  offset++){
02592                 valueBegin = szVertLine[offset] - '0' + valueBegin * 10;
02593             }
02594             if( valueBegin <= 0 ){
02595                 break;
02596             }
02597             if( szVertLine[offset] == ',' ){
02598                 offset++;
02599             }else if( szVertLine[offset] != ')' ){
02600                 break;
02601             }
02602             for(; '0' <= szVertLine[offset] && szVertLine[offset] <= '9';  offset++){
02603                 valueEnd = szVertLine[offset] - '0' + valueEnd * 10;
02604             }
02605             if( valueEnd <= 0 ){
02606                 valueEnd = MAXLINESIZE;
02607             }
02608             if( szVertLine[offset] != ')' ){
02609                 break;
02610             }
02611             offset++;
02612             if(i + 2 < MAX_VERTLINES){
02613                 m_Types.m_nVertLineIdx[i++] = -valueBegin;
02614                 m_Types.m_nVertLineIdx[i++] = valueEnd;
02615                 m_Types.m_nVertLineIdx[i++] = value;
02616             }else{
02617                 break;
02618             }
02619         }else{
02620             m_Types.m_nVertLineIdx[i++] = value;
02621         }
02622         if( szVertLine[offset] != ',' ){
02623             break;
02624         }
02625         offset++;
02626     }
02627     if( i < MAX_VERTLINES ){
02628         m_Types.m_nVertLineIdx[i] = 0;
02629     }
02630     // to here 2005.11.30 Moca 指定位置縦線の設定
02631     return TRUE;
02632 }
02633
02634
02635
02636
02637
02638 /* 色種別リスト オーナー描画 */
02639 void CPropTypes::DrawColorListItem( DRAWITEMSTRUCT* pDis )
02640 {
02641     HBRUSH      hBrush;
02642     HBRUSH      hBrushOld;
02643     HPEN        hPen;
02644     HPEN        hPenOld;
02645     ColorInfo*  pColorInfo;
02646 //  RECT        rc0,rc1,rc2;
02647     RECT        rc1;
02648     COLORREF    cRim = (COLORREF)::GetSysColor( COLOR_3DSHADOW );
02649
02650     if( pDis == NULL || pDis->itemData == NULL ) return;
02651
02652 //  rc0 = pDis->rcItem;
02653     rc1 = pDis->rcItem;
02654 //  rc2 = pDis->rcItem;
02655
02656     /* アイテムデータの取得 */
02657     pColorInfo = (ColorInfo*)pDis->itemData;
02658
02659     /* アイテム矩形塗りつぶし */
02660     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
02661     ::FillRect( pDis->hDC, &pDis->rcItem, hBrush );
02662     ::DeleteObject( hBrush );
02663
02664
02665     /* アイテムが選択されている */
02666     if( pDis->itemState & ODS_SELECTED ){
02667         hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_HIGHLIGHT ) );
02668         ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_HIGHLIGHTTEXT ) );
02669     }else{
02670         hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_WINDOW ) );
02671         ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_WINDOWTEXT ) );
02672     }
02673
02674 //  /* 選択ハイライト矩形 */
02675 //  ::FillRect( pDis->hDC, &rc1, hBrush );
02676 //  ::DeleteObject( hBrush );
02677 //  /* テキスト */
02678 //  ::SetBkMode( pDis->hDC, TRANSPARENT );
02679 //  ::TextOut( pDis->hDC, rc1.left, rc1.top, pColorInfo->m_szName, strlen( pColorInfo->m_szName ) );
02680 //  if( pColorInfo->m_bFatFont ){   /* 太字か */
02681 //      ::TextOut( pDis->hDC, rc1.left + 1, rc1.top, pColorInfo->m_szName, strlen( pColorInfo->m_szName ) );
02682 //  }
02683 //  return;
02684
02685
02686     rc1.left+= (2 + 16);
02687     rc1.top += 2;
02688     rc1.right -= ( 2 + 27 );
02689     rc1.bottom -= 2;
02690     /* 選択ハイライト矩形 */
02691     ::FillRect( pDis->hDC, &rc1, hBrush );
02692     ::DeleteObject( hBrush );
02693     /* テキスト */
02694     ::SetBkMode( pDis->hDC, TRANSPARENT );
02695     ::TextOut( pDis->hDC, rc1.left, rc1.top, pColorInfo->m_szName, strlen( pColorInfo->m_szName ) );
02696     if( pColorInfo->m_bFatFont ){   /* 太字か */
02697         ::TextOut( pDis->hDC, rc1.left + 1, rc1.top, pColorInfo->m_szName, strlen( pColorInfo->m_szName ) );
02698     }
02699     if( pColorInfo->m_bUnderLine ){ /* 下線か */
02700         SIZE    sz;
02701         ::GetTextExtentPoint32( pDis->hDC, pColorInfo->m_szName, strlen( pColorInfo->m_szName ), &sz );
02702         ::MoveToEx( pDis->hDC, rc1.left,        rc1.bottom - 2, NULL );
02703         ::LineTo( pDis->hDC, rc1.left + sz.cx,  rc1.bottom - 2 );
02704         ::MoveToEx( pDis->hDC, rc1.left,        rc1.bottom - 1, NULL );
02705         ::LineTo( pDis->hDC, rc1.left + sz.cx,  rc1.bottom - 1 );
02706     }
02707
02708     /* アイテムにフォーカスがある */    // 2006.05.01 ryoji 描画条件の不正を修正
02709     if( pDis->itemState & ODS_FOCUS ){
02710         ::DrawFocusRect( pDis->hDC, &pDis->rcItem );
02711     }
02712
02713     /* 「色分け/表示する」のチェック */
02714     rc1 = pDis->rcItem;
02715     rc1.left += 2;
02716     rc1.top += 3;
02717     rc1.right = rc1.left + 12;
02718     rc1.bottom = rc1.top + 12;
02719     if( pColorInfo->m_bDisp ){  /* 色分け/表示する */
02720         // 2006.04.26 ryoji テキスト色を使う（「ハイコントラスト黒」のような設定でも見えるように）
02721         hPen = ::CreatePen( PS_SOLID, 1, ::GetSysColor( COLOR_WINDOWTEXT ) );
02722         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
02723
02724         ::MoveToEx( pDis->hDC,  rc1.left + 2, rc1.top + 6, NULL );
02725         ::LineTo( pDis->hDC,    rc1.left + 5, rc1.bottom - 3 );
02726         ::LineTo( pDis->hDC,    rc1.right - 2, rc1.top + 4 );
02727         rc1.top -= 1;
02728         rc1.bottom -= 1;
02729         ::MoveToEx( pDis->hDC,  rc1.left + 2, rc1.top + 6, NULL );
02730         ::LineTo( pDis->hDC,    rc1.left + 5, rc1.bottom - 3 );
02731         ::LineTo( pDis->hDC,    rc1.right - 2, rc1.top + 4 );
02732         rc1.top -= 1;
02733         rc1.bottom -= 1;
02734         ::MoveToEx( pDis->hDC,  rc1.left + 2, rc1.top + 6, NULL );
02735         ::LineTo( pDis->hDC,    rc1.left + 5, rc1.bottom - 3 );
02736         ::LineTo( pDis->hDC,    rc1.right - 2, rc1.top + 4 );
02737
02738         ::SelectObject( pDis->hDC, hPenOld );
02739         ::DeleteObject( hPen );
02740     }
02741 //  return;
02742
02743
02744     // 2002/11/02 Moca 比較方法変更
02745 //  if( 0 != strcmp( "カーソル行アンダーライン", pColorInfo->m_szName ) )
02746     if ( 0 == (g_ColorAttributeArr[pColorInfo->m_nColorIdx].fAttribute & COLOR_ATTRIB_NO_BACK) )    // 2006.12.18 ryoji フラグ利用で簡素化
02747     {
02748         /* 背景色 見本矩形 */
02749         rc1 = pDis->rcItem;
02750         rc1.left = rc1.right - 13;
02751         rc1.top += 2;
02752         rc1.right = rc1.left + 12;
02753         rc1.bottom -= 2;
02754
02755         hBrush = ::CreateSolidBrush( pColorInfo->m_colBACK );
02756         hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
02757         hPen = ::CreatePen( PS_SOLID, 1, cRim );
02758         hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
02759         ::RoundRect( pDis->hDC, rc1.left, rc1.top, rc1.right, rc1.bottom , 3, 3 );
02760         ::SelectObject( pDis->hDC, hPenOld );
02761         ::SelectObject( pDis->hDC, hBrushOld );
02762         ::DeleteObject( hPen );
02763         ::DeleteObject( hBrush );
02764     }
02765
02766
02767     /* 前景色 見本矩形 */
02768     rc1 = pDis->rcItem;
02769     rc1.left = rc1.right - 27;
02770     rc1.top += 2;
02771     rc1.right = rc1.left + 12;
02772     rc1.bottom -= 2;
02773     hBrush = ::CreateSolidBrush( pColorInfo->m_colTEXT );
02774     hBrushOld = (HBRUSH)::SelectObject( pDis->hDC, hBrush );
02775     hPen = ::CreatePen( PS_SOLID, 1, cRim );
02776     hPenOld = (HPEN)::SelectObject( pDis->hDC, hPen );
02777     ::RoundRect( pDis->hDC, rc1.left, rc1.top, rc1.right, rc1.bottom , 3, 3 );
02778     ::SelectObject( pDis->hDC, hPenOld );
02779     ::SelectObject( pDis->hDC, hBrushOld );
02780     ::DeleteObject( hPen );
02781     ::DeleteObject( hBrush );
02782
02783
02784
02785
02786
02787 //  ::SetTextColor( pDis->hDC, ::GetSysColor( COLOR_WINDOWTEXT ) );
02788 //  ::SetBkColor( pDis->hDC, ::GetSysColor( COLOR_WINDOW ) );
02789 //  ::TextOut( pDis->hDC, pDis->rcItem.left + 3, pDis->rcItem.top + 3, pColorInfo->m_szName, strlen( pColorInfo->m_szName ) );
02790
02791 //  ::SetTextColor( pDis->hDC, pColorInfo->m_colTEXT );
02792 //  ::SetBkColor( pDis->hDC, pColorInfo->m_colBACK );
02793 //  ::TextOut( pDis->hDC, pDis->rcItem.left + 3 + 128, pDis->rcItem.top + 3, gpColorInfo->m_szName, strlen( pColorInfo->m_szName ) );
02794     return;
02795 }
02796
02797
02798 /* ヘルプ */
02799 //Stonee, 2001/05/18 機能番号からヘルプトピック番号を調べるようにした
02800 void CPropTypes::OnHelp( HWND hwndParent, int nPageID )
02801 {
02802     int     nContextID;
02803     switch( nPageID ){
02804     case IDD_PROPTYPESP1:
02805         nContextID = ::FuncID_To_HelpContextID(F_TYPE_SCREEN);
02806         break;
02807 //  Sept. 10, 2000 JEPRO ID名を実際の名前に変更するため以下の行はコメントアウト
02808 //  case IDD_PROP1P3:
02809     case IDD_PROP_COLOR:
02810         nContextID = ::FuncID_To_HelpContextID(F_TYPE_COLOR);
02811         break;
02812 //  Jul. 03, 2001 JEPRO 支援タブのヘルプを有効化
02813         case IDD_PROPTYPESP2:
02814         nContextID = ::FuncID_To_HelpContextID(F_TYPE_HELPER);
02815         break;
02816 //@@@ 2001.11.17 add start MIK
02817     case IDD_PROP_REGEX:
02818         nContextID = ::FuncID_To_HelpContextID(F_TYPE_REGEX_KEYWORD);
02819         break;
02820 //@@@ 2001.11.17 add end MIK
02821     case IDD_PROP_KEYHELP:
02822         nContextID = ::FuncID_To_HelpContextID(F_TYPE_KEYHELP);
02823         break;
02824     default:
02825         nContextID = -1;
02826         break;
02827     }
02828     if( -1 != nContextID ){
02829         MyWinHelp( hwndParent, m_szHelpFile, HELP_CONTEXT, nContextID );    // 2006.10.10 ryoji MyWinHelpに変更に変更
02830     }
02831     return;
02832 }
02833
02834
02835
02836
02837
02838 //  From Here Sept. 10, 2000 JEPRO
02839 //  チェック状態に応じてダイアログボックス要素のEnable/Disableを
02840 //  適切に設定する
02841 void CPropTypes::EnableTypesPropInput( HWND hwndDlg )
02842 {
02843     //  行番号区切りを任意の半角文字にするかどうか
02844     if( ::IsDlgButtonChecked( hwndDlg, IDC_RADIO_LINETERMTYPE2 ) ){
02845         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LINETERMCHAR ), TRUE );
02846         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINETERMCHAR ), TRUE );
02847     }else{
02848         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LINETERMCHAR ), FALSE );
02849         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINETERMCHAR ), FALSE );
02850     }
02851
02852     //  From Here Jun. 6, 2001 genta
02853     //  行コメント開始桁位置入力ボックスのEnable/Disable設定
02854     //  1つ目
02855     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_LCPOS ) ){
02856         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS ), TRUE );
02857         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS ), TRUE );
02858         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum ), TRUE );
02859     }else{
02860         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS ), FALSE );
02861         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS ), FALSE );
02862         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum ), FALSE );
02863     }
02864     //  2つ目
02865     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_LCPOS2 ) ){
02866         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS2 ), TRUE );
02867         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS2 ), TRUE );
02868         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum2 ), TRUE );
02869     }else{
02870         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS2 ), FALSE );
02871         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS2 ), FALSE );
02872         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum2 ), FALSE );
02873     }
02874     //  3つ目
02875     if( ::IsDlgButtonChecked( hwndDlg, IDC_CHECK_LCPOS3 ) ){
02876         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS3 ), TRUE );
02877         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS3 ), TRUE );
02878         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum3 ), TRUE );
02879     }else{
02880         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_EDIT_LINECOMMENTPOS3 ), FALSE );
02881         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_LABEL_LCPOS3 ), FALSE );
02882         ::EnableWindow( ::GetDlgItem( hwndDlg, IDC_SPIN_LCColNum3 ), FALSE );
02883     }
02884     //  To Here Jun. 6, 2001 genta
02885 }
02886 //  To Here Sept. 10, 2000
02887
02903 void CPropTypes::RearrangeKeywordSet( HWND hwndDlg )
02904 {
02905     int i, j;
02906     for( i = 0; i < MAX_KEYWORDSET_PER_TYPE; i++ ){
02907         if( m_nSet[ i ] != -1 )
02908             continue;
02909
02910         //  未設定の場合
02911         for( j = i; j < MAX_KEYWORDSET_PER_TYPE; j++ ){
02912             if( m_nSet[ j ] != -1 ){
02913                 //  後ろに設定済み項目があった場合
02914                 m_nSet[ i ] = m_nSet[ j ];
02915                 m_nSet[ j ] = -1;
02916
02917                 //  色設定を入れ替える
02918                 //  構造体ごと入れ替えると名前が変わってしまうので注意
02919                 ColorInfo colT;
02920                 ColorInfo &col1 = m_Types.m_ColorInfoArr[ COLORIDX_KEYWORD1 + i ];
02921                 ColorInfo &col2   = m_Types.m_ColorInfoArr[ COLORIDX_KEYWORD1 + j ];
02922
02923                 colT.m_bDisp        = col1.m_bDisp;
02924                 colT.m_bFatFont     = col1.m_bFatFont;
02925                 colT.m_bUnderLine   = col1.m_bUnderLine;
02926                 colT.m_colTEXT      = col1.m_colTEXT;
02927                 colT.m_colBACK      = col1.m_colBACK;
02928
02929                 col1.m_bDisp        = col2.m_bDisp;
02930                 col1.m_bFatFont     = col2.m_bFatFont;
02931                 col1.m_bUnderLine   = col2.m_bUnderLine;
02932                 col1.m_colTEXT      = col2.m_colTEXT;
02933                 col1.m_colBACK      = col2.m_colBACK;
02934
02935                 col2.m_bDisp        = colT.m_bDisp;
02936                 col2.m_bFatFont     = colT.m_bFatFont;
02937                 col2.m_bUnderLine   = colT.m_bUnderLine;
02938                 col2.m_colTEXT      = colT.m_colTEXT;
02939                 col2.m_colBACK      = colT.m_colBACK;
02940
02941                 break;
02942             }
02943         }
02944         if( j == MAX_KEYWORDSET_PER_TYPE ){
02945             //  後ろには設定済み項目がなかった
02946             break;
02947         }
02948     }
02949
02950     //  リストボックス及び色設定ボタンを再描画
02951     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_TEXTCOLOR ), NULL, TRUE );
02952     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_BUTTON_BACKCOLOR ), NULL, TRUE );
02953     ::InvalidateRect( ::GetDlgItem( hwndDlg, IDC_LIST_COLORS ), NULL, TRUE );
02954 }
02955
02956
02957 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypes.h

CPropTypes.h

タイプ別設定ダイアログボックス [詳細]

#include <windows.h>
#include "CShareData.h"

CPropTypes.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CPropTypes
タイプ別設定ダイアログボックス [詳細]

説明

タイプ別設定ダイアログボックス

作者:
Norio Nakatani
日付:
1998/05/08 新規作成

CPropTypes.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypes.h ソースファイル

CPropTypes.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, jepro
00010     Copyright (C) 2001, MIK, asa-o
00011     Copyright (C) 2002, YAZAKI
00012     Copyright (C) 2003, genta
00013     Copyright (C) 2005, MIK, aroka, genta
00014     Copyright (C) 2006, fon
00015
00016     This source code is designed for sakura editor.
00017     Please contact the copyright holders to use this code for other purpose.
00018 */
00019
00020 class CPropTypes;
00021
00022 #ifndef _CPROPTYPES_H_
00023 #define _CPROPTYPES_H_
00024
00025 #include <windows.h>
00026 #include "CShareData.h"
00027
00028 /*-----------------------------------------------------------------------
00029 クラスの宣言
00030 -----------------------------------------------------------------------*/
00036 class SAKURA_CORE_API CPropTypes
00037 {
00038 public:
00039     /*
00040     ||  Constructors
00041     */
00042     CPropTypes();
00043     ~CPropTypes();
00044     void Create( HINSTANCE, HWND ); /* 初期化 */
00045
00046     /*
00047     ||  Attributes & Operations
00048     */
00049     int DoPropertySheet( int ); /* プロパティシートの作成 */
00050     INT_PTR DispatchEvent_p1( HWND, UINT, WPARAM, LPARAM ); /* p1 メッセージ処理 */
00051     INT_PTR DispatchEvent_p2( HWND, UINT, WPARAM, LPARAM ); /* p2 メッセージ処理 支援タブ */ // 2001/06/14 asa-o
00052     INT_PTR DispatchEvent_p3( HWND, UINT, WPARAM, LPARAM ); /* p3 メッセージ処理 */
00053     INT_PTR DispatchEvent_p3_new( HWND, UINT, WPARAM, LPARAM ); /* p3 メッセージ処理 */
00054     static BOOL SelectColor( HWND , COLORREF*, DWORD* );    /* 色選択ダイアログ */
00055     INT_PTR DispatchEvent_Regex( HWND, UINT, WPARAM, LPARAM );  /* メッセージ処理 正規表現キーワード */ //@@@ 2001.11.17 add MIK
00056     INT_PTR DispatchEvent_KeyHelp( HWND, UINT, WPARAM, LPARAM );    /* メッセージ処理 キーワード辞書選択 */ //@@@ 2006.04.10 fon
00057
00058 private:
00059     HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00060     HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00061     HWND        m_hwndThis;     /* このダイアログのハンドル */
00062     int         m_nPageNum;
00063
00064     /*
00065     || ダイアログデータ
00066     */
00067     char            m_szHelpFile[_MAX_PATH + 1];
00068     int             m_nMaxLineSize_org;                 /* 折り返し文字数 */
00069     Types           m_Types;
00070     CKeyWordSetMgr* m_pCKeyWordSetMgr;  // Mar. 31, 2003 genta メモリ削減のためポインタに
00071     int             m_nCurrentColorType;        /* 現在選択されている色タイプ */
00072     DLLSHAREDATA*   m_pShareData;
00073     int     m_nSet[ MAX_KEYWORDSET_PER_TYPE ];  //  2005.01.13 MIK keyword set index
00074
00075     // フォントDialogカスタムパレット
00076     DWORD           m_dwCustColors[16];
00077
00078 protected:
00079     /*
00080     ||  実装ヘルパ関数
00081     */
00082     void OnHelp( HWND , int );  /* ヘルプ */
00083     //void DrawToolBarItemList( DRAWITEMSTRUCT* );  /* ツールバーボタンリストのアイテム描画 */// 20050809 aroka 未使用
00084     void DrawColorButton( DRAWITEMSTRUCT* , COLORREF ); /* 色ボタンの描画 */
00085     void SetData_p1( HWND );    /* ダイアログデータの設定 p1 */
00086     int  GetData_p1( HWND );    /* ダイアログデータの取得 p1 */
00087
00088     // 2001/06/14 asa-o
00089     void SetData_p2( HWND );    /* ダイアログデータの設定 p2 支援タブ */
00090     int  GetData_p2( HWND );    /* ダイアログデータの取得 p2 支援タブ */
00091
00092     void SetData_p3( HWND );    /* ダイアログデータの設定 p3 */
00093     int  GetData_p3( HWND );    /* ダイアログデータの取得 p3 */
00094     void SetData_p3_new( HWND );    /* ダイアログデータの設定 p3 */
00095     int  GetData_p3_new( HWND );    /* ダイアログデータの取得 p3 */
00096     void p3_Import_Colors( HWND );  /* 色の設定をインポート */
00097     void p3_Export_Colors( HWND );  /* 色の設定をエクスポート */
00098     void DrawColorListItem( DRAWITEMSTRUCT*);   /* 色種別リスト オーナー描画 */
00099
00100     //  Sept. 10, 2000 JEPRO 次行を追加
00101     void EnableTypesPropInput( HWND hwndDlg );  //  タイプ別設定のカラー設定のON/OFF
00102
00103     void SetData_Regex( HWND ); /* ダイアログデータの設定 正規表現キーワード */ //@@@ 2001.11.17 add MIK
00104     int  GetData_Regex( HWND ); /* ダイアログデータの取得 正規表現キーワード */ //@@@ 2001.11.17 add MIK
00105     BOOL Import_Regex( HWND );  //@@@ 2001.11.17 add MIK
00106     BOOL Export_Regex( HWND );  //@@@ 2001.11.17 add MIK
00107     static INT_PTR CALLBACK PropTypesRegex( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );    //@@@ 2001.11.17 add MIK
00108     BOOL RegexKakomiCheck(const char *s);   //@@@ 2001.11.17 add MIK
00109
00110     void RearrangeKeywordSet( HWND );   // Jan. 23, 2005 genta キーワードセット再配置
00111
00112     // 2006.04.10 fon
00113     void SetData_KeyHelp( HWND );   /* ダイアログデータの設定 キーワード辞書選択 */
00114     int  GetData_KeyHelp( HWND );   /* ダイアログデータの取得 キーワード辞書選択 */
00115     BOOL Import_KeyHelp( HWND );    //@@@ 2006.04.10 fon
00116     BOOL Export_KeyHelp( HWND );    //@@@ 2006.04.10 fon
00117     static INT_PTR CALLBACK PropTypesKeyHelp( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
00118
00119 public:
00120     //  Jan. 23, 2005 genta
00121     //  タイプ別設定データの設定・取得
00122     void SetTypeData( const Types& t ){ m_Types = t; }
00123     void GetTypeData( Types& t ) const { t = m_Types; }
00124 };
00125
00126
00127
00129 #endif /* _CPROPTYPES_H_ */
00130
00131
00132 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypesKeyHelp.cpp

CPropTypesKeyHelp.cpp

#include "stdafx.h"
#include "global.h"
#include "sakura_rc.h"
#include "CPropTypes.h"
#include "debug.h"
#include "CDlgOpenFile.h"
#include "etc_uty.h"
#include <stdio.h>
#include "charcode.h"
#include "sakura.hh"

CPropTypesKeyHelp.cppのインクルード依存関係図

ソースコードを見る。

関数

static char * | strcnv (char *str)
static char * | GetFileName (const char *fullpath)

変数

static const DWORD | p_helpids []

説明

タイプ別設定キーワードヘルプページ

作者:
fon
日付:
2006/04/10 新規作成

CPropTypesKeyHelp.cpp で定義されています。

関数

static char * GetFileName ( const char * fullpath ) [static]

フルパスからファイル名を返す

日付:
2006.04.10 fon 新規作成

2006.09.14 genta ディレクトリがない場合に最初の1文字が切れないように

CPropTypesKeyHelp.cpp の 869 行で定義されています。

参照先 _IS_SJIS_1・_IS_SJIS_2.

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::SetData_KeyHelp().

static char * strcnv ( char * str ) [static]

辞書の説明のフォーマット揃え

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 847 行で定義されています。

参照先 NULL.

参照元 CPropTypes::DispatchEvent_KeyHelp().

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_CHECK_KEYHELP,              HIDC_CHECK_KEYHELP,

    IDC_LIST_KEYHELP,               HIDC_LIST_KEYHELP,
    IDC_BUTTON_KEYHELP_UPD,         HIDC_BUTTON_KEYHELP_UPD,

    IDC_EDIT_KEYHELP,               HIDC_EDIT_KEYHELP,
    IDC_BUTTON_KEYHELP_REF,         HIDC_BUTTON_KEYHELP_REF,
    IDC_BUTTON_KEYHELP_TOP,         HIDC_BUTTON_KEYHELP_TOP,
    IDC_BUTTON_KEYHELP_UP,          HIDC_BUTTON_KEYHELP_UP,
    IDC_BUTTON_KEYHELP_DOWN,        HIDC_BUTTON_KEYHELP_DOWN,
    IDC_BUTTON_KEYHELP_LAST,        HIDC_BUTTON_KEYHELP_LAST,
    IDC_BUTTON_KEYHELP_INS,         HIDC_BUTTON_KEYHELP_INS,
    IDC_BUTTON_KEYHELP_DEL,         HIDC_BUTTON_KEYHELP_DEL,
    IDC_CHECK_KEYHELP_ALLSEARCH,    HIDC_CHECK_KEYHELP_ALLSEARCH,
    IDC_CHECK_KEYHELP_KEYDISP,      HIDC_CHECK_KEYHELP_KEYDISP,
    IDC_CHECK_KEYHELP_PREFIX,       HIDC_CHECK_KEYHELP_PREFIX,
    IDC_BUTTON_KEYHELP_IMPORT,      HIDC_BUTTON_KEYHELP_IMPORT,
    IDC_BUTTON_KEYHELP_EXPORT,      HIDC_BUTTON_KEYHELP_EXPORT,
    0, 0
}

CPropTypesKeyHelp.cpp の 43 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypesKeyHelp.cpp ソースファイル

CPropTypesKeyHelp.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2006, fon, ryoji
00009     Copyright (C) 2007, ryoji
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031
00032 #include "stdafx.h"
00033 #include "global.h"
00034 #include "sakura_rc.h"
00035 #include "CPropTypes.h"
00036 #include "debug.h"
00037 #include "CDlgOpenFile.h"
00038 #include "etc_uty.h"
00039 #include <stdio.h>  //@@@ 2001.11.17 add MIK
00040 #include "charcode.h"
00041
00042 #include "sakura.hh"
00043 static const DWORD p_helpids[] = {  // 2006.10.10 ryoji
00044     IDC_CHECK_KEYHELP,              HIDC_CHECK_KEYHELP,             //キーワードヘルプ機能を使う
00045 //  IDC_FRAME_KEYHELP,              HIDC_LIST_KEYHELP,              //辞書ファイル一覧(&L)
00046     IDC_LIST_KEYHELP,               HIDC_LIST_KEYHELP,              //SysListView32
00047     IDC_BUTTON_KEYHELP_UPD,         HIDC_BUTTON_KEYHELP_UPD,        //更新(&E)
00048 //  IDC_LABEL_KEYHELP_KEYWORD,      HIDC_EDIT_KEYHELP,              //辞書ファイル
00049     IDC_EDIT_KEYHELP,               HIDC_EDIT_KEYHELP,              //EDITTEXT
00050     IDC_BUTTON_KEYHELP_REF,         HIDC_BUTTON_KEYHELP_REF,        //参照(&O)...
00051     IDC_BUTTON_KEYHELP_TOP,         HIDC_BUTTON_KEYHELP_TOP,        //先頭(&T)
00052     IDC_BUTTON_KEYHELP_UP,          HIDC_BUTTON_KEYHELP_UP,         //上へ(&U)
00053     IDC_BUTTON_KEYHELP_DOWN,        HIDC_BUTTON_KEYHELP_DOWN,       //下へ(&G)
00054     IDC_BUTTON_KEYHELP_LAST,        HIDC_BUTTON_KEYHELP_LAST,       //最終(&B)
00055     IDC_BUTTON_KEYHELP_INS,         HIDC_BUTTON_KEYHELP_INS,        //挿入(&S)
00056     IDC_BUTTON_KEYHELP_DEL,         HIDC_BUTTON_KEYHELP_DEL,        //削除(&D)
00057     IDC_CHECK_KEYHELP_ALLSEARCH,    HIDC_CHECK_KEYHELP_ALLSEARCH,   //全辞書検索する(&A)
00058     IDC_CHECK_KEYHELP_KEYDISP,      HIDC_CHECK_KEYHELP_KEYDISP,     //キーワードも表示する(&W)
00059     IDC_CHECK_KEYHELP_PREFIX,       HIDC_CHECK_KEYHELP_PREFIX,      //前方一致検索(&P)
00060     IDC_BUTTON_KEYHELP_IMPORT,      HIDC_BUTTON_KEYHELP_IMPORT,     //インポート
00061     IDC_BUTTON_KEYHELP_EXPORT,      HIDC_BUTTON_KEYHELP_EXPORT,     //エクスポート
00062     0, 0
00063 };
00064
00065 static char* strcnv(char *str);
00066 static char* GetFileName(const char *fullpath);
00067
00072 INT_PTR CALLBACK CPropTypes::PropTypesKeyHelp(
00073     HWND    hwndDlg,    // handle to dialog box
00074     UINT    uMsg,       // message
00075     WPARAM  wParam,     // first message parameter
00076     LPARAM  lParam      // second message parameter
00077 )
00078 {
00079     PROPSHEETPAGE*  pPsp;
00080     CPropTypes* pCPropTypes;
00081     switch( uMsg ){
00082     case WM_INITDIALOG:
00083         pPsp = (PROPSHEETPAGE*)lParam;
00084         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00085         if( NULL != pCPropTypes ){
00086             return pCPropTypes->DispatchEvent_KeyHelp( hwndDlg, uMsg, wParam, pPsp->lParam );
00087         }break;
00088     default:
00089         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00090         if( NULL != pCPropTypes ){
00091             return pCPropTypes->DispatchEvent_KeyHelp( hwndDlg, uMsg, wParam, lParam );
00092         }break;
00093     }
00094     return FALSE;
00095 }
00096
00101 INT_PTR CPropTypes::DispatchEvent_KeyHelp(
00102     HWND        hwndDlg,    // handle to dialog box
00103     UINT        uMsg,       // message
00104     WPARAM      wParam,     // first message parameter
00105     LPARAM      lParam      // second message parameter
00106 )
00107 {
00108     WORD    wNotifyCode;
00109     WORD    wID;
00110     HWND    hwndCtl, hwndList;
00111     int     idCtrl;
00112     NMHDR*  pNMHDR;
00113     int     nIndex, nIndex2;
00114     LV_ITEM lvi;
00115     LV_COLUMN   col;
00116     RECT        rc;
00117     static int  nPrevIndex = -1;    //更新時におかしくなるバグ修正 @@@ 2003.03.26 MIK
00118
00119     BOOL    bUse;                       /* 辞書を 使用する/しない */
00120     char    szAbout[DICT_ABOUT_LEN];    /* 辞書の説明(辞書ファイルの1行目から生成) */
00121     char    szPath[_MAX_PATH];          /* ファイルパス */
00122     DWORD   dwStyle;
00123
00124     hwndList = GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00125
00126     switch( uMsg ){
00127     case WM_INITDIALOG:
00128 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00129         /* カラム追加 */
00130         ::GetWindowRect( hwndList, &rc );
00131         /* リストにチェックボックスを追加 */
00132         dwStyle = ListView_GetExtendedListViewStyle(hwndList);
00133         dwStyle |= LVS_EX_CHECKBOXES /*| LVS_EX_FULLROWSELECT*/ | LVS_EX_GRIDLINES;
00134         ListView_SetExtendedListViewStyle(hwndList, dwStyle);
00135
00136         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00137         col.fmt      = LVCFMT_LEFT;
00138         col.cx       = (rc.right - rc.left) * 25 / 100;
00139         col.pszText  = "   辞書ファイル";   /* 指定辞書ファイルの使用可否 */
00140         col.iSubItem = 0;
00141         ListView_InsertColumn( hwndList, 0, &col );
00142         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00143         col.fmt      = LVCFMT_LEFT;
00144         col.cx       = (rc.right - rc.left) * 55 / 100;
00145         col.pszText  = "辞書の説明";        /* 指定辞書の１行目を取得 */
00146         col.iSubItem = 1;
00147         ListView_InsertColumn( hwndList, 1, &col );
00148         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00149         col.fmt      = LVCFMT_LEFT;
00150         col.cx       = (rc.right - rc.left) * 18 / 100;
00151         col.pszText  = "パス";              /* 指定辞書ファイルパス */
00152         col.iSubItem = 2;
00153         ListView_InsertColumn( hwndList, 2, &col );
00154         nPrevIndex = -1;    //@@@ 2003.05.12 MIK
00155         SetData_KeyHelp( hwndDlg ); /* ダイアログデータの設定 辞書ファイル一覧 */
00156         /* リストがあれば先頭をフォーカスする */
00157         if(ListView_GetItemCount(hwndList) > 0){
00158             ListView_SetItemState( hwndList, 0, LVIS_SELECTED /*| LVIS_FOCUSED*/, LVIS_SELECTED /*| LVIS_FOCUSED*/ );
00159         }else{
00160         /* リストがなければ初期値として用途を表示 */
00161             ::SetDlgItemText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, "辞書ファイルの１行目の文字列" );
00162             ::SetDlgItemText( hwndDlg, IDC_EDIT_KEYHELP, "キーワード辞書ファイル パス" );
00163         }
00164         /* 初期状態を設定 */
00165         SendMessage(hwndDlg, WM_COMMAND, (WPARAM)MAKELONG(IDC_CHECK_KEYHELP,BN_CLICKED), 0 );
00166
00167         return TRUE;
00168
00169     case WM_COMMAND:
00170         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00171         wID = LOWORD(wParam);           /* 項目ID､ コントロールID､ またはアクセラレータID */
00172         hwndCtl = (HWND) lParam;        /* コントロールのハンドル */
00173
00174         switch( wNotifyCode ){
00175         /* ボタン／チェックボックスがクリックされた */
00176         case BN_CLICKED:
00177
00178             switch( wID ){
00179             case IDC_CHECK_KEYHELP: /* キーワードヘルプ機能を使う */
00180                 if( FALSE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP ) ){
00181                     //EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP ), FALSE );          //キーワードヘルプ機能を使う(&K)
00182                     EnableWindow( GetDlgItem( hwndDlg, IDC_FRAME_KEYHELP ), FALSE );            //辞書ファイル一覧(&L)
00183                     EnableWindow( GetDlgItem( hwndDlg, IDC_LIST_KEYHELP ), FALSE );             //SysListView32
00184                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_TITLE ), FALSE );      //<辞書の説明>
00185                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_ABOUT ), FALSE );      //辞書ファイルの概要
00186                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UPD ), FALSE );       //更新(&E)
00187                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_KEYWORD ), FALSE );    //辞書ファイル
00188                     EnableWindow( GetDlgItem( hwndDlg, IDC_EDIT_KEYHELP ), FALSE );             //EDITTEXT
00189                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_REF ), FALSE );       //参照(&O)...
00190                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_PRIOR ), FALSE );      //↑優先度(高)
00191                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_TOP ), FALSE );       //先頭(&T)
00192                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UP ), FALSE );        //上へ(&U)
00193                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DOWN ), FALSE );      //下へ(&G)
00194                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_LAST ), FALSE );      //最終(&B)
00195                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_INS ), FALSE );       //挿入(&S)
00196                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DEL ), FALSE );       //削除(&D)
00197                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH ), FALSE );  //全辞書検索する(&A)
00198                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP ), FALSE );    //キーワードも表示する(&W)
00199                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_PREFIX ), FALSE );     //前方一致検索(&P)
00200                 }else{
00201                     //EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP ), TRUE );           //キーワードヘルプ機能を使う(&K)
00202                     EnableWindow( GetDlgItem( hwndDlg, IDC_FRAME_KEYHELP ), TRUE );             //辞書ファイル一覧(&L)
00203                     EnableWindow( GetDlgItem( hwndDlg, IDC_LIST_KEYHELP ), TRUE );              //SysListView32
00204                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_TITLE ), TRUE );       //<辞書の説明>
00205                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_ABOUT ), TRUE );       //辞書ファイルの概要
00206                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UPD ), TRUE );        //更新(&E)
00207                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_KEYWORD ), TRUE );     //辞書ファイル
00208                     EnableWindow( GetDlgItem( hwndDlg, IDC_EDIT_KEYHELP ), TRUE );              //EDITTEXT
00209                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_REF ), TRUE );        //参照(&O)...
00210                     EnableWindow( GetDlgItem( hwndDlg, IDC_LABEL_KEYHELP_PRIOR ), TRUE );       //↑優先度(高)
00211                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_TOP ), TRUE );        //先頭(&T)
00212                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_UP ), TRUE );         //上へ(&U)
00213                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DOWN ), TRUE );       //下へ(&G)
00214                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_LAST ), TRUE );       //最終(&B)
00215                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_INS ), TRUE );        //挿入(&S)
00216                     EnableWindow( GetDlgItem( hwndDlg, IDC_BUTTON_KEYHELP_DEL ), TRUE );        //削除(&D)
00217                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH ), TRUE );   //全辞書検索する(&A)
00218                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP ), TRUE );     //キーワードも表示する(&W)
00219                     EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_KEYHELP_PREFIX ), TRUE );      //前方一致検索(&P)
00220                 }
00221                 m_Types.m_nKeyHelpNum = ListView_GetItemCount( hwndList );
00222                 return TRUE;
00223
00224             /* 挿入・更新イベントを纏めて処理 */
00225             case IDC_BUTTON_KEYHELP_INS:    /* 挿入 */
00226             case IDC_BUTTON_KEYHELP_UPD:    /* 更新 */
00227                 nIndex2 = ListView_GetItemCount(hwndList);
00228                 /* 選択中のキーを探す。 */
00229                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00230
00231                 if(wID == IDC_BUTTON_KEYHELP_INS){  /* 挿入 */
00232                     if( nIndex2 >= MAX_KEYHELP_FILE ){
00233 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "これ以上登録できません。");
00234                         return FALSE;
00235                     }if( -1 == nIndex ){
00236                         /* 選択中でなければ最後にする。 */
00237                         nIndex = nIndex2;
00238                         if(nIndex == 0)
00239                             nPrevIndex = 0;
00240                     }
00241                 }else{                              /* 更新 */
00242                     if( -1 == nIndex ){
00243 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "更新する辞書をリストから選択してください。");
00244                         return FALSE;
00245                     }
00246                 }
00247                 /* 更新するキー情報を取得する。 */
00248                 memset(szPath, 0, sizeof(szPath));
00249                 ::GetDlgItemText( hwndDlg, IDC_EDIT_KEYHELP, szPath, sizeof(szPath) );
00250                 if( szPath[0] == '\0' ) return FALSE;
00251                 /* 重複検査 */
00252                 nIndex2 = ListView_GetItemCount(hwndList);
00253                 char szPath2[_MAX_PATH];
00254                 int i;
00255                 for(i = 0; i < nIndex2; i++){
00256                     memset(szPath2, 0, sizeof(szPath2));
00257                     ListView_GetItemText(hwndList, i, 2, szPath2, sizeof(szPath2));
00258                     if( strcmp(szPath, szPath2) == 0 ){
00259                         if( (wID ==IDC_BUTTON_KEYHELP_UPD) && (i == nIndex) ){  /* 更新時、変わっていなかったら何もしない */
00260                         }else{
00261 							::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "既に登録済みの辞書です。");
00262                             return FALSE;
00263                         }
00264                     }
00265                 }
00266                 /* 指定したパスに辞書があるかチェックする */
00267                 FILE* fp;
00268                 if( (fp=_tfopen_absini(szPath,"r")) == NULL ){  // 2006.02.01 genta 本体からの相対パスを受け付ける  // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00269 					::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "ファイルを開けませんでした。\n\n%s", szPath );
00270                     return FALSE;
00271                 }
00272                 /* 開けたなら1行目を取得してから閉じる */
00273                 fgets( szAbout, sizeof(szAbout), fp );
00274                 fclose( fp );
00275                 strcnv(szAbout);
00276                 /* ついでに辞書の説明を更新 */
00277                 ::SetDlgItemText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, szAbout );  /* 辞書ファイルの概要 */
00278
00279                 /* 更新のときは行削除する。 */
00280                 if(wID == IDC_BUTTON_KEYHELP_UPD){  /* 更新 */
00281                     ListView_DeleteItem( hwndList, nIndex );
00282                 }
00283
00284                 /* ON/OFF ファイル名 */
00285                 lvi.mask     = LVIF_TEXT;
00286                 lvi.iItem    = nIndex;
00287                 lvi.iSubItem = 0;
00288                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00289                 ListView_InsertItem( hwndList, &lvi );
00290                 /* 辞書の説明 */
00291                 lvi.mask     = LVIF_TEXT;
00292                 lvi.iItem    = nIndex;
00293                 lvi.iSubItem = 1;
00294                 lvi.pszText  = szAbout;
00295                 ListView_SetItem( hwndList, &lvi );
00296                 /* 辞書ファイルパス */
00297                 lvi.mask     = LVIF_TEXT;
00298                 lvi.iItem    = nIndex;
00299                 lvi.iSubItem = 2;
00300                 lvi.pszText  = szPath;
00301                 ListView_SetItem( hwndList, &lvi );
00302
00303                 /* デフォルトでチェックON */
00304                 ListView_SetCheckState(hwndList, nIndex, TRUE);
00305                 /* 更新したキーを選択する。 */
00306                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00307                 GetData_KeyHelp( hwndDlg );
00308                 return TRUE;
00309
00310             case IDC_BUTTON_KEYHELP_DEL:    /* 削除 */
00311                 /* 選択中のキー番号を探す。 */
00312                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00313                 if( -1 == nIndex ) return FALSE;
00314                 /* 削除する。 */
00315                 ListView_DeleteItem( hwndList, nIndex );
00316                 /* リストがなくなったら初期値として用途を表示 */
00317                 if(ListView_GetItemCount(hwndList) == 0){
00318                     ::SetDlgItemText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, "辞書ファイルの１行目の文字列" );
00319                     ::SetDlgItemText( hwndDlg, IDC_EDIT_KEYHELP, "キーワード辞書ファイル パス" );
00320                 }/* リストの最後を削除した場合は、削除後のリストの最後を選択する。 */
00321                 else if(nIndex > ListView_GetItemCount(hwndList)-1){
00322                     ListView_SetItemState( hwndList, ListView_GetItemCount(hwndList)-1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00323                 }/* 同じ位置のキーを選択状態にする。 */
00324                 else{
00325                     ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00326                 }
00327                 GetData_KeyHelp( hwndDlg );
00328                 return TRUE;
00329
00330             case IDC_BUTTON_KEYHELP_TOP:    /* 先頭 */
00331                 /* 選択中のキーを探す。 */
00332                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00333                 if( -1 == nIndex ) return FALSE;
00334                 if( 0 == nIndex ) return TRUE;  /* すでに先頭にある。 */
00335                 nIndex2 = 0;
00336                 bUse = ListView_GetCheckState(hwndList, nIndex);
00337                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, sizeof(szAbout));
00338                 ListView_GetItemText(hwndList, nIndex, 2, szPath, sizeof(szPath));
00339                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00340                 /* ON-OFF */
00341                 lvi.mask     = LVIF_TEXT;
00342                 lvi.iItem    = nIndex2;
00343                 lvi.iSubItem = 0;
00344                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00345                 ListView_InsertItem( hwndList, &lvi );
00346                 /* 辞書の説明 */
00347                 lvi.mask     = LVIF_TEXT;
00348                 lvi.iItem    = nIndex2;
00349                 lvi.iSubItem = 1;
00350                 lvi.pszText  = szAbout;
00351                 ListView_SetItem( hwndList, &lvi );
00352                 /* 辞書ファイルパス */
00353                 lvi.mask     = LVIF_TEXT;
00354                 lvi.iItem    = nIndex2;
00355                 lvi.iSubItem = 2;
00356                 lvi.pszText  = szPath;
00357                 ListView_SetItem( hwndList, &lvi );
00358                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00359                 /* 移動したキーを選択状態にする。 */
00360                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00361                 GetData_KeyHelp( hwndDlg );
00362                 return TRUE;
00363
00364             case IDC_BUTTON_KEYHELP_LAST:   /* 最終 */
00365                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00366                 if( -1 == nIndex ) return FALSE;
00367                 nIndex2 = ListView_GetItemCount(hwndList);
00368                 if( nIndex2 - 1 == nIndex ) return TRUE;    /* すでに最終にある。 */
00369                 bUse = ListView_GetCheckState(hwndList, nIndex);
00370                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, sizeof(szAbout));
00371                 ListView_GetItemText(hwndList, nIndex, 2, szPath, sizeof(szPath));
00372                 /* キーを追加する。 */
00373                 /* ON-OFF */
00374                 lvi.mask     = LVIF_TEXT;
00375                 lvi.iItem    = nIndex2;
00376                 lvi.iSubItem = 0;
00377                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00378                 ListView_InsertItem( hwndList, &lvi );
00379                 /* 辞書の説明 */
00380                 lvi.mask     = LVIF_TEXT;
00381                 lvi.iItem    = nIndex2;
00382                 lvi.iSubItem = 1;
00383                 lvi.pszText  = szAbout;
00384                 ListView_SetItem( hwndList, &lvi );
00385                 /* 辞書ファイルパス */
00386                 lvi.mask     = LVIF_TEXT;
00387                 lvi.iItem    = nIndex2;
00388                 lvi.iSubItem = 2;
00389                 lvi.pszText  = szPath;
00390                 ListView_SetItem( hwndList, &lvi );
00391                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00392                 /* 移動したキーを選択状態にする。 */
00393                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00394                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00395                 GetData_KeyHelp( hwndDlg );
00396                 return TRUE;
00397
00398             case IDC_BUTTON_KEYHELP_UP: /* 上へ */
00399                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00400                 if( -1 == nIndex ) return FALSE;
00401                 if( 0 == nIndex ) return TRUE;  /* すでに先頭にある。 */
00402                 nIndex2 = ListView_GetItemCount(hwndList);
00403                 if( nIndex2 <= 1 ) return TRUE;
00404                 nIndex2 = nIndex - 1;
00405                 bUse = ListView_GetCheckState(hwndList, nIndex);
00406                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, sizeof(szAbout));
00407                 ListView_GetItemText(hwndList, nIndex, 2, szPath, sizeof(szPath));
00408                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00409                 /* キーを追加する。 */
00410                 /* ON-OFF */
00411                 lvi.mask     = LVIF_TEXT;
00412                 lvi.iItem    = nIndex2;
00413                 lvi.iSubItem = 0;
00414                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00415                 ListView_InsertItem( hwndList, &lvi );
00416                 /* 辞書の説明 */
00417                 lvi.mask     = LVIF_TEXT;
00418                 lvi.iItem    = nIndex2;
00419                 lvi.iSubItem = 1;
00420                 lvi.pszText  = szAbout;
00421                 ListView_SetItem( hwndList, &lvi );
00422                 /* 辞書ファイルパス */
00423                 lvi.mask     = LVIF_TEXT;
00424                 lvi.iItem    = nIndex2;
00425                 lvi.iSubItem = 2;
00426                 lvi.pszText  = szPath;
00427                 ListView_SetItem( hwndList, &lvi );
00428                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00429                 /* 移動したキーを選択状態にする。 */
00430                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00431                 GetData_KeyHelp( hwndDlg );
00432                 return TRUE;
00433
00434             case IDC_BUTTON_KEYHELP_DOWN:   /* 下へ */
00435                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00436                 if( -1 == nIndex ) return FALSE;
00437                 nIndex2 = ListView_GetItemCount(hwndList);
00438                 if( nIndex2 - 1 == nIndex ) return TRUE;    /* すでに最終にある。 */
00439                 if( nIndex2 <= 1 ) return TRUE;
00440                 nIndex2 = nIndex + 2;
00441                 bUse = ListView_GetCheckState(hwndList, nIndex);
00442                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, sizeof(szAbout));
00443                 ListView_GetItemText(hwndList, nIndex, 2, szPath, sizeof(szPath));
00444                 /* キーを追加する。 */
00445                 /* ON-OFF */
00446                 lvi.mask     = LVIF_TEXT;
00447                 lvi.iItem    = nIndex2;
00448                 lvi.iSubItem = 0;
00449                 lvi.pszText = GetFileName(szPath);  /* ファイル名を表示 */
00450                 ListView_InsertItem( hwndList, &lvi );
00451                 /* 辞書の説明 */
00452                 lvi.mask     = LVIF_TEXT;
00453                 lvi.iItem    = nIndex2;
00454                 lvi.iSubItem = 1;
00455                 lvi.pszText  = szAbout;
00456                 ListView_SetItem( hwndList, &lvi );
00457                 /* 辞書ファイルパス */
00458                 lvi.mask     = LVIF_TEXT;
00459                 lvi.iItem    = nIndex2;
00460                 lvi.iSubItem = 2;
00461                 lvi.pszText  = szPath;
00462                 ListView_SetItem( hwndList, &lvi );
00463                 ListView_SetCheckState(hwndList, nIndex2, bUse);
00464                 /* 移動したキーを選択状態にする。 */
00465                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00466                 ListView_DeleteItem(hwndList, nIndex);  /* 古いキーを削除 */
00467                 GetData_KeyHelp( hwndDlg );
00468                 return TRUE;
00469
00470             case IDC_BUTTON_KEYHELP_REF:    /* キーワードヘルプ 辞書ファイルの「参照...」ボタン */
00471                 {   CDlgOpenFile    cDlgOpenFile;
00472                     /* ファイルオープンダイアログの初期化 */
00473                     // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00474                     TCHAR szWk[_MAX_PATH];
00475                     ::GetDlgItemText( hwndDlg, IDC_EDIT_KEYHELP, szWk, _MAX_PATH );
00476                     if( _IS_REL_PATH( szWk ) ){
00477                         GetInidirOrExedir( szPath, szWk );
00478                     }else{
00479                         ::lstrcpy( szPath, szWk );
00480                     }
00481                     cDlgOpenFile.Create( m_hInstance, hwndDlg, "*.khp", szPath );
00482                     if( cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00483                         ::SetDlgItemText( hwndDlg, IDC_EDIT_KEYHELP, szPath );
00484                     }
00485                 }return TRUE;
00486
00487             case IDC_BUTTON_KEYHELP_IMPORT: /* インポート */
00488                 Import_KeyHelp(hwndDlg);
00489                 m_Types.m_nKeyHelpNum = ListView_GetItemCount( hwndList );
00490                 return TRUE;
00491
00492             case IDC_BUTTON_KEYHELP_EXPORT: /* エクスポート */
00493                 Export_KeyHelp(hwndDlg);
00494                 return TRUE;
00495             }
00496             break;
00497         }
00498         break;
00499
00500     case WM_NOTIFY:
00501         idCtrl = (int)wParam;
00502         pNMHDR = (NMHDR*)lParam;
00503
00504         switch( pNMHDR->code ){
00505         case PSN_HELP:
00506             OnHelp( hwndDlg, IDD_PROP_KEYHELP );
00507             return TRUE;
00508
00509         case PSN_KILLACTIVE:
00510             /* ダイアログデータの取得 辞書ファイルリスト */
00511             GetData_KeyHelp( hwndDlg );
00512             return TRUE;
00513
00514         case PSN_SETACTIVE:
00515             m_nPageNum = 4; //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00516             return TRUE;
00517
00518         case LVN_ITEMCHANGED:   /*リストの項目が変更された際の処理*/
00519             if( pNMHDR->hwndFrom == hwndList ){
00520                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00521                 if( -1 == nIndex ){ //削除、範囲外でクリック時反映されないバグ修正  //@@@ 2003.06.17 MIK
00522                     nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_FOCUSED );
00523                     return FALSE;
00524                 }
00525                 ListView_GetItemText(hwndList, nIndex, 1, szAbout, sizeof(szAbout));
00526                 ListView_GetItemText(hwndList, nIndex, 2, szPath, sizeof(szPath));
00527                 ::SetDlgItemText( hwndDlg, IDC_LABEL_KEYHELP_ABOUT, szAbout );  /* 辞書の説明 */
00528                 ::SetDlgItemText( hwndDlg, IDC_EDIT_KEYHELP, szPath );          /* ファイルパス */
00529                 nPrevIndex = nIndex;
00530             }
00531             break;
00532         }
00533         break;
00534
00535     case WM_HELP:
00536         {   HELPINFO *p = (HELPINFO *)lParam;
00537             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00538         }return TRUE;
00539
00540     case WM_CONTEXTMENU:    /* Context Menu */
00541         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00542         return TRUE;
00543     }
00544     return FALSE;
00545 }
00546
00547
00552 void CPropTypes::SetData_KeyHelp( HWND hwndDlg )
00553 {
00554     HWND    hwndWork;
00555     int     i;
00556     LV_ITEM lvi;
00557     DWORD   dwStyle;
00558
00559     /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00560     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_KEYHELP ), EM_LIMITTEXT, (WPARAM)(sizeof( m_Types.m_KeyHelpArr[0].m_szPath ) - 1 ), (LPARAM)0 );
00561     /* 使用する・使用しない */
00562     if( m_Types.m_bUseKeyWordHelp == TRUE )
00563         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP, BST_CHECKED );
00564     else
00565         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP, BST_UNCHECKED );
00566     if( m_Types.m_bUseKeyHelpAllSearch == TRUE )
00567         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH, BST_CHECKED );
00568     else
00569         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH, BST_UNCHECKED );
00570     if( m_Types.m_bUseKeyHelpKeyDisp == TRUE )
00571         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP, BST_CHECKED );
00572     else
00573         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP, BST_UNCHECKED );
00574     if( m_Types.m_bUseKeyHelpPrefix == TRUE )
00575         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_PREFIX, BST_CHECKED );
00576     else
00577         CheckDlgButton( hwndDlg, IDC_CHECK_KEYHELP_PREFIX, BST_UNCHECKED );
00578     /* リスト */
00579     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00580     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00581     /* 行選択 */
00582     dwStyle = (DWORD)::SendMessage( hwndWork, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00583     dwStyle |= LVS_EX_FULLROWSELECT;
00584     ::SendMessage( hwndWork, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle );
00585     /* データ表示 */
00586     for(i = 0; i < MAX_KEYHELP_FILE; i++){
00587         if( m_Types.m_KeyHelpArr[i].m_szPath[0] == '\0' ) break;
00588         /* ON-OFF */
00589         lvi.mask     = LVIF_TEXT;
00590         lvi.iItem    = i;
00591         lvi.iSubItem = 0;
00592         lvi.pszText = GetFileName(m_Types.m_KeyHelpArr[i].m_szPath);
00593         ListView_InsertItem( hwndWork, &lvi );
00594         /* 辞書の説明 */
00595         lvi.mask     = LVIF_TEXT;
00596         lvi.iItem    = i;
00597         lvi.iSubItem = 1;
00598         lvi.pszText  = m_Types.m_KeyHelpArr[i].m_szAbout;
00599         ListView_SetItem( hwndWork, &lvi );
00600         /* 辞書ファイルパス */
00601         lvi.mask     = LVIF_TEXT;
00602         lvi.iItem    = i;
00603         lvi.iSubItem = 2;
00604         lvi.pszText  = m_Types.m_KeyHelpArr[i].m_szPath;
00605         ListView_SetItem( hwndWork, &lvi );
00606         /* ON/OFFを取得してチェックボックスにセット（とりあえず応急処置） */
00607         if(1 == m_Types.m_KeyHelpArr[i].m_nUse){    // ON
00608             ListView_SetCheckState(hwndWork, i, TRUE);
00609         }else{
00610             ListView_SetCheckState(hwndWork, i, FALSE);
00611         }
00612     }
00613     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00614     return;
00615 }
00616
00621 int CPropTypes::GetData_KeyHelp( HWND hwndDlg )
00622 {
00623     HWND    hwndList;
00624     int nIndex, i;
00625     int     nUse;                       /* 辞書ON(1)/OFF(0) */
00626     char    szAbout[DICT_ABOUT_LEN];    /* 辞書の説明(辞書ファイルの1行目から生成) */
00627     char    szPath[_MAX_PATH];          /* ファイルパス */
00628 //  m_nPageNum = 4; //自分のページ番号
00629
00630     /* 使用する・使用しない */
00631     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP ) )
00632         m_Types.m_bUseKeyWordHelp = TRUE;
00633     else
00634         m_Types.m_bUseKeyWordHelp = FALSE;
00635     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP_ALLSEARCH ) )
00636         m_Types.m_bUseKeyHelpAllSearch = TRUE;
00637     else
00638         m_Types.m_bUseKeyHelpAllSearch = FALSE;
00639     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP_KEYDISP ) )
00640         m_Types.m_bUseKeyHelpKeyDisp = TRUE;
00641     else
00642         m_Types.m_bUseKeyHelpKeyDisp = FALSE;
00643     if( TRUE == IsDlgButtonChecked( hwndDlg, IDC_CHECK_KEYHELP_PREFIX ) )
00644         m_Types.m_bUseKeyHelpPrefix = TRUE;
00645     else
00646         m_Types.m_bUseKeyHelpPrefix = FALSE;
00647     /* リストに登録されている情報を配列に取り込む */
00648     hwndList = GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00649     nIndex = ListView_GetItemCount( hwndList );
00650     for(i = 0; i < MAX_KEYHELP_FILE; i++){
00651         if( i < nIndex ){
00652             nUse    = 0;    /* OFF */
00653             szAbout[0]  = '\0';
00654             szPath[0]   = '\0';
00655             /* チェックボックス状態を取得してnUseにセット */
00656             if(ListView_GetCheckState(hwndList, i))
00657                 nUse = 1;
00658             ListView_GetItemText( hwndList, i, 1, szAbout, sizeof(szAbout) );
00659             ListView_GetItemText( hwndList, i, 2, szPath, sizeof(szPath) );
00660             m_Types.m_KeyHelpArr[i].m_nUse = nUse;
00661             strcpy(m_Types.m_KeyHelpArr[i].m_szAbout, szAbout);
00662             strcpy(m_Types.m_KeyHelpArr[i].m_szPath, szPath);
00663         }else{  /* 未登録部分はクリアする */
00664             m_Types.m_KeyHelpArr[i].m_szPath[0] = '\0';
00665         }
00666     }
00667     /* 辞書の冊数を取得 */
00668     m_Types.m_nKeyHelpNum = nIndex;
00669     return TRUE;
00670 }
00671
00676 BOOL CPropTypes::Import_KeyHelp(HWND hwndDlg)
00677 {
00678     int     i, j;
00679     char    buff[sizeof(int)+DICT_ABOUT_LEN+_MAX_PATH+sizeof("KDct[99]=,,\r\n")];
00680
00681     CDlgOpenFile    cDlgOpenFile;
00682     char    szPath[_MAX_PATH + 1];
00683     char    szInitDir[_MAX_PATH + 1];
00684     strcpy( szPath, "" );
00685     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00686     /* ファイルオープンダイアログの初期化 */
00687     cDlgOpenFile.Create( m_hInstance, hwndDlg, "*.txt", szInitDir );
00688     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) )
00689         return FALSE;
00690     /* ファイルのフルパスを、フォルダとファイル名に分割 */  /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00691 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00692     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00693
00694     FILE        *fp;
00695     if( (fp = fopen(szPath, "r")) == NULL ){
00696 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "ファイルを開けませんでした。\n\n%s", szPath );
00697         return FALSE;
00698     }
00699     /* LIST内のデータ全削除 */
00700     HWND hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00701     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00702     GetData_KeyHelp(hwndDlg);
00703
00704     int invalid_record = 0; // 不正な行
00705     /* データ取得 */
00706     for(i=0; (NULL!=fgets(buff,sizeof(buff),fp))&&(i<MAX_KEYHELP_FILE); ){
00707         for(j = strlen(buff) - 1; j >= 0; j--){
00708             if( buff[j] == '\r' || buff[j] == '\n' ) buff[j] = '\0';
00709         }
00710         // 2007.02.03 genta コメントみたいな行は黙ってスキップ
00711         if( buff[0] == '\n' ||
00712             buff[0] == '#' ||
00713             buff[0] == ';' ||
00714             ( buff[0] == '/' && buff[1] == '/' )){
00715                 //  2007.02.03 genta 処理を継続
00716                 continue;
00717             }
00718
00719         //KDct[99]=ON/OFF,DictAbout,KeyHelpPath
00720         if( strlen(buff) < 10 ||
00721             memcmp(buff, "KDct[", 5) != 0 ||
00722             memcmp(&buff[7], "]=", 2) != 0 ||
00723             0 ){
00724             //  2007.02.03 genta 処理を継続
00725             ++invalid_record;
00726             continue;
00727         }
00728
00729         char *p1, *p2, *p3;
00730         p1 = &buff[9];
00731         p3 = p1;                    //結果確認用に初期化
00732         if( NULL != (p2=strstr(p1,",")) ){
00733             *p2 = '\0';
00734             p2 += 1;                //カンマの次が、次の要素
00735             if( NULL != (p3=strstr(p2,",")) ){
00736                 *p3 = '\0';
00737                 p3 += 1;            //カンマの次が、次の要素
00738             }
00739         }/* 結果の確認 */
00740         if( (p3==NULL) ||           //カンマが1個足りない
00741             (p3==p1) ||             //カンマが2個足りない
00742             //  2007.02.03 genta ファイル名にカンマがあるかもしれない
00743             0 //(NULL!=strstr(p3,","))  //カンマが多すぎる
00744         ){
00745             //  2007.02.03 genta 処理を継続
00746             ++invalid_record;
00747             continue;
00748         }
00749         /* valueのチェック */
00750         //ON/OFF
00751         //  2007.02.03 genta 1でなければ1にする
00752         unsigned int b_enable_flag = (unsigned int)atoi(p1);
00753         if( b_enable_flag > 1){
00754             b_enable_flag = 1;
00755         }
00756         //Path
00757         FILE* fp2;
00758         if( (fp2=_tfopen_absini(p3,"r")) == NULL ){ // 2007.02.03 genta 相対パスはsakura.exe基準で開く  // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
00759             // 2007.02.03 genta 辞書が見つからない場合の措置．警告を出すが取り込む
00760             p2 = "【辞書ファイルが見つかりません】";
00761             b_enable_flag = 0;
00762         }
00763         else
00764             fclose(fp2);
00765
00766         //About
00767         if(strlen(p2)>DICT_ABOUT_LEN){
00768 			::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "辞書の説明は%d文字以内にしてください。\n", DICT_ABOUT_LEN );
00769             ++invalid_record;
00770             continue;
00771         }
00772
00773         //良さそうなら
00774         m_Types.m_KeyHelpArr[i].m_nUse = b_enable_flag; // 2007.02.03 genta
00775         strcpy(m_Types.m_KeyHelpArr[i].m_szAbout, p2);
00776         strcpy(m_Types.m_KeyHelpArr[i].m_szPath, p3);
00777         i++;
00778     }
00779     fclose(fp);
00780     /*データのセット*/
00781     SetData_KeyHelp(hwndDlg);
00782     // 2007.02.03 genta 失敗したら警告する
00783     if( invalid_record > 0 ){
00784 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONWARNING, GSTR_APPNAME,
00785         "一部のデータが読み込めませんでした\n不正な行数: %d",
00786         invalid_record );
00787     }
00788     return TRUE;
00789 }
00790
00791
00796 BOOL CPropTypes::Export_KeyHelp(HWND hwndDlg)
00797 {
00798     int     i, j;
00799
00800     CDlgOpenFile    cDlgOpenFile;
00801     char    szXPath[_MAX_PATH + 1];
00802     char    szInitDir[_MAX_PATH + 1];
00803     strcpy( szXPath, "" );
00804     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00805     /* ファイルオープンダイアログの初期化 */
00806     cDlgOpenFile.Create( m_hInstance, hwndDlg, "*.txt", szInitDir );
00807     if( !cDlgOpenFile.DoModal_GetSaveFileName( szXPath ) ){
00808         return FALSE;
00809     }
00810     /* ファイルのフルパスを、フォルダとファイル名に分割 */  /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00811 	::SplitPath_FolderAndFile( szXPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00812     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00813     FILE        *fp;
00814     if( (fp = fopen(szXPath, "w")) == NULL ){
00815 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "ファイルを開けませんでした。\n\n%s", szXPath );
00816         return FALSE;
00817     }
00818
00819     fprintf(fp, "// キーワード辞書設定 Ver1\n");
00820
00821     GetData_KeyHelp(hwndDlg);
00822     HWND hwndList = GetDlgItem( hwndDlg, IDC_LIST_KEYHELP );
00823     j = ListView_GetItemCount(hwndList);
00824
00825     static const char* pszForm = "KDct[%02d]=%d,%s,%s\n";
00826     for(i = 0; i < j; i++){
00827         fprintf( fp, pszForm,
00828             i,
00829             m_Types.m_KeyHelpArr[i].m_nUse,
00830             m_Types.m_KeyHelpArr[i].m_szAbout,
00831             m_Types.m_KeyHelpArr[i].m_szPath
00832         );
00833     }
00834     fclose(fp);
00835
00836 	::MYMESSAGEBOX(    hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00837         "ファイルへエクスポートしました。\n\n%s", szXPath
00838     );
00839     return TRUE;
00840 }
00841
00842
00847 static char* strcnv(char *str)
00848 {
00849     char* p=str;
00850     /* 改行コードの削除 */
00851     if( NULL != (p=strchr(p,'\n')) )
00852         *p='\0';
00853     p=str;
00854     if( NULL != (p=strchr(p,'\r')) )
00855         *p='\0';
00856     /* カンマの置換 */
00857     p=str;
00858     for(; (p=strchr(p,',')) != NULL; ){
00859         *p='.';
00860     }
00861     return str;
00862 }
00863
00869 static char* GetFileName(const char *fullpath)
00870 {
00871     char *p, *pszName;
00872     pszName = p = (char *)fullpath;
00873     while( *p != '\0'  ){
00874         if( _IS_SJIS_1( (unsigned char)*p ) && _IS_SJIS_2( (unsigned char)p[1] ) ){
00875             p+=2;
00876         }else if( *p == '\\' ){
00877             pszName = p + 1;
00878             p++;
00879         }else{
00880             p++;
00881         }
00882     }
00883     return pszName;
00884 }
00885
00886 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypesRegex.cpp

CPropTypesRegex.cpp

#include "stdafx.h"
#include "sakura_rc.h"
#include "CPropTypes.h"
#include "debug.h"
#include <windows.h>
#include <commctrl.h>
#include "CDlgOpenFile.h"
#include "etc_uty.h"
#include "global.h"
#include "CProfile.h"
#include "CShareData.h"
#include "funccode.h"
#include <stdio.h>
#include "CRegexKeyword.h"
#include "sakura.hh"

CPropTypesRegex.cppのインクルード依存関係図

ソースコードを見る。

変数

static const DWORD p_helpids []

説明

タイプ別設定正規表現キーワードダイアログボックス

作者:
MIK
日付:
2001/11/17 新規作成

CPropTypesRegex.cpp で定義されています。

変数

const DWORD p_helpids[] [static]

初期値:

 {
    IDC_BUTTON_REGEX_IMPORT,    HIDC_BUTTON_REGEX_IMPORT,
    IDC_BUTTON_REGEX_EXPORT,    HIDC_BUTTON_REGEX_EXPORT,
    IDC_BUTTON_REGEX_INS,       HIDC_BUTTON_REGEX_INS,
    IDC_BUTTON_REGEX_ADD,       HIDC_BUTTON_REGEX_ADD,
    IDC_BUTTON_REGEX_UPD,       HIDC_BUTTON_REGEX_UPD,
    IDC_BUTTON_REGEX_DEL,       HIDC_BUTTON_REGEX_DEL,
    IDC_BUTTON_REGEX_TOP,       HIDC_BUTTON_REGEX_TOP,
    IDC_BUTTON_REGEX_LAST,      HIDC_BUTTON_REGEX_LAST,
    IDC_BUTTON_REGEX_UP,        HIDC_BUTTON_REGEX_UP,
    IDC_BUTTON_REGEX_DOWN,      HIDC_BUTTON_REGEX_DOWN,
    IDC_CHECK_REGEX,            HIDC_CHECK_REGEX,
    IDC_COMBO_REGEX_COLOR,      HIDC_COMBO_REGEX_COLOR,
    IDC_EDIT_REGEX,             HIDC_EDIT_REGEX,
    IDC_LIST_REGEX,             HIDC_LIST_REGEX,
    IDC_LABEL_REGEX_KEYWORD,    HIDC_EDIT_REGEX,
    IDC_LABEL_REGEX_COLOR,      HIDC_COMBO_REGEX_COLOR,
    IDC_FRAME_REGEX,            HIDC_LIST_REGEX,
    IDC_LABEL_REGEX_VERSION,    HIDC_LABEL_REGEX_VERSION,

    0, 0
}

CPropTypesRegex.cpp の 36 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CPropTypesRegex.cpp ソースファイル

CPropTypesRegex.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2001, MIK, Stonee
00009     Copyright (C) 2002, MIK
00010     Copyright (C) 2003, MIK, KEITA
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 //@@@ 2001.11.17 add start MIK
00018
00019 #include "stdafx.h"
00020 #include "sakura_rc.h"
00021 #include "CPropTypes.h"
00022 #include "debug.h"
00023 #include <windows.h>
00024 #include <commctrl.h>
00025 #include "CDlgOpenFile.h"
00026 #include "etc_uty.h"
00027 #include "global.h"
00028 #include "CProfile.h"
00029 #include "CShareData.h"
00030 #include "funccode.h"   //Stonee, 2001/05/18
00031 #include <stdio.h>  //@@@ 2001.11.17 add MIK
00032 #include "CRegexKeyword.h"  //@@@ 2001.11.17 add MIK
00033
00034
00035 #include "sakura.hh"
00036 static const DWORD p_helpids[] = {  //11600
00037     IDC_BUTTON_REGEX_IMPORT,    HIDC_BUTTON_REGEX_IMPORT,   //インポート
00038     IDC_BUTTON_REGEX_EXPORT,    HIDC_BUTTON_REGEX_EXPORT,   //エクスポート
00039     IDC_BUTTON_REGEX_INS,       HIDC_BUTTON_REGEX_INS,      //挿入
00040     IDC_BUTTON_REGEX_ADD,       HIDC_BUTTON_REGEX_ADD,      //追加
00041     IDC_BUTTON_REGEX_UPD,       HIDC_BUTTON_REGEX_UPD,      //更新
00042     IDC_BUTTON_REGEX_DEL,       HIDC_BUTTON_REGEX_DEL,      //削除
00043     IDC_BUTTON_REGEX_TOP,       HIDC_BUTTON_REGEX_TOP,      //先頭
00044     IDC_BUTTON_REGEX_LAST,      HIDC_BUTTON_REGEX_LAST,     //最終
00045     IDC_BUTTON_REGEX_UP,        HIDC_BUTTON_REGEX_UP,       //上へ
00046     IDC_BUTTON_REGEX_DOWN,      HIDC_BUTTON_REGEX_DOWN,     //下へ
00047     IDC_CHECK_REGEX,            HIDC_CHECK_REGEX,           //正規表現キーワードを使用する
00048     IDC_COMBO_REGEX_COLOR,      HIDC_COMBO_REGEX_COLOR,     //色
00049     IDC_EDIT_REGEX,             HIDC_EDIT_REGEX,            //正規表現キーワード
00050     IDC_LIST_REGEX,             HIDC_LIST_REGEX,            //リスト
00051     IDC_LABEL_REGEX_KEYWORD,    HIDC_EDIT_REGEX,
00052     IDC_LABEL_REGEX_COLOR,      HIDC_COMBO_REGEX_COLOR,
00053     IDC_FRAME_REGEX,            HIDC_LIST_REGEX,
00054     IDC_LABEL_REGEX_VERSION,    HIDC_LABEL_REGEX_VERSION,   //バージョン
00055 //  IDC_STATIC,                     -1,
00056     0, 0
00057 };
00058
00059
00060 /* 正規表現キーワード ダイアログプロシージャ */
00061 INT_PTR CALLBACK CPropTypes::PropTypesRegex(
00062     HWND    hwndDlg,    // handle to dialog box
00063     UINT    uMsg,       // message
00064     WPARAM  wParam,     // first message parameter
00065     LPARAM  lParam      // second message parameter
00066 )
00067 {
00068     PROPSHEETPAGE*  pPsp;
00069     CPropTypes* pCPropTypes;
00070     switch( uMsg ){
00071     case WM_INITDIALOG:
00072         pPsp = (PROPSHEETPAGE*)lParam;
00073         pCPropTypes = ( CPropTypes* )(pPsp->lParam);
00074         if( NULL != pCPropTypes ){
00075             return pCPropTypes->DispatchEvent_Regex( hwndDlg, uMsg, wParam, pPsp->lParam );
00076         }
00077         break;
00078     default:
00079         // Modified by KEITA for WIN64 2003.9.6
00080         pCPropTypes = ( CPropTypes* )::GetWindowLongPtr( hwndDlg, DWLP_USER );
00081         if( NULL != pCPropTypes ){
00082             return pCPropTypes->DispatchEvent_Regex( hwndDlg, uMsg, wParam, lParam );
00083         }
00084         break;
00085     }
00086     return FALSE;
00087 }
00088
00089 BOOL CPropTypes::Import_Regex(HWND hwndDlg)
00090 {
00091     CDlgOpenFile    cDlgOpenFile;
00092     char        szPath[_MAX_PATH + 1];
00093     int     i, j, k;
00094     char        szInitDir[_MAX_PATH + 1];
00095 //  CProfile    cProfile;
00096     FILE        *fp;
00097     struct RegexKeywordInfo pRegexKey[MAX_REGEX_KEYWORD];
00098     char    buff[1024];
00099     HWND    hwndWork;
00100     LV_ITEM lvi;
00101     char    *p;
00102
00103     strcpy( szPath, "" );
00104     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00105     /* ファイルオープンダイアログの初期化 */
00106     cDlgOpenFile.Create(
00107         m_hInstance,
00108         hwndDlg,
00109         "*.rkw",    /* [R]egex [K]ey[W]ord */
00110         szInitDir
00111     );
00112     if( !cDlgOpenFile.DoModal_GetOpenFileName( szPath ) ){
00113         return FALSE;
00114     }
00115     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00116     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00117 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00118     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00119
00120     if( (fp = fopen(szPath, "r")) == NULL )
00121     {
00122 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "ファイルを開けませんでした。\n\n%s", szPath );
00123         return FALSE;
00124     }
00125
00126     j = 0;
00127     while(fgets(buff, sizeof(buff), fp))
00128     {
00129         if(j >= MAX_REGEX_KEYWORD) break;
00130         for(i = strlen(buff) - 1; i >= 0; i--){
00131             if( buff[i] == '\r' || buff[i] == '\n' ) buff[i] = '\0';
00132         }
00133         //RxKey[999]=ColorName,RegexKeyword
00134         if( strlen(buff) < 12 ) continue;
00135         if( memcmp(buff, "RxKey[", 6) != 0 ) continue;
00136         if( memcmp(&buff[9], "]=", 2) != 0 ) continue;
00137         p = strstr(&buff[11], ",");
00138         if( p )
00139         {
00140             *p = '\0';
00141             p++;
00142             if( p[0]    //キーワードがある
00143              && RegexKakomiCheck(p) == TRUE )   //囲みがある
00144             {
00145                 //色指定名に対応する番号を探す
00146                 k = GetColorIndexByName( &buff[11] );   //@@@ 2002.04.30
00147                 if( k != -1 )   /* 3文字カラー名からインデックス番号に変換 */
00148                 {
00149                     pRegexKey[j].m_nColorIndex = k;
00150                     strcpy(pRegexKey[j].m_szKeyword, p);
00151                     j++;
00152                 }
00153                 else
00154                 {   /* 日本語名からインデックス番号に変換する */
00155                     for(k = 0; k < COLORIDX_LAST; k++)
00156                     {
00157                         if( strcmp(m_Types.m_ColorInfoArr[k].m_szName, &buff[11]) == 0 )
00158                         {
00159                             pRegexKey[j].m_nColorIndex = k;
00160                             strcpy(pRegexKey[j].m_szKeyword, p);
00161                             j++;
00162                             break;
00163                         }
00164                     }
00165                 }
00166             }
00167         }
00168     }
00169
00170     fclose(fp);
00171
00172     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00173     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00174     for(i = 0; i < j; i++)
00175     {
00176         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00177         lvi.pszText  = pRegexKey[i].m_szKeyword;
00178         lvi.iItem    = i;
00179         lvi.iSubItem = 0;
00180         lvi.lParam   = 0;
00181         ListView_InsertItem( hwndWork, &lvi );
00182         lvi.mask     = LVIF_TEXT;
00183         lvi.iItem    = i;
00184         lvi.iSubItem = 1;
00185         lvi.pszText  = m_Types.m_ColorInfoArr[pRegexKey[i].m_nColorIndex].m_szName;
00186         ListView_SetItem( hwndWork, &lvi );
00187     }
00188     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00189
00190     return TRUE;
00191 }
00192
00193 BOOL CPropTypes::Export_Regex(HWND hwndDlg)
00194 {
00195     CDlgOpenFile    cDlgOpenFile;
00196     char        szPath[_MAX_PATH + 1];
00197     int     i, j, k;
00198     char        szInitDir[_MAX_PATH + 1];
00199 //  CProfile    cProfile;
00200     FILE        *fp;
00201     char    szKeyWord[256], szColorIndex[256];
00202     HWND    hwndList;
00203
00204     strcpy( szPath, "" );
00205     strcpy( szInitDir, m_pShareData->m_szIMPORTFOLDER );    /* インポート用フォルダ */
00206     /* ファイルオープンダイアログの初期化 */
00207     cDlgOpenFile.Create(
00208         m_hInstance,
00209         hwndDlg,
00210         "*.rkw",    /* [R]egex [K]ey[W]ord */
00211         szInitDir
00212     );
00213     if( !cDlgOpenFile.DoModal_GetSaveFileName( szPath ) ){
00214         return FALSE;
00215     }
00216     /* ファイルのフルパスを、フォルダとファイル名に分割 */
00217     /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00218 	::SplitPath_FolderAndFile( szPath, m_pShareData->m_szIMPORTFOLDER, NULL );
00219     strcat( m_pShareData->m_szIMPORTFOLDER, "\\" );
00220
00221     if( (fp = fopen(szPath, "w")) == NULL )
00222     {
00223 		::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "ファイルを開けませんでした。\n\n%s", szPath );
00224         return FALSE;
00225     }
00226
00227     fprintf(fp, "// 正規表現キーワード Ver1\n");
00228
00229     hwndList = GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00230     j = ListView_GetItemCount(hwndList);
00231     for(i = 0; i < j; i++)
00232     {
00233         memset(szKeyWord, 0, sizeof(szKeyWord));
00234         ListView_GetItemText(hwndList, i, 0, szKeyWord, sizeof(szKeyWord));
00235         memset(szColorIndex, 0, sizeof(szColorIndex));
00236         ListView_GetItemText(hwndList, i, 1, szColorIndex, sizeof(szColorIndex));
00237
00238         const char* p = szColorIndex;
00239         for(k = 0; k < COLORIDX_LAST; k++)
00240         {
00241             if( strcmp( m_Types.m_ColorInfoArr[k].m_szName, szColorIndex ) == 0 )
00242             {
00243                 p = GetColorNameByIndex(k);
00244                 break;
00245             }
00246         }
00247         //fprintf(fp, "RxKey[%03d]=%s,%s\n", i, szColorIndex, szKeyWord);
00248         fprintf(fp, "RxKey[%03d]=%s,%s\n", i, p, szKeyWord);
00249     }
00250
00251     fclose(fp);
00252
00253 	::MYMESSAGEBOX(    hwndDlg, MB_OK | MB_ICONINFORMATION, GSTR_APPNAME,
00254         "ファイルへエクスポートしました。\n\n%s", szPath
00255     );
00256
00257     return TRUE;
00258 }
00259
00260 /* 正規表現キーワード メッセージ処理 */
00261 INT_PTR CPropTypes::DispatchEvent_Regex(
00262     HWND        hwndDlg,    // handle to dialog box
00263     UINT        uMsg,       // message
00264     WPARAM      wParam,     // first message parameter
00265     LPARAM      lParam      // second message parameter
00266 )
00267 {
00268     WORD    wNotifyCode;
00269     WORD    wID;
00270     HWND    hwndCtl, hwndList;
00271     int idCtrl;
00272     NMHDR*  pNMHDR;
00273     int nIndex, nIndex2, i, j, nRet;
00274     LV_ITEM lvi;
00275     LV_COLUMN   col;
00276     RECT        rc;
00277     char    szKeyWord[256], szColorIndex[256];
00278     static int nPrevIndex = -1; //更新時におかしくなるバグ修正 @@@ 2003.03.26 MIK
00279
00280     hwndList = GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00281
00282     switch( uMsg ){
00283     case WM_INITDIALOG:
00284         // Modified by KEITA for WIN64 2003.9.6
00285 		::SetWindowLongPtr( hwndDlg, DWLP_USER, lParam );
00286
00287         /* カラム追加 */
00288         //ListView_DeleteColumn( hwndList, 1 );
00289         //ListView_DeleteColumn( hwndList, 0 );
00290         ::GetWindowRect( hwndList, &rc );
00291         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00292         col.fmt      = LVCFMT_LEFT;
00293         col.cx       = (rc.right - rc.left) * 54 / 100;
00294         col.pszText  = "キーワード";
00295         col.iSubItem = 0;
00296         ListView_InsertColumn( hwndList, 0, &col );
00297         col.mask     = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
00298         col.fmt      = LVCFMT_LEFT;
00299         col.cx       = (rc.right - rc.left) * 38 / 100;
00300         col.pszText  = "色指定";
00301         col.iSubItem = 1;
00302         ListView_InsertColumn( hwndList, 1, &col );
00303
00304         nPrevIndex = -1;    //@@@ 2003.05.12 MIK
00305         SetData_Regex( hwndDlg );   /* ダイアログデータの設定 正規表現キーワード */
00306         if( CheckRegexpVersion( hwndDlg, IDC_LABEL_REGEX_VERSION, false ) == false )    //@@@ 2001.11.17 add MIK
00307         {
00308             ::SetDlgItemText( hwndDlg, IDC_LABEL_REGEX_VERSION, "正規表現キーワードは使えません。" );
00309             //ライブラリがなくて、使用しないになっている場合は、無効にする。
00310             if( ! IsDlgButtonChecked( hwndDlg, IDC_CHECK_REGEX ) )
00311             {
00312                 //Disableにする。
00313                 EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00314             }
00315             else
00316             {
00317                 //使用するになってるんだけどDisableにする。もうユーザは変更できない。
00318                 EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00319             }
00320         }
00321         return TRUE;
00322
00323     case WM_COMMAND:
00324         wNotifyCode = HIWORD(wParam);   /* 通知コード */
00325         wID = LOWORD(wParam);   /* 項目ID､ コントロールID､ またはアクセラレータID */
00326         hwndCtl = (HWND) lParam;    /* コントロールのハンドル */
00327         switch( wNotifyCode ){
00328         /* ボタン／チェックボックスがクリックされた */
00329         case BN_CLICKED:
00330             switch( wID ){
00331             case IDC_CHECK_REGEX:   /* 正規表現キーワードを使う */
00332                 if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_REGEX ) )
00333                 {
00334                     if( CheckRegexpVersion( NULL, 0, false ) == false )
00335                     {
00336                         nRet = ::MYMESSAGEBOX(
00337                                 hwndDlg,
00338                                 MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00339                                 GSTR_APPNAME,
00340                                 "正規表現ライブラリが見つかりません。\n\n正規表現キーワードは機能しませんが、それでも有効にしますか？",
00341                                 "正規表現キーワードを使用する" );
00342                         if( nRet != IDYES )
00343                         {
00344                             CheckDlgButton( hwndDlg, IDC_CHECK_REGEX, BST_UNCHECKED );
00345                             //Disableにする。
00346                             EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00347                             return TRUE;
00348                         }
00349                     }
00350                 }
00351                 else
00352                 {
00353                     if( CheckRegexpVersion( NULL, 0, false ) == false )
00354                     {
00355                         //Disableにする。
00356                         EnableWindow( GetDlgItem( hwndDlg, IDC_CHECK_REGEX ), FALSE );
00357                     }
00358                 }
00359                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile
00360                 return TRUE;
00361
00362             case IDC_BUTTON_REGEX_INS:  /* 挿入 */
00363                 //挿入するキー情報を取得する。
00364                 memset(szKeyWord, 0, sizeof(szKeyWord));
00365                 ::GetDlgItemText( hwndDlg, IDC_EDIT_REGEX, szKeyWord, sizeof(szKeyWord) );
00366                 if( szKeyWord[0] == '\0' ) return FALSE;
00367                 //同じキーがないか調べる。
00368                 nIndex2 = ListView_GetItemCount(hwndList);
00369                 if( nIndex2 >= MAX_REGEX_KEYWORD )
00370                 {
00371 					::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "これ以上登録できません。");
00372                     return FALSE;
00373                 }
00374                 for(i = 0; i < nIndex2; i++)
00375                 {
00376                     memset(szColorIndex, 0, sizeof(szColorIndex));
00377                     ListView_GetItemText(hwndList, i, 0, szColorIndex, sizeof(szColorIndex));
00378                     if( strcmp(szKeyWord, szColorIndex) == 0 )
00379                     {
00380 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "同じキーワードで登録済みです。");
00381                         return FALSE;
00382                     }
00383                 }
00384                 //選択中のキーを探す。
00385                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00386                 if( -1 == nIndex )
00387                 {
00388                     //選択中でなければ最後にする。
00389                     nIndex = nIndex2;
00390                 }
00391                 //書式をチェックする。
00392                 if( RegexKakomiCheck(szKeyWord) == FALSE )  //囲みをチェックする。
00393                 {
00394                     nRet = ::MYMESSAGEBOX(
00395                             hwndDlg,
00396                             MB_OK | MB_ICONSTOP | MB_TOPMOST,
00397                             GSTR_APPNAME,
00398                             "正規表現キーワードを / と /k で囲ってください。\nキーワードに / がある場合は m# と #k で囲ってください。",
00399                             "正規表現キーワード" );
00400                     return FALSE;
00401                 }
00402                 if( CheckRegexpSyntax( szKeyWord, hwndDlg, false ) == false )
00403                 {
00404                     nRet = ::MYMESSAGEBOX(
00405                             hwndDlg,
00406                             MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00407                             GSTR_APPNAME,
00408                             "書式が正しくないか、正規表現ライブラリが見つかりません。\n\n登録しますか？",
00409                             "正規表現キーワード" );
00410                     if( nRet != IDYES ) return FALSE;
00411                 }
00412                 //挿入するキー情報を取得する。
00413                 memset(szColorIndex, 0, sizeof(szColorIndex));
00414                 ::GetDlgItemText( hwndDlg, IDC_COMBO_REGEX_COLOR, szColorIndex, sizeof(szColorIndex) );
00415                 //キー情報を挿入する。
00416                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00417                 lvi.pszText  = szKeyWord;
00418                 lvi.iItem    = nIndex;
00419                 lvi.iSubItem = 0;
00420                 lvi.lParam   = 0;
00421                 ListView_InsertItem( hwndList, &lvi );
00422                 lvi.mask     = LVIF_TEXT;
00423                 lvi.iItem    = nIndex;
00424                 lvi.iSubItem = 1;
00425                 lvi.pszText  = szColorIndex;
00426                 ListView_SetItem( hwndList, &lvi );
00427                 //挿入したキーを選択する。
00428                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00429                 GetData_Regex( hwndDlg );
00430                 return TRUE;
00431
00432             case IDC_BUTTON_REGEX_ADD:  /* 追加 */
00433                 //最後のキー番号を取得する。
00434                 nIndex = ListView_GetItemCount( hwndList );
00435                 //追加するキー情報を取得する。
00436                 memset(szKeyWord, 0, sizeof(szKeyWord));
00437                 ::GetDlgItemText( hwndDlg, IDC_EDIT_REGEX, szKeyWord, sizeof(szKeyWord) );
00438                 if( szKeyWord[0] == '\0' ) return FALSE;
00439                 nIndex2 = ListView_GetItemCount(hwndList);
00440                 if( nIndex2 >= MAX_REGEX_KEYWORD )
00441                 {
00442 					::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "これ以上登録できません。");
00443                     return FALSE;
00444                 }
00445                 for(i = 0; i < nIndex2; i++)
00446                 {
00447                     memset(szColorIndex, 0, sizeof(szColorIndex));
00448                     ListView_GetItemText(hwndList, i, 0, szColorIndex, sizeof(szColorIndex));
00449                     if( strcmp(szKeyWord, szColorIndex) == 0 )
00450                     {
00451 						::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "同じキーワードで登録済みです。");
00452                         return FALSE;
00453                     }
00454                 }
00455                 //書式をチェックする。
00456                 if( RegexKakomiCheck(szKeyWord) == FALSE )  //囲みをチェックする。
00457                 {
00458                     nRet = ::MYMESSAGEBOX(
00459                             hwndDlg,
00460                             MB_OK | MB_ICONSTOP | MB_TOPMOST,
00461                             GSTR_APPNAME,
00462                             "正規表現キーワードを / と /k で囲ってください。\nキーワードに / がある場合は m# と #k で囲ってください。",
00463                             "正規表現キーワード" );
00464                     return FALSE;
00465                 }
00466                 if( CheckRegexpSyntax( szKeyWord, hwndDlg, false ) == false )
00467                 {
00468                     nRet = ::MYMESSAGEBOX(
00469                             hwndDlg,
00470                             MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00471                             GSTR_APPNAME,
00472                             "書式が正しくないか、正規表現ライブラリが見つかりません。\n\n登録しますか？",
00473                             "正規表現キーワード" );
00474                     if( nRet != IDYES ) return FALSE;
00475                 }
00476                 //追加するキー情報を取得する。
00477                 memset(szColorIndex, 0, sizeof(szColorIndex));
00478                 ::GetDlgItemText( hwndDlg, IDC_COMBO_REGEX_COLOR, szColorIndex, sizeof(szColorIndex) );
00479                 //キーを追加する。
00480                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00481                 lvi.pszText  = szKeyWord;
00482                 lvi.iItem    = nIndex;
00483                 lvi.iSubItem = 0;
00484                 lvi.lParam   = 0;
00485                 ListView_InsertItem( hwndList, &lvi );
00486                 lvi.mask     = LVIF_TEXT;
00487                 lvi.iItem    = nIndex;
00488                 lvi.iSubItem = 1;
00489                 lvi.pszText  = szColorIndex;
00490                 ListView_SetItem( hwndList, &lvi );
00491                 //追加したキーを選択する。
00492                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00493                 GetData_Regex( hwndDlg );
00494                 return TRUE;
00495
00496             case IDC_BUTTON_REGEX_UPD:  /* 更新 */
00497                 //選択中のキーを探す。
00498                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00499                 if( -1 == nIndex )
00500                 {
00501 					::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "キーワードが選択されていません。");
00502                     return FALSE;
00503                 }
00504                 //更新するキー情報を取得する。
00505                 memset(szKeyWord, 0, sizeof(szKeyWord));
00506                 ::GetDlgItemText( hwndDlg, IDC_EDIT_REGEX, szKeyWord, sizeof(szKeyWord) );
00507                 if( szKeyWord[0] == '\0' ) return FALSE;
00508                 nIndex2 = ListView_GetItemCount(hwndList);
00509                 for(i = 0; i < nIndex2; i++)
00510                 {
00511                     if( i != nIndex )
00512                     {
00513                         memset(szColorIndex, 0, sizeof(szColorIndex));
00514                         ListView_GetItemText(hwndList, i, 0, szColorIndex, sizeof(szColorIndex));
00515                         if( strcmp(szKeyWord, szColorIndex) == 0 )
00516                         {
00517 							::MYMESSAGEBOX( hwndDlg, MB_OK | MB_ICONSTOP, GSTR_APPNAME, "同じキーワードで登録済みです。");
00518                             return FALSE;
00519                         }
00520                     }
00521                 }
00522                 //書式をチェックする。
00523                 if( RegexKakomiCheck(szKeyWord) == FALSE )  //囲みをチェックする。
00524                 {
00525                     nRet = ::MYMESSAGEBOX(
00526                             hwndDlg,
00527                             MB_OK | MB_ICONSTOP | MB_TOPMOST | MB_DEFBUTTON2,
00528                             GSTR_APPNAME,
00529                             "正規表現キーワードを / と /k で囲ってください。\nキーワードに / がある場合は m# と #k で囲ってください。",
00530                             "正規表現キーワード" );
00531                     return FALSE;
00532                 }
00533                 if( CheckRegexpSyntax( szKeyWord, hwndDlg, false ) == false )
00534                 {
00535                     nRet = ::MYMESSAGEBOX(
00536                             hwndDlg,
00537                             MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2,
00538                             GSTR_APPNAME,
00539                             "書式が正しくないか、正規表現ライブラリが見つかりません。\n\n登録しますか？",
00540                             "正規表現キーワード" );
00541                     if( nRet != IDYES ) return FALSE;
00542                 }
00543                 //追加するキー情報を取得する。
00544                 memset(szColorIndex, 0, sizeof(szColorIndex));
00545                 ::GetDlgItemText( hwndDlg, IDC_COMBO_REGEX_COLOR, szColorIndex, sizeof(szColorIndex) );
00546                 //キーを更新する。
00547                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00548                 lvi.pszText  = szKeyWord;
00549                 lvi.iItem    = nIndex;
00550                 lvi.iSubItem = 0;
00551                 lvi.lParam   = 0;
00552                 ListView_SetItem( hwndList, &lvi );
00553                 lvi.mask     = LVIF_TEXT;
00554                 lvi.iItem    = nIndex;
00555                 lvi.iSubItem = 1;
00556                 lvi.pszText  = szColorIndex;
00557                 ListView_SetItem( hwndList, &lvi );
00558                 //更新したキーを選択する。
00559                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00560                 GetData_Regex( hwndDlg );
00561                 return TRUE;
00562
00563             case IDC_BUTTON_REGEX_DEL:  /* 削除 */
00564                 //選択中のキー番号を探す。
00565                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00566                 if( -1 == nIndex ) return FALSE;
00567                 //削除する。
00568                 ListView_DeleteItem( hwndList, nIndex );
00569                 //同じ位置のキーを選択状態にする。
00570                 ListView_SetItemState( hwndList, nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00571                 GetData_Regex( hwndDlg );
00572                 return TRUE;
00573
00574             case IDC_BUTTON_REGEX_TOP:  /* 先頭 */
00575                 //選択中のキーを探す。
00576                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00577                 if( -1 == nIndex ) return FALSE;
00578                 if( 0 == nIndex ) return TRUE;  //すでに先頭にある。
00579                 nIndex2 = 0;
00580                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, sizeof(szKeyWord));
00581                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, sizeof(szColorIndex));
00582                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00583                 //キーを追加する。
00584                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00585                 lvi.pszText  = szKeyWord;
00586                 lvi.iItem    = nIndex2;
00587                 lvi.iSubItem = 0;
00588                 lvi.lParam   = 0;
00589                 ListView_InsertItem( hwndList, &lvi );
00590                 lvi.mask     = LVIF_TEXT;
00591                 lvi.iItem    = nIndex2;
00592                 lvi.iSubItem = 1;
00593                 lvi.pszText  = szColorIndex;
00594                 ListView_SetItem( hwndList, &lvi );
00595                 //移動したキーを選択状態にする。
00596                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00597                 GetData_Regex( hwndDlg );
00598                 return TRUE;
00599
00600             case IDC_BUTTON_REGEX_LAST: /* 最終 */
00601                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00602                 if( -1 == nIndex ) return FALSE;
00603                 nIndex2 = ListView_GetItemCount(hwndList);
00604                 if( nIndex2 - 1 == nIndex ) return TRUE;    //すでに最終にある。
00605                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, sizeof(szKeyWord));
00606                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, sizeof(szColorIndex));
00607                 //キーを追加する。
00608                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00609                 lvi.pszText  = szKeyWord;
00610                 lvi.iItem    = nIndex2;
00611                 lvi.iSubItem = 0;
00612                 lvi.lParam   = 0;
00613                 ListView_InsertItem( hwndList, &lvi );
00614                 lvi.mask     = LVIF_TEXT;
00615                 lvi.iItem    = nIndex2;
00616                 lvi.iSubItem = 1;
00617                 lvi.pszText  = szColorIndex;
00618                 ListView_SetItem( hwndList, &lvi );
00619                 //移動したキーを選択状態にする。
00620                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00621                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00622                 GetData_Regex( hwndDlg );
00623                 return TRUE;
00624
00625             case IDC_BUTTON_REGEX_UP:   /* 上へ */
00626                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00627                 if( -1 == nIndex ) return FALSE;
00628                 if( 0 == nIndex ) return TRUE;  //すでに先頭にある。
00629                 nIndex2 = ListView_GetItemCount(hwndList);
00630                 if( nIndex2 <= 1 ) return TRUE;
00631                 nIndex2 = nIndex - 1;
00632                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, sizeof(szKeyWord));
00633                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, sizeof(szColorIndex));
00634                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00635                 //キーを追加する。
00636                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00637                 lvi.pszText  = szKeyWord;
00638                 lvi.iItem    = nIndex2;
00639                 lvi.iSubItem = 0;
00640                 lvi.lParam   = 0;
00641                 ListView_InsertItem( hwndList, &lvi );
00642                 lvi.mask     = LVIF_TEXT;
00643                 lvi.iItem    = nIndex2;
00644                 lvi.iSubItem = 1;
00645                 lvi.pszText  = szColorIndex;
00646                 ListView_SetItem( hwndList, &lvi );
00647                 //移動したキーを選択状態にする。
00648                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00649                 GetData_Regex( hwndDlg );
00650                 return TRUE;
00651
00652             case IDC_BUTTON_REGEX_DOWN: /* 下へ */
00653                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00654                 if( -1 == nIndex ) return FALSE;
00655                 nIndex2 = ListView_GetItemCount(hwndList);
00656                 if( nIndex2 - 1 == nIndex ) return TRUE;    //すでに最終にある。
00657                 if( nIndex2 <= 1 ) return TRUE;
00658                 nIndex2 = nIndex + 2;
00659                 ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, sizeof(szKeyWord));
00660                 ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, sizeof(szColorIndex));
00661                 //キーを追加する。
00662                 lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00663                 lvi.pszText  = szKeyWord;
00664                 lvi.iItem    = nIndex2;
00665                 lvi.iSubItem = 0;
00666                 lvi.lParam   = 0;
00667                 ListView_InsertItem( hwndList, &lvi );
00668                 lvi.mask     = LVIF_TEXT;
00669                 lvi.iItem    = nIndex2;
00670                 lvi.iSubItem = 1;
00671                 lvi.pszText  = szColorIndex;
00672                 ListView_SetItem( hwndList, &lvi );
00673                 //移動したキーを選択状態にする。
00674                 ListView_SetItemState( hwndList, nIndex2, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00675                 ListView_DeleteItem(hwndList, nIndex);  //古いキーを削除
00676                 GetData_Regex( hwndDlg );
00677                 return TRUE;
00678
00679             case IDC_BUTTON_REGEX_IMPORT:   /* インポート */
00680                 Import_Regex(hwndDlg);
00681                 m_Types.m_nRegexKeyMagicNumber++;   //Need Compile  //@@@ 2001.11.17 add MIK 正規表現キーワードのため
00682                 return TRUE;
00683
00684             case IDC_BUTTON_REGEX_EXPORT:   /* エクスポート */
00685                 Export_Regex(hwndDlg);
00686                 return TRUE;
00687             }
00688             break;
00689         }
00690         break;
00691
00692     case WM_NOTIFY:
00693         idCtrl = (int)wParam;
00694         pNMHDR = (NMHDR*)lParam;
00695         switch( pNMHDR->code ){
00696         case PSN_HELP:
00697             OnHelp( hwndDlg, IDD_PROP_REGEX );
00698             return TRUE;
00699         case PSN_KILLACTIVE:
00700             /* ダイアログデータの取得 正規表現キーワード */
00701             GetData_Regex( hwndDlg );
00702             return TRUE;
00703 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00704         case PSN_SETACTIVE:
00705             m_nPageNum = 3;
00706             return TRUE;
00707         case LVN_ITEMCHANGED:
00708             if( pNMHDR->hwndFrom == hwndList )
00709             {
00710                 HWND    hwndCombo;
00711                 nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_SELECTED );
00712                 if( -1 == nIndex )  //削除、範囲外でクリック時反映されないバグ修正  //@@@ 2003.06.17 MIK
00713                 {
00714                     nIndex = ListView_GetNextItem( hwndList, -1, LVNI_ALL | LVNI_FOCUSED );
00715                 }
00716                 if( -1 == nIndex )
00717                 {
00718                     /* 初期値を設定する */
00719                     ::SetDlgItemText( hwndDlg, IDC_EDIT_REGEX, "//k" ); /* 正規表現 */
00720                     hwndCombo = GetDlgItem( hwndDlg, IDC_COMBO_REGEX_COLOR );
00721                     for( i = 0, j = 0; i < COLORIDX_LAST; i++ )
00722                     {
00723                         if ( 0 == (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )  // 2006.12.18 ryoji フラグ利用で簡素化
00724                         {
00725                             if( m_Types.m_ColorInfoArr[i].m_nColorIdx == COLORIDX_REGEX1 )
00726                             {
00727                                 ::SendMessage( hwndCombo, CB_SETCURSEL, (WPARAM)j, (LPARAM)0 ); /* コンボボックスのデフォルト選択 */
00728                                 break;
00729                             }
00730                             j++;
00731                         }
00732                     }
00733                     return FALSE;
00734                 }
00735                 if( nPrevIndex != nIndex )  //@@@ 2003.03.26 MIK
00736                 {   //更新時にListViewのSubItemを正しく取得できないので、その対策
00737                     ListView_GetItemText(hwndList, nIndex, 0, szKeyWord, sizeof(szKeyWord));
00738                     ListView_GetItemText(hwndList, nIndex, 1, szColorIndex, sizeof(szColorIndex));
00739                     ::SetDlgItemText( hwndDlg, IDC_EDIT_REGEX, szKeyWord ); /* 正規表現 */
00740                     hwndCombo = GetDlgItem( hwndDlg, IDC_COMBO_REGEX_COLOR );
00741                     for(i = 0, j = 0; i < COLORIDX_LAST; i++)
00742                     {
00743                         if ( 0 == (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )  // 2006.12.18 ryoji フラグ利用で簡素化
00744                         {
00745                             if(strcmp(m_Types.m_ColorInfoArr[i].m_szName, szColorIndex) == 0)
00746                             {
00747                                 ::SendMessage(hwndCombo, CB_SETCURSEL, j, 0);
00748                                 break;
00749                             }
00750                             j++;
00751                         }
00752                     }
00753                 }
00754                 nPrevIndex = nIndex;
00755             }
00756             break;
00757         }
00758         break;
00759
00760     case WM_HELP:
00761         {
00762             HELPINFO *p = (HELPINFO *)lParam;
00763             MyWinHelp( (HWND)p->hItemHandle, m_szHelpFile, HELP_WM_HELP, (ULONG_PTR)(LPVOID)p_helpids );    // 2006.10.10 ryoji MyWinHelpに変更に変更
00764         }
00765         return TRUE;
00766         /*NOTREACHED*/
00767         //break;
00768
00769     //Context Menu
00770     case WM_CONTEXTMENU:
00771         MyWinHelp( hwndDlg, m_szHelpFile, HELP_CONTEXTMENU, (ULONG_PTR)(LPVOID)p_helpids ); // 2006.10.10 ryoji MyWinHelpに変更に変更
00772         return TRUE;
00773
00774     }
00775     return FALSE;
00776 }
00777
00778 /* ダイアログデータの設定 正規表現キーワード */
00779 void CPropTypes::SetData_Regex( HWND hwndDlg )
00780 {
00781     HWND        hwndWork;
00782     int         i, j;
00783     LV_ITEM     lvi;
00784     DWORD       dwStyle;
00785
00786     /* ユーザーがエディット コントロールに入力できるテキストの長さを制限する */
00787     ::SendMessage( ::GetDlgItem( hwndDlg, IDC_EDIT_REGEX ), EM_LIMITTEXT, (WPARAM)(sizeof( m_Types.m_RegexKeywordArr[0].m_szKeyword ) - 1 ), (LPARAM)0 );
00788     ::SetDlgItemText( hwndDlg, IDC_EDIT_REGEX, "//k" ); /* 正規表現 */
00789
00790     /* 色種類のリスト */
00791     hwndWork = ::GetDlgItem( hwndDlg, IDC_COMBO_REGEX_COLOR );
00792     ::SendMessage( hwndWork, CB_RESETCONTENT, (WPARAM)0, (LPARAM)0 );  /* コンボボックスを空にする */
00793     for( i = 0; i < COLORIDX_LAST; i++ )
00794     {
00795         if ( 0 == (g_ColorAttributeArr[i].fAttribute & COLOR_ATTRIB_NO_BACK) )  // 2006.12.18 ryoji フラグ利用で簡素化
00796         {
00797             j = ::SendMessage( hwndWork, CB_ADDSTRING, (WPARAM)0, (LPARAM)(char*)m_Types.m_ColorInfoArr[i].m_szName );
00798             if( m_Types.m_ColorInfoArr[i].m_nColorIdx == COLORIDX_REGEX1 )
00799                 ::SendMessage( hwndWork, CB_SETCURSEL, (WPARAM)j, (LPARAM)0 );  /* コンボボックスのデフォルト選択 */
00800         }
00801     }
00802
00803     if( m_Types.m_bUseRegexKeyword )
00804         CheckDlgButton( hwndDlg, IDC_CHECK_REGEX, BST_CHECKED );
00805     else
00806         CheckDlgButton( hwndDlg, IDC_CHECK_REGEX, BST_UNCHECKED );
00807
00808     /* リスト */
00809     hwndWork = ::GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00810     ListView_DeleteAllItems(hwndWork);  /* リストを空にする */
00811
00812     /* 行選択 */
00813     dwStyle = (DWORD)::SendMessage( hwndWork, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0 );
00814     dwStyle |= LVS_EX_FULLROWSELECT;
00815     ::SendMessage( hwndWork, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle );
00816
00817     /* データ表示 */
00818     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00819     {
00820         if( m_Types.m_RegexKeywordArr[i].m_szKeyword[0] == '\0' ) break;
00821
00822         lvi.mask     = LVIF_TEXT | LVIF_PARAM;
00823         lvi.pszText  = m_Types.m_RegexKeywordArr[i].m_szKeyword;
00824         lvi.iItem    = i;
00825         lvi.iSubItem = 0;
00826         lvi.lParam   = 0; //m_Types.m_RegexKeywordArr[i].m_nColorIndex;
00827         ListView_InsertItem( hwndWork, &lvi );
00828         lvi.mask     = LVIF_TEXT;
00829         lvi.iItem    = i;
00830         lvi.iSubItem = 1;
00831         lvi.pszText  = m_Types.m_ColorInfoArr[m_Types.m_RegexKeywordArr[i].m_nColorIndex].m_szName;
00832         ListView_SetItem( hwndWork, &lvi );
00833     }
00834     ListView_SetItemState( hwndWork, 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED );
00835
00836     return;
00837 }
00838
00839 /* ダイアログデータの取得 正規表現キーワード */
00840 int CPropTypes::GetData_Regex( HWND hwndDlg )
00841 {
00842     HWND    hwndList;
00843     int nIndex, i, j;
00844     char    szKeyWord[256], szColorIndex[256];
00845
00846 //@@@ 2002.01.03 YAZAKI 最後に表示していたシートを正しく覚えていないバグ修正
00847 //  //自分のページ番号
00848 //  m_nPageNum = 3;
00849
00850     //使用する・使用しない
00851     if( IsDlgButtonChecked( hwndDlg, IDC_CHECK_REGEX ) )
00852         m_Types.m_bUseRegexKeyword = TRUE;
00853     else
00854         m_Types.m_bUseRegexKeyword = FALSE;
00855
00856     //リストに登録されている情報を配列に取り込む
00857     hwndList = GetDlgItem( hwndDlg, IDC_LIST_REGEX );
00858     nIndex = ListView_GetItemCount(hwndList);
00859     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00860     {
00861         if( i < nIndex )
00862         {
00863             szKeyWord[0]    = '\0';
00864             szColorIndex[0] = '\0';
00865             ListView_GetItemText(hwndList, i, 0, szKeyWord,    sizeof(szKeyWord)   );
00866             ListView_GetItemText(hwndList, i, 1, szColorIndex, sizeof(szColorIndex));
00867             strcpy(m_Types.m_RegexKeywordArr[i].m_szKeyword, szKeyWord);
00868             //色指定文字列を番号に変換する
00869             m_Types.m_RegexKeywordArr[i].m_nColorIndex = COLORIDX_REGEX1;
00870             for(j = 0; j < COLORIDX_LAST; j++)
00871             {
00872                 if(strcmp(m_Types.m_ColorInfoArr[j].m_szName, szColorIndex) == 0)
00873                 {
00874                     m_Types.m_RegexKeywordArr[i].m_nColorIndex = j;
00875                     break;
00876                 }
00877             }
00878         }
00879         else    //未登録部分はクリアする
00880         {
00881             m_Types.m_RegexKeywordArr[i].m_szKeyword[0] = '\0';
00882             m_Types.m_RegexKeywordArr[i].m_nColorIndex = COLORIDX_REGEX1;
00883         }
00884     }
00885
00886     //タイプ設定の変更があった
00887     m_Types.m_nRegexKeyMagicNumber++;
00888 //  m_Types.m_nRegexKeyMagicNumber = 0; //Not Compiled.
00889
00890     return TRUE;
00891 }
00892
00893 BOOL CPropTypes::RegexKakomiCheck(const char *s)
00894 {
00895     const char  *p;
00896     int length, i;
00897     static const char *kakomi[7 * 2] = {
00898         "/",  "/k",
00899         "m/", "/k",
00900         "m#", "#k",
00901         "/",  "/ki",
00902         "m/", "/ki",
00903         "m#", "#ki",
00904         NULL, NULL,
00905     };
00906
00907     length = strlen(s);
00908
00909     for(i = 0; kakomi[i] != NULL; i += 2)
00910     {
00911         //文字長を確かめる
00912         if( length > (int)strlen(kakomi[i]) + (int)strlen(kakomi[i+1]) )
00913         {
00914             //始まりを確かめる
00915             if( strncmp(kakomi[i], s, strlen(kakomi[i])) == 0 )
00916             {
00917                 //終わりを確かめる
00918                 p = &s[length - strlen(kakomi[i+1])];
00919                 if( strcmp(p, kakomi[i+1]) == 0 )
00920                 {
00921                     //正常
00922                     return TRUE;
00923                 }
00924             }
00925         }
00926     }
00927
00928     return FALSE;
00929 }
00930
00931 //@@@ 2001.11.17 add end MIK
00932 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRecent.cpp

CRecent.cpp

最近使ったリスト [詳細]

#include "stdafx.h"
#include "global.h"
#include "CShareData.h"
#include "CRecent.h"
#include <string.h>
#include "my_icmp.h"

CRecent.cppのインクルード依存関係図

ソースコードを見る。

説明

最近使ったリスト

お気に入りを含む最近使ったリストを管理する。

作者:
MIK
日付:
Apr. 05, 2003

Apr. 03, 2005

CRecent.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRecent.cpp ソースファイル

CRecent.cpp

説明を見る。
00001
00011 /*
00012     Copyright (C) 2003, MIK
00013     Copyright (C) 2005, MIK
00014
00015     This software is provided 'as-is', without any express or implied
00016     warranty. In no event will the authors be held liable for any damages
00017     arising from the use of this software.
00018
00019     Permission is granted to anyone to use this software for any purpose,
00020     including commercial applications, and to alter it and redistribute it
00021     freely, subject to the following restrictions:
00022
00023         1. The origin of this software must not be misrepresented;
00024            you must not claim that you wrote the original software.
00025            If you use this software in a product, an acknowledgment
00026            in the product documentation would be appreciated but is
00027            not required.
00028
00029         2. Altered source versions must be plainly marked as such,
00030            and must not be misrepresented as being the original software.
00031
00032         3. This notice may not be removed or altered from any source
00033            distribution.
00034 */
00035
00036
00037
00038 #include "stdafx.h"
00039 #include "global.h"
00040 #include "CShareData.h"
00041 #include "CRecent.h"
00042 #include <string.h>
00043 #include "my_icmp.h"
00044
00045 CRecent::CRecent()
00046 {
00047     //  初期化。
00048     m_pShareData = CShareData::getInstance()->GetShareData();
00049
00050     m_bCreate = false;
00051
00052     m_nArrayCount  = 0;
00053     m_nItemSize    = 0;
00054     m_nOffset      = 0;
00055     m_nCmpSize     = 0;
00056     m_nCmpType     = 0;
00057     m_puUserItemData     = NULL;
00058     m_pnUserItemCount    = NULL;
00059     m_pnUserViewCount    = NULL;
00060     m_pbUserItemFavorite = NULL;
00061 }
00062
00063 CRecent::~CRecent()
00064 {
00065     Terminate();
00066 }
00067
00068 /*
00069     初期化済みか調べる。
00070 */
00071 bool CRecent::IsAvailable( void )
00072 {
00073     if( ! m_bCreate ) return false;
00074
00075     if( NULL == m_puUserItemData
00076      || NULL == m_pnUserItemCount )
00077     {
00078         Terminate();
00079         return false;
00080     }
00081
00082     //データ破壊時のリカバリをやってみたりする
00083     if( *m_pnUserItemCount < 0             ) *m_pnUserItemCount = 0;
00084     if( *m_pnUserItemCount > m_nArrayCount ) *m_pnUserItemCount = m_nArrayCount;
00085
00086     if( m_pnUserViewCount )
00087     {
00088         if( *m_pnUserViewCount < 0             ) *m_pnUserViewCount = 0;
00089         if( *m_pnUserViewCount > m_nArrayCount ) *m_pnUserViewCount = m_nArrayCount;
00090     }
00091
00092     return true;
00093 }
00094
00095 /*
00096     初期生成処理
00097
00098     @param  pszItemArray    アイテム配列へのポインタ
00099     @param  pnItemCount     アイテム個数へのポインタ
00100     @param  pbItemFavorite  お気に入りへのポインタ(NULL許可)
00101     @param  nArrayCount     最大管理可能なアイテム数
00102     @param  *pnViewCount    表示個数(NULL許可)
00103     @param  nItemSize       ユーザデータのバイトサイズ
00104     @param  nOffset         比較位置
00105     @param  nCmpSize        比較サイズ(strn*cmp, mem*cmp で必須)
00106     @param  nCmpType        比較タイプ
00107
00108     @note
00109     nCmpType = strcmp, stricmp のときに nCmpSize = 0 を指定すると、AppendItem
00110     でのデータが文字列であると認識して strcpy をする。
00111     他の場合は memcpy で nItemSize 分をコピーする。
00112
00113     pnViewCount = NULL にすると、擬似的に nViewCount == nArrayCount になる。
00114 */
00115 bool CRecent::Create(
00116         char    *pszItemArray,  //アイテム配列へのポインタ
00117         int     *pnItemCount,   //アイテム個数へのポインタ
00118         bool    *pbItemFavorite,    //お気に入りへのポインタ
00119         int     nArrayCount,
00120         int     *pnViewCount,
00121         int     nItemSize,
00122         int     nOffset,
00123         int     nCmpSize,
00124         int     nCmpType
00125     )
00126 {
00127     Terminate();
00128
00129     //パラメータチェック
00130     if( NULL == pszItemArray ) return false;
00131     if( NULL == pnItemCount ) return false;
00132     //if( NULL == pnViewCount ) return false;
00133     //if( NULL == pbItemFavorite ) return false;
00134
00135     if( nArrayCount <= 0 ) return false;
00136     if( pnViewCount )
00137     {
00138         if( *pnViewCount < 0 || nArrayCount < *pnViewCount ) return false;
00139     }
00140     if( nItemSize <= 0 || nItemSize < nOffset ) return false;
00141     if( nCmpSize < 0 || nItemSize < nOffset + nCmpSize ) return false;
00142
00143     m_puUserItemData     = pszItemArray;
00144     m_pnUserItemCount    = pnItemCount;
00145     m_pnUserViewCount    = pnViewCount;
00146     m_pbUserItemFavorite = pbItemFavorite;
00147
00148     m_nArrayCount = nArrayCount;
00149     m_nItemSize   = nItemSize;
00150     m_nOffset     = nOffset;
00151     m_nCmpSize    = nCmpSize;
00152     m_nCmpType    = nCmpType;
00153
00154     m_bCreate = true;
00155
00156     //個別に操作されていたときのための対応
00157     UpdateView();
00158
00159     return true;
00160 }
00161
00162 /*
00163     終了処理
00164 */
00165 void CRecent::Terminate( void )
00166 {
00167     m_bCreate = false;
00168
00169     m_puUserItemData     = NULL;
00170     m_pnUserItemCount    = NULL;
00171     m_pnUserViewCount    = NULL;
00172     m_pbUserItemFavorite = NULL;
00173
00174     m_nArrayCount  = 0;
00175     m_nItemSize    = 0;
00176     m_nOffset      = 0;
00177     m_nCmpSize     = 0;
00178     m_nCmpType     = 0;
00179
00180     return;
00181 }
00182
00183 /*
00184     管理されているアイテムのうちの表示個数を変更する。
00185
00186     @note   お気に入りは可能な限り表示内に移動させる。
00187 */
00188 bool CRecent::ChangeViewCount( int nViewCount )
00189 {
00190     int i;
00191     int nIndex;
00192
00193     //範囲外ならエラー
00194     if( ! IsAvailable() ) return false;
00195     if( nViewCount < 0 || nViewCount > m_nArrayCount ) return false;
00196
00197     //表示個数を更新する。
00198     if( m_pnUserViewCount )
00199     {
00200         *m_pnUserViewCount = nViewCount;
00201     }
00202
00203     //範囲内にすべて収まっているので何もしなくてよい。
00204     if( nViewCount >= *m_pnUserItemCount ) return true;
00205
00206     //最も古いお気に入りを探す。
00207     i = GetOldestItem( *m_pnUserItemCount - 1, true );
00208     if( -1 == i ) return true;  //ないので何もしないで終了
00209
00210     //表示外アイテムを表示内に移動する。
00211     for( ; i >= nViewCount; i-- )
00212     {
00213         if( IsFavorite( i ) )
00214         {
00215             //カレント位置から上に通常アイテムを探す
00216             nIndex = GetOldestItem( i - 1, false );
00217             if( -1 == nIndex ) break;   //もう1個もない
00218
00219             //見つかったアイテムをカレント位置に移動する
00220             MoveItem( nIndex, i );
00221         }
00222     }
00223
00224     return true;
00225 }
00226
00227 /*
00228     リストを更新する。
00229 */
00230 bool CRecent::UpdateView( void )
00231 {
00232     int nViewCount;
00233
00234     //範囲外ならエラー
00235     if( ! IsAvailable() ) return false;
00236
00237     if( m_pnUserViewCount ) nViewCount = *m_pnUserViewCount;
00238     else                    nViewCount = m_nArrayCount;
00239
00240     return ChangeViewCount( nViewCount );
00241 }
00242
00243 /*
00244     お気に入り状態を設定する。
00245
00246     true    設定
00247     false   解除
00248 */
00249 bool CRecent::SetFavorite( int nIndex, bool bFavorite )
00250 {
00251     if( ! IsAvailable() ) return false;
00252     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return false;
00253     if( NULL == m_pbUserItemFavorite ) return false;
00254
00255     m_pbUserItemFavorite[nIndex] = bFavorite;
00256
00257     return true;
00258 }
00259
00260 /*
00261     すべてのお気に入り状態を解除する。
00262 */
00263 void CRecent::ResetAllFavorite( void )
00264 {
00265     int i;
00266
00267     if( ! IsAvailable() ) return;
00268
00269     for( i = 0; i < *m_pnUserItemCount; i++ )
00270     {
00271         (void)SetFavorite( i, false );
00272     }
00273
00274     return;
00275 }
00276
00277 /*
00278     お気に入り状態かどうか調べる。
00279
00280     true    お気に入り
00281     false   通常
00282 */
00283 bool CRecent::IsFavorite( int nIndex )
00284 {
00285     if( ! IsAvailable() ) return false;
00286     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return false;
00287     if( NULL == m_pbUserItemFavorite ) return false;
00288
00289     return m_pbUserItemFavorite[nIndex];
00290 }
00291
00292 /*
00293     アイテムリストからもっとも古い｛お気に入り・通常｝のアイテムを探す。
00294
00295     bFavorite=true  お気に入りの中から探す
00296     bFavorite=false 通常の中から探す
00297 */
00298 int CRecent::GetOldestItem( int nIndex, bool bFavorite )
00299 {
00300     int i;
00301
00302     if( ! IsAvailable() ) return -1;
00303     if( nIndex >= *m_pnUserItemCount ) nIndex = *m_pnUserItemCount - 1;
00304
00305     for( i = nIndex; i >= 0; i-- )
00306     {
00307         if( IsFavorite( i ) == bFavorite ) return i;
00308     }
00309
00310     return -1;
00311 }
00312
00313 /*
00314     アイテムを移動する。
00315 */
00316 bool CRecent::MoveItem( int nSrcIndex, int nDstIndex )
00317 {
00318     char    *pri;
00319     int i;
00320     bool    bFavorite;
00321
00322     if( ! IsAvailable() ) return false;
00323     if( nSrcIndex < 0 || nSrcIndex >= *m_pnUserItemCount ) return false;
00324     if( nDstIndex < 0 || nDstIndex >= *m_pnUserItemCount ) return false;
00325
00326     if( nSrcIndex == nDstIndex ) return true;
00327
00328     pri = new char[ m_nItemSize ];
00329     if( NULL == pri ) return false;
00330
00331     //移動する情報を退避
00332     memcpy( pri, GetArrayOffset( nSrcIndex ), m_nItemSize );
00333     bFavorite = IsFavorite( nSrcIndex );
00334
00335     if( nSrcIndex < nDstIndex )
00336     {
00337         for( i = nSrcIndex; i < nDstIndex; i++ )
00338         {
00339             CopyItem( i + 1, i );
00340         }
00341     }
00342     else
00343     {
00344         for( i = nSrcIndex; i > nDstIndex; i-- )
00345         {
00346             CopyItem( i - 1, i );
00347         }
00348     }
00349
00350     //新しい位置に格納
00351     memcpy( GetArrayOffset( nDstIndex ), pri, m_nItemSize );
00352     (void)SetFavorite( nDstIndex, bFavorite );
00353
00354     delete [] pri;
00355
00356     return true;
00357 }
00358
00359 bool CRecent::CopyItem( int nSrcIndex, int nDstIndex )
00360 {
00361     if( ! IsAvailable() ) return false;
00362     if( nSrcIndex < 0 || nSrcIndex >= m_nArrayCount ) return false;
00363     if( nDstIndex < 0 || nDstIndex >= m_nArrayCount ) return false;
00364
00365     if( nSrcIndex == nDstIndex ) return true;
00366
00367     memcpy( GetArrayOffset( nDstIndex ), GetArrayOffset( nSrcIndex ), m_nItemSize );
00368
00369     //(void)SetFavorite( nDstIndex, IsFavorite( nSrcIndex ) );
00370     //内部処理しないとだめ。
00371     if( m_pbUserItemFavorite ) m_pbUserItemFavorite[nDstIndex] = m_pbUserItemFavorite[nSrcIndex];
00372
00373     return true;
00374 }
00375
00376 /*
00377     アイテムをゼロクリアする。
00378 */
00379 void CRecent::ZeroItem( int nIndex )
00380 {
00381     if( ! IsAvailable() ) return;
00382     if( nIndex < 0 || nIndex >= m_nArrayCount ) return;
00383
00384     memset( GetArrayOffset( nIndex ), 0, m_nItemSize );
00385
00386     //(void)SetFavorite( nIndex, false );
00387     //内部処理しないとだめ。
00388     if( m_pbUserItemFavorite ) m_pbUserItemFavorite[nIndex] = false;
00389
00390     return;
00391 }
00392
00393 /*
00394     アイテムを削除する。
00395 */
00396 bool CRecent::DeleteItem( int nIndex )
00397 {
00398     int i;
00399
00400     if( ! IsAvailable() ) return false;
00401     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return false;
00402
00403     ZeroItem( nIndex );
00404
00405     //以降のアイテムを前に詰める。
00406     for( i = nIndex; i < *m_pnUserItemCount - 1; i++ )
00407     {
00408         CopyItem( i + 1, i );
00409     }
00410     ZeroItem( i );
00411
00412     *m_pnUserItemCount -= 1;
00413
00414     return true;
00415 }
00416
00417 /*
00418     すべてのアイテムを削除する。
00419
00420     @note   ゼロクリアを可能とするため、すべてが対象になる。
00421 */
00422 void CRecent::DeleteAllItem( void )
00423 {
00424     int i;
00425
00426     if( ! IsAvailable() ) return;
00427
00428     for( i = 0; i < m_nArrayCount; i++ )
00429     {
00430         ZeroItem( i );
00431     }
00432
00433     *m_pnUserItemCount = 0;
00434
00435     return;
00436 }
00437
00438 /*
00439     アイテムを取得する。
00440
00441     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00442 */
00443 const char *CRecent::GetItem( int nIndex )
00444 {
00445     if( ! IsAvailable() ) return NULL;
00446     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return NULL;
00447
00448     return GetArrayOffset( nIndex );
00449 }
00450
00451 /*
00452     アイテムの比較要素を取得する。
00453
00454     @note   取得後のポインタはユーザ管理の構造体にキャストして参照してください。
00455 */
00456 const char *CRecent::GetDataOfItem( int nIndex )
00457 {
00458     const char  *p;
00459
00460     if( ! IsAvailable() ) return NULL;
00461     if( nIndex < 0 || nIndex >= *m_pnUserItemCount ) return NULL;
00462
00463     p = GetItem( nIndex );
00464     if( NULL == p ) return NULL;
00465
00466     return &p[ m_nOffset ];
00467 }
00468
00469 /*
00470     アイテムを先頭に追加する。
00471
00472     @note   すでに登録済みの場合は先頭に移動する。
00473     @note   いっぱいのときは最古のアイテムを削除する。
00474     @note   お気に入りは削除されない。
00475 */
00476 bool CRecent::AppendItem( const char *pszItemData )
00477 {
00478     int     nIndex;
00479     int     i;
00480     char    *p;
00481
00482     if( ! IsAvailable() ) return false;
00483     if( NULL == pszItemData ) return false;
00484
00485     //登録済みか調べる。
00486     nIndex = FindItem( &pszItemData[ m_nOffset ] );
00487     if( nIndex >= 0 )
00488     {
00489         //最新の情報に更新する。
00490         if( m_nCmpSize > 0 )
00491             memcpy( GetArrayOffset( nIndex ), pszItemData, m_nItemSize );
00492         else    //文字列として受け取る。
00493         {
00494             p = GetArrayOffset( nIndex );
00495             strncpy( p, pszItemData, m_nItemSize );
00496             p[ m_nItemSize - 1 ] = '\0';
00497
00498         }
00499
00500         //先頭に持ってくる。
00501         (void)MoveItem( nIndex, 0 );
00502         goto reconfigure;
00503     }
00504
00505     //いっぱいのときは最古の通常アイテムを削除する。
00506     if( m_nArrayCount <= *m_pnUserItemCount )
00507     {
00508         nIndex = GetOldestItem( *m_pnUserItemCount - 1, false );
00509         if( -1 == nIndex )
00510         {
00511             return false;
00512         }
00513
00514         (void)DeleteItem( nIndex );
00515     }
00516
00517     for( i = *m_pnUserItemCount; i > 0; i-- )
00518     {
00519         CopyItem( i - 1, i );
00520     }
00521
00522     if( m_nCmpSize > 0 )
00523         memcpy( GetArrayOffset( 0 ), pszItemData, m_nItemSize );
00524     else    //文字列として受け取る。
00525     {
00526         p = GetArrayOffset( 0 );
00527         strncpy( p, pszItemData, m_nItemSize );
00528         p[ m_nItemSize - 1 ] = '\0';
00529     }
00530
00531     //(void)SetFavorite( 0, true );
00532     //内部処理しないとだめ。
00533     if( m_pbUserItemFavorite ) m_pbUserItemFavorite[0] = false;
00534
00535     *m_pnUserItemCount += 1;
00536
00537
00538 reconfigure:
00539     //お気に入りを表示内に移動する。
00540     if( m_pnUserViewCount )
00541     {
00542         (void)ChangeViewCount( *m_pnUserViewCount );
00543     }
00544     return true;
00545 }
00546
00547 /*
00548     アイテムを検索する。
00549 */
00550 int CRecent::FindItem( const char *pszItemData )
00551 {
00552     int i;
00553     const char  *p, *q;
00554
00555     if( ! IsAvailable() ) return -1;
00556     if( NULL == pszItemData ) return -1;
00557
00558     //p = &pszItemData[m_nOffset];
00559     p = pszItemData;
00560
00561     for( i = 0; i < *m_pnUserItemCount; i++ )
00562     {
00563         q = GetArrayOffset( i ) + m_nOffset;
00564
00565         switch( m_nCmpType )
00566         {
00567         case RECENT_CMP_STRICMP:    //stricmp
00568             if( stricmp( p, q ) == 0 ) return i;
00569             break;
00570
00571         case RECENT_CMP_STRNCMP:    //strncmp
00572             if( strncmp( p, q, m_nCmpSize ) == 0 ) return i;
00573             break;
00574
00575         case RECENT_CMP_STRNICMP:   //strnicmp
00576             if( strnicmp( p, q, m_nCmpSize ) == 0 ) return i;
00577             break;
00578
00579         case RECENT_CMP_MEMCMP:     //memcmp
00580             if( memcmp( p, q, m_nCmpSize ) == 0 ) return i;
00581             break;
00582
00583         case RECENT_CMP_MEMICMP:    //memicmp
00584             if( memicmp( p, q, m_nCmpSize ) == 0 ) return i;
00585             break;
00586
00587         case RECENT_CMP_STRCMP:     //strcmp
00588         default:
00589             if( strcmp( p, q ) == 0 ) return i;
00590             break;
00591         }
00592     }
00593
00594     return -1;
00595 }
00596
00597 bool CRecent::EasyCreate( int nRecentType )
00598 {
00599     switch( nRecentType )
00600     {
00601     case RECENT_FOR_FILE:   //ファイル
00602         return Create(
00603             (char*)m_pShareData->m_fiMRUArr,
00604             &m_pShareData->m_nMRUArrNum,
00605             m_pShareData->m_bMRUArrFavorite,
00606             MAX_MRU,
00607             &(m_pShareData->m_Common.m_nMRUArrNum_MAX),
00608             sizeof( FileInfo ),
00609             (int)(&((FileInfo*)0)->m_szPath[0]),
00610             sizeof( ((FileInfo*)0)->m_szPath ), //_MAX_PATH
00611             RECENT_CMP_STRICMP
00612         );
00613
00614     case RECENT_FOR_FOLDER: //フォルダ
00615         return Create(
00616             (char*)m_pShareData->m_szOPENFOLDERArr,
00617             &m_pShareData->m_nOPENFOLDERArrNum,
00618             m_pShareData->m_bOPENFOLDERArrFavorite,
00619             MAX_OPENFOLDER,
00620             &(m_pShareData->m_Common.m_nOPENFOLDERArrNum_MAX),
00621             sizeof( m_pShareData->m_szOPENFOLDERArr[0] ),   //_MAX_PATH
00622             0,
00623             0,  //AppendItemのデータは文字列
00624             RECENT_CMP_STRICMP
00625         );
00626
00627     case RECENT_FOR_SEARCH: //検索
00628         return Create(
00629             (char*)m_pShareData->m_szSEARCHKEYArr,
00630             &m_pShareData->m_nSEARCHKEYArrNum,
00631             NULL /*m_pShareData->m_bSEARCHKEYArrFavorite*/,
00632             MAX_SEARCHKEY,
00633             NULL,
00634             sizeof( m_pShareData->m_szSEARCHKEYArr[0] ),    //_MAX_PATH
00635             0,
00636             0,  //AppendItemのデータは文字列
00637             RECENT_CMP_STRCMP
00638         );
00639
00640     case RECENT_FOR_REPLACE:    //置換
00641         return Create(
00642             (char*)m_pShareData->m_szREPLACEKEYArr,
00643             &m_pShareData->m_nREPLACEKEYArrNum,
00644             NULL /*m_pShareData->m_bREPLACEKEYArrFavorite*/,
00645             MAX_REPLACEKEY,
00646             NULL,
00647             sizeof( m_pShareData->m_szREPLACEKEYArr[0] ),   //_MAX_PATH
00648             0,
00649             0,  //AppendItemのデータは文字列
00650             RECENT_CMP_STRCMP
00651         );
00652
00653     case RECENT_FOR_GREP_FILE:  //GREPファイル
00654         return Create(
00655             (char*)m_pShareData->m_szGREPFILEArr,
00656             &m_pShareData->m_nGREPFILEArrNum,
00657             NULL /*m_pShareData->m_bGREPFILEArrFavorite*/,
00658             MAX_GREPFILE,
00659             NULL,
00660             sizeof( m_pShareData->m_szGREPFILEArr[0] ), //_MAX_PATH
00661             0,
00662             0,  //AppendItemのデータは文字列
00663             RECENT_CMP_STRICMP
00664         );
00665
00666     case RECENT_FOR_GREP_FOLDER:    //GREPフォルダ
00667         return Create(
00668             (char*)m_pShareData->m_szGREPFOLDERArr,
00669             &m_pShareData->m_nGREPFOLDERArrNum,
00670             NULL /*m_pShareData->m_bGREPFOLDERArrFavorite*/,
00671             MAX_GREPFOLDER,
00672             NULL,
00673             sizeof( m_pShareData->m_szGREPFOLDERArr[0] ),   //_MAX_PATH
00674             0,
00675             0,  //AppendItemのデータは文字列
00676             RECENT_CMP_STRICMP
00677         );
00678
00679     case RECENT_FOR_CMD:    //コマンド
00680         return Create(
00681             (char*)m_pShareData->m_szCmdArr,
00682             &m_pShareData->m_nCmdArrNum,
00683             NULL /*m_pShareData->m_bCmdArrFavorite*/,
00684             MAX_CMDARR,
00685             NULL,
00686             sizeof( m_pShareData->m_szCmdArr[0] ),  //MAX_CMDLEN
00687             0,
00688             0,  //AppendItemのデータは文字列
00689             RECENT_CMP_STRCMP
00690         );
00691
00692     //@@@ 2003.06.28 MIK 追加
00693     case RECENT_FOR_EDITNODE:   //ウインドウリスト
00694         return Create(
00695             (char*)m_pShareData->m_pEditArr,
00696             &m_pShareData->m_nEditArrNum,
00697             NULL,
00698             MAX_EDITWINDOWS,
00699             NULL,
00700             sizeof( m_pShareData->m_pEditArr[0] ),
00701             (int)(&((EditNode*)0)->m_hWnd),
00702             sizeof( ((EditNode*)0)->m_hWnd ),   //sizeof(HWND)
00703             RECENT_CMP_MEMCMP
00704         );
00705
00706     case RECENT_FOR_TAGJUMP_KEYWORD:    //タグジャンプキーワード 2005.04.03 MIK
00707         return Create(
00708             (char*)m_pShareData->m_szTagJumpKeywordArr,
00709             &m_pShareData->m_nTagJumpKeywordArrNum,
00710             NULL /*m_pShareData->m_bTagJumpKeywordArrFavorite*/,
00711             MAX_TAGJUMP_KEYWORD,
00712             NULL,
00713             sizeof( m_pShareData->m_szTagJumpKeywordArr[0] ),   //_MAX_PATH
00714             0,
00715             0,  //AppendItemのデータは文字列
00716             RECENT_CMP_STRCMP
00717         );
00718
00719     default:
00720         return false;
00721     }
00722 }
00723
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRecent.h

CRecent.h

最近使ったリスト [詳細]

#include "global.h"

CRecent.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CRecent

列挙型

enum enumRecentCmp {
RECENT_CMP_STRCMP = 0, RECENT_CMP_STRICMP = 1, RECENT_CMP_STRNCMP = 2, RECENT_CMP_STRNICMP = 3,
RECENT_CMP_MEMCMP = 4, RECENT_CMP_MEMICMP = 5
}
enum enumRecentFor {
RECENT_FOR_FILE = 0, RECENT_FOR_FOLDER = 1, RECENT_FOR_SEARCH = 2, RECENT_FOR_REPLACE = 3,
RECENT_FOR_GREP_FILE = 4, RECENT_FOR_GREP_FOLDER = 5, RECENT_FOR_CMD = 6, RECENT_FOR_EDITNODE = 7,
RECENT_FOR_TAGJUMP_KEYWORD = 8
}

説明

最近使ったリスト

お気に入りを含む最近使ったリストを管理する。

作者:
MIK
日付:
Apr. 05, 2003

Apr. 03, 2005

CRecent.h で定義されています。

列挙型

enum enumRecentCmp

列挙型の値:
RECENT_CMP_STRCMP
RECENT_CMP_STRICMP
RECENT_CMP_STRNCMP
RECENT_CMP_STRNICMP
RECENT_CMP_MEMCMP
RECENT_CMP_MEMICMP

CRecent.h の 42 行で定義されています。

enum enumRecentFor

列挙型の値:
RECENT_FOR_FILE
RECENT_FOR_FOLDER
RECENT_FOR_SEARCH
RECENT_FOR_REPLACE
RECENT_FOR_GREP_FILE
RECENT_FOR_GREP_FOLDER
RECENT_FOR_CMD
RECENT_FOR_EDITNODE
RECENT_FOR_TAGJUMP_KEYWORD

CRecent.h の 51 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRecent.h ソースファイル

CRecent.h

説明を見る。
00001
00010 /*
00011     Copyright (C) 2003, MIK
00012     Copyright (C) 2005, MIK
00013
00014     This software is provided 'as-is', without any express or implied
00015     warranty. In no event will the authors be held liable for any damages
00016     arising from the use of this software.
00017
00018     Permission is granted to anyone to use this software for any purpose,
00019     including commercial applications, and to alter it and redistribute it
00020     freely, subject to the following restrictions:
00021
00022         1. The origin of this software must not be misrepresented;
00023            you must not claim that you wrote the original software.
00024            If you use this software in a product, an acknowledgment
00025            in the product documentation would be appreciated but is
00026            not required.
00027
00028         2. Altered source versions must be plainly marked as such,
00029            and must not be misrepresented as being the original software.
00030
00031         3. This notice may not be removed or altered from any source
00032            distribution.
00033 */
00034
00035 #ifndef _CRECENT_H_
00036 #define _CRECENT_H_
00037
00038 #include "global.h"
00039
00040
00041
00042 typedef enum {
00043     RECENT_CMP_STRCMP   = 0,
00044     RECENT_CMP_STRICMP  = 1,
00045     RECENT_CMP_STRNCMP  = 2,
00046     RECENT_CMP_STRNICMP = 3,
00047     RECENT_CMP_MEMCMP   = 4,
00048     RECENT_CMP_MEMICMP  = 5
00049 } enumRecentCmp;
00050
00051 typedef enum {
00052     RECENT_FOR_FILE        = 0,
00053     RECENT_FOR_FOLDER      = 1,
00054     RECENT_FOR_SEARCH      = 2,
00055     RECENT_FOR_REPLACE     = 3,
00056     RECENT_FOR_GREP_FILE   = 4,
00057     RECENT_FOR_GREP_FOLDER = 5,
00058     RECENT_FOR_CMD         = 6,
00059     RECENT_FOR_EDITNODE    = 7, //ウインドウリスト  @@@ 2003.05.31 MIK
00060     RECENT_FOR_TAGJUMP_KEYWORD = 8  //タグジャンプキーワード @@@ 2005.04.03 MIK
00061 } enumRecentFor;    //型名追加  //@@@ 2003.05.12 MIK
00062
00063
00064
00065 class SAKURA_CORE_API CRecent {
00066
00067 public:
00068     CRecent();
00069     ~CRecent();
00070
00071     bool IsAvailable( void );
00072
00073     //初期処理
00074     bool Create(
00075             char    *pszItemArray,  //アイテム配列へのポインタ
00076             int     *pnItemCount,   //アイテム個数へのポインタ
00077             bool    *pbItemFavorite,    //お気に入りへのポインタ
00078             int     nArrayCount,
00079             int     *nViewCount,
00080             int     nItemSize,
00081             int     nOffset,
00082             int     nCmpSize,
00083             int     nCmpType
00084         );
00085
00086     bool EasyCreate( int nRecentType );
00087
00088     void Terminate( void );
00089
00090     bool ChangeViewCount( int nViewCount ); //表示数の変更
00091     bool UpdateView( void );
00092
00093     //アイテム制御系
00094     bool AppendItem( const char *pszData ); //アイテムを先頭に追加
00095     const char *GetItem( int nIndex );      //アイテムを取得
00096     const char *GetDataOfItem( int nIndex );    //アイテムの比較要素を取得
00097     bool DeleteItem( int nIndex );          //アイテムをクリア
00098     bool DeleteItem( const char *pszItemData ) { return DeleteItem( FindItem( pszItemData ) ); }
00099     void DeleteAllItem( void );             //アイテムをすべてクリア
00100     int FindItem( const char *pszItemData );
00101     bool MoveItem( int nSrcIndex, int nDstIndex );  //アイテムを移動
00102
00103     //お気に入り制御系
00104     bool SetFavorite( int nIndex, bool bFavorite ); //お気に入りに設定
00105     bool SetFavorite( int nIndex ) { return SetFavorite( nIndex, true ); }  //お気に入りに設定
00106     bool ResetFavorite( int nIndex ) { return SetFavorite( nIndex, false ); }   //お気に入りを解除
00107     void ResetAllFavorite( void );          //お気に入りをすべて解除
00108     bool IsFavorite( int nIndex );          //お気に入りか調べる
00109
00110     //プロパティ取得系
00111     int GetArrayCount( void ) { return m_nArrayCount; } //最大要素数
00112     int GetItemCount( void ) { return ( IsAvailable() ? *m_pnUserItemCount : 0); }  //登録アイテム数
00113     int GetViewCount( void ) { return ( IsAvailable() ? (m_pnUserViewCount ? *m_pnUserViewCount : m_nArrayCount) : 0); }    //表示数
00114     //int GetItemSize( void ) { return m_nItemSize; }       //アイテムサイズ
00115     //int GetCmpType( void ) { return m_nCmpType; }     //比較タイプ
00116     int GetOffset( void ) { return m_nOffset; }     //比較位置
00117     //int GetCmpSize( void ) { return m_nCmpSize; }     //比較サイズ
00118
00119
00120 protected:
00121     //  共有メモリアクセス用。
00122     struct DLLSHAREDATA*    m_pShareData;       //  共有メモリを参照するよ。
00123
00124
00125 private:
00126     bool    m_bCreate;      //Create済みか
00127
00128     int     m_nArrayCount;  //配列個数
00129     //int       m_nItemCount;   //有効個数(実際にデータが入っている個数) → *m_pnUserItemCount
00130     //int       m_nViewCount;   //表示個数
00131     int     m_nItemSize;    //データサイズ
00132     int     m_nCmpType;     //比較タイプ(0=strcmp,1=stricmp)
00133     int     m_nOffset;      //比較位置
00134     int     m_nCmpSize;     //比較サイズ
00135
00136     char    *m_puUserItemData;  //アイテムデータ
00137     int     *m_pnUserItemCount;
00138     bool    *m_pbUserItemFavorite;
00139     int     *m_pnUserViewCount;
00140
00141     void ZeroItem( int nIndex );    //アイテムをゼロクリアする
00142     int GetOldestItem( int nIndex, bool bFavorite );    //最古のアイテムを探す
00143     char *GetArrayOffset( int nIndex ) { return m_puUserItemData + (nIndex * m_nItemSize); }
00144     bool CopyItem( int nSrcIndex, int nDstIndex );
00145 };
00146
00147 #endif  //_CRECENT_H_
00148
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRegexKeyword.cpp

CRegexKeyword.cpp

CRegexKeyword Library [詳細]

#include "stdafx.h"
#include "global.h"
#include "CRegexKeyword.h"
#include "CBregexp.h"

CRegexKeyword.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define MYDBGMSG(a)

説明

CRegexKeyword Library

正規表現キーワードを扱う。 BREGEXP.DLLを利用する。

作者:
MIK
日付:
Nov. 17, 2001

CRegexKeyword.cpp で定義されています。

マクロ定義

#define MYDBGMSG ( a )

CRegexKeyword.cpp の 35 行で定義されています。

参照元 CRegexKeyword::CRegexKeyword()・CRegexKeyword::RegexIsKeyword()・CRegexKeyword::RegexKeyCompile()・CRegexKeyword::RegexKeyInit()・CRegexKeyword::RegexKeyLineStart()・CRegexKeyword::RegexKeySetTypes()・CRegexKeyword::~CRegexKeyword().

Sakura-Editorに対してSat Oct 27 02:22:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRegexKeyword.cpp ソースファイル

CRegexKeyword.cpp

説明を見る。
00001
00010 /*
00011     Copyright (C) 2001, MIK
00012     Copyright (C) 2002, YAZAKI
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 //@@@ 2001.11.17 add start MIK
00019
00020 #include "stdafx.h"
00021 #include "global.h"
00022 #include "CRegexKeyword.h"
00023 #include "CBregexp.h"
00024
00025 #if 0
00026 #include <stdio.h>
00027 #define MYDBGMSG(s) \
00028 {\
00029     FILE    *fp;\
00030     fp = fopen("debug.log", "a");\
00031     fprintf(fp, "%08x: %s  BMatch(%d)=%d, Use=%d, Idx=%d\n", &m_pTypes, s, &BMatch, BMatch, m_bUseRegexKeyword, m_nTypeIndex);\
00032     fclose(fp);\
00033 }
00034 #else
00035 #define MYDBGMSG(a)
00036 #endif
00037
00039
00046 CRegexKeyword::CRegexKeyword(LPCTSTR regexp_dll )
00047 {
00048     Init( regexp_dll ); // 2007.08.12 genta 引数追加
00049     MYDBGMSG("CRegexKeyword")
00050
00051     m_pTypes    = NULL;
00052     m_nTypeIndex = -1;
00053
00054     RegexKeyInit();
00055 }
00056
00058
00062 CRegexKeyword::~CRegexKeyword()
00063 {
00064     int i;
00065
00066     MYDBGMSG("~CRegexKeyword")
00067     //コンパイル済みのバッファを解放する。
00068     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00069     {
00070         if( m_sInfo[i].pBregexp && IsAvailable() )
00071             BRegfree(m_sInfo[i].pBregexp);
00072         m_sInfo[i].pBregexp = NULL;
00073     }
00074
00075     RegexKeyInit();
00076
00077     m_nTypeIndex = -1;
00078     m_pTypes     = NULL;
00079 //  m_pShareData = NULL;
00080 }
00081
00083
00089 BOOL CRegexKeyword::RegexKeyInit( void )
00090 {
00091     int i;
00092
00093     MYDBGMSG("RegexKeyInit")
00094     m_nTypeIndex = -1;
00095     m_nCompiledMagicNumber = 0;
00096     m_bUseRegexKeyword = FALSE;
00097     m_nRegexKeyCount = 0;
00098     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00099     {
00100         m_sInfo[i].pBregexp = NULL;
00101 #ifdef USE_PARENT
00102 #else
00103         m_sInfo[i].sRegexKey.m_szKeyword[0] = '\0';
00104         m_sInfo[i].sRegexKey.m_nColorIndex = COLORIDX_REGEX1;
00105 #endif
00106     }
00107
00108     return TRUE;
00109 }
00110
00112
00123 BOOL CRegexKeyword::RegexKeySetTypes( Types *pTypesPtr )
00124 {
00125     MYDBGMSG("RegexKeySetTypes")
00126     if( pTypesPtr == NULL )
00127     {
00128         m_pTypes = NULL;
00129         m_bUseRegexKeyword = FALSE;
00130         return FALSE;
00131     }
00132
00133     if( pTypesPtr->m_bUseRegexKeyword == FALSE )
00134     {
00135         //OFFになったのにまだONならOFFにする。
00136         if( m_bUseRegexKeyword )
00137         {
00138             m_pTypes = NULL;
00139             m_bUseRegexKeyword = FALSE;
00140         }
00141         return FALSE;
00142     }
00143
00144     if( m_pTypes               == pTypesPtr
00145      && m_nCompiledMagicNumber == pTypesPtr->m_nRegexKeyMagicNumber
00146     /* && m_bUseRegexKeyword     == pTypesPtr->m_bUseRegexKeyword */ )
00147     {
00148         return TRUE;
00149     }
00150
00151     m_pTypes = pTypesPtr;
00152
00153     RegexKeyCompile();
00154
00155     return TRUE;
00156 }
00157
00159
00170 BOOL CRegexKeyword::RegexKeyCompile( void )
00171 {
00172     int i;
00173     int matched;
00174     static const char dummy[2] = "\0";
00175     struct RegexKeywordInfo *rp;
00176
00177     MYDBGMSG("RegexKeyCompile")
00178     //コンパイル済みのバッファを解放する。
00179     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00180     {
00181         if( m_sInfo[i].pBregexp && IsAvailable() )
00182             BRegfree(m_sInfo[i].pBregexp);
00183         m_sInfo[i].pBregexp = NULL;
00184     }
00185
00186     //コンパイルパターンを内部変数に移す。
00187     m_nRegexKeyCount = 0;
00188     for(i = 0; i < MAX_REGEX_KEYWORD; i++)
00189     {
00190         if( m_pTypes->m_RegexKeywordArr[i].m_szKeyword[0] == '\0' ) break;
00191 #ifdef USE_PARENT
00192 #else
00193         strcpy(m_sInfo[i].sRegexKey.m_szKeyword, m_pTypes->m_RegexKeywordArr[i].m_szKeyword);
00194         m_sInfo[i].sRegexKey.m_nColorIndex = m_pTypes->m_RegexKeywordArr[i].m_nColorIndex;
00195 #endif
00196         m_nRegexKeyCount++;
00197     }
00198
00199     m_nTypeIndex = m_pTypes->m_nIdx;
00200     m_nCompiledMagicNumber = m_pTypes->m_nRegexKeyMagicNumber - 1;  //Not Compiled.
00201     m_bUseRegexKeyword  = m_pTypes->m_bUseRegexKeyword;
00202     if( m_bUseRegexKeyword == 0 ) return FALSE;
00203
00204     if( ! IsAvailable() )
00205     {
00206         m_bUseRegexKeyword = 0;
00207         return FALSE;
00208     }
00209
00210     //パターンをコンパイルする。
00211     for(i = 0; i < m_nRegexKeyCount; i++)
00212     {
00213 #ifdef USE_PARENT
00214         rp = &m_pTypes->m_RegexKeywordArr[i];
00215 #else
00216         rp = &m_sInfo[i].sRegexKey;
00217 #endif
00218
00219         if( RegexKeyCheckSyntax( rp->m_szKeyword ) == TRUE )
00220         {
00221             m_szMsg[0] = '\0';
00222             matched = BMatch(rp->m_szKeyword, dummy, dummy+1, &m_sInfo[i].pBregexp, m_szMsg);
00223
00224             if( m_szMsg[0] == '\0' )    //エラーがないかチェックする
00225             {
00226                 //先頭以外は検索しなくてよい
00227                 if( strncmp( RK_HEAD_STR1, rp->m_szKeyword, RK_HEAD_STR1_LEN ) == 0
00228                  || strncmp( RK_HEAD_STR2, rp->m_szKeyword, RK_HEAD_STR2_LEN ) == 0
00229                  || strncmp( RK_HEAD_STR3, rp->m_szKeyword, RK_HEAD_STR3_LEN ) == 0
00230                 /* || strncmp( RK_HEAD_STR4, rp->m_szKeyword, RK_HEAD_STR4_LEN ) == 0 */
00231                 )
00232                 {
00233                     m_sInfo[i].nHead = 1;
00234                 }
00235                 else
00236                 {
00237                     m_sInfo[i].nHead = 0;
00238                 }
00239
00240                 if( COLORIDX_REGEX1  <= rp->m_nColorIndex
00241                  && COLORIDX_REGEX10 >= rp->m_nColorIndex )
00242                 {
00243                     //色指定でチェックが入ってなければ検索しなくてもよい
00244                     if( m_pTypes->m_ColorInfoArr[rp->m_nColorIndex].m_bDisp )
00245                     {
00246                         m_sInfo[i].nFlag = RK_EMPTY;
00247                     }
00248                     else
00249                     {
00250                         //正規表現では色指定のチェックを見る。
00251                         m_sInfo[i].nFlag = RK_NOMATCH;
00252                     }
00253                 }
00254                 else
00255                 {
00256                     //正規表現以外では、色指定チェックは見ない。
00257                     //例えば、半角数値は正規表現を使い、基本機能を使わないという指定もあり得るため
00258                     m_sInfo[i].nFlag = RK_EMPTY;
00259                 }
00260             }
00261             else
00262             {
00263                 //コンパイルエラーなので検索対象からはずす
00264                 m_sInfo[i].nFlag = RK_NOMATCH;
00265             }
00266         }
00267         else
00268         {
00269             //書式エラーなので検索対象からはずす
00270             m_sInfo[i].nFlag = RK_NOMATCH;
00271         }
00272
00273     }
00274
00275     m_nCompiledMagicNumber = m_pTypes->m_nRegexKeyMagicNumber;  //Compiled.
00276
00277     return TRUE;
00278 }
00279
00281
00291 BOOL CRegexKeyword::RegexKeyLineStart( void )
00292 {
00293     int i;
00294
00295     MYDBGMSG("RegexKeyLineStart")
00296
00297     //動作に必要なチェックをする。
00298     if( ( m_bUseRegexKeyword == FALSE )
00299      || ( ! IsAvailable() )
00300      || ( m_pTypes == NULL ) )
00301     {
00302         return FALSE;
00303     }
00304
00305 #if 0   //RegexKeySetTypesで設定されているはずなので廃止
00306     //情報不一致ならマスタから取得してコンパイルする。
00307     if( m_nCompiledMagicNumber != m_pTypes->m_nRegexKeyMagicNumber
00308      || m_nTypeIndex           != m_pTypes->m_nIdx )
00309     {
00310         RegexKeyCompile();
00311     }
00312 #endif
00313
00314     //検索開始のためにオフセット情報等をクリアする。
00315     for(i = 0; i < m_nRegexKeyCount; i++)
00316     {
00317         m_sInfo[i].nOffset = -1;
00318         //m_sInfo[i].nMatch  = RK_EMPTY;
00319         m_sInfo[i].nMatch  = m_sInfo[i].nFlag;
00320         m_sInfo[i].nStatus = RK_EMPTY;
00321     }
00322
00323     return TRUE;
00324 }
00325
00327
00342 BOOL CRegexKeyword::RegexIsKeyword( const char *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor )
00343 {
00344     int i, matched;
00345
00346     MYDBGMSG("RegexIsKeyword")
00347
00348     //動作に必要なチェックをする。
00349     if( ( m_bUseRegexKeyword == FALSE )
00350      || ( ! IsAvailable() )
00351 #ifdef USE_PARENT
00352      || ( m_pTypes == NULL )
00353 #endif
00354      /* || ( pLine == NULL ) */ )
00355     {
00356         return FALSE;
00357     }
00358
00359     for(i = 0; i < m_nRegexKeyCount; i++)
00360     {
00361         if( m_sInfo[i].nMatch != RK_NOMATCH )  /* この行にキーワードがないと分かっていない */
00362         {
00363             if( m_sInfo[i].nOffset == nPos )  /* 以前検索した結果に一致する */
00364             {
00365                 *nMatchLen   = m_sInfo[i].nLength;
00366 #ifdef USE_PARENT
00367                 *nMatchColor = m_pTypes->m_RegexKeywordArr[i].m_nColorIndex;
00368 #else
00369                 *nMatchColor = m_sInfo[i].sRegexKey.m_nColorIndex;
00370 #endif
00371                 return TRUE;  /* マッチした */
00372             }
00373
00374             /* 以前の結果はもう古いので再検索する */
00375             if( m_sInfo[i].nOffset < nPos )
00376             {
00377 #ifdef USE_PARENT
00378                 matched = BMatch(m_pTypes->m_RegexKeywordArr[i].m_szKeyword, pLine+nPos, pLine+nLineLen,
00379                     &m_sInfo[i].pBregexp, m_szMsg);
00380 #else
00381                 matched = BMatch(m_sInfo[i].sRegexKey.m_szKeyword, pLine+nPos, pLine+nLineLen,
00382                     &m_sInfo[i].pBregexp, m_szMsg);
00383 #endif
00384                 if( matched )
00385                 {
00386                     m_sInfo[i].nOffset = m_sInfo[i].pBregexp->startp[0] - pLine;
00387                     m_sInfo[i].nLength = m_sInfo[i].pBregexp->endp[0] - m_sInfo[i].pBregexp->startp[0];
00388                     m_sInfo[i].nMatch  = RK_MATCH;
00389
00390                     /* 指定の開始位置でマッチした */
00391                     if( m_sInfo[i].nOffset == nPos )
00392                     {
00393                         if( m_sInfo[i].nHead != 1 || nPos == 0 )
00394                         {
00395                             *nMatchLen   = m_sInfo[i].nLength;
00396 #ifdef USE_PARENT
00397                             *nMatchColor = m_pTypes->m_RegexKeywordArr[i].m_nColorIndex;
00398 #else
00399                             *nMatchColor = m_sInfo[i].sRegexKey.m_nColorIndex;
00400 #endif
00401                             return TRUE;  /* マッチした */
00402                         }
00403                     }
00404
00405                     /* 行先頭を要求する正規表現では次回から無視する */
00406                     if( m_sInfo[i].nHead == 1 )
00407                     {
00408                         m_sInfo[i].nMatch = RK_NOMATCH;
00409                     }
00410                 }
00411                 else
00412                 {
00413                     /* この行にこのキーワードはない */
00414                     m_sInfo[i].nMatch = RK_NOMATCH;
00415                 }
00416             }
00417         }
00418     }  /* for */
00419
00420     return FALSE;
00421 }
00422
00423 BOOL CRegexKeyword::RegexKeyCheckSyntax(const char *s)
00424 {
00425     const char  *p;
00426     int length, i;
00427     static const char *kakomi[7 * 2] = {
00428         "/",  "/k",
00429         "m/", "/k",
00430         "m#", "#k",
00431         "/",  "/ki",
00432         "m/", "/ki",
00433         "m#", "#ki",
00434         NULL, NULL,
00435     };
00436
00437     length = strlen(s);
00438
00439     for(i = 0; kakomi[i] != NULL; i += 2)
00440     {
00441         //文字長を確かめる
00442         if( length > (int)strlen(kakomi[i]) + (int)strlen(kakomi[i+1]) )
00443         {
00444             //始まりを確かめる
00445             if( strncmp(kakomi[i], s, strlen(kakomi[i])) == 0 )
00446             {
00447                 //終わりを確かめる
00448                 p = &s[length - strlen(kakomi[i+1])];
00449                 if( strcmp(p, kakomi[i+1]) == 0 )
00450                 {
00451                     //正常
00452                     return TRUE;
00453                 }
00454             }
00455         }
00456     }
00457
00458     return FALSE;
00459 }
00460
00461 //@@@ 2001.11.17 add end MIK
00462
00463 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRegexKeyword.h

CRegexKeyword.h

CRegexKeyword Library [詳細]

#include <windows.h>
#include "CShareData.h"
#include "global.h"
#include "CBregexp.h"

CRegexKeyword.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | RegexInfo_t
正規表現キーワード検索情報構造体 [詳細]
class | CRegexKeyword
正規表現キーワードクラス [詳細]

マクロ定義

#define | USE_PARENT
#define | RK_EMPTY 0
#define | RK_CLOSE 1
#define | RK_OPEN 2
#define | RK_ACTIVE 3
#define | RK_ERROR 9
#define | RK_MATCH 4
#define | RK_NOMATCH 5
#define | RK_SIZE 100
#define | RK_HEAD_STR1 "/^"
#define | RK_HEAD_STR1_LEN 2
#define | RK_HEAD_STR2 "m#^"
#define | RK_HEAD_STR2_LEN 3
#define | RK_HEAD_STR3 "m/^"
#define | RK_HEAD_STR3_LEN 3
#define | RK_KAKOMI_1_START "/"
#define | RK_KAKOMI_1_END "/k"
#define | RK_KAKOMI_2_START "m#"
#define | RK_KAKOMI_2_END "#k"
#define | RK_KAKOMI_3_START "m/"
#define | RK_KAKOMI_3_END "/k"

型定義

typedef RegexInfo_t | REGEX_INFO
正規表現キーワード検索情報構造体

説明

CRegexKeyword Library

正規表現キーワードを扱う。 BREGEXP.DLLを利用する。

作者:
MIK
日付:
Nov. 17, 2001

CRegexKeyword.h で定義されています。

マクロ定義

#define RK_ACTIVE 3

CRegexKeyword.h の 38 行で定義されています。

#define RK_CLOSE 1

CRegexKeyword.h の 36 行で定義されています。

#define RK_EMPTY 0

CRegexKeyword.h の 35 行で定義されています。

参照元 CRegexKeyword::RegexKeyLineStart().

#define RK_ERROR 9

CRegexKeyword.h の 39 行で定義されています。

#define RK_HEAD_STR1 "/^"

CRegexKeyword.h の 47 行で定義されています。

#define RK_HEAD_STR1_LEN 2

CRegexKeyword.h の 48 行で定義されています。

#define RK_HEAD_STR2 "m#^"

CRegexKeyword.h の 49 行で定義されています。

#define RK_HEAD_STR2_LEN 3

CRegexKeyword.h の 50 行で定義されています。

#define RK_HEAD_STR3 "m/^"

CRegexKeyword.h の 51 行で定義されています。

#define RK_HEAD_STR3_LEN 3

CRegexKeyword.h の 52 行で定義されています。

#define RK_KAKOMI_1_END "/k"

CRegexKeyword.h の 57 行で定義されています。

#define RK_KAKOMI_1_START "/"

CRegexKeyword.h の 56 行で定義されています。

#define RK_KAKOMI_2_END "#k"

CRegexKeyword.h の 59 行で定義されています。

#define RK_KAKOMI_2_START "m#"

CRegexKeyword.h の 58 行で定義されています。

#define RK_KAKOMI_3_END "/k"

CRegexKeyword.h の 61 行で定義されています。

#define RK_KAKOMI_3_START "m/"

CRegexKeyword.h の 60 行で定義されています。

#define RK_MATCH 4

CRegexKeyword.h の 41 行で定義されています。

#define RK_NOMATCH 5

CRegexKeyword.h の 42 行で定義されています。

参照元 CRegexKeyword::RegexIsKeyword().

#define RK_OPEN 2

CRegexKeyword.h の 37 行で定義されています。

#define RK_SIZE 100

CRegexKeyword.h の 44 行で定義されています。

#define USE_PARENT

CRegexKeyword.h の 30 行で定義されています。

参照元 CRegexKeyword::RegexIsKeyword().

型定義

typedef struct RegexInfo_t REGEX_INFO

正規表現キーワード検索情報構造体

Sakura-Editorに対してSat Oct 27 02:22:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRegexKeyword.h ソースファイル

CRegexKeyword.h

説明を見る。
00001
00010 /*
00011     Copyright (C) 2001, MIK
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 //@@@ 2001.11.17 add start MIK
00018
00019 //class CRegexKeyword;
00020
00021 #ifndef _REGEX_KEYWORD_H_
00022 #define _REGEX_KEYWORD_H_
00023
00024 #include <windows.h>
00025 #include "CShareData.h"
00026 #include "global.h"
00027 #include "CBregexp.h"
00028
00029
00030 #define USE_PARENT  //親を使ってキーワード格納領域を削減する。
00031
00032 /*
00033  * パラメータ宣言
00034  */
00035 #define RK_EMPTY          0      //初期状態
00036 #define RK_CLOSE          1      //BREGEXPクローズ
00037 #define RK_OPEN           2      //BREGEXPオープン
00038 #define RK_ACTIVE         3      //コンパイル済み
00039 #define RK_ERROR          9      //コンパイルエラー
00040
00041 #define RK_MATCH          4      //マッチする
00042 #define RK_NOMATCH        5      //この行ではマッチしない
00043
00044 #define RK_SIZE           100    //最大登録可能数
00045
00046 //#define RK_HEAD_CHAR      '^'    //行先頭の正規表現
00047 #define RK_HEAD_STR1      "/^"   //BREGEXP
00048 #define RK_HEAD_STR1_LEN  2
00049 #define RK_HEAD_STR2      "m#^"  //BREGEXP
00050 #define RK_HEAD_STR2_LEN  3
00051 #define RK_HEAD_STR3      "m/^"  //BREGEXP
00052 #define RK_HEAD_STR3_LEN  3
00053 //#define RK_HEAD_STR4      "#^"   //BREGEXP
00054 //#define RK_HEAD_STR4_LEN  2
00055
00056 #define RK_KAKOMI_1_START "/"
00057 #define RK_KAKOMI_1_END   "/k"
00058 #define RK_KAKOMI_2_START "m#"
00059 #define RK_KAKOMI_2_END   "#k"
00060 #define RK_KAKOMI_3_START "m/"
00061 #define RK_KAKOMI_3_END   "/k"
00062 //#define RK_KAKOMI_4_START "#"
00063 //#define RK_KAKOMI_4_END   "#k"
00064
00065
00066
00068 typedef struct RegexInfo_t {
00069     BREGEXP *pBregexp;  //BREGEXP構造体
00070 #ifdef USE_PARENT
00071 #else
00072     struct RegexKeywordInfo sRegexKey;  //コンパイルパターンを保持
00073 #endif
00074     int    nStatus;     //状態(EMPTY,CLOSE,OPEN,ACTIVE,ERROR)
00075     int    nMatch;      //このキーワードのマッチ状態(EMPTY,MATCH,NOMATCH)
00076     int    nOffset;     //マッチした位置
00077     int    nLength;     //マッチした長さ
00078     int    nHead;       //先頭のみチェックするか？
00079     int    nFlag;           //色指定のチェックが入っているか？ YES=RK_EMPTY, NO=RK_NOMATCH
00080 } REGEX_INFO;
00081
00082
00083
00085
00088 class SAKURA_CORE_API CRegexKeyword : public CBregexp {
00089 public:
00090     CRegexKeyword(LPCTSTR);
00091     ~CRegexKeyword();
00092
00094     BOOL RegexKeyLineStart( void );
00096     BOOL RegexIsKeyword( const char *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor );
00098     BOOL RegexKeySetTypes( Types *pTypesPtr );
00100     BOOL RegexKeyCheckSyntax( const char *s );
00101
00102     int     m_nTypeIndex;       //現在のタイプ設定番号
00103     BOOL        m_bUseRegexKeyword; //正規表現キーワードを使用する・しない
00104
00105
00106 protected:
00108     BOOL RegexKeyCompile(void);
00110     BOOL RegexKeyInit( void );
00111
00112
00113 private:
00114     Types       *m_pTypes;      //タイプ設定へのポインタ(呼び出し側が持っているもの)
00115     int     m_nCompiledMagicNumber; //コンパイル済みか？
00116     int     m_nRegexKeyCount;   //現在のキーワード数
00117     REGEX_INFO  m_sInfo[MAX_REGEX_KEYWORD]; //キーワード一覧(BREGEXPコンパイル対象)
00118     char        m_szMsg[256];
00119 };
00120
00121 #endif  //_REGEX_KEYWORD_H_
00122
00123 //@@@ 2001.11.17 add end MIK
00124
00125 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRunningTimer.cpp

CRunningTimer.cpp

処理所要時間の計測クラス [詳細]

#include "stdafx.h"
#include "CRunningTimer.h"
#include "global.h"
#include "debug.h"

CRunningTimer.cppのインクルード依存関係図

ソースコードを見る。

説明

処理所要時間の計測クラス

デバッグ目的で用いる

作者:
Norio Nakatani
日付:
1998/03/06 新規作成

CRunningTimer.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRunningTimer.cpp ソースファイル

CRunningTimer.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2002, genta
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 #include "stdafx.h"
00018 #include "CRunningTimer.h"
00019 #include "global.h"
00020 #include "debug.h"
00021
00022
00023 int CRunningTimer::m_nNestCount = 0;
00024 #ifdef _DEBUG
00025
00026 CRunningTimer::CRunningTimer( const char* pszText )
00027 {
00028     Reset();
00029     if( pszText != NULL )
00030         strcpy( m_szText, pszText );
00031     else
00032         m_szText[0] = '\0';
00033     m_nDeapth = m_nNestCount++;
00034     MYTRACE( "%3d:\"%s\" : Enter \n", m_nDeapth, m_szText );
00035     return;
00036 }
00037
00038
00039 CRunningTimer::~CRunningTimer()
00040 {
00041     WriteTrace("Exit Scope");
00042     m_nNestCount--;
00043     return;
00044 }
00045
00046
00047 void CRunningTimer::Reset()
00048 {
00049     m_nStartTime = GetTickCount();
00050 }
00051
00052
00053 DWORD CRunningTimer::Read()
00054 {
00055     return GetTickCount() - m_nStartTime;
00056 }
00057
00061 void CRunningTimer::WriteTrace(const char* msg) const
00062 {
00063     MYTRACE( "%3d:\"%s\", %d㍉秒 : %s\n", m_nDeapth, m_szText, GetTickCount() - m_nStartTime, msg );
00064 }
00065 #endif
00066
00067 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRunningTimer.h

CRunningTimer.h

処理所要時間の計測クラス [詳細]

#include <windows.h>

CRunningTimer.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CRunningTimer
処理所要時間の計測クラス [詳細]

マクロ定義

#define | MY_TRACETIME(c, m)
#define | MY_RUNNINGTIMER(c, m)

説明

処理所要時間の計測クラス

デバッグ目的で用いる

作者:
Norio Nakatani
日付:
1998/03/06 新規作成

CRunningTimer.h で定義されています。

マクロ定義

#define MY_RUNNINGTIMER | ( | c,
 |  | m | )

CRunningTimer.h の 88 行で定義されています。

参照元 CEditDoc::CEditDoc()・CImageListMgr::Create()・CEditWnd::Create()・CEditDoc::Create()・CEditApp::Create()・CSMacroMgr::CSMacroMgr()・CEditView::DeleteData()・CEditView::DeleteData2()・CEditView::DispLineNew()・CLayoutMgr::DoLayout()・CNormalProcess::GetInitializeMutex()・CDocLineMgr::GetLineInfo()・CShareData::Init()・CNormalProcess::Initialize()・CControlProcess::Initialize()・CEditView::InsertData_CEditView()・CEditView::IsCurrentPositionURL()・CEditView::OnPaint()・CCommandLine::ParseCommandLine()・CDocLineMgr::ReadFile()・CDocLineMgr::ReplaceData()・CLayoutMgr::SetLayoutInfo()・CShareData::ShareData_IO_2()・CLayoutMgr::ShiftLogicalLineNum()・CProcessFactory::StartControlProcess()・WinMain().

#define MY_TRACETIME | ( | c,
 |  | m | )

CRunningTimer.h の 87 行で定義されています。

参照元 CEditDoc::Create()・CEditApp::Create()・CControlProcess::Initialize()・WinMain().

Sakura-Editorに対してSat Oct 27 02:22:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CRunningTimer.h ソースファイル

CRunningTimer.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2002, genta
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00033
00034 class CRunningTimer;
00035
00036 #ifndef _CRUNNINGTIMER_H_
00037 #define _CRUNNINGTIMER_H_
00038
00039 #include <windows.h>
00040 // RunningTimerで経過時間の測定を行う場合にはコメントを外してください
00041 //#define TIME_MEASURE
00042
00043 /*-----------------------------------------------------------------------
00044 クラスの宣言
00045 -----------------------------------------------------------------------*/
00055 class CRunningTimer
00056 {
00057 public:
00058     /*
00059     ||  Constructors
00060     */
00061     CRunningTimer( const char* Text = NULL);
00062     ~CRunningTimer();
00063
00064     /*
00065     || 関数
00066     */
00067     void Reset();
00068     DWORD Read();
00069
00070     void WriteTrace(const char* msg = "") const;
00071
00072 protected:
00073     DWORD   m_nStartTime;
00074     char    m_szText[100];  //<! タイマー名
00075     int     m_nDeapth;  //<! このオブジェクトのネストの深さ
00076
00077     static int m_nNestCount;
00078
00079 };
00080
00081 //  Oct. 16, 2002 genta
00082 //  #ifdef _DEBUG～#endifで逐一囲まなくても簡単にタイマーのON/OFFを行うためのマクロ
00083 #if defined(_DEBUG) && defined(TIME_MEASURE)
00084   #define MY_TRACETIME(c,m) (c).WriteTrace(m)
00085   #define MY_RUNNINGTIMER(c,m) CRunningTimer c(m)
00086 #else
00087   #define MY_TRACETIME(c,m)
00088   #define MY_RUNNINGTIMER(c,m)
00089 #endif
00090
00092 #endif /* _CRUNNINGTIMER_H_ */
00093
00094
00095 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CShareData.cpp

CShareData.cpp

プロセス間共有データへのアクセス [詳細]

#include "stdafx.h"
#include <io.h>
#include "CShareData.h"
#include "CEditApp.h"
#include "mymessage.h"
#include "debug.h"
#include "global.h"
#include "etc_uty.h"
#include "CRunningTimer.h"
#include "my_icmp.h"
#include "my_tchar.h"
#include "charcode.h"

CShareData.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | ARRHEAD
struct | EditNodeEx

マクロ定義

#define | _USE_META_ALIAS
#define | PopulateKeyword(name, case_sensitive, ary)

関数

static int __cdecl | cmpGetOpenedWindowArr (const void *e1, const void *e2)

変数

const unsigned int | uShareDataVersion = 81
共有メモリのバージョン
static BOOL | s_bSort
static BOOL | s_bGSort
static const char *const | ppszKeyWordsCPP []
static const char *const | ppszKeyWordsHTML []
static const char *const | ppszKeyWordsPLSQL []
static const char *const | ppszKeyWordsCOBOL []
static const char * | ppszKeyWordsJAVA []
static const char *const | ppszKeyWordsCORBA_IDL []
static const char *const | ppszKeyWordsAWK []
static const char * | ppszKeyWordsBAT []
static const char * | ppszKeyWordsPASCAL []
static const char * | ppszKeyWordsTEX []
static const char * | ppszKeyWordsTEX2 []
static const char * | ppszKeyWordsPERL []
static const char * | ppszKeyWordsPERL2 []
static const char * | ppszKeyWordsVB []
static const char * | ppszKeyWordsVB2 []
static const char * | ppszKeyWordsRTF []

説明

プロセス間共有データへのアクセス

作者:
Norio Nakatani
日付:
1998/05/26 新規作成

CShareData.cpp で定義されています。

マクロ定義

#define _USE_META_ALIAS

#define PopulateKeyword | ( | name,
 |  | case_sensitive,
 |  | ary | )

値:

pShareData->m_CKeyWordSetMgr.AddKeyWordSet( (name), (case_sensitive) ); \
    pShareData->m_CKeyWordSetMgr.SetKeyWordArr( ++nSetCount, sizeof(ary)/sizeof(ary[0]), (ary) );

参照元 CShareData::InitKeyword().

関数

static int __cdecl cmpGetOpenedWindowArr | ( | const void * | e1,
 |  | const void * | e2
 | ) | [static]

CShareData.cpp の 1459 行で定義されています。

変数

const char* const ppszKeyWordsAWK[] [static]

CShareData.cpp の 3101 行で定義されています。

const char* ppszKeyWordsBAT[] [static]

CShareData.cpp の 3190 行で定義されています。

const char* const ppszKeyWordsCOBOL[] [static]

CShareData.cpp の 2904 行で定義されています。

const char* const ppszKeyWordsCORBA_IDL[] [static]

CShareData.cpp の 3061 行で定義されています。

const char* const ppszKeyWordsCPP[] [static]

CShareData.cpp の 2474 行で定義されています。

const char* const ppszKeyWordsHTML[] [static]

CShareData.cpp の 2565 行で定義されています。

const char* ppszKeyWordsJAVA[] [static]

CShareData.cpp の 3009 行で定義されています。

const char* ppszKeyWordsPASCAL[] [static]

CShareData.cpp の 3265 行で定義されています。

const char* ppszKeyWordsPERL[] [static]

CShareData.cpp の 3994 行で定義されています。

const char* ppszKeyWordsPERL2[] [static]

CShareData.cpp の 4228 行で定義されています。

const char* const ppszKeyWordsPLSQL[] [static]

CShareData.cpp の 2820 行で定義されています。

const char* ppszKeyWordsRTF[] [static]

CShareData.cpp の 4659 行で定義されています。

const char* ppszKeyWordsTEX[] [static]

CShareData.cpp の 3338 行で定義されています。

const char* ppszKeyWordsTEX2[] [static]

CShareData.cpp の 3872 行で定義されています。

const char* ppszKeyWordsVB[] [static]

CShareData.cpp の 4335 行で定義されています。

const char* ppszKeyWordsVB2[] [static]

CShareData.cpp の 4460 行で定義されています。

BOOL s_bGSort [static]

CShareData.cpp の 1452 行で定義されています。

BOOL s_bSort [static]

CShareData.cpp の 1451 行で定義されています。

const unsigned int uShareDataVersion = 81

共有メモリのバージョン

共有メモリのバージョン番号。共有メモリの形式を変更したときはここを1増やす。

この値は共有メモリのバージョンフィールドに格納され、異なる構造の共有メモリを 使うエディタが同時に起動しないようにする。

設定可能な値は 1～unsinged intの最大値

参照:
Init()
Version 1～24: いろいろ

Version 25: m_bStopsBothEndsWhenSearchWord追加

Version 26: MacroRecに、m_bReloadWhenExecuteを追加 2002/03/11 YAZAKI FileInfoに、m_szDocType追加 Mar. 7, 2002 genta

Version 27: Typesに、m_szOutlineRuleFilenameを追加 2002.04.01 YAZAKI

Version 28: PRINTSETTINGに、m_bPrintKinsokuHead、m_bPrintKinsokuTailを追加 2002.04.09 MIK Typesに、m_bKinsokuHead、m_bKinsokuTail、m_szKinsokuHead、m_szKinsokuTailを追加 2002.04.09 MIK

Version 29: PRINTSETTINGに、m_bPrintKinsokuRetを追加 2002.04.13 MIK Typesに、m_bKinsokuRetを追加 2002.04.13 MIK

Version 30: PRINTSETTINGに、m_bPrintKinsokuKutoを追加 2002.04.17 MIK Typesに、m_bKinsokuKutoを追加 2002.04.17 MIK

Version 31: Commonに、m_bStopsBothEndsWhenSearchParagraphを追加 2002/04/26 YAZAKI

Version 32: CommonからTypesへ、m_bAutoIndent、m_bAutoIndent_ZENSPACEを移動 2002/04/30 YAZAKI

Version 33: Commonに、m_lf_khを追加 2002/05/21 ai m_nDiffFlgOptを追加 2002.05.27 MIK Types-ColorにCOLORIDX_DIFF_APPEND,COLORIDX_DIFF_CHANGE,COLORIDX_DIFF_DELETEを追加

Version 34: Typesにm_bUseDocumentIcon 追加． 2002.09.10 genta

Version 35: Commonにm_nLineNumRightSpace 追加．2002.09.18 genta

Version 36: Commonのm_bGrepKanjiCode_AutoDetectを削除、m_nGrepCharSetを追加 2002/09/21 Moca

Version 37: TypesのLineComment関連をm_cLineCommentに変更． @@ 2002.09.23 YAZAKI TypesのBlockComment関連をm_cBlockCommentに変更．@@ 2002.09.23 YAZAKI

Version 38: Typesにm_bIndentLayoutを追加. @@ 2002.09.29 YAZAKI 2002.10.01 genta m_nIndentLayoutに名前変更

Version 39: Commonにm_nFUNCKEYWND_GroupNumを追加． 2002/11/04 Moca

Version 40: ファイル名簡易表記関連を追加． 2002/12/08～2003/01/15 Moca

Version 41: Typesのm_szTabViewStringサイズ拡張 m_nWindowSizeX/Y m_nWindowOriginX/Y追加 2003.01.26 aroka

Version 42: Typesに独自TABマークフラグ追加 2003.03.28 MIK

Version 43: 最近使ったファイル・フォルダにお気に入りを追加 2003.04.08 MIK

Version 44: Window Caption文字列領域をCommonに追加 2003.04.05 genta

Version 45: タグファイル作成用コマンドオプション保存領域(m_nTagsOpt,m_szTagsCmdLine)を追加 2003.05.12 MIK

Version 46: 編集ウインドウ数修正、タブウインドウ用情報追加

Version 47: ファイルからの補完をTypesに追加 2003.06.28 Moca

Version 48: Grepリアルタイム表示追加 2003.06.28 Moca

Version 49: ファイル情報にIsDebug追加 (タブ表示用) 2003.10.13 MIK

Version 50: ウィンドウ位置固定・継承を追加 2004.05.13 Moca

Version 51: タグジャンプ機能追加 2004/06/21 novice

Version 52: 前回と異なる文字コードのときに問い合わせを行うかどうかのフラグ追加 2004.10.03 genta

Version 53: 存在しないファイルを開こうとした場合に警告するフラグの追加 2004.10.09 genta

Version 54: マウスサイドボタン対応 2004/10/10 novice

Version 55: マウス中ボタン対応 2004/10/11 novice

Version 56: インクリメンタルサーチ(Migemo path用) 2004/10/13 isearch

Version 57: 強調キーワード指定拡大 2005/01/13 MIK

Version 58: 強調キーワードセット可変長割り当て 2005/01/25 Moca

Version 59: マクロ数を増やした 2005/01/30 genta

Version 60: キーワード指定タグジャンプ履歴保存 2005/04/03 MIK

Version 61: 改行で行末の空白を削除するオプション(タイプ別設定) 2005/10/11 ryoji

Version 62: バックアップフォルダ 2005.11.07 aroka

Version 63: 指定桁縦線表示追加 2005.11.08 Moca

Version 64: タブの機能拡張(等幅、アイコン表示) 2006/01/28 ryoji アウトプットウィンドウ位置 2006.02.01 aroka

Version 65: タブ一覧をソートする 2006/05/10 ryoji

Version 66: キーワードヘルプ機能拡張 2006.04.10 fon キーワードヘルプ機能設定を別タブに移動, 辞書の複数化に対応, キャレット位置キーワード検索追加

Version 67: キャレット色指定を追加 2006.12.07 ryoji

Version 68: ファイルダイアログのフィルタ設定 2006.11.16 ryoji

Version 69: 「すべて置換」は置換の繰返し 2006.11.16 ryoji

Version 70: [すべて閉じる]で他に編集用のウィンドウがあれば確認する 2006.12.25 ryoji

Version 71: タブを閉じる動作を制御するオプション2つを追加 2007.02.11 genta m_bRetainEmptyTab, m_bCloseOneWinInTabMode

Version 72: タブ一覧をフルパス表示する 2007.02.28 ryoji

Version 73: 編集ウィンドウ切替中 2007.04.03 ryoji

Version 74: カーソル位置の文字列をデフォルトの検索文字列にする 2006.08.23 ryoji

Version 75: マウスホイールでウィンドウ切り替え 2006.03.26 ryoji

Version 76: タブのグループ化 2007.06.20 ryoji

Version 77: iniフォルダ設定 2007.05.31 ryoji

Version 78: エディタ－トレイ間でのUI特権分離確認のためのバージョン合わせ 2007.06.07 ryoji

Version 79: 外部コマンド実行のオプション拡張 2007.04.29 maru

Version 80: 正規表現ライブラリの切り替え 2007.07.22 genta

Version 81: マウスクリックにてアクティベートされた時はカーソル位置を移動しない 2007.10.02 nasukoji

CShareData.cpp の 239 行で定義されています。

参照元 CShareData::Init().

Sakura-Editorに対してSat Oct 27 02:22:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CShareData.cpp ソースファイル

CShareData.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, jepro, genta, MIK
00010     Copyright (C) 2001, jepro, genta, asa-o, MIK, YAZAKI, hor
00011     Copyright (C) 2002, genta, ai, Moca, MIK, YAZAKI, hor, KK, aroka
00012     Copyright (C) 2003, Moca, aroka, MIK, genta, wmlhq, sui
00013     Copyright (C) 2004, Moca, novice, genta, isearch, MIK
00014     Copyright (C) 2005, Moca, MIK, genta, ryoji, りんご, aroka
00015     Copyright (C) 2006, aroka, ryoji, genta
00016     Copyright (C) 2007, ryoji, genta, maru
00017
00018     This source code is designed for sakura editor.
00019     Please contact the copyright holder to use this code for other purpose.
00020 */
00021
00022 #include "stdafx.h"
00023 #include <io.h>
00024 #include "CShareData.h"
00025 #include "CEditApp.h"
00026 #include "mymessage.h"
00027 #include "debug.h"
00028 #include "global.h"
00029 #include "etc_uty.h"
00030 #include "CRunningTimer.h"
00031 #include "my_icmp.h" // 2002/11/30 Moca 追加
00032 #include "my_tchar.h" // 2003/01/06 Moca
00033 #include "charcode.h"  // 2006/06/28 rastiv
00034
00035 struct ARRHEAD {
00036     int     nLength;
00037     int     nItemNum;
00038 };
00039
00041
00239 const unsigned int uShareDataVersion = 81;
00240
00241 /*
00242 ||  Singleton風
00243 */
00244 CShareData* CShareData::_instance = NULL;
00245
00267 CMutex CShareData::g_cEditArrMutex( FALSE, GSTR_MUTEX_SAKURA_EDITARR );
00268
00269 CShareData* CShareData::getInstance()
00270 {
00271     return _instance;
00272 }
00273
00278 CShareData::~CShareData()
00279 {
00280     if( NULL != m_pShareData ){
00281         /* プロセスのアドレス空間から､ すでにマップされているファイル ビューをアンマップします */
00282         ::UnmapViewOfFile( m_pShareData );
00283         m_pShareData = NULL;
00284     }
00285     return;
00286 }
00287
00288
00290
00300 bool CShareData::Init( void )
00301 {
00302     MY_RUNNINGTIMER(cRunningTimer,"CShareData::Init" );
00303
00304     if (CShareData::_instance == NULL)  //  Singleton風
00305         CShareData::_instance = this;
00306
00307     m_hwndTraceOutSource = NULL;    // 2006.06.26 ryoji
00308
00309     int     i;
00310     int     j;
00311
00312     /* ファイルマッピングオブジェクト */
00313     m_hFileMap = ::CreateFileMapping(
00314         INVALID_HANDLE_VALUE,   //  Sep. 6, 2003 wmlhq
00315         NULL,
00316         PAGE_READWRITE | SEC_COMMIT,
00317         0,
00318         sizeof( DLLSHAREDATA ),
00319         GSTR_CSHAREDATA
00320     );
00321     if( NULL == m_hFileMap ){
00322         ::MessageBox(
00323             NULL,
00324             "CreateFileMapping()に失敗しました",
00325             "予期せぬエラー",
00326             MB_OK | MB_APPLMODAL | MB_ICONSTOP
00327         );
00328         return false;
00329     }
00330     if( GetLastError() != ERROR_ALREADY_EXISTS ){
00331         /* オブジェクトが存在していなかった場合 */
00332         /* ファイルのビューを､ 呼び出し側プロセスのアドレス空間にマップします */
00333         m_pShareData = (DLLSHAREDATA*)::MapViewOfFile(
00334             m_hFileMap,
00335             FILE_MAP_ALL_ACCESS,
00336             0,
00337             0,
00338             0
00339         );
00340
00341         // 2007.05.19 ryoji 実行ファイルフォルダ->設定ファイルフォルダに変更
00342         char    szIniFolder[_MAX_PATH];
00343         m_pShareData->m_IniFolder.m_bInit = false;
00344         GetInidir( szIniFolder );
00345         AddLastChar( szIniFolder, _MAX_PATH, '\\' );
00346
00347         m_pShareData->m_vStructureVersion = uShareDataVersion;
00348 //      m_pShareData->m_CKeyMacroMgr.Clear();           /* キーワードマクロのバッファ */
00349         strcpy(m_pShareData->m_szKeyMacroFileName, ""); /* キーワードマクロのファイル名 */ //@@@ 2002.1.24 YAZAKI
00350         m_pShareData->m_bRecordingKeyMacro = FALSE;     /* キーボードマクロの記録中 */
00351         m_pShareData->m_hwndRecordingKeyMacro = NULL;   /* キーボードマクロを記録中のウィンドウ */
00352
00353         // 2004.05.13 Moca リソースから製品バージョンの取得
00354         GetAppVersionInfo( NULL, VS_VERSION_INFO,
00355             &m_pShareData->m_dwProductVersionMS, &m_pShareData->m_dwProductVersionLS );
00356         m_pShareData->m_hwndTray = NULL;
00357         m_pShareData->m_hAccel = NULL;
00358         m_pShareData->m_hwndDebug = NULL;
00359         m_pShareData->m_nSequences = 0;                 /* ウィンドウ連番 */
00360         m_pShareData->m_nGroupSequences = 0;            /* タブグループ連番 */  // 2007.06.20 ryoji
00361         m_pShareData->m_nEditArrNum = 0;
00362
00363         m_pShareData->m_bEditWndChanging = FALSE;   // 編集ウィンドウ切替中 // 2007.04.03 ryoji
00364
00365         m_pShareData->m_Common.m_nMRUArrNum_MAX = 15;   /* ファイルの履歴MAX */ //Oct. 14, 2000 JEPRO 少し増やした(10→15)
00366 //@@@ 2001.12.26 YAZAKI MRUリストは、CMRUに依頼する
00367         CMRU cMRU;
00368         cMRU.ClearAll();
00369         m_pShareData->m_Common.m_nOPENFOLDERArrNum_MAX = 15;    /* フォルダの履歴MAX */ //Oct. 14, 2000 JEPRO 少し増やした(10→15)
00370 //@@@ 2001.12.26 YAZAKI OPENFOLDERリストは、CMRUFolderにすべて依頼する
00371         CMRUFolder cMRUFolder;
00372         cMRUFolder.ClearAll();
00373
00374         m_pShareData->m_nSEARCHKEYArrNum = 0;
00375         for( i = 0; i < MAX_SEARCHKEY; ++i ){
00376             strcpy( m_pShareData->m_szSEARCHKEYArr[i], "" );
00377             //m_pShareData->m_bSEARCHKEYArrFavorite[i] = false; //お気に入り    //@@@ 2003.04.08 MIK
00378         }
00379         m_pShareData->m_nREPLACEKEYArrNum = 0;
00380         for( i = 0; i < MAX_REPLACEKEY; ++i ){
00381             strcpy( m_pShareData->m_szREPLACEKEYArr[i], "" );
00382             //m_pShareData->m_bREPLACEKEYArrFavorite[i] = false;    //お気に入り    //@@@ 2003.04.08 MIK
00383         }
00384         m_pShareData->m_nGREPFILEArrNum = 0;
00385         for( i = 0; i < MAX_GREPFILE; ++i ){
00386             strcpy( m_pShareData->m_szGREPFILEArr[i], "" );
00387             //m_pShareData->m_bGREPFILEArrFavorite[i] = false;  //お気に入り    //@@@ 2003.04.08 MIK
00388         }
00389         m_pShareData->m_nGREPFILEArrNum = 1;
00390         strcpy( m_pShareData->m_szGREPFILEArr[0], "*.*" );
00391         //m_pShareData->m_bSEARCHKEYArrFavorite[0] = true;  //お気に入り    //@@@ 2003.04.08 MIK
00392
00393         m_pShareData->m_nGREPFOLDERArrNum = 0;
00394         for( i = 0; i < MAX_GREPFOLDER; ++i ){
00395             strcpy( m_pShareData->m_szGREPFOLDERArr[i], "" );
00396             //m_pShareData->m_bGREPFOLDERArrFavorite[i] = false;    //お気に入り    //@@@ 2003.04.08 MIK
00397         }
00398         strcpy( m_pShareData->m_szMACROFOLDER, szIniFolder );   /* マクロ用フォルダ */
00399         strcpy( m_pShareData->m_szIMPORTFOLDER, szIniFolder );  /* 設定インポート用フォルダ */
00400
00401         for( i = 0; i < MAX_TRANSFORM_FILENAME; ++i ){
00402             strcpy( m_pShareData->m_szTransformFileNameFrom[i], "" );
00403             strcpy( m_pShareData->m_szTransformFileNameTo[i], "" );
00404         }
00405         strcpy( m_pShareData->m_szTransformFileNameFrom[0], "%DeskTop%\\" );
00406         strcpy( m_pShareData->m_szTransformFileNameTo[0], "デスクトップ\\" );
00407         strcpy( m_pShareData->m_szTransformFileNameFrom[1], "%Personal%\\" );
00408         strcpy( m_pShareData->m_szTransformFileNameTo[1], "マイドキュメント\\" );
00409         strcpy( m_pShareData->m_szTransformFileNameFrom[2], "%Cache%\\Content.IE5\\" );
00410         strcpy( m_pShareData->m_szTransformFileNameTo[2], "IEキャッシュ\\" );
00411         strcpy( m_pShareData->m_szTransformFileNameFrom[3], "%TEMP%\\" );
00412         strcpy( m_pShareData->m_szTransformFileNameTo[3],   "TEMP\\" );
00413         strcpy( m_pShareData->m_szTransformFileNameFrom[4], "%Common DeskTop%\\" );
00414         strcpy( m_pShareData->m_szTransformFileNameTo[4],   "共有デスクトップ\\" );
00415         strcpy( m_pShareData->m_szTransformFileNameFrom[5], "%Common Documents%\\" );
00416         strcpy( m_pShareData->m_szTransformFileNameTo[5], "共有ドキュメント\\" );
00417         strcpy( m_pShareData->m_szTransformFileNameFrom[6], "%AppData%\\" );    // 2007.05.19 ryoji 追加
00418         strcpy( m_pShareData->m_szTransformFileNameTo[6], "アプリデータ\\" );   // 2007.05.19 ryoji 追加
00419         m_pShareData->m_nTransformFileNameArrNum = 7;
00420
00421         /* m_PrintSettingArr[0]を設定して、残りの1～7にコピーする。
00422             必要になるまで遅らせるために、CPrintに、CShareDataを操作する権限を与える。
00423             YAZAKI.
00424         */
00425         {
00426             /*
00427                 2006.08.16 Moca 初期化単位を PRINTSETTINGに変更。CShareDataには依存しない。
00428             */
00429             char szSettingName[64];
00430             i = 0;
00431             wsprintf( szSettingName, "印刷設定 %d", i + 1 );
00432             CPrint::SettingInitialize( m_pShareData->m_PrintSettingArr[0], szSettingName ); //  初期化命令。
00433         }
00434         for( i = 1; i < MAX_PRINTSETTINGARR; ++i ){
00435             m_pShareData->m_PrintSettingArr[i] = m_pShareData->m_PrintSettingArr[0];
00436             wsprintf( m_pShareData->m_PrintSettingArr[i].m_szPrintSettingName, "印刷設定 %d", i + 1 );  /* 印刷設定の名前 */
00437         }
00438
00439         //  Jan. 30, 2005 genta 関数として独立
00440         InitKeyAssign( m_pShareData );
00441
00442 //  From Here Sept. 19, 2000 JEPRO コメントアウトになっていた初めのブロックを復活しその下をコメントアウト
00443 //  MS ゴシック標準スタイル10ptに設定
00444 //      /* LOGFONTの初期化 */
00445         memset( &m_pShareData->m_Common.m_lf, 0, sizeof( LOGFONT ) );
00446         m_pShareData->m_Common.m_lf.lfHeight            = -13;
00447         m_pShareData->m_Common.m_lf.lfWidth             = 0;
00448         m_pShareData->m_Common.m_lf.lfEscapement        = 0;
00449         m_pShareData->m_Common.m_lf.lfOrientation       = 0;
00450         m_pShareData->m_Common.m_lf.lfWeight            = 400;
00451         m_pShareData->m_Common.m_lf.lfItalic            = 0x0;
00452         m_pShareData->m_Common.m_lf.lfUnderline         = 0x0;
00453         m_pShareData->m_Common.m_lf.lfStrikeOut         = 0x0;
00454         m_pShareData->m_Common.m_lf.lfCharSet           = 0x80;
00455         m_pShareData->m_Common.m_lf.lfOutPrecision      = 0x3;
00456         m_pShareData->m_Common.m_lf.lfClipPrecision     = 0x2;
00457         m_pShareData->m_Common.m_lf.lfQuality           = 0x1;
00458         m_pShareData->m_Common.m_lf.lfPitchAndFamily    = 0x31;
00459         strcpy( m_pShareData->m_Common.m_lf.lfFaceName, "ＭＳ ゴシック" );
00460
00461         // キーワードヘルプのフォント ai 02/05/21 Add S
00462         ::SystemParametersInfo(
00463             SPI_GETICONTITLELOGFONT,                // system parameter to query or set
00464             sizeof(LOGFONT),                        // depends on action to be taken
00465             (PVOID)&m_pShareData->m_Common.m_lf_kh, // depends on action to be taken
00466             NULL                                    // user profile update flag
00467         );
00468         // ai 02/05/21 Add E
00469
00470 //  To Here Sept. 19,2000
00471
00472         m_pShareData->m_Common.m_bFontIs_FIXED_PITCH = TRUE;                /* 現在のフォントは固定幅フォントである */
00473
00474 //      m_pShareData->m_Common.m_bUseCaretKeyWord = FALSE;      /* キャレット位置の単語を辞書検索-機能OFF */    // 2006.03.24 fon sakura起動ごとFALSEとし、初期化しない
00475
00476
00477         /* バックアップ */
00478         m_pShareData->m_Common.m_bBackUp = FALSE;               /* バックアップの作成 */
00479         m_pShareData->m_Common.m_bBackUpDialog = TRUE;          /* バックアップの作成前に確認 */
00480         m_pShareData->m_Common.m_bBackUpFolder = FALSE;         /* 指定フォルダにバックアップを作成する */
00481         m_pShareData->m_Common.m_szBackUpFolder[0] = '\0';      /* バックアップを作成するフォルダ */
00482         m_pShareData->m_Common.m_nBackUpType = 2;               /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
00483         m_pShareData->m_Common.m_nBackUpType_Opt1 = BKUP_YEAR | BKUP_MONTH | BKUP_DAY;
00484                                                                 /* バックアップファイル名：日付 */
00485         m_pShareData->m_Common.m_nBackUpType_Opt2 = ('b' << 16 ) + 10;
00486                                                                 /* バックアップファイル名：連番の数と先頭文字 */
00487         m_pShareData->m_Common.m_nBackUpType_Opt3 = 5;          /* バックアップファイル名：Option3 */
00488         m_pShareData->m_Common.m_nBackUpType_Opt4 = 0;          /* バックアップファイル名：Option4 */
00489         m_pShareData->m_Common.m_nBackUpType_Opt5 = 0;          /* バックアップファイル名：Option5 */
00490         m_pShareData->m_Common.m_nBackUpType_Opt6 = 0;          /* バックアップファイル名：Option6 */
00491         m_pShareData->m_Common.m_bBackUpDustBox = FALSE;        /* バックアップファイルをごみ箱に放り込む */    //@@@ 2001.12.11 add MIK
00492         m_pShareData->m_Common.m_bBackUpPathAdvanced = FALSE;       /* 20051107 aroka バックアップ先フォルダを詳細設定する */
00493         m_pShareData->m_Common.m_szBackUpPathAdvanced[0] = '\0';    /* 20051107 aroka バックアップを作成するフォルダの詳細設定 */
00494
00495         m_pShareData->m_Common.m_nFileShareMode = OF_SHARE_DENY_WRITE;/* ファイルの排他制御モード */
00496
00497         m_pShareData->m_Common.m_nCaretType = 0;                /* カーソルのタイプ 0=win 1=dos */
00498         m_pShareData->m_Common.m_bIsINSMode = TRUE;             /* 挿入／上書きモード */
00499         m_pShareData->m_Common.m_bIsFreeCursorMode = FALSE;     /* フリーカーソルモードか */    //Oct. 29, 2000 JEPRO 「なし」に変更
00500
00501         m_pShareData->m_Common.m_bStopsBothEndsWhenSearchWord = FALSE;  /* 単語単位で移動するときに、単語の両端で止まるか */
00502         m_pShareData->m_Common.m_bStopsBothEndsWhenSearchParagraph = FALSE; /* 単語単位で移動するときに、単語の両端で止まるか */
00503
00504         //  Oct. 27, 2000 genta
00505         m_pShareData->m_Common.m_bRestoreCurPosition = TRUE;    //  カーソル位置復元
00506
00507         m_pShareData->m_Common.m_bRestoreBookmarks = TRUE;      // 2002.01.16 hor ブックマーク復元
00508
00509         m_pShareData->m_Common.m_bRegularExp = 0;               /* 1==正規表現 */
00510         m_pShareData->m_Common.m_bLoHiCase = 0;                 /* 1==英大文字小文字の区別 */
00511         m_pShareData->m_Common.m_bWordOnly = 0;                 /* 1==単語のみ検索 */
00512         m_pShareData->m_Common.m_bConsecutiveAll = 0;           /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
00513         m_pShareData->m_Common.m_bSelectedArea = FALSE;         /* 選択範囲内置換 */
00514         m_pShareData->m_Common.m_szExtHelp[0] = '\0';           /* 外部ヘルプ１ */
00515         m_pShareData->m_Common.m_szExtHtmlHelp[0] = '\0';       /* 外部HTMLヘルプ */
00516
00517         m_pShareData->m_Common.m_szMigemoDll[0] = '\0';         /* migemo dll */
00518         m_pShareData->m_Common.m_szMigemoDict[0] = '\0';        /* migemo dict */
00519
00520         m_pShareData->m_Common.m_bNOTIFYNOTFOUND = TRUE;        /* 検索／置換  見つからないときメッセージを表示 */
00521
00522         m_pShareData->m_Common.m_bCloseAllConfirm = FALSE;      /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */    // 2006.12.25 ryoji
00523         m_pShareData->m_Common.m_bExitConfirm = FALSE;          /* 終了時の確認をする */
00524         m_pShareData->m_Common.m_nRepeatedScrollLineNum = 3;    /* キーリピート時のスクロール行数 */
00525         m_pShareData->m_Common.m_nRepeatedScroll_Smooth = FALSE;/* キーリピート時のスクロールを滑らかにするか */
00526
00527         m_pShareData->m_Common.m_bAddCRLFWhenCopy = FALSE;      /* 折り返し行に改行を付けてコピー */
00528         m_pShareData->m_Common.m_bGrepSubFolder = TRUE;         /* Grep: サブフォルダも検索 */
00529         m_pShareData->m_Common.m_bGrepOutputLine = TRUE;        /* Grep: 行を出力するか該当部分だけ出力するか */
00530         m_pShareData->m_Common.m_nGrepOutputStyle = 1;          /* Grep: 出力形式 */
00531         m_pShareData->m_Common.m_bGrepDefaultFolder=FALSE;      /* Grep: フォルダの初期値をカレントフォルダにする */
00532         m_pShareData->m_Common.m_nGrepCharSet = CODE_AUTODETECT;/* Grep: 文字コードセット */
00533         m_pShareData->m_Common.m_bGrepRealTimeView = FALSE;             /* 2003.06.28 Moca Grep結果のリアルタイム表示 */
00534         m_pShareData->m_Common.m_bCaretTextForSearch = TRUE;            /* 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする */
00535         m_pShareData->m_Common.m_szRegexpLib[0] = '\0'; /* 2007.08.12 genta 正規表現DLL */
00536         m_pShareData->m_Common.m_bGTJW_RETURN = TRUE;           /* エンターキーでタグジャンプ */
00537         m_pShareData->m_Common.m_bGTJW_LDBLCLK = TRUE;          /* ダブルクリックでタグジャンプ */
00538
00539 //キーワード：ツールバー順序
00540         //  Jan. 30, 2005 genta 関数として独立
00541         InitToolButtons( m_pShareData );
00542
00543         m_pShareData->m_Common.m_bDispTOOLBAR = TRUE;           /* 次回ウィンドウを開いたときツールバーを表示する */
00544         m_pShareData->m_Common.m_bDispSTATUSBAR = TRUE;         /* 次回ウィンドウを開いたときステータスバーを表示する */
00545         m_pShareData->m_Common.m_bDispFUNCKEYWND = FALSE;       /* 次回ウィンドウを開いたときファンクションキーを表示する */
00546         m_pShareData->m_Common.m_nFUNCKEYWND_Place = 1;         /* ファンクションキー表示位置／0:上 1:下 */
00547         m_pShareData->m_Common.m_nFUNCKEYWND_GroupNum = 4;          // 2002/11/04 Moca ファンクションキーのグループボタン数
00548
00549         m_pShareData->m_Common.m_bDispTabWnd = FALSE;           //タブウインドウ表示    //@@@ 2003.05.31 MIK
00550         m_pShareData->m_Common.m_bDispTabWndMultiWin = FALSE;   //タブウインドウ表示    //@@@ 2003.05.31 MIK
00551         strcpy( m_pShareData->m_Common.m_szTabWndCaption,
00552             "${w?【Grep】$h$:【アウトプット】$:$f$}${U?(更新)$}${R?(読みとり専用)$:(上書き禁止)$}${M?【キーマクロの記録中】$}" );   //@@@ 2003.06.13 MIK
00553         m_pShareData->m_Common.m_bSameTabWidth = FALSE;         //タブを等幅にする          //@@@ 2006.01.28 ryoji
00554         m_pShareData->m_Common.m_bDispTabIcon = FALSE;          //タブにアイコンを表示する  //@@@ 2006.01.28 ryoji
00555         m_pShareData->m_Common.m_bSortTabList = TRUE;           //タブ一覧をソートする      //@@@ 2006.05.10 ryoji
00556         m_pShareData->m_Common.m_bTab_RetainEmptyWin = TRUE;    // 最後のファイルが閉じられたとき(無題)を残す   // 2007.02.11 genta
00557         m_pShareData->m_Common.m_bTab_CloseOneWin = FALSE;  // タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる // 2007.02.11 genta
00558         m_pShareData->m_Common.m_bTab_ListFull = FALSE;         //タブ一覧をフルパス表示する    //@@@ 2007.02.28 ryoji
00559         m_pShareData->m_Common.m_bChgWndByWheel = FALSE;        //マウスホイールでウィンドウ切替    //@@@ 2006.03.26 ryoji
00560
00561         m_pShareData->m_Common.m_bSplitterWndHScroll = TRUE;    // 2001/06/20 asa-o 分割ウィンドウの水平スクロールの同期をとる
00562         m_pShareData->m_Common.m_bSplitterWndVScroll = TRUE;    // 2001/06/20 asa-o 分割ウィンドウの垂直スクロールの同期をとる
00563
00564         /* カスタムメニュー情報 */
00565         wsprintf( m_pShareData->m_Common.m_szCustMenuNameArr[0], "右クリックメニュー", i );
00566         for( i = 1; i < MAX_CUSTOM_MENU; ++i ){
00567             wsprintf( m_pShareData->m_Common.m_szCustMenuNameArr[i], "メニュー%d", i );
00568             m_pShareData->m_Common.m_nCustMenuItemNumArr[i] = 0;
00569             for( j = 0; j < MAX_CUSTOM_MENU_ITEMS; ++j ){
00570                 m_pShareData->m_Common.m_nCustMenuItemFuncArr[i][j] = 0;
00571                 m_pShareData->m_Common.m_nCustMenuItemKeyArr [i][j] = '\0';
00572             }
00573         }
00574         wsprintf( m_pShareData->m_Common.m_szCustMenuNameArr[CUSTMENU_INDEX_FOR_TABWND], "タブメニュー" );  //@@@ 2003.06.13 MIK
00575
00576
00577         /* 見出し記号 */
00578         strcpy( m_pShareData->m_Common.m_szMidashiKigou, "１２３４５６７８９０（(［[「『【■□▲△▼▽◆◇○◎●§・※☆★第①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ一二三四五六七八九十壱弐参伍" );
00579         /* 引用符 */
00580         strcpy( m_pShareData->m_Common.m_szInyouKigou, "> " );      /* 引用符 */
00581         m_pShareData->m_Common.m_bUseHokan = FALSE;                 /* 入力補完機能を使用する */
00582
00583         // 2001/06/14 asa-o 補完とキーワードヘルプはタイプ別に移動したので削除
00584         //  2004.05.13 Moca ウィンドウサイズ固定指定追加に伴う指定方法変更
00585         m_pShareData->m_Common.m_nSaveWindowSize = WINSIZEMODE_SAVE;    // ウィンドウサイズ継承
00586         m_pShareData->m_Common.m_nWinSizeType = SIZE_RESTORED;
00587         m_pShareData->m_Common.m_nWinSizeCX = CW_USEDEFAULT;
00588         m_pShareData->m_Common.m_nWinSizeCY = 0;
00589
00590         //  2004.05.13 Moca ウィンドウ位置
00591         m_pShareData->m_Common.m_nSaveWindowPos = WINSIZEMODE_DEF;      // ウィンドウ位置固定・継承
00592         m_pShareData->m_Common.m_nWinPosX = CW_USEDEFAULT;
00593         m_pShareData->m_Common.m_nWinPosY = 0;
00594
00595         m_pShareData->m_Common.m_bUseTaskTray = TRUE;               /* タスクトレイのアイコンを使う */
00596         m_pShareData->m_Common.m_bStayTaskTray = TRUE;              /* タスクトレイのアイコンを常駐 */
00597         m_pShareData->m_Common.m_wTrayMenuHotKeyCode = 'Z';         /* タスクトレイ左クリックメニュー キー */
00598         m_pShareData->m_Common.m_wTrayMenuHotKeyMods = HOTKEYF_ALT | HOTKEYF_CONTROL;   /* タスクトレイ左クリックメニュー キー */
00599         m_pShareData->m_Common.m_bUseOLE_DragDrop = TRUE;           /* OLEによるドラッグ & ドロップを使う */
00600         m_pShareData->m_Common.m_bUseOLE_DropSource = TRUE;         /* OLEによるドラッグ元にするか */
00601         m_pShareData->m_Common.m_bDispExitingDialog = FALSE;        /* 終了ダイアログを表示する */
00602         m_pShareData->m_Common.m_bEnableUnmodifiedOverwrite = FALSE;/* 無変更でも上書きするか */
00603         m_pShareData->m_Common.m_bSelectClickedURL = TRUE;          /* URLがクリックされたら選択するか */
00604         m_pShareData->m_Common.m_bGrepExitConfirm = FALSE;          /* Grepモードで保存確認するか */
00605 //      m_pShareData->m_Common.m_bRulerDisp = TRUE;                 /* ルーラー表示 */
00606         m_pShareData->m_Common.m_nRulerHeight = 13;                 /* ルーラーの高さ */
00607         m_pShareData->m_Common.m_nRulerBottomSpace = 0;             /* ルーラーとテキストの隙間 */
00608         m_pShareData->m_Common.m_nRulerType = 0;                    /* ルーラーのタイプ */
00609         //  Sep. 18, 2002 genta
00610         m_pShareData->m_Common.m_nLineNumRightSpace = 0;            /* 行番号の右の隙間 */
00611         m_pShareData->m_Common.m_nVertLineOffset = -1;              // 2005.11.10 Moca 指定桁縦線
00612         m_pShareData->m_Common.m_bCopyAndDisablSelection = FALSE;   /* コピーしたら選択解除 */
00613         m_pShareData->m_Common.m_bHtmlHelpIsSingle = TRUE;          /* HtmlHelpビューアはひとつ */
00614         m_pShareData->m_Common.m_bCompareAndTileHorz = TRUE;        /* 文書比較後、左右に並べて表示 */
00615         /* 1999.11.15 */
00616         m_pShareData->m_Common.m_bDropFileAndClose = FALSE;         /* ファイルをドロップしたときは閉じて開く */
00617         m_pShareData->m_Common.m_nDropFileNumMax = 8;               /* 一度にドロップ可能なファイル数 */
00618         m_pShareData->m_Common.m_bCheckFileTimeStamp = TRUE;        /* 更新の監視 */
00619         m_pShareData->m_Common.m_bNotOverWriteCRLF = TRUE;          /* 改行は上書きしない */
00620         ::SetRect( &m_pShareData->m_Common.m_rcOpenDialog, 0, 0, 0, 0 );    /* 「開く」ダイアログのサイズと位置 */
00621         m_pShareData->m_Common.m_bAutoCloseDlgFind = TRUE;          /* 検索ダイアログを自動的に閉じる */
00622         m_pShareData->m_Common.m_bSearchAll      = FALSE;           /* 検索／置換／ブックマーク  先頭（末尾）から再検索 2002.01.26 hor */
00623         m_pShareData->m_Common.m_bScrollBarHorz = TRUE;             /* 水平スクロールバーを使う */
00624         m_pShareData->m_Common.m_bAutoCloseDlgFuncList = FALSE;     /* アウトライン ダイアログを自動的に閉じる */   //Nov. 18, 2000 JEPRO TRUE→FALSE に変更
00625         m_pShareData->m_Common.m_bAutoCloseDlgReplace = TRUE;       /* 置換 ダイアログを自動的に閉じる */
00626         m_pShareData->m_Common.m_bAutoColmnPaste = TRUE;            /* 矩形コピーのテキストは常に矩形貼り付け */
00627         m_pShareData->m_Common.m_bNoCaretMoveByActivation = FALSE;  /* マウスクリックにてアクティベートされた時はカーソル位置を移動しない 2007.10.02 nasukoji (add by genta) */
00628
00629         m_pShareData->m_Common.m_bHokanKey_RETURN   = TRUE;         /* VK_RETURN 補完決定キーが有効/無効 */
00630         m_pShareData->m_Common.m_bHokanKey_TAB      = FALSE;        /* VK_TAB   補完決定キーが有効/無効 */
00631         m_pShareData->m_Common.m_bHokanKey_RIGHT    = TRUE;         /* VK_RIGHT 補完決定キーが有効/無効 */
00632         m_pShareData->m_Common.m_bHokanKey_SPACE    = FALSE;        /* VK_SPACE 補完決定キーが有効/無効 */
00633
00634         m_pShareData->m_Common.m_bMarkUpBlankLineEnable =   FALSE;  //アウトラインダイアログでブックマークの空行を無視          2002.02.08 aroka,hor
00635         m_pShareData->m_Common.m_bFunclistSetFocusOnJump    =   FALSE;  //アウトラインダイアログでジャンプしたらフォーカスを移す    2002.02.08 hor
00636
00637         /*
00638             書式指定子の意味はWindows SDKのGetDateFormat(), GetTimeFormat()を参照のこと
00639         */
00640
00641         m_pShareData->m_Common.m_nDateFormatType = 0;   //日付書式のタイプ
00642         strcpy( m_pShareData->m_Common.m_szDateFormat, "yyyy\'年\'M\'月\'d\'日(\'dddd\')\'" );  //日付書式
00643         m_pShareData->m_Common.m_nTimeFormatType = 0;   //時刻書式のタイプ
00644         strcpy( m_pShareData->m_Common.m_szTimeFormat, "tthh\'時\'mm\'分\'ss\'秒\'"  );         //時刻書式
00645
00646         m_pShareData->m_Common.m_bMenuIcon = TRUE;      /* メニューにアイコンを表示する */
00647
00648         //  Nov. 12, 2000 genta
00649         m_pShareData->m_Common.m_bAutoMIMEdecode = FALSE;   //ファイル読み込み時にMIMEのデコードを行うか    //Jul. 13, 2001 JEPRO
00650
00651         //  Oct. 03, 2004 genta 前回と異なる文字コードの時に問い合わせを行うか
00652         m_pShareData->m_Common.m_bQueryIfCodeChange = TRUE;
00653         //  Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告する
00654         m_pShareData->m_Common.m_bAlertIfFileNotExist = FALSE;
00655
00656         // ファイル保存ダイアログのフィルタ設定 // 2006.11.16 ryoji
00657         m_pShareData->m_Common.m_bNoFilterSaveNew = TRUE;   // 新規から保存時は全ファイル表示
00658         m_pShareData->m_Common.m_bNoFilterSaveFile = TRUE;  // 新規以外から保存時は全ファイル表示
00659
00660         for( i = 0; i < MAX_CMDARR; i++ ){
00661             /* 初期化 */
00662             m_pShareData->m_szCmdArr[i][0] = '\0';
00663             //m_pShareData->m_bCmdArrFavorite[i] = false;   //お気に入り    //@@@ 2003.04.08 MIK
00664         }
00665         m_pShareData->m_nCmdArrNum = 0;
00666
00667         InitKeyword( m_pShareData );
00668         InitTypeConfig( m_pShareData );
00669         InitPopupMenu( m_pShareData );
00670
00671         //  Apr. 05, 2003 genta ウィンドウキャプションの初期値
00672         //  Aug. 16, 2003 genta $N(ファイル名省略表示)をデフォルトに変更
00673         strcpy( m_pShareData->m_Common.m_szWindowCaptionActive,
00674             "${w?$h$:アウトプット$:${I?$f$:$N$}$}${U?(更新)$} -"
00675             " sakura $V ${R?(読みとり専用)$:（上書き禁止）$}${M?  【キーマクロの記録中】$}" );
00676         strcpy( m_pShareData->m_Common.m_szWindowCaptionInactive,
00677             "${w?$h$:アウトプット$:$f$}${U?(更新)$} -"
00678             " sakura $V ${R?(読みとり専用)$:（上書き禁止）$}${M?  【キーマクロの記録中】$}" );
00679
00680         //  From Here Sep. 14, 2001 genta
00681         //  Macro登録の初期化
00682         MacroRec *mptr = m_pShareData->m_MacroTable;
00683         for( i = 0; i < MAX_CUSTMACRO; ++i, ++mptr ){
00684             mptr->m_szName[0] = '\0';
00685             mptr->m_szFile[0] = '\0';
00686             mptr->m_bReloadWhenExecute = FALSE;
00687         }
00688         //  To Here Sep. 14, 2001 genta
00689
00690         // 2004/06/21 novice タグジャンプ機能追加
00691         m_pShareData->m_TagJumpNum = 0;
00692         // 2004.06.22 Moca タグジャンプの先頭
00693         m_pShareData->m_TagJumpTop = 0;
00694 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00695 //      m_pShareData->m_bGetStdout = TRUE;  /* 外部コマンド実行の「標準出力を得る」 */
00696         m_pShareData->m_nExecFlgOpt = 1;    /* 外部コマンド実行の「標準出力を得る」 */  // 2006.12.03 maru オプションの拡張のため
00697         m_pShareData->m_bLineNumIsCRLF = TRUE;  /* 指定行へジャンプの「改行単位の行番号」か「折り返し単位の行番号」か */
00698
00699         m_pShareData->m_nDiffFlgOpt = 0;    /* DIFF差分表示 */  //@@@ 2002.05.27 MIK
00700
00701         m_pShareData->m_nTagsOpt = 0;   /* CTAGS */ //@@@ 2003.05.12 MIK
00702         strcpy( m_pShareData->m_szTagsCmdLine, "" );    /* CTAGS */ //@@@ 2003.05.12 MIK
00703         //From Here 2005.04.03 MIK キーワード指定タグジャンプのHistory保管
00704         m_pShareData->m_nTagJumpKeywordArrNum = 0;
00705         for( i = 0; i < MAX_TAGJUMP_KEYWORD; ++i ){
00706             strcpy( m_pShareData->m_szTagJumpKeywordArr[i], "" );
00707             //m_pShareData->m_bTagJumpKeywordArrFavorite[i] = false;    //お気に入り
00708         }
00709         m_pShareData->m_bTagJumpICase = FALSE;
00710         m_pShareData->m_bTagJumpAnyWhere = FALSE;
00711         //To Here 2005.04.03 MIK
00712
00713     }else{
00714         /* オブジェクトがすでに存在する場合 */
00715         /* ファイルのビューを､ 呼び出し側プロセスのアドレス空間にマップします */
00716         m_pShareData = (DLLSHAREDATA*)::MapViewOfFile(
00717             m_hFileMap,
00718             FILE_MAP_ALL_ACCESS,
00719             0,
00720             0,
00721             0
00722         );
00723         //  From Here Oct. 27, 2000 genta
00724         if( m_pShareData->m_vStructureVersion != uShareDataVersion ){
00725             //  この共有データ領域は使えない．
00726             //  ハンドルを解放する
00727             ::UnmapViewOfFile( m_pShareData );
00728             m_pShareData = NULL;
00729             return false;
00730         }
00731         //  To Here Oct. 27, 2000 genta
00732     }
00733     return true;
00734 }
00735
00736
00737
00738
00739 /* KEYDATA配列にデータをセット */
00740 void CShareData::SetKeyNameArrVal(
00741     DLLSHAREDATA*   pShareData,
00742     int             nIdx,
00743     short           nKeyCode,
00744     char*           pszKeyName,
00745     short           nFuncCode_0,
00746     short           nFuncCode_1,
00747     short           nFuncCode_2,
00748     short           nFuncCode_3,
00749     short           nFuncCode_4,
00750     short           nFuncCode_5,
00751     short           nFuncCode_6,
00752     short           nFuncCode_7
00753  )
00754  {
00755     pShareData->m_pKeyNameArr[nIdx].m_nKeyCode = nKeyCode;
00756     strcpy( pShareData->m_pKeyNameArr[nIdx].m_szKeyName, pszKeyName );
00757     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[0] = nFuncCode_0;
00758     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[1] = nFuncCode_1;
00759     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[2] = nFuncCode_2;
00760     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[3] = nFuncCode_3;
00761     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[4] = nFuncCode_4;
00762     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[5] = nFuncCode_5;
00763     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[6] = nFuncCode_6;
00764     pShareData->m_pKeyNameArr[nIdx].m_nFuncCodeArr[7] = nFuncCode_7;
00765     return;
00766  }
00767
00768
00769 /* KEYDATA配列にデータをセット */
00770 /*void CShareData::SetKeyNameArrVal(  // 20050818 aroka 未使用なので削除
00771     DLLSHAREDATA*   pShareData,
00772     int             nIdx,
00773     short           nKeyCode,
00774     char*           pszKeyName
00775  )
00776 {
00777     pShareData->m_pKeyNameArr[nIdx].m_nKeyCode = nKeyCode;
00778     strcpy( pShareData->m_pKeyNameArr[nIdx].m_szKeyName, pszKeyName );
00779     return;
00780  }
00781 */
00782
00783
00784
00792 int CShareData::GetDocumentType( const char* pszFilePath )
00793 {
00794     char    szExt[_MAX_EXT];
00795
00796     if( NULL != pszFilePath && 0 < (int)strlen( pszFilePath ) ){
00797         _splitpath( pszFilePath, NULL, NULL, NULL, szExt );
00798         if( szExt[0] == '.' )
00799             return GetDocumentTypeExt( szExt + 1 );
00800         else
00801             return GetDocumentTypeExt( szExt );
00802     }
00803     return 0;
00804 }
00805
00815 int CShareData::GetDocumentTypeExt( const char* pszExt )
00816 {
00817     const char  pszSeps[] = " ;,";  // separator
00818
00819     int     i;
00820     char*   pszToken;
00821     char    szText[256];
00822
00823     for( i = 0; i < MAX_TYPES; ++i ){
00824         strcpy( szText, m_pShareData->m_Types[i].m_szTypeExts );
00825         pszToken = strtok( szText, pszSeps );
00826         while( NULL != pszToken ){
00827             if( 0 == _stricmp( pszExt, pszToken ) ){
00828                 return i;   //  番号
00829             }
00830             pszToken = strtok( NULL, pszSeps );
00831         }
00832     }
00833     return 0;   //  ハズレ
00834 }
00835
00836
00837
00838
00839
00848 BOOL CShareData::AddEditWndList( HWND hWnd, int nGroup/* = 0*/ )
00849 {
00850 //  int     i;
00851 //  int     j;
00852 //  /* 同じウィンドウハンドルがある場合は先頭に持ってくる */
00853 //  for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
00854 //      if( hWnd == m_pShareData->m_pEditArr[i].m_hWnd ){
00855 //          break;
00856 //      }
00857 //  }
00858 //  if( i < m_pShareData->m_nEditArrNum ){
00859 //      for( j = i; j > 0; j-- ){
00860 //          m_pShareData->m_pEditArr[j] = m_pShareData->m_pEditArr[j - 1];
00861 //      }
00862 //  }else{
00863 //      if( m_pShareData->m_nEditArrNum >= MAX_EDITWINDOWS ){   //最大値修正    //@@@ 2003.05.31 MIK
00864 //          /* これ以上登録できない */
00865 //          return FALSE;
00866 //      }
00867 //
00868 //      for( j = MAX_EDITWINDOWS - 1; j > 0; j-- ){
00869 //          m_pShareData->m_pEditArr[j] = m_pShareData->m_pEditArr[j - 1];
00870 //      }
00871 //      m_pShareData->m_nEditArrNum++;
00872 //      if( m_pShareData->m_nEditArrNum > MAX_EDITWINDOWS ){
00873 //          m_pShareData->m_nEditArrNum = MAX_EDITWINDOWS;
00878 //          /* これ以上登録できない */
00879 //          return FALSE;
00880 //      }
00881 //  }
00882 //  m_pShareData->m_pEditArr[0].m_hWnd = hWnd;
00883
00884     int     nSubCommand = TWNT_ADD;
00885     int     nIndex;
00886     CRecent cRecentEditNode;
00887     EditNode    MyEditNode;
00888     EditNode    *p;
00889
00890     memset( &MyEditNode, 0, sizeof( MyEditNode ) );
00891     MyEditNode.m_hWnd = hWnd;
00892
00893     {   // 2007.07.07 genta Lock領域
00894     LockGuard<CMutex> guard( g_cEditArrMutex );
00895     cRecentEditNode.EasyCreate( RECENT_FOR_EDITNODE );
00896
00897     //登録済みか？
00898     if( -1 != (nIndex = cRecentEditNode.FindItem( (const char*)&hWnd ) ) )
00899     {
00900         //もうこれ以上登録できないか？
00901         if( cRecentEditNode.GetItemCount() >= cRecentEditNode.GetArrayCount() )
00902         {
00903             cRecentEditNode.Terminate();
00904             return FALSE;
00905         }
00906         nSubCommand = TWNT_ORDER;
00907
00908         //以前の情報をコピーする。
00909         p = (EditNode*)cRecentEditNode.GetItem( nIndex );
00910         if( p )
00911         {
00912             memcpy( &MyEditNode, p, sizeof( MyEditNode ) );
00913         }
00914     }
00915
00916     /* ウィンドウ連番 */
00917
00918     if( 0 == ::GetWindowLongPtr( hWnd, sizeof(LONG_PTR) ) )
00919     {
00920         m_pShareData->m_nSequences++;
00921 		::SetWindowLongPtr( hWnd, sizeof(LONG_PTR) , (LONG_PTR)m_pShareData->m_nSequences );
00922
00923         //連番を更新する。
00924         MyEditNode.m_nIndex = m_pShareData->m_nSequences;
00925
00926         /* タブグループ連番 */
00927         if( nGroup > 0 )
00928         {
00929             MyEditNode.m_nGroup = nGroup;   // 指定のグループ
00930         }
00931         else
00932         {
00933             p = (EditNode*)cRecentEditNode.GetItem( 0 );
00934             if( NULL == p )
00935                 MyEditNode.m_nGroup = ++m_pShareData->m_nGroupSequences;    // 新規グループ
00936             else
00937                 MyEditNode.m_nGroup = p->m_nGroup;  // 最近アクティブのグループ
00938         }
00939
00940         MyEditNode.m_showCmdRestore = ::IsZoomed(hWnd)? SW_SHOWMAXIMIZED: SW_SHOWNORMAL;
00941         MyEditNode.m_bClosing = FALSE;
00942     }
00943
00944     //追加または先頭に移動する。
00945     cRecentEditNode.AppendItem( (const char*)&MyEditNode );
00946     cRecentEditNode.Terminate();
00947     }   // 2007.07.07 genta Lock領域終わり
00948
00949     //ウインドウ登録メッセージをブロードキャストする。
00950     PostMessageToAllEditors( MYWM_TAB_WINDOW_NOTIFY, (WPARAM)nSubCommand, (LPARAM)hWnd, hWnd, GetGroupId( hWnd ) );
00951
00952     return TRUE;
00953 }
00954
00955
00956
00957
00958
00964 void CShareData::DeleteEditWndList( HWND hWnd )
00965 {
00966 //  int     i;
00967 //  int     j;
00968 //
00969 //  /* ウィンドウハンドルの検索 */
00970 //  for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
00971 //      if( hWnd == m_pShareData->m_pEditArr[i].m_hWnd ){
00972 //          break;
00973 //      }
00974 //  }
00975 //  if( i >= m_pShareData->m_nEditArrNum ){
00976 //      return;
00977 //  }
00978 //  for( j = i; j < m_pShareData->m_nEditArrNum - 1; ++j ){
00979 //      m_pShareData->m_pEditArr[j] = m_pShareData->m_pEditArr[j + 1];
00980 //  }
00981 //  m_pShareData->m_nEditArrNum--;
00982
00983     int nGroup = GetGroupId( hWnd );
00984
00985     //ウインドウをリストから削除する。
00986     {   // 2007.07.07 genta Lock領域
00987         LockGuard<CMutex> guard( g_cEditArrMutex );
00988         CRecent cRecentEditNode;
00989         cRecentEditNode.EasyCreate( RECENT_FOR_EDITNODE );
00990         cRecentEditNode.DeleteItem( (const char*)&hWnd );
00991         cRecentEditNode.Terminate();
00992     }
00993
00994     //ウインドウ削除メッセージをブロードキャストする。
00995     PostMessageToAllEditors( MYWM_TAB_WINDOW_NOTIFY, (WPARAM)TWNT_DEL, (LPARAM)hWnd, hWnd, nGroup );
00996
00997     return;
00998 }
00999
01004 void CShareData::ResetGroupId( void )
01005 {
01006     int nGroup;
01007     int i;
01008
01009     nGroup = ++m_pShareData->m_nGroupSequences;
01010     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01011     {
01012         if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) )
01013         {
01014             m_pShareData->m_pEditArr[i].m_nGroup = nGroup;
01015         }
01016     }
01017 }
01018
01026 EditNode* CShareData::GetEditNode( HWND hWnd )
01027 {
01028     int i;
01029
01030     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01031     {
01032         if( hWnd == m_pShareData->m_pEditArr[i].m_hWnd )
01033         {
01034             if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) )
01035                 return &m_pShareData->m_pEditArr[i];
01036         }
01037     }
01038
01039     return NULL;
01040 }
01041
01046 int CShareData::GetGroupId( HWND hWnd )
01047 {
01048     EditNode* pEditNode;
01049     pEditNode = GetEditNode( hWnd );
01050     return (pEditNode != NULL)? pEditNode->m_nGroup: -1;
01051 }
01052
01062 bool CShareData::IsSameGroup( HWND hWnd1, HWND hWnd2 )
01063 {
01064     int nGroup1;
01065     int nGroup2;
01066
01067     if( hWnd1 == hWnd2 )
01068         return true;
01069
01070     nGroup1 = GetGroupId( hWnd1 );
01071     if( nGroup1 < 0 )
01072         return false;
01073
01074     nGroup2 = GetGroupId( hWnd2 );
01075     if( nGroup2 < 0 )
01076         return false;
01077
01078     return ( nGroup1 == nGroup2 );
01079 }
01080
01085 EditNode* CShareData::GetEditNodeAt( int nGroup, int nIndex )
01086 {
01087     int i;
01088     int iIndex;
01089
01090     iIndex = 0;
01091     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01092     {
01093         if( nGroup == 0 || nGroup == m_pShareData->m_pEditArr[i].m_nGroup )
01094         {
01095             if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) )
01096             {
01097                 if( iIndex == nIndex )
01098                     return &m_pShareData->m_pEditArr[i];
01099                 iIndex++;
01100             }
01101         }
01102     }
01103
01104     return NULL;
01105 }
01106
01111 EditNode* CShareData::GetTopEditNode( HWND hWnd )
01112 {
01113     int nGroup;
01114
01115     nGroup = GetGroupId( hWnd );
01116     return GetEditNodeAt( nGroup, 0 );
01117 }
01118
01126 HWND CShareData::GetTopEditWnd( HWND hWnd )
01127 {
01128     EditNode* p = GetTopEditNode( hWnd );
01129
01130     return ( p != NULL )? p->m_hWnd: NULL;
01131 }
01132
01133 /* 共有データのロード */
01134 BOOL CShareData::LoadShareData( void )
01135 {
01136     return ShareData_IO_2( true );
01137 }
01138
01139
01140
01141
01142 /* 共有データの保存 */
01143 void CShareData::SaveShareData( void )
01144 {
01145     ShareData_IO_2( false );
01146     return;
01147 }
01148
01149
01150
01151
01160 BOOL CShareData::RequestCloseAllEditor( BOOL bExit, int nGroup )
01161 {
01162     EditNode*   pWndArr;
01163     int     i;
01164     int     n;
01165
01166     n = GetOpenedWindowArr( &pWndArr, FALSE );
01167     if( 0 == n ){
01168         return TRUE;
01169     }
01170
01171     for( i = 0; i < n; ++i ){
01172         if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01173             if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01174                 /* アクティブにする */
01175                 ActivateFrameWindow( pWndArr[i].m_hWnd );
01176                 /* トレイからエディタへの終了要求 */
01177                 if( !::SendMessage( pWndArr[i].m_hWnd, MYWM_CLOSE, bExit, 0 ) ){    // 2007.02.13 ryoji bExitを引き継ぐ
01178                     delete []pWndArr;
01179                     return FALSE;
01180                 }
01181             }
01182         }
01183     }
01184
01185     delete []pWndArr;
01186     return TRUE;
01187 }
01188
01189
01190
01199 BOOL CShareData::IsPathOpened( const char* pszPath, HWND* phwndOwner )
01200 {
01201     int         i;
01202     FileInfo*   pfi;
01203     *phwndOwner = NULL;
01204
01205     /* 現在の編集ウィンドウの数を調べる */
01206     if( 0 ==  GetEditorWindowsNum( 0 ) ){
01207         return FALSE;
01208     }
01209
01210     for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01211         if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) ){
01212             /* トレイからエディタへの編集ファイル名要求通知 */
01213             ::SendMessage( m_pShareData->m_pEditArr[i].m_hWnd, MYWM_GETFILEINFO, 1, 0 );
01214             pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01215             /* 同一パスのファイルが既に開かれているか */
01216             if( 0 == _stricmp( pfi->m_szPath, pszPath ) ){
01217                 *phwndOwner = m_pShareData->m_pEditArr[i].m_hWnd;
01218                 return TRUE;
01219             }
01220         }
01221     }
01222     return FALSE;
01223 }
01224
01243 BOOL CShareData::IsPathOpened( const char* pszPath, HWND* phwndOwner, int nCharCode ){
01244
01245     if( IsPathOpened( pszPath, phwndOwner ) ){
01246         FileInfo*       pfi;
01247         CMRU            cMRU;
01248         ::SendMessage( *phwndOwner, MYWM_GETFILEINFO, 0, 0 );
01249         pfi = (FileInfo*)&m_pShareData->m_FileInfo_MYWM_GETFILEINFO;
01250
01251         if(nCharCode != CODE_AUTODETECT){
01252             char*   pszCodeNameCur = NULL;
01253             char*   pszCodeNameNew = NULL;
01254             if(-1 < nCharCode && nCharCode < CODE_CODEMAX){
01255                 pszCodeNameNew = (char*)gm_pszCodeNameArr_1[nCharCode];
01256             }
01257             if(-1 < pfi->m_nCharCode && pfi->m_nCharCode < CODE_CODEMAX ){
01258                 pszCodeNameCur = (char*)gm_pszCodeNameArr_1[pfi->m_nCharCode];
01259             }
01260
01261             if(NULL != pszCodeNameCur && NULL != pszCodeNameNew){
01262                 if(nCharCode != pfi->m_nCharCode){
01263 					::MYMESSAGEBOX( *phwndOwner, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
01264                         "%s\n\n\n既に開いているファイルを違う文字コードで開く場合は、\nファイルメニューから「開き直す」を使用してください。\n\n現在の文字コードセット=[%s]\n新しい文字コードセット=[%s]",
01265                         pszPath, pszCodeNameCur, pszCodeNameNew
01266                     );
01267                 }
01268             }
01269             else{
01270 				::MYMESSAGEBOX( *phwndOwner, MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST, GSTR_APPNAME,
01271                     "%s\n\n多重オープンの確認で不明な文字コードが指定されました。\n\n現在の文字コードセット=%d [%s]\n新しい文字コードセット=%d [%s]",
01272                     pszPath,
01273                     pfi->m_nCharCode, NULL==pszCodeNameCur?"不明":pszCodeNameCur,
01274                     nCharCode,        NULL==pszCodeNameNew?"不明":pszCodeNameNew
01275                 );
01276             }
01277         }
01278
01279         /* 開いているウィンドウをアクティブにする */
01280         /* アクティブにする */
01281         ActivateFrameWindow( *phwndOwner );
01282
01283         /* MRUリストへの登録 */
01284         cMRU.Add( pfi );
01285         return TRUE;
01286     }
01287     else {
01288         return FALSE;
01289     }
01290
01291 }
01292
01293
01294
01295
01302 int CShareData::GetEditorWindowsNum( int nGroup )
01303 {
01304     int     i;
01305     int     j;
01306
01307     j = 0;
01308     for( i = 0; i < m_pShareData->m_nEditArrNum; ++i ){
01309         if( IsEditWnd( m_pShareData->m_pEditArr[i].m_hWnd ) ){
01310             if( nGroup != 0 && nGroup != GetGroupId( m_pShareData->m_pEditArr[i].m_hWnd ) )
01311                 continue;
01312             j++;
01313         }
01314     }
01315     return j;
01316
01317 }
01318
01319
01320
01328 BOOL CShareData::PostMessageToAllEditors(
01329     UINT        uMsg,
01330     WPARAM      wParam,
01331     LPARAM      lParam,
01332     HWND        hWndLast,
01333     int         nGroup/* = 0*/
01334  )
01335 {
01336     EditNode*   pWndArr;
01337     int     i;
01338     int     n;
01339
01340     n = GetOpenedWindowArr( &pWndArr, FALSE );
01341     if( 0 == n ){
01342         return TRUE;
01343     }
01344
01345     // hWndLast以外へのメッセージ
01346     for( i = 0; i < n; ++i ){
01347         //  Jan. 24, 2005 genta hWndLast == NULLのときにメッセージが送られるように
01348         if( hWndLast == NULL || hWndLast != pWndArr[i].m_hWnd ){
01349             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01350                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01351                     /* メッセージをポスト */
01352                     ::PostMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01353                 }
01354             }
01355         }
01356     }
01357
01358     // hWndLastへのメッセージ
01359     for( i = 0; i < n; ++i ){
01360         if( hWndLast == pWndArr[i].m_hWnd ){
01361             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01362                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01363                     /* メッセージをポスト */
01364                     ::PostMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01365                 }
01366             }
01367         }
01368     }
01369
01370     delete []pWndArr;
01371     return TRUE;
01372 }
01373
01374
01382 BOOL CShareData::SendMessageToAllEditors(
01383     UINT        uMsg,       /* ポストするメッセージ */
01384     WPARAM      wParam,     /* 第1メッセージ パラメータ */
01385     LPARAM      lParam,     /* 第2メッセージ パラメータ */
01386     HWND        hWndLast,   /* 最後に送りたいウィンドウ */
01387     int         nGroup/* = 0*/
01388  )
01389 {
01390     EditNode*   pWndArr;
01391     int     i;
01392     int     n;
01393
01394     n = GetOpenedWindowArr( &pWndArr, FALSE );
01395     if( 0 == n ){
01396         return TRUE;
01397     }
01398
01399     // hWndLast以外へのメッセージ
01400     for( i = 0; i < n; ++i ){
01401         //  Jan. 24, 2005 genta hWndLast == NULLのときにメッセージが送られるように
01402         if( hWndLast == NULL || hWndLast != pWndArr[i].m_hWnd ){
01403             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01404                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01405                     /* メッセージを送る */
01406                     ::SendMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01407                 }
01408             }
01409         }
01410     }
01411
01412     // hWndLastへのメッセージ
01413     for( i = 0; i < n; ++i ){
01414         if( hWndLast == pWndArr[i].m_hWnd ){
01415             if( nGroup == 0 || nGroup == pWndArr[i].m_nGroup ){
01416                 if( IsEditWnd( pWndArr[i].m_hWnd ) ){
01417                     /* メッセージを送る */
01418                     ::SendMessage( pWndArr[i].m_hWnd, uMsg, wParam, lParam );
01419                 }
01420             }
01421         }
01422     }
01423
01424     delete []pWndArr;
01425     return TRUE;
01426 }
01427
01428
01429 /* 指定ウィンドウが、編集ウィンドウのフレームウィンドウかどうか調べる */
01430 BOOL CShareData::IsEditWnd( HWND hWnd )
01431 {
01432     char    szClassName[64];
01433     if( hWnd == NULL ){ // 2007.06.20 ryoji 条件追加
01434         return FALSE;
01435     }
01436     if( !::IsWindow( hWnd ) ){
01437         return FALSE;
01438     }
01439     if( 0 == ::GetClassName( hWnd, szClassName, sizeof(szClassName) - 1 ) ){
01440         return FALSE;
01441     }
01442     if(0 == strcmp( GSTR_EDITWINDOWNAME, szClassName ) ){
01443         return TRUE;
01444     }else{
01445         return FALSE;
01446     }
01447
01448 }
01449
01450 // GetOpenedWindowArr用静的変数／構造体
01451 static BOOL s_bSort;    // ソート指定
01452 static BOOL s_bGSort;   // グループ指定
01453 struct EditNodeEx{  // 拡張構造体
01454     EditNode* p;    // 編集ウィンドウ配列要素へのポインタ
01455     int nGroupMru;  // グループ単位のMRU番号
01456 };
01457
01458 // GetOpenedWindowArr用ソート関数
01459 static int __cdecl cmpGetOpenedWindowArr(const void *e1, const void *e2)
01460 {
01461     // 異なるグループのときはグループ比較する
01462     int nGroup1;
01463     int nGroup2;
01464
01465     if( s_bGSort )
01466     {
01467         // オリジナルのグループ番号のほうを見る
01468         nGroup1 = ((EditNodeEx*)e1)->p->m_nGroup;
01469         nGroup2 = ((EditNodeEx*)e2)->p->m_nGroup;
01470     }
01471     else
01472     {
01473         // グループのMRU番号のほうを見る
01474         nGroup1 = ((EditNodeEx*)e1)->nGroupMru;
01475         nGroup2 = ((EditNodeEx*)e2)->nGroupMru;
01476     }
01477     if( nGroup1 != nGroup2 )
01478     {
01479         return nGroup1 - nGroup2;   // グループ比較
01480     }
01481
01482     // グループ比較が行われなかったときはウィンドウ比較する
01483     if( s_bSort )
01484         return ( ((EditNodeEx*)e1)->p->m_nIndex - ((EditNodeEx*)e2)->p->m_nIndex ); // ウィンドウ番号比較
01485     return ( ((EditNodeEx*)e1)->p - ((EditNodeEx*)e2)->p ); // ウィンドウMRU比較（ソートしない）
01486 }
01487
01512 int CShareData::GetOpenedWindowArr( EditNode** ppEditNode, BOOL bSort, BOOL bGSort/* = FALSE */ )
01513 {
01514     int nRet;
01515
01516     LockGuard<CMutex> guard( g_cEditArrMutex );
01517     nRet = GetOpenedWindowArrCore( ppEditNode, bSort, bGSort );
01518
01519     return nRet;
01520 }
01521
01522 // GetOpenedWindowArr関数コア処理部
01523 int CShareData::GetOpenedWindowArrCore( EditNode** ppEditNode, BOOL bSort, BOOL bGSort/* = FALSE */ )
01524 {
01525     //編集ウインドウ数を取得する。
01526     EditNodeEx *pNode;  // ソート処理用の拡張リスト
01527     int     nRowNum;    //編集ウインドウ数
01528     int     i;
01529
01530     //編集ウインドウ数を取得する。
01531     *ppEditNode = NULL;
01532     if( m_pShareData->m_nEditArrNum <= 0 )
01533         return 0;
01534
01535     //編集ウインドウリスト格納領域を作成する。
01536     *ppEditNode = new EditNode[ m_pShareData->m_nEditArrNum ];
01537     if( NULL == *ppEditNode )
01538         return 0;
01539
01540     // 拡張リストを作成する
01541     pNode = new EditNodeEx[ m_pShareData->m_nEditArrNum ];
01542     if( NULL == pNode )
01543     {
01544         delete [](*ppEditNode);
01545         *ppEditNode = NULL;
01546         return 0;
01547     }
01548
01549     // 拡張リストの各要素に編集ウィンドウリストの各要素へのポインタを格納する
01550     nRowNum = 0;
01551     for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01552     {
01553         if( IsEditWnd( m_pShareData->m_pEditArr[ i ].m_hWnd ) )
01554         {
01555             pNode[ nRowNum ].p = &m_pShareData->m_pEditArr[ i ];    // ポインタ格納
01556             pNode[ nRowNum ].nGroupMru = -1;    // グループ単位のMRU番号初期化
01557             nRowNum++;
01558         }
01559     }
01560     if( nRowNum <= 0 )
01561     {
01562         delete []pNode;
01563         delete [](*ppEditNode);
01564         *ppEditNode = NULL;
01565         return 0;
01566     }
01567
01568     // 拡張リスト上でグループ単位のMRU番号をつける
01569     if( !bGSort )
01570     {
01571         int iGroupMru = 0;  // グループ単位のMRU番号
01572         int nGroup = -1;
01573         for( i = 0; i < nRowNum; i++ )
01574         {
01575             if( pNode[ i ].nGroupMru == -1 && nGroup != pNode[ i ].p->m_nGroup )
01576             {
01577                 nGroup = pNode[ i ].p->m_nGroup;
01578                 iGroupMru++;
01579                 pNode[ i ].nGroupMru = iGroupMru;   // MRU番号付与
01580
01581                 // 同一グループのウィンドウに同じMRU番号をつける
01582                 int j;
01583                 for( j = i + 1; j < nRowNum; j++ )
01584                 {
01585                     if( pNode[ j ].p->m_nGroup == nGroup )
01586                         pNode[ j ].nGroupMru = iGroupMru;
01587                 }
01588             }
01589         }
01590     }
01591
01592     // 拡張リストをソートする
01593     // Note. グループが１個だけの場合は従来（bGSort 引数無し）と同じ結果が得られる
01594     //       （グループ化する設定でなければグループは１個）
01595     s_bSort = bSort;
01596     s_bGSort = bGSort;
01597     qsort( pNode, nRowNum, sizeof(EditNodeEx), cmpGetOpenedWindowArr );
01598
01599     // 拡張リストのソート結果をもとに編集ウインドウリスト格納領域に結果を格納する
01600     for( i = 0; i < nRowNum; i++ )
01601     {
01602         (*ppEditNode)[i] = *pNode[i].p;
01603
01604         //インデックスを付ける。
01605         //このインデックスは m_pEditArr の配列番号です。
01606         (*ppEditNode)[i].m_nIndex = pNode[i].p - m_pShareData->m_pEditArr;  // ポインタ減算＝配列番号
01607     }
01608
01609     delete []pNode;
01610
01611     return nRowNum;
01612 }
01613
01622 bool CShareData::ReorderTab( HWND hwndSrc, HWND hwndDst )
01623 {
01624     EditNode    *p = NULL;
01625     int         nCount;
01626     int         i;
01627
01628     int nSrcTab = -1;
01629     int nDstTab = -1;
01630     LockGuard<CMutex> guard( g_cEditArrMutex );
01631     nCount = GetOpenedWindowArrCore( &p, TRUE );    // ロックは自分でやっているので直接コア部呼び出し
01632     for( i = 0; i < nCount; i++ )
01633     {
01634         if( hwndSrc == p[i].m_hWnd )
01635             nSrcTab = i;
01636         if( hwndDst == p[i].m_hWnd )
01637             nDstTab = i;
01638     }
01639
01640     if( 0 > nSrcTab || 0 > nDstTab || nSrcTab == nDstTab )
01641     {
01642         if( p ) delete []p;
01643         return false;
01644     }
01645
01646     // タブの順序を入れ替えるためにウィンドウのインデックスを入れ替える
01647     int nArr0, nArr1;
01648     int nIndex;
01649
01650     nArr0 = p[ nDstTab ].m_nIndex;
01651     nIndex = m_pShareData->m_pEditArr[ nArr0 ].m_nIndex;
01652     if( nSrcTab < nDstTab )
01653     {
01654         // タブ左方向ローテート
01655         for( i = nDstTab - 1; i >= nSrcTab; i-- )
01656         {
01657             nArr1 = p[ i ].m_nIndex;
01658             m_pShareData->m_pEditArr[ nArr0 ].m_nIndex = m_pShareData->m_pEditArr[ nArr1 ].m_nIndex;
01659             nArr0 = nArr1;
01660         }
01661     }
01662     else
01663     {
01664         // タブ右方向ローテート
01665         for( i = nDstTab + 1; i <= nSrcTab; i++ )
01666         {
01667             nArr1 = p[ i ].m_nIndex;
01668             m_pShareData->m_pEditArr[ nArr0 ].m_nIndex = m_pShareData->m_pEditArr[ nArr1 ].m_nIndex;
01669             nArr0 = nArr1;
01670         }
01671     }
01672     m_pShareData->m_pEditArr[ nArr0 ].m_nIndex = nIndex;
01673
01674     if( p ) delete []p;
01675     return true;
01676 }
01677
01690 HWND CShareData::SeparateGroup( HWND hwndSrc, HWND hwndDst, bool bSrcIsTop, int notifygroups[] )
01691 {
01692     LockGuard<CMutex> guard( g_cEditArrMutex );
01693
01694     EditNode* pSrcEditNode = GetEditNode( hwndSrc );
01695     EditNode* pDstEditNode = GetEditNode( hwndDst );
01696     int nSrcGroup = pSrcEditNode->m_nGroup;
01697     int nDstGroup;
01698     if( pDstEditNode == NULL )
01699     {
01700         hwndDst = NULL;
01701         nDstGroup = ++m_pShareData->m_nGroupSequences;  // 新規グループ
01702     }
01703     else
01704     {
01705         nDstGroup = pDstEditNode->m_nGroup; // 既存グループ
01706     }
01707
01708     pSrcEditNode->m_nGroup = nDstGroup;
01709     pSrcEditNode->m_nIndex = ++m_pShareData->m_nSequences;  // タブ並びの最後（起動順の最後）にもっていく
01710
01711     // 非表示のタブを既存グループに移動するときは非表示のままにするので
01712     // 内部情報も先頭にはならないよう、必要なら先頭ウィンドウと位置を交換する。
01713     if( !bSrcIsTop && pDstEditNode != NULL )
01714     {
01715         if( pSrcEditNode < pDstEditNode )
01716         {
01717             EditNode en = *pDstEditNode;
01718             *pDstEditNode = *pSrcEditNode;
01719             *pSrcEditNode = en;
01720         }
01721     }
01722
01723     notifygroups[0] = nSrcGroup;
01724     notifygroups[1] = nDstGroup;
01725
01726     return hwndDst;
01727 }
01728
01735 void CShareData::TraceOut( LPCTSTR lpFmt, ... )
01736 {
01737
01738     if( NULL == m_pShareData->m_hwndDebug
01739     || !IsEditWnd( m_pShareData->m_hwndDebug )
01740     ){
01741         // 2007.06.26 ryoji
01742         // アウトプットウィンドウを作成元と同じグループに作成するために m_hwndTraceOutSource を使っています
01743         // （m_hwndTraceOutSource は CEditWnd::Create() で予め設定）
01744         // ちょっと不恰好だけど、TraceOut() の引数にいちいち起動元を指定するのも．．．
01745         CEditApp::OpenNewEditor( NULL, m_hwndTraceOutSource, "-DEBUGMODE", CODE_SJIS, FALSE, true );
01746         //  2001/06/23 N.Nakatani 窓が出るまでウエイトをかけるように修正
01747         //アウトプットウインドウが出来るまで5秒ぐらい待つ。
01748         //  Jun. 25, 2001 genta OpenNewEditorの同期機能を利用するように変更
01749
01750         /* 開いているウィンドウをアクティブにする */
01751         /* アクティブにする */
01752         ActivateFrameWindow( m_pShareData->m_hwndDebug );
01753     }
01754     va_list argList;
01755     va_start( argList, lpFmt );
01756     wvsprintf( m_pShareData->m_szWork, lpFmt, argList );
01757     va_end( argList );
01758     ::SendMessage( m_pShareData->m_hwndDebug, MYWM_ADDSTRING, 0, 0 );
01759     return;
01760 }
01761
01762 /*
01763     CShareData::CheckMRUandOPENFOLDERList
01764     MRUとOPENFOLDERリストの存在チェックなど
01765     存在しないファイルやフォルダはMRUやOPENFOLDERリストから削除する
01766
01767     @note 現在は使われていないようだ。
01768     @par History
01769     2001.12.26 削除した。（YAZAKI）
01770
01771 */
01789 int CShareData::GetMacroFilename( int idx, char *pszPath, int nBufLen )
01790 {
01791     if( -1 != idx && !m_pShareData->m_MacroTable[idx].IsEnabled() )
01792         return 0;
01793 //  char fbuf[_MAX_PATH * 2];
01794     char *ptr;
01795     char *pszFile;
01796
01797     if( -1 == idx ){
01798         pszFile = "RecKey.mac";
01799     }else{
01800         pszFile = m_pShareData->m_MacroTable[idx].m_szFile;
01801     }
01802     if( pszFile[0] == '\0' ){   //  ファイル名が無い
01803         if( pszPath != NULL ){
01804             pszPath[0] = '\0';
01805         }
01806         return 0;
01807     }
01808     ptr = pszFile;
01809     int nLen = strlen( ptr ); // Jul. 21, 2003 genta strlen対象が誤っていたためマクロ実行ができない
01810
01811     if( !_IS_REL_PATH( pszFile )    // 絶対パス
01812         || m_pShareData->m_szMACROFOLDER[0] == '\0' ){  //  フォルダ指定なし
01813         if( pszPath == NULL || nBufLen <= nLen ){
01814             return -nLen;
01815         }
01816         strcpy( pszPath, pszFile );
01817         return nLen;
01818     }
01819     else {  //  フォルダ指定あり
01820         //  相対パス→絶対パス
01821         int nFolderSep = AddLastChar( m_pShareData->m_szMACROFOLDER, sizeof(m_pShareData->m_szMACROFOLDER), '\\' );
01822         int nAllLen;
01823         char *pszDir;
01824
01825          // 2003.06.24 Moca フォルダも相対パスなら実行ファイルからのパス
01826         // 2007.05.19 ryoji 相対パスは設定ファイルからのパスを優先
01827         if( _IS_REL_PATH( m_pShareData->m_szMACROFOLDER ) ){
01828             char szDir[_MAX_PATH + sizeof( m_pShareData->m_szMACROFOLDER )];
01829             GetInidirOrExedir( szDir, m_pShareData->m_szMACROFOLDER );
01830             pszDir = szDir;
01831         }else{
01832             pszDir = m_pShareData->m_szMACROFOLDER;
01833         }
01834
01835         int nDirLen = strlen( pszDir );
01836         nAllLen = nDirLen + nLen + ( -1 == nFolderSep ? 1 : 0 );
01837         if( pszPath == NULL || nBufLen <= nAllLen ){
01838             return -nAllLen;
01839         }
01840
01841         strcpy( pszPath, pszDir );
01842         ptr = pszPath + nDirLen;
01843         if( -1 == nFolderSep ){
01844             *ptr++ = '\\';
01845         }
01846         strcpy( ptr, pszFile );
01847         return nAllLen;
01848     }
01849
01850 }
01851
01856 bool CShareData::BeReloadWhenExecuteMacro( int idx )
01857 {
01858     if( !m_pShareData->m_MacroTable[idx].IsEnabled() )
01859         return false;
01860
01861     return ( m_pShareData->m_MacroTable[idx].m_bReloadWhenExecute == TRUE );
01862 }
01863
01867 void CShareData::AddToSearchKeyArr( const char* pszSearchKey )
01868 {
01869 /*
01870     CMemory pcmWork( pszSearchKey, lstrlen( pszSearchKey ) );
01871     int     i;
01872     int     j;
01873     for( i = 0; i < m_pShareData->m_nSEARCHKEYArrNum; ++i ){
01874         if( 0 == strcmp( pszSearchKey, m_pShareData->m_szSEARCHKEYArr[i] ) ){
01875             break;
01876         }
01877     }
01878     if( i < m_pShareData->m_nSEARCHKEYArrNum ){
01879         for( j = i; j > 0; j-- ){
01880             strcpy( m_pShareData->m_szSEARCHKEYArr[j], m_pShareData->m_szSEARCHKEYArr[j - 1] );
01881         }
01882     }else{
01883         for( j = MAX_SEARCHKEY - 1; j > 0; j-- ){
01884             strcpy( m_pShareData->m_szSEARCHKEYArr[j], m_pShareData->m_szSEARCHKEYArr[j - 1] );
01885         }
01886         ++m_pShareData->m_nSEARCHKEYArrNum;
01887         if( m_pShareData->m_nSEARCHKEYArrNum > MAX_SEARCHKEY ){
01888             m_pShareData->m_nSEARCHKEYArrNum = MAX_SEARCHKEY;
01889         }
01890     }
01891     strcpy( m_pShareData->m_szSEARCHKEYArr[0], pcmWork.GetPtr() );
01892 */
01893     CRecent cRecentSearchKey;
01894
01895     cRecentSearchKey.EasyCreate( RECENT_FOR_SEARCH );
01896     cRecentSearchKey.AppendItem( pszSearchKey );
01897     cRecentSearchKey.Terminate();
01898
01899     return;
01900 }
01901
01905 void CShareData::AddToReplaceKeyArr( const char* pszReplaceKey )
01906 {
01907 /*
01908     CMemory pcmWork( pszReplaceKey, lstrlen( pszReplaceKey ) );
01909     int     i;
01910     int     j;
01911     for( i = 0; i < m_pShareData->m_nREPLACEKEYArrNum; ++i ){
01912         if( 0 == strcmp( pszReplaceKey, m_pShareData->m_szREPLACEKEYArr[i] ) ){
01913             break;
01914         }
01915     }
01916     if( i < m_pShareData->m_nREPLACEKEYArrNum ){
01917         for( j = i; j > 0; j-- ){
01918             strcpy( m_pShareData->m_szREPLACEKEYArr[j], m_pShareData->m_szREPLACEKEYArr[j - 1] );
01919         }
01920     }else{
01921         for( j = MAX_REPLACEKEY - 1; j > 0; j-- ){
01922             strcpy( m_pShareData->m_szREPLACEKEYArr[j], m_pShareData->m_szREPLACEKEYArr[j - 1] );
01923         }
01924         ++m_pShareData->m_nREPLACEKEYArrNum;
01925         if( m_pShareData->m_nREPLACEKEYArrNum > MAX_REPLACEKEY ){
01926             m_pShareData->m_nREPLACEKEYArrNum = MAX_REPLACEKEY;
01927         }
01928     }
01929     strcpy( m_pShareData->m_szREPLACEKEYArr[0], pcmWork.GetPtr() );
01930 */
01931     CRecent cRecentReplaceKey;
01932
01933     cRecentReplaceKey.EasyCreate( RECENT_FOR_REPLACE );
01934     cRecentReplaceKey.AppendItem( pszReplaceKey );
01935     cRecentReplaceKey.Terminate();
01936
01937     return;
01938 }
01939
01943 void CShareData::AddToGrepFileArr( const char* pszGrepFile )
01944 {
01945 /*
01946     CMemory pcmWork( pszGrepFile, lstrlen( pszGrepFile ) );
01947     int     i;
01948     int     j;
01949     for( i = 0; i < m_pShareData->m_nGREPFILEArrNum; ++i ){
01950         if( 0 == strcmp( pszGrepFile, m_pShareData->m_szGREPFILEArr[i] ) ){
01951             break;
01952         }
01953     }
01954     if( i < m_pShareData->m_nGREPFILEArrNum ){
01955         for( j = i; j > 0; j-- ){
01956             strcpy( m_pShareData->m_szGREPFILEArr[j], m_pShareData->m_szGREPFILEArr[j - 1] );
01957         }
01958     }else{
01959         for( j = MAX_GREPFILE - 1; j > 0; j-- ){
01960             strcpy( m_pShareData->m_szGREPFILEArr[j], m_pShareData->m_szGREPFILEArr[j - 1] );
01961         }
01962         ++m_pShareData->m_nGREPFILEArrNum;
01963         if( m_pShareData->m_nGREPFILEArrNum > MAX_GREPFILE ){
01964             m_pShareData->m_nGREPFILEArrNum = MAX_GREPFILE;
01965         }
01966     }
01967     strcpy( m_pShareData->m_szGREPFILEArr[0], pcmWork.GetPtr() );
01968 */
01969     CRecent cRecentGrepFile;
01970
01971     cRecentGrepFile.EasyCreate( RECENT_FOR_GREP_FILE );
01972     cRecentGrepFile.AppendItem( pszGrepFile );
01973     cRecentGrepFile.Terminate();
01974
01975     return;
01976 }
01977
01981 void CShareData::AddToGrepFolderArr( const char* pszGrepFolder )
01982 {
01983 /*
01984     CMemory pcmWork( pszGrepFolder, lstrlen( pszGrepFolder ) );
01985     int     i;
01986     int     j;
01987     for( i = 0; i < m_pShareData->m_nGREPFOLDERArrNum; ++i ){
01988         if( 0 == strcmp( pszGrepFolder, m_pShareData->m_szGREPFOLDERArr[i] ) ){
01989             break;
01990         }
01991     }
01992     if( i < m_pShareData->m_nGREPFOLDERArrNum ){
01993         for( j = i; j > 0; j-- ){
01994             strcpy( m_pShareData->m_szGREPFOLDERArr[j], m_pShareData->m_szGREPFOLDERArr[j - 1] );
01995         }
01996     }else{
01997         for( j = MAX_GREPFOLDER - 1; j > 0; j-- ){
01998             strcpy( m_pShareData->m_szGREPFOLDERArr[j], m_pShareData->m_szGREPFOLDERArr[j - 1] );
01999         }
02000         ++m_pShareData->m_nGREPFOLDERArrNum;
02001         if( m_pShareData->m_nGREPFOLDERArrNum > MAX_GREPFOLDER ){
02002             m_pShareData->m_nGREPFOLDERArrNum = MAX_GREPFOLDER;
02003         }
02004     }
02005     strcpy( m_pShareData->m_szGREPFOLDERArr[0], pcmWork.GetPtr() );
02006 */
02007     CRecent cRecentGrepFolder;
02008
02009     cRecentGrepFolder.EasyCreate( RECENT_FOR_GREP_FOLDER );
02010     cRecentGrepFolder.AppendItem( pszGrepFolder );
02011     cRecentGrepFolder.Terminate();
02012
02013     return;
02014 }
02015
02018 bool CShareData::ExtWinHelpIsSet( int nTypeNo )
02019 {
02020     if (m_pShareData->m_Common.m_szExtHelp[0] != '\0'){
02021         return true;    //  共通設定に設定されている
02022     }
02023     if (nTypeNo < 0 || MAX_TYPES <= nTypeNo ){
02024         return false;   //  共通設定に設定されていない＆nTypeNoが範囲外。
02025     }
02026     if (m_pShareData->m_Types[nTypeNo].m_szExtHelp[0] != '\0'){
02027         return true;    //  タイプ別設定に設定されている。
02028     }
02029     return false;
02030 }
02031
02036 char* CShareData::GetExtWinHelp( int nTypeNo )
02037 {
02038     if (0 <= nTypeNo && nTypeNo < MAX_TYPES && m_pShareData->m_Types[nTypeNo].m_szExtHelp[0] != '\0'){
02039         return m_pShareData->m_Types[nTypeNo].m_szExtHelp;
02040     }
02041
02042     return m_pShareData->m_Common.m_szExtHelp;
02043 }
02046 bool CShareData::ExtHTMLHelpIsSet( int nTypeNo )
02047 {
02048     if (m_pShareData->m_Common.m_szExtHtmlHelp[0] != '\0'){
02049         return true;    //  共通設定に設定されている
02050     }
02051     if (nTypeNo < 0 || MAX_TYPES <= nTypeNo ){
02052         return false;   //  共通設定に設定されていない＆nTypeNoが範囲外。
02053     }
02054     if (m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp[0] != '\0'){
02055         return true;    //  タイプ別設定に設定されている。
02056     }
02057     return false;
02058 }
02059
02064 char* CShareData::GetExtHTMLHelp( int nTypeNo )
02065 {
02066     if (0 <= nTypeNo && nTypeNo < MAX_TYPES && m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp[0] != '\0'){
02067         return m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp;
02068     }
02069
02070     return m_pShareData->m_Common.m_szExtHtmlHelp;
02071 }
02074 bool CShareData::HTMLHelpIsSingle( int nTypeNo )
02075 {
02076     if (0 <= nTypeNo && nTypeNo < MAX_TYPES && m_pShareData->m_Types[nTypeNo].m_szExtHtmlHelp[0] != '\0'){
02077         return (m_pShareData->m_Types[nTypeNo].m_bHtmlHelpIsSingle != FALSE);
02078     }
02079
02080     return (m_pShareData->m_Common.m_bHtmlHelpIsSingle != FALSE);
02081 }
02082
02092 const char* CShareData::MyGetDateFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen )
02093 {
02094     return MyGetDateFormat( systime, pszDest, nDestLen, m_pShareData->m_Common.m_nDateFormatType, m_pShareData->m_Common.m_szDateFormat );
02095 }
02096
02097 const char* CShareData::MyGetDateFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen, int nDateFormatType, char* szDateFormat )
02098 {
02099     const char* pszForm;
02100     DWORD dwFlags;
02101     if( 0 == nDateFormatType ){
02102         dwFlags = DATE_LONGDATE;
02103         pszForm = NULL;
02104     }else{
02105         dwFlags = 0;
02106         pszForm = szDateFormat;
02107     }
02108     ::GetDateFormat( LOCALE_USER_DEFAULT, dwFlags, &systime, pszForm, pszDest, nDestLen );
02109     return pszDest;
02110 }
02111
02112
02113
02114 /* 時刻をフォーマット */
02115 const char* CShareData::MyGetTimeFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen )
02116 {
02117     return MyGetTimeFormat( systime, pszDest, nDestLen, m_pShareData->m_Common.m_nTimeFormatType, m_pShareData->m_Common.m_szTimeFormat );
02118 }
02119
02120 /* 時刻をフォーマット */
02121 const char* CShareData::MyGetTimeFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen, int nTimeFormatType, char* szTimeFormat )
02122 {
02123     const char* pszForm;
02124     DWORD dwFlags;
02125     if( 0 == nTimeFormatType ){
02126         dwFlags = 0;
02127         pszForm = NULL;
02128     }else{
02129         dwFlags = 0;
02130         pszForm = szTimeFormat;
02131     }
02132     ::GetTimeFormat( LOCALE_USER_DEFAULT, dwFlags, &systime, pszForm, pszDest, nDestLen );
02133     return pszDest;
02134 }
02135
02136
02137
02144 /**************** 未使用
02145 LPTSTR CShareData::GetTransformFileName( LPCTSTR pszSrc, LPTSTR pszDest, int nDestLen )
02146 {
02147     int i;
02148     TCHAR pszBuf[ _MAX_PATH + 8 ];
02149     TCHAR szFrom[ _MAX_PATH ];
02150     bool  bTransform = false;
02151
02152 #ifdef _DEBUG
02153     if( _MAX_PATH + 8 < nDestLen ){
02154         nDestLen = _MAX_PATH + 8;
02155     }
02156 #endif
02157     _tcsncpy( pszBuf, pszSrc, _MAX_PATH + 7 );
02158     pszBuf[_MAX_PATH + 7] = '\0';
02159     for( i = 0; i < m_pShareData->m_nTransformFileNameArrNum; i++ ){
02160         if( '\0' != m_pShareData->m_szTransformFileNameFrom[i][0] ){
02161             if( ExpandMetaToFolder( m_pShareData->m_szTransformFileNameFrom[i], szFrom, _MAX_PATH ) ){
02162                 GetFilePathFormat( pszBuf, pszDest, nDestLen, szFrom, m_pShareData->m_szTransformFileNameTo[i] );
02163                 _tcscpy( pszBuf, pszDest );
02164                 bTransform = true;
02165             }
02166         }
02167     }
02168     if( !bTransform ){
02169         _tcsncpy( pszDest, pszBuf, nDestLen - 1 ); // 1回も変換しないときのために
02170         pszDest[nDestLen - 1] = '\0';
02171     }
02172     return pszDest;
02173 }
02174 ****************/
02175
02183 LPTSTR CShareData::GetTransformFileNameFast( LPCTSTR pszSrc, LPTSTR pszDest, int nDestLen )
02184 {
02185     int i;
02186     TCHAR szBuf[_MAX_PATH + 1];
02187
02188     if( -1 == m_nTransformFileNameCount ){
02189         TransformFileName_MakeCache();
02190     }
02191
02192     if( 0 < m_nTransformFileNameCount ){
02193         GetFilePathFormat( pszSrc, pszDest, nDestLen,
02194             m_szTransformFileNameFromExp[0],
02195             m_pShareData->m_szTransformFileNameTo[m_nTransformFileNameOrgId[0]] );
02196         for( i = 1; i < m_nTransformFileNameCount; i++ ){
02197             _tcscpy( szBuf, pszDest );
02198             GetFilePathFormat( szBuf, pszDest, nDestLen,
02199                 m_szTransformFileNameFromExp[i],
02200                 m_pShareData->m_szTransformFileNameTo[m_nTransformFileNameOrgId[i]] );
02201         }
02202     }else{
02203         // 変換する必要がない コピーだけする
02204         _tcsncpy( pszDest, pszSrc, nDestLen - 1 );
02205         pszDest[nDestLen - 1] = '\0';
02206     }
02207     return pszDest;
02208 }
02209
02210
02216 int CShareData::TransformFileName_MakeCache( void ){
02217     int i;
02218     int nCount = 0;
02219     for( i = 0; i < m_pShareData->m_nTransformFileNameArrNum; i++ ){
02220         if( '\0' != m_pShareData->m_szTransformFileNameFrom[i][0] ){
02221             if( ExpandMetaToFolder( m_pShareData->m_szTransformFileNameFrom[i],
02222              m_szTransformFileNameFromExp[nCount], _MAX_PATH ) ){
02223                 // m_szTransformFileNameToとm_szTransformFileNameFromExpの番号がずれることがあるので記録しておく
02224                 m_nTransformFileNameOrgId[nCount] = i;
02225                 nCount++;
02226             }
02227         }
02228     }
02229     m_nTransformFileNameCount = nCount;
02230     return nCount;
02231 }
02232
02233
02243 LPCTSTR CShareData::GetFilePathFormat( LPCTSTR pszSrc, LPTSTR pszDest, int nDestLen, LPCTSTR pszFrom, LPCTSTR pszTo )
02244 {
02245     int i, j;
02246     int nSrcLen;
02247     int nFromLen, nToLen;
02248     int nCopy;
02249
02250     nSrcLen  = _tcslen( pszSrc );
02251     nFromLen = _tcslen( pszFrom );
02252     nToLen   = _tcslen( pszTo );
02253
02254     nDestLen--;
02255
02256     for( i = 0, j = 0; i < nSrcLen && j < nDestLen; i++ ){
02257 #if defined(_MBCS)
02258         if( 0 == strnicmp( &pszSrc[i], pszFrom, nFromLen ) )
02259 #else
02260         if( 0 == _tcsncicmp( &pszSrc[i], pszFrom, nFromLen ) )
02261 #endif
02262         {
02263             nCopy = __min( nToLen, nDestLen - j );
02264             memcpy( &pszDest[j], pszTo, nCopy * sizeof( TCHAR ) );
02265             j += nCopy;
02266             i += nFromLen - 1;
02267         }else{
02268 #if defined(_MBCS)
02269 // SJIS 専用処理
02270             if( _IS_SJIS_1( (unsigned char)pszSrc[i] ) && i + 1 < nSrcLen && _IS_SJIS_2( (unsigned char)pszSrc[i + 1] ) ){
02271                 if( j + 1 < nDestLen ){
02272                     pszDest[j] = pszSrc[i];
02273                     j++;
02274                     i++;
02275                 }else{
02276                     // SJISの先行バイトだけコピーされるのを防ぐ
02277                     break;// goto end_of_func;
02278                 }
02279             }
02280 #endif
02281             pszDest[j] = pszSrc[i];
02282             j++;
02283         }
02284     }
02285 // end_of_func:;
02286     pszDest[j] = '\0';
02287     return pszDest;
02288 }
02289
02290
02300 bool CShareData::ExpandMetaToFolder( LPCTSTR pszSrc, LPTSTR pszDes, int nDesLen )
02301 {
02302     LPCTSTR ps;
02303     LPTSTR  pd, pd_end;
02304     LPTSTR  pStr;
02305
02306 #define _USE_META_ALIAS
02307 #ifdef _USE_META_ALIAS
02308     struct MetaAlias{
02309         LPTSTR szAlias;
02310         int nLenth;
02311         LPTSTR szOrig;
02312     };
02313     static const MetaAlias AliasList[] = {
02314         {  _T("COMDESKTOP"), 10, _T("Common Desktop") },
02315         {  _T("COMMUSIC"), 8, _T("CommonMusic") },
02316         {  _T("COMVIDEO"), 8, _T("CommonVideo") },
02317         {  _T("MYMUSIC"),  7, _T("My Music") },
02318         {  _T("MYVIDEO"),  7, _T("Video") },
02319         {  _T("COMPICT"),  7, _T("CommonPictures") },
02320         {  _T("MYPICT"),   6, _T("My Pictures") },
02321         {  _T("COMDOC"),   6, _T("Common Documents") },
02322         {  _T("MYDOC"),    5, _T("Personal") },
02323         { NULL, 0 , NULL }
02324     };
02325 #endif
02326
02327     pd_end = pszDes + ( nDesLen - 1 );
02328     for( ps = pszSrc, pd = pszDes; '\0' != *ps; ps++ ){
02329         if( pd_end <= pd ){
02330             if( pd_end == pd ){
02331                 *pd = '\0';
02332             }
02333             return false;
02334         }
02335
02336         if( '%' != *ps ){
02337             *pd = *ps;
02338             pd++;
02339             continue;
02340         }
02341
02342         // %% は %
02343         if( '%' == ps[1] ){
02344             *pd = '%';
02345             pd++;
02346             ps++;
02347             continue;
02348         }
02349
02350         if( '\0' != ps[1] ){
02351             TCHAR szMeta[_MAX_PATH];
02352             TCHAR szPath[_MAX_PATH + 1];
02353             int   nMetaLen;
02354             int   nPathLen;
02355             bool  bFolderPath;
02356             ps++;
02357             // %SAKURA%
02358             if( 0 == my_tcsnicmp( _T("SAKURA%"), ps, 7 ) ){
02359                 // exeのあるフォルダ
02360                 GetExedir( szPath );
02361                 nMetaLen = 6;
02362             // %SAKURADATA% // 2007.06.06 ryoji
02363             }else if( 0 == my_tcsnicmp( _T("SAKURADATA%"), ps, 11 ) ){
02364                 // iniのあるフォルダ
02365                 GetInidir( szPath );
02366                 nMetaLen = 10;
02367             // メタ文字列っぽい
02368             }else if( NULL != (pStr = _tcschr( (LPTSTR)ps, '%' ) )){
02369                 nMetaLen = pStr - ps;
02370                 if( nMetaLen < _MAX_PATH ){
02371                     _tmemcpy( szMeta, ps, nMetaLen );
02372                     szMeta[nMetaLen] = '\0';
02373                 }else{
02374                     *pd = '\0';
02375                     return false;
02376                 }
02377 #ifdef _USE_META_ALIAS
02378                 // メタ文字列がエイリアス名なら書き換える
02379                 const MetaAlias* pAlias;
02380                 for( pAlias = &AliasList[0]; nMetaLen < pAlias->nLenth; pAlias++ )
02381                     ; // 読み飛ばす
02382                 for( ; nMetaLen == pAlias->nLenth; pAlias++ ){
02383                     if( 0 == my_tcsicmp( pAlias->szAlias, szMeta ) ){
02384                         _tcscpy( szMeta, pAlias->szOrig );
02385                         break;
02386                     }
02387                 }
02388 #endif
02389                 // 直接レジストリで調べる
02390                 szPath[0] = '\0';
02391                 bFolderPath = ReadRegistry( HKEY_CURRENT_USER,
02392                     _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"),
02393                     szMeta, szPath, sizeof( szPath ) );
02394                 if( false == bFolderPath || '\0' == szPath[0] ){
02395                     bFolderPath = ReadRegistry( HKEY_LOCAL_MACHINE,
02396                         _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"),
02397                         szMeta, szPath, sizeof( szPath ) );
02398                 }
02399                 if( false == bFolderPath || '\0' == szPath[0] ){
02400                     pStr = _tgetenv( szMeta );
02401                     // 環境変数
02402                     if( NULL != pStr ){
02403                         nPathLen = _tcslen( pStr );
02404                         if( nPathLen < _MAX_PATH ){
02405                             _tcscpy( szPath, pStr );
02406                         }else{
02407                             *pd = '\0';
02408                             return false;
02409                         }
02410                     }
02411                     // 未定義のメタ文字列は 入力された%...%を，そのまま文字として処理する
02412                     else if(  pd + ( nMetaLen + 2 ) < pd_end ){
02413                         *pd = '%';
02414                         _tmemcpy( &pd[1], ps, nMetaLen );
02415                         pd[nMetaLen + 1] = '%';
02416                         pd += nMetaLen + 2;
02417                         ps += nMetaLen;
02418                         continue;
02419                     }else{
02420                         *pd = '\0';
02421                         return false;
02422                     }
02423                 }
02424             }else{
02425                 // %...%の終わりの%がない とりあえず，%をコピー
02426                 *pd = '%';
02427                 pd++;
02428                 ps--; // 先にps++してしまったので戻す
02429                 continue;
02430             }
02431
02432             // ロングファイル名にする
02433             nPathLen = _tcslen( szPath );
02434             pStr = szPath;
02435             if( nPathLen < _MAX_PATH && 0 != nPathLen ){
02436                 if( FALSE != GetLongFileName( szPath, szMeta ) ){
02437                     pStr = szMeta;
02438                 }
02439             }
02440
02441             // 最後のフォルダ区切り記号を削除する
02442             // [A:\]などのルートであっても削除
02443             for(nPathLen = 0; pStr[nPathLen] != '\0'; nPathLen++ ){
02444 #ifdef _MBCS
02445                 if( _IS_SJIS_1( (unsigned char)pStr[nPathLen] ) && _IS_SJIS_2( (unsigned char)pStr[nPathLen + 1] ) ){
02446                     // SJIS読み飛ばし
02447                     nPathLen++; // 2003/01/17 sui
02448                 }else
02449 #endif
02450                 if( '\\' == pStr[nPathLen] && '\0' == pStr[nPathLen + 1] ){
02451                     pStr[nPathLen] = '\0';
02452                     break;
02453                 }
02454             }
02455
02456             if( pd + nPathLen < pd_end && 0 != nPathLen ){
02457                 _tmemcpy( pd, pStr, nPathLen );
02458                 pd += nPathLen;
02459                 ps += nMetaLen;
02460             }else{
02461                 *pd = '\0';
02462                 return false;
02463             }
02464         }else{
02465             // 最後の文字が%だった
02466             *pd = *ps;
02467             pd++;
02468         }
02469     }
02470     *pd = '\0';
02471     return true;
02472 }
02473
02474 static const char* const    ppszKeyWordsCPP[] = {
02475     "#define",
02476     "#elif",
02477     "#else",
02478     "#endif",
02479     "#error",
02480     "#if",
02481     "#ifdef",
02482     "#ifndef",
02483     "#include",
02484     "#line",
02485     "#pragma",
02486     "#undef",
02487     "__FILE__",
02488     "__declspec",
02489     "asm",
02490     "auto",
02491     "bool",
02492     "break",
02493     "case",
02494     "catch",
02495     "char",
02496     "class",
02497     "const",
02498     "const_cast",
02499     "continue",
02500     "default",
02501     "define",
02502     "defined",
02503     "delete",
02504     "do",
02505     "double",
02506     "dynamic_cast",
02507     "elif",
02508     "else",
02509     "endif",
02510     "enum",
02511     "error",
02512     "explicit",
02513     "export",
02514     "extern",
02515     "false",
02516     "float",
02517     "for",
02518     "friend",
02519     "goto",
02520     "if",
02521     "ifdef",
02522     "ifndef",
02523     "include",
02524     "inline",
02525     "int",
02526     "line",
02527     "long",
02528     "mutable",
02529     "namespace",
02530     "new",
02531     "operator",
02532     "pragma",
02533     "private",
02534     "protected",
02535     "public",
02536     "register",
02537     "reinterpret_cast",
02538     "return",
02539     "short",
02540     "signed",
02541     "sizeof",
02542     "static",
02543     "static_cast",
02544     "struct",
02545     "switch",
02546     "template",
02547     "this",
02548     "throw",
02549     "true",
02550     "try",
02551     "typedef",
02552     "typeid",
02553     "typename",
02554     "undef",
02555     "union",
02556     "unsigned",
02557     "using",
02558     "virtual",
02559     "void",
02560     "volatile",
02561     "wchar_t",
02562     "while"
02563 };
02564
02565 static const char* const    ppszKeyWordsHTML[] = {
02566     "_blank",
02567     "_parent",
02568     "_self",
02569     "_top",
02570     "A",
02571     "ABBR",
02572     "ABOVE",
02573     "absbottom",
02574     "absmiddle",
02575     "ACCESSKEY",
02576     "ACRONYM",
02577     "ACTION",
02578     "ADDRESS",
02579     "ALIGN",
02580     "all",
02581     "APPLET",
02582     "AREA",
02583     "AUTOPLAY",
02584     "AUTOSTART",
02585     "B",
02586     "BACKGROUND",
02587     "BASE",
02588     "BASEFONT",
02589     "baseline",
02590     "BEHAVIOR",
02591     "BELOW",
02592     "BGCOLOR",
02593     "BGSOUND",
02594     "BIG",
02595     "BLINK",
02596     "BLOCKQUOTE",
02597     "BODY",
02598     "BORDER",
02599     "BORDERCOLOR",
02600     "BORDERCOLORDARK",
02601     "BORDERCOLORLIGHT",
02602     "BOTTOM",
02603     "box",
02604     "BR",
02605     "BUTTON",
02606     "CAPTION",
02607     "CELLPADDING",
02608     "CELLSPACING",
02609     "CENTER",
02610     "CHALLENGE",
02611     "char",
02612     "checkbox",
02613     "CHECKED",
02614     "CITE",
02615     "CLEAR",
02616     "CLIP",
02617     "CODE",
02618     "CODEBASE",
02619     "CODETYPE",
02620     "COL",
02621     "COLGROUP",
02622     "COLOR",
02623     "COLS",
02624     "COLSPAN",
02625     "COMMENT",
02626     "CONTROLS",
02627     "DATA",
02628     "DD",
02629     "DECLARE",
02630     "DEFER",
02631     "DEL",
02632     "DELAY",
02633     "DFN",
02634     "DIR",
02635     "DIRECTION",
02636     "DISABLED",
02637     "DIV",
02638     "DL",
02639     "DOCTYPE",
02640     "DT",
02641     "EM",
02642     "EMBED",
02643     "ENCTYPE",
02644     "FACE",
02645     "FIELDSET",
02646     "file",
02647     "FONT",
02648     "FOR",
02649     "FORM",
02650     "FRAME",
02651     "FRAMEBORDER",
02652     "FRAMESET",
02653     "GET",
02654     "groups",
02655     "GROUPS",
02656     "GUTTER",
02657     "H1",
02658     "H2",
02659     "H3",
02660     "H4",
02661     "H5",
02662     "H6",
02663     "H7",
02664     "HEAD",
02665     "HEIGHT",
02666     "HIDDEN",
02667     "Hn",
02668     "HR",
02669     "HREF",
02670     "hsides",
02671     "HSPACE",
02672     "HTML",
02673     "I",
02674     "ID",
02675     "IFRAME",
02676     "ILAYER",
02677     "image",
02678     "IMG",
02679     "INDEX",
02680     "inherit",
02681     "INPUT",
02682     "INS",
02683     "ISINDEX",
02684     "JavaScript",
02685     "justify",
02686     "KBD",
02687     "KEYGEN",
02688     "LABEL",
02689     "LANGUAGE",
02690     "LAYER",
02691     "LEFT",
02692     "LEGEND",
02693     "lhs",
02694     "LI",
02695     "LINK",
02696     "LISTING",
02697     "LOOP",
02698     "MAP",
02699     "MARQUEE",
02700     "MAXLENGTH",
02701     "MENU",
02702     "META",
02703     "METHOD",
02704     "METHODS",
02705     "MIDDLE",
02706     "MULTICOL",
02707     "MULTIPLE",
02708     "NAME",
02709     "NEXT",
02710     "NEXTID",
02711     "NOBR",
02712     "NOEMBED",
02713     "NOFRAMES",
02714     "NOLAYER",
02715     "none",
02716     "NOSAVE",
02717     "NOSCRIPT",
02718     "NOTAB",
02719     "NOWRAP",
02720     "OBJECT",
02721     "OL",
02722     "onBlur",
02723     "onChange",
02724     "onClick",
02725     "onFocus",
02726     "onLoad",
02727     "onMouseOut",
02728     "onMouseOver",
02729     "onReset",
02730     "onSelect",
02731     "onSubmit",
02732     "OPTION",
02733     "P",
02734     "PAGEX",
02735     "PAGEY",
02736     "PALETTE",
02737     "PANEL",
02738     "PARAM",
02739     "PARENT",
02740     "password",
02741     "PLAINTEXT",
02742     "PLUGINSPAGE",
02743     "POST",
02744     "PRE",
02745     "PREVIOUS",
02746     "Q",
02747     "radio",
02748     "REL",
02749     "REPEAT",
02750     "reset",
02751     "REV",
02752     "rhs",
02753     "RIGHT",
02754     "rows",
02755     "ROWSPAN",
02756     "RULES",
02757     "S",
02758     "SAMP",
02759     "SAVE",
02760     "SCRIPT",
02761     "SCROLLAMOUNT",
02762     "SCROLLDELAY",
02763     "SELECT",
02764     "SELECTED",
02765     "SERVER",
02766     "SHAPES",
02767     "show",
02768     "SIZE",
02769     "SMALL",
02770     "SONG",
02771     "SPACER",
02772     "SPAN",
02773     "SRC",
02774     "STANDBY",
02775     "STRIKE",
02776     "STRONG",
02777     "STYLE",
02778     "SUB",
02779     "submit",
02780     "SUMMARY",
02781     "SUP",
02782     "TABINDEX",
02783     "TABLE",
02784     "TARGET",
02785     "TBODY",
02786     "TD",
02787     "TEXT",
02788     "TEXTAREA",
02789     "textbottom",
02790     "TEXTFOCUS",
02791     "textmiddle",
02792     "texttop",
02793     "TFOOT",
02794     "TH",
02795     "THEAD",
02796     "TITLE",
02797     "TOP",
02798     "TR",
02799     "TT",
02800     "TXTCOLOR",
02801     "TYPE",
02802     "U",
02803     "UL",
02804     "URN",
02805     "USEMAP",
02806     "VALIGN",
02807     "VALUE",
02808     "VALUETYPE",
02809     "VAR",
02810     "VISIBILITY",
02811     "void",
02812     "vsides",
02813     "VSPACE",
02814     "WBR",
02815     "WIDTH",
02816     "WRAP",
02817     "XMP"
02818 };
02819
02820 static const char* const    ppszKeyWordsPLSQL[] = {
02821     "AND",
02822     "AS",
02823     "BEGIN",
02824     "BINARY_INTEGER",
02825     "BODY",
02826     "BOOLEAN",
02827     "BY",
02828     "CHAR",
02829     "CHR",
02830     "COMMIT",
02831     "COUNT",
02832     "CREATE",
02833     "CURSOR",
02834     "DATE",
02835     "DECLARE",
02836     "DEFAULT",
02837     "DELETE",
02838     "ELSE",
02839     "ELSIF",
02840     "END",
02841     "ERRORS",
02842     "EXCEPTION",
02843     "FALSE",
02844     "FOR",
02845     "FROM",
02846     "FUNCTION",
02847     "GOTO",
02848     "HTP",
02849     "IDENT_ARR",
02850     "IF",
02851     "IN",
02852     "INDEX",
02853     "INTEGER",
02854     "IS",
02855     "LOOP",
02856     "NOT",
02857     "NO_DATA_FOUND",
02858     "NULL",
02859     "NUMBER",
02860     "OF",
02861     "OR",
02862     "ORDER",
02863     "OUT",
02864     "OWA_UTIL",
02865     "PACKAGE",
02866     "PRAGMA",
02867     "PRN",
02868     "PROCEDURE",
02869     "REPLACE",
02870     "RESTRICT_REFERENCES",
02871     "RETURN",
02872     "ROWTYPE",
02873     "SELECT",
02874     "SHOW",
02875     "SUBSTR",
02876     "TABLE",
02877     "THEN",
02878     "TRUE",
02879     "TYPE",
02880     "UPDATE",
02881     "VARCHAR",
02882     "VARCHAR2",
02883     "WHEN",
02884     "WHERE",
02885     "WHILE",
02886     "WNDS",
02887     "WNPS",
02888     "RAISE",
02889     "INSERT",
02890     "INTO",
02891     "VALUES",
02892     "SET",
02893     "SYSDATE",
02894     "RTRIM",
02895     "LTRIM",
02896     "TO_CHAR",
02897     "DUP_VAL_ON_INDEX",
02898     "ROLLBACK",
02899     "OTHERS",
02900     "SQLCODE"
02901 };
02902
02903 //Jul. 10, 2001 JEPRO 追加
02904 static const char* const    ppszKeyWordsCOBOL[] = {
02905     "ACCEPT",
02906     "ADD",
02907     "ADVANCING",
02908     "AFTER",
02909     "ALL",
02910     "AND",
02911     "ARGUMENT",
02912     "ASSIGN",
02913     "AUTHOR",
02914     "BEFORE",
02915     "BLOCK",
02916     "BY",
02917     "CALL",
02918     "CHARACTERS",
02919     "CLOSE",
02920     "COMP",
02921     "COMPILED",
02922     "COMPUTE",
02923     "COMPUTER",
02924     "CONFIGURATION",
02925     "CONSOLE",
02926     "CONTAINS",
02927     "CONTINUE",
02928     "CONTROL",
02929     "COPY",
02930     "DATA",
02931     "DELETE",
02932     "DISPLAY",
02933     "DIVIDE",
02934     "DIVISION",
02935     "ELSE",
02936     "END",
02937     "ENVIRONMENT",
02938     "EVALUATE",
02939     "EXAMINE",
02940     "EXIT",
02941     "EXTERNAL",
02942     "FD",
02943     "FILE",
02944     "FILLER",
02945     "FROM",
02946     "GIVING",
02947     "GO",
02948     "GOBACK",
02949     "HIGH-VALUE",
02950     "IDENTIFICATION"
02951     "IF",
02952     "INITIALIZE",
02953     "INPUT",
02954     "INTO",
02955     "IS",
02956     "LABEL",
02957     "LINKAGE",
02958     "LOW-VALUE",
02959     "MODE",
02960     "MOVE",
02961     "NOT",
02962     "OBJECT",
02963     "OCCURS",
02964     "OF",
02965     "ON",
02966     "OPEN",
02967     "OR",
02968     "OTHER",
02969     "OUTPUT",
02970     "PERFORM",
02971     "PIC",
02972     "PROCEDURE",
02973     "PROGRAM",
02974     "READ",
02975     "RECORD",
02976     "RECORDING",
02977     "REDEFINES",
02978     "REMAINDER",
02979     "REMARKS",
02980     "REPLACING",
02981     "REWRITE",
02982     "ROLLBACK",
02983     "SECTION",
02984     "SELECT",
02985     "SOURCE",
02986     "SPACE",
02987     "STANDARD",
02988     "STOP",
02989     "STORAGE",
02990     "SYSOUT",
02991     "TEST",
02992     "THEN",
02993     "TO",
02994     "TODAY",
02995     "TRANSFORM",
02996     "UNTIL",
02997     "UPON",
02998     "USING",
02999     "VALUE",
03000     "VARYING",
03001     "WHEN",
03002     "WITH",
03003     "WORKING",
03004     "WRITE",
03005     "WRITTEN",
03006     "ZERO"
03007 };
03008
03009 static const char*  ppszKeyWordsJAVA[] = {
03010     "abstract",
03011     "assert",   // Mar. 8, 2003 genta
03012     "boolean",
03013     "break",
03014     "byte",
03015     "case",
03016     "catch",
03017     "char",
03018     "class",
03019     "const",
03020     "continue",
03021     "default",
03022     "do",
03023     "double",
03024     "else",
03025     "extends",
03026     "final",
03027     "finally",
03028     "float",
03029     "for",
03030     "goto",
03031     "if",
03032     "implements",
03033     "import",
03034     "instanceof",
03035     "int",
03036     "interface",
03037     "long",
03038     "native",
03039     "new",
03040     "package",
03041     "private",
03042     "protected",
03043     "public",
03044     "return",
03045     "short",
03046     "static",
03047     "strictfp", // Mar. 8, 2003 genta
03048     "super",
03049     "switch",
03050     "synchronized",
03051     "this",
03052     "throw",
03053     "throws",
03054     "transient",
03055     "try",
03056     "void",
03057     "volatile",
03058     "while"
03059 };
03060
03061 static const char* const    ppszKeyWordsCORBA_IDL[] = {
03062     "any",
03063     "attribute",
03064     "boolean",
03065     "case",
03066     "char",
03067     "const",
03068     "context",
03069     "default",
03070     "double",
03071     "enum",
03072     "exception",
03073     "FALSE",
03074     "fixed",
03075     "float",
03076     "in",
03077     "inout",
03078     "interface",
03079     "long",
03080     "module",
03081     "Object",
03082     "octet",
03083     "oneway",
03084     "out",
03085     "raises",
03086     "readonly",
03087     "sequence",
03088     "short",
03089     "string",
03090     "struct",
03091     "switch",
03092     "TRUE",
03093     "typedef",
03094     "unsigned",
03095     "union",
03096     "void",
03097     "wchar",
03098     "wstring"
03099 };
03100
03101 static const char* const    ppszKeyWordsAWK[] = {
03102     "BEGIN",
03103     "END",
03104     "next",
03105     "exit",
03106     "func",
03107     "function",
03108     "return",
03109     "if",
03110     "else",
03111     "for",
03112     "in",
03113     "do",
03114     "while",
03115     "break",
03116     "continue",
03117     "$0",
03118     "$1",
03119     "$2",
03120     "$3",
03121     "$4",
03122     "$5",
03123     "$6",
03124     "$7",
03125     "$8",
03126     "$9",
03127     "$10",
03128     "$11",
03129     "$12",
03130     "$13",
03131     "$14",
03132     "$15",
03133     "$16",
03134     "$17",
03135     "$18",
03136     "$19",
03137     "$20",
03138     "FS",
03139     "OFS",
03140     "NF",
03141     "RS",
03142     "ORS",
03143     "NR",
03144     "FNR",
03145     "ARGV",
03146     "ARGC",
03147     "ARGIND",
03148     "FILENAME",
03149     "ENVIRON",
03150     "ERRNO",
03151     "OFMT",
03152     "CONVFMT",
03153     "FIELDWIDTHS",
03154     "IGNORECASE",
03155     "RLENGTH",
03156     "RSTART",
03157     "SUBSEP",
03158     "delete",
03159     "index",
03160     "jindex",
03161     "length",
03162     "jlength",
03163     "substr",
03164     "jsubstr",
03165     "match",
03166     "split",
03167     "sub",
03168     "gsub",
03169     "sprintf",
03170     "tolower",
03171     "toupper",
03172     "print",
03173     "printf",
03174     "getline",
03175     "system",
03176     "close",
03177     "sin",
03178     "cos",
03179     "atan2",
03180     "exp",
03181     "log",
03182     "int",
03183     "sqrt",
03184     "srand",
03185     "rand",
03186     "strftime",
03187     "systime"
03188 };
03189
03190 static const char*  ppszKeyWordsBAT[] = {
03191     "PATH",
03192     "PROMPT",
03193     "TEMP",
03194     "TMP",
03195     "TZ",
03196     "CONFIG",
03197     "COMSPEC",
03198     "DIRCMD",
03199     "COPYCMD",
03200     "winbootdir",
03201     "windir",
03202     "DIR",
03203     "CALL",
03204     "CHCP",
03205     "RENAME",
03206     "REN",
03207     "ERASE",
03208     "DEL",
03209     "TYPE",
03210     "REM",
03211     "COPY",
03212     "PAUSE",
03213     "DATE",
03214     "TIME",
03215     "VER",
03216     "VOL",
03217     "CD",
03218     "CHDIR",
03219     "MD",
03220     "MKDIR",
03221     "RD",
03222     "RMDIR",
03223     "BREAK",
03224     "VERIFY",
03225     "SET",
03226     "EXIT",
03227     "CTTY",
03228     "ECHO",
03229     "@ECHO",    //Oct. 31, 2000 JEPRO '@' を強調可能にしたので追加
03230     "LOCK",
03231     "UNLOCK",
03232     "GOTO",
03233     "SHIFT",
03234     "IF",
03235     "FOR",
03236     "DO",   //Nov. 2, 2000 JEPRO 追加
03237     "IN",   //Nov. 2, 2000 JEPRO 追加
03238     "ELSE", //Nov. 2, 2000 JEPRO 追加 Win2000で使える
03239     "CLS",
03240     "TRUENAME",
03241     "LOADHIGH",
03242     "LH",
03243     "LFNFOR",
03244     "ON",
03245     "OFF",
03246     "NOT",
03247     "ERRORLEVEL",
03248     "EXIST",
03249     "NUL",
03250     "CON",
03251     "AUX",
03252     "COM1",
03253     "COM2",
03254     "COM3",
03255     "COM4",
03256     "PRN",
03257     "LPT1",
03258     "LPT2",
03259     "LPT3",
03260     "CLOCK",
03261     "CLOCK$",
03262     "CONFIG$"
03263 };
03264
03265 static const char*  ppszKeyWordsPASCAL[] = {
03266     "and",
03267     "exports",
03268     "mod",
03269     "shr",
03270     "array",
03271     "file",
03272     "nil",
03273     "string",
03274     "as",
03275     "finalization",
03276     "not",
03277     "stringresource",
03278     "asm",
03279     "finally",
03280     "object",
03281     "then",
03282     "begin",
03283     "for",
03284     "of",
03285     "case",
03286     "function",
03287     "or",
03288     "to",
03289     "class",
03290     "goto",
03291     "out",
03292     "try",
03293     "const",
03294     "if",
03295     "packed",
03296     "type",
03297     "constructor",
03298     "implementation",
03299     "procedure",
03300     "unit",
03301     "destructor",
03302     "in",
03303     "program",
03304     "until",
03305     "dispinterface",
03306     "inherited",
03307     "property",
03308     "uses",
03309     "div",
03310     "initialization",
03311     "raise",
03312     "var",
03313     "do",
03314     "inline",
03315     "record",
03316     "while",
03317     "downto",
03318     "interface",
03319     "repeat",
03320     "with",
03321     "else",
03322     "is",
03323     "resourcestring",
03324     "xor",
03325     "end",
03326     "label",
03327     "set",
03328     "except",
03329     "library",
03330     "shl",
03331     "private",
03332     "public",
03333     "published",
03334     "protected",
03335     "override"
03336 };
03337
03338 static const char*  ppszKeyWordsTEX[] = {
03339 //Nov. 20, 2000 JEPRO   大幅追加 & 若干修正・削除 --ほとんどコマンドのみ
03340     "error",
03341     "Warning",
03342 //          "center",
03343 //          "document",
03344 //          "enumerate",
03345 //          "eqnarray",
03346 //          "figure",
03347 //          "itemize",
03348 //          "minipage",
03349 //          "tabbing",
03350 //          "table",
03351 //          "tabular",
03352 //          "\\!",
03353 //          "\\#",
03354 //          "\\%",
03355 //          "\\&",
03356 //          "\\(",
03357 //          "\\)",
03358 //          "\\+",
03359 //          "\\,",
03360 //          "\\-",
03361 //          "\\:",
03362 //          "\\;",
03363 //          "\<",
03364 //          "\\=",
03365 //          "\>",
03366     "\\aa",
03367     "\\AA",
03368     "\\acute",
03369     "\\addcontentsline",
03370     "\\addtocounter",
03371     "\\addtolength",
03372     "\\ae",
03373     "\\AE",
03374     "\\aleph",
03375     "\\alpha",
03376     "\\alph",
03377     "\\Alph",
03378     "\\and",
03379     "\\angle",
03380     "\\appendix",
03381     "\\approx",
03382     "\\arabic",
03383     "\\arccos",
03384     "\\arctan",
03385     "\\arg",
03386     "\\arrayrulewidth",
03387     "\\arraystretch",
03388     "\\ast",
03389     "\\atop",
03390     "\\author",
03391     "\\b",
03392     "\\backslash",
03393     "\\bar",
03394     "\\baselineskip",
03395     "\\baselinestretch",
03396     "\\begin",
03397     "\\beta",
03398     "\\bf",
03399     "\\bibitem",
03400     "\\bibliography",
03401     "\\bibliographystyle",
03402     "\\big",
03403     "\\Big",
03404     "\\bigcap",
03405     "\\bigcirc",
03406     "\\bigcup",
03407     "\\bigg",
03408     "\\Bigg",
03409     "\\Biggl",
03410     "\\Biggm",
03411     "\\biggl",
03412     "\\biggm",
03413     "\\biggr",
03414     "\\Biggr",
03415     "\\bigl",
03416     "\\bigm",
03417     "\\Bigm",
03418     "\\Bigl",
03419     "\\bigodot",
03420     "\\bigoplus",
03421     "\\bigotimes",
03422     "\\bigr",
03423     "\\Bigr",
03424     "\\bigskip",
03425     "\\bigtriangledown",
03426     "\\bigtriangleup",
03427     "\\boldmath",
03428     "\\bot",
03429     "\\Box",
03430     "\\brace",
03431     "\\breve",
03432     "\\bullet",
03433     "\\bye",
03434     "\\c",
03435     "\\cal",
03436     "\\cap",
03437     "\\caption",
03438     "\\cc",
03439     "\\cdot",
03440     "\\cdots",
03441     "\\centering",
03442     "\\chapter",
03443     "\\check",
03444     "\\chi",
03445     "\\choose",
03446     "\\circ",
03447     "\\circle",
03448     "\\cite",
03449     "\\clearpage",
03450     "\\cline",
03451     "\\closing",
03452     "\\clubsuit",
03453     "\\colon",
03454     "\\columnsep",
03455     "\\columnseprule",
03456     "\\cong",
03457     "\\cot",
03458     "\\coth",
03459     "\\cr",
03460     "\\cup",
03461     "\\d",
03462     "\\dag",
03463     "\\dagger",
03464     "\\date",
03465     "\\dashbox",
03466     "\\ddag",
03467     "\\ddot",
03468     "\\ddots",
03469     "\\def",
03470     "\\deg",
03471     "\\delta",
03472     "\\Delta",
03473     "\\det",
03474     "\\diamond",
03475     "\\diamondsuit",
03476     "\\dim",
03477     "\\displaystyle",
03478     "\\documentclass",
03479     "\\documentstyle",
03480     "\\dot",
03481     "\\doteq",
03482     "\\dotfill",
03483     "\\Downarrow",
03484     "\\downarrow",
03485     "\\ell",
03486     "\\em",
03487     "\\emptyset",
03488     "\\encl",
03489     "\\end",
03490     "\\enspace",
03491     "\\enskip",
03492     "\\epsilon",
03493     "\\eqno",
03494     "\\equiv",
03495     "\\evensidemargin",
03496     "\\eta",
03497     "\\exists",
03498     "\\exp",
03499     "\\fbox",
03500     "\\fboxrule",
03501     "\\flat",
03502     "\\footnote",
03503     "\\footnotesize",
03504     "\\forall",
03505     "\\frac",
03506     "\\frame",
03507     "\\framebox",
03508     "\\gamma",
03509     "\\Gamma",
03510     "\\gcd",
03511     "\\ge",
03512     "\\geq",
03513     "\\gets",
03514     "\\gg",
03515     "\\grave",
03516     "\\gt",
03517     "\\H",
03518     "\\hat",
03519     "\\hbar",
03520     "\\hbox",
03521     "\\headsep",
03522     "\\heartsuit",
03523     "\\hfil",
03524     "\\hfill",
03525     "\\hline",
03526     "\\hom",
03527     "\\hrulefill",
03528     "\\hskip",
03529     "\\hspace",
03530     "\\hspace*",
03531     "\\huge",
03532     "\\Huge",
03533     "\\i",
03534     "\\Im",
03535     "\\imath",
03536     "\\in",
03537     "\\include",
03538     "\\includegraphics",
03539     "\\includeonly",
03540     "\\indent",
03541     "\\index",
03542     "\\inf",
03543     "\\infty",
03544     "\\input",
03545     "\\int",
03546     "\\iota",
03547     "\\it",
03548     "\\item",
03549     "\\itemsep",
03550     "\\j",
03551     "\\jmath",
03552     "\\kappa",
03553     "\\ker",
03554     "\\kern",
03555     "\\kill",
03556     "\\l",
03557     "\\L",
03558     "\\label",
03559     "\\lambda",
03560     "\\Lambda",
03561     "\\land",
03562     "\\langle",
03563     "\\large",
03564     "\\Large",
03565     "\\LARGE",
03566     "\\LaTeX",
03567     "\\LaTeXe",
03568     "\\lceil",
03569     "\\ldots",
03570     "\\le",
03571     "\\leftarrow",
03572     "\\Leftarrow",
03573     "\\lefteqn",
03574     "\\leftharpoondown",
03575     "\\leftharpoonup",
03576     "\\leftmargin",
03577     "\\leftrightarrow",
03578     "\\Leftrightarrow",
03579     "\\leq",
03580     "\\leqno",
03581     "\\lfloor",
03582     "\\lg",
03583     "\\lim",
03584     "\\liminf",
03585     "\\limsup",
03586     "\\line",
03587     "\\linebreak",
03588     "\\linewidth",
03589     "\\listoffigures",
03590     "\\listoftables",
03591     "\\ll",
03592     "\\llap",
03593     "\\ln",
03594     "\\lnot",
03595     "\\log",
03596     "\\longleftarrow",
03597     "\\Longleftarrow",
03598     "\\longleftrightarrow",
03599     "\\Longleftrightarrow",
03600     "\\longrightarrow",
03601     "\\Longrightarrow",
03602     "\\lor",
03603     "\\lower",
03604     "\\magstep",
03605     "\\makeatletter",
03606     "\\makeatother",
03607     "\\makebox",
03608     "\\makeindex",
03609     "\\maketitle",
03610     "\\makelabels",
03611     "\\mathop",
03612     "\\mapsto",
03613     "\\markboth",
03614     "\\markright",
03615     "\\mathstrut",
03616     "\\max",
03617     "\\mbox",
03618     "\\mc",
03619     "\\medskip",
03620     "\\mid",
03621     "\\min",
03622     "\\mit",
03623     "\\mp",
03624     "\\mu",
03625     "\\multicolumn",
03626     "\\multispan",
03627     "\\multiput",
03628     "\\nabla",
03629     "\\natural",
03630     "\\ne",
03631     "\\neg",
03632     "\\nearrow",
03633     "\\nwarrow",
03634     "\\neq",
03635     "\\newblock",
03636     "\\newcommand",
03637     "\\newenvironment",
03638     "\\newfont",
03639     "\\newlength",
03640     "\\newline",
03641     "\\newpage",
03642     "\\newtheorem",
03643     "\\ni",
03644     "\\noalign",
03645     "\\noindent",
03646     "\\nolimits",
03647     "\\nolinebreak",
03648     "\\nonumber",
03649     "\\nopagebreak",
03650     "\\normalsize",
03651     "\\not",
03652     "\\notice",
03653     "\\notin",
03654     "\\nu",
03655     "\\o",
03656     "\\O",
03657     "\\oddsidemargin",
03658     "\\odot",
03659     "\\oe",
03660     "\\OE",
03661     "\\oint",
03662     "\\Omega",
03663     "\\omega",
03664     "\\ominus",
03665     "\\oplus",
03666     "\\opening",
03667     "\\otimes",
03668     "\\owns",
03669     "\\overleftarrow",
03670     "\\overline",
03671     "\\overrightarrow",
03672     "\\overvrace",
03673     "\\oval",
03674     "\\P",
03675     "\\pagebreak",
03676     "\\pagenumbering",
03677     "\\pageref",
03678     "\\pagestyle",
03679     "\\par",
03680     "\\parallel",
03681     "\\paragraph",
03682     "\\parbox",
03683     "\\parindent",
03684     "\\parskip",
03685     "\\partial",
03686     "\\perp",
03687     "\\phi",
03688     "\\Phi",
03689     "\\pi",
03690     "\\Pi",
03691     "\\pm",
03692     "\\Pr",
03693     "\\prime",
03694     "\\printindex",
03695     "\\prod",
03696     "\\propto",
03697     "\\ps",
03698     "\\psi",
03699     "\\Psi",
03700     "\\put",
03701     "\\qquad",
03702     "\\quad",
03703     "\\raisebox",
03704     "\\rangle",
03705     "\\rceil",
03706     "\\Re",
03707     "\\ref",
03708     "\\renewcommand",
03709     "\\renewenvironment",
03710     "\\rfloor",
03711     "\\rho",
03712     "\\right",
03713     "\\rightarrow",
03714     "\\Rightarrow",
03715     "\\rightharpoondown",
03716     "\\rightharpoonup",
03717     "\\rightleftharpoonup",
03718     "\\rightmargin",
03719     "\\rm",
03720     "\\rule",
03721     "\\roman",
03722     "\\Roman",
03723     "\\S",
03724     "\\samepage",
03725     "\\sb",
03726     "\\sc",
03727     "\\scriptsize",
03728     "\\scriptscriptstyle",
03729     "\\scriptstyle",
03730     "\\searrow",
03731     "\\sec",
03732     "\\section",
03733     "\\setcounter",
03734     "\\setlength",
03735     "\\settowidth",
03736     "\\setminus",
03737     "\\sf",
03738     "\\sharp",
03739     "\\sigma",
03740     "\\Sigma",
03741     "\\signature",
03742     "\\sim",
03743     "\\simeq",
03744     "\\sin",
03745     "\\sinh",
03746     "\\sl",
03747     "\\sloppy",
03748     "\\small",
03749     "\\smash",
03750     "\\smallskip",
03751     "\\sp",
03752     "\\spadesuit",
03753     "\\special",
03754     "\\sqrt",
03755     "\\ss",
03756     "\\star",
03757     "\\stackrel",
03758     "\\strut",
03759     "\\subparagraph",
03760     "\\subsection",
03761     "\\subset",
03762     "\\subseteq",
03763     "\\subsubsection",
03764     "\\sum",
03765     "\\sup",
03766     "\\supset",
03767     "\\supseteq",
03768     "\\swarrow",
03769     "\\t",
03770     "\\tableofcontents",
03771     "\\tan",
03772     "\\tanh",
03773     "\\tau",
03774     "\\TeX",
03775     "\\textbf",
03776     "\\textgreater",
03777     "\\textgt",
03778     "\\textheight",
03779     "\\textit",
03780     "\\textless",
03781     "\\textmc",
03782     "\\textrm",
03783     "\\textsc",
03784     "\\textsf",
03785     "\\textsl",
03786     "\\textstyle",
03787     "\\texttt",
03788     "\\textwidth",
03789     "\\thanks",
03790     "\\thebibliography",
03791     "\\theequation",
03792     "\\thepage",
03793     "\\thesection",
03794     "\\theta",
03795     "\\Theta",
03796     "\\thicklines",
03797     "\\thinlines",
03798     "\\thinspace",
03799     "\\thisepage",
03800     "\\thisepagestyle",
03801     "\\tie",
03802     "\\tilde",
03803     "\\times",
03804     "\\tiny",
03805     "\\title",
03806     "\\titlepage",
03807     "\\to",
03808     "\\toaddress",
03809     "\\topmargin",
03810     "\\triangle",
03811     "\\tt",
03812     "\\twocolumn",
03813     "\\u",
03814     "\\underline",
03815     "\\undervrace",
03816     "\\unitlength",
03817     "\\Uparrow",
03818     "\\uparrow",
03819     "\\updownarrow",
03820     "\\Updownarrow",
03821     "\\uplus",
03822     "\\upsilon",
03823     "\\Upsilon",
03824     "\\usepackage",
03825     "\\v",
03826     "\\varepsilon",
03827     "\\varphi",
03828     "\\varpi",
03829     "\\varrho",
03830     "\\varsigma",
03831     "\\vartheta",
03832     "\\vbox",
03833     "\\vcenter",
03834     "\\vec",
03835     "\\vector",
03836     "\\vee",
03837     "\\verb",
03838     "\\verb*",
03839     "\\verbatim",
03840     "\\vert",
03841     "\\Vert",
03842     "\\vfil",
03843     "\\vfill",
03844     "\\vrule",
03845     "\\vskip",
03846     "\\vspace",
03847     "\\vspace*",
03848     "\\wedge",
03849     "\\widehat",
03850     "\\widetilde",
03851     "\\wp",
03852     "\\wr",
03853     "\\wrapfigure",
03854     "\\xi",
03855     "\\Xi",
03856     "\\zeta"//,
03857 //          "\\[",
03858 //          "\\\"",
03859 //          "\\\'",
03860 //          "\\\\",
03861 //          "\\]",
03862 //          "\\^",
03863 //          "\\_",
03864 //          "\\`",
03865 //          "\\{",
03866 //          "\\|",
03867 //          "\\}",
03868 //          "\\~",
03869 };
03870
03871 //Jan. 19, 2001 JEPRO   TeX のキーワード2として新規追加 & 一部復活 --環境コマンドとオプション名が中心
03872 static const char*  ppszKeyWordsTEX2[] = {
03873     //  環境コマンド
03874     //Jan. 19, 2001 JEPRO 本当は{}付きでキーワードにしたかったが単語として認識してくれないので止めた
03875     "abstract",
03876     "array"
03877     "center",
03878     "description",
03879     "document",
03880     "displaymath",
03881     "em",
03882     "enumerate",
03883     "eqnarray",
03884     "eqnarray*",
03885     "equation",
03886     "figure",
03887     "figure*",
03888     "floatingfigure",
03889     "flushleft",
03890     "flushright",
03891     "itemize",
03892     "letter",
03893     "list",
03894     "math",
03895     "minipage",
03896     "multicols",
03897     "namelist",
03898     "picture",
03899     "quotation",
03900     "quote",
03901     "sloppypar",
03902     "subeqnarray",
03903     "subeqnarray*",
03904     "subequations",
03905     "subfigure",
03906     "tabbing",
03907     "table",
03908     "table*",
03909     "tabular",
03910     "tabular*",
03911     "tatepage",
03912     "thebibliography",
03913     "theindex",
03914     "titlepage",
03915     "trivlist",
03916     "verbatim",
03917     "verbatim*",
03918     "verse",
03919     "wrapfigure",
03920     //  スタイルオプション
03921     "a4",
03922     "a4j",
03923     "a5",
03924     "a5j",
03925     "Alph",
03926     "alph",
03927     "annote",
03928     "arabic",
03929     "b4",
03930     "b4j",
03931     "b5",
03932     "b5j",
03933     "bezier",
03934     "booktitle",
03935     "boxedminipage",
03936     "boxit",
03937 //      "bp",
03938 //      "cm",
03939     "dbltopnumber",
03940 //      "dd",
03941     "eclepsf",
03942     "eepic",
03943     "enumi",
03944     "enumii",
03945     "enumiii",
03946     "enumiv",
03947     "epic",
03948     "epsbox",
03949     "epsf",
03950     "fancybox",
03951     "fancyheadings",
03952     "fleqn",
03953     "footnote",
03954     "howpublished",
03955     "jabbrv",
03956     "jalpha",
03957 //      "article",
03958     "jarticle",
03959     "jsarticle",
03960 //      "book",
03961     "jbook",
03962     "jsbook",
03963 //      "letter",
03964     "jletter",
03965 //      "plain",
03966     "jplain",
03967 //      "report",
03968     "jreport",
03969     "jtwocolumn",
03970     "junsrt",
03971     "leqno",
03972     "makeidx",
03973     "markboth",
03974     "markright",
03975 //      "mm",
03976     "multicol",
03977     "myheadings",
03978     "openbib",
03979 //      "pc",
03980 //      "pt",
03981     "secnumdepth",
03982 //      "sp",
03983     "titlepage",
03984     "tjarticle",
03985     "topnumber",
03986     "totalnumber",
03987     "twocolumn",
03988     "twoside",
03989     "yomi"//,
03990 //      "zh",
03991 //      "zw"
03992 };
03993
03994 static const char*  ppszKeyWordsPERL[] = {
03995     //Jul. 10, 2001 JEPRO   変数を第２強調キーワードとして分離した
03996     "break",
03997     "continue",
03998     "do",
03999     "elsif",
04000     "else",
04001     "for",
04002     "foreach",
04003     "goto",
04004     "if",
04005     "last",
04006     "next",
04007     "return",
04008     "sub",
04009     "undef",
04010     "unless",
04011     "until",
04012     "while",
04013     "abs",
04014     "accept",
04015     "alarm",
04016     "atan2",
04017     "bind",
04018     "binmode",
04019     "bless",
04020     "caller",
04021     "chdir",
04022     "chmod",
04023     "chomp",
04024     "chop",
04025     "chown",
04026     "chr",
04027     "chroot",
04028     "close",
04029     "closedir",
04030     "connect",
04031     "continue",
04032     "cos",
04033     "crypt",
04034     "dbmclose",
04035     "dbmopen",
04036     "defined",
04037     "delete",
04038     "die",
04039     "do",
04040     "dump",
04041     "each",
04042     "eof",
04043     "eval",
04044     "exec",
04045     "exists",
04046     "exit",
04047     "exp",
04048     "fcntl",
04049     "fileno",
04050     "flock",
04051     "fork",
04052     "format",
04053     "formline",
04054     "getc",
04055     "getlogin",
04056     "getpeername",
04057     "getpgrp",
04058     "getppid",
04059     "getpriority",
04060     "getpwnam",
04061     "getgrnam",
04062     "gethostbyname",
04063     "getnetbyname",
04064     "getprotobyname",
04065     "getpwuid",
04066     "getgrgid",
04067     "getservbyname",
04068     "gethostbyaddr",
04069     "getnetbyaddr",
04070     "getprotobynumber",
04071     "getservbyport",
04072     "getpwent",
04073     "getgrent",
04074     "gethostent",
04075     "getnetent",
04076     "getprotoent",
04077     "getservent",
04078     "setpwent",
04079     "setgrent",
04080     "sethostent",
04081     "setnetent",
04082     "setprotoent",
04083     "setservent",
04084     "endpwent",
04085     "endgrent",
04086     "endhostent",
04087     "endnetent",
04088     "endprotoent",
04089     "endservent",
04090     "getsockname",
04091     "getsockopt",
04092     "glob",
04093     "gmtime",
04094     "goto",
04095     "grep",
04096     "hex",
04097     "import",
04098     "index",
04099     "int",
04100     "ioctl",
04101     "join",
04102     "keys",
04103     "kill",
04104     "last",
04105     "lc",
04106     "lcfirst",
04107     "length",
04108     "link",
04109     "listen",
04110     "local",
04111     "localtime",
04112     "log",
04113     "lstat",
04114 //          "//m",
04115     "map",
04116     "mkdir",
04117     "msgctl",
04118     "msgget",
04119     "msgsnd",
04120     "msgrcv",
04121     "my",
04122     "next",
04123     "no",
04124     "oct",
04125     "open",
04126     "opendir",
04127     "ord",
04128     "our",  // 2006.04.20 genta
04129     "pack",
04130     "package",
04131     "pipe",
04132     "pop",
04133     "pos",
04134     "print",
04135     "printf",
04136     "prototype",
04137     "push",
04138 //          "//q",
04139     "qq",
04140     "qr",
04141     "qx",
04142     "qw",
04143     "quotemeta",
04144     "rand",
04145     "read",
04146     "readdir",
04147     "readline",
04148     "readlink",
04149     "readpipe",
04150     "recv",
04151     "redo",
04152     "ref",
04153     "rename",
04154     "require",
04155     "reset",
04156     "return",
04157     "reverse",
04158     "rewinddir",
04159     "rindex",
04160     "rmdir",
04161 //          "//s",
04162     "scalar",
04163     "seek",
04164     "seekdir",
04165     "select",
04166     "semctl",
04167     "semget",
04168     "semop",
04169     "send",
04170     "setpgrp",
04171     "setpriority",
04172     "setsockopt",
04173     "shift",
04174     "shmctl",
04175     "shmget",
04176     "shmread",
04177     "shmwrite",
04178     "shutdown",
04179     "sin",
04180     "sleep",
04181     "socket",
04182     "socketpair",
04183     "sort",
04184     "splice",
04185     "split",
04186     "sprintf",
04187     "sqrt",
04188     "srand",
04189     "stat",
04190     "study",
04191     "sub",
04192     "substr",
04193     "symlink",
04194     "syscall",
04195     "sysopen",
04196     "sysread",
04197     "sysseek",
04198     "system",
04199     "syswrite",
04200     "tell",
04201     "telldir",
04202     "tie",
04203     "tied",
04204     "time",
04205     "times",
04206     "tr",
04207     "truncate",
04208     "uc",
04209     "ucfirst",
04210     "umask",
04211     "undef",
04212     "unlink",
04213     "unpack",
04214     "untie",
04215     "unshift",
04216     "use",
04217     "utime",
04218     "values",
04219     "vec",
04220     "wait",
04221     "waitpid",
04222     "wantarray",
04223     "warn",
04224     "write"
04225 };
04226
04227 //Jul. 10, 2001 JEPRO   変数を第２強調キーワードとして分離した
04228 static const char*  ppszKeyWordsPERL2[] = {
04229     "$ARGV",
04230     "$_",
04231     "$1",
04232     "$2",
04233     "$3",
04234     "$4",
04235     "$5",
04236     "$6",
04237     "$7",
04238     "$8",
04239     "$9",
04240     "$0",
04241     "$MATCH",
04242     "$&",
04243     "$PREMATCH",
04244     "$`",
04245     "$POSTMATCH",
04246     "$'",
04247     "$LAST_PAREN_MATCH",
04248     "$+",
04249     "$MULTILINE_MATCHING",
04250     "$*",
04251     "$INPUT_LINE_NUMBER",
04252     "$NR",
04253     "$.",
04254     "$INPUT_RECORD_SEPARATOR",
04255     "$RS",
04256     "$/",
04257     "$OUTPUT_AUTOFLUSH",
04258     "$|",
04259     "$OUTPUT_FIELD_SEPARATOR",
04260     "$OFS",
04261     "$,",
04262     "$OUTPUT_RECORD_SEPARATOR",
04263     "$ORS",
04264     "$\\",
04265     "$LIST_SEPARATOR",
04266     "$\"",
04267     "$SUBSCRIPT_SEPARATOR",
04268     "$SUBSEP",
04269     "$;",
04270     "$OFMT",
04271     "$#",
04272     "$FORMAT_PAGE_NUMBER",
04273     "$%",
04274     "$FORMAT_LINES_PER_PAGE",
04275     "$=",
04276     "$FORMAT_LINES_LEFT",
04277     "$-",
04278     "$FORMAT_NAME",
04279     "$~",
04280     "$FORMAT_TOP_NAME",
04281     "$^",
04282     "$FORMAT_LINE_BREAK_CHARACTERS",
04283     "$:",
04284     "$FORMAT_FORMFEED",
04285     "$^L",
04286     "$ACCUMULATOR",
04287     "$^A",
04288     "$CHILD_ERROR",
04289     "$?",
04290     "$OS_ERROR",
04291     "$ERRNO",
04292     "$!",
04293     "$EVAL_ERROR",
04294     "$@",
04295     "$PROCESS_ID",
04296     "$PID",
04297     "$$",
04298     "$REAL_USER_ID",
04299     "$UID",
04300     "$<",
04301     "$EFFECTIVE_USER_ID",
04302     "$EUID",
04303     "$>",
04304     "$REAL_GROUP_ID",
04305     "$GID",
04306     "$(",
04307     "$EFFECTIVE_GROUP_ID",
04308     "$EGID",
04309     "$)",
04310     "$PROGRAM_NAME",
04311     "$0",
04312     "$[",
04313     "$PERL_VERSION",
04314     "$]",
04315     "$DEBUGGING",
04316     "$^D",
04317     "$SYSTEM_FD_MAX",
04318     "$^F",
04319     "$INPLACE_EDIT",
04320     "$^I",
04321     "$PERLDB",
04322     "$^P",
04323     "$BASETIME",
04324     "$^T",
04325     "$WARNING",
04326     "$^W",
04327     "$EXECUTABLE_NAME",
04328     "$^X",
04329     "$ARGV",
04330     "$ENV",
04331     "$SIG"
04332 };
04333
04334 //Jul. 10, 2001 JEPRO 追加
04335 static const char*  ppszKeyWordsVB[] = {
04336     "And",
04337     "As",
04338     "Attribute",
04339     "Begin",
04340     "BeginProperty",
04341     "Boolean",
04342     "ByVal",
04343     "Byte",
04344     "Call",
04345     "Case",
04346     "Const",
04347     "Currency",
04348     "Date",
04349     "Declare",
04350     "Dim",
04351     "Do",
04352     "Double",
04353     "Each",
04354     "Else",
04355     "ElseIf",
04356     "Empty",
04357     "End",
04358     "EndProperty",
04359     "Error",
04360     "Eqv",
04361     "Exit",
04362     "False",
04363     "For",
04364     "Friend",
04365     "Function",
04366     "Get",
04367     "GoTo",
04368     "If",
04369     "Imp",
04370     "Integer",
04371     "Is",
04372     "Let",
04373     "Like",
04374     "Long",
04375     "Loop",
04376     "Me",
04377     "Mod",
04378     "New",
04379     "Next",
04380     "Not",
04381     "Null",
04382     "Object",
04383     "On",
04384     "Option",
04385     "Or",
04386     "Private",
04387     "Property",
04388     "Public",
04389     "RSet",
04390     "ReDim",
04391     "Rem",
04392     "Resume",
04393     "Select",
04394     "Set",
04395     "Single",
04396     "Static",
04397     "Step",
04398     "Stop",
04399     "String",
04400     "Sub",
04401     "Then",
04402     "To",
04403     "True",
04404     "Type",
04405     "Wend",
04406     "While",
04407     "With",
04408     "Xor",
04409     "#If",
04410     "#Else",
04411     "#End",
04412     "#Const",
04413     "AddressOf",
04414     "Alias",
04415     "Append",
04416     "Array",
04417     "ByRef",
04418     "Explicit",
04419     "Global",
04420     "In",
04421     "Lib",
04422     "Nothing",
04423     "Optional",
04424     "Output",
04425     "Terminate",
04426     "Until",
04427     //=========================================================
04428     // 以下はVB.NET(VB7)での廃止が決定しているキーワードです
04429     //=========================================================
04430     "DefBool",
04431     "DefByte",
04432     "DefCur",
04433     "DefDate",
04434     "DefDbl",
04435     "DefInt",
04436     "DefLng",
04437     "DefObj",
04438     "DefSng",
04439     "DefStr",
04440     "DefVar",
04441     "LSet",
04442     "GoSub",
04443     "Return",
04444     "Variant",
04445     //          "Option Base
04446     //          "As Any
04447     //=========================================================
04448     // 以下はVB.NET用キーワードです
04449     //=========================================================
04450     //BitAnd
04451     //BitOr
04452     //BitNot
04453     //BitXor
04454     //Delegate
04455     //Short
04456     //Structure
04457 };
04458
04459 //Jul. 10, 2001 JEPRO 追加
04460 static const char*  ppszKeyWordsVB2[] = {
04461     "AppActivate",
04462     "Beep",
04463     "BeginTrans",
04464     "ChDir",
04465     "ChDrive",
04466     "Close",
04467     "CommitTrans",
04468     "CompactDatabase",
04469     "Date",
04470     "DeleteSetting",
04471     "Erase",
04472     "FileCopy",
04473     "FreeLocks",
04474     "Input",
04475     "Kill",
04476     "Load",
04477     "Lock",
04478     "Mid",
04479     "MidB",
04480     "MkDir",
04481     "Name",
04482     "Open",
04483     "Print",
04484     "Put",
04485     "Randomize",
04486     "RegisterDatabase",
04487     "RepairDatabase",
04488     "Reset",
04489     "RmDir",
04490     "Rollback",
04491     "SavePicture",
04492     "SaveSetting",
04493     "Seek",
04494     "SendKeys",
04495     "SetAttr",
04496     "SetDataAccessOption",
04497     "SetDefaultWorkspace",
04498     "Time",
04499     "Unload",
04500     "Unlock",
04501     "Width",
04502     "Write",
04503     "Array",
04504     "Asc",
04505     "AscB",
04506     "Atn",
04507     "CBool",
04508     "CByte",
04509     "CCur",
04510     "CDate",
04511     "CDbl",
04512     "CInt",
04513     "CLng",
04514     "CSng",
04515     "CStr",
04516     "CVErr",
04517     "CVar",
04518     "Choose",
04519     "Chr",
04520     "ChrB",
04521     "Command",
04522     "Cos",
04523     "CreateDatabase",
04524     "CreateObject",
04525     "CurDir",
04526     "DDB",
04527     "Date",
04528     "DateAdd",
04529     "DateDiff",
04530     "DatePart",
04531     "DateSerial",
04532     "DateValue",
04533     "Day",
04534     "Dir",
04535     "DoEvents",
04536     "EOF",
04537     "Environ",
04538     "Error",
04539     "Exp",
04540     "FV",
04541     "FileAttr",
04542     "FileDateTime",
04543     "FileLen",
04544     "Fix",
04545     "Format",
04546     "FreeFile",
04547     "GetAllSettings",
04548     "GetAttr",
04549     "GetObject",
04550     "GetSetting",
04551     "Hex",
04552     "Hour",
04553     "IIf",
04554     "IMEStatus",
04555     "IPmt",
04556     "IRR",
04557     "InStr",
04558     "Input",
04559     "Int",
04560     "IsArray",
04561     "IsDate",
04562     "IsEmpty",
04563     "IsError",
04564     "IsMissing",
04565     "IsNull",
04566     "IsNumeric",
04567     "IsObject",
04568     "LBound",
04569     "LCase",
04570     "LOF",
04571     "LTrim",
04572     "Left",
04573     "LeftB",
04574     "Len",
04575     "LoadPicture",
04576     "Loc",
04577     "Log",
04578     "MIRR",
04579     "Mid",
04580     "MidB",
04581     "Minute",
04582     "Month",
04583     "MsgBox",
04584     "NPV",
04585     "NPer",
04586     "Now",
04587     "Oct",
04588     "OpenDatabase",
04589     "PPmt",
04590     "PV",
04591     "Partition",
04592     "Pmt",
04593     "QBColor",
04594     "RGB",
04595     "RTrim",
04596     "Rate",
04597     "ReadProperty",
04598     "Right",
04599     "RightB",
04600     "Rnd",
04601     "SLN",
04602     "SYD",
04603     "Second",
04604     "Seek",
04605     "Sgn",
04606     "Shell",
04607     "Sin",
04608     "Space",
04609     "Spc",
04610     "Sqr",
04611     "Str",
04612     "StrComp",
04613     "StrConv",
04614     "Switch",
04615     "Tab",
04616     "Tan",
04617     "Time",
04618     "TimeSerial",
04619     "TimeValue",
04620     "Timer",
04621     "Trim",
04622     "TypeName",
04623     "UBound",
04624     "UCase",
04625     "Val",
04626     "VarType",
04627     "Weekday",
04628     "Year",
04629     "Hide",
04630     "Line",
04631     "Refresh",
04632     "Show",
04633     //=========================================================
04634     // 以下はVB.NET(VB7)での廃止が決定しているキーワードです
04635     //=========================================================
04636     //$付き関数各種
04637     "Dir$",
04638     "LCase$",
04639     "Left$",
04640     "LeftB$",
04641     "Mid$",
04642     "MidB$",
04643     "RightB$",
04644     "Right$",
04645     "Space$",
04646     "Str$",
04647     "String$",
04648     "Trim$",
04649     "UCase$",
04650     //VB5,6の隠し関数
04651     "VarPtr",
04652     "StrPtr",
04653     "ObjPtr",
04654     "VarPrtArray",
04655     "VarPtrStringArray"
04656 };
04657
04658 //Jul. 10, 2001 JEPRO 追加
04659 static const char*  ppszKeyWordsRTF[] = {
04660     "\\ansi",
04661     "\\b",
04662     "\\bin",
04663     "\\box",
04664     "\\brdrb",
04665     "\\brdrbar",
04666     "\\brdrdb",
04667     "\\brdrdot",
04668     "\\brdrl",
04669     "\\brdrr",
04670     "\\brdrs",
04671     "\\brdrsh",
04672     "\\brdrt",
04673     "\\brdrth",
04674     "\\cell",
04675     "\\cellx",
04676     "\\cf",
04677     "\\chftn",
04678     "\\clmgf",
04679     "\\clmrg",
04680     "\\colortbl",
04681     "\\deff",
04682     "\\f",
04683     "\\fi",
04684     "\\field",
04685     "\\fldrslt",
04686     "\\fonttbl",
04687     "\\footnote",
04688     "\\fs",
04689     "\\i"
04690     "\\intbl",
04691     "\\keep",
04692     "\\keepn",
04693     "\\li",
04694     "\\line",
04695     "\\mac",
04696     "\\page",
04697     "\\par",
04698     "\\pard",
04699     "\\pc",
04700     "\\pich",
04701     "\\pichgoal",
04702     "\\picscalex",
04703     "\\picscaley",
04704     "\\pict",
04705     "\\picw",
04706     "\\picwgoal",
04707     "\\plain",
04708     "\\qc",
04709     "\\ql",
04710     "\\qr",
04711     "\\ri",
04712     "\\row",
04713     "\\rtf",
04714     "\\sa",
04715     "\\sb",
04716     "\\scaps",
04717     "\\sect",
04718     "\\sl",
04719     "\\strike",
04720     "\\tab",
04721     "\\tqc",
04722     "\\tqr",
04723     "\\trgaph",
04724     "\\trleft",
04725     "\\trowd",
04726     "\\trqc",
04727     "\\trql",
04728     "\\tx",
04729     "\\ul",
04730     "\\uldb",
04731     "\\v",
04732     "\\wbitmap",
04733     "\\wbmbitspixel",
04734     "\\wbmplanes",
04735     "\\wbmwidthbytes",
04736     "\\wmetafile",
04737     "bmc",
04738     "bml",
04739     "bmr",
04740     "emc",
04741     "eml",
04742     "emr"
04743 };
04744
04752 void CShareData::InitKeyword(DLLSHAREDATA* pShareData)
04753 {
04754     /* 強調キーワードのテストデータ */
04755     pShareData->m_CKeyWordSetMgr.m_nCurrentKeyWordSetIdx = 0;
04756
04757     int nSetCount = -1;
04758
04759 #define PopulateKeyword(name,case_sensitive,ary) \
04760     pShareData->m_CKeyWordSetMgr.AddKeyWordSet( (name), (case_sensitive) ); \
04761     pShareData->m_CKeyWordSetMgr.SetKeyWordArr( ++nSetCount, sizeof(ary)/sizeof(ary[0]), (ary) );
04762
04763     PopulateKeyword( "C/C++", TRUE, ppszKeyWordsCPP );          /* セット 0の追加 */
04764     PopulateKeyword( "HTML", FALSE, ppszKeyWordsHTML );         /* セット 1の追加 */
04765     PopulateKeyword( "PL/SQL", FALSE, ppszKeyWordsPLSQL );      /* セット 2の追加 */
04766     PopulateKeyword( "COBOL", TRUE ,ppszKeyWordsCOBOL );        /* セット 3の追加 */
04767     PopulateKeyword( "Java", TRUE, ppszKeyWordsJAVA );          /* セット 4の追加 */
04768     PopulateKeyword( "CORBA IDL", TRUE, ppszKeyWordsCORBA_IDL );/* セット 5の追加 */
04769     PopulateKeyword( "AWK", TRUE, ppszKeyWordsAWK );            /* セット 6の追加 */
04770     PopulateKeyword( "MS-DOS batch", FALSE, ppszKeyWordsBAT );  /* セット 7の追加 */    //Oct. 31, 2000 JEPRO 'バッチファイル'→'batch' に短縮
04771     PopulateKeyword( "Pascal", FALSE, ppszKeyWordsPASCAL );     /* セット 8の追加 */    //Nov. 5, 2000 JEPRO 大・小文字の区別を'しない'に変更
04772     PopulateKeyword( "TeX", TRUE, ppszKeyWordsTEX );            /* セット 9の追加 */    //Sept. 2, 2000 jepro Tex →TeX に修正 Bool値は大・小文字の区別
04773     PopulateKeyword( "TeX2", TRUE, ppszKeyWordsTEX2 );          /* セット10の追加 */    //Jan. 19, 2001 JEPRO 追加
04774     PopulateKeyword( "Perl", TRUE, ppszKeyWordsPERL );          /* セット11の追加 */
04775     PopulateKeyword( "Perl2", TRUE, ppszKeyWordsPERL2 );        /* セット12の追加 */    //Jul. 10, 2001 JEPRO Perlから変数を分離・独立
04776     PopulateKeyword( "Visual Basic", FALSE, ppszKeyWordsVB );   /* セット13の追加 */    //Jul. 10, 2001 JEPRO
04777     PopulateKeyword( "Visual Basic2", FALSE, ppszKeyWordsVB2 ); /* セット14の追加 */    //Jul. 10, 2001 JEPRO
04778     PopulateKeyword( "リッチテキスト", TRUE, ppszKeyWordsRTF ); /* セット15の追加 */    //Jul. 10, 2001 JEPRO
04779
04780 #undef PopulateKeyword
04781 }
04782
04789 void CShareData::InitKeyAssign(DLLSHAREDATA* pShareData)
04790 {
04791     /********************/
04792     /* 共通設定の規定値 */
04793     /********************/
04794     struct KEYDATAINIT {
04795         short           nKeyCode;
04796         char*           pszKeyName;
04797         short           nFuncCode_0;
04798         short           nFuncCode_1;
04799         short           nFuncCode_2;
04800         short           nFuncCode_3;
04801         short           nFuncCode_4;
04802         short           nFuncCode_5;
04803         short           nFuncCode_6;
04804         short           nFuncCode_7;
04805     };
04806     static KEYDATAINIT  KeyDataInit[] = {
04807     //Sept. 1, 2000 Jepro note: key binding
04808     //Feb. 17, 2001 jepro note 2: 順番は2進で下位3ビット[Alt][Ctrl][Shift]の組合せの順(それに2を加えた値)
04809     //      0,      1,       2(000), 3(001),4(010), 5(011),     6(100), 7(101),     8(110),     9(111)
04810     //      keycode, keyname, なし, Shitf+, Ctrl+, Shift+Ctrl+, Alt+, Shit+Alt+, Ctrl+Alt+, Shift+Ctrl+Alt+
04811     //
04812         /* マウスボタン */
04813         { 0, "ダブルクリック",F_SELECTWORD, F_SELECTWORD, F_SELECTWORD, F_SELECTWORD, F_SELECTWORD, F_SELECTWORD, F_SELECTWORD, F_SELECTWORD },
04814     //Feb. 19, 2001 JEPRO Altと右クリックの組合せは効かないので右クリックメニューのキー割り当てをはずした
04815         { 0, "右クリック",F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, 0, 0, 0, 0 },
04816     // novice 2004/10/11 マウス中ボタン対応
04817         { 0, "中クリック", 0, 0, 0, 0, 0, 0, 0, 0 },
04818     // novice 2004/10/10 マウスサイドボタン対応
04819         { 0, "左サイドクリック", 0, 0, 0, 0, 0, 0, 0, 0 },
04820         { 0, "右サイドクリック", 0, 0, 0, 0, 0, 0, 0, 0 },
04821         /* ファンクションキー */
04822     //  From Here Sept. 14, 2000 JEPRO
04823     //  VK_F1,"F1", F_EXTHTMLHELP, 0, F_EXTHELP1, 0, 0, 0, 0, 0,
04824     //  Shift+F1 に「コマンド一覧」, Alt+F1 に「ヘルプ目次」, Shift+Alt+F1 に「キーワード検索」を追加   //Nov. 25, 2000 JEPRO 殺していたのを修正・復活
04825     //Dec. 25, 2000 JEPRO Shift+Ctrl+F1 に「バージョン情報」を追加
04826     //  { VK_F1,"F1", F_EXTHTMLHELP, F_MENU_ALLFUNC, F_EXTHELP1, 0, 0, 0, 0, 0 },
04827         { VK_F1,"F1", F_EXTHTMLHELP, F_MENU_ALLFUNC, F_EXTHELP1, F_ABOUT, F_HELP_CONTENTS, F_HELP_SEARCH, 0, 0 },
04828     //  To Here Sept. 14, 2000
04829     // From Here 2001.12.03 hor F2にブックマーク関連を割当
04830     //  { VK_F2,"F2", 0, 0, 0, 0, 0, 0, 0, 0 },
04831         { VK_F2,"F2", F_BOOKMARK_NEXT, F_BOOKMARK_PREV, F_BOOKMARK_SET, F_BOOKMARK_RESET, F_BOOKMARK_VIEW, 0, 0, 0 },
04832     // To Here 2001.12.03 hor
04833         //Sept. 21, 2000 JEPRO  Ctrl+F3 に「検索マークのクリア」を追加
04834         //Aug. 12, 2002 ai  Ctrl+Shift+F3 に「検索開始位置へ戻る」を追加
04835         { VK_F3,"F3", F_SEARCH_NEXT, F_SEARCH_PREV, F_SEARCH_CLEARMARK, F_JUMP_SRCHSTARTPOS, 0, 0, 0, 0 },
04836         //Oct. 7, 2000 JEPRO    Alt+F4 に「ウィンドウを閉じる」, Shift+Alt+F4 に「すべてのウィンドウを閉じる」を追加
04837         //  Ctrl+F4に割り当てられていた「縦横に分割」を「閉じて(無題)」に変更し Shift+Ctrl+F4 に「閉じて開く」を追加
04838         //Jan. 14, 2001 Ctrl+Alt+F4 に「テキストエディタの全終了」を追加
04839         //Jun. 2001「サクラエディタの全終了」に改称
04840         //2006.10.21 ryoji Alt+F4 には何も割り当てない（デフォルトのシステムコマンド「閉じる」が実行されるように）
04841         //2007.02.13 ryoji Shift+Ctrl+F4をF_WIN_CLOSEALLからF_EXITALLEDITORSに変更
04842         //2007.02.22 ryoji Ctrl+F4 への割り当てを削除（デフォルトのコマンドを実行）
04843         { VK_F4,"F4", F_SPLIT_V, F_SPLIT_H, 0, F_FILECLOSE_OPEN, 0, F_EXITALLEDITORS, F_EXITALL, 0 },
04844     //  From Here Sept. 20, 2000 JEPRO Ctrl+F5 に「外部コマンド実行」を追加  なおマクロ名はCMMAND からCOMMAND に変更済み
04845     //  { VK_F5,"F5", F_PLSQL_COMPILE_ON_SQLPLUS, 0, F_EXECCOMMAND_DIALOG, 0, 0, 0, 0, 0 },
04846     //  To Here Sept. 20, 2000
04847         //Oct. 28, 2000 F5 は「再描画」に変更   //Jan. 14, 2001 Alt+F5 に「uudecodeして保存」, Ctrl+ Alt+F5 に「TAB→空白」を追加
04848         //  May 28, 2001 genta  S-C-A-F5にSPACE-to-TABを追加
04849         { VK_F5,"F5", F_REDRAW, 0, F_EXECCOMMAND_DIALOG, 0, F_UUDECODE, 0, F_TABTOSPACE, F_SPACETOTAB },
04850         //Jan. 14, 2001 JEPRO   Ctrl+F6 に「小文字」, Alt+F6 に「Base64デコードして保存」を追加
04851         { VK_F6,"F6", F_BEGIN_SEL, F_BEGIN_BOX, F_TOLOWER, 0, F_BASE64DECODE, 0, 0, 0 },
04852         //Jan. 14, 2001 JEPRO   Ctrl+F7 に「大文字」, Alt+F7 に「UTF-7→SJISコード変換」, Shift+Alt+F7 に「SJIS→UTF-7コード変換」, Ctrl+Alt+F7 に「UTF-7で開き直す」を追加
04853         { VK_F7,"F7", F_CUT, 0, F_TOUPPER, 0, F_CODECNV_UTF72SJIS, F_CODECNV_SJIS2UTF7, F_FILE_REOPEN_UTF7, 0 },
04854         //Nov. 9, 2000 JEPRO    Shift+F8 に「CRLF改行でコピー」を追加
04855         //Jan. 14, 2001 JEPRO   Ctrl+F8 に「全角→半角」, Alt+F8 に「UTF-8→SJISコード変換」, Shift+Alt+F8 に「SJIS→UTF-8コード変換」, Ctrl+Alt+F8 に「UTF-8で開き直す」を追加
04856         { VK_F8,"F8", F_COPY, F_COPY_CRLF, F_TOHANKAKU, 0, F_CODECNV_UTF82SJIS, F_CODECNV_SJIS2UTF8, F_FILE_REOPEN_UTF8, 0 },
04857         //Jan. 14, 2001 JEPRO   Ctrl+F9 に「半角＋全ひら→全角・カタカナ」, Alt+F9 に「Unicode→SJISコード変換」, Ctrl+Alt+F9 に「Unicodeで開き直す」を追加
04858         { VK_F9,"F9", F_PASTE, F_PASTEBOX, F_TOZENKAKUKATA, 0, F_CODECNV_UNICODE2SJIS, 0, F_FILE_REOPEN_UNICODE, 0 },
04859         //Oct. 28, 2000 JEPRO F10 に「SQL*Plusで実行」を追加(F5からの移動)
04860         //Jan. 14, 2001 JEPRO   Ctrl+F10 に「半角＋全カタ→全角・ひらがな」, Alt+F10 に「EUC→SJISコード変換」, Shift+Alt+F10 に「SJIS→EUCコード変換」, Ctrl+Alt+F10 に「EUCで開き直す」を追加
04861         { VK_F10,"F10", F_PLSQL_COMPILE_ON_SQLPLUS, F_DUPLICATELINE, F_TOZENKAKUHIRA, 0, F_CODECNV_EUC2SJIS, F_CODECNV_SJIS2EUC, F_FILE_REOPEN_EUC, 0 },
04862         //Jan. 14, 2001 JEPRO   Shift+F11 に「SQL*Plusをアクティブ表示」, Ctrl+F11 に「半角カタカナ→全角カタカナ」, Alt+F11 に「E-Mail(JIS→SJIS)コード変換」, Shift+Alt+F11 に「SJIS→JISコード変換」, Ctrl+Alt+F11 に「JISで開き直す」を追加
04863         { VK_F11,"F11", F_OUTLINE, F_ACTIVATE_SQLPLUS, F_HANKATATOZENKAKUKATA, 0, F_CODECNV_EMAIL, F_CODECNV_SJIS2JIS, F_FILE_REOPEN_JIS, 0 },
04864         //Jan. 14, 2001 JEPRO   Ctrl+F12 に「半角カタカナ→全角ひらがな」, Alt+F12 に「自動判別→SJISコード変換」, Ctrl+Alt+F11 に「SJISで開き直す」を追加
04865         { VK_F12,"F12", F_TAGJUMP, F_TAGJUMPBACK, F_HANKATATOZENKAKUHIRA, 0, F_CODECNV_AUTO2SJIS, 0, F_FILE_REOPEN_SJIS, 0 },
04866         { VK_F13,"F13", 0, 0, 0, 0, 0, 0, 0, 0 },
04867         { VK_F14,"F14", 0, 0, 0, 0, 0, 0, 0, 0 },
04868         { VK_F15,"F15", 0, 0, 0, 0, 0, 0, 0, 0 },
04869         { VK_F16,"F16", 0, 0, 0, 0, 0, 0, 0, 0 },
04870         { VK_F17,"F17", 0, 0, 0, 0, 0, 0, 0, 0 },
04871         { VK_F18,"F18", 0, 0, 0, 0, 0, 0, 0, 0 },
04872         { VK_F19,"F19", 0, 0, 0, 0, 0, 0, 0, 0 },
04873         { VK_F20,"F20", 0, 0, 0, 0, 0, 0, 0, 0 },
04874         { VK_F21,"F21", 0, 0, 0, 0, 0, 0, 0, 0 },
04875         { VK_F22,"F22", 0, 0, 0, 0, 0, 0, 0, 0 },
04876         { VK_F23,"F23", 0, 0, 0, 0, 0, 0, 0, 0 },
04877         { VK_F24,"F24", 0, 0, 0, 0, 0, 0, 0, 0 },
04878         /* 特殊キー */
04879         { VK_TAB,"Tab",F_INDENT_TAB, F_UNINDENT_TAB, F_NEXTWINDOW, F_PREVWINDOW, 0, 0, 0, 0 },
04880         //Sept. 1, 2000 JEPRO   Alt+Enter に「ファイルのプロパティ」を追加  //Oct. 15, 2000 JEPRO Ctrl+Enter に「ファイル内容比較」を追加
04881             { VK_RETURN,"Enter",0, 0, F_COMPARE, 0, F_PROPERTY_FILE, 0, 0, 0 },
04882         { VK_ESCAPE,"Esc",F_CANCEL_MODE, 0, 0, 0, 0, 0, 0, 0 },
04883 //          { VK_BACK,"BackSpace",F_DELETE_BACK, 0, F_WordDeleteToStart, 0, 0, 0, 0, 0 },
04884         //Oct. 7, 2000 JEPRO 長いので名称を簡略形に変更(BackSpace→BkSp)
04885         { VK_BACK,"BkSp",F_DELETE_BACK, 0, F_WordDeleteToStart, 0, 0, 0, 0, 0 },
04886 //          { VK_INSERT,"Insert",F_CHGMOD_INS, F_PASTE, F_COPY, 0, 0, 0, 0, 0 },
04887         //Oct. 7, 2000 JEPRO 名称をVC++に合わせ簡略形に変更(Insert→Ins)
04888         { VK_INSERT,"Ins",F_CHGMOD_INS, F_PASTE, F_COPY, 0, 0, 0, 0, 0 },
04889 //          { VK_DELETE,"Delete",F_DELETE, 0, F_WordDeleteToEnd, 0, 0, 0, 0, 0 },
04890         //Oct. 7, 2000 JEPRO 名称をVC++に合わせ簡略形に変更(Delete→Del)
04891         //Jun. 26, 2001 JEPRO   Shift+Del に「切り取り」を追加
04892         { VK_DELETE,"Del",F_DELETE, F_CUT, F_WordDeleteToEnd, 0, 0, 0, 0, 0 },
04893         { VK_HOME,"Home",F_GOLINETOP, F_GOLINETOP_SEL, F_GOFILETOP, F_GOFILETOP_SEL, 0, 0, 0, 0 },
04894         { VK_END,"End(Help)",F_GOLINEEND, F_GOLINEEND_SEL, F_GOFILEEND, F_GOFILEEND_SEL, 0, 0, 0, 0 },
04895         { VK_LEFT,"←",F_LEFT, F_LEFT_SEL/*F_GOLINETOP*/, F_WORDLEFT, F_WORDLEFT_SEL, F_BEGIN_BOX, 0, 0, 0 },
04896         //Oct. 7, 2000 JEPRO    Shift+Ctrl+Alt+↑に「縦方向に最大化」を追加
04897 //          { VK_UP,"↑",F_UP, F_UP_SEL, F_UP2, F_UP2_SEL, F_BEGIN_BOX, 0, 0, F_MAXIMIZE_V },
04898         //Jun. 27, 2001 JEPRO
04899         //  Ctrl+↑に割り当てられていた「カーソル上移動(２行ごと)」を「テキストを１行下へスクロール」に変更
04900         { VK_UP,"↑",F_UP, F_UP_SEL, F_WndScrollDown, F_UP2_SEL, F_BEGIN_BOX, 0, 0, F_MAXIMIZE_V },
04901         //2001.02.10 by MIK Shift+Ctrl+Alt+→に「横方向に最大化」を追加
04902         { VK_RIGHT,"→",F_RIGHT, F_RIGHT_SEL/*F_GOLINEEND*/, F_WORDRIGHT, F_WORDRIGHT_SEL, F_BEGIN_BOX, 0, 0, F_MAXIMIZE_H },
04903         //Sept. 14, 2000 JEPRO
04904         //  Ctrl+↓に割り当てられていた「右クリックメニュー」を「カーソル下移動(２行ごと)」に変更
04905         //  それに付随してさらに「右クリックメニュー」をCtrl＋Alt＋↓に変更
04906 //          { VK_DOWN,"↓",F_DOWN, F_DOWN_SEL, F_DOWN2, F_DOWN2_SEL, F_BEGIN_BOX, 0, F_MENU_RBUTTON, F_MINIMIZE_ALL },
04907         //Jun. 27, 2001 JEPRO
04908         //  Ctrl+↓に割り当てられていた「カーソル下移動(２行ごと)」を「テキストを１行上へスクロール」に変更
04909         { VK_DOWN,"↓",F_DOWN, F_DOWN_SEL, F_WndScrollUp, F_DOWN2_SEL, F_BEGIN_BOX, 0, F_MENU_RBUTTON, F_MINIMIZE_ALL },
04910 //          { VK_PRIOR,"RollDown(PageUp)",F_ROLLDOWN, F_ROLLDOWN_SEL, 0, 0, 0, 0, 0, 0 },
04911 //          { VK_NEXT,"RollUp(PageDown)",F_ROLLUP, F_ROLLUP_SEL, 0, 0, 0, 0, 0, 0 },
04912         //Oct. 15, 2000 JEPRO Ctrl+PgUp, Shift+Ctrl+PgDn にそれぞれ「１ページダウン」, 「(選択)１ページダウン」を追加
04913         //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に交換(RollUp→PgDn) //Oct. 10, 2000 JEPRO 名称変更
04914         //2001.12.03 hor 1Page/HalfPage 入替え
04915         { VK_NEXT,"PgDn(RollUp)", F_1PageDown, F_1PageDown_Sel,F_HalfPageDown, F_HalfPageDown_Sel, 0, 0, 0, 0 },
04916         //Oct. 15, 2000 JEPRO Ctrl+PgUp, Shift+Ctrl+PgDn にそれぞれ「１ページアップ」, 「(選択)１ページアップ」を追加
04917         //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に交換(RollDown→PgUp) //Oct. 10, 2000 JEPRO 名称変更
04918         //2001.12.03 hor 1Page/HalfPage 入替え
04919         { VK_PRIOR,"PgUp(RollDn)", F_1PageUp, F_1PageUp_Sel,F_HalfPageUp, F_HalfPageUp_Sel, 0, 0, 0, 0 },
04920 //          { VK_SPACE,"SpaceBar",F_INDENT_SPACE, F_UNINDENT_SPACE, F_HOKAN, 0, 0, 0, 0, 0 },
04921         //Oct. 7, 2000 JEPRO 名称をVC++に合わせ簡略形に変更(SpaceBar→Space)
04922         { VK_SPACE,"Space",F_INDENT_SPACE, F_UNINDENT_SPACE, F_HOKAN, 0, 0, 0, 0, 0 },
04923         /* 数字 */
04924         //Oct. 7, 2000 JEPRO    Ctrl+0 を「タイプ別設定一覧」→「未定義」に変更
04925         //Jan. 13, 2001 JEPRO   Alt+0 に「カスタムメニュー10」, Shift+Alt+0 に「カスタムメニュー20」を追加
04926         { '0', "0",0, 0, 0, 0, F_CUSTMENU_10, F_CUSTMENU_20, 0, 0 },
04927         //Oct. 7, 2000 JEPRO    Ctrl+1 を「タイプ別設定」→「ツールバーの表示」に変更
04928         //Jan. 13, 2001 JEPRO   Alt+1 に「カスタムメニュー1」, Shift+Alt+1 に「カスタムメニュー11」を追加
04929         //Jan. 19, 2001 JEPRO   Shift+Ctrl+1 に「カスタムメニュー21」を追加
04930         { '1', "1",0, 0, F_SHOWTOOLBAR, F_CUSTMENU_21, F_CUSTMENU_1, F_CUSTMENU_11, 0, 0 },
04931         //Oct. 7, 2000 JEPRO    Ctrl+2 を「共通設定」→「ファンクションキーの表示」に変更
04932         //Jan. 13, 2001 JEPRO   Alt+2 を「アウトプット」→「カスタムメニュー2」に変更し「アウトプット」は Alt+O に移動, Shift+Alt+2 に「カスタムメニュー12」を追加
04933         //Jan. 19, 2001 JEPRO   Shift+Ctrl+2 に「カスタムメニュー22」を追加
04934         { '2', "2",0, 0, F_SHOWFUNCKEY, F_CUSTMENU_22, F_CUSTMENU_2/*F_WIN_OUTPUT*/, F_CUSTMENU_12, 0, 0 },
04935         //Oct. 7, 2000 JEPRO    Ctrl+3 を「フォント設定」→「ステータスバーの表示」に変更
04936         //Jan. 13, 2001 JEPRO   Alt+3 に「カスタムメニュー3」, Shift+Alt+3 に「カスタムメニュー13」を追加
04937         //Jan. 19, 2001 JEPRO   Shift+Ctrl+3 に「カスタムメニュー23」を追加
04938         { '3', "3",0, 0, F_SHOWSTATUSBAR, F_CUSTMENU_23, F_CUSTMENU_3, F_CUSTMENU_13, 0, 0 },
04939         //Oct. 7, 2000 JEPRO    Ctrl+4 を「ツールバーの表示」→「タイプ別設定一覧」に変更
04940         //Jan. 13, 2001 JEPRO   Alt+4 に「カスタムメニュー4」, Shift+Alt+4 に「カスタムメニュー14」を追加
04941         //Jan. 19, 2001 JEPRO   Shift+Ctrl+4 に「カスタムメニュー24」を追加
04942         { '4', "4",0, 0, F_TYPE_LIST, F_CUSTMENU_24, F_CUSTMENU_4, F_CUSTMENU_14, 0, 0 },
04943         //Oct. 7, 2000 JEPRO    Ctrl+5 を「ファンクションキーの表示」→「タイプ別設定」に変更
04944         //Jan. 13, 2001 JEPRO   Alt+5 に「カスタムメニュー5」, Shift+Alt+5 に「カスタムメニュー15」を追加
04945         { '5', "5",0, 0, F_OPTION_TYPE, 0, F_CUSTMENU_5, F_CUSTMENU_15, 0, 0 },
04946         //Oct. 7, 2000 JEPRO    Ctrl+6 を「ステータスバーの表示」→「共通設定」に変更
04947         //Jan. 13, 2001 JEPRO   Alt+6 に「カスタムメニュー6」, Shift+Alt+6 に「カスタムメニュー16」を追加
04948         { '6', "6",0, 0, F_OPTION, 0, F_CUSTMENU_6, F_CUSTMENU_16, 0, 0 },
04949         //Oct. 7, 2000 JEPRO    Ctrl+7 に「フォント設定」を追加
04950         //Jan. 13, 2001 JEPRO   Alt+7 に「カスタムメニュー7」, Shift+Alt+7 に「カスタムメニュー17」を追加
04951         { '7', "7",0, 0, F_FONT, 0, F_CUSTMENU_7, F_CUSTMENU_17, 0, 0 },
04952         //Jan. 13, 2001 JEPRO   Alt+8 に「カスタムメニュー8」, Shift+Alt+8 に「カスタムメニュー18」を追加
04953         { '8', "8",0, 0, 0, 0, F_CUSTMENU_8, F_CUSTMENU_18, 0, 0 },
04954         //Jan. 13, 2001 JEPRO   Alt+9 に「カスタムメニュー9」, Shift+Alt+9 に「カスタムメニュー19」を追加
04955         { '9', "9",0, 0, 0, 0, F_CUSTMENU_9, F_CUSTMENU_19, 0, 0 },
04956         /* アルファベット */
04957         //2001.12.06 hor Alt+A を「SORT_ASC」に割当
04958         { 'A', "A",0, 0, F_SELECTALL, 0, F_SORT_ASC, 0, 0, 0 },
04959         //Jan. 13, 2001 JEPRO   Ctrl+B に「ブラウズ」を追加
04960         { 'B', "B",0, 0, F_BROWSE, 0, 0, 0, 0, 0 },
04961         //Jan. 16, 2001 JEPRO   SHift+Ctrl+C に「.hと同名の.c(なければ.cpp)を開く」を追加
04962         //Feb. 07, 2001 JEPRO   SHift+Ctrl+C を「.hと同名の.c(なければ.cpp)を開く」→「同名のC/C++ヘッダ(ソース)を開く」に変更
04963         { 'C', "C",0, 0, F_COPY, F_OPEN_HfromtoC, 0, 0, 0, 0 },
04964         //Jan. 16, 2001 JEPRO   Ctrl+D に「単語切り取り」, Shift+Ctrl+D に「単語削除」を追加
04965         //2001.12.06 hor Alt+D を「SORT_DESC」に割当
04966         { 'D', "D",0, 0, F_WordCut, F_WordDelete, F_SORT_DESC, 0, 0, 0 },
04967         //Oct. 7, 2000 JEPRO    Ctrl+Alt+E に「重ねて表示」を追加
04968         //Jan. 16, 2001 JEPRO   Ctrl+E に「行切り取り(折り返し単位)」, Shift+Ctrl+E に「行削除(折り返し単位)」を追加
04969         { 'E', "E",0, 0, F_CUT_LINE, F_DELETE_LINE, 0, 0, F_CASCADE, 0 },
04970         { 'F', "F",0, 0, F_SEARCH_DIALOG, 0, 0, 0, 0, 0 },
04971         { 'G', "G",0, 0, F_GREP_DIALOG, 0, 0, 0, 0, 0 },
04972         //Oct. 07, 2000 JEPRO   Ctrl+Alt+H に「上下に並べて表示」を追加
04973         //Jan. 16, 2001 JEPRO   Ctrl+H を「カーソル前を削除」→「カーソル行をウィンドウ中央へ」に変更し Shift+Ctrl+H に「.cまたは.cppと同名の.hを開く」を追加
04974         //Feb. 07, 2001 JEPRO   SHift+Ctrl+H を「.cまたは.cppと同名の.hを開く」→「同名のC/C++ヘッダ(ソース)を開く」に変更
04975         { 'H', "H",0, 0, F_CURLINECENTER, F_OPEN_HfromtoC, 0, 0, F_TILE_V, 0 },
04976         //Jan. 21, 2001 JEPRO   Ctrl+I に「行の二重化」を追加
04977         { 'I', "I",0, 0, F_DUPLICATELINE, 0, 0, 0, 0, 0 },
04978         { 'J', "J",0, 0, F_JUMP_DIALOG, 0, 0, 0, 0, 0 },
04979         //Jan. 16, 2001 JEPRO   Ctrl+K に「行末まで切り取り(改行単位)」, Shift+Ctrl+E に「行末まで削除(改行単位)」を追加
04980         { 'K', "K",0, 0, F_LineCutToEnd, F_LineDeleteToEnd, 0, 0, 0, 0 },
04981         //Jan. 14, 2001 JEPRO   Ctrl+Alt+L に「小文字」, Shift+Ctrl+Alt+L に「大文字」を追加
04982         //Jan. 16, 2001 Ctrl+L を「カーソル行をウィンドウ中央へ」→「キーマクロの読み込み」に変更し「カーソル行をウィンドウ中央へ」は Ctrl+H に移動
04983         //2001.12.03 hor Alt+L を「LTRIM」に割当
04984         { 'L', "L",0, 0, F_LOADKEYMACRO, F_EXECKEYMACRO, F_LTRIM, 0, F_TOLOWER, F_TOUPPER },
04985         //Jan. 16, 2001 JEPRO   Ctrl+M に「キーマクロの保存」を追加
04986         //2001.12.06 hor Alt+M を「MERGE」に割当
04987         { 'M', "M",0, 0, F_SAVEKEYMACRO, F_RECKEYMACRO, F_MERGE, 0, 0, 0 },
04988         //Oct. 20, 2000 JEPRO   Alt+N に「移動履歴: 次へ」を追加
04989         { 'N', "N",0, 0, F_FILENEW, 0, F_JUMPHIST_NEXT, 0, 0, 0 },
04990         //Jan. 13, 2001 JEPRO   Alt+O に「アウトプット」を追加
04991         { 'O', "O",0, 0, F_FILEOPEN, 0, 0, 0, 0, 0 },
04992         //Oct. 7, 2000 JEPRO    Ctrl+P に「印刷」, Shift+Ctrl+P に「印刷プレビュー」, Ctrl+Alt+P に「ページ設定」を追加
04993         //Oct. 20, 2000 JEPRO   Alt+P に「移動履歴: 前へ」を追加
04994         { 'P', "P",0, 0, F_PRINT, F_PRINT_PREVIEW, F_JUMPHIST_PREV, 0, F_PRINT_PAGESETUP, 0 },
04995         //Jan. 24, 2001 JEPRO   Ctrl+Q に「キー割り当て一覧をコピー」を追加
04996         { 'Q', "Q",0, 0, F_CREATEKEYBINDLIST, 0, 0, 0, 0, 0 },
04997         //2001.12.03 hor Alt+R を「RTRIM」に割当
04998         { 'R', "R",0, 0, F_REPLACE_DIALOG, 0, F_RTRIM, 0, 0, 0 },
04999         //Oct. 7, 2000 JEPRO    Shift+Ctrl+S に「名前を付けて保存」を追加
05000         { 'S', "S",0, 0, F_FILESAVE, F_FILESAVEAS_DIALOG, 0, 0, 0, 0 },
05001         //Oct. 7, 2000 JEPRO    Ctrl+Alt+T に「左右に並べて表示」を追加
05002         //Jan. 21, 2001 JEPRO   Ctrl+T に「タグジャンプ」, Shift+Ctrl+T に「タグジャンプバック」を追加
05003         { 'T', "T",0, 0, F_TAGJUMP, F_TAGJUMPBACK, 0, 0, F_TILE_H, 0 },
05004         //Oct. 7, 2000 JEPRO    Ctrl+Alt+U に「現在のウィンドウ幅で折り返し」を追加
05005         //Jan. 16, 2001 JEPRO   Ctrl+U に「行頭まで切り取り(改行単位)」, Shift+Ctrl+U に「行頭まで削除(改行単位)」を追加
05006         { 'U', "U",0, 0, F_LineCutToStart, F_LineDeleteToStart, 0, 0, F_WRAPWINDOWWIDTH, 0 },
05007         { 'V', "V",0, 0, F_PASTE, 0, 0, 0, 0, 0 },
05008         { 'W', "W",0, 0, F_SELECTWORD, 0, 0, 0, 0, 0 },
05009         //Jan. 13, 2001 JEPRO   Alt+X を「カスタムメニュー1」→「未定義」に変更し「カスタムメニュー1」は Alt+1 に移動
05010         { 'X', "X",0, 0, F_CUT, 0, 0, 0, 0, 0 },
05011         { 'Y', "Y",0, 0, F_REDO, 0, 0, 0, 0, 0 },
05012         { 'Z', "Z",0, 0, F_UNDO, 0, 0, 0, 0, 0 },
05013         /* 記号 */
05014         //Oct. 7, 2000 JEPRO    Shift+Ctrl+- に「上下に分割」を追加
05015         // 2002.02.08 hor Ctrl+-にファイル名をコピーを追加
05016         { 0x00bd, "-",0, 0, F_COPYFNAME, F_SPLIT_V, 0, 0, 0, 0 },
05017         { 0x00de, "^(英語')",0, 0, F_COPYTAG, 0, 0, 0, 0, 0 },
05018         //Oct. 7, 2000 JEPRO    Shift+Ctrl+\ に「左右に分割」を追加
05019         { 0x00dc, "\\",0, 0, F_COPYPATH, F_SPLIT_H, 0, 0, 0, 0 },
05020         //Sept. 20, 2000 JEPRO  Ctrl+@ に「ファイル内容比較」を追加  //Oct. 15, 2000 JEPRO「選択範囲内全行コピー」に変更
05021         { 0x00c0, "@(英語`)",0, 0, F_COPYLINES, 0, 0, 0, 0, 0 },
05022         //  Aug. 16, 2000 genta
05023         //  反対向きの括弧にも括弧検索を追加
05024         { 0x00db, "[",0, 0, F_BRACKETPAIR, 0, 0, 0, 0, 0 },
05025         //Oct. 7, 2000 JEPRO    Shift+Ctrl+; に「縦横に分割」を追加 //Jan. 16, 2001 Alt+; に「日付挿入」を追加
05026         { 0x00bb, ";",0, 0, 0, F_SPLIT_VH, F_INS_DATE, 0, 0, 0 },
05027         //Sept. 14, 2000 JEPRO  Ctrl+: に「選択範囲内全行行番号付きコピー」を追加   //Jan. 16, 2001 Alt+: に「時刻挿入」を追加
05028         { 0x00ba, ":",0, 0, F_COPYLINESWITHLINENUMBER, 0, F_INS_TIME, 0, 0, 0 },
05029         { 0x00dd, "]",0, 0, F_BRACKETPAIR, 0, 0, 0, 0, 0 },
05030         { 0x00bc, ",",0, 0, 0, 0, 0, 0, 0, 0 },
05031         //Sept. 14, 2000 JEPRO  Ctrl+. に「選択範囲内全行引用符付きコピー」を追加
05032         { 0x00be, ".",0, 0, F_COPYLINESASPASSAGE, 0, 0, 0, 0, 0 },
05033         { 0x00bf, "/",0, 0, F_HOKAN, 0, 0, 0, 0, 0 },
05034         //  Nov. 15, 2000 genta PC/ATキーボードに合わせてキーコードを変更
05035         //  PC98救済のため，従来のキーコードに対応する項目を追加．
05036         { 0x00e2, "_",0, 0, F_UNDO, 0, 0, 0, 0, 0 },
05037         { 0x00df, "_(PC-98)",0, 0, F_UNDO, 0, 0, 0, 0, 0 },
05038         //Oct. 7, 2000 JEPRO    長くて表示しきれない所がでてきてしまうのでアプリケーションキー→アプリキーに短縮
05039         { VK_APPS, "アプリキー",F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON, F_MENU_RBUTTON }
05040     };
05041     int nKeyDataInitNum = sizeof( KeyDataInit ) / sizeof( KeyDataInit[0] );
05042     for( int i = 0; i < nKeyDataInitNum; ++i ){
05043         SetKeyNameArrVal( pShareData, i,
05044             KeyDataInit[i].nKeyCode,
05045             KeyDataInit[i].pszKeyName,
05046             KeyDataInit[i].nFuncCode_0,
05047             KeyDataInit[i].nFuncCode_1,
05048             KeyDataInit[i].nFuncCode_2,
05049             KeyDataInit[i].nFuncCode_3,
05050             KeyDataInit[i].nFuncCode_4,
05051             KeyDataInit[i].nFuncCode_5,
05052             KeyDataInit[i].nFuncCode_6,
05053             KeyDataInit[i].nFuncCode_7
05054          );
05055     }
05056     pShareData->m_nKeyNameArrNum = nKeyDataInitNum;
05057 }
05058
05067 void CShareData::InitToolButtons(DLLSHAREDATA* pShareData)
05068 {
05069         /* ツールバーボタン構造体 */
05070 //Sept. 16, 2000 JEPRO
05071 //  CShareData_new2.cppでできるだけ系ごとに集まるようにアイコンの順番を大幅に入れ替えたのに伴い以下の初期設定値を変更
05072     static const int DEFAULT_TOOL_BUTTONS[] = {
05073         1,  //新規作成
05074         25,     //ファイルを開く(DropDown)
05075         3,      //上書き保存        //Sept. 16, 2000 JEPRO 3→11に変更  //Oct. 25, 2000 11→3
05076         4,      //名前を付けて保存  //Sept. 19, 2000 JEPRO 追加
05077         0,
05078
05079         33, //元に戻す(Undo)    //Sept. 16, 2000 JEPRO 7→19に変更  //Oct. 25, 2000 19→33
05080         34, //やり直し(Redo)    //Sept. 16, 2000 JEPRO 8→20に変更  //Oct. 25, 2000 20→34
05081         0,
05082
05083         87, //移動履歴: 前へ    //Dec. 24, 2000 JEPRO 追加
05084         88, //移動履歴: 次へ    //Dec. 24, 2000 JEPRO 追加
05085         0,
05086
05087         225,    //検索      //Sept. 16, 2000 JEPRO 9→22に変更  //Oct. 25, 2000 22→225
05088         226,    //次を検索  //Sept. 16, 2000 JEPRO 16→23に変更 //Oct. 25, 2000 23→226
05089         227,    //前を検索  //Sept. 16, 2000 JEPRO 17→24に変更 //Oct. 25, 2000 24→227
05090         228,    //置換      // Oct. 7, 2000 JEPRO 追加
05091         229,    //検索マークのクリア    //Sept. 16, 2000 JEPRO 41→25に変更(Oct. 7, 2000 25→26)    //Oct. 25, 2000 25→229
05092         230,    //Grep      //Sept. 16, 2000 JEPRO 14→31に変更 //Oct. 25, 2000 31→230
05093         232,    //アウトライン解析  //Dec. 24, 2000 JEPRO 追加
05094         0,
05095
05096         264,    //タイプ別設定一覧  //Sept. 16, 2000 JEPRO 追加
05097         265,    //タイプ別設定      //Sept. 16, 2000 JEPRO 18→36に変更 //Oct. 25, 2000 36→265
05098         266,    //共通設定          //Sept. 16, 2000 JEPRO 10→37に変更 説明を「設定プロパティシート」から変更  //Oct. 25, 2000 37→266
05099         0,      //Oct. 8, 2000 jepro 次行のために追加
05100         346,    //コマンド一覧  //Oct. 8, 2000 JEPRO 追加
05101     };
05102
05103     //  ツールバーアイコン数の最大値を超えないためのおまじない
05104     //  最大値を超えて定義しようとするとここでコンパイルエラーになります．
05105     char dummy[ sizeof(DEFAULT_TOOL_BUTTONS)/sizeof(DEFAULT_TOOL_BUTTONS[0]) < MAX_TOOLBARBUTTONS ? 1:0 ];
05106     dummy[0]=0;
05107
05108     memcpy( (void*)pShareData->m_Common.m_nToolBarButtonIdxArr, DEFAULT_TOOL_BUTTONS, sizeof(DEFAULT_TOOL_BUTTONS) );
05109
05110     /* ツールバーボタンの数 */
05111     pShareData->m_Common.m_nToolBarButtonNum = sizeof(DEFAULT_TOOL_BUTTONS)/sizeof(DEFAULT_TOOL_BUTTONS[0]);
05112     pShareData->m_Common.m_bToolBarIsFlat = !IsVisualStyle();           /* フラットツールバーにする／しない */  // 2006.06.23 ryoji ビジュアルスタイルでは初期値をノーマルにする
05113
05114 }
05115
05122 void CShareData::InitTypeConfig(DLLSHAREDATA* pShareData)
05123 {
05124
05125 //キーワード：デフォルトカラー設定
05126 /************************/
05127 /* タイプ別設定の規定値 */
05128 /************************/
05129     int nIdx = 0;
05130     int i;
05131     pShareData->m_Types[nIdx].m_nMaxLineSize = MAXLINESIZE;             /* 折り返し文字数 */
05132     pShareData->m_Types[nIdx].m_nColmSpace = 0;                 /* 文字と文字の隙間 */
05133     pShareData->m_Types[nIdx].m_nLineSpace = 1;                 /* 行間のすきま */
05134     pShareData->m_Types[nIdx].m_nTabSpace = 4;                  /* TABの文字数 */
05135     for( i = 0; i < MAX_KEYWORDSET_PER_TYPE; i++ ){
05136         pShareData->m_Types[nIdx].m_nKeyWordSetIdx[i] = -1;
05137     }
05138 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
05139     strcpy( pShareData->m_Types[nIdx].m_szTabViewString, "^       " );  /* TAB表示文字列 */
05140 //#endif
05141     pShareData->m_Types[nIdx].m_bTabArrow = FALSE;              /* タブ矢印表示 */  // 2001.12.03 hor
05142     pShareData->m_Types[nIdx].m_bInsSpace = FALSE;              /* スペースの挿入 */    // 2001.12.03 hor
05143
05144     //@@@ 2002.09.22 YAZAKI 以下、m_cLineCommentとm_cBlockCommentを使うように修正
05145     pShareData->m_Types[nIdx].m_cLineComment.CopyTo(0, "", -1); /* 行コメントデリミタ */
05146     pShareData->m_Types[nIdx].m_cLineComment.CopyTo(1, "", -1); /* 行コメントデリミタ2 */
05147     pShareData->m_Types[nIdx].m_cLineComment.CopyTo(2, "", -1); /* 行コメントデリミタ3 */   //Jun. 01, 2001 JEPRO 追加
05148     pShareData->m_Types[nIdx].m_cBlockComment.CopyTo(0, "", "");    /* ブロックコメントデリミタ */
05149     pShareData->m_Types[nIdx].m_cBlockComment.CopyTo(1, "", "");    /* ブロックコメントデリミタ2 */
05150
05151     pShareData->m_Types[nIdx].m_nStringType = 0;                    /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
05152     strcpy( pShareData->m_Types[nIdx].m_szIndentChars, "" );        /* その他のインデント対象文字 */
05153
05154     pShareData->m_Types[nIdx].m_nColorInfoArrNum = COLORIDX_LAST;
05155
05156     // 2001/06/14 Start by asa-o
05157     strcpy( pShareData->m_Types[nIdx].m_szHokanFile, "" );      /* 入力補完 単語ファイル */
05158     // 2001/06/14 End
05159
05160     // 2001/06/19 asa-o
05161     pShareData->m_Types[nIdx].m_bHokanLoHiCase = FALSE;         /* 入力補完機能：英大文字小文字を同一視する */
05162
05163     //  2003.06.23 Moca ファイル内からの入力補完機能
05164     pShareData->m_Types[nIdx].m_bUseHokanByFile = FALSE;
05166     //@@@2002.2.4 YAZAKI
05167     pShareData->m_Types[nIdx].m_szExtHelp[0] = '\0';
05168     pShareData->m_Types[nIdx].m_szExtHtmlHelp[0] = '\0';
05169     pShareData->m_Types[nIdx].m_bHtmlHelpIsSingle = TRUE;
05170
05171     pShareData->m_Types[nIdx].m_bAutoIndent = TRUE;         /* オートインデント */
05172     pShareData->m_Types[nIdx].m_bAutoIndent_ZENSPACE = TRUE;    /* 日本語空白もインデント */
05173     pShareData->m_Types[nIdx].m_bRTrimPrevLine = FALSE;         /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
05174
05175     pShareData->m_Types[nIdx].m_nIndentLayout = 0;  /* 折り返しは2行目以降を字下げ表示 */
05176
05177     static ColorInfoIni ColorInfo_DEFAULT[] = {
05178     //  Nov. 9, 2000 Jepro note: color setting (詳細は CshareData.h を参照のこと)
05179     //  0,                          1(Disp),     2(FatFont),3(UnderLIne) , 4(colTEXT),  5(colBACK),
05180     //  szName(項目名),             色分け／表示, 太字,     下線,       文字色,     背景色,
05181     //
05182     //Oct. 8, 2000 JEPRO 背景色を真っ白RGB(255,255,255)→(255,251,240)に変更(眩しさを押さえた)
05183         "テキスト",                         TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 255, 251, 240 ),
05184         "ルーラー",                         TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 239, 239, 239 ),
05185         "カーソル",                         TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 255, 251, 240 ), // 2006.12.07 ryoji
05186         "カーソル(IME ON)",                 TRUE , FALSE, FALSE, RGB( 255, 0, 0 )       , RGB( 255, 251, 240 ), // 2006.12.07 ryoji
05187         "カーソル行アンダーライン",         TRUE , FALSE, FALSE, RGB( 0, 0, 255 )       , RGB( 255, 251, 240 ),
05188         "行番号",                           TRUE , FALSE, FALSE, RGB( 0, 0, 255 )       , RGB( 239, 239, 239 ),
05189         "行番号(変更行)",                   TRUE , TRUE , FALSE, RGB( 0, 0, 255 )       , RGB( 239, 239, 239 ),
05190         "TAB記号",                          TRUE , FALSE, FALSE, RGB( 128, 128, 128 )   , RGB( 255, 251, 240 ), //Jan. 19, 2001 JEPRO RGB(192,192,192)より濃いグレーに変更
05191         "半角空白"      ,                   FALSE , FALSE, FALSE , RGB( 192, 192, 192 ) , RGB( 255, 251, 240 ), //2002.04.28 Add by KK
05192         "日本語空白",                       TRUE , FALSE, FALSE, RGB( 192, 192, 192 )   , RGB( 255, 251, 240 ),
05193         "コントロールコード",               TRUE , FALSE, FALSE, RGB( 255, 255, 0 )     , RGB( 255, 251, 240 ),
05194         "改行記号",                         TRUE , FALSE, FALSE, RGB( 0, 128, 255 )     , RGB( 255, 251, 240 ),
05195         "折り返し記号",                     TRUE , FALSE, FALSE, RGB( 255, 0, 255 )     , RGB( 255, 251, 240 ),
05196         "指定桁縦線",                       FALSE, FALSE, FALSE, RGB( 192, 192, 192 )   , RGB( 255, 251, 240 ), //2005.11.08 Moca
05197         "EOF記号",                          TRUE , FALSE, FALSE, RGB( 0, 255, 255 )     , RGB( 0, 0, 0 ),
05198 //#ifdef COMPILE_COLOR_DIGIT
05199         "半角数値",                         FALSE, FALSE, FALSE, RGB( 235, 0, 0 )       , RGB( 255, 251, 240 ), //@@@ 2001.02.17 by MIK     //Mar. 7, 2001 JEPRO RGB(0,0,255)を変更  Mar.10, 2001 標準は色なしに
05200 //#endif
05201         "検索文字列",                       TRUE , FALSE, FALSE, RGB( 0, 0, 0 )         , RGB( 255, 255, 0 ),
05202         "強調キーワード1",                  TRUE , FALSE, FALSE, RGB( 0, 0, 255 )       , RGB( 255, 251, 240 ),
05203         "強調キーワード2",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ), //Dec. 4, 2000 MIK added    //Jan. 19, 2001 JEPRO キーワード1とは違う色に変更
05204         "強調キーワード3",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ), //Dec. 4, 2000 MIK added    //Jan. 19, 2001 JEPRO キーワード1とは違う色に変更
05205         "強調キーワード4",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05206         "強調キーワード5",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05207         "強調キーワード6",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05208         "強調キーワード7",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05209         "強調キーワード8",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05210         "強調キーワード9",                  TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05211         "強調キーワード10",                 TRUE , FALSE, FALSE, RGB( 255, 128, 0 )     , RGB( 255, 251, 240 ),
05212         "コメント",                         TRUE , FALSE, FALSE, RGB( 0, 128, 0 )       , RGB( 255, 251, 240 ),
05213     //Sept. 4, 2000 JEPRO シングルクォーテーション文字列に色を割り当てるが色分け表示はしない
05214     //Oct. 17, 2000 JEPRO 色分け表示するように変更(最初のFALSE→TRUE)
05215     //"シングルクォーテーション文字列", FALSE, FALSE, FALSE, RGB( 0, 0, 0 ), RGB( 255, 255, 255 ),
05216         "シングルクォーテーション文字列",   TRUE , FALSE, FALSE, RGB( 64, 128, 128 )    , RGB( 255, 251, 240 ),
05217         "ダブルクォーテーション文字列",     TRUE , FALSE, FALSE, RGB( 128, 0, 64 )      , RGB( 255, 251, 240 ),
05218         "URL",                              TRUE , FALSE, TRUE , RGB( 0, 0, 255 )       , RGB( 255, 251, 240 ),
05219         "正規表現キーワード1",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05220         "正規表現キーワード2",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05221         "正規表現キーワード3",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05222         "正規表現キーワード4",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05223         "正規表現キーワード5",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05224         "正規表現キーワード6",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05225         "正規表現キーワード7",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05226         "正規表現キーワード8",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05227         "正規表現キーワード9",      FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05228         "正規表現キーワード10",     FALSE , FALSE, FALSE , RGB( 0, 0, 255 )     , RGB( 255, 251, 240 ), //@@@ 2001.11.17 add MIK
05229         "DIFF差分表示(追加)",       FALSE , FALSE, FALSE, RGB( 0, 0, 0 )        , RGB( 255, 251, 240 ), //@@@ 2002.06.01 MIK
05230         "DIFF差分表示(変更)",       FALSE , FALSE, FALSE, RGB( 0, 0, 0 )        , RGB( 255, 251, 240 ), //@@@ 2002.06.01 MIK
05231         "DIFF差分表示(削除)",       FALSE , FALSE, FALSE, RGB( 0, 0, 0 )        , RGB( 255, 251, 240 ), //@@@ 2002.06.01 MIK
05232         "対括弧の強調表示",         FALSE , TRUE,  FALSE, RGB( 128, 0, 0 )      , RGB( 255, 251, 240 ), // 02/09/18 ai
05233         "ブックマーク",             TRUE  , FALSE, FALSE, RGB( 255, 251, 240 )  , RGB( 0, 128, 192 ),   // 02/10/16 ai
05234     };
05235 //  To Here Sept. 18, 2000
05236
05237
05238     for( i = 0; i < COLORIDX_LAST; ++i ){
05239         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_nColorIdx     = i;
05240         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_bDisp         = ColorInfo_DEFAULT[i].m_bDisp;
05241         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_bFatFont      = ColorInfo_DEFAULT[i].m_bFatFont;
05242         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_bUnderLine        = ColorInfo_DEFAULT[i].m_bUnderLine;
05243         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_colTEXT           = ColorInfo_DEFAULT[i].m_colTEXT;
05244         pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_colBACK           = ColorInfo_DEFAULT[i].m_colBACK;
05245         strcpy( pShareData->m_Types[nIdx].m_ColorInfoArr[i].m_szName, ColorInfo_DEFAULT[i].m_pszName );
05246     }
05247     pShareData->m_Types[nIdx].m_bLineNumIsCRLF = TRUE;              /* 行番号の表示 FALSE=折り返し単位／TRUE=改行単位 */
05248     pShareData->m_Types[nIdx].m_nLineTermType = 1;                  /* 行番号区切り 0=なし 1=縦線 2=任意 */
05249     pShareData->m_Types[nIdx].m_cLineTermChar = ':';                    /* 行番号区切り文字 */
05250     pShareData->m_Types[nIdx].m_bWordWrap = FALSE;                  /* 英文ワードラップをする */
05251     pShareData->m_Types[nIdx].m_nCurrentPrintSetting = 0;               /* 現在選択している印刷設定 */
05252     pShareData->m_Types[nIdx].m_nDefaultOutline = OUTLINE_TEXT;     /* アウトライン解析方法 */
05253     pShareData->m_Types[nIdx].m_nSmartIndent = SMARTINDENT_NONE;        /* スマートインデント種別 */
05254     pShareData->m_Types[nIdx].m_nImeState = IME_CMODE_NOCONVERSION; /* IME入力 */
05255
05256     pShareData->m_Types[nIdx].m_szOutlineRuleFilename[0] = '\0';    //Dec. 4, 2000 MIK
05257     pShareData->m_Types[nIdx].m_bKinsokuHead = FALSE;               /* 行頭禁則 */  //@@@ 2002.04.08 MIK
05258     pShareData->m_Types[nIdx].m_bKinsokuTail = FALSE;               /* 行末禁則 */  //@@@ 2002.04.08 MIK
05259     pShareData->m_Types[nIdx].m_bKinsokuRet  = FALSE;               /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
05260     pShareData->m_Types[nIdx].m_bKinsokuKuto = FALSE;               /* 句読点をぶら下げる */    //@@@ 2002.04.17 MIK
05261     strcpy( pShareData->m_Types[nIdx].m_szKinsokuHead, "" );        /* 行頭禁則 */  //@@@ 2002.04.08 MIK
05262     strcpy( pShareData->m_Types[nIdx].m_szKinsokuTail, "" );        /* 行末禁則 */  //@@@ 2002.04.08 MIK
05263
05264     pShareData->m_Types[nIdx].m_bUseDocumentIcon = FALSE;           /* 文書に関連づけられたアイコンを使う */
05265
05266 //@@@ 2001.11.17 add start MIK
05267     for(i = 0; i < 100; i++)
05268     {
05269         pShareData->m_Types[nIdx].m_RegexKeywordArr[i].m_szKeyword[0] = '\0';
05270         pShareData->m_Types[nIdx].m_RegexKeywordArr[i].m_nColorIndex = COLORIDX_REGEX1;
05271     }
05272     pShareData->m_Types[nIdx].m_bUseRegexKeyword = FALSE;
05273 //      pShareData->m_Types[nIdx].m_nRegexKeyMagicNumber = 1;
05274 //@@@ 2001.11.17 add end MIK
05275
05276 //@@@ 2006.04.10 fon ADD-start
05277     for(i = 0; i < MAX_KEYHELP_FILE; i++){
05278         pShareData->m_Types[nIdx].m_KeyHelpArr[i].m_nUse = 0;
05279         pShareData->m_Types[nIdx].m_KeyHelpArr[i].m_szAbout[0] = '\0';
05280         pShareData->m_Types[nIdx].m_KeyHelpArr[i].m_szPath[0] = '\0';
05281     }
05282     pShareData->m_Types[nIdx].m_bUseKeyWordHelp = FALSE;    /* 辞書選択機能の使用可否 */
05283     pShareData->m_Types[nIdx].m_nKeyHelpNum = 0;            /* 登録辞書数 */
05284     pShareData->m_Types[nIdx].m_bUseKeyHelpAllSearch = FALSE;   /* ヒットした次の辞書も検索(&A) */
05285     pShareData->m_Types[nIdx].m_bUseKeyHelpKeyDisp = FALSE;     /* 1行目にキーワードも表示する(&W) */
05286     pShareData->m_Types[nIdx].m_bUseKeyHelpPrefix = FALSE;      /* 選択範囲で前方一致検索(&P) */
05287 //@@@ 2006.04.10 fon ADD-end
05288
05289     // 2005.11.08 Moca 指定位置縦線の設定
05290     for( i = 0; i < MAX_VERTLINES; i++ ){
05291         pShareData->m_Types[nIdx].m_nVertLineIdx[i] = 0;
05292     }
05293
05294     static char* pszTypeNameArr[] = {
05295         "基本",
05296         "テキスト",
05297         "C/C++",
05298         "HTML",
05299         "PL/SQL",
05300         "COBOL",
05301         "Java",
05302         "アセンブラ",
05303         "AWK",
05304         "MS-DOSバッチファイル",
05305         "Pascal",
05306         "TeX",              //Oct. 31, 2000 JEPRO TeX  ユーザに贈る
05307         "Perl",             //Jul. 08, 2001 JEPRO Perl ユーザに贈る
05308         "Visual Basic",     //JUl. 10, 2001 JEPRO VB   ユーザに贈る
05309         "リッチテキスト",   //JUl. 10, 2001 JEPRO WinHelp作るのにいるケンね
05310         "設定ファイル",     //Nov. 9, 2000 JEPRO Windows標準のini, inf, cnfファイルとsakuraキーワード設定ファイル.kwd, 色設定ファイル.col も読めるようにする
05311         "設定17",           //From Here Jul. 12, 2001 JEPRO タイプ別設定の設定数を16→20に増やした
05312         "設定18",
05313         "設定19",
05314         "設定20"            //To Here Jul. 12, 2001
05315     };
05316     static char* pszTypeExts[] = {
05317         "",
05318         //Nov. 15, 2000 JEPRO PostScriptファイルも読めるようにする
05319         //Jan. 12, 2001 JEPRO readme.1st も読めるようにする
05320         //Feb. 12, 2001 JEPRO .err エラーメッセージ
05321         //Nov.  6, 2002 genta docはMS Wordに譲ってここからは外す（関連づけ防止のため）
05322         //Nov.  6, 2002 genta log を追加
05323         "txt,log,1st,err,ps",
05324         //  Jan. 24, 2004 genta 関連づけ上好ましくないのでdsw,dsp,dep,makははずす
05325         "c,cpp,cxx,cc,cp,c++,h,hpp,hxx,hh,hp,h++,rc,hm",    //Oct. 31, 2000 JEPRO VC++の生成するテキストファイルも読めるようにする
05326             //Feb. 7, 2001 JEPRO .cc/cp/c++/.hpp/hxx/hh/hp/h++を追加    //Mar. 15, 2001 JEPRO .hmを追加
05327         "html,htm,shtml,plg",   //Oct. 31, 2000 JEPRO VC++の生成するテキストファイルも読み込めるようにする
05328         "sql,plsql",
05329         "cbl,cpy,pco,cob",  //Jun. 04, 2001 JEPRO KENCH氏の助言に従い追加
05330         "java,jav",
05331         "asm",
05332         "awk",
05333         "bat",
05334         "dpr,pas",
05335         "tex,ltx,sty,bib,log,blg,aux,bbl,toc,lof,lot,idx,ind,glo",      //Oct. 31, 2000 JEPRO TeX ユーザに贈る  //Mar. 10, 2001 JEPRO 追加
05336         "cgi,pl,pm",            //Jul. 08, 2001 JEPRO 追加
05337         "bas,frm,cls,ctl,pag,dob,dsr,vb",   //Jul. 09, 2001 JEPRO 追加 //Dec. 16, 2002 MIK追加 // Feb. 19, 2006 genta .vb追加
05338         "rtf",                  //Jul. 10, 2001 JEPRO 追加
05339         "ini,inf,cnf,kwd,col",  //Nov. 9, 2000 JEPRO Windows標準のini, inf, cnfファイルとsakuraキーワード設定ファイル.kwd, 色設定ファイル.col も読めるようにする
05340         "",                     //From Here Jul. 12, 2001 JEPRO タイプ別設定の設定数を16→20に増やした
05341         "",
05342         "",
05343         ""                      //To Here Jul. 12, 2001
05344     };
05345
05346     pShareData->m_Types[0].m_nIdx = 0;
05347     strcpy( pShareData->m_Types[0].m_szTypeName, pszTypeNameArr[0] );               /* タイプ属性：名称 */
05348     strcpy( pShareData->m_Types[0].m_szTypeExts, pszTypeExts[0] );              /* タイプ属性：拡張子リスト */
05349     for( nIdx = 1; nIdx < MAX_TYPES; ++nIdx ){
05350         pShareData->m_Types[nIdx] = pShareData->m_Types[0];
05351         pShareData->m_Types[nIdx].m_nIdx = nIdx;
05352
05353         //  From Here 2005.02.20 りんご 配列数が設定数より小さいケースの考慮
05354         const char* pszTypeName;
05355         const char* pszTypeExt;
05356         if(nIdx < (sizeof(pszTypeNameArr)/sizeof(char*)))
05357             pszTypeName = pszTypeNameArr[nIdx];
05358         else
05359             pszTypeName = "未定義";
05360         if(nIdx < (sizeof(pszTypeExts)/sizeof(char*)))
05361             pszTypeExt = pszTypeExts[nIdx];
05362         else
05363             pszTypeExt = "";
05364         strcpy( m_pShareData->m_Types[nIdx].m_szTypeName, pszTypeName );
05365         strcpy( m_pShareData->m_Types[nIdx].m_szTypeExts, pszTypeExt );
05366         //  To Here 2005.02.20 りんご
05367     }
05368
05369
05370     /* 基本 */
05371     pShareData->m_Types[0].m_nMaxLineSize = MAXLINESIZE;                /* 折り返し文字数 */
05372 //      pShareData->m_Types[0].m_nDefaultOutline = OUTLINE_UNKNOWN; /* アウトライン解析方法 */  //Jul. 08, 2001 JEPRO 使わないように変更
05373     pShareData->m_Types[0].m_nDefaultOutline = OUTLINE_TEXT;        /* アウトライン解析方法 */
05374     //Oct. 17, 2000 JEPRO   シングルクォーテーション文字列を色分け表示しない
05375     pShareData->m_Types[0].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05376     //Sept. 4, 2000 JEPRO   ダブルクォーテーション文字列を色分け表示しない
05377     pShareData->m_Types[0].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05378
05379
05380 //      nIdx = 0;
05381     /* テキスト */
05382     //From Here Sept. 20, 2000 JEPRO テキストの規定値を80→120に変更(不具合一覧.txtがある程度読みやすい桁数)
05383     pShareData->m_Types[1].m_nMaxLineSize = 120;                    /* 折り返し文字数 */
05384     //To Here Sept. 20, 2000
05385     pShareData->m_Types[1].m_nDefaultOutline = OUTLINE_TEXT;        /* アウトライン解析方法 */
05386     //Oct. 17, 2000 JEPRO   シングルクォーテーション文字列を色分け表示しない
05387     pShareData->m_Types[1].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05388     //Sept. 4, 2000 JEPRO   ダブルクォーテーション文字列を色分け表示しない
05389     pShareData->m_Types[1].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05390     pShareData->m_Types[1].m_bKinsokuHead = FALSE;              /* 行頭禁則 */  //@@@ 2002.04.08 MIK
05391     pShareData->m_Types[1].m_bKinsokuTail = FALSE;              /* 行末禁則 */  //@@@ 2002.04.08 MIK
05392     pShareData->m_Types[1].m_bKinsokuRet  = FALSE;              /* 改行文字をぶら下げる */  //@@@ 2002.04.13 MIK
05393     pShareData->m_Types[1].m_bKinsokuKuto = FALSE;              /* 句読点をぶら下げる */    //@@@ 2002.04.17 MIK
05394 //      strcpy( pShareData->m_Types[1].m_szKinsokuHead, "!%),.:;?]}￠°’”‰′″℃、。々〉》」』】〕ぁぃぅぇぉっゃゅょゎ゛゜ゝゞァィゥェォッャュョヮヵヶ・ーヽヾ！％），．：；？］｝｡｣､･ｧｨｩｪｫｬｭｮｯｰﾞﾟ￠" );     /* 行頭禁則 */  //@@@ 2002.04.08 MIK
05395     strcpy( pShareData->m_Types[1].m_szKinsokuHead, "!%),.:;?]}￠°’”‰′″℃、。々〉》」』】〕゛゜ゝゞ・ヽヾ！％），．：；？］｝｡｣､･ﾞﾟ￠" );     /* 行頭禁則 */  //@@@ 2002.04.13 MIK
05396     strcpy( pShareData->m_Types[1].m_szKinsokuTail, "$([{￡\\‘“〈《「『【〔＄（［｛｢￡￥" );      /* 行末禁則 */  //@@@ 2002.04.08 MIK
05397
05398
05399     // nIdx = 1;
05400     /* C/C++ */
05401     pShareData->m_Types[2].m_cLineComment.CopyTo( 0, "//", -1 );            /* 行コメントデリミタ */
05402     pShareData->m_Types[2].m_cBlockComment.CopyTo( 0, "/*", "*/" );     /* ブロックコメントデリミタ */
05403     pShareData->m_Types[2].m_cBlockComment.CopyTo( 1, "#if 0", "#endif" );  /* ブロックコメントデリミタ2 */ //Jul. 11, 2001 JEPRO
05404     pShareData->m_Types[2].m_nKeyWordSetIdx[0] = 0;                     /* キーワードセット */
05405     pShareData->m_Types[2].m_nDefaultOutline = OUTLINE_CPP;         /* アウトライン解析方法 */
05406     pShareData->m_Types[2].m_nSmartIndent = SMARTINDENT_CPP;            /* スマートインデント種別 */
05407     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05408     pShareData->m_Types[2].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;
05409     //  Sep. 21, 2002 genta 対括弧の強調をデフォルトONに
05410     pShareData->m_Types[2].m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp    = TRUE;
05411     //  2003.06.23 Moca ファイル内からの入力補完機能
05412     pShareData->m_Types[2].m_bUseHokanByFile = TRUE;
05414     /* HTML */
05415     pShareData->m_Types[3].m_cBlockComment.CopyTo( 0, "<!--", "-->" );  /* ブロックコメントデリミタ */
05416     pShareData->m_Types[3].m_nStringType = 0;                           /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05417     pShareData->m_Types[3].m_nKeyWordSetIdx[0] = 1;                     /* キーワードセット */
05418     // Feb. 2, 2005 genta 苦情が多いのでシングルクォートの色分けはHTMLでは行わない
05419     pShareData->m_Types[3].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05420
05421     // nIdx = 3;
05422     /* PL/SQL */
05423     pShareData->m_Types[4].m_cLineComment.CopyTo( 0, "--", -1 );        /* 行コメントデリミタ */
05424     pShareData->m_Types[4].m_cBlockComment.CopyTo( 0, "/*", "*/" ); /* ブロックコメントデリミタ */
05425     pShareData->m_Types[4].m_nStringType = 1;                           /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05426     strcpy( pShareData->m_Types[4].m_szIndentChars, "|★" );            /* その他のインデント対象文字 */
05427     pShareData->m_Types[4].m_nKeyWordSetIdx[0] = 2;                     /* キーワードセット */
05428     pShareData->m_Types[4].m_nDefaultOutline = OUTLINE_PLSQL;           /* アウトライン解析方法 */
05429
05430     /* COBOL */
05431     pShareData->m_Types[5].m_cLineComment.CopyTo( 0, "*", 6 );  //Jun. 02, 2001 JEPRO 修正
05432     pShareData->m_Types[5].m_cLineComment.CopyTo( 1, "D", 6 );  //Jun. 04, 2001 JEPRO 追加
05433     pShareData->m_Types[5].m_nStringType = 1;                           /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05434     strcpy( pShareData->m_Types[5].m_szIndentChars, "*" );          /* その他のインデント対象文字 */
05435     pShareData->m_Types[5].m_nKeyWordSetIdx[0] = 3;                     /* キーワードセット */      //Jul. 10, 2001 JEPRO
05436     pShareData->m_Types[5].m_nDefaultOutline = OUTLINE_COBOL;           /* アウトライン解析方法 */
05437
05438     // 2005.11.08 Moca 指定桁縦線
05439     pShareData->m_Types[5].m_ColorInfoArr[COLORIDX_VERTLINE].m_bDisp = TRUE;
05440     pShareData->m_Types[5].m_nVertLineIdx[0] = 7;
05441     pShareData->m_Types[5].m_nVertLineIdx[1] = 8;
05442     pShareData->m_Types[5].m_nVertLineIdx[2] = 12;
05443     pShareData->m_Types[5].m_nVertLineIdx[3] = 73;
05444
05445
05446     /* Java */
05447     pShareData->m_Types[6].m_cLineComment.CopyTo( 0, "//", -1 );        /* 行コメントデリミタ */
05448     pShareData->m_Types[6].m_cBlockComment.CopyTo( 0, "/*", "*/" ); /* ブロックコメントデリミタ */
05449     pShareData->m_Types[6].m_nKeyWordSetIdx[0] = 4;                     /* キーワードセット */
05450     pShareData->m_Types[6].m_nDefaultOutline = OUTLINE_JAVA;            /* アウトライン解析方法 */
05451     pShareData->m_Types[6].m_nSmartIndent = SMARTINDENT_CPP;            /* スマートインデント種別 */
05452     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05453     pShareData->m_Types[6].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;
05454     //  Sep. 21, 2002 genta 対括弧の強調をデフォルトONに
05455     pShareData->m_Types[6].m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp    = TRUE;
05456
05457     /* アセンブラ */
05458     //  2004.05.01 MIK/genta
05459     pShareData->m_Types[7].m_cLineComment.CopyTo( 0, ";", -1 );     /* 行コメントデリミタ */
05460     pShareData->m_Types[7].m_nDefaultOutline = OUTLINE_ASM;         /* アウトライン解析方法 */
05461     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05462     pShareData->m_Types[7].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;
05463
05464     /* awk */
05465     pShareData->m_Types[8].m_cLineComment.CopyTo( 0, "#", -1 );     /* 行コメントデリミタ */
05466     pShareData->m_Types[8].m_nDefaultOutline = OUTLINE_TEXT;            /* アウトライン解析方法 */
05467     pShareData->m_Types[8].m_nKeyWordSetIdx[0] = 6;                     /* キーワードセット */
05468
05469     /* MS-DOSバッチファイル */
05470     pShareData->m_Types[9].m_cLineComment.CopyTo( 0, "REM ", -1 );  /* 行コメントデリミタ */
05471     pShareData->m_Types[9].m_nDefaultOutline = OUTLINE_TEXT;            /* アウトライン解析方法 */
05472     pShareData->m_Types[9].m_nKeyWordSetIdx[0] = 7;                     /* キーワードセット */
05473
05474     /* Pascal */
05475     pShareData->m_Types[10].m_cLineComment.CopyTo( 0, "//", -1 );       /* 行コメントデリミタ */        //Nov. 5, 2000 JEPRO 追加
05476     pShareData->m_Types[10].m_cBlockComment.CopyTo( 0, "{", "}" );  /* ブロックコメントデリミタ */  //Nov. 5, 2000 JEPRO 追加
05477     pShareData->m_Types[10].m_cBlockComment.CopyTo( 1, "(*", "*)" );    /* ブロックコメントデリミタ2 */ //@@@ 2001.03.10 by MIK
05478     pShareData->m_Types[10].m_nStringType = 1;                      /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */ //Nov. 5, 2000 JEPRO 追加
05479     pShareData->m_Types[10].m_nKeyWordSetIdx[0] = 8;                        /* キーワードセット */
05480     //Mar. 10, 2001 JEPRO   半角数値を色分け表示
05481     pShareData->m_Types[10].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  //@@@ 2001.11.11 upd MIK
05482
05483     //From Here Oct. 31, 2000 JEPRO
05484     /* TeX */
05485     pShareData->m_Types[11].m_cLineComment.CopyTo( 0, "%", -1 );        /* 行コメントデリミタ */
05486     pShareData->m_Types[11].m_nDefaultOutline = OUTLINE_TEX;            /* アウトライン解析方法 */
05487     pShareData->m_Types[11].m_nKeyWordSetIdx[0]  = 9;                   /* キーワードセット */
05488     pShareData->m_Types[11].m_nKeyWordSetIdx[1] = 10;                   /* キーワードセット2 */ //Jan. 19, 2001 JEPRO
05489     //シングルクォーテーション文字列を色分け表示しない
05490     pShareData->m_Types[11].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05491     //ダブルクォーテーション文字列を色分け表示しない
05492     pShareData->m_Types[11].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05493     //URLにアンダーラインを引かない(やっぱりやめた)
05494 //      pShareData->m_Types[11].m_ColorInfoArr[COLORIDX_URL].m_bDisp = FALSE;
05495     //To Here Oct. 31, 2000
05496
05497     //From Here Jul. 08, 2001 JEPRO
05498     /* Perl */
05499     pShareData->m_Types[12].m_cLineComment.CopyTo( 0, "#", -1 );        /* 行コメントデリミタ */
05500     pShareData->m_Types[12].m_nDefaultOutline = OUTLINE_PERL;           /* アウトライン解析方法 */
05501     pShareData->m_Types[12].m_nKeyWordSetIdx[0]  = 11;                  /* キーワードセット */
05502     pShareData->m_Types[12].m_nKeyWordSetIdx[1] = 12;                   /* キーワードセット2 */
05503     pShareData->m_Types[12].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  /* 半角数値を色分け表示 */
05504     //To Here Jul. 08, 2001
05505     //  Sep. 21, 2002 genta 対括弧の強調をデフォルトONに
05506     pShareData->m_Types[12].m_ColorInfoArr[COLORIDX_BRACKET_PAIR].m_bDisp   = TRUE;
05507
05508     //From Here Jul. 10, 2001 JEPRO
05509     /* Visual Basic */
05510     pShareData->m_Types[13].m_cLineComment.CopyTo( 0, "'", -1 );        /* 行コメントデリミタ */
05511     pShareData->m_Types[13].m_nDefaultOutline = OUTLINE_VB;         /* アウトライン解析方法 */
05512     pShareData->m_Types[13].m_nKeyWordSetIdx[0]  = 13;                  /* キーワードセット */
05513     pShareData->m_Types[13].m_nKeyWordSetIdx[1] = 14;                   /* キーワードセット2 */
05514     pShareData->m_Types[13].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  /* 半角数値を色分け表示 */
05515     pShareData->m_Types[13].m_nStringType = 1;                          /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05516     //シングルクォーテーション文字列を色分け表示しない
05517     pShareData->m_Types[13].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05518
05519     /* リッチテキスト */
05520     pShareData->m_Types[14].m_nDefaultOutline = OUTLINE_TEXT;           /* アウトライン解析方法 */
05521     pShareData->m_Types[14].m_nKeyWordSetIdx[0]  = 15;                  /* キーワードセット */
05522     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp = TRUE;  /* 半角数値を色分け表示 */
05523     pShareData->m_Types[14].m_nStringType = 0;                          /* 文字列区切り記号エスケープ方法  0=[\"][\'] 1=[""][''] */
05524     //シングルクォーテーション文字列を色分け表示しない
05525     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05526     //ダブルクォーテーション文字列を色分け表示しない
05527     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05528     //URLにアンダーラインを引かない
05529     pShareData->m_Types[14].m_ColorInfoArr[COLORIDX_URL].m_bDisp = FALSE;
05530     //To Here Jul. 10, 2001
05531
05532     //From Here Nov. 9, 2000 JEPRO
05533     /* 設定ファイル */
05534     pShareData->m_Types[15].m_cLineComment.CopyTo( 0, "//", -1 );       /* 行コメントデリミタ */
05535     pShareData->m_Types[15].m_cLineComment.CopyTo( 1, ";", -1 );        /* 行コメントデリミタ2 */
05536     pShareData->m_Types[15].m_nDefaultOutline = OUTLINE_TEXT;           /* アウトライン解析方法 */
05537     //シングルクォーテーション文字列を色分け表示しない
05538     pShareData->m_Types[15].m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp = FALSE;
05539     //ダブルクォーテーション文字列を色分け表示しない
05540     pShareData->m_Types[15].m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp = FALSE;
05541     //To Here Nov. 9, 2000
05542 }
05543
05550 void CShareData::InitPopupMenu(DLLSHAREDATA* pShareData)
05551 {
05552     /* カスタムメニュー 規定値 */
05553
05554     Common& rCommon = m_pShareData->m_Common;
05555
05556     /* 右クリックメニュー */
05557     int n = 0;
05558     rCommon.m_nCustMenuItemFuncArr[0][n] = F_UNDO;
05559     rCommon.m_nCustMenuItemKeyArr [0][n] = 'U';
05560     n++;
05561     rCommon.m_nCustMenuItemFuncArr[0][n] = F_REDO;
05562     rCommon.m_nCustMenuItemKeyArr [0][n] = 'R';
05563     n++;
05564     rCommon.m_nCustMenuItemFuncArr[0][n] = 0;
05565     rCommon.m_nCustMenuItemKeyArr [0][n] = '\0';
05566     n++;
05567     rCommon.m_nCustMenuItemFuncArr[0][n] = F_CUT;
05568     rCommon.m_nCustMenuItemKeyArr [0][n] = 'T';
05569     n++;
05570     rCommon.m_nCustMenuItemFuncArr[0][n] = F_COPY;
05571     rCommon.m_nCustMenuItemKeyArr [0][n] = 'C';
05572     n++;
05573     rCommon.m_nCustMenuItemFuncArr[0][n] = F_PASTE;
05574     rCommon.m_nCustMenuItemKeyArr [0][n] = 'P';
05575     n++;
05576     rCommon.m_nCustMenuItemFuncArr[0][n] = F_DELETE;
05577     rCommon.m_nCustMenuItemKeyArr [0][n] = 'D';
05578     n++;
05579     rCommon.m_nCustMenuItemFuncArr[0][n] = 0;
05580     rCommon.m_nCustMenuItemKeyArr [0][n] = '\0';
05581     n++;
05582     rCommon.m_nCustMenuItemFuncArr[0][n] = F_COPY_CRLF; //Nov. 9, 2000 JEPRO 「CRLF改行でコピー」を追加
05583     rCommon.m_nCustMenuItemKeyArr [0][n] = 'L';
05584     n++;
05585     rCommon.m_nCustMenuItemFuncArr[0][n] = F_COPY_ADDCRLF;
05586     rCommon.m_nCustMenuItemKeyArr [0][n] = 'H';
05587     n++;
05588     rCommon.m_nCustMenuItemFuncArr[0][n] = F_PASTEBOX;  //Nov. 9, 2000 JEPRO 「矩形貼り付け」を復活
05589     rCommon.m_nCustMenuItemKeyArr [0][n] = 'X';
05590     n++;
05591     rCommon.m_nCustMenuItemFuncArr[0][n] = 0;
05592     rCommon.m_nCustMenuItemKeyArr [0][n] = '\0';
05593     n++;
05594     rCommon.m_nCustMenuItemFuncArr[0][n] = F_SELECTALL;
05595     rCommon.m_nCustMenuItemKeyArr [0][n] = 'A';
05596     n++;
05597
05598     rCommon.m_nCustMenuItemFuncArr[0][n] = 0;       //Oct. 3, 2000 JEPRO 以下に「タグジャンプ」と「タグジャンプバック」を追加
05599     rCommon.m_nCustMenuItemKeyArr [0][n] = '\0';
05600     n++;
05601     rCommon.m_nCustMenuItemFuncArr[0][n] = F_TAGJUMP;
05602     rCommon.m_nCustMenuItemKeyArr [0][n] = 'G';     //Nov. 9, 2000 JEPRO 「コピー」とバッティングしていたアクセスキーを変更(T→G)
05603     n++;
05604     rCommon.m_nCustMenuItemFuncArr[0][n] = F_TAGJUMPBACK;
05605     rCommon.m_nCustMenuItemKeyArr [0][n] = 'B';
05606     n++;
05607     rCommon.m_nCustMenuItemFuncArr[0][n] = 0;       //Oct. 15, 2000 JEPRO 以下に「選択範囲内全行コピー」と「引用符付きコピー」を追加
05608     rCommon.m_nCustMenuItemKeyArr [0][n] = '\0';
05609     n++;
05610     rCommon.m_nCustMenuItemFuncArr[0][n] = F_COPYLINES;
05611     rCommon.m_nCustMenuItemKeyArr [0][n] = '@';
05612     n++;
05613     rCommon.m_nCustMenuItemFuncArr[0][n] = F_COPYLINESASPASSAGE;
05614     rCommon.m_nCustMenuItemKeyArr [0][n] = '.';
05615     n++;
05616     rCommon.m_nCustMenuItemFuncArr[0][n] = 0;
05617     rCommon.m_nCustMenuItemKeyArr [0][n] = '\0';
05618     n++;
05619     rCommon.m_nCustMenuItemFuncArr[0][n] = F_COPYPATH;
05620     rCommon.m_nCustMenuItemKeyArr [0][n] = '\\';
05621     n++;
05622     rCommon.m_nCustMenuItemFuncArr[0][n] = F_PROPERTY_FILE;
05623     rCommon.m_nCustMenuItemKeyArr [0][n] = 'F';     //Nov. 9, 2000 JEPRO 「やり直し」とバッティングしていたアクセスキーを変更(R→F)
05624     n++;
05625     rCommon.m_nCustMenuItemNumArr[0] = n;
05626
05627     /* カスタムメニュー１ */
05628     rCommon.m_nCustMenuItemNumArr[1] = 7;
05629     rCommon.m_nCustMenuItemFuncArr[1][0] = F_FILEOPEN;
05630     rCommon.m_nCustMenuItemKeyArr [1][0] = 'O';     //Sept. 14, 2000 JEPRO できるだけ標準設定値に合わせるように変更 (F→O)
05631     rCommon.m_nCustMenuItemFuncArr[1][1] = F_FILESAVE;
05632     rCommon.m_nCustMenuItemKeyArr [1][1] = 'S';
05633     rCommon.m_nCustMenuItemFuncArr[1][2] = F_NEXTWINDOW;
05634     rCommon.m_nCustMenuItemKeyArr [1][2] = 'N';     //Sept. 14, 2000 JEPRO できるだけ標準設定値に合わせるように変更 (O→N)
05635     rCommon.m_nCustMenuItemFuncArr[1][3] = F_TOLOWER;
05636     rCommon.m_nCustMenuItemKeyArr [1][3] = 'L';
05637     rCommon.m_nCustMenuItemFuncArr[1][4] = F_TOUPPER;
05638     rCommon.m_nCustMenuItemKeyArr [1][4] = 'U';
05639     rCommon.m_nCustMenuItemFuncArr[1][5] = 0;
05640     rCommon.m_nCustMenuItemKeyArr [1][5] = '\0';
05641     rCommon.m_nCustMenuItemFuncArr[1][6] = F_WINCLOSE;
05642     rCommon.m_nCustMenuItemKeyArr [1][6] = 'C';
05643
05644     /* タブメニュー */  //@@@ 2003.06.14 MIK
05645     n = 0;
05646     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILESAVE;
05647     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'S';
05648     n++;
05649     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILESAVEAS_DIALOG;
05650     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'A';
05651     n++;
05652     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILECLOSE;
05653     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'R'; // 2007.06.26 ryoji B -> R
05654     n++;
05655     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILECLOSE_OPEN;
05656     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'L';
05657     n++;
05658     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_WINCLOSE;
05659     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'C';
05660     n++;
05661     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_FILE_REOPEN;
05662     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'W';
05663     n++;
05664     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = 0;
05665     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = '\0';
05666     n++;
05667     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_MOVERIGHT;
05668     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = '0';
05669     n++;
05670     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_MOVELEFT;
05671     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = '1';
05672     n++;
05673     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_SEPARATE;
05674     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'E';
05675     n++;
05676     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_JOINTNEXT;
05677     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'X';
05678     n++;
05679     rCommon.m_nCustMenuItemFuncArr[CUSTMENU_INDEX_FOR_TABWND][n] = F_TAB_JOINTPREV;
05680     rCommon.m_nCustMenuItemKeyArr [CUSTMENU_INDEX_FOR_TABWND][n] = 'V';
05681     n++;
05682     rCommon.m_nCustMenuItemNumArr[CUSTMENU_INDEX_FOR_TABWND] = n;
05683 }
05684 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CShareData.h

CShareData.h

プロセス間共有データへのアクセス [詳細]

#include <windows.h>
#include <commctrl.h>
#include "CKeyBind.h"
#include "CKeyWordSetMgr.h"
#include "CPrint.h"
#include "CProfile.h"
#include "CMRU.h"
#include "CMRUFolder.h"
#include "funccode.h"
#include "CMemory.h"
#include "CMutex.h"
#include "CLineComment.h"
#include "CBlockComment.h"

CShareData.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | FileInfo
struct | GrepInfo
struct | EditNode
struct | PRINTSETTING
struct | ColorInfo
色設定 [詳細]
struct | ColorInfoIni
色設定(保存用) [詳細]
struct | RegexKeywordInfo
struct | KeyHelpInfo
struct | Types
タイプ別設定 [詳細]
struct | MacroRec
マクロ情報 [詳細]
struct | TagJump
タグジャンプ情報 [詳細]
struct | Common
共通設定 [詳細]
struct | IniFolder
iniフォルダ設定 // 2007.05.31 ryoji [詳細]
struct | DLLSHAREDATA
共有データ領域 [詳細]
class | CShareData
共有データの管理 [詳細]

マクロ定義

#define | POS_LEFT 0
印刷設定
#define | POS_CENTER 1
#define | POS_RIGHT 2
#define | HEADER_MAX 100
#define | FOOTER_MAX HEADER_MAX

列挙型

enum maxdata {
MAX_EDITWINDOWS = 256, MAX_SEARCHKEY = 30, MAX_REPLACEKEY = 30, MAX_GREPFILE = 30,
MAX_GREPFOLDER = 30, MAX_TYPES = 20, MAX_TOOLBARBUTTONS = 384, MAX_CUSTOM_MENU = 25,
MAX_CUSTOM_MENU_NAME_LEN = 32, MAX_CUSTOM_MENU_ITEMS = 48, MAX_PRINTSETTINGARR = 8, MACRONAME_MAX = 64,
MAX_EXTCMDLEN = 1024, MAX_EXTCMDMRUNUM = 32, MAX_DATETIMEFOREMAT_LEN = 100, MAX_CMDLEN = 1024,
MAX_CMDARR = 32, MAX_REGEX_KEYWORD = 100, MAX_KEYHELP_FILE = 20, MAX_MARKLINES_LEN = 1023,
MAX_DOCTYPE_LEN = 7, MAX_TRANSFORM_FILENAME = 16, MAX_CUSTMACRO = 50, MAX_TAGJUMPNUM = 100,
MAX_TAGJUMP_KEYWORD = 30, MAX_KEYWORDSET_PER_TYPE = 10, MAX_VERTLINES = 10
}
enum | eWINSIZEMODE { WINSIZEMODE_DEF = 0, WINSIZEMODE_SAVE = 1, WINSIZEMODE_SET = 2 }
ウィンドウサイズ・位置の制御方法 [詳細]

変数

const int | DICT_ABOUT_LEN = 50
const int | BKUP_YEAR = 32
const int | BKUP_MONTH = 16
const int | BKUP_DAY = 8
const int | BKUP_HOUR = 4
const int | BKUP_MIN = 2
const int | BKUP_SEC = 1
const int | BKUP_AUTO = 64
const int | MAX_CAPTION_CONF_LEN = 256

説明

プロセス間共有データへのアクセス

作者:
Norio Nakatani
日付:
1998/05/26 新規作成

CShareData.h で定義されています。

マクロ定義

#define FOOTER_MAX HEADER_MAX

CShareData.h の 162 行で定義されています。

#define HEADER_MAX 100

CShareData.h の 161 行で定義されています。

#define POS_CENTER 1

CShareData.h の 159 行で定義されています。

参照元 CPrintPreview::DrawFooter()・CPrintPreview::DrawHeader()・CDlgPrintSetting::OnChangeSettingType().

#define POS_LEFT 0

印刷設定

CShareData.h の 158 行で定義されています。

参照元 CPrintPreview::DrawFooter()・CPrintPreview::DrawHeader()・CDlgPrintSetting::OnChangeSettingType().

#define POS_RIGHT 2

CShareData.h の 160 行で定義されています。

参照元 CPrintPreview::DrawFooter()・CPrintPreview::DrawHeader()・CDlgPrintSetting::OnChangeSettingType().

列挙型

enum eWINSIZEMODE

ウィンドウサイズ・位置の制御方法

列挙型の値:
WINSIZEMODE_DEF | 指定なし
WINSIZEMODE_SAVE | 継承(保存)
WINSIZEMODE_SET | 直接指定(固定)

CShareData.h の 349 行で定義されています。

enum maxdata

列挙型の値:
MAX_EDITWINDOWS
MAX_SEARCHKEY
MAX_REPLACEKEY
MAX_GREPFILE
MAX_GREPFOLDER
MAX_TYPES
MAX_TOOLBARBUTTONS
MAX_CUSTOM_MENU
MAX_CUSTOM_MENU_NAME_LEN
MAX_CUSTOM_MENU_ITEMS
MAX_PRINTSETTINGARR
MACRONAME_MAX
MAX_EXTCMDLEN
MAX_EXTCMDMRUNUM
MAX_DATETIMEFOREMAT_LEN
MAX_CMDLEN
MAX_CMDARR
MAX_REGEX_KEYWORD
MAX_KEYHELP_FILE
MAX_MARKLINES_LEN
MAX_DOCTYPE_LEN
MAX_TRANSFORM_FILENAME
MAX_CUSTMACRO 2002.11.24 Moca

登録できるマクロの数

日付:
2005.01.30 genta 50に増やした
MAX_TAGJUMPNUM
MAX_TAGJUMP_KEYWORD
MAX_KEYWORDSET_PER_TYPE
MAX_VERTLINES

CShareData.h の 47 行で定義されています。

変数

const int BKUP_AUTO = 64

CShareData.h の 342 行で定義されています。

参照元 Common::EnableAutoBackup()・Common::IsAutoBackupEnabled().

const int BKUP_DAY = 8

CShareData.h の 336 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP().

const int BKUP_HOUR = 4

CShareData.h の 337 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP().

const int BKUP_MIN = 2

CShareData.h の 338 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP().

const int BKUP_MONTH = 16

CShareData.h の 335 行で定義されています。

参照元 CEditDoc::FormatBackUpPath()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::UpdateBackupFile().

const int BKUP_SEC = 1

CShareData.h の 339 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP().

const int BKUP_YEAR = 32

CShareData.h の 334 行で定義されています。

参照元 CEditDoc::FormatBackUpPath()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::UpdateBackupFile().

const int DICT_ABOUT_LEN = 50

辞書の説明の最大長 -1

CShareData.h の 224 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::GetData_KeyHelp()・CPropTypes::Import_KeyHelp().

const int MAX_CAPTION_CONF_LEN = 256

CShareData.h の 345 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CShareData.h ソースファイル

CShareData.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2000, jepro, genta
00010     Copyright (C) 2001, jepro, genta, asa-o, MIK, YAZAKI, hor
00011     Copyright (C) 2002, genta, aroka, Moca, MIK, YAZAKI, hor
00012     Copyright (C) 2003, Moca, aroka, MIK, genta
00013     Copyright (C) 2004, Moca, novice, genta
00014     Copyright (C) 2005, MIK, genta, ryoji, aroka, Moca
00015     Copyright (C) 2006, aroka, ryoji, D.S.Koba, fon
00016     Copyright (C) 2007, ryoji, maru
00017
00018     This source code is designed for sakura editor.
00019     Please contact the copyright holder to use this code for other purpose.
00020 */
00021
00022 class CShareData;
00023
00024 #ifndef _CSHAREDATA_H_
00025 #define _CSHAREDATA_H_
00026
00027 #include <windows.h>
00028 #include <commctrl.h>
00029 #include "CKeyBind.h"
00030 #include "CKeyWordSetMgr.h"
00031 #include "CPrint.h"
00032 #include "CProfile.h"
00033
00034 //@@@ 2001.12.26 YAZAKI CMRU, CMRUFolder
00035 #include "CMRU.h"
00036 #include "CMRUFolder.h"
00037
00038 //20020129 aroka
00039 #include "funccode.h"
00040 #include "CMemory.h"
00041
00042 #include "CMutex.h" // 2007.07.07 genta
00043
00044 #include "CLineComment.h"   //@@@ 2002.09.22 YAZAKI
00045 #include "CBlockComment.h"  //@@@ 2002.09.22 YAZAKI
00046
00047 enum maxdata{
00048     MAX_EDITWINDOWS             = 256,
00049     MAX_SEARCHKEY               =  30,
00050     MAX_REPLACEKEY              =  30,
00051     MAX_GREPFILE                =  30,
00052     MAX_GREPFOLDER              =  30,
00053     MAX_TYPES                   =  20,  //Jul. 12, 2001 JEPRO タイプ別設定の最大設定数を16から増やした
00054     MAX_TOOLBARBUTTONS          = 384,  //Oct. 22, 2000 JEPRO アイコンの最大登録数を128個増やした(256→384)
00055     MAX_CUSTOM_MENU             =  25,
00056     MAX_CUSTOM_MENU_NAME_LEN    =  32,
00057     MAX_CUSTOM_MENU_ITEMS       =  48,
00058     MAX_PRINTSETTINGARR         =   8,
00059
00060     //  From Here Sep. 14, 2001 genta
00061     MACRONAME_MAX               = 64,
00062     MAX_EXTCMDLEN               = 1024,
00063     MAX_EXTCMDMRUNUM            = 32,
00064
00065     MAX_DATETIMEFOREMAT_LEN     = 100,
00066
00067     MAX_CMDLEN                  = 1024,
00068     MAX_CMDARR                  = 32,
00069     MAX_REGEX_KEYWORD           = 100,  //@@@ 2001.11.17 add MIK
00070
00071     MAX_KEYHELP_FILE            = 20,   //@@@ 2006.04.10 fon
00072
00073     MAX_MARKLINES_LEN           = 1023, // 2002.01.18 hor
00074     MAX_DOCTYPE_LEN             = 7,
00075     MAX_TRANSFORM_FILENAME      = 16,
00076
00080     MAX_CUSTMACRO               = 50,
00081
00082     // 2004/06/21 novice タグジャンプ機能追加
00083     MAX_TAGJUMPNUM              = 100,  // タブジャンプ情報最大値
00084     MAX_TAGJUMP_KEYWORD         = 30,   //タグジャンプ用キーワード最大登録数2005.04.04 MIK
00085     MAX_KEYWORDSET_PER_TYPE     = 10,   // 2004.01.23 genta (for MIK) タイプ別設定毎のキーワードセット数
00086     MAX_VERTLINES = 10, // 2005.11.08 Moca 指定桁縦線
00087 };
00088
00089
00090
00096 struct FileInfo {
00097     int     m_nViewTopLine;
00098     int     m_nViewLeftCol;
00099     int     m_nX;
00100     int     m_nY;
00101     int     m_bIsModified;
00102     int     m_nCharCode;
00103     char    m_szPath[_MAX_PATH];
00104     BOOL    m_bIsGrep;
00105     BOOL    m_bIsDebug;
00106     char    m_szGrepKey[1024];
00107     char    m_szMarkLines[MAX_MARKLINES_LEN + 1];
00108     char    m_szDocType[MAX_DOCTYPE_LEN + 1];
00109     int     m_nWindowSizeX;
00110     int     m_nWindowSizeY;
00111     int     m_nWindowOriginX;
00112     int     m_nWindowOriginY;
00114     // Mar. 7, 2002 genta
00115     // Constructor 確実に初期化するため
00116     FileInfo() : m_nViewTopLine( -1 ), m_nViewLeftCol( -1 ),
00117         m_nX( -1 ), m_nY( -1 ), m_bIsModified( 0 ),
00118         m_nCharCode( CODE_AUTODETECT ), m_bIsGrep( FALSE ), m_bIsDebug( FALSE ),
00119         m_nWindowSizeX( -1 ), m_nWindowSizeY( -1 ),
00120         //  2004.05.13 Moca “指定無し”を-1からCW_USEDEFAULTに変更
00121         m_nWindowOriginX( CW_USEDEFAULT ), m_nWindowOriginY( CW_USEDEFAULT )
00122     {
00123         m_szPath[0] = '\0';
00124         m_szMarkLines[0] = '\0';
00125         m_szDocType[0] = '\0';
00126     }
00127 };
00128
00132 struct GrepInfo {
00133     CMemory     cmGrepKey;
00134     CMemory     cmGrepFile;
00135     CMemory     cmGrepFolder;
00136     bool        bGrepWordOnly;
00137     bool        bGrepSubFolder;
00138     bool        bGrepNoIgnoreCase;
00139     bool        bGrepRegularExp;
00140     bool        bGrepOutputLine;
00141     int         nGrepOutputStyle;
00142     int         nGrepCharSet;
00143 };
00144
00145
00146 struct EditNode {
00147     int             m_nIndex;
00148     int             m_nGroup;                                               //@@@ 2007.06.20 ryoji
00149     HWND            m_hWnd;
00150     char            m_szTabCaption[_MAX_PATH];      //@@@ 2003.05.31 MIK
00151     char            m_szFilePath[_MAX_PATH];            //@@@ 2006.01.28 ryoji
00152     BOOL            m_bIsGrep;                                      //@@@ 2006.01.28 ryoji
00153     UINT            m_showCmdRestore;               //@@@ 2007.06.20 ryoji
00154     BOOL            m_bClosing;                     //@@@ 2007.06.20 ryoji
00155 };
00156
00158 #define POS_LEFT    0
00159 #define POS_CENTER  1
00160 #define POS_RIGHT   2
00161 #define HEADER_MAX  100
00162 #define FOOTER_MAX  HEADER_MAX
00163 struct PRINTSETTING {
00164     char            m_szPrintSettingName[32 + 1];
00165     char            m_szPrintFontFaceHan[LF_FACESIZE];
00166     char            m_szPrintFontFaceZen[LF_FACESIZE];
00167     int             m_nPrintFontWidth;
00168     int             m_nPrintFontHeight;
00169     int             m_nPrintDansuu;
00170     int             m_nPrintDanSpace;
00171     int             m_nPrintLineSpacing;
00172     int             m_nPrintMarginTY;
00173     int             m_nPrintMarginBY;
00174     int             m_nPrintMarginLX;
00175     int             m_nPrintMarginRX;
00176     int             m_nPrintPaperOrientation;
00177     int             m_nPrintPaperSize;
00178     BOOL            m_bPrintWordWrap;
00179     BOOL            m_bPrintKinsokuHead;                    //@@@ 2002.04.09 MIK
00180     BOOL            m_bPrintKinsokuTail;                    //@@@ 2002.04.09 MIK
00181     BOOL            m_bPrintKinsokuRet;                     //@@@ 2002.04.13 MIK
00182     BOOL            m_bPrintKinsokuKuto;                    //@@@ 2002.04.17 MIK
00183     BOOL            m_bPrintLineNumber;
00186     MYDEVMODE       m_mdmDevMode;
00187     BOOL            m_bHeaderUse[3];                    /* ヘッダが使われているか？ */
00188     char            m_szHeaderForm[3][HEADER_MAX];      /* 0:左寄せヘッダ。1:中央寄せヘッダ。2:右寄せヘッダ。*/
00189     BOOL            m_bFooterUse[3];                    /* フッタが使われているか？ */
00190     char            m_szFooterForm[3][FOOTER_MAX];      /* 0:左寄せフッタ。1:中央寄せフッタ。2:右寄せフッタ。*/
00191 };
00192
00193
00195 struct ColorInfo {
00196     int         m_nColorIdx;
00197     BOOL        m_bDisp;            /* 色分け/表示 をする */
00198     BOOL        m_bFatFont;         /* 太字か */
00199     BOOL        m_bUnderLine;       /* アンダーラインか */
00200     COLORREF    m_colTEXT;          /* 前景色(文字色) */
00201     COLORREF    m_colBACK;          /* 背景色 */
00202     char        m_szName[32];       /* 名前 */
00203     char        m_cReserved[60];
00204 };
00205
00207 struct ColorInfoIni {
00208     const char* m_pszName;          /* 色名 */
00209     BOOL        m_bDisp;            /* 色分け/表示 をする */
00210     BOOL        m_bFatFont;         /* 太字か */
00211     BOOL        m_bUnderLine;       /* アンダーラインか */
00212     COLORREF    m_colTEXT;          /* 前景色(文字色) */
00213     COLORREF    m_colBACK;          /* 背景色 */
00214 };
00215
00216 //@@@ 2001.11.17 add start MIK
00217 struct RegexKeywordInfo {
00218     char    m_szKeyword[100];   //正規表現キーワード
00219     int m_nColorIndex;      //色指定番号
00220 };
00221 //@@@ 2001.11.17 add end MIK
00222
00223 //@@@ 2006.04.10 fon ADD-start
00224 const int DICT_ABOUT_LEN = 50;
00225 struct KeyHelpInfo {
00226     int     m_nUse;
00227     char    m_szAbout[DICT_ABOUT_LEN];
00228     char    m_szPath[_MAX_PATH];
00229 };
00230 //@@@ 2006.04.10 fon ADD-end
00231
00233 struct Types {
00234     int                 m_nIdx;
00235     char                m_szTypeName[64];
00236     char                m_szTypeExts[64];
00237     int                 m_nMaxLineSize;
00238     int                 m_nColmSpace;
00239     int                 m_nLineSpace;
00240     int                 m_nTabSpace;
00241     int                 m_bTabArrow;                        //@@@ 2003.03.26 MIK
00242     char                m_szTabViewString[17];              // 2003.1.26 aroka サイズ拡張
00243     int                 m_bInsSpace;                    /* スペースの挿入 */    // 2001.12.03 hor
00244     // 2005.01.13 MIK 配列化
00245     int                 m_nKeyWordSetIdx[MAX_KEYWORDSET_PER_TYPE];
00247     CLineComment        m_cLineComment;                             //@@@ 2002.09.22 YAZAKI
00248     CBlockComment       m_cBlockComment;                    //@@@ 2002.09.22 YAZAKI
00249
00250     int                 m_nStringType;
00251     char                m_szIndentChars[64];
00253     int                 m_nColorInfoArrNum;
00254     ColorInfo           m_ColorInfoArr[64];
00256     int                 m_bLineNumIsCRLF;
00257     int                 m_nLineTermType;
00258     char                m_cLineTermChar;
00259     int                 m_nVertLineIdx[MAX_VERTLINES];
00261     BOOL                m_bWordWrap;
00262     BOOL                m_bKinsokuHead;                     //@@@ 2002.04.08 MIK
00263     BOOL                m_bKinsokuTail;                     //@@@ 2002.04.08 MIK
00264     BOOL                m_bKinsokuRet;                      //@@@ 2002.04.13 MIK
00265     BOOL                m_bKinsokuKuto;                     //@@@ 2002.04.17 MIK
00266     char                m_szKinsokuHead[200];               //@@@ 2002.04.08 MIK
00267     char                m_szKinsokuTail[200];               //@@@ 2002.04.08 MIK
00268
00269     int                 m_nCurrentPrintSetting;
00271     int                 m_nDefaultOutline;
00272     char                m_szOutlineRuleFilename[_MAX_PATH];
00274     int                 m_nSmartIndent;
00275     int                 m_nImeState;    //  Nov. 20, 2000 genta 初期IME状態
00276
00277     //  2001/06/14 asa-o 補完のタイプ別設定
00278     char                m_szHokanFile[_MAX_PATH];
00279     //  2003.06.23 Moca ファイル内からの入力補完機能
00280     int                 m_bUseHokanByFile;
00281     //  2001/06/19 asa-o
00282     int                 m_bHokanLoHiCase;
00284     char                m_szExtHelp[_MAX_PATH];     /* 外部ヘルプ１ */
00285     char                m_szExtHtmlHelp[_MAX_PATH];     /* 外部HTMLヘルプ */
00286     BOOL                m_bHtmlHelpIsSingle;            /* HtmlHelpビューアはひとつ */
00287
00288
00289 //@@@ 2001.11.17 add start MIK
00290     BOOL    m_bUseRegexKeyword; /* 正規表現キーワードを使うか*/
00291     int m_nRegexKeyMagicNumber; /* 正規表現キーワード更新マジックナンバー */
00292     struct RegexKeywordInfo m_RegexKeywordArr[MAX_REGEX_KEYWORD];   /* 正規表現キーワード */
00293 //@@@ 2001.11.17 add end MIK
00294
00295 //@@@ 2006.04.10 fon ADD-start
00296     BOOL                m_bUseKeyWordHelp;          /* キーワード辞書セレクト機能を使うか */
00297     int                 m_nKeyHelpNum;                  /* キーワード辞書の冊数 */
00298     struct  KeyHelpInfo m_KeyHelpArr[MAX_KEYHELP_FILE]; /* キーワード辞書ファイル */
00299     BOOL                m_bUseKeyHelpAllSearch;         /* ヒットした次の辞書も検索(&A) */
00300     BOOL                m_bUseKeyHelpKeyDisp;           /* 1行目にキーワードも表示する(&W) */
00301     BOOL                m_bUseKeyHelpPrefix;            /* 選択範囲で前方一致検索(&P) */
00302 //@@@ 2006.04.10 fon ADD-end
00303
00304     //  2002/04/30 YAZAKI Commonから移動。
00305     BOOL                m_bAutoIndent;                  /* オートインデント */
00306     BOOL                m_bAutoIndent_ZENSPACE;         /* 日本語空白もインデント */
00307     BOOL                m_bRTrimPrevLine;               /* 2005.10.11 ryoji 改行時に末尾の空白を削除 */
00308     int                 m_nIndentLayout;                /* 折り返しは2行目以降を字下げ表示 */
00309
00310     //  Sep. 10, 2002 genta
00311     int                 m_bUseDocumentIcon;
00313 }; /* Types */
00314
00316 struct MacroRec {
00317     char    m_szName[MACRONAME_MAX];    //<! 表示名
00318     char    m_szFile[_MAX_PATH+1];  //<! ファイル名(ディレクトリを含まない)
00319     BOOL    m_bReloadWhenExecute;   //  実行時に読み込みなおすか（デフォルトon）
00320
00321     bool IsEnabled() const { return m_szFile[0] != '\0'; }
00322 };
00323 //  To Here Sep. 14, 2001 genta
00324
00325 // 2004/06/21 novice タグジャンプ機能追加
00327 struct TagJump {
00328     HWND    hwndReferer;                //<! 参照元ウィンドウ
00329     POINT   point;                      //<! ライン, カラム
00330 };
00331
00332 //  Aug. 15, 2000 genta
00333 //  Backup Flags
00334 const int BKUP_YEAR     = 32;
00335 const int BKUP_MONTH    = 16;
00336 const int BKUP_DAY      = 8;
00337 const int BKUP_HOUR     = 4;
00338 const int BKUP_MIN      = 2;
00339 const int BKUP_SEC      = 1;
00340
00341 //  Aug. 21, 2000 genta
00342 const int BKUP_AUTO     = 64;
00343
00344 // Apr. 05, 2003 genta WindowCaption用領域（変換前）の長さ
00345 const int MAX_CAPTION_CONF_LEN = 256;
00346
00347 //  2004.05.13 Moca
00349 enum eWINSIZEMODE{
00350     WINSIZEMODE_DEF = 0,
00351     WINSIZEMODE_SAVE = 1,
00352     WINSIZEMODE_SET = 2
00353 };
00354
00355
00357 struct Common {
00358
00359     //  Jul. 3, 2000 genta
00360     //  アクセス関数(簡易)
00361     //  intをビット単位に分割して使う
00362     //  下4bitをCaretTypeに当てておく(将来の予約で多めに取っておく)
00363     int     GetCaretType(void) const { return m_nCaretType & 0xf; }
00364     void    SetCaretType(const int f){ m_nCaretType &= ~0xf; m_nCaretType |= f & 0xf; }
00365
00366     //  Aug. 15, 2000 genta
00367     //  Backup設定のアクセス関数
00368     int     GetBackupType(void) const { return m_nBackUpType; }
00369     void    SetBackupType(int n){ m_nBackUpType = n; }
00370
00371     bool    GetBackupOpt(int flag) const { return ( flag & m_nBackUpType_Opt1 ) == flag; }
00372     void    SetBackupOpt(int flag, bool value){
00373         m_nBackUpType_Opt1 = value ? ( flag | m_nBackUpType_Opt1) :  ((~flag) & m_nBackUpType_Opt1 );
00374     }
00375
00376     //  バックアップ数
00377     int     GetBackupCount(void) const { return m_nBackUpType_Opt2 & 0xffff; }
00378     void    SetBackupCount(int value){
00379         m_nBackUpType_Opt2 = (m_nBackUpType_Opt2 & 0xffff0000) | ( value & 0xffff );
00380     }
00381
00382     //  バックアップの拡張子先頭文字(1文字)
00383     int     GetBackupExtChar(void) const { return ( m_nBackUpType_Opt2 >> 16 ) & 0xff ; }
00384     void    SetBackupExtChar(int value){
00385         m_nBackUpType_Opt2 = (m_nBackUpType_Opt2 & 0xff00ffff) | (( value & 0xff ) << 16 );
00386     }
00387
00388     //  Aug. 21, 2000 genta
00389     //  自動Backup
00390     bool    IsAutoBackupEnabled(void) const { return GetBackupOpt( BKUP_AUTO ); }
00391     void    EnableAutoBackup(bool flag){ SetBackupOpt( BKUP_AUTO, flag ); }
00392
00393     int     GetAutoBackupInterval(void) const { return m_nBackUpType_Opt3; }
00394     void    SetAutoBackupInterval(int i){ m_nBackUpType_Opt3 = i; }
00395
00396     //  Backup詳細設定のアクセス関数
00397     int     GetBackupTypeAdv(void) const { return m_nBackUpType_Opt4; }
00398     void    SetBackupTypeAdv(int n){ m_nBackUpType_Opt4 = n; }
00399
00400     //  Oct. 27, 2000 genta
00401     //  カーソル位置を復元するかどうか
00402     bool    GetRestoreCurPosition(void) const { return m_bRestoreCurPosition != 0; }
00403     void    SetRestoreCurPosition(bool i){ m_bRestoreCurPosition = i; }
00404
00405     // 2002.01.16 hor ブックマークを復元するかどうか
00406     bool    GetRestoreBookmarks(void) const { return m_bRestoreBookmarks != 0; }
00407     void    SetRestoreBookmarks(bool i){ m_bRestoreBookmarks = i; }
00408
00409     //  Nov. 12, 2000 genta
00410     //  ファイル読み込み時にMIMEのdecodeを行うか
00411     bool    GetAutoMIMEdecode(void) const { return m_bAutoMIMEdecode != 0; }
00412     void    SetAutoMIMEdecode(bool i){ m_bAutoMIMEdecode = i; }
00413
00414     // Oct. 03, 2004 genta 前回と文字コードが異なるときに問い合わせを行う
00415     bool    GetQueryIfCodeChange(void) const { return m_bQueryIfCodeChange != 0; }
00416     void    SetQueryIfCodeChange(bool i){ m_bQueryIfCodeChange = i; }
00417
00418     // Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告する
00419     bool    GetAlertIfFileNotExist(void) const { return m_bAlertIfFileNotExist != 0; }
00420     void    SetAlertIfFileNotExist(bool i){ m_bAlertIfFileNotExist = i; }
00421
00422
00423     //  注意: 設定ファイルからの読み込み時にINTとして扱うため，bool型を使ってはいけない．
00424     //  sizeof(int) != sizeof(bool)だとデータを破壊してしまう．
00425
00426     int                 m_nCaretType;                   /* カーソルのタイプ 0=win 1=dos  */
00427     int                 m_bIsINSMode;                   /* 挿入／上書きモード */
00428     int                 m_bIsFreeCursorMode;            /* フリーカーソルモードか */
00429     BOOL                m_bStopsBothEndsWhenSearchWord; /* 単語単位で移動するときに、単語の両端で止まるか */
00430     BOOL                m_bStopsBothEndsWhenSearchParagraph;    /* 段落単位で移動するときに、段落の両端で止まるか */
00431
00432     BOOL                m_bRestoreCurPosition;          //  ファイルを開いたときカーソル位置を復元するか
00433     BOOL                m_bRestoreBookmarks;            // 2002.01.16 hor ブックマークを復元するかどうか
00434
00435     int                 m_bAddCRLFWhenCopy;             /* 折り返し行に改行を付けてコピー */
00436     int                 m_nRepeatedScrollLineNum;       /* キーリピート時のスクロール行数 */
00437     BOOL                m_nRepeatedScroll_Smooth;       /* キーリピート時のスクロールを滑らかにするか */
00438     BOOL                m_bCloseAllConfirm;             /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */    // 2006.12.25 ryoji
00439     BOOL                m_bExitConfirm;                 /* 終了時の確認をする */
00440     int                 m_bRegularExp;                  /* 検索／置換  1==正規表現 */
00441     int                 m_bLoHiCase;                    /* 検索／置換  1==英大文字小文字の区別 */
00442     int                 m_bWordOnly;                    /* 検索／置換  1==単語のみ検索 */
00443     int                 m_bConsecutiveAll;              /* 「すべて置換」は置換の繰返し */  // 2007.01.16 ryoji
00444     int                 m_bNOTIFYNOTFOUND;              /* 検索／置換  見つからないときメッセージを表示 */
00445     int                 m_bSelectedArea;                /* 置換  選択範囲内置換 */
00446     int                 m_bGrepSubFolder;               /* Grep: サブフォルダも検索 */
00447     BOOL                m_bGrepOutputLine;              /* Grep: 行を出力するか該当部分だけ出力するか */
00448     int                 m_nGrepOutputStyle;             /* Grep: 出力形式 */
00449     int                 m_bGrepDefaultFolder;           /* Grep: フォルダの初期値をカレントフォルダにする */
00450     int                 m_nGrepCharSet;                 /* Grep: 文字コードセット */ // 2002/09/20 Moca Add
00451     int                 m_bGrepRealTimeView;            /* 2003.06.16 Moca Grep結果のリアルタイム表示 */
00452     BOOL                m_bCaretTextForSearch;          /* 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする */
00453     char                m_szRegexpLib[_MAX_PATH];       /* 使用する正規表現DLL */ // 2007.08.22 genta
00454
00455     BOOL                m_bGTJW_RETURN;                 /* エンターキーでタグジャンプ */
00456     BOOL                m_bGTJW_LDBLCLK;                /* ダブルクリックでタグジャンプ */
00457     LOGFONT             m_lf;                           /* 現在のフォント情報 */
00458     BOOL                m_bFontIs_FIXED_PITCH;          /* 現在のフォントは固定幅フォントである */
00459     BOOL                m_bBackUp;                      /* バックアップの作成 */
00460     BOOL                m_bBackUpDialog;                /* バックアップの作成前に確認 */
00461     BOOL                m_bBackUpFolder;                /* 指定フォルダにバックアップを作成する */
00462     char                m_szBackUpFolder[_MAX_PATH];    /* バックアップを作成するフォルダ */
00463     int                 m_nBackUpType;                  /* バックアップファイル名のタイプ 1=(.bak) 2=*_日付.* */
00464     int                 m_nBackUpType_Opt1;             /* バックアップファイル名：オプション1 */
00465     int                 m_nBackUpType_Opt2;             /* バックアップファイル名：オプション2 */
00466     int                 m_nBackUpType_Opt3;             /* バックアップファイル名：オプション3 */
00467     int                 m_nBackUpType_Opt4;             /* バックアップファイル名：オプション4 */
00468     int                 m_nBackUpType_Opt5;             /* バックアップファイル名：オプション5 */
00469     int                 m_nBackUpType_Opt6;             /* バックアップファイル名：オプション6 */
00470     BOOL                m_bBackUpDustBox;           /* バックアップファイルをごみ箱に放り込む */    //@@@ 2001.12.11 add MIK
00471     BOOL                m_bBackUpPathAdvanced;              /* 20051107 aroka バックアップ先フォルダを詳細設定する */
00472     char                m_szBackUpPathAdvanced[_MAX_PATH];  /* 20051107 aroka バックアップを作成するフォルダの詳細設定 */
00473     int                 m_nFileShareMode;               /* ファイルの排他制御モード */
00474     char                m_szExtHelp[_MAX_PATH];     /* 外部ヘルプ１ */
00475     char                m_szExtHtmlHelp[_MAX_PATH];     /* 外部HTMLヘルプ */
00476     LOGFONT             m_lf_kh;                        /* キーワードヘルプのフォント情報 */        // ai 02/05/21 Add
00477     BOOL                m_bUseCaretKeyWord;             /* キャレット位置の単語を辞書検索 */        // 2006.03.24 fon
00478
00479     int                 m_nToolBarButtonNum;            /* ツールバーボタンの数 */
00480     int                 m_nToolBarButtonIdxArr[MAX_TOOLBARBUTTONS]; /* ツールバーボタン構造体 */
00481     int                 m_bToolBarIsFlat;               /* フラットツールバーにする／しない */
00482     int                 m_nMRUArrNum_MAX;
00483     int                 m_nOPENFOLDERArrNum_MAX;
00484     BOOL                m_bDispTOOLBAR;                 /* 次回ウィンドウを開いたときツールバーを表示する */
00485     BOOL                m_bDispSTATUSBAR;               /* 次回ウィンドウを開いたときステータスバーを表示する */
00486
00487     BOOL                m_bDispFUNCKEYWND;              /* 次回ウィンドウを開いたときファンクションキーを表示する */
00488     int                 m_nFUNCKEYWND_Place;            /* ファンクションキー表示位置／0:上 1:下 */
00489     int                 m_nFUNCKEYWND_GroupNum;         // 2002/11/04 Moca ファンクションキーのグループボタン数
00490
00491     BOOL                m_bDispTabWnd;                  //タブウインドウ表示する    //@@@ 2003.05.31 MIK
00492     BOOL                m_bDispTabWndMultiWin;          //タブをまとめない  //@@@ 2003.05.31 MIK
00493     BOOL                m_bTab_RetainEmptyWin;
00494     BOOL                m_bTab_CloseOneWin;
00495
00496     char                m_szTabWndCaption[MAX_CAPTION_CONF_LEN];    //タブウインドウキャプション    //@@@ 2003.06.13 MIK
00497     BOOL                m_bSameTabWidth;                //タブを等幅にする          //@@@ 2006.01.28 ryoji
00498     BOOL                m_bDispTabIcon;                 //タブにアイコンを表示する  //@@@ 2006.01.28 ryoji
00499     BOOL                m_bSortTabList;                 //タブ一覧をソートする  //@@@ 2006.03.23 fon
00500     BOOL                m_bTab_ListFull;                //タブ一覧をフルパス表示する    //@@@ 2007.02.28 ryoji
00501     BOOL                m_bChgWndByWheel;               //マウスホイールでウィンドウ切り替え    //@@@ 2006.03.26 ryoji
00502
00503     BOOL                m_bSplitterWndHScroll;          // 2001/06/20 asa-o 分割ウィンドウの水平スクロールの同期をとる
00504     BOOL                m_bSplitterWndVScroll;          // 2001/06/20 asa-o 分割ウィンドウの垂直スクロールの同期をとる
00505
00506     /* カスタムメニュー情報 */
00507     char                m_szCustMenuNameArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_NAME_LEN + 1];
00508     int                 m_nCustMenuItemNumArr [MAX_CUSTOM_MENU];
00509     int                 m_nCustMenuItemFuncArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS];
00510     char                m_nCustMenuItemKeyArr [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS];
00511     char                m_szMidashiKigou[256];          /* 見出し記号 */
00512     char                m_szInyouKigou[32];             /* 引用符 */
00513     int                 m_bUseHokan;                    /* 入力補完機能を使用する */
00514
00515     int                 m_nSaveWindowSize;  // 2004.05.13 Moca ウィンドウサイズ継承・固定 eWINSIZEMODEに順ずる
00516     int                 m_nWinSizeType;
00517     int                 m_nWinSizeCX;
00518     int                 m_nWinSizeCY;
00519     int                 m_nSaveWindowPos;   // 2004.05.13 Moca ウィンドウ位置継承・固定 eWINSIZEMODEに順ずる
00520     int                 m_nWinPosX;
00521     int                 m_nWinPosY;
00522
00523     BOOL                m_bUseTaskTray;             /* タスクトレイのアイコンを使う */
00524     BOOL                m_bStayTaskTray;            /* タスクトレイのアイコンを常駐 */
00525
00526     WORD                m_wTrayMenuHotKeyCode;      /* タスクトレイ左クリックメニュー キー */
00527     WORD                m_wTrayMenuHotKeyMods;      /* タスクトレイ左クリックメニュー キー */
00528
00529     BOOL                m_bUseOLE_DragDrop;         /* OLEによるドラッグ & ドロップを使う */
00530     BOOL                m_bUseOLE_DropSource;       /* OLEによるドラッグ元にするか */
00531
00532
00533     BOOL                m_bDispExitingDialog;           /* 終了ダイアログを表示する */
00534     BOOL                m_bEnableUnmodifiedOverwrite;   /* 無変更でも上書きするか */
00535     BOOL                m_bJumpSingleClickURL;          /* URLのシングルクリックでJump */
00536     BOOL                m_bSelectClickedURL;            /* URLがクリックされたら選択するか */
00537     BOOL                m_bGrepExitConfirm;             /* Grepモードで保存確認するか */
00538
00539     int                 m_nRulerHeight;             /* ルーラー高さ */
00540     int                 m_nRulerBottomSpace;        /* ルーラーとテキストの隙間 */
00541     int                 m_nRulerType;               /* ルーラーのタイプ */
00542     int                 m_nLineNumRightSpace;       // 行番号の右のスペース Sep. 18, 2002 genta
00543     int                 m_nVertLineOffset;          // 縦線の描画座標オフセット 2005.11.10 Moca
00544
00545     BOOL                m_bCopyAndDisablSelection;  /* コピーしたら選択解除 */
00546     BOOL                m_bHtmlHelpIsSingle;        /* HtmlHelpビューアはひとつ */
00547     BOOL                m_bCompareAndTileHorz;      /* 文書比較後、左右に並べて表示 */
00548     BOOL                m_bDropFileAndClose;        /* ファイルをドロップしたときは閉じて開く */
00549     int                 m_nDropFileNumMax;          /* 一度にドロップ可能なファイル数 */
00550     BOOL                m_bCheckFileTimeStamp;      /* 更新の監視 */
00551     BOOL                m_bNotOverWriteCRLF;        /* 改行は上書きしない */
00552     RECT                m_rcOpenDialog;             /* 「開く」ダイアログのサイズと位置 */
00553     BOOL                m_bAutoCloseDlgFind;        /* 検索ダイアログを自動的に閉じる */
00554     BOOL                m_bScrollBarHorz;           /* 水平スクロールバーを使う */
00555     BOOL                m_bAutoCloseDlgFuncList;    /* アウトライン ダイアログを自動的に閉じる */
00556     BOOL                m_bAutoCloseDlgReplace;     /* 置換 ダイアログを自動的に閉じる */
00557     BOOL                m_bSearchAll;               /* 先頭（末尾）から再検索 2002.01.26 hor */
00558     BOOL                m_bAutoColmnPaste;          /* 矩形コピーのテキストは常に矩形貼り付け */
00559     BOOL                m_bNoCaretMoveByActivation; /* マウスクリックにてアクティベートされた時はカーソル位置を移動しない 2007.10.02 nasukoji (add by genta) */
00560
00561     BOOL                m_bHokanKey_RETURN; /* VK_RETURN    補完決定キーが有効/無効 */
00562     BOOL                m_bHokanKey_TAB;    /* VK_TAB       補完決定キーが有効/無効 */
00563     BOOL                m_bHokanKey_RIGHT;  /* VK_RIGHT     補完決定キーが有効/無効 */
00564     BOOL                m_bHokanKey_SPACE;  /* VK_SPACE     補完決定キーが有効/無効 */
00565
00566
00567     int                 m_nDateFormatType;                      //日付書式のタイプ
00568     char                m_szDateFormat[MAX_DATETIMEFOREMAT_LEN];//日付書式
00569     int                 m_nTimeFormatType;                      //時刻書式のタイプ
00570     char                m_szTimeFormat[MAX_DATETIMEFOREMAT_LEN];//時刻書式
00571
00572     BOOL                m_bMenuIcon;        /* メニューにアイコンを表示する */
00573     BOOL                m_bAutoMIMEdecode;  // ファイル読み込み時にMIMEのdecodeを行うか
00574     BOOL                m_bQueryIfCodeChange;   // Oct. 03, 2004 genta 前回と文字コードが異なるときに問い合わせを行う
00575     BOOL                m_bAlertIfFileNotExist; // Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告する
00576
00577     BOOL                m_bMarkUpBlankLineEnable;   //2002.02.08 aroka,hor
00578     BOOL                m_bFunclistSetFocusOnJump;  //2002.02.08 hor
00579
00580     // Apr. 5, 2003 genta
00581     char                m_szWindowCaptionActive[MAX_CAPTION_CONF_LEN];
00582     char                m_szWindowCaptionInactive[MAX_CAPTION_CONF_LEN];
00583
00584     //2004.10.28
00585     char                m_szMigemoDll[_MAX_PATH];       /* migemo dll */
00586     char                m_szMigemoDict[_MAX_PATH];      /* migemo dict */
00587
00588 //  int                 m_nTagDepth;    //ダイレクトタグジャンプ階層
00589
00590     // 20060201 aroka アウトライン/トピックリスト の位置とサイズを記憶
00591     int                 m_bRememberOutlineWindowPos;
00592     int                 m_widthOutlineWindow;
00593     int                 m_heightOutlineWindow;
00594     int                 m_xOutlineWindowPos;
00595     int                 m_yOutlineWindowPos;
00596
00597     // ファイル保存ダイアログのフィルタ設定 // 2006.11.16 ryoji
00598     BOOL                m_bNoFilterSaveNew;     // 新規から保存時は全ファイル表示
00599     BOOL                m_bNoFilterSaveFile;    // 新規以外から保存時は全ファイル表示
00600 }; /* Common */
00601
00602
00604 struct IniFolder {
00605     bool m_bInit;                           // 初期化済フラグ
00606     bool m_bReadPrivate;                    // マルチユーザ用iniからの読み出しフラグ
00607     bool m_bWritePrivate;                   // マルチユーザ用iniへの書き込みフラグ
00608     TCHAR m_szIniFile[_MAX_PATH];           // EXE基準のiniファイルパス
00609     TCHAR m_szPrivateIniFile[_MAX_PATH];    // マルチユーザ用のiniファイルパス
00610 };  /* iniフォルダ設定 */
00611
00613 struct DLLSHAREDATA {
00614     //  Oct. 27, 2000 genta
00616     /*  データ構造の異なるバージョンの同時起動を防ぐため
00617         必ず先頭になくてはならない．
00618     */
00619     unsigned int        m_vStructureVersion;
00620     /* 共通作業域(保存しない) */
00621     char                m_szWork[32000];
00622     FileInfo            m_FileInfo_MYWM_GETFILEINFO;
00623
00624     DWORD               m_dwProductVersionMS;
00625     DWORD               m_dwProductVersionLS;
00626     HWND                m_hwndTray;
00627     HWND                m_hwndDebug;
00628     HACCEL              m_hAccel;
00629     LONG                m_nSequences;   /* ウィンドウ連番 */
00630     LONG                m_nGroupSequences;  // タブグループ連番 // 2007.06.20 ryoji
00631     /**** 共通作業域(保存する) ****/
00632     int                 m_nEditArrNum;  //short->intに修正  //@@@ 2003.05.31 MIK
00633     EditNode            m_pEditArr[MAX_EDITWINDOWS];    //最大値修正    @@@ 2003.05.31 MIK
00634
00635     //From Here 2003.05.31 MIK
00636     //WINDOWPLACEMENT       m_TabWndWndpl;                  //タブウインドウ時のウインドウ情報
00637     //To Here 2003.05.31 MIK
00638     BOOL                m_bEditWndChanging;             // 編集ウィンドウ切替中 // 2007.04.03 ryoji
00639
00640 //@@@ 2001.12.26 YAZAKI 以下の2つは、直接アクセスしないでください。CMRUを経由してください。
00641     int                 m_nMRUArrNum;
00642     FileInfo            m_fiMRUArr[MAX_MRU];
00643     bool                m_bMRUArrFavorite[MAX_MRU]; //お気に入り    //@@@ 2003.04.08 MIK
00644
00645 //@@@ 2001.12.26 YAZAKI 以下の2つは、直接アクセスしないでください。CMRUFolderを経由してください。
00646     int                 m_nOPENFOLDERArrNum;
00647     char                m_szOPENFOLDERArr[MAX_OPENFOLDER][_MAX_PATH];
00648     bool                m_bOPENFOLDERArrFavorite[MAX_OPENFOLDER];   //お気に入り    //@@@ 2003.04.08 MIK
00649
00650     int                 m_nTransformFileNameArrNum;
00651     char                m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00652     char                m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH]; //お気に入り    //@@@ 2003.04.08 MIK
00653
00654     int                 m_nSEARCHKEYArrNum;
00655     char                m_szSEARCHKEYArr[MAX_SEARCHKEY][_MAX_PATH];
00656 //  bool                m_bSEARCHKEYArrFavorite[MAX_SEARCHKEY]; //お気に入り    //@@@ 2003.04.08 MIK
00657     int                 m_nREPLACEKEYArrNum;
00658     char                m_szREPLACEKEYArr[MAX_REPLACEKEY][_MAX_PATH];
00659 //  bool                m_bREPLACEKEYArrFavorite[MAX_REPLACEKEY];   //お気に入り    //@@@ 2003.04.08 MIK
00660     int                 m_nGREPFILEArrNum;
00661     char                m_szGREPFILEArr[MAX_GREPFILE][_MAX_PATH];
00662 //  bool                m_bGREPFILEArrFavorite[MAX_GREPFILE];   //お気に入り    //@@@ 2003.04.08 MIK
00663     int                 m_nGREPFOLDERArrNum;
00664     char                m_szGREPFOLDERArr[MAX_GREPFOLDER][_MAX_PATH];
00665 //  bool                m_bGREPFOLDERArrFavorite[MAX_GREPFOLDER];   //お気に入り    //@@@ 2003.04.08 MIK
00666
00667     char                m_szMACROFOLDER[_MAX_PATH];     /* マクロ用フォルダ */
00668     char                m_szIMPORTFOLDER[_MAX_PATH];    /* 設定インポート用フォルダ */
00669
00670     //  Sep. 14, 2001 genta
00671     MacroRec            m_MacroTable[MAX_CUSTMACRO];
00672
00673     // 2004/06/21 タグジャンプ機能追加
00674     int                 m_TagJumpNum;
00675     int                 m_TagJumpTop;
00676     TagJump             m_TagJump[MAX_TAGJUMPNUM];
00677
00678 //  MRU_ExtCmd          m_MRU_ExtCmd;   /* MRU 外部コマンド */
00679     char                m_szCmdArr[MAX_CMDARR][MAX_CMDLEN];
00680     int                 m_nCmdArrNum;
00681 //  bool                m_bCmdArrFavorite[MAX_CMDARR];  //お気に入り    //@@@ 2003.04.08 MIK
00682
00683     /**** iniフォルダ設定 ****/
00684     IniFolder           m_IniFolder;
00685
00686     /**** 共通設定 ****/
00687     Common              m_Common;
00688
00689     /* キー割り当て */
00690     int                 m_nKeyNameArrNum;           /* キー割り当て表の有効データ数 */
00691     KEYDATA             m_pKeyNameArr[100];         /* キー割り当て表 */
00692
00693     /**** 印刷ページ設定 ****/
00694     PRINTSETTING        m_PrintSettingArr[MAX_PRINTSETTINGARR];
00695
00696     /* 強調キーワード設定 */
00697     CKeyWordSetMgr      m_CKeyWordSetMgr;                   /* 強調キーワード */
00698     char                m_szKeyWordSetDir[MAX_PATH];        /* 強調キーワードファイルのディレクトリ */
00699
00700     /* **** タイプ別設定 **** */
00701     Types               m_Types[MAX_TYPES];
00702
00703     /*  @@@ 2002.1.24 YAZAKI
00704         キーボードマクロは、記録終了した時点でファイル「m_szKeyMacroFileName」に書き出すことにする。
00705         m_bRecordingKeyMacroがTRUEのときは、キーボードマクロの記録中なので、m_szKeyMacroFileNameにアクセスしてはならない。
00706     */
00707     BOOL                m_bRecordingKeyMacro;       /* キーボードマクロの記録中 */
00708     HWND                m_hwndRecordingKeyMacro;    /* キーボードマクロを記録中のウィンドウ */
00709     char                m_szKeyMacroFileName[MAX_PATH]; /* キーボードマクロのファイル名 */
00710
00711 //@@@ 2002.01.08 YAZAKI 設定を保存するためにShareDataに移動
00712     /* **** その他のダイアログ **** */
00713 //  BOOL                m_bGetStdout;       /* 外部コマンド実行の「標準出力を得る」 */
00714     int                 m_nExecFlgOpt;      /* 外部コマンド実行オプション */    //  2006.12.03 maru オプションの拡張のため
00715     BOOL                m_bLineNumIsCRLF;   /* 指定行へジャンプの「改行単位の行番号」か「折り返し単位の行番号」か */
00716
00717     int                 m_nDiffFlgOpt;      /* DIFF差分表示 */  //@@@ 2002.05.27 MIK
00718
00719     char                m_szTagsCmdLine[_MAX_PATH]; /* TAGSコマンドラインオプション */  //@@@ 2003.05.12 MIK
00720     int                 m_nTagsOpt;         /* TAGSオプション(チェック) */  //@@@ 2003.05.12 MIK
00721     //From Here 2005.04.03 MIK キーワード指定タグジャンプ
00722     int                 m_nTagJumpKeywordArrNum;
00723     char                m_szTagJumpKeywordArr[MAX_TAGJUMP_KEYWORD][_MAX_PATH];
00724 //  bool                m_bTagJumpKeywordArrFavorite[MAX_TAGJUMPKEYWORD];   //お気に入り
00725     BOOL                m_bTagJumpICase;
00726     BOOL                m_bTagJumpAnyWhere;
00727     //To Here 2005.04.03 MIK
00728 };
00729
00730
00731
00746 class SAKURA_CORE_API CShareData
00747 {
00748 public:
00749     /*
00750     ||  Singleton風
00751     */
00752     static CShareData* getInstance();
00753
00754 protected:
00755     static CShareData* _instance;
00756     static CMutex g_cEditArrMutex;
00757
00758 public:
00759     /*
00760     ||  Constructors
00761     */
00762     CShareData();
00763     ~CShareData();
00764
00765     /*
00766     ||  Attributes & Operations
00767     */
00768     bool Init(void);    /* CShareDataクラスの初期化処理 */
00769     DLLSHAREDATA* GetShareData(){ return m_pShareData; }        /* 共有データ構造体のアドレスを返す */
00770     int GetDocumentType( const char* pszFilePath );             /* ファイルパスを渡して、ドキュメントタイプ（数値）を取得する */
00771     int GetDocumentTypeExt( const char* pszExt );               /* 拡張子を渡して、ドキュメントタイプ（数値）を取得する */
00772     BOOL AddEditWndList( HWND, int nGroup = 0 );                /* 編集ウィンドウの登録 */  // 2007.06.26 ryoji nGroup引数追加
00773     void DeleteEditWndList( HWND );                             /* 編集ウィンドウリストからの削除 */
00774     void ResetGroupId( void );                                  /* グループをIDリセットする */
00775     EditNode* GetEditNode( HWND hWnd );                         /* 編集ウィンドウ情報を取得する */
00776     int GetGroupId( HWND hWnd );                                /* グループIDを取得する */
00777     bool IsSameGroup( HWND hWnd1, HWND hWnd2 );                 /* 同一グループかどうかを調べる */
00778     bool ReorderTab( HWND hSrcTab, HWND hDstTab );              /* タブ移動に伴うウィンドウの並び替え 2007.07.07 genta */
00779     HWND SeparateGroup( HWND hwndSrc, HWND hwndDst, bool bSrcIsTop, int notifygroups[] );/* タブ分離に伴うウィンドウ処理 2007.07.07 genta */
00780     EditNode* GetEditNodeAt( int nGroup, int nIndex );          /* 指定位置の編集ウィンドウ情報を取得する */
00781     EditNode* GetTopEditNode( HWND hWnd );                      /* 先頭の編集ウィンドウ情報を取得する */
00782     HWND GetTopEditWnd( HWND hWnd );                            /* 先頭の編集ウィンドウを取得する */
00783     bool IsTopEditWnd( HWND hWnd ){ return (GetTopEditWnd( hWnd ) == hWnd); }   /* 先頭の編集ウィンドウかどうかを調べる */
00784
00785     BOOL RequestCloseAllEditor( BOOL bExit, int nGroup );       /* 全編集ウィンドウへ終了要求を出す */  // 2007.02.13 ryoji 「編集の全終了」を示す引数(bExit)を追加 // 2007.06.20 ryoji nGroup引数追加
00786     BOOL IsPathOpened( const char*, HWND* );                    /* 指定ファイルが開かれているか調べる */
00787     BOOL IsPathOpened( const char*, HWND*, int );               /* 指定ファイルが開かれているか調べつつ、多重オープン時の文字コード衝突も確認 */    // 2007.03.16
00788     int GetEditorWindowsNum( int nGroup );                      /* 現在の編集ウィンドウの数を調べる */  // 2007.06.20 ryoji nGroup引数追加
00789     BOOL PostMessageToAllEditors( UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup = 0 ); /* 全編集ウィンドウへメッセージをポストする */  // 2007.06.20 ryoji nGroup引数追加
00790     BOOL SendMessageToAllEditors( UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup = 0 ); /* 全編集ウィンドウへメッセージを送るする */    // 2007.06.20 ryoji nGroup引数追加
00791     int GetOpenedWindowArr( EditNode** , BOOL, BOOL bGSort = FALSE );               /* 現在開いている編集ウィンドウの配列を返す */
00792     static BOOL IsEditWnd( HWND );                              /* 指定ウィンドウが、編集ウィンドウのフレームウィンドウかどうか調べる */
00793     static void SetKeyNameArrVal(
00794         DLLSHAREDATA*, int, short, char*,
00795         short, short, short, short,
00796         short, short, short, short );                                   /* KEYDATA配列にデータをセット */
00797 //  static void SetKeyNameArrVal( DLLSHAREDATA*, int, short, char* );   /* KEYDATA配列にデータをセット */ // 20050818 aroka 未使用なので削除
00798     static LONG MY_RegSetVal(
00799         HKEY hKey,              // handle of key to set value for
00800         LPCTSTR lpValueName,    // address of value to set
00801         CONST BYTE *lpData,     // address of value data
00802         DWORD cbData            // size of value data
00803     );
00804     static LONG MY_RegQuerVal(
00805         HKEY hKey,              // handle of key to set value for
00806         LPCTSTR lpValueName,    // address of value to set
00807         BYTE *lpData,           // address of value data
00808         DWORD cbData            // size of value data
00809     );
00810     void TraceOut( LPCTSTR lpFmt, ...); /* デバッグモニタに出力 */
00811     void SetTraceOutSource( HWND hwnd ){ m_hwndTraceOutSource = hwnd; } /* TraceOut起動元ウィンドウの設定 */
00812     BOOL LoadShareData( void ); /* 共有データのロード */
00813     void SaveShareData( void ); /* 共有データの保存 */
00814     static void GetIniFileNameDirect( LPTSTR pszPrivateIniFile, LPTSTR pszIniFile );    /* 構成設定ファイルからiniファイル名を取得する */   // 2007.09.04 ryoji
00815     void GetIniFileName( LPTSTR pszIniFileName, BOOL bRead = FALSE );   /* iniファイル名の取得 */   // 2007.05.19 ryoji
00816     BOOL IsPrivateSettings( void ){ return m_pShareData->m_IniFolder.m_bWritePrivate; }         /* iniファイルの保存先がユーザ別設定フォルダかどうか */ // 2007.05.25 ryoji
00817     BOOL ShareData_IO_2( bool );    /* 共有データの保存 */
00818     static void IO_ColorSet( CProfile* , const char* , ColorInfo* );    /* 色設定 I/O */ // Feb. 12, 2006 D.S.Koba
00819
00820 //  int         m_nStdToolBarButtons; 2004.03.30 Moca 未使用
00821
00822     //@@@ 2002.2.2 YAZAKI
00823     //  Jun. 14, 2003 genta 引数追加．書式変更
00824     int     GetMacroFilename( int idx, char* pszPath, int nBufLen ); // idxで指定したマクロファイル名（フルパス）を取得する
00825     bool        BeReloadWhenExecuteMacro( int idx );    //  idxで指定したマクロは、実行するたびにファイルを読み込む設定か？
00826     void        AddToSearchKeyArr( const char* pszSearchKey );  //  m_szSEARCHKEYArrにpszSearchKeyを追加する
00827     void        AddToReplaceKeyArr( const char* pszReplaceKey );    //  m_szREPLACEKEYArrにpszReplaceKeyを追加する
00828     void        AddToGrepFileArr( const char* pszGrepFile );        //  m_szGREPFILEArrにpszGrepFileを追加する
00829     void        AddToGrepFolderArr( const char* pszGrepFolder );    //  m_nGREPFOLDERArrNumにpszGrepFolderを追加する
00830
00831     //@@@ 2002.2.3 YAZAKI
00832     bool        ExtWinHelpIsSet( int nType = -1 );  //  タイプがnTypeのときに、外部ヘルプが設定されているか。
00833     char*       GetExtWinHelp( int nType = -1 );    //  タイプがnTypeのときの、外部ヘルプファイル名を取得。
00834     bool        ExtHTMLHelpIsSet( int nType = -1 ); //  タイプがnTypeのときに、外部HTMLヘルプが設定されているか。
00835     char*       GetExtHTMLHelp( int nType = -1 );   //  タイプがnTypeのときの、外部HTMLヘルプファイル名を取得。
00836     bool        HTMLHelpIsSingle( int nType = -1 ); //  タイプがnTypeのときの、外部HTMLヘルプ「ビューアを複数起動しない」がONかを取得。
00837
00838     //@@@ 2002.2.9 YAZAKI
00839     const char* MyGetDateFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen );
00840     const char* MyGetTimeFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen );
00841     const char* MyGetDateFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen, int nDateFormatType, char* szDateFormat );
00842     const char* MyGetTimeFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen, int nTimeFormatType, char* szTimeFormat );
00843
00844     // 2002.11.24 Moca Add
00845 //  LPTSTR GetTransformFileList( LPCTSTR*, LPTSTR*, int );
00846 //  LPTSTR GetTransformFileName( LPCTSTR, LPTSTR, int );
00847     LPTSTR GetTransformFileNameFast( LPCTSTR, LPTSTR, int );
00848     int TransformFileName_MakeCache( void );
00849     static LPCTSTR GetFilePathFormat( LPCTSTR, LPTSTR, int, LPCTSTR, LPCTSTR );
00850     static bool ExpandMetaToFolder( LPCTSTR, LPTSTR, int );
00851
00852     // 2004/06/21 novice タグジャンプ機能追加
00853     void PushTagJump(const TagJump *);
00854     bool PopTagJump(TagJump *);
00855
00856 protected:
00857     /*
00858     ||  実装ヘルパ関数
00859     */
00860     HANDLE          m_hFileMap;
00861     DLLSHAREDATA*   m_pShareData;
00862     HWND            m_hwndTraceOutSource;   // TraceOut()起動元ウィンドウ（いちいち起動元を指定しなくてすむように）
00863
00864 //  long GetModuleDir(char* , long );   /* この実行ファイルのあるディレクトリを返します */
00865     /* MRUとOPENFOLDERリストの存在チェックなど
00866     存在しないファイルやフォルダはMRUやOPENFOLDERリストから削除する
00867      */
00868 //@@@ 2002.01.03 YAZAKI CMRU、CMRUFolderに移動した。
00869 //  void CheckMRUandOPENFOLDERList( void );
00870
00871     // ファイル名簡易表示用キャッシュ
00872     int m_nTransformFileNameCount; // 有効数
00873     TCHAR m_szTransformFileNameFromExp[MAX_TRANSFORM_FILENAME][_MAX_PATH];
00874     int m_nTransformFileNameOrgId[MAX_TRANSFORM_FILENAME];
00875
00876     //  Jan. 30, 2005 genta 初期化関数の分割
00877     void InitKeyword(DLLSHAREDATA*);
00878     void InitKeyAssign(DLLSHAREDATA*);
00879     void InitToolButtons(DLLSHAREDATA*);
00880     void InitTypeConfig(DLLSHAREDATA*);
00881     void InitPopupMenu(DLLSHAREDATA*);
00882
00883     // Feb. 12, 2006 D.S.Koba
00884     void ShareData_IO_Mru( CProfile& );
00885     void ShareData_IO_Keys( CProfile& );
00886     void ShareData_IO_Grep( CProfile& );
00887     void ShareData_IO_Folders( CProfile& );
00888     void ShareData_IO_Cmd( CProfile& );
00889     void ShareData_IO_Nickname( CProfile& );
00890     void ShareData_IO_Common( CProfile& );
00891     void ShareData_IO_Toolbar( CProfile& );
00892     void ShareData_IO_CustMenu( CProfile& );
00893     void ShareData_IO_Font( CProfile& );
00894     void ShareData_IO_KeyBind( CProfile& );
00895     void ShareData_IO_Print( CProfile& );
00896     void ShareData_IO_Types( CProfile& );
00897     void ShareData_IO_KeyWords( CProfile& );
00898     void ShareData_IO_Macro( CProfile& );
00899     void ShareData_IO_Other( CProfile& );
00900
00901     int GetOpenedWindowArrCore( EditNode** , BOOL, BOOL bGSort = FALSE );           /* 現在開いている編集ウィンドウの配列を返す（コア処理部） */
00902 };
00903
00904
00905
00907 #endif /* _CSHAREDATA_H_ */
00908
00909
00910 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CShareData_new.cpp

CShareData_new.cpp

プロセス間共有データのファイルへ／からの入出力 [詳細]

#include "stdafx.h"
#include <imagehlp.h>
#include <stdio.h>
#include <io.h>
#include "CShareData.h"
#include "mymessage.h"
#include "debug.h"
#include "global.h"
#include "CRunningTimer.h"
#include "CProfile.h"
#include "etc_uty.h"
#include "COsVersionInfo.h"
#include "CCommandLine.h"

CShareData_new.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define STR_COLORDATA_HEAD3 " テキストエディタ色設定 Ver3"

説明

プロセス間共有データのファイルへ／からの入出力

作者:
Norio Nakatani
日付:
2005.04.07 D.S.Koba 各セクションの入出力を関数として分離

CShareData_new.cpp で定義されています。

マクロ定義

#define STR_COLORDATA_HEAD3 " テキストエディタ色設定 Ver3"

CShareData_new.cpp の 37 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CShareData_new.cpp ソースファイル

CShareData_new.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2000, genta, jepro
00011     Copyright (C) 2001, genta, Stonee, jepro, MIK, asa-o, YAZAKI, hor
00012     Copyright (C) 2002, YAZAKI, hor, aroka, MIK, genta, Moca
00013     Copyright (C) 2003, MIK, genta, Moca
00014     Copyright (C) 2004, MIK, Moca, D.S.Koba, genta
00015     Copyright (C) 2005, MIK, genta, D.S.Koba, ryoji, aroka, Moca
00016     Copyright (C) 2006, aroka, ryoji, D.S.Koba, fon
00017     Copyright (C) 2007, ryoji, genta, maru
00018
00019     This source code is designed for sakura editor.
00020     Please contact the copyright holder to use this code for other purpose.
00021 */
00022
00023 #include "stdafx.h"
00024 #include <imagehlp.h>
00025 #include <stdio.h>
00026 #include <io.h>
00027 #include "CShareData.h"
00028 #include "mymessage.h"
00029 #include "debug.h"
00030 #include "global.h"
00031 #include "CRunningTimer.h"
00032 #include "CProfile.h"
00033 #include "etc_uty.h"
00034 #include "COsVersionInfo.h"
00035 #include "CCommandLine.h"
00036
00037 #define STR_COLORDATA_HEAD3     " テキストエディタ色設定 Ver3"  //Jan. 15, 2001 Stonee  色設定Ver3ドラフト(設定ファイルのキーを連番→文字列に)  //Feb. 11, 2001 JEPRO 有効にした
00038
00039
00040
00041 //  CShareData_new2.cppと統合
00042 CShareData::CShareData()
00043 {
00044 //  m_pszAppName = GSTR_CSHAREDATA;
00045     m_hFileMap   = NULL;
00046     m_pShareData = NULL;
00047 //@@@ 2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動
00048     m_nTransformFileNameCount = -1;
00049     return;
00050 }
00051
00052 // レジストリは使わない。
00053 // 未使用の２関数を削除 2002/2/3 aroka
00054
00055
00067 void CShareData::GetIniFileNameDirect( LPTSTR pszPrivateIniFile, LPTSTR pszIniFile )
00068 {
00069     TCHAR szPath[_MAX_PATH];
00070     TCHAR szDrive[_MAX_DRIVE];
00071     TCHAR szDir[_MAX_DIR];
00072     TCHAR szFname[_MAX_FNAME];
00073     TCHAR szExt[_MAX_EXT];
00074
00075     ::GetModuleFileName(
00076         ::GetModuleHandle( NULL ),
00077         szPath, sizeof(szPath)
00078     );
00079     _tsplitpath( szPath, szDrive, szDir, szFname, szExt );
00080     _snprintf( pszIniFile, _MAX_PATH - 1, _T("%s%s%s%s"), szDrive, szDir, szFname, _T(".ini") );
00081     pszIniFile[_MAX_PATH - 1] = _T('\0');
00082
00083     // マルチユーザ用のiniファイルパス
00084     //      exeと同じフォルダに置かれたマルチユーザ構成設定ファイル（sakura.exe.ini）の内容
00085     //      に従ってマルチユーザ用のiniファイルパスを決める
00086     pszPrivateIniFile[0] = _T('\0');
00087     if( COsVersionInfo().IsWin2000_or_later() ){
00088         _snprintf( szPath, _MAX_PATH - 1, _T("%s%s%s%s"), szDrive, szDir, szFname, _T(".exe.ini") );
00089         szPath[_MAX_PATH - 1] = _T('\0');
00090         int nEnable = ::GetPrivateProfileInt(_T("Settings"), _T("MultiUser"), 0, szPath );
00091         if( nEnable ){
00092             int nFolder = ::GetPrivateProfileInt(_T("Settings"), _T("UserRootFolder"), 0, szPath );
00093             switch( nFolder ){
00094             case 1:
00095                 nFolder = CSIDL_PROFILE;            // ユーザのルートフォルダ
00096                 break;
00097             case 2:
00098                 nFolder = CSIDL_PERSONAL;           // ユーザのドキュメントフォルダ
00099                 break;
00100             case 3:
00101                 nFolder = CSIDL_DESKTOPDIRECTORY;   // ユーザのデスクトップフォルダ
00102                 break;
00103             default:
00104                 nFolder = CSIDL_APPDATA;            // ユーザのアプリケーションデータフォルダ
00105                 break;
00106             }
00107             ::GetPrivateProfileString(_T("Settings"), _T("UserSubFolder"), _T("sakura"), szDir, _MAX_DIR, szPath );
00108             if( szDir[0] == _T('\0') )
00109                 ::lstrcpy( szDir, _T("sakura") );
00110             if( GetSpecialFolderPath( nFolder, szPath ) ){
00111                 _snprintf( pszPrivateIniFile, _MAX_PATH - 1, _T("%s\\%s\\%s%s"), szPath, szDir, szFname, _T(".ini") );
00112                 pszPrivateIniFile[_MAX_PATH - 1] = _T('\0');
00113             }
00114         }
00115     }
00116     return;
00117 }
00118
00131 void CShareData::GetIniFileName( LPTSTR pszIniFileName, BOOL bRead/*=FALSE*/ )
00132 {
00133     if( !m_pShareData->m_IniFolder.m_bInit ){
00134         m_pShareData->m_IniFolder.m_bInit = true;           // 初期化済フラグ
00135         m_pShareData->m_IniFolder.m_bReadPrivate = false;   // マルチユーザ用iniからの読み出しフラグ
00136         m_pShareData->m_IniFolder.m_bWritePrivate = false;  // マルチユーザ用iniへの書き込みフラグ
00137
00138         GetIniFileNameDirect( m_pShareData->m_IniFolder.m_szPrivateIniFile, m_pShareData->m_IniFolder.m_szIniFile );
00139         if( m_pShareData->m_IniFolder.m_szPrivateIniFile[0] != _T('\0') ){
00140             m_pShareData->m_IniFolder.m_bReadPrivate = true;
00141             m_pShareData->m_IniFolder.m_bWritePrivate = true;
00142             if( CCommandLine::Instance()->IsNoWindow() && CCommandLine::Instance()->IsWriteQuit() )
00143                 m_pShareData->m_IniFolder.m_bWritePrivate = false;
00144
00145             // マルチユーザ用のiniフォルダを作成しておく
00146             if( m_pShareData->m_IniFolder.m_bWritePrivate ){
00147                 TCHAR szPath[_MAX_PATH];
00148                 TCHAR szDrive[_MAX_DRIVE];
00149                 TCHAR szDir[_MAX_DIR];
00150                 _tsplitpath( m_pShareData->m_IniFolder.m_szPrivateIniFile, szDrive, szDir, NULL, NULL );
00151                 _snprintf( szPath, _MAX_PATH - 1, _T("%s\\%s"), szDrive, szDir );
00152                 szPath[_MAX_PATH - 1] = _T('\0');
00153                 ::MakeSureDirectoryPathExists( szPath );
00154             }
00155         }
00156     }
00157
00158     bool bPrivate = bRead? m_pShareData->m_IniFolder.m_bReadPrivate: m_pShareData->m_IniFolder.m_bWritePrivate;
00159     ::lstrcpy( pszIniFileName, bPrivate? m_pShareData->m_IniFolder.m_szPrivateIniFile: m_pShareData->m_IniFolder.m_szIniFile );
00160 }
00161
00170 BOOL CShareData::ShareData_IO_2( bool bRead )
00171 {
00172     MY_RUNNINGTIMER( cRunningTimer, "CShareData::ShareData_IO_2" );
00173
00174     char        szIniFileName[_MAX_PATH + 1];
00175     CProfile    cProfile;
00176
00177     // Feb. 12, 2006 D.S.Koba
00178     if( bRead ){
00179         cProfile.SetReadingMode();
00180     } else {
00181         cProfile.SetWritingMode();
00182     }
00183
00184     GetIniFileName( szIniFileName, bRead ); // 2007.05.19 ryoji iniファイル名を取得する
00185
00186 //  MYTRACE( "Iniファイル処理-1 所要時間(ミリ秒) = %d\n", cRunningTimer.Read() );
00187
00188
00189     if( bRead ){
00190         if( false == cProfile.ReadProfile( szIniFileName ) ){
00191             /* 設定ファイルが存在しない */
00192             return FALSE;
00193         }
00194 #ifdef _DEBUG
00195 //@@@ 2001.12.26 YAZAKI デバッグ版が正常に起動しないため。
00196 //      cProfile.DUMP();
00197 #endif
00198
00199     }
00200 //  MYTRACE( "Iniファイル処理 0 所要時間(ミリ秒) = %d\n", cRunningTimer.Read() );
00201
00202     // Feb. 12, 2006 D.S.Koba
00203     ShareData_IO_Mru( cProfile );
00204     ShareData_IO_Keys( cProfile );
00205     ShareData_IO_Grep( cProfile );
00206     ShareData_IO_Folders( cProfile );
00207     ShareData_IO_Cmd( cProfile );
00208     ShareData_IO_Nickname( cProfile );
00209     ShareData_IO_Common( cProfile );
00210     ShareData_IO_Toolbar( cProfile );
00211     ShareData_IO_CustMenu( cProfile );
00212     ShareData_IO_Font( cProfile );
00213     ShareData_IO_KeyBind( cProfile );
00214     ShareData_IO_Print( cProfile );
00215     ShareData_IO_Types( cProfile );
00216     ShareData_IO_KeyWords( cProfile );
00217     ShareData_IO_Macro( cProfile );
00218     ShareData_IO_Other( cProfile );
00219
00220     if( !bRead ){
00221         cProfile.WriteProfile( szIniFileName, " sakura.ini テキストエディタ設定ファイル" );
00222     }
00223
00224 //  MYTRACE( "Iniファイル処理 8 所要時間(ミリ秒) = %d\n", cRunningTimer.Read() );
00225 //  MYTRACE( "Iniファイル処理 所要時間(ミリ秒) = %d\n", cRunningTimerStart.Read() );
00226
00227     return TRUE;
00228 }
00229
00236 void CShareData::ShareData_IO_Mru( CProfile& cProfile )
00237 {
00238     const char* pszSecName = "MRU";
00239     int         i;
00240     int         nSize;
00241     FileInfo*   pfiWork;
00242     char        szKeyName[64];
00243
00244     cProfile.IOProfileData( pszSecName, "_MRU_Counts", m_pShareData->m_nMRUArrNum );
00245     nSize = m_pShareData->m_nMRUArrNum;
00246     for( i = 0; i < nSize; ++i ){
00247         pfiWork = &m_pShareData->m_fiMRUArr[i];
00248         wsprintf( szKeyName, "MRU[%02d].nViewTopLine", i );
00249         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_nViewTopLine );
00250         wsprintf( szKeyName, "MRU[%02d].nViewLeftCol", i );
00251         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_nViewLeftCol );
00252         wsprintf( szKeyName, "MRU[%02d].nX", i );
00253         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_nX );
00254         wsprintf( szKeyName, "MRU[%02d].nY", i );
00255         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_nY );
00256         wsprintf( szKeyName, "MRU[%02d].nCharCode", i );
00257         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_nCharCode );
00258         wsprintf( szKeyName, "MRU[%02d].szPath", i );
00259         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_szPath, sizeof( pfiWork->m_szPath ));
00260         wsprintf( szKeyName, "MRU[%02d].szMark", i );
00261         cProfile.IOProfileData( pszSecName, szKeyName, pfiWork->m_szMarkLines, sizeof( pfiWork->m_szMarkLines ));
00262         //お気に入り    //@@@ 2003.04.08 MIK
00263         wsprintf( szKeyName, "MRU[%02d].bFavorite", i );
00264         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_bMRUArrFavorite[i] );
00265     }
00266     //@@@ 2001.12.26 YAZAKI 残りのm_fiMRUArrを初期化。
00267     if ( cProfile.IsReadingMode() ){
00268         FileInfo    fiInit;
00269         //  残りをfiInitで初期化しておく。
00270         fiInit.m_nCharCode = 0;
00271         fiInit.m_nViewLeftCol = 0;
00272         fiInit.m_nViewTopLine = 0;
00273         fiInit.m_nX = 0;
00274         fiInit.m_nY = 0;
00275         strcpy( fiInit.m_szPath, "" );
00276         strcpy( fiInit.m_szMarkLines, "" ); // 2002.01.16 hor
00277         for( ; i < MAX_MRU; ++i){
00278             m_pShareData->m_fiMRUArr[i] = fiInit;
00279             m_pShareData->m_bMRUArrFavorite[i] = false; //お気に入り    //@@@ 2003.04.08 MIK
00280         }
00281     }
00282
00283     cProfile.IOProfileData( pszSecName, "_MRUFOLDER_Counts", m_pShareData->m_nOPENFOLDERArrNum );
00284     nSize = m_pShareData->m_nOPENFOLDERArrNum;
00285     for( i = 0; i < nSize; ++i ){
00286         wsprintf( szKeyName, "MRUFOLDER[%02d]", i );
00287         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_szOPENFOLDERArr[i],
00288             sizeof( m_pShareData->m_szOPENFOLDERArr[0] ));
00289         //お気に入り    //@@@ 2003.04.08 MIK
00290         strcat( szKeyName, ".bFavorite" );
00291         cProfile.IOProfileData( pszSecName, szKeyName, m_pShareData->m_bOPENFOLDERArrFavorite[i] );
00292     }
00293     //読み込み時は残りを初期化
00294     if ( cProfile.IsReadingMode() ){
00295         for (; i< MAX_OPENFOLDER; ++i){
00296             // 2005.04.05 D.S.Koba
00297             m_pShareData->m_szOPENFOLDERArr[i][0] = '\0';
00298             m_pShareData->m_bOPENFOLDERArrFavorite[i] = false;  //お気に入り    //@@@ 2003.04.08 MIK
00299         }
00300     }
00301 }
00302
00309 void CShareData::ShareData_IO_Keys( CProfile& cProfile )
00310 {
00311     const char* pszSecName = "Keys";
00312     int     i;
00313     int     nSize;
00314     char    szKeyName[64];
00315
00316     cProfile.IOProfileData( pszSecName, "_SEARCHKEY_Counts", m_pShareData->m_nSEARCHKEYArrNum );
00317     nSize = m_pShareData->m_nSEARCHKEYArrNum;
00318     for( i = 0; i < nSize; ++i ){
00319         wsprintf( szKeyName, "SEARCHKEY[%02d]", i );
00320         cProfile.IOProfileData( pszSecName, szKeyName,
00321             m_pShareData->m_szSEARCHKEYArr[i], sizeof( m_pShareData->m_szSEARCHKEYArr[0] ));
00322     }
00323     //読み込み時は残りを初期化
00324     if( cProfile.IsReadingMode() ){
00325         for(; i < MAX_SEARCHKEY; ++i){
00326             m_pShareData->m_szSEARCHKEYArr[i][0] = '\0';
00327         }
00328     }
00329
00330     cProfile.IOProfileData( pszSecName, "_REPLACEKEY_Counts", m_pShareData->m_nREPLACEKEYArrNum );
00331     nSize = m_pShareData->m_nREPLACEKEYArrNum;
00332     for( i = 0; i < nSize; ++i ){
00333         wsprintf( szKeyName, "REPLACEKEY[%02d]", i );
00334         cProfile.IOProfileData( pszSecName, szKeyName,
00335             m_pShareData->m_szREPLACEKEYArr[i], sizeof( m_pShareData->m_szREPLACEKEYArr[0] ) );
00336     }
00337     //読み込み時は残りを初期化
00338     if( cProfile.IsReadingMode() ){
00339         for(; i < MAX_REPLACEKEY; ++i){
00340             m_pShareData->m_szREPLACEKEYArr[i][0] = '\0';
00341         }
00342     }
00343 }
00344
00351 void CShareData::ShareData_IO_Grep( CProfile& cProfile )
00352 {
00353     const char* pszSecName = "Grep";
00354     int     i;
00355     int     nSize;
00356     char    szKeyName[64];
00357
00358     cProfile.IOProfileData( pszSecName, "_GREPFILE_Counts", m_pShareData->m_nGREPFILEArrNum );
00359     nSize = m_pShareData->m_nGREPFILEArrNum;
00360     for( i = 0; i < nSize; ++i ){
00361         wsprintf( szKeyName, "GREPFILE[%02d]", i );
00362         cProfile.IOProfileData( pszSecName, szKeyName,
00363             m_pShareData->m_szGREPFILEArr[i], sizeof( m_pShareData->m_szGREPFILEArr[0] ));
00364     }
00365     //読み込み時は残りを初期化
00366     if( cProfile.IsReadingMode() ){
00367         for(; i < MAX_GREPFILE; ++i){
00368             m_pShareData->m_szGREPFILEArr[i][0] = '\0';
00369         }
00370     }
00371
00372     cProfile.IOProfileData( pszSecName, "_GREPFOLDER_Counts", m_pShareData->m_nGREPFOLDERArrNum );
00373     nSize = m_pShareData->m_nGREPFOLDERArrNum;
00374     for( i = 0; i < nSize; ++i ){
00375         wsprintf( szKeyName, "GREPFOLDER[%02d]", i );
00376         cProfile.IOProfileData( pszSecName, szKeyName,
00377             m_pShareData->m_szGREPFOLDERArr[i], sizeof( m_pShareData->m_szGREPFOLDERArr[0] ));
00378     }
00379     //読み込み時は残りを初期化
00380     if( cProfile.IsReadingMode() ){
00381         for(; i < MAX_GREPFOLDER; ++i){
00382             m_pShareData->m_szGREPFOLDERArr[i][0] = '\0';
00383         }
00384     }
00385 }
00386
00393 void CShareData::ShareData_IO_Folders( CProfile& cProfile )
00394 {
00395     const char* pszSecName = "Folders";
00396     /* マクロ用フォルダ */
00397     cProfile.IOProfileData( pszSecName, "szMACROFOLDER",
00398         m_pShareData->m_szMACROFOLDER, sizeof( m_pShareData->m_szMACROFOLDER ));
00399     /* 設定インポート用フォルダ */
00400     cProfile.IOProfileData( pszSecName, "szIMPORTFOLDER",
00401         m_pShareData->m_szIMPORTFOLDER, sizeof( m_pShareData->m_szIMPORTFOLDER ));
00402 }
00403
00410 void CShareData::ShareData_IO_Cmd( CProfile& cProfile )
00411 {
00412     const char* pszSecName = "Cmd";
00413     int     i;
00414     char    szKeyName[64];
00415
00416     cProfile.IOProfileData( pszSecName, "nCmdArrNum", m_pShareData->m_nCmdArrNum );
00417     int nSize = m_pShareData->m_nCmdArrNum;
00418     for( i = 0; i < nSize; ++i ){
00419         wsprintf( szKeyName, "szCmdArr[%02d]", i );
00420         cProfile.IOProfileData( pszSecName, szKeyName,
00421             m_pShareData->m_szCmdArr[i], sizeof( m_pShareData->m_szCmdArr[0] ));
00422     }
00423     //読み込み時は残りを初期化
00424     if( cProfile.IsReadingMode() ){
00425         for(; i < MAX_CMDARR; ++i){
00426             m_pShareData->m_szCmdArr[i][0] = '\0';
00427         }
00428     }
00429 }
00430
00437 void CShareData::ShareData_IO_Nickname( CProfile& cProfile )
00438 {
00439     const char* pszSecName = "Nickname";
00440     int     i;
00441     char    szKeyName[64];
00442
00443     cProfile.IOProfileData( pszSecName, "ArrNum", m_pShareData->m_nTransformFileNameArrNum );
00444     int nSize = m_pShareData->m_nTransformFileNameArrNum;
00445     for( i = 0; i < nSize; ++i ){
00446         wsprintf( szKeyName, "From%02d", i );
00447         cProfile.IOProfileData( pszSecName, szKeyName,
00448             m_pShareData->m_szTransformFileNameFrom[i], sizeof( m_pShareData->m_szTransformFileNameFrom[0] ));
00449         wsprintf( szKeyName, "To%02d", i );
00450         cProfile.IOProfileData( pszSecName, szKeyName,
00451             m_pShareData->m_szTransformFileNameTo[i], sizeof( m_pShareData->m_szTransformFileNameTo[0] ));
00452     }
00453     // 読み込み時，残りをNULLで再初期化
00454     if( cProfile.IsReadingMode() ){
00455         for( ; i < MAX_TRANSFORM_FILENAME; i++ ){
00456             m_pShareData->m_szTransformFileNameFrom[i][0] = '\0';
00457             m_pShareData->m_szTransformFileNameTo[i][0]   = '\0';
00458         }
00459     }
00460 }
00461
00468 void CShareData::ShareData_IO_Common( CProfile& cProfile )
00469 {
00470     const char* pszSecName = "Common";
00471     // 2005.04.07 D.S.Koba
00472     Common& common = m_pShareData->m_Common;
00473
00474     cProfile.IOProfileData( pszSecName, "nCaretType"                , common.m_nCaretType );
00475     //  Oct. 2, 2005 genta
00476     //  初期値を挿入モードに固定するため，設定の読み書きをやめる
00477     //cProfile.IOProfileData( pszSecName, "bIsINSMode"              , common.m_bIsINSMode );
00478     cProfile.IOProfileData( pszSecName, "bIsFreeCursorMode"     , common.m_bIsFreeCursorMode );
00479
00480     cProfile.IOProfileData( pszSecName, "bStopsBothEndsWhenSearchWord"  , common.m_bStopsBothEndsWhenSearchWord );
00481     cProfile.IOProfileData( pszSecName, "bStopsBothEndsWhenSearchParagraph" , common.m_bStopsBothEndsWhenSearchParagraph );
00482     //  Oct. 27, 2000 genta
00483     cProfile.IOProfileData( pszSecName, "m_bRestoreCurPosition" , common.m_bRestoreCurPosition );
00484     // 2002.01.16 hor
00485     cProfile.IOProfileData( pszSecName, "m_bRestoreBookmarks"   , common.m_bRestoreBookmarks );
00486     cProfile.IOProfileData( pszSecName, "bAddCRLFWhenCopy"      , common.m_bAddCRLFWhenCopy );
00487     cProfile.IOProfileData( pszSecName, "nRepeatedScrollLineNum"    , common.m_nRepeatedScrollLineNum );
00488     cProfile.IOProfileData( pszSecName, "nRepeatedScroll_Smooth"    , common.m_nRepeatedScroll_Smooth );
00489     cProfile.IOProfileData( pszSecName, "bCloseAllConfirm"      , common.m_bCloseAllConfirm );  /* [すべて閉じる]で他に編集用のウィンドウがあれば確認する */    // 2006.12.25 ryoji
00490     cProfile.IOProfileData( pszSecName, "bExitConfirm"          , common.m_bExitConfirm );
00491     cProfile.IOProfileData( pszSecName, "bSearchRegularExp"     , common.m_bRegularExp );
00492     cProfile.IOProfileData( pszSecName, "bSearchLoHiCase"       , common.m_bLoHiCase );
00493     cProfile.IOProfileData( pszSecName, "bSearchWordOnly"       , common.m_bWordOnly );
00494     cProfile.IOProfileData( pszSecName, "bSearchConsecutiveAll"     , common.m_bConsecutiveAll );   // 2007.01.16 ryoji
00495     cProfile.IOProfileData( pszSecName, "bSearchNOTIFYNOTFOUND" , common.m_bNOTIFYNOTFOUND );
00496     // 2002.01.26 hor
00497     cProfile.IOProfileData( pszSecName, "bSearchAll"                , common.m_bSearchAll );
00498     cProfile.IOProfileData( pszSecName, "bSearchSelectedArea"   , common.m_bSelectedArea );
00499     cProfile.IOProfileData( pszSecName, "bGrepSubFolder"            , common.m_bGrepSubFolder );
00500     cProfile.IOProfileData( pszSecName, "bGrepOutputLine"       , common.m_bGrepOutputLine );
00501     cProfile.IOProfileData( pszSecName, "nGrepOutputStyle"      , common.m_nGrepOutputStyle );
00502     cProfile.IOProfileData( pszSecName, "bGrepDefaultFolder"        , common.m_bGrepDefaultFolder );
00503     // 2002/09/21 Moca 追加
00504     cProfile.IOProfileData( pszSecName, "nGrepCharSet"          , common.m_nGrepCharSet );
00505     cProfile.IOProfileData( pszSecName, "bGrepRealTime"         , common.m_bGrepRealTimeView ); // 2003.06.16 Moca
00506     cProfile.IOProfileData( pszSecName, "bCaretTextForSearch"   , common.m_bCaretTextForSearch );   // 2006.08.23 ryoji カーソル位置の文字列をデフォルトの検索文字列にする
00507
00508     /* 正規表現DLL 2007.08.12 genta */
00509     cProfile.IOProfileData( pszSecName, "szRegexpLib"           , common.m_szRegexpLib, sizeof( common.m_szRegexpLib ) );
00510
00511     cProfile.IOProfileData( pszSecName, "bGTJW_RETURN"          , common.m_bGTJW_RETURN );
00512     cProfile.IOProfileData( pszSecName, "bGTJW_LDBLCLK"         , common.m_bGTJW_LDBLCLK );
00513     cProfile.IOProfileData( pszSecName, "bBackUp"               , common.m_bBackUp );
00514     cProfile.IOProfileData( pszSecName, "bBackUpDialog"         , common.m_bBackUpDialog );
00515     cProfile.IOProfileData( pszSecName, "bBackUpFolder"         , common.m_bBackUpFolder );
00516
00517     if( !cProfile.IsReadingMode() ){
00518         int nDummy;
00519         int nCharChars;
00520         nDummy = strlen( common.m_szBackUpFolder );
00521         /* フォルダの最後が「半角かつ'\\'」でない場合は、付加する */
00522         nCharChars = &common.m_szBackUpFolder[nDummy] - CMemory::MemCharPrev( common.m_szBackUpFolder, nDummy, &common.m_szBackUpFolder[nDummy] );
00523         if( 1 == nCharChars && common.m_szBackUpFolder[nDummy - 1] == '\\' ){
00524         }else{
00525             strcat( common.m_szBackUpFolder, "\\" );
00526         }
00527     }
00528     cProfile.IOProfileData( pszSecName, "szBackUpFolder",
00529         common.m_szBackUpFolder, sizeof( common.m_szBackUpFolder ));
00530     if( cProfile.IsReadingMode() ){
00531         int nDummy;
00532         int nCharChars;
00533         nDummy = strlen( common.m_szBackUpFolder );
00534         /* フォルダの最後が「半角かつ'\\'」でない場合は、付加する */
00535         nCharChars = &common.m_szBackUpFolder[nDummy] - CMemory::MemCharPrev( common.m_szBackUpFolder, nDummy, &common.m_szBackUpFolder[nDummy] );
00536         if( 1 == nCharChars && common.m_szBackUpFolder[nDummy - 1] == '\\' ){
00537         }else{
00538             strcat( common.m_szBackUpFolder, "\\" );
00539         }
00540     }
00541
00542
00543     cProfile.IOProfileData( pszSecName, "nBackUpType"           , common.m_nBackUpType );
00544     cProfile.IOProfileData( pszSecName, "bBackUpType2_Opt1"     , common.m_nBackUpType_Opt1 );
00545     cProfile.IOProfileData( pszSecName, "bBackUpType2_Opt2"     , common.m_nBackUpType_Opt2 );
00546     cProfile.IOProfileData( pszSecName, "bBackUpType2_Opt3"     , common.m_nBackUpType_Opt3 );
00547     cProfile.IOProfileData( pszSecName, "bBackUpType2_Opt4"     , common.m_nBackUpType_Opt4 );
00548     cProfile.IOProfileData( pszSecName, "bBackUpDustBox"            , common.m_bBackUpDustBox );    //@@@ 2001.12.11 add MIK
00549     cProfile.IOProfileData( pszSecName, "bBackUpPathAdvanced"   , common.m_bBackUpPathAdvanced );   /* 20051107 aroka */
00550     cProfile.IOProfileData( pszSecName, "szBackUpPathAdvanced"  ,
00551         common.m_szBackUpPathAdvanced, sizeof( common.m_szBackUpPathAdvanced ));    /* 20051107 aroka */
00552     cProfile.IOProfileData( pszSecName, "nFileShareMode"            , common.m_nFileShareMode );
00553     cProfile.IOProfileData( pszSecName, "szExtHelp",
00554         common.m_szExtHelp, sizeof( common.m_szExtHelp ));
00555     cProfile.IOProfileData( pszSecName, "szExtHtmlHelp",
00556         common.m_szExtHtmlHelp, sizeof( common.m_szExtHtmlHelp ));
00557
00558     cProfile.IOProfileData( pszSecName, "szMigemoDll",
00559         common.m_szMigemoDll, sizeof( common.m_szMigemoDll ));
00560     cProfile.IOProfileData( pszSecName, "szMigemoDict",
00561         common.m_szMigemoDict, sizeof( common.m_szMigemoDict ));
00562
00563     // ai 02/05/23 Add S
00564     {// Keword Help Font
00565         const char* pszForm = "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d";
00566         char        szKeyData[1024];
00567         if( cProfile.IsReadingMode() ){
00568             if( true == cProfile.IOProfileData( pszSecName, "khlf", szKeyData, sizeof( szKeyData )) ){
00569                 sscanf( szKeyData, pszForm,
00570                     &common.m_lf_kh.lfHeight,
00571                     &common.m_lf_kh.lfWidth,
00572                     &common.m_lf_kh.lfEscapement,
00573                     &common.m_lf_kh.lfOrientation,
00574                     &common.m_lf_kh.lfWeight,
00575                     &common.m_lf_kh.lfItalic,
00576                     &common.m_lf_kh.lfUnderline,
00577                     &common.m_lf_kh.lfStrikeOut,
00578                     &common.m_lf_kh.lfCharSet,
00579                     &common.m_lf_kh.lfOutPrecision,
00580                     &common.m_lf_kh.lfClipPrecision,
00581                     &common.m_lf_kh.lfQuality,
00582                     &common.m_lf_kh.lfPitchAndFamily
00583                 );
00584             }
00585         }else{
00586             wsprintf( szKeyData, pszForm,
00587                 common.m_lf_kh.lfHeight,
00588                 common.m_lf_kh.lfWidth,
00589                 common.m_lf_kh.lfEscapement,
00590                 common.m_lf_kh.lfOrientation,
00591                 common.m_lf_kh.lfWeight,
00592                 common.m_lf_kh.lfItalic,
00593                 common.m_lf_kh.lfUnderline,
00594                 common.m_lf_kh.lfStrikeOut,
00595                 common.m_lf_kh.lfCharSet,
00596                 common.m_lf_kh.lfOutPrecision,
00597                 common.m_lf_kh.lfClipPrecision,
00598                 common.m_lf_kh.lfQuality,
00599                 common.m_lf_kh.lfPitchAndFamily
00600             );
00601             cProfile.IOProfileData( pszSecName, "khlf", szKeyData, 0 );
00602         }
00603
00604         cProfile.IOProfileData( pszSecName, "khlfFaceName"      , common.m_lf_kh.lfFaceName, 0 );
00605
00606     }// Keword Help Font
00607     // ai 02/05/23 Add S
00608 //  cProfile.IOProfileData( pszSecName, "bClickKeySearch"       , common.m_bUseCaretKeyWord );  // 2006.03.24 fon sakura起動ごとFALSEとし、初期化しない
00609
00610
00611     cProfile.IOProfileData( pszSecName, "nMRUArrNum_MAX"            , common.m_nMRUArrNum_MAX );
00612     cProfile.IOProfileData( pszSecName, "nOPENFOLDERArrNum_MAX" , common.m_nOPENFOLDERArrNum_MAX );
00613     cProfile.IOProfileData( pszSecName, "bDispTOOLBAR"          , common.m_bDispTOOLBAR );
00614     cProfile.IOProfileData( pszSecName, "bDispSTATUSBAR"            , common.m_bDispSTATUSBAR );
00615     cProfile.IOProfileData( pszSecName, "bDispFUNCKEYWND"       , common.m_bDispFUNCKEYWND );
00616     cProfile.IOProfileData( pszSecName, "nFUNCKEYWND_Place"     , common.m_nFUNCKEYWND_Place );
00617     cProfile.IOProfileData( pszSecName, "nFUNCKEYWND_GroupNum"  , common.m_nFUNCKEYWND_GroupNum );      // 2002/11/04 Moca ファンクションキーのグループボタン数
00618
00619     cProfile.IOProfileData( pszSecName, "bDispTabWnd"           , common.m_bDispTabWnd );   //タブウインドウ    //@@@ 2003.05.31 MIK
00620     cProfile.IOProfileData( pszSecName, "bDispTabWndMultiWin"   , common.m_bDispTabWndMultiWin );   //タブウインドウ    //@@@ 2003.05.31 MIK
00621     cProfile.IOProfileData( pszSecName, "szTabWndCaption"       , common.m_szTabWndCaption      , MAX_CAPTION_CONF_LEN );   //@@@ 2003.06.13 MIK
00622     cProfile.IOProfileData( pszSecName, "bSameTabWidth"         , common.m_bSameTabWidth ); // 2006.01.28 ryoji タブを等幅にする
00623     cProfile.IOProfileData( pszSecName, "bDispTabIcon"          , common.m_bDispTabIcon );  // 2006.01.28 ryoji タブにアイコンを表示する
00624     cProfile.IOProfileData( pszSecName, "bSortTabList"          , common.m_bSortTabList );  // 2006.05.10 ryoji タブ一覧をソートする
00625     cProfile.IOProfileData( pszSecName, "bTab_RetainEmptyWin"   , common.m_bTab_RetainEmptyWin );   // 最後のファイルが閉じられたとき(無題)を残す   // 2007.02.11 genta
00626     cProfile.IOProfileData( pszSecName, "bTab_CloseOneWin"  , common.m_bTab_CloseOneWin );  // タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる // 2007.02.11 genta
00627     cProfile.IOProfileData( pszSecName, "bTab_ListFull"         , common.m_bTab_ListFull ); // タブ一覧をフルパス表示する   // 2007.02.28 ryoji
00628     cProfile.IOProfileData( pszSecName, "bChgWndByWheel"        , common.m_bChgWndByWheel );    // 2006.03.26 ryoji マウスホイールでウィンドウ切り替え
00629
00630     // 2001/06/20 asa-o 分割ウィンドウのスクロールの同期をとる
00631     cProfile.IOProfileData( pszSecName, "bSplitterWndHScroll"   , common.m_bSplitterWndHScroll );
00632     cProfile.IOProfileData( pszSecName, "bSplitterWndVScroll"   , common.m_bSplitterWndVScroll );
00633
00634     cProfile.IOProfileData( pszSecName, "szMidashiKigou"            , common.m_szMidashiKigou, 0 );
00635     cProfile.IOProfileData( pszSecName, "szInyouKigou"          , common.m_szInyouKigou, 0 );
00636
00637     // 2001/06/14 asa-o 補完とキーワードヘルプはタイプ別に移動したので削除：３行
00638     cProfile.IOProfileData( pszSecName, "bUseHokan"             , common.m_bUseHokan );
00639     // 2002/09/21 Moca bGrepKanjiCode_AutoDetect は bGrepCharSetに統合したので削除
00640     // 2001/06/19 asa-o タイプ別に移動したので削除：1行
00641     cProfile.IOProfileData( pszSecName, "bSaveWindowSize"       , common.m_nSaveWindowSize );
00642     cProfile.IOProfileData( pszSecName, "nWinSizeType"          , common.m_nWinSizeType );
00643     cProfile.IOProfileData( pszSecName, "nWinSizeCX"                , common.m_nWinSizeCX );
00644     cProfile.IOProfileData( pszSecName, "nWinSizeCY"                , common.m_nWinSizeCY );
00645     // 2004.03.30 Moca *nWinPos*を追加
00646     cProfile.IOProfileData( pszSecName, "nSaveWindowPos"            , common.m_nSaveWindowPos );
00647     cProfile.IOProfileData( pszSecName, "nWinPosX"              , common.m_nWinPosX );
00648     cProfile.IOProfileData( pszSecName, "nWinPosY"              , common.m_nWinPosY );
00649     cProfile.IOProfileData( pszSecName, "bTaskTrayUse"          , common.m_bUseTaskTray );
00650     cProfile.IOProfileData( pszSecName, "bTaskTrayStay"         , common.m_bStayTaskTray );
00651 //@@@ 2002.01.08 YAZAKI タスクトレイを「使わない」にしても常駐がチェックが残っていると再起動で「使う・常駐」になるバグ修正
00652 #if 0
00653     if( bRead ){
00654         /* タスクトレイに常駐するときは、必ずタスクトレイアイコンを使う */
00655         if( common.m_bStayTaskTray ){
00656             common.m_bUseTaskTray = TRUE;
00657         }
00658     }
00659 #endif
00660     cProfile.IOProfileData( pszSecName, "wTrayMenuHotKeyCode"       , common.m_wTrayMenuHotKeyCode );
00661     cProfile.IOProfileData( pszSecName, "wTrayMenuHotKeyMods"       , common.m_wTrayMenuHotKeyMods );
00662     cProfile.IOProfileData( pszSecName, "bUseOLE_DragDrop"          , common.m_bUseOLE_DragDrop );
00663     cProfile.IOProfileData( pszSecName, "bUseOLE_DropSource"            , common.m_bUseOLE_DropSource );
00664     cProfile.IOProfileData( pszSecName, "bDispExitingDialog"            , common.m_bDispExitingDialog );
00665     cProfile.IOProfileData( pszSecName, "bEnableUnmodifiedOverwrite"    , common.m_bEnableUnmodifiedOverwrite );
00666     cProfile.IOProfileData( pszSecName, "bSelectClickedURL"         , common.m_bSelectClickedURL );
00667     cProfile.IOProfileData( pszSecName, "bGrepExitConfirm"          , common.m_bGrepExitConfirm );/* Grepモードで保存確認するか */
00668 //  cProfile.IOProfileData( pszSecName, "bRulerDisp"                    , common.m_bRulerDisp );/* ルーラー表示 */
00669     cProfile.IOProfileData( pszSecName, "nRulerHeight"              , common.m_nRulerHeight );/* ルーラー高さ */
00670     cProfile.IOProfileData( pszSecName, "nRulerBottomSpace"         , common.m_nRulerBottomSpace );/* ルーラーとテキストの隙間 */
00671     cProfile.IOProfileData( pszSecName, "nRulerType"                    , common.m_nRulerType );/* ルーラーのタイプ */
00672     //  Sep. 18, 2002 genta 追加
00673     cProfile.IOProfileData( pszSecName, "nLineNumberRightSpace"     , common.m_nLineNumRightSpace );/* 行番号の右側の隙間 */
00674     cProfile.IOProfileData( pszSecName, "nVertLineOffset"           , common.m_nVertLineOffset ); // 2005.11.10 Moca
00675     cProfile.IOProfileData( pszSecName, "bCopyAndDisablSelection"   , common.m_bCopyAndDisablSelection );/* コピーしたら選択解除 */
00676     cProfile.IOProfileData( pszSecName, "bHtmlHelpIsSingle"         , common.m_bHtmlHelpIsSingle );/* HtmlHelpビューアはひとつ */
00677     cProfile.IOProfileData( pszSecName, "bCompareAndTileHorz"       , common.m_bCompareAndTileHorz );/* 文書比較後、左右に並べて表示 */ //Oct. 10, 2000 JEPRO チェックボックスをボタン化すればこの行は不要のはず
00678     cProfile.IOProfileData( pszSecName, "bDropFileAndClose"         , common.m_bDropFileAndClose );/* ファイルをドロップしたときは閉じて開く */
00679     cProfile.IOProfileData( pszSecName, "nDropFileNumMax"           , common.m_nDropFileNumMax );/* 一度にドロップ可能なファイル数 */
00680     cProfile.IOProfileData( pszSecName, "bCheckFileTimeStamp"       , common.m_bCheckFileTimeStamp );/* 更新の監視 */
00681     cProfile.IOProfileData( pszSecName, "bNotOverWriteCRLF"         , common.m_bNotOverWriteCRLF );/* 改行は上書きしない */
00682     cProfile.IOProfileData( pszSecName, "bAutoCloseDlgFind"         , common.m_bAutoCloseDlgFind );/* 検索ダイアログを自動的に閉じる */
00683     cProfile.IOProfileData( pszSecName, "bAutoCloseDlgFuncList"     , common.m_bAutoCloseDlgFuncList );/* アウトライン ダイアログを自動的に閉じる */
00684     cProfile.IOProfileData( pszSecName, "bAutoCloseDlgReplace"      , common.m_bAutoCloseDlgReplace );/* 置換 ダイアログを自動的に閉じる */
00685     cProfile.IOProfileData( pszSecName, "bAutoColmnPaste"           , common.m_bAutoColmnPaste );/* 矩形コピーのテキストは常に矩形貼り付け */
00686     cProfile.IOProfileData( pszSecName, "NoCaretMoveByActivation"   , common.m_bNoCaretMoveByActivation );/* マウスクリックにてアクティベートされた時はカーソル位置を移動しない 2007.10.02 nasukoji (add by genta) */
00687     cProfile.IOProfileData( pszSecName, "bScrollBarHorz"                , common.m_bScrollBarHorz );/* 水平スクロールバーを使う */
00688
00689     cProfile.IOProfileData( pszSecName, "bHokanKey_RETURN"          , common.m_bHokanKey_RETURN );/* VK_RETURN 補完決定キーが有効/無効 */
00690     cProfile.IOProfileData( pszSecName, "bHokanKey_TAB"             , common.m_bHokanKey_TAB );/* VK_TAB    補完決定キーが有効/無効 */
00691     cProfile.IOProfileData( pszSecName, "bHokanKey_RIGHT"           , common.m_bHokanKey_RIGHT );/* VK_RIGHT  補完決定キーが有効/無効 */
00692     cProfile.IOProfileData( pszSecName, "bHokanKey_SPACE"           , common.m_bHokanKey_SPACE );/* VK_SPACE  補完決定キーが有効/無効 */
00693
00694     cProfile.IOProfileData( pszSecName, "nDateFormatType"           , common.m_nDateFormatType );/* 日付書式のタイプ */
00695     cProfile.IOProfileData( pszSecName, "szDateFormat"              , common.m_szDateFormat, 0 );//日付書式
00696     cProfile.IOProfileData( pszSecName, "nTimeFormatType"           , common.m_nTimeFormatType );/* 時刻書式のタイプ */
00697     cProfile.IOProfileData( pszSecName, "szTimeFormat"              , common.m_szTimeFormat, 0 );//時刻書式
00698
00699     cProfile.IOProfileData( pszSecName, "bMenuIcon"                 , common.m_bMenuIcon );//メニューにアイコンを表示する
00700     cProfile.IOProfileData( pszSecName, "bAutoMIMEdecode"           , common.m_bAutoMIMEdecode );//ファイル読み込み時にMIMEのdecodeを行うか
00701     cProfile.IOProfileData( pszSecName, "bQueryIfCodeChange"            , common.m_bQueryIfCodeChange );//  Oct. 03, 2004 genta 前回と異なる文字コードのときに問い合わせを行うか
00702     cProfile.IOProfileData( pszSecName, "bAlertIfFileNotExist"      , common.m_bAlertIfFileNotExist );// Oct. 09, 2004 genta 開こうとしたファイルが存在しないとき警告する
00703
00704     cProfile.IOProfileData( pszSecName, "bNoFilterSaveNew"          , common.m_bNoFilterSaveNew );  // 新規から保存時は全ファイル表示   // 2006.11.16 ryoji
00705     cProfile.IOProfileData( pszSecName, "bNoFilterSaveFile"         , common.m_bNoFilterSaveFile ); // 新規以外から保存時は全ファイル表示   // 2006.11.16 ryoji
00706
00707     /* 「開く」ダイアログのサイズと位置 */
00708     const char* pszKeyName = "rcOpenDialog";
00709     const char* pszForm = "%d,%d,%d,%d";
00710     char        szKeyData[1024];
00711     if( cProfile.IsReadingMode() ){
00712         if( true == cProfile.IOProfileData( pszSecName, pszKeyName, szKeyData, sizeof( szKeyData )) ){
00713             sscanf( szKeyData, pszForm,
00714                 &common.m_rcOpenDialog.left,
00715                 &common.m_rcOpenDialog.top,
00716                 &common.m_rcOpenDialog.right,
00717                 &common.m_rcOpenDialog.bottom
00718             );
00719         }
00720     }else{
00721         wsprintf( szKeyData, pszForm,
00722             common.m_rcOpenDialog.left,
00723             common.m_rcOpenDialog.top,
00724             common.m_rcOpenDialog.right,
00725             common.m_rcOpenDialog.bottom
00726         );
00727         cProfile.IOProfileData( pszSecName, pszKeyName, szKeyData, 0 );
00728     }
00729
00730     //2002.02.08 aroka,hor
00731     cProfile.IOProfileData( pszSecName, "bMarkUpBlankLineEnable"    , common.m_bMarkUpBlankLineEnable );
00732     cProfile.IOProfileData( pszSecName, "bFunclistSetFocusOnJump"   , common.m_bFunclistSetFocusOnJump );
00733
00734     //  Apr. 05, 2003 genta ウィンドウキャプションのカスタマイズ
00735     cProfile.IOProfileData( pszSecName, "szWinCaptionActive"
00736         , common.m_szWindowCaptionActive, MAX_CAPTION_CONF_LEN );
00737     cProfile.IOProfileData( pszSecName, "szWinCaptionInactive"
00738         , common.m_szWindowCaptionInactive, MAX_CAPTION_CONF_LEN );
00739
00740     // アウトライン/トピックリスト の位置とサイズを記憶  20060201 aroka
00741     cProfile.IOProfileData( pszSecName, "bRememberOutlineWindowPos", common.m_bRememberOutlineWindowPos);
00742     if( common.m_bRememberOutlineWindowPos ){
00743         cProfile.IOProfileData( pszSecName, "widthOutlineWindow"    , common.m_widthOutlineWindow);
00744         cProfile.IOProfileData( pszSecName, "heightOutlineWindow", common.m_heightOutlineWindow);
00745         cProfile.IOProfileData( pszSecName, "xOutlineWindowPos" , common.m_xOutlineWindowPos);
00746         cProfile.IOProfileData( pszSecName, "yOutlineWindowPos" , common.m_yOutlineWindowPos);
00747     }
00748
00749 }
00750
00758 void CShareData::ShareData_IO_Toolbar( CProfile& cProfile )
00759 {
00760     const char* pszSecName = "Toolbar";
00761     int     i;
00762     char    szKeyName[64];
00763     Common& common = m_pShareData->m_Common;
00764
00765     cProfile.IOProfileData( pszSecName, "nToolBarButtonNum", common.m_nToolBarButtonNum );
00766     cProfile.IOProfileData( pszSecName, "bToolBarIsFlat", common.m_bToolBarIsFlat );
00767     int nSize = common.m_nToolBarButtonNum;
00768     for( i = 0; i < nSize; ++i ){
00769         wsprintf( szKeyName, "nTBB[%03d]", i );
00770         cProfile.IOProfileData( pszSecName, szKeyName, common.m_nToolBarButtonIdxArr[i] );
00771     }
00772     //読み込み時は残りを初期化
00773     if( cProfile.IsReadingMode() ){
00774         for(; i< MAX_TOOLBARBUTTONS; ++i){
00775             common.m_nToolBarButtonIdxArr[i] = 0;
00776         }
00777     }
00778 }
00779
00786 void CShareData::ShareData_IO_CustMenu( CProfile& cProfile )
00787 {
00788     const char* pszSecName = "CustMenu";
00789     int     i, j;
00790     char    szKeyName[64];
00791     Common& common = m_pShareData->m_Common;
00792
00793     for( i = 0; i < MAX_CUSTOM_MENU; ++i ){
00794         wsprintf( szKeyName, "szCMN[%02d]", i );
00795         cProfile.IOProfileData( pszSecName, szKeyName, common.m_szCustMenuNameArr[i], MAX_CUSTOM_MENU_NAME_LEN + 1 );   //  Oct. 15, 2001 genta 最大長指定
00796         wsprintf( szKeyName, "nCMIN[%02d]", i );
00797         cProfile.IOProfileData( pszSecName, szKeyName, common.m_nCustMenuItemNumArr[i] );
00798         int nSize = common.m_nCustMenuItemNumArr[i];
00799         for( j = 0; j < nSize; ++j ){
00800             wsprintf( szKeyName, "nCMIF[%02d][%02d]", i, j );
00801             cProfile.IOProfileData( pszSecName, szKeyName, common.m_nCustMenuItemFuncArr[i][j] );
00802             wsprintf( szKeyName, "nCMIK[%02d][%02d]", i, j );
00803             cProfile.IOProfileData( pszSecName, szKeyName, common.m_nCustMenuItemKeyArr[i][j] );
00804         }
00805     }
00806 }
00807
00814 void CShareData::ShareData_IO_Font( CProfile& cProfile )
00815 {
00816     const char* pszSecName = "Font";
00817     const char* pszForm = "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d";
00818     char        szKeyData[1024];
00819     Common& common = m_pShareData->m_Common;
00820     if( cProfile.IsReadingMode() ){
00821         if( true == cProfile.IOProfileData( pszSecName, "lf", szKeyData, sizeof( szKeyData )) ){
00822             sscanf( szKeyData, pszForm,
00823                 &common.m_lf.lfHeight,
00824                 &common.m_lf.lfWidth,
00825                 &common.m_lf.lfEscapement,
00826                 &common.m_lf.lfOrientation,
00827                 &common.m_lf.lfWeight,
00828                 &common.m_lf.lfItalic,
00829                 &common.m_lf.lfUnderline,
00830                 &common.m_lf.lfStrikeOut,
00831                 &common.m_lf.lfCharSet,
00832                 &common.m_lf.lfOutPrecision,
00833                 &common.m_lf.lfClipPrecision,
00834                 &common.m_lf.lfQuality,
00835                 &common.m_lf.lfPitchAndFamily
00836             );
00837         }
00838     }else{
00839         wsprintf( szKeyData, pszForm,
00840             common.m_lf.lfHeight,
00841             common.m_lf.lfWidth,
00842             common.m_lf.lfEscapement,
00843             common.m_lf.lfOrientation,
00844             common.m_lf.lfWeight,
00845             common.m_lf.lfItalic,
00846             common.m_lf.lfUnderline,
00847             common.m_lf.lfStrikeOut,
00848             common.m_lf.lfCharSet,
00849             common.m_lf.lfOutPrecision,
00850             common.m_lf.lfClipPrecision,
00851             common.m_lf.lfQuality,
00852             common.m_lf.lfPitchAndFamily
00853         );
00854         cProfile.IOProfileData( pszSecName, "lf", szKeyData, 0 );
00855     }
00856
00857     cProfile.IOProfileData( pszSecName, "lfFaceName",
00858         common.m_lf.lfFaceName, sizeof( common.m_lf.lfFaceName ));
00859
00860     cProfile.IOProfileData( pszSecName, "bFontIs_FIXED_PITCH", common.m_bFontIs_FIXED_PITCH );
00861 }
00862
00869 void CShareData::ShareData_IO_KeyBind( CProfile& cProfile )
00870 {
00871     const char* pszSecName = "KeyBind";
00872     int     i;
00873     char    szKeyName[64];
00874     char    szKeyData[1024];
00875     int     nSize = m_pShareData->m_nKeyNameArrNum;
00876     for( i = 0; i < nSize; ++i ){
00877         // 2005.04.07 D.S.Koba
00878         KEYDATA& keydata = m_pShareData->m_pKeyNameArr[i];
00879         strcpy( szKeyName, keydata.m_szKeyName );
00880
00881         if( cProfile.IsReadingMode() ){
00882             if( true == cProfile.IOProfileData( pszSecName, szKeyName,
00883                 szKeyData, sizeof( szKeyData )) ){
00884                 sscanf( szKeyData, "%d,%d,%d,%d,%d,%d,%d,%d",
00885                     &keydata.m_nFuncCodeArr[0],
00886                     &keydata.m_nFuncCodeArr[1],
00887                     &keydata.m_nFuncCodeArr[2],
00888                     &keydata.m_nFuncCodeArr[3],
00889                     &keydata.m_nFuncCodeArr[4],
00890                     &keydata.m_nFuncCodeArr[5],
00891                     &keydata.m_nFuncCodeArr[6],
00892                     &keydata.m_nFuncCodeArr[7]
00893                  );
00894             }
00895         }else{
00896             wsprintf( szKeyData, "%d,%d,%d,%d,%d,%d,%d,%d",
00897                 keydata.m_nFuncCodeArr[0],
00898                 keydata.m_nFuncCodeArr[1],
00899                 keydata.m_nFuncCodeArr[2],
00900                 keydata.m_nFuncCodeArr[3],
00901                 keydata.m_nFuncCodeArr[4],
00902                 keydata.m_nFuncCodeArr[5],
00903                 keydata.m_nFuncCodeArr[6],
00904                 keydata.m_nFuncCodeArr[7]
00905             );
00906             cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, 0 );
00907         }
00908     }
00909 }
00910
00917 void CShareData::ShareData_IO_Print( CProfile& cProfile )
00918 {
00919     const char* pszSecName = "Print";
00920     int     i, j;
00921     char    szKeyName[64];
00922     char    szKeyData[1024];
00923     for( i = 0; i < MAX_PRINTSETTINGARR; ++i ){
00924         // 2005.04.07 D.S.Koba
00925         PRINTSETTING& printsetting = m_pShareData->m_PrintSettingArr[i];
00926         wsprintf( szKeyName, "PS[%02d].nInts", i );
00927         static const char* pszForm = "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d";
00928         if( cProfile.IsReadingMode() ){
00929             if( true == cProfile.IOProfileData( pszSecName, szKeyName,
00930                 szKeyData, sizeof( szKeyData ) ) ){
00931                 sscanf( szKeyData, pszForm,
00932                     &printsetting.m_nPrintFontWidth     ,
00933                     &printsetting.m_nPrintFontHeight        ,
00934                     &printsetting.m_nPrintDansuu            ,
00935                     &printsetting.m_nPrintDanSpace      ,
00936                     &printsetting.m_nPrintLineSpacing       ,
00937                     &printsetting.m_nPrintMarginTY      ,
00938                     &printsetting.m_nPrintMarginBY      ,
00939                     &printsetting.m_nPrintMarginLX      ,
00940                     &printsetting.m_nPrintMarginRX      ,
00941                     &printsetting.m_nPrintPaperOrientation,
00942                     &printsetting.m_nPrintPaperSize     ,
00943                     &printsetting.m_bPrintWordWrap      ,
00944                     &printsetting.m_bPrintLineNumber        ,
00945                     &printsetting.m_bHeaderUse[0]           ,
00946                     &printsetting.m_bHeaderUse[1]           ,
00947                     &printsetting.m_bHeaderUse[2]           ,
00948                     &printsetting.m_bFooterUse[0]           ,
00949                     &printsetting.m_bFooterUse[1]           ,
00950                     &printsetting.m_bFooterUse[2]
00951                  );
00952             }
00953         }else{
00954             wsprintf( szKeyData, pszForm,
00955                 printsetting.m_nPrintFontWidth      ,
00956                 printsetting.m_nPrintFontHeight     ,
00957                 printsetting.m_nPrintDansuu         ,
00958                 printsetting.m_nPrintDanSpace           ,
00959                 printsetting.m_nPrintLineSpacing        ,
00960                 printsetting.m_nPrintMarginTY           ,
00961                 printsetting.m_nPrintMarginBY           ,
00962                 printsetting.m_nPrintMarginLX           ,
00963                 printsetting.m_nPrintMarginRX           ,
00964                 printsetting.m_nPrintPaperOrientation   ,
00965                 printsetting.m_nPrintPaperSize      ,
00966                 printsetting.m_bPrintWordWrap           ,
00967                 printsetting.m_bPrintLineNumber     ,
00968                 printsetting.m_bHeaderUse[0]            ,
00969                 printsetting.m_bHeaderUse[1]            ,
00970                 printsetting.m_bHeaderUse[2]            ,
00971                 printsetting.m_bFooterUse[0]            ,
00972                 printsetting.m_bFooterUse[1]            ,
00973                 printsetting.m_bFooterUse[2]
00974             );
00975             cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, 0 );
00976         }
00977
00978         wsprintf( szKeyName, "PS[%02d].szSName" , i );
00979         cProfile.IOProfileData( pszSecName, szKeyName,
00980             printsetting.m_szPrintSettingName   ,
00981             sizeof( m_pShareData->m_PrintSettingArr[0].m_szPrintSettingName ));
00982         wsprintf( szKeyName, "PS[%02d].szFF"    , i );
00983         cProfile.IOProfileData( pszSecName, szKeyName,
00984             printsetting.m_szPrintFontFaceHan   ,
00985             sizeof( m_pShareData->m_PrintSettingArr[0].m_szPrintFontFaceHan ));
00986         wsprintf( szKeyName, "PS[%02d].szFFZ"   , i );
00987         cProfile.IOProfileData( pszSecName, szKeyName,
00988             printsetting.m_szPrintFontFaceZen   ,
00989             sizeof( m_pShareData->m_PrintSettingArr[0].m_szPrintFontFaceZen ));
00990         for( j = 0; j < 3; ++j ){
00991             wsprintf( szKeyName, "PS[%02d].szHF[%d]" , i, j );
00992             cProfile.IOProfileData( pszSecName, szKeyName,
00993                 printsetting.m_szHeaderForm[j],
00994                 sizeof( m_pShareData->m_PrintSettingArr[0].m_szHeaderForm [0] ));
00995             wsprintf( szKeyName, "PS[%02d].szFTF[%d]", i, j );
00996             cProfile.IOProfileData( pszSecName, szKeyName,
00997                 printsetting.m_szFooterForm[j],
00998                 sizeof( m_pShareData->m_PrintSettingArr[0].m_szFooterForm[0] ));
00999         }
01000         wsprintf( szKeyName, "PS[%02d].szDriver", i );
01001         cProfile.IOProfileData( pszSecName, szKeyName,
01002             printsetting.m_mdmDevMode.m_szPrinterDriverName,
01003             sizeof( m_pShareData->m_PrintSettingArr[0].m_mdmDevMode.m_szPrinterDriverName ));
01004         wsprintf( szKeyName, "PS[%02d].szDevice", i );
01005         cProfile.IOProfileData( pszSecName, szKeyName,
01006             printsetting.m_mdmDevMode.m_szPrinterDeviceName,
01007             sizeof( m_pShareData->m_PrintSettingArr[0].m_mdmDevMode.m_szPrinterDeviceName ));
01008         wsprintf( szKeyName, "PS[%02d].szOutput", i );
01009         cProfile.IOProfileData( pszSecName, szKeyName,
01010             printsetting.m_mdmDevMode.m_szPrinterOutputName,
01011             sizeof( printsetting.m_mdmDevMode.m_szPrinterOutputName ));
01012
01013         // 2002.02.16 hor とりあえず旧設定を変換しとく
01014         if(0==strcmp(printsetting.m_szHeaderForm[0],"&f") &&
01015            0==strcmp(printsetting.m_szFooterForm[0],"&C- &P -")
01016         ){
01017             strcpy( printsetting.m_szHeaderForm[0], "$f" );
01018             strcpy( printsetting.m_szFooterForm[0], "" );
01019             strcpy( printsetting.m_szFooterForm[1], "- $p -" );
01020         }
01021
01022         //禁則  //@@@ 2002.04.09 MIK
01023         wsprintf( szKeyName, "PS[%02d].bKinsokuHead", i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuHead );
01024         wsprintf( szKeyName, "PS[%02d].bKinsokuTail", i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuTail );
01025         wsprintf( szKeyName, "PS[%02d].bKinsokuRet",  i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuRet );    //@@@ 2002.04.13 MIK
01026         wsprintf( szKeyName, "PS[%02d].bKinsokuKuto", i ); cProfile.IOProfileData( pszSecName, szKeyName, printsetting.m_bPrintKinsokuKuto );   //@@@ 2002.04.17 MIK
01027     }
01028 }
01029
01036 void CShareData::ShareData_IO_Types( CProfile& cProfile )
01037 {
01038     const char* pszSecName;
01039     int     i, j;
01040     char    szKey[256];
01041     char    szKeyName[64];
01042     char    szKeyData[1024];
01043
01044     for( i = 0; i < MAX_TYPES; ++i ){
01045         // 2005.04.07 D.S.Koba
01046         Types& types = m_pShareData->m_Types[i];
01047         wsprintf( szKey, "Types(%d)", i );
01048         pszSecName = szKey;
01049         static const char* pszForm = "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d";    //MIK
01050         strcpy( szKeyName, "nInts" );
01051         if( cProfile.IsReadingMode() ){
01052             if( true == cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, sizeof( szKeyData )) ){
01053                 sscanf( szKeyData, pszForm,
01054                     &types.m_nIdx,
01055                     &types.m_nMaxLineSize,
01056                     &types.m_nColmSpace,
01057                     &types.m_nTabSpace,
01058                     &types.m_nKeyWordSetIdx[0],
01059                     &types.m_nKeyWordSetIdx[1], //MIK
01060                     &types.m_nStringType,
01061                     &types.m_bLineNumIsCRLF,
01062                     &types.m_nLineTermType,
01063                     &types.m_bWordWrap,
01064                     &types.m_nCurrentPrintSetting
01065                  );
01066             }
01067             // 折り返し幅の最小値は10。少なくとも４ないとハングアップする。 // 20050818 aroka
01068             if( types.m_nMaxLineSize < MINLINESIZE ){
01069                 types.m_nMaxLineSize = MINLINESIZE;
01070             }
01071         }else{
01072             wsprintf( szKeyData, pszForm,
01073                 types.m_nIdx,
01074                 types.m_nMaxLineSize,
01075                 types.m_nColmSpace,
01076                 types.m_nTabSpace,
01077                 types.m_nKeyWordSetIdx[0],
01078                 types.m_nKeyWordSetIdx[1],  //MIK
01079                 types.m_nStringType,
01080                 types.m_bLineNumIsCRLF,
01081                 types.m_nLineTermType,
01082                 types.m_bWordWrap,
01083                 types.m_nCurrentPrintSetting
01084             );
01085             cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, 0 );
01086         }
01087         // 2005.01.13 MIK Keywordset 3-10
01088         cProfile.IOProfileData( pszSecName, "nKeywordSelect3",  types.m_nKeyWordSetIdx[2] );
01089         cProfile.IOProfileData( pszSecName, "nKeywordSelect4",  types.m_nKeyWordSetIdx[3] );
01090         cProfile.IOProfileData( pszSecName, "nKeywordSelect5",  types.m_nKeyWordSetIdx[4] );
01091         cProfile.IOProfileData( pszSecName, "nKeywordSelect6",  types.m_nKeyWordSetIdx[5] );
01092         cProfile.IOProfileData( pszSecName, "nKeywordSelect7",  types.m_nKeyWordSetIdx[6] );
01093         cProfile.IOProfileData( pszSecName, "nKeywordSelect8",  types.m_nKeyWordSetIdx[7] );
01094         cProfile.IOProfileData( pszSecName, "nKeywordSelect9",  types.m_nKeyWordSetIdx[8] );
01095         cProfile.IOProfileData( pszSecName, "nKeywordSelect10", types.m_nKeyWordSetIdx[9] );
01096
01097         /* 行間のすきま */
01098         if( !cProfile.IsReadingMode() ){
01099             if( types.m_nLineSpace < /* 1 */ 0 ){
01100                 types.m_nLineSpace = /* 1 */ 0;
01101             }
01102             if( types.m_nLineSpace > LINESPACE_MAX ){ // Feb. 18, 2003 genta 最大値の定数化
01103                 types.m_nLineSpace = LINESPACE_MAX;
01104             }
01105         }
01106         cProfile.IOProfileData( pszSecName, "nLineSpace", types.m_nLineSpace );
01107         if( cProfile.IsReadingMode() ){
01108             if( types.m_nLineSpace < /* 1 */ 0 ){
01109                 types.m_nLineSpace = /* 1 */ 0;
01110             }
01111             if( types.m_nLineSpace > 16 ){
01112                 types.m_nLineSpace = 16;
01113             }
01114         }
01115
01116
01117         cProfile.IOProfileData( pszSecName, "szTypeName",
01118             types.m_szTypeName,
01119             sizeof( m_pShareData->m_Types[0].m_szTypeName ));
01120         cProfile.IOProfileData( pszSecName, "szTypeExts",
01121             types.m_szTypeExts,
01122             sizeof( m_pShareData->m_Types[0].m_szTypeExts ));
01123 //#ifdef COMPILE_TAB_VIEW  //@@@ 2001.03.16 by MIK
01124         cProfile.IOProfileData( pszSecName, "szTabViewString",
01125         /*&*/types.m_szTabViewString,
01126         sizeof( types.m_szTabViewString ));
01127 //#endif
01128         cProfile.IOProfileData( pszSecName, "bTabArrow"         , types.m_bTabArrow );  //@@@ 2003.03.26 MIK
01129         cProfile.IOProfileData( pszSecName, "bInsSpace"         , types.m_bInsSpace );  // 2001.12.03 hor
01130
01131         // From Here Sep. 28, 2002 genta / YAZAKI
01132         if( cProfile.IsReadingMode() ){
01133             //  Block Comment
01134             char buffer[2][ BLOCKCOMMENT_BUFFERSIZE ];
01135             //  2004.10.02 Moca 対になるコメント設定がともに読み込まれたときだけ有効な設定と見なす．
01136             //  ブロックコメントの始まりと終わり．行コメントの記号と桁位置
01137             bool bRet1, bRet2;
01138             buffer[0][0] = buffer[1][0] = '\0';
01139             bRet1 = cProfile.IOProfileData( pszSecName, "szBlockCommentFrom"    ,
01140                 buffer[0], BLOCKCOMMENT_BUFFERSIZE );
01141             bRet2 = cProfile.IOProfileData( pszSecName, "szBlockCommentTo"  ,
01142                 buffer[1], BLOCKCOMMENT_BUFFERSIZE );
01143             if( bRet1 && bRet2 ) types.m_cBlockComment.CopyTo( 0, buffer[0], buffer[1] );
01144
01145             //@@@ 2001.03.10 by MIK
01146             buffer[0][0] = buffer[1][0] = '\0';
01147             bRet1 = cProfile.IOProfileData( pszSecName, "szBlockCommentFrom2",
01148                 buffer[0], BLOCKCOMMENT_BUFFERSIZE );
01149             bRet2 = cProfile.IOProfileData( pszSecName, "szBlockCommentTo2" ,
01150                 buffer[1], BLOCKCOMMENT_BUFFERSIZE );
01151             if( bRet1 && bRet2 ) types.m_cBlockComment.CopyTo( 1, buffer[0], buffer[1] );
01152
01153             //  Line Comment
01154             char lbuf[ COMMENT_DELIMITER_BUFFERSIZE ];
01155             int  pos;
01156
01157             lbuf[0] = '\0'; pos = -1;
01158             bRet1 = cProfile.IOProfileData( pszSecName, "szLineComment"     ,
01159                 lbuf, COMMENT_DELIMITER_BUFFERSIZE );
01160             bRet2 = cProfile.IOProfileData( pszSecName, "nLineCommentColumn"    , pos );
01161             if( bRet1 && bRet2 ) types.m_cLineComment.CopyTo( 0, lbuf, pos );
01162
01163             lbuf[0] = '\0'; pos = -1;
01164             bRet1 = cProfile.IOProfileData( pszSecName, "szLineComment2"        ,
01165                 lbuf, COMMENT_DELIMITER_BUFFERSIZE );
01166             bRet2 = cProfile.IOProfileData( pszSecName, "nLineCommentColumn2", pos );
01167             if( bRet1 && bRet2 ) types.m_cLineComment.CopyTo( 1, lbuf, pos );
01168
01169             lbuf[0] = '\0'; pos = -1;
01170             bRet1 = cProfile.IOProfileData( pszSecName, "szLineComment3"        ,
01171                 lbuf, COMMENT_DELIMITER_BUFFERSIZE );   //Jun. 01, 2001 JEPRO 追加
01172             bRet2 = cProfile.IOProfileData( pszSecName, "nLineCommentColumn3", pos );   //Jun. 01, 2001 JEPRO 追加
01173             if( bRet1 && bRet2 ) types.m_cLineComment.CopyTo( 2, lbuf, pos );
01174         }
01175         else { // write
01176             //  Block Comment
01177             cProfile.IOProfileData( pszSecName, "szBlockCommentFrom"    ,
01178                 const_cast<char*>(types.m_cBlockComment.getBlockCommentFrom( 0 )), 0 );
01179             cProfile.IOProfileData( pszSecName, "szBlockCommentTo"  ,
01180                 const_cast<char*>(types.m_cBlockComment.getBlockCommentTo( 0 )), 0 );
01181
01182             //@@@ 2001.03.10 by MIK
01183             cProfile.IOProfileData( pszSecName, "szBlockCommentFrom2",
01184                 const_cast<char*>(types.m_cBlockComment.getBlockCommentFrom( 1 )), 0 );
01185             cProfile.IOProfileData( pszSecName, "szBlockCommentTo2" ,
01186                 const_cast<char*>(types.m_cBlockComment.getBlockCommentTo(1)), 0 );
01187
01188             //  Line Comment
01189         cProfile.IOProfileData( pszSecName, "szLineComment"     ,
01190             const_cast<char*>(types.m_cLineComment.getLineComment( 0 )), 0 );
01191         cProfile.IOProfileData( pszSecName, "szLineComment2"        ,
01192             const_cast<char*>(types.m_cLineComment.getLineComment( 1 )), 0 );
01193         cProfile.IOProfileData( pszSecName, "szLineComment3"        ,
01194             const_cast<char*>(types.m_cLineComment.getLineComment( 2 )), 0 );   //Jun. 01, 2001 JEPRO 追加
01195
01196         //  From here May 12, 2001 genta
01197         int pos;
01198         pos = types.m_cLineComment.getLineCommentPos( 0 );
01199         cProfile.IOProfileData( pszSecName, "nLineCommentColumn"    , pos );
01200         pos = types.m_cLineComment.getLineCommentPos( 1 );
01201         cProfile.IOProfileData( pszSecName, "nLineCommentColumn2", pos );
01202         pos = types.m_cLineComment.getLineCommentPos( 2 );
01203         cProfile.IOProfileData( pszSecName, "nLineCommentColumn3", pos );   //Jun. 01, 2001 JEPRO 追加
01204         //  To here May 12, 2001 genta
01205
01206         }
01207         // To Here Sep. 28, 2002 genta / YAZAKI
01208
01209         cProfile.IOProfileData( pszSecName, "szIndentChars"     ,
01210             types.m_szIndentChars,
01211             sizeof( m_pShareData->m_Types[0].m_szIndentChars ));
01212         cProfile.IOProfileData( pszSecName, "cLineTermChar"     , types.m_cLineTermChar );
01213
01214         cProfile.IOProfileData( pszSecName, "nDefaultOutline"   , types.m_nDefaultOutline );/* アウトライン解析方法 */
01215         cProfile.IOProfileData( pszSecName, "szOutlineRuleFilename" ,
01216             types.m_szOutlineRuleFilename,
01217             sizeof( m_pShareData->m_Types[0].m_szOutlineRuleFilename ));/* アウトライン解析ルールファイル */
01218         cProfile.IOProfileData( pszSecName, "nSmartIndent"      , types.m_nSmartIndent );/* スマートインデント種別 */
01219         //  Nov. 20, 2000 genta
01220         cProfile.IOProfileData( pszSecName, "nImeState"         , types.m_nImeState );  //  IME制御
01221
01222         //  2001/06/14 Start By asa-o: タイプ別の補完ファイル
01223         //  Oct. 5, 2002 genta sizeof()で誤ってポインタのサイズを取得していたのを修正
01224         cProfile.IOProfileData( pszSecName, "szHokanFile"       ,
01225             types.m_szHokanFile,
01226             sizeof( m_pShareData->m_Types[0].m_szHokanFile ));      //  補完ファイル
01227         //  2001/06/14 End
01228
01229         //  2001/06/19 asa-o
01230         cProfile.IOProfileData( pszSecName, "bHokanLoHiCase"        , types.m_bHokanLoHiCase );
01231
01232         //  2003.06.23 Moca ファイル内からの入力補完機能
01233         cProfile.IOProfileData( pszSecName, "bUseHokanByFile"       , types.m_bUseHokanByFile );
01234
01235         //@@@ 2002.2.4 YAZAKI
01236         cProfile.IOProfileData( pszSecName, "szExtHelp"         ,
01237             types.m_szExtHelp,
01238             sizeof( m_pShareData->m_Types[0].m_szExtHelp ));
01239
01240         cProfile.IOProfileData( pszSecName, "szExtHtmlHelp"     ,
01241             types.m_szExtHtmlHelp,
01242             sizeof( types.m_szExtHtmlHelp ));
01243         cProfile.IOProfileData( pszSecName, "bHtmlHelpIsSingle" , types.m_bHokanLoHiCase );
01244
01245         cProfile.IOProfileData( pszSecName, "bAutoIndent"           , types.m_bAutoIndent );
01246         cProfile.IOProfileData( pszSecName, "bAutoIndent_ZENSPACE"  , types.m_bAutoIndent_ZENSPACE );
01247         cProfile.IOProfileData( pszSecName, "bRTrimPrevLine"            , types.m_bRTrimPrevLine );         // 2005.10.08 ryoji
01248         cProfile.IOProfileData( pszSecName, "nIndentLayout"         , types.m_nIndentLayout );
01249
01250         /* 色設定 I/O */
01251         IO_ColorSet( &cProfile, pszSecName, types.m_ColorInfoArr  );
01252
01253         // 2005.11.08 Moca 指定桁縦線
01254         for(j = 0; j < MAX_VERTLINES; j++ ){
01255             wsprintf( szKeyName, "nVertLineIdx%d", j + 1 );
01256             cProfile.IOProfileData( pszSecName, szKeyName, types.m_nVertLineIdx[j] );
01257             if( types.m_nVertLineIdx[j] == 0 ){
01258                 break;
01259             }
01260         }
01261
01262 //@@@ 2001.11.17 add start MIK
01263         {   //正規表現キーワード
01264             char    *p;
01265             cProfile.IOProfileData( pszSecName, "bUseRegexKeyword", types.m_bUseRegexKeyword );/* 正規表現キーワード使用するか？ */
01266             for(j = 0; j < 100; j++)
01267             {
01268                 wsprintf( szKeyName, "RxKey[%03d]", j );
01269                 if( cProfile.IsReadingMode() )
01270                 {
01271                     types.m_RegexKeywordArr[j].m_szKeyword[0] = '\0';
01272                     types.m_RegexKeywordArr[j].m_nColorIndex = COLORIDX_REGEX1;
01273                     if( true == cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, sizeof( szKeyData )) )
01274                     {
01275                         p = strchr(szKeyData, ',');
01276                         if( p )
01277                         {
01278                             *p = '\0';
01279                             types.m_RegexKeywordArr[j].m_nColorIndex = GetColorIndexByName(szKeyData);  //@@@ 2002.04.30
01280                             if( types.m_RegexKeywordArr[j].m_nColorIndex == -1 )    //名前でない
01281                                 types.m_RegexKeywordArr[j].m_nColorIndex = atoi(szKeyData);
01282                             p++;
01283                             strcpy(types.m_RegexKeywordArr[j].m_szKeyword, p);
01284                             if( types.m_RegexKeywordArr[j].m_nColorIndex < 0
01285                              || types.m_RegexKeywordArr[j].m_nColorIndex >= COLORIDX_LAST )
01286                             {
01287                                 types.m_RegexKeywordArr[j].m_nColorIndex = COLORIDX_REGEX1;
01288                             }
01289                         }
01290                     }
01291                 }
01292                 else
01293                 // 2002.02.08 hor 未定義値を無視
01294                 if(lstrlen(types.m_RegexKeywordArr[j].m_szKeyword))
01295                 {
01296                     //wsprintf( szKeyData, "%d,%s",
01297                     //  types.m_RegexKeywordArr[j].m_nColorIndex,
01298                     //  types.m_RegexKeywordArr[j].m_szKeyword);
01299                     wsprintf( szKeyData, "%s,%s",
01300                         GetColorNameByIndex( types.m_RegexKeywordArr[j].m_nColorIndex ),
01301                         types.m_RegexKeywordArr[j].m_szKeyword);
01302                     cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, 0 );
01303                 }
01304             }
01305         }
01306 //@@@ 2001.11.17 add end MIK
01307
01308         /* 禁則 */
01309         cProfile.IOProfileData( pszSecName, "bKinsokuHead"  , types.m_bKinsokuHead );
01310         cProfile.IOProfileData( pszSecName, "bKinsokuTail"  , types.m_bKinsokuTail );
01311         cProfile.IOProfileData( pszSecName, "bKinsokuRet"   , types.m_bKinsokuRet );    //@@@ 2002.04.13 MIK
01312         cProfile.IOProfileData( pszSecName, "bKinsokuKuto"  , types.m_bKinsokuKuto );   //@@@ 2002.04.17 MIK
01313         cProfile.IOProfileData( pszSecName, "szKinsokuHead" ,
01314             types.m_szKinsokuHead,
01315             sizeof( m_pShareData->m_Types[0].m_szKinsokuHead ));
01316         cProfile.IOProfileData( pszSecName, "szKinsokuTail" ,
01317             types.m_szKinsokuTail,
01318             sizeof( m_pShareData->m_Types[0].m_szKinsokuTail ));
01319         cProfile.IOProfileData( pszSecName, "bUseDocumentIcon"  , types.m_bUseDocumentIcon );   // Sep. 19 ,2002 genta 変数名誤り修正
01320
01321 //@@@ 2006.04.10 fon ADD-start
01322         {   /* キーワード辞書 */
01323             static const char* pszForm = "%d,%s,%s";
01324             char    *pH, *pT;   /* <pH>keyword<pT> */
01325             cProfile.IOProfileData( pszSecName, "bUseKeyWordHelp", types.m_bUseKeyWordHelp );   /* キーワード辞書選択を使用するか？ */
01326 //          cProfile.IOProfileData( pszSecName, "nKeyHelpNum", types.m_nKeyHelpNum );               /* 登録辞書数 */
01327             cProfile.IOProfileData( pszSecName, "bUseKeyHelpAllSearch", types.m_bUseKeyHelpAllSearch ); /* ヒットした次の辞書も検索(&A) */
01328             cProfile.IOProfileData( pszSecName, "bUseKeyHelpKeyDisp", types.m_bUseKeyHelpKeyDisp );     /* 1行目にキーワードも表示する(&W) */
01329             cProfile.IOProfileData( pszSecName, "bUseKeyHelpPrefix", types.m_bUseKeyHelpPrefix );       /* 選択範囲で前方一致検索(&P) */
01330             for(j = 0; j < MAX_KEYHELP_FILE; j++){
01331                 wsprintf( szKeyName, "KDct[%02d]", j );
01332                 /* 読み出し */
01333                 if( cProfile.IsReadingMode() ){
01334                     types.m_KeyHelpArr[j].m_nUse = 0;
01335                     types.m_KeyHelpArr[j].m_szAbout[0] = '\0';
01336                     types.m_KeyHelpArr[j].m_szPath[0] = '\0';
01337                     if( true == cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, sizeof( szKeyData )) ){
01338                         pH = szKeyData;
01339                         if( NULL != (pT=strchr(pH, ',')) ){
01340                             *pT = '\0';
01341                             types.m_KeyHelpArr[j].m_nUse = atoi( pH );
01342                             pH = pT+1;
01343                             if( NULL != (pT=strchr(pH, ',')) ){
01344                                 *pT = '\0';
01345                                 strcpy( types.m_KeyHelpArr[j].m_szAbout, pH );
01346                                 pH = pT+1;
01347                                 if( NULL != (*pH) ){
01348                                     strcpy( types.m_KeyHelpArr[j].m_szPath, pH );
01349                                     types.m_nKeyHelpNum = j+1;  // iniに保存せずに、読み出せたファイル分を辞書数とする
01350                                 }
01351                             }
01352                         }
01353                     }
01354                 }/* 書き込み */
01355                 else{
01356                     if(lstrlen(types.m_KeyHelpArr[j].m_szPath)){
01357                         wsprintf( szKeyData, pszForm,
01358                             types.m_KeyHelpArr[j].m_nUse,
01359                             types.m_KeyHelpArr[j].m_szAbout,
01360                             types.m_KeyHelpArr[j].m_szPath
01361                         );
01362                         cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, 0 );
01363                     }
01364                 }
01365             }
01366             /* 旧バージョンiniファイルの読み出しサポート */
01367             if( cProfile.IsReadingMode() ){
01368                 cProfile.IOProfileData( pszSecName, "szKeyWordHelpFile",
01369                 types.m_KeyHelpArr[0].m_szPath, sizeof( types.m_KeyHelpArr[0].m_szPath ) );
01370             }
01371         }
01372 //@@@ 2006.04.10 fon ADD-end
01373
01374     }/* for */
01375 }
01376
01384 void CShareData::ShareData_IO_KeyWords( CProfile& cProfile )
01385 {
01386     const char*     pszSecName = "KeyWords";
01387     int             i, j;
01388     char            szKeyName[64];
01389     char            szKeyData[1024];
01390     CKeyWordSetMgr* pCKeyWordSetMgr = &m_pShareData->m_CKeyWordSetMgr;
01391     int             nKeyWordSetNum = pCKeyWordSetMgr->m_nKeyWordSetNum;
01392
01393     cProfile.IOProfileData( pszSecName, "nCurrentKeyWordSetIdx" , pCKeyWordSetMgr->m_nCurrentKeyWordSetIdx );
01394     bool bIOSuccess = cProfile.IOProfileData( pszSecName, "nKeyWordSetNum", nKeyWordSetNum );
01395     if( cProfile.IsReadingMode() ){
01396         // nKeyWordSetNum が読み込めていれば、すべての情報がそろっていると仮定して処理を進める
01397         if( bIOSuccess ){
01398             // 2004.11.25 Moca キーワードセットの情報は、直接書き換えないで関数を利用する
01399             // 初期設定されているため、先に削除しないと固定メモリの確保に失敗する可能性がある
01400             int  nMemLen = MAX_KEYWORDNUM * ( MAX_KEYWORDLEN + 1 ) + 1;
01401             char *pszMem = new char[nMemLen];
01402             pCKeyWordSetMgr->ResetAllKeyWordSet();
01403             for( i = 0; i < nKeyWordSetNum; ++i ){
01404                 int nKEYWORDCASE = 0;
01405                 int nKeyWordNum = 0;
01406                 wsprintf( szKeyName, "szSN[%02d]", i );
01407                 cProfile.IOProfileData( pszSecName, szKeyName, szKeyData, sizeof( szKeyData ));
01408                 wsprintf( szKeyName, "nCASE[%02d]", i );
01409                 cProfile.IOProfileData( pszSecName, szKeyName, nKEYWORDCASE );
01410                 wsprintf( szKeyName, "nKWN[%02d]", i );
01411                 cProfile.IOProfileData( pszSecName, szKeyName, nKeyWordNum );
01412                 pCKeyWordSetMgr->AddKeyWordSet( szKeyData, nKEYWORDCASE, nKeyWordNum );
01413                 // 2004.11.25 Moca szKW[%02d].Size の情報は利用する意味がない。
01414 //              wsprintf( szKeyName, "szKW[%02d].Size", i );
01415 //              cProfile.IOProfileData( pszSecName, szKeyName, nMemLen );
01416                 wsprintf( szKeyName, "szKW[%02d]", i );
01417                 if( true == cProfile.IOProfileData( pszSecName, szKeyName, pszMem, nMemLen ) ){
01418                     pCKeyWordSetMgr->SetKeyWordArr( i, nKeyWordNum, pszMem );
01419                 }
01420             }
01421             delete [] pszMem;
01422         }
01423     }else{
01424         int nSize = pCKeyWordSetMgr->m_nKeyWordSetNum;
01425         for( i = 0; i < nSize; ++i ){
01426             wsprintf( szKeyName, "szSN[%02d]", i );
01427             cProfile.IOProfileData( pszSecName, szKeyName,
01428                 pCKeyWordSetMgr->m_szSetNameArr[i],
01429                 sizeof( pCKeyWordSetMgr->m_szSetNameArr[0] ));
01430             wsprintf( szKeyName, "nCASE[%02d]", i );
01431             cProfile.IOProfileData( pszSecName, szKeyName, pCKeyWordSetMgr->m_nKEYWORDCASEArr[i] );
01432             wsprintf( szKeyName, "nKWN[%02d]", i );
01433             cProfile.IOProfileData( pszSecName, szKeyName, pCKeyWordSetMgr->m_nKeyWordNumArr[i] );
01434
01435             int nMemLen = 0;
01436             for( j = 0; j < pCKeyWordSetMgr->m_nKeyWordNumArr[i]; ++j ){
01437                 nMemLen += strlen( pCKeyWordSetMgr->GetKeyWord( i, j ) );
01438                 nMemLen ++;
01439             }
01440             nMemLen ++;
01441             wsprintf( szKeyName, "szKW[%02d].Size", i );
01442             cProfile.IOProfileData( pszSecName, szKeyName, nMemLen );
01443             char* pszMem = new char[nMemLen + 1];   //  May 25, 2003 genta 区切りをTABに変更したので，最後の\0の分を追加
01444             char* pMem = pszMem;
01445             for( j = 0; j < pCKeyWordSetMgr->m_nKeyWordNumArr[i]; ++j ){
01446                 //  May 25, 2003 genta 区切りをTABに変更
01447                 int kwlen = strlen( pCKeyWordSetMgr->GetKeyWord( i, j ) );
01448                 memcpy( pMem, pCKeyWordSetMgr->GetKeyWord( i, j ), kwlen );
01449                 pMem += kwlen;
01450                 *pMem++ = '\t';
01451             }
01452             *pMem = '\0';
01453             wsprintf( szKeyName, "szKW[%02d]", i );
01454             cProfile.IOProfileData( pszSecName, szKeyName, pszMem, nMemLen );
01455             delete [] pszMem;
01456         }
01457     }
01458 }
01459
01466 void CShareData::ShareData_IO_Macro( CProfile& cProfile )
01467 {
01468     const char* pszSecName = "Macro";
01469     int     i;
01470     char    szKeyName[64];
01471     for( i = 0; i < MAX_CUSTMACRO; ++i ){
01472         MacroRec& macrorec = m_pShareData->m_MacroTable[i];
01473         //  Oct. 4, 2001 genta あまり意味がなさそうなので削除：3行
01474         // 2002.02.08 hor 未定義値を無視
01475         if( !cProfile.IsReadingMode() && !lstrlen(macrorec.m_szName) && !lstrlen(macrorec.m_szFile) ) continue;
01476         wsprintf( szKeyName, "Name[%03d]", i );
01477         cProfile.IOProfileData( pszSecName, szKeyName, macrorec.m_szName, MACRONAME_MAX - 1 );
01478         wsprintf( szKeyName, "File[%03d]", i );
01479         cProfile.IOProfileData( pszSecName, szKeyName, macrorec.m_szFile, _MAX_PATH );
01480         wsprintf( szKeyName, "ReloadWhenExecute[%03d]", i );
01481         cProfile.IOProfileData( pszSecName, szKeyName, macrorec.m_bReloadWhenExecute );
01482     }
01483 }
01484
01491 void CShareData::ShareData_IO_Other( CProfile& cProfile )
01492 {
01493     const char* pszSecName = "Other";   //セクションを1個作成した。2003.05.12 MIK
01494     int     i;
01495     char    szKeyName[64];
01496
01497     /* **** その他のダイアログ **** */
01498     /* 外部コマンド実行の「標準出力を得る」 */
01499     if(true != cProfile.IOProfileData( pszSecName, "nExecFlgOpt"    , m_pShareData->m_nExecFlgOpt ) ){ //   2006.12.03 maru オプション拡張
01500         cProfile.IOProfileData( pszSecName, "bGetStdout"        , m_pShareData->m_nExecFlgOpt );
01501     }
01502
01503     /* 指定行へジャンプの「改行単位の行番号」か「折り返し単位の行番号」か */
01504     cProfile.IOProfileData( pszSecName, "bLineNumIsCRLF"    , m_pShareData->m_bLineNumIsCRLF );
01505
01506     /* DIFF差分表示 */  //@@@ 2002.05.27 MIK
01507     cProfile.IOProfileData( pszSecName, "nDiffFlgOpt"   , m_pShareData->m_nDiffFlgOpt );
01508
01509     /* CTAGS */ //@@@ 2003.05.12 MIK
01510     cProfile.IOProfileData( pszSecName, "nTagsOpt"      , m_pShareData->m_nTagsOpt );
01511     cProfile.IOProfileData( pszSecName, "szTagsCmdLine" , m_pShareData->m_szTagsCmdLine, sizeof( m_pShareData->m_szTagsCmdLine ) );
01512
01513     //From Here 2005.04.03 MIK キーワード指定タグジャンプ
01514     cProfile.IOProfileData( pszSecName, "_TagJumpKeyword_Counts", m_pShareData->m_nTagJumpKeywordArrNum );
01515     for( i = 0; i < m_pShareData->m_nTagJumpKeywordArrNum; ++i ){
01516         wsprintf( szKeyName, "TagJumpKeyword[%02d]", i );
01517         if( i >= m_pShareData->m_nTagJumpKeywordArrNum ){
01518             strcpy( m_pShareData->m_szTagJumpKeywordArr[i], "" );
01519         }
01520         cProfile.IOProfileData( pszSecName, szKeyName,
01521             m_pShareData->m_szTagJumpKeywordArr[i], sizeof( m_pShareData->m_szTagJumpKeywordArr[0] ));
01522     }
01523     cProfile.IOProfileData( pszSecName, "m_bTagJumpICase"       , m_pShareData->m_bTagJumpICase );
01524     cProfile.IOProfileData( pszSecName, "m_bTagJumpAnyWhere"        , m_pShareData->m_bTagJumpAnyWhere );
01525     //From Here 2005.04.03 MIK キーワード指定タグジャンプの
01526
01527     //  MIK バージョン情報（書き込みのみ）
01528     if( ! cProfile.IsReadingMode() ){
01529         TCHAR   iniVer[256];
01530         wsprintf( iniVer, _T("%d.%d.%d.%d"),
01531                     HIWORD( m_pShareData->m_dwProductVersionMS ),
01532                     LOWORD( m_pShareData->m_dwProductVersionMS ),
01533                     HIWORD( m_pShareData->m_dwProductVersionLS ),
01534                     LOWORD( m_pShareData->m_dwProductVersionLS ) );
01535         cProfile.IOProfileData( pszSecName, _T("szVersion") , iniVer, sizeof( iniVer ) );
01536     }
01537 }
01538
01549 void CShareData::IO_ColorSet( CProfile* pcProfile, const char* pszSecName, ColorInfo* pColorInfoArr )
01550 {
01551     char    szKeyName[256];
01552     char    szKeyData[1024];
01553     int     j;
01554     for( j = 0; j < COLORIDX_LAST; ++j ){
01555         static const char* pszForm = "%d,%d,%06x,%06x,%d";
01556 #ifndef STR_COLORDATA_HEAD3
01557         wsprintf( szKeyName, "CI[%02d]", j );
01558 #else
01559         wsprintf( szKeyName, "C[%s]", g_ColorAttributeArr[j].szName );  //Stonee, 2001/01/12, 2001/01/15
01560 #endif
01561         if( pcProfile->IsReadingMode() ){
01562             if( true == pcProfile->IOProfileData( pszSecName, szKeyName, szKeyData, sizeof( szKeyData )) ){
01563                 pColorInfoArr[j].m_bUnderLine = FALSE;
01564                 sscanf( szKeyData, pszForm,
01565                     &pColorInfoArr[j].m_bDisp,
01566                     &pColorInfoArr[j].m_bFatFont,
01567                     &pColorInfoArr[j].m_colTEXT,
01568                     &pColorInfoArr[j].m_colBACK,
01569                     &pColorInfoArr[j].m_bUnderLine
01570                  );
01571             }else{
01572                 // 2006.12.07 ryoji
01573                 // sakura Ver1.5.13.1 以前のiniファイルを読んだときにキャレットがテキスト背景色と同じになると
01574                 // ちょっと困るのでキャレット色が読めないときはキャレット色をテキスト色と同じにする
01575                 if( COLORIDX_CARET == j )
01576                     pColorInfoArr[j].m_colTEXT = pColorInfoArr[COLORIDX_TEXT].m_colTEXT;
01577             }
01578             // 2006.12.18 ryoji
01579             // 矛盾設定があれば修復する
01580             unsigned int fAttribute = g_ColorAttributeArr[j].fAttribute;
01581             if( 0 != (fAttribute & COLOR_ATTRIB_FORCE_DISP) )
01582                 pColorInfoArr[j].m_bDisp = TRUE;
01583             if( 0 != (fAttribute & COLOR_ATTRIB_NO_BOLD) )
01584                 pColorInfoArr[j].m_bFatFont = FALSE;
01585             if( 0 != (fAttribute & COLOR_ATTRIB_NO_UNDERLINE) )
01586                 pColorInfoArr[j].m_bUnderLine = FALSE;
01587         }else{
01588             wsprintf( szKeyData, pszForm,
01589                 pColorInfoArr[j].m_bDisp,
01590                 pColorInfoArr[j].m_bFatFont,
01591                 pColorInfoArr[j].m_colTEXT,
01592                 pColorInfoArr[j].m_colBACK,
01593                 pColorInfoArr[j].m_bUnderLine
01594             );
01595             pcProfile->IOProfileData( pszSecName, szKeyName, szKeyData, 0 );
01596         }
01597     }
01598     return;
01599 }
01600
01601
01614 void CShareData::PushTagJump(const TagJump *pTagJump)
01615 {
01616     int i = m_pShareData->m_TagJumpTop + 1;
01617     if( MAX_TAGJUMPNUM <= i ){
01618         i = 0;
01619     }
01620     if( m_pShareData->m_TagJumpNum < MAX_TAGJUMPNUM ){
01621         m_pShareData->m_TagJumpNum++;
01622     }
01623     m_pShareData->m_TagJump[i] = *pTagJump;
01624     m_pShareData->m_TagJumpTop = i;
01625 }
01626
01627
01640 bool CShareData::PopTagJump(TagJump *pTagJump)
01641 {
01642     if( 0 < m_pShareData->m_TagJumpNum ){
01643         *pTagJump = m_pShareData->m_TagJump[m_pShareData->m_TagJumpTop--];
01644         if( m_pShareData->m_TagJumpTop < 0 ){
01645             m_pShareData->m_TagJumpTop = MAX_TAGJUMPNUM - 1;
01646         }
01647         m_pShareData->m_TagJumpNum--;
01648         return true;
01649     }
01650     return false;
01651 }
01652
01653
01654 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSMacroMgr.cpp

CSMacroMgr.cpp

マクロ [詳細]

#include "stdafx.h"
#include "CSMacroMgr.h"
#include "CEditView.h"
#include "CPPAMacroMgr.h"
#include "CWSHManager.h"
#include "CMacroFactory.h"
#include <stdio.h>
#include <assert.h>
#include "debug.h"
#include "CRunningTimer.h"

CSMacroMgr.cppのインクルード依存関係図

ソースコードを見る。

説明

マクロ

作者:
Norio Nakatani

genta

日付:
Sep. 29, 2001 作成

20011229 aroka バグ修正、コメント追加

CSMacroMgr.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSMacroMgr.cpp ソースファイル

CSMacroMgr.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2000, jepro
00012     Copyright (C) 2001, genta, aroka, MIK, asa-o, hor, Misaka, jepro, Stonee
00013     Copyright (C) 2002, YAZAKI, MIK, aroka, hor, genta, ai
00014     Copyright (C) 2003, MIK, genta, Moca
00015     Copyright (C) 2004, genta, zenryaku
00016     Copyright (C) 2005, MIK, genta, maru, FILE
00017     Copyright (C) 2006, かろと, fon
00018     Copyright (C) 2007, ryoji, maru
00019
00020     This source code is designed for sakura editor.
00021     Please contact the copyright holder to use this code for other purpose.
00022 */
00023 #include "stdafx.h"
00024 #include "CSMacroMgr.h"
00025 #include "CEditView.h"
00026 #include "CPPAMacroMgr.h"
00027 #include "CWSHManager.h"
00028 #include "CMacroFactory.h"
00029 #include <stdio.h>
00030 #include <assert.h> // 試験用
00031 #include "debug.h"
00032 #include "CRunningTimer.h"
00033
00034 MacroFuncInfo CSMacroMgr::m_MacroFuncInfoNotCommandArr[] =
00035 {
00036     {F_GETFILENAME, "GetFilename",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL}, //ファイル名を返す
00037     //  Oct. 19, 2002 genta
00038     {F_GETSELECTED, "GetSelectedString",    {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY},  VT_BSTR,    NULL}, //選択部分
00039     {F_EXPANDPARAMETER, "ExpandParameter",  {VT_BSTR, VT_EMPTY, VT_EMPTY, VT_EMPTY},    VT_BSTR,    NULL}, //特殊文字の展開
00040     {F_GETLINESTR, "GetLineStr", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_BSTR, NULL }, // 指定論理行の取得 2003.06.01 Moca
00041     {F_GETLINECOUNT, "GetLineCount", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 全論理行数の取得 2003.06.01 Moca
00042     {F_CHGTABWIDTH,         "ChangeTabWidth",           {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},  VT_I4, NULL }, //タブサイズ変更 2004.03.16 zenryaku
00043     {F_ISTEXTSELECTED,      "IsTextSelected",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, //テキストが選択されているか 2005.7.30 maru
00044     {F_GETSELLINEFROM,      "GetSelectLineFrom",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 選択開始行の取得 2005.7.30 maru
00045     {F_GETSELCOLMFROM,      "GetSelectColmFrom",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 選択開始桁の取得 2005.7.30 maru
00046     {F_GETSELLINETO,        "GetSelectLineTo",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 選択終了行の取得 2005.7.30 maru
00047     {F_GETSELCOLMTO,        "GetSelectColmTo",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 選択終了桁の取得 2005.7.30 maru
00048     {F_ISINSMODE,           "IsInsMode",                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 挿入／上書きモードの取得 2005.7.30 maru
00049     {F_GETCHARCODE,         "GetCharCode",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 文字コード取得 2005.07.31 maru
00050     {F_GETLINECODE,         "GetLineCode",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // 改行コード取得 2005.08.05 maru
00051     {F_ISPOSSIBLEUNDO,      "IsPossibleUndo",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // Undo可能か調べる 2005.08.05 maru
00052     {F_ISPOSSIBLEREDO,      "IsPossibleRedo",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL }, // Redo可能か調べる 2005.08.05 maru
00053
00054     //  終端
00055     //  Jun. 27, 2002 genta
00056     //  終端としては決して現れないものを使うべきなので，
00057     //  FuncIDを-1に変更．(0は使われる)
00058     {-1,    NULL, {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY,   NULL}
00059 };
00060
00061 MacroFuncInfo CSMacroMgr::m_MacroFuncInfoArr[] =
00062 {
00063 //  機能番号            関数名          引数                作業用バッファ
00064
00065     /* ファイル操作系 */
00066     {F_FILENEW,                     "FileNew",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //新規作成
00067     {F_FILEOPEN,                    "FileOpen",             {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //開く
00068     {F_FILESAVE,                    "FileSave",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上書き保存
00069     {F_FILESAVEALL,                 "FileSaveAll",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上書き保存
00070     {F_FILESAVEAS,                  "FileSaveAs",           {VT_BSTR,  VT_I4,    VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, //名前を付けて保存
00071     {F_FILECLOSE,                   "FileClose",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //閉じて(無題)   //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00072     {F_FILECLOSE_OPEN,              "FileCloseOpen",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //閉じて開く
00073     {F_FILE_REOPEN,                 "FileReopen",           {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //SJISで開き直す //Dec. 4, 2002 genta
00074     {F_FILE_REOPEN_SJIS,            "FileReopenSJIS",       {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //SJISで開き直す
00075     {F_FILE_REOPEN_JIS,             "FileReopenJIS",        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //JISで開き直す
00076     {F_FILE_REOPEN_EUC,             "FileReopenEUC",        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //EUCで開き直す
00077     {F_FILE_REOPEN_UNICODE,         "FileReopenUNICODE",    {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //Unicodeで開き直す
00078     {F_FILE_REOPEN_UNICODEBE,       "FileReopenUNICODEBE",  {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //UnicodeBEで開き直す
00079     {F_FILE_REOPEN_UTF8,            "FileReopenUTF8",       {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //UTF-8で開き直す
00080     {F_FILE_REOPEN_UTF7,            "FileReopenUTF7",       {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //UTF-7で開き直す
00081     {F_PRINT,                       "Print",                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷
00082 //  {F_PRINT_DIALOG,                "PrintDialog",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷ダイアログ
00083     {F_PRINT_PREVIEW,               "PrintPreview",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷プレビュー
00084     {F_PRINT_PAGESETUP,             "PrintPageSetup",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //印刷ページ設定 //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00085     {F_OPEN_HfromtoC,               "OpenHfromtoC",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //同名のC/C++ヘッダ(ソース)を開く    //Feb. 7, 2001 JEPRO 追加
00086     {F_OPEN_HHPP,                   "OpenHHpp",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //同名のC/C++ヘッダファイルを開く    //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00087     {F_OPEN_CCPP,                   "OpenCCpp",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //同名のC/C++ソースファイルを開く    //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00088     {F_ACTIVATE_SQLPLUS,            "ActivateSQLPLUS",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* Oracle SQL*Plusをアクティブ表示 */
00089     {F_PLSQL_COMPILE_ON_SQLPLUS,    "ExecSQLPLUS",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* Oracle SQL*Plusで実行 */
00090     {F_BROWSE,                      "Browse",               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブラウズ
00091     {F_READONLY,                    "ReadOnly",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //読み取り専用
00092     {F_PROPERTY_FILE,               "PropertyFile",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイルのプロパティ
00093     {F_EXITALLEDITORS,              "ExitAllEditors",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //編集の全終了   // 2007.02.13 ryoji 追加
00094     {F_EXITALL,                     "ExitAll",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //サクラエディタの全終了 //Dec. 27, 2000 JEPRO 追加
00095     {F_PUTFILE,                     "PutFile",              {VT_BSTR,  VT_I4,    VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, // 作業中ファイルの一時出力 2006.12.10 maru
00096     {F_INSFILE,                     "InsFile",              {VT_BSTR,  VT_I4,    VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, // キャレット位置にファイル挿入 2006.12.10 maru
00097
00098     /* 編集系 */
00099     {F_CHAR,                "Char",                 {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //文字入力
00100     {F_IME_CHAR,            "CharIme",              {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //全角文字入力
00101     {F_UNDO,                "Undo",                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //元に戻す(Undo)
00102     {F_REDO,                "Redo",                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //やり直し(Redo)
00103     {F_DELETE,              "Delete",               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //削除
00104     {F_DELETE_BACK,         "DeleteBack",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル前を削除
00105     {F_WordDeleteToStart,   "WordDeleteToStart",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の左端まで削除
00106     {F_WordDeleteToEnd,     "WordDeleteToEnd",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の右端まで削除
00107     {F_WordCut,             "WordCut",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語切り取り
00108     {F_WordDelete,          "WordDelete",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語削除
00109     {F_LineCutToStart,      "LineCutToStart",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行頭まで切り取り(改行単位)
00110     {F_LineCutToEnd,        "LineCutToEnd",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行末まで切り取り(改行単位)
00111     {F_LineDeleteToStart,   "LineDeleteToStart",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行頭まで削除(改行単位)
00112     {F_LineDeleteToEnd,     "LineDeleteToEnd",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行末まで削除(改行単位)
00113     {F_CUT_LINE,            "CutLine",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行切り取り(折り返し単位)
00114     {F_DELETE_LINE,         "DeleteLine",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行削除(折り返し単位)
00115     {F_DUPLICATELINE,       "DuplicateLine",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行の二重化(折り返し単位)
00116     {F_INDENT_TAB,          "IndentTab",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //TABインデント
00117     {F_UNINDENT_TAB,        "UnindentTab",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //逆TABインデント
00118     {F_INDENT_SPACE,        "IndentSpace",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //SPACEインデント
00119     {F_UNINDENT_SPACE,      "UnindentSpace",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //逆SPACEインデント
00120 //  {F_WORDSREFERENCE,      "WordReference",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語リファレンス
00121     {F_LTRIM,               "LTrim",                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //左(先頭)の空白を削除 2001.12.03 hor
00122     {F_RTRIM,               "RTrim",                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //右(末尾)の空白を削除 2001.12.03 hor
00123     {F_SORT_ASC,            "SortAsc",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択行の昇順ソート 2001.12.06 hor
00124     {F_SORT_DESC,           "SortDesc",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択行の降順ソート 2001.12.06 hor
00125     {F_MERGE,               "Merge",                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択行のマージ 2001.12.06 hor
00126
00127     /* カーソル移動系 */
00128     {F_UP,                  "Up",               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル上移動
00129     {F_DOWN,                "Down",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル下移動
00130     {F_LEFT,                "Left",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル左移動
00131     {F_RIGHT,               "Right",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル右移動
00132     {F_UP2,                 "Up2",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル上移動(２行ごと)
00133     {F_DOWN2,               "Down2",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル下移動(２行ごと)
00134     {F_WORDLEFT,            "WordLeft",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の左端に移動
00135     {F_WORDRIGHT,           "WordRight",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //単語の右端に移動
00136     {F_GOLINETOP,           "GoLineTop",        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行頭に移動(折り返し単位)
00137     {F_GOLINEEND,           "GoLineEnd",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //行末に移動(折り返し単位)
00138     {F_HalfPageUp,          "HalfPageUp",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //半ページアップ //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00139     {F_HalfPageDown,        "HalfPageDown",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //半ページダウン //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00140     {F_1PageUp,             "1PageUp",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //１ページアップ //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00141     {F_1PageDown,           "1PageDown",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //１ページダウン //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00142     {F_GOFILETOP,           "GoFileTop",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイルの先頭に移動
00143     {F_GOFILEEND,           "GoFileEnd",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイルの最後に移動
00144     {F_CURLINECENTER,       "CurLineCenter",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //カーソル行をウィンドウ中央へ
00145     {F_JUMPHIST_PREV,       "MoveHistPrev",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //移動履歴: 前へ
00146     {F_JUMPHIST_NEXT,       "MoveHistNext",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //移動履歴: 次へ
00147     {F_JUMPHIST_SET,        "MoveHistSet",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //現在位置を移動履歴に登録
00148     {F_WndScrollDown,       "F_WndScrollDown",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //テキストを１行下へスクロール   // 2001/06/20 asa-o
00149     {F_WndScrollUp,         "F_WndScrollUp",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //テキストを１行上へスクロール   // 2001/06/20 asa-o
00150     {F_GONEXTPARAGRAPH,     "GoNextParagraph",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次の段落へ移動
00151     {F_GOPREVPARAGRAPH,     "GoPrevParagraph",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前の段落へ移動
00152
00153     /* 選択系 */    //Oct. 15, 2000 JEPRO 「カーソル移動系」が多くなったので「選択系」として独立化(サブメニュー化は構造上できないので)
00154     {F_SELECTWORD,          "SelectWord",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //現在位置の単語選択
00155     {F_SELECTALL,           "SelectAll",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //すべて選択
00156     {F_BEGIN_SEL,           "BeginSelect",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //範囲選択開始 Mar. 5, 2001 genta 名称修正
00157     {F_UP_SEL,              "Up_Sel",               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル上移動
00158     {F_DOWN_SEL,            "Down_Sel",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル下移動
00159     {F_LEFT_SEL,            "Left_Sel",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル左移動
00160     {F_RIGHT_SEL,           "Right_Sel",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル右移動
00161     {F_UP2_SEL,             "Up2_Sel",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル上移動(２行ごと)
00162     {F_DOWN2_SEL,           "Down2_Sel",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)カーソル下移動(２行ごと)
00163     {F_WORDLEFT_SEL,        "WordLeft_Sel",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)単語の左端に移動
00164     {F_WORDRIGHT_SEL,       "WordRight_Sel",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)単語の右端に移動
00165     {F_GOLINETOP_SEL,       "GoLineTop_Sel",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)行頭に移動(折り返し単位)
00166     {F_GOLINEEND_SEL,       "GoLineEnd_Sel",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)行末に移動(折り返し単位)
00167     {F_HalfPageUp_Sel,      "HalfPageUp_Sel",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)半ページアップ   //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00168     {F_HalfPageDown_Sel,    "HalfPageDown_Sel",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)半ページダウン   //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00169     {F_1PageUp_Sel,         "1PageUp_Sel",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)１ページアップ   //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00170     {F_1PageDown_Sel,       "1PageDown_Sel",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)１ページダウン   //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00171     {F_GOFILETOP_SEL,       "GoFileTop_Sel",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)ファイルの先頭に移動
00172     {F_GOFILEEND_SEL,       "GoFileEnd_Sel",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //(範囲選択)ファイルの最後に移動
00173     {F_GONEXTPARAGRAPH_SEL, "GoNextParagraph_Sel",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次の段落へ移動
00174     {F_GOPREVPARAGRAPH_SEL, "GoPrevParagraph_Sel",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前の段落へ移動
00175
00176     /* 矩形選択系 */    //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00177     {F_BEGIN_BOX,           "BeginBoxSelect",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //矩形範囲選択開始
00178
00179     /* クリップボード系 */
00180     {F_CUT,                     "Cut",                      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //切り取り(選択範囲をクリップボードにコピーして削除)
00181     {F_COPY,                    "Copy",                     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //コピー(選択範囲をクリップボードにコピー)
00182     {F_PASTE,                   "Paste",                    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //貼り付け(クリップボードから貼り付け)
00183     {F_COPY_ADDCRLF,            "CopyAddCRLF",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //折り返し位置に改行をつけてコピー
00184     {F_COPY_CRLF,               "CopyCRLF",                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //CRLF改行でコピー(選択範囲を改行コード=CRLFでコピー)
00185     {F_PASTEBOX,                "PasteBox",                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //矩形貼り付け(クリップボードから矩形貼り付け)
00186     {F_INSTEXT,                 "InsText",                  {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // テキストを貼り付け
00187     {F_ADDTAIL,                 "AddTail",                  {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 最後にテキストを追加
00188     {F_COPYLINES,               "CopyLines",                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択範囲内全行コピー
00189     {F_COPYLINESASPASSAGE,      "CopyLinesAsPassage",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択範囲内全行引用符付きコピー
00190     {F_COPYLINESWITHLINENUMBER, "CopyLinesWithLineNumber",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //選択範囲内全行行番号付きコピー
00191     {F_COPYPATH,                "CopyPath",                 {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //このファイルのパス名をクリップボードにコピー
00192     {F_COPYFNAME,               "CopyFilename",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //このファイル名をクリップボードにコピー // 2002/2/3 aroka
00193     {F_COPYTAG,                 "CopyTag",                  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //このファイルのパス名とカーソル位置をコピー //Sept. 15, 2000 jepro 上と同じ説明になっていたのを修正
00194     {F_CREATEKEYBINDLIST,       "CopyKeyBindList",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //キー割り当て一覧をコピー   //Sept. 15, 2000 JEPRO 追加 //Dec. 25, 2000 復活
00195
00196     /* 挿入系 */
00197     {F_INS_DATE,                "InsertDate",   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 日付挿入
00198     {F_INS_TIME,                "InsertTime",   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 時刻挿入
00199     {F_CTRL_CODE_DIALOG,        "CtrlCodeDialog",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //コントロールコードの入力(ダイアログ)   //@@@ 2002.06.02 MIK
00200
00201     /* 変換系 */
00202     {F_TOLOWER,                 "ToLower",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //小文字
00203     {F_TOUPPER,                 "ToUpper",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //大文字
00204     {F_TOHANKAKU,               "ToHankaku",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 全角→半角 */
00205     {F_TOHANKATA,               "ToHankata",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 全角カタカナ→半角カタカナ */ //Aug. 29, 2002 ai
00206     {F_TOZENEI,                 "ToZenEi",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角英数→全角英数 */         //July. 30, 2001 Misaka
00207     {F_TOHANEI,                 "ToHanEi",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 全角英数→半角英数 */
00208     {F_TOZENKAKUKATA,           "ToZenKata",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角＋全ひら→全角・カタカナ */   //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00209     {F_TOZENKAKUHIRA,           "ToZenHira",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角＋全カタ→全角・ひらがな */   //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00210     {F_HANKATATOZENKAKUKATA,    "HanKataToZenKata",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角カタカナ→全角カタカナ */
00211     {F_HANKATATOZENKAKUHIRA,    "HanKataToZenHira",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 半角カタカナ→全角ひらがな */
00212     {F_TABTOSPACE,              "TABToSPACE",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* TAB→空白 */
00213     {F_SPACETOTAB,              "SPACEToTAB",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 空白→TAB */ //#### Stonee, 2001/05/27
00214     {F_CODECNV_AUTO2SJIS,       "AutoToSJIS",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 自動判別→SJISコード変換 */
00215     {F_CODECNV_EMAIL,           "JIStoSJIS",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //E-Mail(JIS→SJIS)コード変換
00216     {F_CODECNV_EUC2SJIS,        "EUCtoSJIS",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //EUC→SJISコード変換
00217     {F_CODECNV_UNICODE2SJIS,    "CodeCnvUNICODEtoSJIS", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //Unicode→SJISコード変換
00218     {F_CODECNV_UNICODEBE2SJIS,  "CodeCnvUNICODEBEtoSJIS",{VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},  VT_EMPTY,   NULL}, // UnicodeBE→SJISコード変換
00219     {F_CODECNV_UTF82SJIS,       "UTF8toSJIS",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* UTF-8→SJISコード変換 */
00220     {F_CODECNV_UTF72SJIS,       "UTF7toSJIS",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* UTF-7→SJISコード変換 */
00221     {F_CODECNV_SJIS2JIS,        "SJIStoJIS",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→JISコード変換 */
00222     {F_CODECNV_SJIS2EUC,        "SJIStoEUC",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→EUCコード変換 */
00223     {F_CODECNV_SJIS2UTF8,       "SJIStoUTF8",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→UTF-8コード変換 */
00224     {F_CODECNV_SJIS2UTF7,       "SJIStoUTF7",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* SJIS→UTF-7コード変換 */
00225     {F_BASE64DECODE,            "Base64Decode",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //Base64デコードして保存
00226     {F_UUDECODE,                "Uudecode",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //uudecodeして保存   //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00227
00228
00229     /* 検索系 */
00230     {F_SEARCH_DIALOG,           "SearchDialog",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //検索(単語検索ダイアログ)
00231     {F_SEARCH_NEXT,             "SearchNext",       {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次を検索
00232     {F_SEARCH_PREV,             "SearchPrev",       {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前を検索
00233     {F_REPLACE_DIALOG,          "ReplaceDialog",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //置換(置換ダイアログ)
00234     {F_REPLACE,                 "Replace",          {VT_BSTR,  VT_BSTR,  VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, //置換(実行)
00235     {F_REPLACE_ALL,             "ReplaceAll",       {VT_BSTR,  VT_BSTR,  VT_I4,    VT_EMPTY},   VT_EMPTY,   NULL}, //すべて置換(実行)
00236     {F_SEARCH_CLEARMARK,        "SearchClearMark",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //検索マークのクリア
00237     {F_JUMP_SRCHSTARTPOS,       "SearchStartPos",   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //検索開始位置へ戻る         // 02/06/26 ai
00238     {F_GREP,                    "Grep",             {VT_BSTR,  VT_BSTR,  VT_BSTR,  VT_I4   },   VT_EMPTY,   NULL}, //Grep
00239     {F_JUMP,                    "Jump",             {VT_I4,    VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //指定行ヘジャンプ
00240     {F_OUTLINE,                 "Outline",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //アウトライン解析
00241     {F_TAGJUMP,                 "TagJump",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タグジャンプ機能
00242     {F_TAGJUMPBACK,             "TagJumpBack",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タグジャンプバック機能
00243     {F_TAGS_MAKE,               "TagMake",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タグファイルの作成 //@@@ 2003.04.13 MIK
00244     {F_DIRECT_TAGJUMP,          "DirectTagJump",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ダイレクトタグジャンプ機能 //@@@ 2003.04.15 MIK
00245     {F_TAGJUMP_KEYWORD,         "KeywordTagJump",   {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //キーワードを指定してダイレクトタグジャンプ機能 //@@@ 2005.03.31 MIK
00246     {F_COMPARE,                 "Compare",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ファイル内容比較
00247     {F_DIFF_DIALOG,             "DiffDialog",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(ダイアログ)   //@@@ 2002.05.25 MIK
00248     {F_DIFF,                    "Diff",             {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示               //@@@ 2002.05.25 MIK    // 2005.10.03 maru
00249     {F_DIFF_NEXT,               "DiffNext",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(次へ)         //@@@ 2002.05.25 MIK
00250     {F_DIFF_PREV,               "DiffPrev",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(前へ)         //@@@ 2002.05.25 MIK
00251     {F_DIFF_RESET,              "DiffReset",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //DIFF差分表示(全解除)       //@@@ 2002.05.25 MIK
00252     {F_BRACKETPAIR,             "BracketPair",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //対括弧の検索
00253 // From Here 2001.12.03 hor
00254     {F_BOOKMARK_SET,            "BookmarkSet",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブックマーク設定・解除
00255     {F_BOOKMARK_NEXT,           "BookmarkNext",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のブックマークへ
00256     {F_BOOKMARK_PREV,           "BookmarkPrev",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のブックマークへ
00257     {F_BOOKMARK_RESET,          "BookmarkReset",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブックマークの全解除
00258     {F_BOOKMARK_VIEW,           "BookmarkView",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ブックマークの一覧
00259 // To Here 2001.12.03 hor
00260     {F_BOOKMARK_PATTERN,        "BookmarkPattern",  {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, // 2002.01.16 hor 指定パターンに一致する行をマーク
00261
00262     /* モード切り替え系 */
00263     {F_CHGMOD_INS,              "ChgmodINS",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //挿入／上書きモード切り替え
00264     {F_CHGMOD_EOL,              "ChgmodEOL",        {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //入力改行コード指定 2003.06.23 Moca
00265     {F_CANCEL_MODE,             "CancelMode",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //各種モードの取り消し
00266
00267     /* 設定系 */
00268     {F_SHOWTOOLBAR,             "ShowToolbar",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ツールバーの表示 */
00269     {F_SHOWFUNCKEY,             "ShowFunckey",      {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ファンクションキーの表示 */
00270     {F_SHOWTAB,                 "ShowTab",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* タブの表示 */ //@@@ 2003.06.10 MIK
00271     {F_SHOWSTATUSBAR,           "ShowStatusbar",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ステータスバーの表示 */
00272     {F_TYPE_LIST,               "TypeList",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* タイプ別設定一覧 */
00273     {F_OPTION_TYPE,             "OptionType",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* タイプ別設定 */
00274     {F_OPTION,                  "OptionCommon",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 共通設定 */
00275     {F_FONT,                    "SelectFont",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* フォント設定 */
00276     {F_WRAPWINDOWWIDTH,         "WrapWindowWidth",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 現在のウィンドウ幅で折り返し */   //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00277     {F_FAVORITE,                "OptionFavorite",   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 履歴の管理 */ //@@@ 2003.04.08 MIK
00278     {F_SET_QUOTESTRING,         "SetMsgQuoteStr",   {VT_BSTR,  VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 共通設定→書式→引用符の設定 */   //Jan. 29, 2005 genta
00279
00280
00281     //  Oct. 9, 2001 genta 追加
00282     {F_EXECCOMMAND,             "ExecCommand",      {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 外部コマンド実行 */
00283
00284     /* カスタムメニュー */
00285     {F_MENU_RBUTTON,            "RMenu",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 右クリックメニュー */
00286     {F_CUSTMENU_1,              "CustMenu1",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー1 */
00287     {F_CUSTMENU_2,              "CustMenu2",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー2 */
00288     {F_CUSTMENU_3,              "CustMenu3",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー3 */
00289     {F_CUSTMENU_4,              "CustMenu4",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー4 */
00290     {F_CUSTMENU_5,              "CustMenu5",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー5 */
00291     {F_CUSTMENU_6,              "CustMenu6",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー6 */
00292     {F_CUSTMENU_7,              "CustMenu7",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー7 */
00293     {F_CUSTMENU_8,              "CustMenu8",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー8 */
00294     {F_CUSTMENU_9,              "CustMenu9",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー9 */
00295     {F_CUSTMENU_10,             "CustMenu10",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー10 */
00296     {F_CUSTMENU_11,             "CustMenu11",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー11 */
00297     {F_CUSTMENU_12,             "CustMenu12",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー12 */
00298     {F_CUSTMENU_13,             "CustMenu13",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー13 */
00299     {F_CUSTMENU_14,             "CustMenu14",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー14 */
00300     {F_CUSTMENU_15,             "CustMenu15",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー15 */
00301     {F_CUSTMENU_16,             "CustMenu16",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー16 */
00302     {F_CUSTMENU_17,             "CustMenu17",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー17 */
00303     {F_CUSTMENU_18,             "CustMenu18",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー18 */
00304     {F_CUSTMENU_19,             "CustMenu19",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー19 */
00305     {F_CUSTMENU_20,             "CustMenu20",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー20 */
00306     {F_CUSTMENU_21,             "CustMenu21",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー21 */
00307     {F_CUSTMENU_22,             "CustMenu22",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー22 */
00308     {F_CUSTMENU_23,             "CustMenu23",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー23 */
00309     {F_CUSTMENU_24,             "CustMenu24",       {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* カスタムメニュー24 */
00310
00311     /* ウィンドウ系 */
00312     {F_SPLIT_V,                 "SplitWinV",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上下に分割 //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00313     {F_SPLIT_H,                 "SplitWinH",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //左右に分割 //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00314     {F_SPLIT_VH,                "SplitWinVH",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //縦横に分割 //Sept. 17, 2000 jepro 説明に「に」を追加
00315     {F_WINCLOSE,                "WinClose",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ウィンドウを閉じる
00316     {F_WIN_CLOSEALL,            "WinCloseAll",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //すべてのウィンドウを閉じる //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00317     {F_CASCADE,                 "CascadeWin",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //重ねて表示
00318     {F_TILE_V,                  "TileWinV",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //上下に並べて表示
00319     {F_TILE_H,                  "TileWinH",             {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //左右に並べて表示
00320     {F_NEXTWINDOW,              "NextWindow",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のウィンドウ
00321     {F_PREVWINDOW,              "PrevWindow",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のウィンドウ
00322     {F_WINLIST,                 "WindowList",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //ウィンドウ一覧ポップアップ表示 // 2006.03.23 fon
00323     {F_MAXIMIZE_V,              "MaximizeV",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //縦方向に最大化
00324     {F_MAXIMIZE_H,              "MaximizeH",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //横方向に最大化 //2001.02.10 by MIK
00325     {F_MINIMIZE_ALL,            "MinimizeAll",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //すべて最小化   //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00326     {F_REDRAW,                  "ReDraw",               {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //再描画
00327     {F_WIN_OUTPUT,              "ActivateWinOutput",    {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //アウトプットウィンドウ表示
00328     {F_TRACEOUT,                "TraceOut",             {VT_BSTR,  VT_I4,    VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //マクロ用アウトプットウィンドウに出力   2006.04.26 maru
00329     {F_TOPMOST,                 "WindowTopMost",    {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY},  VT_EMPTY,   NULL}, //常に手前に表示
00330     {F_GROUPCLOSE,              "GroupClose",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //グループを閉じる   // 2007.06.20 ryoji
00331     {F_NEXTGROUP,               "NextGroup",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のグループ   // 2007.06.20 ryoji
00332     {F_PREVGROUP,               "PrevGroup",            {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のグループ   // 2007.06.20 ryoji
00333     {F_TAB_MOVERIGHT,           "TabMoveRight",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タブを右に移動 // 2007.06.20 ryoji
00334     {F_TAB_MOVELEFT,            "TabMoveLeft",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //タブを左に移動 // 2007.06.20 ryoji
00335     {F_TAB_SEPARATE,            "TabSeparate",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //新規グループ   // 2007.06.20 ryoji
00336     {F_TAB_JOINTNEXT,           "TabJointNext",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //次のグループに移動 // 2007.06.20 ryoji
00337     {F_TAB_JOINTPREV,           "TabJointPrev",         {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, //前のグループに移動 // 2007.06.20 ryoji
00338
00339     /* 支援 */
00340     {F_HOKAN,                   "Complete",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 入力補完 */   //Oct. 15, 2000 JEPRO 入ってなかったので英名を付けて入れてみた
00341     {F_HELP_CONTENTS,           "HelpContents", {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ヘルプ目次 */         //Nov. 25, 2000 JEPRO 追加
00342     {F_HELP_SEARCH,             "HelpSearch",   {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* ヘルプキーワード検索 */   //Nov. 25, 2000 JEPRO 追加
00343     {F_MENU_ALLFUNC,            "CommandList",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* コマンド一覧 */
00344     {F_EXTHELP1,                "ExtHelp1",     {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 外部ヘルプ１ */
00345     //  Jul. 5, 2002 genta 引数追加
00346     {F_EXTHTMLHELP,             "ExtHtmlHelp",  {VT_BSTR,  VT_BSTR,  VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* 外部HTMLヘルプ */
00347     {F_ABOUT,                   "About",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_EMPTY,   NULL}, /* バージョン情報 */ //Dec. 24, 2000 JEPRO 追加
00348
00349     //  終端
00350     //  Jun. 27, 2002 genta
00351     //  終端としては決して現れないものを使うべきなので，
00352     //  FuncIDを-1に変更．(0は使われる)
00353     {-1,    NULL, {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY,   NULL}
00354 };
00355 //int   CSMacroMgr::m_nMacroFuncInfoArrNum = sizeof( CSMacroMgr::m_MacroFuncInfoArr ) / sizeof( CSMacroMgr::m_MacroFuncInfoArr[0] );
00356
00361 CSMacroMgr::CSMacroMgr()
00362 {
00363     MY_RUNNINGTIMER( cRunningTimer, "CSMacroMgr::CSMacroMgr" );
00364
00365     m_pShareData = CShareData::getInstance()->GetShareData();
00366
00367     CPPAMacroMgr::declare();
00368     CKeyMacroMgr::declare();
00369     CWSHMacroManager::declare();
00370
00371     int i;
00372     for ( i = 0 ; i < MAX_CUSTMACRO ; i++ ){
00373         m_cSavedKeyMacro[i] = NULL;
00374     }
00375     //  Jun. 16, 2002 genta
00376     m_pKeyMacro = NULL;
00377
00378     //  Sep. 15, 2005 FILE
00379     SetCurrentIdx( INVALID_MACRO_IDX );
00380 }
00381
00382 CSMacroMgr::~CSMacroMgr()
00383 {
00384     //- 20011229 add by aroka
00385     ClearAll();
00386
00387     //  Jun. 16, 2002 genta
00388     //  ClearAllと同じ処理だったので削除
00389 }
00390
00392 void CSMacroMgr::ClearAll( void )
00393 {
00394     int i;
00395     for (i = 0; i < MAX_CUSTMACRO; i++){
00396         //  Apr. 29, 2002 genta
00397         delete m_cSavedKeyMacro[i];
00398         m_cSavedKeyMacro[i] = NULL;
00399     }
00400     //  Jun. 16, 2002 genta
00401     delete m_pKeyMacro;
00402     m_pKeyMacro = NULL;
00403 }
00404
00414 int CSMacroMgr::Append( int idx, /*CSMacroMgr::Macro1& mbuf, */ int nFuncID, LPARAM lParam1, CEditView* pcEditView )
00415 {
00416     assert( idx == STAND_KEYMACRO );
00417     if (idx == STAND_KEYMACRO){
00418         CKeyMacroMgr* pKeyMacro = dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro );
00419         if( pKeyMacro == NULL ){
00420             //  1. 実体がまだ無い場合
00421             //  2. CKeyMacroMgr以外の物が入っていた場合
00422             //  いずれにしても再生成する．
00423             delete m_pKeyMacro;
00424             m_pKeyMacro = new CKeyMacroMgr;
00425             pKeyMacro = dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro );
00426         }
00427         pKeyMacro->Append( nFuncID, lParam1, pcEditView );
00428     }
00429 //  else {
00430         //m_cSavedKeyMacro[idx]->Append( nFuncID, lParam1, pcEditView );
00431 //  }
00432     return TRUE;
00433 }
00434
00435
00445 BOOL CSMacroMgr::Exec( int idx , HINSTANCE hInstance, CEditView* pcEditView )
00446 {
00447     if( idx == STAND_KEYMACRO ){
00448         //  Jun. 16, 2002 genta
00449         //  キーマクロ以外のサポートによりNULLの可能性が出てきたので判定追加
00450         if( m_pKeyMacro != NULL ){
00451             //  Sep. 15, 2005 FILE
00452             SetCurrentIdx( idx );
00453             m_pKeyMacro->ExecKeyMacro( pcEditView );
00454             //  Sep. 15, 2005 FILE
00455             SetCurrentIdx( INVALID_MACRO_IDX );
00456             return TRUE;
00457         }
00458         else {
00459             return FALSE;
00460         }
00461     }
00462     if( idx < 0 || MAX_CUSTMACRO <= idx )   //  範囲チェック
00463         return FALSE;
00464
00465     /* 読み込み前か、毎回読み込む設定の場合は、ファイルを読み込みなおす */
00466     //  Apr. 29, 2002 genta
00467     if( m_cSavedKeyMacro[idx] == NULL || CShareData::getInstance()->BeReloadWhenExecuteMacro( idx )){
00468         //  CShareDataから、マクロファイル名を取得
00469         //  Jun. 08, 2003 Moca 呼び出し側でパス名を用意
00470         //  Jun. 16, 2003 genta 書式をちょっと変更
00471         char ptr[_MAX_PATH * 2];
00472         int n = CShareData::getInstance()->GetMacroFilename( idx, ptr, sizeof(ptr) );
00473         if ( n <= 0 ){
00474             return FALSE;
00475         }
00476
00477         if( !Load( idx, hInstance, ptr ) )
00478             return FALSE;
00479     }
00480
00481     //  Sep. 15, 2005 FILE
00482     SetCurrentIdx( idx );
00483     m_cSavedKeyMacro[idx]->ExecKeyMacro(pcEditView);
00484     //  Sep. 15, 2005 FILE
00485     SetCurrentIdx( INVALID_MACRO_IDX );
00486
00487     pcEditView->Redraw();   //  必要？
00488     return TRUE;
00489 }
00490
00501 BOOL CSMacroMgr::Load( int idx/* CSMacroMgr::Macro1& mbuf */, HINSTANCE hInstance, const char* pszPath )
00502 {
00503     CMacroManagerBase** ppMacro = Idx2Ptr( idx );
00504
00505     if( ppMacro == NULL ){
00506 #ifdef _DEBUG
00507     MYTRACE( "CSMacroMgr::Load() Out of range: idx=%d Path=%s\n", idx, pszPath);
00508 #endif
00509     }
00510     //  バッファクリア
00511     delete *ppMacro;
00512     *ppMacro = NULL;
00513
00514     const char *ext = strrchr( pszPath, '.');
00515     //  Feb. 02, 2004 genta .が無い場合にext==NULLとなるのでNULLチェック追加
00516     if( ext != NULL ){
00517         const char *chk = strrchr( ext, '\\' );
00518         if( chk != NULL ){  //  .のあとに\があったらそれは拡張子の区切りではない
00519                             //  \が漢字の2バイト目の場合も拡張子ではない。
00520             ext = NULL;
00521         }
00522     }
00523     if(ext != NULL){
00524         ++ext;
00525     }
00526     *ppMacro = CMacroFactory::Instance()->Create(ext);
00527     if( *ppMacro == NULL )
00528         return FALSE;
00529     //  From Here Jun. 16, 2002 genta
00530     //  読み込みエラー時はインスタンス削除
00531     if( (*ppMacro)->LoadKeyMacro(hInstance, pszPath )){
00532         return TRUE;
00533     }
00534     else {
00535         delete *ppMacro;
00536         *ppMacro = NULL;
00537     }
00538     //  To Here Jun. 16, 2002 genta
00539     return FALSE;
00540 }
00541
00550 BOOL CSMacroMgr::Save( int idx/* CSMacroMgr::Macro1& mbuf */, HINSTANCE hInstance, const char* pszPath )
00551 {
00552     assert( idx == STAND_KEYMACRO );
00553     if ( idx == STAND_KEYMACRO ){
00554         CKeyMacroMgr* pKeyMacro = dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro );
00555         if( pKeyMacro != NULL ){
00556             return pKeyMacro->SaveKeyMacro(hInstance, pszPath );
00557         }
00558         //  Jun. 27, 2002 genta
00559         //  空マクロの場合は正常終了と見なす．
00560         if( m_pKeyMacro == NULL ){
00561             return TRUE;
00562         }
00563
00564     }
00565 //  else if ( 0 <= idx && idx < MAX_CUSTMACRO ){
00566 //      return m_cSavedKeyMacro[idx]->SaveKeyMacro(hInstance, pszPath );
00567 //  }
00568     return FALSE;
00569 }
00570
00571 /*
00572     指定されたマクロをクリアする
00573
00574     @param idx [in] マクロ番号(0-), STAND_KEYMACROは標準キーマクロバッファを表す．
00575 */
00576 void CSMacroMgr::Clear( int idx )
00577 {
00578     CMacroManagerBase **ppMacro = Idx2Ptr( idx );
00579     if( ppMacro != NULL ){
00580         delete *ppMacro;
00581         *ppMacro = NULL;
00582     }
00583 }
00584
00585 /*
00586 ||  Attributes & Operations
00587 */
00588 /*
00589     指定されたIDに対応するMacroInfo構造体へのポインタを返す．
00590     該当するIDに対応する構造体がなければNULLを返す．
00591
00592     @param nFuncID [in] 機能番号
00593     @return 構造体へのポインタ．見つからなければNULL
00594
00595     @date 2002.06.16 genta
00596     @data 2003.02.24 m_MacroFuncInfoNotCommandArrも検索対象にする
00597 */
00598 const MacroFuncInfo* CSMacroMgr::GetFuncInfoByID( int nFuncID )
00599 {
00600     int i;
00601     //  Jun. 27, 2002 genta
00602     //  番人をコード0として拾ってしまうので，配列サイズによる判定をやめた．
00603     for( i = 0; m_MacroFuncInfoArr[i].m_pszFuncName != NULL; ++i ){
00604         if( m_MacroFuncInfoArr[i].m_nFuncID == nFuncID ){
00605             return &m_MacroFuncInfoArr[i];
00606         }
00607     }
00608     for( i = 0; m_MacroFuncInfoNotCommandArr[i].m_pszFuncName != NULL; ++i ){
00609         if( m_MacroFuncInfoNotCommandArr[i].m_nFuncID == nFuncID ){
00610             return &m_MacroFuncInfoNotCommandArr[i];
00611         }
00612     }
00613     return NULL;
00614 }
00615
00632 char* CSMacroMgr::GetFuncInfoByID( HINSTANCE hInstance, int nFuncID, char* pszFuncName, char* pszFuncNameJapanese )
00633 {
00634     const MacroFuncInfo* MacroInfo = GetFuncInfoByID( nFuncID );
00635     if( MacroInfo != NULL ){
00636         if( pszFuncName != NULL ){
00637             strcpy( pszFuncName, MacroInfo->m_pszFuncName );
00638             char *p = pszFuncName;
00639             while (*p){
00640                 if (*p == '('){
00641                     *p = '\0';
00642                     break;
00643                 }
00644                 *p++;
00645             }
00646         }
00647         //  Jun. 16, 2002 genta NULLのときは何もしない．
00648         if( pszFuncNameJapanese != NULL ){
00649             ::LoadString( hInstance, nFuncID, pszFuncNameJapanese, 255 );
00650         }
00651         return pszFuncName;
00652     }
00653     return NULL;
00654 }
00655
00670 int CSMacroMgr::GetFuncInfoByName( HINSTANCE hInstance, const char* pszFuncName, char* pszFuncNameJapanese )
00671 {
00672     int     i;
00673     int     nFuncID;
00674     //  Jun. 16, 2002 genta
00675     const char *normalizedFuncName;
00676
00677     //  S_で始まっているか
00678     if( pszFuncName == NULL ){
00679         return -1;
00680     }
00681     if( pszFuncName[0] == 'S' && pszFuncName[1] == '_' ){
00682         normalizedFuncName = pszFuncName + 2;
00683     }
00684     else {
00685         normalizedFuncName = pszFuncName;
00686     }
00687
00688     char szBuffer[1024] = "S_";
00689     for( i = 0; m_MacroFuncInfoArr[i].m_pszFuncName != NULL; ++i ){
00690         if( 0 == strcmp( normalizedFuncName, m_MacroFuncInfoArr[i].m_pszFuncName )){
00691             nFuncID = m_MacroFuncInfoArr[i].m_nFuncID;
00692             if( pszFuncNameJapanese != NULL ){
00693                 ::LoadString( hInstance, nFuncID, pszFuncNameJapanese, 255 );
00694             }
00695             return nFuncID;
00696         }
00697     }
00698     return -1;
00699 }
00700
00701 /* キーマクロに記録可能な機能かどうかを調べる */
00702 BOOL CSMacroMgr::CanFuncIsKeyMacro( int nFuncID )
00703 {
00704     switch( nFuncID ){
00705     /* ファイル操作系 */
00706 //  case F_FILENEW                  ://新規作成
00707 //  case F_FILEOPEN                 ://開く
00708 //  case F_FILESAVE                 ://上書き保存
00709 //  case F_FILESAVEAS_DIALOG        ://名前を付けて保存
00710 //  case F_FILECLOSE                ://閉じて(無題) //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00711 //  case F_FILECLOSE_OPEN           ://閉じて開く
00712     case F_FILE_REOPEN              ://開き直す //Dec. 4, 2002 genta
00713     case F_FILE_REOPEN_SJIS         ://SJISで開き直す
00714     case F_FILE_REOPEN_JIS          ://JISで開き直す
00715     case F_FILE_REOPEN_EUC          ://EUCで開き直す
00716     case F_FILE_REOPEN_UNICODE      ://Unicodeで開き直す
00717     case F_FILE_REOPEN_UNICODEBE    ://UnicodeBEで開き直す
00718     case F_FILE_REOPEN_UTF8         ://UTF-8で開き直す
00719     case F_FILE_REOPEN_UTF7         ://UTF-7で開き直す
00720 //  case F_PRINT                    ://印刷
00721 //  case F_PRINT_DIALOG             ://印刷ダイアログ
00722 //  case F_PRINT_PREVIEW            ://印刷プレビュー
00723 //  case F_PRINT_PAGESETUP          ://印刷ページ設定   //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00724 //  case F_OPEN_HfromtoC:           ://同名のC/C++ヘッダ(ソース)を開く  //Feb. 9, 2001 JEPRO 追加
00725 //  case F_OPEN_HHPP                ://同名のC/C++ヘッダファイルを開く  //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00726 //  case F_OPEN_CCPP                ://同名のC/C++ソースファイルを開く  //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00727 //  case F_ACTIVATE_SQLPLUS         :/* Oracle SQL*Plusをアクティブ表示 */
00728 //  case F_PLSQL_COMPILE_ON_SQLPLUS :/* Oracle SQL*Plusで実行 */    //Sept. 17, 2000 jepro 説明の「コンパイル」を「実行」に統一
00730 //  case F_PROPERTY_FILE            ://ファイルのプロパティ
00731 //  case F_EXITALLEDITORS           ://編集の全終了 // 2007.02.13 ryoji 追加
00732 //  case F_EXITALL                  ://サクラエディタの全終了   //Dec. 27, 2000 JEPRO 追加
00733 //  case F_PUTFILE                  ://作業中ファイルの一時出力 2006.12.10 maru
00734 //  case F_INSFILE                  ://キャレット位置にファイル挿入 2006.12.10 maru
00735
00736
00737     /* 編集系 */
00738     case F_CHAR                     ://文字入力
00739     case F_IME_CHAR                 ://全角文字入力
00740     case F_UNDO                     ://元に戻す(Undo)
00741     case F_REDO                     ://やり直し(Redo)
00742     case F_DELETE                   ://削除
00743     case F_DELETE_BACK              ://カーソル前を削除
00744     case F_WordDeleteToStart        ://単語の左端まで削除
00745     case F_WordDeleteToEnd          ://単語の右端まで削除
00746     case F_WordCut                  ://単語切り取り
00747     case F_WordDelete               ://単語削除
00748     case F_LineCutToStart           ://行頭まで切り取り(改行単位)
00749     case F_LineCutToEnd             ://行末まで切り取り(改行単位)
00750     case F_LineDeleteToStart        ://行頭まで削除(改行単位)
00751     case F_LineDeleteToEnd          ://行末まで削除(改行単位)
00752     case F_CUT_LINE                 ://行切り取り(折り返し単位)
00753     case F_DELETE_LINE              ://行削除(折り返し単位)
00754     case F_DUPLICATELINE            ://行の二重化(折り返し単位)
00755     case F_INDENT_TAB               ://TABインデント
00756     case F_UNINDENT_TAB             ://逆TABインデント
00757     case F_INDENT_SPACE             ://SPACEインデント
00758     case F_UNINDENT_SPACE           ://逆SPACEインデント
00759     case F_LTRIM                    :// 2001.12.03 hor
00760     case F_RTRIM                    :// 2001.12.03 hor
00761     case F_SORT_ASC                 :// 2001.12.06 hor
00762     case F_SORT_DESC                :// 2001.12.06 hor
00763     case F_MERGE                    :// 2001.12.06 hor
00764
00765     /* カーソル移動系 */
00766     case F_UP                       ://カーソル上移動
00767     case F_DOWN                     ://カーソル下移動
00768     case F_LEFT                     ://カーソル左移動
00769     case F_RIGHT                    ://カーソル右移動
00770 //  case F_ROLLDOWN                 ://スクロールダウン
00771 //  case F_ROLLUP                   ://スクロールアップ
00772 //  case F_HalfPageUp               ://半ページアップ   //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00773 //  case F_HalfPageDown             ://半ページダウン   //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00774 //  case F_1PageUp                  ://１ページアップ   //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00775 //  case F_1PageDown                ://１ページダウン   //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00776     case F_UP2                      ://カーソル上移動(２行ごと)
00777     case F_DOWN2                    ://カーソル下移動(２行ごと)
00778     case F_GOLINETOP                ://行頭に移動(折り返し単位)
00779     case F_GOLINEEND                ://行末に移動(折り返し単位)
00780     case F_GOFILETOP                ://ファイルの先頭に移動
00781     case F_GOFILEEND                ://ファイルの最後に移動
00782     case F_WORDLEFT                 ://単語の左端に移動
00783     case F_WORDRIGHT                ://単語の右端に移動
00784 //  case F_CURLINECENTER            ://カーソル行をウィンドウ中央へ
00785     case F_JUMPHIST_PREV            ://移動履歴: 前へ
00786     case F_JUMPHIST_NEXT            ://移動履歴: 次へ
00787     case F_JUMPHIST_SET             ://現在位置を移動履歴に登録
00788
00789     /* 選択系 */    //Oct. 15, 2000 JEPRO 「カーソル移動系」が多くなったので独立化して(選択)を移動(サブメニュー化は構造上できないので)
00790     case F_SELECTWORD               ://現在位置の単語選択
00791     case F_SELECTALL                ://すべて選択
00792     case F_BEGIN_SEL                ://範囲選択開始
00793     case F_UP_SEL                   ://(範囲選択)カーソル上移動
00794     case F_DOWN_SEL                 ://(範囲選択)カーソル下移動
00795     case F_LEFT_SEL                 ://(範囲選択)カーソル左移動
00796     case F_RIGHT_SEL                ://(範囲選択)カーソル右移動
00797     case F_UP2_SEL                  ://(範囲選択)カーソル上移動(２行ごと)
00798     case F_DOWN2_SEL                ://(範囲選択)カーソル下移動(２行ごと)
00799     case F_WORDLEFT_SEL             ://(範囲選択)単語の左端に移動
00800     case F_WORDRIGHT_SEL            ://(範囲選択)単語の右端に移動
00801     case F_GOLINETOP_SEL            ://(範囲選択)行頭に移動(折り返し単位)
00802     case F_GOLINEEND_SEL            ://(範囲選択)行末に移動(折り返し単位)
00803 //  case F_ROLLDOWN_SEL             ://(範囲選択)スクロールダウン
00804 //  case F_ROLLUP_SEL               ://(範囲選択)スクロールアップ
00805 //  case F_HalfPageUp_Sel           ://(範囲選択)半ページアップ //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00806 //  case F_HalfPageDown_Sel         ://(範囲選択)半ページダウン //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00807 //  case F_1PageUp_Sel              ://(範囲選択)１ページアップ //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00808 //  case F_1PageDown_Sel            ://(範囲選択)１ページダウン //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00809     case F_GOFILETOP_SEL            ://(範囲選択)ファイルの先頭に移動
00810     case F_GOFILEEND_SEL            ://(範囲選択)ファイルの最後に移動
00811
00812     /* 矩形選択系 */    //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00813 //  case F_BOXSELALL                //矩形ですべて選択
00814     case F_BEGIN_BOX                ://矩形範囲選択開始
00815 /*
00816     case F_UP_BOX                   ://(矩形選択)カーソル上移動
00817     case F_DOWN_BOX                 ://(矩形選択)カーソル下移動
00818     case F_LEFT_BOX                 ://(矩形選択)カーソル左移動
00819     case F_RIGHT_BOX                ://(矩形選択)カーソル右移動
00820     case F_UP2_BOX                  ://(矩形選択)カーソル上移動(２行ごと)
00821     case F_DOWN2_BOX                ://(矩形選択)カーソル下移動(２行ごと)
00822     case F_WORDLEFT_BOX             ://(矩形選択)単語の左端に移動
00823     case F_WORDRIGHT_BOX            ://(矩形選択)単語の右端に移動
00824     case F_GOLINETOP_BOX            ://(矩形選択)行頭に移動(折り返し単位)
00825     case F_GOLINEEND_BOX            ://(矩形選択)行末に移動(折り返し単位)
00826     case F_HalfPageUp_Box           ://(矩形選択)半ページアップ
00827     case F_HalfPageDown_Box         ://(矩形選択)半ページダウン
00828     case F_1PageUp_Box              ://(矩形選択)１ページアップ
00829     case F_1PageDown_Box            ://(矩形選択)１ページダウン
00830     case F_GOFILETOP_BOX            ://(矩形選択)ファイルの先頭に移動
00831     case F_GOFILEEND_BOX            ://(矩形選択)ファイルの最後に移動
00832 */
00833     /* クリップボード系 */
00834     case F_CUT                      ://切り取り(選択範囲をクリップボードにコピーして削除)
00835     case F_COPY                     ://コピー(選択範囲をクリップボードにコピー)
00836     case F_COPY_ADDCRLF             ://折り返し位置に改行をつけてコピー
00837     case F_COPY_CRLF                ://CRLF改行でコピー(選択範囲を改行コード=CRLFでコピー)
00838     case F_PASTE                    ://貼り付け(クリップボードから貼り付け)
00839     case F_PASTEBOX                 ://矩形貼り付け(クリップボードから矩形貼り付け)
00840     case F_INSTEXT                  ://テキストを貼り付け
00841 //  case F_ADDTAIL                  ://最後にテキストを追加
00842     case F_COPYLINES                ://選択範囲内全行コピー
00843     case F_COPYLINESASPASSAGE       ://選択範囲内全行引用符付きコピー
00844     case F_COPYLINESWITHLINENUMBER  ://選択範囲内全行行番号付きコピー
00845     case F_COPYPATH                 ://このファイルのパス名をクリップボードにコピー
00846     case F_COPYTAG                  ://このファイルのパス名とカーソル位置をコピー   //Sept. 15, 2000 jepro 上と同じ説明になっていたのを修正
00847     case F_COPYFNAME                ://このファイル名をクリップボードにコピー // 2002/2/3 aroka
00848     case F_CREATEKEYBINDLIST        ://キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO 追加 //Dec. 25, 2000 復活
00849
00850     /* 挿入系 */
00851     case F_INS_DATE                 :// 日付挿入
00852     case F_INS_TIME                 :// 時刻挿入
00853 //  case F_CTRL_CODE_DIALOG         ://コントロールコードの入力(ダイアログ) //@@@ 2002.06.02 MIK
00854
00855     /* 変換系 */
00856     case F_TOLOWER                  ://小文字
00857     case F_TOUPPER                  ://大文字
00858     case F_TOHANKAKU                :/* 全角→半角 */
00859     case F_TOHANKATA                :/* 全角カタカナ→半角カタカナ */   //Aug. 29, 2002 ai
00860     case F_TOZENEI                  :/* 半角英数→全角英数 */           //July. 30, 2001 Misaka
00861     case F_TOHANEI                  :/* 全角英数→半角英数 */
00862     case F_TOZENKAKUKATA            :/* 半角＋全ひら→全角・カタカナ */ //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00863     case F_TOZENKAKUHIRA            :/* 半角＋全カタ→全角・ひらがな */ //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00864     case F_HANKATATOZENKAKUKATA     :/* 半角カタカナ→全角カタカナ */
00865     case F_HANKATATOZENKAKUHIRA     :/* 半角カタカナ→全角ひらがな */
00866     case F_TABTOSPACE               :/* TAB→空白 */
00867     case F_SPACETOTAB               :/* 空白→TAB */  //#### Stonee, 2001/05/27
00868     case F_CODECNV_AUTO2SJIS        :/* 自動判別→SJISコード変換 */
00869     case F_CODECNV_EMAIL            ://E-Mail(JIS→SJIS)コード変換
00870     case F_CODECNV_EUC2SJIS         ://EUC→SJISコード変換
00871     case F_CODECNV_UNICODE2SJIS     ://Unicode→SJISコード変換
00872     case F_CODECNV_UNICODEBE2SJIS   ://UnicodeBE→SJISコード変換
00873     case F_CODECNV_UTF82SJIS        :/* UTF-8→SJISコード変換 */
00874     case F_CODECNV_UTF72SJIS        :/* UTF-7→SJISコード変換 */
00875     case F_CODECNV_SJIS2JIS         :/* SJIS→JISコード変換 */
00876     case F_CODECNV_SJIS2EUC         :/* SJIS→EUCコード変換 */
00877     case F_CODECNV_SJIS2UTF8        :/* SJIS→UTF-8コード変換 */
00878     case F_CODECNV_SJIS2UTF7        :/* SJIS→UTF-7コード変換 */
00879 //  case F_BASE64DECODE             ://Base64デコードして保存
00880 //  case F_UUDECODE                 ://uudecodeして保存 //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00881
00882     /* 検索系 */
00883 //  case F_SEARCH_DIALOG            ://検索(単語検索ダイアログ)
00884     case F_SEARCH_NEXT              ://次を検索
00885     case F_SEARCH_PREV              ://前を検索
00886     case F_REPLACE                  ://置換(実行)
00887     case F_REPLACE_ALL              ://すべて置換(実行)
00888     case F_SEARCH_CLEARMARK         ://検索マークのクリア
00889     case F_JUMP_SRCHSTARTPOS        ://検索開始位置へ戻る       // 02/06/26 ai
00890     case F_GREP                     ://Grep
00891 //  case F_JUMP_DIALOG              ://指定行ヘジャンプ
00892     case F_JUMP                     ://指定行へジャンプ @@@ 2002.2.2 YAZAKI
00893 //  case F_OUTLINE                  ://アウトライン解析
00894     case F_TAGJUMP                  ://タグジャンプ機能
00895     case F_TAGJUMPBACK              ://タグジャンプバック機能
00896 //  case F_TAGS_MAKE                ://タグファイルの作成   //@@@ 2003.04.13 MIK
00897 //  case F_COMPARE                  ://ファイル内容比較
00898 //  case F_DIFF_DIALOG              ://DIFF差分表示(ダイアログ) //@@@ 2002.05.25 MIK
00899 //  case F_DIFF                     ://DIFF差分表示             //@@@ 2002.05.25 MIK
00900 //  case F_DIFF_NEXT                ://DIFF差分表示(次へ)       //@@@ 2002.05.25 MIK
00901 //  case F_DIFF_PREV                ://DIFF差分表示(前へ)       //@@@ 2002.05.25 MIK
00902 //  case F_DIFF_RESET               ://DIFF差分表示(全解除)     //@@@ 2002.05.25 MIK
00903     case F_BRACKETPAIR              ://対括弧の検索
00904 // From Here 2001.12.03 hor
00905     case F_BOOKMARK_SET             ://ブックマーク設定・解除
00906     case F_BOOKMARK_NEXT            ://次のブックマークへ
00907     case F_BOOKMARK_PREV            ://前のブックマークへ
00908     case F_BOOKMARK_RESET           ://ブックマークの全解除
00909 //  case F_BOOKMARK_VIEW            ://ブックマークの一覧
00910 // To Here 2001.12.03 hor
00911     case F_BOOKMARK_PATTERN         ://検索しして該当行をマーク // 2002.02.08 hor
00912
00913     /* モード切り替え系 */
00914     case F_CHGMOD_INS               ://挿入／上書きモード切り替え
00915     case F_CHGMOD_EOL               ://入力改行コード指定   2003.06.23 Moca
00916
00917     case F_CANCEL_MODE              ://各種モードの取り消し
00918
00919     /* 設定系 */
00920 //  case F_SHOWTOOLBAR              :/* ツールバーの表示 */
00921 //  case F_SHOWFUNCKEY              :/* ファンクションキーの表示 */
00922 //  case F_SHOWTAB                  :/* タブの表示 */
00923 //  case F_SHOWSTATUSBAR            :/* ステータスバーの表示 */
00924 //  case F_TYPE_LIST                :/* タイプ別設定一覧 */
00925 //  case F_OPTION_TYPE              :/* タイプ別設定 */
00926 //  case F_OPTION                   :/* 共通設定 */
00927 //  case F_FONT                     :/* フォント設定 */
00928 //  case F_WRAPWINDOWWIDTH          :/* 現在のウィンドウ幅で折り返し */ //Oct. 15, 2000 JEPRO
00929 //  case F_FAVORITE                 :/* 履歴の管理 */   //@@@ 2003.04.08 MIK
00930
00931     case F_EXECCOMMAND              :/* 外部コマンド実行 */ //@@@2002.2.2 YAZAKI 追加
00932
00933     /* カスタムメニュー */
00934 //  case F_MENU_RBUTTON             :/* 右クリックメニュー */
00935 //  case F_CUSTMENU_1               :/* カスタムメニュー1 */
00936 //  case F_CUSTMENU_2               :/* カスタムメニュー2 */
00937 //  case F_CUSTMENU_3               :/* カスタムメニュー3 */
00938 //  case F_CUSTMENU_4               :/* カスタムメニュー4 */
00939 //  case F_CUSTMENU_5               :/* カスタムメニュー5 */
00940 //  case F_CUSTMENU_6               :/* カスタムメニュー6 */
00941 //  case F_CUSTMENU_7               :/* カスタムメニュー7 */
00942 //  case F_CUSTMENU_8               :/* カスタムメニュー8 */
00943 //  case F_CUSTMENU_9               :/* カスタムメニュー9 */
00944 //  case F_CUSTMENU_10              :/* カスタムメニュー10 */
00945 //  case F_CUSTMENU_11              :/* カスタムメニュー11 */
00946 //  case F_CUSTMENU_12              :/* カスタムメニュー12 */
00947 //  case F_CUSTMENU_13              :/* カスタムメニュー13 */
00948 //  case F_CUSTMENU_14              :/* カスタムメニュー14 */
00949 //  case F_CUSTMENU_15              :/* カスタムメニュー15 */
00950 //  case F_CUSTMENU_16              :/* カスタムメニュー16 */
00951 //  case F_CUSTMENU_17              :/* カスタムメニュー17 */
00952 //  case F_CUSTMENU_18              :/* カスタムメニュー18 */
00953 //  case F_CUSTMENU_19              :/* カスタムメニュー19 */
00954 //  case F_CUSTMENU_20              :/* カスタムメニュー20 */
00955 //  case F_CUSTMENU_21              :/* カスタムメニュー21 */
00956 //  case F_CUSTMENU_22              :/* カスタムメニュー22 */
00957 //  case F_CUSTMENU_23              :/* カスタムメニュー23 */
00958 //  case F_CUSTMENU_24              :/* カスタムメニュー24 */
00959
00960     /* ウィンドウ系 */
00961 //  case F_SPLIT_V                  ://上下に分割   //Sept. 16, 2000 jepro 説明を「縦」から「上下に」に変更
00962 //  case F_SPLIT_H                  ://左右に分割   //Sept. 16, 2000 jepro 説明を「横」から「左右に」に変更
00963 //  case F_SPLIT_VH                 ://縦横に分割   //Sept. 17, 2000 jepro 説明に「に」を追加
00964 //  case F_WINCLOSE                 ://ウィンドウを閉じる
00965 //  case F_WIN_CLOSEALL             ://すべてのウィンドウを閉じる   //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00966 //  case F_NEXTWINDOW               ://次のウィンドウ
00967 //  case F_PREVWINDOW               ://前のウィンドウ
00968 //  case F_CASCADE                  ://重ねて表示
00969 //  case F_TILE_V                   ://上下に並べて表示
00970 //  case F_TILE_H                   ://左右に並べて表示
00971 //  case F_MAXIMIZE_V               ://縦方向に最大化
00972 //  case F_MINIMIZE_ALL             ://すべて最小化 //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00973     case F_REDRAW                   ://再描画
00974     case F_WIN_OUTPUT               ://アウトプットウィンドウ表示
00975 //  case F_TRACEOUT                 ://マクロ用アウトプットウィンドウに表示 2006.04.26 maru
00976     case F_TOPMOST                  ://常に手前に表示
00977 //  case F_GROUPCLOSE               ://グループを閉じる // 2007.06.20 ryoji
00978 //  case F_NEXTGROUP                ://次のグループ // 2007.06.20 ryoji
00979 //  case F_PREVGROUP                ://前のグループ // 2007.06.20 ryoji
00980 //  case F_TAB_MOVERIGHT            ://タブを右に移動   // 2007.06.20 ryoji
00981 //  case F_TAB_MOVELEFT             ://タブを左に移動   // 2007.06.20 ryoji
00982 //  case F_TAB_SEPARATE             ://新規グループ // 2007.06.20 ryoji
00983 //  case F_TAB_JOINTNEXT            ://次のグループに移動   // 2007.06.20 ryoji
00984 //  case F_TAB_JOINTPREV            ://前のグループに移動   // 2007.06.20 ryoji
00985
00986     /* 支援 */
00987 //  case F_HOKAN                    :/* 入力補完 */             //Oct. 15, 2000 JEPRO 入ってなかったので入れてみた
00988 //  case F_HELP_CONTENTS            :/* ヘルプ目次 */           //Dec. 25, 2000 JEPRO 追加
00989 //  case F_HELP_SEARCH              :/* ヘルプキーワード検索 */ //Dec. 25, 2000 JEPRO 追加
00990 //  case F_MENU_ALLFUNC             :/* コマンド一覧 */
00991 //  case F_EXTHELP1                 :/* 外部ヘルプ１ */
00992 //  case F_EXTHTMLHELP              :/* 外部HTMLヘルプ */
00993 //  case F_ABOUT                    :/* バージョン情報 */       //Dec. 25, 2000 JEPRO 追加
00994
00995     /* その他 */
00996 //  case F_SENDMAIL                 :/* メール送信 */
00997         return TRUE;
00998     }
00999     return FALSE;
01000
01001 }
01002
01009 CMacroManagerBase** CSMacroMgr::Idx2Ptr(int idx)
01010 {
01011     //  Jun. 16, 2002 genta
01012     //  キーマクロ以外のマクロを読み込めるように
01013     if ( idx == STAND_KEYMACRO ){
01014         return &m_pKeyMacro;
01015     }
01016     else if ( 0 <= idx && idx < MAX_CUSTMACRO ){
01017         return &m_cSavedKeyMacro[idx];
01018     }
01019
01020 #ifdef _DEBUG
01021     MYTRACE( "CSMacroMgr::Idx2Ptr() Out of range: idx=%d\n", idx);
01022 #endif
01023
01024     return NULL;
01025 }
01026
01033 BOOL CSMacroMgr::IsSaveOk(void)
01034 {
01035     return dynamic_cast<CKeyMacroMgr*>( m_pKeyMacro ) == NULL ? FALSE : TRUE;
01036 }
01037 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSMacroMgr.h

CSMacroMgr.h

キーボードマクロ(直接実行用) [詳細]

#include <windows.h>
#include "CKeyMacroMgr.h"
#include "CShareData.h"

CSMacroMgr.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | MacroFuncInfo
class | CSMacroMgr

マクロ定義

#define | STAND_KEYMACRO -1
#define | SAVED_KEYMACRO 0

変数

const int | INVALID_MACRO_IDX = -2
無効なマクロのインデックス番号

説明

キーボードマクロ(直接実行用)

作者:
genta
日付:
Sep. 29, 2001 作成

CSMacroMgr.h で定義されています。

マクロ定義

#define SAVED_KEYMACRO 0

CSMacroMgr.h の 46 行で定義されています。

#define STAND_KEYMACRO -1

CSMacroMgr.h の 45 行で定義されています。

参照元 CSMacroMgr::Append()・CEditView::Command_EXECKEYMACRO()・CEditView::Command_RECKEYMACRO()・CSMacroMgr::Exec()・CSMacroMgr::Idx2Ptr()・CSMacroMgr::Save().

変数

const int INVALID_MACRO_IDX = -2

無効なマクロのインデックス番号

日付:
Sep. 15, 2005 FILE

CSMacroMgr.h の 48 行で定義されています。

参照元 CSMacroMgr::Exec().

Sakura-Editorに対してSat Oct 27 02:22:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSMacroMgr.h ソースファイル

CSMacroMgr.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2001, genta
00009     Copyright (C) 2002, YAZAKI, genta
00010     Copyright (C) 2005, FILE
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032
00033 #ifndef _CSMACROMGR_H_
00034 #define _CSMACROMGR_H_
00035
00036 #include <windows.h>
00037
00038 #include "CKeyMacroMgr.h"
00039 #include "CShareData.h"
00040
00041 //using namespace std;
00042
00043 class CEditView;
00044
00045 #define STAND_KEYMACRO  -1  //  標準マクロ（保存ができる）
00046 #define SAVED_KEYMACRO  0   //  保存されたマクロ
00047
00048 const int INVALID_MACRO_IDX = -2;
00049
00050 //  関数名はCSMacroMgrが持つ
00051 struct MacroFuncInfo {
00052     int     m_nFuncID;
00053     char *  m_pszFuncName;
00054 //      char *  m_pszFuncParam;
00055     VARTYPE m_varArguments[4]; //引数の型の配列
00056 //      int     m_ArgumentCount; //引数の数
00057     VARTYPE m_varResult; //戻り値の型 VT_EMPTYならprocedureということで
00058     char *  m_pszData;
00059 };
00060
00061 /*-----------------------------------------------------------------------
00062 クラスの宣言
00063
00064 @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00065 -----------------------------------------------------------------------*/
00066 class CSMacroMgr
00067 {
00068     //  データの型宣言
00069     CMacroManagerBase* m_cSavedKeyMacro[MAX_CUSTMACRO]; //  キーマクロをカスタムメニューの数だけ管理
00070     //  Jun. 16, 2002 genta
00071     //  キーマクロに標準マクロ以外のマクロを読み込めるように
00072     CMacroManagerBase* m_pKeyMacro; //  標準の（保存ができる）キーマクロも管理
00073
00074 public:
00075
00076     /*
00077     ||  Constructors
00078     */
00079     CSMacroMgr();
00080     ~CSMacroMgr();
00081
00082     /*
00083     ||  Attributes & Operations
00084     */
00085     void Clear( int idx );
00086     void ClearAll( void );  /* キーマクロのバッファをクリアする */
00087
00089     BOOL Exec( int idx, HINSTANCE hInstance, CEditView* pcEditView );
00090
00092     bool IsEnabled(int idx) const {
00093         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00094         m_pShareData->m_MacroTable[idx].IsEnabled() : false;
00095     }
00096
00098     const char* GetTitle(int idx) const {
00099         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00100             ( m_pShareData->m_MacroTable[idx].m_szName[0] == '\0' ?
00101                 m_pShareData->m_MacroTable[idx].m_szFile :
00102                 m_pShareData->m_MacroTable[idx].m_szName)
00103             : NULL;
00104     }
00105
00107     const char* GetName(int idx) const {
00108         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00109         m_pShareData->m_MacroTable[idx].m_szName : NULL;
00110     }
00111
00116     const char* GetFile(int idx) const {
00117         return ( 0 <= idx || idx < MAX_CUSTMACRO ) ?
00118         m_pShareData->m_MacroTable[idx].m_szFile : NULL;
00119     }
00120
00122     BOOL Load( int idx, HINSTANCE hInstance, const char* pszPath );
00123     BOOL Save( int idx, HINSTANCE hInstance, const char* pszPath );
00124
00126     int Append( int idx, int nFuncID, LPARAM lParam1, CEditView* pcEditView );
00127
00128     /*
00129     ||  Attributes & Operations
00130     */
00131     static char* GetFuncInfoByID( HINSTANCE , int , char* , char* );    /* 機能ID→関数名，機能名日本語 */
00132     static int GetFuncInfoByName( HINSTANCE , const char* , char* );    /* 関数名→機能ID，機能名日本語 */
00133     static BOOL CanFuncIsKeyMacro( int );   /* キーマクロに記録可能な機能かどうかを調べる */
00134
00135     //  Jun. 16, 2002 genta
00136     static const MacroFuncInfo* GetFuncInfoByID( int );
00137
00138     BOOL IsSaveOk(void);
00139
00140     //  Sep. 15, 2005 FILE  実行中マクロのインデックス番号操作 (INVALID_MACRO_IDX:無効)
00141     int GetCurrentIdx( void ) const {
00142         return m_CurrentIdx;
00143     }
00144     void SetCurrentIdx( int idx ) {
00145         m_CurrentIdx = idx;
00146     }
00147
00148 private:
00149     DLLSHAREDATA*   m_pShareData;
00150     CMacroManagerBase** Idx2Ptr(int idx);
00151
00155     int m_CurrentIdx;
00156
00157 public:
00158     static MacroFuncInfo    m_MacroFuncInfoArr[];
00159     static MacroFuncInfo    m_MacroFuncInfoNotCommandArr[];
00160 };
00161
00162
00163
00165 #endif /* _CSMacroMGR_H_ */
00166
00167
00168 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSortedTagJumpList.cpp

CSortedTagJumpList.cpp

タグジャンプリスト [詳細]

#include "stdafx.h"
#include "CSortedTagJumpList.h"
#include "my_icmp.h"

CSortedTagJumpList.cppのインクルード依存関係図

ソースコードを見る。

説明

タグジャンプリスト

作者:
MIK
日付:
2005.3.31

CSortedTagJumpList.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSortedTagJumpList.cpp ソースファイル

CSortedTagJumpList.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2005, MIK, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #include "stdafx.h"
00032 #include "CSortedTagJumpList.h"
00033 #include "my_icmp.h"
00034
00038 CSortedTagJumpList::CSortedTagJumpList(int max)
00039     : m_MAX_TAGJUMPLIST( max ),
00040       m_pTagjump( NULL ),
00041       m_nCount( 0 ),
00042       m_bOverflow( false )
00043 {
00044 }
00045
00046 CSortedTagJumpList::~CSortedTagJumpList()
00047 {
00048     Empty();
00049 }
00050
00051 /*
00052     指定されたアイテムのメモリを解放する。
00053
00054     @param[in] item 削除するアイテム
00055 */
00056 void CSortedTagJumpList::Free( TagJumpInfo* item )
00057 {
00058     free( item->keyword );
00059     free( item->filename );
00060     free( item->note );
00061     free( item );
00062     return;
00063 }
00064
00065 /*
00066     リストをすべて解放する。
00067 */
00068 void CSortedTagJumpList::Empty( void )
00069 {
00070     TagJumpInfo*    p;
00071     TagJumpInfo*    next;
00072     for( p = m_pTagjump; p; p = next )
00073     {
00074         next = p->next;
00075         Free( p );
00076     }
00077     m_pTagjump = NULL;
00078     m_nCount = 0;
00079     m_bOverflow = false;
00080 }
00081
00082 /*
00083     アイテムをソートされた状態でリストに追加する。
00084     アイテムが最大数を超える場合は、超えるアイテムを削除する。
00085
00086     @param[in] keyword  キーワード
00087     @param[in] filename ファイル名
00088     @param[in] no       行番号
00089     @param[in] type     種類
00090     @param[in] note     備考
00091     @param[in] depth    (さかのぼる)階層
00092     @return 処理結果
00093 */
00094 BOOL CSortedTagJumpList::AddParam( TCHAR* keyword, TCHAR* filename, int no, TCHAR type, TCHAR* note, int depth )
00095 {
00096     TagJumpInfo*    p;
00097     TagJumpInfo*    prev;
00098     TagJumpInfo*    item;
00099
00100     //アイテムを作成する。
00101     item = (TagJumpInfo*)malloc( sizeof( TagJumpInfo ) );
00102     if( NULL == item ) return FALSE;
00103     item->keyword  = _tcsdup( keyword );
00104     item->filename = _tcsdup( filename );
00105     item->no       = no;
00106     item->type     = type;
00107     item->note     = _tcsdup( note );
00108     item->depth    = depth;
00109     item->next     = NULL;
00110
00111     //文字列長ガード
00112     if( _tcslen( item->keyword  ) >= MAX_TAG_STRING_LENGTH ) item->keyword[  MAX_TAG_STRING_LENGTH-1 ] = 0;
00113     if( _tcslen( item->filename ) >= MAX_TAG_STRING_LENGTH ) item->filename[ MAX_TAG_STRING_LENGTH-1 ] = 0;
00114     if( _tcslen( item->note     ) >= MAX_TAG_STRING_LENGTH ) item->note[     MAX_TAG_STRING_LENGTH-1 ] = 0;
00115
00116     //アイテムをリストの適当な位置に追加する。
00117     prev = NULL;
00118     for( p = m_pTagjump; p; p = p->next )
00119     {
00120         if( _tcscmp( p->keyword, item->keyword ) > 0 ) break;
00121         prev = p;
00122     }
00123     item->next = p;
00124     if( prev ) prev->next = item;
00125     else       m_pTagjump = item;
00126     m_nCount++;
00127
00128     //最大数を超えたら最後のアイテムを削除する。
00129     if( m_nCount > m_MAX_TAGJUMPLIST )
00130     {
00131         prev = NULL;
00132         for( p = m_pTagjump; p->next; p = p->next ) prev = p;
00133         if( prev ) prev->next = NULL;
00134         else       m_pTagjump = NULL;
00135         Free( p );
00136         m_nCount--;
00137         m_bOverflow = true;
00138     }
00139     return TRUE;
00140 }
00141
00142 /*
00143     指定の情報を取得する。
00144
00145     @param[out] keyword     キーワード
00146     @param[out] filename    ファイル名
00147     @param[out] no          行番号
00148     @param[out] type        種類
00149     @param[out] note        備考
00150     @param[out] depth       (さかのぼる)階層
00151     @return 処理結果
00152
00153     @note 不要な情報の場合は引数に NULL を指定する。
00154 */
00155 BOOL CSortedTagJumpList::GetParam( int index, TCHAR* keyword, TCHAR* filename, int* no, TCHAR* type, TCHAR* note, int* depth )
00156 {
00157     if( keyword  ) _tcscpy( keyword, _T("") );
00158     if( filename ) _tcscpy( filename, _T("") );
00159     if( no       ) *no    = 0;
00160     if( type     ) *type  = 0;
00161     if( note     ) _tcscpy( note, _T("") );
00162     if( depth    ) *depth = 0;
00163
00164     CSortedTagJumpList::TagJumpInfo* p;
00165     p = GetPtr( index );
00166     if( NULL != p )
00167     {
00168         if( keyword  ) _tcscpy( keyword, p->keyword );
00169         if( filename ) _tcscpy( filename, p->filename );
00170         if( no       ) *no    = p->no;
00171         if( type     ) *type  = p->type;
00172         if( note     ) _tcscpy( note, p->note );
00173         if( depth    ) *depth = p->depth;
00174         return TRUE;
00175     }
00176     return FALSE;
00177 }
00178
00179 /*
00180     指定の情報を構造体ポインタで取得する。
00181     取得した情報は参照なので解放してはならない。
00182
00183     @param[in] index 要素番号
00184     @return タグジャンプ情報
00185 */
00186 CSortedTagJumpList::TagJumpInfo* CSortedTagJumpList::GetPtr( int index )
00187 {
00188     TagJumpInfo*    p;
00189     int i;
00190     i = 0;
00191     for( p = m_pTagjump; p; p = p->next )
00192     {
00193         if( index == i ) return p;
00194         i++;
00195     }
00196     return NULL;
00197 }
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSortedTagJumpList.h

CSortedTagJumpList.h

タグジャンプリスト [詳細]

#include "global.h"

CSortedTagJumpList.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CSortedTagJumpList
ダイレクトタグジャンプ用検索結果をソートして保持する． [詳細]
struct | CSortedTagJumpList::tagjump_info_t

マクロ定義

#define | MAX_TAG_STRING_LENGTH _MAX_PATH

説明

タグジャンプリスト

作者:
MIK
日付:
2005.3.31

CSortedTagJumpList.h で定義されています。

マクロ定義

#define MAX_TAG_STRING_LENGTH _MAX_PATH

CSortedTagJumpList.h の 36 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CDlgTagJumpList::GetData()・CDlgTagJumpList::GetNameByType()・CDlgTagJumpList::OnTimer().

Sakura-Editorに対してSat Oct 27 02:22:38 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSortedTagJumpList.h ソースファイル

CSortedTagJumpList.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2005, MIK, genta
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030
00031 #ifndef _CSORTED_TAGJUMP_LIST_H_
00032 #define _CSORTED_TAGJUMP_LIST_H_
00033
00034 #include "global.h"
00035
00036 #define MAX_TAG_STRING_LENGTH _MAX_PATH //管理する文字列の最大長
00037
00041 class CSortedTagJumpList {
00042 public:
00043     CSortedTagJumpList(int max);
00044     ~CSortedTagJumpList();
00045
00046     BOOL AddParam( TCHAR* keyword, TCHAR* filename, int no, TCHAR type, TCHAR* note, int depth );
00047     BOOL GetParam( int index, TCHAR* keyword, TCHAR* filename, int* no, TCHAR* type, TCHAR* note, int* depth );
00048     int GetCount( void ){ return m_nCount; }
00049     void Empty( void );
00050     bool IsOverflow( void ){ return m_bOverflow; }
00051
00052     typedef struct tagjump_info_t {
00053         struct tagjump_info_t*  next;
00054         TCHAR*  keyword;
00055         TCHAR*  filename;
00056         int     no;
00057         TCHAR   type;
00058         TCHAR*  note;
00059         int     depth;
00060     } TagJumpInfo;
00061
00062     TagJumpInfo* GetPtr( int index );
00063
00068     int GetCapacity(void) const { return m_MAX_TAGJUMPLIST; }
00069
00070 private:
00071     TagJumpInfo*    m_pTagjump;
00072     int             m_nCount;
00073     bool            m_bOverflow;
00074
00075     //  2005.04.22 genta 最大値を可変に
00076     const int       m_MAX_TAGJUMPLIST;
00077
00078     void Free( TagJumpInfo* item );
00079 };
00080
00081 #endif  //_CSORTED_TAGJUMP_LIST_H_
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitBoxWnd.cpp

CSplitBoxWnd.cpp

分割ボックスウィンドウクラス [詳細]

#include "stdafx.h"
#include "CSplitBoxWnd.h"
#include "debug.h"
#include "mymessage.h"

CSplitBoxWnd.cppのインクルード依存関係図

ソースコードを見る。

説明

分割ボックスウィンドウクラス

作者:
Norio Nakatani
日付:
2002/2/3 aroka 未使用コード除去

CSplitBoxWnd.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:38 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitBoxWnd.cpp ソースファイル

CSplitBoxWnd.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2002, aroka
00011
00012     This source code is designed for sakura editor.
00013     Please contact the copyright holder to use this code for other purpose.
00014 */
00015 #include "stdafx.h"
00016 #include "CSplitBoxWnd.h"
00017 #include "debug.h"
00018 #include "mymessage.h"// 2002/2/3 aroka
00019
00020 CSplitBoxWnd::CSplitBoxWnd()
00021 {
00022     strcat( m_szClassInheritances, "::CSplitBoxWnd" );
00023     m_pszClassName = NULL;
00024     m_bVertical = TRUE; /* 垂直分割ボックスか */
00025     return;
00026 }
00027
00028
00029 CSplitBoxWnd::~CSplitBoxWnd()
00030 {
00031 }
00032
00033
00034
00035 HWND CSplitBoxWnd::Create( HINSTANCE hInstance, HWND hwndParent, int bVertical )
00036 {
00037     int         nCyHScroll;
00038     int         nCxVScroll;
00039     RECT        rc;
00040     HCURSOR     hCursor;
00041
00042     /* 初期化 */
00043     m_hInstance = hInstance;
00044     m_hwndParent = hwndParent;
00045
00046     /* ウィンドウクラス作成 */
00047     if( bVertical ){
00048         m_pszClassName = "VSplitBoxWnd";
00049         hCursor = ::LoadCursor( NULL, IDC_SIZENS );
00050     }else{
00051         m_pszClassName = "HSplitBoxWnd";
00052         hCursor = ::LoadCursor( NULL, IDC_SIZEWE );
00053     }
00054     RegisterWC(
00055         /* WNDCLASS用 */
00056         NULL,// Handle to the class icon.
00057         NULL,   //Handle to a small icon
00058         hCursor,// Handle to the class cursor.
00059         (HBRUSH)(COLOR_3DFACE + 1),// Handle to the class background brush.
00060         NULL/*MAKEINTRESOURCE( MYDOCUMENT )*/,// Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file.
00061         m_pszClassName// Pointer to a null-terminated string or is an atom.
00062     );
00063
00064     m_bVertical = bVertical;
00065     /* システムマトリックスの取得 */
00066     nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00067     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );    /* 垂直スクロールバーの幅 */
00068
00069     /* 親ウィンドウのクライアント領域のサイズを取得 */
00070     ::GetClientRect( m_hwndParent, &rc );
00071
00072     /* 基底クラスメンバ呼び出し */
00073     return CWnd::Create(
00074         /* CreateWindowEx()用 */
00075         0, // extended window style
00076         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00077         m_pszClassName, // pointer to window name
00078         WS_CHILD | WS_VISIBLE, // window style
00079         bVertical ? ( rc.right - nCxVScroll ):( 0 ), // horizontal position of window
00080         bVertical ? ( 0 ):( rc.bottom - nCyHScroll ), // vertical position of window
00081         bVertical ? ( nCxVScroll ):( 7 ), // window width
00082         bVertical ? ( 7 ):( nCyHScroll ), // window height
00083         NULL // handle to menu, or child-window identifier
00084     );
00085 }
00086
00087
00088
00089
00090 /* 描画処理 */
00091 void CSplitBoxWnd::Draw3dRect( HDC hdc, int x, int y, int cx, int cy,
00092     COLORREF clrTopLeft, COLORREF clrBottomRight )
00093 {
00094     HBRUSH  hBrush;
00095     RECT    rc;
00096     hBrush = ::CreateSolidBrush( clrTopLeft );
00097     ::SetRect( &rc, x, y, x + cx - 1, y + 1 );
00098     ::FillRect( hdc, &rc, hBrush );
00099     ::SetRect( &rc, x, y, x + 1, y + cy - 1 );
00100     ::FillRect( hdc, &rc, hBrush );
00101     ::DeleteObject( hBrush );
00102
00103     hBrush = ::CreateSolidBrush( clrBottomRight );
00104     ::SetRect( &rc, x + cx - 1, y, x + cx, y + cy );
00105     ::FillRect( hdc, &rc, hBrush );
00106     ::SetRect( &rc, x, y + cy - 1, x + cx, y + cy );
00107     ::FillRect( hdc, &rc, hBrush );
00108     ::DeleteObject( hBrush );
00109     return;
00110 }
00111
00112
00113
00114
00115 void CSplitBoxWnd::FillSolidRect( HDC hdc, int x, int y, int cx, int cy, COLORREF clr )
00116 {
00117     RECT    rc;
00118     ::SetBkColor( hdc, clr );
00119     ::SetRect( &rc, x, y, x + cx, y + cy );
00120     ::ExtTextOut( hdc, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
00121     return;
00122 }
00123
00124
00125
00126
00127 // WM_PAINT
00128 LRESULT CSplitBoxWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00129 {
00130     HDC         hdc;
00131     PAINTSTRUCT ps;
00132     int         nCyHScroll;
00133     int         nCxVScroll;
00134     int         nVSplitHeight;  /* 垂直分割ボックスの高さ */
00135     int         nHSplitWidth;   /* 水平分割ボックスの幅 */
00136
00137     hdc = ::BeginPaint( hwnd, &ps );
00138
00139     nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );
00140     nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );
00141
00142     nVSplitHeight = 7;  /* 垂直分割ボックスの高さ */
00143     nHSplitWidth = 7;   /* 水平分割ボックスの幅 */
00144
00145     if( m_bVertical ){
00146         /* 垂直分割ボックスの描画 */
00147         Draw3dRect( hdc, 0, 0, nCxVScroll, nVSplitHeight,
00148             ::GetSysColor( COLOR_3DLIGHT ), ::GetSysColor( COLOR_3DDKSHADOW )
00149          );
00150         Draw3dRect( hdc, 1, 1, nCxVScroll - 2, nVSplitHeight - 2,
00151             ::GetSysColor( COLOR_3DHILIGHT ), ::GetSysColor( COLOR_3DSHADOW )
00152          );
00153     }else{
00154         /* 水平分割ボックスの描画 */
00155         Draw3dRect( hdc, 0, 0, nHSplitWidth, nCyHScroll,
00156             ::GetSysColor( COLOR_3DLIGHT ), ::GetSysColor( COLOR_3DDKSHADOW )
00157          );
00158
00159         Draw3dRect( hdc, 1, 1, nHSplitWidth - 2, nCyHScroll - 2,
00160             ::GetSysColor( COLOR_3DHILIGHT ), ::GetSysColor( COLOR_3DSHADOW )
00161          );
00162     }
00163
00164     ::EndPaint(hwnd, &ps);
00165     return 0L;
00166 }
00167
00168
00169
00170
00171 //WM_LBUTTONDOWN
00172 LRESULT CSplitBoxWnd::OnLButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00173 {
00174     HDC         hdc;
00175     RECT        rc;
00176     RECT        rc2;
00177     int         nCyHScroll;
00178     HBRUSH      hBrush;
00179     HBRUSH      hBrushOld;
00180     ::SetCapture( hwnd );
00181     if( m_bVertical ){
00182         m_nDragPosY = 1;
00183
00184         hdc = ::GetDC( ::GetParent( m_hwndParent ) );
00185         ::SetBkColor( hdc, RGB(0, 0, 0) );
00186         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00187         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00188
00189         ::SetROP2( hdc, R2_XORPEN );
00190         ::SetBkMode( hdc, TRANSPARENT );
00191         ::GetClientRect( ::GetParent( m_hwndParent ), &rc );
00192         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00193         rc.bottom -= nCyHScroll;
00194
00195         rc2.left = -1;
00196         rc2.top = m_nDragPosY;
00197         rc2.right = rc.right;
00198         rc2.bottom = rc2.top + 6;
00199         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00200
00201         ::SelectObject( hdc, hBrushOld );
00202         ::DeleteObject( hBrush );
00203         ::ReleaseDC( ::GetParent( m_hwndParent ), hdc );
00204     }else{
00205         m_nDragPosX = 1;
00206
00207         hdc = ::GetDC( ::GetParent( m_hwndParent ) );
00208         ::SetBkColor( hdc, RGB(0, 0, 0) );
00209         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00210         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00211
00212         ::SetROP2( hdc, R2_XORPEN );
00213         ::SetBkMode( hdc, TRANSPARENT );
00214         ::GetClientRect( ::GetParent( m_hwndParent ), &rc );
00215
00216         rc2.left = m_nDragPosX;
00217         rc2.top = 0;
00218         rc2.right = rc2.left + 6;
00219         rc2.bottom = rc.bottom;
00220         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00221
00222         ::SelectObject( hdc, hBrushOld );
00223         ::DeleteObject( hBrush );
00224         ::ReleaseDC( ::GetParent( m_hwndParent ), hdc );
00225
00226     }
00227     return 0L;
00228 }
00229
00230
00231
00232 //WM_MOUSEMOVE
00233 LRESULT CSplitBoxWnd::OnMouseMove( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00234 {
00235     HDC         hdc;
00236     int         xPos;
00237     int         yPos;
00238     RECT        rc;
00239     RECT        rc2;
00240     int         nCyHScroll;
00241     int         nCxVScroll;
00242     POINT       po;
00243     POINT       po_top;
00244     HBRUSH      hBrush;
00245     HBRUSH      hBrushOld;
00246     if( hwnd != ::GetCapture() ){
00247         return 0L;
00248     }
00249     if( m_bVertical ){
00250         ::GetClientRect( ::GetParent( m_hwndParent ), &rc );
00251         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00252         rc.bottom -= nCyHScroll;
00253
00254         ::GetCursorPos( &po );
00255
00256         po_top.x = 0;
00257         po_top.y = 0;
00258         ::ClientToScreen( ::GetParent( m_hwndParent ), &po_top );
00259         if( po.y < po_top.y ){
00260             po.y = po_top.y;
00261         }
00262
00263         po_top.x = 0;
00264         po_top.y = rc.bottom;
00265         ::ClientToScreen( ::GetParent( m_hwndParent ), &po_top );
00266         if( po.y > po_top.y - 6 ){
00267             po.y = po_top.y - 6;
00268         }
00269
00270         ::ScreenToClient( ::GetParent( m_hwndParent ), &po );
00271         xPos = po.x;
00272         yPos = po.y;
00273
00274         if( yPos != m_nDragPosY ){
00275 //          MYTRACE( "xPos=%d yPos=%d\n", xPos, yPos );
00276
00277             hdc = ::GetDC( ::GetParent( m_hwndParent ) );
00278             ::SetBkColor( hdc, RGB(0, 0, 0) );
00279             hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00280             hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00281
00282             ::SetROP2( hdc, R2_XORPEN );
00283             ::SetBkMode( hdc, TRANSPARENT );
00284             rc2.left = -1;
00285             rc2.top = m_nDragPosY;
00286             rc2.right = rc.right;
00287             rc2.bottom = rc2.top + 6;
00288             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00289
00290             m_nDragPosY =  po.y;
00291
00292             rc2.left = -1;
00293             rc2.top = m_nDragPosY;
00294             rc2.right = rc.right;
00295             rc2.bottom = rc2.top + 6;
00296             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00297
00298             ::SelectObject( hdc, hBrushOld );
00299             ::DeleteObject( hBrush );
00300             ::ReleaseDC( ::GetParent( m_hwndParent ), hdc );
00301
00302         }
00303     }else{
00304         ::GetClientRect( ::GetParent( m_hwndParent ), &rc );
00305         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );    /* 垂直スクロールバーの幅 */
00306         rc.right -= nCxVScroll;
00307
00308         ::GetCursorPos( &po );
00309
00310         po_top.x = 0;
00311         po_top.y = 0;
00312         ::ClientToScreen( ::GetParent( m_hwndParent ), &po_top );
00313         if( po.x < po_top.x ){
00314             po.x = po_top.x;
00315         }
00316
00317         po_top.x = rc.right;
00318         po_top.y = 0;
00319         ::ClientToScreen( ::GetParent( m_hwndParent ), &po_top );
00320         if( po.x > po_top.x - 6 ){
00321             po.x = po_top.x - 6;
00322         }
00323
00324         ::ScreenToClient( ::GetParent( m_hwndParent ), &po );
00325         xPos = po.x;
00326         yPos = po.y;
00327
00328         if( xPos != m_nDragPosX ){
00329 //          MYTRACE( "xPos=%d yPos=%d\n", xPos, yPos );
00330
00331             hdc = ::GetDC( ::GetParent( m_hwndParent ) );
00332             ::SetBkColor( hdc, RGB(0, 0, 0) );
00333             hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00334             hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00335
00336             ::SetROP2( hdc, R2_XORPEN );
00337             ::SetBkMode( hdc, TRANSPARENT );
00338
00339             rc2.left = m_nDragPosX;
00340             rc2.top = 0;
00341             rc2.right = rc2.left + 6;
00342             rc2.bottom = rc.bottom;
00343             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00344
00345             m_nDragPosX =  po.x;
00346
00347             rc2.left = m_nDragPosX;
00348             rc2.top = 0;
00349             rc2.right = rc2.left + 6;
00350             rc2.bottom = rc.bottom;
00351             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00352
00353             ::SelectObject( hdc, hBrushOld );
00354             ::DeleteObject( hBrush );
00355             ::ReleaseDC( ::GetParent( m_hwndParent ), hdc );
00356         }
00357     }
00358     return 0L;
00359 }
00360
00361
00362
00363
00364 //WM_LBUTTONUP
00365 LRESULT CSplitBoxWnd::OnLButtonUp( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00366 {
00367     HDC         hdc;
00368     RECT        rc;
00369     RECT        rc2;
00370     int         nCyHScroll;
00371     int         nCxVScroll;
00372     HBRUSH      hBrush;
00373     HBRUSH      hBrushOld;
00374     if( hwnd != ::GetCapture() ){
00375         return 0L;
00376     }
00377     if( m_bVertical ){
00378         ::GetClientRect( ::GetParent( m_hwndParent ), &rc );
00379         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00380         rc.bottom -= nCyHScroll;
00381
00382         hdc = ::GetDC( ::GetParent( m_hwndParent ) );
00383         ::SetBkColor( hdc, RGB(0, 0, 0) );
00384         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00385         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00386
00387         ::SetROP2( hdc, R2_XORPEN );
00388         ::SetBkMode( hdc, TRANSPARENT );
00389         rc2.left = -1;
00390         rc2.top = m_nDragPosY;
00391         rc2.right = rc.right;
00392         rc2.bottom = rc2.top + 6;
00393         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00394
00395         ::SelectObject( hdc, hBrushOld );
00396         ::DeleteObject( hBrush );
00397         ::ReleaseDC( ::GetParent( m_hwndParent ), hdc );
00398
00399         /* 親ウィンドウに、メッセージをポストする */
00400         ::PostMessage( m_hwndParent, MYWM_DOSPLIT, (WPARAM)0, (LPARAM)m_nDragPosY );
00401
00402     }else{
00403         ::GetClientRect( ::GetParent( m_hwndParent ), &rc );
00404         nCxVScroll = ::GetSystemMetrics( SM_CXVSCROLL );    /* 垂直スクロールバーの幅 */
00405         rc.right -= nCxVScroll;
00406
00407         hdc = ::GetDC( ::GetParent( m_hwndParent ) );
00408         ::SetBkColor( hdc, RGB(0, 0, 0) );
00409         hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00410         hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00411
00412         ::SetROP2( hdc, R2_XORPEN );
00413         ::SetBkMode( hdc, TRANSPARENT );
00414
00415         rc2.left = m_nDragPosX;
00416         rc2.top = 0;
00417         rc2.right = rc2.left + 6;
00418         rc2.bottom = rc.bottom;
00419         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00420
00421         ::SelectObject( hdc, hBrushOld );
00422         ::DeleteObject( hBrush );
00423         ::ReleaseDC( m_hwndParent, hdc );
00424
00425         /* 親ウィンドウに、メッセージをポストする */
00426         ::PostMessage( m_hwndParent, MYWM_DOSPLIT, (WPARAM)m_nDragPosX, (LPARAM)0 );
00427     }
00428     ::ReleaseCapture();
00429     return 0L;
00430 }
00431
00432
00433
00434
00435 //WM_LBUTTONDBLCLK
00436 LRESULT CSplitBoxWnd::OnLButtonDblClk( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00437 {
00438     RECT        rc;
00439     int         nCyHScroll;
00440     if( m_bVertical ){
00441         ::GetClientRect( m_hwndParent, &rc );
00442         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00443         rc.bottom -= nCyHScroll;
00444
00445         /* 親ウィンドウに、メッセージをポストする */
00446         ::PostMessage( m_hwndParent, MYWM_DOSPLIT, (WPARAM)0, (LPARAM)(rc.bottom / 2) );
00447     }else{
00448         ::GetClientRect( m_hwndParent, &rc );
00449         nCyHScroll = ::GetSystemMetrics( SM_CYHSCROLL );    /* 水平スクロールバーの高さ */
00450         rc.bottom -= nCyHScroll;
00451
00452         /* 親ウィンドウに、メッセージをポストする */
00453         ::PostMessage( m_hwndParent, MYWM_DOSPLIT, (WPARAM)(rc.right / 2), (LPARAM)0 );
00454     }
00455     return 0L;
00456 }
00457
00458
00459 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitBoxWnd.h

CSplitBoxWnd.h

分割ボックスウィンドウクラス [詳細]

#include "CWnd.h"

CSplitBoxWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CSplitBoxWnd
分割ボックスウィンドウクラス [詳細]

説明

分割ボックスウィンドウクラス

作者:
Norio Nakatani

CSplitBoxWnd.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:39 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitBoxWnd.h ソースファイル

CSplitBoxWnd.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, aroka
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class CSplitBoxWnd;
00015
00016 #ifndef _CSPLITBOXWND_H_
00017 #define _CSPLITBOXWND_H_
00018
00019 #include "CWnd.h"
00020
00021
00022 /*-----------------------------------------------------------------------
00023 クラスの宣言
00024 -----------------------------------------------------------------------*/
00028 class CSplitBoxWnd : public CWnd
00029 {
00030 public:
00031     /*
00032     ||  Constructors
00033     */
00034     CSplitBoxWnd();
00035     virtual ~CSplitBoxWnd();
00036     HWND Create( HINSTANCE , HWND , int );
00037
00038     static void Draw3dRect( HDC , int , int , int , int , COLORREF , COLORREF );
00039     static void FillSolidRect( HDC , int , int , int , int , COLORREF );
00040
00041 //  LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* メッセージディスパッチャ */
00042
00043
00044
00045 private:
00046     const char* m_pszClassName; /* クラス名 */
00047     int         m_bVertical;    /* 垂直分割ボックスか */
00048     int         m_nDragPosY;
00049     int         m_nDragPosX;
00050 protected:
00051     /* 仮想関数 */
00052
00053     /* 仮想関数 メッセージ処理 詳しくは実装を参照 */
00054     LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );/* 描画処理 */
00055     LRESULT OnLButtonDown( HWND, UINT, WPARAM, LPARAM );// WM_LBUTTONDOWN
00056     LRESULT OnMouseMove( HWND, UINT, WPARAM, LPARAM );// WM_MOUSEMOVE
00057     LRESULT OnLButtonUp( HWND, UINT, WPARAM, LPARAM );//WM_LBUTTONUP
00058     LRESULT OnLButtonDblClk( HWND, UINT, WPARAM, LPARAM );//WM_LBUTTONDBLCLK
00059
00060
00061 };
00062
00063
00065 #endif /* _CSPLITBOXWND_H_ */
00066
00067
00068 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitterWnd.cpp

CSplitterWnd.cpp

分割線ウィンドウクラス [詳細]

#include "stdafx.h"
#include "CSplitterWnd.h"
#include "CSplitBoxWnd.h"
#include "debug.h"
#include "mymessage.h"
#include "CEditWnd.h"
#include "CEditView.h"
#include <tchar.h>

CSplitterWnd.cppのインクルード依存関係図

ソースコードを見る。

説明

分割線ウィンドウクラス

作者:
Norio Nakatani
日付:
1998/07/07 新規作成

2002/2/3 aroka 未使用コード除去

CSplitterWnd.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:41 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitterWnd.cpp ソースファイル

CSplitterWnd.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 1998-2001, Norio Nakatani
00010     Copyright (C) 2002, aroka, YAZAKI
00011     Copyright (C) 2003, MIK
00012     Copyright (C) 2007, ryoji
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017 #include "stdafx.h"
00018 #include "CSplitterWnd.h"
00019 #include "CSplitBoxWnd.h"
00020 #include "debug.h"
00021 #include "mymessage.h"
00022 #include "CEditWnd.h"
00023 #include "CEditView.h"
00024 #include <tchar.h>
00025
00026 //  @date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
00027 CSplitterWnd::CSplitterWnd() :
00028     m_pszClassName("SplitterWndClass"), /* クラス名 */
00029     m_nActivePane(0),                   /* アクティブなペイン 0-3 */
00030     m_nAllSplitRows(1),                 /* 分割行数 */
00031     m_nAllSplitCols(1),                 /* 分割桁数 */
00032     m_nVSplitPos(0),                    /* 垂直分割位置 */
00033     m_nHSplitPos(0),                    /* 水平分割位置 */
00034     m_bDragging(0),                     /* 分割バーをドラッグ中か */
00035     m_nDragPosX(0),                     /* ドラッグ位置Ｘ */
00036     m_nDragPosY(0),                     /* ドラッグ位置Ｙ */
00037     m_pCEditWnd(NULL)
00038 {
00039     strcat( m_szClassInheritances, "::CSplitterWnd" );
00040     /* 共有データ構造体のアドレスを返す */
00041     m_pShareData = CShareData::getInstance()->GetShareData();
00042
00043     m_hcurOld = NULL;                       /* もとのマウスカーソル */
00044
00045     for( int v=0; v < MAXCOUNTOFVIEW; v++ ){
00046         m_ChildWndArr[v] = NULL;                /* 子ウィンドウ配列 */
00047     }
00048     return;
00049 }
00050
00051
00052
00053
00054 CSplitterWnd::~CSplitterWnd()
00055 {
00056 }
00057
00058
00059
00060
00061 /* 初期化 */
00062 HWND CSplitterWnd::Create( HINSTANCE hInstance, HWND hwndParent, void* pCEditWnd )
00063 {
00064     /* 初期化 */
00065     m_hInstance = hInstance;    /* アプリケーションインスタンスのハンドル */
00066     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00067     m_pCEditWnd = pCEditWnd;
00068
00069     /* ウィンドウクラス作成 */
00070     ATOM atWork;
00071     atWork = RegisterWC(
00072         /* WNDCLASS用 */
00073         NULL,// Handle to the class icon.
00074         NULL,   //Handle to a small icon
00075         NULL,// Handle to the class cursor.
00076         (HBRUSH)NULL,// Handle to the class background brush.
00077         NULL/*MAKEINTRESOURCE( MYDOCUMENT )*/,// Pointer to a null-terminated
00078                 //character string that specifies the resource name of the class menu,
00079                 //as the name appears in the resource file.
00080         m_pszClassName// Pointer to a null-terminated string or is an atom.
00081     );
00082     if( 0 == atWork ){
00083 		::MYMESSAGEBOX( NULL, MB_OK | MB_ICONSTOP, GSTR_APPNAME,
00084             _T("SplitterWndクラスの登録に失敗しました。")
00085         );
00086     }
00087
00088     /* 基底クラスメンバ呼び出し */
00089     return CWnd::Create(
00090         /* CreateWindowEx()用 */
00091         0, // extended window style
00092         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00093         m_pszClassName, // pointer to window name
00094         WS_CHILD | WS_VISIBLE, // window style
00095         CW_USEDEFAULT, // horizontal position of window
00096         0, // vertical position of window
00097         CW_USEDEFAULT, // window width
00098         0, // window height
00099         NULL // handle to menu, or child-window identifier
00100     );
00101 }
00102
00103
00104
00105
00106
00107 /* 子ウィンドウの設定 */
00108 void CSplitterWnd::SetChildWndArr( HWND* pcEditViewArr )
00109 {
00110     for( int v=0; v < MAXCOUNTOFVIEW; v++ ){
00111         m_ChildWndArr[v] = pcEditViewArr[v];                /* 子ウィンドウ配列 */
00112     }
00113
00114     // 2002/05/11 YAZAKI 不要な処理と思われる
00115     /* ウィンドウの分割 */
00116 //  DoSplit( m_nHSplitPos, m_nVSplitPos );
00117 //  DoSplit( 0, 0 );
00118     return;
00119 }
00120
00121
00122
00123
00124 /* 分割フレーム描画 */
00125 void CSplitterWnd::DrawFrame( HDC hdc, RECT* prc )
00126 {
00127     CSplitBoxWnd::Draw3dRect( hdc, prc->left, prc->top, prc->right, prc->bottom,
00128         ::GetSysColor( COLOR_3DSHADOW ),
00129         ::GetSysColor( COLOR_3DHILIGHT )
00130     );
00131     CSplitBoxWnd::Draw3dRect( hdc, prc->left + 1, prc->top + 1, prc->right - 2, prc->bottom - 2,
00132         RGB( 0, 0, 0 ),
00133         ::GetSysColor( COLOR_3DFACE )
00134     );
00135     return;
00136 }
00137
00138
00139
00140
00141 /* 分割トラッカーの表示 */
00142 void CSplitterWnd::DrawSplitter( int xPos, int yPos, int bEraseOld )
00143 {
00144     HDC         hdc;
00145     HBRUSH      hBrush;
00146     HBRUSH      hBrushOld;
00147     RECT        rc;
00148     RECT        rc2;
00149     int         nTrackerWidth = 6;
00150
00151     hdc = ::GetDC( m_hWnd );
00152     hBrush = ::CreateSolidBrush( RGB(255,255,255) );
00153     hBrushOld = (HBRUSH)::SelectObject( hdc, hBrush );
00154     ::SetROP2( hdc, R2_XORPEN );
00155     ::SetBkMode( hdc, TRANSPARENT );
00156     ::GetClientRect( m_hWnd, &rc );
00157
00158     if( bEraseOld ){
00159         if( m_bDragging & 1 ){  /* 分割バーをドラッグ中か */
00160             rc2.left = -1;
00161             rc2.top = m_nDragPosY;
00162             rc2.right = rc.right;
00163             rc2.bottom = rc2.top + nTrackerWidth;
00164             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00165         }
00166         if( m_bDragging & 2 ){  /* 分割バーをドラッグ中か */
00167             rc2.left = m_nDragPosX;
00168             rc2.top = 0;
00169             rc2.right = rc2.left + nTrackerWidth;
00170             rc2.bottom = rc.bottom;
00171             ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00172         }
00173     }
00174
00175     m_nDragPosX = xPos;
00176     m_nDragPosY = yPos;
00177     if( m_bDragging & 1 ){  /* 分割バーをドラッグ中か */
00178         rc2.left = -1;
00179         rc2.top = m_nDragPosY;
00180         rc2.right = rc.right;
00181         rc2.bottom = rc2.top + nTrackerWidth;
00182         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00183     }
00184     if( m_bDragging & 2 ){  /* 分割バーをドラッグ中か */
00185         rc2.left = m_nDragPosX;
00186         rc2.top = 0;
00187         rc2.right = rc2.left + nTrackerWidth;
00188         rc2.bottom = rc.bottom;
00189         ::Rectangle( hdc, rc2.left, rc2.top, rc2.right, rc2.bottom );
00190     }
00191
00192     ::SelectObject( hdc, hBrushOld );
00193     ::DeleteObject( hBrush );
00194     ::ReleaseDC( m_hWnd, hdc );
00195     return;
00196 }
00197
00198
00199
00200
00201 /* 分割バーへのヒットテスト */
00202 int CSplitterWnd::HitTestSplitter( int xPos, int yPos )
00203 {
00204     int         nFrameWidth = 3;
00205     int         nMargin = 2;
00206
00207     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00208         return 0;
00209     }else
00210     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00211         if( m_nVSplitPos - nMargin < yPos && yPos < m_nVSplitPos + nFrameWidth + nMargin ){
00212             return 1;
00213         }else{
00214             return 0;
00215         }
00216     }else
00217     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00218         if( m_nHSplitPos - nMargin < xPos && xPos < m_nHSplitPos + nFrameWidth + nMargin ){
00219             return 2;
00220         }else{
00221             return 0;
00222         }
00223     }else{
00224         if( m_nVSplitPos - nMargin < yPos && yPos < m_nVSplitPos + nFrameWidth + nMargin &&
00225             m_nHSplitPos - nMargin < xPos && xPos < m_nHSplitPos + nFrameWidth + nMargin ){
00226             return 3;
00227         }else
00228         if( m_nVSplitPos - nMargin < yPos && yPos < m_nVSplitPos + nFrameWidth + nMargin ){
00229             return 1;
00230         }else
00231         if( m_nHSplitPos - nMargin < xPos && xPos < m_nHSplitPos + nFrameWidth + nMargin ){
00232             return 2;
00233         }else{
00234             return 0;
00235         }
00236     }
00237 }
00238
00239 /* ウィンドウの分割 */
00240 void CSplitterWnd::DoSplit( int nHorizontal, int nVertical )
00241 {
00242     int                 nActivePane;
00243     int                 nLimit = 32;
00244     RECT                rc;
00245     int                 nAllSplitRowsOld = m_nAllSplitRows; /* 分割行数 */
00246     int                 nAllSplitColsOld = m_nAllSplitCols; /* 分割桁数 */
00247     CEditView*          pcViewArr[MAXCOUNTOFVIEW];
00248 //  int                 i;
00249     BOOL                bVUp;
00250     BOOL                bHUp;
00251     BOOL                bSizeBox;
00252     CEditWnd*           pCEditWnd = (CEditWnd*)m_pCEditWnd;
00253     bVUp = FALSE;
00254     bHUp = FALSE;
00255
00256     if( -1 == nHorizontal && -1 == nVertical ){
00257         nVertical = m_nVSplitPos;       /* 垂直分割位置 */
00258         nHorizontal = m_nHSplitPos;     /* 水平分割位置 */
00259     }
00260     /*
00261     || ファンクションキーを下に表示している場合はサイズボックスを表示しない
00262     || ステータスパーを表示している場合はサイズボックスを表示しない
00263     */
00264     if( NULL == pCEditWnd
00265      ||( NULL != pCEditWnd->m_CFuncKeyWnd.m_hWnd
00266       && 1 == m_pShareData->m_Common.m_nFUNCKEYWND_Place    /* ファンクションキー表示位置／0:上 1:下 */
00267       )
00268     ){
00269         bSizeBox = FALSE;
00270     }else{
00271         bSizeBox = TRUE;
00272         /* ステータスパーを表示している場合はサイズボックスを表示しない */
00273         if( NULL != pCEditWnd->m_hwndStatusBar ){
00274             bSizeBox = FALSE;
00275         }
00276     }
00277     /* メインウィンドウが最大化されている場合はサイズボックスを表示しない */
00278     WINDOWPLACEMENT wp;
00279     wp.length = sizeof( WINDOWPLACEMENT );
00280     ::GetWindowPlacement( m_hwndParent, &wp );
00281     if( SW_SHOWMAXIMIZED == wp.showCmd ){
00282         bSizeBox = FALSE;
00283     }
00284
00285     int v;
00286     for( v=0; v < MAXCOUNTOFVIEW; v++ ){
00287         pcViewArr[v] = ( CEditView* )::GetWindowLongPtr( m_ChildWndArr[v], 0 );
00288     }
00289     ::GetClientRect( m_hWnd, &rc );
00290     if( nHorizontal < nLimit ){
00291         if( nHorizontal > 0 ){
00292             bHUp = TRUE;
00293         }
00294         nHorizontal = 0;
00295     }
00296     if( nHorizontal > rc.right - nLimit * 2 ){
00297         nHorizontal = 0;
00298     }
00299     if( nVertical < nLimit ){
00300         if( nVertical > 0 ){
00301             bVUp = TRUE;
00302         }
00303         nVertical = 0;
00304     }
00305     if( nVertical > rc.bottom - nLimit * 2 ){
00306         nVertical = 0;
00307     }
00308     m_nVSplitPos = nVertical;       /* 垂直分割位置 */
00309     m_nHSplitPos = nHorizontal;     /* 水平分割位置 */
00310
00311     if( nVertical == 0 && nHorizontal == 0 ){
00312         m_nAllSplitRows = 1;    /* 分割行数 */
00313         m_nAllSplitCols = 1;    /* 分割桁数 */
00314         if( m_ChildWndArr[0] != NULL ) ::ShowWindow( m_ChildWndArr[0], SW_SHOW );
00315         if( m_ChildWndArr[1] != NULL ) ::ShowWindow( m_ChildWndArr[1], SW_HIDE );
00316         if( m_ChildWndArr[2] != NULL ) ::ShowWindow( m_ChildWndArr[2], SW_HIDE );
00317         if( m_ChildWndArr[3] != NULL ) ::ShowWindow( m_ChildWndArr[3], SW_HIDE );
00318
00319         if( NULL != pcViewArr[0] ) pcViewArr[0]->SplitBoxOnOff( TRUE, TRUE, bSizeBox );     /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00320 //      if( NULL != pcViewArr[1] ) pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00321 //      if( NULL != pcViewArr[2] ) pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00322 //      if( NULL != pcViewArr[3] ) pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00323
00324         OnSize( 0, 0, 0, 0 );
00325
00326         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00327         }else
00328         if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00329             if( bVUp ){
00330                 /* ペインの表示状態を他のビューにコピー */
00331                 if( NULL != pcViewArr[2] && NULL != pcViewArr[0] ){
00332                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00333                 }
00334             }else{
00335                 /* ペインの表示状態を他のビューにコピー */
00336                 if( m_nActivePane != 0 &&
00337                     NULL != pcViewArr[m_nActivePane] && NULL != pcViewArr[0] ){
00338                     pcViewArr[m_nActivePane]->CopyViewStatus( pcViewArr[0] );
00339                 }
00340             }
00341         }else
00342         if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00343             if( bHUp ){
00344                 /* ペインの表示状態を他のビューにコピー */
00345                 if( NULL != pcViewArr[1] && NULL != pcViewArr[0] ){
00346                     pcViewArr[1]->CopyViewStatus( pcViewArr[0] );
00347                 }
00348             }else{
00349                 /* ペインの表示状態を他のビューにコピー */
00350                 if( m_nActivePane != 0 &&
00351                     NULL != pcViewArr[m_nActivePane] && NULL != pcViewArr[0] ){
00352                     pcViewArr[m_nActivePane]->CopyViewStatus( pcViewArr[0] );
00353                 }
00354             }
00355         }else{
00356             if( !bVUp && !bHUp ){
00357                 /* ペインの表示状態を他のビューにコピー */
00358                 if( m_nActivePane != 0 &&
00359                     NULL != pcViewArr[m_nActivePane] && NULL != pcViewArr[0] ){
00360                     pcViewArr[m_nActivePane]->CopyViewStatus( pcViewArr[0] );
00361                 }
00362             }else
00363             if( bVUp && !bHUp ){
00364                 /* ペインの表示状態を他のビューにコピー */
00365                 if( NULL != pcViewArr[2] && NULL != pcViewArr[0] ){
00366                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00367                 }
00368             }else
00369             if( !bVUp && bHUp ){
00370                 /* ペインの表示状態を他のビューにコピー */
00371                 if( NULL != pcViewArr[1] && NULL != pcViewArr[0] ){
00372                     pcViewArr[1]->CopyViewStatus( pcViewArr[0] );
00373                 }
00374             }else{
00375                 /* ペインの表示状態を他のビューにコピー */
00376                 if( NULL != pcViewArr[3] && NULL != pcViewArr[0] ){
00377                     pcViewArr[3]->CopyViewStatus( pcViewArr[0] );
00378                 }
00379             }
00380         }
00381         nActivePane = 0;
00382     }else
00383     if( nVertical > 0 &&  nHorizontal == 0 ){
00384         m_nAllSplitRows = 2;    /* 分割行数 */
00385         m_nAllSplitCols = 1;    /* 分割桁数 */
00386
00387         if( m_ChildWndArr[0] != NULL ) ::ShowWindow( m_ChildWndArr[0], SW_SHOW );
00388         if( m_ChildWndArr[1] != NULL ) ::ShowWindow( m_ChildWndArr[1], SW_HIDE );
00389         if( m_ChildWndArr[2] != NULL ) ::ShowWindow( m_ChildWndArr[2], SW_SHOW );
00390         if( m_ChildWndArr[3] != NULL ) ::ShowWindow( m_ChildWndArr[3], SW_HIDE );
00391         if( NULL != pcViewArr[0] ) pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00392 //      if( NULL != pcViewArr[1] ) pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00393         if( NULL != pcViewArr[2] ) pcViewArr[2]->SplitBoxOnOff( FALSE, TRUE, bSizeBox );    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00394 //      if( NULL != pcViewArr[3] ) pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00395
00396         OnSize( 0, 0, 0, 0 );
00397
00398         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00399             /* 上下に分割したとき */
00400             /* ペインの表示状態を他のビューにコピー */
00401             if( NULL != pcViewArr[0] && NULL != pcViewArr[2] ){
00402                 pcViewArr[0]->CopyViewStatus( pcViewArr[2] );
00403             }
00404             // YAZAKI
00405             pcViewArr[2]->m_nViewTopLine = pcViewArr[0]->m_nViewTopLine + pcViewArr[0]->m_nViewRowNum;
00406         }else
00407         if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00408         }else
00409         if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00410         }else{
00411             if( bHUp ){
00412                 /* ペインの表示状態を他のビューにコピー */
00413                 if( NULL != pcViewArr[1] && NULL != pcViewArr[0] ){
00414                     pcViewArr[1]->CopyViewStatus( pcViewArr[0] );
00415                 }
00416                 /* ペインの表示状態を他のビューにコピー */
00417                 if( NULL != pcViewArr[3] && NULL != pcViewArr[2] ){
00418                     pcViewArr[3]->CopyViewStatus( pcViewArr[2] );
00419                 }
00420             }else{
00421                 /* ペインの表示状態を他のビューにコピー */
00422                 if( m_nActivePane != 0 &&
00423                     m_nActivePane != 2 &&
00424                     NULL != pcViewArr[0] &&
00425                     NULL != pcViewArr[1] &&
00426                     NULL != pcViewArr[2] &&
00427                     NULL != pcViewArr[3]
00428                 ){
00429                     pcViewArr[1]->CopyViewStatus( pcViewArr[0] );
00430                     pcViewArr[3]->CopyViewStatus( pcViewArr[2] );
00431                 }
00432             }
00433         }
00434         if( m_nActivePane == 0 || m_nActivePane == 1 ){
00435             // 2007.10.01 ryoji
00436             // 分割無しからの切替時のみ従来コードを実行してアクティブペインを決める。
00437             // それ以外の場合はペイン0をアクティブにする。
00438             // 従来は、上下に分割しておいて、
00439             // ・上下分割バーを動かす
00440             // ・ステータスバーなど各種バーの表示／非表示を切り替える
00441             // ・設定画面をOKで閉じる
00442             // ・左右も分割して左右分割を解除する
00443             // といった操作をするだけで下のペインがアクティブ化されることがあった。
00444             // （シンプルに0固定にしてしまっても良い気はするけれど．．．）
00445             nActivePane = 0;
00446             if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00447                 if ( pcViewArr[2]->m_nViewTopLine < pcViewArr[2]->m_nCaretPosY ){
00448                     nActivePane = 2;
00449                 }
00450                 else {
00451                     nActivePane = 0;
00452                 }
00453             }
00454         }else{
00455             nActivePane = 2;
00456         }
00457     }else
00458     if( nVertical == 0 &&  nHorizontal > 0 ){
00459         m_nAllSplitRows = 1;    /* 分割行数 */
00460         m_nAllSplitCols = 2;    /* 分割桁数 */
00461
00462         if( m_ChildWndArr[0] != NULL ) ::ShowWindow( m_ChildWndArr[0], SW_SHOW );
00463         if( m_ChildWndArr[1] != NULL ) ::ShowWindow( m_ChildWndArr[1], SW_SHOW );
00464         if( m_ChildWndArr[2] != NULL ) ::ShowWindow( m_ChildWndArr[2], SW_HIDE );
00465         if( m_ChildWndArr[3] != NULL ) ::ShowWindow( m_ChildWndArr[3], SW_HIDE );
00466         if( NULL != pcViewArr[0] ) pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00467         if( NULL != pcViewArr[1] ) pcViewArr[1]->SplitBoxOnOff( TRUE, FALSE, bSizeBox );    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00468 //      if( NULL != pcViewArr[2] ) pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00469 //      if( NULL != pcViewArr[3] ) pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00470
00471         OnSize( 0, 0, 0, 0 );
00472
00473         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00474             /* ペインの表示状態を他のビューにコピー */
00475             if( NULL != pcViewArr[0] && NULL != pcViewArr[1] ){
00476                 pcViewArr[0]->CopyViewStatus( pcViewArr[1] );
00477             }
00478         }else
00479         if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00480         }else
00481         if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00482         }else{
00483             if( bVUp ){
00484                 /* ペインの表示状態を他のビューにコピー */
00485                 if( NULL != pcViewArr[2] && NULL != pcViewArr[0] ){
00486                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00487                 }
00488                 /* ペインの表示状態を他のビューにコピー */
00489                 if( NULL != pcViewArr[3] && NULL != pcViewArr[1] ){
00490                     pcViewArr[3]->CopyViewStatus( pcViewArr[1] );
00491                 }
00492             }else{
00493                 /* ペインの表示状態を他のビューにコピー */
00494                 if( m_nActivePane != 0 &&
00495                     m_nActivePane != 1 &&
00496                     NULL != pcViewArr[0] &&
00497                     NULL != pcViewArr[1] &&
00498                     NULL != pcViewArr[2] &&
00499                     NULL != pcViewArr[3]
00500                 ){
00501                     pcViewArr[2]->CopyViewStatus( pcViewArr[0] );
00502                     pcViewArr[3]->CopyViewStatus( pcViewArr[1] );
00503                 }
00504             }
00505         }
00506         if( m_nActivePane == 0 || m_nActivePane == 2 ){
00507             nActivePane = 0;
00508         }else{
00509             nActivePane = 1;
00510         }
00511     }else{
00512         m_nAllSplitRows = 2;    /* 分割行数 */
00513         m_nAllSplitCols = 2;    /* 分割桁数 */
00514         if( m_ChildWndArr[0] != NULL ){ ::ShowWindow( m_ChildWndArr[0], SW_SHOW );}
00515         if( m_ChildWndArr[1] != NULL ){ ::ShowWindow( m_ChildWndArr[1], SW_SHOW );}
00516         if( m_ChildWndArr[2] != NULL ){ ::ShowWindow( m_ChildWndArr[2], SW_SHOW );}
00517         if( m_ChildWndArr[3] != NULL ){ ::ShowWindow( m_ChildWndArr[3], SW_SHOW );}
00518         if( NULL != pcViewArr[0] ){ pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE );}    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00519         if( NULL != pcViewArr[1] ){ pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE );}    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00520         if( NULL != pcViewArr[2] ){ pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE, FALSE );}    /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00521         if( NULL != pcViewArr[3] ){ pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, bSizeBox );} /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00522
00523         OnSize( 0, 0, 0, 0 );
00524
00525         if( nAllSplitRowsOld == 1 && nAllSplitColsOld == 1 ){
00526             /* ペインの表示状態を他のビューにコピー */
00527             if( NULL != pcViewArr[0] && NULL != pcViewArr[1] ){
00528                 pcViewArr[0]->CopyViewStatus( pcViewArr[1] );
00529             }
00530             /* ペインの表示状態を他のビューにコピー */
00531             if( NULL != pcViewArr[0] && NULL != pcViewArr[2] ){
00532                 pcViewArr[0]->CopyViewStatus( pcViewArr[2] );
00533             }
00534             /* ペインの表示状態を他のビューにコピー */
00535             if( NULL != pcViewArr[0] && NULL != pcViewArr[3] ){
00536                 pcViewArr[0]->CopyViewStatus( pcViewArr[3] );
00537             }
00538         }else
00539         if( nAllSplitRowsOld > 1 && nAllSplitColsOld == 1 ){
00540             /* ペインの表示状態を他のビューにコピー */
00541             if( NULL != pcViewArr[0] && NULL != pcViewArr[1] ){
00542                 pcViewArr[0]->CopyViewStatus( pcViewArr[1] );
00543             }
00544             /* ペインの表示状態を他のビューにコピー */
00545             if( NULL != pcViewArr[2] && NULL != pcViewArr[3] ){
00546                 pcViewArr[2]->CopyViewStatus( pcViewArr[3] );
00547             }
00548         }else
00549         if( nAllSplitRowsOld == 1 && nAllSplitColsOld > 1 ){
00550             /* ペインの表示状態を他のビューにコピー */
00551             if( NULL != pcViewArr[0] && NULL != pcViewArr[2] ){
00552                 pcViewArr[0]->CopyViewStatus( pcViewArr[2] );
00553             }
00554             /* ペインの表示状態を他のビューにコピー */
00555             if( NULL != pcViewArr[1] && NULL != pcViewArr[3] ){
00556                 pcViewArr[1]->CopyViewStatus( pcViewArr[3] );
00557             }
00558         }else{
00559         }
00560         nActivePane = m_nActivePane;
00561     }
00562     OnSize( 0, 0, 0, 0 );
00563
00564     /* アクティブになったことをペインに通知 */
00565     if( m_ChildWndArr[nActivePane] != NULL ){
00566         ::PostMessage( m_ChildWndArr[nActivePane], MYWM_SETACTIVEPANE, 0, 0 );
00567     }
00568 #if 0
00569     if( NULL != pcViewArr[0] ){
00570         pcViewArr[0]->RedrawAll();  /* フォーカス移動時の再描画 */
00571     }
00572     if( NULL != pcViewArr[1] ){
00573         pcViewArr[1]->RedrawAll();  /* フォーカス移動時の再描画 */
00574     }
00575     if( NULL != pcViewArr[2] ){
00576         pcViewArr[2]->RedrawAll();  /* フォーカス移動時の再描画 */
00577     }
00578     if( NULL != pcViewArr[3] ){
00579         pcViewArr[3]->RedrawAll();  /* フォーカス移動時の再描画 */
00580     }
00581     if( NULL != pcViewArr[nActivePane] ){
00582         pcViewArr[nActivePane]->RedrawAll();    /* フォーカス移動時の再描画 */
00583     }
00584 #endif
00585     return;
00586 }
00587
00588 /* アクティブペインの設定 */
00589 void CSplitterWnd::SetActivePane( int nIndex )
00590 {
00591     m_nActivePane = nIndex;
00592     return;
00593 }
00594
00595
00596 /* 縦分割ＯＮ／ＯＦＦ */
00597 void CSplitterWnd::VSplitOnOff( void )
00598 {
00599     RECT        rc;
00600     ::GetClientRect( m_hWnd, &rc );
00601
00602     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00603         DoSplit( 0, rc.bottom / 2 );
00604     }else
00605     if( m_nAllSplitRows == 1 && m_nAllSplitCols > 1 ){
00606         DoSplit( m_nHSplitPos, rc.bottom / 2 );
00607     }else
00608     if( m_nAllSplitRows > 1 && m_nAllSplitCols == 1 ){
00609         DoSplit( 0, 0 );
00610     }else{
00611         DoSplit( m_nHSplitPos, 0 );
00612     }
00613     return;
00614 }
00615
00616
00617
00618 /* 横分割ＯＮ／ＯＦＦ */
00619 void CSplitterWnd::HSplitOnOff( void )
00620 {
00621     RECT        rc;
00622     ::GetClientRect( m_hWnd, &rc );
00623
00624     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00625         DoSplit( rc.right / 2, 0 );
00626     }else
00627     if( m_nAllSplitRows == 1 && m_nAllSplitCols > 1 ){
00628         DoSplit( 0, 0 );
00629     }else
00630     if( m_nAllSplitRows > 1 && m_nAllSplitCols == 1 ){
00631         DoSplit( rc.right / 2 , m_nVSplitPos );
00632     }else{
00633         DoSplit( 0, m_nVSplitPos );
00634     }
00635     return;
00636 }
00637
00638
00639
00640 /* 縦横分割ＯＮ／ＯＦＦ */
00641 void CSplitterWnd::VHSplitOnOff( void )
00642 {
00643     int     nX;
00644     int     nY;
00645     RECT    rc;
00646     ::GetClientRect( m_hWnd, &rc );
00647
00648     if( m_nAllSplitRows > 1 && m_nAllSplitCols > 1 ){
00649         nX = 0;
00650         nY = 0;
00651     }else{
00652         if( m_nAllSplitRows == 1){
00653             nY = rc.bottom / 2;
00654         }else{
00655             nY = m_nVSplitPos;
00656         }
00657         if( m_nAllSplitCols == 1 ){
00658             nX = rc.right / 2;
00659         }else{
00660             nX = m_nHSplitPos;
00661         }
00662     }
00663     DoSplit( nX, nY );
00664
00665     return;
00666 }
00667
00668
00669 /* 前のペインを返す */
00670 int CSplitterWnd::GetPrevPane( void )
00671 {
00672     int     nPane;
00673     nPane = -1;
00674     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00675         nPane = -1;
00676     }else
00677     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00678         switch( m_nActivePane ){
00679         case 0:
00680             nPane = -1;
00681             break;
00682         case 2:
00683             nPane = 0;
00684             break;
00685         }
00686     }else
00687     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00688         switch( m_nActivePane ){
00689         case 0:
00690             nPane = -1;
00691             break;
00692         case 1:
00693             nPane = 0;
00694             break;
00695         }
00696     }else{
00697         switch( m_nActivePane ){
00698         case 0:
00699             nPane = -1;
00700             break;
00701         case 1:
00702             nPane = 0;
00703             break;
00704         case 2:
00705             nPane = 1;
00706             break;
00707         case 3:
00708             nPane = 2;
00709             break;
00710         }
00711     }
00712     return nPane;
00713 }
00714
00715
00716
00717
00718 /* 次のペインを返す */
00719 int CSplitterWnd::GetNextPane( void )
00720 {
00721     int     nPane;
00722     nPane = -1;
00723     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00724         nPane = -1;
00725     }else
00726     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00727         switch( m_nActivePane ){
00728         case 0:
00729             nPane = 2;
00730             break;
00731         case 2:
00732             nPane = -1;
00733             break;
00734         }
00735     }else
00736     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00737         switch( m_nActivePane ){
00738         case 0:
00739             nPane = 1;
00740             break;
00741         case 1:
00742             nPane = -1;
00743             break;
00744         }
00745     }else{
00746         switch( m_nActivePane ){
00747         case 0:
00748             nPane = 1;
00749             break;
00750         case 1:
00751             nPane = 2;
00752             break;
00753         case 2:
00754             nPane = 3;
00755             break;
00756         case 3:
00757             nPane = -1;
00758             break;
00759         }
00760     }
00761     return nPane;
00762 }
00763
00764
00765 /* 最初のペインを返す */
00766 int CSplitterWnd::GetFirstPane( void )
00767 {
00768     return 0;
00769 }
00770
00771
00772
00773 /* 最後のペインを返す */
00774 int CSplitterWnd::GetLastPane( void )
00775 {
00776     int     nPane;
00777     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00778         nPane = 0;
00779     }else
00780     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00781         nPane = 1;
00782     }else
00783     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00784         nPane = 2;
00785     }else{
00786         nPane = 3;
00787     }
00788     return nPane;
00789 }
00790
00791
00792
00793
00794 /* 描画処理 */
00795 LRESULT CSplitterWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00796 {
00797     HDC         hdc;
00798     PAINTSTRUCT ps;
00799     RECT        rc;
00800     RECT        rcFrame;
00801     int         nFrameWidth = 3;
00802     HBRUSH      hBrush;
00803     hdc = ::BeginPaint( hwnd, &ps );
00804     ::GetClientRect( m_hWnd, &rc );
00805     hBrush = ::CreateSolidBrush( ::GetSysColor( COLOR_3DFACE ) );
00806     if( m_nAllSplitRows > 1 ){
00807         ::SetRect( &rcFrame, rc.left, m_nVSplitPos, rc.right, m_nVSplitPos + nFrameWidth );
00808         ::FillRect( hdc, &rcFrame, hBrush );
00809     }
00810     if( m_nAllSplitCols > 1 ){
00811         ::SetRect( &rcFrame, m_nHSplitPos, rc.top, m_nHSplitPos + nFrameWidth, rc.bottom );
00812         ::FillRect( hdc, &rcFrame, hBrush );
00813     }
00814     ::DeleteObject( hBrush );
00815     ::EndPaint(hwnd, &ps);
00816     return 0L;
00817 }
00818
00819
00820
00821
00822 /* ウィンドウサイズの変更処理 */
00823 LRESULT CSplitterWnd::OnSize( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00824 {
00825     CEditWnd*   pCEditWnd = (CEditWnd*)m_pCEditWnd;
00826     CEditView*  pcViewArr[MAXCOUNTOFVIEW];
00827     int                 i;
00828     RECT        rcClient;
00829     int         nFrameWidth = 3;
00830     BOOL        bSizeBox;
00831     for( i = 0; i < MAXCOUNTOFVIEW; ++i ){
00832         pcViewArr[i] = ( CEditView* )::GetWindowLongPtr( m_ChildWndArr[i], 0 );
00833     }
00834
00835     /*
00836     || ファンクションキーを下に表示している場合はサイズボックスを表示しない
00837     || ステータスパーを表示している場合はサイズボックスを表示しない
00838     */
00839     if( NULL == pCEditWnd
00840      ||( NULL != pCEditWnd->m_CFuncKeyWnd.m_hWnd
00841       && 1 == m_pShareData->m_Common.m_nFUNCKEYWND_Place    /* ファンクションキー表示位置／0:上 1:下 */
00842       )
00843     ){
00844         bSizeBox = FALSE;
00845     }else{
00846         bSizeBox = TRUE;
00847         /* ステータスパーを表示している場合はサイズボックスを表示しない */
00848         if( NULL != pCEditWnd->m_hwndStatusBar ){
00849             bSizeBox = FALSE;
00850         }
00851     }
00852     /* メインウィンドウが最大化されている場合はサイズボックスを表示しない */
00853     WINDOWPLACEMENT wp;
00854     wp.length = sizeof( WINDOWPLACEMENT );
00855     ::GetWindowPlacement( m_hwndParent, &wp );
00856     if( SW_SHOWMAXIMIZED == wp.showCmd ){
00857         bSizeBox = FALSE;
00858     }
00859
00860     ::GetClientRect( m_hWnd, &rcClient );
00861
00862     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 1 ){
00863         if( m_ChildWndArr[0] != NULL ){
00864             ::MoveWindow( m_ChildWndArr[0], 0, 0, rcClient.right,  rcClient.bottom, TRUE );     /* 子ウィンドウ配列 */
00865
00866             pcViewArr[0]->SplitBoxOnOff( TRUE, TRUE, bSizeBox );        /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00867         }
00868     }else
00869     if( m_nAllSplitRows == 2 && m_nAllSplitCols == 1 ){
00870         if( m_ChildWndArr[0] != NULL ){
00871             ::MoveWindow( m_ChildWndArr[0], 0, 0, rcClient.right,  m_nVSplitPos, TRUE );        /* 子ウィンドウ配列 */
00872             pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00873         }
00874         if( m_ChildWndArr[2] != NULL ){
00875             ::MoveWindow( m_ChildWndArr[2], 0, m_nVSplitPos + nFrameWidth, rcClient.right, rcClient.bottom - ( m_nVSplitPos + nFrameWidth ), TRUE );            /* 子ウィンドウ配列 */
00876             pcViewArr[2]->SplitBoxOnOff( FALSE, TRUE, bSizeBox );   /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00877         }
00878     }else
00879     if( m_nAllSplitRows == 1 && m_nAllSplitCols == 2 ){
00880         if( m_ChildWndArr[0] != NULL ){
00881             ::MoveWindow( m_ChildWndArr[0], 0, 0, m_nHSplitPos, rcClient.bottom, TRUE );            /* 子ウィンドウ配列 */
00882             pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00883         }
00884         if( m_ChildWndArr[1] != NULL ){
00885             ::MoveWindow( m_ChildWndArr[1], m_nHSplitPos + nFrameWidth, 0, rcClient.right - ( m_nHSplitPos + nFrameWidth ),  rcClient.bottom, TRUE );           /* 子ウィンドウ配列 */
00886             pcViewArr[1]->SplitBoxOnOff( TRUE, FALSE, bSizeBox );   /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00887         }
00888     }else{
00889         if( m_ChildWndArr[0] != NULL ){
00890             ::MoveWindow( m_ChildWndArr[0], 0, 0, m_nHSplitPos,  m_nVSplitPos, TRUE );          /* 子ウィンドウ配列 */
00891             pcViewArr[0]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00892         }
00893         if( m_ChildWndArr[1] != NULL ){
00894             ::MoveWindow( m_ChildWndArr[1], m_nHSplitPos + nFrameWidth, 0, rcClient.right - ( m_nHSplitPos + nFrameWidth ),  m_nVSplitPos, TRUE );          /* 子ウィンドウ配列 */
00895             pcViewArr[1]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00896         }
00897         if( m_ChildWndArr[2] != NULL ){
00898             ::MoveWindow( m_ChildWndArr[2], 0, m_nVSplitPos + nFrameWidth , m_nHSplitPos,  rcClient.bottom - ( m_nVSplitPos + nFrameWidth ), TRUE );            /* 子ウィンドウ配列 */
00899             pcViewArr[2]->SplitBoxOnOff( FALSE, FALSE, FALSE ); /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00900         }
00901         if( m_ChildWndArr[3] != NULL ){
00902             ::MoveWindow( m_ChildWndArr[3], m_nHSplitPos + nFrameWidth, m_nVSplitPos + nFrameWidth, rcClient.right - ( m_nHSplitPos + nFrameWidth ),  rcClient.bottom - ( m_nVSplitPos + nFrameWidth ), TRUE );         /* 子ウィンドウ配列 */
00903             pcViewArr[3]->SplitBoxOnOff( FALSE, FALSE, bSizeBox );  /* 縦・横の分割ボックスのＯＮ／ＯＦＦ */
00904         }
00905     }
00906     //デスクトップがちらつくのでだめ!
00907     //::InvalidateRect( m_hWnd, NULL, TRUE );   //再描画してね。    //@@@ 2003.06.11 MIK
00908     return 0L;
00909 }
00910
00911
00912
00913 /* マウス移動時の処理 */
00914 LRESULT CSplitterWnd::OnMouseMove( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00915 {
00916
00917     int     nHit;
00918     HCURSOR hcurOld;    /* もとのマウスカーソル */
00919     RECT    rc;
00920     int     xPos;
00921     int     yPos;
00922
00923     xPos = (int)(short)LOWORD(lParam);
00924     yPos = (int)(short)HIWORD(lParam);
00925
00926     nHit = HitTestSplitter( xPos, yPos );
00927     switch( nHit ){
00928     case 1:
00929         hcurOld = ::SetCursor( ::LoadCursor( NULL, IDC_SIZENS ) );
00930         break;
00931     case 2:
00932         hcurOld = ::SetCursor( ::LoadCursor( NULL, IDC_SIZEWE ) );
00933         break;
00934     case 3:
00935         hcurOld = ::SetCursor( ::LoadCursor( NULL, IDC_SIZEALL ) );
00936         break;
00937     }
00938     if( 0 != m_bDragging ){     /* 分割バーをドラッグ中か */
00939         ::GetClientRect( m_hWnd, &rc );
00940         if( xPos < 1 ){
00941             xPos = 1;
00942         }
00943         if( xPos > rc.right - 6 ){
00944             xPos = rc.right - 6;
00945         }
00946         if( yPos < 1 ){
00947             yPos = 1;
00948         }
00949         if( yPos > rc.bottom - 6 ){
00950             yPos = rc.bottom - 6;
00951         }
00952         /* 分割トラッカーの表示 */
00953         DrawSplitter( xPos, yPos, TRUE );
00954 //      MYTRACE( "xPos=%d yPos=%d \n", xPos, yPos );
00955     }
00956     return 0L;
00957 }
00958
00959
00960
00961 /* マウス左ボタン押下時の処理 */
00962 LRESULT CSplitterWnd::OnLButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00963 {
00964     int     nHit;
00965     int     xPos;
00966     int     yPos;
00967
00968     xPos = (int)(short)LOWORD(lParam);
00969     yPos = (int)(short)HIWORD(lParam);
00970
00971     ::SetFocus( m_hwndParent );
00972     /* 分割バーへのヒットテスト */
00973     nHit = HitTestSplitter( xPos, yPos );
00974     if( 0 != nHit ){
00975         m_bDragging = nHit; /* 分割バーをドラッグ中か */
00976         ::SetCapture( m_hWnd );
00977     }
00978     /* 分割トラッカーの表示 */
00979     DrawSplitter( xPos, yPos, FALSE );
00980
00981     return 0L;
00982 }
00983
00984
00985
00986
00987 /* マウス左ボタン解放時の処理 */
00988 LRESULT CSplitterWnd::OnLButtonUp( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00989 {
00990
00991     int bDraggingOld;
00992     int nX;
00993     int nY;
00994
00995     if( m_bDragging ){
00996         /* 分割トラッカーの表示 */
00997         DrawSplitter( m_nDragPosX, m_nDragPosY, FALSE );
00998         bDraggingOld = m_bDragging;
00999         m_bDragging = 0;
01000         ::ReleaseCapture();
01001         if( NULL != m_hcurOld ){
01002             ::SetCursor( m_hcurOld );
01003         }
01004         /* ウィンドウの分割 */
01005         if( m_nAllSplitRows == 1 ){
01006             nY = 0;
01007         }else{
01008             nY = m_nDragPosY;
01009         }
01010         if( m_nAllSplitCols == 1 ){
01011             nX = 0;
01012         }else{
01013             nX = m_nDragPosX;
01014         }
01015         if( bDraggingOld == 1 ){
01016             DoSplit( m_nHSplitPos, nY );
01017         }else
01018         if( bDraggingOld == 2 ){
01019             DoSplit( nX, m_nVSplitPos );
01020         }else
01021         if( bDraggingOld == 3 ){
01022             DoSplit( nX, nY );
01023         }
01024     }
01025     return 0L;
01026 }
01027
01028
01029
01030
01031 /* マウス左ボタンダブルクリック時の処理 */
01032 LRESULT CSplitterWnd::OnLButtonDblClk( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01033 {
01034     int nX;
01035     int nY;
01036     int nHit;
01037     int xPos;
01038     int yPos;
01039
01040     xPos = (int)(short)LOWORD(lParam);
01041     yPos = (int)(short)HIWORD(lParam);
01042
01043     nHit = HitTestSplitter( xPos, yPos );
01044     if( nHit == 1 ){
01045         if( m_nAllSplitCols == 1 ){
01046             nX = 0;
01047         }else{
01048             nX = m_nHSplitPos;
01049         }
01050         DoSplit( nX , 0 );
01051     }else
01052     if( nHit == 2 ){
01053         if( m_nAllSplitRows == 1 ){
01054             nY = 0;
01055         }else{
01056             nY = m_nVSplitPos;
01057         }
01058         DoSplit( 0 , nY );
01059     }else
01060     if( nHit == 3 ){
01061         DoSplit( 0 , 0 );
01062     }
01063     OnMouseMove( m_hWnd, 0, 0, MAKELONG( xPos, yPos ) );
01064     return 0L;
01065 }
01066
01067
01068
01069
01070 /* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
01071 LRESULT CSplitterWnd::DispatchEvent_WM_APP( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01072 {
01073     int nPosX;
01074     int nPosY;
01075     switch( uMsg ){
01076     case MYWM_DOSPLIT:
01077         nPosX = (int)wParam;
01078         nPosY = (int)lParam;
01079 //      MYTRACE( "MYWM_DOSPLIT nPosX=%d nPosY=%d\n", nPosX, nPosY );
01080
01081         /* ウィンドウの分割 */
01082         if( 0 != m_nHSplitPos ){
01083             nPosX = m_nHSplitPos;
01084         }
01085         if( 0 != m_nVSplitPos ){
01086             nPosY = m_nVSplitPos;
01087         }
01088         DoSplit( nPosX , nPosY );
01089         break;
01090     case MYWM_SETACTIVEPANE:
01091         SetActivePane( (int)wParam );
01092         break;
01093     }
01094     return 0L;
01095 }
01096
01097
01098 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitterWnd.h

CSplitterWnd.h

分割線ウィンドウクラス [詳細]

#include "CWnd.h"
#include "CShareData.h"

CSplitterWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CSplitterWnd
分割線ウィンドウクラス [詳細]

マクロ定義

#define | MAXCOUNTOFVIEW 4

説明

分割線ウィンドウクラス

作者:
Norio Nakatani
日付:
1998/07/07 新規作成

CSplitterWnd.h で定義されています。

マクロ定義

#define MAXCOUNTOFVIEW 4

CSplitterWnd.h の 26 行で定義されています。

参照元 CSplitterWnd::CSplitterWnd()・CSplitterWnd::DoSplit()・CSplitterWnd::OnSize()・CSplitterWnd::SetChildWndArr().

Sakura-Editorに対してSat Oct 27 02:22:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CSplitterWnd.h ソースファイル

CSplitterWnd.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2002, aroka, YAZAKI
00010
00011     This source code is designed for sakura editor.
00012     Please contact the copyright holder to use this code for other purpose.
00013 */
00014 class CSplitterWnd;
00015
00016
00017 #ifndef _CSPLITTERWND_H_
00018 #define _CSPLITTERWND_H_
00019
00020 #include "CWnd.h"
00021 #include "CShareData.h"
00022 /*-----------------------------------------------------------------------
00023 クラスの宣言
00024 -----------------------------------------------------------------------*/
00025
00026 #define MAXCOUNTOFVIEW  4
00027
00035 class SAKURA_CORE_API CSplitterWnd : public CWnd
00036 {
00037 public:
00038     /*
00039     ||  Constructors
00040     */
00041     CSplitterWnd();
00042     ~CSplitterWnd();
00043 private: // 2002/2/3 aroka
00044     /*
00045     ||  Attributes & Operations
00046     */
00047     char*           m_pszClassName;         /* クラス名 */
00048     DLLSHAREDATA*   m_pShareData;
00049     void*           m_pCEditWnd;
00050     int             m_nAllSplitRows;        /* 分割行数 */
00051     int             m_nAllSplitCols;        /* 分割桁数 */
00052     int             m_nVSplitPos;           /* 垂直分割位置 */
00053     int             m_nHSplitPos;           /* 水平分割位置 */
00054     HWND            m_ChildWndArr[MAXCOUNTOFVIEW];      /* 子ウィンドウ配列 */
00055     HCURSOR         m_hcurOld;              /* もとのマウスカーソル */
00056     int             m_bDragging;            /* 分割バーをドラッグ中か */
00057     int             m_nDragPosX;            /* ドラッグ位置Ｘ */
00058     int             m_nDragPosY;            /* ドラッグ位置Ｙ */
00059     int             m_nActivePane;          /* アクティブなペイン */
00060 public: // 2002/2/3 aroka
00061     HWND Create( HINSTANCE, HWND, void* pCEditWnd );    /* 初期化 */
00062     void SetChildWndArr( HWND* );   /* 子ウィンドウの設定 */
00063     void DoSplit( int, int );   /* ウィンドウの分割 */
00064     void SetActivePane( int );  /* アクティブペインの設定 */
00065     int GetPrevPane( void );    /* 前のペインを返す */
00066     int GetNextPane( void );    /* 次のペインを返す */
00067     int GetFirstPane( void );   /* 最初のペインを返す */
00068     int GetLastPane( void );    /* 最後のペインを返す */
00069
00070     void VSplitOnOff( void );   /* 縦分割ＯＮ／ＯＦＦ */
00071     void HSplitOnOff( void );   /* 横分割ＯＮ／ＯＦＦ */
00072     void VHSplitOnOff( void );  /* 縦横分割ＯＮ／ＯＦＦ */
00073 //  LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );    /* ダイアログのメッセージ処理 */
00074     int GetAllSplitRows(){ return m_nAllSplitRows;} // 2002/2/3 aroka
00075     int GetAllSplitCols(){ return m_nAllSplitCols;} // 2002/2/3 aroka
00076 protected:
00077     /* 仮想関数 */
00078     virtual LRESULT DispatchEvent_WM_APP( HWND, UINT, WPARAM, LPARAM );/* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
00079
00080     /* 仮想関数 メッセージ処理 詳しくは実装を参照 */
00081     virtual LRESULT OnSize( HWND, UINT, WPARAM, LPARAM );   /* ウィンドウサイズの変更処理 */
00082     virtual LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );  /* 描画処理 */
00083     virtual LRESULT OnMouseMove( HWND, UINT, WPARAM, LPARAM ); /* マウス移動時の処理 */
00084     virtual LRESULT OnLButtonDown( HWND, UINT, WPARAM, LPARAM );    /* マウス左ボタン押下時の処理 */
00085     virtual LRESULT OnLButtonUp( HWND, UINT, WPARAM, LPARAM );  /* マウス左ボタン解放時の処理 */
00086     virtual LRESULT OnLButtonDblClk( HWND, UINT, WPARAM, LPARAM );  /* マウス左ボタンダブルクリック時の処理 */
00087     /*
00088     ||  実装ヘルパ関数
00089     */
00090     void DrawFrame( HDC , RECT* );  /* 分割フレーム描画 */
00091     int HitTestSplitter( int , int );   /* 分割バーへのヒットテスト */
00092     void DrawSplitter( int , int , int );   /* 分割トラッカーの表示 */
00093
00094 };
00095
00096
00097
00099 #endif /* _CSPLITTERWND_H_ */
00100
00101
00102 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTabWnd.cpp

CTabWnd.cpp

タブウィンドウ [詳細]

#include "stdafx.h"
#include <windows.h>
#include "CTabWnd.h"
#include "debug.h"
#include "CEditWnd.h"
#include "global.h"
#include "mymessage.h"
#include "etc_uty.h"
#include "charcode.h"
#include "my_tchar.h"

CTabWnd.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | TABMENU_DATA

マクロ定義

#define | SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
#define | SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
#define | WM_THEMECHANGED 0x031A
#define | TAB_WINDOW_HEIGHT 24
#define | TAB_MARGIN_TOP 3
#define | TAB_MARGIN_LEFT 1
#define | TAB_MARGIN_RIGHT 47
#define | TAB_ITEM_HEIGHT (TAB_WINDOW_HEIGHT - 5)
#define | MAX_TABITEM_WIDTH 200
#define | MIN_TABITEM_WIDTH 60
#define | CX_SMICON 16
#define | CY_SMICON 16

関数

static int | compTABMENU_DATA (const void *arg1, const void *arg2)
LRESULT CALLBACK | TabWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

static const RECT | rcBtnBase = { 0, 0, 16, 16 }
WNDPROC | gm_pOldWndProc = NULL

説明

タブウィンドウ

作者:
MIK
日付:
2003.5.30

2004.01.27 break漏れ対応。TCHAR化。タブ表示が崩れる(?)の対応。

CTabWnd.cpp で定義されています。

マクロ定義

#define CX_SMICON 16

CTabWnd.cpp の 69 行で定義されています。

参照元 CTabWnd::ImageList_Duplicate()・CTabWnd::OnDrawItem()・CTabWnd::OnMeasureItem().

#define CY_SMICON 16

CTabWnd.cpp の 70 行で定義されています。

参照元 CTabWnd::ImageList_Duplicate()・CTabWnd::OnDrawItem().

#define MAX_TABITEM_WIDTH 200

CTabWnd.cpp の 67 行で定義されています。

参照元 CTabWnd::LayoutTab()・CTabWnd::Open().

#define MIN_TABITEM_WIDTH 60

CTabWnd.cpp の 68 行で定義されています。

参照元 CTabWnd::LayoutTab().

#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000

CTabWnd.cpp の 49 行で定義されています。

参照元 CTabWnd::ForceActiveWindow().

#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001

CTabWnd.cpp の 52 行で定義されています。

参照元 CTabWnd::ForceActiveWindow().

#define TAB_ITEM_HEIGHT (TAB_WINDOW_HEIGHT - 5)

CTabWnd.cpp の 66 行で定義されています。

参照元 CTabWnd::LayoutTab()・CTabWnd::Open().

#define TAB_MARGIN_LEFT 1

CTabWnd.cpp の 64 行で定義されています。

参照元 CTabWnd::OnPaint()・CTabWnd::OnSize()・CTabWnd::Open().

#define TAB_MARGIN_RIGHT 47

CTabWnd.cpp の 65 行で定義されています。

参照元 CTabWnd::GetCloseBtnRect()・CTabWnd::GetListBtnRect()・CTabWnd::OnSize().

#define TAB_MARGIN_TOP 3

CTabWnd.cpp の 63 行で定義されています。

参照元 CTabWnd::GetCloseBtnRect()・CTabWnd::GetListBtnRect()・CTabWnd::OnPaint()・CTabWnd::OnSize()・CTabWnd::Open().

#define TAB_WINDOW_HEIGHT 24

CTabWnd.cpp の 62 行で定義されています。

参照元 CTabWnd::OnSize()・CTabWnd::Open().

#define WM_THEMECHANGED 0x031A

CTabWnd.cpp の 58 行で定義されています。

関数

static int compTABMENU_DATA | ( | const void * | arg1,
 |  | const void * | arg2
 | ) | [static]

タブ一覧メニュー用データの qsort() コールバック処理

日付:
2006.02.01 ryoji 新規作成

CTabWnd.cpp の 84 行で定義されています。

LRESULT CALLBACK TabWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CTabWnd.cpp の 98 行で定義されています。

参照先 GetWindowLongPtr・gm_pOldWndProc・GWLP_USERDATA・CTabWnd::TabWndDispatchEvent().

参照元 CTabWnd::Open().

変数

WNDPROC gm_pOldWndProc = NULL

CTabWnd.cpp の 95 行で定義されています。

参照元 CTabWnd::Close()・CTabWnd::CTabWnd()・CTabWnd::Open()・TabWndProc().

const RECT rcBtnBase = { 0, 0, 16, 16 } [static]

CTabWnd.cpp の 71 行で定義されています。

参照元 CTabWnd::GetCloseBtnRect()・CTabWnd::GetListBtnRect().

Sakura-Editorに対してSat Oct 27 02:22:43 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTabWnd.cpp ソースファイル

CTabWnd.cpp

説明を見る。
00001
00008 /*
00009     Copyright (C) 2003, MIK, KEITA
00010     Copyright (C) 2004, Moca, MIK, genta, Kazika
00011     Copyright (C) 2005, ryoji
00012     Copyright (C) 2006, ryoji, fon
00013     Copyright (C) 2007, ryoji
00014
00015     This software is provided 'as-is', without any express or implied
00016     warranty. In no event will the authors be held liable for any damages
00017     arising from the use of this software.
00018
00019     Permission is granted to anyone to use this software for any purpose,
00020     including commercial applications, and to alter it and redistribute it
00021     freely, subject to the following restrictions:
00022
00023         1. The origin of this software must not be misrepresented;
00024            you must not claim that you wrote the original software.
00025            If you use this software in a product, an acknowledgment
00026            in the product documentation would be appreciated but is
00027            not required.
00028
00029         2. Altered source versions must be plainly marked as such,
00030            and must not be misrepresented as being the original software.
00031
00032         3. This notice may not be removed or altered from any source
00033            distribution.
00034 */
00035
00036 #include "stdafx.h"
00037 #include <windows.h>
00038 #include "CTabWnd.h"
00039 #include "debug.h"
00040 #include "CEditWnd.h"
00041 #include "global.h"
00042 #include "mymessage.h"
00043 #include "etc_uty.h"
00044 #include "charcode.h"
00045 #include "my_tchar.h"   //Unicode対応 Moca
00046
00047 //#if(WINVER >= 0x0500)
00048 #ifndef SPI_GETFOREGROUNDLOCKTIMEOUT
00049 #define SPI_GETFOREGROUNDLOCKTIMEOUT        0x2000
00050 #endif
00051 #ifndef SPI_SETFOREGROUNDLOCKTIMEOUT
00052 #define SPI_SETFOREGROUNDLOCKTIMEOUT        0x2001
00053 #endif
00054 //#endif
00055
00056 // 2007.04.01 ryoji WM_THEMECHANGED
00057 #ifndef WM_THEMECHANGED
00058 #define WM_THEMECHANGED     0x031A
00059 #endif
00060
00061 // 2006.01.30 ryoji タブのサイズ／位置に関する定義
00062 #define TAB_WINDOW_HEIGHT   24
00063 #define TAB_MARGIN_TOP      3
00064 #define TAB_MARGIN_LEFT     1
00065 #define TAB_MARGIN_RIGHT    47
00066 #define TAB_ITEM_HEIGHT     (TAB_WINDOW_HEIGHT - 5)
00067 #define MAX_TABITEM_WIDTH   200
00068 #define MIN_TABITEM_WIDTH   60
00069 #define CX_SMICON           16
00070 #define CY_SMICON           16
00071 static const RECT rcBtnBase = { 0, 0, 16, 16 };
00072
00073 // 2006.02.01 ryoji タブ一覧メニュー用データ
00074 typedef struct {
00075     HWND hwnd;
00076     int iItem;
00077     int iImage;
00078     TCHAR szText[_MAX_PATH];
00079 } TABMENU_DATA;
00080
00084 static int compTABMENU_DATA( const void *arg1, const void *arg2 )
00085 {
00086     int ret;
00087
00088     ret = ::lstrcmp( ((TABMENU_DATA*)arg1)->szText, ((TABMENU_DATA*)arg2)->szText );
00089     if( 0 == ret )
00090         ret = ((TABMENU_DATA*)arg1)->iItem - ((TABMENU_DATA*)arg2)->iItem;
00091     return ret;
00092 }
00093
00094
00095 WNDPROC gm_pOldWndProc = NULL;
00096
00097 /* TabWndウィンドウメッセージのコールバック関数 */
00098 LRESULT CALLBACK TabWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00099 {
00100     CTabWnd *pcTabWnd;
00101
00102     // Modified by KEITA for WIN64 2003.9.6
00103     pcTabWnd = (CTabWnd*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00104
00105     if( pcTabWnd )
00106     {
00107         //return
00108         if( 0L == pcTabWnd->TabWndDispatchEvent( hwnd, uMsg, wParam, lParam ) )
00109             return 0L;
00110     }
00111
00112     if( gm_pOldWndProc )
00113         return ::CallWindowProc( (WNDPROC)gm_pOldWndProc, hwnd, uMsg, wParam, lParam );
00114     else
00115         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00116 }
00117
00118 /* メッセージ配送 */
00119 LRESULT CTabWnd::TabWndDispatchEvent( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00120 {
00121     // 2005.09.01 ryoji タブ部のメッセージ処理を個別に関数化し、タブ順序変更の処理を追加
00122     switch( uMsg )
00123     {
00124     case WM_LBUTTONDOWN:
00125         return OnTabLButtonDown( wParam, lParam );
00126
00127     case WM_LBUTTONUP:
00128         return OnTabLButtonUp( wParam, lParam );
00129
00130     case WM_MOUSEMOVE:
00131         return OnTabMouseMove( wParam, lParam );
00132
00133     case WM_CAPTURECHANGED:
00134         return OnTabCaptureChanged( wParam, lParam );
00135
00136     case WM_RBUTTONDOWN:
00137         return OnTabRButtonDown( wParam, lParam );
00138
00139     case WM_RBUTTONUP:
00140         return OnTabRButtonUp( wParam, lParam );
00141
00142     case WM_MBUTTONDOWN:
00143         return OnTabMButtonDown( wParam, lParam );
00144
00145     case WM_MBUTTONUP:
00146         return OnTabMButtonUp( wParam, lParam );
00147
00148     case WM_NOTIFY:
00149         return OnTabNotify( wParam, lParam );
00150
00151     case WM_HSCROLL:
00152         ::InvalidateRect( m_hWnd, NULL, TRUE ); // アクティブタブの位置が変わるのでトップバンドを更新する   // 2006.03.27 ryoji
00153         break;
00154
00155     case WM_THEMECHANGED:
00156         m_bVisualStyle = ::IsVisualStyle();
00157         break;
00158
00159     //default:
00160     }
00161
00162     return 1L;  //デフォルトのディスパッチにまわす
00163 }
00164
00166 LRESULT CTabWnd::OnTabLButtonDown( WPARAM wParam, LPARAM lParam )
00167 {
00168     // ボタンが押された位置を確認する
00169     TCHITTESTINFO hitinfo;
00170     hitinfo.pt.x = LOWORD( (DWORD)lParam );
00171     hitinfo.pt.y = HIWORD( (DWORD)lParam );
00172     int nSrcTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00173     if( 0 > nSrcTab )
00174         return 1L;
00175
00176     m_eDragState = DRAG_CHECK;  // ドラッグのチェックを開始
00177
00178     // ドラッグ元タブを記憶する
00179     m_nSrcTab = nSrcTab;
00180     ::GetCursorPos( &m_ptSrcCursor );
00181
00182     ::SetCapture( m_hwndTab );
00183
00184     return 0L;
00185 }
00186
00188 LRESULT CTabWnd::OnTabLButtonUp( WPARAM wParam, LPARAM lParam )
00189 {
00190     TCHITTESTINFO   hitinfo;
00191     hitinfo.pt.x = LOWORD( (DWORD)lParam );
00192     hitinfo.pt.y = HIWORD( (DWORD)lParam );
00193     int nDstTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00194     int nSelfTab = FindTabIndexByHWND( m_hwndParent );
00195
00196     switch( m_eDragState )
00197     {
00198     case DRAG_CHECK:
00199         if ( m_nSrcTab == nDstTab && m_nSrcTab != nSelfTab )
00200         {
00201             //指定のウインドウをアクティブに
00202             TCITEM  tcitem;
00203             tcitem.mask   = TCIF_PARAM;
00204             tcitem.lParam = (LPARAM)0;
00205             TabCtrl_GetItem( m_hwndTab, nDstTab, &tcitem );
00206
00207             ShowHideWindow( (HWND)tcitem.lParam, TRUE );
00208         }
00209         break;
00210
00211     case DRAG_DRAG:
00212         if ( 0 <= nDstTab ) // タブの上でドロップ
00213         {
00214             // タブの順序変更処理
00215             ReorderTab( m_nSrcTab, nDstTab );
00216         }
00217         else
00218         {
00219             // タブの分離処理
00220             if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin ){
00221                 if( !::IsZoomed( m_hwndParent ) )
00222                 {
00223                     HWND hwndAncestor;
00224                     POINT ptCursor;
00225
00226                     ::GetCursorPos( &ptCursor );
00227                     hwndAncestor = MyGetAncestor( ::WindowFromPoint( ptCursor ), GA_ROOT );
00228                     if( hwndAncestor != m_hwndParent )  // 自画面の外でドロップ
00229                     {
00230                         // タブ移動
00231                         TCITEM  tcitem;
00232                         tcitem.mask   = TCIF_PARAM;
00233                         tcitem.lParam = (LPARAM)0;
00234                         TabCtrl_GetItem( m_hwndTab, m_nSrcTab, &tcitem );
00235                         HWND hwndSrc = (HWND)tcitem.lParam;
00236                         HWND hwndDst = CShareData::getInstance()->IsEditWnd( hwndAncestor )? hwndAncestor: NULL;
00237
00238                         SeparateGroup( hwndSrc, hwndDst, m_ptSrcCursor, ptCursor );
00239                     }
00240                 }
00241             }
00242         }
00243         break;
00244
00245     default:
00246         break;
00247     }
00248
00249     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
00250
00251     return 0L;
00252 }
00253
00255 LRESULT CTabWnd::OnTabMouseMove( WPARAM wParam, LPARAM lParam )
00256 {
00257     TCHITTESTINFO   hitinfo;
00258     hitinfo.pt.x = LOWORD( (DWORD)lParam );
00259     hitinfo.pt.y = HIWORD( (DWORD)lParam );
00260     int nDstTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00261
00262     switch( m_eDragState )
00263     {
00264     case DRAG_CHECK:
00265         // 元のタブから離れたらドラッグ開始
00266         if( m_nSrcTab == nDstTab )
00267             break;
00268         m_eDragState = DRAG_DRAG;
00269         // ここに来たらドラッグ開始なので break しないでそのまま DRAG_DRAG 処理に入る
00270
00271     case DRAG_DRAG:
00272         // ドラッグ中のマウスカーソルを表示する
00273         HINSTANCE hInstance;
00274         LPCTSTR lpCursorName;
00275         lpCursorName = IDC_NO;  // 禁止カーソル
00276         if ( 0 <= nDstTab ) // タブの上にカーソルがある
00277         {
00278             if( m_nSrcTab > nDstTab )
00279                 lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_LEFT);    // 左へ移動カーソル
00280             else if( m_nSrcTab < nDstTab )
00281                 lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_RIGHT);   // 右へ移動カーソル
00282         }
00283         else
00284         {
00285             if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
00286             {
00287                 if( !::IsZoomed( m_hwndParent ) )
00288                 {
00289                     HWND hwndAncestor;
00290                     POINT ptCursor;
00291
00292                     ::GetCursorPos( &ptCursor );
00293                     hwndAncestor = MyGetAncestor( ::WindowFromPoint( ptCursor ), GA_ROOT );
00294                     if( hwndAncestor != m_hwndParent )  // 自画面の外にカーソルがある
00295                     {
00296                         if( CShareData::getInstance()->IsEditWnd( hwndAncestor ) )
00297                             lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_JOIN);    // 結合カーソル
00298                         else
00299                             lpCursorName = MAKEINTRESOURCE(IDC_CURSOR_TAB_SEPARATE);    // 分離カーソル
00300                     }
00301                 }
00302             }
00303         }
00304         hInstance = (lpCursorName == IDC_NO)? NULL: ::GetModuleHandle( NULL );
00305         ::SetCursor( ::LoadCursor( hInstance, lpCursorName ) );
00306         break;
00307
00308     default:
00309         return 1L;
00310     }
00311
00312     return 0L;
00313 }
00314
00316 LRESULT CTabWnd::OnTabCaptureChanged( WPARAM wParam, LPARAM lParam )
00317 {
00318     if( m_eDragState != DRAG_NONE )
00319         m_eDragState = DRAG_NONE;
00320
00321     return 0L;
00322 }
00323
00325 LRESULT CTabWnd::OnTabRButtonDown( WPARAM wParam, LPARAM lParam )
00326 {
00327     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
00328
00329     return 0L;  // 2006.01.28 ryoji OnTabMButtonDown にあわせて 0 を返すように変更
00330 }
00331
00333 LRESULT CTabWnd::OnTabRButtonUp( WPARAM wParam, LPARAM lParam )
00334 {
00335     // 2006.01.28 ryoji タブのカスタムメニュー表示コマンドを実行する(関数化)
00336     return ExecTabCommand( F_CUSTMENU_BASE + CUSTMENU_INDEX_FOR_TABWND, MAKEPOINTS(lParam) );
00337 }
00338
00342 LRESULT CTabWnd::OnTabMButtonDown( WPARAM wParam, LPARAM lParam )
00343 {
00344     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
00345
00346     return 0L;  // フォーカスがタブに移らないよう、ここでは 0 を返す
00347 }
00348
00352 LRESULT CTabWnd::OnTabMButtonUp( WPARAM wParam, LPARAM lParam )
00353 {
00354     // ウィンドウを閉じるコマンドを実行する
00355     return ExecTabCommand( F_WINCLOSE, MAKEPOINTS(lParam) );
00356 }
00357
00363 LRESULT CTabWnd::OnTabNotify( WPARAM wParam, LPARAM lParam )
00364 {
00365     LPNMTTDISPINFO  lpnmtdi;
00366     lpnmtdi = (LPNMTTDISPINFO)lParam;
00367     if( lpnmtdi->hdr.hwndFrom == m_hwndToolTip )
00368     {
00369         switch( lpnmtdi->hdr.code )
00370         {
00371         //case TTN_NEEDTEXT:
00372         case TTN_GETDISPINFOW:
00373         case TTN_GETDISPINFOA:
00374             {
00375                 TCITEM  tcitem;
00376
00377                 tcitem.mask   = TCIF_PARAM;
00378                 tcitem.lParam = (LPARAM)NULL;
00379                 if( TabCtrl_GetItem( m_hwndTab, lpnmtdi->hdr.idFrom, &tcitem ) )
00380                 {
00381                     EditNode* pEditNode;
00382                     pEditNode = CShareData::getInstance()->GetEditNode( (HWND)tcitem.lParam );
00383                     GetTabName( pEditNode, TRUE, FALSE, m_szTextTip1, sizeof(m_szTextTip1)/sizeof(TCHAR) );
00384
00385                     if( TTN_GETDISPINFOW == lpnmtdi->hdr.code )
00386                     {
00387 #ifdef UNICODE
00388                         lpnmtdi->lpszText = m_szTextTip1;
00389                         lpnmtdi->hinst    = NULL;
00390 #else
00391                         //UNICODEの文字列が欲しい。
00392                         int Size = _tcslen( m_szTextTip1 );
00393                         m_szTextTip2[ MultiByteToWideChar( CP_ACP, 0, m_szTextTip1, Size, m_szTextTip2, Size ) ] = 0;
00394                         LPNMTTDISPINFOW lpnmtdiw = (LPNMTTDISPINFOW)lParam;
00395                         lpnmtdiw->lpszText = m_szTextTip2;
00396                         lpnmtdiw->hinst    = NULL;
00397 #endif  //UNICODE
00398                     }
00399                     else
00400                     {
00401 #ifdef UNICODE
00402                         //SJISの文字列が欲しい。
00403                         int Size = _tcslen( m_szTextTip1 );
00404                         m_szTextTip2[ WideCharToMultiByte( CP_ACP, 0, m_szTextTip1, Size, m_szTextTip2, Size, 0, 0 ) ] = 0;
00405                         LPNMTTDISPINFOA lpnmtdia = (LPNMTTDISPINFOA)lParam;
00406                         lpnmtdia->lpszText = m_szTextTip2;
00407                         lpnmtdia->hinst    = NULL;
00408 #else
00409                         lpnmtdi->lpszText = m_szTextTip1;
00410                         lpnmtdi->hinst    = NULL;
00411 #endif  //UNICODE
00412                     }
00413
00414                     return 0L;
00415                 }
00416             }
00417         }
00418     }
00419
00420     return 1L;
00421 }
00422
00432 BOOL CTabWnd::ReorderTab( int nSrcTab, int nDstTab )
00433 {
00434     TCITEM      tcitem;
00435     HWND        hwndSrc;    // 移動元ウィンドウ
00436     HWND        hwndDst;    // 移動先ウィンドウ
00437
00438     if( 0 > nSrcTab || 0 > nDstTab || nSrcTab == nDstTab )
00439         return FALSE;
00440
00441     // 移動元タブ、移動先タブのウィンドウを取得する
00442     tcitem.mask   = TCIF_PARAM;
00443     tcitem.lParam = (LPARAM)0;
00444     TabCtrl_GetItem( m_hwndTab, nSrcTab, &tcitem );
00445     hwndSrc = (HWND)tcitem.lParam;
00446
00447     tcitem.mask   = TCIF_PARAM;
00448     tcitem.lParam = (LPARAM)0;
00449     TabCtrl_GetItem( m_hwndTab, nDstTab, &tcitem );
00450     hwndDst = (HWND)tcitem.lParam;
00451
00452     //  2007.07.07 genta CShareData::ReorderTabとして独立
00453     if( ! CShareData::getInstance()->ReorderTab( hwndSrc, hwndDst ) ){
00454         return FALSE;
00455     }
00456
00457     // 再表示メッセージをブロードキャストする。
00458     int nGroup = CShareData::getInstance()->GetGroupId( m_hwndParent );
00459     CShareData::getInstance()->PostMessageToAllEditors( MYWM_TAB_WINDOW_NOTIFY, (WPARAM)TWNT_REFRESH, (LPARAM)FALSE, m_hwndParent, nGroup );
00460
00461     return TRUE;
00462 }
00463
00468 BOOL CTabWnd::SeparateGroup( HWND hwndSrc, HWND hwndDst, POINT ptDrag, POINT ptDrop )
00469 {
00470     HWND hWnd = m_hwndParent;
00471     if( hWnd != ::GetForegroundWindow() )
00472         return FALSE;
00473     // 最大化時は切り離さない（最大化時の処理コードも残してあるが動作不安定のため、無理しないでおく）
00474     // Note. マルチモニタで別モニタに切り離すとき、
00475     //       両モニタの画面がアクティブになってしまうことがある
00476     //       この場合エディタ内部状態もおかしくなっており、
00477     //       結合しなおして別タブ選択すると離れてしまったりする（Win XPだけ？）
00478     if( ::IsZoomed( hWnd ) )
00479         return FALSE;
00480     if( hWnd != CShareData::getInstance()->GetTopEditWnd( hwndSrc ) )
00481         return FALSE;
00482     if( hwndDst != NULL && hwndDst != CShareData::getInstance()->GetTopEditWnd( hwndDst ) )
00483         return FALSE;
00484     if( hwndSrc == hwndDst )
00485         return TRUE;
00486
00487     EditNode* pSrcEditNode = CShareData::getInstance()->GetEditNode( hwndSrc );
00488     EditNode* pDstEditNode = CShareData::getInstance()->GetEditNode( hwndDst );
00489
00490     // グループ変更するウィンドウが先頭ウィンドウなら次のウィンドウを可視にする（手前には出さない）
00491     // そうでなければ新規グループになる場合に別ウィンドウよりは手前に表示されるよう不可視のまま先頭ウィンドウのすぐ後ろにもってきておく
00492     HWND hwndTop = CShareData::getInstance()->GetTopEditWnd( hwndSrc );
00493     bool bSrcIsTop = ( hwndSrc == hwndTop );
00494     if( bSrcIsTop )
00495     {
00496         EditNode* pNextEditNode = CShareData::getInstance()->GetEditNodeAt( pSrcEditNode->m_nGroup, 1 );
00497         if( pNextEditNode != NULL )
00498         {
00499             DWORD dwResult;
00500             ::SendMessageTimeout( pNextEditNode->m_hWnd, MYWM_TAB_WINDOW_NOTIFY, TWNT_WNDPL_ADJUST, (LPARAM)NULL,
00501                                     SMTO_ABORTIFHUNG | SMTO_BLOCK, 10000, &dwResult );
00502         }
00503     }
00504     else if( pDstEditNode == NULL )
00505     {
00506         ::SetWindowPos( hwndSrc, hwndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00507     }
00508
00509     //  2007.07.07 genta 内部的なグループ移動の操作をCShareDataへ移動
00510     int notifygroups[2];
00511     hwndDst = CShareData::getInstance()->SeparateGroup( hwndSrc, hwndDst, bSrcIsTop, notifygroups );
00512
00513     WINDOWPLACEMENT wp;
00514     RECT rcDstWork;
00515     GetMonitorWorkRect( ptDrop, &rcDstWork );
00516     wp.length = sizeof(WINDOWPLACEMENT);
00517     if( hwndDst == NULL )
00518     {   // 新規グループのウィンドウ処理
00519         // ウィンドウを移動先に表示する
00520         ::GetWindowPlacement( hwndTop, &wp );
00521         if( wp.showCmd != SW_SHOWMAXIMIZED )
00522         {
00523             // 移動元の先頭ウィンドウのサイズで画面内を相対移動する
00524             wp.rcNormalPosition.left += (ptDrop.x - ptDrag.x);
00525             wp.rcNormalPosition.right += (ptDrop.x - ptDrag.x);
00526             wp.rcNormalPosition.top += (ptDrop.y - ptDrag.y);
00527             wp.rcNormalPosition.bottom += (ptDrop.y - ptDrag.y);
00528
00529             // 上端がモニタ画面から出てしまわないように位置調整
00530             if( wp.rcNormalPosition.top < rcDstWork.top )
00531             {
00532                 wp.rcNormalPosition.bottom += ( rcDstWork.top - wp.rcNormalPosition.top );
00533                 wp.rcNormalPosition.top = rcDstWork.top;
00534             }
00535         }
00536         else
00537         {
00538             // 移動先モニタに最大表示する
00539             // （元に戻すサイズはモニタが異なる場合もモニタ内相対位置を維持するように移動しておく）
00540             RECT rcSrcWork;
00541             GetMonitorWorkRect( ptDrag, &rcSrcWork );
00542             wp.rcNormalPosition.left += (rcDstWork.left - rcSrcWork.left);
00543             wp.rcNormalPosition.right += (rcDstWork.left - rcSrcWork.left);
00544             wp.rcNormalPosition.top += (rcDstWork.top - rcSrcWork.top);
00545             wp.rcNormalPosition.bottom += (rcDstWork.top - rcSrcWork.top);
00546
00547             // 元に戻すサイズがモニタ画面から出てしまわないように位置調整
00548             if( wp.rcNormalPosition.right > rcDstWork.right )
00549             {
00550                 wp.rcNormalPosition.left -= (wp.rcNormalPosition.right - rcDstWork.right);
00551                 wp.rcNormalPosition.right -= (wp.rcNormalPosition.right - rcDstWork.right);
00552             }
00553             if( wp.rcNormalPosition.bottom > rcDstWork.bottom )
00554             {
00555                 wp.rcNormalPosition.top -= (wp.rcNormalPosition.bottom - rcDstWork.bottom);
00556                 wp.rcNormalPosition.bottom -= (wp.rcNormalPosition.bottom - rcDstWork.bottom);
00557             }
00558             if( wp.rcNormalPosition.left < rcDstWork.left )
00559             {
00560                 wp.rcNormalPosition.right += (rcDstWork.left - wp.rcNormalPosition.left);
00561                 wp.rcNormalPosition.left += (rcDstWork.left - wp.rcNormalPosition.left);
00562             }
00563             if( wp.rcNormalPosition.top < rcDstWork.top )
00564             {
00565                 wp.rcNormalPosition.bottom += (rcDstWork.top - wp.rcNormalPosition.top);
00566                 wp.rcNormalPosition.top += (rcDstWork.top - wp.rcNormalPosition.top);
00567             }
00568             if( ::IsZoomed( hwndSrc ) )
00569             {
00570                 // もともと最大化されていた場合は一旦通常サイズで表示しないと新しいサイズが記憶されない
00571                 wp.showCmd = SW_SHOWNOACTIVATE;
00572                 ::SetWindowPlacement( hwndSrc, &wp );
00573                 wp.showCmd = SW_SHOWMAXIMIZED;
00574             }
00575         }
00576
00577         if( wp.showCmd != SW_SHOWMAXIMIZED )
00578             wp.showCmd = SW_SHOWNOACTIVATE; // 移動ウィンドウがアクティブでないときはそのままなるべくアクティブ化しない
00579         ::SetWindowPlacement( hwndSrc, &wp );
00580     }
00581     else
00582     {   // 既存グループのウィンドウ処理
00583         // 移動先の WS_EX_TOPMOST 状態を引き継ぐ
00584         HWND hWndInsertAfter = (::GetWindowLongPtr( hwndDst, GWL_EXSTYLE ) & WS_EX_TOPMOST)? HWND_TOPMOST: HWND_NOTOPMOST;
00585         ::SetWindowPos( hwndSrc, hWndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
00586         if( bSrcIsTop )
00587         {
00588             // ウィンドウを移動先に表示する（先頭ウィンドウが既存グループに移動した）
00589             ::GetWindowPlacement( hwndDst, &wp );
00590             if( ::IsZoomed( hwndSrc ) && wp.showCmd == SW_SHOWMAXIMIZED )
00591             {
00592                 wp.showCmd = SW_SHOWNOACTIVATE;
00593                 ::SetWindowPlacement( hwndSrc, &wp );
00594                 wp.showCmd = SW_SHOWMAXIMIZED;
00595             }
00596             ::SetWindowPlacement( hwndSrc, &wp );
00597             ::ShowWindow( hwndDst, SW_HIDE );   // 移動先の以前の先頭ウィンドウを消す
00598         }
00599     }
00600
00601     // 再表示メッセージをブロードキャストする。
00602     //  2007.07.07 genta 2回ループに
00603     for( int group = 0; group < sizeof( notifygroups )/sizeof( notifygroups[0] ); group++ ){
00604         CShareData::getInstance()->PostMessageToAllEditors( MYWM_TAB_WINDOW_NOTIFY,
00605             (WPARAM)TWNT_REFRESH, (LPARAM)bSrcIsTop, NULL, notifygroups[group] );
00606     }
00607
00608     return TRUE;
00609 }
00610
00614 LRESULT CTabWnd::ExecTabCommand( int nId, POINTS pts )
00615 {
00616     // マウス位置(pt)のタブを取得する
00617     TCHITTESTINFO   hitinfo;
00618     hitinfo.pt.x = pts.x;
00619     hitinfo.pt.y = pts.y;
00620     int nTab = TabCtrl_HitTest( m_hwndTab, (LPARAM)&hitinfo );
00621     if( nTab < 0 )
00622         return 1L;
00623
00624     // 対象ウィンドウを取得する
00625     TCITEM  tcitem;
00626     tcitem.mask   = TCIF_PARAM;
00627     tcitem.lParam = (LPARAM)0;
00628     if( !TabCtrl_GetItem( m_hwndTab, nTab, &tcitem ) )
00629         return 1L;
00630     HWND hWnd = (HWND)tcitem.lParam;
00631
00632     // 対象ウインドウをアクティブにする。
00633     ShowHideWindow( hWnd, TRUE );
00634
00635     // コマンドを対象ウインドウに送る。
00636     ::PostMessage( hWnd, WM_COMMAND, MAKEWPARAM( nId, 0 ), (LPARAM)NULL );
00637
00638     return 0L;
00639 }
00640
00641
00642 CTabWnd::CTabWnd()
00643   : m_bVisualStyle( FALSE ),        // 2007.04.01 ryoji
00644     m_eDragState( DRAG_NONE ),
00645     m_bHovering( FALSE ),   //  2006.02.01 ryoji
00646     m_bListBtnHilighted( FALSE ),   //  2006.02.01 ryoji
00647     m_bCloseBtnHilighted( FALSE ),  //  2006.10.21 ryoji
00648     m_eCaptureSrc( CAPT_NONE )  //  2006.11.30 ryoji
00649 {
00650     strcat( m_szClassInheritances, _T("::CTabWnd") );
00651
00652     m_pszClassName = _T("CTabWnd");
00653     /* 共有データ構造体のアドレスを返す */
00654     m_pShareData = CShareData::getInstance()->GetShareData();
00655
00656     m_hInstance  = NULL;
00657     m_hwndParent = NULL;
00658     m_hwndTab    = NULL;
00659     m_hFont      = NULL;
00660     gm_pOldWndProc = NULL;
00661     m_hwndToolTip = NULL;
00662     m_hIml = NULL;
00663
00664     // 2006.02.17 ryoji ImageList_Duplicate() のアドレスを取得する
00665     // （IE4.0 未満の環境でも動作可能なように動的ロード）
00666     HINSTANCE hinst = ::GetModuleHandle(TEXT("comctl32"));
00667     *(FARPROC*)&m_RealImageList_Duplicate = ::GetProcAddress(hinst, "ImageList_Duplicate");
00668
00669     return;
00670 }
00671
00672 CTabWnd::~CTabWnd()
00673 {
00674     return;
00675 }
00676
00677 /* ウィンドウ オープン */
00678 HWND CTabWnd::Open( HINSTANCE hInstance, HWND hwndParent )
00679 {
00680     /* 初期化 */
00681     m_hInstance  = hInstance;
00682     m_hwndParent = hwndParent;
00683     m_hwndTab    = NULL;
00684     m_hFont      = NULL;
00685     gm_pOldWndProc = NULL;
00686     m_hwndToolTip = NULL;
00687     m_bVisualStyle = ::IsVisualStyle(); // 2007.04.01 ryoji
00688     m_eDragState = DRAG_NONE;   //  2005.09.29 ryoji
00689     m_bHovering = FALSE;            // 2006.02.01 ryoji
00690     m_bListBtnHilighted = FALSE;    // 2006.02.01 ryoji
00691     m_bCloseBtnHilighted = FALSE;   // 2006.10.21 ryoji
00692     m_eCaptureSrc = CAPT_NONE;  // 2006.11.30 ryoji
00693
00694     /* ウィンドウクラス作成 */
00695     RegisterWC(
00696         /* WNDCLASS用 */
00697         NULL,                               // Handle to the class icon.
00698         NULL,                               //Handle to a small icon
00699         ::LoadCursor( NULL, IDC_ARROW ),    // Handle to the class cursor.
00700         // 2006.01.30 ryoji 背景は WM_PAINT で描画するほうがちらつかない（と思う）
00701         //(HBRUSH)(COLOR_3DFACE + 1),           // Handle to the class background brush.
00702         NULL,                               // Handle to the class background brush.
00703         NULL,                               // Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file.
00704         m_pszClassName                      // Pointer to a null-terminated string or is an atom.
00705     );
00706
00707     /* 基底クラスメンバ呼び出し */
00708     CWnd::Create(
00709         /* CreateWindowEx()用 */
00710         0,                                  // extended window style
00711         m_pszClassName,                     // Pointer to a null-terminated string or is an atom.
00712         m_pszClassName,                     // pointer to window name
00713         WS_CHILD/* | WS_VISIBLE*/,          // window style // 2007.03.08 ryoji WS_VISIBLE 除去
00714         // 2006.01.30 ryoji 初期配置見直し
00715         // ※タブ非表示 -> 表示切替で編集ウィンドウにゴミが表示されることがあるので初期幅はゼロに
00716         CW_USEDEFAULT,                      // horizontal position of window
00717         0,                                  // vertical position of window
00718         0,                                  // window width
00719         TAB_WINDOW_HEIGHT,                  // window height
00720         NULL                                // handle to menu, or child-window identifier
00721     );
00722
00723     //タブウインドウを作成する。
00724     m_hwndTab = ::CreateWindow(
00725         WC_TABCONTROL,
00726         _T(""),
00727         //  2004.05.22 MIK 消えるTAB対策でWS_CLIPSIBLINGS追加
00728         WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,
00729         // 2006.01.30 ryoji 初期配置見直し
00730         TAB_MARGIN_LEFT,
00731         TAB_MARGIN_TOP,
00732         0,
00733         TAB_WINDOW_HEIGHT,
00734         m_hWnd,
00735         (HMENU)NULL,
00736         m_hInstance,
00737         (LPVOID)NULL
00738         );
00739     if( m_hwndTab )
00740     {
00741         // Modified by KEITA for WIN64 2003.9.6
00742 		::SetWindowLongPtr( m_hwndTab, GWLP_USERDATA, (LONG_PTR) this );
00743         gm_pOldWndProc = (WNDPROC)::SetWindowLongPtr( m_hwndTab, GWLP_WNDPROC, (LONG_PTR) TabWndProc );
00744
00745         //スタイルを変更する。
00746         UINT lngStyle;
00747         lngStyle = (UINT)::GetWindowLongPtr( m_hwndTab, GWL_STYLE );
00748         //  Feb. 14, 2004 MIK マルチライン化の変更混入戻し
00749         lngStyle &= ~(TCS_BUTTONS | TCS_MULTILINE);
00750         lngStyle |= TCS_TABS | TCS_SINGLELINE | TCS_FOCUSNEVER | TCS_FIXEDWIDTH | TCS_FORCELABELLEFT;   // 2006.01.28 ryoji
00751         //lngStyle &= ~(TCS_BUTTONS | TCS_SINGLELINE);  //2004.01.31
00752         //lngStyle |= TCS_TABS | TCS_MULTILINE;
00753 		::SetWindowLongPtr( m_hwndTab, GWL_STYLE, lngStyle );
00754         TabCtrl_SetItemSize( m_hwndTab, MAX_TABITEM_WIDTH, TAB_ITEM_HEIGHT );   // 2006.01.28 ryoji
00755
00756         /* 表示用フォント */
00757         /* LOGFONTの初期化 */
00758         LOGFONT lf;
00759         ::ZeroMemory( &lf, sizeof(LOGFONT) );
00760         lf.lfHeight         = -12;
00761         lf.lfWidth          = 0;
00762         lf.lfEscapement     = 0;
00763         lf.lfOrientation    = 0;
00764         lf.lfWeight         = 400;
00765         lf.lfItalic         = 0x0;
00766         lf.lfUnderline      = 0x0;
00767         lf.lfStrikeOut      = 0x0;
00768         lf.lfCharSet        = 0x80;
00769         lf.lfOutPrecision   = 0x3;
00770         lf.lfClipPrecision  = 0x2;
00771         lf.lfQuality        = 0x1;
00772         lf.lfPitchAndFamily = 0x31;
00773         _tcscpy( lf.lfFaceName, _T("ＭＳ Ｐゴシック") );
00774         m_hFont = ::CreateFontIndirect( &lf );
00775
00776         /* フォント変更 */
00777         ::SendMessage( m_hwndTab, WM_SETFONT, (WPARAM)m_hFont, MAKELPARAM(TRUE, 0) );
00778
00779         //ツールチップを作成する。
00780         //  2005.08.11 ryoji 「重ねて表示」のZ-orderがおかしくなるのでTOPMOST指定を解除
00781         m_hwndToolTip = ::CreateWindowEx(
00782             0,
00783             TOOLTIPS_CLASS,
00784             NULL,
00785             WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
00786             CW_USEDEFAULT,
00787             CW_USEDEFAULT,
00788             CW_USEDEFAULT,
00789             CW_USEDEFAULT,
00790             m_hWnd, //m_hwndTab,
00791             NULL,
00792             m_hInstance,
00793             NULL
00794             );
00795
00796         // ツールチップをマルチライン可能にする（SHRT_MAX: Win95でINT_MAXだと表示されない） // 2007.03.03 ryoji
00797         ::SendMessage( m_hwndToolTip, TTM_SETMAXTIPWIDTH, 0, (LPARAM)SHRT_MAX );
00798
00799         // タブバーにツールチップを追加する
00800         TOOLINFO    ti;
00801         ti.cbSize      = sizeof( TOOLINFO );
00802         ti.uFlags      = TTF_SUBCLASS | TTF_IDISHWND;   // TTF_IDISHWND: uId は HWND で rect は無視（HWND 全体）
00803         ti.hwnd        = m_hWnd;
00804         ti.hinst       = m_hInstance;
00805         ti.uId         = (UINT)m_hWnd;
00806         ti.lpszText    = NULL;
00807         ti.rect.left   = 0;
00808         ti.rect.top    = 0;
00809         ti.rect.right  = 0;
00810         ti.rect.bottom = 0;
00811         ::SendMessage( m_hwndToolTip, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti );
00812
00813         // タブバー内のタブコントロールにツールチップを追加する
00814         TabCtrl_SetToolTips( m_hwndTab, m_hwndToolTip );
00815
00816         // 2006.02.22 ryoji イメージリストを初期化する
00817         InitImageList();
00818
00819         //TabCtrl_DeleteAllItems( m_hwndTab );
00820         //::ShowWindow( m_hwndTab, SW_HIDE );
00821         Refresh();  // タブ非表示から表示に切り替わったときに各ウィンドウの情報をタブ登録する必要がある
00822     }
00823
00824     return m_hWnd;
00825 }
00826
00827 /* ウィンドウ クローズ */
00828 void CTabWnd::Close( void )
00829 {
00830     if( m_hWnd )
00831     {
00832         if( gm_pOldWndProc )
00833         {
00834             // Modified by KEITA for WIN64 2003.9.6
00835 			::SetWindowLongPtr( m_hwndTab, GWLP_WNDPROC, (LONG_PTR)gm_pOldWndProc );
00836             gm_pOldWndProc = NULL;
00837         }
00838
00839         // Modified by KEITA for WIN64 2003.9.6
00840 		::SetWindowLongPtr( m_hwndTab, GWLP_USERDATA, (LONG_PTR)NULL );
00841
00842         if( m_hwndToolTip )
00843         {
00844             ::DestroyWindow( m_hwndToolTip );
00845             m_hwndToolTip = NULL;
00846         }
00847
00848         ::DestroyWindow( m_hWnd );
00849         m_hWnd = NULL;
00850     }
00851 }
00852
00853 //WM_SIZE処理
00854 LRESULT CTabWnd::OnSize( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00855 {
00856     RECT    rcParent;
00857
00858     if( NULL == m_hWnd || NULL == m_hwndTab ) return 0L;
00859
00860     ::GetWindowRect( m_hWnd, &rcParent );
00861
00862     ::MoveWindow( m_hwndTab, TAB_MARGIN_LEFT, TAB_MARGIN_TOP, (rcParent.right - rcParent.left) - (TAB_MARGIN_LEFT + TAB_MARGIN_RIGHT), TAB_WINDOW_HEIGHT, TRUE );   // 2005.01.30 ryoji
00863
00864     LayoutTab();    // 2006.01.28 ryoji タブのレイアウト調整処理
00865
00866     ::InvalidateRect( m_hWnd, NULL, FALSE );    //  2006.02.01 ryoji
00867
00868     return 0L;
00869 }
00870
00871 //WM_DSESTROY処理
00872 LRESULT CTabWnd::OnDestroy( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00873 {
00874     //タブコントロールを削除
00875     if( m_hwndTab )
00876     {
00877         ::DestroyWindow( m_hwndTab );
00878         m_hwndTab = NULL;
00879     }
00880
00881     //表示用フォント
00882     if( m_hFont )
00883     {
00884         ::DeleteObject( m_hFont );
00885         m_hFont = NULL;
00886     }
00887
00888     // 2006.01.28 ryoji イメージリストを削除
00889     if( NULL != m_hIml )
00890     {
00891         ImageList_Destroy( m_hIml );
00892         m_hIml = NULL;
00893     }
00894
00895     ::KillTimer( hwnd, 1 ); //  2006.02.01 ryoji
00896
00897     m_hWnd = NULL;
00898
00899     return 0L;
00900 }
00901
00905 LRESULT CTabWnd::OnLButtonDblClk( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00906 {
00907     // 新規作成コマンドを実行する
00908     ::SendMessage( m_hwndParent, WM_COMMAND, MAKEWPARAM( F_FILENEW, 0 ), (LPARAM)NULL );
00909     return 0L;
00910 }
00911
00915 LRESULT CTabWnd::OnCaptureChanged( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00916 {
00917     if( m_eCaptureSrc != CAPT_NONE )
00918         m_eCaptureSrc = CAPT_NONE;
00919
00920     return 0L;
00921 }
00922
00928 LRESULT CTabWnd::OnLButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00929 {
00930     POINT pt;
00931     RECT rc;
00932     RECT rcBtn;
00933
00934     pt.x = LOWORD(lParam);
00935     pt.y = HIWORD(lParam);
00936     ::GetClientRect( m_hWnd, &rc );
00937
00938     // タブ一覧ボタン上ならタブ一覧メニュー（タブ名）を表示する
00939     GetListBtnRect( &rc, &rcBtn );
00940     if( ::PtInRect( &rcBtn, pt ) )
00941     {
00942         pt.x = rcBtn.left;
00943         pt.y = rcBtn.bottom;
00944         ::ClientToScreen( m_hWnd, &pt );
00945         TabListMenu( pt, FALSE, FALSE, FALSE ); // タブ一覧メニュー（タブ名）
00946     }
00947     else
00948     {
00949         // 閉じるボタン上ならキャプチャー開始
00950         GetCloseBtnRect( &rc, &rcBtn );
00951         if( ::PtInRect( &rcBtn, pt ) )
00952         {
00953             m_eCaptureSrc = CAPT_CLOSE; // キャプチャー元は閉じるボタン
00954             ::SetCapture( m_hWnd );
00955         }
00956     }
00957
00958     return 0L;
00959 }
00960
00964 LRESULT CTabWnd::OnLButtonUp( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00965 {
00966     POINT pt;
00967     RECT rc;
00968     RECT rcBtn;
00969
00970     pt.x = LOWORD(lParam);
00971     pt.y = HIWORD(lParam);
00972     ::GetClientRect( m_hWnd, &rc );
00973
00974     if( ::GetCapture() == m_hWnd )  // 自ウィンドウがマウスキャプチャーしている?
00975     {
00976         if( m_eCaptureSrc == CAPT_CLOSE )   // キャプチャー元は閉じるボタン?
00977         {
00978             // 閉じるボタン上ならタブを閉じる
00979             GetCloseBtnRect( &rc, &rcBtn );
00980             if( ::PtInRect( &rcBtn, pt ) )
00981             {
00982                 int nId;
00983                 if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
00984                 {
00985                     if( !m_pShareData->m_Common.m_bTab_CloseOneWin )
00986                     {
00987                         nId = F_WINCLOSE;   // 閉じる（タイトルバーの閉じるボタンは編集の全終了）
00988                     }
00989                     else
00990                     {
00991                         nId = F_GROUPCLOSE; // グループを閉じる
00992                     }
00993                 }
00994                 else
00995                 {
00996                     nId = F_EXITALLEDITORS; // 編集の全終了（タイトルバーの閉じるボタンは１個だけ閉じる）
00997                 }
00998                 ::PostMessage( m_hwndParent, WM_COMMAND, MAKEWPARAM( nId, 0 ), (LPARAM)NULL );
00999             }
01000         }
01001
01002         // キャプチャー解除
01003         m_eCaptureSrc = CAPT_NONE;
01004         ::ReleaseCapture();
01005     }
01006
01007     return 0L;
01008 }
01009
01014 LRESULT CTabWnd::OnRButtonDown( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01015 {
01016     POINT pt;
01017     RECT rc;
01018     RECT rcBtn;
01019
01020     pt.x = LOWORD(lParam);
01021     pt.y = HIWORD(lParam);
01022     ::GetClientRect( m_hWnd, &rc );
01023
01024     // タブ一覧ボタン上ならタブ一覧メニュー（フルパス）を表示する   // 2006.11.30 ryoji
01025     GetListBtnRect( &rc, &rcBtn );
01026     if( ::PtInRect( &rcBtn, pt ) )
01027     {
01028         pt.x = rcBtn.left;
01029         pt.y = rcBtn.bottom;
01030         ::ClientToScreen( m_hWnd, &pt );
01031         TabListMenu( pt, FALSE, TRUE, FALSE );  // タブ一覧メニュー（フルパス）
01032     }
01033
01034     return 0L;
01035 }
01036
01040 LRESULT CTabWnd::OnMeasureItem( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01041 {
01042     MEASUREITEMSTRUCT* lpmis = (MEASUREITEMSTRUCT*)lParam;
01043     if( lpmis->CtlType == ODT_MENU )
01044     {
01045         TABMENU_DATA* pData = (TABMENU_DATA*)lpmis->itemData;
01046
01047         HDC hdc = ::GetDC( hwnd );
01048         HFONT hfnt = CreateMenuFont();
01049         HFONT hfntOld = (HFONT)::SelectObject( hdc, hfnt );
01050         SIZE size;
01051
01052         ::GetTextExtentPoint32( hdc, pData->szText, ::lstrlen(pData->szText), &size );
01053
01054         lpmis->itemHeight = ::GetSystemMetrics( SM_CYMENU );
01055         lpmis->itemWidth = size.cx + CX_SMICON + 8;
01056
01057         ::SelectObject( hdc, hfntOld );
01058         ::DeleteObject( hfnt );
01059         ::ReleaseDC( hwnd, hdc );
01060     }
01061
01062     return 0L;
01063 }
01064
01068 LRESULT CTabWnd::OnDrawItem( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01069 {
01070     DRAWITEMSTRUCT* lpdis = (DRAWITEMSTRUCT*)lParam;
01071     if( lpdis->CtlType == ODT_MENU )
01072     {
01073         // タブ一覧メニューを描画する
01074         TABMENU_DATA* pData = (TABMENU_DATA*)lpdis->itemData;
01075
01076         HDC hdc = lpdis->hDC;
01077         RECT rcItem = lpdis->rcItem;
01078
01079         // 状態に従ってテキストと背景色を決める
01080         COLORREF clrText;
01081         COLORREF clrBk;
01082         if (lpdis->itemState & ODS_SELECTED)
01083         {
01084             clrText = ::GetSysColor( COLOR_HIGHLIGHTTEXT );
01085             clrBk = COLOR_HIGHLIGHT;
01086         }
01087         else
01088         {
01089             clrText = ::GetSysColor( COLOR_MENUTEXT );
01090             clrBk = COLOR_MENU;
01091         }
01092
01093         // 背景描画
01094         ::FillRect( hdc, &rcItem, (HBRUSH)(clrBk + 1) );
01095
01096         // アイコン描画
01097         if( NULL != m_hIml && 0 <= pData->iImage )
01098         {
01099             int top = rcItem.top + ( rcItem.bottom - rcItem.top - CY_SMICON ) / 2;
01100             ImageList_Draw( m_hIml, pData->iImage, lpdis->hDC, rcItem.left + 2, top, ILD_TRANSPARENT );
01101         }
01102
01103         // テキスト描画
01104         COLORREF clrTextOld = ::SetTextColor( hdc, clrText );
01105         int iBkModeOld = ::SetBkMode( hdc, TRANSPARENT );
01106         HFONT hfnt = CreateMenuFont();
01107         HFONT hfntOld = (HFONT)::SelectObject( hdc, hfnt );
01108         RECT rcText = rcItem;
01109         rcText.left += (CX_SMICON + 8);
01110
01111         ::DrawText( hdc, pData->szText, -1, &rcText, DT_SINGLELINE | DT_LEFT | DT_VCENTER );
01112
01113         ::SetTextColor( hdc, clrTextOld );
01114         ::SetBkMode( hdc, iBkModeOld );
01115         ::SelectObject( hdc, hfntOld );
01116         ::DeleteObject( hfnt );
01117
01118         // チェック状態なら外枠描画
01119         if( lpdis->itemState & ODS_CHECKED )
01120         {
01121             HPEN hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_HIGHLIGHT ) );
01122             HBRUSH hbr = (HBRUSH)::GetStockObject( NULL_BRUSH );
01123             HPEN hpenOld = (HPEN)::SelectObject( hdc, hpen );
01124             HBRUSH hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
01125
01126             ::Rectangle( hdc, rcItem.left, rcItem.top, rcItem.right, rcItem.bottom );
01127
01128             ::SelectObject( hdc, hpenOld );
01129             ::SelectObject( hdc, hbrOld );
01130             ::DeleteObject( hpen );
01131         }
01132     }
01133
01134     return 0L;
01135 }
01136
01141 LRESULT CTabWnd::OnMouseMove( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01142 {
01143     // カーソルがウィンドウ内に入ったらタイマー起動
01144     // ウィンドウ外に出たらタイマー削除
01145     POINT pt;
01146     RECT rc;
01147     BOOL bHovering;
01148
01149     pt.x = LOWORD( lParam );
01150     pt.y = HIWORD( lParam );
01151     ::GetClientRect( hwnd, &rc );
01152     bHovering = ::PtInRect( &rc, pt );
01153     if( bHovering != m_bHovering )
01154     {
01155         m_bHovering = bHovering;
01156         if( m_bHovering )
01157             ::SetTimer( hwnd, 1, 200, NULL );
01158         else
01159             ::KillTimer( hwnd, 1 );
01160     }
01161
01162     // カーソルがボタン上を出入りするときに再描画
01163     RECT rcBtn;
01164     LPTSTR pszTip = (LPTSTR)-1L;
01165
01166     GetListBtnRect( &rc, &rcBtn );
01167     bHovering = ::PtInRect( &rcBtn, pt );
01168     if( bHovering != m_bListBtnHilighted )
01169     {
01170         m_bListBtnHilighted = bHovering;
01171         ::InvalidateRect( hwnd, &rcBtn, FALSE );
01172
01173         // ツールチップ用の文字列作成   // 2007.03.05 ryoji
01174         pszTip = NULL;  // ボタンの外に出るときは消す
01175         if( m_bListBtnHilighted )   // ボタンに入ってきた?
01176         {
01177             pszTip = m_szTextTip1;
01178             _tcscpy( m_szTextTip1, _T("左クリック: タブ名一覧\n右クリック: パス名一覧") );
01179         }
01180     }
01181
01182     GetCloseBtnRect( &rc, &rcBtn );
01183     bHovering = ::PtInRect( &rcBtn, pt );
01184     if( bHovering != m_bCloseBtnHilighted )
01185     {
01186         m_bCloseBtnHilighted = bHovering;
01187         ::InvalidateRect( hwnd, &rcBtn, FALSE );
01188
01189         // ツールチップ用の文字列作成   // 2007.03.05 ryoji
01190         pszTip = NULL;  // ボタンの外に出るときは消す
01191         if( m_bCloseBtnHilighted )  // ボタンに入ってきた?
01192         {
01193             pszTip = m_szTextTip1;
01194             if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01195             {
01196                 if( !m_pShareData->m_Common.m_bTab_CloseOneWin )
01197                 {
01198                     _tcscpy( m_szTextTip1, _T("タブを閉じる") );
01199                 }
01200                 else
01201                 {
01202                     ::LoadString( m_hInstance, F_GROUPCLOSE, m_szTextTip1, sizeof(m_szTextTip1)/sizeof(TCHAR) );
01203                     m_szTextTip1[sizeof(m_szTextTip1)/sizeof(TCHAR) - 1] = _T('\0');
01204                 }
01205             }
01206             else
01207             {
01208                 ::LoadString( m_hInstance, F_EXITALLEDITORS, m_szTextTip1, sizeof(m_szTextTip1)/sizeof(TCHAR) );
01209                 m_szTextTip1[sizeof(m_szTextTip1)/sizeof(TCHAR) - 1] = _T('\0');
01210             }
01211         }
01212     }
01213
01214     // ツールチップ更新 // 2007.03.05 ryoji
01215     if( pszTip != (LPTSTR)-1L ) // ボタンへの出入りがあった?
01216     {
01217         TOOLINFO ti;
01218         ::ZeroMemory( &ti, sizeof(ti) );
01219         ti.cbSize       = sizeof( TOOLINFO );
01220         ti.hwnd         = m_hWnd;
01221         ti.hinst        = m_hInstance;
01222         ti.uId          = (UINT)m_hWnd;
01223         ti.lpszText     = pszTip;
01224         ::SendMessage( m_hwndToolTip, TTM_UPDATETIPTEXT, (WPARAM)0, (LPARAM)&ti );
01225     }
01226
01227     return 0L;
01228 }
01229
01233 LRESULT CTabWnd::OnTimer( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01234 {
01235     if( wParam == 1 )
01236     {
01237         // カーソルがウィンドウ外にある場合にも WM_MOUSEMOVE を送る
01238         POINT pt;
01239         RECT rc;
01240
01241         ::GetCursorPos( &pt );
01242         ::ScreenToClient( hwnd, &pt );
01243         ::GetClientRect( hwnd, &rc );
01244         if( !::PtInRect( &rc, pt ) )
01245             ::SendMessage( hwnd, WM_MOUSEMOVE, 0, MAKELONG( pt.x, pt.y ) );
01246     }
01247
01248     return 0L;
01249 }
01250
01259 LRESULT CTabWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01260 {
01261     HDC hdc;
01262     PAINTSTRUCT ps;
01263     RECT rc;
01264
01265     hdc = ::BeginPaint( hwnd, &ps );
01266
01267     // 背景を描画する
01268     ::GetClientRect( hwnd, &rc );
01269     ::FillRect( hdc, &rc, (HBRUSH)(COLOR_3DFACE + 1) );
01270
01271     // ボタンを描画する
01272     DrawListBtn( hdc, &rc );
01273     DrawCloseBtn( hdc, &rc );   // 2006.10.21 ryoji 追加
01274
01275     // 上側に境界線を描画する
01276     ::DrawEdge(hdc, &rc, EDGE_ETCHED, BF_TOP);
01277
01278     // Windowsクラシックスタイルの場合はアクティブタブの上部にトップバンドを描画する    // 2006.03.27 ryoji
01279     if( !m_bVisualStyle )
01280     {
01281         int nCurSel = TabCtrl_GetCurSel( m_hwndTab );
01282         if( nCurSel >= 0 )
01283         {
01284             POINT pt;
01285             RECT rcCurSel;
01286
01287             TabCtrl_GetItemRect( m_hwndTab, nCurSel, &rcCurSel );
01288             pt.x = rcCurSel.left;
01289             pt.y = 0;
01290             ::ClientToScreen( m_hwndTab, &pt );
01291             ::ScreenToClient( m_hWnd, &pt );
01292             rcCurSel.right = pt.x + (rcCurSel.right - rcCurSel.left) - 1;
01293             rcCurSel.left = pt.x + 1;
01294             rcCurSel.top = rc.top + TAB_MARGIN_TOP - 2;
01295             rcCurSel.bottom = rc.top + TAB_MARGIN_TOP;
01296
01297             if( rcCurSel.left < rc.left + TAB_MARGIN_LEFT )
01298                 rcCurSel.left = rc.left + TAB_MARGIN_LEFT;  // 左端限界値
01299
01300             HWND hwndUpDown = ::FindWindowEx( m_hwndTab, NULL, UPDOWN_CLASS, 0 );   // タブ内の Up-Down コントロール
01301             if( hwndUpDown && ::IsWindowVisible( hwndUpDown ) )
01302             {
01303                 POINT ptREnd;
01304                 RECT rcUpDown;
01305
01306                 ::GetWindowRect( hwndUpDown, &rcUpDown );
01307                 ptREnd.x = rcUpDown.left;
01308                 ptREnd.y = 0;
01309                 ::ScreenToClient( m_hWnd, &ptREnd );
01310                 if( rcCurSel.right > ptREnd.x )
01311                     rcCurSel.right = ptREnd.x;  // 右端限界値
01312             }
01313
01314             if( rcCurSel.left < rcCurSel.right )
01315             {
01316                 HBRUSH hBr = ::CreateSolidBrush( RGB( 255, 128, 0 ) );
01317                 ::FillRect( hdc, &rcCurSel, hBr );
01318                 ::DeleteObject( hBr );
01319             }
01320         }
01321     }
01322
01323     ::EndPaint( hwnd, &ps );
01324
01325     return 0L;
01326 }
01327
01332 LRESULT CTabWnd::OnNotify( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
01333 {
01334     // 2005.09.01 ryoji ウィンドウ切り替えは OnTabLButtonUp() に移動
01335     return 0L;
01336 }
01337
01338 void CTabWnd::TabWindowNotify( WPARAM wParam, LPARAM lParam )
01339 {
01340     if( NULL == m_hwndTab ) return;
01341
01342     bool    bFlag = false;  //前回何もタブがなかったか？
01343     int     nCount;
01344     int     nIndex;
01345     HWND    hwndUpDown;
01346     DWORD nScrollPos;
01347
01348     BreakDrag();    // 2006.01.28 ryoji ドラッグ状態を解除する(関数化)
01349
01350     nCount = TabCtrl_GetItemCount( m_hwndTab );
01351     if( nCount <= 0 )
01352     {
01353         bFlag = true;
01354         //最初のときはすでに存在するウインドウの情報も登録する必要がある。
01355         // 起動時、CTabWnd::Open()内のRefresh()ではまだグループ入り前のため既に別ウィンドウがあってもタブは空
01356         if( wParam == TWNT_ADD )
01357             Refresh();  // 続けてTWNT_ADD処理で自分以外のウィンドウを隠す
01358     }
01359
01360     switch( wParam )
01361     {
01362     case TWNT_ADD:  //ウインドウ登録
01363         nIndex = FindTabIndexByHWND( (HWND)lParam );
01364         if( -1 == nIndex )
01365         {
01366             TCITEM  tcitem;
01367             TCHAR   szName[1024];
01368
01369             _tcscpy( szName, _T("(無題)") );
01370
01371             tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01372             tcitem.pszText = szName;
01373             tcitem.lParam  = (LPARAM)lParam;
01374
01375             // 2006.01.28 ryoji タブにアイコンイメージを追加する
01376             tcitem.mask |= TCIF_IMAGE;
01377             tcitem.iImage = GetImageIndex( NULL );
01378
01379             TabCtrl_InsertItem( m_hwndTab, nCount, &tcitem );
01380             nIndex = nCount;
01381         }
01382
01383         if( CShareData::getInstance()->IsTopEditWnd( m_hwndParent ) )
01384         {
01385             //自分ならアクティブに
01386             if( !::IsWindowVisible( m_hwndParent ) )
01387             {
01388                 ShowHideWindow( m_hwndParent, TRUE );
01389                 //ここに来たということはすでにアクティブ
01390                 //コマンド実行時のアウトプットで問題があるのでアクティブにする
01391             }
01392
01393             TabCtrl_SetCurSel( m_hwndTab, nIndex );
01394
01395             // 自分以外を隠す
01396             HideOtherWindows( m_hwndParent );
01397         }
01398         break;
01399
01400     case TWNT_DEL:  //ウインドウ削除
01401         nIndex = FindTabIndexByHWND( (HWND)lParam );
01402         if( -1 != nIndex )
01403         {
01404             if( CShareData::getInstance()->IsTopEditWnd( m_hwndParent ) )
01405             {
01406                 if( !::IsWindowVisible( m_hwndParent ) )
01407                 {
01408                     ShowHideWindow( m_hwndParent, TRUE );
01409                     ForceActiveWindow( m_hwndParent );
01410                 }
01411             }
01412             TabCtrl_DeleteItem( m_hwndTab, nIndex );
01413
01414             // 2005.09.01 ryoji スクロール位置調整
01415             // （右端のほうのタブアイテムを削除したとき、スクロール可能なのに右に余白ができることへの対策）
01416             hwndUpDown = ::FindWindowEx( m_hwndTab, NULL, UPDOWN_CLASS, 0 );    // タブ内の Up-Down コントロール
01417             if( hwndUpDown != NULL && ::IsWindowVisible( hwndUpDown ) ) // 2007.09.24 ryoji hwndUpDown可視の条件追加
01418             {
01419                 nScrollPos = LOWORD( ::SendMessage( hwndUpDown, UDM_GETPOS, (WPARAM)0, (LPARAM)0 ) );
01420
01421                 // 現在位置 nScrollPos と画面表示とを一致させる
01422                 ::SendMessage( m_hwndTab, WM_HSCROLL, MAKEWPARAM(SB_THUMBPOSITION, LOWORD( nScrollPos ) ), (LPARAM)NULL );  // 設定位置にタブをスクロール
01423             }
01424         }
01425         break;
01426
01427     case TWNT_ORDER:    //ウインドウ順序変更
01428         nIndex = FindTabIndexByHWND( (HWND)lParam );
01429         if( -1 != nIndex )
01430         {
01431             if( CShareData::getInstance()->IsTopEditWnd( m_hwndParent ) )
01432             {
01433                 //自分ならアクティブに
01434                 if( !::IsWindowVisible( m_hwndParent ) )
01435                 {
01436                     ShowHideWindow( m_hwndParent, TRUE );
01437                 }
01438                 //ここに来たということはすでにアクティブ
01439
01440                 // 自タブアイテムを強制的に可視位置にするために、
01441                 // 自タブアイテム選択前に一時的に画面左端のタブアイテムを選択する
01442                 hwndUpDown = ::FindWindowEx( m_hwndTab, NULL, UPDOWN_CLASS, 0 );    // タブ内の Up-Down コントロール
01443                 nScrollPos = ( hwndUpDown != NULL && ::IsWindowVisible( hwndUpDown ) )? LOWORD( ::SendMessage( hwndUpDown, UDM_GETPOS, (WPARAM)0, (LPARAM)0 ) ): 0; // 2007.09.24 ryoji hwndUpDown可視の条件追加
01444                 TabCtrl_SetCurSel( m_hwndTab, nScrollPos );
01445                 TabCtrl_SetCurSel( m_hwndTab, nIndex );
01446
01447                 // 自分以外を隠す
01448                 // （連続切替時に TWNT_ORDER が大量発生・交錯して？画面がすべて消えてしまったりするのを防ぐ）
01449                 HideOtherWindows( m_hwndParent );
01450             }
01451         }
01452         else
01453         {
01454             //指定のウインドウがないので再表示
01455             if( !CShareData::getInstance()->IsSameGroup( m_hwndParent, (HWND)lParam ) )
01456                 Refresh();
01457         }
01458         break;
01459
01460     case TWNT_FILE: //ファイル名変更
01461         nIndex = FindTabIndexByHWND( (HWND)lParam );
01462         if( -1 != nIndex )
01463         {
01464             TCITEM  tcitem;
01465             CRecent cRecentEditNode;
01466             TCHAR   szName[1024];
01467             //  Jun. 19, 2004 genta
01468             EditNode    *p;
01469             p = CShareData::getInstance()->GetEditNode( (HWND)lParam );
01470             GetTabName( p, FALSE, TRUE, szName, sizeof(szName)/sizeof(TCHAR) );
01471
01472             tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01473             tcitem.pszText = szName;
01474             tcitem.lParam  = (LPARAM)lParam;
01475
01476             // 2006.01.28 ryoji タブのアイコンイメージを変更する
01477             tcitem.mask |= TCIF_IMAGE;
01478             tcitem.iImage = GetImageIndex( p );
01479
01480             TabCtrl_SetItem( m_hwndTab, nIndex, &tcitem );
01481         }
01482         else
01483         {
01484             //指定のウインドウがないので再表示
01485             if( !CShareData::getInstance()->IsSameGroup( m_hwndParent, (HWND)lParam ) )
01486                 Refresh();
01487         }
01488         break;
01489
01490     case TWNT_REFRESH:  //再表示
01491         Refresh( (BOOL)lParam );
01492         break;
01493
01494     //Start 2004.07.14 Kazika 追加
01495     //タブモード有効になった場合、まとめられる側のウィンドウは隠れる
01496     case TWNT_MODE_ENABLE:
01497         Refresh();
01498         if( CShareData::getInstance()->IsTopEditWnd( m_hwndParent ) )
01499         {
01500             if( !::IsWindowVisible( m_hwndParent ) )
01501             {
01502                 //表示状態とする(フォアグラウンドにはしない)
01503                 TabWnd_ActivateFrameWindow( m_hwndParent, false );
01504             }
01505             // 自分以外を隠す
01506             HideOtherWindows( m_hwndParent );
01507         }
01508         break;
01509     //End 2004.07.14 Kazika
01510
01511     //Start 2004.08.27 Kazika 追加
01512     //タブモード無効になった場合、隠れていたウィンドウは表示状態となる
01513     case TWNT_MODE_DISABLE:
01514         Refresh();
01515         if( !::IsWindowVisible( m_hwndParent ) )
01516         {
01517             //表示状態とする(フォアグラウンドにはしない)
01518             TabWnd_ActivateFrameWindow( m_hwndParent, false );
01519         }
01520         break;
01521     //End 2004.08.27 Kazika
01522
01523     case TWNT_WNDPL_ADJUST: // ウィンドウ位置合わせ // 2007.04.03 ryoji
01524         AdjustWindowPlacement();
01525         return;
01526
01527     default:
01528         break;
01529     }
01530
01531     //タブの表示・非表示を切りかえる。
01532     nCount = TabCtrl_GetItemCount( m_hwndTab );
01533     if( nCount <= 0 )
01534     {
01535         ::ShowWindow( m_hwndTab, SW_HIDE );
01536     }
01537     else
01538     {
01539         if( bFlag ) ::ShowWindow( m_hwndTab, SW_SHOW );
01540     }
01541
01542     LayoutTab();    // 2006.01.28 ryoji タブのレイアウト調整処理
01543
01544     //更新
01545     ::InvalidateRect( m_hwndTab, NULL, TRUE );
01546     ::InvalidateRect( m_hWnd, NULL, TRUE );     // 2006.10.21 ryoji タブ内ボタン再描画のために追加
01547
01548     return;
01549 }
01550
01552 int CTabWnd::FindTabIndexByHWND( HWND hWnd )
01553 {
01554     int     i;
01555     int     nCount;
01556     TCITEM  tcitem;
01557
01558     if( NULL == m_hwndTab ) return -1;
01559
01560     nCount = TabCtrl_GetItemCount( m_hwndTab );
01561     for( i = 0; i < nCount; i++ )
01562     {
01563         tcitem.mask   = TCIF_PARAM;
01564         tcitem.lParam = (LPARAM)0;
01565         TabCtrl_GetItem( m_hwndTab, i, &tcitem );
01566
01567         if( (HWND)tcitem.lParam == hWnd ) return i;
01568     }
01569
01570     return -1;
01571 }
01572
01579 void CTabWnd::Refresh( BOOL bEnsureVisible/* = TRUE*/, BOOL bRebuild/* = FALSE*/ )
01580 {
01581     TCITEM      tcitem;
01582     TCHAR       szName[2048];
01583     EditNode    *pEditNode;
01584     int         nCount;
01585     int         nGroup;
01586     int         nTab;
01587     int         nSel;
01588     int         nCurTab;
01589     int         nCurSel;
01590     int         i;
01591     int         j;
01592
01593     if( NULL == m_hwndTab ) return;
01594
01595     pEditNode = NULL;
01596     nCount = CShareData::getInstance()->GetOpenedWindowArr( &pEditNode, TRUE );
01597
01598     // 自ウィンドウのグループ番号を調べる
01599     for( i = 0; i < nCount; i++ )
01600     {
01601         if( pEditNode[i].m_hWnd == m_hwndParent ){
01602             nGroup = pEditNode[i].m_nGroup;
01603             break;
01604         }
01605     }
01606
01607     if( i >= nCount )
01608     {
01609         // 見つからなかったので全タブを削除
01610         TabCtrl_DeleteAllItems( m_hwndTab );
01611     }
01612     else
01613     {
01614         ::SendMessage( m_hwndTab, WM_SETREDRAW, (WPARAM)FALSE, (LPARAM)0 ); // 2005.09.01 ryoji 再描画禁止
01615
01616         if( bRebuild )
01617             TabCtrl_DeleteAllItems( m_hwndTab );    // 作成しなおす
01618
01619         // 作成するタブ数と選択状態にするタブ位置（自ウィンドウの位置）を調べる
01620         for( i = 0, j = 0; i < nCount; i++ )
01621         {
01622             if( pEditNode[i].m_nGroup != nGroup )
01623                 continue;
01624             if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
01625                 continue;
01626             if( pEditNode[i].m_hWnd == m_hwndParent )
01627                 nSel = j;   // 選択状態にするタブ位置
01628             j++;
01629         }
01630         nTab = j;   // 作成するタブ数
01631
01632         // タブが無ければ１つ作成して選択状態にする（自ウィンドウのタブ用）
01633         _tcscpy( szName, _T("") );
01634         tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01635         tcitem.pszText = szName;
01636         tcitem.lParam  = (LPARAM)m_hwndParent;
01637         if( TabCtrl_GetItemCount( m_hwndTab ) == 0 )
01638         {
01639             TabCtrl_InsertItem( m_hwndTab, 0, &tcitem );
01640             TabCtrl_SetCurSel( m_hwndTab, 0 );
01641         }
01642
01643         // 選択タブよりも前の過不足を調整する
01644         // （選択タブの直前位置への追加／削除を繰り返すことでスクロール発生を低減）
01645         nCurSel = TabCtrl_GetCurSel( m_hwndTab );   // 現在の選択タブ位置
01646         if( nCurSel > nSel )
01647         {
01648             for( i = 0; i < nCurSel - nSel; i++ )
01649                 TabCtrl_DeleteItem( m_hwndTab, nCurSel - 1 - i );   // 余分を削除
01650         }
01651         else
01652         {
01653             for( i = 0; i < nSel - nCurSel; i++ )
01654                 TabCtrl_InsertItem( m_hwndTab, nCurSel + i, &tcitem );  // 不足を追加
01655         }
01656
01657         // 選択タブよりも後の過不足を調整する
01658         nCurTab = TabCtrl_GetItemCount( m_hwndTab );    // 現在のタブ数
01659         if( nCurTab > nTab )
01660         {
01661             for( i = 0; i < nCurTab - nTab; i++ )
01662                 TabCtrl_DeleteItem( m_hwndTab, nSel + 1 );  // 余分を削除
01663         }
01664         else
01665         {
01666             for( i = 0; i < nTab - nCurTab; i++ )
01667                 TabCtrl_InsertItem( m_hwndTab, nSel + 1, &tcitem ); // 不足を追加
01668         }
01669
01670         // 作成したタブに各ウィンドウ情報を設定する
01671         for( i = 0, j = 0; i < nCount; i++ )
01672         {
01673             if( pEditNode[i].m_nGroup != nGroup )
01674                 continue;
01675             if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
01676                 continue;
01677
01678             GetTabName( &pEditNode[i], FALSE, TRUE, szName, sizeof(szName)/sizeof(TCHAR) );
01679
01680             tcitem.mask    = TCIF_TEXT | TCIF_PARAM;
01681             tcitem.pszText = szName;
01682             tcitem.lParam  = (LPARAM)pEditNode[i].m_hWnd;
01683
01684             // 2006.01.28 ryoji タブにアイコンを追加する
01685             tcitem.mask |= TCIF_IMAGE;
01686             tcitem.iImage = GetImageIndex( &pEditNode[i] );
01687
01688             TabCtrl_SetItem( m_hwndTab, j, &tcitem );
01689             j++;
01690         }
01691
01692         ::SendMessage( m_hwndTab, WM_SETREDRAW, (WPARAM)TRUE, (LPARAM)0 );  // 2005.09.01 ryoji 再描画許可
01693
01694         // 選択タブを可視位置にする
01695         if( bEnsureVisible )
01696         {
01697             // TabCtrl_SetCurSel() を使うと等幅タブのときに選択タブが左端のほうに寄ってしまう
01698 //          TabCtrl_SetCurSel( m_hwndTab, 0 );
01699 //          TabCtrl_SetCurSel( m_hwndTab, nSel );
01700             ::PostMessage( m_hwndTab, TCM_SETCURSEL, 0, 0 );
01701             ::PostMessage( m_hwndTab, TCM_SETCURSEL, nSel, 0 );
01702         }
01703     }
01704
01705     if( pEditNode ) delete[]pEditNode;
01706
01707     return;
01708 }
01709
01710
01716 void CTabWnd::AdjustWindowPlacement( void )
01717 {
01718     // タブまとめ表示の場合は編集ウィンドウの表示位置を復元する
01719     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01720     {
01721         HWND hwnd = m_hwndParent;   // 自身の編集ウィンドウ
01722         WINDOWPLACEMENT wp;
01723         if( !::IsWindowVisible( hwnd ) )    // 可視化するときだけ引き継ぐ
01724         {
01725             // なるべく画面を手前に出さずに可視化する
01726             // Note. 非アクティブスレッドから実行するのであればアクティブ化指定でも手前には出ない
01727             // Note. SW_xxxxx の中には「アクティブ化無しの最大化」指定は存在しない
01728             // Note. 不可視の状態からいきなり手前に出てしまうと次のような現象が起きる
01729             //  ・画面描画される際、クライアント領域全体が一時的に真っ白になる（Vista Aero）
01730             //  ・最大化切替（SW_SHOWMAXIMIZED）の際、以前に通常表示だった画面のステータスバーやファンクションキーが一時的に通常サイズで表示される
01731
01732             // ウィンドウを背後に配置する
01733             // Note. WS_EX_TOPMOST については hwndInsertAfter ウィンドウの状態が引き継がれる
01734             EditNode* pEditNode;
01735             pEditNode = CShareData::getInstance()->GetTopEditNode( hwnd );
01736             if( pEditNode == NULL )
01737             {
01738                 ::ShowWindow( hwnd, SW_SHOWNA );
01739                 return;
01740             }
01741             HWND hwndInsertAfter = pEditNode->m_hWnd;
01742             wp.length = sizeof( WINDOWPLACEMENT );
01743             ::GetWindowPlacement( hwndInsertAfter, &wp );
01744             if( wp.showCmd == SW_SHOWMINIMIZED )
01745                 wp.showCmd = pEditNode->m_showCmdRestore;
01746             ::SetWindowPos( hwnd, hwndInsertAfter, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
01747
01748             if( wp.showCmd == SW_SHOWMAXIMIZED && ::IsZoomed( hwnd ) )
01749             {
01750                 WINDOWPLACEMENT wpCur;
01751                 wpCur.length = sizeof( WINDOWPLACEMENT );
01752                 ::GetWindowPlacement( hwnd, &wpCur );
01753                 if( !::EqualRect( &wp.rcNormalPosition, &wpCur.rcNormalPosition ) )
01754                 {
01755                     // ウィンドウの通常サイズが目的のサイズと違っているときは一旦通常サイズで表示してから最大化する
01756                     // Note. マルチモニタで以前に別モニタで最大化されていた画面は一旦通常サイズに戻しておかないと元の別モニタ側に表示されてしまう
01757                     wp.showCmd = SW_SHOWNOACTIVATE;
01758                     ::SetWindowPlacement( hwnd, &wp );  // 通常サイズ表示
01759                     wp.showCmd = SW_SHOWMAXIMIZED;
01760                 }
01761                 else
01762                 {
01763                     wp.showCmd = SW_SHOWNA;
01764                 }
01765             }
01766             else if( wp.showCmd != SW_SHOWMAXIMIZED )
01767             {
01768                 wp.showCmd = SW_SHOWNOACTIVATE;
01769             }
01770             ::SetWindowPlacement( hwnd, &wp );  // 位置を復元する
01771             ::UpdateWindow( hwnd ); // 強制描画
01772         }
01773     }
01774 }
01775
01776 void CTabWnd::ShowHideWindow( HWND hwnd, BOOL bDisp )
01777 {
01778     if( NULL == hwnd ) return;
01779
01780     if( bDisp )
01781     {
01782         if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01783         {
01784             if( m_pShareData->m_bEditWndChanging )
01785                 return; // 切替の最中(busy)は要求を無視する
01786             m_pShareData->m_bEditWndChanging = TRUE;    // 編集ウィンドウ切替中ON   2007.04.03 ryoji
01787
01788             // 対象ウィンドウのスレッドに位置合わせを依頼する   // 2007.04.03 ryoji
01789             DWORD dwResult;
01790             ::SendMessageTimeout( hwnd, MYWM_TAB_WINDOW_NOTIFY, TWNT_WNDPL_ADJUST, (LPARAM)NULL,
01791                 SMTO_ABORTIFHUNG | SMTO_BLOCK, 10000, &dwResult );
01792         }
01793
01794         TabWnd_ActivateFrameWindow( hwnd );
01795
01796         m_pShareData->m_bEditWndChanging = FALSE;   // 編集ウィンドウ切替中OFF  2007.04.03 ryoji
01797     }
01798     else
01799     {
01800         if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01801         {
01802             ::ShowWindow( hwnd, SW_HIDE );
01803         }
01804     }
01805
01806     return;
01807 }
01808
01816 void CTabWnd::HideOtherWindows( HWND hwndExclude )
01817 {
01818     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
01819     {
01820         HWND hwnd;
01821         int i;
01822         for( i = 0; i < m_pShareData->m_nEditArrNum; i++ )
01823         {
01824             hwnd = m_pShareData->m_pEditArr[i].m_hWnd;
01825             if( CShareData::getInstance()->IsEditWnd( hwnd ) )
01826             {
01827                 if( !CShareData::getInstance()->IsSameGroup( hwndExclude, hwnd ) )
01828                     continue;
01829                 if( hwnd != hwndExclude && ::IsWindowVisible( hwnd ) )
01830                 {
01831                     ::ShowWindow( hwnd, SW_HIDE );
01832                 }
01833             }
01834         }
01835     }
01836 }
01837
01839 void CTabWnd::ForceActiveWindow( HWND hwnd )
01840 {
01841     int     nId1;
01842     int     nId2;
01843     DWORD   dwTime;
01844
01845     nId2 = ::GetWindowThreadProcessId( ::GetForegroundWindow(), NULL );
01846     nId1 = ::GetWindowThreadProcessId( hwnd, NULL );
01847
01848     ::AttachThreadInput( nId1, nId2, TRUE );
01849
01850     ::SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &dwTime, 0 );
01851     ::SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0, 0 );
01852
01853     //ウィンドウをフォアグラウンドにする
01854     ::SetForegroundWindow( hwnd );
01855     ::BringWindowToTop( hwnd );
01856
01857     ::SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)dwTime, 0 );
01858
01859     ::AttachThreadInput( nId1, nId2, FALSE );
01860 }
01861
01871 void CTabWnd::TabWnd_ActivateFrameWindow( HWND hwnd, bool bForeground )
01872 {
01873     if ( bForeground )
01874     {
01875         // 2005.11.05 ryoji 対象ウィンドウのプロセスが既にフォアグラウンドなら切替え済みなので何もしないでおく
01876         DWORD dwPid1, dwPid2;
01877         ::GetWindowThreadProcessId( hwnd, &dwPid1 );
01878         ::GetWindowThreadProcessId( ::GetForegroundWindow(), &dwPid2 );
01879         if( dwPid1 == dwPid2 ){
01880             return;
01881         }
01882
01883         if( ::IsIconic( hwnd ) )
01884         {
01885             ::ShowWindow( hwnd, SW_RESTORE );   // Nov. 7. 2003 MIK アイコン時は元のサイズに戻す
01886             return;
01887         }
01888         else if( ::IsZoomed( hwnd ) )
01889         {
01890             ::ShowWindow( hwnd, SW_MAXIMIZE );
01891         }
01892         else
01893         {
01894             ::ShowWindow( hwnd, SW_SHOW );
01895         }
01896
01897         ::SetForegroundWindow( hwnd );
01898         ::BringWindowToTop( hwnd );
01899     }
01900     else
01901     {
01902         // 2005.09.01 ryoji ::ShowWindow( hwnd, SW_SHOWNA ) だと非表示から表示に切り替わるときに Z-order がおかしくなることがあるので ::SetWindowPos に変更
01903         ::SetWindowPos( hwnd, NULL,0,0,0,0,
01904                         SWP_SHOWWINDOW | SWP_NOACTIVATE
01905                         | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER );
01906     }
01907
01908     return;
01909 }
01910
01914 void CTabWnd::LayoutTab( void )
01915 {
01916     // アイコンの表示を切り替える
01917     HIMAGELIST hImg = TabCtrl_GetImageList( m_hwndTab );
01918     if( NULL == hImg && m_pShareData->m_Common.m_bDispTabIcon )
01919     {
01920         if( NULL != InitImageList() )
01921             Refresh( TRUE, TRUE );
01922     }
01923     else if( NULL != hImg && !m_pShareData->m_Common.m_bDispTabIcon )
01924     {
01925         InitImageList();
01926     }
01927
01928     // タブのアイテム幅の等幅を切り替える
01929     UINT lStyle;
01930     lStyle = (UINT)::GetWindowLongPtr( m_hwndTab, GWL_STYLE );
01931     if( (lStyle & TCS_FIXEDWIDTH) && !m_pShareData->m_Common.m_bSameTabWidth )
01932     {
01933         lStyle &= ~(TCS_FIXEDWIDTH | TCS_FORCELABELLEFT);
01934 		::SetWindowLongPtr( m_hwndTab, GWL_STYLE, lStyle );
01935         return;
01936     }
01937     else if( !(lStyle & TCS_FIXEDWIDTH) && m_pShareData->m_Common.m_bSameTabWidth )
01938     {
01939         lStyle |= TCS_FIXEDWIDTH | TCS_FORCELABELLEFT;
01940 		::SetWindowLongPtr( m_hwndTab, GWL_STYLE, lStyle );
01941     }
01942
01943     if( !m_pShareData->m_Common.m_bSameTabWidth )
01944         return; // アイテム幅の調整は不要
01945
01946     // タブのアイテム幅を調整する
01947     RECT rcTab;
01948     int nCount;
01949     int cx;
01950
01951     ::GetClientRect( m_hwndTab, &rcTab );
01952     nCount = TabCtrl_GetItemCount( m_hwndTab );
01953     if( 0 < nCount )
01954     {
01955         cx = (rcTab.right - rcTab.left - 8) / nCount;
01956         if( MAX_TABITEM_WIDTH < cx )
01957             cx = MAX_TABITEM_WIDTH;
01958         else if( MIN_TABITEM_WIDTH > cx )
01959             cx = MIN_TABITEM_WIDTH;
01960         TabCtrl_SetItemSize( m_hwndTab, cx, TAB_ITEM_HEIGHT );
01961     }
01962 }
01963
01967 HIMAGELIST CTabWnd::InitImageList( void )
01968 {
01969     SHFILEINFO sfi;
01970     HIMAGELIST hImlSys;
01971     HIMAGELIST hImlNew;
01972
01973     hImlNew = NULL;
01974     if( m_pShareData->m_Common.m_bDispTabIcon )
01975     {
01976         // システムイメージリストを取得する
01977         // 注：複製後に差し替えて利用するアイコンには事前にアクセスしておかないとイメージが入らない
01978         //     ここでは「フォルダを閉じたアイコン」、「フォルダを開いたアイコン」を差し替え用として利用
01979         //     WinNT4.0 では SHGetFileInfo() の第一引数に同名を指定すると同じインデックスを返してくることがある？
01980
01981         hImlSys = (HIMAGELIST)::SHGetFileInfo( _T(".0"), FILE_ATTRIBUTE_DIRECTORY, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES );
01982         if( NULL == hImlSys )
01983             goto l_end;
01984         m_iIconApp = sfi.iIcon;
01985
01986         hImlSys = (HIMAGELIST)::SHGetFileInfo( _T(".1"), FILE_ATTRIBUTE_DIRECTORY, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES | SHGFI_OPENICON );
01987         if( NULL == hImlSys )
01988             goto l_end;
01989         m_iIconGrep = sfi.iIcon;
01990
01991         // システムイメージリストを複製する
01992         hImlNew = ImageList_Duplicate( hImlSys );
01993         if( NULL == hImlNew )
01994             goto l_end;
01995         ImageList_SetBkColor( hImlNew, CLR_NONE );
01996
01997         // イメージリストにアプリケーションアイコンと Grepアイコンを登録する
01998         // （利用しないアイコンと差し替える）
01999         m_hIconApp = GetAppIcon( m_hInstance, ICON_DEFAULT_APP, FN_APP_ICON, true );
02000         ImageList_ReplaceIcon( hImlNew, m_iIconApp, m_hIconApp );
02001         m_hIconGrep = GetAppIcon( m_hInstance, ICON_DEFAULT_GREP, FN_GREP_ICON, true );
02002         ImageList_ReplaceIcon( hImlNew, m_iIconGrep, m_hIconGrep );
02003     }
02004
02005 l_end:
02006     // タブに新しいアイコンイメージを設定する
02007     TabCtrl_SetImageList( m_hwndTab, hImlNew );
02008
02009     // 新しいイメージリストを記憶する
02010     if( NULL != m_hIml )
02011         ImageList_Destroy( m_hIml );
02012     m_hIml = hImlNew;
02013
02014     return m_hIml;  // 新しいイメージリストを返す
02015 }
02016
02020 int CTabWnd::GetImageIndex( EditNode* pNode )
02021 {
02022     SHFILEINFO sfi;
02023     HIMAGELIST hImlSys;
02024     HIMAGELIST hImlNew;
02025
02026     if( NULL == m_hIml )
02027         return -1;  // イメージリストを使っていない
02028
02029     if( pNode )
02030     {
02031         if( pNode->m_szFilePath[0] )
02032         {
02033             // 拡張子を取り出す
02034             TCHAR szExt[_MAX_EXT];
02035             _tsplitpath( pNode->m_szFilePath, NULL, NULL, NULL, szExt );
02036
02037             // 拡張子に関連付けられたアイコンイメージのインデックスを取得する
02038             hImlSys = (HIMAGELIST)::SHGetFileInfo( szExt, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES );
02039             if( NULL == hImlSys )
02040                 return -1;
02041             if( ImageList_GetImageCount( m_hIml ) > sfi.iIcon )
02042                 return sfi.iIcon;   // インデックスを返す
02043
02044             // システムイメージリストを複製する
02045             hImlNew = ImageList_Duplicate( hImlSys );
02046             if( NULL == hImlNew )
02047                 return -1;
02048             ImageList_SetBkColor( hImlNew, CLR_NONE );
02049
02050             // イメージリストにアプリケーションアイコンと Grepアイコンを登録する
02051             // （利用しないアイコンと差し替える）
02052             ImageList_ReplaceIcon( hImlNew, m_iIconApp, m_hIconApp );
02053             ImageList_ReplaceIcon( hImlNew, m_iIconGrep, m_hIconGrep );
02054
02055             // タブにアイコンイメージを設定する
02056             if( m_pShareData->m_Common.m_bDispTabIcon )
02057                 TabCtrl_SetImageList( m_hwndTab, hImlNew );
02058
02059             // 新しいイメージリストを記憶する
02060             ImageList_Destroy( m_hIml );
02061             m_hIml = hImlNew;
02062
02063             return sfi.iIcon;   // インデックスを返す
02064         }
02065         else if( pNode->m_bIsGrep )
02066             return m_iIconGrep; // grepアイコンのインデックスを返す
02067     }
02068
02069     return m_iIconApp;  // アプリケーションアイコンのインデックスを返す
02070 }
02071
02075 HIMAGELIST CTabWnd::ImageList_Duplicate( HIMAGELIST himl )
02076 {
02077     // 本物の ImageList_Duplicate() があればそれを呼び出す
02078     HIMAGELIST hImlNew;
02079     if( m_RealImageList_Duplicate )
02080     {
02081         hImlNew = m_RealImageList_Duplicate( himl );
02082         if( NULL != hImlNew )
02083             return hImlNew;
02084         m_RealImageList_Duplicate = NULL;   // 2006.06.20 ryoji 失敗時は代替処理に切り替え
02085     }
02086
02087     // 本物の ImageList_Duplicate() の代替処理
02088     // 新しいイメージリストを作成してアイコン単位でコピーする
02089     //（この場合、多色アイコンは綺麗には表示されないかもしれない）
02090     hImlNew = ImageList_Create( CX_SMICON, CY_SMICON, ILC_COLOR32 | ILC_MASK, 4, 4 );
02091     if( hImlNew )
02092     {
02093         ImageList_SetBkColor( hImlNew, CLR_NONE );
02094         int nCount = ImageList_GetImageCount( himl );
02095         int i;
02096         for( i = 0; i < nCount; i++ )
02097         {
02098             HICON hIcon = ImageList_GetIcon( himl, i, ILD_TRANSPARENT );
02099             if( NULL == hIcon )
02100             {
02101                 ImageList_Destroy( hImlNew );
02102                 return NULL;
02103             }
02104             int iIcon = ImageList_AddIcon( hImlNew, hIcon );
02105             ::DestroyIcon( hIcon );
02106             if( 0 > iIcon )
02107             {
02108                 ImageList_Destroy( hImlNew );
02109                 return NULL;
02110             }
02111         }
02112     }
02113     return hImlNew;
02114 }
02115
02119 void CTabWnd::DrawBtnBkgnd( HDC hdc, const LPRECT lprcBtn, BOOL bBtnHilighted )
02120 {
02121     HPEN hpen, hpenOld;
02122     HBRUSH hbr, hbrOld;
02123
02124     if( bBtnHilighted )
02125     {
02126         hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_HIGHLIGHT ) );
02127         hbr = (HBRUSH)::GetSysColorBrush( COLOR_MENU );
02128         hpenOld = (HPEN)::SelectObject( hdc, hpen );
02129         hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
02130         ::Rectangle( hdc, lprcBtn->left, lprcBtn->top, lprcBtn->right, lprcBtn->bottom );
02131         ::SelectObject( hdc, hpenOld );
02132         ::SelectObject( hdc, hbrOld );
02133         ::DeleteObject( hpen );
02134     }
02135 }
02136
02141 void CTabWnd::DrawListBtn( HDC hdc, const LPRECT lprcClient )
02142 {
02143     const POINT ptBase[4] = { {4, 8}, {7, 11}, {8, 11}, {11, 8} };  // 描画イメージ形状
02144     POINT pt[4];
02145     int i;
02146     HPEN hpen, hpenOld;
02147     HBRUSH hbr, hbrOld;
02148
02149     RECT rcBtn;
02150     GetListBtnRect( lprcClient, &rcBtn );
02151     DrawBtnBkgnd( hdc, &rcBtn, m_bListBtnHilighted );   // 2006.10.21 ryoji
02152
02153     int nIndex = m_bListBtnHilighted? COLOR_MENUTEXT: COLOR_BTNTEXT;
02154     hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( nIndex ) );
02155     hbr = (HBRUSH)::GetSysColorBrush( nIndex );
02156     hpenOld = (HPEN)::SelectObject( hdc, hpen );
02157     hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
02158     for( i = 0; i < sizeof(ptBase)/sizeof(ptBase[0]); i++ )
02159     {
02160         pt[i].x = ptBase[i].x + rcBtn.left;
02161         pt[i].y = ptBase[i].y + rcBtn.top;
02162     }
02163     ::Polygon( hdc, pt, sizeof(pt)/sizeof(pt[0]) );
02164     ::SelectObject( hdc, hpenOld );
02165     ::SelectObject( hdc, hbrOld );
02166     ::DeleteObject( hpen );
02167 }
02168
02172 void CTabWnd::DrawCloseBtn( HDC hdc, const LPRECT lprcClient )
02173 {
02174     const POINT ptBase1[6][2] = // [x]描画イメージ形状（直線6本）
02175     {
02176         {{4, 5}, {12, 13}},
02177         {{4, 4}, {13, 13}},
02178         {{5, 4}, {13, 12}},
02179         {{11, 4}, {3, 12}},
02180         {{12, 4}, {3, 13}},
02181         {{12, 5}, {4, 13}}
02182     };
02183     const POINT ptBase2[10][2] = // [xx]描画イメージ形状（矩形10個）
02184     {
02185         {{3, 4}, {5, 6}},
02186         {{6, 4}, {8, 6}},
02187         {{4, 6}, {7, 10}},
02188         {{3, 10}, {5, 12}},
02189         {{6, 10}, {8, 12}},
02190         {{9, 4}, {11, 6}},
02191         {{12, 4}, {14, 6}},
02192         {{10, 6}, {13, 10}},
02193         {{9, 10}, {11, 12}},
02194         {{12, 10}, {14, 12}}
02195     };
02196
02197     POINT pt[2];
02198     int i;
02199     HPEN hpen, hpenOld;
02200     HBRUSH hbr, hbrOld;
02201
02202     RECT rcBtn;
02203     GetCloseBtnRect( lprcClient, &rcBtn );
02204
02205     // ボタンの左側にセパレータを描画する   // 2007.02.27 ryoji
02206     hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( COLOR_3DSHADOW ) );
02207     hpenOld = (HPEN)::SelectObject( hdc, hpen );
02208     ::MoveToEx( hdc, rcBtn.left - 4, rcBtn.top + 1, NULL );
02209     ::LineTo( hdc, rcBtn.left - 4, rcBtn.bottom - 1 );
02210     ::SelectObject( hdc, hpenOld );
02211     ::DeleteObject( hpen );
02212
02213     DrawBtnBkgnd( hdc, &rcBtn, m_bCloseBtnHilighted );
02214
02215     int nIndex = m_bCloseBtnHilighted? COLOR_MENUTEXT: COLOR_BTNTEXT;
02216     hpen = ::CreatePen( PS_SOLID, 0, ::GetSysColor( nIndex ) );
02217     hbr = (HBRUSH)::GetSysColorBrush( nIndex );
02218     hpenOld = (HPEN)::SelectObject( hdc, hpen );
02219     hbrOld = (HBRUSH)::SelectObject( hdc, hbr );
02220     if( m_pShareData->m_Common.m_bDispTabWnd &&
02221         !m_pShareData->m_Common.m_bDispTabWndMultiWin &&
02222         !m_pShareData->m_Common.m_bTab_CloseOneWin          // 2007.02.13 ryoji 条件追加（ウィンドウの閉じるボタンは全部閉じる）
02223         )
02224     {
02225         // [x]を描画（直線6本）
02226         for( i = 0; i < sizeof(ptBase1)/sizeof(ptBase1[0]); i++ )
02227         {
02228             pt[0].x = ptBase1[i][0].x + rcBtn.left;
02229             pt[0].y = ptBase1[i][0].y + rcBtn.top;
02230             pt[1].x = ptBase1[i][1].x + rcBtn.left;
02231             pt[1].y = ptBase1[i][1].y + rcBtn.top;
02232             ::MoveToEx( hdc, pt[0].x, pt[0].y, NULL );
02233             ::LineTo( hdc, pt[1].x, pt[1].y );
02234         }
02235     }
02236     else
02237     {
02238          // [xx]を描画（矩形10個）
02239         for( i = 0; i < sizeof(ptBase2)/sizeof(ptBase2[0]); i++ )
02240         {
02241             pt[0].x = ptBase2[i][0].x + rcBtn.left;
02242             pt[0].y = ptBase2[i][0].y + rcBtn.top;
02243             pt[1].x = ptBase2[i][1].x + rcBtn.left;
02244             pt[1].y = ptBase2[i][1].y + rcBtn.top;
02245             ::Rectangle( hdc, pt[0].x, pt[0].y, pt[1].x, pt[1].y );
02246         }
02247     }
02248     ::SelectObject( hdc, hpenOld );
02249     ::SelectObject( hdc, hbrOld );
02250     ::DeleteObject( hpen );
02251 }
02252
02256 void CTabWnd::GetListBtnRect( const LPRECT lprcClient, LPRECT lprc )
02257 {
02258     *lprc = rcBtnBase;
02259     ::OffsetRect(lprc, lprcClient->right - TAB_MARGIN_RIGHT + 4, lprcClient->top + TAB_MARGIN_TOP + 2 );
02260 }
02261
02265 void CTabWnd::GetCloseBtnRect( const LPRECT lprcClient, LPRECT lprc )
02266 {
02267     *lprc = rcBtnBase;
02268     ::OffsetRect(lprc, lprcClient->right - TAB_MARGIN_RIGHT + 4 + (rcBtnBase.right - rcBtnBase.left) + 7, lprcClient->top + TAB_MARGIN_TOP + 2 );
02269 }
02270
02271
02282 void CTabWnd::GetTabName( EditNode* pEditNode, BOOL bFull, BOOL bDupamp, LPTSTR pszName, int nLen )
02283 {
02284     LPTSTR pszText = new TCHAR[nLen];
02285
02286     if( pEditNode == NULL )
02287     {
02288         ::lstrcpyn( pszText, _T("(無題)"), nLen );
02289     }
02290     else if( !bFull || pEditNode->m_szFilePath[0] == '\0' )
02291     {
02292         if( pEditNode->m_szTabCaption[0] )
02293         {
02294             ::lstrcpyn( pszText, pEditNode->m_szTabCaption, nLen );
02295         }
02296         else
02297         {
02298             ::lstrcpyn( pszText, _T("(無題)"), nLen );
02299         }
02300     }
02301     else
02302     {
02303         // フルパス名を簡易名に変換する
02304         CShareData::getInstance()->GetTransformFileNameFast( pEditNode->m_szFilePath, pszText, nLen );
02305     }
02306
02307     if( bDupamp )
02308     {
02309         // &を&&に置き換える
02310         LPTSTR pszText_amp = new TCHAR[nLen * 2];
02311         dupamp( pszText, pszText_amp );
02312         ::lstrcpyn( pszName, pszText_amp, nLen );
02313         delete []pszText_amp;
02314     }
02315     else
02316     {
02317         ::lstrcpyn( pszName, pszText, nLen );
02318     }
02319
02320     delete []pszText;
02321 }
02322
02323
02337 LRESULT CTabWnd::TabListMenu( POINT pt, BOOL bSel/* = TRUE*/, BOOL bFull/* = FALSE*/, BOOL bOtherGroup/* = TRUE*/ )
02338 {
02339     bool bRepeat;
02340
02341     if( bSel )
02342         bFull = m_pShareData->m_Common.m_bTab_ListFull;
02343
02344     do
02345     {
02346         EditNode* pEditNode;
02347         int i;
02348         int nGroup;
02349         int nSelfTab;
02350         int nTab;
02351         int nCount;
02352
02353         // タブメニュー用の情報を取得する
02354         nCount = CShareData::getInstance()->GetOpenedWindowArr( &pEditNode, TRUE );
02355         if( 0 >= nCount )
02356             return 0L;
02357
02358         TABMENU_DATA* pData = new TABMENU_DATA[nCount]; // タブメニュー用の情報
02359
02360         // 自ウィンドウのグループ番号を調べる
02361         for( i = 0; i < nCount; i++ )
02362         {
02363             if( pEditNode[i].m_hWnd == m_hwndParent )
02364             {
02365                 nGroup = pEditNode[i].m_nGroup;
02366                 break;
02367             }
02368         }
02369
02370         // 自グループのウィンドウ一覧情報を作成する
02371         nSelfTab = 0;
02372         if( i < nCount )
02373         {
02374             for( i = 0; i < nCount; i++ )
02375             {
02376                 if( pEditNode[i].m_nGroup != nGroup )
02377                     continue;
02378                 if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
02379                     continue;
02380                 GetTabName( &pEditNode[i], bFull, TRUE, pData[nSelfTab].szText, sizeof(pData[0].szText) );
02381                 pData[nSelfTab].hwnd = pEditNode[i].m_hWnd;
02382                 pData[nSelfTab].iItem = i;
02383                 pData[nSelfTab].iImage = GetImageIndex( &pEditNode[i] );
02384                 nSelfTab++;
02385             }
02386             // 表示文字でソートする
02387             if( nSelfTab > 0 && m_pShareData->m_Common.m_bSortTabList ) // 2006.03.23 fon 変更
02388                 qsort( pData, nSelfTab, sizeof(pData[0]), compTABMENU_DATA );
02389         }
02390
02391         // 他グループのウィンドウ一覧情報を作成する
02392         nTab = nSelfTab;
02393         for( i = 0; i < nCount; i++ )
02394         {
02395             if( pEditNode[i].m_nGroup == nGroup )
02396                 continue;
02397             if( pEditNode[i].m_bClosing )   // このあとすぐに閉じるウィンドウなのでタブ表示しない
02398                 continue;
02399             GetTabName( &pEditNode[i], bFull, TRUE, pData[nTab].szText, sizeof(pData[0].szText) );
02400             pData[nTab].hwnd = pEditNode[i].m_hWnd;
02401             pData[nTab].iItem = i;
02402             pData[nTab].iImage = GetImageIndex( &pEditNode[i] );
02403             nTab++;
02404         }
02405         // 表示文字でソートする
02406         if( nTab > nSelfTab && m_pShareData->m_Common.m_bSortTabList )
02407             qsort( pData + nSelfTab, nTab - nSelfTab, sizeof(pData[0]), compTABMENU_DATA );
02408
02409         delete []pEditNode;
02410
02411         // メニューを作成する
02412         // 2007.02.28 ryoji 表示切替をメニューに追加
02413         int iMenuSel = -1;
02414         UINT uFlags = MF_BYPOSITION | (m_hIml? MF_OWNERDRAW: MF_STRING);
02415         HMENU hMenu = ::CreatePopupMenu();
02416         for( i = 0; i < nSelfTab; i++ )
02417         {
02418             ::InsertMenu( hMenu, i, uFlags, IDM_SELWINDOW + i, m_hIml? (LPCTSTR)&pData[i]: pData[i].szText );
02419             if( pData[i].hwnd == m_hwndParent )
02420                 iMenuSel = i;
02421         }
02422
02423         // 自ウィンドウに対応するメニューをチェック状態にする
02424         if( iMenuSel >= 0 )
02425         {
02426             ::CheckMenuRadioItem( hMenu, 0, nSelfTab - 1, iMenuSel, MF_BYPOSITION );
02427         }
02428
02429         // 他グループのウィンドウ一覧を追加する
02430         if( nTab > nSelfTab )
02431         {
02432             if( bOtherGroup )
02433             {
02434                 for( i = nSelfTab; i < nTab; i++ )
02435                 {
02436                     ::InsertMenu( hMenu, i, uFlags, IDM_SELWINDOW + i, m_hIml? (LPCTSTR)&pData[i]: pData[i].szText );
02437                 }
02438             }
02439             else
02440             {
02441                 ::InsertMenu( hMenu, nSelfTab, MF_BYPOSITION, 101, _T("すべて表示(&A)") );
02442             }
02443             ::InsertMenu( hMenu, nSelfTab, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);  // セパレータ
02444         }
02445
02446         // 表示切替メニューを追加する
02447         if( bSel )
02448         {
02449             ::InsertMenu( hMenu, 0, MF_BYPOSITION | MF_STRING, 100, bFull? _T("タブ名一覧に切替える(&W)"): _T("パス名一覧に切替える(&W)") );
02450             ::InsertMenu( hMenu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); // セパレータ
02451         }
02452
02453         // メニューを表示する
02454         // 2006.04.21 ryoji マルチモニタ対応の修正
02455         RECT rcWork;
02456         GetMonitorWorkRect( pt, &rcWork );  // モニタのワークエリア
02457         int nId = ::TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_RETURNCMD,
02458                                     ( pt.x > rcWork.left )? pt.x: rcWork.left,
02459                                     ( pt.y < rcWork.bottom )? pt.y: rcWork.bottom,
02460                                     0, m_hWnd, NULL);
02461         ::DestroyMenu( hMenu );
02462
02463         // メニュー選択されたタブのウインドウをアクティブにする
02464         bRepeat = false;
02465         if( 100 == nId )    // 表示切替
02466         {
02467             bFull = !bFull;
02468             bRepeat = true;
02469         }
02470         else if( 101 == nId )
02471         {
02472             bOtherGroup = !bOtherGroup;
02473             bRepeat = true;
02474         }
02475         else if( IDM_SELWINDOW <= nId && nId < IDM_SELWINDOW + nTab )
02476         {
02477             ActivateFrameWindow( pData[nId - IDM_SELWINDOW].hwnd );
02478         }
02479
02480         delete []pData;
02481
02482     } while( bRepeat );
02483
02484     if( bSel )
02485         m_pShareData->m_Common.m_bTab_ListFull = bFull;
02486
02487     return 0L;
02488 }
02489
02490
02494 HWND CTabWnd::GetNextGroupWnd( void )
02495 {
02496     HWND hwndRet = NULL;
02497
02498     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
02499     {
02500         EditNode* pWndArr;
02501         int i;
02502         int j;
02503         int n;
02504
02505         n = CShareData::getInstance()->GetOpenedWindowArr( &pWndArr, FALSE, TRUE ); // グループ番号順ソート
02506         if( 0 == n )
02507             return NULL;
02508         for( i = 0; i < n; i++ )
02509         {
02510             if( pWndArr[i].m_hWnd == m_hwndParent )
02511                 break;
02512         }
02513         if( i < n )
02514         {
02515             for( j = i + 1; j < n; j++ )
02516             {
02517                 if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02518                 {
02519                     hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02520                     break;
02521                 }
02522             }
02523             if( j >= n )
02524             {
02525                 for( j = 0; j < i; j++ )
02526                 {
02527                     if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02528                     {
02529                         hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02530                         break;
02531                     }
02532                 }
02533             }
02534         }
02535         delete []pWndArr;
02536     }
02537
02538     return hwndRet;
02539 }
02540
02544 HWND CTabWnd::GetPrevGroupWnd( void )
02545 {
02546     HWND hwndRet = NULL;
02547     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
02548     {
02549         EditNode* pWndArr;
02550         int i;
02551         int j;
02552         int n;
02553
02554         n = CShareData::getInstance()->GetOpenedWindowArr( &pWndArr, FALSE, TRUE ); // グループ番号順ソート
02555         if( 0 == n )
02556             return NULL;
02557         for( i = 0; i < n; i++ )
02558         {
02559             if( pWndArr[i].m_hWnd == m_hwndParent )
02560                 break;
02561         }
02562         if( i < n )
02563         {
02564             for( j = i - 1; j >= 0; j-- )
02565             {
02566                 if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02567                 {
02568                     hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02569                     break;
02570                 }
02571             }
02572             if( j < 0 )
02573             {
02574                 for( j = n - 1; j > i; j-- )
02575                 {
02576                     if( pWndArr[j].m_nGroup != pWndArr[i].m_nGroup )
02577                     {
02578                         hwndRet = CShareData::getInstance()->GetTopEditWnd( pWndArr[j].m_hWnd );
02579                         break;
02580                     }
02581                 }
02582             }
02583         }
02584         delete []pWndArr;
02585     }
02586
02587     return hwndRet;
02588 }
02589
02593 void CTabWnd::NextGroup( void )
02594 {
02595     HWND hWnd = GetNextGroupWnd();
02596     if( hWnd )
02597     {
02598         ActivateFrameWindow( hWnd );
02599     }
02600 }
02601
02605 void CTabWnd::PrevGroup( void )
02606 {
02607     HWND hWnd = GetPrevGroupWnd();
02608     if( hWnd )
02609     {
02610         ActivateFrameWindow( hWnd );
02611     }
02612 }
02613
02617 void CTabWnd::MoveRight( void )
02618 {
02619     if( m_pShareData->m_Common.m_bDispTabWnd )
02620     {
02621         int nIndex = FindTabIndexByHWND( m_hwndParent );
02622         if( -1 != nIndex )
02623         {
02624             int nCount = TabCtrl_GetItemCount( m_hwndTab );
02625             if( nCount - 1 > nIndex )
02626             {
02627                 ReorderTab( nIndex, nIndex + 1 );
02628             }
02629         }
02630     }
02631 }
02632
02636 void CTabWnd::MoveLeft( void )
02637 {
02638     if( m_pShareData->m_Common.m_bDispTabWnd )
02639     {
02640         int nIndex = FindTabIndexByHWND( m_hwndParent );
02641         if( -1 != nIndex )
02642         {
02643             if( 0 < nIndex )
02644             {
02645                 ReorderTab( nIndex, nIndex - 1 );
02646             }
02647         }
02648     }
02649 }
02650
02654 void CTabWnd::Separate( void )
02655 {
02656     if( m_pShareData->m_Common.m_bDispTabWnd && !m_pShareData->m_Common.m_bDispTabWndMultiWin )
02657     {
02658         RECT rc;
02659         POINT ptSrc;
02660         POINT ptDst;
02661         RECT rcWork;
02662         int cy;
02663
02664         ::GetWindowRect( m_hwndParent, &rc );
02665         ptSrc.x = rc.left;
02666         ptSrc.y = rc.top;
02667         cy = ::GetSystemMetrics( SM_CYCAPTION );
02668         rc.left += cy;
02669         rc.right += cy;
02670         rc.top += cy;
02671         rc.bottom += cy;
02672         GetMonitorWorkRect( m_hwndParent, &rcWork );
02673         if( rc.bottom > rcWork.bottom ){
02674             rc.top -= (rc.bottom - rcWork.bottom);
02675             rc.bottom = rcWork.bottom;
02676         }
02677         if( rc.right > rcWork.right ){
02678             rc.left -= (rc.right - rcWork.right);
02679             rc.right = rcWork.right;
02680         }
02681         if( rc.top < rcWork.top ){
02682             rc.bottom += (rcWork.top - rc.top);
02683             rc.top = rcWork.top;
02684         }
02685         if( rc.left < rcWork.left ){
02686             rc.right += (rcWork.left - rc.left);
02687             rc.left = rcWork.left;
02688         }
02689         ptDst.x = rc.left;
02690         ptDst.y = rc.top;
02691
02692         SeparateGroup( m_hwndParent, NULL, ptSrc, ptDst );
02693     }
02694 }
02695
02699 void CTabWnd::JoinNext( void )
02700 {
02701     HWND hWnd = GetNextGroupWnd();
02702     if( hWnd )
02703     {
02704         POINT ptSrc;
02705         POINT ptDst;
02706         ptSrc.x = ptSrc.y = ptDst.x = ptDst.y = 0;
02707         SeparateGroup( m_hwndParent, hWnd, ptSrc, ptDst );
02708     }
02709 }
02710
02714 void CTabWnd::JoinPrev( void )
02715 {
02716     HWND hWnd = GetPrevGroupWnd();
02717     if( hWnd )
02718     {
02719         POINT ptSrc;
02720         POINT ptDst;
02721         ptSrc.x = ptSrc.y = ptDst.x = ptDst.y = 0;
02722         SeparateGroup( m_hwndParent, hWnd, ptSrc, ptDst );
02723     }
02724 }
02725
02726 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTabWnd.h

CTabWnd.h

タブウィンドウ [詳細]

#include "CWnd.h"
#include "CEditDoc.h"
#include "CShareData.h"
#include <string>
#include <map>

CTabWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CTabWnd
タブバーウィンドウ [詳細]

説明

タブウィンドウ

作者:
MIK
日付:
2003.5.30

CTabWnd.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:45 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTabWnd.h ソースファイル

CTabWnd.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, MIK
00009     Copyright (C) 2004, MIK, Kazika
00010     Copyright (C) 2005, ryoji
00011     Copyright (C) 2006, ryoji, fon
00012     Copyright (C) 2007, ryoji
00013
00014     This software is provided 'as-is', without any express or implied
00015     warranty. In no event will the authors be held liable for any damages
00016     arising from the use of this software.
00017
00018     Permission is granted to anyone to use this software for any purpose,
00019     including commercial applications, and to alter it and redistribute it
00020     freely, subject to the following restrictions:
00021
00022         1. The origin of this software must not be misrepresented;
00023            you must not claim that you wrote the original software.
00024            If you use this software in a product, an acknowledgment
00025            in the product documentation would be appreciated but is
00026            not required.
00027
00028         2. Altered source versions must be plainly marked as such,
00029            and must not be misrepresented as being the original software.
00030
00031         3. This notice may not be removed or altered from any source
00032            distribution.
00033 */
00034
00035 class CTabWnd;
00036
00037 #ifndef _CTABWND_H_
00038 #define _CTABWND_H_
00039
00040 #include "CWnd.h"
00041 #include "CEditDoc.h"
00042 #include "CShareData.h"
00043 #include <string>
00044 #include <map>
00045
00047 class SAKURA_CORE_API CTabWnd : public CWnd
00048 {
00049 public:
00050     /*
00051     ||  Constructors
00052     */
00053     CTabWnd();
00054     virtual ~CTabWnd();
00055
00056     /*
00057     || メンバ関数
00058     */
00059     HWND Open( HINSTANCE, HWND );
00060     void Close( void );
00061     void TabWindowNotify( WPARAM wParam, LPARAM lParam );
00062     void Refresh( BOOL bEnsureVisible = TRUE, BOOL bRebuild = FALSE );          // 2006.02.06 ryoji 引数削除
00063     void NextGroup( void );         /* 次のグループ */          // 2007.06.20 ryoji
00064     void PrevGroup( void );         /* 前のグループ */          // 2007.06.20 ryoji
00065     void MoveRight( void );         /* タブを右に移動 */        // 2007.06.20 ryoji
00066     void MoveLeft( void );          /* タブを左に移動 */        // 2007.06.20 ryoji
00067     void Separate( void );          /* 新規グループ */          // 2007.06.20 ryoji
00068     void JoinNext( void );          /* 次のグループに移動 */    // 2007.06.20 ryoji
00069     void JoinPrev( void );          /* 前のグループに移動 */    // 2007.06.20 ryoji
00070
00071     LRESULT TabWndDispatchEvent( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
00072     LRESULT TabListMenu( POINT pt, BOOL bSel = TRUE, BOOL bFull = FALSE, BOOL bOtherGroup = TRUE );     // 2006.03.23 fon
00073
00074     /*
00075     || メンバ変数
00076     */
00077     LPCTSTR         m_pszClassName;
00078     DLLSHAREDATA*   m_pShareData;
00079     HFONT           m_hFont;
00080     HWND            m_hwndTab;
00081     HWND            m_hwndToolTip;
00082     TCHAR           m_szTextTip1[1024];
00083 #ifdef UNICODE
00084     //※現在扱っている文字コードとは逆の文字コードを指定する。
00085     char            m_szTextTip2[1024];
00086 #else
00087     //※現在扱っている文字コードとは逆の文字コードを指定する。
00088     wchar_t         m_szTextTip2[1024];
00089 #endif  //UNICODE
00090
00091 protected:
00092     /*
00093     || 実装ヘルパ系
00094     */
00095     int FindTabIndexByHWND( HWND hWnd );
00096     void AdjustWindowPlacement( void );                             // 2007.04.03 ryoji
00097     void ShowHideWindow( HWND hwnd, BOOL bDisp );
00098     void HideOtherWindows( HWND hwndExclude );                      // 2007.05.17 ryoji
00099     void ForceActiveWindow( HWND hwnd );
00100     void TabWnd_ActivateFrameWindow( HWND hwnd, bool bForce = true );   //2004.08.27 Kazika 引数追加
00101     HWND GetNextGroupWnd( void );   /* 次のグループの先頭ウィンドウを探す */    // 2007.06.20 ryoji
00102     HWND GetPrevGroupWnd( void );   /* 前のグループの先頭ウィンドウを探す */    // 2007.06.20 ryoji
00103     void GetTabName( EditNode* pEditNode, BOOL bFull, BOOL bDupamp, LPTSTR pszName, int nLen ); /* タブ名取得処理 */    // 2007.06.28 ryoji 新規作成
00104
00105     /* 仮想関数 */
00106     virtual void AfterCreateWindow( void ){}        // 2007.03.13 ryoji 可視化しない
00107
00108     /* 仮想関数 メッセージ処理 */
00109     virtual LRESULT OnSize( HWND, UINT, WPARAM, LPARAM );
00110     virtual LRESULT OnDestroy( HWND, UINT, WPARAM, LPARAM );
00111     virtual LRESULT OnNotify( HWND, UINT, WPARAM, LPARAM );
00112     virtual LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );
00113     virtual LRESULT OnCaptureChanged( HWND, UINT, WPARAM, LPARAM );
00114     virtual LRESULT OnLButtonDown( HWND, UINT, WPARAM, LPARAM );
00115     virtual LRESULT OnLButtonUp( HWND, UINT, WPARAM, LPARAM );
00116     virtual LRESULT OnRButtonDown( HWND, UINT, WPARAM, LPARAM );
00117     virtual LRESULT OnLButtonDblClk( HWND, UINT, WPARAM, LPARAM );
00118     virtual LRESULT OnMouseMove( HWND, UINT, WPARAM, LPARAM );
00119     virtual LRESULT OnTimer( HWND, UINT, WPARAM, LPARAM );
00120     virtual LRESULT OnMeasureItem( HWND, UINT, WPARAM, LPARAM );
00121     virtual LRESULT OnDrawItem( HWND, UINT, WPARAM, LPARAM );
00123     // 2005.09.01 ryoji ドラッグアンドドロップでタブの順序変更を可能に
00124     /* サブクラス化した Tab でのメッセージ処理 */
00125     LRESULT OnTabLButtonDown( WPARAM wParam, LPARAM lParam );
00126     LRESULT OnTabLButtonUp( WPARAM wParam, LPARAM lParam );
00127     LRESULT OnTabMouseMove( WPARAM wParam, LPARAM lParam );
00128     LRESULT OnTabCaptureChanged( WPARAM wParam, LPARAM lParam );
00129     LRESULT OnTabRButtonDown( WPARAM wParam, LPARAM lParam );
00130     LRESULT OnTabRButtonUp( WPARAM wParam, LPARAM lParam );
00131     LRESULT OnTabMButtonDown( WPARAM wParam, LPARAM lParam );
00132     LRESULT OnTabMButtonUp( WPARAM wParam, LPARAM lParam );
00133     LRESULT OnTabNotify( WPARAM wParam, LPARAM lParam );
00135     void BreakDrag( void ) { if( ::GetCapture() == m_hwndTab ) ::ReleaseCapture(); m_eDragState = DRAG_NONE; }
00136     BOOL ReorderTab( int nSrcTab, int nDstTab );
00137     BOOL SeparateGroup( HWND hwndSrc, HWND hwndDst, POINT ptDrag, POINT ptDrop );       // 2007.06.20 ryoji
00138     LRESULT ExecTabCommand( int nId, POINTS pts );
00139     void LayoutTab( void );
00141     enum DragState { DRAG_NONE, DRAG_CHECK, DRAG_DRAG };
00142
00143     DragState m_eDragState;
00144     int m_nSrcTab;
00145     POINT m_ptSrcCursor;
00146
00147     // 2006.01.28 ryoji タブへのアイコン表示を可能に
00148     HIMAGELIST (WINAPI *m_RealImageList_Duplicate)(HIMAGELIST himl);
00149     HIMAGELIST m_hIml;
00150     HICON m_hIconApp;
00151     HICON m_hIconGrep;
00152     int m_iIconApp;
00153     int m_iIconGrep;
00154     HIMAGELIST InitImageList( void );
00155     int GetImageIndex( EditNode* pNode );
00156     HIMAGELIST ImageList_Duplicate( HIMAGELIST himl );
00158     // 2006.02.01 ryoji タブ一覧を追加
00159     void DrawBtnBkgnd( HDC hdc, const LPRECT lprcBtn, BOOL bBtnHilighted );     // 2006.10.21 ryoji
00160     void DrawListBtn( HDC hdc, const LPRECT lprcClient );
00161     void DrawCloseBtn( HDC hdc, const LPRECT lprcClient );                  // 2006.10.21 ryoji
00162     void GetListBtnRect( const LPRECT lprcClient, LPRECT lprc );
00163     void GetCloseBtnRect( const LPRECT lprcClient, LPRECT lprc );       // 2006.10.21 ryoji
00164     BOOL m_bVisualStyle;
00165     BOOL m_bHovering;
00166     BOOL m_bListBtnHilighted;
00167     BOOL m_bCloseBtnHilighted;
00168     enum CaptureSrc { CAPT_NONE, CAPT_CLOSE };
00169     CaptureSrc m_eCaptureSrc;
00170     HFONT CreateMenuFont( void )
00171     {
00172         // メニュー用フォント作成
00173         NONCLIENTMETRICS    ncm;
00174         ncm.cbSize = sizeof( NONCLIENTMETRICS );
00175         ::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), (PVOID)&ncm, 0 );
00176         return ::CreateFontIndirect( &ncm.lfMenuFont );
00177     }
00178 };
00179
00180 #endif /* _CTABWND_H_ */
00181
00182 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTipWnd.cpp

CTipWnd.cpp

ツールチップ [詳細]

#include "stdafx.h"
#include "CTipWnd.h"
#include "CShareData.h"

CTipWnd.cppのインクルード依存関係図

ソースコードを見る。

説明

ツールチップ

作者:
Norio Nakatani
日付:
1998/10/30 新規作成

CTipWnd.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTipWnd.cpp ソースファイル

CTipWnd.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, asa-o
00010     Copyright (C) 2002, GAE
00011     Copyright (C) 2005, D.S.Koba
00012     Copyright (C) 2006, ryoji, genta
00013
00014     This source code is designed for sakura editor.
00015     Please contact the copyright holder to use this code for other purpose.
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CTipWnd.h"
00020 #include "CShareData.h"
00021
00022
00023 /* CTipWndクラス デストラクタ */
00024 CTipWnd::CTipWnd()
00025 {
00026     strcat( m_szClassInheritances, "::CTipWnd" );
00027     m_pszClassName = "CTipWnd";
00028     m_KeyWasHit = FALSE;    /* キーがヒットしたか */
00029     return;
00030 }
00031
00032
00033
00034 /* CTipWndクラス デストラクタ */
00035 CTipWnd::~CTipWnd()
00036 {
00037     if( NULL != m_hFont ){
00038         ::DeleteObject( m_hFont );
00039         m_hFont = NULL;
00040     }
00041     return;
00042 }
00043
00044
00045
00046 /* 初期化 */
00047 void CTipWnd::Create( HINSTANCE hInstance, HWND hwndParent )
00048 {
00049
00050     /* 初期化 */
00051     m_hInstance = hInstance;    /* アプリケーションインスタンスのハンドル */
00052     m_hwndParent = hwndParent;  /* オーナーウィンドウのハンドル */
00053
00054     /* ウィンドウクラス作成 */
00055     ATOM atWork;
00056     atWork = RegisterWC(
00057         /* WNDCLASS用 */
00058         NULL,// Handle to the class icon.
00059         NULL,   //Handle to a small icon
00060         ::LoadCursor( NULL, IDC_ARROW ),// Handle to the class cursor.
00061         (HBRUSH)/*NULL*/(COLOR_INFOBK + 1),// Handle to the class background brush.
00062         NULL/*MAKEINTRESOURCE( MYDOCUMENT )*/,// Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file.
00063         m_pszClassName// Pointer to a null-terminated string or is an atom.
00064     );
00065
00066     /* 基底クラスメンバ呼び出し */
00067     // 2006.01.09 ryoji 初期状態を不可視にする
00068     //  実質的には見えないCTipWndが最前面にあると判断されてしまう場合があるため
00069     CWnd::Create(
00070         /* CreateWindowEx()用 */
00071         WS_EX_TOOLWINDOW, // extended window style  // 2002/2/3 GAE
00072         m_pszClassName, // Pointer to a null-terminated string or is an atom.
00073         m_pszClassName, // pointer to window name
00074         WS_POPUP | WS_CLIPCHILDREN | WS_BORDER, // window style
00075         CW_USEDEFAULT, // horizontal position of window
00076         0, // vertical position of window
00077         CW_USEDEFAULT, // window width
00078         0, // window height
00079         NULL // handle to menu, or child-window identifier
00080     );
00081
00082     if( NULL != m_hFont ){
00083         ::DeleteObject( m_hFont );
00084         m_hFont = NULL;
00085     }
00086
00087     m_hFont = ::CreateFontIndirect( &(CShareData::getInstance()->GetShareData()->m_Common.m_lf_kh) );
00088     return;
00089 }
00090
00098 void CTipWnd::AfterCreateWindow( void )
00099 {
00100 }
00101
00102 /* Tipを表示 */
00103 void CTipWnd::Show( int nX, int nY, char* szText, RECT* pRect )
00104 {
00105     HDC     hdc;
00106     RECT    rc;
00107     char*   pszInfo;
00108
00109     if( NULL != szText ){
00110         m_cInfo.SetData( szText, strlen( szText ) );
00111     }
00112     pszInfo = m_cInfo.GetPtr();
00113
00114     hdc = ::GetDC( m_hWnd );
00115
00116     // サイズを計算済み 2001/06/19 asa-o
00117     if(pRect != NULL)
00118     {
00119         rc = *pRect;
00120     }
00121     else
00122     {
00123         /* ウィンドウのサイズを決める */
00124         ComputeWindowSize( hdc, m_hFont, pszInfo, &rc );
00125     }
00126
00127     ::ReleaseDC( m_hWnd, hdc );
00128
00129     ::MoveWindow( m_hWnd, nX, nY, rc.right + 8, rc.bottom + 8/*nHeight*/, TRUE );
00130     ::ShowWindow( m_hWnd, SW_SHOWNA );
00131     return;
00132
00133 }
00134
00135 /* ウィンドウのサイズを決める */
00136 void CTipWnd::ComputeWindowSize(
00137         HDC         hdc,
00138         HFONT       hFont,
00139         const char* pszText,
00140         RECT*       pRect
00141 )
00142 {
00143     int     nTextLength;
00144     int     nCurMaxWidth;
00145     int     nCurHeight;
00146     int     nBgn;
00147     RECT    rc;
00148     HFONT   hFontOld;
00149     int     i;
00150     int     nCharChars;
00151
00152     hFontOld = (HFONT)::SelectObject( hdc, hFont );
00153
00154     nCurMaxWidth = 0;
00155     nCurHeight = 0;
00156     nTextLength = strlen( pszText );
00157     nBgn = 0;
00158     for( i = 0; i <= nTextLength; ++i ){
00159         // 2005-09-02 D.S.Koba GetSizeOfChar
00160         nCharChars = CMemory::GetSizeOfChar( (const char *)pszText, nTextLength, i );
00161         if( ( 1 == nCharChars && '\\' == pszText[i] && 'n' == pszText[i + 1]) || '\0' == pszText[i] ){
00162             if( 0 < i - nBgn ){
00163                 char*   pszWork;
00164                 pszWork = new char[i - nBgn + 1];
00165                 memcpy( pszWork, &pszText[nBgn], i - nBgn );
00166                 pszWork[i - nBgn] = '\0';
00167
00168                 rc.left = 0;
00169                 rc.top = 0;
00170                 rc.right = ::GetSystemMetrics( SM_CXSCREEN );
00171                 rc.bottom = 0;
00172                 ::DrawText( hdc, pszWork, strlen(pszWork), &rc,
00173                     DT_CALCRECT | DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00174                 );
00175                 delete [] pszWork;
00176                 if( nCurMaxWidth < rc.right ){
00177                     nCurMaxWidth = rc.right;
00178                 }
00179             }else{
00180                 ::DrawText( hdc, " ", 1, &rc,
00181                     DT_CALCRECT | DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00182                 );
00183             }
00184             nCurHeight += rc.bottom;
00185
00186             nBgn = i + 2;
00187         }
00188         if( 2 == nCharChars ){
00189             ++i;
00190         }
00191     }
00192
00193     pRect->left = 0;
00194     pRect->top = 0;
00195     pRect->right = nCurMaxWidth + 4;
00196     pRect->bottom = nCurHeight + 2;
00197
00198     ::SelectObject( hdc, hFontOld );
00199
00200     return;
00201
00202
00203 }
00204
00205
00206 /* ウィンドウのテキストを表示 */
00207 void CTipWnd::DrawTipText(
00208         HDC         hdc,
00209         HFONT       hFont,
00210         const char* pszText
00211 )
00212 {
00213     int         nTextLength;
00214     int         nCurMaxWidth;
00215     int         nCurHeight;
00216     int         nBgn;
00217     RECT        rc;
00218     HFONT       hFontOld;
00219     int         i;
00220     int         nBkMode_Old;
00221     COLORREF    colText_Old;
00222     int         nCharChars;
00223
00224     nBkMode_Old = ::SetBkMode( hdc, TRANSPARENT );
00225     hFontOld = (HFONT)::SelectObject( hdc, hFont );
00226     colText_Old = ::SetTextColor( hdc, ::GetSysColor( COLOR_INFOTEXT ) );
00227
00228     nCurMaxWidth = 0;
00229     nCurHeight = 0;
00230     nTextLength = strlen( pszText );
00231     nBgn = 0;
00232     for( i = 0; i <= nTextLength; ++i ){
00233 //      nCharChars = &pszText[i] - CMemory::MemCharPrev( pszText, nTextLength, &pszText[i] );
00234         // 2005-09-02 D.S.Koba GetSizeOfChar
00235         nCharChars = CMemory::GetSizeOfChar( (const char *)pszText, nTextLength, i );
00236         if( ( 1 == nCharChars && '\\' == pszText[i] && 'n' == pszText[i + 1]) || '\0' == pszText[i] ){
00237             if( 0 < i - nBgn ){
00238                 char*   pszWork;
00239                 pszWork = new char[i - nBgn + 1];
00240                 memcpy( pszWork, &pszText[nBgn], i - nBgn );
00241                 pszWork[i - nBgn] = '\0';
00242
00243                 rc.left = 4;
00244                 rc.top = 4 + nCurHeight;
00245                 rc.right = ::GetSystemMetrics( SM_CXSCREEN );
00246                 rc.bottom = rc.top + 200;
00247                 nCurHeight += ::DrawText( hdc, pszWork, strlen(pszWork), &rc,
00248                     DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00249                 );
00250                 delete [] pszWork;
00251                 if( nCurMaxWidth < rc.right ){
00252                     nCurMaxWidth = rc.right;
00253                 }
00254             }else{
00255                 rc.left = 4;
00256                 rc.top = 4 + nCurHeight;
00257                 rc.right = ::GetSystemMetrics( SM_CXSCREEN );
00258                 rc.bottom = rc.top + 200;
00259                 nCurHeight += ::DrawText( hdc, " ", 1, &rc,
00260                     DT_EXTERNALLEADING | DT_EXPANDTABS | DT_WORDBREAK /*| DT_TABSTOP | (0x0000ff00 & ( 4 << 8 ))*/
00261                 );
00262             }
00263
00264             nBgn = i + 2;
00265         }
00266         if( 2 == nCharChars ){
00267             ++i;
00268         }
00269     }
00270
00271
00272     ::SetTextColor( hdc, colText_Old );
00273     ::SelectObject( hdc, hFontOld );
00274     ::SetBkMode( hdc, nBkMode_Old );
00275
00276     return;
00277
00278
00279 }
00280
00281
00282
00283 /* Tipを消す */
00284 void CTipWnd::Hide( void )
00285 {
00286     ::ShowWindow( m_hWnd, SW_HIDE );
00287 //  ::DestroyWindow( m_hWnd );
00288     return;
00289 }
00290
00291
00292
00293
00294 /* 描画処理 */
00295 LRESULT CTipWnd::OnPaint( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l_Param )
00296 {
00297     HDC         hdc;
00298     PAINTSTRUCT ps;
00299     RECT        rc;
00300     char*       pszText;
00301 //  int         nTextLen;
00302
00303     hdc = ::BeginPaint( hwnd, &ps );
00304     pszText = m_cInfo.GetPtr();
00305     ::GetClientRect( hwnd, &rc );
00306     /* ウィンドウのテキストを表示 */
00307     DrawTipText( hdc, m_hFont, pszText );
00308
00309     ::EndPaint( hwnd, &ps );
00310     return 0L;
00311
00312
00313 }
00314
00315
00316 // 2001/06/19 Start by asa-o: ウィンドウのサイズを得る
00317 void CTipWnd::GetWindowSize(LPRECT pRect)
00318 {
00319     HDC         hdc;
00320     const char* pszText;
00321
00322     hdc = ::GetDC( m_hWnd );
00323
00324     pszText = m_cInfo.GetPtr();
00325
00326     // ウィンドウのサイズを得る
00327     ComputeWindowSize( hdc, m_hFont, pszText , pRect );
00328 }
00329
00330 // 2001/06/19 End
00331
00332
00333 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTipWnd.h

CTipWnd.h

ツールチップ [詳細]

#include "CWnd.h"
#include "CMemory.h"

CTipWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CTipWnd

説明

ツールチップ

作者:
Norio Nakatani
日付:
1998/10/30 新規作成

CTipWnd.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CTipWnd.h ソースファイル

CTipWnd.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 1998-2001, Norio Nakatani
00009     Copyright (C) 2001, asa-o
00010     Copyright (C) 2002, aroka
00011     Copyright (C) 2006, genta, fon
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 class CTipWnd;
00018
00019 #ifndef _CTIPWND_H_
00020 #define _CTIPWND_H_
00021
00022 #include "CWnd.h"
00023 #include "CMemory.h"
00024 /*-----------------------------------------------------------------------
00025 クラスの宣言
00026 -----------------------------------------------------------------------*/
00027 class SAKURA_CORE_API CTipWnd : public CWnd
00028 {
00029 public:
00030     /*
00031     ||  Constructors
00032     */
00033     CTipWnd();
00034     ~CTipWnd();
00035     void Create( HINSTANCE, HWND ); /* 初期化 */
00036
00037     /*
00038     ||  Attributes & Operations
00039     */
00040     void Show( int, int, char*, RECT* pRect = NULL );   /* Tipを表示 */
00041     void Hide( void );  /* Tipを消す */
00042     void GetWindowSize(LPRECT pRect);       // 2001/06/19 asa-o ウィンドウのサイズを得る
00043
00044     void ChangeFont( LOGFONT* lf ){
00045         if ( m_hFont ){
00046             ::DeleteObject( m_hFont );
00047         }
00048         m_hFont = ::CreateFontIndirect( lf );
00049     };
00050
00051 protected: // 2002/2/10 aroka アクセス権変更
00052     char*       m_pszClassName; /* Mutex作成用・ウィンドウクラス名 */
00053     HFONT       m_hFont;
00054
00055 public:
00056     CMemory     m_cKey;         /* キーの内容データ */
00057     BOOL        m_KeyWasHit;    /* キーがヒットしたか */
00058     int         m_nSearchLine;  /* 辞書のヒット行 */    // 2006.04.10 fon
00059     int         m_nSearchDict;  /* ヒット辞書番号 */    // 2006.04.10 fon
00060
00061     CMemory     m_cInfo;        /* Tipの内容データ */
00062
00063 protected:
00064     /*
00065     ||  実装ヘルパ関数
00066     */
00067     void ComputeWindowSize( HDC, HFONT, const char*, RECT* );   /* ウィンドウのサイズを決める */
00068     void DrawTipText( HDC, HFONT, const char* );    /* ウィンドウのテキストを表示 */
00069
00070     /* 仮想関数 */
00071     //  Jan. 9, 2006 genta
00072     virtual void AfterCreateWindow( void );
00073
00074     /* 仮想関数 メッセージ処理 詳しくは実装を参照 */
00075     LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM );/* 描画処理 */
00076 };
00077
00078
00079
00081 #endif /* _CTIPWND_H_ */
00082
00083
00084 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CUxTheme.cpp

CUxTheme.cpp

UxTheme 動的ロード [詳細]

#include "stdafx.h"
#include "CUxTheme.h"

CUxTheme.cppのインクルード依存関係図

ソースコードを見る。

説明

UxTheme 動的ロード

UxTheme (Windows thmeme manager) への動的アクセスクラス

作者:
ryoji
日付:
Apr. 1, 2007

CUxTheme.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CUxTheme.cpp ソースファイル

CUxTheme.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 2007, ryoji
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032
00033 #include "stdafx.h"
00034 #include "CUxTheme.h"
00035
00036 CUxTheme CUxTheme::m_cUxTheme;  // Singleton
00037
00038 CUxTheme::CUxTheme()
00039  : m_bInitialized(false)
00040 {
00041 }
00042
00043 CUxTheme::~CUxTheme()
00044 {
00045 }
00046
00047
00056 bool CUxTheme::Init( char* str )
00057 {
00058     if( m_bInitialized )
00059         return IsAvailable();
00060
00061     m_bInitialized = true;
00062     return CDllHandler::Init( str );
00063 }
00064
00068 LPCTSTR CUxTheme::GetDllName( LPCTSTR )
00069 {
00070     return _T("UxTheme.dll");
00071 }
00072
00073 int CUxTheme::InitDll(void)
00074 {
00075     const ImportTable table[] = {
00076         { &m_pfnIsThemeActive,      "IsThemeActive" },
00077         { &m_pfnSetWindowTheme,     "SetWindowTheme" },
00078         { NULL, 0 }
00079     };
00080
00081     if( !RegisterEntries( table ) ){
00082         return 1;
00083     }
00084
00085     return 0;
00086 }
00087
00089 BOOL CUxTheme::IsThemeActive( VOID )
00090 {
00091     if( !Init() )
00092         return FALSE;
00093     return m_pfnIsThemeActive();
00094 }
00095
00097 HRESULT CUxTheme::SetWindowTheme( HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList )
00098 {
00099     if( !Init() )
00100         return S_FALSE;
00101     return m_pfnSetWindowTheme( hwnd, pszSubAppName, pszSubIdList );
00102 }
00103
00104 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CUxTheme.h

CUxTheme.h

UxTheme 動的ロード [詳細]

#include "CDllHandler.h"

CUxTheme.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CUxTheme
UxTheme 動的ロード [詳細]

説明

UxTheme 動的ロード

UxTheme (Windows thmeme manager) への動的アクセスクラス

作者:
ryoji
日付:
Apr. 1, 2007

CUxTheme.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CUxTheme.h ソースファイル

CUxTheme.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 2007, ryoji
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032
00033 #ifndef _SAKURA_UXTHEME_H_
00034 #define _SAKURA_UXTHEME_H_
00035
00036 #include "CDllHandler.h"
00037
00043 class SAKURA_CORE_API CUxTheme : public CDllHandler {
00044 protected:
00045     static CUxTheme m_cUxTheme; // Singleton
00046     CUxTheme();
00047
00048 public:
00049     virtual ~CUxTheme();
00050     static CUxTheme& getInstance( void ) { return m_cUxTheme; }
00051
00052 protected:
00053     bool m_bInitialized;
00054
00055     bool Init( char* str = NULL );
00056     virtual int InitDll( void );
00057     virtual LPCTSTR GetDllName( LPCTSTR );
00058
00059 protected:
00060     // UxTheme API Entry Points
00061     BOOL (WINAPI* m_pfnIsThemeActive)( VOID );
00062     HRESULT (WINAPI* m_pfnSetWindowTheme)( HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList );
00063
00064 public:
00065     // UxTheme API Wrapper Functions
00066     BOOL IsThemeActive( VOID );
00067     HRESULT SetWindowTheme( HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList );
00068 };
00069
00070 #endif
00071
00072
00073 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWaitCursor.cpp

CWaitCursor.cpp

砂時計カーソル [詳細]

#include "stdafx.h"
#include "CWaitCursor.h"

CWaitCursor.cppのインクルード依存関係図

ソースコードを見る。

説明

砂時計カーソル

作者:
Norio Nakatani

CWaitCursor.cpp で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWaitCursor.cpp ソースファイル

CWaitCursor.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008
00009     This source code is designed for sakura editor.
00010     Please contact the copyright holder to use this code for other purpose.
00011 */
00012
00013 #include "stdafx.h"
00014 #include "CWaitCursor.h"
00015
00019 CWaitCursor::CWaitCursor( HWND hWnd )
00020 {
00021     SetCapture( hWnd );
00022     m_hCursor = ::LoadCursor( NULL, IDC_WAIT );
00023     m_hCursorOld = ::SetCursor( m_hCursor );
00024     return;
00025 }
00026
00027
00028
00032 CWaitCursor::~CWaitCursor()
00033 {
00034     ReleaseCapture();
00035     ::SetCursor( m_hCursorOld );
00036     return;
00037 }
00038
00039
00040 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWaitCursor.h

CWaitCursor.h

砂時計カーソル [詳細]

#include <windows.h>

CWaitCursor.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class CWaitCursor
砂時計カーソルクラス [詳細]

説明

砂時計カーソル

作者:
Norio Nakatani

CWaitCursor.h で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWaitCursor.h ソースファイル

CWaitCursor.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, aroka
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 class CWaitCursor;
00015
00016 #ifndef _CWAITCURSOR_H_
00017 #define _CWAITCURSOR_H_
00018
00019
00020 #include <windows.h>
00021
00022
00023 /*-----------------------------------------------------------------------
00024 クラスの宣言
00025 -----------------------------------------------------------------------*/
00027
00031 class CWaitCursor
00032 {
00033 public:
00034     /*
00035     ||  Constructors
00036     */
00037     CWaitCursor( HWND );
00038     ~CWaitCursor();
00039 private: // 2002/2/10 aroka
00040     HCURSOR m_hCursor;
00041     HCURSOR m_hCursorOld;
00042
00043 };
00044
00045
00047 #endif /* _CWAITCURSOR_H_ */
00048
00049
00050 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWnd.cpp

CWnd.cpp

ウィンドウの基本クラス [詳細]

#include "stdafx.h"
#include "CWnd.h"

CWnd.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | WM_MOUSEWHEEL 0x020A
#define | CALLH(message, method) case message: return method( hwnd, msg, wp, lp )

関数

LRESULT CALLBACK | CWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

変数

CWnd * | gm_pCWnd = NULL

説明

ウィンドウの基本クラス

作者:
Norio Nakatani
日付:
2000/01/11 新規作成

CWnd.cpp で定義されています。

マクロ定義

#define CALLH | ( | message,
 |  | method | ) | case message: return method( hwnd, msg, wp, lp )

参照元 CWnd::DispatchEvent().

#define WM_MOUSEWHEEL 0x020A

CWnd.cpp の 23 行で定義されています。

関数

LRESULT CALLBACK CWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CWnd.cpp の 28 行で定義されています。

参照先 CWnd::DispatchEvent()・GetWindowLongPtr・gm_pCWnd・GWLP_USERDATA・LONG_PTR・CWnd::m_hWnd・NULL・SetWindowLongPtr.

参照元 CWnd::RegisterWC().

変数

CWnd* gm_pCWnd = NULL

CWnd.cpp の 19 行で定義されています。

参照元 CWnd::Create()・CWndProc().

Sakura-Editorに対してSat Oct 27 02:22:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWnd.cpp ソースファイル

CWnd.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2001, Norio Nakatani
00009     Copyright (C) 2000, genta
00010     Copyright (C) 2003, MIK, KEITA
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016 #include "stdafx.h"
00017 #include "CWnd.h"
00018
00019 CWnd* gm_pCWnd = NULL;
00020
00021
00022 #ifndef WM_MOUSEWHEEL
00023     #define WM_MOUSEWHEEL   0x020A
00024 #endif
00025
00026
00027 /* CWndウィンドウメッセージのコールバック関数 */
00028 LRESULT CALLBACK CWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
00029 {
00030     CWnd* pCWnd;
00031 //  CREATESTRUCT* lpcs;
00032     if( NULL != gm_pCWnd
00033      && NULL == ::GetWindowLongPtr( hwnd, GWLP_USERDATA ) // Modified by KEITA for WIN64 2003.9.6
00034     ){
00035         pCWnd = gm_pCWnd;
00036         /* クラスオブジェクトのポインタを拡張ウィンドウメモリに格納しておく */
00037         // Modified by KEITA for WIN64 2003.9.6
00038 		::SetWindowLongPtr( hwnd, GWLP_USERDATA, (LONG_PTR)pCWnd );
00039         pCWnd->m_hWnd = hwnd;
00040         gm_pCWnd = NULL;
00041     }else{
00042         /* クラスオブジェクトのポインタを拡張ウィンドウメモリから取り出す */
00043         // Modified by KEITA for WIN64 2003.9.6
00044         pCWnd = (CWnd*)::GetWindowLongPtr( hwnd, GWLP_USERDATA );
00045     }
00046     if( NULL != pCWnd ){
00047         /* クラスオブジェクトのポインタを使ってメッセージを配送する */
00048         return pCWnd->DispatchEvent( hwnd, uMsg, wParam, lParam );
00049     }else{
00050         /* ふつうはここには来ない */
00051         return ::DefWindowProc( hwnd, uMsg, wParam, lParam );
00052     }
00053 }
00054
00055
00056 CWnd::CWnd()
00057 {
00058     strcpy( m_szClassInheritances, "CWnd" );
00059     m_hInstance = NULL; /* アプリケーションインスタンスのハンドル */
00060     m_hwndParent = NULL;    /* オーナーウィンドウのハンドル */
00061     m_hWnd = NULL;          /* このウィンドウのハンドル */
00062     return;
00063 }
00064
00065 CWnd::~CWnd()
00066 {
00067     if( ::IsWindow( m_hWnd ) ){
00068         /* クラスオブジェクトのポインタをNULLにして拡張ウィンドウメモリに格納しておく */
00069         // Modified by KEITA for WIN64 2003.9.6
00070 		::SetWindowLongPtr( m_hWnd, GWLP_USERDATA, (LONG_PTR)NULL );
00071         ::DestroyWindow( m_hWnd );
00072     }
00073     m_hWnd = NULL;
00074     return;
00075 }
00076
00077
00078 /* 初期化 */
00079 void CWnd::Init(
00080     HINSTANCE   hInstance,      // handle to application instance
00081     HWND        hwndParent // handle to parent or owner window
00082 )
00083 {
00084     m_hInstance = hInstance;
00085     m_hwndParent = hwndParent;
00086     return;
00087 }
00088
00089
00090 /* ウィンドウクラス作成 */
00091 ATOM CWnd::RegisterWC(
00092     /* WNDCLASS用 */
00093     HICON       hIcon,          // Handle to the class icon.
00094     HICON       hIconSm,        // Handle to a small icon
00095     HCURSOR     hCursor,        // Handle to the class cursor.
00096     HBRUSH      hbrBackground,  // Handle to the class background brush.
00097     LPCTSTR     lpszMenuName,   // Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file.
00098     LPCTSTR     lpszClassName   // Pointer to a null-terminated string or is an atom.
00099 )
00100 {
00101     /* ウィンドウクラスの登録 */
00102     WNDCLASSEX wc;
00103     wc.cbSize = sizeof(WNDCLASSEX);
00104     //  Apr. 27, 2000 genta
00105     //  サイズ変更時のちらつきを抑えるためCS_HREDRAW | CS_VREDRAW を外した
00106     wc.style = CS_DBLCLKS;
00107     wc.lpfnWndProc = CWndProc;
00108     wc.cbClsExtra = 0;
00109     wc.cbWndExtra = 32;
00110     wc.hInstance = m_hInstance;
00111     wc.hIcon = hIcon;
00112     wc.hCursor = hCursor;
00113     wc.hbrBackground = hbrBackground;
00114     wc.lpszMenuName = lpszMenuName;
00115     wc.lpszClassName = lpszClassName;
00116     wc.hIconSm = hIconSm;
00117     return ::RegisterClassEx( &wc );
00118 }
00119
00120 /* 作成 */
00121 HWND CWnd::Create(
00122     /* CreateWindowEx()用 */
00123     DWORD       dwExStyle, // extended window style
00124     LPCTSTR     lpszClassName,  // Pointer to a null-terminated string or is an atom.
00125     LPCTSTR     lpWindowName, // pointer to window name
00126     DWORD       dwStyle, // window style
00127     int         x, // horizontal position of window
00128     int         y, // vertical position of window
00129     int         nWidth, // window width
00130     int         nHeight, // window height
00131     HMENU       hMenu // handle to menu, or child-window identifier
00132 )
00133 {
00134     /* ウィンドウ作成前の処理(クラス登録前) ( virtual )*/
00135     PreviCreateWindow();
00136
00137     /* 初期ウィンドウサイズ */
00138     /* ウィンドウの作成 */
00139     gm_pCWnd = this;
00140     m_hWnd = ::CreateWindowEx(
00141         dwExStyle, // extended window style
00142         lpszClassName, // pointer to registered class name
00143         lpWindowName, // pointer to window name
00144         dwStyle, // window style
00145         x, // horizontal position of window
00146         y, // vertical position of window
00147         nWidth, // window width
00148         nHeight, // window height
00149         m_hwndParent, // handle to parent or owner window
00150         hMenu, // handle to menu, or child-window identifier
00151         m_hInstance, // handle to application instance
00152         (LPVOID)this    // pointer to window-creation data
00153     );
00154     if( NULL == m_hWnd ){
00155         ::MessageBox( m_hwndParent, "CWnd::Create()\n\n::CreateWindowEx failed.", "error", MB_OK );
00156         return NULL;
00157     }
00158
00159     /* ウィンドウ作成後の処理 */
00160     AfterCreateWindow();
00161     return m_hWnd;
00162 }
00163
00164
00165 /* メッセージ配送 */
00166 LRESULT CWnd::DispatchEvent( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
00167 {
00168     #define CALLH(message, method) case message: return method( hwnd, msg, wp, lp )
00169     switch( msg ){
00170     CALLH( WM_CREATE            , OnCreate          );
00171     CALLH( WM_CLOSE             , OnClose           );
00172     CALLH( WM_DESTROY           , OnDestroy         );
00173     CALLH( WM_SIZE              , OnSize            );
00174     CALLH( WM_MOVE              , OnMove            );
00175     CALLH( WM_COMMAND           , OnCommand         );
00176     CALLH( WM_LBUTTONDOWN       , OnLButtonDown     );
00177     CALLH( WM_LBUTTONUP         , OnLButtonUp       );
00178     CALLH( WM_LBUTTONDBLCLK     , OnLButtonDblClk   );
00179     CALLH( WM_RBUTTONDOWN       , OnRButtonDown     );
00180     CALLH( WM_RBUTTONUP         , OnRButtonUp       );
00181     CALLH( WM_RBUTTONDBLCLK     , OnRButtonDblClk   );
00182     CALLH( WM_MBUTTONDOWN       , OnMButtonDown     );
00183     CALLH( WM_MBUTTONUP         , OnMButtonUp       );
00184     CALLH( WM_MBUTTONDBLCLK     , OnMButtonDblClk   );
00185     CALLH( WM_MOUSEMOVE         , OnMouseMove       );
00186     CALLH( WM_MOUSEWHEEL        , OnMouseWheel      );
00187     CALLH( WM_PAINT             , OnPaint           );
00188     CALLH( WM_TIMER             , OnTimer           );
00189     CALLH( WM_QUERYENDSESSION   , OnQueryEndSession );
00190
00191     CALLH( WM_MEASUREITEM       , OnMeasureItem     );
00192     CALLH( WM_MENUCHAR          , OnMenuChar        );
00193     CALLH( WM_NOTIFY            , OnNotify          );  //@@@ 2003.05.31 MIK
00194     CALLH( WM_DRAWITEM          , OnDrawItem        );  // 2006.02.01 ryoji
00195     CALLH( WM_CAPTURECHANGED    , OnCaptureChanged  );  // 2006.11.30 ryoji
00196
00197 //  CALLH( WM_NCCREATE          , OnNcCreate        );
00198     CALLH( WM_NCDESTROY         , OnNcDestroy       );
00199 //  CALLH( WM_NCCALCSIZE        , OnNcCalcSize      );
00200 //  CALLH( WM_NCHITTEST         , OnNcHitTest       );
00201 //  CALLH( WM_NCPAINT           , OnNcPaint         );
00202 //  CALLH( WM_NCACTIVATE        , OnNcActivate      );
00203 //  CALLH( WM_NCMOUSEMOVE       , OnNcMouseMove     );
00204 //  CALLH( WM_NCLBUTTONDOWN     , OnNcLButtonDown   );
00205 //  CALLH( WM_NCLBUTTONUP       , OnNcLButtonUp     );
00206 //  CALLH( WM_NCLBUTTONDBLCLK   , OnNcLButtonDblClk );
00207 //  CALLH( WM_NCRBUTTONDOWN     , OnNcRButtonDown   );
00208 //  CALLH( WM_NCRBUTTONUP       , OnNcRButtonUp     );
00209 //  CALLH( WM_NCRBUTTONDBLCLK   , OnNcRButtonDblClk );
00210 //  CALLH( WM_NCMBUTTONDOWN     , OnNcMButtonDown   );
00211 //  CALLH( WM_NCMBUTTONUP       , OnNcMButtonUp     );
00212 //  CALLH( WM_NCMBUTTONDBLCLK   , OnNcMButtonDblClk );
00213
00214
00215     /* MDI用 */
00216     CALLH( WM_MDIACTIVATE       , OnMDIActivate     );
00217 //  CALLH( WM_MDICASCADE        , OnMDICascade      );
00218 //  CALLH( WM_MDICREATE         , OnMDICreate       );
00219 //  CALLH( WM_MDIDESTROY        , OnMDIDestroy      );
00220 //  CALLH( WM_MDIGETACTIVE      , OnMDIGetActive    );
00221 //  CALLH( WM_MDIICONARRANGE    , OnMDIIconArrange  );
00222 //  CALLH( WM_MDIMAXIMIZE       , OnMDIMaximize     );
00223 //  CALLH( WM_MDINEXT           , OnMDINext         );
00224 //  CALLH( WM_MDIREFRESHMENU    , OnMDIRefreshMenu  );
00225 //  CALLH( WM_MDIRESTORE        , OnMDIRestore      );
00226 //  CALLH( WM_MDISETMENU        , OnMDISetMenu      );
00227 //  CALLH( WM_MDITILE           , OnMDITile         );
00228     default:
00229         if( WM_APP <= msg && msg <= 0xBFFF ){
00230             /* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
00231             return DispatchEvent_WM_APP( hwnd, msg, wp, lp );
00232         }
00233         break;  /* default */
00234     }
00235     return CallDefWndProc( hwnd, msg, wp, lp );
00236 }
00237
00238 /* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
00239 LRESULT CWnd::DispatchEvent_WM_APP( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
00240 {
00241     return CallDefWndProc( hwnd, msg, wp, lp );
00242 }
00243
00244
00245
00246 // WM_NCDESTROY
00247 LRESULT CWnd::OnNcDestroy( HWND, UINT, WPARAM, LPARAM )
00248 {
00249     m_hWnd = NULL;
00250     return 0L;
00251 }
00252
00253 /* デフォルトメッセージ処理 */
00254 LRESULT CWnd::CallDefWndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
00255 {
00256     return ::DefWindowProc( hwnd, msg, wp, lp );
00257 }
00258
00259
00260 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWnd.h

CWnd.h

ウィンドウの基本クラス [詳細]

#include <windows.h>
#include "global.h"

CWnd.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CWnd
ウィンドウの基本クラス [詳細]

マクロ定義

#define | DECLH(method) LRESULT method( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ){return CallDefWndProc( hwnd, msg, wp, lp );}

変数

CWnd * gm_pCWnd

説明

ウィンドウの基本クラス

作者:
Norio Nakatani
日付:
2000/01/11 新規作成

CWnd.h で定義されています。

マクロ定義

#define DECLH ( method ) LRESULT method( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ){return CallDefWndProc( hwnd, msg, wp, lp );}

CWnd.h の 69 行で定義されています。

変数

CWnd* gm_pCWnd

CWnd.cpp の 19 行で定義されています。

参照元 CWnd::Create()・CWndProc().

Sakura-Editorに対してSat Oct 27 02:22:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWnd.h ソースファイル

CWnd.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2000-2001, Norio Nakatani
00009     Copyright (C) 2002, aroka
00010     Copyright (C) 2003, MIK
00011     Copyright (C) 2006, ryoji
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016 class CWnd;
00017
00018 #ifndef _CWND_H_
00019 #define _CWND_H_
00020
00021 #include <windows.h>
00022 #include "global.h"
00023 extern CWnd* gm_pCWnd;
00024
00025 /*-----------------------------------------------------------------------
00026 クラスの宣言
00027 -----------------------------------------------------------------------*/
00029
00039 class SAKURA_CORE_API CWnd
00040 {
00041 public:
00042     /* Constructors */
00043     CWnd();
00044     virtual ~CWnd();
00045     /*
00046     ||  Attributes & Operations
00047     */
00048 protected: // 2002/2/10 aroka アクセス権変更
00049     char        m_szClassInheritances[1024];
00050     HINSTANCE   m_hInstance;    /* アプリケーションインスタンスのハンドル */
00051     HWND        m_hwndParent;   /* オーナーウィンドウのハンドル */
00052 public:
00053     HWND        m_hWnd;         /* このダイアログのハンドル */
00054
00055     void Init( HINSTANCE, HWND );/* 初期化 */
00056     ATOM RegisterWC( HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR );/* ウィンドウクラス作成 */
00057     HWND Create( DWORD, LPCTSTR, LPCTSTR, DWORD, int,  int, int, int, HMENU );/* 作成 */
00058     virtual LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM );/* メッセージ配送 */
00059 protected:
00060     /* 仮想関数 */
00061     virtual LRESULT DispatchEvent_WM_APP( HWND, UINT, WPARAM, LPARAM );/* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
00062     virtual void PreviCreateWindow( void ){return;};/* ウィンドウ作成前の処理(クラス登録前) ( virtual )*/
00063     virtual void AfterCreateWindow( void ){::ShowWindow( m_hWnd, SW_SHOW );}/* ウィンドウ作成後の処理 ( virtual )*/
00064
00065     /* 仮想関数 メッセージ処理 詳しくは実装を参照 */
00066     virtual LRESULT OnNcDestroy( HWND, UINT, WPARAM, LPARAM );// WM_NCDESTROY
00067
00068     /* 仮想関数 メッセージ処理(デフォルト動作) */
00069     #define DECLH(method) LRESULT method( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ){return CallDefWndProc( hwnd, msg, wp, lp );}
00070     virtual DECLH( OnCreate         );  // WM_CREATE
00071     virtual DECLH( OnCommand        );  // WM_COMMAND
00072     virtual DECLH( OnPaint          );  // WM_PAINT
00073     virtual DECLH( OnLButtonDown    );  // WM_LBUTTONDOWN
00074     virtual DECLH( OnLButtonUp      );  // WM_LBUTTONUP
00075     virtual DECLH( OnLButtonDblClk  );  // WM_LBUTTONDBLCLK
00076     virtual DECLH( OnRButtonDown    );  // WM_RBUTTONDOWN
00077     virtual DECLH( OnRButtonUp      );  // WM_RBUTTONUP
00078     virtual DECLH( OnRButtonDblClk  );  // WM_RBUTTONDBLCLK
00079     virtual DECLH( OnMButtonDown    );  // WM_MBUTTONDOWN
00080     virtual DECLH( OnMButtonUp      );  // WM_MBUTTONUP
00081     virtual DECLH( OnMButtonDblClk  );  // WM_MBUTTONDBLCLK
00082     virtual DECLH( OnMouseMove      );  // WM_MOUSEMOVE
00083     virtual DECLH( OnMouseWheel     );  // WM_MOUSEWHEEL
00084     virtual DECLH( OnTimer          );  // WM_TIMER
00085     virtual DECLH( OnSize           );  // WM_SIZE
00086     virtual DECLH( OnMove           );  // WM_MOVE
00087     virtual DECLH( OnClose          );  // WM_CLOSE
00088     virtual DECLH( OnDestroy        );  // WM_DSESTROY
00089     virtual DECLH( OnQueryEndSession);  // WM_QUERYENDSESSION
00090
00091     virtual DECLH( OnMeasureItem    );  // WM_MEASUREITEM
00092     virtual DECLH( OnMenuChar       );  // WM_MENUCHAR
00093     virtual DECLH( OnNotify         );  // WM_NOTIFY    //@@@ 2003.05.31 MIK
00094     virtual DECLH( OnDrawItem       );  // WM_DRAWITEM  // 2006.02.01 ryoji
00095     virtual DECLH( OnCaptureChanged );  // WM_CAPTURECHANGED    // 2006.11.30 ryoji
00096
00097 //  virtual DECLH( OnNcCreate           );  // WM_NCCREATE
00098 //  virtual DECLH( OnNcCalcSize         );  // WM_NCCALCSIZE
00099 //  virtual DECLH( OnNcHitTest          );  // WM_NCHITTEST
00100 //  virtual DECLH( OnNcPaint            );  // WM_NCPAINT
00101 //  virtual DECLH( OnNcActivate         );  // WM_NCACTIVATE
00102 //  virtual DECLH( OnNcMouseMove        );  // WM_NCMOUSEMOVE
00103 //  virtual DECLH( OnNcLButtonDown      );  // WM_NCLBUTTONDOWN
00104 //  virtual DECLH( OnNcLButtonUp        );  // WM_NCLBUTTONUP
00105 //  virtual DECLH( OnNcLButtonDblClk    );  // WM_NCLBUTTONDBLCLK
00106 //  virtual DECLH( OnNcRButtonDown      );  // WM_NCRBUTTONDOWN
00107 //  virtual DECLH( OnNcRButtonUp        );  // WM_NCRBUTTONUP
00108 //  virtual DECLH( OnNcRButtonDblClk    );  // WM_NCRBUTTONDBLCLK
00109 //  virtual DECLH( OnNcMButtonDown      );  // WM_NCMBUTTONDOWN
00110 //  virtual DECLH( OnNcMButtonUp        );  // WM_NCMBUTTONUP
00111 //  virtual DECLH( OnNcMButtonDblClk    );  // WM_NCMBUTTONDBLCLK
00112
00113
00114     /* MDI用 */
00115     virtual DECLH( OnMDIActivate    );  // WM_MDIACTIVATE
00116 //  virtual DECLH( OnMDICascade     );  // WM_MDICASCADE
00117 //  virtual DECLH( OnMDICreate      );  // WM_MDICREATE
00118 //  virtual DECLH( OnMDIDestroy     );  // WM_MDIDESTROY
00119 //  virtual DECLH( OnMDIGetActive   );  // WM_MDIGETACTIVE
00120 //  virtual DECLH( OnMDIIconArrange );  // WM_MDIICONARRANGE
00121 //  virtual DECLH( OnMDIMaximize    );  // WM_MDIMAXIMIZE
00122 //  virtual DECLH( OnMDINext        );  // WM_MDINEXT
00123 //  virtual DECLH( OnMDIRefreshMenu );  // WM_MDIREFRESHMENU
00124 //  virtual DECLH( OnMDIRestore     );  // WM_MDIRESTORE
00125 //  virtual DECLH( OnMDISetMenu     );  // WM_MDISETMENU
00126 //  virtual DECLH( OnMDITile        );  // WM_MDITILE
00127
00128
00129     /* デフォルトメッセージ処理 */
00130     virtual LRESULT CallDefWndProc( HWND, UINT, WPARAM, LPARAM );
00131
00132 };
00133
00135 #endif /* _CWND_H_ */
00136
00137
00138 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWSH.cpp

CWSH.cpp

WSH Handler [詳細]

#include "stdafx.h"
#include "CWSH.h"
#include "CWSHManager.h"
#include "CMacroFactory.h"
#include "CMacro.h"
#include "CSMacroMgr.h"
#include "CEditView.h"
#include "CEditDoc.h"
#include "etc_uty.h"
#include "OleTypes.h"

CWSH.cppのインクルード依存関係図

ソースコードを見る。

構成

class | CInterfaceObjectTypeInfo
class | CWSHSite

関数

static HRESULT | MacroCommand (int ID, DISPPARAMS *Arguments, VARIANT *Result, void *Data)
static void | MacroError (BSTR Description, BSTR Source, void *Data)

説明

WSH Handler

作者:
鬼
日付:
2002年4月28日

CWSH.cpp で定義されています。

関数

static HRESULT MacroCommand | ( | int | ID,
 |  | DISPPARAMS * | Arguments,
 |  | VARIANT * | Result,
 |  | void * | Data
 | ) | [static]

マクロコマンドの実行

日付:
2005.06.27 zenryaku 戻り値の受け取りが無くてもエラーにせずに関数を実行する

CWSH.cpp の 594 行で定義されています。

参照先 Variant::Data・F_FUNCTION_FIRST・CMacro::HandleFunction()・NULL・Wrap().

参照元 CWSHMacroManager::ReadyCommands().

static void MacroError | ( | BSTR | Description,
 |  | BSTR | Source,
 |  | void * | Data
 | ) | [static]

CWSH.cpp の 641 行で定義されています。

参照先 CEditView::m_hWnd・NULL.

参照元 CWSHMacroManager::ExecKeyMacro().

Sakura-Editorに対してSat Oct 27 02:22:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWSH.cpp ソースファイル

CWSH.cpp

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, 鬼, genta
00009     Copyright (C) 2003, FILE
00010     Copyright (C) 2004, genta
00011     Copyright (C) 2005, FILE, zenryaku
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015
00016 */
00017
00018 #include "stdafx.h"
00019 #include "CWSH.h"
00020 #include "CWSHManager.h"
00021 #include "CMacroFactory.h"
00022 #include "CMacro.h"
00023 #include "CSMacroMgr.h"
00024 #include "CEditView.h"
00025 #include "CEditDoc.h"
00026 #include "etc_uty.h"
00027 #include "OleTypes.h"
00028
00029 //スクリプトに渡されるオブジェクトの情報
00030 class CInterfaceObjectTypeInfo: public ImplementsIUnknown<ITypeInfo>
00031 {
00032 private:
00033     CInterfaceObject *m_Object;
00034     TYPEATTR m_TypeAttr;
00035 public:
00036     CInterfaceObjectTypeInfo(CInterfaceObject *AObject);
00037
00038     virtual HRESULT STDMETHODCALLTYPE GetTypeAttr(
00039                     /* [out] */ TYPEATTR __RPC_FAR *__RPC_FAR *ppTypeAttr)
00040     {
00041 #ifdef TEST
00042         cout << "GetTypeAttr" << endl;
00043 #endif
00044         *ppTypeAttr = &m_TypeAttr;
00045         return S_OK;
00046     }
00047
00048     virtual HRESULT STDMETHODCALLTYPE GetTypeComp(
00049                     /* [out] */ ITypeComp __RPC_FAR *__RPC_FAR *ppTComp)
00050     {
00051 #ifdef TEST
00052         cout << "GetTypeComp" << endl;
00053 #endif
00054         return E_NOTIMPL;
00055     }
00056
00057     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetFuncDesc(
00058                 /* [in] */ UINT index,
00059                 /* [out] */ FUNCDESC __RPC_FAR *__RPC_FAR *ppFuncDesc);
00060
00061     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetVarDesc(
00062         /* [in] */ UINT index,
00063         /* [out] */ VARDESC __RPC_FAR *__RPC_FAR *ppVarDesc)
00064     {
00065         return E_NOTIMPL;
00066     }
00067
00068     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetNames(
00069         /* [in] */ MEMBERID memid,
00070         /* [length_is][size_is][out] */ BSTR __RPC_FAR *rgBstrNames,
00071         /* [in] */ UINT cMaxNames,
00072         /* [out] */ UINT __RPC_FAR *pcNames);
00073
00074     virtual HRESULT STDMETHODCALLTYPE GetRefTypeOfImplType(
00075         /* [in] */ UINT index,
00076         /* [out] */ HREFTYPE __RPC_FAR *pRefType)
00077     {
00078         return E_NOTIMPL;
00079     }
00080
00081     virtual HRESULT STDMETHODCALLTYPE GetImplTypeFlags(
00082         /* [in] */ UINT index,
00083         /* [out] */ INT __RPC_FAR *pImplTypeFlags)
00084     {
00085         return E_NOTIMPL;
00086     }
00087
00088     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetIDsOfNames(
00089         /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
00090         /* [in] */ UINT cNames,
00091         /* [size_is][out] */ MEMBERID __RPC_FAR *pMemId)
00092     {
00093         return E_NOTIMPL;
00094     }
00095
00096     virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke(
00097         /* [in] */ PVOID pvInstance,
00098         /* [in] */ MEMBERID memid,
00099         /* [in] */ WORD wFlags,
00100         /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
00101         /* [out] */ VARIANT __RPC_FAR *pVarResult,
00102         /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
00103         /* [out] */ UINT __RPC_FAR *puArgErr)
00104     {
00105         return E_NOTIMPL;
00106     }
00107
00108     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation(
00109         /* [in] */ MEMBERID memid,
00110         /* [out] */ BSTR __RPC_FAR *pBstrName,
00111         /* [out] */ BSTR __RPC_FAR *pBstrDocString,
00112         /* [out] */ DWORD __RPC_FAR *pdwHelpContext,
00113         /* [out] */ BSTR __RPC_FAR *pBstrHelpFile)
00114     {
00115         //  Feb. 08, 2004 genta
00116         //  とりあえず全部NULLを返す (情報無し)
00117         pBstrName = NULL;
00118         pBstrDocString = NULL;
00119         pdwHelpContext = NULL;
00120         pBstrHelpFile = NULL;
00121         return S_OK ;
00122     }
00123
00124     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDllEntry(
00125         /* [in] */ MEMBERID memid,
00126         /* [in] */ INVOKEKIND invKind,
00127         /* [out] */ BSTR __RPC_FAR *pBstrDllName,
00128         /* [out] */ BSTR __RPC_FAR *pBstrName,
00129         /* [out] */ WORD __RPC_FAR *pwOrdinal)
00130     {
00131         return E_NOTIMPL;
00132     }
00133
00134     virtual HRESULT STDMETHODCALLTYPE GetRefTypeInfo(
00135         /* [in] */ HREFTYPE hRefType,
00136         /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo)
00137     {
00138         return E_NOTIMPL;
00139     }
00140
00141     virtual /* [local] */ HRESULT STDMETHODCALLTYPE AddressOfMember(
00142         /* [in] */ MEMBERID memid,
00143         /* [in] */ INVOKEKIND invKind,
00144         /* [out] */ PVOID __RPC_FAR *ppv)
00145     {
00146         return E_NOTIMPL;
00147     }
00148
00149     virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateInstance(
00150         /* [in] */ IUnknown __RPC_FAR *pUnkOuter,
00151         /* [in] */ REFIID riid,
00152         /* [iid_is][out] */ PVOID __RPC_FAR *ppvObj)
00153     {
00154         return E_NOTIMPL;
00155     }
00156
00157     virtual HRESULT STDMETHODCALLTYPE GetMops(
00158         /* [in] */ MEMBERID memid,
00159         /* [out] */ BSTR __RPC_FAR *pBstrMops)
00160     {
00161         return E_NOTIMPL;
00162     }
00163
00164     virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetContainingTypeLib(
00165         /* [out] */ ITypeLib __RPC_FAR *__RPC_FAR *ppTLib,
00166         /* [out] */ UINT __RPC_FAR *pIndex)
00167     {
00168         return E_NOTIMPL;
00169     }
00170
00171     virtual /* [local] */ void STDMETHODCALLTYPE ReleaseTypeAttr(
00172                     /* [in] */ TYPEATTR __RPC_FAR *pTypeAttr)
00173     {
00174     }
00175
00176     virtual /* [local] */ void STDMETHODCALLTYPE ReleaseFuncDesc(
00177                     /* [in] */ FUNCDESC __RPC_FAR *pFuncDesc)
00178     {
00179     }
00180
00181     virtual /* [local] */ void STDMETHODCALLTYPE ReleaseVarDesc(
00182                 /* [in] */ VARDESC __RPC_FAR *pVarDesc)
00183     {
00184     }
00185 };
00186
00187 //IActiveScriptSite, IActiveScriptSiteWindow
00192 class CWSHSite: public IActiveScriptSite, public IActiveScriptSiteWindow
00193 {
00194 private:
00195     CWSHClient *m_Client;
00196     ITypeInfo *m_TypeInfo;
00197     ULONG m_RefCount;
00198 public:
00199     CWSHSite(CWSHClient *AClient): m_RefCount(0), m_Client(AClient)
00200     {
00201     }
00202
00203     virtual ULONG _stdcall AddRef() {
00204         return ++m_RefCount;
00205     }
00206
00207     virtual ULONG _stdcall Release() {
00208         if(--m_RefCount == 0)
00209         {
00210             delete this;
00211             return 0;
00212         }
00213         return m_RefCount;
00214     }
00215
00216     virtual HRESULT STDMETHODCALLTYPE QueryInterface(
00217         /* [in] */ REFIID iid,
00218         /* [out] */ void ** ppvObject)
00219     {
00220         *ppvObject = NULL;
00221
00222         if(iid == IID_IActiveScriptSiteWindow){
00223             *ppvObject = static_cast<IActiveScriptSiteWindow*>(this);
00224             ++m_RefCount;
00225             return S_OK;
00226         }
00227
00228         return E_NOTIMPL;
00229     }
00230
00231     virtual HRESULT STDMETHODCALLTYPE GetLCID(
00232         /* [out] */ LCID *plcid)
00233     {
00234 #ifdef TEST
00235         cout << "GetLCID" << endl;
00236 #endif
00237         return E_NOTIMPL; //システムデフォルトを使用
00238     };
00239
00240     virtual HRESULT STDMETHODCALLTYPE GetItemInfo(
00241         /* [in] */ LPCOLESTR pstrName,
00242         /* [in] */ DWORD dwReturnMask,
00243         /* [out] */ IUnknown **ppiunkItem,
00244         /* [out] */ ITypeInfo **ppti)
00245     {
00246 #ifdef TEST
00247         wcout << L"GetItemInfo:" << pstrName << endl;
00248 #endif
00249         //  Nov. 10, 2003 FILE Win9Xでは、[lstrcmpiW]が無効のため、[_wcsicmp]に修正
00250         if(_wcsicmp(pstrName, L"Editor") == 0)
00251         {
00252             if(dwReturnMask & SCRIPTINFO_IUNKNOWN)
00253             {
00254                 (*ppiunkItem) = m_Client->m_InterfaceObject;
00255                 (*ppiunkItem)->AddRef();
00256             }
00257             if(dwReturnMask & SCRIPTINFO_ITYPEINFO)
00258             {
00259                 m_Client->m_InterfaceObject->GetTypeInfo(0, 0, ppti);
00260             }
00261             return S_OK;
00262         }
00263         return TYPE_E_ELEMENTNOTFOUND;
00264     };
00265
00266     virtual HRESULT STDMETHODCALLTYPE GetDocVersionString(
00267         /* [out] */ BSTR *pbstrVersion)
00268     {
00269 #ifdef TEST
00270         cout << "GetDocVersionString" << endl;
00271 #endif
00272         return E_NOTIMPL;
00273     };
00274
00275     virtual HRESULT STDMETHODCALLTYPE OnScriptTerminate(
00276         /* [in] */ const VARIANT *pvarResult,
00277         /* [in] */ const EXCEPINFO *pexcepinfo)
00278     {
00279 #ifdef TEST
00280         cout << "OnScriptTerminate" << endl;
00281 #endif
00282         return S_OK;
00283     };
00284
00285     virtual HRESULT STDMETHODCALLTYPE OnStateChange(
00286         /* [in] */ SCRIPTSTATE ssScriptState)
00287     {
00288 #ifdef TEST
00289         cout << "OnStateChange" << endl;
00290 #endif
00291         return S_OK;
00292     };
00293
00294     //  Nov. 3, 2002 鬼
00295     //  エラー行番号表示対応
00296     virtual HRESULT STDMETHODCALLTYPE OnScriptError(
00297       /* [in] */ IActiveScriptError *pscripterror)
00298     {
00299         EXCEPINFO Info;
00300         if(pscripterror->GetExceptionInfo(&Info) == S_OK)
00301         {
00302             DWORD Context;
00303             ULONG Line;
00304             LONG Pos;
00305             if(pscripterror->GetSourcePosition(&Context, &Line, &Pos) == S_OK)
00306             {
00307                 wchar_t *Message = new wchar_t[SysStringLen(Info.bstrDescription) + 128];
00308                 //  Nov. 10, 2003 FILE Win9Xでは、[wsprintfW]が無効のため、[swprintf]に修正
00309                 swprintf(Message, L"[Line %d] %ls", Line + 1, Info.bstrDescription);
00310                 SysReAllocString(&Info.bstrDescription, Message);
00311                 delete[] Message;
00312             }
00313             m_Client->Error(Info.bstrDescription, Info.bstrSource);
00314             SysFreeString(Info.bstrSource);
00315             SysFreeString(Info.bstrDescription);
00316             SysFreeString(Info.bstrHelpFile);
00317         }
00318         return S_OK;
00319     };
00320
00321     virtual HRESULT STDMETHODCALLTYPE OnEnterScript() {
00322 #ifdef TEST
00323         cout << "OnEnterScript" << endl;
00324 #endif
00325         return S_OK;
00326     };
00327
00328     virtual HRESULT STDMETHODCALLTYPE OnLeaveScript() {
00329 #ifdef TEST
00330         cout << "OnLeaveScript" << endl;
00331 #endif
00332         return S_OK;
00333     };
00334
00335     //  Sep. 15, 2005 FILE IActiveScriptSiteWindow実装
00336     virtual HRESULT __stdcall GetWindow(
00337         /* [out] */ HWND *phwnd)
00338     {
00339         *phwnd = reinterpret_cast<CEditView*>(m_Client->m_Data)->m_pcEditDoc->m_hWnd;
00340         return S_OK;
00341     }
00342
00343     //  Sep. 15, 2005 FILE IActiveScriptSiteWindow実装
00344     virtual HRESULT __stdcall EnableModeless(
00345         /* [in] */ BOOL fEnable)
00346     {
00347         return S_OK;
00348     };
00349 };
00350
00351 //implementation
00352
00353 CInterfaceObjectTypeInfo::CInterfaceObjectTypeInfo(CInterfaceObject *AObject)
00354                 : ImplementsIUnknown<ITypeInfo>(), m_Object(AObject)
00355 {
00356     ZeroMemory(&m_TypeAttr, sizeof(TYPEATTR));
00357     m_TypeAttr.cImplTypes = 0; //親クラスのITypeInfoの数
00358     m_TypeAttr.cFuncs = m_Object->m_Methods.size();
00359 }
00360
00361 HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetFuncDesc(
00362             /* [in] */ UINT index,
00363             /* [out] */ FUNCDESC __RPC_FAR *__RPC_FAR *ppFuncDesc)
00364 {
00365 #ifdef TEST
00366     cout << "GetFuncDesc" << endl;
00367 #endif
00368     *ppFuncDesc = &(m_Object->m_Methods[index].Desc);
00369     return S_OK;
00370 }
00371
00372 HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetNames(
00373     /* [in] */ MEMBERID memid,
00374     /* [length_is][size_is][out] */ BSTR __RPC_FAR *rgBstrNames,
00375     /* [in] */ UINT cMaxNames,
00376     /* [out] */ UINT __RPC_FAR *pcNames)
00377 {
00378 #ifdef TEST
00379         cout << "GetNames" << endl;
00380 #endif
00381     *pcNames = 1;
00382     if(cMaxNames > 0)
00383         *rgBstrNames = SysAllocString(m_Object->m_Methods[memid].Name);
00384     return S_OK;
00385 }
00386
00387 //スクリプトに渡されるオブジェクト
00388 CInterfaceObject::CInterfaceObject(CWSHClient *AOwner): ImplementsIUnknown<IDispatch>(),
00389                 m_Methods(), m_TypeInfo(NULL), m_Owner(AOwner)
00390 {
00391 };
00392
00393 CInterfaceObject::~CInterfaceObject()
00394 {
00395     if(m_TypeInfo != NULL)
00396         m_TypeInfo->Release();
00397 }
00398
00399
00400 HRESULT STDMETHODCALLTYPE CInterfaceObject::QueryInterface(REFIID iid, void ** ppvObject)
00401 {
00402     if(ppvObject == NULL)
00403         return E_POINTER;
00404     else if(IsEqualIID(iid, IID_IUnknown) || IsEqualIID(iid, IID_IDispatch))
00405     {
00406         AddRef();
00407         *ppvObject = this;
00408         return S_OK;
00409     }
00410     else
00411         return E_NOINTERFACE;
00412 }
00413
00414 HRESULT STDMETHODCALLTYPE CInterfaceObject::Invoke(
00415                 DISPID dispidMember,
00416                 REFIID riid,
00417                 LCID lcid,
00418                 WORD wFlags,
00419                 DISPPARAMS FAR* pdispparams,
00420                 VARIANT FAR* pvarResult,
00421                 EXCEPINFO FAR* pexcepinfo,
00422                 UINT FAR* puArgErr)
00423 {
00424     if((unsigned)dispidMember < m_Methods.size())
00425         return (*m_Methods[dispidMember].Method)(m_Methods[dispidMember].ID, pdispparams, pvarResult, m_Owner->m_Data);
00426     else
00427         return E_UNEXPECTED;
00428 }
00429
00430 HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfo(
00431                 /* [in] */ UINT iTInfo,
00432                 /* [in] */ LCID lcid,
00433                 /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo)
00434 {
00435     if(m_TypeInfo == NULL)
00436     {
00437         m_TypeInfo = new CInterfaceObjectTypeInfo(this);
00438         m_TypeInfo->AddRef();
00439     }
00440
00441     (*ppTInfo) = m_TypeInfo;
00442     (*ppTInfo)->AddRef();
00443     return S_OK;
00444 }
00445
00446 HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfoCount(
00447                 /* [out] */ UINT __RPC_FAR *pctinfo)
00448 {
00449     *pctinfo = 1;
00450     return S_OK;
00451 }
00452
00453 #ifdef __BORLANDC__
00454 #pragma argsused
00455 #endif
00456 HRESULT STDMETHODCALLTYPE CInterfaceObject::GetIDsOfNames(
00457   REFIID riid,
00458   OLECHAR FAR* FAR* rgszNames,
00459   UINT cNames,
00460   LCID lcid,
00461   DISPID FAR* rgdispid)
00462 {
00463     for(unsigned I = 0; I < cNames; ++I)
00464     {
00465 #ifdef TEST
00466         wcout << L"GetIDsOfNames:" << rgszNames[I] << endl;
00467 #endif
00468         for(unsigned J = 0; J < m_Methods.size(); ++J)
00469         {
00470             //  Nov. 10, 2003 FILE Win9Xでは、[lstrcmpiW]が無効のため、[_wcsicmp]に修正
00471             if(_wcsicmp(rgszNames[I], m_Methods[J].Name) == 0)
00472             {
00473                 rgdispid[I] = J;
00474                 goto Found;
00475             }
00476         }
00477         return DISP_E_UNKNOWNNAME;
00478         Found:
00479         ;
00480     }
00481     return S_OK;
00482 }
00483
00484 void CInterfaceObject::AddMethod(wchar_t *Name, int ID, VARTYPE *ArgumentTypes, int ArgumentCount, VARTYPE ResultType,
00485                     CInterfaceObjectMethod Method)
00486 {
00487     m_Methods.push_back(CMethodInfo());
00488     CMethodInfo *Info = &m_Methods[m_Methods.size() - 1];
00489     ZeroMemory(Info, sizeof(CMethodInfo));
00490     Info->Desc.invkind = INVOKE_FUNC;
00491     Info->Desc.cParams = ArgumentCount + 1; //戻り値の分
00492     Info->Desc.lprgelemdescParam = Info->Arguments;
00493     //  Nov. 10, 2003 FILE Win9Xでは、[lstrcpyW]が無効のため、[wcscpy]に修正
00494     wcscpy(Info->Name, Name);
00495     Info->Method = Method;
00496     Info->ID = ID;
00497     for(int I = 0; I < ArgumentCount; ++I)
00498     {
00499         Info->Arguments[I].tdesc.vt = ArgumentTypes[ArgumentCount - I - 1];
00500         Info->Arguments[I].paramdesc.wParamFlags = PARAMFLAG_FIN;
00501     }
00502     Info->Arguments[ArgumentCount].tdesc.vt = ResultType;
00503     Info->Arguments[ArgumentCount].paramdesc.wParamFlags = PARAMFLAG_FRETVAL;
00504 }
00505
00506 CWSHClient::CWSHClient(wchar_t const *AEngine, ScriptErrorHandler AErrorHandler, void *AData):
00507                 m_Engine(NULL), m_Data(AData), m_OnError(AErrorHandler), m_Valid(false)
00508 {
00509     m_InterfaceObject = new CInterfaceObject(this);
00510     m_InterfaceObject->AddRef();
00511
00512     CLSID ClassID;
00513     if(CLSIDFromProgID(AEngine, &ClassID) != S_OK)
00514         Error(L"指名のスクリプトエンジンが見つかりません");
00515     else
00516     {
00517         if(CoCreateInstance(ClassID, 0, CLSCTX_INPROC_SERVER, IID_IActiveScript, reinterpret_cast<void **>(&m_Engine)) != S_OK)
00518             Error(L"指名のスクリプトエンジンが作成できません");
00519         else
00520         {
00521             IActiveScriptSite *Site = new CWSHSite(this);
00522             if(m_Engine->SetScriptSite(Site) != S_OK)
00523             {
00524                 delete Site;
00525                 Error(L"サイトを登録できません");
00526             }
00527             else
00528             {
00529                 m_Valid = true;
00530             }
00531         }
00532     }
00533 }
00534
00535 CWSHClient::~CWSHClient()
00536 {
00537     if(m_InterfaceObject != NULL)
00538         m_InterfaceObject->Release();
00539
00540     if(m_Engine != NULL)
00541         m_Engine->Release();
00542 }
00543
00544 void CWSHClient::Execute(wchar_t const *AScript)
00545 {
00546     IActiveScriptParse *Parser;
00547     if(m_Engine->QueryInterface(IID_IActiveScriptParse, reinterpret_cast<void **>(&Parser)) != S_OK)
00548         Error(L"パーサを取得できません");
00549     else
00550     {
00551         if(Parser->InitNew() != S_OK)
00552             Error(L"初期化できません");
00553         else
00554         {
00555             if(m_Engine->AddNamedItem(L"Editor", SCRIPTITEM_GLOBALMEMBERS | SCRIPTITEM_ISVISIBLE) != S_OK)
00556                 Error(L"オブジェクトを渡せなかった");
00557             else
00558             {
00559                 if(m_Engine->SetScriptState(SCRIPTSTATE_STARTED) != S_OK)
00560                     Error(L"状態変更エラー");
00561                 else
00562                 {
00563                     if(Parser->ParseScriptText(AScript, 0, 0, 0, 0, 0, SCRIPTTEXT_ISVISIBLE, 0, 0) != S_OK)
00564                         Error(L"実行に失敗しました");
00565                 }
00566             }
00567         }
00568         Parser->Release();
00569     }
00570     m_Engine->Close();
00571 }
00572
00573 void CWSHClient::Error(BSTR Description, BSTR Source)
00574 {
00575     if(m_OnError != NULL)
00576         m_OnError(Description, Source, m_Data);
00577 }
00578
00579 void CWSHClient::Error(wchar_t* Description)
00580 {
00581     BSTR S = SysAllocString(L"WSH");
00582     BSTR D = SysAllocString(Description);
00583     Error(D, S);
00584     SysFreeString(S);
00585     SysFreeString(D);
00586 }
00587
00589
00594 static HRESULT MacroCommand(int ID, DISPPARAMS *Arguments, VARIANT* Result, void *Data)
00595 {
00596     CEditView *View = reinterpret_cast<CEditView*>(Data);
00597
00598     if(ID >= F_FUNCTION_FIRST)
00599     {
00600         VARIANT ret; // 2005.06.27 zenryaku 戻り値の受け取りが無くても関数を実行する
00601         VariantInit(&ret);
00602
00603         bool r = CMacro::HandleFunction(View, ID, Arguments->rgvarg, Arguments->cArgs, ret);
00604         if(Result) {::VariantCopyInd(Result, &ret);}
00605         VariantClear(&ret);
00606         return r ? S_OK : E_FAIL;
00607     }
00608     else
00609     {
00610         int ArgCount = Arguments->cArgs;
00611         if(ArgCount > 4) ArgCount = 4;
00612
00613         //  Nov. 29, 2005 FILE 引数を文字列で取得する
00614         char *StrArgs[4] = {NULL, NULL, NULL, NULL}, *S = NULL; // 初期化必須
00615         Variant varCopy;                                        // VT_BYREFだと困るのでコピー用
00616         int Len;
00617         for(int I = 0; I < ArgCount; ++I)
00618         {
00619             if(VariantChangeType(&varCopy.Data, &(Arguments->rgvarg[I]), 0, VT_BSTR) == S_OK)
00620             {
00621                 Wrap(&varCopy.Data.bstrVal)->Get(&S, &Len);
00622             }
00623             else
00624             {
00625                 S = new char[1];
00626                 S[0] = 0;
00627             }
00628             StrArgs[ArgCount - I - 1] = S;
00629         }
00630
00631         CMacro::HandleCommand(View, ID, const_cast<char const **>(StrArgs), ArgCount);
00632
00633         //  Nov. 29, 2005 FILE 配列の破棄なので、[括弧]を追加
00634         for(int J = 0; J < ArgCount; ++J)
00635             delete [] StrArgs[J];
00636
00637         return S_OK;
00638     }
00639 }
00640
00641 static void MacroError(BSTR Description, BSTR Source, void *Data)
00642 {
00643     CEditView *View = reinterpret_cast<CEditView*>(Data);
00644
00645     char MessageA[1024], SourceA[1024];
00646
00647     MessageA[WideCharToMultiByte(CP_ACP, 0, Description, SysStringLen(Description), MessageA, 1023, NULL, NULL)] = 0;
00648     SourceA[WideCharToMultiByte(CP_ACP, 0, Source, SysStringLen(Source), SourceA, 1023, NULL, NULL)] = 0;
00649
00650     MessageBox(View->m_hWnd, MessageA, SourceA, MB_ICONERROR);
00651 }
00652
00653 // ReadRegistryはetc_uty.cppに移動しました．
00654 //
00655
00656 CWSHMacroManager::CWSHMacroManager(std::wstring const AEngineName) : m_EngineName(AEngineName)
00657 {
00658 }
00659
00660 CWSHMacroManager::~CWSHMacroManager()
00661 {
00662 }
00663
00664 void CWSHMacroManager::ReadyCommands(CInterfaceObject *Object, MacroFuncInfo *Info)
00665 {
00666     while(Info->m_nFuncID != -1)    // Aug. 29, 2002 genta 番人の値が変更されたのでここも変更
00667     {
00668         wchar_t FuncName[256];
00669         MultiByteToWideChar(CP_ACP, 0, Info->m_pszFuncName, -1, FuncName, 255);
00670
00671         int ArgCount = 0;
00672         for(int I = 0; I < 4; ++I)
00673             if(Info->m_varArguments[I] != VT_EMPTY)
00674                 ++ArgCount;
00675
00676         Object->AddMethod(FuncName, Info->m_nFuncID, Info->m_varArguments, ArgCount, Info->m_varResult, MacroCommand);
00677
00678         ++Info;
00679     }
00680 }
00681
00687 void CWSHMacroManager::ExecKeyMacro(CEditView *EditView) const
00688 {
00689     CWSHClient* Engine;
00690     Engine = new CWSHClient(m_EngineName.c_str(), MacroError, EditView);
00691     if(Engine->m_Valid)
00692     {
00693 /* // CSMacroMgr.hで配列のサイズが明確に宣言されて無いのでsizeofが使えない
00694         Engine->m_InterfaceObject->ReserveMethods(
00695                         sizeof (CSMacroMgr::m_MacroFuncInfoArr) / sizeof (CSMacroMgr::m_MacroFuncInfoArr[0]) +
00696                         sizeof (CSMacroMgr::m_MacroFuncInfoNotCommandArr) / sizeof (CSMacroMgr::m_MacroFuncInfoNotCommandArr[0]));
00697 */
00698         ReadyCommands(Engine->m_InterfaceObject, CSMacroMgr::m_MacroFuncInfoArr);
00699         ReadyCommands(Engine->m_InterfaceObject, CSMacroMgr::m_MacroFuncInfoNotCommandArr);
00700
00701         Engine->Execute(m_Source.c_str());
00702
00703         //EditView->Redraw();
00704         EditView->ShowEditCaret();
00705     }
00706     delete Engine;
00707 }
00708
00715 BOOL CWSHMacroManager::LoadKeyMacro(HINSTANCE Instance, char const* Path)
00716 {
00717     BOOL Result = FALSE;
00718
00719     HANDLE File = CreateFile(Path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
00720     if(File != INVALID_HANDLE_VALUE)
00721     {
00722         unsigned long Size = GetFileSize(File, NULL); //ギガ単位のマクロはさすがに無いでしょう…
00723         char *Buffer = new char[Size];
00724         wchar_t *WideBuffer = new wchar_t[Size + 1]; //Unicode化して長くはならない
00725
00726         if(ReadFile(File, Buffer, Size, &Size, NULL) != 0)
00727         {
00728             WideBuffer[MultiByteToWideChar(CP_ACP, 0, Buffer, Size, WideBuffer, Size)] = 0;
00729             m_Source = WideBuffer;
00730             Result = TRUE;
00731         }
00732         //  Nov. 10, 2003 FILE 配列の破棄なので、[括弧]を追加
00733         delete [] Buffer;
00734         delete [] WideBuffer;
00735         CloseHandle(File);
00736     }
00737     return Result;
00738 }
00739
00740 CMacroManagerBase* CWSHMacroManager::Creator(char const *FileExt)
00741 {
00742     char FileExtWithDot[1024], FileType[1024], EngineName[1024]; //1024を超えたら後は知りません
00743     wchar_t EngineNameW[1024];
00744
00745     strcpy( FileExtWithDot, "." );
00746     strcat( FileExtWithDot, FileExt );
00747
00748     if(ReadRegistry(HKEY_CLASSES_ROOT, FileExtWithDot, NULL, FileType, 1024))
00749     {
00750         lstrcat(FileType, "\\ScriptEngine");
00751         if(ReadRegistry(HKEY_CLASSES_ROOT, FileType, NULL, EngineName, 1024))
00752         {
00753             MultiByteToWideChar(CP_ACP, 0, EngineName, -1, EngineNameW, sizeof(EngineNameW) / sizeof(wchar_t));
00754             return new CWSHMacroManager(EngineNameW);
00755         }
00756     }
00757     return NULL;
00758 }
00759
00760 void CWSHMacroManager::declare()
00761 {
00762     //暫定
00763     CMacroFactory::Instance()->RegisterCreator(Creator);
00764 }
00765
00766 #if 0
00767 Feb. 08, 2003 使ってないのでとりあえずコメントアウト
00768 void CWSHMacroManager::EnumEngines(EngineCallback Proc)
00769 {
00770     char FileExtWithDot[1024], FileType[1024], EngineName[1024]; //1024を超えたら後は知りません
00771     LONG    lret;
00772     DWORD   index;
00773     DWORD   dwSize;
00774     FILETIME    szFileTime;
00775
00776     for( index = 0; ; index++ )
00777     {
00778         /* 列挙する */
00779         dwSize = sizeof( FileExtWithDot );
00780         memset( FileExtWithDot, 0, sizeof( FileExtWithDot ) );
00781         lret = RegEnumKeyEx( HKEY_CLASSES_ROOT, index, FileExtWithDot, &dwSize, NULL, NULL, NULL, &szFileTime );
00782         //if( lret == ERROR_NO_MORE_ITEMS ) break;  /* 列挙終了 */
00783         if( lret != ERROR_SUCCESS ) break;  /* 列挙終了 */
00784
00785         if( FileExtWithDot[0] == '.' )  /* 拡張子か？ */
00786         {
00787             /* スクリプトエンジンか確認する */
00788             if(ReadRegistry(HKEY_CLASSES_ROOT, FileExtWithDot, NULL, FileType, 1024))
00789             {
00790                 lstrcat(FileType, "\\ScriptEngine");
00791                 if(ReadRegistry(HKEY_CLASSES_ROOT, FileType, NULL, EngineName, 1024))
00792                 {
00793                     Proc(FileExtWithDot + 1, EngineName);
00794                 }
00795             }
00796         }
00797     }
00798 }
00799 #endif
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWSH.h

CWSH.h

WSH Handler [詳細]

#include <windows.h>
#include <winreg.h>
#include <objbase.h>
#include <initguid.h>
#include "activscp.h"
#include <string>
#include <vector>

CWSH.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | ImplementsIUnknown< Base >
class | CInterfaceObject
struct | CInterfaceObject::CMethodInfo
class | CWSHClient

型定義

typedef HRESULT(* | CInterfaceObjectMethod )(int ID, DISPPARAMS *Arguments, VARIANT *Result, void *Data)
typedef void(* | ScriptErrorHandler )(BSTR Description, BSTR Source, void *Data)

説明

WSH Handler

作者:
鬼
日付:
2002年4月28日,5月3日,5月5日,5月6日,5月13日,5月16日

2002.08.25 genta リンクエラー回避のためCWSHManager.hにエディタの マクロインターフェース部を分離．

TODO
  • GetIDsOfNamesの最適化 → std::mapを使えば楽そう…しかし私はSTLに疎いので(;_;

CWSH.h で定義されています。

型定義

typedef HRESULT(* CInterfaceObjectMethod)(int ID, DISPPARAMS *Arguments, VARIANT *Result, void *Data)

CWSH.h の 59 行で定義されています。

typedef void(* ScriptErrorHandler)(BSTR Description, BSTR Source, void *Data)

CWSH.h の 60 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWSH.h ソースファイル

CWSH.h

説明を見る。
00001
00012 /*
00013     Copyright (C) 2002, 鬼, genta
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017
00018 */
00019
00020 #ifndef __WSH_H__
00021 #define __WSH_H__
00022
00023 #include <windows.h>
00024 #include <winreg.h>
00025 #include <objbase.h>
00026 #include <initguid.h>
00027 #include "activscp.h"
00028 //↑Microsoft Platform SDK より
00029
00030 #include <string>
00031 #include <vector>
00032
00033 //COM一般
00034
00035 template<class Base>
00036 class ImplementsIUnknown: public Base
00037 {
00038 private:
00039     int m_RefCount;
00040     ImplementsIUnknown(const ImplementsIUnknown &);
00041     ImplementsIUnknown& operator = (const ImplementsIUnknown &);
00042 public:
00043     #ifdef __BORLANDC__
00044     #pragma argsused
00045     #endif
00046     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject)
00047     {
00048         return E_NOINTERFACE;
00049     }
00050     virtual ULONG STDMETHODCALLTYPE AddRef() { ++ m_RefCount; return m_RefCount; };
00051     virtual ULONG STDMETHODCALLTYPE Release() { -- m_RefCount; int R = m_RefCount; if(m_RefCount == 0) delete this; return R; };
00052 public:
00053     ImplementsIUnknown(): m_RefCount(0) {};
00054     virtual ~ImplementsIUnknown(){};
00055 };
00056
00057 //WSH一般
00058
00059 typedef HRESULT (*CInterfaceObjectMethod)(int ID, DISPPARAMS *Arguments, VARIANT* Result, void *Data);
00060 typedef void (*ScriptErrorHandler)(BSTR Description, BSTR Source, void *Data);
00061
00062 class CWSHClient;
00063
00064 //スクリプトに渡されるオブジェクト
00065 class CInterfaceObject: public ImplementsIUnknown<IDispatch>
00066 {
00067 private:
00068     ITypeInfo* m_TypeInfo;
00069 public:
00070     struct CMethodInfo
00071     {
00072         FUNCDESC Desc;
00073         wchar_t Name[64];
00074         CInterfaceObjectMethod Method;
00075         ELEMDESC Arguments[8];
00076         int ID;
00077     };
00078     typedef std::vector<CMethodInfo> CMethodInfoList;
00079     CMethodInfoList m_Methods;
00080     CWSHClient *m_Owner;
00081
00082     CInterfaceObject(CWSHClient *AOwner);
00083     ~CInterfaceObject();
00084     void AddMethod(wchar_t *Name, int ID, VARTYPE *ArgumentTypes, int ArgumentCount, VARTYPE ResultType,
00085                     CInterfaceObjectMethod Method);
00086     void ReserveMethods(int Count)
00087     {
00088         m_Methods.reserve(Count);
00089     }
00090
00091     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject);
00092     virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(
00093                     REFIID riid,
00094                     OLECHAR FAR* FAR* rgszNames,
00095                     UINT cNames,
00096                     LCID lcid,
00097                     DISPID FAR* rgdispid);
00098     virtual HRESULT STDMETHODCALLTYPE CInterfaceObject::Invoke(
00099                     DISPID dispidMember,
00100                     REFIID riid,
00101                     LCID lcid,
00102                     WORD wFlags,
00103                     DISPPARAMS FAR* pdispparams,
00104                     VARIANT FAR* pvarResult,
00105                     EXCEPINFO FAR* pexcepinfo,
00106                     UINT FAR* puArgErr);
00107     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
00108                     /* [in] */ UINT iTInfo,
00109                     /* [in] */ LCID lcid,
00110                     /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
00111     virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
00112                     /* [out] */ UINT __RPC_FAR *pctinfo);
00113 };
00114
00115 class CWSHClient
00116 {
00117 private:
00118     IActiveScript *m_Engine;
00119 protected:
00120     ScriptErrorHandler m_OnError;
00121 public:
00122     CWSHClient(wchar_t const *AEngine, ScriptErrorHandler AErrorHandler, void *AData);
00123     ~CWSHClient();
00124     CInterfaceObject *m_InterfaceObject;
00125     void *m_Data;
00126     bool m_Valid; //trueの場合使用可能
00127     void Execute(wchar_t const *AScript);
00128     void Error(BSTR Description, BSTR Source);
00129     void Error(wchar_t* Description);
00130 };
00131 #endif
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWSHManager.h

CWSHManager.h

WSH Manager [詳細]

#include <windows.h>
#include <string>
#include "CSMacroMgr.h"
#include "CMacroManagerBase.h"

CWSHManager.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class | CWSHMacroManager

型定義

typedef void(* | EngineCallback )(char *Ext, char *EngineName)

説明

WSH Manager

作者:
鬼, genta
日付:
2002年4月28日,5月3日,5月5日,5月6日,5月13日,5月16日

2002.08.25 genta CWSH.hより分離

TODO
  • 未知のエンジンに対応できるようCMacroFactoryを変更 → 要議論
  • CEditView::HandleCommandを使う → CMacro::HandleCommandでもなにかやってるようなのでいじらない方が？
  • vector::reserveを使う → CSMacroMgrで個数が宣言されて無いので見送り
  • 再描画の代わりにShowEditCaret → protectedですよー

CWSHManager.h で定義されています。

型定義

typedef void(* EngineCallback)(char *Ext, char *EngineName)

CWSHManager.h の 32 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: CWSHManager.h ソースファイル

CWSHManager.h

説明を見る。
00001
00014 /*
00015     Copyright (C) 2002, 鬼, genta
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019
00020 */
00021
00022 #ifndef __CWSH_Manager_H__
00023 #define __CWSH_Manager_H__
00024
00025 #include <windows.h>
00026 #include <string>
00027 #include "CSMacroMgr.h"
00028 #include "CMacroManagerBase.h"
00029 class CEditView;
00030 class CInterfaceObject;
00031
00032 typedef void (*EngineCallback)(char *Ext, char *EngineName);
00033
00034 class CWSHMacroManager: public CMacroManagerBase
00035 {
00036 public:
00037     CWSHMacroManager(std::wstring const AEngineName);
00038     virtual ~CWSHMacroManager();
00039
00040     virtual void ExecKeyMacro(CEditView *EditView) const;
00041     virtual BOOL LoadKeyMacro(HINSTANCE Instance, char const* Path);
00042
00043     static CMacroManagerBase* Creator(char const *FileExt);
00044     static void declare();
00045     static void EnumEngines(EngineCallback Proc); //スクリプトエンジン列挙
00046 protected:
00047     std::wstring m_Source;
00048     std::wstring m_EngineName;
00049     static void ReadyCommands(CInterfaceObject *Object, MacroFuncInfo *Info);
00050 };
00051 #endif
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Debug.cpp

Debug.cpp

デバッグ用関数 [詳細]

#include "stdafx.h"
#include "debug.h"
#include <tchar.h>

Debug.cppのインクルード依存関係図

ソースコードを見る。

関数

void | DebugOut (LPCTSTR lpFmt,...)
書式付きデバッガ出力
int | DebugOutDialog (HWND hWndParent, UINT nStyle, LPCTSTR pszTitle, LPCTSTR lpFmt,...)
書式付きメッセージボックス
void | AssertError (LPCTSTR pszFile, long nLine, BOOL bIsError)

説明

デバッグ用関数

作者:
Norio Nakatani
日付:
2001/06/23 N.Nakatani DebugOut()に微妙～な修正

2002/01/17 aroka 型の修正

Debug.cpp で定義されています。

関数

void AssertError | ( | LPCTSTR | pszFile,
 |  | long | nLine,
 |  | BOOL | bIsError
 | ) |

Debug.cpp の 90 行で定義されています。

参照先 NULL.

void DebugOut | ( | LPCTSTR | lpFmt,
 |  |  | ...
 | ) |

書式付きデバッガ出力

引数:
[in] lpFmt printfの書式付き文字列
引数で与えられた情報をDebugStringとして出力する．

Debug.cpp の 38 行で定義されています。

int DebugOutDialog | ( | HWND | hWndParent,
 |  | UINT | nStyle,
 |  | LPCTSTR | pszTitle,
 |  | LPCTSTR | lpFmt,
 |  |  | ...
 | ) |

書式付きメッセージボックス

引数:
[in] | hWndParent | 親ウィンドウのハンドル
[in] | nStyle | メッセージボックスの形式(アイコン，ボタンなどをMB_xx定数の論理和で与える)
[in] | pszTitle | ダイアログボックスのタイトル
[in] | lpFmt | printfの書式指定文字列
引数で与えられた情報をダイアログボックスで表示する． デバッグ目的以外でも使用できる．

Debug.cpp の 64 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Debug.cpp ソースファイル

Debug.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2002, aroka
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 #include "stdafx.h"
00018 #include "debug.h"
00019 #include <tchar.h>
00020
00021 #ifdef _DEBUG
00022     int gm_ProfileOutput = 0;
00023 #endif
00024
00025
00026 //#ifdef _DEBUG
00027 //#undef THIS_FILE
00028 //static char THIS_FILE[] = __FILE__;
00029 //#endif
00030
00031
00038 void DebugOut( LPCTSTR lpFmt, ...)
00039 {
00040     static TCHAR szText[16000];
00041     va_list argList;
00042     va_start(argList, lpFmt);
00043     ::wvsprintf( szText, lpFmt, argList );
00044     ::OutputDebugString( szText );
00045
00046     ::Sleep(1); // Norio Nakatani, 2001/06/23 大量にトレースするときのために
00047
00048     va_end(argList);
00049     return;
00050 }
00051
00052
00053
00064 int DebugOutDialog(
00065     HWND    hWndParent,
00066     UINT    nStyle,
00067     LPCTSTR pszTitle,
00068     LPCTSTR lpFmt,
00069     ...
00070 )
00071 {
00072     static TCHAR szText[16000];
00073     va_list argList;
00074     int     nRet;
00075     va_start(argList, lpFmt);
00076     ::wvsprintf( szText, lpFmt, argList );
00077     nRet = ::MessageBox( hWndParent,  szText, pszTitle, nStyle );
00078     va_end(argList);
00079     return nRet;
00080 }
00081
00082
00083 //void MYASSERT( LPCTSTR pszFile, long nLine, BOOL bIsError )
00084 //{
00085 //  AssertError( bIsError, pszFile, nLine );
00086 //  return;
00087 //}
00088
00089
00090 void AssertError( LPCTSTR pszFile, long nLine, BOOL bIsError )
00091 {
00092     if( !bIsError ){
00093         TCHAR psz[1000];
00094         ::wsprintf(psz, _T("%s\n行 %d でASSERT正当性チェックエラー"), pszFile, nLine );
00095         ::MessageBox( NULL, psz, _T("MYASSERT"), MB_OK );
00096     }
00097     return;
00098 }
00099
00100
00101 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Debug.h

Debug.h

デバッグ用関数 [詳細]

#include <windows.h>
#include "global.h"

Debug.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | MYTRACE Do_not_use_the_MYTRACE_function_if_release_mode
#define | MYMESSAGEBOX DebugOutDialog
#define | MYASSERT AssertError

関数

SAKURA_CORE_API void | AssertError (LPCTSTR pszFile, long nLine, BOOL bIsError)
SAKURA_CORE_API void | DebugOut (LPCTSTR lpFmt,...)
書式付きデバッガ出力
SAKURA_CORE_API int | DebugOutDialog (HWND, UINT, LPCTSTR, LPCTSTR,...)
書式付きメッセージボックス

説明

デバッグ用関数

作者:
Norio Nakatani

Debug.h で定義されています。

マクロ定義

#define MYASSERT AssertError

Debug.h の 46 行で定義されています。

#define MYMESSAGEBOX DebugOutDialog

Debug.h の 39 行で定義されています。

参照元 CMemory::AllocBuffer()・COpeBlk::AppendOpe()・CheckSystemResources()・CEditApp::CloseAllEditor()・CEditView::Command_ACTIVATE_SQLPLUS()・CEditView::Command_COMPARE()・CEditView::Command_Diff()・CEditView::Command_EXECKEYMACRO()・CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP()・CEditView::Command_FILE_REOPEN()・CEditView::Command_HOKAN()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::Command_PUTFILE()・CEditView::Command_RECKEYMACRO()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_SAVEKEYMACRO()・CEditView::Command_TAGJUMPBACK()・CSplitterWnd::Create()・CEditWnd::CreateToolBar()・CPropTypes::DispatchEvent_KeyHelp()・CPropCommon::DispatchEvent_p1()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropTypes::DispatchEvent_Regex()・CDlgOpenFile::DlgOpenFail()・CEditDoc::DoFileLock()・CPropTypes::DoPropertySheet()・CEditDoc::FileRead()・CEditDoc::FileSave()・CEditDoc::FileSaveAs_Dialog()・CEditDoc::FileWrite()・CDocLineMgr::GetAllData()・CDlgPrintPage::GetData()・CDlgGrep::GetData()・CNormalProcess::GetInitializeMutex()・CMacro::HandleCommand()・CPropTypes::Import_KeyHelp()・CProcess::Initialize()・CControlProcess::Initialize()・CShareData::IsPathOpened()・CProcessFactory::IsValidVersion()・CEditView::KeyWordHelpSearchDict()・Listbox_ADDDATA()・Listbox_INSERTDATA()・CEditDoc::MakeBackUp()・CEditView::MakeDiffTmpFile()・CMenuDrawer::MyAppendMenu()・CDlgReplace::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CEditDoc::OnFileClose()・CPrintPreview::OnPrint()・CEditDoc::OpenFile()・CEditApp::OpenNewEditor()・CEditWnd::PrintPreviewModeONOFF()・PropSheetWndProc()・CDropTarget::Register_DropTarget()・CDocLineMgr::ReplaceData()・CProcessFactory::StartControlProcess()・CEditApp::TerminateApplication()・CFuncKeyWnd::Timer_ONOFF()・CEditWnd::Timer_ONOFF()・CEditView::ViewDiffInfo()・CProcessFactory::WaitForInitializedControlProcess()・CDocLineMgr::WriteFile().

#define MYTRACE Do_not_use_the_MYTRACE_function_if_release_mode

Debug.h の 35 行で定義されています。

参照元 CMacroFactory::Create()・CLayoutMgr::DeleteLayoutAsLogical()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_PROP_EDIT()・CHokanMgr::DoHokan()・CEditView::DragEnter()・CDropTarget::DragEnter()・CEditView::DragLeave()・CEditView::DragOver()・CEditView::Drop()・CProfile::DUMP()・COpeBuf::DUMP()・COpeBlk::DUMP()・COpe::DUMP()・CLayoutMgr::DUMP()・CLayout::DUMP()・CFuncInfoArr::DUMP()・CDocLineMgr::DUMP()・CEditView::ExecCmd()・CPrint::GetDefaultPrinter()・CSMacroMgr::Idx2Ptr()・CSMacroMgr::Load()・CMemory::MemSJISToUnicode()・CDialog::OnInitDialog()・CDialog::OnMove()・CPrint::PrintDlg()・CDocLineMgr::ReadFile()・CFileLoad::ReadLine()・CLayoutMgr::Search()・CEditDoc::SelectFont().

関数

SAKURA_CORE_API void AssertError | ( | LPCTSTR | pszFile,
 |  | long | nLine,
 |  | BOOL | bIsError
 | ) |

Debug.cpp の 90 行で定義されています。

参照先 NULL.

SAKURA_CORE_API void DebugOut | ( | LPCTSTR | lpFmt,
 |  |  | ...
 | ) |

書式付きデバッガ出力

引数:
[in] lpFmt printfの書式付き文字列
引数で与えられた情報をDebugStringとして出力する．

Debug.cpp の 38 行で定義されています。

SAKURA_CORE_API int DebugOutDialog | ( | HWND | hWndParent,
 |  | UINT | nStyle,
 |  | LPCTSTR | pszTitle,
 |  | LPCTSTR | lpFmt,
 |  |  | ...
 | ) |

書式付きメッセージボックス

引数:
[in] | hWndParent | 親ウィンドウのハンドル
[in] | nStyle | メッセージボックスの形式(アイコン，ボタンなどをMB_xx定数の論理和で与える)
[in] | pszTitle | ダイアログボックスのタイトル
[in] | lpFmt | printfの書式指定文字列
引数で与えられた情報をダイアログボックスで表示する． デバッグ目的以外でも使用できる．

Debug.cpp の 64 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Debug.h ソースファイル

Debug.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008
00009     This source code is designed for sakura editor.
00010     Please contact the copyright holder to use this code for other purpose.
00011 */
00012
00013 #ifndef _DEBUG_H_
00014 #define _DEBUG_H_
00015
00016 #include <windows.h>
00017 #include "global.h"
00018
00019 SAKURA_CORE_API void AssertError( LPCTSTR pszFile, long nLine, BOOL bIsError );
00020 SAKURA_CORE_API void DebugOut( LPCTSTR lpFmt, ...);
00021 //void DebugOutDialog( LPCTSTR lpFmt, ...);
00022 SAKURA_CORE_API int DebugOutDialog( HWND, UINT, LPCTSTR, LPCTSTR, ... );
00023
00024 //void MYASSERT( LPCTSTR, long, BOOL );
00025
00026 /*
00027     MYTRACEはリリースモードではコンパイルエラーとなるようにしてあるので，
00028     MYTRACEを使う場合には必ず#ifdef _DEBUG ～ #endif で囲む必要がある．
00029
00030 */
00031 #ifdef _DEBUG
00032     #define MYTRACE DebugOut
00033 #endif
00034 #ifndef _DEBUG
00035     #define MYTRACE Do_not_use_the_MYTRACE_function_if_release_mode
00036 #endif
00037
00038 //#ifdef _DEBUG
00039     #define MYMESSAGEBOX DebugOutDialog
00040 //#endif
00041 //#ifndef _DEBUG
00042 //  #define MYMESSAGEBOX DebugOutDialog
00043 //#endif
00044
00045 //#ifdef _DEBUG
00046     #define MYASSERT AssertError
00047 //#endif
00048 //#ifndef _DEBUG
00049 //  #define MYASSERT raise_compile_error
00050 //#endif
00051
00052
00053 /*
00054 #ifdef _DEBUG
00055     #define MYASSERT( _file, _line, b ) AssertError( (_file), (_line), (b) )
00056 #endif
00057 #ifndef _DEBUG
00058     #define MYASSERT( _file, _line, b ) AssertError( (_file), (_line), (b) )
00059 #endif
00060 */
00061
00062 #ifdef _DEBUG
00063
00064     SAKURA_CORE_API extern int gm_ProfileOutput;
00065 #endif
00066
00067
00068
00070 #endif /* _DEBUG_H_ */
00071
00072
00073 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: etc_uty.cpp

etc_uty.cpp

共通関数群 [詳細]

#include "stdafx.h"
#include <Shlwapi.h>
#include <HtmlHelp.h>
#include <io.h>
#include <memory.h>
#include "etc_uty.h"
#include "debug.h"
#include "CMemory.h"
#include "funccode.h"
#include "mymessage.h"
#include "WINNETWK.H"
#include "sakura.hh"
#include "CEol.h"
#include "CBregexp.h"
#include "COsVersionInfo.h"
#include "my_icmp.h"
#include "charcode.h"
#include "CShareData.h"
#include "CMRU.h"
#include "CMRUFolder.h"
#include "Keycode.h"
#include "CUxTheme.h"

etc_uty.cppのインクルード依存関係図

ソースコードを見る。

構成

struct | VS_VERSION_INFO_HEAD

マクロ定義

#define | COMPILE_NEWAPIS_STUBS
#define | COMPILE_MULTIMON_STUBS
#define | GFSR_SYSTEMRESOURCES 0x0000
#define | GFSR_GDIRESOURCES 0x0001
#define | GFSR_USERRESOURCES 0x0002

関数

BOOL | MyWinHelp (HWND hwndCaller, LPCTSTR lpszHelp, UINT uCommand, DWORD_PTR dwData)
int CALLBACK | MYBrowseCallbackProc (HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
BOOL | SelectDir (HWND hWnd, const char *pszTitle, const char *pszInitFolder, char *strFolderName)
BOOL | CheckEXT (const char *pszPath, const char *pszExt)
TCHAR * | my_strtok (TCHAR *pBuffer, int nLen, int *pnOffset, const TCHAR *pDelimiter)
LPTSTR | GetHelpFilePath (LPTSTR pszHelpFile, unsigned int nMaxLen)
BOOL | GetLongFileName (const char *pszFilePathSrc, char *pszFilePathDes)
void | SplitPath_FolderAndFile (const char *pszFilePath, char *pszFolder, char *pszFile)
BOOL | GetSystemResources (int *pnSystemResources, int *pnUserResources, int *pnGDIResources)
BOOL | CheckSystemResources (const char *pszAppName)
void | GetAppVersionInfo (HINSTANCE hInstance, int nVersionResourceID, DWORD *pdwProductVersionMS, DWORD *pdwProductVersionLS)
void | ActivateFrameWindow (HWND hwnd)
BOOL | IsURL (const char *pszLine, int nLineLen, int *pnMatchLen)
BOOL | IsMailAddress (const char *pszBuf, int nBufLen, int *pnAddressLenfth)
int | IsNumber (const char *buf, int offset, int length)
bool | IsFileExists (const char *path, bool bFileOnly)
bool | IsFilePath (const char *pLine, int *pnBgn, int *pnPathLen, bool bFileOnly)
bool | IsLocalDrive (const char *pszDrive)
void | GetLineColm (const char *pLine, int *pnJumpToLine, int *pnJumpToColm)
const char * | GetNextLine (const char *pData, int nDataLen, int *pnLineLen, int *pnBgn, CEOL *pcEol)
const char * | GetNextLimitedLengthText (const char *pText, int nTextLen, int nLimitLen, int *pnLineLen, int *pnBgn)
int | LimitStringLengthB (const char *pszData, int nDataLength, int nLimitLengthB, CMemory &cmemDes)
void | CutLastYenFromDirectoryPath (char *pszFolder)
void | AddLastYenFromDirectoryPath (char *pszFolder)
int | AddLastChar (char *pszPath, int nMaxLen, char c)
BOOL | ResolveShortcutLink (HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath)
BOOL | BlockingHook (HWND hwndDlgCancel)
int | FuncID_To_HelpContextID (int nFuncID)
機能番号に応じてヘルプトピック番号を返す
SAKURA_CORE_API bool | SetClipboardText (HWND hwnd, const char *pszText, int length)
bool | InitRegexp (HWND hWnd, CBregexp &rRegexp, bool bShowMessage)
bool | CheckRegexpVersion (HWND hWnd, int nCmpId, bool bShowMessage)
正規表現ライブラリのバージョン取得
bool | CheckRegexpSyntax (const char *szPattern, HWND hWnd, bool bShowMessage, int nOption)
HWND | OpenHtmlHelp (HWND hWnd, LPCSTR szFile, UINT uCmd, DWORD_PTR data, bool msgflag)
DWORD | NetConnect (const char strNetWorkPass[])
int | cescape (const TCHAR *org, TCHAR *buf, TCHAR cesc, TCHAR cwith)
int | cescape_j (const char *org, char *buf, char cesc, char cwith)
void | ShowWinHelpContents (HWND hwnd, LPCTSTR lpszHelp)
SAKURA_CORE_API int | GetColorIndexByName (const char *name)
SAKURA_CORE_API const char * | GetColorNameByIndex (int index)
bool | ReadRegistry (HKEY Hive, char const *Path, char const *Item, char *Buffer, unsigned BufferSize)
レジストリから文字列を読み出す．
void | GetExedir (LPTSTR pDir, LPCTSTR szFile)
exeファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．
void | GetInidir (LPTSTR pDir, LPCTSTR szFile)
INIファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．
void | GetInidirOrExedir (LPTSTR pDir, LPCTSTR szFile, BOOL bRetExedirIfFileEmpty)
INIファイルまたはEXEファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す（INIを優先）．
HICON | GetAppIcon (HINSTANCE hInst, int nResource, const char *szFile, bool bSmall)
アプリケーションアイコンの取得
FILE * | _tfopen_absexe (LPCTSTR fname, LPCTSTR mode)
FILE * | _tfopen_absini (LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir)
char * | strncpy_ex (char *dst, size_t dst_count, const char *src, size_t src_count)
int | CalcDirectoryDepth (const char *path)
ディレクトリの深さを計算する
bool | GetMonitorWorkRect (HWND hWnd, LPRECT prcWork, LPRECT prcMonitor)
bool | GetMonitorWorkRect (LPCRECT prc, LPRECT prcWork, LPRECT prcMonitor)
bool | GetMonitorWorkRect (POINT pt, LPRECT prcWork, LPRECT prcMonitor)
bool | GetMonitorWorkRect (HMONITOR hMon, LPRECT prcWork, LPRECT prcMonitor)
HWND | MyGetAncestor (HWND hWnd, UINT gaFlags)
int | getCtrlKeyState (void)
bool | GetLastWriteTimestamp (const TCHAR *filename, FILETIME &ftime)
bool | GetDateTimeFormat (TCHAR *szResult, int size, const TCHAR *format, const SYSTEMTIME &systime)
DWORD | GetDllVersion (LPCTSTR lpszDllName)
DWORD | GetComctl32Version ()
BOOL | IsVisualStyle ()
void | PreventVisualStyle (HWND hWnd)
void | MyInitCommonControls ()
BOOL | GetSpecialFolderPath (int nFolder, LPTSTR pszPath)
static LRESULT CALLBACK | PropSheetWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static int CALLBACK | PropSheetProc (HWND hwndDlg, UINT uMsg, LPARAM lParam)
int | MyPropertySheet (LPPROPSHEETHEADER lppsph)

変数

CHtmlHelp g_cHtmlHelp
static DWORD | s_dwComctl32Version = PACKVERSION(0, 0)
static WNDPROC | s_pOldPropSheetWndProc

説明

共通関数群

作者:
Norio Nakatani

etc_uty.cpp で定義されています。

マクロ定義

#define COMPILE_MULTIMON_STUBS

etc_uty.cpp の 24 行で定義されています。

#define COMPILE_NEWAPIS_STUBS

etc_uty.cpp の 22 行で定義されています。

#define GFSR_GDIRESOURCES 0x0001

参照元 GetSystemResources().

#define GFSR_SYSTEMRESOURCES 0x0000

参照元 GetSystemResources().

#define GFSR_USERRESOURCES 0x0002

参照元 GetSystemResources().

関数

FILE* _tfopen_absexe | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode
 | ) |

fnameが相対パスの場合は、実行ファイルのパスからの相対パスとして開く

作者:
Moca
日付:
2003.06.23

2007.05.20 ryoji 関数名変更（旧：fopen_absexe）、汎用テキストマッピング化

etc_uty.cpp の 2796 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・GetExedir().

FILE* _tfopen_absini | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode,
 |  | BOOL | bOrExedir
 | ) |

fnameが相対パスの場合は、INIファイルのパスからの相対パスとして開く

作者:
ryoji
日付:
2007.05.19 新規作成（_tfopen_absexeベース）

etc_uty.cpp の 2811 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・GetInidir()・GetInidirOrExedir().

参照元 CPropTypes::DispatchEvent_KeyHelp()・CDicMgr::HokanSearch()・CEditDoc::ReadRuleFile()・CDicMgr::Search().

void ActivateFrameWindow ( HWND hwnd )

etc_uty.cpp の 516 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・CShareData::IsEditWnd()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_bEditWndChanging・DLLSHAREDATA::m_Common・MYWM_TAB_WINDOW_NOTIFY・NULL・TRUE・TWNT_WNDPL_ADJUST.

参照元 CEditView::Command_ACTIVATE_SQLPLUS()・CEditView::Command_FUNCLIST()・CEditView::Command_REPLACE_DIALOG()・CEditView::Command_SEARCH_DIALOG()・CEditView::Command_TAGJUMPBACK()・CNormalProcess::Initialize()・CShareData::IsPathOpened()・CTabWnd::NextGroup()・CEditWnd::OnCommand()・CEditDoc::OnFileClose()・CEditDoc::OpenFileDialog()・CTabWnd::PrevGroup()・CShareData::RequestCloseAllEditor()・CEditView::TagJumpSub()・CShareData::TraceOut().

int AddLastChar | ( | char * | pszPath,
 |  | int | nMaxLen,
 |  | char | c
 | ) |

文字列が指定された文字で終わっていなかった場合には 末尾にその文字を付加する．

引数:
pszPath | [i/o]操作する文字列
nMaxLen | [in]バッファ長
c | [in]追加したい文字
戻り値:
0 | \が元から付いていた
1 | \を付加した
-1 | バッファが足りず、\を付加できなかった
日付:
2003.06.24 Moca 新規作成

etc_uty.cpp の 1765 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro()・CShareData::GetMacroFilename()・CShareData::Init()・CPropCommon::SelectBaseDir_Macro().

void AddLastYenFromDirectoryPath ( char * pszFolder )

etc_uty.cpp の 1729 行で定義されています。

参照先 CMemory::MemCharPrev().

参照元 CEditDoc::FormatBackUpPath().

BOOL BlockingHook ( HWND hwndDlgCancel )

処理中のユーザー操作を可能にする ブロッキングフック(?)（メッセージ配送

日付:
2003.07.04 genta 一回の呼び出しで複数メッセージを処理するように

etc_uty.cpp の 1866 行で定義されています。

参照先 BOOL・FALSE・NULL・TRUE.

参照元 CEditView::DoGrepFile()・CEditView::DoGrepTree()・CLayoutMgr::DoLayout()・CPrintPreview::DrawPageText()・CEditView::ExecCmd()・CPrintPreview::OnMouseWheel()・CDocLineMgr::ReadFile()・CDocLineMgr::WriteFile().

int CalcDirectoryDepth ( const char * path )

ディレクトリの深さを計算する

与えられたパス名からディレクトリの深さを計算する． パスの区切りは\．ルートディレクトリが深さ0で，サブディレクトリ毎に 深さが1ずつ上がっていく．

引数:
path [in] 深さを調べたいファイル/ディレクトリのフルパス
日付:
2003.04.30 genta 新規作成

etc_uty.cpp の 2860 行で定義されています。

参照先 _IS_SJIS_1.

参照元 CEditView::Command_TagJumpByTagsFile()・CDlgTagJumpList::SetFileName().

int cescape | ( | const TCHAR * | org,
 |  | TCHAR * | buf,
 |  | TCHAR | cesc,
 |  | TCHAR | cwith
 | ) |

文字のエスケープ

引数:
org | [in] 変換したい文字列
buf | [out] 返還後の文字列を入れるバッファ
cesc | [in] エスケープしないといけない文字
cwith | [in] エスケープに使う文字
戻り値:
出力したバイト数 (Unicodeの場合は文字数)
文字列中にそのまま使うとまずい文字がある場合にその文字の前に エスケープキャラクタを挿入するために使う．

覚え書き:
変換後のデータは最大で元の文字列の2倍になる

この関数は2バイト文字の考慮を行っていない

作者:
genta
日付:
2002/01/04 新規作成

2002/01/30 genta &専用(dupamp)から一般の文字を扱えるように拡張． dupampはinline関数にした．

2002/02/01 genta bugfix エスケープする文字とされる文字の出力順序が逆だった

2004/06/19 genta Generic mapping対応

etc_uty.cpp の 2525 行で定義されています。

参照元 dupamp().

int cescape_j | ( | const char * | org,
 |  | char * | buf,
 |  | char | cesc,
 |  | char | cwith
 | ) |

文字のエスケープ

引数:
org | [in] 変換したい文字列
buf | [out] 返還後の文字列を入れるバッファ
cesc | [in] エスケープしないといけない文字
cwith | [in] エスケープに使う文字
戻り値:
出力したバイト数 文字列中にそのまま使うとまずい文字がある場合にその文字の前に エスケープキャラクタを挿入するために使う．
覚え書き:
変換後のデータは最大で元の文字列の2倍になる

この関数は2バイト文字の考慮を行っている

2003.05.25 未使用のようだ

etc_uty.cpp の 2556 行で定義されています。

参照先 _IS_SJIS_1.

BOOL CheckEXT | ( | const char * | pszPath,
 |  | const char * | pszExt
 | ) |

etc_uty.cpp の 226 行で定義されています。

参照先 _MAX_EXT・_stricmp・FALSE・NULL・TRUE.

参照元 CEditView::OPEN_ExtFromtoExt().

bool CheckRegexpSyntax | ( | const char * | szPattern,
 |  | HWND | hWnd,
 |  | bool | bShowMessage,
 |  | int | nOption
 | ) |

正規表現が規則に従っているかをチェックする。

引数:
szPattern | [in] チェックする正規表現
hWnd | [in] メッセージボックスの親ウィンドウ
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
nOption | [in] 大文字と小文字を無視して比較するフラグ // 2002/2/1 hor追加
戻り値:
true | 正規表現は規則通り
false | 文法に誤りがある。または、ライブラリが使用できない。

etc_uty.cpp の 2394 行で定義されています。

参照先 CBregexp::Compile()・CBregexp::GetLastMessage()・InitRegexp().

参照元 CPropTypes::DispatchEvent_Regex()・CDlgReplace::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CMacro::HandleCommand().

bool CheckRegexpVersion | ( | HWND | hWnd,
 |  | int | nCmpId,
 |  | bool | bShowMessage
 | ) |

正規表現ライブラリのバージョン取得

正規表現ライブラリの存在を確認し、あればバージョン情報を指定コンポーネントにセットする。 失敗した場合には空文字列をセットする。

引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。 バージョン番号の設定が不要であればNULL。
nCmpId | [in] バージョン文字列を設定するコンポーネントID
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
戻り値:
true | バージョン番号の設定に成功
false | 正規表現ライブラリの初期化に失敗

etc_uty.cpp の 2367 行で定義されています。

参照先 CBregexp::GetVersion()・InitRegexp()・NULL.

参照元 CPropTypes::DispatchEvent_Regex()・CDlgGrep::OnBnClicked()・CDlgFind::OnBnClicked().

BOOL CheckSystemResources ( const char * pszAppName )

etc_uty.cpp の 413 行で定義されています。

参照先 FALSE・GetSystemResources()・MYMESSAGEBOX・NULL・TRUE.

void CutLastYenFromDirectoryPath ( char * pszFolder )

etc_uty.cpp の 1703 行で定義されています。

参照先 CMemory::MemCharPrev().

参照元 SelectDir().

int FuncID_To_HelpContextID ( int nFuncID )

機能番号に応じてヘルプトピック番号を返す

作者:
Stonee
日付:
2001/02/23
引数:
nFuncID 機能番号
戻り値:
ヘルプトピック番号。該当IDが無い場合には0を返す。
内容はcase文の羅列。

history
2001.12.22 YAZAKI sakura.hhを参照するように変更

etc_uty.cpp の 1899 行で定義されています。

参照先 F_1PageDown・F_1PageDown_Sel・F_1PageUp・F_1PageUp_Sel・F_ABOUT・F_ACTIVATE_SQLPLUS・F_BASE64DECODE・F_BEGIN_BOX・F_BEGIN_SEL・F_BIND_WINDOW・F_BOOKMARK_NEXT・F_BOOKMARK_PREV・F_BOOKMARK_RESET・F_BOOKMARK_SET・F_BOOKMARK_VIEW・F_BRACKETPAIR・F_BROWSE・F_CANCEL_MODE・F_CASCADE・F_CHGMOD_EOL_CR・F_CHGMOD_EOL_CRLF・F_CHGMOD_EOL_LF・F_CHGMOD_INS・F_CODECNV_AUTO2SJIS・F_CODECNV_EMAIL・F_CODECNV_EUC2SJIS・F_CODECNV_SJIS2EUC・F_CODECNV_SJIS2JIS・F_CODECNV_SJIS2UTF7・F_CODECNV_SJIS2UTF8・F_CODECNV_UNICODE2SJIS・F_CODECNV_UNICODEBE2SJIS・F_CODECNV_UTF72SJIS・F_CODECNV_UTF82SJIS・F_COMPARE・F_COPY・F_COPY_ADDCRLF・F_COPY_CRLF・F_COPYFNAME・F_COPYLINES・F_COPYLINESASPASSAGE・F_COPYLINESWITHLINENUMBER・F_COPYPATH・F_COPYTAG・F_CREATEKEYBINDLIST・F_CTRL_CODE_DIALOG・F_CURLINECENTER・F_CUSTMENU_1・F_CUSTMENU_10・F_CUSTMENU_11・F_CUSTMENU_12・F_CUSTMENU_13・F_CUSTMENU_14・F_CUSTMENU_15・F_CUSTMENU_16・F_CUSTMENU_17・F_CUSTMENU_18・F_CUSTMENU_19・F_CUSTMENU_2・F_CUSTMENU_20・F_CUSTMENU_21・F_CUSTMENU_22・F_CUSTMENU_23・F_CUSTMENU_24・F_CUSTMENU_3・F_CUSTMENU_4・F_CUSTMENU_5・F_CUSTMENU_6・F_CUSTMENU_7・F_CUSTMENU_8・F_CUSTMENU_9・F_CUT・F_CUT_LINE・F_DELETE・F_DELETE_BACK・F_DELETE_LINE・F_DIFF_DIALOG・F_DIFF_NEXT・F_DIFF_PREV・F_DIFF_RESET・F_DIRECT_TAGJUMP・F_DOWN・F_DOWN2・F_DOWN2_SEL・F_DOWN_SEL・F_DUPLICATELINE・F_EXECCOMMAND_DIALOG・F_EXECKEYMACRO・F_EXITALL・F_EXITALLEDITORS・F_EXTHELP1・F_EXTHTMLHELP・F_FAVORITE・F_FILE_REOPEN・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UNICODEBE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_FILECLOSE・F_FILECLOSE_OPEN・F_FILENEW・F_FILEOPEN・F_FILEOPEN_DROPDOWN・F_FILESAVE・F_FILESAVEALL・F_FILESAVEAS_DIALOG・F_FILESAVECLOSE・F_FONT・F_GOFILEEND・F_GOFILEEND_SEL・F_GOFILETOP・F_GOFILETOP_SEL・F_GOLINEEND・F_GOLINEEND_SEL・F_GOLINETOP・F_GOLINETOP_SEL・F_GONEXTPARAGRAPH・F_GONEXTPARAGRAPH_SEL・F_GOPREVPARAGRAPH・F_GOPREVPARAGRAPH_SEL・F_GREP_DIALOG・F_GROUPCLOSE・F_HalfPageDown・F_HalfPageDown_Sel・F_HalfPageUp・F_HalfPageUp_Sel・F_HANKATATOZENKAKUHIRA・F_HANKATATOZENKAKUKATA・F_HELP_CONTENTS・F_HELP_SEARCH・F_HOKAN・F_INDENT_SPACE・F_INDENT_TAB・F_INS_DATE・F_INS_TIME・F_ISEARCH_MIGEMO_NEXT・F_ISEARCH_MIGEMO_PREV・F_ISEARCH_NEXT・F_ISEARCH_PREV・F_ISEARCH_REGEXP_NEXT・F_ISEARCH_REGEXP_PREV・F_JUMP_DIALOG・F_JUMP_SRCHSTARTPOS・F_JUMPHIST_NEXT・F_JUMPHIST_PREV・F_JUMPHIST_SET・F_LEFT・F_LEFT_SEL・F_LineCutToEnd・F_LineCutToStart・F_LineDeleteToEnd・F_LineDeleteToStart・F_LOADKEYMACRO・F_LTRIM・F_MAXIMIZE_H・F_MAXIMIZE_V・F_MENU_ALLFUNC・F_MENU_RBUTTON・F_MERGE・F_MINIMIZE_ALL・F_NEXTGROUP・F_NEXTWINDOW・F_OPEN_CCPP・F_OPEN_HfromtoC・F_OPEN_HHPP・F_OPTION・F_OPTION_BACKUP・F_OPTION_CUSTMENU・F_OPTION_EDIT・F_OPTION_FILE・F_OPTION_FNAME・F_OPTION_FORMAT・F_OPTION_GENERAL・F_OPTION_GREP・F_OPTION_HELPER・F_OPTION_KEYBIND・F_OPTION_KEYWORD・F_OPTION_MACRO・F_OPTION_TAB・F_OPTION_TOOLBAR・F_OPTION_TYPE・F_OPTION_WINDOW・F_OUTLINE・F_OUTLINE_TOGGLE・F_PASTE・F_PASTEBOX・F_PLSQL_COMPILE_ON_SQLPLUS・F_PREVGROUP・F_PREVWINDOW・F_PRINT・F_PRINT_PAGESETUP・F_PRINT_PREVIEW・F_PROPERTY_FILE・F_READONLY・F_RECKEYMACRO・F_RECONVERT・F_REDO・F_REDRAW・F_REPLACE_DIALOG・F_RIGHT・F_RIGHT_SEL・F_RTRIM・F_SAVEKEYMACRO・F_SEARCH_BOX・F_SEARCH_CLEARMARK・F_SEARCH_DIALOG・F_SEARCH_NEXT・F_SEARCH_PREV・F_SELECTALL・F_SELECTWORD・F_SHOWFUNCKEY・F_SHOWSTATUSBAR・F_SHOWTAB・F_SHOWTOOLBAR・F_SORT_ASC・F_SORT_DESC・F_SPACETOTAB・F_SPLIT_H・F_SPLIT_V・F_SPLIT_VH・F_TAB_JOINTNEXT・F_TAB_JOINTPREV・F_TAB_MOVELEFT・F_TAB_MOVERIGHT・F_TAB_SEPARATE・F_TABTOSPACE・F_TAGJUMP・F_TAGJUMP_CLOSE・F_TAGJUMP_KEYWORD・F_TAGJUMP_LIST・F_TAGJUMPBACK・F_TAGS_MAKE・F_TILE_H・F_TILE_V・F_TOGGLE_KEY_SEARCH・F_TOHANEI・F_TOHANKAKU・F_TOHANKATA・F_TOLOWER・F_TOPMOST・F_TOUPPER・F_TOZENEI・F_TOZENKAKUHIRA・F_TOZENKAKUKATA・F_TYPE_COLOR・F_TYPE_HELPER・F_TYPE_KEYHELP・F_TYPE_LIST・F_TYPE_REGEX_KEYWORD・F_TYPE_SCREEN・F_UNDO・F_UNINDENT_SPACE・F_UNINDENT_TAB・F_UP・F_UP2・F_UP2_SEL・F_UP_SEL・F_USERMACRO_0・F_UUDECODE・F_WIN_CLOSEALL・F_WIN_OUTPUT・F_WINCLOSE・F_WINLIST・F_WndScrollDown・F_WndScrollUp・F_WordCut・F_WordDelete・F_WordDeleteToEnd・F_WordDeleteToStart・F_WORDLEFT・F_WORDLEFT_SEL・F_WORDRIGHT・F_WORDRIGHT_SEL・F_WRAPWINDOWWIDTH・HLP000015・HLP000017・HLP000018・HLP000019・HLP000020・HLP000021・HLP000022・HLP000023・HLP000024・HLP000025・HLP000026・HLP000027・HLP000028・HLP000029・HLP000030・HLP000032・HLP000033・HLP000034・HLP000035・HLP000036・HLP000037・HLP000038・HLP000039・HLP000040・HLP000041・HLP000042・HLP000043・HLP000044・HLP000045・HLP000046・HLP000047・HLP000048・HLP000049・HLP000050・HLP000051・HLP000052・HLP000053・HLP000054・HLP000055・HLP000056・HLP000057・HLP000059・HLP000060・HLP000061・HLP000062・HLP000063・HLP000064・HLP000065・HLP000066・HLP000067・HLP000069・HLP000070・HLP000071・HLP000072・HLP000073・HLP000074・HLP000075・HLP000076・HLP000081・HLP000082・HLP000083・HLP000084・HLP000085・HLP000086・HLP000087・HLP000088・HLP000091・HLP000092・HLP000093・HLP000094・HLP000095・HLP000096・HLP000097・HLP000098・HLP000100・HLP000101・HLP000102・HLP000103・HLP000111・HLP000113・HLP000114・HLP000116・HLP000117・HLP000118・HLP000119・HLP000120・HLP000121・HLP000122・HLP000123・HLP000124・HLP000125・HLP000126・HLP000127・HLP000128・HLP000132・HLP000134・HLP000136・HLP000137・HLP000138・HLP000139・HLP000140・HLP000141・HLP000142・HLP000143・HLP000144・HLP000145・HLP000146・HLP000148・HLP000150・HLP000156・HLP000157・HLP000158・HLP000159・HLP000160・HLP000161・HLP000162・HLP000163・HLP000164・HLP000165・HLP000166・HLP000167・HLP000168・HLP000169・HLP000170・HLP000171・HLP000172・HLP000173・HLP000174・HLP000175・HLP000178・HLP000179・HLP000180・HLP000181・HLP000182・HLP000183・HLP000184・HLP000186・HLP000187・HLP000188・HLP000189・HLP000190・HLP000191・HLP000192・HLP000194・HLP000195・HLP000196・HLP000197・HLP000198・HLP000199・HLP000200・HLP000201・HLP000202・HLP000203・HLP000205・HLP000206・HLP000207・HLP000208・HLP000209・HLP000210・HLP000211・HLP000212・HLP000213・HLP000214・HLP000215・HLP000218・HLP000219・HLP000220・HLP000221・HLP000222・HLP000223・HLP000224・HLP000225・HLP000226・HLP000227・HLP000228・HLP000229・HLP000230・HLP000231・HLP000232・HLP000233・HLP000234・HLP000235・HLP000236・HLP000237・HLP000238・HLP000239・HLP000240・HLP000241・HLP000242・HLP000243・HLP000244・HLP000245・HLP000246・HLP000247・HLP000248・HLP000249・HLP000251・HLP000252・HLP000253・HLP000254・HLP000255・HLP000256・HLP000257・HLP000258・HLP000262・HLP000263・HLP000264・HLP000265・HLP000273・HLP000274・HLP000277・HLP000279・HLP000280・HLP000281・HLP000282・HLP000283・HLP000285・HLP000287・HLP000289・HLP000290・HLP000291・HLP000303・HLP000304・HLP000305・HLP000306・HLP000307・HLP000308・HLP000309・HLP000310・HLP000311・HLP000312・HLP000313・HLP000314・HLP000315・HLP000317・HLP000318・HLP000320・HLP000321・HLP000322・HLP000323・HLP000324・HLP000325・HLP000326・HLP000327・IDM_SELMRU・IDM_SELOPENFOLDER・IDM_SELWINDOW・MAX_CUSTMACRO・MAX_EDITWINDOWS・MAX_MRU・MAX_OPENFOLDER.

参照元 CPrintPreview::DispatchEvent_PPB()・CDlgOpenFile::DoModalSaveDlg()・CMenuDrawer::DrawItem()・CDlgTypeList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・CPropTypes::OnHelp()・CPropCommon::OnHelp()・CEditWnd::OnHelp_MenuItem().

HICON GetAppIcon | ( | HINSTANCE | hInst,
 |  | int | nResource,
 |  | const char * | szFile,
 |  | bool | bSmall
 | ) |

アプリケーションアイコンの取得

アイコンファイルが存在する場合はそこから，無い場合は リソースファイルから取得する

引数:
hInst | [in] Instance Handle
nResource | [in] デフォルトアイコン用Resource ID
szFile | [in] アイコンファイル名
bSmall | [in] true: small icon (16x16) / false: large icon (32x32)
戻り値:
アイコンハンドル．失敗した場合はNULL．
日付:
2002.12.02 genta 新規作成 2007.05.20 ryoji iniファイルパスを優先
作者:
genta

etc_uty.cpp の 2767 行で定義されています。

参照先 _MAX_PATH・GetInidirOrExedir()・NULL.

参照元 CEditWnd::Create()・CEditApp::CreateTrayIcon()・CEditWnd::GetDefaultIcon()・CTabWnd::InitImageList()・CDlgGrep::OnInitDialog()・CDlgAbout::OnInitDialog().

void GetAppVersionInfo | ( | HINSTANCE | hInstance,
 |  | int | nVersionResourceID,
 |  | DWORD * | pdwProductVersionMS,
 |  | DWORD * | pdwProductVersionLS
 | ) |

リソースから製品バージョンの取得

日付:
2004.05.13 Moca 一度取得したらキャッシュする

etc_uty.cpp の 475 行で定義されています。

参照先 NULL・VS_VERSION_INFO_HEAD::Value.

参照元 CEditApp::CreateTrayIcon()・CShareData::Init()・CDlgAbout::OnInitDialog().

SAKURA_CORE_API int GetColorIndexByName ( const char * name )

etc_uty.cpp の 2594 行で定義されています。

参照先 COLORIDX_LAST・g_ColorAttributeArr.

SAKURA_CORE_API const char* GetColorNameByIndex ( int index )

etc_uty.cpp の 2607 行で定義されています。

参照先 g_ColorAttributeArr・ColorAttributeData_t::szName.

DWORD GetComctl32Version ( )

etc_uty.cpp の 3189 行で定義されています。

参照先 GetDllVersion()・PACKVERSION.

参照元 IsVisualStyle().

int getCtrlKeyState ( void )

Shift,Ctrl,Altキー状態の取得

戻り値:
nIdx Shift,Ctrl,Altキー状態
日付:
2004.10.10 関数化

etc_uty.cpp の 3005 行で定義されています。

参照先 _ALT・_CTRL・_SHIFT.

参照元 HokanList_SubclassProc()・CDlgFuncList::Key2Command()・CEditView::OnMBUTTONDOWN()・CEditView::OnRBUTTONUP()・CFuncKeyWnd::OnTimer()・CEditView::OnXLBUTTONDOWN()・CEditView::OnXRBUTTONDOWN().

bool GetDateTimeFormat | ( | TCHAR * | szResult,
 |  | int | size,
 |  | const TCHAR * | format,
 |  | const SYSTEMTIME & | systime
 | ) |

日時をフォーマット

引数:
[out] | 書式変換後の文字列
[in] | バッファサイズ
[in] | format | 書式
[in] | systime | 書式化したい日時
戻り値:
bool true
覚え書き:
Y y m d H M S の変換に対応
作者:
aroka
日付:
2005.11.21 新規
TODO:
出力バッファのサイズチェックを行う

etc_uty.cpp の 3071 行で定義されています。

DWORD GetDllVersion ( LPCTSTR lpszDllName )

シェルやコモンコントロール DLL のバージョン番号を取得

引数:
[in] lpszDllName DLL ファイルのパス
戻り値:
DLL のバージョン番号（失敗時は 0）
作者:
? (from MSDN Library document)
日付:
2006.06.17 ryoji MSDNライブラリから引用

etc_uty.cpp の 3139 行で定義されています。

参照先 PACKVERSION.

参照元 GetComctl32Version().

void GetExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |

exeファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

引数:
pDir | [out] EXEファイルのあるディレクトリを返す場所． 予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．
作者:
genta
日付:
2002.12.02 genta

2007.05.20 ryoji 関数名変更（旧：GetExecutableDir）、汎用テキストマッピング化

etc_uty.cpp の 2657 行で定義されています。

参照先 _MAX_PATH・NULL・SplitPath_FolderAndFile().

参照元 _tfopen_absexe()・GetHelpFilePath()・GetInidirOrExedir()・CEditView::ViewDiffInfo().

LPTSTR GetHelpFilePath | ( | LPTSTR | pszHelpFile,
 |  | unsigned int | nMaxLen
 | ) |

ヘルプファイルのフルパスを返す

引数:
pszHelpFile | [in] パスを格納するバッファ
nMaxLen | [in] バッファに格納可能な文字数：デフォルト値＝_MAX_PATH
戻り値:
パスを格納したバッファのポインタ
覚え書き:
実行ファイルと同じ位置の sakura.chm ファイルを返す。 パスが UNC のときは _MAX_PATH に収まらない可能性がある。
日付:
2002/01/19 aroka ；nMaxLen 引数追加

etc_uty.cpp の 297 行で定義されています。

参照先 _MAX_PATH・GetExedir().

参照元 CDialog::CDialog()・CDlgInput1::CDlgInput1()・CDlgOpenFile::CDlgOpenFile()・CEditView::Command_HELP_CONTENTS()・CEditView::Command_HELP_SEARCH()・CPropCommon::CPropCommon()・CPrintPreview::DispatchEvent_PPB()・CEditWnd::OnCommand()・CEditWnd::OnHelp_MenuItem().

void GetInidir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |

INIファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

引数:
pDir | [out] INIファイルのあるディレクトリを返す場所． 予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．
作者:
ryoji
日付:
2007.05.19 新規作成（GetExedirベース）

etc_uty.cpp の 2686 行で定義されています。

参照先 _MAX_PATH・CShareData::GetIniFileName()・CShareData::getInstance()・NULL・SplitPath_FolderAndFile().

参照元 _tfopen_absini()・CMigemo::GetDllName()・GetInidirOrExedir()・CShareData::Init()・PropSheetWndProc().

void GetInidirOrExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile,
 |  | BOOL | bRetExedirIfFileEmpty
 | ) |

INIファイルまたはEXEファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す（INIを優先）．

引数:
pDir | [out] INIファイルまたはEXEファイルのあるディレクトリを返す場所． 予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．
bRetExedirIfFileEmpty | [in] ファイル名の指定が空の場合はEXEファイルのフルパスを返す．
作者:
ryoji
日付:
2007.05.22 新規作成

etc_uty.cpp の 2717 行で定義されています。

参照先 _MAX_PATH・GetExedir()・GetInidir()・CShareData::getInstance()・NULL.

参照元 _tfopen_absini()・CEditView::Command_LOADKEYMACRO()・CImageListMgr::Create()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・GetAppIcon()・CMigemo::GetDllName()・CShareData::GetMacroFilename()・CMigemo::migemo_load_all()・CPropCommon::OnFileDropdown_Macro()・CPropCommon::SelectBaseDir_Macro()・CEditView::TagJumpSub().

bool GetLastWriteTimestamp | ( | const TCHAR * | filename,
 |  | FILETIME & | ftime
 | ) |

ファイルの更新日時を取得

引数:
[in] | filename | ファイルのパス
[out] | ftime | 更新日時を返す場所
戻り値:
true: 成功, false: FindFirstFile失敗
作者:
genta by assitance with ryoji
日付:
2005.10.22 new
覚え書き:
書き込み後にファイルを再オープンしてタイムスタンプを得ようとすると ファイルがまだロックされていることがあり，上書き禁止と誤認されることがある． FindFirstFileを使うことでファイルのロック状態に影響されずにタイムスタンプを 取得できる．(ryoji)

etc_uty.cpp の 3039 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp()・CDlgAbout::OnInitDialog()・CDocLineMgr::WriteFile().

void GetLineColm | ( | const char * | pLine,
 |  | int * | pnJumpToLine,
 |  | int * | pnJumpToColm
 | ) |

etc_uty.cpp の 1507 行で定義されています。

参照元 CEditView::Command_TAGJUMP().

BOOL GetLongFileName | ( | const char * | pszFilePathSrc,
 |  | char * | pszFilePathDes
 | ) |

ロングファイル名を取得する

引数:
[in] | pszFilePathSrc | 変換元パス名
[out] | pszFilePathDes | 結果書き込み先 (長さMAX_PATHの領域が必要)
日付:
Oct. 2, 2005 genta GetFilePath APIを使って書き換え

Oct. 4, 2005 genta 相対パスが絶対パスに直されなかった

Oct. 5, 2005 Moca 相対パスを絶対パスに変換するように

etc_uty.cpp の 317 行で定義されています。

参照先 _MAX_PATH・FALSE・TRUE.

参照元 OnFolderProc()・CEditDoc::OpenFile()・CEditView::TagJumpSub().

bool GetMonitorWorkRect | ( | HMONITOR | hMon,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |

etc_uty.cpp の 2943 行で定義されています。

参照先 NULL.

bool GetMonitorWorkRect | ( | POINT | pt,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |

etc_uty.cpp の 2937 行で定義されています。

bool GetMonitorWorkRect | ( | LPCRECT | prc,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |

etc_uty.cpp の 2931 行で定義されています。

bool GetMonitorWorkRect | ( | HWND | hWnd,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |

指定したウィンドウ／長方形領域／点／モニタに対応するモニタ作業領域を取得する

モニタ作業領域：画面全体からシステムのタスクバーやアプリケーションのツールバーが占有する領域を除いた領域

引数:
hWnd/prc/pt/hMon | [in] 目的のウィンドウ／長方形領域／点／モニタ
prcWork | [out] モニタ作業領域
prcMonitor | [out] モニタ画面全体
戻り値:
true | 対応するモニタはプライマリモニタ
false | 対応するモニタは非プライマリモニタ
覚え書き:
出力パラメータの prcWork や prcMonior に NULL を指定した場合、 該当する領域情報は出力しない。呼び出し元は欲しいものだけを指定すればよい。

etc_uty.cpp の 2922 行で定義されています。

参照元 CEditView::Command_MAXIMIZE_H()・CEditView::Command_MAXIMIZE_V()・CEditView::Command_TILE_H()・CEditView::Command_TILE_V()・CEditWnd::Create()・CEditWnd::CreateFileDropDownMenu()・GetMonitorWorkRect()・CDialog::OnInitDialog()・CEditWnd::OnSysMenuTimer()・CEditWnd::PopupWinList()・PropSheetWndProc()・CTabWnd::Separate()・CTabWnd::SeparateGroup()・CEditView::ShowKeywordHelp().

const char* GetNextLimitedLengthText | ( | const char * | pText,
 |  | int | nTextLen,
 |  | int | nLimitLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn
 | ) |

指定長以下のテキストに切り分ける

引数:
pText | [in] 切り分け対象となる文字列へのポインタ
nTextLen | [in] 切り分け対象となる文字列全体の長さ
nLimitLen | [in] 切り分ける長さ
pnLineLen | [out] 実際に取り出された文字列の長さ
pnBgn | [i/o] 入力: 切り分け開始位置, 出力: 取り出された文字列の次の位置
覚え書き:
2003.05.25 未使用のようだ

etc_uty.cpp の 1648 行で定義されています。

参照先 CMemory::GetSizeOfChar()・NULL.

const char* GetNextLine | ( | const char * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) |

etc_uty.cpp の 1605 行で定義されています。

参照先 EOL_NONE・CEOL::GetTypeFromString()・NULL・CEOL::SetType().

参照元 CEditView::Command_TRIM2()・CFileLoad::GetNextLineCharCode()・CMemory::SPACEToTAB()・CMemory::TABToSPACE().

BOOL GetSpecialFolderPath | ( | int | nFolder,
 |  | LPTSTR | pszPath
 | ) |

特殊フォルダのパスを取得する SHGetSpecialFolderPath API（shell32.dll version 4.71以上が必要）と同等の処理をする

作者:
ryoji
日付:
2007.05.19 新規

etc_uty.cpp の 3257 行で定義されています。

参照先 BOOL・FALSE・NULL.

参照元 CShareData::GetIniFileNameDirect().

BOOL GetSystemResources | ( | int * | pnSystemResources,
 |  | int * | pnUserResources,
 |  | int * | pnGDIResources
 | ) |

etc_uty.cpp の 376 行で定義されています。

参照先 FALSE・GFSR_GDIRESOURCES・GFSR_SYSTEMRESOURCES・GFSR_USERRESOURCES・NULL・TRUE.

参照元 CheckSystemResources().

bool InitRegexp | ( | HWND | hWnd,
 |  | CBregexp & | rRegexp,
 |  | bool | bShowMessage
 | ) |

与えられた正規表現ライブラリの初期化を行う． メッセージフラグがONで初期化に失敗したときはメッセージを表示する．

引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。 バージョン番号の設定が不要であればNULL。
rRegexp | [in] チェックに利用するCBregexpクラスへの参照
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
戻り値:
true | 初期化成功
false | 初期化に失敗
日付:
2007.08.12 genta 共通設定からDLL名を取得する

etc_uty.cpp の 2329 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・CDllHandler::Init()・DLLSHAREDATA::m_Common・Common::m_szRegexpLib・NULL.

参照元 CEditView::ChangeCurRegexp()・CheckRegexpSyntax()・CheckRegexpVersion()・CEditView::DoGrep()・CEditView::ISearchWordMake().

bool IsFileExists | ( | const char * | path,
 |  | bool | bFileOnly
 | ) |

ファイルの存在チェック

指定されたパスのファイルが存在するかどうかを確認する。

引数:
path | [in] 調べるパス名
bFileOnly | [in] true: ファイルのみ対象 / false: ディレクトリも対象
戻り値:
true | ファイルは存在する
false | ファイルは存在しない
作者:
genta
日付:
2002.01.04 新規作成

etc_uty.cpp の 1311 行で定義されています。

参照元 MyWinHelp()・OnFolderProc().

bool IsFilePath | ( | const char * | pLine,
 |  | int * | pnBgn,
 |  | int * | pnPathLen,
 |  | bool | bFileOnly
 | ) |

ファイル名の切り出し

指定文字列からファイル名と認識される文字列を取り出し、 先頭Offset及び長さを返す。

引数:
pLine | [in] 探査対象文字列
pnBgn | [out] 先頭offset。pLine + *pnBgnがファイル名先頭へのポインタ。
pnPathLen | [out] ファイル名の長さ
bFileOnly | [in] true: ファイルのみ対象 / false: ディレクトリも対象
戻り値:
true | ファイル名発見
false | ファイル名は見つからなかった
日付:
2002.01.04 genta ディレクトリを検査対象外にする機能を追加

2003.01.15 matsumo gccのエラーメッセージ(:区切り)でもファイルを検出可能に

2004.05.29 genta C:\からファイルCが切り出されるのを防止

2004.11.13 genta/Moca ファイル名先頭の*?を考慮

2005.01.10 genta 変数名変更 j -> cur_pos

2005.01.23 genta 警告抑制のため，gotoをreturnに変更

etc_uty.cpp の 1346 行で定義されています。

参照元 CEditView::Command_TAGJUMP().

bool IsLocalDrive ( const char * pszDrive )

ローカルドライブの判定

引数:
[in] pszDrive ドライブ名を含むパス名
戻り値:
true | ローカルドライブ
false | リムーバブルドライブ．ネットワークドライブ．
作者:
MIK
日付:
2001.03.29 MIK 新規作成

2001.12.23 YAZAKI MRUの別クラス化に伴う関数化

2002.01.28 genta 戻り値の型をBOOLからboolに変更．

2005.11.12 aroka 文字判定部変更

2006.01.08 genta CMRU::IsRemovableDriveとCEditDocIsLocalDriveが 実質的に同じものだった

etc_uty.cpp の 1491 行で定義されています。

参照先 _MAX_DRIVE.

参照元 CEditDoc::MakeBackUp().

BOOL IsMailAddress | ( | const char * | pszBuf,
 |  | int | nBufLen,
 |  | int * | pnAddressLenfth
 | ) |

etc_uty.cpp の 654 行で定義されています。

参照先 FALSE・NULL・TRUE.

参照元 IsURL()・CEditView::OnLBUTTONDBLCLK().

int IsNumber | ( | const char * | buf,
 |  | int | offset,
 |  | int | length
 | ) |

etc_uty.cpp の 777 行で定義されています。

BOOL IsURL | ( | const char * | pszLine,
 |  | int | nLineLen,
 |  | int * | pnMatchLen
 | ) |

文字列がURLかどうかを検査する。

引数:
pszLine | [in] 文字列
nLineLen | [in] 文字列の長さ
pnMatchLen | [out] URLの長さ
戻り値:
TRUE | URLである
FALSE | URLでない
覚え書き:
関数内に定義したテーブルは必ず static const 宣言にすること(性能に影響します)。 url_char の値は url_table の配列番号+1 になっています。 新しい URL を追加する場合は define 値を修正してください。 url_table は頭文字がアルファベット順になるように並べてください。

etc_uty.cpp の 573 行で定義されています。

参照先 FALSE・IsMailAddress()・TRUE.

参照元 CEditView::IsCurrentPositionURL().

BOOL IsVisualStyle ( )

自分が現在ビジュアルスタイル表示状態かどうかを示す Win32 API の IsAppThemed() はこれとは一致しない（IsAppThemed() と IsThemeActive() との差異は不明）

戻り値:
ビジュアルスタイル表示状態(TRUE)／クラッシック表示状態(FALSE)
作者:
ryoji
日付:
2006.06.17 ryoji 新規

etc_uty.cpp の 3205 行で定義されています。

参照先 GetComctl32Version()・CUxTheme::getInstance()・PACKVERSION.

参照元 CEditWnd::CreateToolBar()・CShareData::InitToolButtons()・CTabWnd::Open()・CTabWnd::TabWndDispatchEvent().

int LimitStringLengthB | ( | const char * | pszData,
 |  | int | nDataLength,
 |  | int | nLimitLengthB,
 |  | CMemory & | cmemDes
 | ) |

etc_uty.cpp の 1677 行で定義されています。

参照先 CMemory::GetSizeOfChar().

参照元 CEditWnd::WinListMenu().

TCHAR* my_strtok | ( | TCHAR * | pBuffer,
 |  | int | nLen,
 |  | int * | pnOffset,
 |  | const TCHAR * | pDelimiter
 | ) |

空白を含むファイル名を考慮したトークンの分割

先頭にある連続した区切り文字は無視する．

引数:
pBuffer | [in] 文字列バッファ(終端があること)
nLen | [in] 文字列の長さ
pnOffset | [in/out] オフセット
pDelimiter | [in] 区切り文字
戻り値:
トークン
日付:
2004.02.15 みく 最適化

etc_uty.cpp の 255 行で定義されています。

参照先 NULL.

参照元 CEditView::DoGrepTree()・CEditDoc::MakeTopicList_asm().

int CALLBACK MYBrowseCallbackProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | LPARAM | lParam,
 |  | LPARAM | lpData
 | ) |

etc_uty.cpp の 165 行で定義されています。

参照先 TRUE.

参照元 SelectDir().

HWND MyGetAncestor | ( | HWND | hWnd,
 |  | UINT | gaFlags
 | ) |

指定したウィンドウの祖先のハンドルを取得する

GetAncestor() APIがWin95で使えないのでそのかわり

作者:
ryoji
日付:
2007.07.01 ryoji 新規

etc_uty.cpp の 2965 行で定義されています。

参照先 GA_PARENT・GA_ROOT・GA_ROOTOWNER・GetWindowLongPtr・NULL.

参照元 CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CEditApp::OpenNewEditor().

void MyInitCommonControls ( )

コモンコントロールを初期化する

作者:
ryoji
日付:
2006.06.21 ryoji 新規

etc_uty.cpp の 3230 行で定義されています。

参照先 BOOL・FALSE・NULL.

参照元 CEditWnd::Create().

int MyPropertySheet ( LPPROPSHEETHEADER lppsph )

独自拡張プロパティシート（共通設定／タイプ別設定画面用）

作者:
ryoji
日付:
2007.05.25 新規

etc_uty.cpp の 3415 行で定義されています。

参照先 CShareData::getInstance()・PropSheetProc().

参照元 CPropTypes::DoPropertySheet().

BOOL MyWinHelp | ( | HWND | hwndCaller,
 |  | LPCTSTR | lpszHelp,
 |  | UINT | uCommand,
 |  | DWORD_PTR | dwData
 | ) |

WinHelp のかわりに HtmlHelp を呼び出す

作者:
ryoji
日付:
2006.07.22 ryoji 新規

etc_uty.cpp の 56 行で定義されています。

参照先 DWORD_PTR・FALSE・IsFileExists()・NULL・OpenHtmlHelp()・TRUE.

参照元 CEditView::Command_HELP_SEARCH()・CDlgInput1::DispatchEvent()・CPropCommon::DispatchEvent_p2()・CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p9()・CPrintPreview::DispatchEvent_PPB()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・OFNHookProcMain()・CDlgWinSize::OnBnClicked()・CDlgTypeList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgSameColor::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・CEditWnd::OnCommand()・CDialog::OnContextMenu()・CPropTypes::OnHelp()・CPropCommon::OnHelp()・CEditWnd::OnHelp_MenuItem()・CDialog::OnPopupHelp()・ShowWinHelpContents().

DWORD NetConnect ( const char strNetWorkPass[] )

etc_uty.cpp の 2459 行で定義されています。

参照元 CEditWnd::OnCommand().

HWND OpenHtmlHelp | ( | HWND | hWnd,
 |  | LPCSTR | szFile,
 |  | UINT | uCmd,
 |  | DWORD_PTR | data,
 |  | bool | msgflag
 | ) |

HTML Helpを開く

HTML Helpが利用可能であれば引数をそのまま渡し、そうでなければメッセージを表示する。

引数:
hWnd | [in] 呼び出し元ウィンドウのウィンドウハンドル
szFile | [in] HTML Helpのファイル名。 不等号に続けてウィンドウタイプ名を指定可能。
uCmd | [in] HTML Help に渡すコマンド
data | [in] コマンドに応じたデータ
msgflag | [in] エラーメッセージを表示するか。省略時はtrue。
戻り値:
開いたヘルプウィンドウのウィンドウハンドル。開けなかったときはNULL。

etc_uty.cpp の 2437 行で定義されています。

参照先 g_cHtmlHelp・CHtmlHelp::HtmlHelp・CDllHandler::Init().

参照元 MyWinHelp().

void PreventVisualStyle ( HWND hWnd )

指定ウィンドウでビジュアルスタイルを使わないようにする

引数:
[in] hWnd ウィンドウ
作者:
ryoji
日付:
2006.06.23 ryoji 新規

etc_uty.cpp の 3219 行で定義されています。

参照先 CUxTheme::getInstance()・CUxTheme::SetWindowTheme().

参照元 CEditWnd::CreateToolBar().

static int CALLBACK PropSheetProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | LPARAM | lParam
 | ) | [static]

独自拡張プロパティシートのコールバック関数

作者:
ryoji
日付:
2007.05.25 新規

etc_uty.cpp の 3397 行で定義されています。

参照先 FALSE・GWLP_WNDPROC・LONG_PTR・NULL・PropSheetWndProc()・SetWindowLongPtr.

参照元 MyPropertySheet().

static LRESULT CALLBACK PropSheetWndProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static]

独自拡張プロパティシートのウィンドウプロシージャ

作者:
ryoji
日付:
2007.05.25 新規

etc_uty.cpp の 3289 行で定義されています。

参照先 _MAX_PATH・FALSE・GetInidir()・CShareData::getInstance()・GetMonitorWorkRect()・CShareData::GetShareData()・GSTR_APPNAME・GWLP_WNDPROC・LONG_PTR・DLLSHAREDATA::m_szIMPORTFOLDER・MYMESSAGEBOX・NULL・SetWindowLongPtr.

参照元 PropSheetProc().

bool ReadRegistry | ( | HKEY | Hive,
 |  | char const * | Path,
 |  | char const * | Item,
 |  | char * | Buffer,
 |  | unsigned | BufferSize
 | ) |

レジストリから文字列を読み出す．

引数:
Hive | [in] HIVE
Path | [in] レジストリキーへのパス
Item | [in] レジストリアイテム名．NULLで標準のアイテム．
Buffer | [out] 取得文字列を格納する場所
BufferSize | [in] Bufferの指す領域のサイズ
戻り値:
true | 値の取得に成功
false | 値の取得に失敗
作者:
鬼
日付:
2002.09.10 genta CWSH.cppから移動

etc_uty.cpp の 2627 行で定義されています。

参照先 NULL.

参照元 CWSHMacroManager::Creator()・CEditWnd::GetRelatedIcon()・CEditView::OnMOUSEWHEEL().

BOOL ResolveShortcutLink | ( | HWND | hwnd,
 |  | LPCSTR | lpszLinkFile,
 |  | LPSTR | lpszPath
 | ) |

etc_uty.cpp の 1790 行で定義されています。

参照先 BOOL・FALSE・NULL・TRUE.

参照元 CEditWnd::OnDropFiles()・OnFolderProc().

BOOL SelectDir | ( | HWND | hWnd,
 |  | const char * | pszTitle,
 |  | const char * | pszInitFolder,
 |  | char * | strFolderName
 | ) |

etc_uty.cpp の 189 行で定義されています。

参照先 BOOL・CutLastYenFromDirectoryPath()・FALSE・MYBrowseCallbackProc()・NULL・TRUE.

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::DispatchEvent_PROP_BACKUP()・CDlgGrep::OnBnClicked()・CPropCommon::SelectBaseDir_Macro()・CDlgTagsMake::SelectFolder().

SAKURA_CORE_API bool SetClipboardText | ( | HWND | hwnd,
 |  | const char * | pszText,
 |  | int | length
 | ) |

クリープボードにText形式でコピーする

引数:
hwnd | [in] クリップボードのオーナー
pszText | [in] 設定するテキスト
length | [in] 有効なテキストの長さ
戻り値:
true | コピー成功
false | コピー失敗。場合によってはクリップボードに元の内容が残る
日付:
2004.02.17 Moca 各所のソースを統合

etc_uty.cpp の 2286 行で定義されています。

参照先 FALSE・NULL.

参照元 CEditView::Command_CREATEKEYBINDLIST()・CDlgFuncList::OnBnClicked().

void ShowWinHelpContents | ( | HWND | hwnd,
 |  | LPCTSTR | lpszHelp
 | ) |

etc_uty.cpp の 2577 行で定義されています。

参照先 COsVersionInfo::HasWinHelpContentsProblem()・MyWinHelp().

参照元 CEditView::Command_HELP_CONTENTS()・CEditWnd::OnCommand().

void SplitPath_FolderAndFile | ( | const char * | pszFilePath,
 |  | char * | pszFolder,
 |  | char * | pszFile
 | ) |

etc_uty.cpp の 338 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・_MAX_EXT・_MAX_FNAME・CMemory::MemCharPrev()・NULL.

参照元 GetExedir()・GetInidir()・CPropTypes::Import_KeyHelp()・CDlgGrep::OnBnClicked()・OnFolderProc()・CEditView::ViewDiffInfo().

char* strncpy_ex | ( | char * | dst,
 |  | size_t | dst_count,
 |  | const char * | src,
 |  | size_t | src_count
 | ) |

文字数制限機能付きstrncpy

コピー先のバッファサイズから溢れないようにstrncpyする。 バッファが不足する場合には2バイト文字の切断もあり得る。 末尾のは付与されないが、コピーはコピー先バッファサイズ-1までにしておく。

引数:
dst | [in] コピー先領域へのポインタ
dst_count | [in] コピー先領域のサイズ
src | [in] コピー元
src_count | [in] コピーする文字列の末尾
戻り値:
実際にコピーされたコピー先領域の1つ後を指すポインタ
作者:
genta
日付:
2003.04.03 genta

etc_uty.cpp の 2841 行で定義されています。

変数

CHtmlHelp g_cHtmlHelp

HTML Helpコンポーネントのアクセスを提供する。 内部で保持すべきデータは特になく、至る所から使われるのでGlobal変数にするが、 直接のアクセスはOpenHtmlHelp()関数のみから行う。 他のファイルからはCHtmlHelpクラスは隠されている。

etc_uty.cpp の 2420 行で定義されています。

参照元 OpenHtmlHelp().

DWORD s_dwComctl32Version = PACKVERSION(0, 0) [static]

Comctl32.dll のバージョン番号を取得

戻り値:
Comctl32.dll のバージョン番号（失敗時は 0）
作者:
ryoji
日付:
2006.06.17 ryoji 新規

etc_uty.cpp の 3188 行で定義されています。

WNDPROC s_pOldPropSheetWndProc [static]

etc_uty.cpp の 3283 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:22:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: etc_uty.cpp ソースファイル

etc_uty.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000-2001, jepro, genta
00009     Copyright (C) 2001, shoji masami, Misaka, Stonee, MIK, YAZAKI
00010     Copyright (C) 2002, genta, aroka, hor, MIK, 鬼, Moca, YAZAKI
00011     Copyright (C) 2003, genta, matsumo, Moca, MIK
00012     Copyright (C) 2004, genta, novice, Moca, MIK
00013     Copyright (C) 2005, genta, D.S.Koba, Moca, ryoji, aroka
00014     Copyright (C) 2006, genta, ryoji
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 //  Sep. 10, 2005 genta GetLongPathNameのエミュレーション関数の実体生成のため
00022 #define COMPILE_NEWAPIS_STUBS
00023 // 2006.04.21 ryoji マルチモニタのエミュレーション関数の実体生成のため
00024 #define COMPILE_MULTIMON_STUBS
00025
00026 #include "stdafx.h"
00027 #include <Shlwapi.h>    // 2006.06.17 ryoji
00028 #include <HtmlHelp.h>
00029 #include <io.h>
00030 #include <memory.h>     // Apr. 03, 2003 genta
00031 #include "etc_uty.h"
00032 #include "debug.h"
00033 #include "CMemory.h"
00034 #include "funccode.h"   //Stonee, 2001/02/23
00035 #include "mymessage.h"  // 2007.04.03 ryoji
00036
00037 #include "WINNETWK.H"   //Stonee, 2001/12/21
00038 #include "sakura.hh"    //YAZAKI, 2001/12/11
00039 #include "CEol.h"// 2002/2/3 aroka
00040 #include "CBregexp.h"// 2002/2/3 aroka
00041 #include "COsVersionInfo.h"
00042 #include "my_icmp.h" // 2002/11/30 Moca 追加
00043 #include "charcode.h"  // 2006/08/28 rastiv
00044
00045 #include "CShareData.h"
00046 #include "CMRU.h"
00047 #include "CMRUFolder.h"
00048 #include "Keycode.h"// novice 2004/10/10
00049 #include "CUxTheme.h"   // 2007.04.01 ryoji
00050
00056 BOOL MyWinHelp(HWND hwndCaller, LPCTSTR lpszHelp, UINT uCommand, DWORD_PTR dwData)
00057 {
00058     UINT uCommandOrg = uCommand;    // WinHelp のコマンド
00059     bool bDesktop = false;  // デスクトップを親にしてヘルプ画面を出すかどうか
00060     HH_POPUP hp;    // ポップアップヘルプ用の構造体
00061
00062     // Note: HH_TP_HELP_CONTEXTMENU や HELP_WM_HELP ではヘルプコンパイル時の
00063     // トピックファイルを Cshelp.txt 以外にしている場合、
00064     // そのファイル名を .chm パス名に追加指定する必要がある。
00065     //     例）sakura.chm::/xxx.txt
00066
00067     switch( uCommandOrg )
00068     {
00069     case HELP_COMMAND:  // [ヘルプ]-[目次]
00070     case HELP_CONTENTS:
00071         uCommand = HH_DISPLAY_TOC;
00072         hwndCaller = ::GetDesktopWindow();
00073         bDesktop = true;
00074         break;
00075     case HELP_KEY:  // [ヘルプ]-[キーワード検索]
00076         uCommand = HH_DISPLAY_INDEX;
00077         hwndCaller = ::GetDesktopWindow();
00078         bDesktop = true;
00079         break;
00080     case HELP_CONTEXT:  // メニュー上での[F1]キー／ダイアログの[ヘルプ]ボタン
00081         uCommand = HH_HELP_CONTEXT;
00082         hwndCaller = ::GetDesktopWindow();
00083         bDesktop = true;
00084         break;
00085     case HELP_CONTEXTMENU:  // コントロール上での右クリック
00086     case HELP_WM_HELP:      // [？]ボタンを押してコントロールをクリック／コントロールにフォーカスを置いて[F1]キー
00087         uCommand = HH_DISPLAY_TEXT_POPUP;
00088         {
00089             // ポップアップヘルプ用の構造体に値をセットする
00090             HWND hwndCtrl;  // ヘルプ表示対象のコントロール
00091             int nCtrlID;    // 対象コントロールの ID
00092             DWORD* pHelpIDs;    // コントロール ID とヘルプ ID の対応表へのポインタ
00093
00094             memset(&hp, 0, sizeof(HH_POPUP));   // 構造体をゼロクリア
00095             hp.cbStruct = sizeof(HH_POPUP);
00096             hp.pszFont = TEXT("ＭＳ Ｐゴシック, 9");
00097             hp.clrForeground = hp.clrBackground = -1;
00098             hp.rcMargins.left = hp.rcMargins.top = hp.rcMargins.right = hp.rcMargins.bottom = -1;
00099             if( uCommandOrg == HELP_CONTEXTMENU ){
00100                 // マウスカーソル位置から対象コントロールと表示位置を求める
00101                 if( !::GetCursorPos(&hp.pt) )
00102                     return FALSE;
00103                 hwndCtrl = ::WindowFromPoint(hp.pt);
00104             }
00105             else{
00106                 // 対象コントロールは hwndCaller
00107                 // [F1]キーの場合もあるので対象コントロールの位置から表示位置を決める
00108                 RECT rc;
00109                 hwndCtrl = hwndCaller;
00110                 if( !::GetWindowRect( hwndCtrl, &rc ) )
00111                     return FALSE;
00112                 hp.pt.x = (rc.left + rc.right) / 2;
00113                 hp.pt.y = rc.top;
00114             }
00115             // 対象コントロールに対応するヘルプ ID を探す
00116             nCtrlID = ::GetDlgCtrlID( hwndCtrl );
00117             if( nCtrlID <= 0 )
00118                 return FALSE;
00119             pHelpIDs = (DWORD*)dwData;
00120             while( true ){
00121                 if( *pHelpIDs == 0 )
00122                     return FALSE;   // 見つからなかった
00123                 if( *pHelpIDs == nCtrlID )
00124                     break;          // 見つかった
00125                 pHelpIDs += 2;
00126             }
00127             hp.idString = *(pHelpIDs + 1);  // 見つけたヘルプ ID を設定する
00128             dwData = (DWORD_PTR)&hp;    // 引数をポップアップヘルプ用の構造体に差し替える
00129         }
00130         break;
00131     default:
00132         return FALSE;
00133     }
00134
00135     if( IsFileExists( lpszHelp, true ) ){
00136         // HTML ヘルプを呼び出す
00137         HWND hWnd = OpenHtmlHelp( hwndCaller, lpszHelp, uCommand, dwData );
00138         if (bDesktop && hWnd != NULL){
00139             ::SetForegroundWindow( hWnd );  // ヘルプ画面を手前に出す
00140         }
00141     }
00142     else {
00143         if( uCommandOrg == HELP_CONTEXTMENU)
00144             return FALSE;   // 右クリックでは何もしないでおく
00145
00146         // オンラインヘルプを呼び出す
00147         if( uCommandOrg != HELP_CONTEXT )
00148             dwData = 1; // 目次ページ
00149
00150         TCHAR buf[256];
00151         _stprintf( buf, TEXT("http://sakura-editor.sourceforge.net/cgi-bin/hid.cgi?%d"), dwData );
00152         ShellExecute( ::GetActiveWindow(), NULL, buf, NULL, NULL, SW_SHOWNORMAL );
00153     }
00154
00155     return TRUE;
00156 }
00157
00158 //  CShareDataへ移動
00159 /* 日付をフォーマット */
00160 //const char* MyGetDateFormat( char* pszDest, int nDestLen, int nDateFormatType, const char* pszDateFormat )
00161
00162 /* 時刻をフォーマット */
00163 //const char* MyGetTimeFormat( char* pszDest, int nDestLen, int nTimeFormatType, const char* pszTimeFormat )
00164
00165 int CALLBACK MYBrowseCallbackProc(
00166     HWND hwnd,
00167     UINT uMsg,
00168     LPARAM lParam,
00169     LPARAM lpData
00170 )
00171 {
00172     switch( uMsg ){
00173     case BFFM_INITIALIZED:
00174 //      MYTRACE( "BFFM_INITIALIZED (char*)lpData = [%s]\n", (char*)lpData );
00175         ::SendMessage( hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData );
00176         break;
00177     case BFFM_SELCHANGED:
00178 //      MYTRACE( "BFFM_SELCHANGED\n" );
00179         break;
00180     }
00181     return 0;
00182
00183 }
00184
00185
00186
00187
00188 /* フォルダ選択ダイアログ */
00189 BOOL SelectDir( HWND hWnd, const char* pszTitle, const char* pszInitFolder, char* strFolderName )
00190 {
00191     BOOL    bRes;
00192     char    szInitFolder[MAX_PATH];
00193
00194     strcpy( szInitFolder, pszInitFolder );
00195     /* フォルダの最後が半角かつ'\\'の場合は、取り除く "c:\\"等のルートは取り除かない*/
00196     CutLastYenFromDirectoryPath( szInitFolder );
00197
00198     // SHBrowseForFolder()関数に渡す構造体
00199     BROWSEINFO bi;
00200     bi.hwndOwner = hWnd;
00201     bi.pidlRoot = NULL;
00202     bi.pszDisplayName = strFolderName;
00203     bi.lpszTitle = pszTitle;
00204     bi.ulFlags = BIF_RETURNONLYFSDIRS/* | BIF_EDITBOX*//* | BIF_STATUSTEXT*/;
00205     bi.lpfn = MYBrowseCallbackProc;
00206     bi.lParam = (LPARAM)szInitFolder;
00207     bi.iImage = 0;
00208     // アイテムＩＤリストを返す
00209     // ITEMIDLISTはアイテムの一意を表す構造体
00210     ITEMIDLIST* pList = ::SHBrowseForFolder(&bi);
00211     if( NULL != pList ){
00212         // SHGetPathFromIDList()関数はアイテムＩＤリストの物理パスを探してくれる
00213         bRes = ::SHGetPathFromIDList( pList, strFolderName );
00214         // :SHBrowseForFolder()で取得したアイテムＩＤリストを削除
00215         ::CoTaskMemFree( pList );
00216         if( bRes ){
00217             return TRUE;
00218         }else{
00219             return FALSE;
00220         }
00221     }
00222     return FALSE;
00223 }
00224
00225 /* 拡張子を調べる */
00226 BOOL CheckEXT( const char* pszPath, const char* pszExt )
00227 {
00228     char    szExt[_MAX_EXT];
00229     char*   pszWork;
00230     _splitpath( pszPath, NULL, NULL, NULL, szExt );
00231     pszWork = szExt;
00232     if( pszWork[0] == '.' ){
00233         pszWork++;
00234     }
00235     if( 0 == _stricmp( pszExt, pszWork ) ){
00236         return TRUE;
00237     }else{
00238         return FALSE;
00239     }
00240 }
00241
00255 TCHAR* my_strtok( TCHAR* pBuffer, int nLen, int* pnOffset, const TCHAR* pDelimiter )
00256 {
00257     int i = *pnOffset;
00258     TCHAR* p;
00259
00260     do {
00261         bool bFlag = false; //ダブルコーテーションの中か？
00262         if( i >= nLen ) return NULL;
00263         p = &pBuffer[i];
00264         for( ; i < nLen; i++ )
00265         {
00266             if( pBuffer[i] == _T('"') ) bFlag = ! bFlag;
00267             if( ! bFlag )
00268             {
00269                 if( _tcschr( pDelimiter, pBuffer[i] ) )
00270                 {
00271                     pBuffer[i++] = _T('\0');
00272                     break;
00273                 }
00274             }
00275         }
00276         *pnOffset = i;
00277     } while( ! *p );    //空のトークンなら次を探す
00278     return p;
00279 }
00280
00281
00282
00283
00297 LPTSTR GetHelpFilePath( LPTSTR pszHelpFile, unsigned int nMaxLen )
00298 {
00299 //  int     i;
00300     TCHAR   szHelpFile[_MAX_PATH];
00301
00302     /* ヘルプファイルのファイルパス */
00303     GetExedir( szHelpFile, _T("sakura.chm") );
00304     ::lstrcpyn( pszHelpFile, szHelpFile, nMaxLen );
00305     return pszHelpFile;
00306 }
00307
00317 BOOL GetLongFileName( const char* pszFilePathSrc, char* pszFilePathDes )
00318 {
00319     TCHAR* name;
00320     TCHAR szBuf[_MAX_PATH + 1];
00321     int len = ::GetFullPathName( pszFilePathSrc, _MAX_PATH, szBuf, &name );
00322     if( len <= 0 || _MAX_PATH <= len ){
00323         len = ::GetLongPathName( pszFilePathSrc, pszFilePathDes, _MAX_PATH );
00324         if( len <= 0 || _MAX_PATH < len ){
00325             return FALSE;
00326         }
00327         return TRUE;
00328     }
00329     len = ::GetLongPathName( szBuf, pszFilePathDes, _MAX_PATH );
00330     if( len <= 0 || _MAX_PATH < len ){
00331         lstrcpy( pszFilePathDes, szBuf );
00332     }
00333     return TRUE;
00334 }
00335
00336 /* ファイルのフルパスを、フォルダとファイル名に分割 */
00337 /* [c:\work\test\aaa.txt] → [c:\work\test] + [aaa.txt] */
00338 void SplitPath_FolderAndFile( const char* pszFilePath, char* pszFolder, char* pszFile )
00339 {
00340     char    szDrive[_MAX_DRIVE];
00341     char    szDir[_MAX_DIR];
00342     char    szFname[_MAX_FNAME];
00343     char    szExt[_MAX_EXT];
00344     int     nFolderLen;
00345     int     nCharChars;
00346     _splitpath( pszFilePath, szDrive, szDir, szFname, szExt );
00347     if( NULL != pszFolder ){
00348         strcpy( pszFolder, szDrive );
00349         strcat( pszFolder, szDir );
00350         /* フォルダの最後が半角かつ'\\'の場合は、取り除く */
00351         nFolderLen = strlen( pszFolder );
00352         if( 0 < nFolderLen ){
00353             nCharChars = &pszFolder[nFolderLen] - CMemory::MemCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
00354             if( 1 == nCharChars && '\\' == pszFolder[nFolderLen - 1] ){
00355                 pszFolder[nFolderLen - 1] = '\0';
00356             }
00357         }
00358     }
00359     if( NULL != pszFile ){
00360         strcpy( pszFile, szFname );
00361         strcat( pszFile, szExt );
00362     }
00363     return;
00364 }
00365
00366
00367
00368
00369 /* システムリソースを調べる
00370     Win16 の時は、GetFreeSystemResources という関数がありました。しかし、Win32 ではありません。
00371     サンクを作るだの DLL を作るだのは難しすぎます。簡単な方法を説明します。
00372     お使いの Windows95 の [アクセサリ]-[システムツール] にリソースメータがあるのなら、
00373     c:\windows\system\rsrc32.dll があるはずです。これは、リソースメータという Win32 アプリが、
00374     Win16 の GetFreeSystemResources 関数を呼ぶ為の DLL です。これを使いましょう。
00375 */
00376 BOOL GetSystemResources(
00377     int*    pnSystemResources,
00378     int*    pnUserResources,
00379     int*    pnGDIResources
00380 )
00381 {
00382     #define GFSR_SYSTEMRESOURCES    0x0000
00383     #define GFSR_GDIRESOURCES       0x0001
00384     #define GFSR_USERRESOURCES      0x0002
00385     HINSTANCE   hlib;
00386     int (CALLBACK *GetFreeSystemResources)( int );
00387
00388     hlib = ::LoadLibrary( "RSRC32.dll" );
00389     if( (int)hlib > 32 ){
00390         GetFreeSystemResources = (int (CALLBACK *)( int ))GetProcAddress(
00391             hlib,
00392             "_MyGetFreeSystemResources32@4"
00393         );
00394         if( GetFreeSystemResources != NULL ){
00395             *pnSystemResources = GetFreeSystemResources( GFSR_SYSTEMRESOURCES );
00396             *pnUserResources = GetFreeSystemResources( GFSR_USERRESOURCES );
00397             *pnGDIResources = GetFreeSystemResources( GFSR_GDIRESOURCES );
00398             ::FreeLibrary( hlib );
00399             return TRUE;
00400         }else{
00401             ::FreeLibrary( hlib );
00402             return FALSE;
00403         }
00404     }else{
00405         return FALSE;
00406     }
00407 }
00408
00409
00410
00411
00412 /* システムリソースのチェック */
00413 BOOL CheckSystemResources( const char* pszAppName )
00414 {
00415     int     nSystemResources;
00416     int     nUserResources;
00417     int     nGDIResources;
00418     char*   pszResourceName;
00419     /* システムリソースの取得 */
00420     if( GetSystemResources( &nSystemResources, &nUserResources, &nGDIResources ) ){
00421 //      MYTRACE( "nSystemResources=%d\n", nSystemResources );
00422 //      MYTRACE( "nUserResources=%d\n", nUserResources );
00423 //      MYTRACE( "nGDIResources=%d\n", nGDIResources );
00424         pszResourceName = NULL;
00425         if( nSystemResources <= 5 ){
00426             pszResourceName = "システム ";
00427         }else
00428         if( nUserResources <= 5 ){
00429             pszResourceName = "ユーザー ";
00430         }else
00431         if( nGDIResources <= 5 ){
00432             pszResourceName = "GDI ";
00433         }
00434         if( NULL != pszResourceName ){
00435             ::MessageBeep( MB_ICONHAND );
00436             ::MessageBeep( MB_ICONHAND );
00437 //          if( IDYES == ::MYMESSAGEBOX( NULL, MB_YESNO | MB_ICONSTOP | MB_APPLMODAL | MB_TOPMOST, pszAppName,
00438 			::MYMESSAGEBOX( NULL, MB_OK | /*MB_YESNO | */ MB_ICONSTOP | MB_APPLMODAL | MB_TOPMOST, pszAppName,
00439                 "%sリソースが極端に不足しています。\n\
00440 このまま%sを起動すると、正常に動作しない可能性があります。\n\
00441 新しい%sの起動を中断します。\n\
00442 \n\
00443 システム リソース\t残り  %d%%\n\
00444 User リソース\t残り  %d%%\n\
00445 GDI リソース\t残り  %d%%\n\n",
00446                 pszResourceName,
00447                 pszAppName,
00448                 pszAppName,
00449                 nSystemResources,
00450                 nUserResources,
00451                 nGDIResources
00452             );
00453 //          ) ){
00454                 return FALSE;
00455 //          }
00456         }
00457     }
00458     return TRUE;
00459 }
00460
00461
00462
00463
00464 struct VS_VERSION_INFO_HEAD {
00465     WORD    wLength;
00466     WORD    wValueLength;
00467     WORD    bText;
00468     WCHAR   szKey[16];
00469     VS_FIXEDFILEINFO Value;
00470 };
00471
00475 void GetAppVersionInfo(
00476     HINSTANCE   hInstance,
00477     int         nVersionResourceID,
00478     DWORD*      pdwProductVersionMS,
00479     DWORD*      pdwProductVersionLS
00480 )
00481 {
00482     HRSRC                   hRSRC;
00483     HGLOBAL                 hgRSRC;
00484     VS_VERSION_INFO_HEAD*   pVVIH;
00485     /* リソースから製品バージョンの取得 */
00486     *pdwProductVersionMS = 0;
00487     *pdwProductVersionLS = 0;
00488     static bool bLoad = false;
00489     static DWORD dwVersionMS = 0;
00490     static DWORD dwVersionLS = 0;
00491     if( hInstance == NULL && bLoad ){
00492         *pdwProductVersionMS = dwVersionMS;
00493         *pdwProductVersionLS = dwVersionLS;
00494         return;
00495     }
00496     if( NULL != ( hRSRC = ::FindResource( hInstance, MAKEINTRESOURCE(nVersionResourceID), RT_VERSION ) )
00497      && NULL != ( hgRSRC = ::LoadResource( hInstance, hRSRC ) )
00498      && NULL != ( pVVIH = (VS_VERSION_INFO_HEAD*)::LockResource( hgRSRC ) )
00499     ){
00500         *pdwProductVersionMS = pVVIH->Value.dwProductVersionMS;
00501         *pdwProductVersionLS = pVVIH->Value.dwProductVersionLS;
00502         dwVersionMS = pVVIH->Value.dwProductVersionMS;
00503         dwVersionLS = pVVIH->Value.dwProductVersionLS;
00504     }
00505     if( hInstance == NULL ){
00506         bLoad = true;
00507     }
00508     return;
00509
00510 }
00511
00512
00513
00514
00515 /* アクティブにする */
00516 void ActivateFrameWindow( HWND hwnd )
00517 {
00518     // 編集ウィンドウでタブまとめ表示の場合は表示位置を復元する
00519     CShareData* pInstance = NULL;
00520     DLLSHAREDATA* pShareData = NULL;
00521     if( (pInstance = CShareData::getInstance()) && (pShareData = pInstance->GetShareData()) ){
00522         if( pShareData->m_Common.m_bDispTabWnd && !pShareData->m_Common.m_bDispTabWndMultiWin ) {
00523             if( pInstance->IsEditWnd( hwnd ) ){
00524                 if( pShareData->m_bEditWndChanging )
00525                     return; // 切替の最中(busy)は要求を無視する
00526                 pShareData->m_bEditWndChanging = TRUE;  // 編集ウィンドウ切替中ON   2007.04.03 ryoji
00527
00528                 // 対象ウィンドウのスレッドに位置合わせを依頼する   // 2007.04.03 ryoji
00529                 DWORD dwResult;
00530                 ::SendMessageTimeout( hwnd, MYWM_TAB_WINDOW_NOTIFY, TWNT_WNDPL_ADJUST, (LPARAM)NULL,
00531                     SMTO_ABORTIFHUNG | SMTO_BLOCK, 10000, &dwResult );
00532             }
00533         }
00534     }
00535
00536     if( ::IsIconic( hwnd ) ){
00537         ::ShowWindow( hwnd, SW_RESTORE );
00538     }
00539     else if ( ::IsZoomed( hwnd ) ){
00540         ::ShowWindow( hwnd, SW_MAXIMIZE );
00541     }
00542     else {
00543         ::ShowWindow( hwnd, SW_SHOW );
00544     }
00545     ::SetForegroundWindow( hwnd );
00546     ::BringWindowToTop( hwnd );
00547
00548     if( pShareData )
00549         pShareData->m_bEditWndChanging = FALSE; // 編集ウィンドウ切替中OFF  2007.04.03 ryoji
00550
00551     return;
00552 }
00553
00554
00555
00556
00557 //@@@ 2002.01.24 Start by MIK
00573 BOOL IsURL( const char *pszLine, int nLineLen, int *pnMatchLen )
00574 {
00575     struct _url_table_t {
00576         char    name[12];
00577         int     length;
00578         bool    is_mail;
00579     };
00580     static const struct _url_table_t    url_table[] = {
00581         /* アルファベット順 */
00582         "file://",      7,  false, /* 1 */
00583         "ftp://",       6,  false, /* 2 */
00584         "gopher://",    9,  false, /* 3 */
00585         "http://",      7,  false, /* 4 */
00586         "https://",     8,  false, /* 5 */
00587         "mailto:",      7,  true,  /* 6 */
00588         "news:",        5,  false, /* 7 */
00589         "nntp://",      7,  false, /* 8 */
00590         "prospero://",  11, false, /* 9 */
00591         "telnet://",    9,  false, /* 10 */
00592         "tp://",        5,  false, /* 11 */ //2004.02.02
00593         "ttp://",       6,  false, /* 12 */ //2004.02.02
00594         "wais://",      7,  false, /* 13 */
00595         "{",            0,  false  /* 14 */  /* '{' is 'z'+1 : terminate */
00596     };
00597
00598 /* テーブルの保守性を高めるための定義 */
00599     const char urF = 1;
00600     const char urG = 3;
00601     const char urH = 4;
00602     const char urM = 6;
00603     const char urN = 7;
00604     const char urP = 9;
00605     const char urT = 10;
00606     const char urW = 13;    //2004.02.02
00607
00608     static const char   url_char[] = {
00609       /* +0  +1  +2  +3  +4  +5  +6  +7  +8  +9  +A  +B  +C  +D  +E  +F */
00610           0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    /* +00: */
00611           0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,    /* +10: */
00612           0, -1,  0, -1, -1, -1, -1,  0,  0,  0,  0, -1, -1, -1, -1, -1,    /* +20: " !"#$%&'()*+,-./" */
00613          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, -1,  0, -1,    /* +30: "0123456789:;<=>?" */
00614          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,    /* +40: "@ABCDEFGHIJKLMNO" */
00615          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, -1,  0,  0, -1,    /* +50: "PQRSTUVWXYZ[\]^_" */
00616           0, -1, -1, -1, -1, -1,urF,urG,urH, -1, -1, -1, -1,urM,urN, -1,    /* +60: "`abcdefghijklmno" */
00617         urP, -1, -1, -1,urT, -1, -1,urW, -1, -1, -1,  0,  0,  0, -1,  0,    /* +70: "pqrstuvwxyz{|}~ " */
00618         /* あと128バイト犠牲にすればif文を2箇所削除できる */
00619         /* 0    : not url char
00620          * -1   : url char
00621          * other: url head char --> url_table array number + 1
00622          */
00623     };
00624
00625     const unsigned char *p = (const unsigned char*)pszLine;
00626     const struct _url_table_t   *urlp;
00627     int i;
00628
00629     if( *p & 0x80 ) return FALSE;   /* 2バイト文字 */
00630     if( 0 < url_char[*p] ){ /* URL開始文字 */
00631         for(urlp = &url_table[url_char[*p]-1]; urlp->name[0] == *p; urlp++){    /* URLテーブルを探索 */
00632             if( (urlp->length <= nLineLen) && (memcmp(urlp->name, pszLine, urlp->length) == 0) ){   /* URLヘッダは一致した */
00633                 p += urlp->length;  /* URLヘッダ分をスキップする */
00634                 if( urlp->is_mail ){    /* メール専用の解析へ */
00635                     if( IsMailAddress((const char*)p, nLineLen - urlp->length, pnMatchLen) ){
00636                         *pnMatchLen = *pnMatchLen + urlp->length;
00637                         return TRUE;
00638                     }
00639                     return FALSE;
00640                 }
00641                 for(i = urlp->length; i < nLineLen; i++, p++){  /* 通常の解析へ */
00642                     if( (*p & 0x80) || (!(url_char[*p])) ) break;   /* 終端に達した */
00643                 }
00644                 if( i == urlp->length ) return FALSE;   /* URLヘッダだけ */
00645                 *pnMatchLen = i;
00646                 return TRUE;
00647             }
00648         }
00649     }
00650     return IsMailAddress(pszLine, nLineLen, pnMatchLen);
00651 }
00652
00653 /* 現在位置がメールアドレスならば、NULL以外と、その長さを返す */
00654 BOOL IsMailAddress( const char* pszBuf, int nBufLen, int* pnAddressLenfth )
00655 {
00656 //  int     i;
00657     int     j;
00658 //  int     wk_nBegin;
00659 //  int     wk_nEnd;
00660 //  int     nAtPos;
00661     int     nDotCount;
00662 //  int     nAlphaCount;
00663     int     nBgn;
00664 //  int     nLoop;
00665 //  BOOL bDot = FALSE;
00666
00667
00668     j = 0;
00669     if( (pszBuf[j] >= 'a' && pszBuf[j] <= 'z')
00670      || (pszBuf[j] >= 'A' && pszBuf[j] <= 'Z')
00671      || (pszBuf[j] >= '0' && pszBuf[j] <= '9')
00672 //   || (pszBuf[j] == '.')
00673 //   || (pszBuf[j] == '-')
00674 //   || (pszBuf[j] == '_')
00675 //   || (pszBuf[j] == '=')
00676 //   || (pszBuf[j] == '%')
00677 //   || (pszBuf[j] == '$')
00678 //     )
00679     ){
00680         j++;
00681     }else{
00682         return FALSE;
00683     }
00684     while( j < nBufLen - 2 &&
00685         (
00686         (pszBuf[j] >= 'a' && pszBuf[j] <= 'z')
00687      || (pszBuf[j] >= 'A' && pszBuf[j] <= 'Z')
00688      || (pszBuf[j] >= '0' && pszBuf[j] <= '9')
00689      || (pszBuf[j] == '.')
00690      || (pszBuf[j] == '-')
00691      || (pszBuf[j] == '_')
00692 //   || (pszBuf[j] == '=')
00693 //   || (pszBuf[j] == '%')
00694 //   || (pszBuf[j] == '$')
00695         )
00696     ){
00697         j++;
00698     }
00699     if( j == 0 || j >= nBufLen - 2  ){
00700         return FALSE;
00701     }
00702     if( '@' != pszBuf[j] ){
00703         return FALSE;
00704     }
00705 //  nAtPos = j;
00706     j++;
00707     nDotCount = 0;
00708 //  nAlphaCount = 0;
00709
00710
00711     while( 1 ){
00712         nBgn = j;
00713         while( j < nBufLen &&
00714             (
00715             (pszBuf[j] >= 'a' && pszBuf[j] <= 'z')
00716          || (pszBuf[j] >= 'A' && pszBuf[j] <= 'Z')
00717          || (pszBuf[j] >= '0' && pszBuf[j] <= '9')
00718 //       || (pszBuf[j] == '.')
00719          || (pszBuf[j] == '-')
00720          || (pszBuf[j] == '_')
00721         //   || (pszBuf[j] == '=')
00722         //   || (pszBuf[j] == '%')
00723         //   || (pszBuf[j] == '$')
00724             )
00725         ){
00726             j++;
00727         }
00728         if( 0 == j - nBgn ){
00729             return FALSE;
00730         }
00731         if( '.' != pszBuf[j] ){
00732             if( 0 == nDotCount ){
00733                 return FALSE;
00734             }else{
00735                 break;
00736             }
00737         }else{
00738             nDotCount++;
00739             j++;
00740         }
00741     }
00742     if( NULL != pnAddressLenfth ){
00743         *pnAddressLenfth = j;
00744     }
00745     return TRUE;
00746 }
00747
00748
00749
00750
00751 //@@@ 2001.11.07 Start by MIK
00752 //#ifdef COMPILE_COLOR_DIGIT
00753 /*
00754  * 数値なら長さを返す。
00755  * 10進数の整数または小数。16進数(正数)。
00756  * 文字列   数値(色分け)
00757  * ---------------------
00758  * 123      123
00759  * 0123     0123
00760  * 0xfedc   0xfedc
00761  * -123     -123
00762  * &H9a     &H9a     (ただしソース中の#ifを有効にしたとき)
00763  * -0x89a   0x89a
00764  * 0.5      0.5
00765  * 0.56.1   0.56 , 1 (ただしソース中の#ifを有効にしたら"0.56.1"になる)
00766  * .5       5        (ただしソース中の#ifを有効にしたら".5"になる)
00767  * -.5      5        (ただしソース中の#ifを有効にしたら"-.5"になる)
00768  * 123.     123
00769  * 0x567.8  0x567 , 8
00770  */
00771 /*
00772  * 半角数値
00773  *   1, 1.2, 1.2.3, .1, 0xabc, 1L, 1F, 1.2f, 0x1L, 0x2F, -.1, -1, 1e2, 1.2e+3, 1.2e-3, -1e0
00774  *   10進数, 16進数, LF接尾語, 浮動小数点数, 負符号
00775  *   IPアドレスのドット連結(本当は数値じゃないんだよね)
00776  */
00777 int IsNumber(const char *buf, int offset, int length)
00778 {
00779     register const char *p, *q;
00780     register int i = 0;
00781     register int d = 0;
00782     register int f = 0;
00783
00784     p = &buf[offset];
00785     q = &buf[length];
00786
00787     if( *p == '0' )  /* 10進数,Cの16進数 */
00788     {
00789         p++; i++;
00790         if( ( p < q ) && ( *p == 'x' ) )  /* Cの16進数 */
00791         {
00792             p++; i++;
00793             while( p < q )
00794             {
00795                 if( ( *p >= '0' && *p <= '9' )
00796                  || ( *p >= 'A' && *p <= 'F' )
00797                  || ( *p >= 'a' && *p <= 'f' ) )
00798                 {
00799                     p++; i++;
00800                 }
00801                 else
00802                 {
00803                     break;
00804                 }
00805             }
00806             /* "0x" なら "0" だけが数値 */
00807             if( i == 2 ) return 1;
00808
00809             /* 接尾語 */
00810             if( p < q )
00811             {
00812                 if( *p == 'L' || *p == 'l' || *p == 'F' || *p == 'f' )
00813                 {
00814                     p++; i++;
00815                 }
00816             }
00817             return i;
00818         }
00819         else if( *p >= '0' && *p <= '9' )
00820         {
00821             p++; i++;
00822             while( p < q )
00823             {
00824                 if( *p < '0' || *p > '9' )
00825                 {
00826                     if( *p == '.' )
00827                     {
00828                         if( f == 1 ) break;  /* 指数部に入っている */
00829                         d++;
00830                         if( d > 1 )
00831                         {
00832                             if( *(p - 1) == '.' ) break;  /* "." が連続なら中断 */
00833                         }
00834                     }
00835                     else if( *p == 'E' || *p == 'e' )
00836                     {
00837                         if( f == 1 ) break;  /* 指数部に入っている */
00838                         if( p + 2 < q )
00839                         {
00840                             if( ( *(p + 1) == '+' || *(p + 1) == '-' )
00841                              && ( *(p + 2) >= '0' && *(p + 2) <= '9' ) )
00842                             {
00843                                 p++; i++;
00844                                 p++; i++;
00845                                 f = 1;
00846                             }
00847                             else if( *(p + 1) >= '0' && *(p + 1) <= '9' )
00848                             {
00849                                 p++; i++;
00850                                 f = 1;
00851                             }
00852                             else
00853                             {
00854                                 break;
00855                             }
00856                         }
00857                         else if( p + 1 < q )
00858                         {
00859                             if( *(p + 1) >= '0' && *(p + 1) <= '9' )
00860                             {
00861                                 p++; i++;
00862                                 f = 1;
00863                             }
00864                             else
00865                             {
00866                                 break;
00867                             }
00868                         }
00869                         else
00870                         {
00871                             break;
00872                         }
00873                     }
00874                     else
00875                     {
00876                         break;
00877                     }
00878                 }
00879                 p++; i++;
00880             }
00881             if( *(p - 1)  == '.' ) return i - 1;  /* 最後が "." なら含めない */
00882             /* 接尾語 */
00883             if( p < q )
00884             {
00885                 if( (( d == 0 ) && ( *p == 'L' || *p == 'l' ))
00886                  || *p == 'F' || *p == 'f' )
00887                 {
00888                     p++; i++;
00889                 }
00890             }
00891             return i;
00892         }
00893         else if( *p == '.' )
00894         {
00895             while( p < q )
00896             {
00897                 if( *p < '0' || *p > '9' )
00898                 {
00899                     if( *p == '.' )
00900                     {
00901                         if( f == 1 ) break;  /* 指数部に入っている */
00902                         d++;
00903                         if( d > 1 )
00904                         {
00905                             if( *(p - 1) == '.' ) break;  /* "." が連続なら中断 */
00906                         }
00907                     }
00908                     else if( *p == 'E' || *p == 'e' )
00909                     {
00910                         if( f == 1 ) break;  /* 指数部に入っている */
00911                         if( p + 2 < q )
00912                         {
00913                             if( ( *(p + 1) == '+' || *(p + 1) == '-' )
00914                              && ( *(p + 2) >= '0' && *(p + 2) <= '9' ) )
00915                             {
00916                                 p++; i++;
00917                                 p++; i++;
00918                                 f = 1;
00919                             }
00920                             else if( *(p + 1) >= '0' && *(p + 1) <= '9' )
00921                             {
00922                                 p++; i++;
00923                                 f = 1;
00924                             }
00925                             else
00926                             {
00927                                 break;
00928                             }
00929                         }
00930                         else if( p + 1 < q )
00931                         {
00932                             if( *(p + 1) >= '0' && *(p + 1) <= '9' )
00933                             {
00934                                 p++; i++;
00935                                 f = 1;
00936                             }
00937                             else
00938                             {
00939                                 break;
00940                             }
00941                         }
00942                         else
00943                         {
00944                             break;
00945                         }
00946                     }
00947                     else
00948                     {
00949                         break;
00950                     }
00951                 }
00952                 p++; i++;
00953             }
00954             if( *(p - 1)  == '.' ) return i - 1;  /* 最後が "." なら含めない */
00955             /* 接尾語 */
00956             if( p < q )
00957             {
00958                 if( *p == 'F' || *p == 'f' )
00959                 {
00960                     p++; i++;
00961                 }
00962             }
00963             return i;
00964         }
00965         else if( *p == 'E' || *p == 'e' )
00966         {
00967             p++; i++;
00968             while( p < q )
00969             {
00970                 if( *p < '0' || *p > '9' )
00971                 {
00972                     if( ( *p == '+' || *p == '-' ) && ( *(p - 1) == 'E' || *(p - 1) == 'e' ) )
00973                     {
00974                         if( p + 1 < q )
00975                         {
00976                             if( *(p + 1) < '0' || *(p + 1) > '9' )
00977                             {
00978                                 /* "0E+", "0E-" */
00979                                 break;
00980                             }
00981                         }
00982                         else
00983                         {
00984                             /* "0E-", "0E+" */
00985                             break;
00986                         }
00987                     }
00988                     else
00989                     {
00990                         break;
00991                     }
00992                 }
00993                 p++; i++;
00994             }
00995             if( i == 2 ) return 1;  /* "0E", 0e" なら "0" が数値 */
00996             /* 接尾語 */
00997             if( p < q )
00998             {
00999                 if( (( d == 0 ) && ( *p == 'L' || *p == 'l' ))
01000                  || *p == 'F' || *p == 'f' )
01001                 {
01002                     p++; i++;
01003                 }
01004             }
01005             return i;
01006         }
01007         else
01008         {
01009             /* "0" だけが数値 */
01010             /*if( *p == '.' ) return i - 1;*/  /* 最後が "." なら含めない */
01011             if( p < q )
01012             {
01013                 if( (( d == 0 ) && ( *p == 'L' || *p == 'l' ))
01014                  || *p == 'F' || *p == 'f' )
01015                 {
01016                     p++; i++;
01017                 }
01018             }
01019             return i;
01020         }
01021     }
01022
01023     else if( *p >= '1' && *p <= '9' )  /* 10進数 */
01024     {
01025         p++; i++;
01026         while( p < q )
01027         {
01028             if( *p < '0' || *p > '9' )
01029             {
01030                 if( *p == '.' )
01031                 {
01032                     if( f == 1 ) break;  /* 指数部に入っている */
01033                     d++;
01034                     if( d > 1 )
01035                     {
01036                         if( *(p - 1) == '.' ) break;  /* "." が連続なら中断 */
01037                     }
01038                 }
01039                 else if( *p == 'E' || *p == 'e' )
01040                 {
01041                     if( f == 1 ) break;  /* 指数部に入っている */
01042                     if( p + 2 < q )
01043                     {
01044                         if( ( *(p + 1) == '+' || *(p + 1) == '-' )
01045                          && ( *(p + 2) >= '0' && *(p + 2) <= '9' ) )
01046                         {
01047                             p++; i++;
01048                             p++; i++;
01049                             f = 1;
01050                         }
01051                         else if( *(p + 1) >= '0' && *(p + 1) <= '9' )
01052                         {
01053                             p++; i++;
01054                             f = 1;
01055                         }
01056                         else
01057                         {
01058                             break;
01059                         }
01060                     }
01061                     else if( p + 1 < q )
01062                     {
01063                         if( *(p + 1) >= '0' && *(p + 1) <= '9' )
01064                         {
01065                             p++; i++;
01066                             f = 1;
01067                         }
01068                         else
01069                         {
01070                             break;
01071                         }
01072                     }
01073                     else
01074                     {
01075                         break;
01076                     }
01077                 }
01078                 else
01079                 {
01080                     break;
01081                 }
01082             }
01083             p++; i++;
01084         }
01085         if( *(p - 1) == '.' ) return i - 1;  /* 最後が "." なら含めない */
01086         /* 接尾語 */
01087         if( p < q )
01088         {
01089             if( (( d == 0 ) && ( *p == 'L' || *p == 'l' ))
01090              || *p == 'F' || *p == 'f' )
01091             {
01092                 p++; i++;
01093             }
01094         }
01095         return i;
01096     }
01097
01098     else if( *p == '-' )  /* マイナス */
01099     {
01100         p++; i++;
01101         while( p < q )
01102         {
01103             if( *p < '0' || *p > '9' )
01104             {
01105                 if( *p == '.' )
01106                 {
01107                     if( f == 1 ) break;  /* 指数部に入っている */
01108                     d++;
01109                     if( d > 1 )
01110                     {
01111                         if( *(p - 1) == '.' ) break;  /* "." が連続なら中断 */
01112                     }
01113                 }
01114                 else if( *p == 'E' || *p == 'e' )
01115                 {
01116                     if( f == 1 ) break;  /* 指数部に入っている */
01117                     if( p + 2 < q )
01118                     {
01119                         if( ( *(p + 1) == '+' || *(p + 1) == '-' )
01120                          && ( *(p + 2) >= '0' && *(p + 2) <= '9' ) )
01121                         {
01122                             p++; i++;
01123                             p++; i++;
01124                             f = 1;
01125                         }
01126                         else if( *(p + 1) >= '0' && *(p + 1) <= '9' )
01127                         {
01128                             p++; i++;
01129                             f = 1;
01130                         }
01131                         else
01132                         {
01133                             break;
01134                         }
01135                     }
01136                     else if( p + 1 < q )
01137                     {
01138                         if( *(p + 1) >= '0' && *(p + 1) <= '9' )
01139                         {
01140                             p++; i++;
01141                             f = 1;
01142                         }
01143                         else
01144                         {
01145                             break;
01146                         }
01147                     }
01148                     else
01149                     {
01150                         break;
01151                     }
01152                 }
01153                 else
01154                 {
01155                     break;
01156                 }
01157             }
01158             p++; i++;
01159         }
01160         /* "-", "-." だけなら数値でない */
01161         //@@@ 2001.11.09 start MIK
01162         //if( i <= 2 ) return 0;
01163         //if( *(p - 1)  == '.' ) return i - 1;  /* 最後が "." なら含めない */
01164         if( i == 1 ) return 0;
01165         if( *(p - 1) == '.' )
01166         {
01167             i--;
01168             if( i == 1 ) return 0;
01169             return i;
01170         }  //@@@ 2001.11.09 end MIK
01171         /* 接尾語 */
01172         if( p < q )
01173         {
01174             if( (( d == 0 ) && ( *p == 'L' || *p == 'l' ))
01175              || *p == 'F' || *p == 'f' )
01176             {
01177                 p++; i++;
01178             }
01179         }
01180         return i;
01181     }
01182
01183     else if( *p == '.' )  /* 小数点 */
01184     {
01185         d++;
01186         p++; i++;
01187         while( p < q )
01188         {
01189             if( *p < '0' || *p > '9' )
01190             {
01191                 if( *p == '.' )
01192                 {
01193                     if( f == 1 ) break;  /* 指数部に入っている */
01194                     d++;
01195                     if( d > 1 )
01196                     {
01197                         if( *(p - 1) == '.' ) break;  /* "." が連続なら中断 */
01198                     }
01199                 }
01200                 else if( *p == 'E' || *p == 'e' )
01201                 {
01202                     if( f == 1 ) break;  /* 指数部に入っている */
01203                     if( p + 2 < q )
01204                     {
01205                         if( ( *(p + 1) == '+' || *(p + 1) == '-' )
01206                          && ( *(p + 2) >= '0' && *(p + 2) <= '9' ) )
01207                         {
01208                             p++; i++;
01209                             p++; i++;
01210                             f = 1;
01211                         }
01212                         else if( *(p + 1) >= '0' && *(p + 1) <= '9' )
01213                         {
01214                             p++; i++;
01215                             f = 1;
01216                         }
01217                         else
01218                         {
01219                             break;
01220                         }
01221                     }
01222                     else if( p + 1 < q )
01223                     {
01224                         if( *(p + 1) >= '0' && *(p + 1) <= '9' )
01225                         {
01226                             p++; i++;
01227                             f = 1;
01228                         }
01229                         else
01230                         {
01231                             break;
01232                         }
01233                     }
01234                     else
01235                     {
01236                         break;
01237                     }
01238                 }
01239                 else
01240                 {
01241                     break;
01242                 }
01243             }
01244             p++; i++;
01245         }
01246         /* "." だけなら数値でない */
01247         if( i == 1 ) return 0;
01248         if( *(p - 1)  == '.' ) return i - 1;  /* 最後が "." なら含めない */
01249         /* 接尾語 */
01250         if( p < q )
01251         {
01252             if( *p == 'F' || *p == 'f' )
01253             {
01254                 p++; i++;
01255             }
01256         }
01257         return i;
01258     }
01259
01260 #if 0
01261     else if( *p == '&' )  /* VBの16進数 */
01262     {
01263         p++; i++;
01264         if( ( p < q ) && ( *p == 'H' ) )
01265         {
01266             p++; i++;
01267             while( p < q )
01268             {
01269                 if( ( *p >= '0' && *p <= '9' )
01270                  || ( *p >= 'A' && *p <= 'F' )
01271                  || ( *p >= 'a' && *p <= 'f' ) )
01272                 {
01273                     p++; i++;
01274                 }
01275                 else
01276                 {
01277                     break;
01278                 }
01279             }
01280             /* "&H" だけなら数値でない */
01281             if( i == 2 ) i = 0;
01282             return i;
01283         }
01284
01285         /* "&" だけなら数値でない */
01286         return 0;
01287     }
01288 #endif
01289
01290     /* 数値ではない */
01291     return 0;
01292 }
01293 //@@@ 2001.11.07 End by MIK
01294
01295
01296
01297
01311 bool IsFileExists(const char* path, bool bFileOnly)
01312 {
01313     WIN32_FIND_DATA fd;
01314     ::ZeroMemory( &fd, sizeof(fd));
01315
01316     HANDLE hFind = ::FindFirstFile( path, &fd );
01317     if( hFind != INVALID_HANDLE_VALUE ){
01318         ::FindClose( hFind );
01319         if( bFileOnly == false ||
01320             ( fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) == 0 )
01321             return true;
01322     }
01323     return false;
01324 }
01346 bool IsFilePath( const char* pLine, int* pnBgn, int* pnPathLen, bool bFileOnly )
01347 {
01348     int     i;
01349     int     nLineLen;
01350     char    szJumpToFile[1024];
01351     memset( szJumpToFile, 0, sizeof( szJumpToFile ) );
01352
01353     nLineLen = strlen( pLine );
01354
01355     //先頭の空白を読み飛ばす
01356     for( i = 0; i < nLineLen; ++i ){
01357         if( ' ' != pLine[i] &&
01358             '\t' != pLine[i] &&
01359             '\"' != pLine[i]
01360         ){
01361             break;
01362         }
01363     }
01364
01365     //  #include <ファイル名>の考慮
01366     //  #で始まるときは"または<まで読み飛ばす
01367     if( i < nLineLen &&
01368         '#' == pLine[i]
01369     ){
01370         for( ; i < nLineLen; ++i ){
01371             if( '<'  == pLine[i] ||
01372                 '\"' == pLine[i]
01373             ){
01374                 ++i;
01375                 break;
01376             }
01377         }
01378     }
01379
01380     //  この時点で既に行末に達していたらファイル名は見つからない
01381     if( i >= nLineLen ){
01382         return false;
01383     }
01384     *pnBgn = i;
01385     int cur_pos = 0;
01386     for( ; i <= nLineLen && cur_pos + 1 < sizeof(szJumpToFile); ++i ){
01387         if( ( i == nLineLen    ||
01388               pLine[i] == ' '  ||
01389               pLine[i] == '\t' ||   //@@@ 2002.01.08 YAZAKI タブ文字も。
01390               pLine[i] == '('  ||
01391               pLine[i] == '\r' ||
01392               pLine[i] == '\n' ||
01393               pLine[i] == '\0' ||
01394               pLine[i] == '>'  ||
01395               // May 29, 2004 genta C:\の:はファイル区切りと見なして欲しくない
01396               ( cur_pos > 1 && pLine[i] == ':' ) ||   //@@@ 2003/1/15/ matsumo (for gcc)
01397               pLine[i] == '"'
01398             ) &&
01399             0 < strlen( szJumpToFile )
01400         ){
01401             //  Jan. 04, 2002 genta
01402             //  ファイル存在確認方法変更
01403             //if( -1 != _access( (const char *)szJumpToFile, 0 ) )
01404             if( IsFileExists(szJumpToFile, bFileOnly))
01405             {
01406                 i--;
01407                 break;
01408             }
01409         }
01410         if( pLine[i] == '\r'  ||
01411             pLine[i] == '\n' ){
01412             break;
01413         }
01414 //  From Here Sept. 27, 2000 JEPRO タグジャンプできないのは以下の文字が1バイトコードで現れるときのみとした。
01415 //  (SJIS2バイトコードの2バイト目に現れる場合はパス名使用禁止文字とは認識しないで無視するように変更)
01416 //      if( /*pLine[i] == '/' ||*/
01417 //          pLine[i] == '<' ||
01418 //          pLine[i] == '>' ||
01419 //          pLine[i] == '?' ||
01420 //          pLine[i] == '"' ||
01421 //          pLine[i] == '|' ||
01422 //          pLine[i] == '*'
01423 //      ){
01424 //          return false;
01425 //      }
01426 //
01427 //      szJumpToFile[cur_pos] = pLine[i];
01428 //      cur_pos++;
01429 //  }
01430 //  To Here comment out
01431 //  From Here Sept. 27, 2000 JEPRO added
01432 //            Oct. 3, 2000 JEPRO corrected
01433         if( ( /*pLine[i] == '/' ||*/
01434              pLine[i] == '<' || //  0x3C
01435              pLine[i] == '>' || //  0x3E
01436              pLine[i] == '?' || //  0x3F
01437              pLine[i] == '"' || //  0x22
01438              pLine[i] == '|' || //  0x7C
01439              pLine[i] == '*'    //  0x2A
01440             ) &&
01441             /* 上の文字がSJIS2バイトコードの2バイト目でないことを、1つ前の文字がSJIS2バイトコードの1バイト目でないことで判断する */
01442             //  Oct. 5, 2002 genta
01443             //  2004.11.13 Moca/genta 先頭に上の文字がある場合の考慮を追加
01444             ( i == 0 || ( i > 0 && ! _IS_SJIS_1( (unsigned char)pLine[i - 1] ))) ){
01445             return false;
01446         }else{
01447         szJumpToFile[cur_pos] = pLine[i];
01448         cur_pos++;
01449         }
01450     }
01451 //  To Here Sept. 27, 2000
01452 //  if( i >= nLineLen ){
01453 //      return FALSE;
01454 //  }
01455     //  Jan. 04, 2002 genta
01456     //  ファイル存在確認方法変更
01457     if( 0 < strlen( szJumpToFile ) &&
01458         IsFileExists(szJumpToFile, bFileOnly))
01459     //  -1 != _access( (const char *)szJumpToFile, 0 ) )
01460     {
01461         //  Jan. 04, 2002 genta
01462         //  あまりに変なコーディングなので移動
01463         *pnPathLen = strlen( szJumpToFile );
01464         return true;
01465     }else{
01466 //#ifdef _DEBUG
01467 //      m_cShareData.TraceOut( "ファイルが存在しない。szJumpToFile=[%s]\n", szJumpToFile );
01468 //#endif
01469     }
01470
01471     return false;
01472
01473 }
01474
01491 bool IsLocalDrive( const char* pszDrive )
01492 {
01493     char    szDriveType[_MAX_DRIVE+1];  // "A:\ "登録用
01494     long    lngRet;
01495
01496     if( isalpha(pszDrive[0]) ){
01497         sprintf(szDriveType, "%c:\\", toupper(pszDrive[0]));
01498         lngRet = GetDriveType( szDriveType );
01499         if( lngRet == DRIVE_REMOVABLE || lngRet == DRIVE_CDROM || lngRet == DRIVE_REMOTE )
01500         {
01501             return false;
01502         }
01503     }
01504     return true;
01505 }
01506
01507 void GetLineColm( const char* pLine, int* pnJumpToLine, int* pnJumpToColm )
01508 {
01509     int     i;
01510     int     j;
01511     int     nLineLen;
01512     char    szNumber[32];
01513     nLineLen = strlen( pLine );
01514     i = 0;
01515     for( ; i < nLineLen; ++i ){
01516         if( pLine[i] >= '0' &&
01517             pLine[i] <= '9' ){
01518             break;
01519         }
01520     }
01521     memset( szNumber, 0, sizeof( szNumber ) );
01522     if( i >= nLineLen ){
01523     }else{
01524         /* 行位置 改行単位行番号(1起点)の抽出 */
01525         j = 0;
01526         for( ; i < nLineLen && j + 1 < sizeof( szNumber ); ){
01527             szNumber[j] = pLine[i];
01528             j++;
01529             ++i;
01530             if( pLine[i] >= '0' &&
01531                 pLine[i] <= '9' ){
01532                 continue;
01533             }
01534             break;
01535         }
01536         *pnJumpToLine = atoi( szNumber );
01537
01538         /* 桁位置 改行単位行先頭からのバイト数(1起点)の抽出 */
01539         if( i < nLineLen && pLine[i] == ',' ){
01540             memset( szNumber, 0, sizeof( szNumber ) );
01541             j = 0;
01542             ++i;
01543             for( ; i < nLineLen && j + 1 < sizeof( szNumber ); ){
01544                 szNumber[j] = pLine[i];
01545                 j++;
01546                 ++i;
01547                 if( pLine[i] >= '0' &&
01548                     pLine[i] <= '9' ){
01549                     continue;
01550                 }
01551                 break;
01552             }
01553             *pnJumpToColm = atoi( szNumber );
01554         }
01555     }
01556     return;
01557 }
01558
01559
01560
01561
01562 //  /* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
01563 //  /* bLFisOK→LFだけでも改行とみなす */
01564 //  const char* GetNextLine( const char* pText, int nTextLen, int* pnLineLen, int* pnBgn, BOOL* pbEOL, BOOL bLFisOK )
01565 //  {
01566 //      int     i;
01567 //      int     nBgn;
01568 //      nBgn = *pnBgn;
01569 //      if( nBgn >= nTextLen ){
01570 //          return NULL;
01571 //      }
01572 //      if( NULL != pbEOL ){
01573 //          *pbEOL = TRUE;
01574 //      }
01575 //      for( i = *pnBgn; i < nTextLen; ++i ){
01576 //          if( bLFisOK &&
01577 //              '\n' == pText[i]
01578 //          ){
01579 //              *pnBgn = i + 1;
01580 //              break;
01581 //          }
01582 //          if( '\r' == pText[i]
01583 //           && i + 1 < nTextLen
01584 //           && '\n' == pText[i + 1]
01585 //          ){
01586 //              *pnBgn = i + 2;
01587 //              break;
01588 //          }
01589 //      }
01590 //      if( i >= nTextLen ){
01591 //          *pnBgn = i;
01592 //          if( NULL != pbEOL ){
01593 //              *pbEOL = FALSE;
01594 //          }
01595 //      }
01596 //      *pnLineLen = i - nBgn;
01597 //      return &pText[nBgn];
01598 //  }
01599 //
01600
01601
01602
01603
01604 /* CR0LF0,CRLF,LFCR,LF,CRで区切られる「行」を返す。改行コードは行長に加えない */
01605 const char* GetNextLine(
01606     const char*     pData,
01607     int             nDataLen,
01608     int*            pnLineLen,
01609     int*            pnBgn,
01610     CEOL*           pcEol
01611 )
01612 {
01613     int     i;
01614     int     nBgn;
01615     nBgn = *pnBgn;
01616
01617     //  May 15, 2000 genta
01618     pcEol->SetType( EOL_NONE );
01619     if( *pnBgn >= nDataLen ){
01620         return NULL;
01621     }
01622     for( i = *pnBgn; i < nDataLen; ++i ){
01623         /* 改行コードがあった */
01624         if( pData[i] == '\n' || pData[i] == '\r' ){
01625             /* 行終端子の種類を調べる */
01626              pcEol->GetTypeFromString( &pData[i], nDataLen - i );
01627             break;
01628         }
01629     }
01630     *pnBgn = i + pcEol->GetLen();
01631     *pnLineLen = i - nBgn;
01632     return &pData[nBgn];
01633 }
01634
01635
01636
01637
01648 const char* GetNextLimitedLengthText( const char* pText, int nTextLen, int nLimitLen, int* pnLineLen, int* pnBgn )
01649 {
01650     int     i;
01651     int     nBgn;
01652     int     nCharChars;
01653     nBgn = *pnBgn;
01654     if( nBgn >= nTextLen ){
01655         return NULL;
01656     }
01657     for( i = nBgn; i + 1 < nTextLen; ++i ){
01658         // 2005-09-02 D.S.Koba GetSizeOfChar
01659         nCharChars = CMemory::GetSizeOfChar( pText, nTextLen, i );
01660         if( 0 == nCharChars ){
01661             nCharChars = 1;
01662         }
01663         if( i + nCharChars - nBgn >= nLimitLen ){
01664             break;
01665         }
01666         i += ( nCharChars - 1 );
01667     }
01668     *pnBgn = i;
01669     *pnLineLen = i - nBgn;
01670     return &pText[nBgn];
01671 }
01672
01673
01674
01675
01676 /* データを指定バイト数以内に切り詰める */
01677 int LimitStringLengthB( const char* pszData, int nDataLength, int nLimitLengthB, CMemory& cmemDes )
01678 {
01679     int i;
01680     int nCharChars;
01681     int nDesLen;
01682     nDesLen = 0;
01683     for( i = 0; i < nDataLength; ){
01684         // 2005-09-02 D.S.Koba GetSizeOfChar
01685         nCharChars = CMemory::GetSizeOfChar( pszData, nDataLength, i );
01686         if( 0 == nCharChars ){
01687             nCharChars = 1;
01688         }
01689         if( nDesLen + nCharChars > nLimitLengthB ){
01690             break;
01691         }
01692         nDesLen += nCharChars;
01693         i += nCharChars;
01694     }
01695     cmemDes.SetData( pszData, nDesLen );
01696     return nDesLen;
01697 }
01698
01699
01700
01701
01702 /* フォルダの最後が半角かつ'\\'の場合は、取り除く "c:\\"等のルートは取り除かない */
01703 void CutLastYenFromDirectoryPath( char* pszFolder )
01704 {
01705     if( 3 == strlen( pszFolder )
01706      && pszFolder[1] == ':'
01707      && pszFolder[2] == '\\'
01708     ){
01709         /* ドライブ名:\ */
01710     }else{
01711         /* フォルダの最後が半角かつ'\\'の場合は、取り除く */
01712         int nFolderLen;
01713         int nCharChars;
01714         nFolderLen = strlen( pszFolder );
01715         if( 0 < nFolderLen ){
01716             nCharChars = &pszFolder[nFolderLen] - CMemory::MemCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
01717             if( 1 == nCharChars && '\\' == pszFolder[nFolderLen - 1] ){
01718                 pszFolder[nFolderLen - 1] = '\0';
01719             }
01720         }
01721     }
01722     return;
01723 }
01724
01725
01726
01727
01728 /* フォルダの最後が半角かつ'\\'でない場合は、付加する */
01729 void AddLastYenFromDirectoryPath( char* pszFolder )
01730 {
01731     if( 3 == strlen( pszFolder )
01732      && pszFolder[1] == ':'
01733      && pszFolder[2] == '\\'
01734     ){
01735         /* ドライブ名:\ */
01736     }else{
01737         /* フォルダの最後が半角かつ'\\'でない場合は、付加する */
01738         int nFolderLen;
01739         int nCharChars;
01740         nFolderLen = strlen( pszFolder );
01741         if( 0 < nFolderLen ){
01742             nCharChars = &pszFolder[nFolderLen] - CMemory::MemCharPrev( pszFolder, nFolderLen, &pszFolder[nFolderLen] );
01743             if( 1 == nCharChars && '\\' == pszFolder[nFolderLen - 1] ){
01744             }else{
01745                 pszFolder[nFolderLen] = '\\';
01746                 pszFolder[nFolderLen + 1] = '\0';
01747             }
01748         }
01749     }
01750     return;
01751 }
01752
01753
01765 int AddLastChar( char* pszPath, int nMaxLen, char c ){
01766     int pos = strlen( pszPath );
01767     // 何もないときは\を付加
01768     if( 0 == pos ){
01769         if( nMaxLen <= pos + 1 ){
01770             return -1;
01771         }
01772         pszPath[0] = c;
01773         pszPath[1] = '\0';
01774         return 1;
01775     }
01776     // 最後が\でないときも\を付加(日本語を考慮)
01777     else if( *::CharPrev( pszPath, &pszPath[pos] ) != c ){
01778         if( nMaxLen <= pos + 1 ){
01779             return -1;
01780         }
01781         pszPath[pos] = c;
01782         pszPath[pos + 1] = '\0';
01783         return 1;
01784     }
01785     return 0;
01786 }
01787
01788
01789 /* ショートカット(.lnk)の解決 */
01790 BOOL ResolveShortcutLink( HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath )
01791 {
01792     BOOL            bRes;
01793     HRESULT         hRes;
01794     IShellLink*     pIShellLink;
01795     IPersistFile*   pIPersistFile;
01796     char            szGotPath[MAX_PATH];
01797     char            szDescription[MAX_PATH];
01798     WIN32_FIND_DATA wfd;
01799     WCHAR           wsz[MAX_PATH];
01800     /* 初期化 */
01801     pIShellLink = NULL;
01802     pIPersistFile = NULL;
01803     *lpszPath = 0; // assume failure
01804     bRes = FALSE;
01805     szGotPath[0] = '\0';
01806
01807     // COMライブラリの初期化
01808     hRes = ::CoInitialize( NULL );
01809     if( hRes == E_OUTOFMEMORY
01810      || hRes == E_INVALIDARG
01811      || hRes == E_UNEXPECTED
01812     ){
01813         return FALSE;
01814     }
01815
01816     // Get a pointer to the IShellLink interface.
01817 //  hRes = 0;
01818     if( SUCCEEDED( hRes = ::CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *)&pIShellLink ) ) ){
01819         // Get a pointer to the IPersistFile interface.
01820         if( SUCCEEDED(hRes = pIShellLink->QueryInterface( IID_IPersistFile, (void**)&pIPersistFile ) ) ){
01821             // Ensure that the string is Unicode.
01822             MultiByteToWideChar( CP_ACP, 0, lpszLinkFile, -1, wsz, MAX_PATH );
01823             // Load the shortcut.
01824             if( SUCCEEDED(hRes = pIPersistFile->Load( wsz, STGM_READ ) ) ){
01825                 // Resolve the link.
01826                 if( SUCCEEDED( hRes = pIShellLink->Resolve(hwnd, SLR_ANY_MATCH ) ) ){
01827                     // Get the path to the link target.
01828                     if( SUCCEEDED( hRes = pIShellLink->GetPath(szGotPath, MAX_PATH, (WIN32_FIND_DATA *)&wfd, SLGP_SHORTPATH ) ) ){
01829                         // Get the description of the target.
01830                         if( SUCCEEDED(hRes = pIShellLink->GetDescription(szDescription, MAX_PATH ) ) ){
01831                             if( '\0' != szGotPath[0] ){
01832                                 /* 正常終了 */
01833                                 lstrcpy( lpszPath, szGotPath );
01834                                 bRes = TRUE;
01835                             }
01836                         }
01837                     }
01838                 }
01839             }
01840         }
01841     }
01842     // Release the pointer to the IPersistFile interface.
01843     if( NULL != pIPersistFile ){
01844         pIPersistFile->Release();
01845         pIPersistFile = NULL;
01846     }
01847     // Release the pointer to the IShellLink interface.
01848     if( NULL != pIShellLink ){
01849         pIShellLink->Release();
01850         pIShellLink = NULL;
01851     }
01852     // COMライブラリの後始末処理
01853     ::CoUninitialize();
01854     return bRes;
01855 }
01856
01857
01858
01859
01866 BOOL BlockingHook( HWND hwndDlgCancel )
01867 {
01868         MSG     msg;
01869         BOOL    ret;
01870         //  Jun. 04, 2003 genta メッセージをあるだけ処理するように
01871         while(( ret = (BOOL)::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE )) != 0 ){
01872             if ( msg.message == WM_QUIT ){
01873                 return FALSE;
01874             }
01875             if( NULL != hwndDlgCancel && IsDialogMessage( hwndDlgCancel, &msg ) ){
01876             }else{
01877                 ::TranslateMessage( &msg );
01878                 ::DispatchMessage( &msg );
01879             }
01880         }
01881         return TRUE/*ret*/;
01882 }
01883
01884
01885
01886
01888
01899 int FuncID_To_HelpContextID( int nFuncID )
01900 {
01901     switch( nFuncID ){
01902
01903     /* ファイル操作系 */
01904     case F_FILENEW:             return HLP000025;           //新規作成
01905     case F_FILEOPEN:            return HLP000015;           //開く
01906     case F_FILEOPEN_DROPDOWN:   return HLP000015;           //開く(ドロップダウン)  //@@@ 2002.06.15 MIK
01907     case F_FILESAVE:            return HLP000020;           //上書き保存
01908     case F_FILESAVEAS_DIALOG:   return HLP000021;           //名前を付けて保存
01909     case F_FILESAVEALL:         return HLP000313;           //すべて上書き保存  // 2006.10.05 ryoji
01910     case F_FILESAVECLOSE:       return HLP000287;           //保存して閉じる    // 2006.10.05 ryoji
01911     case F_FILECLOSE:           return HLP000017;           //閉じて(無題)  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
01912     case F_FILECLOSE_OPEN:      return HLP000119;           //閉じて開く
01913     case F_FILE_REOPEN:         return HLP000283;           //開き直す  //@@@ 2003.06.15 MIK
01914     case F_FILE_REOPEN_SJIS:    return HLP000156;           //SJISで開き直す
01915     case F_FILE_REOPEN_JIS:     return HLP000157;           //JISで開き直す
01916     case F_FILE_REOPEN_EUC:     return HLP000158;           //EUCで開き直す
01917     case F_FILE_REOPEN_UNICODE: return HLP000159;           //Unicodeで開き直す
01918     case F_FILE_REOPEN_UNICODEBE:   return HLP000256;       //UnicodeBEで開き直す
01919     case F_FILE_REOPEN_UTF8:    return HLP000160;           //UTF-8で開き直す
01920     case F_FILE_REOPEN_UTF7:    return HLP000161;           //UTF-7で開き直す
01921     case F_PRINT:               return HLP000162;           //印刷              //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
01922     case F_PRINT_PREVIEW:       return HLP000120;           //印刷プレビュー
01923     case F_PRINT_PAGESETUP:     return HLP000122;           //印刷ページ設定    //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
01924     case F_OPEN_HfromtoC:       return HLP000192;           //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
01925     case F_OPEN_HHPP:           return HLP000024;           //同名のC/C++ヘッダファイルを開く   //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
01926     case F_OPEN_CCPP:           return HLP000026;           //同名のC/C++ソースファイルを開く   //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
01927     case F_ACTIVATE_SQLPLUS:    return HLP000132;           /* Oracle SQL*Plusをアクティブ表示 */
01928     case F_PLSQL_COMPILE_ON_SQLPLUS:    return HLP000027;   /* Oracle SQL*Plusで実行 */
01929     case F_BROWSE:              return HLP000121;           //ブラウズ
01930     case F_READONLY:            return HLP000249;           //読み取り専用
01931     case F_PROPERTY_FILE:       return HLP000022;           /* ファイルのプロパティ */
01932
01933     case F_EXITALLEDITORS:  return HLP000030;               //編集の全終了  // 2007.02.13 ryoji 追加
01934     case F_EXITALL:         return HLP000028;               //サクラエディタの全終了    //Dec. 26, 2000 JEPRO F_に変更
01935
01936
01937     /* 編集系 */
01938     case F_UNDO:                        return HLP000032;   //元に戻す(Undo)
01939     case F_REDO:                        return HLP000033;   //やり直し(Redo)
01940     case F_DELETE:                      return HLP000041;   //削除
01941     case F_DELETE_BACK:                 return HLP000042;   //カーソル前を削除
01942     case F_WordDeleteToStart:           return HLP000166;   //単語の左端まで削除
01943     case F_WordDeleteToEnd:             return HLP000167;   //単語の右端まで削除
01944     case F_WordCut:                     return HLP000169;   //単語切り取り
01945     case F_WordDelete:                  return HLP000168;   //単語削除
01946     case F_LineCutToStart:              return HLP000172;   //行頭まで切り取り(改行単位)
01947     case F_LineCutToEnd:                return HLP000173;   //行末まで切り取り(改行単位)
01948     case F_LineDeleteToStart:           return HLP000170;   //行頭まで削除(改行単位)
01949     case F_LineDeleteToEnd:             return HLP000171;   //行末まで削除(改行単位)
01950     case F_CUT_LINE:                    return HLP000174;   //行切り取り(折り返し単位)
01951     case F_DELETE_LINE:                 return HLP000137;   //行削除(折り返し単位)
01952     case F_DUPLICATELINE:               return HLP000043;   //行の二重化(折り返し単位)
01953     case F_INDENT_TAB:                  return HLP000113;   //TABインデント
01954     case F_UNINDENT_TAB:                return HLP000113;   //逆TABインデント
01955     case F_INDENT_SPACE:                return HLP000114;   //SPACEインデント
01956     case F_UNINDENT_SPACE:              return HLP000114;   //逆SPACEインデント
01957     case F_RECONVERT:                   return HLP000218;   //再変換
01958 //  case ORDSREFERENCE:                 return ;    //単語リファレンス
01959
01960
01961     /* カーソル移動系 */
01962     case F_UP:              return HLP000289;   //カーソル上移動    // 2006.10.11 ryoji
01963     case F_DOWN:            return HLP000289;   //カーソル下移動    // 2006.10.11 ryoji
01964     case F_LEFT:            return HLP000289;   //カーソル左移動    // 2006.10.11 ryoji
01965     case F_RIGHT:           return HLP000289;   //カーソル右移動    // 2006.10.11 ryoji
01966     case F_UP2:             return HLP000220;   //カーソル上移動(２行ごと)
01967     case F_DOWN2:           return HLP000221;   //カーソル下移動(２行ごと)
01968     case F_WORDLEFT:        return HLP000222;   //単語の左端に移動
01969     case F_WORDRIGHT:       return HLP000223;   //単語の右端に移動
01970     case F_GOLINETOP:       return HLP000224;   //行頭に移動(折り返し単位)
01971     case F_GOLINEEND:       return HLP000225;   //行末に移動(折り返し単位)
01972 //  case F_ROLLDOWN:        return ;    //スクロールダウン
01973 //  case F_ROLLUP:          return ;    //スクロールアップ
01974     case F_HalfPageUp:      return HLP000245;   //半ページアップ    //Oct. 17, 2000 JEPRO 以下「１ページダウン」まで追加
01975     case F_HalfPageDown:    return HLP000246;   //半ページダウン
01976     case F_1PageUp:         return HLP000226;   //１ページアップ
01977     case F_1PageDown:       return HLP000227;   //１ページダウン
01978     case F_GOFILETOP:       return HLP000228;   //ファイルの先頭に移動
01979     case F_GOFILEEND:       return HLP000229;   //ファイルの最後に移動
01980     case F_CURLINECENTER:   return HLP000230;   //カーソル行をウィンドウ中央へ
01981     case F_JUMP_SRCHSTARTPOS:   return HLP000264; //検索開始位置へ戻る
01982     case F_JUMPHIST_PREV:       return HLP000231;   //移動履歴: 前へ    //Oct. 17, 2000 JEPRO 以下「移動履歴:次へ」まで追加
01983     case F_JUMPHIST_NEXT:       return HLP000232;   //移動履歴: 次へ
01984     case F_JUMPHIST_SET:    return HLP000265;   //現在位置を移動履歴に登録
01985     case F_WndScrollDown:   return HLP000198;   //テキストを１行下へスクロール  //Jul. 05, 2001 JEPRO 追加
01986     case F_WndScrollUp:     return HLP000199;   //テキストを１行上へスクロール  //Jul. 05, 2001 JEPRO 追加
01987     case F_GONEXTPARAGRAPH: return HLP000262;   //前の段落に移動
01988     case F_GOPREVPARAGRAPH: return HLP000263;   //前の段落に移動
01989
01990     /* 選択系 */    //Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動
01991     case F_SELECTWORD:      return HLP000045;   //現在位置の単語選択
01992     case F_SELECTALL:       return HLP000044;   //すべて選択
01993     case F_BEGIN_SEL:       return HLP000233;   //範囲選択開始
01994     case F_UP_SEL:          return HLP000290;   //(範囲選択)カーソル上移動  // 2006.10.11 ryoji
01995     case F_DOWN_SEL:        return HLP000290;   //(範囲選択)カーソル下移動  // 2006.10.11 ryoji
01996     case F_LEFT_SEL:        return HLP000290;   //(範囲選択)カーソル左移動  // 2006.10.11 ryoji
01997     case F_RIGHT_SEL:       return HLP000290;   //(範囲選択)カーソル右移動  // 2006.10.11 ryoji
01998     case F_UP2_SEL:         return HLP000234;   //(範囲選択)カーソル上移動(２行ごと)
01999     case F_DOWN2_SEL:       return HLP000235;   //(範囲選択)カーソル下移動(２行ごと)
02000     case F_WORDLEFT_SEL:    return HLP000236;   //(範囲選択)単語の左端に移動
02001     case F_WORDRIGHT_SEL:   return HLP000237;   //(範囲選択)単語の右端に移動
02002     case F_GONEXTPARAGRAPH_SEL: return HLP000273;   //(範囲選択)前の段落に移動  //@@@ 2003.06.15 MIK
02003     case F_GOPREVPARAGRAPH_SEL: return HLP000274;   //(範囲選択)前の段落に移動  //@@@ 2003.06.15 MIK
02004     case F_GOLINETOP_SEL:   return HLP000238;   //(範囲選択)行頭に移動(折り返し単位)
02005     case F_GOLINEEND_SEL:   return HLP000239;   //(範囲選択)行末に移動(折り返し単位)
02006 //  case F_ROLLDOWN_SEL:    return ;    //(範囲選択)スクロールダウン
02007 //  case F_ROLLUP_SEL:      return ;    //(範囲選択)スクロールアップ
02008     case F_HalfPageUp_Sel:  return HLP000247;   //(範囲選択)半ページアップ      //Oct. 17, 2000 JEPRO 以下「１ページダウン」まで追加
02009     case F_HalfPageDown_Sel:return HLP000248;   //(範囲選択)半ページダウン
02010     case F_1PageUp_Sel:     return HLP000240;   //(範囲選択)１ページアップ
02011     case F_1PageDown_Sel:   return HLP000241;   //(範囲選択)１ページダウン
02012     case F_GOFILETOP_SEL:   return HLP000242;   //(範囲選択)ファイルの先頭に移動
02013     case F_GOFILEEND_SEL:   return HLP000243;   //(範囲選択)ファイルの最後に移動
02014 //  case F_GONEXTPARAGRAPH_SEL: return HLP000262;   //(範囲選択)次の段落へ
02015 //  case F_GOPREVPARAGRAPH_SEL: return HLP000263;   //(範囲選択)前の段落へ
02016
02017
02018     /* 矩形選択系 */    //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
02019 //  case F_BOXSELALL:       return ;    //矩形ですべて選択
02020     case F_BEGIN_BOX:       return HLP000244;   //矩形範囲選択開始
02021 /*
02022     case F_UP_BOX:          return ;    //(矩形選択)カーソル上移動  //Oct. 17, 2000 JEPRO 以下「ファイルの最後に移動」まで追加
02023     case F_DOWN_BOX:        return ;    //(矩形選択)カーソル下移動
02024     case F_LEFT_BOX:        return ;    /(矩形選択)カーソル左移動
02025     case F_RIGHT_BOX:       return ;    //(矩形選択)カーソル右移動
02026     case F_UP2_BOX:         return ;    //(矩形選択)カーソル上移動(２行ごと)
02027     case F_DOWN2_BOX:       return ;    //(矩形選択)カーソル下移動(２行ごと)
02028     case F_WORDLEFT_BOX:    return ;    //(矩形選択)単語の左端に移動
02029     case F_WORDRIGHT_BOX:   return ;    //(矩形選択)単語の右端に移動
02030     case F_GOLINETOP_BOX:   return ;    //(矩形選択)行頭に移動(折り返し単位)
02031     case F_GOLINEEND_BOX:   return ;    //(矩形選択)行末に移動(折り返し単位)
02032     case F_HalfPageUp_Box:  return ;    //(矩形選択)半ページアップ
02033     case F_HalfPageDown_Box:return ;    //(矩形選択)半ページダウン
02034     case F_1PageUp_Box:     return ;    //(矩形選択)１ページアップ
02035     case F_1PageDown_Box:   return ;    //(矩形選択)１ページダウン
02036     case F_GOFILETOP_BOX:   return ;    //(矩形選択)ファイルの先頭に移動
02037     case F_GOFILEEND_BOX:   return ;    //(矩形選択)ファイルの最後に移動
02038 */
02039     /* 整形系 2002/04/17 YAZAKI */
02040     case F_LTRIM:       return HLP000210;   //左(先頭)の空白を削除
02041     case F_RTRIM:       return HLP000211;   //右(末尾)の空白を削除
02042     case F_SORT_ASC:    return HLP000212;   //選択行の昇順ソート
02043     case F_SORT_DESC:   return HLP000213;   //選択行の降順ソート
02044     case F_MERGE:       return HLP000214;   //選択行のマージ
02045
02046     /* クリップボード系 */
02047     case F_CUT:             return HLP000034;           //切り取り(選択範囲をクリップボードにコピーして削除)
02048     case F_COPY:            return HLP000035;           //コピー(選択範囲をクリップボードにコピー)
02049     case F_COPY_ADDCRLF:    return HLP000219;           //折り返し位置に改行をつけてコピー(選択範囲をクリップボードにコピー)
02050     case F_COPY_CRLF:       return HLP000163;           //CRLF改行でコピー(選択範囲をクリップボードにコピー)    //Feb. 23, 2001 JEPRO 抜けていたので追加
02051     case F_PASTE:           return HLP000039;           //貼り付け(クリップボードから貼り付け)
02052     case F_PASTEBOX:        return HLP000040;           //矩形貼り付け(クリップボードから矩形貼り付け)
02053 //  case F_INSTEXT:         return ;            // テキストを貼り付け
02054     case F_COPYLINES:               return HLP000036;   //選択範囲内全行コピー
02055     case F_COPYLINESASPASSAGE:      return HLP000037;   //選択範囲内全行引用符付きコピー
02056     case F_COPYLINESWITHLINENUMBER: return HLP000038;   //選択範囲内全行行番号付きコピー
02057     case F_COPYPATH:        return HLP000056;           //このファイルのパス名をクリップボードにコピー
02058     case F_COPYTAG:         return HLP000175;           //このファイルのパス名とカーソル位置をコピー    //Oct. 17, 2000 JEPRO 追加
02059     case F_COPYFNAME:       return HLP000303;           //このファイル名をクリップボードにコピー // 2002/2/3 aroka
02060 //  case IDM_TEST_CREATEKEYBINDLIST:    return 57;  //キー割り当て一覧をクリップボードへコピー  //Sept. 15, 2000 jepro「リスト」を「一覧」に変更
02061     case F_CREATEKEYBINDLIST:       return HLP000057;   //キー割り当て一覧をクリップボードへコピー  //Sept. 15, 2000 JEPRO 「リスト」を「一覧」に変更、IDM＿TESTをFに変更したがうまくいかないので殺してある //Dec. 25, 2000 復活
02062
02063
02064     /* 挿入系 */
02065     case F_INS_DATE:                return HLP000164;   // 日付挿入
02066     case F_INS_TIME:                return HLP000165;   // 時刻挿入
02067     case F_CTRL_CODE_DIALOG:        return HLP000255;   /* コントロールコード入力 */
02068
02069
02070     /* 変換系 */
02071     case F_TOLOWER:                 return HLP000047;   //小文字
02072     case F_TOUPPER:                 return HLP000048;   //大文字
02073     case F_TOHANKAKU:               return HLP000049;   /* 全角→半角 */
02074     case F_TOHANKATA:               return HLP000258;   //全角カタカナ→半角カタカナ
02075     case F_TOZENKAKUKATA:           return HLP000050;   /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
02076     case F_TOZENKAKUHIRA:           return HLP000051;   /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
02077     case F_HANKATATOZENKAKUKATA:    return HLP000123;   /* 半角カタカナ→全角カタカナ */
02078     case F_HANKATATOZENKAKUHIRA:    return HLP000124;   /* 半角カタカナ→全角ひらがな */
02079     case F_TOZENEI:                 return HLP000200;   /* 半角英数→全角英数 */            //July. 30, 2001 Misaka //Stonee, 2001/09/26 番号修正
02080     case F_TOHANEI:                 return HLP000215;   /* 全角英数→半角英数 */            //@@@ 2002.2.11 YAZAKI
02081     case F_TABTOSPACE:              return HLP000182;   /* TAB→空白 */
02082     case F_SPACETOTAB:              return HLP000196;   /* 空白→TAB */ //#### Stonee, 2001/05/27   //Jul. 03, 2001 JEPRO 番号修正
02083     case F_CODECNV_AUTO2SJIS:       return HLP000178;   /* 自動判別→SJISコード変換 */
02084     case F_CODECNV_EMAIL:           return HLP000052;   //E-Mail(JIS→SJIS)コード変換
02085     case F_CODECNV_EUC2SJIS:        return HLP000053;   //EUC→SJISコード変換
02086     case F_CODECNV_UNICODE2SJIS:    return HLP000179;   //Unicode→SJISコード変換
02087     case F_CODECNV_UNICODEBE2SJIS:  return HLP000257;   //UnicodeBE→SJISコード変換
02088     case F_CODECNV_UTF82SJIS:       return HLP000142;   /* UTF-8→SJISコード変換 */
02089     case F_CODECNV_UTF72SJIS:       return HLP000143; /* UTF-7→SJISコード変換 */
02090     case F_CODECNV_SJIS2JIS:        return HLP000117;   /* SJIS→JISコード変換 */
02091     case F_CODECNV_SJIS2EUC:        return HLP000118;   /* SJIS→EUCコード変換 */
02092     case F_CODECNV_SJIS2UTF8:       return HLP000180;   /* SJIS→UTF-8コード変換 */
02093     case F_CODECNV_SJIS2UTF7:       return HLP000181;   /* SJIS→UTF-7コード変換 */
02094     case F_BASE64DECODE:            return HLP000054;   //Base64デコードして保存
02095     case F_UUDECODE:                return HLP000055;   //uudecodeして保存  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
02096
02097
02098     /* 検索系 */
02099     case F_SEARCH_DIALOG:       return HLP000059;   //検索(単語検索ダイアログ)
02100     case F_SEARCH_BOX:          return HLP000059;   //検索(ボックス) Jan. 13, 2003 MIK
02101     case F_SEARCH_NEXT:         return HLP000061;   //次を検索
02102     case F_SEARCH_PREV:         return HLP000060;   //前を検索
02103     case F_REPLACE_DIALOG:      return HLP000062;   //置換(置換ダイアログ)
02104     case F_SEARCH_CLEARMARK:    return HLP000136;   //検索マークのクリア
02105     case F_GREP_DIALOG:         return HLP000067;   //Grep
02106     case F_JUMP_DIALOG:         return HLP000063;   //指定行へジャンプ
02107     case F_OUTLINE:             return HLP000064;   //アウトライン解析
02108     case F_OUTLINE_TOGGLE:      return HLP000317;   //アウトライン解析(トグル)  // 2006.10.11 ryoji
02109     case F_TAGJUMP:             return HLP000065;   //タグジャンプ機能
02110     case F_TAGJUMPBACK:         return HLP000066;   //タグジャンプバック機能
02111     case F_TAGS_MAKE:           return HLP000280;   //タグファイルの作成    //@@@ 2003.04.13 MIK
02112     case F_TAGJUMP_LIST:        return HLP000281;   //タグジャンプ一覧  //@@@ 2003.04.17 MIK
02113     case F_DIRECT_TAGJUMP:      return HLP000281;   //ダイレクトタグジャンプ    //@@@ 2003.04.17 MIK
02114     case F_TAGJUMP_CLOSE:       return HLP000291;   //閉じてタグジャンプ(元ウィンドウclose) // 2006.10.11 ryoji
02115     case F_TAGJUMP_KEYWORD:     return HLP000310;   //キーワードを指定してタグジャンプ  // 2006.10.05 ryoji
02116     case F_COMPARE:             return HLP000116;   //ファイル内容比較
02117     case F_DIFF_DIALOG:         return HLP000251;   //DIFF差分表示(ダイアログ)  //@@@ 2002.05.25 MIK
02118 //  case F_DIFF:                return HLP000251;   //DIFF差分表示  //@@@ 2002.05.25 MIK
02119     case F_DIFF_NEXT:           return HLP000252;   //次の差分へ    //@@@ 2002.05.25 MIK
02120     case F_DIFF_PREV:           return HLP000253;   //前の差分へ    //@@@ 2002.05.25 MIK
02121     case F_DIFF_RESET:          return HLP000254;   //差分の全解除  //@@@ 2002.05.25 MIK
02122     case F_BRACKETPAIR:         return HLP000183;   //対括弧の検索  //Oct. 17, 2000 JEPRO 追加
02123     case F_BOOKMARK_SET:        return HLP000205;   //ブックマーク設定・解除
02124     case F_BOOKMARK_NEXT:       return HLP000206;   //次のブックマークへ
02125     case F_BOOKMARK_PREV:       return HLP000207;   //前のブックマークへ
02126     case F_BOOKMARK_RESET:      return HLP000208;   //ブックマークの全解除
02127     case F_BOOKMARK_VIEW:       return HLP000209;   //ブックマークの一覧
02128     case F_ISEARCH_NEXT:        return HLP000304;   //前方インクリメンタルサーチ    // 2006.10.05 ryoji
02129     case F_ISEARCH_PREV:        return HLP000305;   //後方インクリメンタルサーチ    // 2006.10.05 ryoji
02130     case F_ISEARCH_REGEXP_NEXT: return HLP000306;   //正規表現前方インクリメンタルサーチ    // 2006.10.05 ryoji
02131     case F_ISEARCH_REGEXP_PREV: return HLP000307;   //正規表現後方インクリメンタルサーチ    // 2006.10.05 ryoji
02132     case F_ISEARCH_MIGEMO_NEXT: return HLP000308;   //MIGEMO前方インクリメンタルサーチ  // 2006.10.05 ryoji
02133     case F_ISEARCH_MIGEMO_PREV: return HLP000309;   //MIGEMO後方インクリメンタルサーチ  // 2006.10.05 ryoji
02134
02135     /* モード切り替え系 */
02136     case F_CHGMOD_INS:      return HLP000046;   //挿入／上書きモード切り替え
02137     case F_CHGMOD_EOL_CRLF: return HLP000285;   //入力改行コード指定    // 2003.09.23 Moca
02138     case F_CHGMOD_EOL_CR:   return HLP000285;   //入力改行コード指定    // 2003.09.23 Moca
02139     case F_CHGMOD_EOL_LF:   return HLP000285;   //入力改行コード指定    // 2003.09.23 Moca
02140     case F_CANCEL_MODE:     return HLP000194;   //各種モードの取り消し
02141
02142
02143     /* 設定系 */
02144     case F_SHOWTOOLBAR:     return HLP000069;   /* ツールバーの表示 */
02145     case F_SHOWFUNCKEY:     return HLP000070;   /* ファンクションキーの表示 */
02146     case F_SHOWTAB:         return HLP000282;   /* タブの表示 */    //@@@ 2003.06.10 MIK
02147     case F_SHOWSTATUSBAR:   return HLP000134;   /* ステータスバーの表示 */
02148     case F_TYPE_LIST:       return HLP000072;   /* タイプ別設定一覧 */
02149     case F_OPTION_TYPE:     return HLP000073;   /* タイプ別設定 */
02150     case F_OPTION:          return HLP000076;   /* 共通設定 */
02151 //From here 設定ダイアログ用のhelpトピックIDを追加  Stonee, 2001/05/18
02152     case F_TYPE_SCREEN:     return HLP000074;   /* タイプ別設定『スクリーン』 */
02153     case F_TYPE_COLOR:      return HLP000075;   /* タイプ別設定『カラー』 */
02154     case F_TYPE_HELPER:     return HLP000197;   /* タイプ別設定『支援』 */  //Jul. 03, 2001 JEPRO 追加
02155     case F_TYPE_REGEX_KEYWORD:  return HLP000203;   /* タイプ別設定『正規表現キーワード』 */    //@@@ 2001.11.17 add MIK
02156     case F_TYPE_KEYHELP:    return HLP000315;   /* タイプ別設定『キーワードヘルプ』 */  // 2006.10.06 ryoji 追加
02157     case F_OPTION_GENERAL:  return HLP000081;   /* 共通設定『全般』 */
02158     case F_OPTION_WINDOW:   return HLP000146;   /* 共通設定『ウィンドウ』 */
02159     case F_OPTION_TAB:      return HLP000150;   /* 共通設定『タブバー』 */  // 2007.02.13 ryoji 追加
02160     case F_OPTION_EDIT:     return HLP000144;   /* 共通設定『編集』 */
02161     case F_OPTION_FILE:     return HLP000083;   /* 共通設定『ファイル』 */
02162     case F_OPTION_BACKUP:   return HLP000145;   /* 共通設定『バックアップ』 */
02163     case F_OPTION_FORMAT:   return HLP000082;   /* 共通設定『書式』 */
02164 //  case F_OPTION_URL:      return HLP000147;   /* 共通設定『クリッカブルURL』 */
02165     case F_OPTION_GREP:     return HLP000148;   /* 共通設定『Grep』 */
02166     case F_OPTION_KEYBIND:  return HLP000084;   /* 共通設定『キー割り当て』 */
02167     case F_OPTION_CUSTMENU: return HLP000087;   /* 共通設定『カスタムメニュー』 */
02168     case F_OPTION_TOOLBAR:  return HLP000085;   /* 共通設定『ツールバー』 */
02169     case F_OPTION_KEYWORD:  return HLP000086;   /* 共通設定『強調キーワード』 */
02170     case F_OPTION_HELPER:   return HLP000088;   /* 共通設定『支援』 */
02171 //To here  Stonee, 2001/05/18
02172     case F_OPTION_MACRO:    return HLP000201;   /* 共通設定『マクロ』 */    //@@@ 2002.01.02
02173     case F_OPTION_FNAME:    return HLP000277;   /* 共通設定 『全般』プロパティ */   // 2002.12.09 Moca Add  //重複回避
02174     case F_FONT:            return HLP000071;   /* フォント設定 */
02175     case F_WRAPWINDOWWIDTH: return HLP000184;   /* 現在のウィンドウ幅で折り返し */  //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更  //Jul. 03, 2001 JEPRO 番号修正
02176     case F_FAVORITE:        return HLP000279;   /* 履歴の管理 */    //@@@ 2003.04.08 MIK
02177
02178     /* マクロ */
02179     case F_RECKEYMACRO:     return HLP000125;   /* キーマクロ記録開始／終了 */
02180     case F_SAVEKEYMACRO:    return HLP000127;   /* キーマクロ保存 */
02181     case F_LOADKEYMACRO:    return HLP000128;   /* キーマクロ読み込み */
02182     case F_EXECKEYMACRO:    return HLP000126;   /* キーマクロ実行 */
02183 //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
02184 //  case F_EXECCMMAND:      return 103; /* 外部コマンド実行 */
02185     case F_EXECCOMMAND_DIALOG:  return HLP000103; /* 外部コマンド実行 */
02186 //  To Here Sept. 20, 2000
02187
02188
02189     /* カスタムメニュー */
02190     case F_MENU_RBUTTON:    return HLP000195;   /* 右クリックメニュー */
02191     case F_CUSTMENU_1:  return HLP000186;   /* カスタムメニュー1 */
02192     case F_CUSTMENU_2:  return HLP000186;   /* カスタムメニュー2 */
02193     case F_CUSTMENU_3:  return HLP000186;   /* カスタムメニュー3 */
02194     case F_CUSTMENU_4:  return HLP000186;   /* カスタムメニュー4 */
02195     case F_CUSTMENU_5:  return HLP000186;   /* カスタムメニュー5 */
02196     case F_CUSTMENU_6:  return HLP000186;   /* カスタムメニュー6 */
02197     case F_CUSTMENU_7:  return HLP000186;   /* カスタムメニュー7 */
02198     case F_CUSTMENU_8:  return HLP000186;   /* カスタムメニュー8 */
02199     case F_CUSTMENU_9:  return HLP000186;   /* カスタムメニュー9 */
02200     case F_CUSTMENU_10: return HLP000186;   /* カスタムメニュー10 */
02201     case F_CUSTMENU_11: return HLP000186;   /* カスタムメニュー11 */
02202     case F_CUSTMENU_12: return HLP000186;   /* カスタムメニュー12 */
02203     case F_CUSTMENU_13: return HLP000186;   /* カスタムメニュー13 */
02204     case F_CUSTMENU_14: return HLP000186;   /* カスタムメニュー14 */
02205     case F_CUSTMENU_15: return HLP000186;   /* カスタムメニュー15 */
02206     case F_CUSTMENU_16: return HLP000186;   /* カスタムメニュー16 */
02207     case F_CUSTMENU_17: return HLP000186;   /* カスタムメニュー17 */
02208     case F_CUSTMENU_18: return HLP000186;   /* カスタムメニュー18 */
02209     case F_CUSTMENU_19: return HLP000186;   /* カスタムメニュー19 */
02210     case F_CUSTMENU_20: return HLP000186;   /* カスタムメニュー20 */
02211     case F_CUSTMENU_21: return HLP000186;   /* カスタムメニュー21 */
02212     case F_CUSTMENU_22: return HLP000186;   /* カスタムメニュー22 */
02213     case F_CUSTMENU_23: return HLP000186;   /* カスタムメニュー23 */
02214     case F_CUSTMENU_24: return HLP000186;   /* カスタムメニュー24 */
02215
02216
02217     /* ウィンドウ系 */
02218     case F_SPLIT_V:         return HLP000093;   //上下に分割    //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
02219     case F_SPLIT_H:         return HLP000094;   //左右に分割    //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
02220     case F_SPLIT_VH:        return HLP000095;   //縦横に分割    //Sept. 17, 2000 jepro 説明に「に」を追加
02221     case F_WINCLOSE:        return HLP000018;   //ウィンドウを閉じる
02222     case F_WIN_CLOSEALL:    return HLP000019;   //すべてのウィンドウを閉じる    //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
02223     case F_NEXTWINDOW:      return HLP000092;   //次のウィンドウ
02224     case F_PREVWINDOW:      return HLP000091;   //前のウィンドウ
02225     case F_WINLIST:         return HLP000314;   //ウィンドウ一覧    // 2006.10.05 ryoji
02226     case F_BIND_WINDOW:     return HLP000311;   //結合して表示  // 2006.10.05 ryoji
02227     case F_CASCADE:         return HLP000138;   //重ねて表示
02228     case F_TILE_V:          return HLP000140;   //上下に並べて表示
02229     case F_TILE_H:          return HLP000139;   //左右に並べて表示
02230     case F_TOPMOST:         return HLP000312;   //常に手前に表示    // 2006.10.05 ryoji
02231     case F_MAXIMIZE_V:      return HLP000141;   //縦方向に最大化
02232     case F_MAXIMIZE_H:      return HLP000098;   //横方向に最大化    //2001.02.10 by MIK
02233     case F_MINIMIZE_ALL:    return HLP000096;   //すべて最小化  //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
02234     case F_REDRAW:          return HLP000187;   //再描画
02235     case F_WIN_OUTPUT:      return HLP000188;   //アウトプットウィンドウ表示
02236     case F_GROUPCLOSE:      return HLP000320;   //グループを閉じる  // 2007.06.20 ryoji
02237     case F_NEXTGROUP:       return HLP000321;   //次のグループ  // 2007.06.20 ryoji
02238     case F_PREVGROUP:       return HLP000322;   //前のグループ  // 2007.06.20 ryoji
02239     case F_TAB_MOVERIGHT:   return HLP000323;   //タブを右に移動    // 2007.06.20 ryoji
02240     case F_TAB_MOVELEFT:    return HLP000324;   //タブを左に移動    // 2007.06.20 ryoji
02241     case F_TAB_SEPARATE:    return HLP000325;   //新規グループ  // 2007.06.20 ryoji
02242     case F_TAB_JOINTNEXT:   return HLP000326;   //次のグループに移動    // 2007.06.20 ryoji
02243     case F_TAB_JOINTPREV:   return HLP000327;   //前のグループに移動    // 2007.06.20 ryoji
02244
02245
02246     /* 支援 */
02247     case F_HOKAN:           return HLP000111;   /* 入力補完機能 */
02248     case F_TOGGLE_KEY_SEARCH:   return HLP000318;   //キャレット位置辞書検索機能ON/OFF  // 2006.10.11 ryoji
02249 //Sept. 15, 2000→Nov. 25, 2000 JEPRO   //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
02250     case F_HELP_CONTENTS:   return HLP000100;   //ヘルプ目次            //Nov. 25, 2000 JEPRO
02251     case F_HELP_SEARCH:     return HLP000101;   //ヘルプキーワード検索  //Nov. 25, 2000 JEPRO「トピックの」→「キーワード」に変更
02252     case F_MENU_ALLFUNC:    return HLP000189;   /* コマンド一覧 */
02253     case F_EXTHELP1:        return HLP000190;   /* 外部ヘルプ１ */
02254     case F_EXTHTMLHELP:     return HLP000191;   /* 外部HTMLヘルプ */
02255     case F_ABOUT:           return HLP000102;   //バージョン情報    //Dec. 24, 2000 JEPRO F_に変更
02256
02257
02258     /* その他 */
02259 //  case F_SENDMAIL:        return ;    /* メール送信 */
02260
02261     default:
02262         // From Here 2003.09.23 Moca
02263         if( IDM_SELMRU <= nFuncID && nFuncID < IDM_SELMRU + MAX_MRU ){
02264             return HLP000029;   //最近使ったファイル
02265         }else if( IDM_SELOPENFOLDER <= nFuncID && nFuncID < IDM_SELOPENFOLDER + MAX_OPENFOLDER ){
02266             return HLP000023;   //最近使ったフォルダ
02267         }else if( IDM_SELWINDOW <= nFuncID && nFuncID < IDM_SELWINDOW + MAX_EDITWINDOWS ){
02268             return HLP000097;   //ウィンドウリスト
02269         }else if( F_USERMACRO_0 <= nFuncID && nFuncID < F_USERMACRO_0 + MAX_CUSTMACRO ){
02270             return HLP000202;   //登録済みマクロ    // 2006.10.08 ryoji
02271         }
02272         // To Here 2003.09.23 Moca
02273         return 0;
02274     }
02275 }
02276
02286 SAKURA_CORE_API bool SetClipboardText( HWND hwnd, const char* pszText, int length )
02287 {
02288     HGLOBAL     hgClip;
02289     char*       pszClip;
02290
02291     hgClip = ::GlobalAlloc( GMEM_MOVEABLE | GMEM_DDESHARE, length + 1 );
02292     if( NULL == hgClip ){
02293         return false;
02294     }
02295     pszClip = (char*)::GlobalLock( hgClip );
02296     if( NULL == pszClip ){
02297         ::GlobalFree( hgClip );
02298         return false;
02299     }
02300     memcpy( pszClip, pszText, length );
02301     pszClip[length] = 0;
02302     ::GlobalUnlock( hgClip );
02303     if( FALSE == ::OpenClipboard( hwnd ) ){
02304         ::GlobalFree( hgClip );
02305         return false;
02306     }
02307     ::EmptyClipboard();
02308     ::SetClipboardData( CF_OEMTEXT, hgClip );
02309     ::CloseClipboard();
02310
02311     return true;
02312 }
02313
02314 //  From Here Jun. 26, 2001 genta
02329 bool InitRegexp( HWND hWnd, CBregexp& rRegexp, bool bShowMessage )
02330 {
02331     //  From Here 2007.08.12 genta
02332     CShareData* pInstance = NULL;
02333     DLLSHAREDATA* pShareData = NULL;
02334
02335     LPCTSTR RegexpDll = _T("");
02336
02337     if( (pInstance = CShareData::getInstance()) && (pShareData = pInstance->GetShareData()) ){
02338         RegexpDll = pShareData->m_Common.m_szRegexpLib;
02339     }
02340     //  To Here 2007.08.12 genta
02341
02342     if( !rRegexp.Init( RegexpDll ) ){
02343         if( bShowMessage ){
02344             ::MessageBeep( MB_ICONEXCLAMATION );
02345             ::MessageBox( hWnd, _T("正規表現ライブラリが見つかりません。\r\n"
02346                 "正規表現を利用するにはBREGEXP.DLL互換のライブラリが必要です。\r\n"
02347                 "入手方法はヘルプを参照してください。"),
02348                 GSTR_APPNAME, MB_OK | MB_ICONEXCLAMATION );
02349         }
02350         return false;
02351     }
02352     return true;
02353 }
02354
02367 bool CheckRegexpVersion( HWND hWnd, int nCmpId, bool bShowMessage )
02368 {
02369     CBregexp cRegexp;
02370
02371     if( !InitRegexp( hWnd, cRegexp, bShowMessage ) ){
02372         if( hWnd != NULL ){
02373             ::SetDlgItemText( hWnd, nCmpId, " ");
02374         }
02375         return false;
02376     }
02377     if( hWnd != NULL ){
02378         ::SetDlgItemText( hWnd, nCmpId, cRegexp.GetVersion() );
02379     }
02380     return true;
02381 }
02382
02394 bool CheckRegexpSyntax( const char* szPattern, HWND hWnd, bool bShowMessage, int nOption )
02395 {
02396     CBregexp cRegexp;
02397
02398     if( !InitRegexp( hWnd, cRegexp, bShowMessage ) ){
02399         return false;
02400     }
02401     if( !cRegexp.Compile( szPattern, nOption ) ){   // 2002/2/1 hor追加
02402         if( bShowMessage ){
02403             ::MessageBox( hWnd, cRegexp.GetLastMessage(),
02404                 "正規表現エラー", MB_OK | MB_ICONEXCLAMATION );
02405         }
02406         return false;
02407     }
02408     return true;
02409 }
02410 //  To Here Jun. 26, 2001 genta
02411
02412
02413 //  From Here Jun. 26, 2001 genta
02420 CHtmlHelp g_cHtmlHelp;
02421
02437 HWND OpenHtmlHelp( HWND hWnd, LPCSTR szFile, UINT uCmd, DWORD_PTR data, bool msgflag )
02438 {
02439     if( g_cHtmlHelp.Init() ){
02440         return g_cHtmlHelp.HtmlHelp( hWnd, szFile, uCmd, data );
02441     }
02442     if( msgflag ){
02443         ::MessageBox( hWnd, "HHCTRL.OCXが見つかりません。\r\n"
02444             "HTMLヘルプを利用するにはHHCTRL.OCXが必要です。\r\n",
02445             "情報", MB_OK | MB_ICONEXCLAMATION );
02446     }
02447     return NULL;
02448 }
02449
02450
02451 //  To Here Jun. 26, 2001 genta
02452
02453
02454
02455 // Stonee, 2001/12/21
02456 // NetWork上のリソースに接続するためのダイアログを出現させる
02457 // NO_ERROR:成功 ERROR_CANCELLED:キャンセル それ以外:失敗
02458 // プロジェクトの設定でリンクモジュールにMpr.libを追加のこと
02459 DWORD NetConnect ( const char strNetWorkPass[] )
02460 {
02461     NETRESOURCE nr;
02462     //char sPassWord[] = "\0";  //パスワード
02463     //char sUser[] = "\0";      //ユーザー名
02464     DWORD dwRet;                //戻り値　エラーコードはWINERROR.Hを参照
02465     char sTemp[256];
02466     char sDrive[] = "";
02467     int i;
02468
02469     if (strlen(strNetWorkPass) < 3) return ERROR_BAD_NET_NAME;  //UNCではない。
02470     if (strNetWorkPass[0] != '\\' && strNetWorkPass[1] != '\\') return ERROR_BAD_NET_NAME;  //UNCではない。
02471
02472     //3文字目から数えて最初の\の直前までを切り出す
02473     sTemp[0] = '\\';
02474     sTemp[1] = '\\';
02475     for (i = 2; strNetWorkPass[i] != '\0'; i++) {
02476         if (strNetWorkPass[i] == '\\') break;
02477         sTemp[i] = strNetWorkPass[i];
02478     }
02479     sTemp[i] = '\0';    //終端
02480
02481 /*
02482     MYMESSAGEBOX(
02483         0,
02484         MB_YESNO | MB_ICONEXCLAMATION | MB_TOPMOST,
02485         "！！",
02486         sTemp
02487     );
02488 */
02489     ZeroMemory( &nr, sizeof( nr ) );
02490     nr.dwScope = RESOURCE_GLOBALNET;
02491     nr.dwType = RESOURCETYPE_DISK;
02492     nr.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE;
02493     nr.dwUsage = RESOURCEUSAGE_CONNECTABLE;
02494     nr.lpLocalName = sDrive;
02495     nr.lpRemoteName = sTemp;
02496
02497     //ユーザー認証ダイアログを表示
02498     dwRet = WNetAddConnection3(0, &nr, NULL, NULL, CONNECT_UPDATE_PROFILE | CONNECT_INTERACTIVE);
02499
02500     return dwRet;
02501 }
02502
02525 int cescape(const TCHAR* org, TCHAR* buf, TCHAR cesc, TCHAR cwith)
02526 {
02527     TCHAR *out = buf;
02528     for( ; *org != _T('\0'); ++org, ++out ){
02529         if( *org == cesc ){
02530             *out = cwith;
02531             ++out;
02532         }
02533         *out = *org;
02534     }
02535     *out = _T('\0');
02536     return out - buf;
02537 }
02538
02556 int cescape_j(const char* org, char* buf, char cesc, char cwith)
02557 {
02558     char *out = buf;
02559     for( ; *org != '\0'; ++org, ++out ){
02560         if( _IS_SJIS_1( (unsigned char)*org ) ){
02561             *out = *org;
02562             ++out; ++org;
02563         }
02564         else if( *org == cesc ){
02565             *out = cwith;
02566             ++out;
02567         }
02568         *out = *org;
02569     }
02570     *out = '\0';
02571     return out - buf;
02572 }
02573
02574 /*  ヘルプの目次を表示
02575     目次タブを表示。問題があるバージョンでは、目次ページを表示。
02576 */
02577 void ShowWinHelpContents( HWND hwnd, LPCTSTR lpszHelp )
02578 {
02579     COsVersionInfo cOsVer;
02580     if ( cOsVer.HasWinHelpContentsProblem() ){
02581         /* 目次ページを表示する */
02582         MyWinHelp( hwnd, lpszHelp, HELP_CONTENTS , 0 ); // 2006.10.10 ryoji MyWinHelpに変更に変更
02583         return;
02584     }
02585     /* 目次タブを表示する */
02586     MyWinHelp( hwnd, lpszHelp, HELP_COMMAND, (ULONG_PTR)"CONTENTS()" ); // 2006.10.10 ryoji MyWinHelpに変更に変更
02587     return;
02588 }
02589
02590
02591 /*
02592  * カラー名からインデックス番号に変換する
02593  */
02594 SAKURA_CORE_API int GetColorIndexByName( const char *name )
02595 {
02596     int i;
02597     for( i = 0; i < COLORIDX_LAST; i++ )
02598     {
02599         if( strcmp( name, (const char*)g_ColorAttributeArr[i].szName ) == 0 ) return i;
02600     }
02601     return -1;
02602 }
02603
02604 /*
02605  * インデックス番号からカラー名に変換する
02606  */
02607 SAKURA_CORE_API const char* GetColorNameByIndex( int index )
02608 {
02609     return g_ColorAttributeArr[index].szName;
02610 }
02611
02627 bool ReadRegistry(HKEY Hive, char const *Path, char const *Item, char *Buffer, unsigned BufferSize)
02628 {
02629     bool Result = false;
02630
02631     HKEY Key;
02632     if(RegOpenKeyEx(Hive, Path, 0, KEY_READ, &Key) == ERROR_SUCCESS)
02633     {
02634         ZeroMemory(Buffer, BufferSize);
02635
02636         DWORD dwType = REG_SZ;
02637         DWORD dwDataLen = BufferSize - 1;
02638
02639         Result = (RegQueryValueEx(Key, Item, NULL, &dwType, reinterpret_cast<unsigned char*>(Buffer), &dwDataLen) == ERROR_SUCCESS);
02640
02641         RegCloseKey(Key);
02642     }
02643     return Result;
02644 }
02645
02657 void GetExedir( LPTSTR pDir, LPCTSTR szFile )
02658 {
02659     if( pDir == NULL )
02660         return;
02661
02662     TCHAR   szPath[_MAX_PATH];
02663     // sakura.exe のパスを取得
02664     ::GetModuleFileName( ::GetModuleHandle(NULL), szPath, sizeof(szPath) );
02665     if( szFile == NULL ){
02666         SplitPath_FolderAndFile( szPath, pDir, NULL );
02667     }
02668     else {
02669         TCHAR   szDir[_MAX_PATH];
02670         SplitPath_FolderAndFile( szPath, szDir, NULL );
02671         _snprintf( pDir, _MAX_PATH, _T("%s\\%s"), szDir, szFile );
02672         pDir[_MAX_PATH - 1] = _T('\0');
02673     }
02674 }
02675
02686 void GetInidir( LPTSTR pDir, LPCTSTR szFile/*=NULL*/ )
02687 {
02688     if( pDir == NULL )
02689         return;
02690
02691     TCHAR   szPath[_MAX_PATH];
02692     // sakura.ini のパスを取得
02693     CShareData::getInstance()->GetIniFileName( szPath );
02694     if( szFile == NULL ){
02695         SplitPath_FolderAndFile( szPath, pDir, NULL );
02696     }
02697     else {
02698         TCHAR   szDir[_MAX_PATH];
02699         SplitPath_FolderAndFile( szPath, szDir, NULL );
02700         _snprintf( pDir, _MAX_PATH, _T("%s\\%s"), szDir, szFile );
02701         pDir[_MAX_PATH - 1] = _T('\0');
02702     }
02703 }
02704
02705
02717 void GetInidirOrExedir( LPTSTR pDir, LPCTSTR szFile/*=NULL*/, BOOL bRetExedirIfFileEmpty/*=FALSE*/ )
02718 {
02719     TCHAR   szInidir[_MAX_PATH];
02720     TCHAR   szExedir[_MAX_PATH];
02721
02722     // ファイル名の指定が空の場合はEXEファイルのフルパスを返す（オプション）
02723     if( bRetExedirIfFileEmpty && (szFile == NULL || szFile[0] == _T('\0')) ){
02724         GetExedir( szExedir, szFile );
02725         ::lstrcpy( pDir, szExedir );
02726         return;
02727     }
02728
02729     // INI基準のフルパスが実在すればそのパスを返す
02730     GetInidir( szInidir, szFile );
02731     if( _taccess(szInidir, 0) != -1 ){
02732         ::lstrcpy( pDir, szInidir );
02733         return;
02734     }
02735
02736     // EXE基準のフルパスが実在すればそのパスを返す
02737     if( CShareData::getInstance()->IsPrivateSettings() ){   // INIとEXEでパスが異なる場合
02738         GetExedir( szExedir, szFile );
02739         if( _taccess(szExedir, 0) != -1 ){
02740             ::lstrcpy( pDir, szExedir );
02741             return;
02742         }
02743     }
02744
02745     // どちらにも実在しなければINI基準のフルパスを返す
02746     ::lstrcpy( pDir, szInidir );
02747 }
02748
02749
02767 HICON GetAppIcon( HINSTANCE hInst, int nResource, const char* szFile, bool bSmall )
02768 {
02769     // サイズの設定
02770     int size = ( bSmall ? 16 : 32 );
02771
02772     TCHAR szPath[_MAX_PATH];
02773     HICON hIcon;
02774
02775     // ファイルからの読み込みをまず試みる
02776     GetInidirOrExedir( szPath, szFile );
02777
02778     hIcon = (HICON)::LoadImage( NULL, szPath, IMAGE_ICON, size, size,
02779             LR_SHARED | LR_LOADFROMFILE );
02780     if( hIcon != NULL ){
02781         return hIcon;
02782     }
02783
02784     //  ファイルからの読み込みに失敗したらリソースから取得
02785     hIcon = (HICON)::LoadImage( hInst, MAKEINTRESOURCE(nResource),
02786         IMAGE_ICON, size, size, LR_SHARED );
02787
02788     return hIcon;
02789 }
02790
02796 FILE* _tfopen_absexe(LPCTSTR fname, LPCTSTR mode)
02797 {
02798     if( _IS_REL_PATH( fname ) ){
02799         TCHAR path[_MAX_PATH];
02800         GetExedir( path, fname );
02801         return _tfopen( path, mode );
02802     }
02803     return _tfopen( fname, mode );
02804
02805 }
02806
02811 FILE* _tfopen_absini(LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir/*=TRUE*/ )
02812 {
02813     if( _IS_REL_PATH( fname ) ){
02814         TCHAR path[_MAX_PATH];
02815         if( bOrExedir )
02816             GetInidirOrExedir( path, fname );
02817         else
02818             GetInidir( path, fname );
02819         return _tfopen( path, mode );
02820     }
02821     return _tfopen( fname, mode );
02822 }
02823
02824
02841 char *strncpy_ex(char *dst, size_t dst_count, const char* src, size_t src_count)
02842 {
02843     if( src_count >= dst_count ){
02844         src_count = dst_count - 1;
02845     }
02846     memcpy( dst, src, src_count );
02847     return dst + src_count;
02848 }
02849
02860 int CalcDirectoryDepth(const char* path)
02861 {
02862     int depth = 0;
02863
02864     //  とりあえず\の数を数える
02865     for( const char *p = path; *p != '\0'; ++p ){
02866         //  2バイト文字は区切りではない
02867         if( _IS_SJIS_1(*(unsigned const char*)p)){ // unsignedにcastしないと判定を誤る
02868             ++p;
02869             if( *p == '\0' )
02870                 break;
02871         }
02872         else if( *p == '\\' ){
02873             ++depth;
02874             //  フルパスには入っていないはずだが念のため
02875             //  .\はカレントディレクトリなので，深さに関係ない．
02876             while( p[1] == '.' && p[2] == '\\' ){
02877                 p += 2;
02878             }
02879         }
02880     }
02881
02882     //  補正
02883     //  ドライブ名はパスの深さに数えない
02884     if(( 'A' <= (path[0] & ~0x20)) && ((path[0] & ~0x20) <= 'Z' ) &&
02885         path[1] == ':' && path[2] == '\\' ){
02886         //フルパス
02887         --depth; // C:\ の \ はルートの記号なので階層深さではない
02888     }
02889     else if( path[0] == '\\' ){
02890         if( path[1] == '\\' ){
02891             //  ネットワークパス
02892             //  先頭の2つはネットワークを表し，その次はホスト名なので
02893             //  ディレクトリ階層とは無関係
02894             depth -= 3;
02895         }
02896         else {
02897             //  ドライブ名無しのフルパス
02898             //  先頭の\は対象外
02899             --depth;
02900         }
02901     }
02902     return depth;
02903 }
02904
02905
02921 //  From Here May 01, 2004 genta MutiMonitor
02922 bool GetMonitorWorkRect(HWND hWnd, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
02923 {
02924     // 2006.04.21 ryoji Windows API 形式の関数呼び出しに変更（スタブに PSDK の MultiMon.h を利用）
02925     HMONITOR hMon = ::MonitorFromWindow( hWnd, MONITOR_DEFAULTTONEAREST );
02926     return GetMonitorWorkRect( hMon, prcWork, prcMonitor );
02927 }
02928 //  To Here May 01, 2004 genta
02929
02930 //  From Here 2006.04.21 ryoji MutiMonitor
02931 bool GetMonitorWorkRect(LPCRECT prc, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
02932 {
02933     HMONITOR hMon = ::MonitorFromRect( prc, MONITOR_DEFAULTTONEAREST );
02934     return GetMonitorWorkRect( hMon, prcWork, prcMonitor );
02935 }
02936
02937 bool GetMonitorWorkRect(POINT pt, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
02938 {
02939     HMONITOR hMon = ::MonitorFromPoint( pt, MONITOR_DEFAULTTONEAREST );
02940     return GetMonitorWorkRect( hMon, prcWork, prcMonitor );
02941 }
02942
02943 bool GetMonitorWorkRect(HMONITOR hMon, LPRECT prcWork, LPRECT prcMonitor/* = NULL*/)
02944 {
02945     MONITORINFO mi;
02946     ::ZeroMemory( &mi, sizeof( mi ));
02947     mi.cbSize = sizeof( mi );
02948     ::GetMonitorInfo( hMon, &mi );
02949     if( NULL != prcWork )
02950         *prcWork = mi.rcWork;       // work area rectangle of the display monitor
02951     if( NULL != prcMonitor )
02952         *prcMonitor = mi.rcMonitor; // display monitor rectangle
02953     return ( mi.dwFlags == MONITORINFOF_PRIMARY ) ? true : false;
02954 }
02955 //  To Here 2006.04.21 ryoji MutiMonitor
02956
02957
02965 HWND MyGetAncestor( HWND hWnd, UINT gaFlags )
02966 {
02967     HWND hwndAncestor;
02968     HWND hwndDesktop = ::GetDesktopWindow();
02969
02970     if( hWnd == hwndDesktop )
02971         return NULL;
02972
02973     switch( gaFlags )
02974     {
02975     case GA_PARENT: // 親ウィンドウを返す（オーナーは返さない）
02976         hwndAncestor = ( (DWORD)::GetWindowLongPtr( hWnd, GWL_STYLE ) & WS_CHILD )? ::GetParent( hWnd ): hwndDesktop;
02977         break;
02978
02979     case GA_ROOT:   // 親子関係を遡って直近上位のトップレベルウィンドウを返す
02980         hwndAncestor = hWnd;
02981         while( (DWORD)::GetWindowLongPtr( hwndAncestor, GWL_STYLE ) & WS_CHILD )
02982             hwndAncestor = ::GetParent( hwndAncestor );
02983         break;
02984
02985     case GA_ROOTOWNER:  // 親子関係と所有関係を遡って所有されていないトップレベルウィンドウを返す
02986         HWND hwndWk;
02987         hwndWk = hWnd;
02988         do{
02989             hwndAncestor = hwndWk;
02990             hwndWk = ::GetParent( hwndWk );
02991         }while( hwndWk != NULL );
02992         break;
02993     }
02994
02995     return hwndAncestor;
02996 }
02997
02998 // novice 2004/10/10 マウスサイドボタン対応
03005 int getCtrlKeyState(void)
03006 {
03007     int nIdx = 0;
03008
03009     /* Shiftキーが押されているなら */
03010     if( (SHORT)0x8000 & ::GetKeyState( VK_SHIFT ) ){
03011         nIdx |= _SHIFT;
03012     }
03013     /* Ctrlキーが押されているなら */
03014     if( (SHORT)0x8000 & ::GetKeyState( VK_CONTROL ) ){
03015         nIdx |= _CTRL;
03016     }
03017     /* Altキーが押されているなら */
03018     if( (SHORT)0x8000 & ::GetKeyState( VK_MENU ) ){
03019         nIdx |= _ALT;
03020     }
03021
03022     return nIdx;
03023 }
03024
03039 bool GetLastWriteTimestamp( const TCHAR* filename, FILETIME& ftime )
03040 {
03041     HANDLE hFindFile;
03042     WIN32_FIND_DATA ffd;
03043
03044     hFindFile = ::FindFirstFile( filename, &ffd );
03045     if( INVALID_HANDLE_VALUE != hFindFile )
03046     {
03047         ::FindClose( hFindFile );
03048         ftime = ffd.ftLastWriteTime;
03049         return true;
03050     }
03051     //  ファイルが見つからなかった
03052     return false;
03053 }
03054
03055
03071 bool GetDateTimeFormat( TCHAR* szResult, int size, const TCHAR* format, const SYSTEMTIME& systime )
03072 {
03073     char szTime[10];
03074     const char *p = format;
03075     char *q = szResult;
03076     int len;
03077
03078     while( *p ){
03079         if( *p == '%' ){
03080             ++p;
03081             switch(*p){
03082             case 'Y':
03083                 len = wsprintf(szTime,"%d",systime.wYear);
03084                 strcpy( q, szTime );
03085                 break;
03086             case 'y':
03087                 len = wsprintf(szTime,"%02d",(systime.wYear%100));
03088                 strcpy( q, szTime );
03089                 break;
03090             case 'm':
03091                 len = wsprintf(szTime,"%02d",systime.wMonth);
03092                 strcpy( q, szTime );
03093                 break;
03094             case 'd':
03095                 len = wsprintf(szTime,"%02d",systime.wDay);
03096                 strcpy( q, szTime );
03097                 break;
03098             case 'H':
03099                 len = wsprintf(szTime,"%02d",systime.wHour);
03100                 strcpy( q, szTime );
03101                 break;
03102             case 'M':
03103                 len = wsprintf(szTime,"%02d",systime.wMinute);
03104                 strcpy( q, szTime );
03105                 break;
03106             case 'S':
03107                 len = wsprintf(szTime,"%02d",systime.wSecond);
03108                 strcpy( q, szTime );
03109                 break;
03110                 // A Z
03111             case '%':
03112             default:
03113                 *q = *p;
03114                 len = 1;
03115                 break;
03116             }
03117             q+=len;//q += strlen(szTime);
03118             ++p;
03119
03120         }
03121         else{
03122             *q = *p;
03123             q++;
03124             p++;
03125         }
03126     }
03127     *q = *p;
03128     return true;
03129 }
03130
03139 DWORD GetDllVersion(LPCTSTR lpszDllName)
03140 {
03141     HINSTANCE hinstDll;
03142     DWORD dwVersion = 0;
03143
03144     /* For security purposes, LoadLibrary should be provided with a
03145        fully-qualified path to the DLL. The lpszDllName variable should be
03146        tested to ensure that it is a fully qualified path before it is used. */
03147     hinstDll = LoadLibrary(lpszDllName);
03148
03149     if(hinstDll)
03150     {
03151         DLLGETVERSIONPROC pDllGetVersion;
03152         pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hinstDll,
03153                           "DllGetVersion");
03154
03155         /* Because some DLLs might not implement this function, you
03156         must test for it explicitly. Depending on the particular
03157         DLL, the lack of a DllGetVersion function can be a useful
03158         indicator of the version. */
03159
03160         if(pDllGetVersion)
03161         {
03162             DLLVERSIONINFO dvi;
03163             HRESULT hr;
03164
03165             ZeroMemory(&dvi, sizeof(dvi));
03166             dvi.cbSize = sizeof(dvi);
03167
03168             hr = (*pDllGetVersion)(&dvi);
03169
03170             if(SUCCEEDED(hr))
03171             {
03172                dwVersion = PACKVERSION(dvi.dwMajorVersion, dvi.dwMinorVersion);
03173             }
03174         }
03175
03176         FreeLibrary(hinstDll);
03177     }
03178     return dwVersion;
03179 }
03180
03188 static DWORD s_dwComctl32Version = PACKVERSION(0, 0);
03189 DWORD GetComctl32Version()
03190 {
03191     if( PACKVERSION(0, 0) == s_dwComctl32Version )
03192         s_dwComctl32Version = GetDllVersion(_T("Comctl32.dll"));
03193     return s_dwComctl32Version;
03194 }
03195
03196
03205 BOOL IsVisualStyle()
03206 {
03207     // ロードした Comctl32.dll が Ver 6 以上で画面設定がビジュアルスタイル指定になっている場合だけ
03208     // ビジュアルスタイル表示になる（マニフェストで指定しないと Comctl32.dll は 6 未満になる）
03209     return ( (GetComctl32Version() >= PACKVERSION(6, 0)) && CUxTheme::getInstance().IsThemeActive() );
03210 }
03211
03219 void PreventVisualStyle( HWND hWnd )
03220 {
03221     CUxTheme::getInstance().SetWindowTheme( hWnd, L"", L"" );
03222     return;
03223 }
03224
03230 void MyInitCommonControls()
03231 {
03232     BOOL (WINAPI *pfnInitCommonControlsEx)(LPINITCOMMONCONTROLSEX);
03233
03234     BOOL bInit = FALSE;
03235     HINSTANCE hDll = ::GetModuleHandle(_T("COMCTL32"));
03236     if( NULL != hDll ){
03237         *(FARPROC*)&pfnInitCommonControlsEx = ::GetProcAddress( hDll, "InitCommonControlsEx" );
03238         if( NULL != pfnInitCommonControlsEx ){
03239             INITCOMMONCONTROLSEX icex;
03240             icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
03241             icex.dwICC = ICC_WIN95_CLASSES | ICC_COOL_CLASSES;
03242             bInit = pfnInitCommonControlsEx( &icex );
03243         }
03244     }
03245
03246     if( !bInit ){
03247         ::InitCommonControls();
03248     }
03249 }
03250
03257 BOOL GetSpecialFolderPath( int nFolder, LPTSTR pszPath )
03258 {
03259     BOOL bRet = FALSE;
03260     HRESULT hres;
03261     LPMALLOC pMalloc;
03262     LPITEMIDLIST pidl;
03263
03264     hres = ::SHGetMalloc( &pMalloc );
03265     if( FAILED( hres ) )
03266         return FALSE;
03267
03268     hres = ::SHGetSpecialFolderLocation( NULL, nFolder, &pidl );
03269     if( SUCCEEDED( hres ) ){
03270         bRet = ::SHGetPathFromIDList( pidl, pszPath );
03271         pMalloc->Free( (void*)pidl );
03272     }
03273
03274     pMalloc->Release();
03275
03276     return bRet;
03277 }
03278
03279
03281 // From Here 2007.05.25 ryoji 独自拡張のプロパティシート関数群
03282
03283 static WNDPROC s_pOldPropSheetWndProc;  // プロパティシートの元のウィンドウプロシージャ
03284
03289 static LRESULT CALLBACK PropSheetWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
03290 {
03291     switch( uMsg ){
03292     case WM_SHOWWINDOW:
03293         // 追加ボタンの位置を調整する
03294         if( wParam ){
03295             HWND hwndBtn;
03296             RECT rcOk;
03297             RECT rcTab;
03298             POINT pt;
03299
03300             hwndBtn = ::GetDlgItem( hwnd, 0x02000 );
03301             ::GetWindowRect( ::GetDlgItem( hwnd, IDOK ), &rcOk );
03302             ::GetWindowRect( PropSheet_GetTabControl( hwnd ), &rcTab );
03303             pt.x = rcTab.left;
03304             pt.y = rcOk.top;
03305             ::ScreenToClient( hwnd, &pt );
03306             ::MoveWindow( hwndBtn, pt.x, pt.y, 140, rcOk.bottom - rcOk.top, FALSE );
03307         }
03308         break;
03309
03310     case WM_COMMAND:
03311         // 追加ボタンが押された時はその処理を行う
03312         if( HIWORD( wParam ) == BN_CLICKED && LOWORD( wParam ) == 0x02000 ){
03313             HWND hwndBtn = ::GetDlgItem( hwnd, 0x2000 );
03314             RECT rc;
03315             POINT pt;
03316
03317             // メニューを表示する
03318             ::GetWindowRect( hwndBtn, &rc );
03319             pt.x = rc.left;
03320             pt.y = rc.bottom;
03321             GetMonitorWorkRect( pt, &rc );  // モニタのワークエリア
03322
03323             HMENU hMenu = ::CreatePopupMenu();
03324             ::InsertMenu( hMenu, 0, MF_BYPOSITION | MF_STRING, 100, _T("開く(&O)...") );
03325             ::InsertMenu( hMenu, 1, MF_BYPOSITION | MF_STRING, 101, _T("インポート／エクスポートの起点リセット(&R)") );
03326
03327             int nId = ::TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_RETURNCMD,
03328                                         ( pt.x > rc.left )? pt.x: rc.left,
03329                                         ( pt.y < rc.bottom )? pt.y: rc.bottom,
03330                                         0, hwnd, NULL );
03331             ::DestroyMenu( hMenu );
03332
03333             // 選択されたメニューの処理
03334             switch( nId ){
03335             case 100:   // 設定フォルダを開く
03336                 TCHAR szPath[_MAX_PATH];
03337                 GetInidir( szPath );
03338
03339                 // フォルダの ITEMIDLIST を取得して ShellExecuteEx() で開く
03340                 // Note. MSDN の ShellExecute() の解説にある方法でフォルダを開こうとした場合、
03341                 //       フォルダと同じ場所に <フォルダ名>.exe があるとうまく動かない。
03342                 //       verbが"open"やNULLではexeのほうが実行され"explore"では失敗する
03343                 //       （フォルダ名の末尾に'\\'を付加してもWindows 2000では付加しないのと同じ動作になってしまう）
03344                 LPSHELLFOLDER pDesktopFolder;
03345                 if( SUCCEEDED(::SHGetDesktopFolder(&pDesktopFolder)) ){
03346                     LPMALLOC pMalloc;
03347                     if( SUCCEEDED(::SHGetMalloc(&pMalloc)) ){
03348                         LPITEMIDLIST pIDL;
03349                         LPWSTR pwszDisplayName;
03350 #ifdef _UNICODE
03351                         pwszDisplayName = szPath;
03352 #else
03353                         WCHAR wszPath[_MAX_PATH];
03354                         ::MultiByteToWideChar( CP_ACP, 0, szPath, -1, wszPath, _MAX_PATH );
03355                         pwszDisplayName = wszPath;
03356 #endif
03357                         if( SUCCEEDED(pDesktopFolder->ParseDisplayName(NULL, NULL, pwszDisplayName, NULL, &pIDL, NULL)) ){
03358                             SHELLEXECUTEINFO si;
03359                             ::ZeroMemory( &si, sizeof(SHELLEXECUTEINFO) );
03360                             si.cbSize = sizeof(SHELLEXECUTEINFO);
03361                             si.fMask = SEE_MASK_IDLIST;
03362                             si.lpVerb = _T("open");
03363                             si.lpIDList = pIDL;
03364                             si.nShow = SW_SHOWNORMAL;
03365                             ::ShellExecuteEx( &si );    // フォルダを開く
03366                             pMalloc->Free( (void*)pIDL );
03367                         }
03368                         pMalloc->Release();
03369                     }
03370                     pDesktopFolder->Release();
03371                 }
03372                 break;
03373             case 101:   // インポート／エクスポートの起点リセット（起点を設定フォルダにする）
03374                 if( IDOK == MYMESSAGEBOX( hwnd, MB_OKCANCEL | MB_ICONINFORMATION, GSTR_APPNAME,
03375                         _T("各種設定のインポート／エクスポート用ファイル選択画面の\n初期表示フォルダを設定フォルダに戻します。") ) )
03376                 {
03377                     DLLSHAREDATA *pShareData = CShareData::getInstance()->GetShareData();
03378                     GetInidir( pShareData->m_szIMPORTFOLDER );
03379                 }
03380                 break;
03381             }
03382         }
03383         break;
03384
03385     case WM_DESTROY:
03386 		::SetWindowLongPtr( hwnd, GWLP_WNDPROC, (LONG_PTR)s_pOldPropSheetWndProc );
03387         break;
03388     }
03389
03390     return ::CallWindowProc( (WNDPROC)s_pOldPropSheetWndProc, hwnd, uMsg, wParam, lParam );
03391 }
03392
03397 static int CALLBACK PropSheetProc( HWND hwndDlg, UINT uMsg, LPARAM lParam )
03398 {
03399     // プロパティシートの初期化時にボタン追加、プロパティシートのサブクラス化を行う
03400     if( uMsg == PSCB_INITIALIZED ){
03401         s_pOldPropSheetWndProc = (WNDPROC)::SetWindowLongPtr( hwndDlg, GWLP_WNDPROC, (LONG_PTR)PropSheetWndProc );
03402         HINSTANCE hInstance = (HINSTANCE)::GetModuleHandle( NULL );
03403         HWND hwndBtn = ::CreateWindowEx( 0, _T("BUTTON"), _T("設定フォルダ(&/) >>"), BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 0, 0, 140, 20, hwndDlg, (HMENU)0x02000, hInstance, NULL );
03404         ::SendMessage( hwndBtn, WM_SETFONT, (WPARAM)::SendMessage( hwndDlg, WM_GETFONT, 0, 0 ), MAKELPARAM( FALSE, 0 ) );
03405         ::SetWindowPos( hwndBtn, ::GetDlgItem( hwndDlg, IDHELP), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
03406     }
03407     return 0;
03408 }
03409
03410
03415 int MyPropertySheet( LPPROPSHEETHEADER lppsph )
03416 {
03417     // 個人設定フォルダを使用するときは「設定フォルダ」ボタンを追加する
03418     if( CShareData::getInstance()->IsPrivateSettings() ){
03419         lppsph->dwFlags |= PSH_USECALLBACK;
03420         lppsph->pfnCallback = PropSheetProc;
03421     }
03422     return ::PropertySheet( lppsph );
03423 }
03424
03425 // To Here 2007.05.25 ryoji 独自拡張のプロパティシート関数群
03427
03428 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: etc_uty.h

etc_uty.h

共通関数群 [詳細]

#include <stdio.h>
#include <windows.h>
#include <tchar.h>
#include "global.h"
#include <shlobj.h>
#include <NewApis.h>
#include <multimon.h>
#include "CHtmlHelp.h"

etc_uty.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | WANT_GETLONGPATHNAME_WRAPPER
#define | GA_PARENT 1
#define | GA_ROOT 2
#define | GA_ROOTOWNER 3
#define | PACKVERSION(major, minor) MAKELONG( minor, major )

関数

BOOL | MyWinHelp (HWND hWndMain, LPCTSTR lpszHelp, UINT uCommand, DWORD dwData)
SAKURA_CORE_API void | CutLastYenFromDirectoryPath (char *)
SAKURA_CORE_API void | AddLastYenFromDirectoryPath (char *)
SAKURA_CORE_API int | AddLastChar (char *, int, char)
SAKURA_CORE_API int | LimitStringLengthB (const char *, int, int, CMemory &)
SAKURA_CORE_API const char * | GetNextLimitedLengthText (const char *, int, int, int *, int *)
SAKURA_CORE_API const char * | GetNextLine (const char *, int, int *, int *, CEOL *)
SAKURA_CORE_API void | GetLineColm (const char *, int *, int *)
SAKURA_CORE_API bool | IsFilePath (const char *, int *, int *, bool=true)
SAKURA_CORE_API bool | IsFileExists (const char *path, bool bFileOnly=false)
SAKURA_CORE_API BOOL | IsURL (const char *, int, int *)
SAKURA_CORE_API BOOL | IsMailAddress (const char *, int, int *)
SAKURA_CORE_API int | IsNumber (const char *, int, int)
SAKURA_CORE_API void | ActivateFrameWindow (HWND)
SAKURA_CORE_API BOOL | GetSystemResources (int *, int *, int *)
SAKURA_CORE_API BOOL | CheckSystemResources (const char *)
SAKURA_CORE_API void | GetAppVersionInfo (HINSTANCE, int, DWORD *, DWORD *)
SAKURA_CORE_API void | SplitPath_FolderAndFile (const char *, char *, char *)
SAKURA_CORE_API BOOL | GetAbsolutePath (const char *, char *, BOOL)
SAKURA_CORE_API BOOL | GetLongFileName (const char *, char *)
SAKURA_CORE_API LPTSTR | GetHelpFilePath (LPTSTR, unsigned int nMaxLen=_MAX_PATH)
SAKURA_CORE_API BOOL | CheckEXT (const char *, const char *)
SAKURA_CORE_API char * | my_strtok (char *, int, int *, const char *)
SAKURA_CORE_API BOOL | SelectDir (HWND, const char *, const char *, char *)
SAKURA_CORE_API BOOL | ResolveShortcutLink (HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath)
SAKURA_CORE_API BOOL | BlockingHook (HWND hwndDlgCancel)
SAKURA_CORE_API int | FuncID_To_HelpContextID (int nFuncID)
機能番号に応じてヘルプトピック番号を返す
SAKURA_CORE_API bool | CheckRegexpVersion (HWND hWnd, int nCmpId, bool bShowMsg=false)
正規表現ライブラリのバージョン取得
SAKURA_CORE_API bool | CheckRegexpSyntax (const char *szPattern, HWND hWnd, bool bShowMessage, int nOption=-1)
SAKURA_CORE_API bool | InitRegexp (HWND hWnd, CBregexp &rRegexp, bool bShowMessage)
SAKURA_CORE_API HWND | OpenHtmlHelp (HWND hWnd, LPCSTR szFile, UINT uCmd, DWORD_PTR data, bool msgflag=true)
SAKURA_CORE_API DWORD | NetConnect (const char strNetWorkPass[])
SAKURA_CORE_API int | cescape (const TCHAR *org, TCHAR *buf, TCHAR cesc, TCHAR cwith)
SAKURA_CORE_API int | cescape_j (const char *org, char *out, char cesc, char cwith)
SAKURA_CORE_API void | ShowWinHelpContents (HWND hwnd, LPCTSTR lpszHelp)
SAKURA_CORE_API bool | SetClipboardText (HWND, const char *, int)
void | dupamp (const TCHAR *org, TCHAR *out)
クリープボードにText形式でコピーする
SAKURA_CORE_API int | GetColorIndexByName (const char *name)
SAKURA_CORE_API const char * | GetColorNameByIndex (int index)
bool | ReadRegistry (HKEY Hive, char const *Path, char const *Item, char *Buffer, unsigned BufferSize)
レジストリから文字列を読み出す．
void | GetExedir (LPTSTR pDir, LPCTSTR szFile=NULL)
exeファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．
void | GetInidir (LPTSTR pDir, LPCTSTR szFile=NULL)
INIファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．
void | GetInidirOrExedir (LPTSTR pDir, LPCTSTR szFile=NULL, BOOL bRetExedirIfFileEmpty=FALSE)
INIファイルまたはEXEファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す（INIを優先）．
HICON | GetAppIcon (HINSTANCE hInst, int nResource, const char *szFile, bool bSmall=false)
アプリケーションアイコンの取得
char * | strncpy_ex (char *dst, size_t dst_count, const char *src, size_t src_count)
FILE * | _tfopen_absexe (LPCTSTR fname, LPCTSTR mode)
FILE * | _tfopen_absini (LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir=TRUE)
int | CalcDirectoryDepth (const char *path)
ディレクトリの深さを計算する
bool | GetMonitorWorkRect (HWND hWnd, LPRECT prcWork, LPRECT prcMonitor=NULL)
bool | GetMonitorWorkRect (LPCRECT prc, LPRECT prcWork, LPRECT prcMonitor=NULL)
bool | GetMonitorWorkRect (POINT pt, LPRECT prcWork, LPRECT prcMonitor=NULL)
bool | GetMonitorWorkRect (HMONITOR hMon, LPRECT prcWork, LPRECT prcMonitor=NULL)
HWND | MyGetAncestor (HWND hWnd, UINT gaFlags)
bool | GetLastWriteTimestamp (const TCHAR *filename, FILETIME &ftime)
bool | GetDateTimeFormat (TCHAR *szResult, int size, const TCHAR *format, const SYSTEMTIME &systime)
int | getCtrlKeyState (void)
bool | _IS_REL_PATH (const char *path)
2006.06.28 rastiv charcode.cpp へ移動
bool | IsLocalDrive (const char *pszDrive)
DWORD | GetDllVersion (LPCTSTR lpszDllName)
DWORD | GetComctl32Version ()
BOOL | IsVisualStyle ()
void | PreventVisualStyle (HWND hWnd)
void | MyInitCommonControls ()
BOOL | GetSpecialFolderPath (int nFolder, LPTSTR pszPath)
int | MyPropertySheet (LPPROPSHEETHEADER lppsph)

説明

共通関数群

作者:
Norio Nakatani

etc_uty.h で定義されています。

マクロ定義

#define GA_PARENT 1

etc_uty.h の 35 行で定義されています。

参照元 MyGetAncestor().

#define GA_ROOT 2

etc_uty.h の 36 行で定義されています。

参照元 MyGetAncestor()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove().

#define GA_ROOTOWNER 3

etc_uty.h の 37 行で定義されています。

参照元 MyGetAncestor()・CEditApp::OpenNewEditor().

#define PACKVERSION | ( | major,
 |  | minor | ) | MAKELONG( minor, major )

etc_uty.h の 197 行で定義されています。

参照元 GetComctl32Version()・GetDllVersion()・IsVisualStyle().

#define WANT_GETLONGPATHNAME_WRAPPER

etc_uty.h の 30 行で定義されています。

関数

bool _IS_REL_PATH ( const char * path ) [inline]

2006.06.28 rastiv charcode.cpp へ移動

相対パスか判定する

作者:
Moca
日付:
2003.06.23

etc_uty.h の 181 行で定義されています。

参照元 _tfopen_absexe()・_tfopen_absini()・CEditView::Command_LOADKEYMACRO()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・CMigemo::GetDllName()・CShareData::GetMacroFilename()・CMigemo::migemo_load_all()・CPropCommon::OnFileDropdown_Macro()・CPropCommon::SelectBaseDir_Macro()・CEditView::TagJumpSub().

FILE* _tfopen_absexe | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode
 | ) |

fnameが相対パスの場合は、実行ファイルのパスからの相対パスとして開く

作者:
Moca
日付:
2003.06.23

2007.05.20 ryoji 関数名変更（旧：fopen_absexe）、汎用テキストマッピング化

etc_uty.cpp の 2796 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・GetExedir().

FILE* _tfopen_absini | ( | LPCTSTR | fname,
 |  | LPCTSTR | mode,
 |  | BOOL | bOrExedir
 | ) |

fnameが相対パスの場合は、INIファイルのパスからの相対パスとして開く

作者:
ryoji
日付:
2007.05.19 新規作成（_tfopen_absexeベース）

etc_uty.cpp の 2811 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・GetInidir()・GetInidirOrExedir().

参照元 CPropTypes::DispatchEvent_KeyHelp()・CDicMgr::HokanSearch()・CEditDoc::ReadRuleFile()・CDicMgr::Search().

SAKURA_CORE_API void ActivateFrameWindow ( HWND )

etc_uty.cpp の 516 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・CShareData::IsEditWnd()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_bEditWndChanging・DLLSHAREDATA::m_Common・MYWM_TAB_WINDOW_NOTIFY・NULL・TRUE・TWNT_WNDPL_ADJUST.

参照元 CEditView::Command_ACTIVATE_SQLPLUS()・CEditView::Command_FUNCLIST()・CEditView::Command_REPLACE_DIALOG()・CEditView::Command_SEARCH_DIALOG()・CEditView::Command_TAGJUMPBACK()・CNormalProcess::Initialize()・CShareData::IsPathOpened()・CTabWnd::NextGroup()・CEditWnd::OnCommand()・CEditDoc::OnFileClose()・CEditDoc::OpenFileDialog()・CTabWnd::PrevGroup()・CShareData::RequestCloseAllEditor()・CEditView::TagJumpSub()・CShareData::TraceOut().

SAKURA_CORE_API int AddLastChar | ( | char * | pszPath,
 |  | int | nMaxLen,
 |  | char | c
 | ) |

文字列が指定された文字で終わっていなかった場合には 末尾にその文字を付加する．

引数:
pszPath | [i/o]操作する文字列
nMaxLen | [in]バッファ長
c | [in]追加したい文字
戻り値:
0 | \が元から付いていた
1 | \を付加した
-1 | バッファが足りず、\を付加できなかった
日付:
2003.06.24 Moca 新規作成

etc_uty.cpp の 1765 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro()・CShareData::GetMacroFilename()・CShareData::Init()・CPropCommon::SelectBaseDir_Macro().

SAKURA_CORE_API void AddLastYenFromDirectoryPath ( char * )

etc_uty.cpp の 1729 行で定義されています。

参照先 CMemory::MemCharPrev().

参照元 CEditDoc::FormatBackUpPath().

SAKURA_CORE_API BOOL BlockingHook ( HWND hwndDlgCancel )

処理中のユーザー操作を可能にする ブロッキングフック(?)（メッセージ配送

日付:
2003.07.04 genta 一回の呼び出しで複数メッセージを処理するように

etc_uty.cpp の 1866 行で定義されています。

参照先 BOOL・FALSE・NULL・TRUE.

参照元 CEditView::DoGrepFile()・CEditView::DoGrepTree()・CLayoutMgr::DoLayout()・CPrintPreview::DrawPageText()・CEditView::ExecCmd()・CPrintPreview::OnMouseWheel()・CDocLineMgr::ReadFile()・CDocLineMgr::WriteFile().

int CalcDirectoryDepth ( const char * path )

ディレクトリの深さを計算する

与えられたパス名からディレクトリの深さを計算する． パスの区切りは\．ルートディレクトリが深さ0で，サブディレクトリ毎に 深さが1ずつ上がっていく．

引数:
path [in] 深さを調べたいファイル/ディレクトリのフルパス
日付:
2003.04.30 genta 新規作成

etc_uty.cpp の 2860 行で定義されています。

参照先 _IS_SJIS_1.

参照元 CEditView::Command_TagJumpByTagsFile()・CDlgTagJumpList::SetFileName().

SAKURA_CORE_API int cescape | ( | const TCHAR * | org,
 |  | TCHAR * | buf,
 |  | TCHAR | cesc,
 |  | TCHAR | cwith
 | ) |

文字のエスケープ

引数:
org | [in] 変換したい文字列
buf | [out] 返還後の文字列を入れるバッファ
cesc | [in] エスケープしないといけない文字
cwith | [in] エスケープに使う文字
戻り値:
出力したバイト数 (Unicodeの場合は文字数)
文字列中にそのまま使うとまずい文字がある場合にその文字の前に エスケープキャラクタを挿入するために使う．

覚え書き:
変換後のデータは最大で元の文字列の2倍になる

この関数は2バイト文字の考慮を行っていない

作者:
genta
日付:
2002/01/04 新規作成

2002/01/30 genta &専用(dupamp)から一般の文字を扱えるように拡張． dupampはinline関数にした．

2002/02/01 genta bugfix エスケープする文字とされる文字の出力順序が逆だった

2004/06/19 genta Generic mapping対応

etc_uty.cpp の 2525 行で定義されています。

参照元 dupamp().

SAKURA_CORE_API int cescape_j | ( | const char * | org,
 |  | char * | buf,
 |  | char | cesc,
 |  | char | cwith
 | ) |

文字のエスケープ

引数:
org | [in] 変換したい文字列
buf | [out] 返還後の文字列を入れるバッファ
cesc | [in] エスケープしないといけない文字
cwith | [in] エスケープに使う文字
戻り値:
出力したバイト数 文字列中にそのまま使うとまずい文字がある場合にその文字の前に エスケープキャラクタを挿入するために使う．
覚え書き:
変換後のデータは最大で元の文字列の2倍になる

この関数は2バイト文字の考慮を行っている

2003.05.25 未使用のようだ

etc_uty.cpp の 2556 行で定義されています。

参照先 _IS_SJIS_1.

SAKURA_CORE_API BOOL CheckEXT | ( | const char * | ,
 |  | const char * |
 | ) |

etc_uty.cpp の 226 行で定義されています。

参照先 _MAX_EXT・_stricmp・FALSE・NULL・TRUE.

参照元 CEditView::OPEN_ExtFromtoExt().

SAKURA_CORE_API bool CheckRegexpSyntax | ( | const char * | szPattern,
 |  | HWND | hWnd,
 |  | bool | bShowMessage,
 |  | int | nOption
 | ) |

正規表現が規則に従っているかをチェックする。

引数:
szPattern | [in] チェックする正規表現
hWnd | [in] メッセージボックスの親ウィンドウ
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
nOption | [in] 大文字と小文字を無視して比較するフラグ // 2002/2/1 hor追加
戻り値:
true | 正規表現は規則通り
false | 文法に誤りがある。または、ライブラリが使用できない。

etc_uty.cpp の 2394 行で定義されています。

参照先 CBregexp::Compile()・CBregexp::GetLastMessage()・InitRegexp().

参照元 CPropTypes::DispatchEvent_Regex()・CDlgFind::GetData()・CDlgGrep::GetData()・CDlgReplace::GetData()・CMacro::HandleCommand().

SAKURA_CORE_API bool CheckRegexpVersion | ( | HWND | hWnd,
 |  | int | nCmpId,
 |  | bool | bShowMessage
 | ) |

正規表現ライブラリのバージョン取得

正規表現ライブラリの存在を確認し、あればバージョン情報を指定コンポーネントにセットする。 失敗した場合には空文字列をセットする。

引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。 バージョン番号の設定が不要であればNULL。
nCmpId | [in] バージョン文字列を設定するコンポーネントID
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
戻り値:
true | バージョン番号の設定に成功
false | 正規表現ライブラリの初期化に失敗

etc_uty.cpp の 2367 行で定義されています。

参照先 CBregexp::GetVersion()・InitRegexp()・NULL.

参照元 CPropTypes::DispatchEvent_Regex()・CDlgFind::OnBnClicked()・CDlgGrep::OnBnClicked().

SAKURA_CORE_API BOOL CheckSystemResources ( const char * )

etc_uty.cpp の 413 行で定義されています。

参照先 FALSE・GetSystemResources()・MYMESSAGEBOX・NULL・TRUE.

SAKURA_CORE_API void CutLastYenFromDirectoryPath ( char * )

etc_uty.cpp の 1703 行で定義されています。

参照先 CMemory::MemCharPrev().

参照元 SelectDir().

void dupamp | ( | const TCHAR * | org,
 |  | TCHAR * | out
 | ) | [inline]

クリープボードにText形式でコピーする

&の二重化 メニューに含まれる&を&&に置き換える

作者:
genta
日付:
2002/01/30 cescapeに拡張し，

2004/06/19 genta Generic mapping

etc_uty.h の 117 行で定義されています。

参照先 cescape().

参照元 CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CTabWnd::GetTabName()・CEditWnd::WinListMenu().

SAKURA_CORE_API int FuncID_To_HelpContextID ( int nFuncID )

機能番号に応じてヘルプトピック番号を返す

作者:
Stonee
日付:
2001/02/23
引数:
nFuncID 機能番号
戻り値:
ヘルプトピック番号。該当IDが無い場合には0を返す。
内容はcase文の羅列。

history
2001.12.22 YAZAKI sakura.hhを参照するように変更

etc_uty.cpp の 1899 行で定義されています。

参照先 F_1PageDown・F_1PageDown_Sel・F_1PageUp・F_1PageUp_Sel・F_ABOUT・F_ACTIVATE_SQLPLUS・F_BASE64DECODE・F_BEGIN_BOX・F_BEGIN_SEL・F_BIND_WINDOW・F_BOOKMARK_NEXT・F_BOOKMARK_PREV・F_BOOKMARK_RESET・F_BOOKMARK_SET・F_BOOKMARK_VIEW・F_BRACKETPAIR・F_BROWSE・F_CANCEL_MODE・F_CASCADE・F_CHGMOD_EOL_CR・F_CHGMOD_EOL_CRLF・F_CHGMOD_EOL_LF・F_CHGMOD_INS・F_CODECNV_AUTO2SJIS・F_CODECNV_EMAIL・F_CODECNV_EUC2SJIS・F_CODECNV_SJIS2EUC・F_CODECNV_SJIS2JIS・F_CODECNV_SJIS2UTF7・F_CODECNV_SJIS2UTF8・F_CODECNV_UNICODE2SJIS・F_CODECNV_UNICODEBE2SJIS・F_CODECNV_UTF72SJIS・F_CODECNV_UTF82SJIS・F_COMPARE・F_COPY・F_COPY_ADDCRLF・F_COPY_CRLF・F_COPYFNAME・F_COPYLINES・F_COPYLINESASPASSAGE・F_COPYLINESWITHLINENUMBER・F_COPYPATH・F_COPYTAG・F_CREATEKEYBINDLIST・F_CTRL_CODE_DIALOG・F_CURLINECENTER・F_CUSTMENU_1・F_CUSTMENU_10・F_CUSTMENU_11・F_CUSTMENU_12・F_CUSTMENU_13・F_CUSTMENU_14・F_CUSTMENU_15・F_CUSTMENU_16・F_CUSTMENU_17・F_CUSTMENU_18・F_CUSTMENU_19・F_CUSTMENU_2・F_CUSTMENU_20・F_CUSTMENU_21・F_CUSTMENU_22・F_CUSTMENU_23・F_CUSTMENU_24・F_CUSTMENU_3・F_CUSTMENU_4・F_CUSTMENU_5・F_CUSTMENU_6・F_CUSTMENU_7・F_CUSTMENU_8・F_CUSTMENU_9・F_CUT・F_CUT_LINE・F_DELETE・F_DELETE_BACK・F_DELETE_LINE・F_DIFF_DIALOG・F_DIFF_NEXT・F_DIFF_PREV・F_DIFF_RESET・F_DIRECT_TAGJUMP・F_DOWN・F_DOWN2・F_DOWN2_SEL・F_DOWN_SEL・F_DUPLICATELINE・F_EXECCOMMAND_DIALOG・F_EXECKEYMACRO・F_EXITALL・F_EXITALLEDITORS・F_EXTHELP1・F_EXTHTMLHELP・F_FAVORITE・F_FILE_REOPEN・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UNICODEBE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_FILECLOSE・F_FILECLOSE_OPEN・F_FILENEW・F_FILEOPEN・F_FILEOPEN_DROPDOWN・F_FILESAVE・F_FILESAVEALL・F_FILESAVEAS_DIALOG・F_FILESAVECLOSE・F_FONT・F_GOFILEEND・F_GOFILEEND_SEL・F_GOFILETOP・F_GOFILETOP_SEL・F_GOLINEEND・F_GOLINEEND_SEL・F_GOLINETOP・F_GOLINETOP_SEL・F_GONEXTPARAGRAPH・F_GONEXTPARAGRAPH_SEL・F_GOPREVPARAGRAPH・F_GOPREVPARAGRAPH_SEL・F_GREP_DIALOG・F_GROUPCLOSE・F_HalfPageDown・F_HalfPageDown_Sel・F_HalfPageUp・F_HalfPageUp_Sel・F_HANKATATOZENKAKUHIRA・F_HANKATATOZENKAKUKATA・F_HELP_CONTENTS・F_HELP_SEARCH・F_HOKAN・F_INDENT_SPACE・F_INDENT_TAB・F_INS_DATE・F_INS_TIME・F_ISEARCH_MIGEMO_NEXT・F_ISEARCH_MIGEMO_PREV・F_ISEARCH_NEXT・F_ISEARCH_PREV・F_ISEARCH_REGEXP_NEXT・F_ISEARCH_REGEXP_PREV・F_JUMP_DIALOG・F_JUMP_SRCHSTARTPOS・F_JUMPHIST_NEXT・F_JUMPHIST_PREV・F_JUMPHIST_SET・F_LEFT・F_LEFT_SEL・F_LineCutToEnd・F_LineCutToStart・F_LineDeleteToEnd・F_LineDeleteToStart・F_LOADKEYMACRO・F_LTRIM・F_MAXIMIZE_H・F_MAXIMIZE_V・F_MENU_ALLFUNC・F_MENU_RBUTTON・F_MERGE・F_MINIMIZE_ALL・F_NEXTGROUP・F_NEXTWINDOW・F_OPEN_CCPP・F_OPEN_HfromtoC・F_OPEN_HHPP・F_OPTION・F_OPTION_BACKUP・F_OPTION_CUSTMENU・F_OPTION_EDIT・F_OPTION_FILE・F_OPTION_FNAME・F_OPTION_FORMAT・F_OPTION_GENERAL・F_OPTION_GREP・F_OPTION_HELPER・F_OPTION_KEYBIND・F_OPTION_KEYWORD・F_OPTION_MACRO・F_OPTION_TAB・F_OPTION_TOOLBAR・F_OPTION_TYPE・F_OPTION_WINDOW・F_OUTLINE・F_OUTLINE_TOGGLE・F_PASTE・F_PASTEBOX・F_PLSQL_COMPILE_ON_SQLPLUS・F_PREVGROUP・F_PREVWINDOW・F_PRINT・F_PRINT_PAGESETUP・F_PRINT_PREVIEW・F_PROPERTY_FILE・F_READONLY・F_RECKEYMACRO・F_RECONVERT・F_REDO・F_REDRAW・F_REPLACE_DIALOG・F_RIGHT・F_RIGHT_SEL・F_RTRIM・F_SAVEKEYMACRO・F_SEARCH_BOX・F_SEARCH_CLEARMARK・F_SEARCH_DIALOG・F_SEARCH_NEXT・F_SEARCH_PREV・F_SELECTALL・F_SELECTWORD・F_SHOWFUNCKEY・F_SHOWSTATUSBAR・F_SHOWTAB・F_SHOWTOOLBAR・F_SORT_ASC・F_SORT_DESC・F_SPACETOTAB・F_SPLIT_H・F_SPLIT_V・F_SPLIT_VH・F_TAB_JOINTNEXT・F_TAB_JOINTPREV・F_TAB_MOVELEFT・F_TAB_MOVERIGHT・F_TAB_SEPARATE・F_TABTOSPACE・F_TAGJUMP・F_TAGJUMP_CLOSE・F_TAGJUMP_KEYWORD・F_TAGJUMP_LIST・F_TAGJUMPBACK・F_TAGS_MAKE・F_TILE_H・F_TILE_V・F_TOGGLE_KEY_SEARCH・F_TOHANEI・F_TOHANKAKU・F_TOHANKATA・F_TOLOWER・F_TOPMOST・F_TOUPPER・F_TOZENEI・F_TOZENKAKUHIRA・F_TOZENKAKUKATA・F_TYPE_COLOR・F_TYPE_HELPER・F_TYPE_KEYHELP・F_TYPE_LIST・F_TYPE_REGEX_KEYWORD・F_TYPE_SCREEN・F_UNDO・F_UNINDENT_SPACE・F_UNINDENT_TAB・F_UP・F_UP2・F_UP2_SEL・F_UP_SEL・F_USERMACRO_0・F_UUDECODE・F_WIN_CLOSEALL・F_WIN_OUTPUT・F_WINCLOSE・F_WINLIST・F_WndScrollDown・F_WndScrollUp・F_WordCut・F_WordDelete・F_WordDeleteToEnd・F_WordDeleteToStart・F_WORDLEFT・F_WORDLEFT_SEL・F_WORDRIGHT・F_WORDRIGHT_SEL・F_WRAPWINDOWWIDTH・HLP000015・HLP000017・HLP000018・HLP000019・HLP000020・HLP000021・HLP000022・HLP000023・HLP000024・HLP000025・HLP000026・HLP000027・HLP000028・HLP000029・HLP000030・HLP000032・HLP000033・HLP000034・HLP000035・HLP000036・HLP000037・HLP000038・HLP000039・HLP000040・HLP000041・HLP000042・HLP000043・HLP000044・HLP000045・HLP000046・HLP000047・HLP000048・HLP000049・HLP000050・HLP000051・HLP000052・HLP000053・HLP000054・HLP000055・HLP000056・HLP000057・HLP000059・HLP000060・HLP000061・HLP000062・HLP000063・HLP000064・HLP000065・HLP000066・HLP000067・HLP000069・HLP000070・HLP000071・HLP000072・HLP000073・HLP000074・HLP000075・HLP000076・HLP000081・HLP000082・HLP000083・HLP000084・HLP000085・HLP000086・HLP000087・HLP000088・HLP000091・HLP000092・HLP000093・HLP000094・HLP000095・HLP000096・HLP000097・HLP000098・HLP000100・HLP000101・HLP000102・HLP000103・HLP000111・HLP000113・HLP000114・HLP000116・HLP000117・HLP000118・HLP000119・HLP000120・HLP000121・HLP000122・HLP000123・HLP000124・HLP000125・HLP000126・HLP000127・HLP000128・HLP000132・HLP000134・HLP000136・HLP000137・HLP000138・HLP000139・HLP000140・HLP000141・HLP000142・HLP000143・HLP000144・HLP000145・HLP000146・HLP000148・HLP000150・HLP000156・HLP000157・HLP000158・HLP000159・HLP000160・HLP000161・HLP000162・HLP000163・HLP000164・HLP000165・HLP000166・HLP000167・HLP000168・HLP000169・HLP000170・HLP000171・HLP000172・HLP000173・HLP000174・HLP000175・HLP000178・HLP000179・HLP000180・HLP000181・HLP000182・HLP000183・HLP000184・HLP000186・HLP000187・HLP000188・HLP000189・HLP000190・HLP000191・HLP000192・HLP000194・HLP000195・HLP000196・HLP000197・HLP000198・HLP000199・HLP000200・HLP000201・HLP000202・HLP000203・HLP000205・HLP000206・HLP000207・HLP000208・HLP000209・HLP000210・HLP000211・HLP000212・HLP000213・HLP000214・HLP000215・HLP000218・HLP000219・HLP000220・HLP000221・HLP000222・HLP000223・HLP000224・HLP000225・HLP000226・HLP000227・HLP000228・HLP000229・HLP000230・HLP000231・HLP000232・HLP000233・HLP000234・HLP000235・HLP000236・HLP000237・HLP000238・HLP000239・HLP000240・HLP000241・HLP000242・HLP000243・HLP000244・HLP000245・HLP000246・HLP000247・HLP000248・HLP000249・HLP000251・HLP000252・HLP000253・HLP000254・HLP000255・HLP000256・HLP000257・HLP000258・HLP000262・HLP000263・HLP000264・HLP000265・HLP000273・HLP000274・HLP000277・HLP000279・HLP000280・HLP000281・HLP000282・HLP000283・HLP000285・HLP000287・HLP000289・HLP000290・HLP000291・HLP000303・HLP000304・HLP000305・HLP000306・HLP000307・HLP000308・HLP000309・HLP000310・HLP000311・HLP000312・HLP000313・HLP000314・HLP000315・HLP000317・HLP000318・HLP000320・HLP000321・HLP000322・HLP000323・HLP000324・HLP000325・HLP000326・HLP000327・IDM_SELMRU・IDM_SELOPENFOLDER・IDM_SELWINDOW・MAX_CUSTMACRO・MAX_EDITWINDOWS・MAX_MRU・MAX_OPENFOLDER.

参照元 CPrintPreview::DispatchEvent_PPB()・CDlgOpenFile::DoModalSaveDlg()・CMenuDrawer::DrawItem()・CDlgCompare::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTypeList::OnBnClicked()・CPropCommon::OnHelp()・CPropTypes::OnHelp()・CEditWnd::OnHelp_MenuItem().

SAKURA_CORE_API BOOL GetAbsolutePath | ( | const char * | ,
 |  | char * | ,
 |  | BOOL |
 | ) |

HICON GetAppIcon | ( | HINSTANCE | hInst,
 |  | int | nResource,
 |  | const char * | szFile,
 |  | bool | bSmall
 | ) |

アプリケーションアイコンの取得

アイコンファイルが存在する場合はそこから，無い場合は リソースファイルから取得する

引数:
hInst | [in] Instance Handle
nResource | [in] デフォルトアイコン用Resource ID
szFile | [in] アイコンファイル名
bSmall | [in] true: small icon (16x16) / false: large icon (32x32)
戻り値:
アイコンハンドル．失敗した場合はNULL．
日付:
2002.12.02 genta 新規作成 2007.05.20 ryoji iniファイルパスを優先
作者:
genta

etc_uty.cpp の 2767 行で定義されています。

参照先 _MAX_PATH・GetInidirOrExedir()・NULL.

参照元 CEditWnd::Create()・CEditApp::CreateTrayIcon()・CEditWnd::GetDefaultIcon()・CTabWnd::InitImageList()・CDlgAbout::OnInitDialog()・CDlgGrep::OnInitDialog().

SAKURA_CORE_API void GetAppVersionInfo | ( | HINSTANCE | hInstance,
 |  | int | nVersionResourceID,
 |  | DWORD * | pdwProductVersionMS,
 |  | DWORD * | pdwProductVersionLS
 | ) |

リソースから製品バージョンの取得

日付:
2004.05.13 Moca 一度取得したらキャッシュする

etc_uty.cpp の 475 行で定義されています。

参照先 NULL・VS_VERSION_INFO_HEAD::Value.

参照元 CEditApp::CreateTrayIcon()・CShareData::Init()・CDlgAbout::OnInitDialog().

SAKURA_CORE_API int GetColorIndexByName ( const char * name )

etc_uty.cpp の 2594 行で定義されています。

参照先 COLORIDX_LAST・g_ColorAttributeArr.

SAKURA_CORE_API const char* GetColorNameByIndex ( int index )

etc_uty.cpp の 2607 行で定義されています。

参照先 g_ColorAttributeArr・ColorAttributeData_t::szName.

DWORD GetComctl32Version ( )

etc_uty.cpp の 3189 行で定義されています。

参照先 GetDllVersion()・PACKVERSION.

参照元 IsVisualStyle().

int getCtrlKeyState ( void )

Shift,Ctrl,Altキー状態の取得

戻り値:
nIdx Shift,Ctrl,Altキー状態
日付:
2004.10.10 関数化

etc_uty.cpp の 3005 行で定義されています。

参照先 _ALT・_CTRL・_SHIFT.

参照元 HokanList_SubclassProc()・CDlgFuncList::Key2Command()・CEditView::OnMBUTTONDOWN()・CEditView::OnRBUTTONUP()・CFuncKeyWnd::OnTimer()・CEditView::OnXLBUTTONDOWN()・CEditView::OnXRBUTTONDOWN().

bool GetDateTimeFormat | ( | TCHAR * | szResult,
 |  | int | size,
 |  | const TCHAR * | format,
 |  | const SYSTEMTIME & | systime
 | ) |

日時をフォーマット

引数:
[out] | 書式変換後の文字列
[in] | バッファサイズ
[in] | format | 書式
[in] | systime | 書式化したい日時
戻り値:
bool true
覚え書き:
Y y m d H M S の変換に対応
作者:
aroka
日付:
2005.11.21 新規
TODO:
出力バッファのサイズチェックを行う

etc_uty.cpp の 3071 行で定義されています。

DWORD GetDllVersion ( LPCTSTR lpszDllName )

シェルやコモンコントロール DLL のバージョン番号を取得

引数:
[in] lpszDllName DLL ファイルのパス
戻り値:
DLL のバージョン番号（失敗時は 0）
作者:
? (from MSDN Library document)
日付:
2006.06.17 ryoji MSDNライブラリから引用

etc_uty.cpp の 3139 行で定義されています。

参照先 PACKVERSION.

参照元 GetComctl32Version().

void GetExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |

exeファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

引数:
pDir | [out] EXEファイルのあるディレクトリを返す場所． 予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．
作者:
genta
日付:
2002.12.02 genta

2007.05.20 ryoji 関数名変更（旧：GetExecutableDir）、汎用テキストマッピング化

etc_uty.cpp の 2657 行で定義されています。

参照先 _MAX_PATH・NULL・SplitPath_FolderAndFile().

参照元 _tfopen_absexe()・GetHelpFilePath()・GetInidirOrExedir()・CEditView::ViewDiffInfo().

SAKURA_CORE_API LPTSTR GetHelpFilePath | ( | LPTSTR | pszHelpFile,
 |  | unsigned int | nMaxLen
 | ) |

ヘルプファイルのフルパスを返す

引数:
pszHelpFile | [in] パスを格納するバッファ
nMaxLen | [in] バッファに格納可能な文字数：デフォルト値＝_MAX_PATH
戻り値:
パスを格納したバッファのポインタ
覚え書き:
実行ファイルと同じ位置の sakura.chm ファイルを返す。 パスが UNC のときは _MAX_PATH に収まらない可能性がある。
日付:
2002/01/19 aroka ；nMaxLen 引数追加

etc_uty.cpp の 297 行で定義されています。

参照先 _MAX_PATH・GetExedir().

参照元 CDialog::CDialog()・CDlgInput1::CDlgInput1()・CDlgOpenFile::CDlgOpenFile()・CEditView::Command_HELP_CONTENTS()・CEditView::Command_HELP_SEARCH()・CPropCommon::CPropCommon()・CPrintPreview::DispatchEvent_PPB()・CEditWnd::OnCommand()・CEditWnd::OnHelp_MenuItem().

void GetInidir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile
 | ) |

INIファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す．

引数:
pDir | [out] INIファイルのあるディレクトリを返す場所． 予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．
作者:
ryoji
日付:
2007.05.19 新規作成（GetExedirベース）

etc_uty.cpp の 2686 行で定義されています。

参照先 _MAX_PATH・CShareData::GetIniFileName()・CShareData::getInstance()・NULL・SplitPath_FolderAndFile().

参照元 _tfopen_absini()・CMigemo::GetDllName()・GetInidirOrExedir()・CShareData::Init()・PropSheetWndProc().

void GetInidirOrExedir | ( | LPTSTR | pDir,
 |  | LPCTSTR | szFile,
 |  | BOOL | bRetExedirIfFileEmpty
 | ) |

INIファイルまたはEXEファイルのあるディレクトリ，または指定されたファイル名のフルパスを返す（INIを優先）．

引数:
pDir | [out] INIファイルまたはEXEファイルのあるディレクトリを返す場所． 予め_MAX_PATHのバッファを用意しておくこと．
szFile | [in] ディレクトリ名に結合するファイル名．
bRetExedirIfFileEmpty | [in] ファイル名の指定が空の場合はEXEファイルのフルパスを返す．
作者:
ryoji
日付:
2007.05.22 新規作成

etc_uty.cpp の 2717 行で定義されています。

参照先 _MAX_PATH・GetExedir()・GetInidir()・CShareData::getInstance()・NULL.

参照元 _tfopen_absini()・CEditView::Command_LOADKEYMACRO()・CImageListMgr::Create()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・GetAppIcon()・CMigemo::GetDllName()・CShareData::GetMacroFilename()・CMigemo::migemo_load_all()・CPropCommon::OnFileDropdown_Macro()・CPropCommon::SelectBaseDir_Macro()・CEditView::TagJumpSub().

bool GetLastWriteTimestamp | ( | const TCHAR * | filename,
 |  | FILETIME & | ftime
 | ) |

ファイルの更新日時を取得

引数:
[in] | filename | ファイルのパス
[out] | ftime | 更新日時を返す場所
戻り値:
true: 成功, false: FindFirstFile失敗
作者:
genta by assitance with ryoji
日付:
2005.10.22 new
覚え書き:
書き込み後にファイルを再オープンしてタイムスタンプを得ようとすると ファイルがまだロックされていることがあり，上書き禁止と誤認されることがある． FindFirstFileを使うことでファイルのロック状態に影響されずにタイムスタンプを 取得できる．(ryoji)

etc_uty.cpp の 3039 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp()・CDlgAbout::OnInitDialog()・CDocLineMgr::WriteFile().

SAKURA_CORE_API void GetLineColm | ( | const char * | ,
 |  | int * | ,
 |  | int * |
 | ) |

etc_uty.cpp の 1507 行で定義されています。

参照元 CEditView::Command_TAGJUMP().

SAKURA_CORE_API BOOL GetLongFileName | ( | const char * | pszFilePathSrc,
 |  | char * | pszFilePathDes
 | ) |

ロングファイル名を取得する

引数:
[in] | pszFilePathSrc | 変換元パス名
[out] | pszFilePathDes | 結果書き込み先 (長さMAX_PATHの領域が必要)
日付:
Oct. 2, 2005 genta GetFilePath APIを使って書き換え

Oct. 4, 2005 genta 相対パスが絶対パスに直されなかった

Oct. 5, 2005 Moca 相対パスを絶対パスに変換するように

etc_uty.cpp の 317 行で定義されています。

参照先 _MAX_PATH・FALSE・TRUE.

参照元 OnFolderProc()・CEditDoc::OpenFile()・CEditView::TagJumpSub().

bool GetMonitorWorkRect | ( | HMONITOR | hMon,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor = NULL
 | ) |

etc_uty.cpp の 2943 行で定義されています。

参照先 NULL.

bool GetMonitorWorkRect | ( | POINT | pt,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor = NULL
 | ) |

etc_uty.cpp の 2937 行で定義されています。

参照先 GetMonitorWorkRect().

bool GetMonitorWorkRect | ( | LPCRECT | prc,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor = NULL
 | ) |

etc_uty.cpp の 2931 行で定義されています。

参照先 GetMonitorWorkRect().

bool GetMonitorWorkRect | ( | HWND | hWnd,
 |  | LPRECT | prcWork,
 |  | LPRECT | prcMonitor
 | ) |

指定したウィンドウ／長方形領域／点／モニタに対応するモニタ作業領域を取得する

モニタ作業領域：画面全体からシステムのタスクバーやアプリケーションのツールバーが占有する領域を除いた領域

引数:
hWnd/prc/pt/hMon | [in] 目的のウィンドウ／長方形領域／点／モニタ
prcWork | [out] モニタ作業領域
prcMonitor | [out] モニタ画面全体
戻り値:
true | 対応するモニタはプライマリモニタ
false | 対応するモニタは非プライマリモニタ
覚え書き:
出力パラメータの prcWork や prcMonior に NULL を指定した場合、 該当する領域情報は出力しない。呼び出し元は欲しいものだけを指定すればよい。

etc_uty.cpp の 2922 行で定義されています。

参照先 GetMonitorWorkRect().

SAKURA_CORE_API const char* GetNextLimitedLengthText | ( | const char * | pText,
 |  | int | nTextLen,
 |  | int | nLimitLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn
 | ) |

指定長以下のテキストに切り分ける

引数:
pText | [in] 切り分け対象となる文字列へのポインタ
nTextLen | [in] 切り分け対象となる文字列全体の長さ
nLimitLen | [in] 切り分ける長さ
pnLineLen | [out] 実際に取り出された文字列の長さ
pnBgn | [i/o] 入力: 切り分け開始位置, 出力: 取り出された文字列の次の位置
覚え書き:
2003.05.25 未使用のようだ

etc_uty.cpp の 1648 行で定義されています。

参照先 CMemory::GetSizeOfChar()・NULL.

SAKURA_CORE_API const char* GetNextLine | ( | const char * | ,
 |  | int | ,
 |  | int * | ,
 |  | int * | ,
 |  | CEOL * |
 | ) |

etc_uty.cpp の 1605 行で定義されています。

参照先 EOL_NONE・CEOL::GetTypeFromString()・NULL・CEOL::SetType().

参照元 CEditView::Command_TRIM2()・CFileLoad::GetNextLineCharCode()・CMemory::SPACEToTAB()・CMemory::TABToSPACE().

BOOL GetSpecialFolderPath | ( | int | nFolder,
 |  | LPTSTR | pszPath
 | ) |

特殊フォルダのパスを取得する SHGetSpecialFolderPath API（shell32.dll version 4.71以上が必要）と同等の処理をする

作者:
ryoji
日付:
2007.05.19 新規

etc_uty.cpp の 3257 行で定義されています。

参照先 BOOL・FALSE・NULL.

参照元 CShareData::GetIniFileNameDirect().

SAKURA_CORE_API BOOL GetSystemResources | ( | int * | ,
 |  | int * | ,
 |  | int * |
 | ) |

etc_uty.cpp の 376 行で定義されています。

参照先 FALSE・GFSR_GDIRESOURCES・GFSR_SYSTEMRESOURCES・GFSR_USERRESOURCES・NULL・TRUE.

参照元 CheckSystemResources().

SAKURA_CORE_API bool InitRegexp | ( | HWND | hWnd,
 |  | CBregexp & | rRegexp,
 |  | bool | bShowMessage
 | ) |

与えられた正規表現ライブラリの初期化を行う． メッセージフラグがONで初期化に失敗したときはメッセージを表示する．

引数:
hWnd | [in] ダイアログボックスのウィンドウハンドル。 バージョン番号の設定が不要であればNULL。
rRegexp | [in] チェックに利用するCBregexpクラスへの参照
bShowMessage | [in] 初期化失敗時にエラーメッセージを出すフラグ
戻り値:
true | 初期化成功
false | 初期化に失敗
日付:
2007.08.12 genta 共通設定からDLL名を取得する

etc_uty.cpp の 2329 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・CDllHandler::Init()・DLLSHAREDATA::m_Common・Common::m_szRegexpLib・NULL.

参照元 CEditView::ChangeCurRegexp()・CheckRegexpSyntax()・CheckRegexpVersion()・CEditView::DoGrep()・CEditView::ISearchWordMake().

SAKURA_CORE_API bool IsFileExists | ( | const char * | path,
 |  | bool | bFileOnly
 | ) |

ファイルの存在チェック

指定されたパスのファイルが存在するかどうかを確認する。

引数:
path | [in] 調べるパス名
bFileOnly | [in] true: ファイルのみ対象 / false: ディレクトリも対象
戻り値:
true | ファイルは存在する
false | ファイルは存在しない
作者:
genta
日付:
2002.01.04 新規作成

etc_uty.cpp の 1311 行で定義されています。

参照元 MyWinHelp()・OnFolderProc().

SAKURA_CORE_API bool IsFilePath | ( | const char * | pLine,
 |  | int * | pnBgn,
 |  | int * | pnPathLen,
 |  | bool | bFileOnly
 | ) |

ファイル名の切り出し

指定文字列からファイル名と認識される文字列を取り出し、 先頭Offset及び長さを返す。

引数:
pLine | [in] 探査対象文字列
pnBgn | [out] 先頭offset。pLine + *pnBgnがファイル名先頭へのポインタ。
pnPathLen | [out] ファイル名の長さ
bFileOnly | [in] true: ファイルのみ対象 / false: ディレクトリも対象
戻り値:
true | ファイル名発見
false | ファイル名は見つからなかった
日付:
2002.01.04 genta ディレクトリを検査対象外にする機能を追加

2003.01.15 matsumo gccのエラーメッセージ(:区切り)でもファイルを検出可能に

2004.05.29 genta C:\からファイルCが切り出されるのを防止

2004.11.13 genta/Moca ファイル名先頭の*?を考慮

2005.01.10 genta 変数名変更 j -> cur_pos

2005.01.23 genta 警告抑制のため，gotoをreturnに変更

etc_uty.cpp の 1346 行で定義されています。

参照元 CEditView::Command_TAGJUMP().

bool IsLocalDrive ( const char * pszDrive )

ローカルドライブの判定

引数:
[in] pszDrive ドライブ名を含むパス名
戻り値:
true | ローカルドライブ
false | リムーバブルドライブ．ネットワークドライブ．
作者:
MIK
日付:
2001.03.29 MIK 新規作成

2001.12.23 YAZAKI MRUの別クラス化に伴う関数化

2002.01.28 genta 戻り値の型をBOOLからboolに変更．

2005.11.12 aroka 文字判定部変更

2006.01.08 genta CMRU::IsRemovableDriveとCEditDocIsLocalDriveが 実質的に同じものだった

etc_uty.cpp の 1491 行で定義されています。

参照先 _MAX_DRIVE.

参照元 CEditDoc::MakeBackUp().

SAKURA_CORE_API BOOL IsMailAddress | ( | const char * | ,
 |  | int | ,
 |  | int * |
 | ) |

etc_uty.cpp の 654 行で定義されています。

参照先 FALSE・NULL・TRUE.

参照元 IsURL()・CEditView::OnLBUTTONDBLCLK().

SAKURA_CORE_API int IsNumber | ( | const char * | ,
 |  | int | ,
 |  | int |
 | ) |

etc_uty.cpp の 777 行で定義されています。

SAKURA_CORE_API BOOL IsURL | ( | const char * | pszLine,
 |  | int | nLineLen,
 |  | int * | pnMatchLen
 | ) |

文字列がURLかどうかを検査する。

引数:
pszLine | [in] 文字列
nLineLen | [in] 文字列の長さ
pnMatchLen | [out] URLの長さ
戻り値:
TRUE | URLである
FALSE | URLでない
覚え書き:
関数内に定義したテーブルは必ず static const 宣言にすること(性能に影響します)。 url_char の値は url_table の配列番号+1 になっています。 新しい URL を追加する場合は define 値を修正してください。 url_table は頭文字がアルファベット順になるように並べてください。

etc_uty.cpp の 573 行で定義されています。

参照先 FALSE・IsMailAddress()・TRUE.

参照元 CEditView::IsCurrentPositionURL().

BOOL IsVisualStyle ( )

自分が現在ビジュアルスタイル表示状態かどうかを示す Win32 API の IsAppThemed() はこれとは一致しない（IsAppThemed() と IsThemeActive() との差異は不明）

戻り値:
ビジュアルスタイル表示状態(TRUE)／クラッシック表示状態(FALSE)
作者:
ryoji
日付:
2006.06.17 ryoji 新規

etc_uty.cpp の 3205 行で定義されています。

参照先 GetComctl32Version()・CUxTheme::getInstance()・PACKVERSION.

参照元 CEditWnd::CreateToolBar()・CShareData::InitToolButtons()・CTabWnd::Open()・CTabWnd::TabWndDispatchEvent().

SAKURA_CORE_API int LimitStringLengthB | ( | const char * | ,
 |  | int | ,
 |  | int | ,
 |  | CMemory & |
 | ) |

etc_uty.cpp の 1677 行で定義されています。

参照先 CMemory::GetSizeOfChar().

参照元 CEditWnd::WinListMenu().

SAKURA_CORE_API char* my_strtok | ( | char * | ,
 |  | int | ,
 |  | int * | ,
 |  | const char * |
 | ) |

HWND MyGetAncestor | ( | HWND | hWnd,
 |  | UINT | gaFlags
 | ) |

指定したウィンドウの祖先のハンドルを取得する

GetAncestor() APIがWin95で使えないのでそのかわり

作者:
ryoji
日付:
2007.07.01 ryoji 新規

etc_uty.cpp の 2965 行で定義されています。

参照先 GA_PARENT・GA_ROOT・GA_ROOTOWNER・GetWindowLongPtr・NULL.

参照元 CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CEditApp::OpenNewEditor().

void MyInitCommonControls ( )

コモンコントロールを初期化する

作者:
ryoji
日付:
2006.06.21 ryoji 新規

etc_uty.cpp の 3230 行で定義されています。

参照先 BOOL・FALSE・NULL.

参照元 CEditWnd::Create().

int MyPropertySheet ( LPPROPSHEETHEADER lppsph )

独自拡張プロパティシート（共通設定／タイプ別設定画面用）

作者:
ryoji
日付:
2007.05.25 新規

etc_uty.cpp の 3415 行で定義されています。

参照先 CShareData::getInstance()・PropSheetProc().

参照元 CPropTypes::DoPropertySheet().

BOOL MyWinHelp | ( | HWND | hWndMain,
 |  | LPCTSTR | lpszHelp,
 |  | UINT | uCommand,
 |  | DWORD | dwData
 | ) |

SAKURA_CORE_API DWORD NetConnect ( const char strNetWorkPass[] )

etc_uty.cpp の 2459 行で定義されています。

参照元 CEditWnd::OnCommand().

SAKURA_CORE_API HWND OpenHtmlHelp | ( | HWND | hWnd,
 |  | LPCSTR | szFile,
 |  | UINT | uCmd,
 |  | DWORD_PTR | data,
 |  | bool | msgflag
 | ) |

HTML Helpを開く

HTML Helpが利用可能であれば引数をそのまま渡し、そうでなければメッセージを表示する。

引数:
hWnd | [in] 呼び出し元ウィンドウのウィンドウハンドル
szFile | [in] HTML Helpのファイル名。 不等号に続けてウィンドウタイプ名を指定可能。
uCmd | [in] HTML Help に渡すコマンド
data | [in] コマンドに応じたデータ
msgflag | [in] エラーメッセージを表示するか。省略時はtrue。
戻り値:
開いたヘルプウィンドウのウィンドウハンドル。開けなかったときはNULL。

etc_uty.cpp の 2437 行で定義されています。

参照先 g_cHtmlHelp・CHtmlHelp::HtmlHelp・CDllHandler::Init().

参照元 MyWinHelp().

void PreventVisualStyle ( HWND hWnd )

指定ウィンドウでビジュアルスタイルを使わないようにする

引数:
[in] hWnd ウィンドウ
作者:
ryoji
日付:
2006.06.23 ryoji 新規

etc_uty.cpp の 3219 行で定義されています。

参照先 CUxTheme::getInstance()・CUxTheme::SetWindowTheme().

参照元 CEditWnd::CreateToolBar().

bool ReadRegistry | ( | HKEY | Hive,
 |  | char const * | Path,
 |  | char const * | Item,
 |  | char * | Buffer,
 |  | unsigned | BufferSize
 | ) |

レジストリから文字列を読み出す．

引数:
Hive | [in] HIVE
Path | [in] レジストリキーへのパス
Item | [in] レジストリアイテム名．NULLで標準のアイテム．
Buffer | [out] 取得文字列を格納する場所
BufferSize | [in] Bufferの指す領域のサイズ
戻り値:
true | 値の取得に成功
false | 値の取得に失敗
作者:
鬼
日付:
2002.09.10 genta CWSH.cppから移動

etc_uty.cpp の 2627 行で定義されています。

参照先 NULL.

参照元 CWSHMacroManager::Creator()・CEditWnd::GetRelatedIcon()・CEditView::OnMOUSEWHEEL().

SAKURA_CORE_API BOOL ResolveShortcutLink | ( | HWND | hwnd,
 |  | LPCSTR | lpszLinkFile,
 |  | LPSTR | lpszPath
 | ) |

etc_uty.cpp の 1790 行で定義されています。

参照先 BOOL・FALSE・NULL・TRUE.

参照元 CEditWnd::OnDropFiles()・OnFolderProc().

SAKURA_CORE_API BOOL SelectDir | ( | HWND | ,
 |  | const char * | ,
 |  | const char * | ,
 |  | char * |
 | ) |

etc_uty.cpp の 189 行で定義されています。

参照先 BOOL・CutLastYenFromDirectoryPath()・FALSE・MYBrowseCallbackProc()・NULL・TRUE.

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::DispatchEvent_PROP_BACKUP()・CDlgGrep::OnBnClicked()・CPropCommon::SelectBaseDir_Macro()・CDlgTagsMake::SelectFolder().

SAKURA_CORE_API bool SetClipboardText | ( | HWND | hwnd,
 |  | const char * | pszText,
 |  | int | length
 | ) |

クリープボードにText形式でコピーする

引数:
hwnd | [in] クリップボードのオーナー
pszText | [in] 設定するテキスト
length | [in] 有効なテキストの長さ
戻り値:
true | コピー成功
false | コピー失敗。場合によってはクリップボードに元の内容が残る
日付:
2004.02.17 Moca 各所のソースを統合

etc_uty.cpp の 2286 行で定義されています。

参照先 FALSE・NULL.

参照元 CEditView::Command_CREATEKEYBINDLIST()・CDlgFuncList::OnBnClicked().

SAKURA_CORE_API void ShowWinHelpContents | ( | HWND | hwnd,
 |  | LPCTSTR | lpszHelp
 | ) |

etc_uty.cpp の 2577 行で定義されています。

参照先 COsVersionInfo::HasWinHelpContentsProblem()・MyWinHelp().

参照元 CEditView::Command_HELP_CONTENTS()・CEditWnd::OnCommand().

SAKURA_CORE_API void SplitPath_FolderAndFile | ( | const char * | ,
 |  | char * | ,
 |  | char * |
 | ) |

etc_uty.cpp の 338 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・_MAX_EXT・_MAX_FNAME・CMemory::MemCharPrev()・NULL.

参照元 GetExedir()・GetInidir()・CPropTypes::Import_KeyHelp()・CDlgGrep::OnBnClicked()・OnFolderProc()・CEditView::ViewDiffInfo().

char* strncpy_ex | ( | char * | dst,
 |  | size_t | dst_count,
 |  | const char * | src,
 |  | size_t | src_count
 | ) |

文字数制限機能付きstrncpy

コピー先のバッファサイズから溢れないようにstrncpyする。 バッファが不足する場合には2バイト文字の切断もあり得る。 末尾のは付与されないが、コピーはコピー先バッファサイズ-1までにしておく。

引数:
dst | [in] コピー先領域へのポインタ
dst_count | [in] コピー先領域のサイズ
src | [in] コピー元
src_count | [in] コピーする文字列の末尾
戻り値:
実際にコピーされたコピー先領域の1つ後を指すポインタ
作者:
genta
日付:
2003.04.03 genta

etc_uty.cpp の 2841 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:26:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: etc_uty.h ソースファイル

etc_uty.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001-2002, genta
00009     Copyright (C) 2001, shoji masami, Stonee, MIK
00010     Copyright (C) 2002, aroka, hor, MIK, YAZAKI
00011     Copyright (C) 2003, genta, Moca
00012     Copyright (C) 2004, genta, novice
00013     Copyright (C) 2005, genta, aroka
00014     Copyright (C) 2006, ryoji
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 #ifndef _ETC_UTY_H_
00022 #define _ETC_UTY_H_
00023
00024 #include <stdio.h>
00025 #include <windows.h>
00026 #include <tchar.h>
00027 #include "global.h"
00028 #include <shlobj.h>
00029
00030 #define WANT_GETLONGPATHNAME_WRAPPER
00031 #include <NewApis.h>
00032 #include <multimon.h>
00033
00034 #ifndef GA_PARENT
00035 #define GA_PARENT       1
00036 #define GA_ROOT         2
00037 #define GA_ROOTOWNER    3
00038 #endif
00039
00040 #include "CHtmlHelp.h"  //  Jul.  6, 2001 genta
00041 class CMemory;// 2002/2/3 aroka ヘッダ軽量化
00042 class CEOL;// 2002/2/3 aroka ヘッダ軽量化
00043 class CBregexp;// 2002/2/3 aroka ヘッダ軽量化
00044
00045 BOOL MyWinHelp(HWND hWndMain, LPCTSTR lpszHelp, UINT uCommand, DWORD dwData);   /* WinHelp のかわりに HtmlHelp を呼び出す */    // 2006.07.22 ryoji
00046
00047 //@@@ 2002.2.9 YAZAKI CShareDataに移動
00048 //SAKURA_CORE_API const char* MyGetDateFormat( SYSTEMTIME& systime, char* pszDest, int nDestLen, int nDateFormatType, const char* pszDateFormat );/* 日付をフォーマット */
00049 //SAKURA_CORE_API const char* MyGetTimeFormat( SYSTEMTIME &systime, char* pszDest, int nDestLen, int nTimeFormatType, const char* pszTimeFormat );/* 時刻をフォーマット */
00050 SAKURA_CORE_API void CutLastYenFromDirectoryPath( char* );/* フォルダの最後が半角かつ'\\'の場合は、取り除く "c:\\"等のルートは取り除かない*/
00051 SAKURA_CORE_API void AddLastYenFromDirectoryPath( char* );/* フォルダの最後が半角かつ'\\'でない場合は、付加する */
00052 SAKURA_CORE_API int AddLastChar( char*, int, char );/* 2003.06.24 Moca 最後の文字が指定された文字でないときは付加する */
00053 SAKURA_CORE_API int LimitStringLengthB( const char*, int, int, CMemory& );/* データを指定バイト数以内に切り詰める */
00054 SAKURA_CORE_API const char* GetNextLimitedLengthText( const char*, int, int, int*, int* );/* 指定長以下のテキストに切り分ける */
00055 //SAKURA_CORE_API const char* GetNextLine( const char*, int, int*, int*, BOOL*, BOOL );/* CRLFで区切られる「行」を返す。CRLFは行長に加えない */
00056 SAKURA_CORE_API const char* GetNextLine( const char*, int, int*, int*, CEOL* );/* CR0LF0,CRLF,LFCR,LF,CRで区切られる「行」を返す。改行コードは行長に加えない */
00057 SAKURA_CORE_API void GetLineColm( const char*, int*, int* );
00058 SAKURA_CORE_API bool IsFilePath( const char*, int*, int*, bool = true );
00059 SAKURA_CORE_API bool IsFileExists(const char* path, bool bFileOnly = false);
00060 SAKURA_CORE_API BOOL IsURL( const char*, int, int* );/* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
00061 SAKURA_CORE_API BOOL IsMailAddress( const char*, int, int* );   /* 現在位置がメールアドレスならば、NULL以外と、その長さを返す */
00062 //#ifdef COMPILE_COLOR_DIGIT
00063 SAKURA_CORE_API int IsNumber( const char*, int, int );/* 数値ならその長さを返す */  //@@@ 2001.02.17 by MIK
00064 //#endif
00065 SAKURA_CORE_API void ActivateFrameWindow( HWND );   /* アクティブにする */
00066 SAKURA_CORE_API BOOL GetSystemResources( int*, int*, int* );    /* システムリソースを調べる */
00067 SAKURA_CORE_API BOOL CheckSystemResources( const char* );   /* システムリソースのチェック */
00068 //SAKURA_CORE_API BOOL CheckWindowsVersion( const char* pszAppName );   /* Windowsバージョンのチェック */
00069 // Jul. 5, 2001 shoji masami
00070 //SAKURA_CORE_API bool CheckWindowsVersionNT( void );   /* NTプラットフォームかどうか */
00071 SAKURA_CORE_API void GetAppVersionInfo( HINSTANCE, int, DWORD*, DWORD* );   /* リソースから製品バージョンの取得 */
00072 SAKURA_CORE_API void SplitPath_FolderAndFile( const char*, char*, char* );  /* ファイルのフルパスを、フォルダとファイル名に分割 */
00073 SAKURA_CORE_API BOOL GetAbsolutePath( const char*, char*, BOOL );   /* 相対パス→絶対パス */
00074 SAKURA_CORE_API BOOL GetLongFileName( const char*, char* ); /* ロングファイル名を取得する */
00075 SAKURA_CORE_API LPTSTR GetHelpFilePath( LPTSTR , unsigned int nMaxLen = _MAX_PATH );    /* ヘルプファイルのフルパスを返す */// 20020119 aroka
00076 SAKURA_CORE_API BOOL CheckEXT( const char*, const char* );  /* 拡張子を調べる */
00077 SAKURA_CORE_API char* my_strtok( char*, int, int*, const char* );
00078 /* Shell Interface系(?) */
00079 SAKURA_CORE_API BOOL SelectDir(HWND, const char*, const char*, char* ); /* フォルダ選択ダイアログ */
00080 //不要＆実装間違いのため
00081 //SAKURA_CORE_API ITEMIDLIST* CreateItemIDList( const char* );  /* パス名に対するアイテムＩＤリストを取得する */
00082 //SAKURA_CORE_API BOOL DeleteItemIDList( ITEMIDLIST* );/* アイテムＩＤリストを削除する */
00083 SAKURA_CORE_API BOOL ResolveShortcutLink(HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath);/* ショートカット(.lnk)の解決 */
00084
00085 /*
00086 ||  処理中のユーザー操作を可能にする
00087 ||  ブロッキングフック(?)(メッセージ配送)
00088 */
00089 SAKURA_CORE_API BOOL BlockingHook( HWND hwndDlgCancel );
00090
00091 /*機能番号に対応したヘルプトピックIDを返す*/
00092 SAKURA_CORE_API int FuncID_To_HelpContextID( int nFuncID ); //Stonee, 2001/02/23
00093
00094 //  Jun. 26, 2001 genta
00096 SAKURA_CORE_API bool CheckRegexpVersion( HWND hWnd, int nCmpId, bool bShowMsg = false );
00097 SAKURA_CORE_API bool CheckRegexpSyntax( const char* szPattern, HWND hWnd, bool bShowMessage, int nOption = -1 );// 2002/2/1 hor追加
00098 SAKURA_CORE_API bool InitRegexp( HWND hWnd, CBregexp& rRegexp, bool bShowMessage );
00099
00100 SAKURA_CORE_API HWND OpenHtmlHelp( HWND hWnd, LPCSTR szFile, UINT uCmd, DWORD_PTR data,bool msgflag = true);
00101 SAKURA_CORE_API DWORD NetConnect ( const char strNetWorkPass[] );
00102
00103 SAKURA_CORE_API int cescape(const TCHAR* org, TCHAR* buf, TCHAR cesc, TCHAR cwith);
00104 SAKURA_CORE_API int cescape_j(const char* org, char* out, char cesc, char cwith);
00105
00106 /* ヘルプの目次を表示 */
00107 SAKURA_CORE_API void ShowWinHelpContents( HWND hwnd, LPCTSTR lpszHelp );
00108
00109 SAKURA_CORE_API bool SetClipboardText( HWND, const char*, int );
00110
00117 inline void dupamp(const TCHAR* org, TCHAR* out)
00118 {   cescape( org, out, _T('&'), _T('&') ); }
00120
00121 /* カラー名＜＞インデックス番号の変換 */    //@@@ 2002.04.30
00122 SAKURA_CORE_API int GetColorIndexByName( const char *name );
00123 SAKURA_CORE_API const char* GetColorNameByIndex( int index );
00124
00125 //  Sep. 10, 2002 genta CWSH.cppからの移動に伴う追加
00126 bool ReadRegistry(HKEY Hive, char const *Path, char const *Item, char *Buffer, unsigned BufferSize);
00127
00128 //  Dec. 2, 2002 genta
00129 void GetExedir( LPTSTR pDir, LPCTSTR szFile = NULL );
00130 void GetInidir( LPTSTR pDir, LPCTSTR szFile = NULL ); // 2007.05.19 ryoji
00131 void GetInidirOrExedir( LPTSTR pDir, LPCTSTR szFile = NULL, BOOL bRetExedirIfFileEmpty = FALSE ); // 2007.05.22 ryoji
00132 HICON GetAppIcon( HINSTANCE hInst, int nResource, const char* szFile, bool bSmall = false);
00133
00134 //  Apr. 03, 2003 genta
00135 char *strncpy_ex(char *dst, size_t dst_count, const char* src, size_t src_count);
00136
00137 FILE *_tfopen_absexe(LPCTSTR fname, LPCTSTR mode); // 2003.06.23 Moca
00138 FILE *_tfopen_absini(LPCTSTR fname, LPCTSTR mode, BOOL bOrExedir = TRUE); // 2007.05.19 ryoji
00139
00140 //  Apr. 30, 2003 genta
00141 //  ディレクトリの深さを調べる
00142 int CalcDirectoryDepth(const char* path);
00143
00144 //  May 01, 2004 genta マルチモニタ対応のデスクトップ領域取得
00145 bool GetMonitorWorkRect(HWND hWnd, LPRECT prcWork, LPRECT prcMonitor = NULL);       // 2006.04.21 ryoji パラメータ prcMonitor を追加
00146 bool GetMonitorWorkRect(LPCRECT prc, LPRECT prcWork, LPRECT prcMonitor = NULL);     // 2006.04.21 ryoji
00147 bool GetMonitorWorkRect(POINT pt, LPRECT prcWork, LPRECT prcMonitor = NULL);        // 2006.04.21 ryoji
00148 bool GetMonitorWorkRect(HMONITOR hMon, LPRECT prcWork, LPRECT prcMonitor = NULL);   // 2006.04.21 ryoji
00149
00150 HWND MyGetAncestor( HWND hWnd, UINT gaFlags );  // 指定したウィンドウの祖先のハンドルを取得する // 2007.07.01 ryoji
00151
00152 //  Oct. 22, 2005 genta
00153 bool GetLastWriteTimestamp( const TCHAR* filename, FILETIME& ftime );
00154
00155 // 20051121 aroka
00156 bool GetDateTimeFormat( TCHAR* szResult, int size, const TCHAR* format, const SYSTEMTIME& systime );
00157
00158 // novice 2004/10/10
00159 int getCtrlKeyState(void);
00160
00161 #if 0
00162 // Oct. 5, 2002 genta CMemory.cppより移動
00163
00164 inline bool _IS_SJIS_1(unsigned int ch)
00165 {
00166     return (ch ^ 0x20) - 0xa1 < 0x3c;
00167 }
00171 inline bool _IS_SJIS_2(unsigned int ch)
00172 {
00173     return ( ch >=0x040 )&&( ch <=0x07E || (( ch >=0x080 )&&( ch <=0x0FC )));
00174 }
00175 #endif
00176
00181 inline bool _IS_REL_PATH(const char* path)
00182 {
00183     bool ret = true;
00184     if( ( 'A' <= path[0] && path[0] <= 'Z' || 'a' <= path[0] && path[0] <= 'z' )
00185         && path[1] == ':' && path[2] == '\\'
00186         || path[0] == '\\' && path[1] == '\\'
00187          ){
00188         ret = false;
00189     }
00190     return ret;
00191 }
00192
00193 // 2005.11.26 aroka
00194 bool IsLocalDrive( const char* pszDrive );
00195
00196 // 2006.06.17 ryoji
00197 #define PACKVERSION( major, minor ) MAKELONG( minor, major )
00198 DWORD GetDllVersion( LPCTSTR lpszDllName ); // シェルやコモンコントロール DLL のバージョン番号を取得    // 2006.06.17 ryoji
00199 DWORD GetComctl32Version();                 // Comctl32.dll のバージョン番号を取得                      // 2006.06.17 ryoji
00200 BOOL IsVisualStyle();                       // 自分が現在ビジュアルスタイル表示状態かどうかを示す       // 2006.06.17 ryoji
00201 void PreventVisualStyle( HWND hWnd );       // 指定ウィンドウでビジュアルスタイルを使わないようにする   // 2006.06.23 ryoji
00202 void MyInitCommonControls();                // コモンコントロールを初期化する                           // 2006.06.21 ryoji
00203
00204 BOOL GetSpecialFolderPath( int nFolder, LPTSTR pszPath );   // 特殊フォルダのパスを取得する // 2007.05.19 ryoji
00205 int MyPropertySheet( LPPROPSHEETHEADER lppsph );    // 独自拡張プロパティシート // 2007.05.24 ryoji
00206
00207 #endif /* _ETC_UTY_H_ */
00208
00209
00210 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Funccode.cpp

Funccode.cpp

機能分類定義 [詳細]

#include "stdafx.h"
#include "funccode.h"

Funccode.cppのインクルード依存関係図

ソースコードを見る。

変数

const int | pnFuncList_File []
const int | nFincList_File_Num = sizeof( pnFuncList_File ) / sizeof( pnFuncList_File[0] )
const int | pnFuncList_Edit []
const int | nFincList_Edit_Num = sizeof( pnFuncList_Edit ) / sizeof( pnFuncList_Edit[0] )
const int | pnFuncList_Move []
const int | nFincList_Move_Num = sizeof( pnFuncList_Move ) / sizeof( pnFuncList_Move[0] )
const int | pnFuncList_Select []
const int | nFincList_Select_Num = sizeof( pnFuncList_Select ) / sizeof( pnFuncList_Select[0] )
const int | pnFuncList_Box []
const int | nFincList_Box_Num = sizeof( pnFuncList_Box ) / sizeof( pnFuncList_Box[0] )
const int | pnFuncList_Clip []
const int | nFincList_Clip_Num = sizeof( pnFuncList_Clip ) / sizeof( pnFuncList_Clip[0] )
const int | pnFuncList_Insert []
const int | nFincList_Insert_Num = sizeof( pnFuncList_Insert ) / sizeof( pnFuncList_Insert[0] )
const int | pnFuncList_Convert []
const int | nFincList_Convert_Num = sizeof( pnFuncList_Convert ) / sizeof( pnFuncList_Convert[0] )
const int | pnFuncList_Search []
const int | nFincList_Search_Num = sizeof( pnFuncList_Search ) / sizeof( pnFuncList_Search[0] )
const int | pnFuncList_Mode []
const int | nFincList_Mode_Num = sizeof( pnFuncList_Mode ) / sizeof( pnFuncList_Mode[0] )
const int | pnFuncList_Set []
int | nFincList_Set_Num = sizeof( pnFuncList_Set ) / sizeof( pnFuncList_Set[0] )
const int | pnFuncList_Macro []
const int | nFincList_Macro_Num = sizeof( pnFuncList_Macro) / sizeof( pnFuncList_Macro[0] )
const int | pnFuncList_Win []
const int | nFincList_Win_Num = sizeof( pnFuncList_Win ) / sizeof( pnFuncList_Win[0] )
const int | pnFuncList_Support []
const int | nFincList_Support_Num = sizeof( pnFuncList_Support ) / sizeof( pnFuncList_Support[0] )
const int | pnFuncList_Others []
const int | nFincList_Others_Num = sizeof( pnFuncList_Others ) / sizeof( pnFuncList_Others[0] )

説明

機能分類定義

作者:
Norio Nakatani

Funccode.cpp で定義されています。

変数

const int nFincList_Box_Num = sizeof( pnFuncList_Box ) / sizeof( pnFuncList_Box[0] )

Funccode.cpp の 218 行で定義されています。

const int nFincList_Clip_Num = sizeof( pnFuncList_Clip ) / sizeof( pnFuncList_Clip[0] )

Funccode.cpp の 239 行で定義されています。

const int nFincList_Convert_Num = sizeof( pnFuncList_Convert ) / sizeof( pnFuncList_Convert[0] )

Funccode.cpp の 283 行で定義されています。

const int nFincList_Edit_Num = sizeof( pnFuncList_Edit ) / sizeof( pnFuncList_Edit[0] )

Funccode.cpp の 129 行で定義されています。

const int nFincList_File_Num = sizeof( pnFuncList_File ) / sizeof( pnFuncList_File[0] )

Funccode.cpp の 97 行で定義されています。

const int nFincList_Insert_Num = sizeof( pnFuncList_Insert ) / sizeof( pnFuncList_Insert[0] )

Funccode.cpp の 248 行で定義されています。

const int nFincList_Macro_Num = sizeof( pnFuncList_Macro) / sizeof( pnFuncList_Macro[0] )

Funccode.cpp の 366 行で定義されています。

const int nFincList_Mode_Num = sizeof( pnFuncList_Mode ) / sizeof( pnFuncList_Mode[0] )

Funccode.cpp の 334 行で定義されています。

const int nFincList_Move_Num = sizeof( pnFuncList_Move ) / sizeof( pnFuncList_Move[0] )

Funccode.cpp の 163 行で定義されています。

const int nFincList_Others_Num = sizeof( pnFuncList_Others ) / sizeof( pnFuncList_Others[0] )

Funccode.cpp の 455 行で定義されています。

const int nFincList_Search_Num = sizeof( pnFuncList_Search ) / sizeof( pnFuncList_Search[0] )

Funccode.cpp の 323 行で定義されています。

const int nFincList_Select_Num = sizeof( pnFuncList_Select ) / sizeof( pnFuncList_Select[0] )

Funccode.cpp の 192 行で定義されています。

int nFincList_Set_Num = sizeof( pnFuncList_Set ) / sizeof( pnFuncList_Set[0] )

Funccode.cpp の 351 行で定義されています。

const int nFincList_Support_Num = sizeof( pnFuncList_Support ) / sizeof( pnFuncList_Support[0] )

Funccode.cpp の 447 行で定義されています。

const int nFincList_Win_Num = sizeof( pnFuncList_Win ) / sizeof( pnFuncList_Win[0] )

Funccode.cpp の 432 行で定義されています。

const int pnFuncList_Box[]

初期値:

 {

    F_BEGIN_BOX         ,

}

Funccode.cpp の 196 行で定義されています。

const int pnFuncList_Clip[]

初期値:

 {
    F_CUT                       ,
    F_COPY                      ,
    F_COPY_ADDCRLF              ,
    F_COPY_CRLF                 ,
    F_PASTE                     ,
    F_PASTEBOX                  ,

    F_COPYLINES                 ,
    F_COPYLINESASPASSAGE        ,
    F_COPYLINESWITHLINENUMBER   ,
    F_COPYFNAME                 ,
    F_COPYPATH                  ,
    F_COPYTAG                   ,
    F_CREATEKEYBINDLIST
}

Funccode.cpp の 222 行で定義されています。

const int pnFuncList_Convert[]

Funccode.cpp の 252 行で定義されています。

const int pnFuncList_Edit[]

初期値:

 {
    F_UNDO              ,
    F_REDO              ,
    F_DELETE            ,
    F_DELETE_BACK       ,
    F_WordDeleteToStart ,
    F_WordDeleteToEnd   ,
    F_WordCut           ,
    F_WordDelete        ,
    F_LineCutToStart    ,
    F_LineCutToEnd      ,
    F_LineDeleteToStart ,
    F_LineDeleteToEnd   ,
    F_CUT_LINE          ,
    F_DELETE_LINE       ,
    F_DUPLICATELINE     ,
    F_INDENT_TAB        ,
    F_UNINDENT_TAB      ,
    F_INDENT_SPACE      ,
    F_UNINDENT_SPACE    ,
    F_LTRIM             ,
    F_RTRIM             ,
    F_SORT_ASC          ,
    F_SORT_DESC         ,
    F_MERGE             ,
    F_RECONVERT

}

Funccode.cpp の 101 行で定義されています。

const int pnFuncList_File[]

Funccode.cpp の 64 行で定義されています。

const int pnFuncList_Insert[]

初期値:

 {
    F_INS_DATE              ,
    F_INS_TIME              ,
    F_CTRL_CODE_DIALOG
}

Funccode.cpp の 243 行で定義されています。

const int pnFuncList_Macro[]

初期値:

 {
    F_RECKEYMACRO   ,
    F_SAVEKEYMACRO  ,
    F_LOADKEYMACRO  ,
    F_EXECKEYMACRO  ,

    F_EXECCOMMAND_DIALOG

}

Funccode.cpp の 355 行で定義されています。

const int pnFuncList_Mode[]

初期値:

 {
    F_CHGMOD_INS        ,
    F_CHGMOD_EOL_CRLF   ,
    F_CHGMOD_EOL_LF     ,
    F_CHGMOD_EOL_CR     ,
    F_CANCEL_MODE
}

Funccode.cpp の 327 行で定義されています。

const int pnFuncList_Move[]

初期値:

 {
    F_UP                ,
    F_DOWN              ,
    F_LEFT              ,
    F_RIGHT             ,
    F_UP2               ,
    F_DOWN2             ,
    F_WORDLEFT          ,
    F_WORDRIGHT         ,
    F_GOLINETOP         ,
    F_GOLINEEND         ,

    F_HalfPageUp        ,
    F_HalfPageDown      ,
    F_1PageUp           ,
    F_1PageDown         ,
    F_GOFILETOP         ,
    F_GOFILEEND         ,
    F_CURLINECENTER     ,
    F_JUMP_DIALOG       ,
    F_JUMP_SRCHSTARTPOS ,
    F_JUMPHIST_PREV     ,
    F_JUMPHIST_NEXT     ,
    F_JUMPHIST_SET      ,
    F_WndScrollDown     ,
    F_WndScrollUp       ,
    F_GONEXTPARAGRAPH   ,
    F_GOPREVPARAGRAPH
}

Funccode.cpp の 133 行で定義されています。

const int pnFuncList_Others[]

初期値:

 {

    F_DISABLE
}

Funccode.cpp の 451 行で定義されています。

const int pnFuncList_Search[]

Funccode.cpp の 287 行で定義されています。

const int pnFuncList_Select[]

初期値:

 {
    F_SELECTWORD            ,
    F_SELECTALL             ,
    F_BEGIN_SEL             ,
    F_UP_SEL                ,
    F_DOWN_SEL              ,
    F_LEFT_SEL              ,
    F_RIGHT_SEL             ,
    F_UP2_SEL               ,
    F_DOWN2_SEL             ,
    F_WORDLEFT_SEL          ,
    F_WORDRIGHT_SEL         ,
    F_GOLINETOP_SEL         ,
    F_GOLINEEND_SEL         ,

    F_HalfPageUp_Sel        ,
    F_HalfPageDown_Sel      ,
    F_1PageUp_Sel           ,
    F_1PageDown_Sel         ,
    F_GOFILETOP_SEL         ,
    F_GOFILEEND_SEL         ,
    F_GONEXTPARAGRAPH_SEL   ,
    F_GOPREVPARAGRAPH_SEL
}

Funccode.cpp の 167 行で定義されています。

const int pnFuncList_Set[]

初期値:

 {
    F_SHOWTOOLBAR       ,
    F_SHOWFUNCKEY       ,
    F_SHOWTAB           ,
    F_SHOWSTATUSBAR     ,
    F_TYPE_LIST         ,
    F_OPTION_TYPE       ,
    F_OPTION            ,
    F_FONT              ,
    F_WRAPWINDOWWIDTH   ,
    F_PRINT_PAGESETUP   ,
    F_FAVORITE
}

Funccode.cpp の 338 行で定義されています。

const int pnFuncList_Support[]

初期値:

 {
    F_HOKAN                     ,
    F_TOGGLE_KEY_SEARCH         ,

    F_HELP_CONTENTS             ,
    F_HELP_SEARCH               ,
    F_MENU_ALLFUNC              ,
    F_EXTHELP1                  ,
    F_EXTHTMLHELP               ,
    F_ABOUT
}

Funccode.cpp の 436 行で定義されています。

const int pnFuncList_Win[]

初期値:

 {
    F_SPLIT_V           ,
    F_SPLIT_H           ,
    F_SPLIT_VH          ,
    F_WINCLOSE          ,
    F_WIN_CLOSEALL      ,
    F_NEXTWINDOW        ,
    F_PREVWINDOW        ,
    F_WINLIST           ,
    F_CASCADE           ,
    F_TILE_V            ,
    F_TILE_H            ,
    F_TOPMOST           ,
    F_BIND_WINDOW       ,
    F_GROUPCLOSE        ,
    F_NEXTGROUP         ,
    F_PREVGROUP         ,
    F_TAB_MOVERIGHT     ,
    F_TAB_MOVELEFT      ,
    F_TAB_SEPARATE      ,
    F_TAB_JOINTNEXT     ,
    F_TAB_JOINTPREV     ,
    F_MAXIMIZE_V        ,
    F_MAXIMIZE_H        ,
    F_MINIMIZE_ALL      ,
    F_REDRAW            ,
    F_WIN_OUTPUT        ,
}

Funccode.cpp の 404 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:26:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Funccode.cpp ソースファイル

Funccode.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro
00009     Copyright (C) 2001, jepro, MIK, Stonee, asa-o, Misaka, genta, hor
00010     Copyright (C) 2002, aroka, minfu, MIK, ai, genta
00011     Copyright (C) 2003, genta, MIK, Moca
00012     Copyright (C) 2004, genta, isearch
00013     Copyright (C) 2005, genta, MIK
00014     Copyright (C) 2006, aroka, ryoji, fon
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 //  Sept. 14, 2000 Jepro note: functions & commands list
00022 //  キーワード：コマンド一覧順序
00023 //  ここに登録されているコマンドが共通設定の機能種別に表示され、キー割り当てにも設定できるようになる
00024 //  このファイルは「コマンド一覧」のメニューの順番や表示にも使われている
00025 //  sakura_rc.rcファイルの下のほうにあるString Tableも参照のこと
00026
00027 #include "stdafx.h"
00028 #include "funccode.h"
00029
00030 //using namespace nsFuncCode;
00031
00032 const char* nsFuncCode::ppszFuncKind[] = {
00033 //  "--未定義--",   //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように変更
00034 //  Oct. 16, 2000 JEPRO 表示の順番をメニューバーのそれに合わせるように少し入れ替えた(下の個別のものも全部)
00035     "ファイル操作系",
00036     "編集系",
00037     "カーソル移動系",
00038     "選択系",       //Oct. 15, 2000 JEPRO 「カーソル移動系」が多くなったので「選択系」として独立化(サブメニュー化は構造上できないので)
00039     "矩形選択系",   //Oct. 17, 2000 JEPRO 「選択系」に一緒にすると多くなりすぎるので「矩形選択系」も独立させた
00040     "クリップボード系",
00041     "挿入系",
00042     "変換系",
00043     "検索系",
00044     "モード切り替え系",
00045     "設定系",
00046     "マクロ系",
00047     //  Oct. 15, 2001 genta カスタムメニューの文字列をは動的に変更可能にするためここからは外す．
00048 //  "カスタムメニュー", //Oct. 21, 2000 JEPRO 「その他」から独立分離化
00049     "ウィンドウ系",
00050     "支援",
00051     "その他"
00052 };
00053 const int nsFuncCode::nFuncKindNum = sizeof(nsFuncCode::ppszFuncKind) / sizeof(nsFuncCode::ppszFuncKind[0]);
00054
00055 //  From Here Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように以下の4行をコメントアウトに変更
00056 //const int pnFuncList_Undef[] = {  //Oct. 16, 2000 JEPRO 変数名変更(List0→List_Undef)
00057 //  0
00058 //};
00059 //int   nFincList_Undef_Num = sizeof( pnFuncList_Undef ) / sizeof( pnFuncList_Undef[0] );   //Oct. 16, 2000 JEPRO 変数名変更(List0→List_Undef)
00060 //  To Here Oct. 14, 2000
00061
00062
00063 /* ファイル操作系 */
00064 const int pnFuncList_File[] = { //Oct. 16, 2000 JEPRO 変数名変更(List5→List_File)
00065     F_FILENEW           ,   //新規作成
00066     F_FILEOPEN          ,   //開く
00067     F_FILEOPEN_DROPDOWN ,   //開く(ドロップダウン)
00068     F_FILESAVE          ,   //上書き保存
00069     F_FILESAVEAS_DIALOG ,   //名前を付けて保存
00070     F_FILESAVEALL       ,   //全て上書き保存    // Jan. 24, 2005 genta
00071     F_FILECLOSE         ,   //閉じて(無題)  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00072     F_FILECLOSE_OPEN    ,   //閉じて開く
00073     F_WINCLOSE          ,   //ウィンドウを閉じる    //Oct.17,2000 コマンド本家は「ウィンドウ系」    //Feb. 18, 2001 JEPRO 下から移動した
00074     F_FILESAVECLOSE     ,   //保存して閉じる Feb. 28, 2004 genta
00075     F_FILE_REOPEN       ,   //開き直す  //Dec. 4, 2002 genta
00076     F_FILE_REOPEN_SJIS      ,//SJISで開き直す
00077     F_FILE_REOPEN_JIS       ,//JISで開き直す
00078     F_FILE_REOPEN_EUC       ,//EUCで開き直す
00079     F_FILE_REOPEN_UNICODE   ,//Unicodeで開き直す
00080     F_FILE_REOPEN_UNICODEBE ,//UnicodeBEで開き直す
00081     F_FILE_REOPEN_UTF8      ,//UTF-8で開き直す
00082     F_FILE_REOPEN_UTF7      ,//UTF-7で開き直す
00083     F_PRINT             ,   //印刷
00084     F_PRINT_PREVIEW     ,   //印刷プレビュー
00085     F_PRINT_PAGESETUP   ,   //印刷ページ設定    //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から変更
00086     F_OPEN_HfromtoC     ,   //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
00087     F_OPEN_HHPP         ,   //同名のC/C++ヘッダファイルを開く   //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00088     F_OPEN_CCPP         ,   //同名のC/C++ソースファイルを開く   //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00089     F_ACTIVATE_SQLPLUS          ,   /* Oracle SQL*Plusをアクティブ表示 */   //Sept. 20, 2000 「コンパイル」JEPRO アクティブ表示を上に移動した
00090     F_PLSQL_COMPILE_ON_SQLPLUS  ,   /* Oracle SQL*Plusで実行 */ //Sept. 20, 2000 jepro 説明の「コンパイル」を「実行」に統一
00091     F_BROWSE            ,   //ブラウズ
00092     F_READONLY          ,   //読み取り専用
00093     F_PROPERTY_FILE     ,   /* ファイルのプロパティ */
00094     F_EXITALLEDITORS    ,   //編集の全終了  // 2007.02.13 ryoji F_WIN_CLOSEALL→F_EXITALLEDITORS
00095     F_EXITALL               //サクラエディタの全終了    //Dec. 27, 2000 JEPRO 追加
00096 };
00097 const int nFincList_File_Num = sizeof( pnFuncList_File ) / sizeof( pnFuncList_File[0] );    //Oct. 16, 2000 JEPRO 配列名変更(FuncList5→FuncList_File)
00098
00099
00100 /* 編集系 */
00101 const int pnFuncList_Edit[] = { //Oct. 16, 2000 JEPRO 変数名変更(List3→List_Edit)
00102     F_UNDO              ,   //元に戻す(Undo)
00103     F_REDO              ,   //やり直し(Redo)
00104     F_DELETE            ,   //削除
00105     F_DELETE_BACK       ,   //カーソル前を削除
00106     F_WordDeleteToStart ,   //単語の左端まで削除
00107     F_WordDeleteToEnd   ,   //単語の右端まで削除
00108     F_WordCut           ,   //単語切り取り
00109     F_WordDelete        ,   //単語削除
00110     F_LineCutToStart    ,   //行頭まで切り取り(改行単位)
00111     F_LineCutToEnd      ,   //行末まで切り取り(改行単位)
00112     F_LineDeleteToStart ,   //行頭まで削除(改行単位)
00113     F_LineDeleteToEnd   ,   //行末まで削除(改行単位)
00114     F_CUT_LINE          ,   //行切り取り(折り返し単位)
00115     F_DELETE_LINE       ,   //行削除(折り返し単位)
00116     F_DUPLICATELINE     ,   //行の二重化(折り返し単位)
00117     F_INDENT_TAB        ,   //TABインデント
00118     F_UNINDENT_TAB      ,   //逆TABインデント
00119     F_INDENT_SPACE      ,   //SPACEインデント
00120     F_UNINDENT_SPACE    ,   //逆SPACEインデント
00121     F_LTRIM             ,   //左(先頭)の空白を削除  2001.12.03 hor
00122     F_RTRIM             ,   //右(末尾)の空白を削除  2001.12.03 hor
00123     F_SORT_ASC          ,   //選択行の昇順ソート    2001.12.06 hor
00124     F_SORT_DESC         ,   //選択行の降順ソート    2001.12.06 hor
00125     F_MERGE             ,   //選択行のマージ        2001.12.06 hor
00126     F_RECONVERT             //再変換                2002.04.09 minfu
00127 //      F_WORDSREFERENCE        //単語リファレンス
00128 };
00129 const int nFincList_Edit_Num = sizeof( pnFuncList_Edit ) / sizeof( pnFuncList_Edit[0] );    //Oct. 16, 2000 JEPRO 変数名変更(List3→List_Edit)
00130
00131
00132 /* カーソル移動系 */
00133 const int pnFuncList_Move[] = { //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00134     F_UP                ,   //カーソル上移動
00135     F_DOWN              ,   //カーソル下移動
00136     F_LEFT              ,   //カーソル左移動
00137     F_RIGHT             ,   //カーソル右移動
00138     F_UP2               ,   //カーソル上移動(２行ごと)
00139     F_DOWN2             ,   //カーソル下移動(２行ごと)
00140     F_WORDLEFT          ,   //単語の左端に移動
00141     F_WORDRIGHT         ,   //単語の右端に移動
00142     F_GOLINETOP         ,   //行頭に移動(折り返し単位)
00143     F_GOLINEEND         ,   //行末に移動(折り返し単位)
00144 //  F_ROLLDOWN          ,   //スクロールダウン
00145 //  F_ROLLUP            ,   //スクロールアップ
00146     F_HalfPageUp        ,   //半ページアップ    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00147     F_HalfPageDown      ,   //半ページダウン    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00148     F_1PageUp           ,   //１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00149     F_1PageDown         ,   //１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00150     F_GOFILETOP         ,   //ファイルの先頭に移動
00151     F_GOFILEEND         ,   //ファイルの最後に移動
00152     F_CURLINECENTER     ,   //カーソル行をウィンドウ中央へ
00153     F_JUMP_DIALOG       ,   //指定行ヘジャンプ  //Sept. 17, 2000 JEPRO コマンド本家は「検索系」
00154     F_JUMP_SRCHSTARTPOS ,   //検索開始位置へ戻る    // 02/06/26 ai コマンド本家は｢検索系｣
00155     F_JUMPHIST_PREV     ,   //移動履歴: 前へ
00156     F_JUMPHIST_NEXT     ,   //移動履歴: 次へ
00157     F_JUMPHIST_SET      ,   //現在位置を移動履歴に登録
00158     F_WndScrollDown     ,   //テキストを１行下へスクロール  // 2001/06/20 asa-o
00159     F_WndScrollUp       ,   //テキストを１行上へスクロール  // 2001/06/20 asa-o
00160     F_GONEXTPARAGRAPH   ,   //次の段落へ
00161     F_GOPREVPARAGRAPH       //前の段落へ
00162 };
00163 const int nFincList_Move_Num = sizeof( pnFuncList_Move ) / sizeof( pnFuncList_Move[0] );    //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00164
00165
00166 /* 選択系 */    //Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動
00167 const int pnFuncList_Select[] = {
00168     F_SELECTWORD            ,   //現在位置の単語選択
00169     F_SELECTALL             ,   //すべて選択
00170     F_BEGIN_SEL             ,   //範囲選択開始
00171     F_UP_SEL                ,   //(範囲選択)カーソル上移動
00172     F_DOWN_SEL              ,   //(範囲選択)カーソル下移動
00173     F_LEFT_SEL              ,   //(範囲選択)カーソル左移動
00174     F_RIGHT_SEL             ,   //(範囲選択)カーソル右移動
00175     F_UP2_SEL               ,   //(範囲選択)カーソル上移動(２行ごと)
00176     F_DOWN2_SEL             ,   //(範囲選択)カーソル下移動(２行ごと)
00177     F_WORDLEFT_SEL          ,   //(範囲選択)単語の左端に移動
00178     F_WORDRIGHT_SEL         ,   //(範囲選択)単語の右端に移動
00179     F_GOLINETOP_SEL         ,   //(範囲選択)行頭に移動(折り返し単位)
00180     F_GOLINEEND_SEL         ,   //(範囲選択)行末に移動(折り返し単位)
00181 //  F_ROLLDOWN_SEL          ,   //(範囲選択)スクロールダウン
00182 //  F_ROLLUP_SEL            ,   //(範囲選択)スクロールアップ
00183     F_HalfPageUp_Sel        ,   //(範囲選択)半ページアップ  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00184     F_HalfPageDown_Sel      ,   //(範囲選択)半ページダウン  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00185     F_1PageUp_Sel           ,   //(範囲選択)１ページアップ  //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00186     F_1PageDown_Sel         ,   //(範囲選択)１ページダウン  //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00187     F_GOFILETOP_SEL         ,   //(範囲選択)ファイルの先頭に移動
00188     F_GOFILEEND_SEL         ,   //(範囲選択)ファイルの最後に移動
00189     F_GONEXTPARAGRAPH_SEL   ,   //(範囲選択)次の段落へ
00190     F_GOPREVPARAGRAPH_SEL       //(範囲選択)前の段落へ
00191 };
00192 const int nFincList_Select_Num = sizeof( pnFuncList_Select ) / sizeof( pnFuncList_Select[0] );
00193
00194
00195 /* 矩形選択系 */    //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00196 const int pnFuncList_Box[] = {
00197 //  F_BOXSELALL         ,   //矩形ですべて選択
00198     F_BEGIN_BOX         ,   //矩形範囲選択開始
00199 /*
00200     F_UP_BOX                //(矩形選択)カーソル上移動
00201     F_DOWN_BOX          ,   //(矩形選択)カーソル下移動
00202     F_LEFT_BOX          ,   //(矩形選択)カーソル左移動
00203     F_RIGHT_BOX         ,   //(矩形選択)カーソル右移動
00204     F_UP2_BOX           ,   //(矩形選択)カーソル上移動(２行ごと)
00205     F_DOWN2_BOX         ,   //(矩形選択)カーソル下移動(２行ごと)
00206     F_WORDLEFT_BOX      ,   //(矩形選択)単語の左端に移動
00207     F_WORDRIGHT_BOX     ,   //(矩形選択)単語の右端に移動
00208     F_GOLINETOP_BOX     ,   //(矩形選択)行頭に移動(折り返し単位)
00209     F_GOLINEEND_BOX     ,   //(矩形選択)行末に移動(折り返し単位)
00210     F_HalfPageUp_Box    ,   //(矩形選択)半ページアップ
00211     F_HalfPageDown_Box  ,   //(矩形選択)半ページダウン
00212     F_1PageUp_Box       ,   //(矩形選択)１ページアップ
00213     F_1PageDown_Box     ,   //(矩形選択)１ページダウン
00214     F_GOFILETOP_BOX     ,   //(矩形選択)ファイルの先頭に移動
00215     F_GOFILEEND_BOX         //(矩形選択)ファイルの最後に移動
00216 */
00217 };
00218 const int nFincList_Box_Num = sizeof( pnFuncList_Box ) / sizeof( pnFuncList_Box[0] );
00219
00220
00221 /* クリップボード系 */
00222 const int pnFuncList_Clip[] = { //Oct. 16, 2000 JEPRO 変数名変更(List2→List_Clip)
00223     F_CUT                       ,   //切り取り(選択範囲をクリップボードにコピーして削除)
00224     F_COPY                      ,   //コピー(選択範囲をクリップボードにコピー)
00225     F_COPY_ADDCRLF              ,   //折り返し位置に改行をつけてコピー(選択範囲をクリップボードにコピー)
00226     F_COPY_CRLF                 ,   //CRLF改行でコピー
00227     F_PASTE                     ,   //貼り付け(クリップボードから貼り付け)
00228     F_PASTEBOX                  ,   //矩形貼り付け(クリップボードから矩形貼り付け)
00229 //  F_INSTEXT                   ,   //テキストを貼り付け        //Oct. 22, 2000 JEPRO ここに追加したが非公式機能なのか不明なのでコメントアウトにしておく
00230 //  F_ADDTAIL                   ,   //最後にテキストを追加      //Oct. 22, 2000 JEPRO ここに追加したが非公式機能なのか不明なのでコメントアウトにしておく
00231     F_COPYLINES                 ,   //選択範囲内全行コピー
00232     F_COPYLINESASPASSAGE        ,   //選択範囲内全行引用符付きコピー
00233     F_COPYLINESWITHLINENUMBER   ,   //選択範囲内全行行番号付きコピー
00234     F_COPYFNAME                 ,   //このファイル名をクリップボードにコピー //2002/2/3 aroka
00235     F_COPYPATH                  ,   //このファイルのパス名をクリップボードにコピー
00236     F_COPYTAG                   ,   //このファイルのパス名とカーソル位置をコピー    //Sept. 14, 2000 JEPRO メニューに合わせて下に移動
00237     F_CREATEKEYBINDLIST             //キー割り当て一覧をコピー  //Sept. 15, 2000 JEPRO IDM_TESTのままではうまくいかないのでFに変えて登録    //Dec. 25, 2000 復活
00238 };
00239 const int nFincList_Clip_Num = sizeof( pnFuncList_Clip ) / sizeof( pnFuncList_Clip[0] );    //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00240
00241
00242 /* 挿入系 */
00243 const int pnFuncList_Insert[] = {
00244     F_INS_DATE              ,   // 日付挿入
00245     F_INS_TIME              ,   // 時刻挿入
00246     F_CTRL_CODE_DIALOG          //コントロールコードの入力
00247 };
00248 const int nFincList_Insert_Num = sizeof( pnFuncList_Insert ) / sizeof( pnFuncList_Insert[0] );
00249
00250
00251 /* 変換系 */
00252 const int pnFuncList_Convert[] = {  //Oct. 16, 2000 JEPRO 変数名変更(List6→List_Convert)
00253     F_TOLOWER               ,   //小文字
00254     F_TOUPPER               ,   //大文字
00255     F_TOHANKAKU             ,   /* 全角→半角 */
00256     // From Here 2007.01.24 maru 並び順変更
00257     F_TOZENKAKUKATA         ,   /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00258     F_TOZENKAKUHIRA         ,   /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00259     F_TOZENEI               ,   /* 半角英数→全角英数 */            //July. 30, 2001 Misaka
00260     F_TOHANEI               ,   /* 全角英数→半角英数 */
00261     F_TOHANKATA             ,   /* 全角カタカナ→半角カタカナ */    //Aug. 29, 2002 ai
00262     // To Here 2007.01.24 maru 並び順変更
00263     F_HANKATATOZENKAKUKATA  ,   /* 半角カタカナ→全角カタカナ */
00264     F_HANKATATOZENKAKUHIRA  ,   /* 半角カタカナ→全角ひらがな */
00265     F_TABTOSPACE            ,   /* TAB→空白 */
00266     F_SPACETOTAB            ,   /* 空白→TAB */  //#### Stonee, 2001/05/27
00267     F_CODECNV_AUTO2SJIS     ,   /* 自動判別→SJISコード変換 */
00268     F_CODECNV_EMAIL         ,   //E-Mail(JIS→SJIS)コード変換
00269     F_CODECNV_EUC2SJIS      ,   //EUC→SJISコード変換
00270     F_CODECNV_UNICODE2SJIS  ,   //Unicode→SJISコード変換
00271     F_CODECNV_UNICODEBE2SJIS    ,   //Unicode→SJISコード変換
00272     F_CODECNV_UTF82SJIS     ,   /* UTF-8→SJISコード変換 */
00273     F_CODECNV_UTF72SJIS     ,   /* UTF-7→SJISコード変換 */
00274     F_CODECNV_SJIS2JIS      ,   /* SJIS→JISコード変換 */
00275     F_CODECNV_SJIS2EUC      ,   /* SJIS→EUCコード変換 */
00276     F_CODECNV_SJIS2UTF8     ,   /* SJIS→UTF-8コード変換 */
00277     F_CODECNV_SJIS2UTF7     ,   /* SJIS→UTF-7コード変換 */
00278     F_BASE64DECODE          ,   //Base64デコードして保存
00279     F_UUDECODE                  //uudecodeして保存
00280     //Sept. 30, 2000JEPRO コメントアウトされてあったのを復活させた(動作しないのかも？)
00281     //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00282 };
00283 const int nFincList_Convert_Num = sizeof( pnFuncList_Convert ) / sizeof( pnFuncList_Convert[0] );   //Oct. 16, 2000 JEPRO 変数名変更(List6→List_Convert)
00284
00285
00286 /* 検索系 */
00287 const int pnFuncList_Search[] = {   //Oct. 16, 2000 JEPRO 変数名変更(List4→List_Search)
00288     F_SEARCH_DIALOG     ,   //検索(単語検索ダイアログ)
00289     F_SEARCH_BOX        ,   //検索(ボックス)
00290     F_SEARCH_NEXT       ,   //次を検索  //Sept. 16, 2000 JEPRO "次"を"前"の前に移動
00291     F_SEARCH_PREV       ,   //前を検索
00292     F_REPLACE_DIALOG    ,   //置換
00293     F_SEARCH_CLEARMARK  ,   //検索マークのクリア
00294     F_JUMP_SRCHSTARTPOS ,   //検索開始位置へ戻る    // 02/06/26 ai
00295     F_GREP_DIALOG       ,   //Grep
00296     F_JUMP_DIALOG       ,   //指定行ヘジャンプ
00297     F_OUTLINE           ,   //アウトライン解析
00298     F_OUTLINE_TOGGLE    ,   //アウトライン解析(toggle) // 20060201 aroka
00299     F_TAGJUMP           ,   //タグジャンプ機能
00300     F_TAGJUMP_CLOSE     ,   //閉じてタグジャンプ(元ウィンドウを閉じる) // Apr. 03, 2003 genta
00301     F_TAGJUMPBACK       ,   //タグジャンプバック機能
00302     F_TAGS_MAKE         ,   //タグファイルの作成    //@@@ 2003.04.13 MIK
00303     F_DIRECT_TAGJUMP    ,   //ダイレクトタグジャンプ    //@@@ 2003.04.15 MIK
00304     F_TAGJUMP_KEYWORD   ,   //キーワードを指定してダイレクトタグジャンプ    //@@@ 2005.03.31 MIK
00305     F_COMPARE           ,   //ファイル内容比較
00306     F_DIFF_DIALOG       ,   //DIFF差分表示(ダイアログ)
00307     F_DIFF_NEXT         ,   //次の差分へ
00308     F_DIFF_PREV         ,   //前の差分へ
00309     F_DIFF_RESET        ,   //差分の全解除
00310     F_BRACKETPAIR       ,   //対括弧の検索
00311     F_BOOKMARK_SET      ,   //ブックマーク設定・解除
00312     F_BOOKMARK_NEXT     ,   //次のブックマークへ
00313     F_BOOKMARK_PREV     ,   //前のブックマークへ
00314     F_BOOKMARK_RESET    ,   //ブックマークの全解除
00315     F_BOOKMARK_VIEW     ,   //ブックマークの一覧
00316     F_ISEARCH_NEXT      ,   //前方インクリメンタルサーチ //2004.10.13 isearch
00317     F_ISEARCH_PREV      ,   //後方インクリメンタルサーチ //2004.10.13 isearch
00318     F_ISEARCH_REGEXP_NEXT,  //前方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00319     F_ISEARCH_REGEXP_PREV,  //後方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00320     F_ISEARCH_MIGEMO_NEXT,  //前方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00321     F_ISEARCH_MIGEMO_PREV   //後方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00322 };
00323 const int nFincList_Search_Num = sizeof( pnFuncList_Search ) / sizeof( pnFuncList_Search[0] );  //Oct. 16, 2000 JEPRO 変数名変更(List4→List_Search)
00324
00325
00326 /* モード切り替え系 */  //Oct. 16, 2000 JEPRO 変数名変更(List8→List_Mode)
00327 const int pnFuncList_Mode[] = {
00328     F_CHGMOD_INS        ,   //挿入／上書きモード切り替え
00329     F_CHGMOD_EOL_CRLF   ,   //入力改行コード指定(CRLF)  2003.06.23 Moca
00330     F_CHGMOD_EOL_LF     ,   //入力改行コード指定(LF)    2003.06.23 Moca
00331     F_CHGMOD_EOL_CR     ,   //入力改行コード指定(CR)    2003.06.23 Moca
00332     F_CANCEL_MODE           //各種モードの取り消し
00333 };
00334 const int nFincList_Mode_Num = sizeof( pnFuncList_Mode ) / sizeof( pnFuncList_Mode[0] );    //Oct. 16, 2000 JEPRO 変数名変更(List8→List_Mode)
00335
00336
00337 /* 設定系 */
00338 const int pnFuncList_Set[] = {  //Oct. 16, 2000 JEPRO 変数名変更(List9→List_Set)
00339     F_SHOWTOOLBAR       ,   /* ツールバーの表示 */
00340     F_SHOWFUNCKEY       ,   /* ファンクションキーの表示 */  //Sept. 14, 2000 JEPRO ファンクションキーとステータスバーを入れ替え
00341     F_SHOWTAB           ,   /* タブの表示 */    //@@@ 2003.06.10 MIK
00342     F_SHOWSTATUSBAR     ,   /* ステータスバーの表示 */
00343     F_TYPE_LIST         ,   /* タイプ別設定一覧 */          //Sept. 17, 2000 JEPRO 設定系に入ってなかったので追加
00344     F_OPTION_TYPE       ,   /* タイプ別設定 */
00345     F_OPTION            ,   /* 共通設定 */
00346     F_FONT              ,   /* フォント設定 */
00347     F_WRAPWINDOWWIDTH   ,   /* 現在のウィンドウ幅で折り返し */  //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00348     F_PRINT_PAGESETUP   ,   //印刷ページ設定                //Sept. 14, 2000 JEPRO 「印刷のページレイアウトの設定」を「印刷ページ設定」に変更   //Oct. 17, 2000 コマンド本家は「ファイル操作系」
00349     F_FAVORITE              //履歴の管理    //@@@ 2003.04.08 MIK
00350 };
00351 int     nFincList_Set_Num = sizeof( pnFuncList_Set ) / sizeof( pnFuncList_Set[0] ); //Oct. 16, 2000 JEPRO 変数名変更(List9→List_Set)
00352
00353
00354 /* マクロ系 */
00355 const int pnFuncList_Macro[] = {    //Oct. 16, 2000 JEPRO 変数名変更(List10→List_Macro)
00356     F_RECKEYMACRO   ,   /* キーマクロの記録開始／終了 */
00357     F_SAVEKEYMACRO  ,   /* キーマクロの保存 */
00358     F_LOADKEYMACRO  ,   /* キーマクロの読み込み */
00359     F_EXECKEYMACRO  ,   /* キーマクロの実行 */
00360 //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
00361 //  F_EXECCMMAND        /* 外部コマンド実行 */
00362     F_EXECCOMMAND_DIALOG    /* 外部コマンド実行 */
00363 //  To Here Sept. 20, 2000
00364
00365 };
00366 const int nFincList_Macro_Num = sizeof( pnFuncList_Macro) / sizeof( pnFuncList_Macro[0] );  //Oct. 16, 2000 JEPRO 変数名変更(List10→List_Macro)
00367
00368
00369 /* カスタムメニュー */  //Oct. 21, 2000 JEPRO 「その他」から分離独立化
00370 #if 0
00371 //  From Here Oct. 15, 2001 genta
00372 //  カスタムメニューの文字列を動的に変更可能にするためこれは削除．
00373 const int pnFuncList_Menu[] = {
00374     F_MENU_RBUTTON              ,   /* 右クリックメニュー */
00375     F_CUSTMENU_1                ,   /* カスタムメニュー1 */
00376     F_CUSTMENU_2                ,   /* カスタムメニュー2 */
00377     F_CUSTMENU_3                ,   /* カスタムメニュー3 */
00378     F_CUSTMENU_4                ,   /* カスタムメニュー4 */
00379     F_CUSTMENU_5                ,   /* カスタムメニュー5 */
00380     F_CUSTMENU_6                ,   /* カスタムメニュー6 */
00381     F_CUSTMENU_7                ,   /* カスタムメニュー7 */
00382     F_CUSTMENU_8                ,   /* カスタムメニュー8 */
00383     F_CUSTMENU_9                ,   /* カスタムメニュー9 */
00384     F_CUSTMENU_10               ,   /* カスタムメニュー10 */
00385     F_CUSTMENU_11               ,   /* カスタムメニュー11 */
00386     F_CUSTMENU_12               ,   /* カスタムメニュー12 */
00387     F_CUSTMENU_13               ,   /* カスタムメニュー13 */
00388     F_CUSTMENU_14               ,   /* カスタムメニュー14 */
00389     F_CUSTMENU_15               ,   /* カスタムメニュー15 */
00390     F_CUSTMENU_16               ,   /* カスタムメニュー16 */
00391     F_CUSTMENU_17               ,   /* カスタムメニュー17 */
00392     F_CUSTMENU_18               ,   /* カスタムメニュー18 */
00393     F_CUSTMENU_19               ,   /* カスタムメニュー19 */
00394     F_CUSTMENU_20               ,   /* カスタムメニュー20 */
00395     F_CUSTMENU_21               ,   /* カスタムメニュー21 */
00396     F_CUSTMENU_22               ,   /* カスタムメニュー22 */
00397     F_CUSTMENU_23               ,   /* カスタムメニュー23 */
00398     F_CUSTMENU_24                   /* カスタムメニュー24 */
00399 };
00400 const int nFincList_Menu_Num = sizeof( pnFuncList_Menu ) / sizeof( pnFuncList_Menu[0] );    //Oct. 21, 2000 JEPRO 「その他」から分離独立化
00401 #endif
00402
00403 /* ウィンドウ系 */
00404 const int pnFuncList_Win[] = {  //Oct. 16, 2000 JEPRO 変数名変更(List7→List_Win)
00405     F_SPLIT_V           ,   //上下に分割    //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00406     F_SPLIT_H           ,   //左右に分割    //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00407     F_SPLIT_VH          ,   //縦横に分割    //Sept. 17, 2000 jepro 説明に「に」を追加
00408     F_WINCLOSE          ,   //ウィンドウを閉じる
00409     F_WIN_CLOSEALL      ,   //すべてのウィンドウを閉じる    //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00410     F_NEXTWINDOW        ,   //次のウィンドウ
00411     F_PREVWINDOW        ,   //前のウィンドウ
00412     F_WINLIST           ,   //開いているウィンドウ一覧ポップアップ表示  // 2006.03.23 fon
00413     F_CASCADE           ,   //重ねて表示
00414     F_TILE_V            ,   //上下に並べて表示
00415     F_TILE_H            ,   //左右に並べて表示
00416     F_TOPMOST           ,   //常に手前に表示
00417     F_BIND_WINDOW       ,   //結合して表示  // 2006.04.22 ryoji
00418     F_GROUPCLOSE        ,   //グループを閉じる  // 2007.06.20 ryoji
00419     F_NEXTGROUP         ,   //次のグループ  // 2007.06.20 ryoji
00420     F_PREVGROUP         ,   //前のグループ  // 2007.06.20 ryoji
00421     F_TAB_MOVERIGHT     ,   //タブを右に移動    // 2007.06.20 ryoji
00422     F_TAB_MOVELEFT      ,   //タブを左に移動    // 2007.06.20 ryoji
00423     F_TAB_SEPARATE      ,   //新規グループ  // 2007.06.20 ryoji
00424     F_TAB_JOINTNEXT     ,   //次のグループに移動    // 2007.06.20 ryoji
00425     F_TAB_JOINTPREV     ,   //前のグループに移動    // 2007.06.20 ryoji
00426     F_MAXIMIZE_V        ,   //縦方向に最大化
00427     F_MAXIMIZE_H        ,   //横方向に最大化 //2001.02.10 by MIK
00428     F_MINIMIZE_ALL      ,   //すべて最小化  //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00429     F_REDRAW            ,   //再描画
00430     F_WIN_OUTPUT        ,   //アウトプットウィンドウ表示
00431 };
00432 const int nFincList_Win_Num = sizeof( pnFuncList_Win ) / sizeof( pnFuncList_Win[0] );   //Oct. 16, 2000 JEPRO 変数名変更(List7→List_Win)
00433
00434
00435 /* 支援 */
00436 const int pnFuncList_Support[] = {  //Oct. 16, 2000 JEPRO 変数名変更(List11→List_Support)
00437     F_HOKAN                     ,   /* 入力補完 */
00438     F_TOGGLE_KEY_SEARCH         ,   /* キャレット位置の単語を辞書検索する機能ON/OFF */  // 2006.03.24 fon
00439 //Sept. 15, 2000→Nov. 25, 2000 JEPRO //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
00440     F_HELP_CONTENTS             ,   /* ヘルプ目次 */            //Nov. 25, 2000 JEPRO 追加
00441     F_HELP_SEARCH               ,   /* ヘルプキーワード検索 */  //Nov. 25, 2000 JEPRO 追加
00442     F_MENU_ALLFUNC              ,   /* コマンド一覧 */
00443     F_EXTHELP1                  ,   /* 外部ヘルプ１ */
00444     F_EXTHTMLHELP               ,   /* 外部HTMLヘルプ */
00445     F_ABOUT                         /* バージョン情報 */    //Dec. 24, 2000 JEPRO 追加
00446 };
00447 const int nFincList_Support_Num = sizeof( pnFuncList_Support ) / sizeof( pnFuncList_Support[0] );   //Oct. 16, 2000 JEPRO 変数名変更(List11→List_Support)
00448
00449
00450 /* その他 */    //Oct. 16, 2000 JEPRO 変数名変更(List12→List_Others)
00451 const int pnFuncList_Others[] = {
00452 //  F_SENDMAIL                  ,   /* メール送信 */
00453     F_DISABLE               //Oct. 21, 2000 JEPRO 何もないとエラーになってしまうのでダミーで[未定義]を入れておく
00454 };
00455 const int nFincList_Others_Num = sizeof( pnFuncList_Others ) / sizeof( pnFuncList_Others[0] );  //Oct. 16, 2000 JEPRO 変数名変更(List12→List_Others)
00456
00457
00458
00459
00460
00461 const int nsFuncCode::pnFuncListNumArr[] = {
00462 //  nFincList_Undef_Num,    //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように変更    //Oct. 16, 2000 JEPRO 変数名変更(List0→List_Undef)
00463     nFincList_File_Num,     /* ファイル操作系 */    //Oct. 16, 2000 JEPRO 変数名変更(List5→List_File)
00464     nFincList_Edit_Num,     /* 編集系 */            //Oct. 16, 2000 JEPRO 変数名変更(List3→List_Edit)
00465     nFincList_Move_Num,     /* カーソル移動系 */    //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00466     nFincList_Select_Num,   /* 選択系 */            //Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動
00467     nFincList_Box_Num,      /* 矩形選択系 */        //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00468     nFincList_Clip_Num,     /* クリップボード系 */  //Oct. 16, 2000 JEPRO 変数名変更(List2→List_Clip)
00469     nFincList_Insert_Num,   /* 挿入系 */
00470     nFincList_Convert_Num,  /* 変換系 */            //Oct. 16, 2000 JEPRO 変数名変更(List6→List_Convert)
00471     nFincList_Search_Num,   /* 検索系 */            //Oct. 16, 2000 JEPRO 変数名変更(List4→List_Search)
00472     nFincList_Mode_Num,     /* モード切り替え系 */  //Oct. 16, 2000 JEPRO 変数名変更(List8→List_Mode)
00473     nFincList_Set_Num,      /* 設定系 */            //Oct. 16, 2000 JEPRO 変数名変更(List9→List_Set)
00474     nFincList_Macro_Num,    /* マクロ系 */          //Oct. 16, 2000 JEPRO 変数名変更(List10→List_Macro)
00475 //  カスタムメニューの文字列を動的に変更可能にするためこれは削除
00476 //  nFincList_Menu_Num,     /* カスタムメニュー */  //Oct. 21, 2000 JEPRO 「その他」から分離独立化
00477     nFincList_Win_Num,      /* ウィンドウ系 */      //Oct. 16, 2000 JEPRO 変数名変更(List7→List_Win)
00478     nFincList_Support_Num,  /* 支援 */              //Oct. 16, 2000 JEPRO 変数名変更(List11→List_Support)
00479     nFincList_Others_Num    /* その他 */            //Oct. 16, 2000 JEPRO 変数名変更(List12→List_Others)
00480 };
00481 const int * nsFuncCode::ppnFuncListArr[] = {
00482 //  (int*)pnFuncList_Undef, //Oct. 14, 2000 JEPRO 「--未定義--」を表示させないように変更    //Oct. 16, 2000 JEPRO 変数名変更(List0→List_Undef)
00483     (int*)pnFuncList_File,  /* ファイル操作系 */    //Oct. 16, 2000 JEPRO 変数名変更(List5→List_File)
00484     (int*)pnFuncList_Edit,  /* 編集系 */            //Oct. 16, 2000 JEPRO 変数名変更(List3→List_Edit)
00485     (int*)pnFuncList_Move,  /* カーソル移動系 */    //Oct. 16, 2000 JEPRO 変数名変更(List1→List_Move)
00486     (int*)pnFuncList_Select,/* 選択系 */            //Oct. 15, 2000 JEPRO 「カーソル移動系」から(選択)を移動  (矩形選択)は新設され次第ここにおく
00487     (int*)pnFuncList_Box,   /* 矩形選択系 */        //Oct. 17, 2000 JEPRO (矩形選択)が新設され次第ここにおく
00488     (int*)pnFuncList_Clip,  /* クリップボード系 */  //Oct. 16, 2000 JEPRO 変数名変更(List2→List_Clip)
00489     (int*)pnFuncList_Insert,/* 挿入系 */
00490     (int*)pnFuncList_Convert,/* 変換系 */           //Oct. 16, 2000 JEPRO 変数名変更(List6→List_Convert)
00491     (int*)pnFuncList_Search,/* 検索系 */            //Oct. 16, 2000 JEPRO 変数名変更(List4→List_Search)
00492     (int*)pnFuncList_Mode,  /* モード切り替え系 */  //Oct. 16, 2000 JEPRO 変数名変更(List8→List_Mode)
00493     (int*)pnFuncList_Set,   /* 設定系 */            //Oct. 16, 2000 JEPRO 変数名変更(List9→List_Set)
00494     (int*)pnFuncList_Macro, /* マクロ系 */          //Oct. 16, 2000 JEPRO 変数名変更(List10→List_Macro)
00495 //  カスタムメニューの文字列を動的に変更可能にするためこれは削除
00496 //  (int*)pnFuncList_Menu,  /* カスタムメニュー */  //Oct. 21, 2000 JEPRO「その他」から分離独立化
00497     (int*)pnFuncList_Win,   /* ウィンドウ系 */      //Oct. 16, 2000 JEPRO 変数名変更(List7→List_Win)
00498     (int*)pnFuncList_Support,/* 支援 */             //Oct. 16, 2000 JEPRO 変数名変更(List11→List_Support)
00499     (int*)pnFuncList_Others /* その他 */            //Oct. 16, 2000 JEPRO 変数名変更(List12→List_Others)
00500 };
00501 const int nsFuncCode::nFincListNumArrNum = sizeof( nsFuncCode::pnFuncListNumArr ) / sizeof( nsFuncCode::pnFuncListNumArr[0] );
00502
00503
00504 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Funccode.h

Funccode.h

機能番号定義 [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

ネームスペース

namespace | nsFuncCode

マクロ定義

#define | F_DISABLE 0
#define | F_SEPARATOR 1
#define | F_FILENEW 30101
#define | F_FILEOPEN 30102
#define | F_FILESAVE 30103
#define | F_FILESAVEAS_DIALOG 30104
#define | F_FILESAVEAS 30106
#define | F_FILECLOSE 30105
#define | F_FILECLOSE_OPEN 30107
#define | F_FILEOPEN_DROPDOWN 30108
#define | F_FILESAVECLOSE 30109
#define | F_FILESAVEALL 30120
#define | F_FILESAVE_QUIET 30121
#define | F_FILE_REOPEN 30119
#define | F_FILE_REOPEN_SJIS 30111
#define | F_FILE_REOPEN_JIS 30112
#define | F_FILE_REOPEN_EUC 30113
#define | F_FILE_REOPEN_UNICODE 30114
#define | F_FILE_REOPEN_UNICODEBE 30117
#define | F_FILE_REOPEN_UTF8 30115
#define | F_FILE_REOPEN_UTF7 30116
#define | F_PRINT 30150
#define | F_PRINT_PREVIEW 30151
#define | F_PRINT_PAGESETUP 30152
#define | F_OPEN_HHPP 30160
#define | F_OPEN_CCPP 30161
#define | F_OPEN_HfromtoC 30162
#define | F_ACTIVATE_SQLPLUS 30170
#define | F_PLSQL_COMPILE_ON_SQLPLUS 30171
#define | F_BROWSE 30180
#define | F_READONLY 30185
#define | F_PROPERTY_FILE 30190
#define | F_EXITALLEDITORS 30194
#define | F_EXITALL 30195
#define | F_NOWOPENFILE 30197
#define | F_RECENTFILE 30198
#define | F_RECENTFOLDER 30199
#define | F_CHAR 30200
#define | F_IME_CHAR 30201
#define | F_UNDO 30210
#define | F_REDO 30211
#define | F_DELETE 30221
#define | F_DELETE_BACK 30222
#define | F_WordDeleteToStart 30230
#define | F_WordDeleteToEnd 30231
#define | F_WordCut 30232
#define | F_WordDelete 30233
#define | F_LineCutToStart 30240
#define | F_LineCutToEnd 30241
#define | F_LineDeleteToStart 30242
#define | F_LineDeleteToEnd 30243
#define | F_CUT_LINE 30244
#define | F_DELETE_LINE 30245
#define | F_DUPLICATELINE 30250
#define | F_INDENT_TAB 30260
#define | F_UNINDENT_TAB 30261
#define | F_INDENT_SPACE 30262
#define | F_UNINDENT_SPACE 30263
#define | F_LTRIM 30280
#define | F_RTRIM 30281
#define | F_SORT_ASC 30282
#define | F_SORT_DESC 30283
#define | F_MERGE 30284
#define | F_RECONVERT 30285
#define | F_UP 30311
#define | F_DOWN 30312
#define | F_LEFT 30313
#define | F_RIGHT 30314
#define | F_UP2 30315
#define | F_DOWN2 30316
#define | F_WORDLEFT 30320
#define | F_WORDRIGHT 30321
#define | F_GOLINETOP 30332
#define | F_GOLINEEND 30333
#define | F_HalfPageUp 30340
#define | F_HalfPageDown 30341
#define | F_1PageUp 30342
#define | F_1PageDown 30343
#define | F_GOFILETOP 30350
#define | F_GOFILEEND 30351
#define | F_CURLINECENTER 30360
#define | F_JUMPHIST_PREV 30370
#define | F_JUMPHIST_NEXT 30371
#define | F_JUMPHIST_SET 30372
#define | F_WndScrollDown 30380
#define | F_WndScrollUp 30381
#define | F_GONEXTPARAGRAPH 30382
#define | F_GOPREVPARAGRAPH 30383
#define | F_SELECTWORD 30400
#define | F_SELECTALL 30401
#define | F_BEGIN_SEL 30410
#define | F_UP_SEL 30411
#define | F_DOWN_SEL 30412
#define | F_LEFT_SEL 30413
#define | F_RIGHT_SEL 30414
#define | F_UP2_SEL 30415
#define | F_DOWN2_SEL 30416
#define | F_WORDLEFT_SEL 30420
#define | F_WORDRIGHT_SEL 30421
#define | F_GOLINETOP_SEL 30432
#define | F_GOLINEEND_SEL 30433
#define | F_HalfPageUp_Sel 30440
#define | F_HalfPageDown_Sel 30441
#define | F_1PageUp_Sel 30442
#define | F_1PageDown_Sel 30443
#define | F_GOFILETOP_SEL 30450
#define | F_GOFILEEND_SEL 30451
#define | F_GONEXTPARAGRAPH_SEL 30482
#define | F_GOPREVPARAGRAPH_SEL 30483
#define | F_BEGIN_BOX 30510
#define | F_CUT 30601
#define | F_COPY 30602
#define | F_COPY_ADDCRLF 30608
#define | F_COPY_CRLF 30603
#define | F_PASTE 30604
#define | F_PASTEBOX 30605
#define | F_INSTEXT 30606
#define | F_ADDTAIL 30607
#define | F_COPYLINES 30610
#define | F_COPYLINESASPASSAGE 30611
#define | F_COPYLINESWITHLINENUMBER 30612
#define | F_COPYPATH 30620
#define | F_COPYTAG 30621
#define | F_COPYFNAME 30622
#define | F_CREATEKEYBINDLIST 30630
#define | F_INS_DATE 30790
#define | F_INS_TIME 30791
#define | F_CTRL_CODE_DIALOG 30792
#define | F_TOLOWER 30800
#define | F_TOUPPER 30801
#define | F_TOHANKAKU 30810
#define | F_TOHANKATA 30817
#define | F_TOZENKAKUKATA 30811
#define | F_TOZENKAKUHIRA 30812
#define | F_HANKATATOZENKAKUKATA 30813
#define | F_HANKATATOZENKAKUHIRA 30814
#define | F_TOZENEI 30815
#define | F_TOHANEI 30816
#define | F_TABTOSPACE 30830
#define | F_SPACETOTAB 30831
#define | F_CODECNV_AUTO2SJIS 30850
#define | F_CODECNV_EMAIL 30851
#define | F_CODECNV_EUC2SJIS 30852
#define | F_CODECNV_UNICODE2SJIS 30853
#define | F_CODECNV_UNICODEBE2SJIS 30856
#define | F_CODECNV_UTF82SJIS 30854
#define | F_CODECNV_UTF72SJIS 30855
#define | F_CODECNV_SJIS2JIS 30860
#define | F_CODECNV_SJIS2EUC 30861
#define | F_CODECNV_SJIS2UTF8 30862
#define | F_CODECNV_SJIS2UTF7 30863
#define | F_BASE64DECODE 30870
#define | F_UUDECODE 30880
#define | F_SEARCH_DIALOG 30901
#define | F_SEARCH_NEXT 30902
#define | F_SEARCH_PREV 30903
#define | F_REPLACE_DIALOG 30904
#define | F_REPLACE 30906
#define | F_REPLACE_ALL 30907
#define | F_SEARCH_CLEARMARK 30905
#define | F_JUMP_SRCHSTARTPOS 30909
#define | F_SEARCH_BOX 30908
#define | F_GREP_DIALOG 30910
#define | F_GREP 30911
#define | F_JUMP_DIALOG 30920
#define | F_JUMP 30921
#define | F_OUTLINE 30930
#define | F_OUTLINE_TOGGLE 30931
#define | F_TAGJUMP 30940
#define | F_TAGJUMPBACK 30941
#define | F_TAGJUMP_LIST 30942
#define | F_TAGS_MAKE 30943
#define | F_DIRECT_TAGJUMP 30944
#define | F_TAGJUMP_CLOSE 30945
#define | F_TAGJUMP_KEYWORD 30946
#define | F_COMPARE 30950
#define | F_BRACKETPAIR 30960
#define | F_BOOKMARK_SET 30970
#define | F_BOOKMARK_NEXT 30971
#define | F_BOOKMARK_PREV 30972
#define | F_BOOKMARK_RESET 30973
#define | F_BOOKMARK_VIEW 30974
#define | F_BOOKMARK_PATTERN 30975
#define | F_DIFF_DIALOG 30976
#define | F_DIFF 30977
#define | F_DIFF_NEXT 30978
#define | F_DIFF_PREV 30979
#define | F_DIFF_RESET 30980
#define | F_ISEARCH_NEXT 30981
#define | F_ISEARCH_PREV 30982
#define | F_ISEARCH_REGEXP_NEXT 30983
#define | F_ISEARCH_REGEXP_PREV 30984
#define | F_ISEARCH_MIGEMO_NEXT 30985
#define | F_ISEARCH_MIGEMO_PREV 30986
#define | F_CHGMOD_INS 31001
#define | F_CHGMOD_EOL_CRLF 31081
#define | F_CHGMOD_EOL_LF 31082
#define | F_CHGMOD_EOL_CR 31083
#define | F_CANCEL_MODE 31099
#define | F_SHOWTOOLBAR 31100
#define | F_SHOWFUNCKEY 31101
#define | F_SHOWSTATUSBAR 31102
#define | F_SHOWTAB 31103
#define | F_TYPE_LIST 31110
#define | F_OPTION_TYPE 31111
#define | F_OPTION 31112
#define | F_FAVORITE 31113
#define | F_TYPE_SCREEN 31115
#define | F_TYPE_COLOR 31116
#define | F_TYPE_HELPER 31117
#define | F_TYPE_REGEX_KEYWORD 31118
#define | F_TYPE_KEYHELP 31119
#define | F_OPTION_GENERAL 32000
#define | F_OPTION_WINDOW 32001
#define | F_OPTION_EDIT 32002
#define | F_OPTION_FILE 32003
#define | F_OPTION_BACKUP 32004
#define | F_OPTION_FORMAT 32005
#define | F_OPTION_GREP 32007
#define | F_OPTION_KEYBIND 32008
#define | F_OPTION_CUSTMENU 32009
#define | F_OPTION_TOOLBAR 32010
#define | F_OPTION_KEYWORD 32011
#define | F_OPTION_HELPER 32012
#define | F_OPTION_MACRO 32013
#define | F_OPTION_FNAME 32014
#define | F_OPTION_TAB 32015
#define | F_FONT 31120
#define | F_WRAPWINDOWWIDTH 31140
#define | F_RECKEYMACRO 31250
#define | F_SAVEKEYMACRO 31251
#define | F_LOADKEYMACRO 31252
#define | F_EXECKEYMACRO 31253
#define | F_EXECCOMMAND_DIALOG 31270
#define | F_EXECCOMMAND 31271
#define | F_USERMACRO_0 31600
#define | F_MENU_RBUTTON 31580
#define | F_CUSTMENU_1 31501
#define | F_CUSTMENU_2 31502
#define | F_CUSTMENU_3 31503
#define | F_CUSTMENU_4 31504
#define | F_CUSTMENU_5 31505
#define | F_CUSTMENU_6 31506
#define | F_CUSTMENU_7 31507
#define | F_CUSTMENU_8 31508
#define | F_CUSTMENU_9 31509
#define | F_CUSTMENU_10 31510
#define | F_CUSTMENU_11 31511
#define | F_CUSTMENU_12 31512
#define | F_CUSTMENU_13 31513
#define | F_CUSTMENU_14 31514
#define | F_CUSTMENU_15 31515
#define | F_CUSTMENU_16 31516
#define | F_CUSTMENU_17 31517
#define | F_CUSTMENU_18 31518
#define | F_CUSTMENU_19 31519
#define | F_CUSTMENU_20 31520
#define | F_CUSTMENU_21 31521
#define | F_CUSTMENU_22 31522
#define | F_CUSTMENU_23 31523
#define | F_CUSTMENU_24 31524
#define | F_CUSTMENU_BASE 31500
#define | F_SPLIT_V 31310
#define | F_SPLIT_H 31311
#define | F_SPLIT_VH 31312
#define | F_WINCLOSE 31320
#define | F_WIN_CLOSEALL 31321
#define | F_CASCADE 31330
#define | F_TILE_V 31331
#define | F_TILE_H 31332
#define | F_BIND_WINDOW 31333
#define | F_TOPMOST 31334
#define | F_NEXTWINDOW 31340
#define | F_PREVWINDOW 31341
#define | F_WINLIST 31336
#define | F_MAXIMIZE_V 31350
#define | F_MINIMIZE_ALL 31351
#define | F_MAXIMIZE_H 31352
#define | F_REDRAW 31360
#define | F_WIN_OUTPUT 31370
#define | F_GROUPCLOSE 31380
#define | F_NEXTGROUP 31381
#define | F_PREVGROUP 31382
#define | F_TAB_MOVERIGHT 31383
#define | F_TAB_MOVELEFT 31384
#define | F_TAB_SEPARATE 31385
#define | F_TAB_JOINTNEXT 31386
#define | F_TAB_JOINTPREV 31387
#define | F_HOKAN 31430
#define | F_TOGGLE_KEY_SEARCH 31431
#define | F_HELP_CONTENTS 31440
#define | F_HELP_SEARCH 31441
#define | F_MENU_ALLFUNC 31445
#define | F_EXTHELP1 31450
#define | F_EXTHTMLHELP 31451
#define | F_ABOUT 31455
#define | F_MENU_NOT_USED_FIRST 32768
#define | F_CHGMOD_EOL 32800
#define | F_SET_QUOTESTRING 32801
#define | F_TRACEOUT 32802
#define | F_PUTFILE 32803
#define | F_INSFILE 32804
#define | F_FUNCTION_FIRST 40000
#define | F_GETFILENAME 40001
#define | F_GETSELECTED 40002
#define | F_EXPANDPARAMETER 40003
#define | F_GETLINESTR 40004
#define | F_GETLINECOUNT 40005
#define | F_CHGTABWIDTH 40006
#define | F_ISTEXTSELECTED 40007
#define | F_GETSELLINEFROM 40008
#define | F_GETSELCOLMFROM 40009
#define | F_GETSELLINETO 40010
#define | F_GETSELCOLMTO 40011
#define | F_ISINSMODE 40012
#define | F_GETCHARCODE 40013
#define | F_GETLINECODE 40014
#define | F_ISPOSSIBLEUNDO 40015
#define | F_ISPOSSIBLEREDO 40016
#define | F_ISEARCH_ADD_CHAR 0x10001
#define | F_ISEARCH_ADD_STR 0x10002
#define | F_ISEARCH_DEL_BACK 0x10003

変数

const char * | nsFuncCode::ppszFuncKind []
const int | nsFuncCode::nFuncKindNum = sizeof(nsFuncCode::ppszFuncKind) / sizeof(nsFuncCode::ppszFuncKind[0])
const int | nsFuncCode::pnFuncListNumArr []
const int * | nsFuncCode::ppnFuncListArr []
const int | nsFuncCode::nFincListNumArrNum = sizeof( nsFuncCode::pnFuncListNumArr ) / sizeof( nsFuncCode::pnFuncListNumArr[0] )

説明

機能番号定義

作者:
Norio Nakatani

Funccode.h で定義されています。

マクロ定義

#define F_1PageDown 30343

Funccode.h の 116 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_1PageDown_Sel 30443

Funccode.h の 151 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_1PageUp 30342

Funccode.h の 115 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_1PageUp_Sel 30442

Funccode.h の 150 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_ABOUT 31455

Funccode.h の 410 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::OnCommand().

#define F_ACTIVATE_SQLPLUS 30170

Funccode.h の 56 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_ADDTAIL 30607

Funccode.h の 194 行で定義されています。

参照元 CMacro::HandleCommand()・CEditDoc::IsModificationForbidden().

#define F_BASE64DECODE 30870

Funccode.h の 235 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_BEGIN_BOX 30510

Funccode.h の 162 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncEnable().

#define F_BEGIN_SEL 30410

Funccode.h の 133 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_BIND_WINDOW 31333

Funccode.h の 381 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_BOOKMARK_NEXT 30971

Funccode.h の 265 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_BOOKMARK_PATTERN 30975

Funccode.h の 269 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMacro::HandleCommand()・CDlgFind::OnBnClicked()・CMacro::Save().

#define F_BOOKMARK_PREV 30972

Funccode.h の 266 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_BOOKMARK_RESET 30973

Funccode.h の 267 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_BOOKMARK_SET 30970

Funccode.h の 264 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgFuncList::Key2Command().

#define F_BOOKMARK_VIEW 30974

Funccode.h の 268 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgFuncList::Key2Command()・CDlgFuncList::OnBnClicked().

#define F_BRACKETPAIR 30960

Funccode.h の 263 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_BROWSE 30180

Funccode.h の 58 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu().

#define F_CANCEL_MODE 31099

Funccode.h の 288 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CASCADE 31330

Funccode.h の 378 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CHAR 30200

Funccode.h の 68 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CEditView::DispatchEvent()・CMacro::HandleCommand()・CEditView::HandleCommand()・CEditDoc::IsModificationForbidden()・CEditView::PreprocessCommand_hokan()・CEditView::TranslateCommand_grep()・CEditView::TranslateCommand_isearch().

#define F_CHGMOD_EOL 32800

Funccode.h の 421 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMacro::HandleCommand().

#define F_CHGMOD_EOL_CR 31083

Funccode.h の 287 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_CHGMOD_EOL_CRLF 31081

Funccode.h の 285 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncChecked().

#define F_CHGMOD_EOL_LF 31082

Funccode.h の 286 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncChecked().

#define F_CHGMOD_INS 31001

Funccode.h の 284 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CHGTABWIDTH 40006

Funccode.h の 434 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_CODECNV_AUTO2SJIS 30850

Funccode.h の 224 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_AUTO2SJIS()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_EMAIL 30851

Funccode.h の 225 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_EMAIL()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_EUC2SJIS 30852

Funccode.h の 226 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_EUC2SJIS()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2EUC 30861

Funccode.h の 232 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_SJIS2EUC()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2JIS 30860

Funccode.h の 231 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_SJIS2JIS()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2UTF7 30863

Funccode.h の 234 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_SJIS2UTF7()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_SJIS2UTF8 30862

Funccode.h の 233 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_SJIS2UTF8()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_UNICODE2SJIS 30853

Funccode.h の 227 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_UNICODE2SJIS()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_UNICODEBE2SJIS 30856

Funccode.h の 228 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_UNICODEBE2SJIS()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_UTF72SJIS 30855

Funccode.h の 230 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_UTF72SJIS()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_CODECNV_UTF82SJIS 30854

Funccode.h の 229 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_CODECNV_UTF82SJIS()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_COMPARE 30950

Funccode.h の 262 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncEnable()・CDlgCompare::OnBnClicked().

#define F_COPY 30602

Funccode.h の 188 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CDlgFuncList::Key2Command().

#define F_COPY_ADDCRLF 30608

Funccode.h の 189 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitPopupMenu().

#define F_COPY_CRLF 30603

Funccode.h の 190 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu().

#define F_COPYFNAME 30622

Funccode.h の 200 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_COPYLINES 30610

Funccode.h の 195 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu().

#define F_COPYLINESASPASSAGE 30611

Funccode.h の 196 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu().

#define F_COPYLINESWITHLINENUMBER 30612

Funccode.h の 197 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_COPYPATH 30620

Funccode.h の 198 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu().

#define F_COPYTAG 30621

Funccode.h の 199 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CREATEKEYBINDLIST 30630

Funccode.h の 202 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CTRL_CODE_DIALOG 30792

Funccode.h の 208 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditDoc::IsModificationForbidden()・CDlgCtrlCode::OnBnClicked().

#define F_CURLINECENTER 30360

Funccode.h の 121 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_1 31501

Funccode.h の 345 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_10 31510

Funccode.h の 354 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_11 31511

Funccode.h の 355 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_12 31512

Funccode.h の 356 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_13 31513

Funccode.h の 357 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_14 31514

Funccode.h の 358 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_15 31515

Funccode.h の 359 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_16 31516

Funccode.h の 360 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_17 31517

Funccode.h の 361 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_18 31518

Funccode.h の 362 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_19 31519

Funccode.h の 363 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_2 31502

Funccode.h の 346 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_20 31520

Funccode.h の 364 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_21 31521

Funccode.h の 365 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_22 31522

Funccode.h の 366 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_23 31523

Funccode.h の 367 行で定義されています。

参照元 FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_24 31524

Funccode.h の 368 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_3 31503

Funccode.h の 347 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_4 31504

Funccode.h の 348 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_5 31505

Funccode.h の 349 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_6 31506

Funccode.h の 350 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_7 31507

Funccode.h の 351 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_8 31508

Funccode.h の 352 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_9 31509

Funccode.h の 353 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_CUSTMENU_BASE 31500

Funccode.h の 370 行で定義されています。

参照元 CTabWnd::OnTabRButtonUp()・CFuncLookup::Pos2FuncCode().

#define F_CUT 30601

Funccode.h の 187 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditDoc::IsModificationForbidden()・CDlgFuncList::Key2Command().

#define F_CUT_LINE 30244

Funccode.h の 82 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_DELETE 30221

Funccode.h の 72 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditDoc::IsModificationForbidden().

#define F_DELETE_BACK 30222

Funccode.h の 73 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden()・CEditView::TranslateCommand_isearch().

#define F_DELETE_LINE 30245

Funccode.h の 83 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_DIFF 30977

Funccode.h の 271 行で定義されています。

参照元 CMacro::HandleCommand().

#define F_DIFF_DIALOG 30976

Funccode.h の 270 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncEnable()・CDlgDiff::OnBnClicked().

#define F_DIFF_NEXT 30978

Funccode.h の 272 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncEnable().

#define F_DIFF_PREV 30979

Funccode.h の 273 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncEnable().

#define F_DIFF_RESET 30980

Funccode.h の 274 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncEnable().

#define F_DIRECT_TAGJUMP 30944

Funccode.h の 259 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_DISABLE 0

Funccode.h の 25 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer().

#define F_DOWN 30312

Funccode.h の 100 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_DOWN2 30316

Funccode.h の 104 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_DOWN2_SEL 30416

Funccode.h の 139 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_DOWN_SEL 30412

Funccode.h の 135 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_DUPLICATELINE 30250

Funccode.h の 84 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_EXECCOMMAND 31271

Funccode.h の 336 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMacro::HandleCommand()・CMacro::Save().

#define F_EXECCOMMAND_DIALOG 31270

Funccode.h の 335 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgExec::OnBnClicked().

#define F_EXECKEYMACRO 31253

Funccode.h の 332 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncEnable().

#define F_EXITALL 30195

Funccode.h の 62 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::OnCommand().

#define F_EXITALLEDITORS 30194

Funccode.h の 61 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CTabWnd::OnLButtonUp()・CTabWnd::OnMouseMove().

#define F_EXPANDPARAMETER 40003

Funccode.h の 431 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_EXTHELP1 31450

Funccode.h の 408 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_EXTHTMLHELP 31451

Funccode.h の 409 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign().

#define F_FAVORITE 31113

Funccode.h の 298 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・FuncID_To_HelpContextID()・CDlgFavorite::OnBnClicked().

#define F_FILE_REOPEN 30119

Funccode.h の 41 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CEditWnd::InitMenu()・CShareData::InitPopupMenu().

#define F_FILE_REOPEN_EUC 30113

Funccode.h の 44 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CEditWnd::IsFuncChecked().

#define F_FILE_REOPEN_JIS 30112

Funccode.h の 43 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CEditWnd::IsFuncChecked().

#define F_FILE_REOPEN_SJIS 30111

Funccode.h の 42 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CEditWnd::IsFuncChecked().

#define F_FILE_REOPEN_UNICODE 30114

Funccode.h の 45 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CEditWnd::IsFuncChecked().

#define F_FILE_REOPEN_UNICODEBE 30117

Funccode.h の 46 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CEditWnd::InitMenu()・CEditWnd::IsFuncChecked().

#define F_FILE_REOPEN_UTF7 30116

Funccode.h の 48 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CEditWnd::IsFuncChecked().

#define F_FILE_REOPEN_UTF8 30115

Funccode.h の 47 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CEditWnd::IsFuncChecked().

#define F_FILECLOSE 30105

Funccode.h の 34 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CKeyBind::GetDefFuncCode()・CEditWnd::InitMenu()・CShareData::InitPopupMenu().

#define F_FILECLOSE_OPEN 30107

Funccode.h の 35 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CShareData::InitPopupMenu().

#define F_FILENEW 30101

Funccode.h の 29 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CTabWnd::OnLButtonDblClk().

#define F_FILEOPEN 30102

Funccode.h の 30 行で定義されています。

参照元 CMacro::AddLParam()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CShareData::InitPopupMenu()・CMacro::Save().

#define F_FILEOPEN_DROPDOWN 30108

Funccode.h の 36 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_FILESAVE 30103

Funccode.h の 31 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CShareData::InitPopupMenu().

#define F_FILESAVE_QUIET 30121

Funccode.h の 39 行で定義されています。

参照元 CEditView::Command_FILESAVEALL().

#define F_FILESAVEALL 30120

Funccode.h の 38 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::InitMenu().

#define F_FILESAVEAS 30106

Funccode.h の 33 行で定義されています。

参照元 CMacro::HandleCommand().

#define F_FILESAVEAS_DIALOG 30104

Funccode.h の 32 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・CDlgOpenFile::DoModalSaveDlg()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CShareData::InitPopupMenu().

#define F_FILESAVECLOSE 30109

Funccode.h の 37 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::InitMenu().

#define F_FONT 31120

Funccode.h の 324 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_FUNCTION_FIRST 40000

Funccode.h の 427 行で定義されています。

参照元 MacroCommand().

#define F_GETCHARCODE 40013

Funccode.h の 441 行で定義されています。

#define F_GETFILENAME 40001

Funccode.h の 429 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETLINECODE 40014

Funccode.h の 442 行で定義されています。

#define F_GETLINECOUNT 40005

Funccode.h の 433 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETLINESTR 40004

Funccode.h の 432 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETSELCOLMFROM 40009

Funccode.h の 437 行で定義されています。

#define F_GETSELCOLMTO 40011

Funccode.h の 439 行で定義されています。

#define F_GETSELECTED 40002

Funccode.h の 430 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_GETSELLINEFROM 40008

Funccode.h の 436 行で定義されています。

#define F_GETSELLINETO 40010

Funccode.h の 438 行で定義されています。

#define F_GOFILEEND 30351

Funccode.h の 120 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_GOFILEEND_SEL 30451

Funccode.h の 155 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_GOFILETOP 30350

Funccode.h の 119 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_GOFILETOP_SEL 30450

Funccode.h の 154 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_GOLINEEND 30333

Funccode.h の 110 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_GOLINEEND_SEL 30433

Funccode.h の 145 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_GOLINETOP 30332

Funccode.h の 109 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign().

#define F_GOLINETOP_SEL 30432

Funccode.h の 144 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_GONEXTPARAGRAPH 30382

Funccode.h の 127 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_GONEXTPARAGRAPH_SEL 30482

Funccode.h の 156 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_GOPREVPARAGRAPH 30383

Funccode.h の 128 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_GOPREVPARAGRAPH_SEL 30483

Funccode.h の 157 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_GREP 30911

Funccode.h の 250 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMacro::HandleCommand()・CMacro::Save().

#define F_GREP_DIALOG 30910

Funccode.h の 249 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgGrep::OnBnClicked().

#define F_GROUPCLOSE 31380

Funccode.h の 391 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CKeyBind::GetDefFuncCode()・CTabWnd::OnLButtonUp()・CTabWnd::OnMouseMove().

#define F_HalfPageDown 30341

Funccode.h の 114 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_HalfPageDown_Sel 30441

Funccode.h の 149 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_HalfPageUp 30340

Funccode.h の 113 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_HalfPageUp_Sel 30440

Funccode.h の 148 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_HANKATATOZENKAKUHIRA 30814

Funccode.h の 219 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_HANKATATOZENKAKUHIRA()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_HANKATATOZENKAKUKATA 30813

Funccode.h の 218 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_HANKATATOZENKAKUKATA()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_HELP_CONTENTS 31440

Funccode.h の 405 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::OnCommand().

#define F_HELP_SEARCH 31441

Funccode.h の 406 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::OnCommand().

#define F_HOKAN 31430

Funccode.h の 402 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden()・CEditView::PreprocessCommand_hokan().

#define F_IME_CHAR 30201

Funccode.h の 69 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CEditView::DispatchEvent()・CMacro::HandleCommand()・CEditView::HandleCommand()・CEditDoc::IsModificationForbidden()・CEditView::PreprocessCommand_hokan()・CEditView::TranslateCommand_isearch().

#define F_INDENT_SPACE 30262

Funccode.h の 87 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden()・CEditView::TranslateCommand_isearch().

#define F_INDENT_TAB 30260

Funccode.h の 85 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden()・CEditView::TranslateCommand_isearch().

#define F_INS_DATE 30790

Funccode.h の 206 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_INS_TIME 30791

Funccode.h の 207 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_INSFILE 32804

Funccode.h の 425 行で定義されています。

参照元 CMacro::HandleCommand().

#define F_INSTEXT 30606

Funccode.h の 193 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CEditView::DispatchEvent()・CHokanMgr::DoHokan()・CEditView::Drop()・CMacro::HandleCommand()・CEditDoc::IsModificationForbidden()・CMacro::Save()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_ADD_CHAR 0x10001

Funccode.h の 447 行で定義されています。

参照元 CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_ADD_STR 0x10002

Funccode.h の 448 行で定義されています。

参照元 CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_DEL_BACK 0x10003

Funccode.h の 449 行で定義されています。

参照元 CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_MIGEMO_NEXT 30985

Funccode.h の 279 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditView::IsISearchEnabled()・CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_MIGEMO_PREV 30986

Funccode.h の 280 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditView::IsISearchEnabled()・CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_NEXT 30981

Funccode.h の 275 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditView::IsISearchEnabled()・CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_PREV 30982

Funccode.h の 276 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditView::IsISearchEnabled()・CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_REGEXP_NEXT 30983

Funccode.h の 277 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditView::IsISearchEnabled()・CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISEARCH_REGEXP_PREV 30984

Funccode.h の 278 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditView::IsISearchEnabled()・CEditView::ProcessCommand_isearch()・CEditView::TranslateCommand_isearch().

#define F_ISINSMODE 40012

Funccode.h の 440 行で定義されています。

#define F_ISPOSSIBLEREDO 40016

Funccode.h の 444 行で定義されています。

#define F_ISPOSSIBLEUNDO 40015

Funccode.h の 443 行で定義されています。

#define F_ISTEXTSELECTED 40007

Funccode.h の 435 行で定義されています。

参照元 CMacro::HandleFunction().

#define F_JUMP 30921

Funccode.h の 252 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMacro::HandleCommand()・CDlgJump::OnBnClicked()・CMacro::Save().

#define F_JUMP_DIALOG 30920

Funccode.h の 251 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgJump::OnBnClicked().

#define F_JUMP_SRCHSTARTPOS 30909

Funccode.h の 247 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncEnable().

#define F_JUMPHIST_NEXT 30371

Funccode.h の 123 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_JUMPHIST_PREV 30370

Funccode.h の 122 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_JUMPHIST_SET 30372

Funccode.h の 124 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・FuncID_To_HelpContextID().

#define F_LEFT 30313

Funccode.h の 101 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_LEFT_SEL 30413

Funccode.h の 136 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_LineCutToEnd 30241

Funccode.h の 79 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_LineCutToStart 30240

Funccode.h の 78 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_LineDeleteToEnd 30243

Funccode.h の 81 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_LineDeleteToStart 30242

Funccode.h の 80 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_LOADKEYMACRO 31252

Funccode.h の 331 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncEnable().

#define F_LTRIM 30280

Funccode.h の 90 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TRIM()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_MAXIMIZE_H 31352

Funccode.h の 388 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_MAXIMIZE_V 31350

Funccode.h の 386 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_MENU_ALLFUNC 31445

Funccode.h の 407 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_MENU_NOT_USED_FIRST 32768

Funccode.h の 420 行で定義されています。

参照元 CPropCommon::DrawToolBarItemList().

#define F_MENU_RBUTTON 31580

Funccode.h の 344 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CFuncLookup::Pos2FuncCode().

#define F_MERGE 30284

Funccode.h の 94 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_MINIMIZE_ALL 31351

Funccode.h の 387 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_NEXTGROUP 31381

Funccode.h の 392 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_NEXTWINDOW 31340

Funccode.h の 383 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu().

#define F_NOWOPENFILE 30197

Funccode.h の 63 行で定義されています。

#define F_OPEN_CCPP 30161

Funccode.h の 54 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_OPEN_HfromtoC 30162

Funccode.h の 55 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_OPEN_HHPP 30160

Funccode.h の 53 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_OPTION 31112

Funccode.h の 297 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_OPTION_BACKUP 32004

Funccode.h の 310 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_CUSTMENU 32009

Funccode.h の 315 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_EDIT 32002

Funccode.h の 308 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_FILE 32003

Funccode.h の 309 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_FNAME 32014

Funccode.h の 321 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_FORMAT 32005

Funccode.h の 311 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_GENERAL 32000

Funccode.h の 306 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_GREP 32007

Funccode.h の 313 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_HELPER 32012

Funccode.h の 318 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_KEYBIND 32008

Funccode.h の 314 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_KEYWORD 32011

Funccode.h の 317 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_MACRO 32013

Funccode.h の 320 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_TAB 32015

Funccode.h の 322 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_TOOLBAR 32010

Funccode.h の 316 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OPTION_TYPE 31111

Funccode.h の 296 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_OPTION_WINDOW 32001

Funccode.h の 307 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropCommon::OnHelp().

#define F_OUTLINE 30930

Funccode.h の 253 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgFuncList::Key2Command()・CDlgFuncList::OnBnClicked().

#define F_OUTLINE_TOGGLE 30931

Funccode.h の 254 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CDlgFuncList::Key2Command().

#define F_PASTE 30604

Funccode.h の 191 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditWnd::IsFuncEnable()・CEditDoc::IsModificationForbidden().

#define F_PASTEBOX 30605

Funccode.h の 192 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditWnd::IsFuncEnable()・CEditDoc::IsModificationForbidden().

#define F_PLSQL_COMPILE_ON_SQLPLUS 30171

Funccode.h の 57 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_PREVGROUP 31382

Funccode.h の 393 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_PREVWINDOW 31341

Funccode.h の 384 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditDoc::HandleCommand()・CShareData::InitKeyAssign().

#define F_PRINT 30150

Funccode.h の 49 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu().

#define F_PRINT_PAGESETUP 30152

Funccode.h の 51 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CDlgPrintSetting::OnBnClicked().

#define F_PRINT_PREVIEW 30151

Funccode.h の 50 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・CPrintPreview::DispatchEvent_PPB()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu().

#define F_PROPERTY_FILE 30190

Funccode.h の 60 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::InitMenu()・CShareData::InitPopupMenu()・CDlgProperty::OnBnClicked().

#define F_PUTFILE 32803

Funccode.h の 424 行で定義されています。

参照元 CMacro::HandleCommand().

#define F_READONLY 30185

Funccode.h の 59 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncChecked().

#define F_RECENTFILE 30198

Funccode.h の 64 行で定義されています。

#define F_RECENTFOLDER 30199

Funccode.h の 65 行で定義されています。

#define F_RECKEYMACRO 31250

Funccode.h の 329 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_RECONVERT 30285

Funccode.h の 95 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_REDO 30211

Funccode.h の 71 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditDoc::IsModificationForbidden().

#define F_REDRAW 31360

Funccode.h の 389 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgFuncList::Key2Command()・CDlgFind::OnBnClicked().

#define F_REPLACE 30906

Funccode.h の 244 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMacro::HandleCommand()・CEditDoc::IsModificationForbidden()・CMacro::Save().

#define F_REPLACE_ALL 30907

Funccode.h の 245 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMacro::HandleCommand()・CEditDoc::IsModificationForbidden()・CMacro::Save().

#define F_REPLACE_DIALOG 30904

Funccode.h の 243 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_RIGHT 30314

Funccode.h の 102 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_RIGHT_SEL 30414

Funccode.h の 137 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_RTRIM 30281

Funccode.h の 91 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TRIM()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_SAVEKEYMACRO 31251

Funccode.h の 330 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncEnable().

#define F_SEARCH_BOX 30908

Funccode.h の 248 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・CEditWnd::CreateToolBar()・FuncID_To_HelpContextID()・CEditWnd::OnCommand().

#define F_SEARCH_CLEARMARK 30905

Funccode.h の 246 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncEnable().

#define F_SEARCH_DIALOG 30901

Funccode.h の 240 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgFind::OnBnClicked().

#define F_SEARCH_NEXT 30902

Funccode.h の 241 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CDlgFind::OnBnClicked()・CEditWnd::ProcSearchBox()・CMacro::Save().

#define F_SEARCH_PREV 30903

Funccode.h の 242 行で定義されています。

参照元 CMacro::AddLParam()・CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand()・CShareData::InitKeyAssign()・CDlgFind::OnBnClicked()・CMacro::Save().

#define F_SELECTALL 30401

Funccode.h の 132 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu().

#define F_SELECTWORD 30400

Funccode.h の 131 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_SEPARATOR 1

Funccode.h の 26 行で定義されています。

#define F_SET_QUOTESTRING 32801

Funccode.h の 422 行で定義されています。

参照元 CMacro::HandleCommand().

#define F_SHOWFUNCKEY 31101

Funccode.h の 292 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncChecked().

#define F_SHOWSTATUSBAR 31102

Funccode.h の 293 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncChecked().

#define F_SHOWTAB 31103

Funccode.h の 294 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CEditWnd::IsFuncChecked().

#define F_SHOWTOOLBAR 31100

Funccode.h の 291 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditWnd::IsFuncChecked().

#define F_SORT_ASC 30282

Funccode.h の 92 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_SORT_DESC 30283

Funccode.h の 93 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_SPACETOTAB 30831

Funccode.h の 223 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_SPACETOTAB()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_SPLIT_H 31311

Funccode.h の 374 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_SPLIT_V 31310

Funccode.h の 373 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_SPLIT_VH 31312

Funccode.h の 375 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_TAB_JOINTNEXT 31386

Funccode.h の 397 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitPopupMenu().

#define F_TAB_JOINTPREV 31387

Funccode.h の 398 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitPopupMenu().

#define F_TAB_MOVELEFT 31384

Funccode.h の 395 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitPopupMenu().

#define F_TAB_MOVERIGHT 31383

Funccode.h の 394 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitPopupMenu().

#define F_TAB_SEPARATE 31385

Funccode.h の 396 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitPopupMenu().

#define F_TABTOSPACE 30830

Funccode.h の 222 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TABTOSPACE()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_TAGJUMP 30940

Funccode.h の 255 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditView::TranslateCommand_grep().

#define F_TAGJUMP_CLOSE 30945

Funccode.h の 260 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define F_TAGJUMP_KEYWORD 30946

Funccode.h の 261 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand().

#define F_TAGJUMP_LIST 30942

Funccode.h の 257 行で定義されています。

参照元 FuncID_To_HelpContextID()・CDlgTagJumpList::OnBnClicked().

#define F_TAGJUMPBACK 30941

Funccode.h の 256 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu().

#define F_TAGS_MAKE 30943

Funccode.h の 258 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CDlgTagsMake::OnBnClicked().

#define F_TILE_H 31332

Funccode.h の 380 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_TILE_V 31331

Funccode.h の 379 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_TOGGLE_KEY_SEARCH 31431

Funccode.h の 403 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_TOHANEI 30816

Funccode.h の 221 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOHANEI()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CEditDoc::IsModificationForbidden().

#define F_TOHANKAKU 30810

Funccode.h の 214 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOHANKAKU()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_TOHANKATA 30817

Funccode.h の 215 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOHANKATA()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CEditDoc::IsModificationForbidden().

#define F_TOLOWER 30800

Funccode.h の 212 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOLOWER()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditDoc::IsModificationForbidden().

#define F_TOPMOST 31334

Funccode.h の 382 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CMacro::HandleCommand().

#define F_TOUPPER 30801

Funccode.h の 213 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOUPPER()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditDoc::IsModificationForbidden().

#define F_TOZENEI 30815

Funccode.h の 220 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOZENEI()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CEditDoc::IsModificationForbidden().

#define F_TOZENKAKUHIRA 30812

Funccode.h の 217 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOZENKAKUHIRA()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_TOZENKAKUKATA 30811

Funccode.h の 216 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CEditView::Command_TOZENKAKUKATA()・CEditView::ConvMemory()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_TRACEOUT 32802

Funccode.h の 423 行で定義されています。

参照元 CMacro::HandleCommand().

#define F_TYPE_COLOR 31116

Funccode.h の 302 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropTypes::OnHelp().

#define F_TYPE_HELPER 31117

Funccode.h の 303 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropTypes::OnHelp().

#define F_TYPE_KEYHELP 31119

Funccode.h の 305 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropTypes::OnHelp().

#define F_TYPE_LIST 31110

Funccode.h の 295 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CDlgTypeList::OnBnClicked().

#define F_TYPE_REGEX_KEYWORD 31118

Funccode.h の 304 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropTypes::OnHelp().

#define F_TYPE_SCREEN 31115

Funccode.h の 301 行で定義されています。

参照元 FuncID_To_HelpContextID()・CPropTypes::OnHelp().

#define F_UNDO 30210

Funccode.h の 70 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CShareData::InitPopupMenu()・CEditDoc::IsModificationForbidden().

#define F_UNINDENT_SPACE 30263

Funccode.h の 88 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden()・CEditView::TranslateCommand_isearch().

#define F_UNINDENT_TAB 30261

Funccode.h の 86 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden()・CEditView::TranslateCommand_isearch().

#define F_UP 30311

Funccode.h の 99 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_UP2 30315

Funccode.h の 103 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_UP2_SEL 30415

Funccode.h の 138 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_UP_SEL 30411

Funccode.h の 134 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_USERMACRO_0 31600

Funccode.h の 340 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・CFuncLookup::Funccode2Name()・FuncID_To_HelpContextID()・CFuncLookup::Pos2FuncCode().

#define F_UUDECODE 30880

Funccode.h の 236 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_WIN_CLOSEALL 31321

Funccode.h の 377 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_WIN_OUTPUT 31370

Funccode.h の 390 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_WINCLOSE 31320

Funccode.h の 376 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CKeyBind::GetDefFuncCode()・CEditWnd::InitMenu()・CShareData::InitPopupMenu()・CTabWnd::OnLButtonUp()・CTabWnd::OnTabMButtonUp().

#define F_WINLIST 31336

Funccode.h の 385 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID().

#define F_WndScrollDown 30380

Funccode.h の 125 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_WndScrollUp 30381

Funccode.h の 126 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_WordCut 30232

Funccode.h の 76 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_WordDelete 30233

Funccode.h の 77 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_WordDeleteToEnd 30231

Funccode.h の 75 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_WordDeleteToStart 30230

Funccode.h の 74 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・CHokanMgr::DoHokan()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign()・CEditDoc::IsModificationForbidden().

#define F_WORDLEFT 30320

Funccode.h の 105 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_WORDLEFT_SEL 30420

Funccode.h の 140 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_WORDRIGHT 30321

Funccode.h の 106 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_WORDRIGHT_SEL 30421

Funccode.h の 141 行で定義されています。

参照元 CSMacroMgr::CanFuncIsKeyMacro()・CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

#define F_WRAPWINDOWWIDTH 31140

Funccode.h の 325 行で定義されています。

参照元 CMenuDrawer::CMenuDrawer()・FuncID_To_HelpContextID()・CShareData::InitKeyAssign().

Sakura-Editorに対してSat Oct 27 02:26:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Funccode.h ソースファイル

Funccode.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, jepro, genta
00009     Copyright (C) 2001, jepro, MIK, Stonee, asa-o, Misaka, hor
00010     Copyright (C) 2002, aroka, YAZAKI, minfu, MIK, ai, genta
00011     Copyright (C) 2003, 鬼, genta, MIK, Moca
00012     Copyright (C) 2004, genta, zenryaku, kazika, Moca, isearch
00013     Copyright (C) 2005, genta, MIK, maru
00014     Copyright (C) 2006, aroka, かろと, fon, ryoji
00015     Copyright (C) 2007, ryoji, genta
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 #ifndef _FUNCCODE_H_
00022 #define _FUNCCODE_H_
00023
00024 /* 未定義用(ダミーとしても使う) */  //Oct. 17, 2000 jepro noted
00025 #define F_DISABLE       0   //未使用
00026 #define F_SEPARATOR     1   //セパレータ
00027
00028 /* ファイル操作系 */
00029 #define F_FILENEW                   30101   //新規作成
00030 #define F_FILEOPEN                  30102   //開く
00031 #define F_FILESAVE                  30103   //上書き保存
00032 #define F_FILESAVEAS_DIALOG         30104   //名前を付けて保存
00033 #define F_FILESAVEAS                30106   //名前を付けて保存
00034 #define F_FILECLOSE                 30105   //閉じて(無題)  //Oct. 17, 2000 jepro 「ファイルを閉じる」というキャプションを変更
00035 #define F_FILECLOSE_OPEN            30107   //閉じて開く
00036 #define F_FILEOPEN_DROPDOWN         30108   //開く(ドロップダウン)
00037 #define F_FILESAVECLOSE             30109   //保存して閉じる Feb. 28, 2004 genta
00038 #define F_FILESAVEALL               30120   //上書き保存 // Jan. 24, 2005 genta
00039 #define F_FILESAVE_QUIET            30121   //上書き保存(限定動作) //   Jan. 24, 2005 genta
00040 //  Dec. 4, 2002 genta
00041 #define F_FILE_REOPEN               30119   //現在と同じ文字コードでで開き直す
00042 #define F_FILE_REOPEN_SJIS          30111   //SJISで開き直す
00043 #define F_FILE_REOPEN_JIS           30112   //JISで開き直す
00044 #define F_FILE_REOPEN_EUC           30113   //EUCで開き直す
00045 #define F_FILE_REOPEN_UNICODE       30114   //Unicodeで開き直す
00046 #define F_FILE_REOPEN_UNICODEBE     30117   //UnicodeBEで開き直す
00047 #define F_FILE_REOPEN_UTF8          30115   //UTF-8で開き直す
00048 #define F_FILE_REOPEN_UTF7          30116   //UTF-7で開き直す
00049 #define F_PRINT                     30150   //印刷
00050 #define F_PRINT_PREVIEW             30151   //印刷プレビュー
00051 #define F_PRINT_PAGESETUP           30152   //印刷ページ設定    //Sept. 14, 2000 jepro 「印刷のページレイアウトの設定」から「印刷ページ設定」に変更
00052 //#define F_PRINT_DIALOG                30151   //印刷ダイアログ
00053 #define F_OPEN_HHPP                 30160   //同名のC/C++ヘッダファイルを開く   //Feb. 9, 2001 jepro「.cまたは.cppと同名の.hを開く」から変更
00054 #define F_OPEN_CCPP                 30161   //同名のC/C++ソースファイルを開く   //Feb. 9, 2001 jepro「.hと同名の.c(なければ.cpp)を開く」から変更
00055 #define F_OPEN_HfromtoC             30162   //同名のC/C++ヘッダ(ソース)を開く   //Feb. 7, 2001 JEPRO 追加
00056 #define F_ACTIVATE_SQLPLUS          30170   /* Oracle SQL*Plusをアクティブ表示 */
00057 #define F_PLSQL_COMPILE_ON_SQLPLUS  30171   /* Oracle SQL*Plusで実行 */ //Sept. 17, 2000 jepro 説明の「コンパイル」を「実行」に統一
00058 #define F_BROWSE                    30180   //ブラウズ
00059 #define F_READONLY                  30185   /* ファイルのプロパティ */
00060 #define F_PROPERTY_FILE             30190   /* ファイルのプロパティ */
00061 #define F_EXITALLEDITORS            30194   /* 編集の全終了 */  // 2007.02.13 ryoji 追加
00062 #define F_EXITALL                   30195   /* サクラエディタの全終了 */    //Dec. 27, 2000 JEPRO 追加
00063 #define F_NOWOPENFILE               30197   //現在開いているファイル
00064 #define F_RECENTFILE                30198   //最近使ったファイル
00065 #define F_RECENTFOLDER              30199   //最近使ったフォルダ
00066
00067 /* 編集系 */
00068 #define F_CHAR              30200   //文字入力
00069 #define F_IME_CHAR          30201   //全角文字入力
00070 #define F_UNDO              30210   //元に戻す(Undo)
00071 #define F_REDO              30211   //やり直し(Redo)
00072 #define F_DELETE            30221   //削除
00073 #define F_DELETE_BACK       30222   //カーソル前を削除
00074 #define F_WordDeleteToStart 30230   //単語の左端まで削除
00075 #define F_WordDeleteToEnd   30231   //単語の右端まで削除
00076 #define F_WordCut           30232   //単語切り取り
00077 #define F_WordDelete        30233   //単語削除
00078 #define F_LineCutToStart    30240   //行頭まで切り取り(改行単位)
00079 #define F_LineCutToEnd      30241   //行末まで切り取り(改行単位)
00080 #define F_LineDeleteToStart 30242   //行頭まで削除(改行単位)
00081 #define F_LineDeleteToEnd   30243   //行末まで削除(改行単位)
00082 #define F_CUT_LINE          30244   //行切り取り(折り返し単位)
00083 #define F_DELETE_LINE       30245   //行削除(折り返し単位)
00084 #define F_DUPLICATELINE     30250   //行の二重化(折り返し単位)
00085 #define F_INDENT_TAB        30260   //TABインデント
00086 #define F_UNINDENT_TAB      30261   //逆TABインデント
00087 #define F_INDENT_SPACE      30262   //SPACEインデント
00088 #define F_UNINDENT_SPACE    30263   //逆SPACEインデント
00089 //#define F_WORDSREFERENCE  30270   //単語リファレンス
00090 #define F_LTRIM             30280   //左(先頭)の空白を削除  2001.12.03 hor
00091 #define F_RTRIM             30281   //右(末尾)の空白を削除  2001.12.03 hor
00092 #define F_SORT_ASC          30282   //選択行の昇順ソート    2001.12.06 hor
00093 #define F_SORT_DESC         30283   //選択行の降順ソート    2001.12.06 hor
00094 #define F_MERGE             30284   //選択行のマージ        2001.12.06 hor
00095 #define F_RECONVERT         30285   //メニューからの再変換対応 2002.04.09  minfu
00096
00097
00098 /* カーソル移動系 */
00099 #define F_UP                30311   //カーソル上移動
00100 #define F_DOWN              30312   //カーソル下移動
00101 #define F_LEFT              30313   //カーソル左移動
00102 #define F_RIGHT             30314   //カーソル右移動
00103 #define F_UP2               30315   //カーソル上移動(２行ごと)
00104 #define F_DOWN2             30316   //カーソル下移動(２行ごと)
00105 #define F_WORDLEFT          30320   //単語の左端に移動
00106 #define F_WORDRIGHT         30321   //単語の右端に移動
00107 //#define F_GOLINETOP       30330   //行頭に移動(改行単位)
00108 //#define F_GOLINEEND       30331   //行末に移動(改行単位)
00109 #define F_GOLINETOP         30332   //行頭に移動(折り返し単位)
00110 #define F_GOLINEEND         30333   //行末に移動(折り返し単位)
00111 //#define F_ROLLDOWN            30340   //スクロールダウン//Oct. 10, 2000 JEPRO 下の半ページアップに名称変更
00112 //#define F_ROLLUP          30341   //スクロールアップ//Oct. 10, 2000 JEPRO 下の半ページダウンに名称変更
00113 #define F_HalfPageUp        30340   //半ページアップ    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00114 #define F_HalfPageDown      30341   //半ページダウン    //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00115 #define F_1PageUp           30342   //１ページアップ    //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00116 #define F_1PageDown         30343   //１ページダウン    //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00117 //#define F_DISPLAYTOP      30344   //画面の先頭に移動(未実装)
00118 //#define F_DISPLAYEND      30345   //画面の最後に移動(未実装)
00119 #define F_GOFILETOP         30350   //ファイルの先頭に移動
00120 #define F_GOFILEEND         30351   //ファイルの最後に移動
00121 #define F_CURLINECENTER     30360   //カーソル行をウィンドウ中央へ
00122 #define F_JUMPHIST_PREV     30370   //移動履歴: 前へ
00123 #define F_JUMPHIST_NEXT     30371   //移動履歴: 次へ
00124 #define F_JUMPHIST_SET      30372   //現在位置を移動履歴に登録
00125 #define F_WndScrollDown     30380   //テキストを１行下へスクロール  // 2001/06/20 asa-o
00126 #define F_WndScrollUp       30381   //テキストを１行上へスクロール  // 2001/06/20 asa-o
00127 #define F_GONEXTPARAGRAPH   30382   //次の段落へ
00128 #define F_GOPREVPARAGRAPH   30383   //前の段落へ
00129
00130 /* 選択系 */
00131 #define F_SELECTWORD        30400   //現在位置の単語選択
00132 #define F_SELECTALL         30401   //すべて選択
00133 #define F_BEGIN_SEL         30410   //範囲選択開始
00134 #define F_UP_SEL            30411   //(範囲選択)カーソル上移動
00135 #define F_DOWN_SEL          30412   //(範囲選択)カーソル下移動
00136 #define F_LEFT_SEL          30413   //(範囲選択)カーソル左移動
00137 #define F_RIGHT_SEL         30414   //(範囲選択)カーソル右移動
00138 #define F_UP2_SEL           30415   //(範囲選択)カーソル上移動(２行ごと)
00139 #define F_DOWN2_SEL         30416   //(範囲選択)カーソル下移動(２行ごと)
00140 #define F_WORDLEFT_SEL      30420   //(範囲選択)単語の左端に移動
00141 #define F_WORDRIGHT_SEL     30421   //(範囲選択)単語の右端に移動
00142 //#define F_GOLINETOP_SEL       30430   //(範囲選択)行頭に移動(改行単位)
00143 //#define F_GOLINEEND_SEL       30431   //(範囲選択)行末に移動(改行単位)
00144 #define F_GOLINETOP_SEL     30432   //(範囲選択)行頭に移動(折り返し単位)
00145 #define F_GOLINEEND_SEL     30433   //(範囲選択)行末に移動(折り返し単位)
00146 //#define F_ROLLDOWN_SEL        30440   //(範囲選択)スクロールダウン//Oct. 10, 2000 JEPRO 下の半ページアップに名称変更
00147 //#define F_ROLLUP_SEL      30441   //(範囲選択)スクロールアップ//Oct. 10, 2000 JEPRO 下の半ページダウンに名称変更
00148 #define F_HalfPageUp_Sel    30440   //(範囲選択)半ページアップ  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00149 #define F_HalfPageDown_Sel  30441   //(範囲選択)半ページダウン  //Oct. 6, 2000 JEPRO 名称をPC-AT互換機系に変更(ROLL→PAGE) //Oct. 10, 2000 JEPRO 名称変更
00150 #define F_1PageUp_Sel       30442   //(範囲選択)１ページアップ  //Oct. 10, 2000 JEPRO 従来のページアップを半ページアップと名称変更し１ページアップを追加
00151 #define F_1PageDown_Sel     30443   //(範囲選択)１ページダウン  //Oct. 10, 2000 JEPRO 従来のページダウンを半ページダウンと名称変更し１ページダウンを追加
00152 //#define F_DISPLAYTOP_SEL  30444   //(範囲選択)画面の先頭に移動(未実装)
00153 //#define F_DISPLAYEND_SEL  30445   //(範囲選択)画面の最後に移動(未実装)
00154 #define F_GOFILETOP_SEL     30450   //(範囲選択)ファイルの先頭に移動
00155 #define F_GOFILEEND_SEL     30451   //(範囲選択)ファイルの最後に移動
00156 #define F_GONEXTPARAGRAPH_SEL   30482   //(範囲選択)次の段落へ
00157 #define F_GOPREVPARAGRAPH_SEL   30483   //(範囲選択)前の段落へ
00158
00159
00160 /* 矩形選択系 */
00161 //#define F_BOXSELALL       30500   //矩形ですべて選択
00162 #define F_BEGIN_BOX         30510   //矩形範囲選択開始
00163 //Oct. 17, 2000 JEPRO 以下に矩形選択のコマンド名のみ準備しておいた
00164 //#define F_UP_BOX          30511   //(矩形選択)カーソル上移動
00165 //#define F_DOWN_BOX            30512   //(矩形選択)カーソル下移動
00166 //#define F_LEFT_BOX            30513   //(矩形選択)カーソル左移動
00167 //#define F_RIGHT_BOX           30514   //(矩形選択)カーソル右移動
00168 //#define F_UP2_BOX         30515   //(矩形選択)カーソル上移動(２行ごと)
00169 //#define F_DOWN2_BOX           30516   //(矩形選択)カーソル下移動(２行ごと)
00170 //#define F_WORDLEFT_BOX        30520   //(矩形選択)単語の左端に移動
00171 //#define F_WORDRIGHT_BOX       30521   //(矩形選択)単語の右端に移動
00174 //#define F_GOLINETOP_BOX       30532   //(矩形選択)行頭に移動(折り返し単位)
00175 //#define F_GOLINEEND_BOX       30533   //(矩形選択)行末に移動(折り返し単位)
00176 //#define F_HalfPageUp_Box  30540   //(矩形選択)半ページアップ
00177 //#define F_HalfPageDown_Box    30541   //(矩形選択)半ページダウン
00178 //#define F_1PageUp_Box     30542   //(矩形選択)１ページアップ
00179 //#define F_1PageDown_Box       30543   //(矩形選択)１ページダウン
00182 //#define F_GOFILETOP_BOX       30550   //(矩形選択)ファイルの先頭に移動
00183 //#define F_GOFILEEND_BOX       30551   //(矩形選択)ファイルの最後に移動
00184
00185
00186 /* クリップボード系 */
00187 #define F_CUT                       30601   //切り取り(選択範囲をクリップボードにコピーして削除)
00188 #define F_COPY                      30602   //コピー(選択範囲をクリップボードにコピー)
00189 #define F_COPY_ADDCRLF              30608   //折り返し位置に改行をつけてコピー
00190 #define F_COPY_CRLF                 30603   //CRLF改行でコピー
00191 #define F_PASTE                     30604   //貼り付け(クリップボードから貼り付け)
00192 #define F_PASTEBOX                  30605   //矩形貼り付け(クリップボードから矩形貼り付け)
00193 #define F_INSTEXT                   30606   //テキストを貼り付け
00194 #define F_ADDTAIL                   30607   //最後にテキストを追加
00195 #define F_COPYLINES                 30610   //選択範囲内全行コピー
00196 #define F_COPYLINESASPASSAGE        30611   //選択範囲内全行引用符付きコピー
00197 #define F_COPYLINESWITHLINENUMBER   30612   //選択範囲内全行行番号付きコピー
00198 #define F_COPYPATH                  30620   //このファイルのパス名をクリップボードにコピー
00199 #define F_COPYTAG                   30621   //このファイルのパス名とカーソル位置をコピー
00200 #define F_COPYFNAME                 30622   //このファイル名をクリップボードにコピー // 2002/2/3 aroka
00201 //Sept. 16, 2000 JEPRO ショートカットキーがうまく働かないので次行は殺してある   //Dec. 25, 2000 復活
00202 #define F_CREATEKEYBINDLIST         30630   //キー割り当て一覧をコピー //Sept. 15, 2000 JEPRO 上の行はIDM_TESTのままではうまくいかないのでFに変えて登録
00203
00204
00205 /* 挿入系 */
00206 #define F_INS_DATE              30790   //日付挿入
00207 #define F_INS_TIME              30791   //時刻挿入
00208 #define F_CTRL_CODE_DIALOG      30792   //コントロールコードの入力(ダイアログ)  //@@@ 2002.06.02 MIK
00209
00210
00211 /* 変換系 */
00212 #define F_TOLOWER               30800   //小文字
00213 #define F_TOUPPER               30801   //大文字
00214 #define F_TOHANKAKU             30810   /* 全角→半角 */
00215 #define F_TOHANKATA             30817   /* 全角カタカナ→半角カタカナ */    //Aug. 29, 2002 ai
00216 #define F_TOZENKAKUKATA         30811   /* 半角＋全ひら→全角・カタカナ */  //Sept. 17, 2000 jepro 説明を「半角→全角カタカナ」から変更
00217 #define F_TOZENKAKUHIRA         30812   /* 半角＋全カタ→全角・ひらがな */  //Sept. 17, 2000 jepro 説明を「半角→全角ひらがな」から変更
00218 #define F_HANKATATOZENKAKUKATA  30813   /* 半角カタカナ→全角カタカナ */
00219 #define F_HANKATATOZENKAKUHIRA  30814   /* 半角カタカナ→全角ひらがな */
00220 #define F_TOZENEI               30815   /* 半角英数→全角英数 */            //July. 30, 2001 Misaka
00221 #define F_TOHANEI               30816   /* 全角英数→半角英数 */            //@@@ 2002.2.11 YAZAKI
00222 #define F_TABTOSPACE            30830   /* TAB→空白 */
00223 #define F_SPACETOTAB            30831   /* 空白→TAB *///#### Stonee, 2001/05/27
00224 #define F_CODECNV_AUTO2SJIS     30850   /* 自動判別→SJISコード変換 */
00225 #define F_CODECNV_EMAIL         30851   //E-Mail(JIS→SJIS)コード変換
00226 #define F_CODECNV_EUC2SJIS      30852   //EUC→SJISコード変換
00227 #define F_CODECNV_UNICODE2SJIS  30853   //Unicode→SJISコード変換
00228 #define F_CODECNV_UNICODEBE2SJIS 30856  /*Unicode→SJISコード変換*/
00229 #define F_CODECNV_UTF82SJIS     30854   /* UTF-8→SJISコード変換 */
00230 #define F_CODECNV_UTF72SJIS     30855   /* UTF-7→SJISコード変換 */
00231 #define F_CODECNV_SJIS2JIS      30860   /* SJIS→JISコード変換 */
00232 #define F_CODECNV_SJIS2EUC      30861   /* SJIS→EUCコード変換 */
00233 #define F_CODECNV_SJIS2UTF8     30862   /* SJIS→UTF-8コード変換 */
00234 #define F_CODECNV_SJIS2UTF7     30863   /* SJIS→UTF-7コード変換 */
00235 #define F_BASE64DECODE          30870   //Base64デコードして保存
00236 #define F_UUDECODE              30880   //uudecodeして保存  //Oct. 17, 2000 jepro 説明を「選択部分をUUENCODEデコード」から変更
00237
00238
00239 /* 検索系 */
00240 #define F_SEARCH_DIALOG     30901   //検索(単語検索ダイアログ)
00241 #define F_SEARCH_NEXT       30902   //次を検索
00242 #define F_SEARCH_PREV       30903   //前を検索
00243 #define F_REPLACE_DIALOG    30904   //置換(置換ダイアログ)
00244 #define F_REPLACE           30906   //置換(実行)
00245 #define F_REPLACE_ALL       30907   //すべて置換(実行)
00246 #define F_SEARCH_CLEARMARK  30905   //検索マークのクリア
00247 #define F_JUMP_SRCHSTARTPOS 30909   //検索開始位置へ戻る    // 02/06/26 ai
00248 #define F_SEARCH_BOX        30908   //検索(ボックス)    //@@@ 2002.06.15 MIK
00249 #define F_GREP_DIALOG       30910   //Grep
00250 #define F_GREP              30911   //Grep
00251 #define F_JUMP_DIALOG       30920   //指定行へジャンプ
00252 #define F_JUMP              30921   //指定行へジャンプ
00253 #define F_OUTLINE           30930   //アウトライン解析
00254 #define F_OUTLINE_TOGGLE    30931   //アウトライン解析(toggle) // 20060201 aroka
00255 #define F_TAGJUMP           30940   //タグジャンプ機能
00256 #define F_TAGJUMPBACK       30941   //タグジャンプバック機能
00257 #define F_TAGJUMP_LIST      30942   //タグジャンプリスト    //@@@ 2003.04.13 MIK
00258 #define F_TAGS_MAKE         30943   //タグファイルの作成    //@@@ 2003.04.13 MIK
00259 #define F_DIRECT_TAGJUMP    30944   //ダイレクトタグジャンプ    //@@@ 2003.04.15 MIK
00260 #define F_TAGJUMP_CLOSE     30945   //閉じてタグジャンプ(元ウィンドウclose) // Apr. 03. 2003 genta
00261 #define F_TAGJUMP_KEYWORD   30946   //キーワードを指定してダイレクトタグジャンプ    //@@@ 2005.03.31 MIK
00262 #define F_COMPARE           30950   //ファイル内容比較
00263 #define F_BRACKETPAIR       30960   //対括弧の検索
00264 #define F_BOOKMARK_SET      30970   //ブックマーク設定・解除
00265 #define F_BOOKMARK_NEXT     30971   //次のブックマークへ
00266 #define F_BOOKMARK_PREV     30972   //前のブックマークへ
00267 #define F_BOOKMARK_RESET    30973   //ブックマークの全解除
00268 #define F_BOOKMARK_VIEW     30974   //ブックマークの一覧
00269 #define F_BOOKMARK_PATTERN  30975   //パターンに一致する行をマーク
00270 #define F_DIFF_DIALOG       30976   //DIFF差分表示(ダイアログ)  //@@@ 2002.05.25 MIK
00271 #define F_DIFF              30977   //DIFF差分表示  //@@@ 2002.05.25 MIK
00272 #define F_DIFF_NEXT         30978   //次の差分へ    //@@@ 2002.05.25 MIK
00273 #define F_DIFF_PREV         30979   //前の差分へ    //@@@ 2002.05.25 MIK
00274 #define F_DIFF_RESET        30980   //差分の全解除  //@@@ 2002.05.25 MIK
00275 #define F_ISEARCH_NEXT      30981   //前方インクリメンタルサーチ //2004.10.13 isearch
00276 #define F_ISEARCH_PREV      30982   //後方インクリメンタルサーチ //2004.10.13 isearch
00277 #define F_ISEARCH_REGEXP_NEXT   30983  //前方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00278 #define F_ISEARCH_REGEXP_PREV   30984  //後方正規表現インクリメンタルサーチ  //2004.10.13 isearch
00279 #define F_ISEARCH_MIGEMO_NEXT   30985  //前方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00280 #define F_ISEARCH_MIGEMO_PREV   30986  //後方MIGEMOインクリメンタルサーチ    //2004.10.13 isearch
00281
00282
00283 /* モード切り替え系 */
00284 #define F_CHGMOD_INS        31001   //挿入／上書きモード切り替え
00285 #define F_CHGMOD_EOL_CRLF   31081   //入力改行コード指定(CRLF)  // 2003.06.08 Moca
00286 #define F_CHGMOD_EOL_LF     31082   //入力改行コード指定(LF)    // 2003.06.08 Moca
00287 #define F_CHGMOD_EOL_CR     31083   //入力改行コード指定(CR)    // 2003.06.08 Moca
00288 #define F_CANCEL_MODE       31099   //各種モードの取り消し
00289
00290 /* 設定系 */
00291 #define F_SHOWTOOLBAR       31100   /* ツールバーの表示 */
00292 #define F_SHOWFUNCKEY       31101   /* ファンクションキーの表示 */
00293 #define F_SHOWSTATUSBAR     31102   /* ステータスバーの表示 */
00294 #define F_SHOWTAB           31103   /* タブの表示 */    //@@@ 2003.06.10 MIK
00295 #define F_TYPE_LIST         31110   /* タイプ別設定一覧 */
00296 #define F_OPTION_TYPE       31111   /* タイプ別設定 */
00297 #define F_OPTION            31112   /* 共通設定 */
00298 #define F_FAVORITE          31113   //履歴の管理    //@@@ 2003.04.08 MIK
00299
00300 //From here 設定ダイアログ用の機能番号を用意  Stonee, 2001/05/18
00301 #define F_TYPE_SCREEN       31115   /* タイプ別設定『スクリーン』 */
00302 #define F_TYPE_COLOR        31116   /* タイプ別設定『カラー』 */
00303 #define F_TYPE_HELPER       31117   /* タイプ別設定『支援』 */  //Jul. 03, 2001 JEPRO 追加
00304 #define F_TYPE_REGEX_KEYWORD    31118   /* タイプ別設定『正規表現キーワード』 */    //@@@ 2001.11.17 add MIK
00305 #define F_TYPE_KEYHELP      31119   /* タイプ別設定『キーワードヘルプ』 */  // 2006.10.06 ryoji 追加
00306 #define F_OPTION_GENERAL    32000   /* 共通設定『全般』 */
00307 #define F_OPTION_WINDOW     32001   /* 共通設定『ウィンドウ』 */
00308 #define F_OPTION_EDIT       32002   /* 共通設定『編集』 */
00309 #define F_OPTION_FILE       32003   /* 共通設定『ファイル』 */
00310 #define F_OPTION_BACKUP     32004   /* 共通設定『バックアップ』 */
00311 #define F_OPTION_FORMAT     32005   /* 共通設定『書式』 */
00312 //#define F_OPTION_URL      32006   /* 共通設定『クリッカブルURL』 */
00313 #define F_OPTION_GREP       32007   /* 共通設定『Grep』 */
00314 #define F_OPTION_KEYBIND    32008   /* 共通設定『キー割り当て』 */
00315 #define F_OPTION_CUSTMENU   32009   /* 共通設定『カスタムメニュー』 */
00316 #define F_OPTION_TOOLBAR    32010   /* 共通設定『ツールバー』 */
00317 #define F_OPTION_KEYWORD    32011   /* 共通設定『強調キーワード』 */
00318 #define F_OPTION_HELPER     32012   /* 共通設定『支援』 */
00319 //To here  Stonee, 2001/05/18
00320 #define F_OPTION_MACRO      32013   /* 共通設定『マクロ』 */
00321 #define F_OPTION_FNAME      32014   /* 共通設定『ファイル名表示』 */
00322 #define F_OPTION_TAB        32015   /* 共通設定『タブ』*/ // Feb. 11, 2007 genta 追加
00323
00324 #define F_FONT              31120   /* フォント設定 */
00325 #define F_WRAPWINDOWWIDTH   31140   //現在のウィンドウ幅で折り返し */   //Oct. 7, 2000 JEPRO WRAPWINDIWWIDTH を WRAPWINDOWWIDTH に変更
00326
00327
00328 /* マクロ系 */
00329 #define F_RECKEYMACRO       31250   /* キーマクロの記録開始／終了 */
00330 #define F_SAVEKEYMACRO      31251   /* キーマクロの保存 */
00331 #define F_LOADKEYMACRO      31252   /* キーマクロの読み込み */
00332 #define F_EXECKEYMACRO      31253   /* キーマクロの実行 */
00333 //  From Here Sept. 20, 2000 JEPRO 名称CMMANDをCOMMANDに変更
00334 //  #define F_EXECCMMAND        31270   /* 外部コマンド実行 */
00335 #define F_EXECCOMMAND_DIALOG    31270   /* 外部コマンド実行 */
00336 #define F_EXECCOMMAND       31271   /* 外部コマンド実行 */
00337 //  To Here Sept. 20, 2000
00338
00339 //  Jul. 4, 2000 genta
00340 #define F_USERMACRO_0       31600   /* 登録マクロ開始 */
00341
00342
00343 /* カスタムメニュー */
00344 #define F_MENU_RBUTTON      31580   /* 右クリックメニュー */
00345 #define F_CUSTMENU_1        31501   /* カスタムメニュー1 */
00346 #define F_CUSTMENU_2        31502   /* カスタムメニュー2 */
00347 #define F_CUSTMENU_3        31503   /* カスタムメニュー3 */
00348 #define F_CUSTMENU_4        31504   /* カスタムメニュー4 */
00349 #define F_CUSTMENU_5        31505   /* カスタムメニュー5 */
00350 #define F_CUSTMENU_6        31506   /* カスタムメニュー6 */
00351 #define F_CUSTMENU_7        31507   /* カスタムメニュー7 */
00352 #define F_CUSTMENU_8        31508   /* カスタムメニュー8 */
00353 #define F_CUSTMENU_9        31509   /* カスタムメニュー9 */
00354 #define F_CUSTMENU_10       31510   /* カスタムメニュー10 */
00355 #define F_CUSTMENU_11       31511   /* カスタムメニュー11 */
00356 #define F_CUSTMENU_12       31512   /* カスタムメニュー12 */
00357 #define F_CUSTMENU_13       31513   /* カスタムメニュー13 */
00358 #define F_CUSTMENU_14       31514   /* カスタムメニュー14 */
00359 #define F_CUSTMENU_15       31515   /* カスタムメニュー15 */
00360 #define F_CUSTMENU_16       31516   /* カスタムメニュー16 */
00361 #define F_CUSTMENU_17       31517   /* カスタムメニュー17 */
00362 #define F_CUSTMENU_18       31518   /* カスタムメニュー18 */
00363 #define F_CUSTMENU_19       31519   /* カスタムメニュー19 */
00364 #define F_CUSTMENU_20       31520   /* カスタムメニュー20 */
00365 #define F_CUSTMENU_21       31521   /* カスタムメニュー21 */
00366 #define F_CUSTMENU_22       31522   /* カスタムメニュー22 */
00367 #define F_CUSTMENU_23       31523   /* カスタムメニュー23 */
00368 #define F_CUSTMENU_24       31524   /* カスタムメニュー24 */
00369
00370 #define F_CUSTMENU_BASE     31500   /* カスタムメニュー基準番号 */
00371
00372 /* ウィンドウ系 */
00373 #define F_SPLIT_V           31310   //上下に分割    //Sept. 17, 2000 jepro 説明の「縦」を「上下に」に変更
00374 #define F_SPLIT_H           31311   //左右に分割    //Sept. 17, 2000 jepro 説明の「横」を「左右に」に変更
00375 #define F_SPLIT_VH          31312   //縦横に分割    //Sept. 17, 2000 jepro 説明に「に」を追加
00376 #define F_WINCLOSE          31320   //ウィンドウを閉じる
00377 #define F_WIN_CLOSEALL      31321   //すべてのウィンドウを閉じる    //Oct. 17, 2000 JEPRO 名前を変更(F_FILECLOSEALL→F_WIN_CLOSEALL)
00378 #define F_CASCADE           31330   //重ねて表示
00379 #define F_TILE_V            31331   //上下に並べて表示
00380 #define F_TILE_H            31332   //左右に並べて表示
00381 #define F_BIND_WINDOW       31333   //結合して表示  2004.07.14 kazika
00382 #define F_TOPMOST           31334   //常に手前に表示 // 2004-09-21 Moca
00383 #define F_NEXTWINDOW        31340   //次のウィンドウ
00384 #define F_PREVWINDOW        31341   //前のウィンドウ
00385 #define F_WINLIST           31336   //開いているウィンドウ一覧ポップアップ表示  // 2006.03.23 fon
00386 #define F_MAXIMIZE_V        31350   //縦方向に最大化
00387 #define F_MINIMIZE_ALL      31351   //すべて最小化      //Sept. 17, 2000 jepro 説明の「全て」を「すべて」に統一
00388 #define F_MAXIMIZE_H        31352   //横方向に最大化    //2001.02.10 by MIK
00389 #define F_REDRAW            31360   //再描画
00390 #define F_WIN_OUTPUT        31370   //アウトプットウィンドウ表示
00391 #define F_GROUPCLOSE        31380   /* グループを閉じる */  // 2007.06.20 ryoji
00392 #define F_NEXTGROUP         31381   /* 次のグループ */  // 2007.06.20 ryoji
00393 #define F_PREVGROUP         31382   /* 前のグループ */  // 2007.06.20 ryoji
00394 #define F_TAB_MOVERIGHT     31383   /* タブを右に移動 */    // 2007.06.20 ryoji
00395 #define F_TAB_MOVELEFT      31384   /* タブを左に移動 */    // 2007.06.20 ryoji
00396 #define F_TAB_SEPARATE      31385   /* 新規グループ */  // 2007.06.20 ryoji
00397 #define F_TAB_JOINTNEXT     31386   /* 次のグループに移動 */    // 2007.06.20 ryoji
00398 #define F_TAB_JOINTPREV     31387   /* 前のグループに移動 */    // 2007.06.20 ryoji
00399
00400
00401 /* 支援 */
00402 #define F_HOKAN             31430       /* 入力補完 */
00403 #define F_TOGGLE_KEY_SEARCH 31431       /* キャレット位置の単語を辞書検索する機能ON-OFF */  // 2006.03.24 fon
00404 //Sept. 16, 2000→Nov. 25, 2000 JEPRO //ショートカットキーがうまく働かないので殺してあった下の2行を修正・復活
00405 #define F_HELP_CONTENTS     31440       /* ヘルプ目次 */            //Nov. 25, 2000 JEPRO 追加
00406 #define F_HELP_SEARCH       31441       /* ヘルプキーワード検索 */  //Nov. 25, 2000 JEPRO 追加
00407 #define F_MENU_ALLFUNC      31445       /* コマンド一覧 */
00408 #define F_EXTHELP1          31450       /* 外部ヘルプ１ */
00409 #define F_EXTHTMLHELP       31451       /* 外部HTMLヘルプ */
00410 #define F_ABOUT             31455       /* バージョン情報 */    //Dec. 24, 2000 JEPRO 追加
00411
00412
00413 /* その他 */
00414 //#define F_SENDMAIL        31570       /* メール送信 */    //Oct. 17, 2000 JEPRO メール機能は死んでいるのでコメントアウトにした
00415
00416 //  Windows 95の制約により，WM_COMMANDで使う機能番号として32768以上の値を用いることができません．
00417 //  メニュー等で使われないマクロ専用のコマンドにはそれ以上の値を割り当てましょう．
00418
00419 //  メニューからは直接呼ばれないが、他のIDから間接的に呼ばれる機能
00420 #define F_MENU_NOT_USED_FIRST 32768
00421 #define F_CHGMOD_EOL          32800     // 入力改行コード指定 2003.06.23 Moca
00422 #define F_SET_QUOTESTRING     32801     // 共通設定: 引用符の設定   2005.01.29 genta
00423 #define F_TRACEOUT            32802     // マクロ用アウトプットウインドウに出力 2006.04.26 maru
00424 #define F_PUTFILE             32803     // 作業中ファイルの一時出力 2006.12.10 maru
00425 #define F_INSFILE             32804     // キャレット位置にファイル挿入 2006.12.10 maru
00426
00427 #define F_FUNCTION_FIRST  40000 // 2003-02-21 鬼 これ以上だと関数
00428
00429 #define F_GETFILENAME     40001 /* 編集中のファイル名を取得する */
00430 #define F_GETSELECTED     40002 // Oct. 19, 2002 genta 選択範囲の取得
00431 #define F_EXPANDPARAMETER 40003 // 2003-02-21 鬼 コマンドラインパラメータ展開
00432 #define F_GETLINESTR      40004 // 指定行論理データを取得する 2003.06.25 Moca
00433 #define F_GETLINECOUNT    40005 // 論理行数を取得する 2003.06.25 Moca
00434 #define F_CHGTABWIDTH     40006 // タブサイズを取得、設定する 2004.03.16 zenryaku
00435 #define F_ISTEXTSELECTED  40007 // テキストが選択されているか 2005.7.30 maru
00436 #define F_GETSELLINEFROM  40008 // 選択開始行の取得 2005.7.30 maru
00437 #define F_GETSELCOLMFROM  40009 // 選択開始桁の取得 2005.7.30 maru
00438 #define F_GETSELLINETO    40010 // 選択終了行の取得 2005.7.30 maru
00439 #define F_GETSELCOLMTO    40011 // 選択終了桁の取得 2005.7.30 maru
00440 #define F_ISINSMODE       40012 // 挿入／上書きモードの取得 2005.7.30 maru
00441 #define F_GETCHARCODE     40013 // 文字コード取得 2005.07.31 maru
00442 #define F_GETLINECODE     40014 // 改行コード取得 2005.08.05 maru
00443 #define F_ISPOSSIBLEUNDO  40015 // Undo可能か調べる 2005.08.05 maru
00444 #define F_ISPOSSIBLEREDO  40016 // Redo可能か調べる 2005.08.05 maru
00445
00446 //  2005.01.10 genta ISearch用補助コード
00447 #define F_ISEARCH_ADD_CHAR  0x10001 //  Incremental Searchへ1文字へ追加
00448 #define F_ISEARCH_ADD_STR   0x10002 //  Incremental Searchへ文字列へ追加
00449 #define F_ISEARCH_DEL_BACK  0x10003 //  Incremental Searchの末尾から1文字削除
00450
00451 /* 機能一覧に関するデータ宣言 */
00452 namespace nsFuncCode{
00453     extern const char*  ppszFuncKind[];
00454     extern const int    nFuncKindNum;
00455     extern const int    pnFuncListNumArr[];
00456     extern const int*   ppnFuncListArr[];
00457     extern const int    nFincListNumArrNum;
00458 };
00460 #endif /* _FUNCCODE_H_ */
00461
00462
00463 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: global.cpp

global.cpp

文字列共通定義 [詳細]

#include "stdafx.h"
#include "global.h"

global.cppのインクルード依存関係図

ソースコードを見る。

変数

const char * | GSTR_APPNAME = "sakura"
const char * | gm_pszCodeNameArr_1 []
const char * | gm_pszCodeNameArr_2 []
const char * | gm_pszCodeNameArr_3 []
const int | gm_nCodeComboValueArr []
const char *const | gm_pszCodeComboNameArr []
const int | gm_nCodeComboNameArrNum = sizeof( gm_nCodeComboValueArr ) / sizeof( gm_nCodeComboValueArr[0] )
const COLORREF | SELECTEDAREA_RGB = RGB( 255, 255, 255 )
const int | SELECTEDAREA_ROP2 = R2_XORPEN
const enumEOLType | gm_pnEolTypeArr [EOL_TYPE_NUM]
const unsigned char | gm_keyword_char [256]
const ColorAttributeData | g_ColorAttributeArr []

説明

文字列共通定義

作者:
Norio Nakatani

global.cpp で定義されています。

変数

const ColorAttributeData g_ColorAttributeArr[]

iniの色設定を番号でなく文字列で書き出す。(added by Stonee, 2001/01/12, 2001/01/15) 配列の順番は共有メモリ中のデータの順番と一致している。

覚え書き:
数値による内部的対応はglobal.hで行っているので参照のこと。(Mar. 7, 2001 jepro) CShareDataからglobalに移動

global.cpp の 128 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::DrawColorListItem()・GetColorIndexByName()・GetColorNameByIndex()・CShareData::IO_ColorSet()・CDlgSameColor::OnSelChangeListColors()・CPropTypes::SetData_Regex().

const unsigned char gm_keyword_char[256]

初期値:

 {

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
    2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 0, 1,
    0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

}
キーワードキャラクタ

global.cpp の 96 行で定義されています。

const int gm_nCodeComboNameArrNum = sizeof( gm_nCodeComboValueArr ) / sizeof( gm_nCodeComboValueArr[0] )

global.cpp の 79 行で定義されています。

参照元 OFNHookProc()・CDlgGrep::OnInitDialog().

const int gm_nCodeComboValueArr[]

初期値:

 {
    CODE_AUTODETECT,
    CODE_SJIS,
    CODE_JIS,
    CODE_EUC,
    CODE_UNICODE,
    CODE_UNICODEBE,
    CODE_UTF8,
    CODE_UTF7
}

global.cpp の 58 行で定義されています。

参照元 OFNHookProc()・CDlgGrep::OnInitDialog().

const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM]

初期値:

 {
    EOL_NONE            ,
    EOL_CRLF            ,
    EOL_LFCR            ,
    EOL_LF              ,
    EOL_CR
}
行終端子の配列

global.cpp の 87 行で定義されています。

参照元 CEOL::GetEOLType()・CEOL::GetEOLTypeUni()・CEOL::GetEOLTypeUniBE().

const char* const gm_pszCodeComboNameArr[]

初期値:

 {
    "自動選択",
    "SJIS",
    "JIS",
    "EUC",
    "Unicode",
    "UnicodeBE",
    "UTF-8",
    "UTF-7"
}

global.cpp の 68 行で定義されています。

参照元 OFNHookProc()・CDlgGrep::OnInitDialog().

const char* gm_pszCodeNameArr_1[]

初期値:

 {
    "SJIS",
    "JIS",
    "EUC",
    "Unicode",
    "UTF-8",
    "UTF-7",
    "UniBE"
}

global.cpp の 28 行で定義されています。

参照元 CShareData::IsPathOpened()・CDlgProperty::SetData().

const char* gm_pszCodeNameArr_2[]

初期値:

 {
    "SJIS",
    "JIS",
    "EUC",
    "Uni",
    "UTF-8",
    "UTF-7",
    "UniBE"
}

global.cpp の 38 行で定義されています。

参照元 CEditView::DrawCaretPosInfo().

const char* gm_pszCodeNameArr_3[]

初期値:

 {
    "  [SJIS]",
    "  [JIS]",
    "  [EUC]",
    "  [Unicode]",
    "  [UTF-8]",
    "  [UTF-7]",
    "  [UniBE]"
}

global.cpp の 48 行で定義されています。

参照元 CMRU::CreateMenu()・CEditView::DoGrepFile()・CDlgDiff::SetData()・CDlgCompare::SetData()・CEditWnd::WinListMenu().

const char* GSTR_APPNAME = "sakura"

global.cpp の 24 行で定義されています。

参照元 CMemory::AllocBuffer()・COpeBlk::AppendOpe()・CEditApp::CEditApp()・CEditApp::CloseAllEditor()・CEditView::Command_ACTIVATE_SQLPLUS()・CEditView::Command_COMPARE()・CEditView::Command_Diff()・CEditView::Command_EXECKEYMACRO()・CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP()・CEditView::Command_FILE_REOPEN()・CEditView::Command_GREP()・CEditView::Command_HOKAN()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::Command_PUTFILE()・CEditView::Command_RECKEYMACRO()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_SAVEKEYMACRO()・CEditView::Command_TAGJUMPBACK()・CSplitterWnd::Create()・CEditWnd::Create()・CEditApp::Create()・CEditWnd::CreateToolBar()・CEditApp::CreateTrayIcon()・CPropTypes::DispatchEvent_KeyHelp()・CPropCommon::DispatchEvent_p1()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropTypes::DispatchEvent_Regex()・CDlgOpenFile::DlgOpenFail()・CEditDoc::DoFileLock()・CEditDoc::FileRead()・CEditDoc::FileSave()・CEditDoc::FileSaveAs_Dialog()・CDocLineMgr::GetAllData()・CDlgGrep::GetData()・CNormalProcess::GetInitializeMutex()・CPropTypes::Import_KeyHelp()・CProcess::Initialize()・CControlProcess::Initialize()・InitRegexp()・CShareData::IsPathOpened()・CProcessFactory::IsValidVersion()・Listbox_ADDDATA()・Listbox_INSERTDATA()・CEditView::MakeDiffTmpFile()・CMenuDrawer::MyAppendMenu()・CDlgReplace::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CEditDoc::OnFileClose()・CPrintPreview::OnPrint()・CEditDoc::OpenFile()・CEditApp::OpenNewEditor()・CEditApp::OpenNewEditor2()・CPropCommon::p7_Clean_List_KeyWord()・CEditWnd::PrintPreviewModeONOFF()・PropSheetWndProc()・CDropTarget::Register_DropTarget()・CPropCommon::SetListViewItem_FILENAME()・CProcessFactory::StartControlProcess()・CEditApp::TerminateApplication()・CFuncKeyWnd::Timer_ONOFF()・CEditWnd::Timer_ONOFF()・CEditView::ViewDiffInfo()・CProcessFactory::WaitForInitializedControlProcess()・CDocLineMgr::WriteFile().

const COLORREF SELECTEDAREA_RGB = RGB( 255, 255, 255 )

選択領域描画用パラメータ

global.cpp の 83 行で定義されています。

参照元 CEditView::DispTextSelected()・CEditView::DrawSelectArea().

const int SELECTEDAREA_ROP2 = R2_XORPEN

global.cpp の 84 行で定義されています。

参照元 CEditView::DispTextSelected()・CEditView::DrawSelectArea().

Sakura-Editorに対してSat Oct 27 02:26:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: global.cpp ソースファイル

global.cpp

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2001, MIK, Stonee, jepro
00009     Copyright (C) 2002, KK
00010     Copyright (C) 2003, MIK
00011     Copyright (C) 2005, Moca
00012
00013     This source code is designed for sakura editor.
00014     Please contact the copyright holder to use this code for other purpose.
00015 */
00016
00017 #include "stdafx.h"
00018 #include "global.h"
00019
00020
00021 #ifdef _DEBUG
00022     const char* GSTR_APPNAME = "sakura(デバッグ版)";
00023 #else
00024     const char* GSTR_APPNAME = "sakura";
00025 #endif
00026
00027
00028 const char* gm_pszCodeNameArr_1[] = {
00029     "SJIS",             /* SJIS */
00030     "JIS",              /* JIS */
00031     "EUC",              /* EUC */
00032     "Unicode",          /* Unicode */
00033     "UTF-8",            /* UTF-8 */
00034     "UTF-7",            /* UTF-7 */
00035     "UniBE"             /* Unicode BigEndian */
00036 };
00037
00038 const char* gm_pszCodeNameArr_2[] = {
00039     "SJIS",             /* SJIS */
00040     "JIS",              /* JIS */
00041     "EUC",              /* EUC */
00042     "Uni",              /* Unicode */
00043     "UTF-8",            /* UTF-8 */
00044     "UTF-7",            /* UTF-7 */
00045     "UniBE"             /* Unicode BigEndian */
00046 };
00047
00048 const char* gm_pszCodeNameArr_3[] = {
00049     "  [SJIS]",         /* SJIS */
00050     "  [JIS]",          /* JIS */
00051     "  [EUC]",          /* EUC */
00052     "  [Unicode]",      /* Unicode */
00053     "  [UTF-8]",        /* UTF-8 */
00054     "  [UTF-7]",        /* UTF-7 */
00055     "  [UniBE]"         /* Unicode BigEndian */
00056 };
00057
00058 const int gm_nCodeComboValueArr[] = {
00059     CODE_AUTODETECT,    /* 文字コード自動判別 */
00060     CODE_SJIS,
00061     CODE_JIS,
00062     CODE_EUC,
00063     CODE_UNICODE,
00064     CODE_UNICODEBE,
00065     CODE_UTF8,
00066     CODE_UTF7
00067 };
00068 const char* const   gm_pszCodeComboNameArr[] = {
00069     "自動選択",
00070     "SJIS",
00071     "JIS",
00072     "EUC",
00073     "Unicode",
00074     "UnicodeBE",
00075     "UTF-8",
00076     "UTF-7"
00077 };
00078
00079 const int gm_nCodeComboNameArrNum = sizeof( gm_nCodeComboValueArr ) / sizeof( gm_nCodeComboValueArr[0] );
00080
00081
00083 const COLORREF  SELECTEDAREA_RGB = RGB( 255, 255, 255 );
00084 const int       SELECTEDAREA_ROP2 = R2_XORPEN;
00085
00087 const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM] = {
00088     EOL_NONE            ,   // == 0
00089     EOL_CRLF            ,   // == 2
00090     EOL_LFCR            ,   // == 2
00091     EOL_LF              ,   // == 1
00092     EOL_CR                  // == 1
00093 };
00094
00096 const unsigned char gm_keyword_char[256] = {
00097  /* 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F      : 0123456789ABCDEF */
00098     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0: ................ */
00099     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 1: ................ */
00100     0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 2:  !"#$%&'()*+,-./ */
00101     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 3: 0123456789:;<=>? */
00102     2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 4: @ABCDEFGHIJKLMNO */
00103     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 0, 1, /* 5: PQRSTUVWXYZ[\]^_ */
00104     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 6: `abcdefghijklmno */
00105     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 7: pqrstuvwxyz{|}~. */
00106     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 8: ................ */
00107     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 9: ................ */
00108     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* A: .｡｢｣､･ｦｧｨｩｪｫｬｭｮｯ */   //setlocal( LC_ALL, "C" )
00109     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* B: ｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿ */   //setlocal( LC_ALL, "C" )
00110     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* C: ﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏ */   //setlocal( LC_ALL, "C" )
00111     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* D: ﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ */   //setlocal( LC_ALL, "C" )
00112 //  0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* A: .｡｢｣､･ｦｧｨｩｪｫｬｭｮｯ */   //setlocal( LC_ALL, "Japanese" )
00113 //  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* B: ｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿ */   //setlocal( LC_ALL, "Japanese" )
00114 //  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* C: ﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏ */   //setlocal( LC_ALL, "Japanese" )
00115 //  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* D: ﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ */   //setlocal( LC_ALL, "Japanese" )
00116     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* E: ................ */
00117     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* F: ................ */
00118     /* 0: not-keyword, 1:__iscsym(), 2:user-define */
00119 };
00120
00128 const ColorAttributeData g_ColorAttributeArr[] =
00129 {
00130     {"TXT", COLOR_ATTRIB_FORCE_DISP | COLOR_ATTRIB_NO_EFFECTS},
00131     {"RUL", COLOR_ATTRIB_NO_EFFECTS},
00132     {"CAR", COLOR_ATTRIB_FORCE_DISP | COLOR_ATTRIB_NO_BACK | COLOR_ATTRIB_NO_EFFECTS},  // キャレット       // 2006.12.07 ryoji
00133     {"IME", COLOR_ATTRIB_NO_BACK | COLOR_ATTRIB_NO_EFFECTS},    // IMEキャレット    // 2006.12.07 ryoji
00134     {"UND", COLOR_ATTRIB_NO_BACK | COLOR_ATTRIB_NO_EFFECTS},
00135     {"LNO", 0},
00136     {"MOD", 0},
00137     {"TAB", 0},
00138     {"SPC", 0}, //2002.04.28 Add By KK
00139     {"ZEN", 0},
00140     {"CTL", 0},
00141     {"EOL", 0},
00142     {"RAP", 0},
00143     {"VER", 0},  // 2005.11.08 Moca 指定桁縦線
00144     {"EOF", 0},
00145     {"NUM", 0}, //@@@ 2001.02.17 by MIK 半角数値の強調
00146     {"FND", 0},
00147     {"KW1", 0},
00148     {"KW2", 0},
00149     {"KW3", 0}, //@@@ 2003.01.13 by MIK 強調キーワード3-10
00150     {"KW4", 0},
00151     {"KW5", 0},
00152     {"KW6", 0},
00153     {"KW7", 0},
00154     {"KW8", 0},
00155     {"KW9", 0},
00156     {"KWA", 0},
00157     {"CMT", 0},
00158     {"SQT", 0},
00159     {"WQT", 0},
00160     {"URL", 0},
00161     {"RK1", 0}, //@@@ 2001.11.17 add MIK
00162     {"RK2", 0}, //@@@ 2001.11.17 add MIK
00163     {"RK3", 0}, //@@@ 2001.11.17 add MIK
00164     {"RK4", 0}, //@@@ 2001.11.17 add MIK
00165     {"RK5", 0}, //@@@ 2001.11.17 add MIK
00166     {"RK6", 0}, //@@@ 2001.11.17 add MIK
00167     {"RK7", 0}, //@@@ 2001.11.17 add MIK
00168     {"RK8", 0}, //@@@ 2001.11.17 add MIK
00169     {"RK9", 0}, //@@@ 2001.11.17 add MIK
00170     {"RKA", 0}, //@@@ 2001.11.17 add MIK
00171     {"DFA", 0}, //DIFF追加  //@@@ 2002.06.01 MIK
00172     {"DFC", 0}, //DIFF変更  //@@@ 2002.06.01 MIK
00173     {"DFD", 0}, //DIFF削除  //@@@ 2002.06.01 MIK
00174     {"BRC", 0}, //対括弧    // 02/09/18 ai Add
00175     {"MRK", 0}, //ブックマーク  // 02/10/16 ai Add
00176     {"LAST", 0} // Not Used
00177 };
00178
00179
00180 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: global.h

global.h

共通定義 [詳細]

#include <windows.h>
#include <tchar.h>

global.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | ColorAttributeData_t

マクロ定義

#define | SAKURA_CORE_API __declspec(dllimport)
#define | DWORD_PTR DWORD
#define | ULONG_PTR ULONG
#define | LONG_PTR LONG
#define | UINT_PTR UINT
#define | INT_PTR INT
#define | SetWindowLongPtr SetWindowLong
#define | GetWindowLongPtr GetWindowLong
#define | DWLP_USER DWL_USER
#define | GWLP_WNDPROC GWL_WNDPROC
#define | GWLP_USERDATA GWL_USERDATA
#define | GWLP_HINSTANCE GWL_HINSTANCE
#define | COLOR_MENUHILIGHT 29
#define | COLOR_MENUBAR 30
#define | IS_KEYWORD_CHAR(c) ((int)(gm_keyword_char[(unsigned char)((c) & 0xff)]))
#define | GSTR_EDITWINDOWNAME "TextEditorWindow"
#define | GSTR_MUTEX_SAKURA "MutexSakuraEditor"
#define | GSTR_MUTEX_SAKURA_CP _T("MutexSakuraEditorCP")
#define | GSTR_EVENT_SAKURA_CP_INITIALIZED _T("EventSakuraEditorCPInitialized")
#define | GSTR_MUTEX_SAKURA_INIT _T("MutexSakuraEditorInit")
#define | GSTR_MUTEX_SAKURA_EDITARR _T("MutexSakuraEditorEditArr")
#define | GSTR_CEDITAPP "CEditApp"
#define | GSTR_CSHAREDATA "CShareData"
#define | FN_APP_ICON "my_appicon.ico"
#define | FN_GREP_ICON "my_grepicon.ico"
#define | FN_TOOL_BMP "my_icons.bmp"
#define | ICON_DEFAULT_APP IDI_ICON_STD
#define | ICON_DEFAULT_GREP IDI_ICON_GREP
#define | IDW_STATUSBAR 123
#define | IDM_SELWINDOW 10000
#define | IDM_SELMRU 11000
#define | IDM_SELOPENFOLDER 12000
#define | EOL_TYPE_NUM 5
#define | CUSTMENU_INDEX_FOR_TABWND 24
#define | CUSTMENU_INDEX_FOR_RBUTTONUP 0
#define | COLOR_ATTRIB_FORCE_DISP 0x00000001
#define | COLOR_ATTRIB_NO_BACK 0x00000020
#define | COLOR_ATTRIB_NO_BOLD 0x00000100
#define | COLOR_ATTRIB_NO_UNDERLINE 0x00000200
#define | COLOR_ATTRIB_NO_EFFECTS 0x00000F00
#define | TRUE 1
#define | FALSE 0
#define | NULL 0
#define | BOOL int

型定義

typedef ColorAttributeData_t | ColorAttributeData

列挙型

enum enumCodeType {
CODE_SJIS, CODE_JIS, CODE_EUC, CODE_UNICODE,
CODE_UTF8, CODE_UTF7, CODE_UNICODEBE, CODE_CODEMAX,
CODE_AUTODETECT = 99
}
enum enumOutlineType {
OUTLINE_C, OUTLINE_CPP, OUTLINE_PLSQL, OUTLINE_TEXT,
OUTLINE_JAVA, OUTLINE_COBOL, OUTLINE_ASM, OUTLINE_PERL,
OUTLINE_VB, OUTLINE_WZTXT, OUTLINE_HTML, OUTLINE_TEX,
OUTLINE_FILE, OUTLINE_PYTHON, OUTLINE_CODEMAX, OUTLINE_BOOKMARK,
OUTLINE_DEFAULT = -1, OUTLINE_UNKNOWN = 99
}
enum enumEOLType {
EOL_NONE, EOL_CRLF, EOL_LFCR, EOL_LF,
EOL_CR, EOL_CODEMAX, EOL_UNKNOWN = -1
}
enum enumEOLLen {
LEN_EOL_NONE = 0, LEN_EOL_CRLF = 2, LEN_EOL_LFCR = 2, LEN_EOL_LF = 1,
LEN_EOL_CR = 1
}
enum | enumShowDlg { SHOW_NORMAL = 0, SHOW_RELOAD = 1, SHOW_TOGGLE = 2 }
enum | enumSmartIndentType { SMARTINDENT_NONE, SMARTINDENT_CPP }
enum enumColorIndexType {
COLORIDX_TEXT = 0, COLORIDX_RULER = 1, COLORIDX_CARET = 2, COLORIDX_CARET_IME = 3,
COLORIDX_UNDERLINE = 4, COLORIDX_GYOU = 5, COLORIDX_GYOU_MOD = 6, COLORIDX_TAB = 7,
COLORIDX_SPACE = 8, COLORIDX_ZENSPACE = 9, COLORIDX_CTRLCODE = 10, COLORIDX_CRLF = 11,
COLORIDX_WRAP = 12, COLORIDX_VERTLINE = 13, COLORIDX_EOF = 14, COLORIDX_DIGIT = 15,
COLORIDX_SEARCH = 16, COLORIDX_KEYWORD1 = 17, COLORIDX_KEYWORD2 = 18, COLORIDX_KEYWORD3 = 19,
COLORIDX_KEYWORD4 = 20, COLORIDX_KEYWORD5 = 21, COLORIDX_KEYWORD6 = 22, COLORIDX_KEYWORD7 = 23,
COLORIDX_KEYWORD8 = 24, COLORIDX_KEYWORD9 = 25, COLORIDX_KEYWORD10 = 26, COLORIDX_COMMENT = 27,
COLORIDX_SSTRING = 28, COLORIDX_WSTRING = 29, COLORIDX_URL = 30, COLORIDX_REGEX1 = 31,
COLORIDX_REGEX2 = 32, COLORIDX_REGEX3 = 33, COLORIDX_REGEX4 = 34, COLORIDX_REGEX5 = 35,
COLORIDX_REGEX6 = 36, COLORIDX_REGEX7 = 37, COLORIDX_REGEX8 = 38, COLORIDX_REGEX9 = 39,
COLORIDX_REGEX10 = 40, COLORIDX_DIFF_APPEND = 41, COLORIDX_DIFF_CHANGE = 42, COLORIDX_DIFF_DELETE = 43,
COLORIDX_BRACKET_PAIR = 44, COLORIDX_MARK = 45, COLORIDX_LAST = 46, COLORIDX_BLOCK1 = 47,
COLORIDX_BLOCK2 = 48
}
enum enumTabWndNotifyType {
TWNT_REFRESH = 0, TWNT_ADD = 1, TWNT_DEL = 2, TWNT_ORDER = 3,
TWNT_FILE = 4, TWNT_MODE_ENABLE = 5, TWNT_MODE_DISABLE = 6, TWNT_WNDPL_ADJUST = 7
}
enum | enumBarChangeNotifyType { MYBCN_TOOLBAR = 0, MYBCN_FUNCKEY = 1, MYBCN_TAB = 2, MYBCN_STATUSBAR = 3 }

変数

SAKURA_CORE_API const unsigned
char 		gm_keyword_char [256]
SAKURA_CORE_API const char * | GSTR_APPNAME
SAKURA_CORE_API const char * | gm_pszCodeNameArr_1 []
SAKURA_CORE_API const char * | gm_pszCodeNameArr_2 []
SAKURA_CORE_API const char * | gm_pszCodeNameArr_3 []
SAKURA_CORE_API const int | gm_nCodeComboValueArr []
SAKURA_CORE_API const char
*const 		gm_pszCodeComboNameArr []
SAKURA_CORE_API const int | gm_nCodeComboNameArrNum
SAKURA_CORE_API const enumEOLType | gm_pnEolTypeArr [EOL_TYPE_NUM]
SAKURA_CORE_API const COLORREF | SELECTEDAREA_RGB
SAKURA_CORE_API const int | SELECTEDAREA_ROP2
SAKURA_CORE_API const ColorAttributeData | g_ColorAttributeArr []
const int | IDC_SPIN_nRulerHeight_MIN = 2
const int | IDC_SPIN_nRulerHeight_MAX = 32
const int | LINESPACE_MAX = 128
const int | COLUMNSPACE_MAX = 64
const int | MAXLINESIZE = 10240
1行の桁数の最大値
const int | MINLINESIZE = 10
1行の桁数の最小値
const int | LINEREADBUFSIZE = 10240
ファイルから1行分データを読み込むときのバッファサイズ

説明

共通定義

作者:
Norio Nakatani

global.h で定義されています。

マクロ定義

#define BOOL int

global.h の 455 行で定義されています。

参照元 BlockingHook()・CLayoutMgr::CaretPos_Log2Phys()・CEditDoc::CheckFileTimeStamp()・CDlgSameColor::ColorList_SubclassProc()・CEditWnd::Create()・CEditWnd::DestroyStatusBar()・CPropTypes::DispatchEvent_KeyHelp()・CEditDoc::DoFileLock()・CDlgInput1::DoModal()・CSplitterWnd::DoSplit()・CEditDoc::FileRead()・CEditDoc::FileWrite()・CDlgJump::GetData()・CDlgFavorite::GetData()・CDlgDiff::GetData()・CPropTypes::GetData_p3_new()・CDlgOpenFile::GetOpenFileNameRecover()・CPrint::GetPrintMetrics()・CDlgOpenFile::GetSaveFileNameRecover()・GetSpecialFolderPath()・CEditWnd::InitMenu()・CPPA::IsRunning()・CMemory::JIStoSJIS()・CEditWnd::LayoutFuncKey()・CWSHMacroManager::LoadKeyMacro()・CEditDoc::MakeFuncList_BookMark()・CEditDoc::MakeTopicList_cobol()・CEditDoc::MakeTopicList_html()・MyInitCommonControls()・OFNHookProc()・CDlgTagJumpList::OnBnClicked()・CDlgSameColor::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CEditWnd::OnCommand()・CDlgSameColor::OnDrawItem()・CEditWnd::OnDropFiles()・CDlgTagJumpList::OnInitDialog()・CDlgSameColor::OnInitDialog()・CDlgReplace::OnInitDialog()・CDlgPrintSetting::OnInitDialog()・CDlgGrep::OnInitDialog()・CTabWnd::OnMouseMove()・CDlgPrintSetting::OnNotify()・CEditWnd::OnPrintPageSetting()・CSplitterWnd::OnSize()・CDlgPrintSetting::OnSpin()・CEditDoc::OpenFile()・CEditDoc::OpenFileDialog()・CEditDoc::OpenPropertySheet()・CPrint::PrintOpen()・CEditWnd::PrintPreviewModeONOFF()・CDlgFavorite::RefreshListOne()・CEditDoc::ReloadCurrentFile()・CDlgWinSize::RenewItemState()・ResolveShortcutLink()・CDropTarget::Revoke_DropTarget()・CEditDoc::SaveFileDialog()・SelectDir()・CDlgFind::SetData()・CDlgExec::SetData()・CPropTypes::SetData_p1()・CPropCommon::SetData_p1()・CDlgFavorite::SetDataOne()・CMemory::SPACEToTAB()・CTabWnd::TabWindowNotify()・CEditApp::TerminateApplication()・CMemory::ToHankaku()・CMemory::ToZenkaku()・CEditApp::TrayMessage()・CMemory::UnicodeToUTF7()・CUrlWnd::UrlWndProc()・CMemory::UTF7ToSJIS()・CMemory::UUDECODE().

#define COLOR_ATTRIB_FORCE_DISP 0x00000001

global.h の 415 行で定義されています。

#define COLOR_ATTRIB_NO_BACK 0x00000020

global.h の 417 行で定義されています。

#define COLOR_ATTRIB_NO_BOLD 0x00000100

global.h の 418 行で定義されています。

#define COLOR_ATTRIB_NO_EFFECTS 0x00000F00

global.h の 421 行で定義されています。

#define COLOR_ATTRIB_NO_UNDERLINE 0x00000200

global.h の 419 行で定義されています。

#define COLOR_MENUBAR 30

global.h の 104 行で定義されています。

参照元 CEditWnd::PrintMenubarMessage().

#define COLOR_MENUHILIGHT 29

global.h の 101 行で定義されています。

#define CUSTMENU_INDEX_FOR_RBUTTONUP 0

色タイプ

global.h の 410 行で定義されています。

参照元 CEditView::CreatePopUpMenu_R().

#define CUSTMENU_INDEX_FOR_TABWND 24

global.h の 408 行で定義されています。

参照元 CShareData::InitPopupMenu()・CTabWnd::OnTabRButtonUp().

#define DWLP_USER DWL_USER

global.h の 87 行で定義されています。

参照元 CDlgDebug_Proc()・CDlgInput1Proc()・CDlgInput1::DispatchEvent()・CDlgDebug::DispatchEvent()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p1()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・CPropCommon::DispatchEvent_p2()・CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_p8()・CPropCommon::DispatchEvent_p9()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・CPropTypes::DispatchEvent_Regex()・CPropCommon::DlgProc()・HokanList_SubclassProc()・MyDialogProc()・OFNHookProc()・CDialog::OnInitDialog()・CPrintPreview::PrintPreviewBar_DlgProc()・CPropTypes::PropTypesKeyHelp()・PropTypesP1Proc()・PropTypesP2Proc()・PropTypesP3_newProc()・CPropTypes::PropTypesRegex().

#define DWORD_PTR DWORD

global.h の 66 行で定義されています。

参照元 MyWinHelp().

#define EOL_TYPE_NUM 5

global.h の 286 行で定義されています。

参照元 CEOL::GetEOLType()・CEOL::GetEOLTypeUni()・CEOL::GetEOLTypeUniBE().

#define FALSE 0

global.h の 447 行で定義されています。

参照元 CShareData::AddEditWndList()・CKeyWordSetMgr::AddKeyWordSet()・CSortedTagJumpList::AddParam()・COpeBlk::AppendOpe()・BlockingHook()・CSMacroMgr::CanFuncIsKeyMacro()・CLayoutMgr::CaretPos_Log2Phys()・CEditView::CaretUnderLineOFF()・CEditView::CaretUnderLineON()・CDlgCancel::CDlgCancel()・CDlgDebug_Proc()・CDlgDiff::CDlgDiff()・CDlgFind::CDlgFind()・CDlgFuncList::CDlgFuncList()・CDlgGrep::CDlgGrep()・CDlgInput1Proc()・CDlgJump::CDlgJump()・CDlgReplace::CDlgReplace()・CEditDoc::CEditDoc()・CEditView::CEditView()・CFileLoad::CFileLoad()・CEditView::ChangeCurRegexp()・CheckEXT()・CEditDoc::CheckFileTimeStamp()・CheckSystemResources()・CLayoutMgr::CLayoutMgr()・CEditApp::CloseAllEditor()・CEditView::Command_1PageDown()・CEditView::Command_1PageUp()・CEditView::Command_ADDTAIL()・CEditView::Command_BASE64DECODE()・CEditView::Command_BEGIN_BOXSELECT()・CEditView::Command_BEGIN_SELECT()・CEditView::Command_BOOKMARK_NEXT()・CEditView::Command_BOOKMARK_PREV()・CEditView::Command_CANCEL_MODE()・CEditView::Command_COPY()・CEditView::Command_COPYFILENAME()・CEditView::Command_COPYPATH()・CEditView::Command_COPYTAG()・CEditView::Command_CtrlCode_Dialog()・CEditView::Command_CUT()・CEditView::Command_DELETE_BACK()・CEditView::Command_Diff()・CEditView::Command_Diff_Dialog()・CEditView::Command_Diff_Next()・CEditView::Command_Diff_Prev()・CEditView::Command_DUPLICATELINE()・CEditView::Command_Favorite()・CEditView::Command_FILENEW()・CEditView::Command_FONT()・CEditView::Command_GOFILEEND()・CEditView::Command_GREP()・CEditView::Command_HOKAN()・CEditView::Command_IME_CHAR()・CEditView::Command_INDENT()・CEditView::Command_INSFILE()・CEditView::Command_OPEN_HfromtoC()・CEditView::Command_PASTE()・CEditView::Command_PASTEBOX()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::Command_PUTFILE()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_REPLACE_DIALOG()・CEditView::Command_SEARCH_NEXT()・CEditView::Command_SEARCH_PREV()・CEditView::Command_ToggleKeySearch()・CEditView::Command_UNINDENT()・CEditView::Command_UP()・CEditView::Command_UUDECODE()・CEditView::Command_WndScrollDown()・CEditView::Command_WndScrollUp()・CEditView::Command_WordCut()・CEditView::Command_WORDLEFT()・CEditView::Command_WORDRIGHT()・CEditView::ConvMemory()・CEditView::ConvSelectedArea()・CEditView::CopySelectedAllLines()・CEditWnd::Create()・CEditDoc::Create()・CPrint::CreateDC()・CEditWnd::CreateFileDropDownMenu()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CEditWnd::CreateStatusBar()・CEditWnd::CreateToolBar()・CTipWnd::CTipWnd()・CUrlWnd::CUrlWnd()・CEditView::DeleteData()・CKeyWordSetMgr::DelKeyWordSet()・CEditWnd::DestroyStatusBar()・CEditDoc::DetectWidthOfLineNumberAreaAllPane()・CEditView::DisableSelectArea()・CEditView::DispatchEvent()・CEditApp::DispatchEvent()・CDlgInput1::DispatchEvent()・CDlgDebug::DispatchEvent()・CDialog::DispatchEvent()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p1()・CPropCommon::DispatchEvent_p2()・CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_p8()・CPropCommon::DispatchEvent_p9()・CPrintPreview::DispatchEvent_PPB()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・CPropTypes::DispatchEvent_Regex()・CEditView::DispLineNew()・CEditView::DispVerticalLines()・CPropCommon::DlgProc()・CEditDoc::DoFileLock()・CEditView::DoGrep()・CEditApp::DoGrep()・CEditView::DoGrepFile()・CEditView::DoGrepTree()・CHokanMgr::DoHokan()・CDlgTypeList::DoModal()・CDlgCancel::DoModal()・CDialog::DoModal()・CDlgOpenFile::DoModal_GetOpenFileName()・CDlgOpenFile::DoModal_GetSaveFileName()・CDlgOpenFile::DoModalOpenDlg()・CDlgOpenFile::DoModalSaveDlg()・CDlgCancel::DoModeless()・CDialog::DoModeless()・COpeBuf::DoRedo()・CSplitterWnd::DoSplit()・COpeBuf::DoUndo()・CEditView::DragLeave()・CEditView::DragOver()・CEditView::DrawBracketPair()・CMenuDrawer::DrawItem()・CEditView::Drop()・CPropCommon::EnableBackupInput()・CPropCommon::EnableFilePropInput()・CPropCommon::EnableFormatPropInput()・CPropCommon::EnableTabPropInput()・CPropTypes::EnableTypesPropInput()・CPropCommon::EnableWinPropInput()・CSMacroMgr::Exec()・CEditView::ExecCmd()・CEditApp::ExitingDlgProc()・CPropTypes::Export_KeyHelp()・CPropTypes::Export_Regex()・CFileLoad::FileClose()・CFileLoad::FileOpen()・CEditDoc::FileRead()・CEditDoc::FileSave()・CEditDoc::FileSaveAs()・CEditDoc::FileSaveAs_Dialog()・CEditDoc::FileWrite()・CTabWnd::ForceActiveWindow()・CEditView::GetAdjustCursorPos()・CEditView::GetColorIndex()・CEditView::GetCurrentTextForSearch()・CDlgTagJumpList::GetData()・CDlgPrintPage::GetData()・CDlgJump::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CDlgDiff::GetData()・CDlgCtrlCode::GetData()・CPropTypes::GetData_KeyHelp()・CPropTypes::GetData_p1()・CPropCommon::GetData_p1()・CPropCommon::GetData_p2()・CPropTypes::GetData_p3_new()・CPropCommon::GetData_PROP_Macro()・CPropCommon::GetData_PROP_TAB()・CPropCommon::GetData_PROP_WIN()・CPropTypes::GetData_Regex()・CPrint::GetDefaultPrinter()・CMRU::GetFileInfo()・CLayoutMgr::getIndentOffset_LeftSpace()・GetLongFileName()・CTabWnd::GetNextGroupWnd()・CDlgOpenFile::GetOpenFileNameRecover()・CPrint::GetPaperSize()・CSortedTagJumpList::GetParam()・CTabWnd::GetPrevGroupWnd()・CPrint::GetPrintMetrics()・CDlgOpenFile::GetSaveFileNameRecover()・CEditView::GetSelectedData()・GetSpecialFolderPath()・GetSystemResources()・CMacro::HandleCommand()・CEditView::HandleCommand()・CMacro::HandleFunction()・CShareData::HTMLHelpIsSingle()・CPropTypes::Import_KeyHelp()・CPropTypes::Import_Regex()・CShareData::Init()・CEditDoc::Init()・CEditDoc::InitAllView()・CPPA::InitDll()・CNormalProcess::Initialize()・CControlProcess::Initialize()・CShareData::InitKeyword()・CPrintPreview::InitPreviewScrollBar()・CShareData::IO_ColorSet()・CEditView::IsCurrentPositionURL()・CEditView::ISearchBack()・CEditView::ISearchEnter()・CShareData::IsEditWnd()・CEditDoc::IsEnablePaste()・COpeBuf::IsEnableRedo()・COpeBuf::IsEnableUndo()・CMemory::IsEqual()・CProcessFactory::IsExistControlProcess()・CEditWnd::IsFuncChecked()・CEditWnd::IsFuncEnable()・CEditView::IsImeON()・IsMailAddress()・CEditDoc::IsModificationForbidden()・CShareData::IsPathOpened()・CSMacroMgr::IsSaveOk()・CEditView::IsSearchString()・CUxTheme::IsThemeActive()・IsURL()・CMemory::JIStoSJIS()・CHokanMgr::KeyProc()・CEditView::KeyWordHelpSearchDict()・CEditWnd::LayoutFuncKey()・CSMacroMgr::Load()・CWSHMacroManager::LoadKeyMacro()・CPPAMacroMgr::LoadKeyMacro()・CKeyMacroMgr::LoadKeyMacro()・CMutex::Lock()・CEditView::MakeDiffTmpFile()・CEditDoc::MakeTopicList_html()・MyDialogProc()・CEditView::MyGetClipboardData()・MyInitCommonControls()・CEditView::MySetClipboardData()・MyWinHelp()・CLayoutMgr::NextWord()・OFNHookProc()・CDialog::OnActivate()・CHokanMgr::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgReplace::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgPrintPage::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・CDlgCancel::OnBnClicked()・CDialog::OnBnClicked()・CDialog::OnCbnEditChange()・CDlgPrintSetting::OnCbnSelChange()・CDlgJump::OnCbnSelChange()・CDlgFuncList::OnCbnSelChange()・CDlgDiff::OnCbnSelChange()・CDialog::OnCbnSelChange()・CPrintPreview::OnChangePrintSetting()・CDlgPrintSetting::OnChangeSettingType()・CEditWnd::OnClose()・CEditWnd::OnCommand()・CDialog::OnCommand()・CFuncKeyWnd::OnDestroy()・CDlgDiff::OnEditChange()・CDialog::OnEditChange()・CEditDoc::OnFileClose()・CDlgTagJumpList::OnInitDialog()・CDlgSameColor::OnInitDialog()・CDlgReplace::OnInitDialog()・CDlgFavorite::OnInitDialog()・CEditView::OnKillFocus()・CDialog::OnKillFocus()・CDlgTypeList::OnLbnDblclk()・CDialog::OnLbnDblclk()・CTabWnd::OnLButtonDown()・CSplitterWnd::OnLButtonDown()・CEditView::OnLBUTTONDOWN()・CSplitterWnd::OnLButtonUp()・CEditWnd::OnLButtonUp()・CEditView::OnLBUTTONUP()・CTabWnd::OnMouseMove()・CDialog::OnMove()・CDlgPrintSetting::OnNotify()・CDlgJump::OnNotify()・CDlgFuncList::OnNotify()・CDlgCtrlCode::OnNotify()・CDialog::OnNotify()・CEditView::OnPaint()・CPrintPreview::OnPreviewGoDirectPage()・CPrintPreview::OnPreviewGoPage()・CPrintPreview::OnPreviewZoom()・CTabWnd::OnRButtonDown()・CEditView::OnSetFocus()・CTabWnd::OnSize()・CDialog::OnSize()・CDlgPrintSetting::OnSpin()・CTabWnd::OnTabNotify()・CDlgPrintSetting::OnTimer()・CTabWnd::Open()・CEditApp::OpenNewEditor()・CPropCommon::p7_Edit_List_KeyWord()・CShareData::PostMessageToAllEditors()・CEditView::PostprocessCommand_hokan()・CEditView::PreprocessCommand_hokan()・CLayoutMgr::PrevOrNextWord()・CDocLineMgr::PrevOrNextWord()・CPrint::PrintDlg()・CPrint::PrintOpen()・CPrintPreview::PrintPreviewBar_DlgProc()・CEditWnd::PrintPreviewModeONOFF()・PropSheetProc()・PropSheetWndProc()・CPropTypes::PropTypesKeyHelp()・PropTypesP1Proc()・PropTypesP2Proc()・PropTypesP3_newProc()・CPropTypes::PropTypesRegex()・CFileLoad::Read()・CDocLineMgr::ReadFile()・CEditView::Redraw()・CEditView::RedrawAll()・CDlgFavorite::RefreshListOne()・CRegexKeyword::RegexIsKeyword()・CRegexKeyword::RegexKeyInit()・CRegexKeyword::RegexKeyLineStart()・CRegexKeyword::RegexKeySetTypes()・CDropTarget::Register_DropTarget()・CEditDoc::ReloadCurrentFile()・CDlgWinSize::RenewItemState()・CTabWnd::ReorderTab()・CShareData::RequestCloseAllEditor()・ResolveShortcutLink()・CSMacroMgr::Save()・CKeyMacroMgr::SaveKeyMacro()・CDicMgr::Search()・CDocLineMgr::SearchNextWordPosition()・CLayoutMgr::SearchWord()・CPropTypes::SelectColor()・SelectDir()・CEditDoc::SelectFont()・CShareData::SendMessageToAllEditors()・CTabWnd::SeparateGroup()・CEditView::SetBracketPairPos()・SetClipboardText()・CDlgPrintPage::SetData()・CDlgJump::SetData()・CDlgFuncList::SetData()・CDlgExec::SetData()・CDlgDiff::SetData()・CPropTypes::SetData_KeyHelp()・CPropTypes::SetData_p1()・CPropCommon::SetData_p1()・CPropCommon::SetData_p2()・CPropTypes::SetData_p3_new()・CPropCommon::SetData_p7_KeyWordSet()・CPropCommon::SetData_PROP_EDIT()・CPropCommon::SetData_PROP_WIN()・CEditWnd::SetDebugModeOFF()・CEditWnd::SetDebugModeON()・CEditDoc::SetFileInfo()・CEditView::SetFont()・CEditDoc::SetImeMode()・CKeyWordSetMgr::SetKeyWordCase()・CDlgFuncList::SetListVB()・CEditDoc::SetModified()・CPrint::SettingInitialize()・CDlgFuncList::SetTreeJava()・CShareData::ShareData_IO_2()・CTabWnd::ShowHideWindow()・CEditView::ShowHokanMgr()・CEditView::ShowKeywordHelp()・CFuncKeyWnd::SizeBox_ONOFF()・CDlgFuncList::SortListView()・CMemory::SPACEToTAB()・CEditView::SplitBoxOnOff()・CProcessFactory::StartControlProcess()・CMemory::StrSJIStoJIS()・CUrlWnd::SubclassWindow()・CTabWnd::TabWindowNotify()・CEditView::TagJumpSub()・CEditApp::TerminateApplication()・CProcessFactory::TestWriteQuit()・CMemory::ToHankaku()・CMemory::ToZenkaku()・CShareData::TraceOut()・CMemory::UnicodeToUTF7()・CUrlWnd::UrlWndProc()・CMemory::UTF7ToSJIS()・CMemory::UUDECODE()・CEditView::ViewDiffInfo()・CProcessFactory::WaitForInitializedControlProcess()・CLayoutMgr::WhereCurrentWord()・CDocLineMgr::WhereCurrentWord()・CDocLineMgr::WhereCurrentWord_2()・CDocLineMgr::WriteFile().

#define FN_APP_ICON "my_appicon.ico"

global.h の 172 行で定義されています。

参照元 CEditWnd::Create()・CEditApp::CreateTrayIcon()・CEditWnd::GetDefaultIcon()・CTabWnd::InitImageList()・CDlgAbout::OnInitDialog().

#define FN_GREP_ICON "my_grepicon.ico"

global.h の 173 行で定義されています。

参照元 CTabWnd::InitImageList()・CDlgGrep::OnInitDialog().

#define FN_TOOL_BMP "my_icons.bmp"

global.h の 174 行で定義されています。

参照元 CImageListMgr::Create().

#define GetWindowLongPtr GetWindowLong

global.h の 84 行で定義されています。

参照元 CShareData::AddEditWndList()・CDlgDebug_Proc()・CDlgInput1Proc()・CEditAppWndProc()・CEditWndProc()・CDlgSameColor::ColorList_SubclassProc()・CDlgSameColor::ColorStatic_SubclassProc()・CEditView::Command_BIND_WINDOW()・CEditView::Command_SHOWTAB()・CWndProc()・CPropCommon::DlgProc()・CSplitterWnd::DoSplit()・EditViewTimerProc()・EditViewWndProc()・HokanList_SubclassProc()・CEditWnd::IsFuncChecked()・CTabWnd::LayoutTab()・MyDialogProc()・MyGetAncestor()・CSplitterWnd::OnSize()・CTabWnd::Open()・CPrintPreview::PrintPreviewBar_DlgProc()・CPropTypes::PropTypesKeyHelp()・PropTypesP1Proc()・PropTypesP2Proc()・PropTypesP3_newProc()・CPropTypes::PropTypesRegex()・CTabWnd::SeparateGroup()・TabWndProc()・CUrlWnd::UrlWndProc()・CEditWnd::WindowTopMost().

#define GSTR_CEDITAPP "CEditApp"

global.h の 156 行で定義されています。

参照元 CEditApp::CEditApp().

#define GSTR_CSHAREDATA "CShareData"

global.h の 166 行で定義されています。

参照元 CShareData::Init().

#define GSTR_EDITWINDOWNAME "TextEditorWindow"

global.h の 124 行で定義されています。

参照元 CShareData::IsEditWnd().

#define GSTR_EVENT_SAKURA_CP_INITIALIZED _T("EventSakuraEditorCPInitialized")

global.h の 144 行で定義されています。

参照元 CControlProcess::Initialize()・CProcessFactory::WaitForInitializedControlProcess().

#define GSTR_MUTEX_SAKURA "MutexSakuraEditor"

global.h の 142 行で定義されています。

参照元 CControlProcess::Initialize().

#define GSTR_MUTEX_SAKURA_CP _T("MutexSakuraEditorCP")

global.h の 143 行で定義されています。

参照元 CControlProcess::Initialize()・CProcessFactory::IsExistControlProcess().

#define GSTR_MUTEX_SAKURA_EDITARR _T("MutexSakuraEditorEditArr")

global.h の 146 行で定義されています。

#define GSTR_MUTEX_SAKURA_INIT _T("MutexSakuraEditorInit")

global.h の 145 行で定義されています。

参照元 CNormalProcess::GetInitializeMutex().

#define GWLP_HINSTANCE GWL_HINSTANCE

global.h の 96 行で定義されています。

#define GWLP_USERDATA GWL_USERDATA

global.h の 93 行で定義されています。

参照元 CEditAppWndProc()・CEditWndProc()・CTabWnd::Close()・CDlgSameColor::ColorList_SubclassProc()・CDlgSameColor::ColorStatic_SubclassProc()・CWndProc()・CEditWnd::IsFuncChecked()・CDlgSameColor::OnInitDialog()・CTabWnd::Open()・CUrlWnd::SubclassWindow()・TabWndProc()・CUrlWnd::UrlWndProc()・CWnd::~CWnd().

#define GWLP_WNDPROC GWL_WNDPROC

global.h の 90 行で定義されています。

参照元 CTabWnd::Close()・CDlgSameColor::ColorStatic_SubclassProc()・CEditWnd::CreateToolBar()・CPropTypes::DispatchEvent_p3_new()・CHokanMgr::DoModeless()・OFNHookProc()・CDlgSameColor::OnInitDialog()・CTabWnd::Open()・PropSheetProc()・PropSheetWndProc()・CUrlWnd::SubclassWindow()・ToolBarWndProc()・CUrlWnd::UrlWndProc().

#define ICON_DEFAULT_APP IDI_ICON_STD

global.h の 181 行で定義されています。

参照元 CEditWnd::Create()・CEditApp::CreateTrayIcon()・CEditWnd::GetDefaultIcon()・CTabWnd::InitImageList()・CDlgAbout::OnInitDialog().

#define ICON_DEFAULT_GREP IDI_ICON_GREP

global.h の 182 行で定義されています。

参照元 CTabWnd::InitImageList()・CDlgGrep::OnInitDialog().

#define IDM_SELMRU 11000

global.h の 195 行で定義されています。

参照元 CMRU::CreateMenu()・FuncID_To_HelpContextID()・CKeyBind::GetMenuLabel()・CEditWnd::OnCommand().

#define IDM_SELOPENFOLDER 12000

global.h の 196 行で定義されています。

参照元 CMRUFolder::CreateMenu()・FuncID_To_HelpContextID()・CKeyBind::GetMenuLabel()・CEditWnd::OnCommand().

#define IDM_SELWINDOW 10000

global.h の 194 行で定義されています。

参照元 FuncID_To_HelpContextID()・CKeyBind::GetMenuLabel()・CEditWnd::OnCommand()・CEditWnd::WinListMenu().

#define IDW_STATUSBAR 123

global.h の 191 行で定義されています。

参照元 CEditWnd::CreateStatusBar().

#define INT_PTR INT

global.h の 78 行で定義されています。

参照元 CEditWnd::CreateToolBar()・CDlgSameColor::DispatchEvent()・CDlgAbout::DispatchEvent().

#define IS_KEYWORD_CHAR ( c ) ((int)(gm_keyword_char[(unsigned char)((c) & 0xff)]))

global.h の 112 行で定義されています。

参照元 CKeyWordSetMgr::CleanKeyWords()・CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range()・CEditView::HokanSearchByFile().

#define LONG_PTR LONG

global.h の 72 行で定義されています。

参照元 CShareData::AddEditWndList()・CTabWnd::Close()・CDlgSameColor::ColorStatic_SubclassProc()・CEditWnd::CreateToolBar()・CWndProc()・CEditView::DispatchEvent()・CPropTypes::DispatchEvent_p3_new()・CHokanMgr::DoModeless()・OFNHookProc()・CDlgSameColor::OnInitDialog()・CTabWnd::Open()・PropSheetProc()・PropSheetWndProc()・CUrlWnd::SubclassWindow()・ToolBarWndProc()・CUrlWnd::UrlWndProc()・CWnd::~CWnd().

#define NULL 0

global.h の 451 行で定義されています。

参照元 _CompareFunc_()・ActivateFrameWindow()・CMRUFolder::Add()・CMRU::Add()・CMemory::AddData()・CShareData::AddEditWndList()・CLayoutMgr::AddLineBottom()・CDocLineMgr::AddLineStrX()・CSortedTagJumpList::AddParam()・CMacro::AddParam()・CEditView::AdjustScrollBars()・CTabWnd::AdjustWindowPlacement()・CMemory::AllocBuffer()・CSMacroMgr::Append()・CFileExt::AppendExtRaw()・CRecent::AppendItem()・COpeBlk::AppendOpe()・COpeBuf::AppendOpeBlk()・AssertError()・BlockingHook()・CFileLoad::Buffering()・CFuncKeyWnd::CalcButtonSize()・CLayoutMgr::CaretPos_Log2Phys()・CLayoutMgr::CaretPos_Phys2Log()・CFuncLookup::Category2Name()・CDialog::CDialog()・CDlgDebug::CDlgDebug()・CDlgDebug_Proc()・CDlgDiff::CDlgDiff()・CDlgFavorite::CDlgFavorite()・CDlgFuncList::CDlgFuncList()・CDlgInput1Proc()・CDlgOpenFile::CDlgOpenFile()・CDropTarget::CDropTarget()・CEditApp::CEditApp()・CEditAppWndProc()・CEditDoc::CEditDoc()・CEditView::CEditView()・CEditWndProc()・CFileExt::CFileExt()・CFileLoad::CFileLoad()・CFileWrite::CFileWrite()・CFuncInfoArr::CFuncInfoArr()・CFuncKeyWnd::CFuncKeyWnd()・CEditDoc::ChangeLayoutParam()・CCommandLine::CheckCommandLine()・CheckEXT()・CEditDoc::CheckFileTimeStamp()・CMemory::CheckKanjiCodeOfFile()・CBregexp::CheckPattern()・CheckRegexpVersion()・CheckSystemResources()・CHokanMgr::CHokanMgr()・CKeyMacroMgr::CKeyMacroMgr()・CLayout::CLayout()・CLayoutMgr::CLayoutMgr()・CSMacroMgr::Clear()・CSMacroMgr::ClearAll()・COpeBuf::ClearAll()・CKeyMacroMgr::ClearAll()・CTabWnd::Close()・CFuncKeyWnd::Close()・CDialog::CloseDialog()・CMacro::CMacro()・CMenuDrawer::CMenuDrawer()・CDlgSameColor::ColorStatic_SubclassProc()・CEditView::Command_ACTIVATE_SQLPLUS()・CEditView::Command_ADDTAIL()・CEditView::Command_BASE64DECODE()・CEditView::Command_BOOKMARK_SET()・CEditView::Command_CHAR()・CEditView::Command_COMPARE()・CEditView::Command_COPY()・CEditView::Command_COPYLINES()・CEditView::Command_COPYLINESWITHLINENUMBER()・CEditView::Command_CUSTMENU()・CEditView::Command_CUT()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_Diff()・CEditView::Command_Diff_Dialog()・CEditView::Command_DUPLICATELINE()・CEditView::Command_EXECCOMMAND()・CEditView::Command_EXECKEYMACRO()・CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP()・CEditView::Command_FILENEW()・CEditView::Command_FILESAVEALL()・CEditView::Command_FUNCLIST()・CEditView::Command_GOLINETOP()・CEditView::Command_HOKAN()・CEditView::Command_IME_CHAR()・CEditView::Command_INDENT()・CEditView::Command_INSFILE()・CEditView::Command_INSTEXT()・CEditView::Command_JUMPHIST_NEXT()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineCutToStart()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_LineDeleteToStart()・CEditView::Command_LOADKEYMACRO()・CEditView::Command_MERGE()・CEditView::Command_NEXTGROUP()・CEditView::Command_PASTE()・CEditView::Command_PASTEBOX()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::Command_PREVGROUP()・CEditView::Command_PROPERTY_FILE()・CEditView::Command_PUTFILE()・CEditView::Command_RECKEYMACRO()・CEditView::Command_Reconvert()・CEditView::Command_REPLACE()・CEditView::Command_SAVEKEYMACRO()・CEditView::Command_SEARCH_DIALOG()・CEditView::Command_SEARCH_PREV()・CEditView::Command_SELECTWORD()・CEditView::Command_SET_QUOTESTRING()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR()・CEditView::Command_SORT()・CEditView::Command_TAB_JOINTNEXT()・CEditView::Command_TAB_JOINTPREV()・CEditView::Command_TAB_MOVELEFT()・CEditView::Command_TAB_MOVERIGHT()・CEditView::Command_TAB_SEPARATE()・CEditView::Command_TAGJUMP()・CEditView::Command_TAGJUMPBACK()・CEditView::Command_TRACEOUT()・CEditView::Command_TRIM2()・CEditView::Command_UNINDENT()・CEditView::Command_UUDECODE()・CEditView::Command_WIN_OUTPUT()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::Command_WORDLEFT()・CEditView::Command_WORDRIGHT()・CBregexp::Compile()・RcCvt::convert()・CFileExt::ConvertTypesExtToDlgExt()・COpe::COpe()・COpeBuf::COpeBuf()・CPrint::CPrint()・CPropCommon::CPropCommon()・CPropTypes::CPropTypes()・CWnd::Create()・CTipWnd::Create()・CSplitterWnd::Create()・CSplitBoxWnd::Create()・CRecent::Create()・CMacroFactory::Create()・CImageListMgr::Create()・CEditWnd::Create()・CEditApp::Create()・CDlgOpenFile::Create()・CPrint::CreateDC()・CEditView::CreateEditCaret()・CPrintPreview::CreatePrintPreviewControls()・CEditView::CreateScrollBar()・CDialog::CreateSizeBox()・CEditApp::CreateTrayIcon()・CWSHMacroManager::Creator()・CPPAMacroMgr::Creator()・CRecent::CRecent()・CRegexKeyword::CRegexKeyword()・CShareData::CShareData()・CSMacroMgr::CSMacroMgr()・CSplitBoxWnd::CSplitBoxWnd()・CSplitterWnd::CSplitterWnd()・CTabWnd::CTabWnd()・CUrlWnd::CUrlWnd()・CWaitCursor::CWaitCursor()・CWnd::CWnd()・CWndProc()・CEditView::DeleteData()・CDocLineMgr::DeleteData_CDocLineMgr()・CLayoutMgr::DeleteData_CLayoutMgr()・CLayoutMgr::DeleteLayoutAsLogical()・CDocLineMgr::DeleteNode()・CPrintPreview::DestroyPrintPreviewControls()・CEditView::DestroyScrollBar()・Charcode::DetectUnicodeBom()・CEditView::DispatchEvent()・CPropTypes::DispatchEvent_KeyHelp()・CPropCommon::DispatchEvent_p10()・CPropCommon::DispatchEvent_p2()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_p8()・CPrintPreview::DispatchEvent_PPB()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・CPropTypes::DispatchEvent_Regex()・CEditView::DispLineNew()・CEditView::DispLineNumber()・CEditView::DispVerticalLines()・CPropCommon::DlgProc()・CEditDoc::DoFileLock()・CEditDoc::DoFileUnLock()・CEditApp::DoGrep()・CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range()・CDlgWinSize::DoModal()・CDlgTypeList::DoModal()・CDlgSameColor::DoModal()・CDlgGrep::DoModal()・CDlgCancel::DoModal()・CDlgAbout::DoModal()・CDlgOpenFile::DoModalSaveDlg()・CDlgCancel::DoModeless()・CDialog::DoModeless()・CPropTypes::DoPropertySheet()・CPropCommon::DoPropertySheet()・CSplitterWnd::DoSplit()・CImageListMgr::Draw()・CTabWnd::DrawCloseBtn()・CPropTypes::DrawColorButton()・CEditView::DrawEOL()・CMenuDrawer::DrawItem()・CPrintPreview::DrawPageText()・CEditView::DrawSelectArea()・CEditView::DrawTabArrow()・COpe::DUMP()・CLayoutMgr::DUMP()・CDocLineMgr::DUMP()・CRecent::EasyCreate()・EditViewTimerProc()・EditViewWndProc()・COpeBlk::Empty()・CMemory::Empty()・CLayoutMgr::Empty()・CFuncInfoArr::Empty()・CDocLineMgr::Empty()・CWSHClient::Error()・CSMacroMgr::Exec()・CMacro::Exec()・CTabWnd::ExecTabCommand()・CShareData::ExpandMetaToFolder()・CEditDoc::ExParam_Evaluate()・CMacroFactory::Ext2Key()・CFileLoad::FileClose()・CEditDoc::FileCloseOpen()・CFileLoad::FileOpen()・CFileLoad::FilePointer()・CEditDoc::FileRead()・CEditDoc::FileWrite()・CSplitBoxWnd::FillSolidRect()・FillSolidRect()・CDlgTagJumpList::find_key()・CRecent::FindItem()・CTabWnd::FindTabIndexByHWND()・RcCvt::font()・CTabWnd::ForceActiveWindow()・CDllHandler::FreeLibrary()・CFuncLookup::Funccode2Name()・SysString::Get()・CDocLineMgr::GetAllData()・GetAppIcon()・GetAppVersionInfo()・CFuncInfoArr::GetAt()・CDocLineMgr::GetBookMarks()・CDlgWinSize::GetData()・CDlgPrintPage::GetData()・CDlgFuncList::GetData()・CDlgFavorite::GetData()・CDlgDiff::GetData()・CPropCommon::GetData_p2()・CPropCommon::GetData_PROP_WIN()・CRecent::GetDataOfItem()・CPrint::GetDefaultPrinter()・CKeyBind::GetDefFuncCode()・CDllHandler::GetDllName()・CDllHandler::GetDllNameInOrder()・CBregexp::GetDllNameInOrder()・CInterfaceObjectTypeInfo::GetDocumentation()・CShareData::GetDocumentType()・CShareData::GetDocumentTypeExt()・CLayoutMgr::GetEndLayoutPos()・GetExedir()・CFileExt::GetExt()・CSMacroMgr::GetFile()・CMRU::GetFileInfo()・CDlgTagJumpList::GetFilePath()・CDocLineMgr::GetFirstLinrStr()・CSMacroMgr::GetFuncInfoByID()・CSMacroMgr::GetFuncInfoByName()・GetGlobalData()・CShareData::GetGroupId()・CTabWnd::GetImageIndex()・CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x()・GetInidir()・GetInidirOrExedir()・CShareData::GetIniFileName()・CShareData::GetIniFileNameDirect()・CNormalProcess::GetInitializeMutex()・CRecent::GetItem()・CKeyWordSetMgr::GetKeyWord()・CMenuDrawer::GetLabel()・CDocLineMgr::GetLineInfo()・CLayoutMgr::GetLineStr()・CDocLineMgr::GetLineStr()・CDocLineMgr::GetLineStrWithoutEOL()・CShareData::GetMacroFilename()・GetMonitorWorkRect()・CSMacroMgr::GetName()・CFileExt::GetName()・CDlgTagJumpList::GetNameByType()・CTabWnd::GetNextGroupWnd()・GetNextLimitedLengthText()・GetNextLine()・CFileLoad::GetNextLineW()・CFileLoad::GetNextLineWB()・CDocLineMgr::GetNextLinrStr()・COpeBlk::GetOpe()・CShareData::GetOpenedWindowArrCore()・CPrint::GetPaperName()・CPrint::GetPaperSize()・CSortedTagJumpList::GetParam()・CTabWnd::GetPrevGroupWnd()・CPrint::GetPrintMetrics()・CMemory::GetPtr()・GetSpecialFolderPath()・CBregexp::GetStringLen()・GetSystemResources()・CTabWnd::GetTabName()・CSMacroMgr::GetTitle()・CShareData::GetTopEditWnd()・CInterfaceObject::GetTypeInfo()・CKeyWordSetMgr::GetTypeName()・CMacro::HandleCommand()・CMacro::HandleFunction()・HokanList_SubclassProc()・CDicMgr::HokanSearch()・CSMacroMgr::Idx2Ptr()・CTabWnd::ImageList_Duplicate()・CPropTypes::Import_KeyHelp()・RcCvt::include()・RcCvt::init()・CShareData::Init()・COpeBlk::Init()・CLayoutMgr::Init()・CEditDoc::Init()・CDocLineMgr::Init()・CPropCommon::InitDialog_PROP_Macro()・CUxTheme::InitDll()・CPPA::InitDll()・CMigemo::InitDll()・CHtmlHelp::InitDll()・CBregexp::InitDll()・CProcess::Initialize()・CNormalProcess::Initialize()・COleLibrary::Initialize()・CControlProcess::Initialize()・CTabWnd::InitImageList()・CPrintPreview::InitPreviewScrollBar()・InitRegexp()・CDocLineMgr::InsertData_CDocLineMgr()・CEditView::InsertData_CEditView()・CLayoutMgr::InsertData_CLayoutMgr()・CLayoutMgr::InsertLineNext()・CDocLineMgr::InsertNode()・CRecent::IsAvailable()・CDllHandler::IsAvailable()・CEditView::IsBracket()・IsDataAvailable()・CEditView::ISearchEnter()・CShareData::IsEditWnd()・CLayoutMgr::IsEndOfLine()・CProcessFactory::IsExistControlProcess()・CRecent::IsFavorite()・IsMailAddress()・CEditDoc::IsModificationForbidden()・CShareData::IsPathOpened()・CSMacroMgr::IsSaveOk()・CProcessFactory::IsValidVersion()・CEditView::KeyWordHelpSearchDict()・CTabWnd::LayoutTab()・Listbox_ADDDATA()・Listbox_INSERTDATA()・CSMacroMgr::Load()・CWSHMacroManager::LoadKeyMacro()・CPPAMacroMgr::LoadKeyMacro()・CKeyMacroMgr::LoadKeyMacro()・CDllHandler::LoadLibrary()・MacroCommand()・MacroError()・CNormalProcess::MainLoop()・CControlProcess::MainLoop()・CEditView::MakeDiffTmpFile()・CEditDoc::MakeFuncList_BookMark()・CEditDoc::MakeFuncList_RuleFile()・CEditDoc::MakeFuncList_VisualBasic()・CBregexp::MakePattern()・CBregexp::MakePatternSub()・CEditDoc::MakeTopicList_asm()・CEditDoc::MakeTopicList_cobol()・CEditDoc::MakeTopicList_txt()・CDocLineMgr::MarkSearchWord()・CBregexp::Match()・CMenuDrawer::MeasureItem()・CEditApp::MessageLoop()・CMigemo::migemo_close()・CMigemo::migemo_get_operator()・CMigemo::migemo_is_enable()・CMigemo::migemo_load()・CMigemo::migemo_open()・CMigemo::migemo_query()・CMigemo::migemo_release()・CMigemo::migemo_set_operator()・CMigemo::migemo_setproc_char2int()・CMigemo::migemo_setproc_int2char()・CRecent::MoveItem()・my_splitpath()・my_strtok()・CMenuDrawer::MyAppendMenu()・MyDialogProc()・MyGetAncestor()・CShareData::MyGetDateFormat()・CShareData::MyGetTimeFormat()・MyInitCommonControls()・MyWinHelp()・CDlgSameColor::OnBnClicked()・CDlgAbout::OnBnClicked()・CPrintPreview::OnChangePrintSetting()・CEditDoc::OnChangeSetting()・CDlgOpenFile::OnCmbDropdown()・CTabWnd::OnDestroy()・CFuncKeyWnd::OnDestroy()・CEditApp::OnDestroy()・CDialog::OnDestroy()・CTabWnd::OnDrawItem()・OnFolderProc()・CPrintPreview::OnHScroll()・CDlgPrintSetting::OnInitDialog()・CDlgFuncList::OnInitDialog()・CDlgFavorite::OnInitDialog()・CDlgCancel::OnInitDialog()・CDlgAbout::OnInitDialog()・CDialog::OnInitDialog()・CTabWnd::OnLButtonDblClk()・CTabWnd::OnLButtonUp()・CSplitterWnd::OnLButtonUp()・CEditView::OnMBUTTONDOWN()・CMenuDrawer::OnMenuChar()・CTabWnd::OnMouseMove()・CSplitterWnd::OnMouseMove()・CPrintPreview::OnMouseMove()・CEditView::OnMOUSEMOVE()・CPrintPreview::OnMouseWheel()・CWnd::OnNcDestroy()・CEditApp::OnNewEditor()・CDlgJump::OnNotify()・CTabWnd::OnPaint()・CPrintPreview::OnPaint()・CEditView::OnPaint()・CPrintPreview::OnPreviewGoPage()・CPrintPreview::OnPreviewZoom()・CEditView::OnRBUTTONUP()・CTabWnd::OnSize()・CPrintPreview::OnSize()・CHokanMgr::OnSize()・CFuncKeyWnd::OnSize()・CEditView::OnSize()・CDlgFuncList::OnSize()・CDialog::OnSize()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CTabWnd::OnTabNotify()・CFuncKeyWnd::OnTimer()・CEditView::OnTimer()・CPrintPreview::OnVScroll()・CEditView::OnXLBUTTONDOWN()・CEditView::OnXRBUTTONDOWN()・CTabWnd::Open()・CFuncKeyWnd::Open()・CEditDoc::OpenFile()・CEditDoc::OpenFileDialog()・CEditApp::OpenNewEditor()・CEditApp::OpenNewEditor2()・CCommandLine::ParseCommandLine()・CFuncLookup::Pos2FuncName()・CShareData::PostMessageToAllEditors()・CLayoutMgr::PrevOrNextWord()・CDocLineMgr::PrevOrNextWord()・CPrint::PrintDlg()・CPrint::PrintOpen()・CPrintPreview::PrintPreviewBar_DlgProc()・PropSheetProc()・PropSheetWndProc()・CPropTypes::PropTypesKeyHelp()・PropTypesP1Proc()・PropTypesP2Proc()・PropTypesP3_newProc()・CPropTypes::PropTypesRegex()・CInterfaceObject::QueryInterface()・CWSHSite::QueryInterface()・CYbInterfaceBase::QueryInterfaceImpl()・CFileLoad::Read()・CFileLoad::ReadBufEmpty()・CDocLineMgr::ReadFile()・CFileLoad::ReadLine()・ReadRegistry()・CEditDoc::ReadRuleFile()・Variant::Receive()・CTabWnd::Refresh()・CDlgFavorite::RefreshList()・CRegexKeyword::RegexIsKeyword()・CPropTypes::RegexKakomiCheck()・CRegexKeyword::RegexKeyCheckSyntax()・CRegexKeyword::RegexKeyCompile()・CRegexKeyword::RegexKeyInit()・CRegexKeyword::RegexKeyLineStart()・CRegexKeyword::RegexKeySetTypes()・CMacroFactory::RegisterCreator()・CDllHandler::RegisterEntries()・CBregexp::ReleaseCompileBuffer()・CShareData::ReorderTab()・CBregexp::Replace()・CDocLineMgr::ReplaceData()・CEditView::ReplaceData_CEditView()・CLayoutMgr::ReplaceData_CLayoutMgr()・CDocLineMgr::ResetAllBookMark()・CDocLineMgr::ResetAllDiffMark()・CDocLineMgr::ResetAllModifyFlag()・ResolveShortcutLink()・CDropTarget::Revoke_DropTarget()・CEditView::RTrimPrevLine()・CSMacroMgr::Save()・CEditDoc::SaveFileDialog()・CESI::ScanEncoding()・CLayoutMgr::Search()・CDicMgr::Search()・CDlgTagJumpList::SearchBestTag()・CDocLineMgr::SearchBookMark()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・CDocLineMgr::SearchDiffMark()・CDocLineMgr::SearchString()・CLayoutMgr::SearchWord()・CDocLineMgr::SearchWord()・CPropTypes::SelectColor()・SelectDir()・CEditDoc::SelectFont()・CShareData::SendMessageToAllEditors()・CEditWnd::SendStatusMessage2IsEffective()・CTabWnd::Separate()・CTabWnd::SeparateGroup()・CShareData::SeparateGroup()・CEditDoc::SetActivePane()・CDocLineMgr::SetBookMarks()・SetClipboardText()・CEditView::SetCurrentColor()・CDlgTagJumpList::SetData()・CDlgPrintSetting::SetData()・CDlgFavorite::SetData()・CDlgCtrlCode::SetData()・CDocLineMgr::SetDiffMarkRange()・RcCvt::setErr()・CRecent::SetFavorite()・CDlgTagJumpList::SetFileName()・CPrintPreview::SetFocusToPrintPreviewBar()・CDlgTagJumpList::SetKeyword()・CLayoutMgr::SetLayoutInfo()・CEditDoc::SetParentCaption()・CDataObject::SetText()・CDlgFuncList::SetTree()・CDlgFuncList::SetTreeJava()・CKeyWordSetMgr::SetTypeName()・CLayoutMgr::ShiftLogicalLineNum()・CTipWnd::Show()・CTabWnd::ShowHideWindow()・CEditView::ShowHokanMgr()・CEditView::ShowKeywordHelp()・CFuncKeyWnd::SizeBox_ONOFF()・sjis_strrchr2()・CEditView::SmartIndent_CPP()・CDlgFuncList::SortTree()・CMemory::SPACEToTAB()・SplitPath_FolderAndFile()・CProcessFactory::StartControlProcess()・CDlgTagJumpList::StartTimer()・CPPA::stdFinishProc()・strcnv()・CUrlWnd::SubclassWindow()・SysString::SysString()・CMemory::TABToSPACE()・CTabWnd::TabWindowNotify()・CTabWnd::TabWndDispatchEvent()・CRecent::Terminate()・CControlProcess::Terminate()・CFuncKeyWnd::Timer_ONOFF()・CMemory::ToHankaku()・CMemory::ToZenkaku()・CShareData::TraceOut()・CDlgTagJumpList::UpdateData()・CKeyWordSetMgr::UpdateKeyWord()・CUrlWnd::UrlWndProc()・usage()・CMemory::UUDECODE()・CEditView::ViewDiffInfo()・CProcessFactory::WaitForInitializedControlProcess()・CLayoutMgr::WhereCurrentWord()・CDocLineMgr::WhereCurrentWord()・CDocLineMgr::WhereCurrentWord_2()・CDocLineMgr::WriteFile()・CProfile::WriteProfile()・CLayoutMgr::XYLogicalToLayout()・CDataObject::~CDataObject()・CDlgFavorite::~CDlgFavorite()・CDlgTagJumpList::~CDlgTagJumpList()・CEditDoc::~CEditDoc()・CEditView::~CEditView()・CEditWnd::~CEditWnd()・CFileExt::~CFileExt()・CFileLoad::~CFileLoad()・CHokanMgr::~CHokanMgr()・CImageListMgr::~CImageListMgr()・CInterfaceObject::~CInterfaceObject()・CLayoutMgr::~CLayoutMgr()・CMenuDrawer::~CMenuDrawer()・CMutex::~CMutex()・COpe::~COpe()・COpeBuf::~COpeBuf()・CPrint::~CPrint()・CPrintPreview::~CPrintPreview()・CRegexKeyword::~CRegexKeyword()・CShareData::~CShareData()・CTipWnd::~CTipWnd()・CWnd::~CWnd()・CWSHClient::~CWSHClient().

#define SAKURA_CORE_API __declspec(dllimport)

global.h の 37 行で定義されています。

#define SetWindowLongPtr SetWindowLong

global.h の 81 行で定義されています。

参照元 CShareData::AddEditWndList()・CTabWnd::Close()・CDlgSameColor::ColorStatic_SubclassProc()・CEditWnd::CreateToolBar()・CWndProc()・CEditView::DispatchEvent()・CDlgInput1::DispatchEvent()・CDlgDebug::DispatchEvent()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p1()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・CPropCommon::DispatchEvent_p2()・CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_p8()・CPropCommon::DispatchEvent_p9()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・CPropTypes::DispatchEvent_Regex()・CHokanMgr::DoModeless()・CTabWnd::LayoutTab()・OFNHookProc()・CDlgSameColor::OnInitDialog()・CDialog::OnInitDialog()・CTabWnd::Open()・CPrintPreview::PrintPreviewBar_DlgProc()・PropSheetProc()・PropSheetWndProc()・CUrlWnd::SubclassWindow()・ToolBarWndProc()・CUrlWnd::UrlWndProc()・CWnd::~CWnd().

#define TRUE 1

global.h の 443 行で定義されています。

参照元 ActivateFrameWindow()・CKeyWordSetMgr::AddKeyWordSet()・CEditView::AdjustScrollBars()・CSMacroMgr::Append()・COpeBlk::AppendOpe()・CShareData::BeReloadWhenExecuteMacro()・BlockingHook()・CFuncKeyWnd::CalcButtonSize()・CSMacroMgr::CanFuncIsKeyMacro()・CLayoutMgr::CaretPos_Log2Phys()・CDlgCompare::CDlgCompare()・CDlgGrep::CDlgGrep()・CEditDoc::CEditDoc()・CEditView::CEditView()・CEditView::ChangeCurRegexp()・CEditDoc::ChangeLayoutParam()・CheckEXT()・CEditDoc::CheckFileTimeStamp()・CheckSystemResources()・CHokanMgr::CHokanMgr()・CLayoutMgr::CLayoutMgr()・CEditApp::CloseAllEditor()・CDlgSameColor::ColorList_SubclassProc()・CEditView::Command_1PageDown()・CEditView::Command_1PageUp()・CEditView::Command_ADDTAIL()・CEditView::Command_BEGIN_BOXSELECT()・CEditView::Command_BEGIN_SELECT()・CEditView::Command_BOOKMARK_NEXT()・CEditView::Command_BOOKMARK_PREV()・CEditView::Command_CANCEL_MODE()・CEditView::Command_CASCADE()・CEditView::Command_CHAR()・CEditView::Command_COMPARE()・CEditView::Command_COPY()・CEditView::Command_COPYLINESWITHLINENUMBER()・CEditView::Command_CUT()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_Diff_Next()・CEditView::Command_Diff_Prev()・CEditView::Command_DUPLICATELINE()・CEditView::Command_EXECKEYMACRO()・CEditView::Command_EXITALLEDITORS()・CEditView::Command_FILECLOSEALL()・CEditView::Command_FILESAVEALL()・CEditView::Command_FONT()・CEditView::Command_FUNCLIST()・CEditView::Command_GOFILEEND()・CEditView::Command_GOLINEEND()・CEditView::Command_GOLINETOP()・CEditView::Command_GROUPCLOSE()・CEditView::Command_HOKAN()・CEditView::Command_IME_CHAR()・CEditView::Command_INDENT()・CEditView::Command_INS_DATE()・CEditView::Command_INS_TIME()・CEditView::Command_INSFILE()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_LineDeleteToStart()・CEditView::Command_OPEN_HfromtoC()・CEditView::Command_PASTE()・CEditView::Command_PUTFILE()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_REPLACE_DIALOG()・CEditView::Command_SEARCH_NEXT()・CEditView::Command_SEARCH_PREV()・CEditView::Command_SELECTALL()・CEditView::Command_SELECTWORD()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR()・CEditView::Command_TILE_H()・CEditView::Command_TILE_V()・CEditView::Command_ToggleKeySearch()・CEditView::Command_TRIM()・CEditView::Command_WndScrollDown()・CEditView::Command_WndScrollUp()・CEditView::Command_WordCut()・CEditView::Command_WordDelete()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::Command_WORDLEFT()・CEditView::Command_WORDRIGHT()・CEditView::ConvMemory()・CEditView::ConvSelectedArea()・CEditView::CopySelectedAllLines()・CEditDoc::Create()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CPrintPreview::CreatePrintPreviewControls()・CEditView::CreateScrollBar()・CEditWnd::CreateToolBar()・CEditApp::CreateTrayIcon()・CSplitBoxWnd::CSplitBoxWnd()・CEditView::Cursor_UPDOWN()・CEditWnd::DestroyStatusBar()・CEditView::DispatchEvent()・CEditApp::DispatchEvent()・CDlgInput1::DispatchEvent()・CDlgDebug::DispatchEvent()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p1()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・CPropCommon::DispatchEvent_p2()・CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_p8()・CPropCommon::DispatchEvent_p9()・CPrintPreview::DispatchEvent_PPB()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・CPropTypes::DispatchEvent_Regex()・CEditView::DispLineNew()・CEditDoc::DoFileLock()・CEditView::DoGrep()・CEditView::DoGrepTree()・CHokanMgr::DoHokan()・CDlgWinSize::DoModal()・CDlgTypeList::DoModal()・CDlgSameColor::DoModal()・CDialog::DoModal()・CDlgOpenFile::DoModal_GetOpenFileName()・CDlgOpenFile::DoModal_GetSaveFileName()・CDlgOpenFile::DoModalSaveDlg()・CDlgReplace::DoModeless()・CDlgFind::DoModeless()・COpeBuf::DoRedo()・CSplitterWnd::DoSplit()・COpeBuf::DoUndo()・CEditView::DragEnter()・CEditView::DrawSelectArea()・CEditView::Drop()・CPropCommon::EnableBackupInput()・CPropCommon::EnableFilePropInput()・CPropCommon::EnableFormatPropInput()・CPropCommon::EnableTabPropInput()・CPropTypes::EnableTypesPropInput()・CPropCommon::EnableWinPropInput()・CSMacroMgr::Exec()・CEditView::ExecCmd()・CTabWnd::ExecTabCommand()・CEditApp::ExitingDlgProc()・CEditDoc::ExParam_Evaluate()・CFileLoad::FileOpen()・CEditDoc::FileRead()・CEditDoc::FileSave()・CEditDoc::FileSaveAs()・CEditDoc::FileSaveAs_Dialog()・CEditDoc::FileWrite()・CTabWnd::ForceActiveWindow()・CEditView::GetAdjustCursorPos()・CEditView::GetColorIndex()・CDlgWinSize::GetData()・CDlgTagsMake::GetData()・CDlgTagJumpList::GetData()・CDlgPrintPage::GetData()・CDlgJump::GetData()・CDlgDiff::GetData()・CDlgCtrlCode::GetData()・CDlgCompare::GetData()・CPropTypes::GetData_KeyHelp()・CPropCommon::GetData_p1()・CPropCommon::GetData_p10()・CPropTypes::GetData_p2()・CPropCommon::GetData_p2()・CPropTypes::GetData_p3_new()・CPropCommon::GetData_p5()・CPropCommon::GetData_p7()・CPropCommon::GetData_p8()・CPropCommon::GetData_PROP_EDIT()・CPropCommon::GetData_PROP_GREP()・CPropCommon::GetData_PROP_Macro()・CPropCommon::GetData_PROP_TAB()・CPropCommon::GetData_PROP_WIN()・CPropTypes::GetData_Regex()・CPrint::GetDefaultPrinter()・CMRU::GetFileInfo()・CNormalProcess::GetInitializeMutex()・GetLongFileName()・CTabWnd::GetNextGroupWnd()・CPrint::GetPaperSize()・CSortedTagJumpList::GetParam()・CTabWnd::GetPrevGroupWnd()・CPrint::GetPrintMetrics()・GetSystemResources()・CMacro::HandleCommand()・CEditView::HandleCommand()・CEditDoc::HandleCommand()・CHokanMgr::Hide()・HokanList_SubclassProc()・CEditDoc::Init()・CEditDoc::InitAllView()・CControlProcess::Initialize()・CShareData::InitKeyword()・CPrintPreview::InitPreviewScrollBar()・CEditView::ISearchBack()・CEditView::ISearchEnter()・CShareData::IsEditWnd()・CEditDoc::IsEnablePaste()・COpeBuf::IsEnableRedo()・COpeBuf::IsEnableUndo()・CMemory::IsEqual()・CEditWnd::IsFuncChecked()・CEditWnd::IsFuncEnable()・IsMailAddress()・CShareData::IsPathOpened()・CSMacroMgr::IsSaveOk()・CEditView::IsSearchString()・IsURL()・CMemory::JIStoSJIS()・CDlgFuncList::Key2Command()・CEditView::KeyWordHelpSearchDict()・CEditWnd::LayoutFuncKey()・CTabWnd::LayoutTab()・CSMacroMgr::Load()・CWSHMacroManager::LoadKeyMacro()・CPPAMacroMgr::LoadKeyMacro()・CMutex::Lock()・CEditView::MakeDiffTmpFile()・CEditView::MoveCursorSelecting()・CEditView::MoveCursorToPoint()・MYBrowseCallbackProc()・CEditView::MyGetClipboardData()・CEditView::MySetClipboardData()・MyWinHelp()・OFNHookProc()・CDlgFavorite::OnActivate()・CHokanMgr::OnBnClicked()・CDlgWinSize::OnBnClicked()・CDlgTypeList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgSameColor::OnBnClicked()・CDlgReplace::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgPrintPage::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・CDlgCancel::OnBnClicked()・CDlgAbout::OnBnClicked()・CDialog::OnBnClicked()・CHokanMgr::OnCbnSelChange()・CDlgPrintSetting::OnCbnSelChange()・CDlgJump::OnCbnSelChange()・CDlgFuncList::OnCbnSelChange()・CDlgDiff::OnCbnSelChange()・CEditDoc::OnChangeSetting()・CDialog::OnContextMenu()・CEditApp::OnDestroy()・CDlgFuncList::OnDestroy()・CDialog::OnDestroy()・CDialog::OnDeviceChange()・CDlgSameColor::OnDrawItem()・CDialog::OnDrawItem()・CEditWnd::OnDropFiles()・CDlgDiff::OnEditChange()・CEditDoc::OnFileClose()・OnFolderProc()・CPrintPreview::OnHScroll()・CDlgTagJumpList::OnInitDialog()・CDlgReplace::OnInitDialog()・CDlgPrintSetting::OnInitDialog()・CDlgGrep::OnInitDialog()・CDialog::OnInitDialog()・CDlgFuncList::OnJump()・CDialog::OnKeyDown()・CHokanMgr::OnKillFocus()・CHokanMgr::OnLbnDblclk()・CDlgTypeList::OnLbnDblclk()・CEditView::OnLBUTTONDBLCLK()・CEditWnd::OnLButtonDown()・CEditWnd::OnLButtonUp()・CEditView::OnLBUTTONUP()・CMenuDrawer::OnMenuChar()・CSplitterWnd::OnMouseMove()・CPrintPreview::OnMouseMove()・CEditWnd::OnMouseMove()・CEditView::OnMOUSEMOVE()・CEditWnd::OnMouseWheel()・CEditView::OnMove()・CEditDoc::OnMove()・CDialog::OnMove()・CDlgTagJumpList::OnNotify()・CDlgPrintSetting::OnNotify()・CDlgJump::OnNotify()・CDlgFuncList::OnNotify()・CDlgFavorite::OnNotify()・CDlgCtrlCode::OnNotify()・CEditView::OnPaint()・CDialog::OnPopupHelp()・CPrintPreview::OnPreviewGoPage()・CPrintPreview::OnPreviewZoom()・CTabWnd::OnRButtonDown()・CEditView::OnSetFocus()・CTabWnd::OnSize()・CPrintPreview::OnSize()・CEditView::OnSize()・CDlgFuncList::OnSize()・CDialog::OnSize()・CDlgPrintSetting::OnSpin()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabNotify()・CEditView::OnTimer()・CDlgTagJumpList::OnTimer()・CDlgPrintSetting::OnTimer()・CDialog::OnTimer()・CPrintPreview::OnVScroll()・CTabWnd::Open()・CFuncKeyWnd::Open()・CEditView::OPEN_ExtFromtoExt()・CEditDoc::OpenPropertySheetTypes()・CEditWnd::PopupWinList()・CShareData::PostMessageToAllEditors()・CDocLineMgr::PrevOrNextWord()・CLayoutMgr::PrevWord()・CPrint::PrintDlg()・CPrint::PrintOpen()・CPrintPreview::PrintPreviewBar_DlgProc()・CEditWnd::PrintPreviewModeONOFF()・CDocLineMgr::ReadFile()・CTabWnd::Refresh()・CRegexKeyword::RegexIsKeyword()・CPropTypes::RegexKakomiCheck()・CRegexKeyword::RegexKeyCheckSyntax()・CRegexKeyword::RegexKeySetTypes()・CDropTarget::Register_DropTarget()・CEditDoc::ReloadCurrentFile()・CDlgWinSize::RenewItemState()・CShareData::ReorderTab()・CShareData::RequestCloseAllEditor()・ResolveShortcutLink()・CEditDoc::RestorePhysPosOfAllView()・CDropTarget::Revoke_DropTarget()・CEditView::RTrimPrevLine()・CSMacroMgr::Save()・CKeyMacroMgr::SaveKeyMacro()・CEditView::ScrollAtV()・CDicMgr::Search()・CDocLineMgr::SearchBookMark()・CDocLineMgr::SearchDiffMark()・CDocLineMgr::SearchNextWordPosition()・CPropTypes::SelectColor()・SelectDir()・CShareData::SendMessageToAllEditors()・CTabWnd::SeparateGroup()・CEditDoc::SetActivePane()・CDlgWinSize::SetData()・CDlgTagsMake::SetData()・CDlgPrintPage::SetData()・CDlgFuncList::SetData()・CDlgFind::SetData()・CDlgExec::SetData()・CDlgDiff::SetData()・CDlgCompare::SetData()・CPropTypes::SetData_KeyHelp()・CPropTypes::SetData_p1()・CPropCommon::SetData_p1()・CPropTypes::SetData_p3_new()・CPropCommon::SetData_p7_KeyWordSet()・CPropCommon::SetData_PROP_EDIT()・CPropCommon::SetData_PROP_WIN()・CEditWnd::SetDebugModeON()・CEditDoc::SetFileInfo()・CEditDoc::SetImeMode()・CKeyWordSetMgr::SetKeyWordCase()・CDlgFuncList::SetListVB()・CEditView::SetSelectionFromReonvert()・CPrint::SettingInitialize()・CDlgFuncList::SetTreeJava()・CTipWnd::Show()・CTabWnd::ShowHideWindow()・CEditView::ShowHokanMgr()・CFuncKeyWnd::SizeBox_ONOFF()・CDlgFuncList::SortTree()・CMemory::SPACEToTAB()・CEditView::SplitBoxOnOff()・CUrlWnd::SubclassWindow()・CTabWnd::TabListMenu()・CTabWnd::TabWindowNotify()・CTabWnd::TabWndDispatchEvent()・CEditView::TagJumpSub()・CEditApp::TerminateApplication()・CMemory::ToHankaku()・CMemory::ToZenkaku()・CUrlWnd::UrlWndProc()・CMemory::UUDECODE()・CEditView::ViewDiffInfo()・CDocLineMgr::WhereCurrentWord_2()・CDocLineMgr::WriteFile().

#define UINT_PTR UINT

global.h の 75 行で定義されています。

#define ULONG_PTR ULONG

global.h の 69 行で定義されています。

参照元 CEditView::Command_HELP_SEARCH()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CDlgInput1::DispatchEvent()・CPropCommon::DispatchEvent_p2()・CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p9()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DispatchEvent_PROP_WIN()・CEditWnd::OnCommand()・CDialog::OnContextMenu()・CDialog::OnPopupHelp().

型定義

typedef struct ColorAttributeData_t ColorAttributeData

列挙型

enum enumBarChangeNotifyType

バーの表示・非表示

列挙型の値:
MYBCN_TOOLBAR
MYBCN_FUNCKEY
MYBCN_TAB
MYBCN_STATUSBAR

global.h の 399 行で定義されています。

enum enumCodeType

列挙型の値:
CODE_SJIS
CODE_JIS
CODE_EUC
CODE_UNICODE
CODE_UTF8
CODE_UTF7
CODE_UNICODEBE
CODE_CODEMAX
CODE_AUTODETECT

global.h の 200 行で定義されています。

enum enumColorIndexType

列挙型の値:
COLORIDX_TEXT
COLORIDX_RULER
COLORIDX_CARET
COLORIDX_CARET_IME
COLORIDX_UNDERLINE
COLORIDX_GYOU
COLORIDX_GYOU_MOD
COLORIDX_TAB
COLORIDX_SPACE
COLORIDX_ZENSPACE
COLORIDX_CTRLCODE
COLORIDX_CRLF
COLORIDX_WRAP
COLORIDX_VERTLINE
COLORIDX_EOF
COLORIDX_DIGIT
COLORIDX_SEARCH
COLORIDX_KEYWORD1
COLORIDX_KEYWORD2
COLORIDX_KEYWORD3
COLORIDX_KEYWORD4
COLORIDX_KEYWORD5
COLORIDX_KEYWORD6
COLORIDX_KEYWORD7
COLORIDX_KEYWORD8
COLORIDX_KEYWORD9
COLORIDX_KEYWORD10
COLORIDX_COMMENT
COLORIDX_SSTRING
COLORIDX_WSTRING
COLORIDX_URL
COLORIDX_REGEX1
COLORIDX_REGEX2
COLORIDX_REGEX3
COLORIDX_REGEX4
COLORIDX_REGEX5
COLORIDX_REGEX6
COLORIDX_REGEX7
COLORIDX_REGEX8
COLORIDX_REGEX9
COLORIDX_REGEX10
COLORIDX_DIFF_APPEND
COLORIDX_DIFF_CHANGE
COLORIDX_DIFF_DELETE
COLORIDX_BRACKET_PAIR
COLORIDX_MARK
COLORIDX_LAST
COLORIDX_BLOCK1
COLORIDX_BLOCK2

global.h の 324 行で定義されています。

enum enumEOLLen

列挙型の値:
LEN_EOL_NONE
LEN_EOL_CRLF
LEN_EOL_LFCR
LEN_EOL_LF
LEN_EOL_CR

global.h の 269 行で定義されています。

enum enumEOLType

列挙型の値:
EOL_NONE
EOL_CRLF
EOL_LFCR
EOL_LF
EOL_CR
EOL_CODEMAX
EOL_UNKNOWN

global.h の 258 行で定義されています。

enum enumOutlineType

列挙型の値:
OUTLINE_C
OUTLINE_CPP
OUTLINE_PLSQL
OUTLINE_TEXT
OUTLINE_JAVA
OUTLINE_COBOL
OUTLINE_ASM
OUTLINE_PERL
OUTLINE_VB
OUTLINE_WZTXT
OUTLINE_HTML
OUTLINE_TEX
OUTLINE_FILE
OUTLINE_PYTHON
OUTLINE_CODEMAX
OUTLINE_BOOKMARK
OUTLINE_DEFAULT
OUTLINE_UNKNOWN

global.h の 235 行で定義されています。

enum enumShowDlg

列挙型の値:
SHOW_NORMAL
SHOW_RELOAD
SHOW_TOGGLE

global.h の 279 行で定義されています。

enum enumSmartIndentType

列挙型の値:
SMARTINDENT_NONE
SMARTINDENT_CPP

global.h の 313 行で定義されています。

enum enumTabWndNotifyType

タブウインドウ用メッセージサブコマンド

列挙型の値:
TWNT_REFRESH
TWNT_ADD
TWNT_DEL
TWNT_ORDER
TWNT_FILE
TWNT_MODE_ENABLE
TWNT_MODE_DISABLE
TWNT_WNDPL_ADJUST

global.h の 387 行で定義されています。

変数

const int COLUMNSPACE_MAX = 64

global.h の 438 行で定義されています。

参照元 CPropTypes::GetData_p1().

SAKURA_CORE_API const ColorAttributeData g_ColorAttributeArr[]

iniの色設定を番号でなく文字列で書き出す。(added by Stonee, 2001/01/12, 2001/01/15) 配列の順番は共有メモリ中のデータの順番と一致している。

覚え書き:
数値による内部的対応はglobal.hで行っているので参照のこと。(Mar. 7, 2001 jepro) CShareDataからglobalに移動

global.cpp の 128 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::DrawColorListItem()・GetColorIndexByName()・GetColorNameByIndex()・CShareData::IO_ColorSet()・CDlgSameColor::OnSelChangeListColors()・CPropTypes::SetData_Regex().

SAKURA_CORE_API const unsigned char gm_keyword_char[256]

キーワードキャラクタ

global.cpp の 96 行で定義されています。

SAKURA_CORE_API const int gm_nCodeComboNameArrNum

global.cpp の 79 行で定義されています。

参照元 OFNHookProc()・CDlgGrep::OnInitDialog().

SAKURA_CORE_API const int gm_nCodeComboValueArr[]

global.cpp の 58 行で定義されています。

参照元 OFNHookProc()・CDlgGrep::OnInitDialog().

SAKURA_CORE_API const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM]

行終端子の配列

global.cpp の 87 行で定義されています。

参照元 CEOL::GetEOLType()・CEOL::GetEOLTypeUni()・CEOL::GetEOLTypeUniBE().

SAKURA_CORE_API const char* const gm_pszCodeComboNameArr[]

global.cpp の 68 行で定義されています。

参照元 OFNHookProc()・CDlgGrep::OnInitDialog().

SAKURA_CORE_API const char* gm_pszCodeNameArr_1[]

global.cpp の 28 行で定義されています。

参照元 CShareData::IsPathOpened()・CDlgProperty::SetData().

SAKURA_CORE_API const char* gm_pszCodeNameArr_2[]

global.cpp の 38 行で定義されています。

参照元 CEditView::DrawCaretPosInfo().

SAKURA_CORE_API const char* gm_pszCodeNameArr_3[]

global.cpp の 48 行で定義されています。

参照元 CMRU::CreateMenu()・CEditView::DoGrepFile()・CDlgCompare::SetData()・CDlgDiff::SetData()・CEditWnd::WinListMenu().

SAKURA_CORE_API const char* GSTR_APPNAME

global.cpp の 24 行で定義されています。

参照元 CMemory::AllocBuffer()・COpeBlk::AppendOpe()・CEditApp::CEditApp()・CEditApp::CloseAllEditor()・CEditView::Command_ACTIVATE_SQLPLUS()・CEditView::Command_COMPARE()・CEditView::Command_Diff()・CEditView::Command_EXECKEYMACRO()・CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP()・CEditView::Command_FILE_REOPEN()・CEditView::Command_GREP()・CEditView::Command_HOKAN()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::Command_PUTFILE()・CEditView::Command_RECKEYMACRO()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_SAVEKEYMACRO()・CEditView::Command_TAGJUMPBACK()・CEditApp::Create()・CEditWnd::Create()・CSplitterWnd::Create()・CEditWnd::CreateToolBar()・CEditApp::CreateTrayIcon()・CPropTypes::DispatchEvent_KeyHelp()・CPropCommon::DispatchEvent_p1()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropTypes::DispatchEvent_Regex()・CDlgOpenFile::DlgOpenFail()・CEditDoc::DoFileLock()・CEditDoc::FileRead()・CEditDoc::FileSave()・CEditDoc::FileSaveAs_Dialog()・CDocLineMgr::GetAllData()・CDlgGrep::GetData()・CNormalProcess::GetInitializeMutex()・CPropTypes::Import_KeyHelp()・CControlProcess::Initialize()・CProcess::Initialize()・InitRegexp()・CShareData::IsPathOpened()・CProcessFactory::IsValidVersion()・Listbox_ADDDATA()・Listbox_INSERTDATA()・CEditView::MakeDiffTmpFile()・CMenuDrawer::MyAppendMenu()・CDlgFavorite::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgReplace::OnBnClicked()・CEditDoc::OnFileClose()・CPrintPreview::OnPrint()・CEditDoc::OpenFile()・CEditApp::OpenNewEditor()・CEditApp::OpenNewEditor2()・CPropCommon::p7_Clean_List_KeyWord()・CEditWnd::PrintPreviewModeONOFF()・PropSheetWndProc()・CDropTarget::Register_DropTarget()・CPropCommon::SetListViewItem_FILENAME()・CProcessFactory::StartControlProcess()・CEditApp::TerminateApplication()・CEditWnd::Timer_ONOFF()・CFuncKeyWnd::Timer_ONOFF()・CEditView::ViewDiffInfo()・CProcessFactory::WaitForInitializedControlProcess()・CDocLineMgr::WriteFile().

const int IDC_SPIN_nRulerHeight_MAX = 32

global.h の 434 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::GetData_PROP_WIN().

const int IDC_SPIN_nRulerHeight_MIN = 2

< 設定値の上限・下限

global.h の 433 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::GetData_PROP_WIN().

const int LINEREADBUFSIZE = 10240

ファイルから1行分データを読み込むときのバッファサイズ

global.h の 462 行で定義されています。

参照元 CPPAMacroMgr::LoadKeyMacro()・CKeyMacroMgr::LoadKeyMacro()・CEditDoc::ReadRuleFile()・CDicMgr::Search().

const int LINESPACE_MAX = 128

global.h の 437 行で定義されています。

参照元 CPropTypes::GetData_p1().

const int MAXLINESIZE = 10240

1行の桁数の最大値

global.h の 459 行で定義されています。

参照元 CLayoutMgr::ChangeLayoutParam()・CPropTypes::GetData_p1()・CEditView::GetWrapMode()・CShareData::InitTypeConfig().

const int MINLINESIZE = 10

1行の桁数の最小値

global.h の 460 行で定義されています。

参照元 CPropTypes::GetData_p1().

SAKURA_CORE_API const COLORREF SELECTEDAREA_RGB

選択領域描画用パラメータ

global.cpp の 83 行で定義されています。

参照元 CEditView::DispTextSelected()・CEditView::DrawSelectArea().

SAKURA_CORE_API const int SELECTEDAREA_ROP2

global.cpp の 84 行で定義されています。

参照元 CEditView::DispTextSelected()・CEditView::DrawSelectArea().

Sakura-Editorに対してSat Oct 27 02:26:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: global.h ソースファイル

global.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2000, Stonee, genta, jepro, MIK
00009     Copyright (C) 2001, jepro, hor, MIK
00010     Copyright (C) 2002, MIK, genta, aroka, YAZAKI, Moca, KK, novice
00011     Copyright (C) 2003, MIK, genta, zenryaku, naoh
00012     Copyright (C) 2004, Kazika
00013     Copyright (C) 2005, MIK, Moca, genta
00014     Copyright (C) 2006, aroka, ryoji
00015     Copyright (C) 2007, ryoji
00016
00017     This source code is designed for sakura editor.
00018     Please contact the copyright holder to use this code for other purpose.
00019 */
00020
00021 #ifndef _GLOBAL_H_
00022 #define _GLOBAL_H_
00023
00025 #include <windows.h>
00026 #include <tchar.h>
00027
00028 // 以下の ifdef ブロックは DLL から簡単にエクスポートさせるマクロを作成する標準的な方法です。
00029 // この DLL 内のすべてのファイルはコマンドラインで定義された SAKURA_CORE_EXPORTS シンボル
00030 // でコンパイルされます。このシンボルはこの DLL が使用するどのプロジェクト上でも未定義でなけ
00031 // ればなりません。この方法ではソースファイルにこのファイルを含むすべてのプロジェクトが DLL
00032 // からインポートされたものとして SAKURA_CORE_API 関数を参照し、そのためこの DLL はこのマク
00033 // ロで定義されたシンボルをエクスポートされたものとして参照します。
00034 #ifdef SAKURA_CORE_EXPORTS
00035 #define SAKURA_CORE_API __declspec(dllexport)
00036 #else
00037 #define SAKURA_CORE_API __declspec(dllimport)
00038 #endif
00039
00040 #ifdef SAKURA_NO_DLL    //@@@ 2001.12.30 add MIK
00041 #undef SAKURA_CORE_API
00042 #define SAKURA_CORE_API
00043 #endif  //SAKURA_NO_DLL
00044
00045 #if defined(__BORLANDC__)
00046 #define __forceinline
00047 #define _itoa itoa
00048 #define _stricmp stricmp
00049 #define _memicmp memicmp
00050 #ifndef __max
00051 #define __max(a,b)  (((a) > (b)) ? (a) : (b))
00052 #endif
00053 #ifndef __min
00054 #define __min(a,b)  (((a) < (b)) ? (a) : (b))
00055 #endif
00056 #define __access access
00057 #ifndef STRICT
00058 #define STRICT
00059 #endif
00060 #endif
00061
00062 //  Sep. 22, 2003 MIK
00063 //  古いSDK対策．新しいSDKでは不要
00064 #ifndef _WIN64
00065 #ifndef DWORD_PTR
00066 #define DWORD_PTR DWORD
00067 #endif
00068 #ifndef ULONG_PTR
00069 #define ULONG_PTR ULONG
00070 #endif
00071 #ifndef LONG_PTR
00072 #define LONG_PTR LONG
00073 #endif
00074 #ifndef UINT_PTR
00075 #define UINT_PTR UINT
00076 #endif
00077 #ifndef INT_PTR
00078 #define INT_PTR INT
00079 #endif
00080 #ifndef SetWindowLongPtr
00081 #define SetWindowLongPtr SetWindowLong
00082 #endif
00083 #ifndef GetWindowLongPtr
00084 #define GetWindowLongPtr GetWindowLong
00085 #endif
00086 #ifndef DWLP_USER
00087 #define DWLP_USER DWL_USER
00088 #endif
00089 #ifndef GWLP_WNDPROC
00090 #define GWLP_WNDPROC GWL_WNDPROC
00091 #endif
00092 #ifndef GWLP_USERDATA
00093 #define GWLP_USERDATA GWL_USERDATA
00094 #endif
00095 #ifndef GWLP_HINSTANCE
00096 #define GWLP_HINSTANCE GWL_HINSTANCE
00097 #endif
00098 #endif  //_WIN64
00099
00100 #ifndef COLOR_MENUHILIGHT
00101 #define COLOR_MENUHILIGHT 29
00102 #endif
00103 #ifndef COLOR_MENUBAR
00104 #define COLOR_MENUBAR 30
00105 #endif
00106
00107
00108 //Oct. 31, 2000 JEPRO TeX Keyword のために'\'を追加 //Nov. 9, 2000 JEPRO HSP Keyword のために'@'を追加
00109 //#define IS_KEYWORD_CHAR(c) ((c) == '#' || (c) == '$' || __iscsym( (c) ))
00110 //#define IS_KEYWORD_CHAR(c) ((c) == '#'/*35*/ || (c) == '$'/*36*/ || (c) == '@'/*64*/ || (c) == '\\'/*92*/ || __iscsym( (c) ))
00111 SAKURA_CORE_API extern const unsigned char gm_keyword_char[256];    //@@@ 2002.04.27
00112 #define IS_KEYWORD_CHAR(c)  ((int)(gm_keyword_char[(unsigned char)((c) & 0xff)]))   //@@@ 2002.04.27 ロケールに依存しない
00113
00114
00115 SAKURA_CORE_API extern const char* GSTR_APPNAME;
00116
00117
00118 #ifdef _DEBUG
00119     #ifndef GSTR_EDITWINDOWNAME
00120     #define GSTR_EDITWINDOWNAME "TextEditorWindow_DEBUG"
00121     #endif
00122 #else
00123     #ifndef GSTR_EDITWINDOWNAME
00124     #define GSTR_EDITWINDOWNAME "TextEditorWindow"
00125     #endif
00126 #endif
00127
00128 //20020108 aroka コントロールプロセスと起動処理のためにミューテックス名を追加
00129 // 2006.04.10 ryoji コントロールプロセス初期化完了を示すイベントフラグ名を追加
00130 #ifdef _DEBUG
00131     #ifndef GSTR_SYNCOBJ_SAKURA
00132     #define GSTR_SYNCOBJ_SAKURA
00133     #define GSTR_MUTEX_SAKURA "MutexSakuraEditor_DEBUG"
00134     #define GSTR_MUTEX_SAKURA_CP _T("MutexSakuraEditorCP_DEBUG")
00135     #define GSTR_EVENT_SAKURA_CP_INITIALIZED _T("EventSakuraEditorCPInitialized_DEBUG")
00136     #define GSTR_MUTEX_SAKURA_INIT _T("MutexSakuraEditorInit_DEBUG")
00137     #define GSTR_MUTEX_SAKURA_EDITARR _T("MutexSakuraEditorEditArr_DEBUG")
00138     #endif
00139 #else
00140     #ifndef GSTR_SYNCOBJ_SAKURA
00141     #define GSTR_SYNCOBJ_SAKURA
00142     #define GSTR_MUTEX_SAKURA "MutexSakuraEditor"
00143     #define GSTR_MUTEX_SAKURA_CP _T("MutexSakuraEditorCP")
00144     #define GSTR_EVENT_SAKURA_CP_INITIALIZED _T("EventSakuraEditorCPInitialized")
00145     #define GSTR_MUTEX_SAKURA_INIT _T("MutexSakuraEditorInit")
00146     #define GSTR_MUTEX_SAKURA_EDITARR _T("MutexSakuraEditorEditArr")
00147     #endif
00148 #endif
00149
00150 #ifdef _DEBUG
00151     #ifndef GSTR_CEDITAPP
00152 #define GSTR_CEDITAPP "CEditApp_DEBUG"
00153     #endif
00154 #else
00155     #ifndef GSTR_CEDITAPP
00156     #define GSTR_CEDITAPP "CEditApp"
00157     #endif
00158 #endif
00159
00160 #ifdef _DEBUG
00161     #ifndef GSTR_CSHAREDATA
00162     #define GSTR_CSHAREDATA "CShareData_DEBUG"
00163     #endif
00164 #else
00165     #ifndef GSTR_CSHAREDATA
00166     #define GSTR_CSHAREDATA "CShareData"
00167     #endif
00168 #endif
00169
00170 //  Dec. 2, 2002 genta
00171 //  固定ファイル名
00172 #define FN_APP_ICON "my_appicon.ico"
00173 #define FN_GREP_ICON "my_grepicon.ico"
00174 #define FN_TOOL_BMP "my_icons.bmp"
00175
00176 //  標準アプリケーションアイコンリソース名
00177 #ifdef _DEBUG
00178     #define ICON_DEFAULT_APP IDI_ICON_DEBUG
00179     #define ICON_DEFAULT_GREP IDI_ICON_GREP
00180 #else
00181     #define ICON_DEFAULT_APP IDI_ICON_STD
00182     #define ICON_DEFAULT_GREP IDI_ICON_GREP
00183 #endif
00184
00185 //#ifndef   GSTR_REG_ROOTPATH
00186 //#define   GSTR_REG_ROOTPATH "Software\\BugSoft\\sakura"
00187 //#endif
00188
00189
00190 /* ウィンドウのID */
00191 #define IDW_STATUSBAR 123
00192
00193
00194 #define IDM_SELWINDOW       10000
00195 #define IDM_SELMRU          11000
00196 #define IDM_SELOPENFOLDER   12000
00197
00198
00199 /* 文字コードセット種別 */
00200 SAKURA_CORE_API enum enumCodeType {
00201     CODE_SJIS,              /* SJIS */
00202     CODE_JIS,               /* JIS */
00203     CODE_EUC,               /* EUC */
00204     CODE_UNICODE,           /* Unicode */
00205     CODE_UTF8,              /* UTF-8 */
00206     CODE_UTF7,              /* UTF-7 */
00207     CODE_UNICODEBE,         /* Unicode BigEndian */
00208     CODE_CODEMAX,
00209     CODE_AUTODETECT = 99    /* 文字コード自動判別 */
00210 };
00211
00212 SAKURA_CORE_API extern const char* gm_pszCodeNameArr_1[];
00213 SAKURA_CORE_API extern const char* gm_pszCodeNameArr_2[];
00214 SAKURA_CORE_API extern const char* gm_pszCodeNameArr_3[];
00215
00216 /* コンボボックス用 自動判別を含む配列 */
00217 SAKURA_CORE_API extern const int gm_nCodeComboValueArr[];
00218 SAKURA_CORE_API extern const char* const gm_pszCodeComboNameArr[];
00219 SAKURA_CORE_API extern const int gm_nCodeComboNameArrNum;
00220
00221 //const char* GetCodeTypeName( enumCodeType nCodeTYpe )
00222 //{
00223 //  const char* pszCodeTypeNameArr[] = {
00224 //      "SJIS",
00225 //      "JIS",
00226 //      "EUC",
00227 //      "Unicode",
00228 //      "UTF-8",
00229 //      "UTF-7"
00230 //  };
00231 //  return pszCodeTypeNameArr[nCodeTYpe];
00232 //}
00233
00234 /* アウトライン解析の種類 */
00235 SAKURA_CORE_API enum enumOutlineType {
00236     OUTLINE_C,
00237     OUTLINE_CPP,
00238     OUTLINE_PLSQL,
00239     OUTLINE_TEXT,
00240     OUTLINE_JAVA,
00241     OUTLINE_COBOL,
00242     OUTLINE_ASM,
00243     OUTLINE_PERL,   //  Sep. 8, 2000 genta
00244     OUTLINE_VB, //  June 23, 2001 N.Nakatani
00245     OUTLINE_WZTXT,      // 2003.05.20 zenryaku 階層付テキストアウトライン解析
00246     OUTLINE_HTML,       // 2003.05.20 zenryaku HTMLアウトライン解析
00247     OUTLINE_TEX,        // 2003.07.20 naoh TeXアウトライン解析
00248     OUTLINE_FILE,       //  2002.04.01 YAZAKI ルールファイル用
00249     OUTLINE_PYTHON,     //  2007.02.08 genta Pythonアウトライン解析
00250     OUTLINE_CODEMAX,
00251     OUTLINE_BOOKMARK,   //  2001.12.03 hor
00252     OUTLINE_DEFAULT =-1,//  2001.12.03 hor
00253     OUTLINE_UNKNOWN = 99
00254 };
00255
00256 // 2002/09/22 Moca EOL_CRLF_UNICODEを廃止
00257 /* 行終端子の種類 */
00258 SAKURA_CORE_API enum enumEOLType {
00259     EOL_NONE,
00260     EOL_CRLF,
00261     EOL_LFCR,
00262     EOL_LF,
00263     EOL_CR,
00264     EOL_CODEMAX,
00265     EOL_UNKNOWN = -1
00266 };
00267
00268 /* 行終端子のデータ長 */
00269 SAKURA_CORE_API enum enumEOLLen {
00270     LEN_EOL_NONE            = 0,
00271     LEN_EOL_CRLF            = 2,
00272     LEN_EOL_LFCR            = 2,
00273     LEN_EOL_LF              = 1,
00274     LEN_EOL_CR              = 1
00275 //  LEN_EOL_UNKNOWN     0
00276 };
00277
00278 /* ダイアログ表示方法 */ // アウトラインウィンドウ用に作成 20060201 aroka
00279 SAKURA_CORE_API enum enumShowDlg {
00280     SHOW_NORMAL         = 0,
00281     SHOW_RELOAD         = 1,
00282     SHOW_TOGGLE         = 2,
00283 };
00284
00285
00286 #define EOL_TYPE_NUM    5
00287
00288 /* 行終端子の配列 */
00289 SAKURA_CORE_API extern const enumEOLType gm_pnEolTypeArr[EOL_TYPE_NUM];
00290
00291 //  May 15, 2000 genta
00292 //  CEOLへ移動
00293 //  From Here
00294 /* 行終端子のデータの配列 */
00295 // SAKURA_CORE_API extern const char* gm_pszEolDataArr[EOL_TYPE_NUM];
00296
00297 /* 行終端子のデータ長の配列 */
00298 // SAKURA_CORE_API extern const int gm_pnEolLenArr[EOL_TYPE_NUM];
00299
00300 /* 行終端子の表示名の配列 */
00301 // SAKURA_CORE_API extern const char* gm_pszEolNameArr[EOL_TYPE_NUM];
00302
00303 /* 行終端子の種類を調べる */
00304 // SAKURA_CORE_API enumEOLType GetEOLType( const char*, int );
00305 //  To Here
00306
00307 /* 選択領域描画用パラメータ */
00308 SAKURA_CORE_API extern const COLORREF   SELECTEDAREA_RGB;
00309 SAKURA_CORE_API extern const int        SELECTEDAREA_ROP2;
00310
00311
00312 /* スマートインデント種別 */
00313 SAKURA_CORE_API enum enumSmartIndentType {
00314     SMARTINDENT_NONE,
00315     SMARTINDENT_CPP
00316 };
00317
00318
00319
00320
00321 // Stonee 注： 2000/01/12
00322 // ここを変更したときは、global.cpp のg_ColorAttributeArrの定義も変更して下さい。
00323 //  From Here Sept. 18, 2000 JEPRO 順番を大幅に入れ替えた
00324 SAKURA_CORE_API enum enumColorIndexType {
00325     COLORIDX_TEXT       = 0,    /* テキスト */
00326     COLORIDX_RULER      = 1,    /* ルーラー */
00327     COLORIDX_CARET      = 2,    /* キャレット */    // 2006.12.07 ryoji
00328     COLORIDX_CARET_IME  = 3,    /* IMEキャレット */ // 2006.12.07 ryoji
00329     COLORIDX_UNDERLINE  = 4,    /* カーソル行アンダーライン */
00330     COLORIDX_GYOU       = 5,    /* 行番号 */
00331     COLORIDX_GYOU_MOD   = 6,    /* 行番号(変更行) */
00332     COLORIDX_TAB        = 7,    /* TAB記号 */
00333     COLORIDX_SPACE      = 8,    /* 半角空白 */ //2002.04.28 Add by KK 以降全て+1
00334     COLORIDX_ZENSPACE   = 9,    /* 日本語空白 */
00335     COLORIDX_CTRLCODE   = 10,   /* コントロールコード */
00336     COLORIDX_CRLF       = 11,   /* 改行記号 */
00337     COLORIDX_WRAP       = 12,   /* 折り返し記号 */
00338     COLORIDX_VERTLINE   = 13,   /* 指定桁縦線 */    // 2005.11.08 Moca
00339     COLORIDX_EOF        = 14,   /* EOF記号 */
00340     COLORIDX_DIGIT      = 15,   /* 半角数値 */  //@@@ 2001.02.17 by MIK //色設定Ver.3からユーザファイルに対しては文字列で処理しているのでリナンバリングしてもよい. Mar. 7, 2001 JEPRO noted
00341     COLORIDX_SEARCH     = 16,   /* 検索文字列 */
00342     COLORIDX_KEYWORD1   = 17,   /* 強調キーワード1 */ // 2002/03/13 novice
00343     COLORIDX_KEYWORD2   = 18,   /* 強調キーワード2 */ // 2002/03/13 novice  //MIK ADDED
00344     COLORIDX_KEYWORD3   = 19,   /* 強調キーワード3 */ // 2005.01.13 MIK 3-10 added
00345     COLORIDX_KEYWORD4   = 20,   /* 強調キーワード4 */
00346     COLORIDX_KEYWORD5   = 21,   /* 強調キーワード5 */
00347     COLORIDX_KEYWORD6   = 22,   /* 強調キーワード6 */
00348     COLORIDX_KEYWORD7   = 23,   /* 強調キーワード7 */
00349     COLORIDX_KEYWORD8   = 24,   /* 強調キーワード8 */
00350     COLORIDX_KEYWORD9   = 25,   /* 強調キーワード9 */
00351     COLORIDX_KEYWORD10  = 26,   /* 強調キーワード10 */
00352     COLORIDX_COMMENT    = 27,   /* 行コメント */                        //Dec. 4, 2000 shifted by MIK
00353     COLORIDX_SSTRING    = 28,   /* シングルクォーテーション文字列 */    //Dec. 4, 2000 shifted by MIK
00354     COLORIDX_WSTRING    = 29,   /* ダブルクォーテーション文字列 */      //Dec. 4, 2000 shifted by MIK
00355     COLORIDX_URL        = 30,   /* URL */                               //Dec. 4, 2000 shifted by MIK
00356     COLORIDX_REGEX1     = 31,   /* 正規表現キーワード1 */  //@@@ 2001.11.17 add MIK
00357     COLORIDX_REGEX2     = 32,   /* 正規表現キーワード2 */  //@@@ 2001.11.17 add MIK
00358     COLORIDX_REGEX3     = 33,   /* 正規表現キーワード3 */  //@@@ 2001.11.17 add MIK
00359     COLORIDX_REGEX4     = 34,   /* 正規表現キーワード4 */  //@@@ 2001.11.17 add MIK
00360     COLORIDX_REGEX5     = 35,   /* 正規表現キーワード5 */  //@@@ 2001.11.17 add MIK
00361     COLORIDX_REGEX6     = 36,   /* 正規表現キーワード6 */  //@@@ 2001.11.17 add MIK
00362     COLORIDX_REGEX7     = 37,   /* 正規表現キーワード7 */  //@@@ 2001.11.17 add MIK
00363     COLORIDX_REGEX8     = 38,   /* 正規表現キーワード8 */  //@@@ 2001.11.17 add MIK
00364     COLORIDX_REGEX9     = 39,   /* 正規表現キーワード9 */  //@@@ 2001.11.17 add MIK
00365     COLORIDX_REGEX10    = 40,   /* 正規表現キーワード10 */  //@@@ 2001.11.17 add MIK
00366     COLORIDX_DIFF_APPEND = 41,  /* DIFF追加 */  //@@@ 2002.06.01 MIK
00367     COLORIDX_DIFF_CHANGE = 42,  /* DIFF追加 */  //@@@ 2002.06.01 MIK
00368     COLORIDX_DIFF_DELETE = 43,  /* DIFF追加 */  //@@@ 2002.06.01 MIK
00369     COLORIDX_BRACKET_PAIR = 44, /* 対括弧 */    // 02/09/18 ai Add
00370     COLORIDX_MARK       = 45,   /* ブックマーク */  // 02/10/16 ai Add
00371
00372     //カラーの最後
00373     COLORIDX_LAST       = 46,   //Dec. 4, 2000 @@@2001.02.17 renumber by MIK                /* 2002/10/16 ai Mod 34→35 */
00374
00375     //カラー表示制御用
00376     COLORIDX_BLOCK1     = 47,   /* ブロックコメント1(文字色と背景色は行コメントと同じ) */   /* 02/10/16 ai Mod 35→36 */
00377     COLORIDX_BLOCK2     = 48    /* ブロックコメント2(文字色と背景色は行コメントと同じ) */   /* 02/10/16 ai Mod 36→37 */
00378
00379     //1000-1099 : カラー表示制御用(正規表現キーワード)
00380 };
00381 //  To Here Sept. 18, 2000
00382
00383
00384
00385 //@@@ From Here 2003.05.31 MIK
00387 SAKURA_CORE_API enum enumTabWndNotifyType {
00388     TWNT_REFRESH    = 0,        //再表示
00389     TWNT_ADD        = 1,        //ウインドウ登録
00390     TWNT_DEL        = 2,        //ウインドウ削除
00391     TWNT_ORDER      = 3,        //ウインドウ順序変更
00392     TWNT_FILE       = 4,        //ファイル名変更
00393     TWNT_MODE_ENABLE= 5,        //タブモード有効化  //2004.07.14 Kazika 追加
00394     TWNT_MODE_DISABLE= 6,       //タブモード無効化  //2004.08.27 Kazika 追加
00395     TWNT_WNDPL_ADJUST= 7,       //ウィンドウ位置合わせ  // 2007.04.03 ryoji 追加
00396 };
00397
00399 SAKURA_CORE_API enum enumBarChangeNotifyType {
00400     MYBCN_TOOLBAR   = 0,        //ツールバー
00401     MYBCN_FUNCKEY   = 1,        //ファンクションキー
00402     MYBCN_TAB       = 2,        //タブ
00403     MYBCN_STATUSBAR = 3,        //ステータスバー
00404 };
00405 //@@@ To Here 2003.05.31 MIK
00406
00407 //タブで使うカスタムメニューのインデックス  //@@@ 2003.06.13 MIK
00408 #define CUSTMENU_INDEX_FOR_TABWND       24
00409 //右クリックメニューで使うカスタムメニューのインデックス    //@@@ 2003.06.13 MIK
00410 #define CUSTMENU_INDEX_FOR_RBUTTONUP    0
00411
00412
00414 //@@@ From Here 2006.12.18 ryoji
00415 #define COLOR_ATTRIB_FORCE_DISP     0x00000001
00416 //#define COLOR_ATTRIB_NO_TEXT      0x00000010  予約値
00417 #define COLOR_ATTRIB_NO_BACK        0x00000020
00418 #define COLOR_ATTRIB_NO_BOLD        0x00000100
00419 #define COLOR_ATTRIB_NO_UNDERLINE   0x00000200
00420 //#define COLOR_ATTRIB_NO_ITALIC        0x00000400  予約値
00421 #define COLOR_ATTRIB_NO_EFFECTS     0x00000F00
00422
00423 typedef struct ColorAttributeData_t{
00424     char* szName;
00425     unsigned int fAttribute;
00426 } ColorAttributeData;
00427
00428 SAKURA_CORE_API extern const ColorAttributeData g_ColorAttributeArr[];
00429 //@@@ To Here 2006.12.18 ryoji
00430
00432 //  ルーラの高さ
00433 const int IDC_SPIN_nRulerHeight_MIN = 2;
00434 const int IDC_SPIN_nRulerHeight_MAX = 32;
00435
00436 // Feb. 18, 2003 genta 最大値の定数化と値変更
00437 const int LINESPACE_MAX = 128;
00438 const int COLUMNSPACE_MAX = 64;
00439
00440
00441 // novice 2002/09/14
00442 #ifndef TRUE
00443 #define TRUE 1
00444 #endif
00445
00446 #ifndef FALSE
00447 #define FALSE 0
00448 #endif
00449
00450 #ifndef NULL
00451 #define NULL 0
00452 #endif
00453
00454 #ifndef BOOL
00455 #define BOOL    int
00456 #endif
00457
00458 //  Aug. 14, 2005 genta 定数定義追加
00459 const int MAXLINESIZE   = 10240;
00460 const int MINLINESIZE   = 10;
00461
00462 const int LINEREADBUFSIZE   = 10240;
00463
00465 #endif /* _GLOBAL_H_ */
00466
00467
00468 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Keycode.h

Keycode.h

キーコード定義 [詳細]

#include <windows.h>
#include "funccode.h"

Keycode.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | _SHIFT 0x00000001
#define | _CTRL 0x00000002
#define | _ALT 0x00000004

説明

キーコード定義

作者:
Norio Nakatani

Keycode.h で定義されています。

マクロ定義

#define _ALT 0x00000004

Keycode.h の 23 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・getCtrlKeyState()・CPropCommon::p5_ChangeKeyList().

#define _CTRL 0x00000002

Keycode.h の 22 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・getCtrlKeyState()・CPropCommon::p5_ChangeKeyList().

#define _SHIFT 0x00000001

Keycode.h の 21 行で定義されています。

参照元 CKeyBind::CreateKeyBindList()・CPropCommon::DispatchEvent_p5()・getCtrlKeyState()・CKeyBind::GetKeyStr()・HokanList_SubclassProc()・CPropCommon::p5_ChangeKeyList().

Sakura-Editorに対してSat Oct 27 02:26:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: Keycode.h ソースファイル

Keycode.h

説明を見る。
00001
00006 /*
00007     Copyright (C) 1998-2001, Norio Nakatani
00008     Copyright (C) 2002, aroka
00009
00010     This source code is designed for sakura editor.
00011     Please contact the copyright holder to use this code for other purpose.
00012 */
00013
00014 #ifndef _KEYCODE_H_
00015 #define _KEYCODE_H_
00016
00017
00018 #include <windows.h>
00019 #include "funccode.h"
00020
00021 #define _SHIFT  0x00000001
00022 #define _CTRL   0x00000002
00023 #define _ALT    0x00000004
00024
00025 /* キーコードの定義 */
00026 /* マウス操作 */
00027 // 2002/2/10 aroka 未使用
00028 //#define   KEY_LBUTTONCLK   VK_LBUTTON
00029 //#define   KEY_LBUTTONDBLCLK 0x00000200
00030 //#define   KEY_RBUTTONCLK   VK_RBUTTON
00031 //#define   KEY_RBUTTONDBLCLK 0x00000400
00032
00033
00034
00036 #endif /* _KEYCODE_H_ */
00037
00038
00039 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: mrc2brc.cpp

mrc2brc.cpp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "RcCvt.h"

mrc2brc.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | trail(c)

関数

void | usage (char *av0)
int | main (int ac, char *av[])

マクロ定義

#define trail ( c )

mrc2brc.cpp の 13 行で定義されています。

参照元 RcCvt::font()・RcCvt::init()・main().

関数

int main | ( | int | ac,
 |  | char * | av[]
 | ) |

mrc2brc.cpp の 31 行で定義されています。

参照先 RcCvt::init()・trail・usage().

void usage ( char * av0 )

mrc2brc.cpp の 16 行で定義されています。

参照先 NULL.

参照元 main().

Sakura-Editorに対してSat Oct 27 02:26:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: mrc2brc.cpp ソースファイル

mrc2brc.cpp

説明を見る。
00001
00002 //  rmc2brc     : convert MSVC type resource file to Brc32 type.
00003 //      20010731 aroka
00004
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include <string.h>
00008 #include "RcCvt.h"
00009
00010 #ifdef _DEBUG
00011 # define trail(c)   fputs(c,stdout)
00012 #else
00013 # define trail(c)
00014 #endif
00015
00016 void usage(char*av0)
00017 {
00018     char* fn;
00019
00020     fn = strrchr( av0, '\\' );
00021     if( fn != NULL ){
00022         fn++;
00023     }else{
00024         fn = av0;
00025     }
00026
00027     fprintf(stderr, "%s inputfile [outputfile]", fn);
00028     return ;
00029 }
00030
00031 int main( int ac, char *av[] )
00032 {
00033     if( ac < 2 )
00034     {
00035         usage(av[0]);
00036         exit(0);
00037     }
00038
00039     RcCvt cvt;
00040     trail("#1");
00041     if( !cvt.init(av[1], av[2]) ){
00042         fprintf(stderr,"Error in opening files.\n");
00043         exit(1);
00044     }
00045     trail("#2");
00046     if( !cvt.convert() ){
00047         fprintf(stderr,"Error in opening files.\n");
00048         exit(1);
00049     }
00050     trail("#3");
00051
00052     return 0;
00053 }
00054
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: my_icmp.cpp

my_icmp.cpp

独自文字列比較関数 [詳細]

#include "stdafx.h"
#include <stdio.h>
#include <limits.h>
#include "my_icmp.h"

my_icmp.cppのインクルード依存関係図

ソースコードを見る。

関数

SAKURA_CORE_API MY_INLINE int | my_toupper (int c)
SAKURA_CORE_API MY_INLINE int | my_tolower (int c)
SAKURA_CORE_API MY_INLINE int | my_iskanji1 (int c)
SAKURA_CORE_API MY_INLINE int | my_iskanji2 (int c)
SAKURA_CORE_API int __cdecl | my_internal_icmp (const char *s1, const char *s2, unsigned int n, unsigned int dcount, bool flag)
SAKURA_CORE_API int __cdecl | my_memicmp (const void *m1, const void *m2, unsigned int n)
SAKURA_CORE_API int __cdecl | my_stricmp (const char *s1, const char *s2)
SAKURA_CORE_API int __cdecl | my_strnicmp (const char *s1, const char *s2, size_t n)
const char * | my_strstri (const char *s1, const char *s2)
const char * | my_strstr (const char *s1, const char *s2)
const char * | my_strchri (const char *s1, int c2)
const char * | my_strchr (const char *s1, int c2)

説明

独自文字列比較関数

作者:
MIK
日付:
Jan. 11, 2002

Feb. 02, 2002 内部処理を統一、全角アルファベット同一視に対応

Apr. 07, 2005 MIK strstr系関数を追加

my_icmp.cpp で定義されています。

関数

SAKURA_CORE_API int __cdecl my_internal_icmp | ( | const char * | s1,
 |  | const char * | s2,
 |  | unsigned int | n,
 |  | unsigned int | dcount,
 |  | bool | flag
 | ) |

大文字小文字を同一視する文字列長さ制限比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
n | [in] 文字長
dcount | [in] ステップ値 (1=strnicmp,memicmp, 0=stricmp)
flag | [in] 文字列終端チェック (true=stricmp,strnicmp, false=memicmp)
戻り値:
0 一致
日付:
2002.11.29 Moca 0以外の時の戻り値を，「元の値の差」から「大文字としたときの差」に変更

my_icmp.cpp の 174 行で定義されています。

参照元 my_memicmp()・my_stricmp()・my_strnicmp().

SAKURA_CORE_API MY_INLINE int my_iskanji1 ( int c )

日本語１バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字１バイト目である
0 | 漢字１バイト目ではない

my_icmp.cpp の 92 行で定義されています。

参照元 my_strchr()・my_strchri()・my_strstr()・my_strstri().

SAKURA_CORE_API MY_INLINE int my_iskanji2 ( int c )

日本語２バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字２バイト目である
0 | 漢字２バイト目ではない

my_icmp.cpp の 106 行で定義されています。

SAKURA_CORE_API int __cdecl my_memicmp | ( | const void * | m1,
 |  | const void * | m2,
 |  | unsigned int | n
 | ) |

大文字小文字を同一視するメモリ比較をする。

引数:
m1 | [in] データ１
m2 | [in] データ２
n | [in] データ長
戻り値:
0 一致
覚え書き:
本来メモリ比較はバイナリデータを比較するものであり、比較対象データが 日本語であろうがなかろうが関係ない。 しかし、テキストデータにバイナリが含まれることがあるため memicmp で 比較を行っている。 ここでは日本語に対応した memicmp を実装する。

my_icmp.cpp の 297 行で定義されています。

参照先 my_internal_icmp().

const char* my_strchr | ( | const char * | s1,
 |  | int | c2
 | ) |

日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 378 行で定義されています。

参照元 my_strchr().

const char* my_strchri | ( | const char * | s1,
 |  | int | c2
 | ) |

日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 366 行で定義されています。

参照元 my_strchri().

SAKURA_CORE_API int __cdecl my_stricmp | ( | const char * | s1,
 |  | const char * | s2
 | ) |

大文字小文字を同一視する文字列比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
戻り値:
0 一致

my_icmp.cpp の 310 行で定義されています。

参照先 my_internal_icmp().

参照元 CKeyWordSetMgr::SortKeyWord().

SAKURA_CORE_API int __cdecl my_strnicmp | ( | const char * | s1,
 |  | const char * | s2,
 |  | size_t | n
 | ) |

大文字小文字を同一視する文字列長さ制限比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
n | [in] 文字長
戻り値:
0 一致

my_icmp.cpp の 326 行で定義されています。

参照先 my_internal_icmp().

参照元 my_strstri().

const char* my_strstr | ( | const char * | s1,
 |  | const char * | s2
 | ) |

strstr()の2byte code対応版

日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 354 行で定義されています。

参照元 my_strstr().

const char* my_strstri | ( | const char * | s1,
 |  | const char * | s2
 | ) |

strstr()の大文字小文字同一視版

覚え書き:
Windows APIにあるStrStrIはIE4が入っていないPCでは使用不可のため 独自に作成
日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 340 行で定義されています。

参照元 my_strstri().

SAKURA_CORE_API MY_INLINE int my_tolower ( int c )

小文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

my_icmp.cpp の 78 行で定義されています。

SAKURA_CORE_API MY_INLINE int my_toupper ( int c )

大文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

my_icmp.cpp の 65 行で定義されています。

参照元 my_strchri().

Sakura-Editorに対してSat Oct 27 02:26:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: my_icmp.cpp ソースファイル

my_icmp.cpp

説明を見る。
00001
00009 /*
00010     Copyright (C) 2002-2005, MIK
00011     Copyright (C) 2002, Moca
00012
00013     This software is provided 'as-is', without any express or implied
00014     warranty. In no event will the authors be held liable for any damages
00015     arising from the use of this software.
00016
00017     Permission is granted to anyone to use this software for any purpose,
00018     including commercial applications, and to alter it and redistribute it
00019     freely, subject to the following restrictions:
00020
00021         1. The origin of this software must not be misrepresented;
00022            you must not claim that you wrote the original software.
00023            If you use this software in a product, an acknowledgment
00024            in the product documentation would be appreciated but is
00025            not required.
00026
00027         2. Altered source versions must be plainly marked as such,
00028            and must not be misrepresented as being the original software.
00029
00030         3. This notice may not be removed or altered from any source
00031            distribution.
00032 */
00050 /*
00051  * ヘッダ
00052  */
00053 #include "stdafx.h"
00054 #include <stdio.h>
00055 #include <limits.h>
00056 #include "my_icmp.h"
00057
00058
00059
00065 SAKURA_CORE_API MY_INLINE int my_toupper( int c )
00066 {
00067     if( c >= 'a' && c <= 'z' ) return c - ('a' - 'A');
00068     return c;
00069 }
00070
00071
00072
00078 SAKURA_CORE_API MY_INLINE int my_tolower( int c )
00079 {
00080     if( c >= 'A' && c <= 'Z' ) return c + ('a' - 'A');
00081     return c;
00082 }
00083
00084
00085
00092 SAKURA_CORE_API MY_INLINE int my_iskanji1( int c )
00093 {
00094     if( (c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xfc) ) return 1;
00095     return 0;
00096 }
00097
00098
00099
00106 SAKURA_CORE_API MY_INLINE int my_iskanji2( int c )
00107 {
00108     if( (c >= 0x40 && c <= 0x7e) || (c >= 0x80 && c <= 0xfc) ) return 1;
00109     return 0;
00110 }
00111
00112
00113
00114 #ifdef MY_ICMP_MBS
00115
00124 SAKURA_CORE_API MY_INLINE int my_mbtoupper2( int c )
00125 {
00126     if( c >= 0x81 && c <= 0x9a ) return c - (0x81 - 0x60);
00127     return c;
00128 }
00129 #endif  /* MY_ICMP_MBS */
00130
00131
00132
00133 #ifdef MY_ICMP_MBS
00134
00139 SAKURA_CORE_API MY_INLINE int my_mbtolower2( int c )
00140 {
00141     if( c >= 0x60 && c <= 0x79 ) return c + (0x81 - 0x60);
00142     return c;
00143 }
00144 #endif  /* MY_ICMP_MBS */
00145
00146
00147
00148 #ifdef MY_ICMP_MBS
00149
00155 SAKURA_CORE_API MY_INLINE int my_mbisalpha2( int c )
00156 {
00157     if( (c >= 0x60 && c <= 0x79) || (c >= 0x81 && c <= 0x9a) ) return 1;
00158     return 0;
00159 }
00160 #endif  /* MY_ICMP_MBS */
00161
00162
00163
00174 SAKURA_CORE_API int __cdecl my_internal_icmp( const char *s1, const char *s2, unsigned int n, unsigned int dcount, bool flag )
00175 {
00176     unsigned int    i;
00177     unsigned char   *p1, *p2;
00178 //  2002.11.29 Moca 元の値を保持する必要がなくなったため *_lo, *_upを削除
00179 //  int c1, c1_lo, c1_up;
00180 //  int c2, c2_lo, c2_up;
00181     int     c1, c2;
00182     bool    prev1, prev2; /* 前の文字が SJISの１バイト目か */
00183 #ifdef MY_ICMP_MBS
00184     bool    mba1, mba2;
00185 #endif  /* MY_ICMP_MBS */
00186
00187     p1 = (unsigned char*)s1;
00188     p2 = (unsigned char*)s2;
00189     prev1 = prev2 = false;
00190 #ifdef MY_ICMP_MBS
00191     mba1 = mba2 = false;
00192 #endif  /* MY_ICMP_MBS */
00193
00194     /* 指定長だけ繰り返す */
00195     for(i = n; i > 0; i -= dcount)
00196     {
00197         /* 比較対象となる文字を取得する */
00198 //      c1 = c1_lo = c1_up = (int)((unsigned int)*p1);
00199 //      c2 = c2_lo = c2_up = (int)((unsigned int)*p2);
00200         c1 = (int)((unsigned int)*p1);
00201         c2 = (int)((unsigned int)*p2);
00202
00203         /* 2002.11.29 Moca 文字列の終端に達したか調べる部分 は後方へ移動 */
00204
00205         /* 文字１の日本語チェックを行い比較用の大文字小文字をセットする */
00206         if( prev1 ){    /* 前の文字が日本語１バイト目 */
00207             /* 今回は日本語２バイト目なので変換しない */
00208             prev1 = false;
00209 #ifdef MY_ICMP_MBS
00210             /* 全角文字のアルファベット */
00211             if( mba1 ){
00212                 mba1 = false;
00213                 if( my_mbisalpha2( c1 ) ){
00214 //                  c1_lo = my_mbtolower2( c1 );
00215 //                  c1_up = my_mbtoupper2( c1 );
00216                     c1 = my_mbtoupper2( c1 );
00217                 }
00218             }
00219 #endif  /* MY_ICMP_MBS */
00220         }
00221         else if( my_iskanji1(c1) ){
00222             /* 今回は日本語１バイト目なので変換しない */
00223             prev1 = true;
00224 #ifdef MY_ICMP_MBS
00225             if( c1 == 0x82 ) mba1 = true;
00226 #endif  /* MY_ICMP_MBS */
00227         }
00228         else{
00229 //          c1_lo = my_tolower(c1);
00230 //          c1_up = my_toupper(c1);
00231             c1 = my_toupper(c1);
00232         }
00233
00234         /* 文字２の日本語チェックを行い比較用の大文字小文字をセットする */
00235         if( prev2 ){    /* 前の文字が日本語１バイト目 */
00236             /* 今回は日本語２バイト目なので変換しない */
00237             prev2 = false;
00238 #ifdef MY_ICMP_MBS
00239             /* 全角文字のアルファベット */
00240             if( mba2 ){
00241                 mba2 = false;
00242                 if( my_mbisalpha2( c2 ) ){
00243 //                  c2_lo = my_mbtolower2( c2 );
00244 //                  c2_up = my_mbtoupper2( c2 );
00245                     c2 = my_mbtoupper2( c2 );
00246                 }
00247             }
00248 #endif  /* MY_ICMP_MBS */
00249         }
00250         else if( my_iskanji1(c2) ){
00251             /* 今回は日本語１バイト目なので変換しない */
00252             prev2 = true;
00253 #ifdef MY_ICMP_MBS
00254             if( c2 == 0x82 ) mba2 = true;
00255 #endif  /* MY_ICMP_MBS */
00256         }
00257         else{
00258 //          c2_lo = my_tolower(c2);
00259 //          c2_up = my_toupper(c2);
00260             c2 = my_toupper(c2);
00261         }
00262
00263         /* 比較する */
00264 //      if( (c1_lo - c2_lo) && (c1_up - c2_up) ) return c1 - c2;    /* 戻り値は元の文字の差 */
00265         if( c1 - c2 ) return c1 - c2;   /* 戻り値は大文字に変換した文字の差 */
00266
00267         /* 2002.11.29 Moca 戻り値を変更したことにより，小文字→大文字変換の後に移動
00268            片方だけ NULL文字 の場合は上の比較した時点で return するためその処理は不要 */
00269         if( flag ){
00270             /* 文字列の終端に達したか調べる */
00271             if( ! c1 ) return 0;
00272         }
00273         /* ポインタを進める */
00274         p1++;
00275         p2++;
00276     }
00277
00278     return 0;
00279 }
00280
00281
00282
00297 SAKURA_CORE_API int __cdecl my_memicmp( const void *m1, const void *m2, unsigned int n )
00298 {
00299     return my_internal_icmp( (const char*)m1, (const char*)m2, n, 1, false );
00300 }
00301
00302
00303
00310 SAKURA_CORE_API int __cdecl my_stricmp( const char *s1, const char *s2 )
00311 {
00312     /* チェックする文字数をuint最大に設定する */
00313     //return my_internal_icmp( s1, s2, (unsigned int)(~0), 0, true );
00314     return my_internal_icmp( s1, s2, UINT_MAX, 0, true );
00315 }
00316
00317
00318
00326 SAKURA_CORE_API int __cdecl my_strnicmp( const char *s1, const char *s2, size_t n )
00327 {
00328     return my_internal_icmp( s1, s2, (unsigned int)n, 1, true );
00329 }
00330
00340 const char* my_strstri( const char* s1, const char* s2 ){
00341     size_t n = strlen( s2 );
00342     for( const char* p1 = s1; *p1; p1++ ){
00343         if( my_strnicmp( p1, s2, n ) == 0 ) return p1;
00344         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00345     }
00346     return NULL;
00347 }
00348
00354 const char* my_strstr( const char* s1, const char* s2 ){
00355     size_t n = strlen( s2 );
00356     for( const char* p1 = s1; *p1; p1++ ){
00357         if( strncmp( p1, s2, n ) == 0 ) return p1;
00358         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00359     }
00360     return NULL;
00361 }
00362
00366 const char* my_strchri( const char* s1, int c2 ){
00367     int C2 = my_toupper( c2 );
00368     for( const char* p1 = s1; *p1; p1++ ){
00369         if( my_toupper( *p1 ) == C2 ) return p1;
00370         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00371     }
00372     return NULL;
00373 }
00374
00378 const char* my_strchr( const char* s1, int c2 ){
00379     for( const char* p1 = s1; *p1; p1++ ){
00380         if( *p1 == c2 ) return p1;
00381         if( my_iskanji1( *(const unsigned char*)p1 ) && *(p1+1) != 0 ) p1++;
00382     }
00383     return NULL;
00384 }
00385 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: my_icmp.h

my_icmp.h

独自比較関数 [詳細]

#include "global.h"

my_icmp.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | MY_ICMP_MBS
#define | memicmp(a, b, c) my_memicmp((a),(b),(c))
#define | stricmp(a, b) my_stricmp((a),(b))
#define | strnicmp(a, b, c) my_strnicmp((a),(b),(c))
#define | _memicmp(a, b, c) my_memicmp((a),(b),(c))
#define | _stricmp(a, b) my_stricmp((a),(b))
#define | _strnicmp(a, b, c) my_strnicmp((a),(b),(c))
#define | MY_INLINE
#define | strstri(a, b) my_strstri((a),(b))
#define | strchri(a, b) my_strchri((a),(b))

関数

SAKURA_CORE_API MY_INLINE int | my_toupper (int c)
SAKURA_CORE_API MY_INLINE int | my_tolower (int c)
SAKURA_CORE_API MY_INLINE int | my_iskanji1 (int c)
SAKURA_CORE_API MY_INLINE int | my_iskanji2 (int c)
SAKURA_CORE_API int __cdecl | my_internal_icmp (const char *s1, const char *s2, unsigned int n, unsigned int dcount, bool flag)
SAKURA_CORE_API int __cdecl | my_memicmp (const void *m1, const void *m2, unsigned int n)
SAKURA_CORE_API int __cdecl | my_stricmp (const char *s1, const char *s2)
SAKURA_CORE_API int __cdecl | my_strnicmp (const char *s1, const char *s2, size_t n)
SAKURA_CORE_API const char * | my_strstri (const char *s1, const char *s2)
SAKURA_CORE_API const char * | my_strstr (const char *s1, const char *s2)
SAKURA_CORE_API const char * | my_strchri (const char *s1, int c2)
SAKURA_CORE_API const char * | my_strchr (const char *s1, int c2)
SAKURA_CORE_API char * | my_strstri (char *s1, const char *s2)
SAKURA_CORE_API char * | my_strstr (char *s1, const char *s2)
SAKURA_CORE_API char * | my_strchri (char *s1, int c2)
SAKURA_CORE_API char * | my_strchr (char *s1, int c2)

説明

独自比較関数

作者:
MIK
日付:
Jan. 11, 2002

Feb. 02, 2002 内部処理を統一、全角アルファベット同一視に対応

my_icmp.h で定義されています。

マクロ定義

#define _memicmp | ( | a,
 |  | b,
 |  | c | ) | my_memicmp((a),(b),(c))

my_icmp.h の 77 行で定義されています。

参照元 CCommandLine::CheckCommandLine()・CMemory::JIStoSJIS().

#define _stricmp | ( | a,
 |  | b | ) | my_stricmp((a),(b))

my_icmp.h の 82 行で定義されています。

参照元 CheckEXT()・CShareData::GetDocumentTypeExt()・CShareData::IsPathOpened()・CEditDoc::MakeFuncList_VisualBasic().

#define _strnicmp | ( | a,
 |  | b,
 |  | c | ) | my_strnicmp((a),(b),(c))

my_icmp.h の 87 行で定義されています。

参照元 CDicMgr::Search().

#define memicmp | ( | a,
 |  | b,
 |  | c | ) | my_memicmp((a),(b),(c))

my_icmp.h の 70 行で定義されています。

参照元 CRecent::FindItem()・CDicMgr::HokanSearch()・CLineComment::Match()・CBlockComment::Match_CommentFrom().

#define MY_ICMP_MBS

my_icmp.h の 64 行で定義されています。

#define MY_INLINE

my_icmp.h の 113 行で定義されています。

#define strchri | ( | a,
 |  | b | ) | my_strchri((a),(b))

my_icmp.h の 124 行で定義されています。

#define stricmp | ( | a,
 |  | b | ) | my_stricmp((a),(b))

my_icmp.h の 71 行で定義されています。

参照元 CRecent::FindItem()・CDlgTagJumpList::GetNameByType()・CDlgTagJumpList::SearchBestTag().

#define strnicmp | ( | a,
 |  | b,
 |  | c | ) | my_strnicmp((a),(b),(c))

my_icmp.h の 72 行で定義されています。

参照元 CDlgTagJumpList::find_key()・CRecent::FindItem()・CShareData::GetFilePathFormat()・CKeyWordSetMgr::SearchKeyWord2().

#define strstri | ( | a,
 |  | b | ) | my_strstri((a),(b))

my_icmp.h の 120 行で定義されています。

参照元 CDlgTagJumpList::find_key().

関数

SAKURA_CORE_API int __cdecl my_internal_icmp | ( | const char * | s1,
 |  | const char * | s2,
 |  | unsigned int | n,
 |  | unsigned int | dcount,
 |  | bool | flag
 | ) |

大文字小文字を同一視する文字列長さ制限比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
n | [in] 文字長
dcount | [in] ステップ値 (1=strnicmp,memicmp, 0=stricmp)
flag | [in] 文字列終端チェック (true=stricmp,strnicmp, false=memicmp)
戻り値:
0 一致
日付:
2002.11.29 Moca 0以外の時の戻り値を，「元の値の差」から「大文字としたときの差」に変更

my_icmp.cpp の 174 行で定義されています。

参照元 my_memicmp()・my_stricmp()・my_strnicmp().

SAKURA_CORE_API MY_INLINE int my_iskanji1 ( int c )

日本語１バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字１バイト目である
0 | 漢字１バイト目ではない

my_icmp.cpp の 92 行で定義されています。

参照元 my_strchr()・my_strchri()・my_strstr()・my_strstri().

SAKURA_CORE_API MY_INLINE int my_iskanji2 ( int c )

日本語２バイト目か調べる。

引数:
c [in] 検査する文字コード
戻り値:
1 | 漢字２バイト目である
0 | 漢字２バイト目ではない

my_icmp.cpp の 106 行で定義されています。

SAKURA_CORE_API int __cdecl my_memicmp | ( | const void * | m1,
 |  | const void * | m2,
 |  | unsigned int | n
 | ) |

大文字小文字を同一視するメモリ比較をする。

引数:
m1 | [in] データ１
m2 | [in] データ２
n | [in] データ長
戻り値:
0 一致
覚え書き:
本来メモリ比較はバイナリデータを比較するものであり、比較対象データが 日本語であろうがなかろうが関係ない。 しかし、テキストデータにバイナリが含まれることがあるため memicmp で 比較を行っている。 ここでは日本語に対応した memicmp を実装する。

my_icmp.cpp の 297 行で定義されています。

参照先 my_internal_icmp().

SAKURA_CORE_API char* my_strchr | ( | char * | s1,
 |  | int | c2
 | ) | [inline]

my_icmp.h の 166 行で定義されています。

参照先 my_strchr().

SAKURA_CORE_API const char* my_strchr | ( | const char * | s1,
 |  | int | c2
 | ) |

日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 378 行で定義されています。

参照先 my_iskanji1().

SAKURA_CORE_API char* my_strchri | ( | char * | s1,
 |  | int | c2
 | ) | [inline]

my_icmp.h の 161 行で定義されています。

参照先 my_strchri().

SAKURA_CORE_API const char* my_strchri | ( | const char * | s1,
 |  | int | c2
 | ) |

日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 366 行で定義されています。

参照先 my_iskanji1()・my_toupper().

SAKURA_CORE_API int __cdecl my_stricmp | ( | const char * | s1,
 |  | const char * | s2
 | ) |

大文字小文字を同一視する文字列比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
戻り値:
0 一致

my_icmp.cpp の 310 行で定義されています。

参照先 my_internal_icmp().

参照元 CKeyWordSetMgr::SortKeyWord().

SAKURA_CORE_API int __cdecl my_strnicmp | ( | const char * | s1,
 |  | const char * | s2,
 |  | size_t | n
 | ) |

大文字小文字を同一視する文字列長さ制限比較をする。

引数:
s1 | [in] 文字列１
s2 | [in] 文字列２
n | [in] 文字長
戻り値:
0 一致

my_icmp.cpp の 326 行で定義されています。

参照先 my_internal_icmp().

参照元 my_strstri().

SAKURA_CORE_API char* my_strstr | ( | char * | s1,
 |  | const char * | s2
 | ) | [inline]

my_icmp.h の 156 行で定義されています。

参照先 my_strstr().

SAKURA_CORE_API const char* my_strstr | ( | const char * | s1,
 |  | const char * | s2
 | ) |

strstr()の2byte code対応版

日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 354 行で定義されています。

参照先 my_iskanji1().

SAKURA_CORE_API char* my_strstri | ( | char * | s1,
 |  | const char * | s2
 | ) | [inline]

my_icmp.h の 151 行で定義されています。

参照先 my_strstri().

SAKURA_CORE_API const char* my_strstri | ( | const char * | s1,
 |  | const char * | s2
 | ) |

strstr()の大文字小文字同一視版

覚え書き:
Windows APIにあるStrStrIはIE4が入っていないPCでは使用不可のため 独自に作成
日付:
2005.04.07 MIK 新規作成

my_icmp.cpp の 340 行で定義されています。

参照先 my_iskanji1()・my_strnicmp().

SAKURA_CORE_API MY_INLINE int my_tolower ( int c )

小文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

my_icmp.cpp の 78 行で定義されています。

SAKURA_CORE_API MY_INLINE int my_toupper ( int c )

大文字に変換する。

引数:
c [in] 変換する文字コード
戻り値:
変換された文字コード

my_icmp.cpp の 65 行で定義されています。

参照元 my_strchri().

Sakura-Editorに対してSat Oct 27 02:26:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: my_icmp.h ソースファイル

my_icmp.h

説明を見る。
00001
00008 /*
00009     Copyright (C) 2002, MIK
00010     Copyright (C) 2005, MIK, genta
00011
00012     This software is provided 'as-is', without any express or implied
00013     warranty. In no event will the authors be held liable for any damages
00014     arising from the use of this software.
00015
00016     Permission is granted to anyone to use this software for any purpose,
00017     including commercial applications, and to alter it and redistribute it
00018     freely, subject to the following restrictions:
00019
00020         1. The origin of this software must not be misrepresented;
00021            you must not claim that you wrote the original software.
00022            If you use this software in a product, an acknowledgment
00023            in the product documentation would be appreciated but is
00024            not required.
00025
00026         2. Altered source versions must be plainly marked as such,
00027            and must not be misrepresented as being the original software.
00028
00029         3. This notice may not be removed or altered from any source
00030            distribution.
00031 */
00032 /*
00033  * 大文字小文字を同一視する文字列比較、メモリ比較を独自に実装する。
00034  *   stricmp, strnicmp, memicmp
00035  * これはコンパイラと言語指定によって不正動作をしてしまうことを回避するための
00036  * ものです。
00037  * 日本語は SJIS です。
00038  *
00039  * MY_ICMP_MBS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00040  *  これを定義すると全角のアルファベットも大文字小文字の区別がなくなります。
00041  * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
00042  *
00043  * stricmp, strnicmp, memicmp (および _ 付きのもの) を使用しているファイルの
00044  * 先頭に #include "my_icmp.h" を追加します。ただし、他のヘッダファイルよりも
00045  * 後になる場所に追加してください。
00046  *   →関数をマクロで定義し直すため。
00047  */
00048 #ifndef _MY_ICMP_H_
00049 #define _MY_ICMP_H_
00050
00051
00052
00053 /*
00054  * ヘッダ
00055  */
00056 #include "global.h"
00057 //#define SAKURA_CORE_API
00058
00059
00060
00061 /*
00062  * マクロ
00063  */
00064 #define MY_ICMP_MBS  /* マルチバイト対応をします */
00065 #undef  MY_ICMP_MBS
00066
00067
00068
00069 /* 関数を再定義します */
00070 #define  memicmp(a,b,c)    my_memicmp((a),(b),(c))
00071 #define  stricmp(a,b)      my_stricmp((a),(b))
00072 #define  strnicmp(a,b,c)   my_strnicmp((a),(b),(c))
00073
00074 #ifdef   _memicmp
00075 #undef   _memicmp
00076 #endif
00077 #define  _memicmp(a,b,c)   my_memicmp((a),(b),(c))
00078
00079 #ifdef   _stricmp
00080 #undef   _stricmp
00081 #endif
00082 #define  _stricmp(a,b)     my_stricmp((a),(b))
00083
00084 #ifdef   _strnicmp
00085 #undef   _strnicmp
00086 #endif
00087 #define  _strnicmp(a,b,c)  my_strnicmp((a),(b),(c))
00088
00089 #if 0
00090 #define  _mbsicmp(a,b)     my_stricmp((a),(b))
00091 #define  _mbsnicmp(a,b,c)    my_strnicmp((a),(b),(c))
00092 #endif  /* if 0 */
00093
00094 #if 0
00095 #define  toupper(a)        my_toupper((a))
00096 #define  tolower(a)        my_tolower((a))
00097
00098 #ifdef  _toupper
00099 #undef  _toupper
00100 #endif
00101 #define  _toupper(a)       my_toupper((a))
00102
00103 #ifdef  _tolower
00104 #undef  _tolower
00105 #endif
00106 #define  _tolower(a)       my_tolower((a))
00107 #endif  /* if 0 */
00108
00109 #if 0
00110 #define  setlocale(a,b)
00111 #endif  /* if 0 */
00112
00113 #define  MY_INLINE
00114 //#define  MY_INLINE  inline
00115
00116 // 2005.04.07 MIK strstr系関数追加
00117 #ifdef strstri
00118 #  undef strstri
00119 #endif
00120 #define strstri(a,b)        my_strstri((a),(b))
00121 #ifdef strchri
00122 #  undef strchri
00123 #endif
00124 #define strchri(a,b)        my_strchri((a),(b))
00125
00126
00127 /*
00128  * プロトタイプ
00129  */
00130 SAKURA_CORE_API MY_INLINE int my_toupper( int c );
00131 SAKURA_CORE_API MY_INLINE int my_tolower( int c );
00132 SAKURA_CORE_API MY_INLINE int my_iskanji1( int c );
00133 SAKURA_CORE_API MY_INLINE int my_iskanji2( int c );
00134 SAKURA_CORE_API int __cdecl my_internal_icmp( const char *s1, const char *s2, unsigned int n, unsigned int dcount, bool flag );
00135 SAKURA_CORE_API int __cdecl my_memicmp( const void *m1, const void *m2, unsigned int n );
00136 SAKURA_CORE_API int __cdecl my_stricmp( const char *s1, const char *s2 );
00137 SAKURA_CORE_API int __cdecl my_strnicmp( const char *s1, const char *s2, size_t n );
00138 #ifdef MY_ICMP_MBS
00139 SAKURA_CORE_API MY_INLINE int my_mbtoupper2( int c );
00140 SAKURA_CORE_API MY_INLINE int my_mbtolower2( int c );
00141 SAKURA_CORE_API MY_INLINE int my_mbisalpha2( int c );
00142 #endif  /* MY_ICMP_MBS */
00143
00144 // 2005.04.07 MIK strstr系関数追加
00145 //  Aug. 21, 2005 genta 実体には__cdeclが無いので，宣言からも削除
00146 SAKURA_CORE_API const char* my_strstri( const char* s1, const char* s2 );
00147 SAKURA_CORE_API const char* my_strstr( const char* s1, const char* s2 );
00148 SAKURA_CORE_API const char* my_strchri( const char* s1, int c2 );
00149 SAKURA_CORE_API const char* my_strchr( const char* s1, int c2 );
00150
00151 inline SAKURA_CORE_API char* my_strstri( char* s1, const char* s2 )
00152 {
00153     return const_cast<char*>(my_strstri((const char*)s1, s2));
00154 }
00155
00156 inline SAKURA_CORE_API char* my_strstr( char* s1, const char* s2 )
00157 {
00158     return const_cast<char*>(my_strstr((const char*)s1, s2));
00159 }
00160
00161 inline SAKURA_CORE_API char* my_strchri( char* s1, int c2 )
00162 {
00163     return const_cast<char*>(my_strchri((const char*)s1, c2));
00164 }
00165
00166 inline SAKURA_CORE_API char* my_strchr( char* s1, int c2 )
00167 {
00168     return const_cast<char*>(my_strchr((const char*)s1, c2));
00169 }
00170
00171 #endif  /* _MY_ICMP_H_ */
00172
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: MY_SP.C

MY_SP.C

引数を正しく無視するsplitpath [詳細]

#include <io.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include "MY_SP.h"

MY_SP.Cのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define | _MAX_PATH 260
#define | _MAX_DRIVE 3
#define | _MAX_DIR 256
#define | _MAX_FNAME 256
#define | _MAX_EXT 256
#define | _IS_SJIS_1(ch) ( ( ( ch >=0x081 )&&( ch <=0x09F ) ) || ( ( ch >=0x0E0 )&&( ch <=0x0FC ) ) )
#define | GetExistPath_NO_DriveLetter 0
#define | GetExistPath_IV_Drive 1
#define | GetExistPath_AV_Drive 2

関数

char * | sjis_strrchr2 (unsigned char *pt, const unsigned char ch1, const unsigned char ch2)
void | GetExistPath (char *po, const char *pi)
void | my_splitpath (const char *comln, char *drv, char *dir, char *fnm, char *ext)

説明

引数を正しく無視するsplitpath

作者:
SUI
日付:
2002.07.15 Initial release

MY_SP.C で定義されています。

マクロ定義

#define _IS_SJIS_1 ( ch ) ( ( ( ch >=0x081 )&&( ch <=0x09F ) ) || ( ( ch >=0x0E0 )&&( ch <=0x0FC ) ) )

MY_SP.C の 151 行で定義されています。

#define _MAX_DIR 256

MY_SP.C の 60 行で定義されています。

参照元 CMRU::Add()・CDlgOpenFile::CDlgOpenFile()・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・CEditDoc::FormatBackUpPath()・CShareData::GetIniFileName()・CShareData::GetIniFileNameDirect()・my_splitpath()・SplitPath_FolderAndFile().

#define _MAX_DRIVE 3

MY_SP.C の 57 行で定義されています。

参照元 CMRU::Add()・CDlgOpenFile::CDlgOpenFile()・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・CShareData::GetIniFileName()・CShareData::GetIniFileNameDirect()・IsLocalDrive()・SplitPath_FolderAndFile().

#define _MAX_EXT 256

MY_SP.C の 66 行で定義されています。

参照元 CheckEXT()・CDlgOpenFile::DoModal_GetOpenFileName()・CEditDoc::FormatBackUpPath()・CShareData::GetDocumentType()・CTabWnd::GetImageIndex()・CShareData::GetIniFileNameDirect()・CEditWnd::GetRelatedIcon()・my_splitpath()・CEditDoc::SaveFileDialog()・SplitPath_FolderAndFile().

#define _MAX_FNAME 256

MY_SP.C の 63 行で定義されています。

参照元 CDlgOpenFile::DoModal_GetOpenFileName()・CEditDoc::FormatBackUpPath()・CShareData::GetIniFileNameDirect()・my_splitpath()・SplitPath_FolderAndFile().

#define _MAX_PATH 260

MY_SP.C の 52 行で定義されています。

参照元 _tfopen_absexe()・_tfopen_absini()・CMRU::Add()・CDlgOpenFile::CDlgOpenFile()・CEditView::Command_BASE64DECODE()・CEditView::Command_COMPARE()・CEditView::Command_Diff()・CEditView::Command_Diff_Dialog()・CEditView::Command_HELP_CONTENTS()・CEditView::Command_HELP_SEARCH()・CEditView::Command_LOADKEYMACRO()・CEditView::Command_TagJumpByTagsFile()・CEditView::Command_UUDECODE()・CImageListMgr::Create()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CEditWnd::CreateToolBar()・CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・CPrintPreview::DispatchEvent_PPB()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DispatchEvent_PROP_Macro()・CEditView::DoGrep()・CEditView::DoGrepFile()・CDlgOpenFile::DoModal_GetOpenFileName()・CDlgOpenFile::DoModal_GetSaveFileName()・CSMacroMgr::Exec()・CPropTypes::Export_KeyHelp()・CPropTypes::Export_Regex()・CEditDoc::FileCloseOpen()・CEditDoc::FileRead()・CEditDoc::FileSaveAs_Dialog()・GetAppIcon()・CEditView::GetCurrentTextForSearch()・CDlgGrep::GetData()・CPropTypes::GetData_KeyHelp()・CPropCommon::GetData_PROP_FILENAME()・CPropCommon::GetData_PROP_Macro()・CMigemo::GetDllName()・GetExedir()・GetExistPath()・GetHelpFilePath()・GetInidir()・GetInidirOrExedir()・CShareData::GetIniFileName()・CShareData::GetIniFileNameDirect()・CPropCommon::GetListViewItem_FILENAME()・GetLongFileName()・CShareData::GetMacroFilename()・CShareData::GetTransformFileNameFast()・CPropTypes::Import_KeyHelp()・CPropTypes::Import_Regex()・CShareData::Init()・CControlProcess::Initialize()・CEditDoc::MakeBackUp()・CPropCommon::MoveListViewItem_FILENAME()・my_splitpath()・OFNHookProc()・CDlgGrep::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CEditWnd::OnCommand()・CEditWnd::OnDropFiles()・CPropCommon::OnFileDropdown_Macro()・CEditWnd::OnHelp_MenuItem()・CDlgReplace::OnInitDialog()・CDlgGrep::OnInitDialog()・CDlgAbout::OnInitDialog()・CEditDoc::OpenFile()・CEditDoc::OpenFileDialog()・CPropTypes::p3_Export_Colors()・CPropTypes::p3_Import_Colors()・CPropCommon::p5_Export_KeySetting()・CPropCommon::p5_Import_KeySetting()・CPropCommon::p7_Export_List_KeyWord()・CPropCommon::p7_Import_List_KeyWord()・CPropCommon::p8_Export_CustMenuSetting()・CPropCommon::p8_Import_CustMenuSetting()・CEditWnd::ProcSearchBox()・PropSheetWndProc()・CEditDoc::SaveFileDialog()・CPropCommon::SelectBaseDir_Macro()・CDlgTagsMake::SelectFolder()・CDlgTagJumpList::SetData()・CDlgFind::SetData()・CDlgDiff::SetData()・CDlgTagJumpList::SetFileName()・CPropCommon::SetMacro2List_Macro()・CPropCommon::SetRegexpVersion()・CShareData::ShareData_IO_2()・CShareData::ShareData_IO_Macro()・CProcessFactory::TestWriteQuit()・CShareData::TransformFileName_MakeCache()・CEditView::ViewDiffInfo()・CEditWnd::WinListMenu().

#define GetExistPath_AV_Drive 2

MY_SP.C の 177 行で定義されています。

#define GetExistPath_IV_Drive 1

MY_SP.C の 176 行で定義されています。

#define GetExistPath_NO_DriveLetter 0

MY_SP.C の 175 行で定義されています。

関数

void GetExistPath | ( | char * | po,
 |  | const char * | pi
 | ) |

MY_SP.C の 179 行で定義されています。

参照先 _MAX_PATH.

参照元 my_splitpath().

void my_splitpath | ( | const char * | comln,
 |  | char * | drv,
 |  | char * | dir,
 |  | char * | fnm,
 |  | char * | ext
 | ) |

MY_SP.C の 280 行で定義されています。

参照先 _IS_SJIS_1・_MAX_DIR・_MAX_EXT・_MAX_FNAME・_MAX_PATH・GetExistPath()・NULL・sjis_strrchr2().

参照元 CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName().

char* sjis_strrchr2 | ( | unsigned char * | pt,
 |  | const unsigned char | ch1,
 |  | const unsigned char | ch2
 | ) |

MY_SP.C の 158 行で定義されています。

参照先 _IS_SJIS_1・NULL.

参照元 my_splitpath().

Sakura-Editorに対してSat Oct 27 02:26:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: MY_SP.C ソースファイル

MY_SP.C

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, SUI
00009     Copyright (C) 2003, MIK
00010
00011     This software is provided 'as-is', without any express or implied
00012     warranty. In no event will the authors be held liable for any damages
00013     arising from the use of this software.
00014
00015     Permission is granted to anyone to use this software for any purpose,
00016     including commercial applications, and to alter it and redistribute it
00017     freely, subject to the following restrictions:
00018
00019         1. The origin of this software must not be misrepresented;
00020            you must not claim that you wrote the original software.
00021            If you use this software in a product, an acknowledgment
00022            in the product documentation would be appreciated but is
00023            not required.
00024
00025         2. Altered source versions must be plainly marked as such,
00026            and must not be misrepresented as being the original software.
00027
00028         3. This notice may not be removed or altered from any source
00029            distribution.
00030 */
00031 /* #define  _USE_MS_DOS_FUNC_   /* */
00032 /* ↑ファイルの属性取得に _dos_getfileattr (Dos function) を使用する場合に定義
00033 　 しておく。未定義の場合は GetFileAttributes (Windows API) を使用する。
00034 　 主に LSI-C 試食版で動作確認していたもので。 */
00035
00036 #ifdef  LSI_C   /* LSI-C なら絶対 _dos_getfileattr を使う */
00037 #ifndef _USE_MS_DOS_FUNC_
00038 #define _USE_MS_DOS_FUNC_
00039 #endif
00040 #endif  /* LSI_C */
00041
00042 #if _MSC_VER >= 1400
00043 #pragma warning( disable : 4996 )
00044 #endif
00045
00046 #include    <io.h>      /* access */
00047 #include    <string.h>  /* strncpy strlen */
00048 #include    <stdlib.h>  /* _MAX_PATH _MAX_DRIVE _MAX_DIR _MAX_FNAME _MAX_EXT */
00049
00050 /* LSI-C 試食版では↓この辺が無いので．．． */
00051 #ifndef     _MAX_PATH
00052 #define     _MAX_PATH   260     /* */
00053 /*#define       _MAX_PATH   28      /* for DEBUG */
00054 /*#define       _MAX_PATH   27      /* for DEBUG */
00055 #endif
00056 #ifndef     _MAX_DRIVE
00057 #define     _MAX_DRIVE  3
00058 #endif
00059 #ifndef     _MAX_DIR
00060 #define     _MAX_DIR    256
00061 #endif
00062 #ifndef     _MAX_FNAME
00063 #define     _MAX_FNAME  256
00064 #endif
00065 #ifndef     _MAX_EXT
00066 #define     _MAX_EXT    256
00067 #endif
00068
00069 #ifdef  _USE_MS_DOS_FUNC_
00070     #include    <dos.h>     /* _dos_getfileattr _A_SUBDIR _dos_getvect _dos_setvect */
00071 #else
00072     #include    <windows.h> /* GetFileAttributes FILE_ATTRIBUTE_DIRECTORY */
00073 #endif
00074
00075 #include "MY_SP.h" // Feb. 12, 2003 MIK 抜けていた
00076
00077 /* ============================================================================
00078 my_splitpath( const char *CommandLine, char *drive, char *dir, char *fname, char *ext );
00079
00080 ★ 概要
00081 CommandLine に与えられたコマンドライン文字列の先頭から、実在するファイル・ディ
00082 レクトリの部分のみを抽出し、その抽出部分に対して _splitpath() と同等の処理をお
00083 こないます。
00084 先頭部分に実在するファイル・ディレクトリ名が無い場合は空文字列が返ります。
00085 文字列中の日本語(Shift_JISコードのみ)に対応しています。
00086
00087 ★ プログラム記述内容について(言い訳あれこれ)
00088 文字列の split 処理部だけにでも _splitpath() を使えばもっと短くなったのですが、
00089 そうやらずに全て自前で処理している理由は、
00090 ・コンパイラによっては _splitpath() が日本語に対応していない可能性もある。
00091 ・_splitpath() って、コンパイラによって、詳細動作が微妙に異なるかもしれないから
00092 　仕様をハッキリさせるためにもコンパイラに添付されている _splitpath() にあまり
00093 　頼りたくなかった。
00094 ・というか、主に動作確認に使用していた LSI-C試食版にはそもそも _splitpath() が
00095 　存在しないから、やらざるをえなかった。 :-(
00096 という事によります。
00097
00098 あらかじめ _USE_MS_DOS_FUNC_ が #define されていると MS-DOS ファンクションの関
00099 数（_dos_getfileattr）が使用されます。( LSI-C試食版なんか向け)
00100 #define定義されていない場合、Windows の GetFileAttributes が使用されます。
00101 （ Windows ソフトウェア向け）
00102
00103 動作確認は主に LSI-C 試食版(+ LFN library Ver.1.1)にておこなっています。
00104
00105 注意点としては、DOS版コンパイラでコンパイルしたMS-DOS用.exe の場合、フロッピー
00106 ディスクなどのリムーバブルディスクのドライブのパスが渡されて来た時、そのドライ
00107 ブのディスクが用意できていない場合、
00108  |準備ができていません 読み取り中 ドライブ X:
00109  |中止(A), 再試行(R), 失敗(F)?
00110 という、お馴染みのメッセージが登場してしまうという事です。
00111 # Windows版の.exe では Windows API が使用されるので出ないはずです。
00112 MS-DOSにて、このうっとうしいメッセージを出さないようにするには、割り込みベクタ
00113 の設定をおこなわなくてはなりません。
00114 （ _dos_getvect (DOS func.35H) , _dos_setvect (DOS func.25H) で 24H の割り込み
00115 　ベクタをいじる）
00116 が、これはかなりコンパイラに依存する記述になってしまいます。
00117 ので、結局、今この部分(メッセージを出さない処理)は LSI-C のみ対応のプログラムに
00118 なっています。
00119 「 LSI-C でコンパイルした場合」または「 Windows版.exe を作成した場合」*以外* の
00120 場合は上記メッセージが出てしまいます。
00121
00122 ※ "LFN library" -> http://webs.to/ken/
00123
00124 ★ 詳細動作
00125 my_splitpath( CommandLine, drive, dir, fname, ext );
00126 CommandLine に文字列として D:\Test.ext が与えられた場合、
00127 ├・D:\Test.ext というファイルが存在する場合
00128 │　drive = "D:"
00129 │　dir   = "\"
00130 │　fname = "Test"
00131 │　ext   = ".ext"
00132 ├・D:\Test.ext というディレクトリが存在する場合
00133 │　drive = "D:"
00134 │　dir   = "\Test.ext\"
00135 │　fname = ""
00136 │　ext   = ""
00137 └・D:\Test.ext というファイル・ディレクトリが存在しない場合、
00138 　　├・D:ドライブは有効
00139 　　│　drive = "D:"
00140 　　│　dir   = "\"
00141 　　│　fname = ""
00142 　　│　ext   = ""
00143 　　└・D:ドライブは無効
00144 　　　　drive = ""
00145 　　　　dir   = ""
00146 　　　　fname = ""
00147 　　　　ext   = ""
00148 )=========================================================================== */
00149
00150 /* ↓ Shift_JIS の漢字の1バイト目の判定 */
00151 #define _IS_SJIS_1(ch)  ( ( ( ch >=0x081 )&&( ch <=0x09F ) ) || ( ( ch >=0x0E0 )&&( ch <=0x0FC ) ) )
00152
00153 /* Shift_JIS 対応で検索対象文字を２個指定できる strrchr() みたいなもの。
00154 / 指定された２つの文字のうち、見つかった方(より後方の方)の位置を返す。
00155 / # strrchr( char *s , char c ) とは、文字列 s 中の最後尾の c を探し出す関数。
00156 / # 文字 c が見つかったら、その位置を返す。
00157 / # 文字 c が見つからない場合は NULL を返す。 */
00158 char    *sjis_strrchr2( unsigned char *pt , const unsigned char ch1 , const unsigned char ch2 ){
00159     unsigned char   *pf = NULL;
00160     while( *pt != '\0' ){   /* 文字列の終端まで調べる。 */
00161         if( ( *pt == ch1 ) || ( *pt == ch2 ) )  pf = pt;    /* pf = 検索文字の位置 */
00162         if( _IS_SJIS_1(*pt) )   pt++;   /* Shift_JIS の1文字目なら、次の1文字をスキップ */
00163         if( *pt != '\0' )       pt++;   /* 次の文字へ */
00164     }
00165     return  pf;
00166 }
00167
00168 /* 文字列 pi 中の先頭にある有効なパス名（実在するファイル・ディレクトリ名）部分
00169 　 のみを po に書き出す。po は char po[_MAX_PATH]; 確保しておく事。 */
00170 #ifdef  LSI_C   /* LSI-C の場合。 */
00171 void far    _asm_void_( char * );
00172 void far    int_nop(){  _asm_void_( "IRET\n" ); }
00173 #endif  /* LSI_C */
00174
00175 #define     GetExistPath_NO_DriveLetter 0   /* ドライブレターが無い */
00176 #define     GetExistPath_IV_Drive       1   /* ドライブが無効 */
00177 #define     GetExistPath_AV_Drive       2   /* ドライブが有効 */
00178
00179 void    GetExistPath( char *po , const char *pi ) {
00180     char    *pw,*ps;
00181     int     cnt;
00182     char    drv[4] = "_:\\";
00183     int     dl;     /* ドライブの状態 */
00184     #ifdef  LSI_C
00185     void    far     *int24h;
00186     #endif  /* LSI_C */
00187
00188     /* pi の内容を
00189     / ・ " を削除しつつ
00190     / ・ / を \ に変換しつつ(Win32API では / も \ と同等に扱われるから)
00191     / ・最大 ( _MAX_PATH -1 ) 文字まで
00192     / po にコピーする。 */
00193     for( pw=po,cnt=0 ; ( *pi != '\0' ) && ( cnt < _MAX_PATH -1 ) ; pi++ ){
00194         /* /," 共に Shift_JIS の漢字コード中には含まれないので Shift_JIS 判定は不要。 */
00195         if( *pi == '\"' )   continue;       /*  " なら何もしない。次の文字へ */
00196         if( *pi == '/' )    *pw++ = '\\';   /*  / なら \ に変換してコピー    */
00197         else                *pw++ = *pi;    /* その他の文字はそのままコピー  */
00198         cnt++;  /* コピーした文字数 ++ */
00199     }
00200     *pw = '\0';     /* 文字列終端 */
00201
00202     #ifdef  LSI_C   /* LSI-C の場合のみ */
00203     /* 準備ができていません 読み取り中 ドライブ X:
00204     　 中止(A), 再試行(R), 失敗(F)?
00205     　 を出さないようにする。 */
00206     int24h = _dos_getvect(0x24);    /* 割込みベクタ待避 */
00207     _dos_setvect(0x24,int_nop);     /* 何もしない処理に入れ替える */
00208     #endif  /* LSI_C */
00209
00210     dl = GetExistPath_NO_DriveLetter;   /*「ドライブレターが無い」にしておく*/
00211     if(
00212         ( *(po+1) == ':' )&&
00213         (
00214             ( ( *po >='A' )&&( *po <='Z' ) ) ||
00215             ( ( *po >='a' )&&( *po <='z' ) )
00216         )
00217     ){  /* 先頭にドライブレターがある。そのドライブが有効かどうか判定する */
00218         drv[0] = *po;
00219 /*      printf("chk>{%s}\n",drv);   /* for DEBUG */
00220         if( access(drv,0) == 0 )    dl = GetExistPath_AV_Drive;     /* 有効 */
00221         else                        dl = GetExistPath_IV_Drive;     /* 無効 */
00222     }
00223
00224     #ifdef  LSI_C   /* LSI-C の場合のみ */
00225     _dos_setvect(0x24,int24h);  /* 割込みベクタ復活 */
00226     #endif  /* LSI_C */
00227
00228     if( dl == GetExistPath_IV_Drive ){  /* ドライブ自体が無効 */
00229         /* フロッピーディスク中のファイルが指定されていて、
00230         　 そのドライブにフロッピーディスクが入っていない、とか */
00231         *po = '\0'; /* 返値文字列 = "";(空文字列) */
00232         return;     /* これ以上何もしない */
00233     }
00234
00235     /* ps = 検索開始位置 */
00236     ps = po;    /* ↓文字列の先頭が \\ なら、\ 検索処理の対象から外す */
00237     if( ( *po == '\\' )&&( *(po+1) == '\\' ) )  ps +=2;
00238
00239     if( *ps == '\0' ){  /* 検索対象が空文字列なら */
00240         *po = '\0';     /* 返値文字列 = "";(空文字列) */
00241         return;         /*これ以上何もしない */
00242     }
00243
00244     for(;;){
00245 /*      printf("chk>{%s}\n",po);        /* for DEBUG */
00246         if( access(po,0) == 0 ) break;  /* 有効なパス文字列が見つかった */
00247         /* ↓文字列最後尾の \ または ' ' を探し出し、そこを文字列終端にする。*/
00248
00249         pw = sjis_strrchr2(ps,'\\',' ');    /* 最末尾の \ か ' ' を探す。 */
00250         if ( pw == NULL ){  /* 文字列中に '\\' も ' ' も無かった */
00251             /* 例えば "C:testdir" という文字列が来た時に、"C:testdir" が実在
00252             　 しなくとも C:ドライブが有効なら "C:" という文字列だけでも返し
00253             　 たい。以下↓は、そのための処理。 */
00254             if( dl == GetExistPath_AV_Drive ){
00255                 /* 先頭に有効なドライブのドライブレターがある。 */
00256                 *(po+2) = '\0';     /* ドライブレター部の文字列のみ返す */
00257             }
00258             else{   /* 有効なパス部分が全く見つからなかった */
00259                 *po = '\0'; /* 返値文字列 = "";(空文字列) */
00260             }
00261             break;      /* ループを抜ける */
00262         }
00263         /* ↓ルートディレクトリを引っかけるための処理 */
00264         if( ( *pw == '\\' )&&( *(pw-1) == ':' ) ){  /* C:\ とかの \ っぽい */
00265             * (pw+1) = '\0';        /* \ の後ろの位置を文字列の終端にする。 */
00266 /*          printf("chk>{%s}\n",po);        /* for DEBUG */
00267             if( access(po,0) == 0 ) break;  /* 有効なパス文字列が見つかった */
00268         }
00269         *pw = '\0';     /* \ か ' ' の位置を文字列の終端にする。 */
00270         /* ↓末尾がスペースなら、スペースを全て削除する */
00271         while( ( pw != ps ) && ( *(pw-1) == ' ' ) ) * --pw = '\0';
00272     }
00273
00274     return;
00275 }
00276
00277 /* 与えられたコマンドライン文字列の先頭部分から実在するファイル・ディレクトリ
00278 　 のパス文字列を抽出し、そのパスを分解して drv dir fnm ext に書き込む。
00279 　 先頭部分に有効なパス名が存在しない場合、全てに空文字列が返る。 */
00280 void    my_splitpath ( const char *comln , char *drv,char *dir,char *fnm,char *ext ){
00281     char    ppp[_MAX_PATH];     /* パス格納（作業用） */
00282     unsigned char   *pd;
00283     unsigned char   *pf;
00284     unsigned char   *pe;
00285     unsigned char   ch;
00286     #ifdef  _USE_MS_DOS_FUNC_
00287         unsigned    attr;
00288     #else
00289         DWORD   attr;
00290     #endif
00291     int     a_dir;
00292
00293     if( drv != NULL )   *drv = '\0';
00294     if( dir != NULL )   *dir = '\0';
00295     if( fnm != NULL )   *fnm = '\0';
00296     if( ext != NULL )   *ext = '\0';
00297     if( *comln == '\0' )    return;
00298
00299     /* コマンドライン先頭部分の実在するパス名を ppp に書き出す。 */
00300     GetExistPath( ppp , comln );
00301
00302     if( *ppp != '\0' ) {    /* ファイル・ディレクトリが存在する場合 */
00303         /* 先頭文字がドライブレターかどうか判定し、
00304         　 pd = ディレクトリ名の先頭位置に設定する。 */
00305         pd = ppp;
00306         if(
00307             ( *(pd+1)==':' )&&
00308             ( ( ( *pd >='A' )&&( *pd <='Z' ) ) || ( ( *pd >='a' )&&( *pd <='z' ) ) )
00309         ){  /* 先頭にドライブレターがある。 */
00310             pd += 2;    /* pd = ドライブレター部の後ろ         */
00311         }               /*      ( = ディレクトリ名の先頭位置 ) */
00312         /* ここまでで、pd = ディレクトリ名の先頭位置 */
00313
00314         #ifdef  _USE_MS_DOS_FUNC_
00315             _dos_getfileattr(ppp,&attr);
00316             a_dir = ( attr & _A_SUBDIR ) ? 1 : 0;
00317         #else
00318             attr =  GetFileAttributes(ppp);
00319             a_dir = ( attr & FILE_ATTRIBUTE_DIRECTORY ) ?  1 : 0;
00320         #endif
00321 /*      if( a_dir ) printf("find>{%s} <DIR>\n",ppp);        /* for DEBUG */
00322 /*      else        printf("find>{%s} <FILE>\n",ppp);       /* for DEBUG */
00323         if( ! a_dir ){  /* 見つけた物がファイルだった場合。 */
00324             pf = sjis_strrchr2(ppp,'\\','\\');  /* 最末尾の \ を探す。 */
00325             if(pf != NULL)  pf++;       /* 見つかった→  pf=\の次の文字の位置*/
00326             else            pf = pd;    /* 見つからない→pf=パス名の先頭位置 */
00327             /* ここまでで pf = ファイル名の先頭位置 */
00328             pe = sjis_strrchr2(pf,'.','.');     /* 最末尾の '.' を探す。 */
00329             if( pe != NULL ){                   /* 見つかった(pe = '.'の位置)*/
00330                 if( ext != NULL ){  /* 拡張子を返値として書き込む。 */
00331                     strncpy(ext,pe,_MAX_EXT -1);
00332                     ext[_MAX_EXT -1] = '\0';
00333                 }
00334                 *pe = '\0'; /* 区切り位置を文字列終端にする。pe = 拡張子名の先頭位置。 */
00335             }
00336             if( fnm != NULL ){  /* ファイル名を返値として書き込む。 */
00337                 strncpy(fnm,pf,_MAX_FNAME -1);
00338                 fnm[_MAX_FNAME -1] = '\0';
00339             }
00340             *pf = '\0'; /* ファイル名の先頭位置を文字列終端にする。 */
00341         }
00342         /* ここまでで文字列 ppp はドライブレター＋ディレクトリ名のみになっている */
00343         if( dir != NULL ){
00344             /* ディレクトリ名の最後の文字が \ ではない場合、\ にする。 */
00345
00346             /* ↓最後の文字を ch に得る。(ディレクトリ文字列が空の場合 ch='\\' となる) */
00347             for( ch = '\\' , pf = pd ; *pf != '\0' ; pf++ ){
00348                 ch = *pf;
00349                 if( _IS_SJIS_1(*pf) )   pf++;   /* Shift_JIS の1文字目なら次の1文字をスキップ */
00350             }
00351             /* 文字列が空でなく、かつ、最後の文字が \ でなかったならば \ を追加。 */
00352             if( ( ch != '\\' ) && ( strlen(ppp) < _MAX_PATH -1 ) ){
00353                 *pf++ = '\\';   *pf = '\0';
00354             }
00355 /*          printf("%d:{%s}\n",strlen(ppp),ppp);    /* for DEBUG */
00356
00357             /* ディレクトリ名を返値として書き込む。 */
00358             strncpy(dir,pd,_MAX_DIR -1);
00359             dir[_MAX_DIR -1] = '\0';
00360         }
00361         *pd = '\0';     /* ディレクトリ名の先頭位置を文字列終端にする。 */
00362         if( drv != NULL ){  /* ドライブレターを返値として書き込む。 */
00363             strncpy(drv,ppp,_MAX_DRIVE -1);
00364             drv[_MAX_DRIVE -1] = '\0';
00365         }
00366     }
00367     return;
00368 }
00369
00370 /* file end */
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: MY_SP.h

MY_SP.h

引数を正しく無視するsplitpath [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

void | my_splitpath (const char *comln, char *drv, char *dir, char *fnm, char *ext)
char * | sjis_strrchr2 (unsigned char *pt, const unsigned char ch1, const unsigned char ch2)

説明

引数を正しく無視するsplitpath

作者:
SUI
日付:
2002.07.15 Initial release

MY_SP.h で定義されています。

関数

void my_splitpath | ( | const char * | comln,
 |  | char * | drv,
 |  | char * | dir,
 |  | char * | fnm,
 |  | char * | ext
 | ) |

MY_SP.C の 280 行で定義されています。

参照先 _IS_SJIS_1・_MAX_DIR・_MAX_EXT・_MAX_FNAME・_MAX_PATH・GetExistPath()・NULL・sjis_strrchr2().

参照元 CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName().

char* sjis_strrchr2 | ( | unsigned char * | pt,
 |  | const unsigned char | ch1,
 |  | const unsigned char | ch2
 | ) |

MY_SP.C の 158 行で定義されています。

参照先 _IS_SJIS_1・NULL.

参照元 my_splitpath().

Sakura-Editorに対してSat Oct 27 02:26:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: MY_SP.h ソースファイル

MY_SP.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2002, SUI
00009
00010     This software is provided 'as-is', without any express or implied
00011     warranty. In no event will the authors be held liable for any damages
00012     arising from the use of this software.
00013
00014     Permission is granted to anyone to use this software for any purpose,
00015     including commercial applications, and to alter it and redistribute it
00016     freely, subject to the following restrictions:
00017
00018         1. The origin of this software must not be misrepresented;
00019            you must not claim that you wrote the original software.
00020            If you use this software in a product, an acknowledgment
00021            in the product documentation would be appreciated but is
00022            not required.
00023
00024         2. Altered source versions must be plainly marked as such,
00025            and must not be misrepresented as being the original software.
00026
00027         3. This notice may not be removed or altered from any source
00028            distribution.
00029 */
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033
00034 void my_splitpath ( const char *comln , char *drv,char *dir,char *fnm,char *ext );
00035 char    *sjis_strrchr2( unsigned char *pt , const unsigned char ch1 , const unsigned char ch2 );
00036
00037 #ifdef __cplusplus
00038 }
00039 #endif
Sakura-Editorに対してSat Oct 27 02:14:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: my_tchar.h

my_tchar.h

my_icmp/my_stringのShift_JISとUnicodeを切り替えるための定義 [詳細]

#include "my_icmp.h"

my_tchar.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | my_tmemicmp my_memicmp
#define | my_tcsicmp my_stricmp
#define | my_tcsnicmp my_strnicmp
#define | _tmemcpy memcpy

説明

my_icmp/my_stringのShift_JISとUnicodeを切り替えるための定義

作者:
日付:
2003/2/17 新規登録

my_tchar.h で定義されています。

マクロ定義

#define _tmemcpy memcpy

my_tchar.h の 47 行で定義されています。

#define my_tcsicmp my_stricmp

my_tchar.h の 42 行で定義されています。

#define my_tcsnicmp my_strnicmp

my_tchar.h の 43 行で定義されています。

#define my_tmemicmp my_memicmp

my_tchar.h の 41 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:26:55 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: my_tchar.h ソースファイル

my_tchar.h

説明を見る。
00001
00007 /*
00008     This source code is designed for sakura editor.
00009     Please contact the copyright holder to use this code for other purpose.
00010 */
00011 /*
00012     my_icmp/my_stringのShift_JISとUnicodeを切り替えるための定義
00013 */
00014
00015 #ifndef _MY_TCHAR_H__
00016 #define _MY_TCHAR_H__
00017
00018 /* include files */
00019 #include "my_icmp.h"
00020 // #include "my_string.h"
00021
00022
00023 /* ************ _UNICODE ************ */
00024 #ifdef _UNICODE
00025
00026  /* my_icmp */
00027 #define  my_tmemicmp my_wmemicmp
00028 #define  my_tcsicmp  my_wcsicmp
00029 #define  my_tcsnicmp my_wcsnicmp
00030
00031  /* CRT */
00032 #ifndef _tmemcpy
00033 #define _tmemcpy     wmemcpy
00034 #endif
00035
00036
00037 /* ********** MBCS or CBCS ********** */
00038 #else
00039
00040  /*  my_icmp */
00041 #define  my_tmemicmp my_memicmp
00042 #define  my_tcsicmp  my_stricmp
00043 #define  my_tcsnicmp my_strnicmp
00044
00045  /* CRT */
00046 #ifndef _tmemcpy
00047 #define _tmemcpy     memcpy
00048 #endif
00049
00050 #endif
00051
00052 #endif /* _MY_TCHAR_H__ */
00053 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: mymessage.h

mymessage.h

アプリケーション定義のメッセージ [詳細]

#include <windows.h>

mymessage.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | MYWM_DOSPLIT (WM_APP+1500)
#define | MYWM_SETACTIVEPANE (WM_APP+1510)
#define | MYWM_CHANGESETTING (WM_APP+1520)
#define | MYWM_NOTIFYICON (WM_APP+100)
#define | MYWM_CLOSE (WM_APP+200)
#define | MYWM_GETFILEINFO (WM_APP+203)
* トレイからエディタへの設定変更通知 */
#define | MYWM_SETCARETPOS (WM_APP+204)
#define | MYWM_GETCARETPOS (WM_APP+205)
#define | MYWM_ADDSTRING (WM_APP+206)
#define | MYWM_SETREFERER (WM_APP+207)
#define | MYWM_GETLINEDATA (WM_APP+208)
#define | MYWM_DELETE_ME (WM_APP+209)
#define | MYWM_OPENNEWEDITOR (WM_APP+210)
#define | MYWM_HTMLHELP (WM_APP+212)
#define | MYWM_TAB_WINDOW_NOTIFY (WM_APP+213)
* あんたぐれっぷ? */
#define | MYWM_BAR_CHANGE_NOTIFY (WM_APP+214)
#define | MYWM_UIPI_CHECK (WM_APP+215)
#define | MYWM_IME_REQUEST 0x288
#define | MSGNAME_ATOK_RECONVERT TEXT("Atok Message for ReconvertString")
#define | RWM_RECONVERT TEXT("MSIMEReconvert")

列挙型

enum | e_PM_SETCARETPOS_SELECTSTATE { PM_SETCARETPOS_NOSELECT = 0, PM_SETCARETPOS_SELECT = 1, PM_SETCARETPOS_KEEPSELECT = 2 }
MYWM_SETCARETPOSメッセージのLPARAM [詳細]

説明

アプリケーション定義のメッセージ

主にエディタウィンドウとコントロールプロセスの通信に使われる。

作者:
Norio Nakatani
日付:
1998/5/15 新規作成

mymessage.h で定義されています。

マクロ定義

#define MSGNAME_ATOK_RECONVERT TEXT("Atok Message for ReconvertString")

mymessage.h の 115 行で定義されています。

参照元 CEditView::CEditView().

#define MYWM_ADDSTRING (WM_APP+206)

テキスト追加通知(共有データ経由)

mymessage.h の 68 行で定義されています。

参照元 CShareData::TraceOut().

#define MYWM_BAR_CHANGE_NOTIFY (WM_APP+214)

バーの表示・非表示変更メッセージ

mymessage.h の 103 行で定義されています。

参照元 CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR().

#define MYWM_CHANGESETTING (WM_APP+1520)

mymessage.h の 23 行で定義されています。

参照元 CEditView::Command_FONT()・CEditDoc::OpenPropertySheet()・CEditDoc::OpenPropertySheetTypes().

#define MYWM_CLOSE (WM_APP+200)

トレイからエディタへの終了要求

mymessage.h の 44 行で定義されています。

参照元 CEditView::Command_WINCLOSE()・CShareData::RequestCloseAllEditor().

#define MYWM_DELETE_ME (WM_APP+209)

編集ウィンドウオブジェクトからのオブジェクト削除要求

mymessage.h の 78 行で定義されています。

#define MYWM_DOSPLIT (WM_APP+1500)

mymessage.h の 21 行で定義されています。

参照元 CSplitterWnd::DispatchEvent_WM_APP()・CSplitBoxWnd::OnLButtonDblClk()・CSplitBoxWnd::OnLButtonUp().

#define MYWM_GETCARETPOS (WM_APP+205)

カーソル位置取得要求

mymessage.h の 65 行で定義されています。

参照元 CEditView::Command_COMPARE()・CNormalProcess::Initialize().

#define MYWM_GETFILEINFO (WM_APP+203)

* トレイからエディタへの設定変更通知 */

トレイからエディタへの編集ファイル情報 要求通知

mymessage.h の 53 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgCompare::GetData()・CShareData::IsPathOpened()・CDlgDiff::SetData()・CDlgCompare::SetData()・CEditWnd::WinListMenu().

#define MYWM_GETLINEDATA (WM_APP+208)

行(改行単位)データの要求

mymessage.h の 74 行で定義されています。

参照元 CEditView::Command_COMPARE()・CEditView::MakeDiffTmpFile().

#define MYWM_HTMLHELP (WM_APP+212)

mymessage.h の 86 行で定義されています。

#define MYWM_IME_REQUEST 0x288

mymessage.h の 111 行で定義されています。

#define MYWM_NOTIFYICON (WM_APP+100)

タスクトレイからの通知メッセージ

mymessage.h の 26 行で定義されています。

参照元 CEditApp::DispatchEvent()・CEditApp::TrayMessage().

#define MYWM_OPENNEWEDITOR (WM_APP+210)

新しい編集ウィンドウの作成依頼(コマンドラインを渡す)

mymessage.h の 81 行で定義されています。

#define MYWM_SETACTIVEPANE (WM_APP+1510)

mymessage.h の 22 行で定義されています。

参照元 CSplitterWnd::DispatchEvent_WM_APP().

#define MYWM_SETCARETPOS (WM_APP+204)

カーソル位置変更通知

mymessage.h の 56 行で定義されています。

参照元 CEditView::Command_TAGJUMPBACK()・CNormalProcess::Initialize()・CDlgFuncList::OnJump()・CEditView::TagJumpSub().

#define MYWM_SETREFERER (WM_APP+207)

タグジャンプ元通知

mymessage.h の 71 行で定義されています。

参照元 CEditView::TagJumpSub().

#define MYWM_TAB_WINDOW_NOTIFY (WM_APP+213)

* あんたぐれっぷ? */

タブウインドウ用メッセージ

mymessage.h の 100 行で定義されています。

参照元 ActivateFrameWindow()・CEditWnd::ChangeFileNameNotify()・CEditView::Command_BIND_WINDOW()・CShareData::DeleteEditWndList()・CTabWnd::SeparateGroup()・CTabWnd::ShowHideWindow().

#define MYWM_UIPI_CHECK (WM_APP+215)

エディタ－トレイ間でのUI特権分離の確認メッセージ

mymessage.h の 106 行で定義されています。

#define RWM_RECONVERT TEXT("MSIMEReconvert")

mymessage.h の 116 行で定義されています。

参照元 CEditView::CEditView().

列挙型

enum e_PM_SETCARETPOS_SELECTSTATE

MYWM_SETCARETPOSメッセージのLPARAM

列挙型の値:
PM_SETCARETPOS_NOSELECT | 選択解除
PM_SETCARETPOS_SELECT | 選択開始・変更
PM_SETCARETPOS_KEEPSELECT | 現在の選択状態を保って移動

mymessage.h の 58 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:26:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: mymessage.h ソースファイル

mymessage.h

説明を見る。
00001
00009 /*
00010     Copyright (C) 1998-2001, Norio Nakatani
00011     Copyright (C) 2002, aroka
00012     Copyright (C) 2003, MIK
00013     Copyright (C) 2007, ryoji
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018
00019 #include <windows.h>
00020
00021 #define MYWM_DOSPLIT        (WM_APP+1500)
00022 #define MYWM_SETACTIVEPANE  (WM_APP+1510)
00023 #define MYWM_CHANGESETTING  (WM_APP+1520)   /* 設定が変更されたことの通知メッセージ */
00024
00026 #define MYWM_NOTIFYICON     (WM_APP+100)
00027
00028
00029
00030
00031 //  /* エディタからトレイへの自己登録要求 */
00032 //  #define MYWM_ADD_EDITOR (WM_APP+101)
00033
00034 //  /* エディタからトレイへの自己削除要求 */
00035 //  #define MYWM_DEL_EDITOR (WM_APP+102)
00036
00037 //  /* エディタからトレイへのアクセラレータ解読要求 */
00038 //  #define MYWM_GETACCELFUNC   (WM_APP+103)
00039
00040
00041
00042
00044 #define MYWM_CLOSE          (WM_APP+200)
00045
00046 //  /* トレイからエディタへのアクセラレータテーブル更新通知 */
00047 //  #define MYWM_SETACCEL       (WM_APP+201)
00048
00050 //#define   MYWM_SETOPTION      (WM_APP+202)
00051
00053 #define MYWM_GETFILEINFO    (WM_APP+203)
00054
00056 #define MYWM_SETCARETPOS    (WM_APP+204)
00057
00058 enum e_PM_SETCARETPOS_SELECTSTATE {
00059     PM_SETCARETPOS_NOSELECT     = 0,
00060     PM_SETCARETPOS_SELECT       = 1,
00061     PM_SETCARETPOS_KEEPSELECT   = 2,
00062 };
00063
00065 #define MYWM_GETCARETPOS    (WM_APP+205)
00066
00068 #define MYWM_ADDSTRING      (WM_APP+206)
00069
00071 #define MYWM_SETREFERER     (WM_APP+207)
00072
00074 #define MYWM_GETLINEDATA    (WM_APP+208)
00075
00076
00078 #define MYWM_DELETE_ME      (WM_APP+209)
00079
00081 #define MYWM_OPENNEWEDITOR  (WM_APP+210)
00082
00083 //* 編集ウィンドウオブジェクトからのアクティブ要求 */
00084 //#define   MYWM_ACTIVATE_ME        (WM_APP+211)
00085
00086 #define MYWM_HTMLHELP           (WM_APP+212)
00087
00089 //#define   MYWM_AREYOUGREP         (WM_APP+212)
00090
00091
00092 //  /* エディタからトレイへの編集ファイル情報 設定通知 */
00093 //  #define MYWM_SETFILEINFO    (WM_APP+204)
00094
00095
00096 //  /* トレイ管理ウィンドウからの全終了メッセージ */
00097 //  #define MYWM_CLOSEALL       (WM_APP+900)
00098
00100 #define MYWM_TAB_WINDOW_NOTIFY  (WM_APP+213)    //@@@ 2003.05.31 MIK
00101
00103 #define MYWM_BAR_CHANGE_NOTIFY  (WM_APP+214)    //@@@ 2003.06.10 MIK
00104
00106 #define MYWM_UIPI_CHECK (WM_APP+215)    //@@@ 2007.06.07 ryoji
00107
00108
00109 /* 再変換対応 */ // 20020331 aroka
00110 #ifndef WM_IME_REQUEST
00111 #define MYWM_IME_REQUEST 0x288  // ==WM_IME_REQUEST
00112 #else
00113 #define MYWM_IME_REQUEST WM_IME_REQUEST
00114 #endif
00115 #define MSGNAME_ATOK_RECONVERT TEXT("Atok Message for ReconvertString")
00116 #define RWM_RECONVERT TEXT("MSIMEReconvert")
00117
00118 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: OleTypes.h

OleTypes.h

OLE Type wrapper [詳細]

#include "windows.h"
#include "oleauto.h"

OleTypes.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

struct | SysString
struct | Variant

関数

Variant * | Wrap (VARIANT *Value)
SysString * | Wrap (BSTR *Value)

説明

OLE Type wrapper

作者:
鬼
日付:
2003.0221

OleTypes.h で定義されています。

関数

SysString* Wrap ( BSTR * Value ) [inline]

OleTypes.h の 96 行で定義されています。

Variant* Wrap ( VARIANT * Value ) [inline]

OleTypes.h の 91 行で定義されています。

参照元 CMacro::HandleFunction()・MacroCommand()・CPPA::stdStrFunc().

Sakura-Editorに対してSat Oct 27 02:26:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: OleTypes.h ソースファイル

OleTypes.h

説明を見る。
00001
00007 /*
00008     Copyright (C) 2003, 鬼, Moca
00009     This source code is designed for sakura editor.
00010     Please contact the copyright holder to use this code for other purpose.
00011
00012 */
00013 #ifndef __OLE_TYPES_WRAP__
00014 #define __OLE_TYPES_WRAP__
00015
00016 #include "windows.h"
00017 #include "oleauto.h"
00018
00023 struct SysString
00024 {
00025     BSTR Data;
00026     SysString()                         { Data = NULL; }
00027     SysString(SysString &Source)        { Data = ::SysAllocStringLen(Source.Data, SysStringLen(Source.Data)); }
00028     SysString(BSTR &Source)             { Data = ::SysAllocStringLen(Source, SysStringLen(Source)); }
00029     SysString(wchar_t const *S, int L)  { Data = ::SysAllocStringLen(S, L); }
00030     SysString(char const *S, int L)
00031     {
00032         wchar_t *buf = new wchar_t[L + 1];
00033         int L2 = ::MultiByteToWideChar(CP_ACP, 0, S, L, buf, L);
00034         Data = ::SysAllocStringLen(buf, L2);
00035         delete[] buf;
00036     }
00037     ~SysString()                        { ::SysFreeString(Data); }
00038     SysString& operator = (SysString& Source) { Data = ::SysAllocStringLen(Source.Data, SysStringLen(Source.Data)); return *this; }
00039     int Length()                        { return ::SysStringLen(Data); }
00040     void Get(char **S, int *L)
00041     {
00042         int Len = ::SysStringLen(Data);
00043         *S = new char[Len * 2 + 1];
00044         *L = ::WideCharToMultiByte(CP_ACP, 0, Data, Len, *S, Len * 2, NULL, NULL);
00045         (*S)[*L] = 0;
00046     }
00047 };
00048
00053 struct Variant
00054 {
00055     VARIANT Data;
00056     Variant()                       { ::VariantInit(&Data); }
00057     Variant(Variant &Source)        { ::VariantCopyInd(&Data, &Source.Data); }
00058     Variant(VARIANT &Source)        { ::VariantCopyInd(&Data, &Source); }
00059     ~Variant()                      { ::VariantClear(&Data); }
00060     Variant& operator = (Variant& Source) { ::VariantCopyInd(&Data, &Source.Data); return *this; }
00065     void Receive(SysString &Source)
00066     {
00067         ::VariantClear(&Data);
00068         Data.vt = VT_BSTR;
00069         Data.bstrVal = Source.Data;
00070         Source.Data = NULL;
00071     }
00072
00073     // 2003.06.25 Moca
00074     // intを戻り値として返す場合に対応
00075     int Receive(int i)
00076     {
00077         ::VariantClear(&Data);
00078         Data.vt = VT_I4;
00079         return Data.lVal = i;
00080     }
00081 };
00082 /*
00083 #if sizeof(SysString) != 4
00084 #error "error"
00085 #endif
00086
00087 #if sizeof(Variant) != 16
00088 #error "error"
00089 #endif
00090 */
00091 inline Variant* Wrap(VARIANT *Value)
00092 {
00093     return reinterpret_cast<Variant*>(Value);
00094 }
00095
00096 inline SysString* Wrap(BSTR *Value)
00097 {
00098     return reinterpret_cast<SysString*>(Value);
00099 }
00100 #endif
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: RcCvt.cpp

RcCvt.cpp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "RcCvt.h"

RcCvt.cppのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define trail(c)

マクロ定義

#define trail ( c )

RcCvt.cpp の 13 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:26:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: RcCvt.cpp ソースファイル

RcCvt.cpp

説明を見る。
00001
00002 //  RcCvt       : convert MSVC type resource file to Brc32 type.
00003 //      20010820 aroka
00004
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include <string.h>
00008 #include "RcCvt.h"
00009
00010 #ifdef _DEBUG
00011 # define trail(c)   fputs(c,stdout)
00012 #else
00013 # define trail(c)
00014 #endif
00015
00016
00017 RcCvt::RcCvt()
00018     : fpi(0), fpo(0), nLine(100),
00019      strerr(0), buffer(0)
00020 {
00021 }
00022 RcCvt::~RcCvt()
00023 {
00024     if( fpi )   fclose( fpi );
00025     if( fpo )   fclose( fpo );
00026     if( strerr ){
00027         fprintf( stderr, "RcCvt! %s\n", strerr );
00028         free( strerr );
00029     }
00030     if( buffer )
00031         free( buffer );
00032
00033 }
00034
00035 bool RcCvt::setErr(char*errstr)
00036 {
00037     char *t;
00038     int lcr = strlen(errstr)+2;
00039     if( strerr ){
00040         t = (char*)realloc( strerr , strlen(strerr)+lcr );  // 2003.10.31 moca 不要な+1を削除
00041     }else{
00042         // 2003.10.31 moca 不要な+1を削除
00043         // 2003.11.01 genta callocで0クリアを保証する
00044         t = (char*)calloc( lcr, 1 );
00045     }
00046     if( t==NULL){
00047         return false;
00048     }
00049
00050     strcat( t, "\n" );
00051     strcat( t, errstr );
00052     strerr = t;
00053     return true;
00054 }
00055
00056 bool RcCvt::init(char *infile, char*outfile)
00057 {
00058     fpi = fopen( infile, "r" );
00059     fpo = fopen( outfile, "w" );
00060
00061     trail("##1");
00062     if( fpi==NULL ){
00063         setErr( "infile cannot open." );
00064         return false;
00065     }
00066     trail("##2");
00067     if( fpo==NULL ){
00068         setErr( "outfile cannot open." );
00069         return false;
00070     }
00071     trail("##3");
00072     if(!buffer){
00073         buffer = (char*)malloc(nLine);
00074         if( buffer == NULL ){
00075             setErr( "cannot allocate buffer" );
00076             return false;
00077         }
00078     }
00079
00080     return true;
00081 }
00082
00083 // convert check.
00084 bool RcCvt::convert(void)
00085 {
00086     while( !feof(fpi) )
00087     {
00088         //  2007.04.03 genta ファイル末尾で読み込みエラーになると最終行が重複して出力される
00089         if( NULL == fgets(buffer, nLine, fpi )){
00090             break;
00091         }
00092
00093         if( strncmp( buffer, "FONT", 4 ) == 0 ){
00094             font(buffer);
00095         }
00096         if( strncmp( buffer, "#include", 8 ) == 0 ){
00097             include(buffer);
00098         }
00099
00100         fputs(buffer, fpo );
00101     }
00102     return true;
00103 }
00104
00105 // Convert stuff.
00106 bool RcCvt::font(char*linestr)
00107 {
00108     char* cp, *cp2;
00109     trail("$1");
00110     cp = strchr( linestr, ',' );
00111     if( cp==NULL ){
00112         setErr( "',' not found." );
00113         return false;
00114     }
00115     cp++;
00116     trail("$2");
00117     cp2 = strchr( cp, ',' );
00118     trail("$3");
00119     if( cp2==NULL ){
00120         setErr( "',' not found." );
00121         return false;
00122     }
00123     trail("$4");
00124
00125     *cp2 = '\n';
00126     cp2++;
00127     *cp2 = '\0';
00128
00129     return true;
00130 }
00131
00132 bool RcCvt::include(char*linestr)
00133 {
00134     if( strstr( linestr, "afxres.h" ) != NULL )
00135     {
00136         strcpy( linestr, "\n" );
00137     }
00138     //2002.01.10 あろか リソースのDlgs.hを削除
00139     else if( strstr( linestr, "Dlgs.h" ) != NULL )  //2002.01.15 あろか elsif -> else if
00140     {
00141         strcpy( linestr, "\n" );
00142     }
00143     else if( strstr( linestr, "windows.h" ) != NULL )   //2006.11.14 ryoji
00144     {
00145         strcpy( linestr, "\n" );
00146     }
00147     return true;
00148 }
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: RcCvt.h

RcCvt.h

#include <stdio.h>

RcCvt.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

構成

class RcCvt

Sakura-Editorに対してSat Oct 27 02:26:58 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: RcCvt.h ソースファイル

RcCvt.h

説明を見る。
00001
00002 //  RcCvt       : convert MSVC type resource file to Brc32 type.
00003 //      20010820 aroka
00004
00005 #include <stdio.h>
00006
00007 class RcCvt {
00008 public:
00009     RcCvt();
00010     ~RcCvt();
00011     bool init(char *infile, char*outfile);
00012     bool convert(void);
00013
00014 private:
00015     bool font(char*linestr);
00016     bool include(char*linestr);
00018     bool setErr(char*errstr);
00019
00020 private:
00021     FILE *fpi;
00022     FILE *fpo;
00023     int nLine;
00024     char *strerr;
00025     char *buffer;
00026 };
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: sakura.hh

sakura.hh

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | HLP000001 1
#define | HLP000002 2
#define | HLP000003 3
#define | HLP000004 4
#define | HLP000005 5
#define | HLP000010 10
#define | HLP000006 6
#define | HLP000008 8
#define | HLP000112 112
#define | HLP000259 259
#define | HLP000260 260
#define | HLP000261 261
#define | HLP000009 9
#define | HLP000133 133
#define | HLP000011 11
#define | HLP000012 12
#define | HLP000013 13
#define | HLP000014 14
#define | HLP000007 7
#define | HLP000113 113
#define | HLP000114 114
#define | HLP000115 115
#define | HLP000104 104
#define | HLP000105 105
#define | HLP000106 106
#define | HLP000129 129
#define | HLP000135 135
#define | HLP000016 16
#define | HLP000025 25
#define | HLP000015 15
#define | HLP000020 20
#define | HLP000021 21
#define | HLP000313 313
#define | HLP000287 287
#define | HLP000017 17
#define | HLP000119 119
#define | HLP000283 283
#define | HLP000156 156
#define | HLP000157 157
#define | HLP000158 158
#define | HLP000159 159
#define | HLP000256 256
#define | HLP000160 160
#define | HLP000161 161
#define | HLP000162 162
#define | HLP000120 120
#define | HLP000122 122
#define | HLP000192 192
#define | HLP000132 132
#define | HLP000027 27
#define | HLP000121 121
#define | HLP000022 22
#define | HLP000029 29
#define | HLP000023 23
#define | HLP000030 30
#define | HLP000028 28
#define | HLP000031 31
#define | HLP000032 32
#define | HLP000033 33
#define | HLP000034 34
#define | HLP000035 35
#define | HLP000039 39
#define | HLP000041 41
#define | HLP000044 44
#define | HLP000046 46
#define | HLP000163 163
#define | HLP000040 40
#define | HLP000042 42
#define | HLP000164 164
#define | HLP000165 165
#define | HLP000255 255
#define | HLP000289 289
#define | HLP000220 220
#define | HLP000221 221
#define | HLP000222 222
#define | HLP000223 223
#define | HLP000262 262
#define | HLP000263 263
#define | HLP000224 224
#define | HLP000225 225
#define | HLP000226 226
#define | HLP000227 227
#define | HLP000228 228
#define | HLP000229 229
#define | HLP000230 230
#define | HLP000264 264
#define | HLP000231 231
#define | HLP000232 232
#define | HLP000265 265
#define | HLP000166 166
#define | HLP000167 167
#define | HLP000045 45
#define | HLP000169 169
#define | HLP000168 168
#define | HLP000172 172
#define | HLP000173 173
#define | HLP000170 170
#define | HLP000171 171
#define | HLP000174 174
#define | HLP000137 137
#define | HLP000043 43
#define | HLP000036 36
#define | HLP000037 37
#define | HLP000038 38
#define | HLP000303 303
#define | HLP000056 56
#define | HLP000175 175
#define | HLP000057 57
#define | HLP000176 176
#define | HLP000177 177
#define | HLP000210 210
#define | HLP000211 211
#define | HLP000212 212
#define | HLP000213 213
#define | HLP000214 214
#define | HLP000285 285
#define | HLP000131 131
#define | HLP000047 47
#define | HLP000048 48
#define | HLP000049 49
#define | HLP000258 258
#define | HLP000215 215
#define | HLP000200 200
#define | HLP000050 50
#define | HLP000051 51
#define | HLP000123 123
#define | HLP000124 124
#define | HLP000182 182
#define | HLP000196 196
#define | HLP000178 178
#define | HLP000052 52
#define | HLP000053 53
#define | HLP000179 179
#define | HLP000257 257
#define | HLP000142 142
#define | HLP000143 143
#define | HLP000117 117
#define | HLP000118 118
#define | HLP000180 180
#define | HLP000181 181
#define | HLP000054 54
#define | HLP000055 55
#define | HLP000058 58
#define | HLP000059 59
#define | HLP000061 61
#define | HLP000060 60
#define | HLP000062 62
#define | HLP000136 136
#define | HLP000067 67
#define | HLP000063 63
#define | HLP000064 64
#define | HLP000317 317
#define | HLP000065 65
#define | HLP000066 66
#define | HLP000278 278
#define | HLP000280 280
#define | HLP000281 281
#define | HLP000291 291
#define | HLP000310 310
#define | HLP000111 111
#define | HLP000116 116
#define | HLP000183 183
#define | HLP000205 205
#define | HLP000206 206
#define | HLP000207 207
#define | HLP000208 208
#define | HLP000209 209
#define | HLP000304 304
#define | HLP000305 305
#define | HLP000306 306
#define | HLP000307 307
#define | HLP000308 308
#define | HLP000309 309
#define | HLP000068 68
#define | HLP000069 69
#define | HLP000070 70
#define | HLP000282 282
#define | HLP000134 134
#define | HLP000072 72
#define | HLP000073 73
#define | HLP000074 74
#define | HLP000075 75
#define | HLP000197 197
#define | HLP000203 203
#define | HLP000315 315
#define | HLP000077 77
#define | HLP000078 78
#define | HLP000079 79
#define | HLP000080 80
#define | HLP000076 76
#define | HLP000081 81
#define | HLP000146 146
#define | HLP000150 150
#define | HLP000144 144
#define | HLP000083 83
#define | HLP000145 145
#define | HLP000082 82
#define | HLP000148 148
#define | HLP000084 84
#define | HLP000087 87
#define | HLP000085 85
#define | HLP000086 86
#define | HLP000088 88
#define | HLP000201 201
#define | HLP000277 277
#define | HLP000279 279
#define | HLP000071 71
#define | HLP000184 184
#define | HLP000125 125
#define | HLP000127 127
#define | HLP000128 128
#define | HLP000126 126
#define | HLP000202 202
#define | HLP000103 103
#define | HLP000186 186
#define | HLP000195 195
#define | HLP000090 90
#define | HLP000093 93
#define | HLP000094 94
#define | HLP000095 95
#define | HLP000018 18
#define | HLP000019 19
#define | HLP000092 92
#define | HLP000091 91
#define | HLP000314 314
#define | HLP000311 311
#define | HLP000138 138
#define | HLP000140 140
#define | HLP000139 139
#define | HLP000312 312
#define | HLP000141 141
#define | HLP000098 98
#define | HLP000096 96
#define | HLP000187 187
#define | HLP000188 188
#define | HLP000097 97
#define | HLP000320 320
#define | HLP000321 321
#define | HLP000322 322
#define | HLP000323 323
#define | HLP000324 324
#define | HLP000325 325
#define | HLP000326 326
#define | HLP000327 327
#define | HLP000328 328
#define | HLP000329 329
#define | HLP000330 330
#define | HLP000331 331
#define | HLP000099 99
#define | HLP000100 100
#define | HLP000101 101
#define | HLP000189 189
#define | HLP000024 24
#define | HLP000026 26
#define | HLP000198 198
#define | HLP000199 199
#define | HLP000194 194
#define | HLP000190 190
#define | HLP000191 191
#define | HLP000102 102
#define | HLP000107 107
#define | HLP000193 193
#define | HLP000149 149
#define | HLP000109 109
#define | HLP000204 204
#define | HLP000266 266
#define | HLP000267 267
#define | HLP000268 268
#define | HLP000269 269
#define | HLP000270 270
#define | HLP000271 271
#define | HLP000272 272
#define | HLP000218 218
#define | HLP000219 219
#define | HLP000233 233
#define | HLP000290 290
#define | HLP000234 234
#define | HLP000235 235
#define | HLP000236 236
#define | HLP000237 237
#define | HLP000273 273
#define | HLP000274 274
#define | HLP000238 238
#define | HLP000239 239
#define | HLP000240 240
#define | HLP000241 241
#define | HLP000242 242
#define | HLP000243 243
#define | HLP000244 244
#define | HLP000245 245
#define | HLP000246 246
#define | HLP000247 247
#define | HLP000248 248
#define | HLP000275 275
#define | HLP000276 276
#define | HLP000249 249
#define | HLP000250 250
#define | HLP000251 251
#define | HLP000252 252
#define | HLP000253 253
#define | HLP000254 254
#define | HLP000286 286
#define | HLP000316 316
#define | HLP000318 318
#define | HLP000300 300
#define | HLP000301 301
#define | HLP000302 302
#define | HLP000089 89
#define | HLP_UR000 3000
#define | HLP_UR014 3014
#define | HLP_UR013 3013
#define | HLP_UR012 3012
#define | HLP_UR011 3011
#define | HLP_UR010 3010
#define | HLP_UR009 3009
#define | HLP_UR008 3008
#define | HLP_UR007 3007
#define | HLP_UR006 3006
#define | HLP_UR005 3005
#define | HLP_UR004 3004
#define | HLP_UR003 3003
#define | HLP_UR002 3002
#define | HLP_UR001 3001
#define | HLP_LISENCE 4000
#define | HLP_HISTORY 4001
#define | HIDC_BUTTON_BACKUP_FOLDER_REF 10000
#define | HIDC_CHECK_BACKUP 10010
#define | HIDC_CHECK_BACKUP_YEAR 10011
#define | HIDC_CHECK_BACKUP_MONTH 10012
#define | HIDC_CHECK_BACKUP_DAY 10013
#define | HIDC_CHECK_BACKUP_HOUR 10014
#define | HIDC_CHECK_BACKUP_MIN 10015
#define | HIDC_CHECK_BACKUP_SEC 10016
#define | HIDC_CHECK_BACKUPDIALOG 10017
#define | HIDC_CHECK_BACKUPFOLDER 10018
#define | HIDC_CHECK_BACKUP_DUSTBOX 10019
#define | HIDC_EDIT_BACKUPFOLDER 10040
#define | HIDC_EDIT_BACKUP_3 10041
#define | HIDC_EDIT_BACKUPFILE 10042
#define | HIDC_RADIO_BACKUP_TYPE1 10060
#define | HIDC_RADIO_BACKUP_TYPE2NEWHID 10061
#define | HIDC_RADIO_BACKUP_TYPE3NEWHID 10062
#define | HIDC_RADIO_BACKUP_DATETYPE1 10063
#define | HIDC_RADIO_BACKUP_DATETYPE2 10064
#define | HIDC_CHECK_BACKUP_RETAINEXT 10065
#define | HIDC_CHECK_BACKUP_ADVANCED 10066
#define | HIDC_BUTTON_DELETE 10100
#define | HIDC_BUTTON_INSERTSEPARATOR 10101
#define | HIDC_BUTTON_INSERT 10102
#define | HIDC_BUTTON_ADD 10103
#define | HIDC_BUTTON_UP 10104
#define | HIDC_BUTTON_DOWN 10105
#define | HIDC_BUTTON_IMPORT 10106
#define | HIDC_BUTTON_EXPORT 10107
#define | HIDC_COMBO_FUNCKIND 10130
#define | HIDC_COMBO_MENU 10131
#define | HIDC_LIST_FUNC 10150
#define | HIDC_LIST_RES 10151
#define | HIDC_CHECK_ADDCRLFWHENCOPY 10210
#define | HIDC_CHECK_COPYnDISABLESELECTEDAREA 10211
#define | HIDC_CHECK_DRAGDROP 10212
#define | HIDC_CHECK_DROPSOURCE 10213
#define | HIDC_CHECK_bNotOverWriteCRLF 10214
#define | HIDC_CHECK_EXCVLUSIVE_NO 10310
#define | HIDC_CHECK_bCheckFileTimeStamp 10311
#define | HIDC_CHECK_EXCVLUSIVE_WRITE 10312
#define | HIDC_CHECK_EXCVLUSIVE_READWRITE 10313
#define | HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE 10314
#define | HIDC_CHECK_AUTOSAVE 10315
#define | HIDC_CHECK_bDropFileAndClose 10316
#define | HIDC_CHECK_RestoreCurPosition 10317
#define | HIDC_CHECK_AutoMIMEDecode 10318
#define | HIDC_EDIT_AUTOBACKUP_INTERVAL 10340
#define | HIDC_EDIT_nDropFileNumMax 10341
#define | HIDC_CHECK_RestoreBookmarks 10342
#define | HIDC_CHECK_QueryIfCodeChange 10343
#define | HIDC_CHECK_AlertIfFileNotExist 10344
#define | HIDC_CHECK_NoFilterSaveNew 10345
#define | HIDC_CHECK_NoFilterSaveFile 10346
#define | HIDC_EDIT_DFORM 10440
#define | HIDC_EDIT_TFORM 10441
#define | HIDC_EDIT_DFORM_EX 10442
#define | HIDC_EDIT_TFORM_EX 10443
#define | HIDC_EDIT_MIDASHIKIGOU 10444
#define | HIDC_EDIT_INYOUKIGOU 10445
#define | HIDC_RADIO_DFORM_0 10460
#define | HIDC_RADIO_DFORM_1 10461
#define | HIDC_RADIO_TFORM_0 10462
#define | HIDC_RADIO_TFORM_1 10463
#define | HIDC_CHECK_bCaretTextForSearch 10500
#define | HIDC_CHECK_bGrepExitConfirm 10510
#define | HIDC_CHECK_GTJW_RETURN 10511
#define | HIDC_CHECK_GTJW_LDBLCLK 10512
#define | HIDC_CHECK_GREPREALTIME 10513
#define | HIDC_EDIT_REGEXPLIB 10514
#define | HIDC_LABEL_REGEXPVER 10515
#define | HIDC_BUTTON_OPENHELP1 10602
#define | HIDC_BUTTON_OPENEXTHTMLHELP 10603
#define | HIDC_BUTTON_KEYWORDHELPFONT 11611
#define | HIDC_CHECK_USEHOKAN 10610
#define | HIDC_CHECK_m_bHokanKey_RETURN 10612
#define | HIDC_CHECK_m_bHokanKey_TAB 10613
#define | HIDC_CHECK_m_bHokanKey_RIGHT 10614
#define | HIDC_CHECK_m_bHokanKey_SPACE 10615
#define | HIDC_CHECK_HTMLHELPISSINGLE 10617
#define | HIDC_CHECK_CLICKKEYSEARCH 10618
#define | HIDC_EDIT_EXTHELP1 10642
#define | HIDC_EDIT_EXTHTMLHELP 10643
#define | HIDC_EDIT_MIGEMO_DLL 10650
#define | HIDC_BUTTON_OPENMDLL 10651
#define | HIDC_EDIT_MIGEMO_DICT 10652
#define | HIDC_BUTTON_OPENMDICT 10653
#define | HIDC_BUTTON_IMPORT_KEYBIND 10700
#define | HIDC_BUTTON_EXPORT_KEYBIND 10701
#define | HIDC_BUTTON_ASSIGN 10702
#define | HIDC_BUTTON_RELEASE 10703
#define | HIDC_CHECK_SHIFT 10710
#define | HIDC_CHECK_CTRL 10711
#define | HIDC_CHECK_ALT 10712
#define | HIDC_COMBO_FUNCKIND_KEYBIND 10730
#define | HIDC_EDIT_KEYSFUNC 10740
#define | HIDC_LIST_FUNC_KEYBIND 10750
#define | HIDC_LIST_KEY 10751
#define | HIDC_LIST_ASSIGNEDKEYS 10752
#define | HIDC_BUTTON_ADDSET 10800
#define | HIDC_BUTTON_DELSET 10801
#define | HIDC_BUTTON_ADDKEYWORD 10802
#define | HIDC_BUTTON_EDITKEYWORD 10803
#define | HIDC_BUTTON_DELKEYWORD 10804
#define | HIDC_BUTTON_IMPORT_KEYWORD 10805
#define | HIDC_BUTTON_EXPORT_KEYWORD 10806
#define | HIDC_BUTTON_KEYCLEAN 10807
#define | HIDC_CHECK_KEYWORDCASE 10810
#define | HIDC_COMBO_SET 10830
#define | HIDC_BUTTON_KEYSETRENAME 10831
#define | HIDC_LIST_KEYWORD 10840
#define | HIDC_BUTTON_CLEAR_MRU_FILE 10900
#define | HIDC_BUTTON_CLEAR_MRU_FOLDER 10901
#define | HIDC_CHECK_FREECARET 10910
#define | HIDC_CHECK_INDENT 10911
#define | HIDC_CHECK_INDENT_WSPACE 10912
#define | HIDC_CHECK_USETRAYICON 10913
#define | HIDC_CHECK_STAYTASKTRAY 10914
#define | HIDC_CHECK_REPEATEDSCROLLSMOOTH 10915
#define | HIDC_CHECK_EXITCONFIRM 10916
#define | HIDC_CHECK_STOPS_WORD 10917
#define | HIDC_CHECK_STOPS_PARAGRAPH 10918
#define | HIDC_CHECK_CLOSEALLCONFIRM 10919
#define | HIDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE 10920
#define | HIDC_HOTKEY_TRAYMENU 10940
#define | HIDC_EDIT_REPEATEDSCROLLLINENUM 10941
#define | HIDC_EDIT_MAX_MRU_FILE 10942
#define | HIDC_EDIT_MAX_MRU_FOLDER 10943
#define | HIDC_RADIO_CARETTYPE0 10960
#define | HIDC_RADIO_CARETTYPE1 10961
#define | HIDC_BUTTON_DELETE_TOOLBAR 11000
#define | HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR 11001
#define | HIDC_BUTTON_INSERT_TOOLBAR 11002
#define | HIDC_BUTTON_ADD_TOOLBAR 11003
#define | HIDC_BUTTON_UP_TOOLBAR 11004
#define | HIDC_BUTTON_DOWN_TOOLBAR 11005
#define | HIDC_CHECK_TOOLBARISFLAT 11010
#define | HIDC_COMBO_FUNCKIND_TOOLBAR 11030
#define | HIDC_LIST_FUNC_TOOLBAR 11040
#define | HIDC_LIST_RES_TOOLBAR 11041
#define | HIDC_BUTTON_INSERTWRAP 11042
#define | HIDC_CHECK_bSelectClickedURL 11110
#define | HIDC_CHECK_DispFUNCKEYWND 11210
#define | HIDC_CHECK_DispSTATUSBAR 11211
#define | HIDC_CHECK_DispTOOLBAR 11212
#define | HIDC_CHECK_bScrollBarHorz 11213
#define | HIDC_CHECK_bMenuIcon 11214
#define | HIDC_CHECK_SplitterWndVScroll 11216
#define | HIDC_CHECK_SplitterWndHScroll 11217
#define | HIDC_CHECK_DispTabWnd 11218
#define | HIDC_CHECK_DispTabWndMultiWin 11219
#define | HIDC_WINCAPTION_ACTIVE 11220
#define | HIDC_WINCAPTION_INACTIVE 11221
#define | HIDC_TABWND_CAPTION 11222
#define | HIDC_EDIT_nRulerBottomSpace 11240
#define | HIDC_EDIT_nRulerHeight 11241
#define | HIDC_EDIT_nLineNumberRightSpace 11242
#define | HIDC_RADIO_FUNCKEYWND_PLACE1 11260
#define | HIDC_RADIO_FUNCKEYWND_PLACE2 11261
#define | HIDC_EDIT_FUNCKEYWND_GROUPNUM 11262
#define | HIDC_BUTTON_WINSIZE 11263
#define | HIDC_CHECK_SameTabWidth 11270
#define | HIDC_CHECK_DispTabIcon 11271
#define | HIDC_CHECK_SortTabList 11272
#define | HIDC_CHECK_RetainEmptyWindow 11273
#define | HIDC_CHECK_CloseOneWin 11274
#define | HIDC_CHECK_ChgWndByWheel 11275
#define | HIDC_CHECK_WORDWRAP 11310
#define | HIDC_CHECK_INS_SPACE 11311
#define | HIDC_CHECK_KINSOKUHEAD 11312
#define | HIDC_CHECK_KINSOKUTAIL 11313
#define | HIDC_CHECK_KINSOKURET 11314
#define | HIDC_CHECK_KINSOKUKUTO 11315
#define | HIDC_EDIT_TABSPACE 11330
#define | HIDC_COMBO_IMESWITCH 11331
#define | HIDC_COMBO_IMESTATE 11332
#define | HIDC_COMBO_SMARTINDENT 11333
#define | HIDC_COMBO_OUTLINES 11334
#define | HIDC_EDIT_TYPENAME 11340
#define | HIDC_EDIT_TYPEEXTS 11341
#define | HIDC_EDIT_MAXLINELEN 11342
#define | HIDC_EDIT_CHARSPACE 11343
#define | HIDC_EDIT_LINESPACE 11344
#define | HIDC_EDIT_INDENTCHARS 11345
#define | HIDC_EDIT_TABVIEWSTRING 11346
#define | HIDC_EDIT_KINSOKUHEAD 11347
#define | HIDC_EDIT_KINSOKUTAIL 11348
#define | HIDC_CHECK_TAB_ARROW 11350
#define | HIDC_COMBO_INDENTLAYOUT 11351
#define | HIDC_CHECK_RTRIM_PREVLINE 11352
#define | HIDC_RADIO_OUTLINEDEFAULT 11353
#define | HIDC_RADIO_OUTLINERULEFILE 11354
#define | HIDC_EDIT_OUTLINERULEFILE 11355
#define | HIDC_BUTTON_RULEFILE_REF 11356
#define | HIDC_CHECK_DOCICON 11357
#define | HIDC_BUTTON_TEXTCOLOR 11400
#define | HIDC_BUTTON_BACKCOLOR 11401
#define | HIDC_BUTTON_SAMETEXTCOLOR 11402
#define | HIDC_BUTTON_SAMEBKCOLOR 11403
#define | HIDC_BUTTON_IMPORT_COLOR 11404
#define | HIDC_BUTTON_EXPORT_COLOR 11405
#define | HIDC_CHECK_DISP 11410
#define | HIDC_CHECK_FAT 11411
#define | HIDC_CHECK_UNDERLINE 11412
#define | HIDC_CHECK_LCPOS 11413
#define | HIDC_CHECK_LCPOS2 11414
#define | HIDC_COMBO_SET_COLOR 11430
#define | HIDC_COMBO_SET2_COLOR 11431
#define | HIDC_EDIT_BLOCKCOMMENT_FROM 11440
#define | HIDC_EDIT_BLOCKCOMMENT_TO 11441
#define | HIDC_EDIT_LINECOMMENT 11442
#define | HIDC_EDIT_LINECOMMENT2 11443
#define | HIDC_EDIT_LINECOMMENTPOS 11444
#define | HIDC_EDIT_LINECOMMENTPOS2 11445
#define | HIDC_EDIT_LINETERMCHAR 11446
#define | HIDC_EDIT_BLOCKCOMMENT_FROM2 11447
#define | HIDC_EDIT_BLOCKCOMMENT_TO2 11448
#define | HIDC_EDIT_LINECOMMENT3 11449
#define | HIDC_LIST_COLORS 11450
#define | HIDC_CHECK_LCPOS3 11451
#define | HIDC_EDIT_LINECOMMENTPOS3 11452
#define | HIDC_RADIO_ESCAPETYPE_1 11460
#define | HIDC_RADIO_ESCAPETYPE_2 11461
#define | HIDC_RADIO_LINENUM_LAYOUT 11462
#define | HIDC_RADIO_LINENUM_CRLF 11463
#define | HIDC_RADIO_LINETERMTYPE0 11464
#define | HIDC_RADIO_LINETERMTYPE1 11465
#define | HIDC_RADIO_LINETERMTYPE2 11466
#define | HIDC_BUTTON_KEYWORD_SELECT 11467
#define | HIDC_EDIT_VERTLINE 11468
#define | HIDC_BUTTON_HOKANFILE_REF 11500
#define | HIDC_CHECK_HOKANLOHICASE 11510
#define | HIDC_CHECK_HOKANBYFILE 11512
#define | HIDC_EDIT_HOKANFILE 11540
#define | HIDC_EDIT_KEYWORDHELPFILE 11541
#define | HIDC_EDIT_TYPEEXTHELP 11542
#define | HIDC_BUTTON_TYPEOPENHELP 11543
#define | HIDC_EDIT_TYPEEXTHTMLHELP 11544
#define | HIDC_BUTTON_TYPEOPENEXTHTMLHELP 11545
#define | HIDC_CHECK_TYPEHTMLHELPISSINGLE 11546
#define | HIDC_BUTTON_REGEX_IMPORT 11600
#define | HIDC_BUTTON_REGEX_EXPORT 11601
#define | HIDC_BUTTON_REGEX_INS 11602
#define | HIDC_BUTTON_REGEX_ADD 11603
#define | HIDC_BUTTON_REGEX_UPD 11604
#define | HIDC_BUTTON_REGEX_DEL 11605
#define | HIDC_BUTTON_REGEX_TOP 11606
#define | HIDC_BUTTON_REGEX_LAST 11607
#define | HIDC_BUTTON_REGEX_UP 11608
#define | HIDC_BUTTON_REGEX_DOWN 11609
#define | HIDC_CHECK_REGEX 11610
#define | HIDC_COMBO_REGEX_COLOR 11630
#define | HIDC_EDIT_REGEX 11640
#define | HIDC_LIST_REGEX 11650
#define | HIDC_LABEL_REGEX_VERSION 11670
#define | HIDC_MACRODIRREF 11700
#define | HIDC_MACRO_REG 11701
#define | HIDC_COMBO_MACROID 11730
#define | HIDC_MACROPATH 11731
#define | HIDC_MACRONAME 11740
#define | HIDC_MACROLIST 11741
#define | HIDC_MACRODIR 11750
#define | HIDC_CHECK_RELOADWHENEXECUTE 11751
#define | HIDC_FIND_BUTTON_SEARCHNEXT 11800
#define | HIDC_FIND_BUTTON_SEARCHPREV 11801
#define | HIDCANCEL_FIND 11802
#define | HIDC_FIND_BUTTON_HELP 11803
#define | HIDC_FIND_CHK_WORD 11804
#define | HIDC_FIND_CHK_LOHICASE 11805
#define | HIDC_FIND_CHK_REGULAREXP 11806
#define | HIDC_FIND_CHECK_NOTIFYNOTFOUND 11807
#define | HIDC_FIND_CHECK_bAutoCloseDlgFind 11808
#define | HIDC_FIND_COMBO_TEXT 11809
#define | HIDC_FIND_STATIC_JRE32VER 11810
#define | HIDC_FIND_BUTTON_SETMARK 11811
#define | HIDC_FIND_CHECK_SEARCHALL 11812
#define | HIDC_REP_BUTTON_SEARCHNEXT 11900
#define | HIDC_REP_BUTTON_SEARCHPREV 11901
#define | HIDC_REP_BUTTON_REPALCE 11902
#define | HIDC_REP_BUTTON_REPALCEALL 11903
#define | HIDCANCEL_REP 11904
#define | HIDC_REP_BUTTON_HELP 11905
#define | HIDC_REP_CHK_PASTE 11906
#define | HIDC_REP_CHK_WORD 11907
#define | HIDC_REP_CHK_LOHICASE 11908
#define | HIDC_REP_CHK_REGULAREXP 11909
#define | HIDC_REP_CHECK_NOTIFYNOTFOUND 11910
#define | HIDC_REP_CHECK_bAutoCloseDlgReplace 11911
#define | HIDC_REP_COMBO_TEXT 11912
#define | HIDC_REP_COMBO_TEXT2 11913
#define | HIDC_REP_RADIO_REPLACE 11914
#define | HIDC_REP_RADIO_INSERT 11915
#define | HIDC_REP_RADIO_ADD 11916
#define | HIDC_REP_RADIO_SELECTEDAREA 11917
#define | HIDC_REP_RADIO_ALLAREA 11918
#define | HIDC_REP_STATIC_JRE32VER 11919
#define | HIDC_REP_BUTTON_SETMARK 11920
#define | HIDC_REP_CHECK_SEARCHALL 11921
#define | HIDC_REP_CHECK_CONSECUTIVEALL 11922
#define | HIDC_GREP_BUTTON_FOLDER 12000
#define | HIDC_GREP_BUTTON_CURRENTFOLDER 12001
#define | HIDOK_GREP 12002
#define | HIDCANCEL_GREP 12003
#define | HIDC_GREP_BUTTON_HELP 12004
#define | HIDC_GREP_CHK_WORD 12005
#define | HIDC_GREP_CHK_SUBFOLDER 12006
#define | HIDC_GREP_CHK_FROMTHISTEXT 12007
#define | HIDC_GREP_CHK_LOHICASE 12008
#define | HIDC_GREP_CHK_REGULAREXP 12009
#define | HIDC_GREP_COMBO_CHARSET 12010
#define | HIDC_GREP_COMBO_TEXT 12011
#define | HIDC_GREP_COMBO_FILE 12012
#define | HIDC_GREP_COMBO_FOLDER 12013
#define | HIDC_GREP_RADIO_OUTPUTLINE 12014
#define | HIDC_GREP_RADIO_OUTPUTMARKED 12015
#define | HIDC_GREP_RADIO_OUTPUTSTYLE1 12016
#define | HIDC_GREP_RADIO_OUTPUTSTYLE2 12017
#define | HIDC_GREP_STATIC_JRE32VER 12018
#define | HIDC_GREP_CHK_DEFAULTFOLDER 12019
#define | HIDC_EXEC_BUTTON_REFERENCE 12100
#define | HIDOK_EXEC 12101
#define | HIDCANCEL_EXEC 12102
#define | HIDC_EXEC_BUTTON_HELP 12103
#define | HIDC_EXEC_CHECK_GETSTDOUT 12104
#define | HIDC_EXEC_COMBO_m_szCommand 12105
#define | HIDC_RADIO_OUTPUT 12106
#define | HIDC_RADIO_EDITWINDOW 12107
#define | HIDC_CHECK_SENDSTDIN 12108
#define | HIDC_FL_BUTTON_COPY 12200
#define | HIDOK_FL 12201
#define | HIDCANCEL_FL 12202
#define | HIDC_FL_BUTTON_HELP 12203
#define | HIDC_FL_CHECK_bAutoCloseDlgFuncList 12204
#define | HIDC_FL_LIST1 12205
#define | HIDC_FL_TREE1 12206
#define | HIDC_FL_CHECK_bFunclistSetFocusOnJump 12207
#define | HIDC_FL_CHECK_bMarkUpBlankLineEnable 12208
#define | HIDC_COMBO_nSortType 12209
#define | HIDC_FL_BUTTON_WINSIZE 12210
#define | HIDC_CMP_BUTTON1 12300
#define | HIDOK2_CMP 12301
#define | HIDOK_CMP 12302
#define | HIDCANCEL_CMP 12303
#define | HIDC_CMP_BUTTON_HELP 12304
#define | HIDC_CMP_CHECK_TILE_H 12305
#define | HIDC_CMP_LIST_FILES 12306
#define | HIDC_CMP_STATIC_COMPARESRC 12307
#define | HIDOK_PP 12400
#define | HIDCANCEL_PP 12401
#define | HIDC_PP_EDIT_FROM 12402
#define | HIDC_PP_EDIT_TO 12403
#define | HIDC_PP_RADIO_ALL 12404
#define | HIDC_PP_RADIO_FROMTO 12405
#define | HIDC_PS_BUTTON_EDITSETTINGNAME 12500
#define | HIDOK_PS 12501
#define | HIDCANCEL_PS 12502
#define | HIDC_PS_BUTTON_HELP 12503
#define | HIDC_PS_CHECK_WORDWRAP 12504
#define | HIDC_PS_CHECK_LINENUMBER 12505
#define | HIDC_PS_COMBO_FONT_HAN 12506
#define | HIDC_PS_COMBO_FONT_ZEN 12507
#define | HIDC_PS_COMBO_SETTINGNAME 12508
#define | HIDC_PS_COMBO_PAPER 12509
#define | HIDC_PS_COMBO_PAPERORIENT 12510
#define | HIDC_PS_EDIT_FONTWIDTH 12511
#define | HIDC_PS_EDIT_LINESPACE 12512
#define | HIDC_PS_EDIT_DANSUU 12513
#define | HIDC_PS_EDIT_DANSPACE 12514
#define | HIDC_PS_EDIT_MARGINTY 12515
#define | HIDC_PS_EDIT_MARGINBY 12516
#define | HIDC_PS_EDIT_MARGINLX 12517
#define | HIDC_PS_EDIT_MARGINRX 12518
#define | HIDC_PS_CHECK_KINSOKUHEAD 12519
#define | HIDC_PS_CHECK_KINSOKUTAIL 12520
#define | HIDC_PS_CHECK_KINSOKURET 12521
#define | HIDC_PS_CHECK_KINSOKUKUTO 12522
#define | HIDC_PS_EDIT_HEAD1 12523
#define | HIDC_PS_EDIT_HEAD2 12524
#define | HIDC_PS_EDIT_HEAD3 12525
#define | HIDC_PS_EDIT_FOOT1 12526
#define | HIDC_PS_EDIT_FOOT2 12527
#define | HIDC_PS_EDIT_FOOT3 12528
#define | HIDOK_PROP 12600
#define | HIDCANCEL_PROP 12601
#define | HIDC_PROP_BUTTON_HELP 12602
#define | HIDC_PROP_EDIT1 12603
#define | HIDC_TL_BUTTON_TEMPCHANGE 12700
#define | HIDOK_TL 12701
#define | HIDCANCEL_TL 12702
#define | HIDC_TL_BUTTON_HELP 12703
#define | HIDC_TL_LIST_TYPES 12704
#define | HIDC_JUMP_BUTTON_JUMP 12800
#define | HIDCANCEL_JUMP 12801
#define | HIDC_JUMP_BUTTON_HELP 12802
#define | HIDC_JUMP_CHECK_PLSQL 12803
#define | HIDC_JUMP_COMBO_PLSQLBLOCKS 12804
#define | HIDC_JUMP_EDIT_LINENUM 12805
#define | HIDC_JUMP_EDIT_PLSQL_E1 12806
#define | HIDC_JUMP_RADIO_LINENUM_LAYOUT 12807
#define | HIDC_JUMP_RADIO_LINENUM_CRLF 12808
#define | HIDC_ABOUT_BUTTON_CONTACT 12900
#define | HIDOK_ABOUT 12901
#define | HIDC_ABOUT_EDIT_ABOUT 12902
#define | HIDOK_DLG1 13000
#define | HIDCANCEL_DLG1 13001
#define | HIDC_DLG1_EDIT1 13002
#define | HIDOK_OPENDLG 13100
#define | HIDCANCEL_OPENDLG 13101
#define | HIDC_OPENDLG_BUTTON_HELP 13102
#define | HIDC_OPENDLG_COMBO_CODE 13103
#define | HIDC_OPENDLG_COMBO_MRU 13104
#define | HIDC_OPENDLG_COMBO_OPENFOLDER 13105
#define | HIDC_OPENDLG_COMBO_EOL 13106
#define | HIDC_OPENDLG_CHECK_BOM 13107
#define | HIDC_BUTTON_DIFF_DST 13200
#define | HIDC_CHECK_DIFF_OPT_BLINE 13201
#define | HIDC_CHECK_DIFF_OPT_CASE 13202
#define | HIDC_CHECK_DIFF_OPT_SPACE 13203
#define | HIDC_CHECK_DIFF_OPT_SPCCHG 13204
#define | HIDC_CHECK_DIFF_OPT_TABSPC 13205
#define | HIDC_EDIT_DIFF_DST 13206
#define | HIDC_RADIO_DIFF_FILE1 13207
#define | HIDC_RADIO_DIFF_FILE2 13208
#define | HIDC_RADIO_DIFF_DST1 13209
#define | HIDC_RADIO_DIFF_DST2 13210
#define | HIDC_LIST_DIFF_FILES 13211
#define | HIDC_STATIC_DIFF_SRC 13212
#define | HIDC_DIFF_IDOK 13213
#define | HIDC_DIFF_IDCANCEL 13214
#define | HIDC_BUTTON_DIFF_HELP 13215
#define | HIDC_CHECK_DIFF_EXEC_STATE 13216
#define | HIDC_CHECK_DIFF_NOTIFYNOTFOUND 13217
#define | HIDC_CHECK_DIFF_SEARCHALL 13218
#define | HIDC_LIST_CTRLCODE 13300
#define | HIDC_CTRLCODE_IDOK 13301
#define | HIDC_CTRLCODE_IDCANCEL 13302
#define | HIDC_BUTTON_CTRLCODE_HELP 13303
#define | HIDC_LIST_FNAME 13400
#define | HIDC_EDIT_FNAME_FROM 13401
#define | HIDC_EDIT_FNAME_TO 13402
#define | HIDC_BUTTON_FNAME_INS 13403
#define | HIDC_BUTTON_FNAME_ADD 13404
#define | HIDC_BUTTON_FNAME_UPD 13405
#define | HIDC_BUTTON_FNAME_DEL 13406
#define | HIDC_BUTTON_FNAME_TOP 13407
#define | HIDC_BUTTON_FNAME_UP 13408
#define | HIDC_BUTTON_FNAME_DOWN 13409
#define | HIDC_BUTTON_FNAME_LAST 13410
#define | HIDC_FAVORITE_IDOK 13501
#define | HIDC_FAVORITE_IDCANCEL 13502
#define | HIDC_BUTTON_FAVORITE_HELP 13503
#define | HIDC_TAB_FAVORITE 13510
#define | HIDC_LIST_FAVORITE_FILE 13511
#define | HIDC_LIST_FAVORITE_FOLDER 13512
#define | HIDC_LIST_FAVORITE_SEARCH 13513
#define | HIDC_LIST_FAVORITE_REPLACE 13514
#define | HIDC_LIST_FAVORITE_GREPFILE 13515
#define | HIDC_LIST_FAVORITE_GREPFOLDER 13516
#define | HIDC_LIST_FAVORITE_CMD 13517
#define | HIDC_BUTTON_FAVORITE_CLEAR 13518
#define | HIDC_LIST_TAGJUMPLIST 13600
#define | HIDC_TAGJUMPLIST_IDOK 13601
#define | HIDC_TAGJUMPLIST_IDCANCEL 13602
#define | HIDC_BUTTON_TAGJUMPLIST_HELP 13603
#define | HDIC_TAGJUMPLIST_KEYWORD 13604
#define | HIDC_EDIT_TAG_MAKE_FOLDER 13701
#define | HIDC_BUTTON_TAG_MAKE_REF 13702
#define | HIDC_CHECK_TAG_MAKE_RECURSE 13703
#define | HIDC_EDIT_TAG_MAKE_CMDLINE 13704
#define | HIDC_TAG_MAKE_IDOK 13705
#define | HIDC_TAG_MAKE_IDCANCEL 13706
#define | HIDC_BUTTON_TAG_MAKE_HELP 13707
#define | HIDC_EDIT_WX 13801
#define | HIDC_EDIT_WY 13802
#define | HIDC_EDIT_SX 13803
#define | HIDC_EDIT_SY 13804
#define | HIDC_CHECK_WINPOS 13805
#define | HIDC_RADIO_WINSIZE_DEF 13806
#define | HIDC_RADIO_WINSIZE_SAVE 13807
#define | HIDC_RADIO_WINSIZE_SET 13808
#define | HIDC_RADIO_WINPOS_DEF 13809
#define | HIDC_RADIO_WINPOS_SAVE 13810
#define | HIDC_RADIO_WINPOS_SET 13811
#define | HIDC_COMBO_WINTYPE 13812
#define | HIDOK_WINSIZE 13813
#define | HIDC_BUTTON_WINSIZE_HELP 13814
#define | HIDC_CHECK_KEYHELP 13900
#define | HIDC_LIST_KEYHELP 13901
#define | HIDC_BUTTON_KEYHELP_UPD 13902
#define | HIDC_EDIT_KEYHELP 13903
#define | HIDC_BUTTON_KEYHELP_REF 13904
#define | HIDC_BUTTON_KEYHELP_TOP 13905
#define | HIDC_BUTTON_KEYHELP_UP 13906
#define | HIDC_BUTTON_KEYHELP_DOWN 13907
#define | HIDC_BUTTON_KEYHELP_LAST 13908
#define | HIDC_BUTTON_KEYHELP_INS 13909
#define | HIDC_BUTTON_KEYHELP_DEL 13910
#define | HIDC_CHECK_KEYHELP_ALLSEARCH 13911
#define | HIDC_CHECK_KEYHELP_KEYDISP 13912
#define | HIDC_CHECK_KEYHELP_PREFIX 13913
#define | HIDC_BUTTON_KEYHELP_IMPORT 13914
#define | HIDC_BUTTON_KEYHELP_EXPORT 13915
#define | HIDOK_SAMECOLOR 14000
#define | HIDCANCEL_SAMECOLOR 14001
#define | HIDC_BUTTON_SAMECOLOR_HELP 14002
#define | HIDC_LIST_SAMECOLOR_COLORS 14003
#define | HIDC_BUTTON_SAMECOLOR_SELALL 14004
#define | HIDC_BUTTON_SAMECOLOR_SELNOTING 14005
#define | HIDC_LIST_SAMECOLOR_ITEMINFO 14006
#define | HIDC_STATIC_COLOR 14007
#define | HIDOK_KEYWORD_SELECT 14100
#define | HIDCANCEL_KEYWORD_SELECT 14101
#define | HIDC_COMBO_KEYWORD_SELECT 14102
#define | HIDC_STATIC 19999

マクロ定義

#define HDIC_TAGJUMPLIST_KEYWORD 13604

sakura.hh の 856 行で定義されています。

#define HIDC_ABOUT_BUTTON_CONTACT 12900

sakura.hh の 775 行で定義されています。

#define HIDC_ABOUT_EDIT_ABOUT 12902

sakura.hh の 777 行で定義されています。

#define HIDC_BUTTON_ADD 10103

sakura.hh の 368 行で定義されています。

#define HIDC_BUTTON_ADD_TOOLBAR 11003

sakura.hh の 483 行で定義されています。

#define HIDC_BUTTON_ADDKEYWORD 10802

sakura.hh の 451 行で定義されています。

#define HIDC_BUTTON_ADDSET 10800

sakura.hh の 449 行で定義されています。

#define HIDC_BUTTON_ASSIGN 10702

sakura.hh の 439 行で定義されています。

#define HIDC_BUTTON_BACKCOLOR 11401

sakura.hh の 546 行で定義されています。

#define HIDC_BUTTON_BACKUP_FOLDER_REF 10000

sakura.hh の 342 行で定義されています。

#define HIDC_BUTTON_CLEAR_MRU_FILE 10900

sakura.hh の 461 行で定義されています。

#define HIDC_BUTTON_CLEAR_MRU_FOLDER 10901

sakura.hh の 462 行で定義されています。

#define HIDC_BUTTON_CTRLCODE_HELP 13303

sakura.hh の 820 行で定義されています。

#define HIDC_BUTTON_DELETE 10100

sakura.hh の 365 行で定義されています。

#define HIDC_BUTTON_DELETE_TOOLBAR 11000

sakura.hh の 480 行で定義されています。

#define HIDC_BUTTON_DELKEYWORD 10804

sakura.hh の 453 行で定義されています。

#define HIDC_BUTTON_DELSET 10801

sakura.hh の 450 行で定義されています。

#define HIDC_BUTTON_DIFF_DST 13200

sakura.hh の 796 行で定義されています。

#define HIDC_BUTTON_DIFF_HELP 13215

sakura.hh の 811 行で定義されています。

#define HIDC_BUTTON_DOWN 10105

sakura.hh の 370 行で定義されています。

#define HIDC_BUTTON_DOWN_TOOLBAR 11005

sakura.hh の 485 行で定義されています。

#define HIDC_BUTTON_EDITKEYWORD 10803

sakura.hh の 452 行で定義されています。

#define HIDC_BUTTON_EXPORT 10107

sakura.hh の 372 行で定義されています。

#define HIDC_BUTTON_EXPORT_COLOR 11405

sakura.hh の 550 行で定義されています。

#define HIDC_BUTTON_EXPORT_KEYBIND 10701

sakura.hh の 438 行で定義されています。

#define HIDC_BUTTON_EXPORT_KEYWORD 10806

sakura.hh の 455 行で定義されています。

#define HIDC_BUTTON_FAVORITE_CLEAR 13518

sakura.hh の 849 行で定義されています。

#define HIDC_BUTTON_FAVORITE_HELP 13503

sakura.hh の 840 行で定義されています。

#define HIDC_BUTTON_FNAME_ADD 13404

sakura.hh の 827 行で定義されています。

#define HIDC_BUTTON_FNAME_DEL 13406

sakura.hh の 829 行で定義されています。

#define HIDC_BUTTON_FNAME_DOWN 13409

sakura.hh の 832 行で定義されています。

#define HIDC_BUTTON_FNAME_INS 13403

sakura.hh の 826 行で定義されています。

#define HIDC_BUTTON_FNAME_LAST 13410

sakura.hh の 833 行で定義されています。

#define HIDC_BUTTON_FNAME_TOP 13407

sakura.hh の 830 行で定義されています。

#define HIDC_BUTTON_FNAME_UP 13408

sakura.hh の 831 行で定義されています。

#define HIDC_BUTTON_FNAME_UPD 13405

sakura.hh の 828 行で定義されています。

#define HIDC_BUTTON_HOKANFILE_REF 11500

sakura.hh の 580 行で定義されています。

#define HIDC_BUTTON_IMPORT 10106

sakura.hh の 371 行で定義されています。

#define HIDC_BUTTON_IMPORT_COLOR 11404

sakura.hh の 549 行で定義されています。

#define HIDC_BUTTON_IMPORT_KEYBIND 10700

sakura.hh の 437 行で定義されています。

#define HIDC_BUTTON_IMPORT_KEYWORD 10805

sakura.hh の 454 行で定義されています。

#define HIDC_BUTTON_INSERT 10102

sakura.hh の 367 行で定義されています。

#define HIDC_BUTTON_INSERT_TOOLBAR 11002

sakura.hh の 482 行で定義されています。

#define HIDC_BUTTON_INSERTSEPARATOR 10101

sakura.hh の 366 行で定義されています。

#define HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR 11001

sakura.hh の 481 行で定義されています。

#define HIDC_BUTTON_INSERTWRAP 11042

sakura.hh の 490 行で定義されています。

#define HIDC_BUTTON_KEYCLEAN 10807

sakura.hh の 456 行で定義されています。

#define HIDC_BUTTON_KEYHELP_DEL 13910

sakura.hh の 894 行で定義されています。

#define HIDC_BUTTON_KEYHELP_DOWN 13907

sakura.hh の 891 行で定義されています。

#define HIDC_BUTTON_KEYHELP_EXPORT 13915

sakura.hh の 899 行で定義されています。

#define HIDC_BUTTON_KEYHELP_IMPORT 13914

sakura.hh の 898 行で定義されています。

#define HIDC_BUTTON_KEYHELP_INS 13909

sakura.hh の 893 行で定義されています。

#define HIDC_BUTTON_KEYHELP_LAST 13908

sakura.hh の 892 行で定義されています。

#define HIDC_BUTTON_KEYHELP_REF 13904

sakura.hh の 888 行で定義されています。

#define HIDC_BUTTON_KEYHELP_TOP 13905

sakura.hh の 889 行で定義されています。

#define HIDC_BUTTON_KEYHELP_UP 13906

sakura.hh の 890 行で定義されています。

#define HIDC_BUTTON_KEYHELP_UPD 13902

sakura.hh の 886 行で定義されています。

#define HIDC_BUTTON_KEYSETRENAME 10831

sakura.hh の 459 行で定義されています。

#define HIDC_BUTTON_KEYWORD_SELECT 11467

sakura.hh の 578 行で定義されています。

#define HIDC_BUTTON_KEYWORDHELPFONT 11611

sakura.hh の 419 行で定義されています。

#define HIDC_BUTTON_OPENEXTHTMLHELP 10603

sakura.hh の 418 行で定義されています。

#define HIDC_BUTTON_OPENHELP1 10602

sakura.hh の 417 行で定義されています。

#define HIDC_BUTTON_OPENMDICT 10653

sakura.hh の 436 行で定義されています。

#define HIDC_BUTTON_OPENMDLL 10651

sakura.hh の 434 行で定義されています。

#define HIDC_BUTTON_REGEX_ADD 11603

sakura.hh の 593 行で定義されています。

#define HIDC_BUTTON_REGEX_DEL 11605

sakura.hh の 595 行で定義されています。

#define HIDC_BUTTON_REGEX_DOWN 11609

sakura.hh の 599 行で定義されています。

#define HIDC_BUTTON_REGEX_EXPORT 11601

sakura.hh の 591 行で定義されています。

#define HIDC_BUTTON_REGEX_IMPORT 11600

sakura.hh の 590 行で定義されています。

#define HIDC_BUTTON_REGEX_INS 11602

sakura.hh の 592 行で定義されています。

#define HIDC_BUTTON_REGEX_LAST 11607

sakura.hh の 597 行で定義されています。

#define HIDC_BUTTON_REGEX_TOP 11606

sakura.hh の 596 行で定義されています。

#define HIDC_BUTTON_REGEX_UP 11608

sakura.hh の 598 行で定義されています。

#define HIDC_BUTTON_REGEX_UPD 11604

sakura.hh の 594 行で定義されています。

#define HIDC_BUTTON_RELEASE 10703

sakura.hh の 440 行で定義されています。

#define HIDC_BUTTON_RULEFILE_REF 11356

sakura.hh の 543 行で定義されています。

#define HIDC_BUTTON_SAMEBKCOLOR 11403

sakura.hh の 548 行で定義されています。

#define HIDC_BUTTON_SAMECOLOR_HELP 14002

sakura.hh の 904 行で定義されています。

#define HIDC_BUTTON_SAMECOLOR_SELALL 14004

sakura.hh の 906 行で定義されています。

#define HIDC_BUTTON_SAMECOLOR_SELNOTING 14005

sakura.hh の 907 行で定義されています。

#define HIDC_BUTTON_SAMETEXTCOLOR 11402

sakura.hh の 547 行で定義されています。

#define HIDC_BUTTON_TAG_MAKE_HELP 13707

sakura.hh の 865 行で定義されています。

#define HIDC_BUTTON_TAG_MAKE_REF 13702

sakura.hh の 860 行で定義されています。

#define HIDC_BUTTON_TAGJUMPLIST_HELP 13603

sakura.hh の 855 行で定義されています。

#define HIDC_BUTTON_TEXTCOLOR 11400

sakura.hh の 545 行で定義されています。

#define HIDC_BUTTON_TYPEOPENEXTHTMLHELP 11545

sakura.hh の 588 行で定義されています。

#define HIDC_BUTTON_TYPEOPENHELP 11543

sakura.hh の 586 行で定義されています。

#define HIDC_BUTTON_UP 10104

sakura.hh の 369 行で定義されています。

#define HIDC_BUTTON_UP_TOOLBAR 11004

sakura.hh の 484 行で定義されています。

#define HIDC_BUTTON_WINSIZE 11263

sakura.hh の 510 行で定義されています。

#define HIDC_BUTTON_WINSIZE_HELP 13814

sakura.hh の 881 行で定義されています。

#define HIDC_CHECK_ADDCRLFWHENCOPY 10210

sakura.hh の 377 行で定義されています。

#define HIDC_CHECK_AlertIfFileNotExist 10344

sakura.hh の 395 行で定義されています。

#define HIDC_CHECK_ALT 10712

sakura.hh の 443 行で定義されています。

#define HIDC_CHECK_AutoMIMEDecode 10318

sakura.hh の 390 行で定義されています。

#define HIDC_CHECK_AUTOSAVE 10315

sakura.hh の 387 行で定義されています。

#define HIDC_CHECK_BACKUP 10010

sakura.hh の 343 行で定義されています。

#define HIDC_CHECK_BACKUP_ADVANCED 10066

sakura.hh の 364 行で定義されています。

#define HIDC_CHECK_BACKUP_DAY 10013

sakura.hh の 346 行で定義されています。

#define HIDC_CHECK_BACKUP_DUSTBOX 10019

sakura.hh の 352 行で定義されています。

#define HIDC_CHECK_BACKUP_HOUR 10014

sakura.hh の 347 行で定義されています。

#define HIDC_CHECK_BACKUP_MIN 10015

sakura.hh の 348 行で定義されています。

#define HIDC_CHECK_BACKUP_MONTH 10012

sakura.hh の 345 行で定義されています。

#define HIDC_CHECK_BACKUP_RETAINEXT 10065

sakura.hh の 363 行で定義されています。

#define HIDC_CHECK_BACKUP_SEC 10016

sakura.hh の 349 行で定義されています。

#define HIDC_CHECK_BACKUP_YEAR 10011

sakura.hh の 344 行で定義されています。

#define HIDC_CHECK_BACKUPDIALOG 10017

sakura.hh の 350 行で定義されています。

#define HIDC_CHECK_BACKUPFOLDER 10018

sakura.hh の 351 行で定義されています。

#define HIDC_CHECK_bCaretTextForSearch 10500

sakura.hh の 408 行で定義されています。

#define HIDC_CHECK_bCheckFileTimeStamp 10311

sakura.hh の 383 行で定義されています。

#define HIDC_CHECK_bDropFileAndClose 10316

sakura.hh の 388 行で定義されています。

#define HIDC_CHECK_bGrepExitConfirm 10510

sakura.hh の 409 行で定義されています。

#define HIDC_CHECK_bMenuIcon 11214

sakura.hh の 496 行で定義されています。

#define HIDC_CHECK_bNotOverWriteCRLF 10214

sakura.hh の 381 行で定義されています。

#define HIDC_CHECK_bScrollBarHorz 11213

sakura.hh の 495 行で定義されています。

#define HIDC_CHECK_bSelectClickedURL 11110

sakura.hh の 491 行で定義されています。

#define HIDC_CHECK_ChgWndByWheel 11275

sakura.hh の 516 行で定義されています。

#define HIDC_CHECK_CLICKKEYSEARCH 10618

sakura.hh の 428 行で定義されています。

#define HIDC_CHECK_CLOSEALLCONFIRM 10919

sakura.hh の 472 行で定義されています。

#define HIDC_CHECK_CloseOneWin 11274

sakura.hh の 515 行で定義されています。

#define HIDC_CHECK_COPYnDISABLESELECTEDAREA 10211

sakura.hh の 378 行で定義されています。

#define HIDC_CHECK_CTRL 10711

sakura.hh の 442 行で定義されています。

#define HIDC_CHECK_DIFF_EXEC_STATE 13216

sakura.hh の 812 行で定義されています。

#define HIDC_CHECK_DIFF_NOTIFYNOTFOUND 13217

sakura.hh の 813 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_BLINE 13201

sakura.hh の 797 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_CASE 13202

sakura.hh の 798 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_SPACE 13203

sakura.hh の 799 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_SPCCHG 13204

sakura.hh の 800 行で定義されています。

#define HIDC_CHECK_DIFF_OPT_TABSPC 13205

sakura.hh の 801 行で定義されています。

#define HIDC_CHECK_DIFF_SEARCHALL 13218

sakura.hh の 814 行で定義されています。

#define HIDC_CHECK_DISP 11410

sakura.hh の 551 行で定義されています。

#define HIDC_CHECK_DispFUNCKEYWND 11210

sakura.hh の 492 行で定義されています。

#define HIDC_CHECK_DispSTATUSBAR 11211

sakura.hh の 493 行で定義されています。

#define HIDC_CHECK_DispTabIcon 11271

sakura.hh の 512 行で定義されています。

#define HIDC_CHECK_DispTabWnd 11218

sakura.hh の 499 行で定義されています。

#define HIDC_CHECK_DispTabWndMultiWin 11219

sakura.hh の 500 行で定義されています。

#define HIDC_CHECK_DispTOOLBAR 11212

sakura.hh の 494 行で定義されています。

#define HIDC_CHECK_DOCICON 11357

sakura.hh の 544 行で定義されています。

#define HIDC_CHECK_DRAGDROP 10212

sakura.hh の 379 行で定義されています。

#define HIDC_CHECK_DROPSOURCE 10213

sakura.hh の 380 行で定義されています。

#define HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE 10314

sakura.hh の 386 行で定義されています。

#define HIDC_CHECK_EXCVLUSIVE_NO 10310

sakura.hh の 382 行で定義されています。

#define HIDC_CHECK_EXCVLUSIVE_READWRITE 10313

sakura.hh の 385 行で定義されています。

#define HIDC_CHECK_EXCVLUSIVE_WRITE 10312

sakura.hh の 384 行で定義されています。

#define HIDC_CHECK_EXITCONFIRM 10916

sakura.hh の 469 行で定義されています。

#define HIDC_CHECK_FAT 11411

sakura.hh の 552 行で定義されています。

#define HIDC_CHECK_FREECARET 10910

sakura.hh の 463 行で定義されています。

#define HIDC_CHECK_GREPREALTIME 10513

sakura.hh の 412 行で定義されています。

#define HIDC_CHECK_GTJW_LDBLCLK 10512

sakura.hh の 411 行で定義されています。

#define HIDC_CHECK_GTJW_RETURN 10511

sakura.hh の 410 行で定義されています。

#define HIDC_CHECK_HOKANBYFILE 11512

sakura.hh の 582 行で定義されています。

#define HIDC_CHECK_HOKANLOHICASE 11510

sakura.hh の 581 行で定義されています。

#define HIDC_CHECK_HTMLHELPISSINGLE 10617

sakura.hh の 427 行で定義されています。

#define HIDC_CHECK_INDENT 10911

sakura.hh の 464 行で定義されています。

#define HIDC_CHECK_INDENT_WSPACE 10912

sakura.hh の 465 行で定義されています。

#define HIDC_CHECK_INS_SPACE 11311

sakura.hh の 518 行で定義されています。

#define HIDC_CHECK_KEYHELP 13900

sakura.hh の 884 行で定義されています。

#define HIDC_CHECK_KEYHELP_ALLSEARCH 13911

sakura.hh の 895 行で定義されています。

#define HIDC_CHECK_KEYHELP_KEYDISP 13912

sakura.hh の 896 行で定義されています。

#define HIDC_CHECK_KEYHELP_PREFIX 13913

sakura.hh の 897 行で定義されています。

#define HIDC_CHECK_KEYWORDCASE 10810

sakura.hh の 457 行で定義されています。

#define HIDC_CHECK_KINSOKUHEAD 11312

sakura.hh の 519 行で定義されています。

#define HIDC_CHECK_KINSOKUKUTO 11315

sakura.hh の 522 行で定義されています。

#define HIDC_CHECK_KINSOKURET 11314

sakura.hh の 521 行で定義されています。

#define HIDC_CHECK_KINSOKUTAIL 11313

sakura.hh の 520 行で定義されています。

#define HIDC_CHECK_LCPOS 11413

sakura.hh の 554 行で定義されています。

#define HIDC_CHECK_LCPOS2 11414

sakura.hh の 555 行で定義されています。

#define HIDC_CHECK_LCPOS3 11451

sakura.hh の 569 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_RETURN 10612

sakura.hh の 422 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_RIGHT 10614

sakura.hh の 424 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_SPACE 10615

sakura.hh の 425 行で定義されています。

#define HIDC_CHECK_m_bHokanKey_TAB 10613

sakura.hh の 423 行で定義されています。

#define HIDC_CHECK_NoFilterSaveFile 10346

sakura.hh の 397 行で定義されています。

#define HIDC_CHECK_NoFilterSaveNew 10345

sakura.hh の 396 行で定義されています。

#define HIDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE 10920

sakura.hh の 473 行で定義されています。

#define HIDC_CHECK_QueryIfCodeChange 10343

sakura.hh の 394 行で定義されています。

#define HIDC_CHECK_REGEX 11610

sakura.hh の 600 行で定義されています。

#define HIDC_CHECK_RELOADWHENEXECUTE 11751

sakura.hh の 612 行で定義されています。

#define HIDC_CHECK_REPEATEDSCROLLSMOOTH 10915

sakura.hh の 468 行で定義されています。

#define HIDC_CHECK_RestoreBookmarks 10342

sakura.hh の 393 行で定義されています。

#define HIDC_CHECK_RestoreCurPosition 10317

sakura.hh の 389 行で定義されています。

#define HIDC_CHECK_RetainEmptyWindow 11273

sakura.hh の 514 行で定義されています。

#define HIDC_CHECK_RTRIM_PREVLINE 11352

sakura.hh の 539 行で定義されています。

#define HIDC_CHECK_SameTabWidth 11270

sakura.hh の 511 行で定義されています。

#define HIDC_CHECK_SENDSTDIN 12108

sakura.hh の 686 行で定義されています。

#define HIDC_CHECK_SHIFT 10710

sakura.hh の 441 行で定義されています。

#define HIDC_CHECK_SortTabList 11272

sakura.hh の 513 行で定義されています。

#define HIDC_CHECK_SplitterWndHScroll 11217

sakura.hh の 498 行で定義されています。

#define HIDC_CHECK_SplitterWndVScroll 11216

sakura.hh の 497 行で定義されています。

#define HIDC_CHECK_STAYTASKTRAY 10914

sakura.hh の 467 行で定義されています。

#define HIDC_CHECK_STOPS_PARAGRAPH 10918

sakura.hh の 471 行で定義されています。

#define HIDC_CHECK_STOPS_WORD 10917

sakura.hh の 470 行で定義されています。

#define HIDC_CHECK_TAB_ARROW 11350

sakura.hh の 537 行で定義されています。

#define HIDC_CHECK_TAG_MAKE_RECURSE 13703

sakura.hh の 861 行で定義されています。

#define HIDC_CHECK_TOOLBARISFLAT 11010

sakura.hh の 486 行で定義されています。

#define HIDC_CHECK_TYPEHTMLHELPISSINGLE 11546

sakura.hh の 589 行で定義されています。

#define HIDC_CHECK_UNDERLINE 11412

sakura.hh の 553 行で定義されています。

#define HIDC_CHECK_USEHOKAN 10610

sakura.hh の 420 行で定義されています。

#define HIDC_CHECK_USETRAYICON 10913

sakura.hh の 466 行で定義されています。

#define HIDC_CHECK_WINPOS 13805

sakura.hh の 872 行で定義されています。

#define HIDC_CHECK_WORDWRAP 11310

sakura.hh の 517 行で定義されています。

#define HIDC_CMP_BUTTON1 12300

sakura.hh の 702 行で定義されています。

#define HIDC_CMP_BUTTON_HELP 12304

sakura.hh の 706 行で定義されています。

#define HIDC_CMP_CHECK_TILE_H 12305

sakura.hh の 707 行で定義されています。

#define HIDC_CMP_LIST_FILES 12306

sakura.hh の 708 行で定義されています。

#define HIDC_CMP_STATIC_COMPARESRC 12307

sakura.hh の 709 行で定義されています。

#define HIDC_COMBO_FUNCKIND 10130

sakura.hh の 373 行で定義されています。

#define HIDC_COMBO_FUNCKIND_KEYBIND 10730

sakura.hh の 444 行で定義されています。

#define HIDC_COMBO_FUNCKIND_TOOLBAR 11030

sakura.hh の 487 行で定義されています。

#define HIDC_COMBO_IMESTATE 11332

sakura.hh の 525 行で定義されています。

#define HIDC_COMBO_IMESWITCH 11331

sakura.hh の 524 行で定義されています。

#define HIDC_COMBO_INDENTLAYOUT 11351

sakura.hh の 538 行で定義されています。

#define HIDC_COMBO_KEYWORD_SELECT 14102

sakura.hh の 914 行で定義されています。

#define HIDC_COMBO_MACROID 11730

sakura.hh の 607 行で定義されています。

#define HIDC_COMBO_MENU 10131

sakura.hh の 374 行で定義されています。

#define HIDC_COMBO_nSortType 12209

sakura.hh の 698 行で定義されています。

#define HIDC_COMBO_OUTLINES 11334

sakura.hh の 527 行で定義されています。

#define HIDC_COMBO_REGEX_COLOR 11630

sakura.hh の 601 行で定義されています。

#define HIDC_COMBO_SET 10830

sakura.hh の 458 行で定義されています。

#define HIDC_COMBO_SET2_COLOR 11431

sakura.hh の 557 行で定義されています。

#define HIDC_COMBO_SET_COLOR 11430

sakura.hh の 556 行で定義されています。

#define HIDC_COMBO_SMARTINDENT 11333

sakura.hh の 526 行で定義されています。

#define HIDC_COMBO_WINTYPE 13812

sakura.hh の 879 行で定義されています。

#define HIDC_CTRLCODE_IDCANCEL 13302

sakura.hh の 819 行で定義されています。

#define HIDC_CTRLCODE_IDOK 13301

sakura.hh の 818 行で定義されています。

#define HIDC_DIFF_IDCANCEL 13214

sakura.hh の 810 行で定義されています。

#define HIDC_DIFF_IDOK 13213

sakura.hh の 809 行で定義されています。

#define HIDC_DLG1_EDIT1 13002

sakura.hh の 782 行で定義されています。

#define HIDC_EDIT_AUTOBACKUP_INTERVAL 10340

sakura.hh の 391 行で定義されています。

#define HIDC_EDIT_BACKUP_3 10041

sakura.hh の 354 行で定義されています。

#define HIDC_EDIT_BACKUPFILE 10042

sakura.hh の 355 行で定義されています。

#define HIDC_EDIT_BACKUPFOLDER 10040

sakura.hh の 353 行で定義されています。

#define HIDC_EDIT_BLOCKCOMMENT_FROM 11440

sakura.hh の 558 行で定義されています。

#define HIDC_EDIT_BLOCKCOMMENT_FROM2 11447

sakura.hh の 565 行で定義されています。

#define HIDC_EDIT_BLOCKCOMMENT_TO 11441

sakura.hh の 559 行で定義されています。

#define HIDC_EDIT_BLOCKCOMMENT_TO2 11448

sakura.hh の 566 行で定義されています。

#define HIDC_EDIT_CHARSPACE 11343

sakura.hh の 531 行で定義されています。

#define HIDC_EDIT_DFORM 10440

sakura.hh の 398 行で定義されています。

#define HIDC_EDIT_DFORM_EX 10442

sakura.hh の 400 行で定義されています。

#define HIDC_EDIT_DIFF_DST 13206

sakura.hh の 802 行で定義されています。

#define HIDC_EDIT_EXTHELP1 10642

sakura.hh の 431 行で定義されています。

#define HIDC_EDIT_EXTHTMLHELP 10643

sakura.hh の 432 行で定義されています。

#define HIDC_EDIT_FNAME_FROM 13401

sakura.hh の 824 行で定義されています。

#define HIDC_EDIT_FNAME_TO 13402

sakura.hh の 825 行で定義されています。

#define HIDC_EDIT_FUNCKEYWND_GROUPNUM 11262

sakura.hh の 509 行で定義されています。

#define HIDC_EDIT_HOKANFILE 11540

sakura.hh の 583 行で定義されています。

#define HIDC_EDIT_INDENTCHARS 11345

sakura.hh の 533 行で定義されています。

#define HIDC_EDIT_INYOUKIGOU 10445

sakura.hh の 403 行で定義されています。

#define HIDC_EDIT_KEYHELP 13903

sakura.hh の 887 行で定義されています。

#define HIDC_EDIT_KEYSFUNC 10740

sakura.hh の 445 行で定義されています。

#define HIDC_EDIT_KEYWORDHELPFILE 11541

sakura.hh の 584 行で定義されています。

#define HIDC_EDIT_KINSOKUHEAD 11347

sakura.hh の 535 行で定義されています。

#define HIDC_EDIT_KINSOKUTAIL 11348

sakura.hh の 536 行で定義されています。

#define HIDC_EDIT_LINECOMMENT 11442

sakura.hh の 560 行で定義されています。

#define HIDC_EDIT_LINECOMMENT2 11443

sakura.hh の 561 行で定義されています。

#define HIDC_EDIT_LINECOMMENT3 11449

sakura.hh の 567 行で定義されています。

#define HIDC_EDIT_LINECOMMENTPOS 11444

sakura.hh の 562 行で定義されています。

#define HIDC_EDIT_LINECOMMENTPOS2 11445

sakura.hh の 563 行で定義されています。

#define HIDC_EDIT_LINECOMMENTPOS3 11452

sakura.hh の 570 行で定義されています。

#define HIDC_EDIT_LINESPACE 11344

sakura.hh の 532 行で定義されています。

#define HIDC_EDIT_LINETERMCHAR 11446

sakura.hh の 564 行で定義されています。

#define HIDC_EDIT_MAX_MRU_FILE 10942

sakura.hh の 476 行で定義されています。

#define HIDC_EDIT_MAX_MRU_FOLDER 10943

sakura.hh の 477 行で定義されています。

#define HIDC_EDIT_MAXLINELEN 11342

sakura.hh の 530 行で定義されています。

#define HIDC_EDIT_MIDASHIKIGOU 10444

sakura.hh の 402 行で定義されています。

#define HIDC_EDIT_MIGEMO_DICT 10652

sakura.hh の 435 行で定義されています。

#define HIDC_EDIT_MIGEMO_DLL 10650

sakura.hh の 433 行で定義されています。

#define HIDC_EDIT_nDropFileNumMax 10341

sakura.hh の 392 行で定義されています。

#define HIDC_EDIT_nLineNumberRightSpace 11242

sakura.hh の 506 行で定義されています。

#define HIDC_EDIT_nRulerBottomSpace 11240

sakura.hh の 504 行で定義されています。

#define HIDC_EDIT_nRulerHeight 11241

sakura.hh の 505 行で定義されています。

#define HIDC_EDIT_OUTLINERULEFILE 11355

sakura.hh の 542 行で定義されています。

#define HIDC_EDIT_REGEX 11640

sakura.hh の 602 行で定義されています。

#define HIDC_EDIT_REGEXPLIB 10514

sakura.hh の 413 行で定義されています。

#define HIDC_EDIT_REPEATEDSCROLLLINENUM 10941

sakura.hh の 475 行で定義されています。

#define HIDC_EDIT_SX 13803

sakura.hh の 870 行で定義されています。

#define HIDC_EDIT_SY 13804

sakura.hh の 871 行で定義されています。

#define HIDC_EDIT_TABSPACE 11330

sakura.hh の 523 行で定義されています。

#define HIDC_EDIT_TABVIEWSTRING 11346

sakura.hh の 534 行で定義されています。

#define HIDC_EDIT_TAG_MAKE_CMDLINE 13704

sakura.hh の 862 行で定義されています。

#define HIDC_EDIT_TAG_MAKE_FOLDER 13701

sakura.hh の 859 行で定義されています。

#define HIDC_EDIT_TFORM 10441

sakura.hh の 399 行で定義されています。

#define HIDC_EDIT_TFORM_EX 10443

sakura.hh の 401 行で定義されています。

#define HIDC_EDIT_TYPEEXTHELP 11542

sakura.hh の 585 行で定義されています。

#define HIDC_EDIT_TYPEEXTHTMLHELP 11544

sakura.hh の 587 行で定義されています。

#define HIDC_EDIT_TYPEEXTS 11341

sakura.hh の 529 行で定義されています。

#define HIDC_EDIT_TYPENAME 11340

sakura.hh の 528 行で定義されています。

#define HIDC_EDIT_VERTLINE 11468

sakura.hh の 579 行で定義されています。

#define HIDC_EDIT_WX 13801

sakura.hh の 868 行で定義されています。

#define HIDC_EDIT_WY 13802

sakura.hh の 869 行で定義されています。

#define HIDC_EXEC_BUTTON_HELP 12103

sakura.hh の 681 行で定義されています。

#define HIDC_EXEC_BUTTON_REFERENCE 12100

sakura.hh の 678 行で定義されています。

#define HIDC_EXEC_CHECK_GETSTDOUT 12104

sakura.hh の 682 行で定義されています。

#define HIDC_EXEC_COMBO_m_szCommand 12105

sakura.hh の 683 行で定義されています。

#define HIDC_FAVORITE_IDCANCEL 13502

sakura.hh の 839 行で定義されています。

#define HIDC_FAVORITE_IDOK 13501

sakura.hh の 838 行で定義されています。

#define HIDC_FIND_BUTTON_HELP 11803

sakura.hh の 618 行で定義されています。

#define HIDC_FIND_BUTTON_SEARCHNEXT 11800

sakura.hh の 615 行で定義されています。

#define HIDC_FIND_BUTTON_SEARCHPREV 11801

sakura.hh の 616 行で定義されています。

#define HIDC_FIND_BUTTON_SETMARK 11811

sakura.hh の 626 行で定義されています。

#define HIDC_FIND_CHECK_bAutoCloseDlgFind 11808

sakura.hh の 623 行で定義されています。

#define HIDC_FIND_CHECK_NOTIFYNOTFOUND 11807

sakura.hh の 622 行で定義されています。

#define HIDC_FIND_CHECK_SEARCHALL 11812

sakura.hh の 627 行で定義されています。

#define HIDC_FIND_CHK_LOHICASE 11805

sakura.hh の 620 行で定義されています。

#define HIDC_FIND_CHK_REGULAREXP 11806

sakura.hh の 621 行で定義されています。

#define HIDC_FIND_CHK_WORD 11804

sakura.hh の 619 行で定義されています。

#define HIDC_FIND_COMBO_TEXT 11809

sakura.hh の 624 行で定義されています。

#define HIDC_FIND_STATIC_JRE32VER 11810

sakura.hh の 625 行で定義されています。

#define HIDC_FL_BUTTON_COPY 12200

sakura.hh の 689 行で定義されています。

#define HIDC_FL_BUTTON_HELP 12203

sakura.hh の 692 行で定義されています。

#define HIDC_FL_BUTTON_WINSIZE 12210

sakura.hh の 699 行で定義されています。

#define HIDC_FL_CHECK_bAutoCloseDlgFuncList 12204

sakura.hh の 693 行で定義されています。

#define HIDC_FL_CHECK_bFunclistSetFocusOnJump 12207

sakura.hh の 696 行で定義されています。

#define HIDC_FL_CHECK_bMarkUpBlankLineEnable 12208

sakura.hh の 697 行で定義されています。

#define HIDC_FL_LIST1 12205

sakura.hh の 694 行で定義されています。

#define HIDC_FL_TREE1 12206

sakura.hh の 695 行で定義されています。

#define HIDC_GREP_BUTTON_CURRENTFOLDER 12001

sakura.hh の 656 行で定義されています。

#define HIDC_GREP_BUTTON_FOLDER 12000

sakura.hh の 655 行で定義されています。

#define HIDC_GREP_BUTTON_HELP 12004

sakura.hh の 659 行で定義されています。

#define HIDC_GREP_CHK_DEFAULTFOLDER 12019

sakura.hh の 675 行で定義されています。

#define HIDC_GREP_CHK_FROMTHISTEXT 12007

sakura.hh の 662 行で定義されています。

#define HIDC_GREP_CHK_LOHICASE 12008

sakura.hh の 663 行で定義されています。

#define HIDC_GREP_CHK_REGULAREXP 12009

sakura.hh の 664 行で定義されています。

#define HIDC_GREP_CHK_SUBFOLDER 12006

sakura.hh の 661 行で定義されています。

#define HIDC_GREP_CHK_WORD 12005

sakura.hh の 660 行で定義されています。

#define HIDC_GREP_COMBO_CHARSET 12010

sakura.hh の 666 行で定義されています。

#define HIDC_GREP_COMBO_FILE 12012

sakura.hh の 668 行で定義されています。

#define HIDC_GREP_COMBO_FOLDER 12013

sakura.hh の 669 行で定義されています。

#define HIDC_GREP_COMBO_TEXT 12011

sakura.hh の 667 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTLINE 12014

sakura.hh の 670 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTMARKED 12015

sakura.hh の 671 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTSTYLE1 12016

sakura.hh の 672 行で定義されています。

#define HIDC_GREP_RADIO_OUTPUTSTYLE2 12017

sakura.hh の 673 行で定義されています。

#define HIDC_GREP_STATIC_JRE32VER 12018

sakura.hh の 674 行で定義されています。

#define HIDC_HOTKEY_TRAYMENU 10940

sakura.hh の 474 行で定義されています。

#define HIDC_JUMP_BUTTON_HELP 12802

sakura.hh の 766 行で定義されています。

#define HIDC_JUMP_BUTTON_JUMP 12800

sakura.hh の 764 行で定義されています。

#define HIDC_JUMP_CHECK_PLSQL 12803

sakura.hh の 767 行で定義されています。

#define HIDC_JUMP_COMBO_PLSQLBLOCKS 12804

sakura.hh の 768 行で定義されています。

#define HIDC_JUMP_EDIT_LINENUM 12805

sakura.hh の 769 行で定義されています。

#define HIDC_JUMP_EDIT_PLSQL_E1 12806

sakura.hh の 770 行で定義されています。

#define HIDC_JUMP_RADIO_LINENUM_CRLF 12808

sakura.hh の 772 行で定義されています。

#define HIDC_JUMP_RADIO_LINENUM_LAYOUT 12807

sakura.hh の 771 行で定義されています。

#define HIDC_LABEL_REGEX_VERSION 11670

sakura.hh の 604 行で定義されています。

#define HIDC_LABEL_REGEXPVER 10515

sakura.hh の 414 行で定義されています。

#define HIDC_LIST_ASSIGNEDKEYS 10752

sakura.hh の 448 行で定義されています。

#define HIDC_LIST_COLORS 11450

sakura.hh の 568 行で定義されています。

#define HIDC_LIST_CTRLCODE 13300

sakura.hh の 817 行で定義されています。

#define HIDC_LIST_DIFF_FILES 13211

sakura.hh の 807 行で定義されています。

#define HIDC_LIST_FAVORITE_CMD 13517

sakura.hh の 848 行で定義されています。

#define HIDC_LIST_FAVORITE_FILE 13511

sakura.hh の 842 行で定義されています。

#define HIDC_LIST_FAVORITE_FOLDER 13512

sakura.hh の 843 行で定義されています。

#define HIDC_LIST_FAVORITE_GREPFILE 13515

sakura.hh の 846 行で定義されています。

#define HIDC_LIST_FAVORITE_GREPFOLDER 13516

sakura.hh の 847 行で定義されています。

#define HIDC_LIST_FAVORITE_REPLACE 13514

sakura.hh の 845 行で定義されています。

#define HIDC_LIST_FAVORITE_SEARCH 13513

sakura.hh の 844 行で定義されています。

#define HIDC_LIST_FNAME 13400

sakura.hh の 823 行で定義されています。

#define HIDC_LIST_FUNC 10150

sakura.hh の 375 行で定義されています。

#define HIDC_LIST_FUNC_KEYBIND 10750

sakura.hh の 446 行で定義されています。

#define HIDC_LIST_FUNC_TOOLBAR 11040

sakura.hh の 488 行で定義されています。

#define HIDC_LIST_KEY 10751

sakura.hh の 447 行で定義されています。

#define HIDC_LIST_KEYHELP 13901

sakura.hh の 885 行で定義されています。

#define HIDC_LIST_KEYWORD 10840

sakura.hh の 460 行で定義されています。

#define HIDC_LIST_REGEX 11650

sakura.hh の 603 行で定義されています。

#define HIDC_LIST_RES 10151

sakura.hh の 376 行で定義されています。

#define HIDC_LIST_RES_TOOLBAR 11041

sakura.hh の 489 行で定義されています。

#define HIDC_LIST_SAMECOLOR_COLORS 14003

sakura.hh の 905 行で定義されています。

#define HIDC_LIST_SAMECOLOR_ITEMINFO 14006

sakura.hh の 908 行で定義されています。

#define HIDC_LIST_TAGJUMPLIST 13600

sakura.hh の 852 行で定義されています。

#define HIDC_MACRO_REG 11701

sakura.hh の 606 行で定義されています。

#define HIDC_MACRODIR 11750

sakura.hh の 611 行で定義されています。

#define HIDC_MACRODIRREF 11700

sakura.hh の 605 行で定義されています。

#define HIDC_MACROLIST 11741

sakura.hh の 610 行で定義されています。

#define HIDC_MACRONAME 11740

sakura.hh の 609 行で定義されています。

#define HIDC_MACROPATH 11731

sakura.hh の 608 行で定義されています。

#define HIDC_OPENDLG_BUTTON_HELP 13102

sakura.hh の 788 行で定義されています。

#define HIDC_OPENDLG_CHECK_BOM 13107

sakura.hh の 793 行で定義されています。

#define HIDC_OPENDLG_COMBO_CODE 13103

sakura.hh の 789 行で定義されています。

#define HIDC_OPENDLG_COMBO_EOL 13106

sakura.hh の 792 行で定義されています。

#define HIDC_OPENDLG_COMBO_MRU 13104

sakura.hh の 790 行で定義されています。

#define HIDC_OPENDLG_COMBO_OPENFOLDER 13105

sakura.hh の 791 行で定義されています。

#define HIDC_PP_EDIT_FROM 12402

sakura.hh の 714 行で定義されています。

#define HIDC_PP_EDIT_TO 12403

sakura.hh の 715 行で定義されています。

#define HIDC_PP_RADIO_ALL 12404

sakura.hh の 716 行で定義されています。

#define HIDC_PP_RADIO_FROMTO 12405

sakura.hh の 717 行で定義されています。

#define HIDC_PROP_BUTTON_HELP 12602

sakura.hh の 753 行で定義されています。

#define HIDC_PROP_EDIT1 12603

sakura.hh の 754 行で定義されています。

#define HIDC_PS_BUTTON_EDITSETTINGNAME 12500

sakura.hh の 720 行で定義されています。

#define HIDC_PS_BUTTON_HELP 12503

sakura.hh の 723 行で定義されています。

#define HIDC_PS_CHECK_KINSOKUHEAD 12519

sakura.hh の 739 行で定義されています。

#define HIDC_PS_CHECK_KINSOKUKUTO 12522

sakura.hh の 742 行で定義されています。

#define HIDC_PS_CHECK_KINSOKURET 12521

sakura.hh の 741 行で定義されています。

#define HIDC_PS_CHECK_KINSOKUTAIL 12520

sakura.hh の 740 行で定義されています。

#define HIDC_PS_CHECK_LINENUMBER 12505

sakura.hh の 725 行で定義されています。

#define HIDC_PS_CHECK_WORDWRAP 12504

sakura.hh の 724 行で定義されています。

#define HIDC_PS_COMBO_FONT_HAN 12506

sakura.hh の 726 行で定義されています。

#define HIDC_PS_COMBO_FONT_ZEN 12507

sakura.hh の 727 行で定義されています。

#define HIDC_PS_COMBO_PAPER 12509

sakura.hh の 729 行で定義されています。

#define HIDC_PS_COMBO_PAPERORIENT 12510

sakura.hh の 730 行で定義されています。

#define HIDC_PS_COMBO_SETTINGNAME 12508

sakura.hh の 728 行で定義されています。

#define HIDC_PS_EDIT_DANSPACE 12514

sakura.hh の 734 行で定義されています。

#define HIDC_PS_EDIT_DANSUU 12513

sakura.hh の 733 行で定義されています。

#define HIDC_PS_EDIT_FONTWIDTH 12511

sakura.hh の 731 行で定義されています。

#define HIDC_PS_EDIT_FOOT1 12526

sakura.hh の 746 行で定義されています。

#define HIDC_PS_EDIT_FOOT2 12527

sakura.hh の 747 行で定義されています。

#define HIDC_PS_EDIT_FOOT3 12528

sakura.hh の 748 行で定義されています。

#define HIDC_PS_EDIT_HEAD1 12523

sakura.hh の 743 行で定義されています。

#define HIDC_PS_EDIT_HEAD2 12524

sakura.hh の 744 行で定義されています。

#define HIDC_PS_EDIT_HEAD3 12525

sakura.hh の 745 行で定義されています。

#define HIDC_PS_EDIT_LINESPACE 12512

sakura.hh の 732 行で定義されています。

#define HIDC_PS_EDIT_MARGINBY 12516

sakura.hh の 736 行で定義されています。

#define HIDC_PS_EDIT_MARGINLX 12517

sakura.hh の 737 行で定義されています。

#define HIDC_PS_EDIT_MARGINRX 12518

sakura.hh の 738 行で定義されています。

#define HIDC_PS_EDIT_MARGINTY 12515

sakura.hh の 735 行で定義されています。

#define HIDC_RADIO_BACKUP_DATETYPE1 10063

sakura.hh の 361 行で定義されています。

#define HIDC_RADIO_BACKUP_DATETYPE2 10064

sakura.hh の 362 行で定義されています。

#define HIDC_RADIO_BACKUP_TYPE1 10060

sakura.hh の 356 行で定義されています。

#define HIDC_RADIO_BACKUP_TYPE2NEWHID 10061

sakura.hh の 359 行で定義されています。

#define HIDC_RADIO_BACKUP_TYPE3NEWHID 10062

sakura.hh の 360 行で定義されています。

#define HIDC_RADIO_CARETTYPE0 10960

sakura.hh の 478 行で定義されています。

#define HIDC_RADIO_CARETTYPE1 10961

sakura.hh の 479 行で定義されています。

#define HIDC_RADIO_DFORM_0 10460

sakura.hh の 404 行で定義されています。

#define HIDC_RADIO_DFORM_1 10461

sakura.hh の 405 行で定義されています。

#define HIDC_RADIO_DIFF_DST1 13209

sakura.hh の 805 行で定義されています。

#define HIDC_RADIO_DIFF_DST2 13210

sakura.hh の 806 行で定義されています。

#define HIDC_RADIO_DIFF_FILE1 13207

sakura.hh の 803 行で定義されています。

#define HIDC_RADIO_DIFF_FILE2 13208

sakura.hh の 804 行で定義されています。

#define HIDC_RADIO_EDITWINDOW 12107

sakura.hh の 685 行で定義されています。

#define HIDC_RADIO_ESCAPETYPE_1 11460

sakura.hh の 571 行で定義されています。

#define HIDC_RADIO_ESCAPETYPE_2 11461

sakura.hh の 572 行で定義されています。

#define HIDC_RADIO_FUNCKEYWND_PLACE1 11260

sakura.hh の 507 行で定義されています。

#define HIDC_RADIO_FUNCKEYWND_PLACE2 11261

sakura.hh の 508 行で定義されています。

#define HIDC_RADIO_LINENUM_CRLF 11463

sakura.hh の 574 行で定義されています。

#define HIDC_RADIO_LINENUM_LAYOUT 11462

sakura.hh の 573 行で定義されています。

#define HIDC_RADIO_LINETERMTYPE0 11464

sakura.hh の 575 行で定義されています。

#define HIDC_RADIO_LINETERMTYPE1 11465

sakura.hh の 576 行で定義されています。

#define HIDC_RADIO_LINETERMTYPE2 11466

sakura.hh の 577 行で定義されています。

#define HIDC_RADIO_OUTLINEDEFAULT 11353

sakura.hh の 540 行で定義されています。

#define HIDC_RADIO_OUTLINERULEFILE 11354

sakura.hh の 541 行で定義されています。

#define HIDC_RADIO_OUTPUT 12106

sakura.hh の 684 行で定義されています。

#define HIDC_RADIO_TFORM_0 10462

sakura.hh の 406 行で定義されています。

#define HIDC_RADIO_TFORM_1 10463

sakura.hh の 407 行で定義されています。

#define HIDC_RADIO_WINPOS_DEF 13809

sakura.hh の 876 行で定義されています。

#define HIDC_RADIO_WINPOS_SAVE 13810

sakura.hh の 877 行で定義されています。

#define HIDC_RADIO_WINPOS_SET 13811

sakura.hh の 878 行で定義されています。

#define HIDC_RADIO_WINSIZE_DEF 13806

sakura.hh の 873 行で定義されています。

#define HIDC_RADIO_WINSIZE_SAVE 13807

sakura.hh の 874 行で定義されています。

#define HIDC_RADIO_WINSIZE_SET 13808

sakura.hh の 875 行で定義されています。

#define HIDC_REP_BUTTON_HELP 11905

sakura.hh の 635 行で定義されています。

#define HIDC_REP_BUTTON_REPALCE 11902

sakura.hh の 632 行で定義されています。

#define HIDC_REP_BUTTON_REPALCEALL 11903

sakura.hh の 633 行で定義されています。

#define HIDC_REP_BUTTON_SEARCHNEXT 11900

sakura.hh の 630 行で定義されています。

#define HIDC_REP_BUTTON_SEARCHPREV 11901

sakura.hh の 631 行で定義されています。

#define HIDC_REP_BUTTON_SETMARK 11920

sakura.hh の 650 行で定義されています。

#define HIDC_REP_CHECK_bAutoCloseDlgReplace 11911

sakura.hh の 641 行で定義されています。

#define HIDC_REP_CHECK_CONSECUTIVEALL 11922

sakura.hh の 652 行で定義されています。

#define HIDC_REP_CHECK_NOTIFYNOTFOUND 11910

sakura.hh の 640 行で定義されています。

#define HIDC_REP_CHECK_SEARCHALL 11921

sakura.hh の 651 行で定義されています。

#define HIDC_REP_CHK_LOHICASE 11908

sakura.hh の 638 行で定義されています。

#define HIDC_REP_CHK_PASTE 11906

sakura.hh の 636 行で定義されています。

#define HIDC_REP_CHK_REGULAREXP 11909

sakura.hh の 639 行で定義されています。

#define HIDC_REP_CHK_WORD 11907

sakura.hh の 637 行で定義されています。

#define HIDC_REP_COMBO_TEXT 11912

sakura.hh の 642 行で定義されています。

#define HIDC_REP_COMBO_TEXT2 11913

sakura.hh の 643 行で定義されています。

#define HIDC_REP_RADIO_ADD 11916

sakura.hh の 646 行で定義されています。

#define HIDC_REP_RADIO_ALLAREA 11918

sakura.hh の 648 行で定義されています。

#define HIDC_REP_RADIO_INSERT 11915

sakura.hh の 645 行で定義されています。

#define HIDC_REP_RADIO_REPLACE 11914

sakura.hh の 644 行で定義されています。

#define HIDC_REP_RADIO_SELECTEDAREA 11917

sakura.hh の 647 行で定義されています。

#define HIDC_REP_STATIC_JRE32VER 11919

sakura.hh の 649 行で定義されています。

#define HIDC_STATIC 19999

sakura.hh の 917 行で定義されています。

#define HIDC_STATIC_COLOR 14007

sakura.hh の 909 行で定義されています。

#define HIDC_STATIC_DIFF_SRC 13212

sakura.hh の 808 行で定義されています。

#define HIDC_TAB_FAVORITE 13510

sakura.hh の 841 行で定義されています。

#define HIDC_TABWND_CAPTION 11222

sakura.hh の 503 行で定義されています。

#define HIDC_TAG_MAKE_IDCANCEL 13706

sakura.hh の 864 行で定義されています。

#define HIDC_TAG_MAKE_IDOK 13705

sakura.hh の 863 行で定義されています。

#define HIDC_TAGJUMPLIST_IDCANCEL 13602

sakura.hh の 854 行で定義されています。

#define HIDC_TAGJUMPLIST_IDOK 13601

sakura.hh の 853 行で定義されています。

#define HIDC_TL_BUTTON_HELP 12703

sakura.hh の 760 行で定義されています。

#define HIDC_TL_BUTTON_TEMPCHANGE 12700

sakura.hh の 757 行で定義されています。

#define HIDC_TL_LIST_TYPES 12704

sakura.hh の 761 行で定義されています。

#define HIDC_WINCAPTION_ACTIVE 11220

sakura.hh の 501 行で定義されています。

#define HIDC_WINCAPTION_INACTIVE 11221

sakura.hh の 502 行で定義されています。

#define HIDCANCEL_CMP 12303

sakura.hh の 705 行で定義されています。

#define HIDCANCEL_DLG1 13001

sakura.hh の 781 行で定義されています。

#define HIDCANCEL_EXEC 12102

sakura.hh の 680 行で定義されています。

#define HIDCANCEL_FIND 11802

sakura.hh の 617 行で定義されています。

#define HIDCANCEL_FL 12202

sakura.hh の 691 行で定義されています。

#define HIDCANCEL_GREP 12003

sakura.hh の 658 行で定義されています。

#define HIDCANCEL_JUMP 12801

sakura.hh の 765 行で定義されています。

#define HIDCANCEL_KEYWORD_SELECT 14101

sakura.hh の 913 行で定義されています。

#define HIDCANCEL_OPENDLG 13101

sakura.hh の 787 行で定義されています。

#define HIDCANCEL_PP 12401

sakura.hh の 713 行で定義されています。

#define HIDCANCEL_PROP 12601

sakura.hh の 752 行で定義されています。

#define HIDCANCEL_PS 12502

sakura.hh の 722 行で定義されています。

#define HIDCANCEL_REP 11904

sakura.hh の 634 行で定義されています。

#define HIDCANCEL_SAMECOLOR 14001

sakura.hh の 903 行で定義されています。

#define HIDCANCEL_TL 12702

sakura.hh の 759 行で定義されています。

#define HIDOK2_CMP 12301

sakura.hh の 703 行で定義されています。

#define HIDOK_ABOUT 12901

sakura.hh の 776 行で定義されています。

#define HIDOK_CMP 12302

sakura.hh の 704 行で定義されています。

#define HIDOK_DLG1 13000

sakura.hh の 780 行で定義されています。

#define HIDOK_EXEC 12101

sakura.hh の 679 行で定義されています。

#define HIDOK_FL 12201

sakura.hh の 690 行で定義されています。

#define HIDOK_GREP 12002

sakura.hh の 657 行で定義されています。

#define HIDOK_KEYWORD_SELECT 14100

sakura.hh の 912 行で定義されています。

#define HIDOK_OPENDLG 13100

sakura.hh の 786 行で定義されています。

#define HIDOK_PP 12400

sakura.hh の 712 行で定義されています。

#define HIDOK_PROP 12600

sakura.hh の 751 行で定義されています。

#define HIDOK_PS 12501

sakura.hh の 721 行で定義されています。

#define HIDOK_SAMECOLOR 14000

sakura.hh の 902 行で定義されています。

#define HIDOK_TL 12701

sakura.hh の 758 行で定義されています。

#define HIDOK_WINSIZE 13813

sakura.hh の 880 行で定義されています。

#define HLP000001 1

sakura.hh の 1 行で定義されています。

#define HLP000002 2

sakura.hh の 2 行で定義されています。

#define HLP000003 3

sakura.hh の 3 行で定義されています。

#define HLP000004 4

sakura.hh の 4 行で定義されています。

#define HLP000005 5

sakura.hh の 5 行で定義されています。

#define HLP000006 6

sakura.hh の 7 行で定義されています。

#define HLP000007 7

sakura.hh の 19 行で定義されています。

#define HLP000008 8

sakura.hh の 8 行で定義されています。

#define HLP000009 9

sakura.hh の 13 行で定義されています。

#define HLP000010 10

sakura.hh の 6 行で定義されています。

#define HLP000011 11

sakura.hh の 15 行で定義されています。

#define HLP000012 12

sakura.hh の 16 行で定義されています。

#define HLP000013 13

sakura.hh の 17 行で定義されています。

#define HLP000014 14

sakura.hh の 18 行で定義されています。

#define HLP000015 15

sakura.hh の 30 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000016 16

sakura.hh の 28 行で定義されています。

#define HLP000017 17

sakura.hh の 35 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000018 18

sakura.hh の 226 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000019 19

sakura.hh の 227 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000020 20

sakura.hh の 31 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000021 21

sakura.hh の 32 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000022 22

sakura.hh の 52 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000023 23

sakura.hh の 54 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000024 24

sakura.hh の 258 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000025 25

sakura.hh の 29 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000026 26

sakura.hh の 259 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000027 27

sakura.hh の 50 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000028 28

sakura.hh の 56 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000029 29

sakura.hh の 53 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000030 30

sakura.hh の 55 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000031 31

sakura.hh の 57 行で定義されています。

#define HLP000032 32

sakura.hh の 58 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000033 33

sakura.hh の 59 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000034 34

sakura.hh の 60 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000035 35

sakura.hh の 61 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000036 36

sakura.hh の 106 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000037 37

sakura.hh の 107 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000038 38

sakura.hh の 108 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000039 39

sakura.hh の 62 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000040 40

sakura.hh の 67 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000041 41

sakura.hh の 63 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000042 42

sakura.hh の 68 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000043 43

sakura.hh の 101 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000044 44

sakura.hh の 64 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000045 45

sakura.hh の 92 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000046 46

sakura.hh の 65 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000047 47

sakura.hh の 122 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000048 48

sakura.hh の 123 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000049 49

sakura.hh の 124 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000050 50

sakura.hh の 128 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000051 51

sakura.hh の 129 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000052 52

sakura.hh の 135 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000053 53

sakura.hh の 136 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000054 54

sakura.hh の 145 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000055 55

sakura.hh の 146 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000056 56

sakura.hh の 110 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000057 57

sakura.hh の 112 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000058 58

sakura.hh の 147 行で定義されています。

#define HLP000059 59

sakura.hh の 148 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000060 60

sakura.hh の 150 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000061 61

sakura.hh の 149 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000062 62

sakura.hh の 151 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000063 63

sakura.hh の 154 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000064 64

sakura.hh の 155 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000065 65

sakura.hh の 157 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000066 66

sakura.hh の 158 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000067 67

sakura.hh の 153 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000068 68

sakura.hh の 178 行で定義されています。

#define HLP000069 69

sakura.hh の 179 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000070 70

sakura.hh の 180 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000071 71

sakura.hh の 212 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000072 72

sakura.hh の 183 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000073 73

sakura.hh の 184 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000074 74

sakura.hh の 185 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000075 75

sakura.hh の 186 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000076 76

sakura.hh の 194 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000077 77

sakura.hh の 190 行で定義されています。

#define HLP000078 78

sakura.hh の 191 行で定義されています。

#define HLP000079 79

sakura.hh の 192 行で定義されています。

#define HLP000080 80

sakura.hh の 193 行で定義されています。

#define HLP000081 81

sakura.hh の 195 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000082 82

sakura.hh の 201 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000083 83

sakura.hh の 199 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000084 84

sakura.hh の 204 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000085 85

sakura.hh の 206 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000086 86

sakura.hh の 207 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000087 87

sakura.hh の 205 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000088 88

sakura.hh の 208 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000089 89

sakura.hh の 319 行で定義されています。

#define HLP000090 90

sakura.hh の 222 行で定義されています。

#define HLP000091 91

sakura.hh の 229 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000092 92

sakura.hh の 228 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000093 93

sakura.hh の 223 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000094 94

sakura.hh の 224 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000095 95

sakura.hh の 225 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000096 96

sakura.hh の 238 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000097 97

sakura.hh の 241 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000098 98

sakura.hh の 237 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000099 99

sakura.hh の 254 行で定義されています。

#define HLP000100 100

sakura.hh の 255 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000101 101

sakura.hh の 256 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000102 102

sakura.hh の 265 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000103 103

sakura.hh の 219 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000104 104

sakura.hh の 23 行で定義されています。

#define HLP000105 105

sakura.hh の 24 行で定義されています。

#define HLP000106 106

sakura.hh の 25 行で定義されています。

#define HLP000107 107

sakura.hh の 266 行で定義されています。

#define HLP000109 109

sakura.hh の 269 行で定義されています。

#define HLP000111 111

sakura.hh の 164 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000112 112

sakura.hh の 9 行で定義されています。

#define HLP000113 113

sakura.hh の 20 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000114 114

sakura.hh の 21 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000115 115

sakura.hh の 22 行で定義されています。

#define HLP000116 116

sakura.hh の 165 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000117 117

sakura.hh の 141 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000118 118

sakura.hh の 142 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000119 119

sakura.hh の 36 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000120 120

sakura.hh の 46 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000121 121

sakura.hh の 51 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000122 122

sakura.hh の 47 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000123 123

sakura.hh の 130 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000124 124

sakura.hh の 131 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000125 125

sakura.hh の 214 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000126 126

sakura.hh の 217 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000127 127

sakura.hh の 215 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000128 128

sakura.hh の 216 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000129 129

sakura.hh の 26 行で定義されています。

#define HLP000131 131

sakura.hh の 121 行で定義されています。

#define HLP000132 132

sakura.hh の 49 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000133 133

sakura.hh の 14 行で定義されています。

#define HLP000134 134

sakura.hh の 182 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000135 135

sakura.hh の 27 行で定義されています。

#define HLP000136 136

sakura.hh の 152 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000137 137

sakura.hh の 100 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000138 138

sakura.hh の 232 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000139 139

sakura.hh の 234 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000140 140

sakura.hh の 233 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000141 141

sakura.hh の 236 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000142 142

sakura.hh の 139 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000143 143

sakura.hh の 140 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000144 144

sakura.hh の 198 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000145 145

sakura.hh の 200 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000146 146

sakura.hh の 196 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000148 148

sakura.hh の 203 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000149 149

sakura.hh の 268 行で定義されています。

#define HLP000150 150

sakura.hh の 197 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000156 156

sakura.hh の 38 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000157 157

sakura.hh の 39 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000158 158

sakura.hh の 40 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000159 159

sakura.hh の 41 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000160 160

sakura.hh の 43 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000161 161

sakura.hh の 44 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000162 162

sakura.hh の 45 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000163 163

sakura.hh の 66 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000164 164

sakura.hh の 69 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000165 165

sakura.hh の 70 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000166 166

sakura.hh の 90 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000167 167

sakura.hh の 91 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000168 168

sakura.hh の 94 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000169 169

sakura.hh の 93 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000170 170

sakura.hh の 97 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000171 171

sakura.hh の 98 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000172 172

sakura.hh の 95 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000173 173

sakura.hh の 96 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000174 174

sakura.hh の 99 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000175 175

sakura.hh の 111 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000176 176

sakura.hh の 113 行で定義されています。

#define HLP000177 177

sakura.hh の 114 行で定義されています。

#define HLP000178 178

sakura.hh の 134 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000179 179

sakura.hh の 137 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000180 180

sakura.hh の 143 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000181 181

sakura.hh の 144 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000182 182

sakura.hh の 132 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000183 183

sakura.hh の 166 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000184 184

sakura.hh の 213 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000186 186

sakura.hh の 220 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000187 187

sakura.hh の 239 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000188 188

sakura.hh の 240 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000189 189

sakura.hh の 257 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000190 190

sakura.hh の 263 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000191 191

sakura.hh の 264 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000192 192

sakura.hh の 48 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000193 193

sakura.hh の 267 行で定義されています。

#define HLP000194 194

sakura.hh の 262 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000195 195

sakura.hh の 221 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000196 196

sakura.hh の 133 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000197 197

sakura.hh の 187 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000198 198

sakura.hh の 260 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000199 199

sakura.hh の 261 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000200 200

sakura.hh の 127 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000201 201

sakura.hh の 209 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000202 202

sakura.hh の 218 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000203 203

sakura.hh の 188 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000204 204

sakura.hh の 271 行で定義されています。

#define HLP000205 205

sakura.hh の 167 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000206 206

sakura.hh の 168 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000207 207

sakura.hh の 169 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000208 208

sakura.hh の 170 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000209 209

sakura.hh の 171 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000210 210

sakura.hh の 115 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000211 211

sakura.hh の 116 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000212 212

sakura.hh の 117 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000213 213

sakura.hh の 118 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000214 214

sakura.hh の 119 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000215 215

sakura.hh の 126 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000218 218

sakura.hh の 281 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000219 219

sakura.hh の 282 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000220 220

sakura.hh の 73 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000221 221

sakura.hh の 74 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000222 222

sakura.hh の 75 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000223 223

sakura.hh の 76 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000224 224

sakura.hh の 79 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000225 225

sakura.hh の 80 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000226 226

sakura.hh の 81 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000227 227

sakura.hh の 82 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000228 228

sakura.hh の 83 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000229 229

sakura.hh の 84 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000230 230

sakura.hh の 85 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000231 231

sakura.hh の 87 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000232 232

sakura.hh の 88 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000233 233

sakura.hh の 283 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000234 234

sakura.hh の 285 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000235 235

sakura.hh の 286 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000236 236

sakura.hh の 287 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000237 237

sakura.hh の 288 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000238 238

sakura.hh の 291 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000239 239

sakura.hh の 292 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000240 240

sakura.hh の 293 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000241 241

sakura.hh の 294 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000242 242

sakura.hh の 295 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000243 243

sakura.hh の 296 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000244 244

sakura.hh の 297 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000245 245

sakura.hh の 298 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000246 246

sakura.hh の 299 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000247 247

sakura.hh の 300 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000248 248

sakura.hh の 301 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000249 249

sakura.hh の 304 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000250 250

sakura.hh の 305 行で定義されています。

#define HLP000251 251

sakura.hh の 306 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000252 252

sakura.hh の 307 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000253 253

sakura.hh の 308 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000254 254

sakura.hh の 309 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000255 255

sakura.hh の 71 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000256 256

sakura.hh の 42 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000257 257

sakura.hh の 138 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000258 258

sakura.hh の 125 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000259 259

sakura.hh の 10 行で定義されています。

#define HLP000260 260

sakura.hh の 11 行で定義されています。

#define HLP000261 261

sakura.hh の 12 行で定義されています。

#define HLP000262 262

sakura.hh の 77 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000263 263

sakura.hh の 78 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000264 264

sakura.hh の 86 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000265 265

sakura.hh の 89 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000266 266

sakura.hh の 272 行で定義されています。

#define HLP000267 267

sakura.hh の 273 行で定義されています。

#define HLP000268 268

sakura.hh の 274 行で定義されています。

#define HLP000269 269

sakura.hh の 275 行で定義されています。

#define HLP000270 270

sakura.hh の 276 行で定義されています。

#define HLP000271 271

sakura.hh の 277 行で定義されています。

#define HLP000272 272

sakura.hh の 278 行で定義されています。

#define HLP000273 273

sakura.hh の 289 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000274 274

sakura.hh の 290 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000275 275

sakura.hh の 302 行で定義されています。

#define HLP000276 276

sakura.hh の 303 行で定義されています。

#define HLP000277 277

sakura.hh の 210 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000278 278

sakura.hh の 159 行で定義されています。

#define HLP000279 279

sakura.hh の 211 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000280 280

sakura.hh の 160 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000281 281

sakura.hh の 161 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000282 282

sakura.hh の 181 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000283 283

sakura.hh の 37 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000285 285

sakura.hh の 120 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000286 286

sakura.hh の 310 行で定義されています。

参照元 CDlgWinSize::OnBnClicked().

#define HLP000287 287

sakura.hh の 34 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000289 289

sakura.hh の 72 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000290 290

sakura.hh の 284 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000291 291

sakura.hh の 162 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000300 300

sakura.hh の 314 行で定義されています。

#define HLP000301 301

sakura.hh の 315 行で定義されています。

#define HLP000302 302

sakura.hh の 316 行で定義されています。

#define HLP000303 303

sakura.hh の 109 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000304 304

sakura.hh の 172 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000305 305

sakura.hh の 173 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000306 306

sakura.hh の 174 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000307 307

sakura.hh の 175 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000308 308

sakura.hh の 176 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000309 309

sakura.hh の 177 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000310 310

sakura.hh の 163 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000311 311

sakura.hh の 231 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000312 312

sakura.hh の 235 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000313 313

sakura.hh の 33 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000314 314

sakura.hh の 230 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000315 315

sakura.hh の 189 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000316 316

sakura.hh の 311 行で定義されています。

参照元 CDlgSameColor::OnBnClicked().

#define HLP000317 317

sakura.hh の 156 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000318 318

sakura.hh の 312 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000320 320

sakura.hh の 242 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000321 321

sakura.hh の 243 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000322 322

sakura.hh の 244 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000323 323

sakura.hh の 245 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000324 324

sakura.hh の 246 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000325 325

sakura.hh の 247 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000326 326

sakura.hh の 248 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000327 327

sakura.hh の 249 行で定義されています。

参照元 FuncID_To_HelpContextID().

#define HLP000328 328

sakura.hh の 250 行で定義されています。

#define HLP000329 329

sakura.hh の 251 行で定義されています。

#define HLP000330 330

sakura.hh の 252 行で定義されています。

#define HLP000331 331

sakura.hh の 253 行で定義されています。

#define HLP_HISTORY 4001

sakura.hh の 339 行で定義されています。

#define HLP_LISENCE 4000

sakura.hh の 338 行で定義されています。

#define HLP_UR000 3000

sakura.hh の 322 行で定義されています。

#define HLP_UR001 3001

sakura.hh の 336 行で定義されています。

#define HLP_UR002 3002

sakura.hh の 335 行で定義されています。

#define HLP_UR003 3003

sakura.hh の 334 行で定義されています。

#define HLP_UR004 3004

sakura.hh の 333 行で定義されています。

#define HLP_UR005 3005

sakura.hh の 332 行で定義されています。

#define HLP_UR006 3006

sakura.hh の 331 行で定義されています。

#define HLP_UR007 3007

sakura.hh の 330 行で定義されています。

#define HLP_UR008 3008

sakura.hh の 329 行で定義されています。

#define HLP_UR009 3009

sakura.hh の 328 行で定義されています。

#define HLP_UR010 3010

sakura.hh の 327 行で定義されています。

#define HLP_UR011 3011

sakura.hh の 326 行で定義されています。

#define HLP_UR012 3012

sakura.hh の 325 行で定義されています。

#define HLP_UR013 3013

sakura.hh の 324 行で定義されています。

#define HLP_UR014 3014

sakura.hh の 323 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:27:07 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: sakura.hh ソースファイル

sakura.hh

説明を見る。
00001 #define HLP000001   1 //サクラエディタ  ヘルプ目次
00002 #define HLP000002   2 //機能概要
00003 #define HLP000003   3 //動作環境
00004 #define HLP000004   4 //使用条件等
00005 #define HLP000005   5 //インストール／アンインストール手順
00006 #define HLP000010   10 //ツールバーアイコンの変更手順
00007 #define HLP000006   6 //正規表現ライブラリ
00008 #define HLP000008   8 //原作者連絡先
00009 #define HLP000112   112 //最新バージョンのダウンロード
00010 #define HLP000259   259 //アイコンからドラッグ & ドロップ
00011 #define HLP000260   260 //アプリアイコンの変更手順
00012 #define HLP000261   261 //あると便利なツール、ファイル
00013 #define HLP000009   9 //リリース履歴
00014 #define HLP000133   133 //メニュー項目のヘルプ
00015 #define HLP000011   11 //通常選択
00016 #define HLP000012   12 //行選択
00017 #define HLP000013   13 //単語選択
00018 #define HLP000014   14 //矩形選択のやり方
00019 #define HLP000007   7 //マウスによる範囲選択
00020 #define HLP000113   113 //TABインデント、逆TABインデント
00021 #define HLP000114   114 //SPACEインデント、逆SPACEインデント
00022 #define HLP000115   115 //矩形編集
00023 #define HLP000104   104 //入力補完機能
00024 #define HLP000105   105 //キーワードヘルプ
00025 #define HLP000106   106 //タブ表示
00026 #define HLP000129   129 //クリッカブルURL
00027 #define HLP000135   135 //ドラッグ & ドロップ編集
00028 #define HLP000016   16 //「ファイル(F)」メニューの一覧
00029 #define HLP000025   25 //新規作成
00030 #define HLP000015   15 //開く
00031 #define HLP000020   20 //上書き保存
00032 #define HLP000021   21 //名前を付けて保存
00033 #define HLP000313   313 //すべて上書き保存  // 2006.10.05 ryoji
00034 #define HLP000287   287 //保存して閉じる    // 2006.10.05 ryoji
00035 #define HLP000017   17 //閉じて(無題)
00036 #define HLP000119   119 //閉じて開く
00037 #define HLP000283   283 //開き直す  //@@@ 2003.06.15 MIK
00038 #define HLP000156   156 //SJISで開き直す
00039 #define HLP000157   157 //JISで開き直す
00040 #define HLP000158   158 //EUCで開き直す
00041 #define HLP000159   159 //Unicodeで開き直す
00042 #define HLP000256   256 //UnicodeBEで開き直す
00043 #define HLP000160   160 //UTF-8で開き直す
00044 #define HLP000161   161 //UTF-7で開き直す
00045 #define HLP000162   162 //印刷
00046 #define HLP000120   120 //印刷プレビュー
00047 #define HLP000122   122 //ページ設定
00048 #define HLP000192   192 //同名のC/C++ヘッダ(ソース)を開く
00049 #define HLP000132   132 //Oracle SQL*Plusをアクティブ表示
00050 #define HLP000027   27 //Oracle SQL*Plusで実行
00051 #define HLP000121   121 //ブラウズ
00052 #define HLP000022   22 //ファイルのプロパティ
00053 #define HLP000029   29 //最近使ったファイル
00054 #define HLP000023   23 //最近使ったフォルダ
00055 #define HLP000030   30 //編集の全終了   // 2007.02.13 ryoji
00056 #define HLP000028   28 //サクラエディタの全終了
00057 #define HLP000031   31 //「編集(E)」メニューの一覧
00058 #define HLP000032   32 //元に戻す(Undo)
00059 #define HLP000033   33 //やり直し(Redo)
00060 #define HLP000034   34 //切り取り
00061 #define HLP000035   35 //コピー
00062 #define HLP000039   39 //貼り付け
00063 #define HLP000041   41 //削除
00064 #define HLP000044   44 //すべて選択
00065 #define HLP000046   46 //挿入／上書きモード切り替え
00066 #define HLP000163   163 //CRLF改行でコピー
00067 #define HLP000040   40 //矩形貼り付け
00068 #define HLP000042   42 //カーソル前を削除
00069 #define HLP000164   164 //日付挿入
00070 #define HLP000165   165 //時刻挿入
00071 #define HLP000255   255 //コントロールコードの入力
00072 #define HLP000289   289 //カーソル移動  // 2006.10.11 ryoji
00073 #define HLP000220   220 //カーソル上移動（2行ごと）
00074 #define HLP000221   221 //カーソル下移動（2行ごと）
00075 #define HLP000222   222 //単語の左端に移動
00076 #define HLP000223   223 //単語の右端に移動
00077 #define HLP000262   262 //前の段落に移動
00078 #define HLP000263   263 //次の段落に移動
00079 #define HLP000224   224 //行頭に移動（折り返し単位）
00080 #define HLP000225   225 //行末に移動（折り返し単位）
00081 #define HLP000226   226 //1ページアップ
00082 #define HLP000227   227 //1ページダウン
00083 #define HLP000228   228 //ファイルの先頭に移動
00084 #define HLP000229   229 //ファイルの最後に移動
00085 #define HLP000230   230 //カーソル行をウィンドウ中央へ
00086 #define HLP000264   264 //検索開始位置へ戻る
00087 #define HLP000231   231 //移動履歴：前へ
00088 #define HLP000232   232 //移動履歴：次へ
00089 #define HLP000265   265 //現在位置を移動履歴に登録
00090 #define HLP000166   166 //単語の左端まで削除
00091 #define HLP000167   167 //単語の右端まで削除
00092 #define HLP000045   45 //現在位置の単語選択
00093 #define HLP000169   169 //単語切り取り
00094 #define HLP000168   168 //単語削除
00095 #define HLP000172   172 //行頭まで切り取り (改行単位)
00096 #define HLP000173   173 //行末まで切り取り (改行単位)
00097 #define HLP000170   170 //行頭まで削除 (改行単位)
00098 #define HLP000171   171 //行末まで削除 (改行単位)
00099 #define HLP000174   174 //行切り取り (折り返し単位)
00100 #define HLP000137   137 //行削除 (折り返し単位)
00101 #define HLP000043   43 //行の二重化 (折り返し単位)
00102 //#define HLP000113 113 //TABインデント     //Jul. 03, 2001 JEPRO TAB・逆TABインデントで定義済み
00103 //#define HLP000113 113 //逆TABインデント
00104 //#define HLP000114 114 //SPACEインデント   //Jul. 03, 2001 JEPRO SPACE・逆SPACEインデントで定義済み
00105 //#define HLP000114 114 //逆SPACEインデント
00106 #define HLP000036   36 //選択範囲内全行コピー
00107 #define HLP000037   37 //選択範囲内全行引用符付きコピー
00108 #define HLP000038   38 //選択範囲内全行行番号付きコピー
00109 #define HLP000303   303 //このファイル名をコピー
00110 #define HLP000056   56 //このファイルのパス名をコピー
00111 #define HLP000175   175 //このファイルのパス名とカーソル位置をコピー
00112 #define HLP000057   57 //キー割り当て一覧をコピー
00113 #define HLP000176   176 //「移動(O)」メニューの一覧
00114 #define HLP000177   177 //「選択(S)」メニューの一覧
00115 #define HLP000210   210 //左(先頭)の空白を削除
00116 #define HLP000211   211 //右(末尾)の空白を削除
00117 #define HLP000212   212 //選択行の昇順ソート
00118 #define HLP000213   213 //選択行の降順ソート
00119 #define HLP000214   214 //選択行のマージ
00120 #define HLP000285   285 //入力改行コード指定
00121 #define HLP000131   131 //「変換(C)」メニューの一覧
00122 #define HLP000047   47 //小文字
00123 #define HLP000048   48 //大文字
00124 #define HLP000049   49 //全角→半角
00125 #define HLP000258   258 //全角カタカナ→半角カタカナ
00126 #define HLP000215   215 //全角英数→半角英数
00127 #define HLP000200   200 //半角英数→全角英数
00128 #define HLP000050   50 //半角＋全ひら→全角・カタカナ
00129 #define HLP000051   51 //半角＋全カタ→全角・ひらがな
00130 #define HLP000123   123 //半角カタカナ→全角カタカナ
00131 #define HLP000124   124 //半角カタカナ→全角ひらがな
00132 #define HLP000182   182 //TAB→空白
00133 #define HLP000196   196 //空白→TAB
00134 #define HLP000178   178 //自動判別→SJISコード変換
00135 #define HLP000052   52 //E-Mail(JIS→SJIS)コード変換
00136 #define HLP000053   53 //EUC→SJISコード変換
00137 #define HLP000179   179 //Unicode→SJISコード変換
00138 #define HLP000257   257 //UnicodeBE→SJISコード変換
00139 #define HLP000142   142 //UTF-8→SJISコード変換
00140 #define HLP000143   143 //UTF-7→SJISコード変換
00141 #define HLP000117   117 //SJIS→JISコード変換
00142 #define HLP000118   118 //SJIS→EUCコード変換
00143 #define HLP000180   180 //SJIS→UTF-8コード変換
00144 #define HLP000181   181 //SJIS→UTF-7コード変換
00145 #define HLP000054   54 //Base64デコードして保存
00146 #define HLP000055   55 //uudecodeして保存
00147 #define HLP000058   58 //「検索(S)」メニューの一覧
00148 #define HLP000059   59 //検索
00149 #define HLP000061   61 //次を検索
00150 #define HLP000060   60 //前を検索
00151 #define HLP000062   62 //置換
00152 #define HLP000136   136 //検索マークの切替え
00153 #define HLP000067   67 //Grep
00154 #define HLP000063   63 //指定行へジャンプ
00155 #define HLP000064   64 //アウトライン解析
00156 #define HLP000317   317 //アウトライン解析(トグル)  // 2006.10.11 ryoji
00157 #define HLP000065   65 //タグジャンプ
00158 #define HLP000066   66 //タグジャンプバック
00159 #define HLP000278   278 //タグジャンプ一覧
00160 #define HLP000280   280 //タグファイルの作成
00161 #define HLP000281   281 //ダイレクトタグジャンプ
00162 #define HLP000291   291 //閉じてタグジャンプ(元ウィンドウclose) // 2006.10.11 ryoji
00163 #define HLP000310   310 //キーワードを指定してタグジャンプ  // 2006.10.05 ryoji
00164 #define HLP000111   111 //入力補完
00165 #define HLP000116   116 //ファイル内容比較
00166 #define HLP000183   183 //対括弧の検索
00167 #define HLP000205   205 //ブックマーク設定・解除
00168 #define HLP000206   206 //次のブックマークへ
00169 #define HLP000207   207 //前のブックマークへ
00170 #define HLP000208   208 //ブックマークの全解除
00171 #define HLP000209   209 //ブックマークの一覧
00172 #define HLP000304   304 //前方インクリメンタルサーチ    // 2006.10.05 ryoji
00173 #define HLP000305   305 //後方インクリメンタルサーチ    // 2006.10.05 ryoji
00174 #define HLP000306   306 //正規表現前方インクリメンタルサーチ    // 2006.10.05 ryoji
00175 #define HLP000307   307 //正規表現後方インクリメンタルサーチ    // 2006.10.05 ryoji
00176 #define HLP000308   308 //MIGEMO前方インクリメンタルサーチ  // 2006.10.05 ryoji
00177 #define HLP000309   309 //MIGEMO後方インクリメンタルサーチ  // 2006.10.05 ryoji
00178 #define HLP000068   68 //「ツール(T)」メニューの一覧
00179 #define HLP000069   69 //ツールバーを表示(隠す)
00180 #define HLP000070   70 //ファンクションキーを表示(隠す)
00181 #define HLP000282   282 //タブの表示／非表示    //@@@ 2003.06.10 MIK
00182 #define HLP000134   134 //ステータスバーを表示(隠す)
00183 #define HLP000072   72 //タイプ別設定一覧
00184 #define HLP000073   73 //タイプ別設定
00185 #define HLP000074   74 //タイプ別設定 『スクリーン』プロパティ
00186 #define HLP000075   75 //タイプ別設定 『カラー』プロパティ
00187 #define HLP000197   197 //タイプ別設定 『支援』プロパティ
00188 #define HLP000203   203 //タイプ別設定 『正規表現キーワード』プロパティ //@@@ 2001.11.17 add MIK
00189 #define HLP000315   315 //タイプ別設定 『キーワードヘルプ』プロパティ   // 2006.10.06 ryoji
00190 #define HLP000077   77 //設定フォルダ（iniフォルダ）    // 2007.09.09 maru
00191 #define HLP000078   78 //ユーザー別設定                 // 2007.09.23 maru
00192 #define HLP000079   79 //Visual Style                   // 2007.09.30 maru
00193 #define HLP000080   80 //Virtual Store                  // 2007.09.30 maru
00194 #define HLP000076   76 //共通設定
00195 #define HLP000081   81 //共通設定 『全般』プロパティ
00196 #define HLP000146   146 //共通設定 『ウィンドウ』プロパティ
00197 #define HLP000150   150 //共通設定 『タブバー』プロパティ   // 2007.02.13 ryoji
00198 #define HLP000144   144 //共通設定 『編集』プロパティ
00199 #define HLP000083   83 //共通設定 『ファイル』プロパティ
00200 #define HLP000145   145 //共通設定 『バックアップ』プロパティ
00201 #define HLP000082   82 //共通設定 『書式』プロパティ
00202 //#define HLP000147 147 //共通設定 『クリッカブルURL』プロパティ    // 2007.02.13 ryoji 廃止
00203 #define HLP000148   148 //共通設定 『Grep』プロパティ
00204 #define HLP000084   84 //共通設定 『キー割り当て』プロパティ
00205 #define HLP000087   87 //共通設定 『カスタムメニュー』プロパティ
00206 #define HLP000085   85 //共通設定 『ツールバー』プロパティ
00207 #define HLP000086   86 //共通設定 『強調キーワード』プロパティ
00208 #define HLP000088   88 //共通設定 『支援』プロパティ
00209 #define HLP000201   201 //共通設定 『マクロ』プロパティ
00210 #define HLP000277   277 //共通設定『ファイル名表示』タブ
00211 #define HLP000279   279 //履歴の管理
00212 #define HLP000071   71 //フォント設定
00213 #define HLP000184   184 //現在のウィンドウ幅で折り返し
00214 #define HLP000125   125 //キーマクロの記録開始／終了
00215 #define HLP000127   127 //キーマクロの保存
00216 #define HLP000128   128 //キーマクロの読み込み
00217 #define HLP000126   126 //キーマクロの実行
00218 #define HLP000202   202 //登録済みマクロ
00219 #define HLP000103   103 //外部コマンド実行
00220 #define HLP000186   186 //カスタムメニュー
00221 #define HLP000195   195 //右クリックメニュー
00222 #define HLP000090   90 //「ウィンドウ(W)」メニューの一覧
00223 #define HLP000093   93 //上下に分割
00224 #define HLP000094   94 //左右に分割
00225 #define HLP000095   95 //縦横に分割
00226 #define HLP000018   18 //現在のウィンドウを閉じる
00227 #define HLP000019   19 //すべてのウィンドウを閉じる
00228 #define HLP000092   92 //次のウィンドウ
00229 #define HLP000091   91 //前のウィンドウ
00230 #define HLP000314   314 //ウィンドウ一覧    // 2006.10.05 ryoji
00231 #define HLP000311   311 //結合して表示  // 2006.10.05 ryoji
00232 #define HLP000138   138 //重ねて表示
00233 #define HLP000140   140 //上下に並べて表示
00234 #define HLP000139   139 //左右に並べて表示
00235 #define HLP000312   312 //常に手前に表示    // 2006.10.05 ryoji
00236 #define HLP000141   141 //縦方向に最大化
00237 #define HLP000098   98 //横方向に最大化
00238 #define HLP000096   96 //すべて最小化
00239 #define HLP000187   187 //再描画
00240 #define HLP000188   188 //アウトプット
00241 #define HLP000097   97 //(ウィンドウリスト)
00242 #define HLP000320   320 //グループを閉じる      // 2007.06.20 ryoji
00243 #define HLP000321   321 //次のグループ          // 2007.07.04 ryoji
00244 #define HLP000322   322 //前のグループ          // 2007.07.04 ryoji
00245 #define HLP000323   323 //タブを右に移動        // 2007.07.04 ryoji
00246 #define HLP000324   324 //タブを左に移動        // 2007.07.04 ryoji
00247 #define HLP000325   325 //新規グループ          // 2007.07.04 ryoji
00248 #define HLP000326   326 //次のグループに移動    // 2007.07.04 ryoji
00249 #define HLP000327   327 //前のグループに移動    // 2007.07.04 ryoji
00250 #define HLP000328   328 //編集文書の一時出力            // 2007.09.29 maru
00251 #define HLP000329   329 //編集文書にファイル挿入        // 2007.09.29 maru
00252 #define HLP000330   330 //引用符の変更                  // 2007.09.29 maru
00253 #define HLP000331   331 //トレース出力                  // 2007.09.29 maru
00254 #define HLP000099   99 //「ヘルプ(H)」メニューの一覧
00255 #define HLP000100   100 //ヘルプ目次
00256 #define HLP000101   101 //キーワード検索
00257 #define HLP000189   189 //コマンド一覧
00258 #define HLP000024   24 //同名のC/C++ヘッダファイルを開く
00259 #define HLP000026   26 //同名のC/C++ソースファイルを開く
00260 #define HLP000198   198 //テキストを１行下へスクロール
00261 #define HLP000199   199 //テキストを１行上へスクロール
00262 #define HLP000194   194 //各種モードの取り消し
00263 #define HLP000190   190 //外部ヘルプ1
00264 #define HLP000191   191 //外部HTMLヘルプ
00265 #define HLP000102   102 //バージョン情報
00266 #define HLP000107   107 //キー割り当て一覧 (キー別)
00267 #define HLP000193   193 //コマンド一覧 (機能別)
00268 #define HLP000149   149 //改行コードについて
00269 #define HLP000109   109 //コマンドラインオプション
00270 //#define HLP000155 155 //色設定ファイルの仕様について
00271 #define HLP000204   204 //マクロについて
00272 #define HLP000266   266 //拡張子
00273 #define HLP000267   267 //キーボードマクロ
00274 #define HLP000268   268 //PPA/WSH専用マクロ関数
00275 #define HLP000269   269 //WSHマクロ
00276 #define HLP000270   270 //記載例
00277 #define HLP000271   271 //文字コードセットのエンコードについて
00278 #define HLP000272   272 //メタ文字列の仕様
00279
00280 //#define HLP000217 217 //選択
00281 #define HLP000218   218 //再変換
00282 #define HLP000219   219 //折り返し位置に改行をつけてコピー
00283 #define HLP000233   233 //範囲選択開始
00284 #define HLP000290   290 //（選択）カーソル移動  // 2006.10.11 ryoji
00285 #define HLP000234   234 //（選択）カーソル上移動（2行ごと）
00286 #define HLP000235   235 //（選択）カーソル下移動（2行ごと）
00287 #define HLP000236   236 //（選択）単語の左端に移動
00288 #define HLP000237   237 //（選択）単語の右端に移動
00289 #define HLP000273   273 //（選択）前の段落に移動
00290 #define HLP000274   274 //（選択）次の段落に移動
00291 #define HLP000238   238 //（選択）行頭に移動（折り返し単位）
00292 #define HLP000239   239 //（選択）行末に移動（折り返し単位）
00293 #define HLP000240   240 //（選択）1ページアップ
00294 #define HLP000241   241 //（選択）1ページダウン
00295 #define HLP000242   242 //（選択）ファイルの先頭に移動
00296 #define HLP000243   243 //（選択）ファイルの最後に移動
00297 #define HLP000244   244 //矩形範囲選択開始
00298 #define HLP000245   245 //半ページアップ
00299 #define HLP000246   246 //半ページダウン
00300 #define HLP000247   247 //（選択）半ページアップ
00301 #define HLP000248   248 //（選択）半ページダウン
00302 #define HLP000275   275 //開く（ドロップダウン）
00303 #define HLP000276   276 //検索（ボックス）
00304 #define HLP000249   249 //読み取り専用
00305 #define HLP000250   250 //単語について
00306 #define HLP000251   251 //DIFF差分表示
00307 #define HLP000252   252 //次の差分へ
00308 #define HLP000253   253 //前の差分へ
00309 #define HLP000254   254 //差分表示の全解除
00310 #define HLP000286   286 //ウィンドウの位置と大きさ
00311 #define HLP000316   316 //文字色／背景色統一    // 2006.10.07 ryoji
00312 #define HLP000318   318 //キャレット位置辞書検索機能ON/OFF  // 2006.10.11 ryoji
00313
00314 #define HLP000300   300 //ファイルタイプ
00315 #define HLP000301   301 //スマートインデント
00316 #define HLP000302   302 //色設定ファイル
00317 // note: 303 は 「このファイル名をコピー」が使用
00318 //#define HLP000304 304 //メタ文字列の仕様 HLP000272
00319 #define HLP000089   89 //利用可能な正規表現 // 2007.09.30
00320
00321
00322 #define HLP_UR000   3000 //サクラエディタ共同開発版について
00323 #define HLP_UR014   3014 //変更履歴(2007/09/27-)
00324 #define HLP_UR013   3013 //変更履歴(2006/11/04-)
00325 #define HLP_UR012   3012 //変更履歴(2005/10/02-)
00326 #define HLP_UR011   3011 //変更履歴(2003/06/26-)
00327 #define HLP_UR010   3010 //変更履歴(2002/01/14-)
00328 #define HLP_UR009   3009 //変更履歴(2002/05/01-)
00329 #define HLP_UR008   3008 //変更履歴(2002/02/23-)
00330 #define HLP_UR007   3007 //変更履歴(2001/12/03-)
00331 #define HLP_UR006   3006 //変更履歴(2001/06/22-)
00332 #define HLP_UR005   3005 //変更履歴(2001/05/13-)
00333 #define HLP_UR004   3004 //変更履歴(2000/11/20-)
00334 #define HLP_UR003   3003 //変更履歴(2000/10/10-)
00335 #define HLP_UR002   3002 //変更履歴(2000/05/12-)
00336 #define HLP_UR001   3001 //変更履歴(2000/02/21-)
00337
00338 #define HLP_LISENCE 4000 //このヘルプファイルについて
00339 #define HLP_HISTORY 4001 //ヘルプファイル更新履歴
00340
00341
00342 #define HIDC_BUTTON_BACKUP_FOLDER_REF           10000 //バックアップフォルダ参照
00343 #define HIDC_CHECK_BACKUP                       10010 //バックアップの作成
00344 #define HIDC_CHECK_BACKUP_YEAR                  10011 //バックアップファイル名（西暦年）
00345 #define HIDC_CHECK_BACKUP_MONTH                 10012 //バックアップファイル名（月）
00346 #define HIDC_CHECK_BACKUP_DAY                   10013 //バックアップファイル名（日）
00347 #define HIDC_CHECK_BACKUP_HOUR                  10014 //バックアップファイル名（時）
00348 #define HIDC_CHECK_BACKUP_MIN                   10015 //バックアップファイル名（分）
00349 #define HIDC_CHECK_BACKUP_SEC                   10016 //バックアップファイル名（秒）
00350 #define HIDC_CHECK_BACKUPDIALOG                 10017 //作成前に確認
00351 #define HIDC_CHECK_BACKUPFOLDER                 10018 //指定フォルダに作成
00352 #define HIDC_CHECK_BACKUP_DUSTBOX               10019 //バックアップをごみ箱に放り込む  //@@@ 2002.01.03
00353 #define HIDC_EDIT_BACKUPFOLDER                  10040 //保存フォルダ名
00354 #define HIDC_EDIT_BACKUP_3                      10041 //世代数
00355 #define HIDC_EDIT_BACKUPFILE                    10042 //保存ファイル名
00356 #define HIDC_RADIO_BACKUP_TYPE1                 10060 //バックアップの種類（拡張子）
00357 //#define HIDC_RADIO_BACKUP_TYPE3                   10061 //バックアップの種類（日付・時刻）
00358 //#define HIDC_RADIO_BACKUP_TYPE2                   10062 //バックアップの種類（連番）
00359 #define HIDC_RADIO_BACKUP_TYPE2NEWHID           10061 //バックアップの種類（日付・時刻）// 2002.11.09 Moca ヘルプ・ソースのコメントがTYPE2と逆だったため名称変更しヘルプファイルにIDを合わせた
00360 #define HIDC_RADIO_BACKUP_TYPE3NEWHID           10062 //バックアップの種類（連番）// 2002.11.09 Moca ヘルプ・ソースのコメントがTYPE3と逆だったため名称変更しヘルプファイルにIDを合わせた
00361 #define HIDC_RADIO_BACKUP_DATETYPE1             10063 //付加する日時の種類（作成日時）//Jul. 05, 2001 JEPRO 追加
00362 #define HIDC_RADIO_BACKUP_DATETYPE2             10064 //付加する日時の種類（更新日時）//Jul. 05, 2001 JEPRO 追加
00363 #define HIDC_CHECK_BACKUP_RETAINEXT             10065 //元の拡張子を保存    // 2006.08.06 ryoji
00364 #define HIDC_CHECK_BACKUP_ADVANCED              10066 //詳細設定    // 2006.08.06 ryoji
00365 #define HIDC_BUTTON_DELETE                      10100 //メニューから機能削除
00366 #define HIDC_BUTTON_INSERTSEPARATOR             10101 //セパレータ挿入
00367 #define HIDC_BUTTON_INSERT                      10102 //メニューへ機能挿入
00368 #define HIDC_BUTTON_ADD                         10103 //メニューへ機能追加
00369 #define HIDC_BUTTON_UP                          10104 //メニューの機能を上へ移動
00370 #define HIDC_BUTTON_DOWN                        10105 //メニューの機能を下へ移動
00371 #define HIDC_BUTTON_IMPORT                      10106 //インポート
00372 #define HIDC_BUTTON_EXPORT                      10107 //エクスポート
00373 #define HIDC_COMBO_FUNCKIND                     10130 //機能の種別
00374 #define HIDC_COMBO_MENU                         10131 //メニューの種別
00375 #define HIDC_LIST_FUNC                          10150 //機能一覧
00376 #define HIDC_LIST_RES                           10151 //メニュー一覧
00377 #define HIDC_CHECK_ADDCRLFWHENCOPY              10210 //折り返し行に改行を付けてコピー
00378 #define HIDC_CHECK_COPYnDISABLESELECTEDAREA     10211 //コピーしたら選択解除
00379 #define HIDC_CHECK_DRAGDROP                     10212 //ドラッグ＆ドロップ編集する
00380 #define HIDC_CHECK_DROPSOURCE                   10213 //ドロップ元にする
00381 #define HIDC_CHECK_bNotOverWriteCRLF            10214 //上書きモード
00382 #define HIDC_CHECK_EXCVLUSIVE_NO                10310 //ファイルの排他制御（排他制御しない）
00383 #define HIDC_CHECK_bCheckFileTimeStamp          10311 //更新の監視
00384 #define HIDC_CHECK_EXCVLUSIVE_WRITE             10312 //ファイルの排他制御（上書き禁止）
00385 #define HIDC_CHECK_EXCVLUSIVE_READWRITE         10313 //ファイルお排他制御（読み書き禁止）
00386 #define HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE    10314 //無変更でも上書き
00387 #define HIDC_CHECK_AUTOSAVE                     10315 //自動的に保存
00388 #define HIDC_CHECK_bDropFileAndClose            10316 //閉じて開く
00389 #define HIDC_CHECK_RestoreCurPosition           10317 //カーソル位置の復元
00390 #define HIDC_CHECK_AutoMIMEDecode               10318 //MIMEデコード
00391 #define HIDC_EDIT_AUTOBACKUP_INTERVAL           10340 //自動保存間隔
00392 #define HIDC_EDIT_nDropFileNumMax               10341 //ファイルドロップ最大数
00393 #define HIDC_CHECK_RestoreBookmarks             10342 //ブックマークの復元
00394 #define HIDC_CHECK_QueryIfCodeChange            10343 //前回と異なる文字コードのとき問い合わせを行う    // 2006.08.06 ryoji
00395 #define HIDC_CHECK_AlertIfFileNotExist          10344 //開こうとしたファイルが存在しないとき警告する    // 2006.08.06 ryoji
00396 #define HIDC_CHECK_NoFilterSaveNew              10345 //新規から保存時は全ファイル表示  // 2006.11.16 ryoji
00397 #define HIDC_CHECK_NoFilterSaveFile             10346 //新規以外から保存時は全ファイル表示  // 2006.11.16 ryoji
00398 #define HIDC_EDIT_DFORM                         10440 //日付書式
00399 #define HIDC_EDIT_TFORM                         10441 //時刻書式
00400 #define HIDC_EDIT_DFORM_EX                      10442 //日付書式（表示例）
00401 #define HIDC_EDIT_TFORM_EX                      10443 //時刻書式（表示例）
00402 #define HIDC_EDIT_MIDASHIKIGOU                  10444 //見出し記号
00403 #define HIDC_EDIT_INYOUKIGOU                    10445 //引用符
00404 #define HIDC_RADIO_DFORM_0                      10460 //日付書式（標準）
00405 #define HIDC_RADIO_DFORM_1                      10461 //日付書式（カスタム）
00406 #define HIDC_RADIO_TFORM_0                      10462 //時刻書式（標準）
00407 #define HIDC_RADIO_TFORM_1                      10463 //時刻書式（カスタム）
00408 #define HIDC_CHECK_bCaretTextForSearch          10500 //カーソル位置の文字列をデフォルトの検索文字列にする  // 2006.08.23 ryoji
00409 #define HIDC_CHECK_bGrepExitConfirm             10510 //GREPの保存確認
00410 #define HIDC_CHECK_GTJW_RETURN                  10511 //タグジャンプ（エンターキー）
00411 #define HIDC_CHECK_GTJW_LDBLCLK                 10512 //タグジャンプ（ダブルクリック）
00412 #define HIDC_CHECK_GREPREALTIME                 10513 //リアルタイムで表示する  // 2006.08.08 ryoji
00413 #define HIDC_EDIT_REGEXPLIB                     10514 //正規表現ライブラリ選択  // 2007.09.02 genta
00414 #define HIDC_LABEL_REGEXPVER                    10515 //正規表現ライブラリ選択  // 2007.09.02 genta
00415 //#define HIDC_BUTTON_HOKANFILE_REF             10600 //入力補完 単語ファイル参照           //Jul. 05, 2001 JEPRO タイプ別に移動
00416 //#define HIDC_BUTTON_KEYWORDHELPFILE_REF           10601 //キーワードヘルプファイル参照    //Jul. 05, 2001 JEPRO タイプ別に移動
00417 #define HIDC_BUTTON_OPENHELP1                   10602 //外部ヘルプファイル参照
00418 #define HIDC_BUTTON_OPENEXTHTMLHELP             10603 //外部HTMLファイル参照
00419 #define HIDC_BUTTON_KEYWORDHELPFONT             11611 //キーワードヘルプのフォント  //重複回避
00420 #define HIDC_CHECK_USEHOKAN                     10610 //逐次入力補完
00421 //#define HIDC_CHECK_HOKANLOHICASE              10611 //入力補完の英大文字小文字            //Jul. 05, 2001 JEPRO タイプ別に移動
00422 #define HIDC_CHECK_m_bHokanKey_RETURN           10612 //候補決定キー（Enter）
00423 #define HIDC_CHECK_m_bHokanKey_TAB              10613 //候補決定キー（Tab）
00424 #define HIDC_CHECK_m_bHokanKey_RIGHT            10614 //候補決定キー（→）
00425 #define HIDC_CHECK_m_bHokanKey_SPACE            10615 //候補決定キー（Space）
00426 //#define HIDC_CHECK_USEKEYWORDHELP             10616 //キーワードヘルプ機能                //Jul. 05, 2001 JEPRO タイプ別に移動
00427 #define HIDC_CHECK_HTMLHELPISSINGLE             10617 //ビューアの複数起動
00428 #define HIDC_CHECK_CLICKKEYSEARCH               10618 //キャレット位置の単語を辞書検索      // 2006.03.24 fon
00429 //#define HIDC_EDIT_HOKANFILE                       10640 //単語ファイル名                  //Jul. 05, 2001 JEPRO タイプ別に移動
00430 //#define HIDC_EDIT_KEYWORDHELPFILE             10641 //辞書ファイル名                      //Jul. 05, 2001 JEPRO タイプ別に移動
00431 #define HIDC_EDIT_EXTHELP1                      10642 //外部ヘルプファイル名
00432 #define HIDC_EDIT_EXTHTMLHELP                   10643 //外部HTMLヘルプファイル名
00433 #define HIDC_EDIT_MIGEMO_DLL                    10650 //Migemo DLLファイル名    // 2006.08.06 ryoji
00434 #define HIDC_BUTTON_OPENMDLL                    10651 //Migemo DLLファイル参照  // 2006.08.06 ryoji
00435 #define HIDC_EDIT_MIGEMO_DICT                   10652 //Migemo 辞書ファイル名   // 2006.08.06 ryoji
00436 #define HIDC_BUTTON_OPENMDICT                   10653 //Migemo 辞書ファイル参照 // 2006.08.06 ryoji
00437 #define HIDC_BUTTON_IMPORT_KEYBIND              10700 //インポート
00438 #define HIDC_BUTTON_EXPORT_KEYBIND              10701 //エクスポート
00439 #define HIDC_BUTTON_ASSIGN                      10702 //キー割り当て
00440 #define HIDC_BUTTON_RELEASE                     10703 //キー解除
00441 #define HIDC_CHECK_SHIFT                        10710 //Shiftキー
00442 #define HIDC_CHECK_CTRL                         10711 //Ctrlキー
00443 #define HIDC_CHECK_ALT                          10712 //Altキー
00444 #define HIDC_COMBO_FUNCKIND_KEYBIND             10730 //機能の種別
00445 #define HIDC_EDIT_KEYSFUNC                      10740 //キーに割り当てられている機能
00446 #define HIDC_LIST_FUNC_KEYBIND                  10750 //機能一覧
00447 #define HIDC_LIST_KEY                           10751 //キー一覧
00448 #define HIDC_LIST_ASSIGNEDKEYS                  10752 //機能に割り当てられているキー
00449 #define HIDC_BUTTON_ADDSET                      10800 //キーワードセット追加
00450 #define HIDC_BUTTON_DELSET                      10801 //キーワードセット削除
00451 #define HIDC_BUTTON_ADDKEYWORD                  10802 //キーワード追加
00452 #define HIDC_BUTTON_EDITKEYWORD                 10803 //キーワード編集
00453 #define HIDC_BUTTON_DELKEYWORD                  10804 //キーワード削除
00454 #define HIDC_BUTTON_IMPORT_KEYWORD              10805 //インポート
00455 #define HIDC_BUTTON_EXPORT_KEYWORD              10806 //エクスポート
00456 #define HIDC_BUTTON_KEYCLEAN                    10807 //キーワード整理  // 2006.08.06 ryoji
00457 #define HIDC_CHECK_KEYWORDCASE                  10810 //キーワードの英大文字小文字区別
00458 #define HIDC_COMBO_SET                          10830 //強調キーワードセット名
00459 #define HIDC_BUTTON_KEYSETRENAME                10831 //セットの名称変更    // 2006.08.06 ryoji
00460 #define HIDC_LIST_KEYWORD                       10840 //キーワード一覧
00461 #define HIDC_BUTTON_CLEAR_MRU_FILE              10900 //履歴をクリア（ファイル）
00462 #define HIDC_BUTTON_CLEAR_MRU_FOLDER            10901 //履歴をクリア（フォルダ）
00463 #define HIDC_CHECK_FREECARET                    10910 //フリーカーソル
00464 #define HIDC_CHECK_INDENT                       10911 //自動インデント
00465 #define HIDC_CHECK_INDENT_WSPACE                10912 //全角空白もインデント
00466 #define HIDC_CHECK_USETRAYICON                  10913 //タスクトレイを使う
00467 #define HIDC_CHECK_STAYTASKTRAY                 10914 //タスクトレイに常駐
00468 #define HIDC_CHECK_REPEATEDSCROLLSMOOTH         10915 //少し滑らかにする
00469 #define HIDC_CHECK_EXITCONFIRM                  10916 //終了の確認
00470 #define HIDC_CHECK_STOPS_WORD                   10917 //単語単位で移動するときに単語の両端に止まる
00471 #define HIDC_CHECK_STOPS_PARAGRAPH              10918 //段落単位で移動するときに段落の両端に止まる
00472 #define HIDC_CHECK_CLOSEALLCONFIRM              10919 //[すべて閉じる]で他に編集用のウィンドウがあれば確認する  // 2006.12.25 ryoji
00473 #define HIDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE     10920 //マウスクリックでアクティブになったときはカーソルをクリック位置に移動しない 2007.10.08 genta
00474 #define HIDC_HOTKEY_TRAYMENU                    10940 //左クリックメニューのショートカットキー
00475 #define HIDC_EDIT_REPEATEDSCROLLLINENUM         10941 //スクロール行数
00476 #define HIDC_EDIT_MAX_MRU_FILE                  10942 //ファイル履歴の最大数
00477 #define HIDC_EDIT_MAX_MRU_FOLDER                10943 //フォルダ履歴の最大数
00478 #define HIDC_RADIO_CARETTYPE0                   10960 //カーソル形状（Windows風）
00479 #define HIDC_RADIO_CARETTYPE1                   10961 //カーソル形状（MS-DOS風）
00480 #define HIDC_BUTTON_DELETE_TOOLBAR              11000 //ツールバーから機能削除
00481 #define HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR     11001 //セパレータ挿入
00482 #define HIDC_BUTTON_INSERT_TOOLBAR              11002 //ツールバーへ機能挿入
00483 #define HIDC_BUTTON_ADD_TOOLBAR                 11003 //ツールバーへ機能追加
00484 #define HIDC_BUTTON_UP_TOOLBAR                  11004 //ツールバーの機能を上へ移動
00485 #define HIDC_BUTTON_DOWN_TOOLBAR                11005 //ツールバーの機能を下へ移動
00486 #define HIDC_CHECK_TOOLBARISFLAT                11010 //フラットなボタン
00487 #define HIDC_COMBO_FUNCKIND_TOOLBAR             11030 //機能の種別
00488 #define HIDC_LIST_FUNC_TOOLBAR                  11040 //機能一覧
00489 #define HIDC_LIST_RES_TOOLBAR                   11041 //メニュー一覧
00490 #define HIDC_BUTTON_INSERTWRAP                  11042 //ツールバー折返  // 2006.08.06 ryoji
00491 #define HIDC_CHECK_bSelectClickedURL            11110 //クリッカブルURL
00492 #define HIDC_CHECK_DispFUNCKEYWND               11210 //ファンクションキー
00493 #define HIDC_CHECK_DispSTATUSBAR                11211 //ステータスバー
00494 #define HIDC_CHECK_DispTOOLBAR                  11212 //ツールバー表示
00495 #define HIDC_CHECK_bScrollBarHorz               11213 //水平スクロールバー
00496 #define HIDC_CHECK_bMenuIcon                    11214 //アイコン付きメニュー
00497 #define HIDC_CHECK_SplitterWndVScroll           11216 //垂直スクロールの同期
00498 #define HIDC_CHECK_SplitterWndHScroll           11217 //水平スクロールの同期
00499 #define HIDC_CHECK_DispTabWnd                   11218 //タブウインドウ表示  //@@@ 2003.05.31 MIK
00500 #define HIDC_CHECK_DispTabWndMultiWin           11219 //タブウインドウ表示  //@@@ 2003.05.31 MIK
00501 #define HIDC_WINCAPTION_ACTIVE                  11220 //ウインドアクティブ時ウキャプション  //@@@ 2003.06.15 MIK
00502 #define HIDC_WINCAPTION_INACTIVE                11221 //ウインドア非クティブ時ウキャプション    //@@@ 2003.06.15 MIK
00503 #define HIDC_TABWND_CAPTION                     11222 //タブウインドウキャプション  //@@@ 2003.06.15 MIK
00504 #define HIDC_EDIT_nRulerBottomSpace             11240 //ルーラー（テキストとの隙間）
00505 #define HIDC_EDIT_nRulerHeight                  11241 //ルーラー（高さ）
00506 #define HIDC_EDIT_nLineNumberRightSpace         11242 //行番号とテキストの隙間
00507 #define HIDC_RADIO_FUNCKEYWND_PLACE1            11260 //ファンクションキー表示位置（上）
00508 #define HIDC_RADIO_FUNCKEYWND_PLACE2            11261 //ファンクションキー表示位置（下）
00509 #define HIDC_EDIT_FUNCKEYWND_GROUPNUM           11262 //ファンクションキーのグループボタン数
00510 #define HIDC_BUTTON_WINSIZE                     11263 //位置と大きさの設定
00511 #define HIDC_CHECK_SameTabWidth                 11270 //等幅    // 2006.08.06 ryoji
00512 #define HIDC_CHECK_DispTabIcon                  11271 //アイコン表示    // 2006.08.06 ryoji
00513 #define HIDC_CHECK_SortTabList                  11272 //タブ一覧ソート  // 2006.08.06 ryoji
00514 #define HIDC_CHECK_RetainEmptyWindow            11273 //最後のファイルを閉じたとき(無題)文書を残す  // 2007.02.13 ryoji
00515 #define HIDC_CHECK_CloseOneWin                  11274 //ウィンドウの閉じるボタンは現在のファイルのみ閉じる  // 2007.02.13 ryoji
00516 #define HIDC_CHECK_ChgWndByWheel                11275 //マウスホイールでタブ切替    // 2007.04.03 ryoji
00517 #define HIDC_CHECK_WORDWRAP                     11310 //英文ワードラップ
00518 #define HIDC_CHECK_INS_SPACE                    11311 //スペースの挿入
00519 #define HIDC_CHECK_KINSOKUHEAD                  11312 //行頭禁則    //@@@ 2002.04.08 MIK
00520 #define HIDC_CHECK_KINSOKUTAIL                  11313 //行頭禁則    //@@@ 2002.04.08 MIK
00521 #define HIDC_CHECK_KINSOKURET                   11314 //改行文字をぶら下げる    //@@@ 2002.04.14 MIK
00522 #define HIDC_CHECK_KINSOKUKUTO                  11315 //句読点をぶら下げる  //@@@ 2002.04.17 MIK
00523 #define HIDC_EDIT_TABSPACE                      11330 //TAB幅
00524 #define HIDC_COMBO_IMESWITCH                    11331 //IMEのON/OFF状態
00525 #define HIDC_COMBO_IMESTATE                     11332 //IMEの入力モード
00526 #define HIDC_COMBO_SMARTINDENT                  11333 //スマートインデント
00527 #define HIDC_COMBO_OUTLINES                     11334 //アウトライン解析方法
00528 #define HIDC_EDIT_TYPENAME                      11340 //設定の名前
00529 #define HIDC_EDIT_TYPEEXTS                      11341 //ファイル拡張子
00530 #define HIDC_EDIT_MAXLINELEN                    11342 //折り返し桁数
00531 #define HIDC_EDIT_CHARSPACE                     11343 //文字の隙間
00532 #define HIDC_EDIT_LINESPACE                     11344 //行間の隙間
00533 #define HIDC_EDIT_INDENTCHARS                   11345 //その他のインデント対象文字
00534 #define HIDC_EDIT_TABVIEWSTRING                 11346 //TAB表示文字列
00535 #define HIDC_EDIT_KINSOKUHEAD                   11347 //行頭禁則    //@@@ 2002.04.08 MIK
00536 #define HIDC_EDIT_KINSOKUTAIL                   11348 //行頭禁則    //@@@ 2002.04.08 MIK
00537 #define HIDC_CHECK_TAB_ARROW                    11350 //矢印表示    // 2006.08.06 ryoji
00538 #define HIDC_COMBO_INDENTLAYOUT                 11351 //折り返し行インデント    // 2006.08.06 ryoji
00539 #define HIDC_CHECK_RTRIM_PREVLINE               11352 //改行時に末尾の空白を削除    // 2006.08.06 ryoji
00540 #define HIDC_RADIO_OUTLINEDEFAULT               11353 //標準ルール  // 2006.08.06 ryoji
00541 #define HIDC_RADIO_OUTLINERULEFILE              11354 //ルールファイル  // 2006.08.06 ryoji
00542 #define HIDC_EDIT_OUTLINERULEFILE               11355 //ルールファイル名    // 2006.08.06 ryoji
00543 #define HIDC_BUTTON_RULEFILE_REF                11356 //ルールファイル参照  // 2006/09/09 novice
00544 #define HIDC_CHECK_DOCICON                      11357 //文書アイコンを使う  // 2006.08.06 ryoji
00545 #define HIDC_BUTTON_TEXTCOLOR                   11400 //文字色
00546 #define HIDC_BUTTON_BACKCOLOR                   11401 //背景色
00547 #define HIDC_BUTTON_SAMETEXTCOLOR               11402 //文字色統一
00548 #define HIDC_BUTTON_SAMEBKCOLOR                 11403 //背景色統一
00549 #define HIDC_BUTTON_IMPORT_COLOR                11404 //インポート
00550 #define HIDC_BUTTON_EXPORT_COLOR                11405 //エクスポート
00551 #define HIDC_CHECK_DISP                         11410 //色分け表示
00552 #define HIDC_CHECK_FAT                          11411 //太字
00553 #define HIDC_CHECK_UNDERLINE                    11412 //下線
00554 #define HIDC_CHECK_LCPOS                        11413 //桁指定１
00555 #define HIDC_CHECK_LCPOS2                       11414 //桁指定２
00556 #define HIDC_COMBO_SET_COLOR                    11430 //強調キーワード１セット名
00557 #define HIDC_COMBO_SET2_COLOR                   11431 //強調キーワード２セット名
00558 #define HIDC_EDIT_BLOCKCOMMENT_FROM             11440 //ブロックコメント１開始
00559 #define HIDC_EDIT_BLOCKCOMMENT_TO               11441 //ブロックコメント１終了
00560 #define HIDC_EDIT_LINECOMMENT                   11442 //行コメント１
00561 #define HIDC_EDIT_LINECOMMENT2                  11443 //行コメント２
00562 #define HIDC_EDIT_LINECOMMENTPOS                11444 //桁数１
00563 #define HIDC_EDIT_LINECOMMENTPOS2               11445 //桁数２
00564 #define HIDC_EDIT_LINETERMCHAR                  11446 //行番号区切り
00565 #define HIDC_EDIT_BLOCKCOMMENT_FROM2            11447 //ブロックコメント２開始
00566 #define HIDC_EDIT_BLOCKCOMMENT_TO2              11448 //ブロックコメント２終了
00567 #define HIDC_EDIT_LINECOMMENT3                  11449 //行コメント３
00568 #define HIDC_LIST_COLORS                        11450 //色指定
00569 #define HIDC_CHECK_LCPOS3                       11451 //桁指定３
00570 #define HIDC_EDIT_LINECOMMENTPOS3               11452 //桁数３
00571 #define HIDC_RADIO_ESCAPETYPE_1                 11460 //文字列エスケープ（C言語風）
00572 #define HIDC_RADIO_ESCAPETYPE_2                 11461 //文字列エスケープ（PL/SQL風）
00573 #define HIDC_RADIO_LINENUM_LAYOUT               11462 //行番号の表示（折り返し単位）
00574 #define HIDC_RADIO_LINENUM_CRLF                 11463 //行番号の表示（改行単位）
00575 #define HIDC_RADIO_LINETERMTYPE0                11464 //行番号区切り（なし）
00576 #define HIDC_RADIO_LINETERMTYPE1                11465 //行番号区切り（縦線）
00577 #define HIDC_RADIO_LINETERMTYPE2                11466 //行番号区切り（任意）
00578 #define HIDC_BUTTON_KEYWORD_SELECT              11467 //強調キーワード2～10 // 2006.08.06 ryoji
00579 #define HIDC_EDIT_VERTLINE                      11468 //縦線の桁指定    // 2006.08.06 ryoji
00580 #define HIDC_BUTTON_HOKANFILE_REF               11500 //入力補完 単語ファイル参照       //Jul. 05, 2001 JEPRO 共通から移動・変更
00581 #define HIDC_CHECK_HOKANLOHICASE                11510 //入力補完の英大文字小文字        //Jul. 05, 2001 JEPRO 共通から移動・変更
00582 #define HIDC_CHECK_HOKANBYFILE                  11512 //現在のファイルから入力補完      // 2003.06.25 Moca
00583 #define HIDC_EDIT_HOKANFILE                     11540 //単語ファイル名                  //Jul. 05, 2001 JEPRO 共通から移動・変更
00584 #define HIDC_EDIT_KEYWORDHELPFILE               11541 //辞書ファイル名                  //Jul. 05, 2001 JEPRO 共通から移動・変更
00585 #define HIDC_EDIT_TYPEEXTHELP                   11542 //外部ヘルプファイル名    // 2006.08.06 ryoji
00586 #define HIDC_BUTTON_TYPEOPENHELP                11543 //外部ヘルプファイル参照  // 2006.08.06 ryoji
00587 #define HIDC_EDIT_TYPEEXTHTMLHELP               11544 //外部HTMLヘルプファイル名    // 2006.08.06 ryoji
00588 #define HIDC_BUTTON_TYPEOPENEXTHTMLHELP         11545 //外部HTMLヘルプファイル参照  // 2006.08.06 ryoji
00589 #define HIDC_CHECK_TYPEHTMLHELPISSINGLE         11546 //ビューアを複数起動しない    // 2006.08.06 ryoji
00590 #define HIDC_BUTTON_REGEX_IMPORT    11600   //インポート    //@@@ 2001.11.17 add MIK
00591 #define HIDC_BUTTON_REGEX_EXPORT    11601   //エクスポート  //@@@ 2001.11.17 add MIK
00592 #define HIDC_BUTTON_REGEX_INS       11602   //挿入          //@@@ 2001.11.17 add MIK
00593 #define HIDC_BUTTON_REGEX_ADD       11603   //追加          //@@@ 2001.11.17 add MIK
00594 #define HIDC_BUTTON_REGEX_UPD       11604   //更新          //@@@ 2001.11.17 add MIK
00595 #define HIDC_BUTTON_REGEX_DEL       11605   //削除          //@@@ 2001.11.17 add MIK
00596 #define HIDC_BUTTON_REGEX_TOP       11606   //先頭          //@@@ 2001.11.17 add MIK
00597 #define HIDC_BUTTON_REGEX_LAST      11607   //最終          //@@@ 2001.11.17 add MIK
00598 #define HIDC_BUTTON_REGEX_UP        11608   //上へ          //@@@ 2001.11.17 add MIK
00599 #define HIDC_BUTTON_REGEX_DOWN      11609   //下へ          //@@@ 2001.11.17 add MIK
00600 #define HIDC_CHECK_REGEX            11610   //正規表現キーワードを使用する  //@@@ 2001.11.17 add MIK
00601 #define HIDC_COMBO_REGEX_COLOR      11630   //色            //@@@ 2001.11.17 add MIK
00602 #define HIDC_EDIT_REGEX             11640   //正規表現キーワード    //@@@ 2001.11.17 add MIK
00603 #define HIDC_LIST_REGEX             11650   //リスト        //@@@ 2001.11.17 add MIK
00604 #define HIDC_LABEL_REGEX_VERSION    11670   //正規表現キーワードライブラリバージョン    //@@@ 2002.01.03
00605 #define HIDC_MACRODIRREF            11700   //マクロディレクトリ参照
00606 #define HIDC_MACRO_REG              11701   //マクロ設定
00607 #define HIDC_COMBO_MACROID          11730   //ID
00608 #define HIDC_MACROPATH              11731   //File
00609 #define HIDC_MACRONAME              11740   //マクロ名
00610 #define HIDC_MACROLIST              11741   //マクロリスト
00611 #define HIDC_MACRODIR               11750   //マクロ一覧
00612 #define HIDC_CHECK_RELOADWHENEXECUTE    11751   //マクロを実行するたびにファイルを読み込みなおす    // 2006.08.06 ryoji
00613
00614 //検索ダイアログ
00615 #define HIDC_FIND_BUTTON_SEARCHNEXT         11800   //次を検索
00616 #define HIDC_FIND_BUTTON_SEARCHPREV         11801   //前を検索
00617 #define HIDCANCEL_FIND                      11802   //キャンセル
00618 #define HIDC_FIND_BUTTON_HELP               11803   //ヘルプ
00619 #define HIDC_FIND_CHK_WORD                  11804   //単語単位
00620 #define HIDC_FIND_CHK_LOHICASE              11805   //大文字小文字
00621 #define HIDC_FIND_CHK_REGULAREXP            11806   //正規表現
00622 #define HIDC_FIND_CHECK_NOTIFYNOTFOUND      11807   //見つからないときに通知
00623 #define HIDC_FIND_CHECK_bAutoCloseDlgFind   11808   //自動的に閉じる
00624 #define HIDC_FIND_COMBO_TEXT                11809   //検索文字列
00625 #define HIDC_FIND_STATIC_JRE32VER           11810   //正規表現バージョン
00626 #define HIDC_FIND_BUTTON_SETMARK            11811   //検索該当行をマーク
00627 #define HIDC_FIND_CHECK_SEARCHALL           11812   //先頭（末尾）から再検索
00628
00629 //置換ダイアログ
00630 #define HIDC_REP_BUTTON_SEARCHNEXT      11900   //下検索
00631 #define HIDC_REP_BUTTON_SEARCHPREV      11901   //上検索
00632 #define HIDC_REP_BUTTON_REPALCE         11902   //置換
00633 #define HIDC_REP_BUTTON_REPALCEALL      11903   //全置換
00634 #define HIDCANCEL_REP                   11904   //キャンセル
00635 #define HIDC_REP_BUTTON_HELP            11905   //ヘルプ
00636 #define HIDC_REP_CHK_PASTE              11906   //クリップボードから貼り付け
00637 #define HIDC_REP_CHK_WORD               11907   //単語単位
00638 #define HIDC_REP_CHK_LOHICASE           11908   //大文字小文字
00639 #define HIDC_REP_CHK_REGULAREXP         11909   //正規表現
00640 #define HIDC_REP_CHECK_NOTIFYNOTFOUND   11910   //見つからないときに通知
00641 #define HIDC_REP_CHECK_bAutoCloseDlgReplace 11911   //自動的に閉じる
00642 #define HIDC_REP_COMBO_TEXT             11912   //置換前
00643 #define HIDC_REP_COMBO_TEXT2            11913   //置換後
00644 #define HIDC_REP_RADIO_REPLACE          11914   //置換対象：置換
00645 #define HIDC_REP_RADIO_INSERT           11915   //置換対象：挿入
00646 #define HIDC_REP_RADIO_ADD              11916   //置換対象：追加
00647 #define HIDC_REP_RADIO_SELECTEDAREA     11917   //範囲：全体
00648 #define HIDC_REP_RADIO_ALLAREA          11918   //範囲：選択範囲
00649 #define HIDC_REP_STATIC_JRE32VER        11919   //正規表現バージョン
00650 #define HIDC_REP_BUTTON_SETMARK         11920   //検索該当行をマーク
00651 #define HIDC_REP_CHECK_SEARCHALL        11921   //先頭（末尾）から再検索
00652 #define HIDC_REP_CHECK_CONSECUTIVEALL   11922   //「すべて置換」は置換の繰返し  // 2007.01.16 ryoji
00653
00654 //GREP
00655 #define HIDC_GREP_BUTTON_FOLDER         12000   //フォルダ
00656 #define HIDC_GREP_BUTTON_CURRENTFOLDER  12001   //現フォルダ
00657 #define HIDOK_GREP                      12002   //検索
00658 #define HIDCANCEL_GREP                  12003   //キャンセル
00659 #define HIDC_GREP_BUTTON_HELP           12004   //ヘルプ
00660 #define HIDC_GREP_CHK_WORD              12005   //単語単位
00661 #define HIDC_GREP_CHK_SUBFOLDER         12006   //サブフォルダも検索
00662 #define HIDC_GREP_CHK_FROMTHISTEXT      12007   //このファイルから
00663 #define HIDC_GREP_CHK_LOHICASE          12008   //大文字小文字
00664 #define HIDC_GREP_CHK_REGULAREXP        12009   //正規表現
00665 // #define HIDC_GREP_CHK_KANJICODEAUTODETECT    12010   //文字コードセット自動判別
00666 #define HIDC_GREP_COMBO_CHARSET         12010   //文字コードセット
00667 #define HIDC_GREP_COMBO_TEXT            12011   //条件
00668 #define HIDC_GREP_COMBO_FILE            12012   //ファイル
00669 #define HIDC_GREP_COMBO_FOLDER          12013   //フォルダ
00670 #define HIDC_GREP_RADIO_OUTPUTLINE      12014   //結果出力：行単位
00671 #define HIDC_GREP_RADIO_OUTPUTMARKED    12015   //結果出力：該当部分
00672 #define HIDC_GREP_RADIO_OUTPUTSTYLE1    12016   //結果出力形式：ノーマル
00673 #define HIDC_GREP_RADIO_OUTPUTSTYLE2    12017   //結果出力形式：ファイル毎
00674 #define HIDC_GREP_STATIC_JRE32VER       12018   //正規表現バージョン
00675 #define HIDC_GREP_CHK_DEFAULTFOLDER     12019   //フォルダの初期値をカレントフォルダにする
00676
00677 //外部コマンド
00678 #define HIDC_EXEC_BUTTON_REFERENCE  12100   //参照
00679 #define HIDOK_EXEC                  12101   //実行
00680 #define HIDCANCEL_EXEC              12102   //キャンセル
00681 #define HIDC_EXEC_BUTTON_HELP       12103   //ヘルプ
00682 #define HIDC_EXEC_CHECK_GETSTDOUT   12104   //標準出力を得る
00683 #define HIDC_EXEC_COMBO_m_szCommand 12105   //コマンド
00684 #define HIDC_RADIO_OUTPUT           12106   //標準出力リダイレクト先：アウトプットウィンドウ
00685 #define HIDC_RADIO_EDITWINDOW       12107   //標準出力リダイレクト先：編集中のウィンドウ
00686 #define HIDC_CHECK_SENDSTDIN        12108   //標準入力に送る
00687
00688 //アウトライン解析
00689 #define HIDC_FL_BUTTON_COPY     12200   //コピー
00690 #define HIDOK_FL                12201   //ジャンプ
00691 #define HIDCANCEL_FL            12202   //キャンセル
00692 #define HIDC_FL_BUTTON_HELP     12203   //ヘルプ
00693 #define HIDC_FL_CHECK_bAutoCloseDlgFuncList 12204   //自動的に閉じる
00694 #define HIDC_FL_LIST1           12205   //トピックリスト
00695 #define HIDC_FL_TREE1           12206   //トピックツリー
00696 #define HIDC_FL_CHECK_bFunclistSetFocusOnJump   12207   //ジャンプでフォーカス移動する
00697 #define HIDC_FL_CHECK_bMarkUpBlankLineEnable    12208   //空行を無視する
00698 #define HIDC_COMBO_nSortType    12209   //順序
00699 #define HIDC_FL_BUTTON_WINSIZE  12210   //ウィンドウ位置保存    // 2006.08.06 ryoji
00700
00701 //ファイル内容比較
00702 #define HIDC_CMP_BUTTON1        12300   //上下に表示
00703 #define HIDOK2_CMP              12301   //左右に表示
00704 #define HIDOK_CMP               12302   //OK
00705 #define HIDCANCEL_CMP           12303   //キャンセル
00706 #define HIDC_CMP_BUTTON_HELP    12304   //ヘルプ
00707 #define HIDC_CMP_CHECK_TILE_H   12305   //左右に表示
00708 #define HIDC_CMP_LIST_FILES     12306   //ファイル一覧
00709 #define HIDC_CMP_STATIC_COMPARESRC  12307   //ソースファイル
00710
00711 //印刷
00712 #define HIDOK_PP            12400   //OK
00713 #define HIDCANCEL_PP        12401   //キャンセル
00714 #define HIDC_PP_EDIT_FROM   12402   //ページから
00715 #define HIDC_PP_EDIT_TO     12403   //ページまで
00716 #define HIDC_PP_RADIO_ALL   12404   //すべて
00717 #define HIDC_PP_RADIO_FROMTO    12405   //指定
00718
00719 //印刷設定
00720 #define HIDC_PS_BUTTON_EDITSETTINGNAME  12500   //設定名変更
00721 #define HIDOK_PS                12501   //OK
00722 #define HIDCANCEL_PS            12502   //キャンセル
00723 #define HIDC_PS_BUTTON_HELP     12503   //ヘルプ
00724 #define HIDC_PS_CHECK_WORDWRAP  12504   //ワードラップ
00725 #define HIDC_PS_CHECK_LINENUMBER    12505   //行番号
00726 #define HIDC_PS_COMBO_FONT_HAN  12506   //半角フォント
00727 #define HIDC_PS_COMBO_FONT_ZEN  12507   //全角フォント
00728 #define HIDC_PS_COMBO_SETTINGNAME   12508   //ページ設定
00729 #define HIDC_PS_COMBO_PAPER     12509   //用紙サイズ
00730 #define HIDC_PS_COMBO_PAPERORIENT   12510   //用紙向き
00731 #define HIDC_PS_EDIT_FONTWIDTH  12511   //フォント幅
00732 #define HIDC_PS_EDIT_LINESPACE  12512   //行送り
00733 #define HIDC_PS_EDIT_DANSUU     12513   //段数
00734 #define HIDC_PS_EDIT_DANSPACE   12514   //段の隙間
00735 #define HIDC_PS_EDIT_MARGINTY   12515   //余白上
00736 #define HIDC_PS_EDIT_MARGINBY   12516   //余白下
00737 #define HIDC_PS_EDIT_MARGINLX   12517   //余白左
00738 #define HIDC_PS_EDIT_MARGINRX   12518   //余白右
00739 #define HIDC_PS_CHECK_KINSOKUHEAD   12519   //行頭禁則  //@@@ 2002.04.09 MIK
00740 #define HIDC_PS_CHECK_KINSOKUTAIL   12520   //行末禁則  //@@@ 2002.04.09 MIK
00741 #define HIDC_PS_CHECK_KINSOKURET    12521   //改行文字をぶら下げる  //@@@ 2002.04.14 MIK
00742 #define HIDC_PS_CHECK_KINSOKUKUTO   12522   //句読点をぶら下げる    //@@@ 2002.04.17 MIK
00743 #define HIDC_PS_EDIT_HEAD1      12523   //ヘッダー(左寄せ)      // 2006.10.11 ryoji
00744 #define HIDC_PS_EDIT_HEAD2      12524   //ヘッダー(中央寄せ)    // 2006.10.11 ryoji
00745 #define HIDC_PS_EDIT_HEAD3      12525   //ヘッダー(右寄せ)      // 2006.10.11 ryoji
00746 #define HIDC_PS_EDIT_FOOT1      12526   //フッター(左寄せ)      // 2006.10.11 ryoji
00747 #define HIDC_PS_EDIT_FOOT2      12527   //フッター(中央寄せ)    // 2006.10.11 ryoji
00748 #define HIDC_PS_EDIT_FOOT3      12528   //フッター(右寄せ)      // 2006.10.11 ryoji
00749
00750 //プロパティ
00751 #define HIDOK_PROP              12600   //
00752 #define HIDCANCEL_PROP          12601   //
00753 #define HIDC_PROP_BUTTON_HELP   12602   //
00754 #define HIDC_PROP_EDIT1         12603   //
00755
00756 //タイプ別設定一覧
00757 #define HIDC_TL_BUTTON_TEMPCHANGE   12700   //一時適用
00758 #define HIDOK_TL                12701   //設定
00759 #define HIDCANCEL_TL            12702   //キャンセル
00760 #define HIDC_TL_BUTTON_HELP     12703   //ヘルプ
00761 #define HIDC_TL_LIST_TYPES      12704   //リスト
00762
00763 //ジャンプ
00764 #define HIDC_JUMP_BUTTON_JUMP       12800   //ジャンプ
00765 #define HIDCANCEL_JUMP              12801   //キャンセル
00766 #define HIDC_JUMP_BUTTON_HELP       12802   //ヘルプ
00767 #define HIDC_JUMP_CHECK_PLSQL       12803   //PL/SQL
00768 #define HIDC_JUMP_COMBO_PLSQLBLOCKS 12804   //
00769 #define HIDC_JUMP_EDIT_LINENUM      12805   //行番号
00770 #define HIDC_JUMP_EDIT_PLSQL_E1     12806   //
00771 #define HIDC_JUMP_RADIO_LINENUM_LAYOUT  12807   //折り返し単位
00772 #define HIDC_JUMP_RADIO_LINENUM_CRLF    12808   //改行単位
00773
00774 //バージョン情報
00775 #define HIDC_ABOUT_BUTTON_CONTACT   12900   //
00776 #define HIDOK_ABOUT                 12901   //
00777 #define HIDC_ABOUT_EDIT_ABOUT       12902   //
00778
00779 //入力
00780 #define HIDOK_DLG1  13000       //
00781 #define HIDCANCEL_DLG1  13001   //
00782 #define HIDC_DLG1_EDIT1 13002   //入力フィールド
00783 //13070 //メッセージ
00784
00785 //オープンファイル
00786 #define HIDOK_OPENDLG   13100
00787 #define HIDCANCEL_OPENDLG   13101
00788 #define HIDC_OPENDLG_BUTTON_HELP 13102  //ヘルプ    //@@@ 2002.01.10
00789 #define HIDC_OPENDLG_COMBO_CODE 13103   //文字コードセット
00790 #define HIDC_OPENDLG_COMBO_MRU  13104   //最近のファイル
00791 #define HIDC_OPENDLG_COMBO_OPENFOLDER   13105   //最近のフォルダ
00792 #define HIDC_OPENDLG_COMBO_EOL  13106   //改行コード
00793 #define HIDC_OPENDLG_CHECK_BOM  13107   //BOM   // 2006.08.06 ryoji
00794
00795 //DIFF差分表示
00796 #define HIDC_BUTTON_DIFF_DST        13200   // 相手ファイル参照
00797 #define HIDC_CHECK_DIFF_OPT_BLINE   13201   // 空白行無視
00798 #define HIDC_CHECK_DIFF_OPT_CASE    13202   // 大文字小文字同一視
00799 #define HIDC_CHECK_DIFF_OPT_SPACE   13203   // 空白無視
00800 #define HIDC_CHECK_DIFF_OPT_SPCCHG  13204   // 空白変更無視
00801 #define HIDC_CHECK_DIFF_OPT_TABSPC  13205   // TAB空白変換
00802 #define HIDC_EDIT_DIFF_DST          13206   // 相手作ファイル
00803 #define HIDC_RADIO_DIFF_FILE1       13207   // 編集中ファイルを新
00804 #define HIDC_RADIO_DIFF_FILE2       13208   // 編集中ファイルを旧
00805 #define HIDC_RADIO_DIFF_DST1        13209   // 外部ファイルを指定
00806 #define HIDC_RADIO_DIFF_DST2        13210   // 他の編集中ファイル
00807 #define HIDC_LIST_DIFF_FILES        13211   // 他の編集中ファイル
00808 #define HIDC_STATIC_DIFF_SRC        13212   // 自ファイル
00809 #define HIDC_DIFF_IDOK              13213   //OK
00810 #define HIDC_DIFF_IDCANCEL          13214   //キャンセル
00811 #define HIDC_BUTTON_DIFF_HELP       13215   //ヘルプ
00812 #define HIDC_CHECK_DIFF_EXEC_STATE  13216   //DIFF差分がないときにメッセージ表示
00813 #define HIDC_CHECK_DIFF_NOTIFYNOTFOUND  13217   // 見つからないときにメッセージを表示   // 2006.10.10 ryoji
00814 #define HIDC_CHECK_DIFF_SEARCHALL       13218   // 先頭（末尾）から再検索する   // 2006.10.10 ryoji//コントロールコード
00815
00816 //コントロールコード
00817 #define HIDC_LIST_CTRLCODE          13300
00818 #define HIDC_CTRLCODE_IDOK          13301   //OK
00819 #define HIDC_CTRLCODE_IDCANCEL      13302   //キャンセル
00820 #define HIDC_BUTTON_CTRLCODE_HELP   13303   //ヘルプ
00821
00822 //共通設定『ファイル名表示』タブ
00823 #define HIDC_LIST_FNAME             13400   // ファイル名置換リスト
00824 #define HIDC_EDIT_FNAME_FROM        13401   // 置換前
00825 #define HIDC_EDIT_FNAME_TO          13402   // 置換後
00826 #define HIDC_BUTTON_FNAME_INS       13403   // 挿入
00827 #define HIDC_BUTTON_FNAME_ADD       13404   // 追加
00828 #define HIDC_BUTTON_FNAME_UPD       13405   // 更新
00829 #define HIDC_BUTTON_FNAME_DEL       13406   // 削除
00830 #define HIDC_BUTTON_FNAME_TOP       13407   // 先頭
00831 #define HIDC_BUTTON_FNAME_UP        13408   // 上へ
00832 #define HIDC_BUTTON_FNAME_DOWN      13409   // 下へ
00833 #define HIDC_BUTTON_FNAME_LAST      13410   // 最終
00834 //#define HIDC_CHECK_FNAME, 13411   // ファイル名を簡易表示する
00835
00836 //履歴の管理    //@@@ 2003.04.08 MIK
00837 //#define   HIDC_FAVORITE_DIALOG        13500   //ダイアログ用
00838 #define HIDC_FAVORITE_IDOK          13501
00839 #define HIDC_FAVORITE_IDCANCEL      13502
00840 #define HIDC_BUTTON_FAVORITE_HELP   13503
00841 #define HIDC_TAB_FAVORITE           13510
00842 #define HIDC_LIST_FAVORITE_FILE     13511
00843 #define HIDC_LIST_FAVORITE_FOLDER   13512
00844 #define HIDC_LIST_FAVORITE_SEARCH   13513
00845 #define HIDC_LIST_FAVORITE_REPLACE  13514
00846 #define HIDC_LIST_FAVORITE_GREPFILE 13515
00847 #define HIDC_LIST_FAVORITE_GREPFOLDER   13516
00848 #define HIDC_LIST_FAVORITE_CMD      13517
00849 #define HIDC_BUTTON_FAVORITE_CLEAR  13518   //履歴のクリア  // 2006.10.10 ryoji
00850
00851 //タグジャンプリスト
00852 #define HIDC_LIST_TAGJUMPLIST       13600
00853 #define HIDC_TAGJUMPLIST_IDOK       13601
00854 #define HIDC_TAGJUMPLIST_IDCANCEL   13602
00855 #define HIDC_BUTTON_TAGJUMPLIST_HELP    13603
00856 #define HDIC_TAGJUMPLIST_KEYWORD    13604
00857
00858 //タグファイル作成
00859 #define HIDC_EDIT_TAG_MAKE_FOLDER   13701
00860 #define HIDC_BUTTON_TAG_MAKE_REF    13702
00861 #define HIDC_CHECK_TAG_MAKE_RECURSE 13703
00862 #define HIDC_EDIT_TAG_MAKE_CMDLINE  13704
00863 #define HIDC_TAG_MAKE_IDOK          13705
00864 #define HIDC_TAG_MAKE_IDCANCEL      13706
00865 #define HIDC_BUTTON_TAG_MAKE_HELP   13707
00866
00867 //ウィンドウの位置と大きさ  2004.05.13 Moca
00868 #define HIDC_EDIT_WX            13801
00869 #define HIDC_EDIT_WY            13802
00870 #define HIDC_EDIT_SX            13803
00871 #define HIDC_EDIT_SY            13804
00872 #define HIDC_CHECK_WINPOS       13805
00873 #define HIDC_RADIO_WINSIZE_DEF  13806
00874 #define HIDC_RADIO_WINSIZE_SAVE 13807
00875 #define HIDC_RADIO_WINSIZE_SET  13808
00876 #define HIDC_RADIO_WINPOS_DEF   13809
00877 #define HIDC_RADIO_WINPOS_SAVE  13810
00878 #define HIDC_RADIO_WINPOS_SET   13811
00879 #define HIDC_COMBO_WINTYPE      13812
00880 #define HIDOK_WINSIZE               13813   // 2006.10.10 ryoji
00881 #define HIDC_BUTTON_WINSIZE_HELP    13814   // 2006.10.10 ryoji
00882
00883 //タイプ別設定「キーワードヘルプ」タブ  // 2006.10.10 ryoji
00884 #define HIDC_CHECK_KEYHELP              13900       //キーワードヘルプ機能を使う
00885 #define HIDC_LIST_KEYHELP               13901       //辞書ファイル一覧(&L)
00886 #define HIDC_BUTTON_KEYHELP_UPD         13902       //更新(&E)
00887 #define HIDC_EDIT_KEYHELP               13903       //辞書ファイル
00888 #define HIDC_BUTTON_KEYHELP_REF         13904       //参照(&O)...
00889 #define HIDC_BUTTON_KEYHELP_TOP         13905       //先頭(&T)
00890 #define HIDC_BUTTON_KEYHELP_UP          13906       //上へ(&U)
00891 #define HIDC_BUTTON_KEYHELP_DOWN        13907       //下へ(&G)
00892 #define HIDC_BUTTON_KEYHELP_LAST        13908       //最終(&B)
00893 #define HIDC_BUTTON_KEYHELP_INS         13909       //挿入(&S)
00894 #define HIDC_BUTTON_KEYHELP_DEL         13910       //削除(&D)
00895 #define HIDC_CHECK_KEYHELP_ALLSEARCH    13911       //全辞書検索する(&A)
00896 #define HIDC_CHECK_KEYHELP_KEYDISP      13912       //キーワードも表示する(&W)
00897 #define HIDC_CHECK_KEYHELP_PREFIX       13913       //前方一致検索(&P)
00898 #define HIDC_BUTTON_KEYHELP_IMPORT      13914       //インポート
00899 #define HIDC_BUTTON_KEYHELP_EXPORT      13915       //エクスポート
00900
00901 //文字色／背景色設定ダイアログ  // 2006.10.10 ryoji
00902 #define HIDOK_SAMECOLOR                 14000       // OK
00903 #define HIDCANCEL_SAMECOLOR             14001       // キャンセル
00904 #define HIDC_BUTTON_SAMECOLOR_HELP      14002       // ヘルプ
00905 #define HIDC_LIST_SAMECOLOR_COLORS      14003       // 変更対象の色
00906 #define HIDC_BUTTON_SAMECOLOR_SELALL    14004       // 全チェック
00907 #define HIDC_BUTTON_SAMECOLOR_SELNOTING 14005       // 全解除
00908 #define HIDC_LIST_SAMECOLOR_ITEMINFO    14006       // 選択中の色に対応する項目のリスト
00909 #define HIDC_STATIC_COLOR               14007       // 統一色
00910
00911 //強調キーワードの設定ダイアログ    // 2006.10.10 ryoji
00912 #define HIDOK_KEYWORD_SELECT            14100       // OK
00913 #define HIDCANCEL_KEYWORD_SELECT        14101       // キャンセル
00914 #define HIDC_COMBO_KEYWORD_SELECT       14102       // 強調キーワード1～10
00915
00916
00917 #define HIDC_STATIC                             19999 //不明
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: sakura_rc.h

sakura_rc.h

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | IDOK2 3
#define | IDC_BUTTON_PRINTERSELECT 3
#define | IDR_MENU1 102
#define | IDD_PROP1P1 107
#define | IDD_FIND 109
#define | IDD_PROP_FILE 110
#define | IDR_TRAYMENU_L 113
#define | IDD_ABOUT 115
#define | IDD_JUMP 118
#define | IDD_FUNCLIST 122
#define | IDD_GREP 132
#define | IDD_GREPRUNNING 134
#define | IDD_REPLACE 137
#define | IDD_TYPELIST 147
#define | IDD_PROPERTY_FILE 152
#define | IDD_PROP_KEYWORD 153
#define | IDD_INPUT1 154
#define | IDD_REPLACERUNNING 160
#define | IDD_COMPARE 168
#define | IDD_PRINTPREVIEWBAR 170
#define | IDD_PRINTSETTING 174
#define | IDD_EXITING 175
#define | IDD_DEBUG 177
#define | IDD_EXEC 182
#define | IDD_HOKAN 186
#define | IDD_EXECCMD_TEST 188
#define | IDD_EXECRUNNING 191
#define | IDD_PRINTING 192
#define | IDD_PRINTPAGE 193
#define | IDB_MYTOOL 200
#define | IDB_OPENED 201
#define | IDB_OPENED_THIS 202
#define | IDB_PRINTER 203
#define | IDD_PROP_MACRO 217
#define | IDD_PROP_REGEX 219
#define | IDC_CURSOR_COPYARROW 220
#define | IDC_CURSOR_HAND 221
#define | IDC_CURSOR_MOVEARROW 222
#define | IDC_CURSOR_RVARROW 223
#define | IDD_FILEUPDATEQUERY 225
#define | IDD_PROP_FNAME 226
#define | IDD_FAVORITE 227
#define | IDD_TAGJUMPLIST 228
#define | IDD_TAG_MAKE 229
#define | IDI_ICON_STD 230
#define | IDI_ICON_DEBUG 231
#define | IDI_ICON_GREP 240
#define | IDC_CURSOR_ISEARCH_F 241
#define | IDC_CURSOR_ISEARCH_B 242
#define | IDD_DIALOG_KEYWORD_SELECT 243
#define | IDD_SAMECOLOR 244
#define | IDC_CURSOR_TAB_LEFT 245
#define | IDC_CURSOR_TAB_RIGHT 246
#define | IDC_CURSOR_TAB_SEPARATE 247
#define | IDC_CURSOR_TAB_JOIN 248
#define | IDC_HIDE 1000
#define | IDC_CHK_LOHICASE 1006
#define | IDC_CHECK_INDENT 1009
#define | IDC_CHK_REGULAREXP 1010
#define | IDC_COMBO_INDENTLAYOUT 1010
#define | IDC_CHECK_INDENT_WSPACE 1011
#define | IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD 1012
#define | IDC_CHECK_GTJW_RETURN 1013
#define | IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH 1013
#define | IDC_CHECK_RTRIM_PREVLINE 1013
#define | IDC_CHECK_FREECARET 1014
#define | IDC_BUTTON1 1015
#define | IDC_BUTTON_CLEAR_MRU_FOLDER 1016
#define | IDC_BUTTON_RELEASE 1016
#define | IDC_COMBO_TEXT 1021
#define | IDC_COMBO_TEXT2 1022
#define | IDC_CHECK_GTJW_LDBLCLK 1023
#define | IDC_EDIT_MAXLINELEN 1029
#define | IDC_EDIT_CHARSPACE 1031
#define | IDC_SPIN_MAXLINELEN 1034
#define | IDC_SPIN_CHARSPACE 1035
#define | IDC_EDIT_LINESPACE 1037
#define | IDC_SPIN_LINESPACE 1038
#define | IDC_SPIN_REPEATEDSCROLLLINENUM 1039
#define | IDC_EDIT_TABVIEWSTRING 1039
#define | IDC_SPIN_TABSPACE 1040
#define | IDC_EDIT_TABSPACE 1050
#define | IDC_BUTTON_TEXTCOLOR 1056
#define | IDC_BUTTON_BACKCOLOR 1060
#define | IDC_STATIC_JRE32VER 1065
#define | IDC_CHECK_EXCVLUSIVE_NO 1069
#define | IDC_CHECK_EXCVLUSIVE_READWRITE 1070
#define | IDC_CHECK_EXCVLUSIVE_WRITE 1071
#define | IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE 1072
#define | IDC_EDIT_LINENUM 1074
#define | IDC_CHECK_BACKUP 1076
#define | IDC_CHECK_EXITCONFIRM 1076
#define | IDC_CHECK_PLSQL 1076
#define | IDC_CHECK_SHIFT 1076
#define | IDC_CHK_FROMTHISTEXT 1076
#define | IDC_CHECK_TOOLBARISFLAT 1076
#define | IDC_CHECK_RELOADWHENEXECUTE 1076
#define | IDC_CHECK_DOCICON 1076
#define | IDC_CHECK_LCPOS2 1077
#define | IDC_CHECK_SplitterWndHScroll 1077
#define | IDC_RADIO_BACKUP_TYPE1 1078
#define | IDC_RADIO_OUTPUTMARKED 1078
#define | IDC_RADIO_ALLAREA 1078
#define | IDC_RADIO_CARETTYPE1 1078
#define | IDC_RADIO_nRulerType_1 1078
#define | IDC_CHECK_LCPOS3 1078
#define | IDC_RADIO_BACKUP_TYPE2 1079
#define | IDC_RADIO_FUNCKEYWND_PLACE2 1079
#define | IDC_CHECK_BACKUP_YEAR 1080
#define | IDC_CHECK_ALT 1080
#define | IDC_CHECK_DispTabIcon 1080
#define | IDC_CHECK_BACKUP_HOUR 1081
#define | IDC_CHECK_BACKUP_MIN 1082
#define | IDC_CHECK_BACKUP_SEC 1083
#define | IDC_CHECK_BACKUPDIALOG 1084
#define | IDC_CHECK_BACKUPFOLDER 1085
#define | IDC_CHECK_UNDERLINE 1085
#define | IDC_EDIT1 1086
#define | IDC_EDIT_BACKUPFOLDER 1086
#define | IDC_EDIT_EXTHELP1 1086
#define | IDC_EDIT_PLSQL_E1 1086
#define | IDC_EDIT_BLOCKCOMMENT_FROM 1086
#define | IDC_EDIT_TYPENAME 1086
#define | IDC_BUTTON_BACKUP_FOLDER_REF 1087
#define | IDC_BUTTON_REPALCE 1087
#define | IDC_BUTTON_DELETE 1087
#define | IDC_BUTTON_DELKEYWORD 1087
#define | IDC_EDIT_EXTHTMLHELP 1087
#define | IDC_EDIT_TFORM 1087
#define | IDC_EDIT_BLOCKCOMMENT_FROM2 1087
#define | IDC_EDIT_FNAME_TO 1087
#define | IDC_CHECK_BACKUP_MONTH 1088
#define | IDC_BUTTON_INSERTSEPARATOR 1088
#define | IDC_EDIT_KEYWORDHELPFILE 1088
#define | IDC_BUTTON_ZOOMUP 1088
#define | IDC_EDIT_MIGEMO_DLL 1088
#define | IDC_CHECK_BACKUP_DAY 1089
#define | IDC_BUTTON_KEYWORDHELPFILE_REF 1089
#define | IDC_BUTTON_INSERTWRAP 1089
#define | IDC_EDIT_MIGEMO_DICT 1089
#define | IDC_RADIO_BACKUP_TYPE3 1090
#define | IDC_CHECK_AUTOSAVE 1091
#define | IDC_CHECK_BACKUP_DUSTBOX 1091
#define | IDC_LIST1 1092
#define | IDC_CHECK_DispTOOLBAR 1092
#define | IDC_EDIT_AUTOBACKUP_INTERVAL 1092
#define | IDC_BUTTON_OPENHELP1 1096
#define | IDC_BUTTON_OPENEXTHTMLHELP 1097
#define | IDC_EDIT_REPEATEDSCROLLLINENUM 1098
#define | IDC_BUTTON_KEYWORDHELPFONT 1098
#define | IDC_BUTTON_HELP 1099
#define | IDC_BUTTON_OPENMDLL 1099
#define | IDC_BUTTON_OPENHELP3 1100
#define | IDC_BUTTON_OPENMDICT 1100
#define | IDC_EDIT_TO 1105
#define | IDC_EDIT_BLOCKCOMMENT_TO 1109
#define | IDC_EDIT_TYPEEXTS 1109
#define | IDC_EDIT_MARGINTY 1109
#define | IDC_EDIT_nRulerBottomSpace 1109
#define | IDC_EDIT_LINECOMMENT 1110
#define | IDC_EDIT_INDENTCHARS 1110
#define | IDC_EDIT_MAX_MRU_FOLDER 1110
#define | IDC_EDIT_MARGINBY 1110
#define | IDC_EDIT_nLineNumberRightSpace 1110
#define | IDC_EDIT_LINECOMMENT2 1111
#define | IDC_EDIT_MARGINLX 1111
#define | IDC_LIST_FUNC 1112
#define | IDC_EDIT_MARGINRX 1112
#define | IDC_EDIT_BLOCKCOMMENT_TO2 1112
#define | IDC_COMBO_FUNCKIND 1113
#define | IDC_EDIT_DANSPACE 1113
#define | IDC_EDIT_LINECOMMENT3 1113
#define | IDC_LIST_KEY 1114
#define | IDC_CHECK_CTRL 1115
#define | IDC_CHECK_ADDCRLFWHENCOPY 1116
#define | IDC_COMBO_FILE 1118
#define | IDC_COMBO_nSortType 1118
#define | IDC_COMBO_FOLDER 1119
#define | IDC_STATIC_STC32 1119
#define | IDC_COMBO_SETTINGNAME 1119
#define | IDC_COMBO_PAPER 1120
#define | IDC_BUTTON_FOLDER 1121
#define | IDC_CHK_SUBFOLDER 1122
#define | IDC_STATIC_CURPATH 1123
#define | IDC_CHK_DEFAULTFOLDER 1123
#define | IDC_STATIC_HITCOUNT 1124
#define | IDC_STATIC_VER 1127
#define | IDC_LIST_ASSIGNEDKEYS 1129
#define | IDC_STATIC_MSG 1130
#define | IDC_RADIO_OUTPUTLINE 1132
#define | IDC_RADIO_SELECTEDAREA 1133
#define | IDC_BUTTON_REPALCEALL 1134
#define | IDC_BUTTON_SEARCHPREV 1135
#define | IDC_CHECK_CONSECUTIVEALL 1136
#define | IDC_BUTTON_SEARCHNEXT 1137
#define | IDC_LIST_RES 1138
#define | IDC_BUTTON_SETMARK 1138
#define | IDC_TREE1 1140
#define | IDC_BUTTON_ADD 1141
#define | IDC_BUTTON_INSERT 1142
#define | IDC_BUTTON_REGEX_INS 1142
#define | IDC_BUTTON_UP 1143
#define | IDC_BUTTON_DOWN 1144
#define | IDC_BUTTON_SAMEBKCOLOR 1144
#define | IDC_CHECK_REPEATEDSCROLLSMOOTH 1145
#define | IDC_BUTTON_SAMETEXTCOLOR 1145
#define | IDC_COMBO_CODE 1146
#define | IDC_RADIO_CARETTYPE0 1147
#define | IDC_COMBO_EOL 1147
#define | IDC_BUTTON_COPY 1149
#define | IDC_RADIO_ESCAPETYPE_1 1150
#define | IDC_RADIO_ESCAPETYPE_2 1151
#define | IDC_LIST_TYPES 1153
#define | IDC_RADIO_OUTPUTSTYLE1 1158
#define | IDC_RADIO_nRulerType_0 1158
#define | IDC_COMBO_PLSQLBLOCKS 1164
#define | IDC_COMBO_MRU 1167
#define | IDC_CHECK_KEYWORDCASE 1168
#define | IDC_COMBO_OPENFOLDER 1169
#define | IDC_BUTTON_ADDKEYWORD 1170
#define | IDC_BUTTON_IMPORT 1171
#define | IDC_BUTTON_EXPORT 1173
#define | IDC_BUTTON_ADDSET 1176
#define | IDC_BUTTON_EDITKEYWORD 1177
#define | IDC_BUTTON_DELSET 1178
#define | IDC_COMBO_SET 1179
#define | IDC_COMBO_SET2 1180
#define | IDC_LIST_KEYWORD 1181
#define | IDC_SPIN_MAX_MRU_FILE 1184
#define | IDC_SPIN_MAX_MRU_FOLDER 1185
#define | IDC_SPIN_nDropFileNumMax 1185
#define | IDC_SPIN_nRulerBottomSpace 1185
#define | IDC_EDIT_MAX_MRU_FILE 1186
#define | IDC_SPIN_PLSQL_E1 1186
#define | IDC_SPIN_LCColNum2 1186
#define | IDC_SPIN_nLineNumberRightSpace 1186
#define | IDC_BUTTON_CLEAR_MRU_FILE 1187
#define | IDC_SPIN_LCColNum3 1187
#define | IDC_COMBO_MENU 1188
#define | IDC_RADIO_FUNCKEYWND_PLACE1 1190
#define | IDC_CHECK_DispFUNCKEYWND 1191
#define | IDC_CHECK_NOTIFYNOTFOUND 1192
#define | IDC_EDIT_MIDASHIKIGOU 1193
#define | IDC_EDIT_INYOUKIGOU 1194
#define | IDC_PROGRESS_REPLACE 1195
#define | IDC_STATIC_KENSUU 1197
#define | IDC_STATIC_MYICON 1198
#define | IDC_EDIT_HOKANFILE 1201
#define | IDC_BUTTON_HOKANFILE_REF 1203
#define | IDC_STATIC_UPDATE 1204
#define | IDC_LIST_COLORS 1211
#define | IDC_CHECK_DISP 1212
#define | IDC_CHECK_FAT 1213
#define | IDC_RADIO_LINENUM_LAYOUT 1214
#define | IDC_RADIO_LINENUM_CRLF 1215
#define | IDC_STATIC_HAIKEI 1216
#define | IDC_COMBO_CHARSET 1217
#define | IDC_RADIO_LINETERMTYPE2 1218
#define | IDC_EDIT_LINETERMCHAR 1220
#define | IDC_RADIO_LINETERMTYPE0 1221
#define | IDC_RADIO_LINETERMTYPE1 1222
#define | IDC_LIST_FILES 1223
#define | IDC_STATIC_COMPARESRC 1224
#define | IDC_CHECK_HOKANLOHICASE 1225
#define | IDC_BUTTON_NEXTPAGE 1227
#define | IDC_BUTTON_ZOOMDOWN 1228
#define | IDC_BUTTON_PRINTSETTING 1232
#define | IDC_EDIT_LINECOMMENTPOS 1234
#define | IDC_BUTTON_PREVPAGE 1235
#define | IDC_EDIT_LINECOMMENTPOS2 1235
#define | IDC_SPIN_MARGINTY 1236
#define | IDC_EDIT_LINECOMMENTPOS3 1236
#define | IDC_SPIN_MARGINBY 1237
#define | IDC_SPIN_MARGINLX 1238
#define | IDC_SPIN_MARGINRX 1239
#define | IDC_SPIN_FONTWIDTH 1241
#define | IDC_SPIN_DANSUU 1242
#define | IDC_EDIT_FOOT1 1243
#define | IDC_COMBO_FONT_HAN 1244
#define | IDC_COMBO_FONT_ZEN 1245
#define | IDC_SPIN_DANSPACE 1247
#define | IDC_EDIT_FONTWIDTH 1259
#define | IDC_EDIT_DANSUU 1260
#define | IDC_CHECK_WORDWRAP 1261
#define | IDC_CHECK_LINENUMBER 1262
#define | IDC_CHECK_KINSOKUHEAD 1262
#define | IDC_BUTTON_EDITSETTINGNAME 1263
#define | IDC_CHECK_KINSOKUTAIL 1263
#define | IDC_STATIC_PAGENUM 1264
#define | IDC_CHECK_PS_KINSOKUHEAD 1264
#define | IDC_CHECK_KINSOKURET 1264
#define | IDC_STATIC_ZOOM 1265
#define | IDC_CHECK_PS_KINSOKUTAIL 1265
#define | IDC_CHECK_KINSOKUKUTO 1265
#define | IDC_CHECK_PS_KINSOKURET 1266
#define | IDC_CHECK_PS_KINSOKUKUTO 1267
#define | IDC_EDIT_HEAD1 1270
#define | IDC_STATIC_PRNDEV 1271
#define | IDC_STATIC_PAPER 1272
#define | IDC_EDIT_KEYSFUNC 1273
#define | IDC_BUTTON_ASSIGN 1274
#define | IDC_EDIT_HEAD2 1275
#define | IDC_EDIT_HEAD3 1276
#define | IDC_BUTTON_CURRENTFOLDER 1277
#define | IDC_EDIT_DEBUG 1278
#define | IDC_EDIT_FOOT2 1278
#define | IDC_CHECK_USETRAYICON 1279
#define | IDC_EDIT_FOOT3 1279
#define | IDC_CHECK_STAYTASKTRAY 1280
#define | IDC_CHECK_DispSTATUSBAR 1281
#define | IDC_RADIO_OUTPUTSTYLE2 1282
#define | IDC_CHECK_DispTabWnd 1282
#define | IDC_STATIC_ENABLECOLMNS 1283
#define | IDC_CHECK_MultiWin 1283
#define | IDC_STATIC_ENABLELINES 1284
#define | IDC_HOTKEY_TRAYMENU 1286
#define | IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE 1287
#define | IDC_CHECK_DRAGDROP 1289
#define | IDC_CHECK_DROPSOURCE 1290
#define | IDC_CHECK_COPYnDISABLESELECTEDAREA 1291
#define | IDC_CHECK_HTMLHELPISSINGLE 1292
#define | IDC_CHECK_bSelectClickedURL 1293
#define | IDC_EDIT_nRulerHeight 1294
#define | IDC_CHECK_bGrepExitConfirm 1295
#define | IDC_CHECK_TILE_H 1296
#define | IDC_CHECK_bDropFileAndClose 1297
#define | IDC_EDIT_nDropFileNumMax 1298
#define | IDC_CHECK_bCheckFileTimeStamp 1299
#define | IDC_CHECK_bNotOverWriteCRLF 1300
#define | IDC_COMBO_OUTLINES 1301
#define | IDC_COMBO_SMARTINDENT 1302
#define | IDC_BUTTON_REFERENCE 1303
#define | IDC_COMBO_IMESTATE 1303
#define | IDC_CHECK_bAutoCloseDlgFind 1304
#define | IDC_COMBO_IMESWITCH 1304
#define | IDC_CHECK_bScrollBarHorz 1305
#define | IDC_CHECK_bAutoCloseDlgFuncList 1306
#define | IDC_CHECK_bAutoCloseDlgReplace 1307
#define | IDC_CHECK_bMarkUpBlankLineEnable 1307
#define | IDC_CHECK_bFunclistSetFocusOnJump 1308
#define | IDC_CHECK_CLICKKEYSEARCH 1309
#define | IDC_STATIC_CURFILE 1310
#define | IDC_PROGRESS 1311
#define | IDC_LIST_WORDS 1312
#define | IDC_CHECK_m_bHokanKey_RETURN 1313
#define | IDC_CHECK_m_bHokanKey_TAB 1314
#define | IDC_CHECK_m_bHokanKey_RIGHT 1315
#define | IDC_RADIO_DFORM_0 1317
#define | IDC_RADIO_DFORM_1 1318
#define | IDC_EDIT_DFORM_EX 1319
#define | IDC_RADIO_TFORM_0 1320
#define | IDC_RADIO_TFORM_1 1321
#define | IDC_EDIT_TFORM_EX 1322
#define | IDC_EDIT_DFORM 1323
#define | IDC_RADIO_ALL 1324
#define | IDC_RADIO_PORTRAIT 1324
#define | IDC_RADIO_BACKUP_DATETYPE1 1324
#define | IDC_RADIO_REPLACE 1324
#define | IDC_RADIO_DIFF_FILE1 1324
#define | IDC_RADIO_OUTLINEDEFAULT 1324
#define | IDC_RADIO_FROMTO 1325
#define | IDC_RADIO_LANDSCAPE 1325
#define | IDC_RADIO_BACKUP_DATETYPE2 1325
#define | IDC_RADIO_INSERT 1325
#define | IDC_RADIO_OUTLINERULEFILE 1325
#define | IDC_RADIO_DIFF_FILE2 1325
#define | IDC_RADIO_ADD 1326
#define | IDC_RADIO_DIFF_DST1 1326
#define | IDC_EDIT2 1327
#define | IDC_EDIT_BACKUP_3 1327
#define | IDC_MACROPATH 1327
#define | IDC_RADIO_DIFF_DST2 1327
#define | IDC_EDIT_TAG_MAKE_CMDLINE 1327
#define | IDC_EDIT_WX 1327
#define | IDC_EDIT_VERTLINE 1327
#define | IDC_COMBO_m_szCommand 1328
#define | IDC_EDIT_WY 1328
#define | IDC_CHECK_GETSTDOUT 1329
#define | IDC_EDIT_SX 1329
#define | IDC_STATIC_CMD 1330
#define | IDC_EDIT_SY 1330
#define | IDC_STATIC_JOBNAME 1331
#define | IDC_STATIC_PROGRESS 1332
#define | IDC_EDIT_FROM 1333
#define | IDC_STATIC_ALL 1334
#define | IDC_CHECK_bMenuIcon 1335
#define | IDC_LABEL_BACKUP_3 1336
#define | IDC_LABEL_AUTOSAVE 1337
#define | IDC_LABEL_BACKUP_4 1338
#define | IDC_LABEL_AUTOSAVE2 1342
#define | IDC_LABEL_AUTOSAVE3 1343
#define | IDC_LABEL_AUTOSAVE4 1344
#define | IDC_LABEL_MENUFUNC 1345
#define | IDC_LABEL_MENUFUNCKIND 1346
#define | IDC_LABEL_MENU 1347
#define | IDC_LABEL_MENUCHOICE 1348
#define | IDC_LABEL_MENUKEYCHANGE 1349
#define | IDC_LABEL_TOOLBAR 1350
#define | IDC_LABEL_MENUNAME 1350
#define | IDC_LABEL_KEYKIND 1351
#define | IDC_LABEL_FUNCtoKEY 1352
#define | IDC_LABEL_KEYtoFUNC 1353
#define | IDC_TAB2 1355
#define | IDC_LABEL_LINETERMCHAR 1356
#define | IDC_GROUP_FUNCKEYWND_POSITION 1357
#define | IDC_LABEL_DFORM 1358
#define | IDC_LABEL_TFORM 1359
#define | IDC_LABEL_FROM 1360
#define | IDC_LABEL_TO 1361
#define | IDC_LABEL_PLSQL1 1362
#define | IDC_LABEL_PLSQL2 1363
#define | IDC_LABEL_PLSQL3 1364
#define | IDC_LABEL_KEYWORDHELPFILE 1365
#define | IDC_SPIN_BACKUP_GENS 1366
#define | IDC_SPIN_AUTOBACKUP_INTERVAL 1367
#define | IDC_SPIN_nRulerHeight 1368
#define | IDC_CHECK_BACKUP_RETAINEXT 1369
#define | IDC_SPIN_LINENUM 1372
#define | IDC_LANEL_NOTE 1373
#define | IDC_CHECK_RestoreCurPosition 1375
#define | IDC_STATIC_URL_CAPTION 1376
#define | IDC_STATIC_URL_UR 1379
#define | IDC_STATIC_URL_ORG 1380
#define | IDC_CHECK_AutoMIMEDecode 1381
#define | IDC_EDIT_MENUNAME 1382
#define | IDC_CHECK_RestoreBookmarks 1382
#define | IDC_BUTTON_TEMPCHANGE 1384
#define | IDC_STATIC_EOL 1385
#define | IDC_BUTTON_JUMP 1388
#define | IDC_CHECK_LCPOS 1389
#define | IDC_SPIN_LCColNum 1390
#define | IDC_LABEL_LCPOS 1391
#define | IDC_LABEL_LCPOS2 1392
#define | IDC_LABEL_LCPOS3 1393
#define | IDC_MACRO_REG 1393
#define | IDC_COMBO_MACROID 1394
#define | IDC_BUTTON_TOP 1394
#define | IDC_BUTTON_REGEX_TOP 1394
#define | IDC_BUTTON_REGEX_LAST 1395
#define | IDC_MACROLIST 1396
#define | IDC_MACRONAME 1397
#define | IDC_EDIT_ABOUT 1398
#define | IDC_CHECK_SplitterWndVScroll 1399
#define | IDC_BUTTON_REGEX_UPD 1399
#define | IDC_CHK_WORD 1400
#define | IDC_BUTTON_REGEX_DEL 1400
#define | IDC_CHECK_SameTabWidth 1400
#define | IDC_MACRODIR 1401
#define | IDC_MACRODIRREF 1402
#define | IDC_BUTTON_MENUNAME 1403
#define | IDC_EDIT_REGEX 1404
#define | IDC_CHECK_REGEX 1406
#define | IDC_LIST_REGEX 1407
#define | IDC_COMBO_REGEX_COLOR 1408
#define | IDC_LABEL_REGEX_COLOR 1409
#define | IDC_LABEL_REGEX_KEYWORD 1410
#define | IDC_BUTTON_REGEX_UP 1411
#define | IDC_BUTTON_REGEX_DOWN 1412
#define | IDC_BUTTON_REGEX_ADD 1413
#define | IDC_BUTTON_REGEX_IMPORT 1414
#define | IDC_BUTTON_REGEX_EXPORT 1415
#define | IDC_FRAME_REGEX 1416
#define | IDC_LABEL_REGEX_VERSION 1417
#define | IDC_CHECK_INS_SPACE 1417
#define | IDC_CHK_PASTE 1418
#define | IDC_CHECK_SEARCHALL 1419
#define | IDC_EDIT_TYPEEXTHELP 1420
#define | IDC_EDIT_TYPEEXTHTMLHELP 1421
#define | IDC_BUTTON_TYPEOPENHELP 1422
#define | IDC_BUTTON_TYPEOPENEXTHTMLHELP 1423
#define | IDC_CHECK_TYPEHTMLHELPISSINGLE 1424
#define | IDC_CHECK_DispTabWndMultiWin 1425
#define | IDC_EDIT_OUTLINERULEFILE 1426
#define | IDC_BUTTON_RULEFILE_REF 1427
#define | IDC_EDIT_KINSOKUHEAD 1428
#define | IDC_STATIC_DIFF_SRC 1428
#define | IDC_EDIT_KINSOKUTAIL 1429
#define | IDC_EDIT_DIFF_DST 1429
#define | IDC_BUTTON_DIFF_DST 1430
#define | IDC_SPIN_FUNCKEYWND_GROUPNUM 1430
#define | IDC_CHECK_DIFF_OPT_CASE 1431
#define | IDC_EDIT_FUNCKEYWND_GROUPNUM 1431
#define | IDC_CHECK_DIFF_OPT_SPACE 1432
#define | IDC_CHECK_DIFF_OPT_SPCCHG 1433
#define | IDC_STATIC_nSortType 1433
#define | IDC_BTN_RELOAD 1433
#define | IDC_CHECK_DIFF_OPT_BLINE 1434
#define | IDC_CHECK_DIFF_OPT_TABSPC 1435
#define | IDC_BTN_NOTIFYONLY 1435
#define | IDC_FRAME_DIFF_FILE12 1436
#define | IDC_LIST_DIFF_FILES 1437
#define | IDC_FILEUPDATEMSG 1437
#define | IDC_FRAME_DIFF_DST 1438
#define | IDC_LIST_CTRLCODE 1438
#define | IDC_BTN_NOSUPERVISION 1438
#define | IDC_BTN_CLOSE 1439
#define | IDC_UPDATEDFILENAME 1440
#define | IDC_QUERYRELOADMSG 1441
#define | IDC_CHECK_FNAME 1442
#define | IDC_BUTTON_FNAME_TOP 1446
#define | IDC_BUTTON_FNAME_UP 1447
#define | IDC_BUTTON_FNAME_DOWN 1448
#define | IDC_BUTTON_FNAME_LAST 1449
#define | IDC_BUTTON_FNAME_INS 1450
#define | IDC_BUTTON_FNAME_ADD 1451
#define | IDC_BUTTON_FNAME_UPD 1452
#define | IDC_BUTTON_FNAME_DEL 1453
#define | IDC_LIST_FNAME 1454
#define | IDC_EDIT_FNAME_FROM 1455
#define | IDC_CHECK_TAB_ARROW 1456
#define | IDC_TAB_FAVORITE 1457
#define | IDC_LIST_FAVORITE_FILE 1458
#define | IDC_LIST_FAVORITE_FOLDER 1459
#define | IDC_LIST_FAVORITE_GREP_FILE 1460
#define | IDC_LIST_FAVORITE_GREP_FOLDER 1461
#define | IDC_LIST_FAVORITE_REPLACE 1462
#define | IDC_LIST_FAVORITE_SEARCH 1463
#define | IDC_LIST_FAVORITE_CMD 1464
#define | IDC_BUTTON_CLEAR 1465
#define | IDC_SLIDER_VIEW 1466
#define | IDC_BUTTON_VIEW 1467
#define | IDC_LIST_TAGJUMP 1468
#define | IDC_WINCAPTION_ACTIVE 1469
#define | IDC_WINCAPTION_INACTIVE 1470
#define | IDC_CHECK_HOKANBYFILE 1470
#define | IDC_BUTTON_TAG_MAKE_REF 1471
#define | IDC_TABWND_CAPTION 1471
#define | IDC_CHECK_TAG_MAKE_RECURSE 1472
#define | IDC_EDIT_TAG_MAKE_FOLDER 1473
#define | IDC_FRAME_SEARCH_MSG 1474
#define | IDC_CHECK_DIFF_EXEC_STATE 1475
#define | IDC_STATIC_FAVORITE_MSG 1476
#define | IDC_CHECK_REALTIMEVIEW 1477
#define | IDC_CHECK_BOM 1478
#define | IDC_CHECK_GREPREALTIME 1479
#define | IDC_RADIO_WINSIZE_DEF 1480
#define | IDC_RADIO_WINSIZE_SAVE 1481
#define | IDC_RADIO_WINSIZE_SET 1482
#define | IDC_SPIN_WX 1483
#define | IDC_SPIN_WY 1484
#define | IDC_RADIO_WINPOS_DEF 1485
#define | IDC_RADIO_WINPOS_SAVE 1486
#define | IDC_RADIO_WINPOS_SET 1487
#define | IDC_SPIN_SX 1488
#define | IDC_SPIN_SY 1489
#define | IDC_COMBO_WINTYPE 1490
#define | IDC_BUTTON_WINSIZE 1491
#define | IDC_CHECK_QueryIfCodeChange 1492
#define | IDC_HOTKEY1 1493
#define | IDC_CHECK_AlertIfFileNotExist 1493
#define | IDC_COMBO1 1494
#define | IDC_BUTTON_KEYWORD_SELECT 1495
#define | IDC_COMBO2 1495
#define | IDC_COMBO3 1496
#define | IDC_STATIC_KEYWORD_COUNT 1496
#define | IDC_COMBO4 1497
#define | IDC_BUTTON_KEYSETRENAME 1497
#define | IDC_COMBO5 1498
#define | IDC_BUTTON_KEYCLEAN 1498
#define | IDC_COMBO6 1499
#define | IDC_KEYWORD 1499
#define | IDC_COMBO7 1500
#define | IDC_STATIC_KEYWORD 1500
#define | IDC_COMBO8 1501
#define | IDC_CHECK_ICASE 1501
#define | IDC_COMBO9 1502
#define | IDC_CHECK_ANYWHERE 1502
#define | IDC_COMBO10 1503
#define | IDC_EDIT_BACKUPFILE 1504
#define | IDC_LABEL_BACKUP_HELP 1505
#define | IDC_CHECK_BACKUP_ADVANCED 1506
#define | IDC_RADIO_BACKUP_DATETYPE1A 1507
#define | IDC_RADIO_BACKUP_DATETYPE2A 1508
#define | IDC_LABEL_BACKUP_HELP2 1509
#define | IDC_STATIC_COLOR 1510
#define | IDC_BUTTON_SELALL 1511
#define | IDC_BUTTON_SELNOTING 1512
#define | IDC_LIST_ITEMINFO 1514
#define | IDC_CHECK_NoFilterSaveNew 1515
#define | IDC_CHECK_NoFilterSaveFile 1516
#define | IDC_CHECK_CLOSEALLCONFIRM 1517
#define | IDC_CHECK_ANTIALIAS 1518
#define | IDC_CHECK_RetainEmptyWindow 1518
#define | IDC_BUTTON_DIRECTPAGE 1519
#define | IDC_CHECK_CloseOneWin 1519
#define | IDC_CHECK_bCaretTextForSearch 1520
#define | IDC_CHECK_ChgWndByWheel 1521
#define | IDC_LABEL_REGEXP 1522
#define | IDC_EDIT_REGEXPLIB 1524
#define | IDC_LABEL_REGEXP_VER 1525
#define | IDC_RADIO_OUTPUT 1536
#define | IDC_RADIO_EDITWINDOW 1537
#define | IDC_CHECK_SENDSTDIN 1538
#define | IDD_PROP_TOOLBAR 1539
#define | IDC_CHECK_SortTabList 1540
#define | IDM_POPLAST 4047
#define | IDS_AUTHOR_PAGE 4054
#define | IDS_AUTHOR_MAIL 4055
#define | IDS_ABOUT_DESCRIPTION 4056
#define | IDM_POPLAST2 4064
#define | ID_IS4072 4072
#define | IDD_PROPTYPESP1 5101
#define | IDD_PROP_CUSTMENU 5103
#define | IDD_PROP_FORMAT 5104
#define | IDD_PROP_HELPER 5105
#define | IDD_PROP_COLOR 5106
#define | IDD_PROP_KEYBIND 5107
#define | IDD_PROP_WIN 5108
#define | IDD_PROP_EDIT 5109
#define | IDD_PROP_TAB 5110
#define | IDD_PROP_GREP 5111
#define | IDD_PROP_BACKUP 5112
#define | IDD_OPERATIONRUNNING 5113
#define | IDD_PROP_KEYBIND1 5114
#define | IDD_PROPTYPESP2 5114
#define | IDD_DIFF 5115
#define | IDD_CTRLCODE 5116
#define | IDD_WINPOSSIZE 5117
#define | IDD_PROP_KEYHELP 5119
#define | IDC_FRAME_KEYHELP 5120
#define | IDC_LIST_KEYHELP 5121
#define | IDC_LABEL_KEYHELP_KEYWORD 5122
#define | IDC_EDIT_KEYHELP 5123
#define | IDC_LABEL_KEYHELP_TITLE 5124
#define | IDC_COMBO_KEYHELP_COLOR 5125
#define | IDC_BUTTON_KEYHELP_INS 5126
#define | IDC_BUTTON_KEYHELP_ADD 5127
#define | IDC_BUTTON_KEYHELP_UPD 5128
#define | IDC_BUTTON_KEYHELP_DEL 5129
#define | IDC_BUTTON_KEYHELP_TOP 5130
#define | IDC_BUTTON_KEYHELP_UP 5131
#define | IDC_BUTTON_KEYHELP_DOWN 5132
#define | IDC_BUTTON_KEYHELP_LAST 5133
#define | IDC_BUTTON_KEYHELP_IMPORT 5134
#define | IDC_BUTTON_KEYHELP_EXPORT 5135
#define | IDC_LABEL_KEYHELP_ABOUT 5136
#define | IDC_CHECK_KEYHELP 5137
#define | IDC_CHECK_TYPE_KEYHELPUSE 5138
#define | IDC_LABEL_KEYHELP_PRIOR 5139
#define | IDC_BUTTON_KEYHELP_REF 5140
#define | IDC_CHECK_KEYHELP_ALLSEARCH 5141
#define | IDC_CHECK_KEYHELP_KEYDISP 5142
#define | IDC_CHECK_KEYHELP_PREFIX 5143
#define | IDC_STATIC -1

マクロ定義

#define ID_IS4072 4072

sakura_rc.h の 605 行で定義されています。

#define IDB_MYTOOL 200

sakura_rc.h の 34 行で定義されています。

参照元 CImageListMgr::Create().

#define IDB_OPENED 201

sakura_rc.h の 35 行で定義されています。

#define IDB_OPENED_THIS 202

sakura_rc.h の 36 行で定義されています。

#define IDB_PRINTER 203

sakura_rc.h の 37 行で定義されています。

#define IDC_BTN_CLOSE 1439

sakura_rc.h の 500 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BTN_NOSUPERVISION 1438

sakura_rc.h の 499 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BTN_NOTIFYONLY 1435

sakura_rc.h の 493 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BTN_RELOAD 1433

sakura_rc.h の 490 行で定義されています。

参照元 CDlgFileUpdateQuery::OnBnClicked().

#define IDC_BUTTON1 1015

sakura_rc.h の 71 行で定義されています。

#define IDC_BUTTON_ADD 1141

sakura_rc.h の 203 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_ADDKEYWORD 1170

sakura_rc.h の 224 行で定義されています。

参照元 CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_ADDSET 1176

sakura_rc.h の 227 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7().

#define IDC_BUTTON_ASSIGN 1274

sakura_rc.h の 305 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define IDC_BUTTON_BACKCOLOR 1060

sakura_rc.h の 88 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_BUTTON_BACKUP_FOLDER_REF 1087

sakura_rc.h の 128 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_BUTTON_CLEAR 1465

sakura_rc.h の 523 行で定義されています。

参照元 CDlgFavorite::OnBnClicked().

#define IDC_BUTTON_CLEAR_MRU_FILE 1187

sakura_rc.h の 241 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

#define IDC_BUTTON_CLEAR_MRU_FOLDER 1016

sakura_rc.h の 72 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

#define IDC_BUTTON_COPY 1149

sakura_rc.h の 214 行で定義されています。

参照元 CDlgFuncList::Key2Command()・CDlgFuncList::OnBnClicked()・CDlgFuncList::OnSize()・CDlgFuncList::SetData()・CDlgFuncList::SetListVB()・CDlgFuncList::SetTreeJava().

#define IDC_BUTTON_CURRENTFOLDER 1277

sakura_rc.h の 308 行で定義されています。

参照元 CDlgGrep::OnBnClicked().

#define IDC_BUTTON_DELETE 1087

sakura_rc.h の 130 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_DELKEYWORD 1087

sakura_rc.h の 131 行で定義されています。

参照元 CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_DELSET 1178

sakura_rc.h の 229 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7()・CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_DIFF_DST 1430

sakura_rc.h の 483 行で定義されています。

参照元 CDlgDiff::OnBnClicked().

#define IDC_BUTTON_DIRECTPAGE 1519

sakura_rc.h の 588 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB().

#define IDC_BUTTON_DOWN 1144

sakura_rc.h の 207 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_EDITKEYWORD 1177

sakura_rc.h の 228 行で定義されています。

参照元 CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_EDITSETTINGNAME 1263

sakura_rc.h の 291 行で定義されています。

参照元 CDlgPrintSetting::OnBnClicked().

#define IDC_BUTTON_EXPORT 1173

sakura_rc.h の 226 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_p8()・CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_FNAME_ADD 1451

sakura_rc.h の 509 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_DEL 1453

sakura_rc.h の 511 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_DOWN 1448

sakura_rc.h の 506 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_INS 1450

sakura_rc.h の 508 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_LAST 1449

sakura_rc.h の 507 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_TOP 1446

sakura_rc.h の 504 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_UP 1447

sakura_rc.h の 505 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FNAME_UPD 1452

sakura_rc.h の 510 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_BUTTON_FOLDER 1121

sakura_rc.h の 186 行で定義されています。

参照元 CDlgGrep::OnBnClicked().

#define IDC_BUTTON_HELP 1099

sakura_rc.h の 155 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CDlgWinSize::OnBnClicked()・CDlgTypeList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgSameColor::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・CDlgFuncList::OnSize().

#define IDC_BUTTON_HOKANFILE_REF 1203

sakura_rc.h の 253 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2().

#define IDC_BUTTON_IMPORT 1171

sakura_rc.h の 225 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_p8()・CPropCommon::SetData_p7_KeyWordSet().

#define IDC_BUTTON_INSERT 1142

sakura_rc.h の 204 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_INSERTSEPARATOR 1088

sakura_rc.h の 137 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_INSERTWRAP 1089

sakura_rc.h の 143 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_JUMP 1388

sakura_rc.h の 433 行で定義されています。

参照元 CDlgJump::OnBnClicked().

#define IDC_BUTTON_KEYCLEAN 1498

sakura_rc.h の 563 行で定義されています。

#define IDC_BUTTON_KEYHELP_ADD 5127

sakura_rc.h の 631 行で定義されています。

#define IDC_BUTTON_KEYHELP_DEL 5129

sakura_rc.h の 633 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_DOWN 5132

sakura_rc.h の 636 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_EXPORT 5135

sakura_rc.h の 639 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_IMPORT 5134

sakura_rc.h の 638 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_INS 5126

sakura_rc.h の 630 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_LAST 5133

sakura_rc.h の 637 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_REF 5140

sakura_rc.h の 644 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_TOP 5130

sakura_rc.h の 634 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_UP 5131

sakura_rc.h の 635 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYHELP_UPD 5128

sakura_rc.h の 632 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_BUTTON_KEYSETRENAME 1497

sakura_rc.h の 561 行で定義されています。

#define IDC_BUTTON_KEYWORD_SELECT 1495

sakura_rc.h の 556 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_BUTTON_KEYWORDHELPFILE_REF 1089

sakura_rc.h の 142 行で定義されています。

#define IDC_BUTTON_KEYWORDHELPFONT 1098

sakura_rc.h の 154 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10().

#define IDC_BUTTON_MENUNAME 1403

sakura_rc.h の 454 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8().

#define IDC_BUTTON_NEXTPAGE 1227

sakura_rc.h の 269 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::OnPreviewGoPage().

#define IDC_BUTTON_OPENEXTHTMLHELP 1097

sakura_rc.h の 152 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10().

#define IDC_BUTTON_OPENHELP1 1096

sakura_rc.h の 151 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10().

#define IDC_BUTTON_OPENHELP3 1100

sakura_rc.h の 157 行で定義されています。

#define IDC_BUTTON_OPENMDICT 1100

sakura_rc.h の 158 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10().

#define IDC_BUTTON_OPENMDLL 1099

sakura_rc.h の 156 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10().

#define IDC_BUTTON_PREVPAGE 1235

sakura_rc.h の 273 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::OnPreviewGoPage().

#define IDC_BUTTON_PRINTERSELECT 3

sakura_rc.h の 6 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB().

#define IDC_BUTTON_PRINTSETTING 1232

sakura_rc.h の 271 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB().

#define IDC_BUTTON_REFERENCE 1303

sakura_rc.h の 336 行で定義されています。

参照元 CDlgExec::OnBnClicked().

#define IDC_BUTTON_REGEX_ADD 1413

sakura_rc.h の 463 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_DEL 1400

sakura_rc.h の 450 行で定義されています。

#define IDC_BUTTON_REGEX_DOWN 1412

sakura_rc.h の 462 行で定義されています。

#define IDC_BUTTON_REGEX_EXPORT 1415

sakura_rc.h の 465 行で定義されています。

#define IDC_BUTTON_REGEX_IMPORT 1414

sakura_rc.h の 464 行で定義されています。

#define IDC_BUTTON_REGEX_INS 1142

sakura_rc.h の 205 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_REGEX_LAST 1395

sakura_rc.h の 443 行で定義されています。

#define IDC_BUTTON_REGEX_TOP 1394

sakura_rc.h の 442 行で定義されています。

#define IDC_BUTTON_REGEX_UP 1411

sakura_rc.h の 461 行で定義されています。

#define IDC_BUTTON_REGEX_UPD 1399

sakura_rc.h の 448 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_BUTTON_RELEASE 1016

sakura_rc.h の 73 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define IDC_BUTTON_REPALCE 1087

sakura_rc.h の 129 行で定義されています。

参照元 CDlgReplace::OnBnClicked()・CDlgReplace::OnInitDialog().

#define IDC_BUTTON_REPALCEALL 1134

sakura_rc.h の 196 行で定義されています。

#define IDC_BUTTON_RULEFILE_REF 1427

sakura_rc.h の 478 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

#define IDC_BUTTON_SAMEBKCOLOR 1144

sakura_rc.h の 208 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CDlgSameColor::OnSelChangeListColors().

#define IDC_BUTTON_SAMETEXTCOLOR 1145

sakura_rc.h の 210 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CDlgSameColor::OnBnClicked()・CDlgSameColor::OnInitDialog()・CDlgSameColor::OnSelChangeListColors().

#define IDC_BUTTON_SEARCHNEXT 1137

sakura_rc.h の 199 行で定義されています。

参照元 CDlgReplace::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgReplace::OnInitDialog().

#define IDC_BUTTON_SEARCHPREV 1135

sakura_rc.h の 197 行で定義されています。

参照元 CDlgReplace::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgReplace::OnInitDialog().

#define IDC_BUTTON_SELALL 1511

sakura_rc.h の 580 行で定義されています。

参照元 CDlgSameColor::OnBnClicked().

#define IDC_BUTTON_SELNOTING 1512

sakura_rc.h の 581 行で定義されています。

参照元 CDlgSameColor::OnBnClicked().

#define IDC_BUTTON_SETMARK 1138

sakura_rc.h の 201 行で定義されています。

参照元 CDlgFind::OnBnClicked().

#define IDC_BUTTON_TAG_MAKE_REF 1471

sakura_rc.h の 530 行で定義されています。

参照元 CDlgTagsMake::OnBnClicked().

#define IDC_BUTTON_TEMPCHANGE 1384

sakura_rc.h の 431 行で定義されています。

参照元 CDlgTypeList::OnBnClicked().

#define IDC_BUTTON_TEXTCOLOR 1056

sakura_rc.h の 87 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_BUTTON_TOP 1394

sakura_rc.h の 441 行で定義されています。

#define IDC_BUTTON_TYPEOPENEXTHTMLHELP 1423

sakura_rc.h の 474 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2().

#define IDC_BUTTON_TYPEOPENHELP 1422

sakura_rc.h の 473 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2().

#define IDC_BUTTON_UP 1143

sakura_rc.h の 206 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_BUTTON_VIEW 1467

sakura_rc.h の 525 行で定義されています。

#define IDC_BUTTON_WINSIZE 1491

sakura_rc.h の 551 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define IDC_BUTTON_ZOOMDOWN 1228

sakura_rc.h の 270 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::OnPreviewZoom().

#define IDC_BUTTON_ZOOMUP 1088

sakura_rc.h の 139 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::OnPreviewZoom().

#define IDC_CHECK_ADDCRLFWHENCOPY 1116

sakura_rc.h の 179 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_AlertIfFileNotExist 1493

sakura_rc.h の 554 行で定義されています。

参照元 CPropCommon::SetData_p2().

#define IDC_CHECK_ALT 1080

sakura_rc.h の 114 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CPropCommon::p5_ChangeKeyList().

#define IDC_CHECK_ANTIALIAS 1518

sakura_rc.h の 586 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::OnSize().

#define IDC_CHECK_ANYWHERE 1502

sakura_rc.h の 571 行で定義されています。

参照元 CDlgTagJumpList::OnBnClicked()・CDlgTagJumpList::OnInitDialog()・CDlgTagJumpList::SetData().

#define IDC_CHECK_AutoMIMEDecode 1381

sakura_rc.h の 428 行で定義されています。

参照元 CPropCommon::SetData_p2().

#define IDC_CHECK_AUTOSAVE 1091

sakura_rc.h の 146 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_CHECK_BACKUP 1076

sakura_rc.h の 95 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::EnableBackupInput()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::SetData_PROP_BACKUP().

#define IDC_CHECK_BACKUP_ADVANCED 1506

sakura_rc.h の 575 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_CHECK_BACKUP_DAY 1089

sakura_rc.h の 141 行で定義されています。

#define IDC_CHECK_BACKUP_DUSTBOX 1091

sakura_rc.h の 147 行で定義されています。

#define IDC_CHECK_BACKUP_HOUR 1081

sakura_rc.h の 116 行で定義されています。

#define IDC_CHECK_BACKUP_MIN 1082

sakura_rc.h の 117 行で定義されています。

#define IDC_CHECK_BACKUP_MONTH 1088

sakura_rc.h の 136 行で定義されています。

#define IDC_CHECK_BACKUP_RETAINEXT 1369

sakura_rc.h の 421 行で定義されています。

参照元 CPropCommon::EnableBackupInput()・CPropCommon::GetData_PROP_BACKUP().

#define IDC_CHECK_BACKUP_SEC 1083

sakura_rc.h の 118 行で定義されています。

#define IDC_CHECK_BACKUP_YEAR 1080

sakura_rc.h の 113 行で定義されています。

#define IDC_CHECK_BACKUPDIALOG 1084

sakura_rc.h の 119 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP()・CPropCommon::SetData_PROP_BACKUP().

#define IDC_CHECK_BACKUPFOLDER 1085

sakura_rc.h の 120 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_CHECK_bAutoCloseDlgFind 1304

sakura_rc.h の 338 行で定義されています。

参照元 CDlgFind::GetData().

#define IDC_CHECK_bAutoCloseDlgFuncList 1306

sakura_rc.h の 341 行で定義されています。

#define IDC_CHECK_bAutoCloseDlgReplace 1307

sakura_rc.h の 342 行で定義されています。

#define IDC_CHECK_bCaretTextForSearch 1520

sakura_rc.h の 590 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP().

#define IDC_CHECK_bCheckFileTimeStamp 1299

sakura_rc.h の 332 行で定義されています。

参照元 CPropCommon::EnableFilePropInput()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_CHECK_bDropFileAndClose 1297

sakura_rc.h の 330 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::EnableFilePropInput()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_CHECK_bFunclistSetFocusOnJump 1308

sakura_rc.h の 344 行で定義されています。

#define IDC_CHECK_bGrepExitConfirm 1295

sakura_rc.h の 328 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP().

#define IDC_CHECK_bMarkUpBlankLineEnable 1307

sakura_rc.h の 343 行で定義されています。

#define IDC_CHECK_bMenuIcon 1335

sakura_rc.h の 390 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_bNotOverWriteCRLF 1300

sakura_rc.h の 333 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_BOM 1478

sakura_rc.h の 538 行で定義されています。

参照元 OFNHookProc().

#define IDC_CHECK_bScrollBarHorz 1305

sakura_rc.h の 340 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_bSelectClickedURL 1293

sakura_rc.h の 326 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_ChgWndByWheel 1521

sakura_rc.h の 591 行で定義されています。

参照元 CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_CLICKKEYSEARCH 1309

sakura_rc.h の 345 行で定義されています。

#define IDC_CHECK_CLOSEALLCONFIRM 1517

sakura_rc.h の 585 行で定義されています。

#define IDC_CHECK_CloseOneWin 1519

sakura_rc.h の 589 行で定義されています。

参照元 CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_CONSECUTIVEALL 1136

sakura_rc.h の 198 行で定義されています。

#define IDC_CHECK_COPYnDISABLESELECTEDAREA 1291

sakura_rc.h の 324 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_CTRL 1115

sakura_rc.h の 178 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CPropCommon::p5_ChangeKeyList().

#define IDC_CHECK_DIFF_EXEC_STATE 1475

sakura_rc.h の 535 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_BLINE 1434

sakura_rc.h の 491 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_CASE 1431

sakura_rc.h の 485 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_SPACE 1432

sakura_rc.h の 487 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_SPCCHG 1433

sakura_rc.h の 488 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_DIFF_OPT_TABSPC 1435

sakura_rc.h の 492 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_DISP 1212

sakura_rc.h の 256 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_CHECK_DispFUNCKEYWND 1191

sakura_rc.h の 245 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::EnableWinPropInput()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_DispSTATUSBAR 1281

sakura_rc.h の 314 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_DispTabIcon 1080

sakura_rc.h の 115 行で定義されています。

参照元 CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_DispTabWnd 1282

sakura_rc.h の 316 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_DispTabWndMultiWin 1425

sakura_rc.h の 476 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_DispTOOLBAR 1092

sakura_rc.h の 149 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_DOCICON 1076

sakura_rc.h の 102 行で定義されています。

#define IDC_CHECK_DRAGDROP 1289

sakura_rc.h の 322 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_DROPSOURCE 1290

sakura_rc.h の 323 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

#define IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE 1287

sakura_rc.h の 321 行で定義されています。

参照元 CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_CHECK_EXCVLUSIVE_NO 1069

sakura_rc.h の 90 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::EnableFilePropInput()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_CHECK_EXCVLUSIVE_READWRITE 1070

sakura_rc.h の 91 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_CHECK_EXCVLUSIVE_WRITE 1071

sakura_rc.h の 92 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_CHECK_EXITCONFIRM 1076

sakura_rc.h の 96 行で定義されています。

#define IDC_CHECK_FAT 1213

sakura_rc.h の 257 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_CHECK_FNAME 1442

sakura_rc.h の 503 行で定義されています。

#define IDC_CHECK_FREECARET 1014

sakura_rc.h の 70 行で定義されています。

#define IDC_CHECK_GETSTDOUT 1329

sakura_rc.h の 382 行で定義されています。

参照元 CDlgExec::GetData()・CDlgExec::OnBnClicked()・CDlgExec::SetData().

#define IDC_CHECK_GREPREALTIME 1479

sakura_rc.h の 539 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP().

#define IDC_CHECK_GTJW_LDBLCLK 1023

sakura_rc.h の 76 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP().

#define IDC_CHECK_GTJW_RETURN 1013

sakura_rc.h の 67 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP().

#define IDC_CHECK_HOKANBYFILE 1470

sakura_rc.h の 529 行で定義されています。

参照元 CPropTypes::GetData_p2()・CPropTypes::SetData_p2().

#define IDC_CHECK_HOKANLOHICASE 1225

sakura_rc.h の 268 行で定義されています。

参照元 CPropTypes::GetData_p2()・CPropTypes::SetData_p2().

#define IDC_CHECK_HTMLHELPISSINGLE 1292

sakura_rc.h の 325 行で定義されています。

参照元 CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_CHECK_ICASE 1501

sakura_rc.h の 569 行で定義されています。

参照元 CDlgTagJumpList::OnBnClicked()・CDlgTagJumpList::OnInitDialog()・CDlgTagJumpList::SetData().

#define IDC_CHECK_INDENT 1009

sakura_rc.h の 62 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

#define IDC_CHECK_INDENT_WSPACE 1011

sakura_rc.h の 65 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

#define IDC_CHECK_INS_SPACE 1417

sakura_rc.h の 468 行で定義されています。

参照元 CPropTypes::SetData_p1().

#define IDC_CHECK_KEYHELP 5137

sakura_rc.h の 641 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYHELP_ALLSEARCH 5141

sakura_rc.h の 645 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYHELP_KEYDISP 5142

sakura_rc.h の 646 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYHELP_PREFIX 5143

sakura_rc.h の 647 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

#define IDC_CHECK_KEYWORDCASE 1168

sakura_rc.h の 222 行で定義されています。

参照元 CPropCommon::SetData_p7_KeyWordSet().

#define IDC_CHECK_KINSOKUHEAD 1262

sakura_rc.h の 290 行で定義されています。

#define IDC_CHECK_KINSOKUKUTO 1265

sakura_rc.h の 298 行で定義されています。

#define IDC_CHECK_KINSOKURET 1264

sakura_rc.h の 295 行で定義されています。

#define IDC_CHECK_KINSOKUTAIL 1263

sakura_rc.h の 292 行で定義されています。

#define IDC_CHECK_LCPOS 1389

sakura_rc.h の 434 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::EnableTypesPropInput().

#define IDC_CHECK_LCPOS2 1077

sakura_rc.h の 103 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_CHECK_LCPOS3 1078

sakura_rc.h の 110 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_CHECK_LINENUMBER 1262

sakura_rc.h の 289 行で定義されています。

参照元 CDlgPrintSetting::OnChangeSettingType().

#define IDC_CHECK_m_bHokanKey_RETURN 1313

sakura_rc.h の 349 行で定義されています。

参照元 CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_CHECK_m_bHokanKey_RIGHT 1315

sakura_rc.h の 351 行で定義されています。

参照元 CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_CHECK_m_bHokanKey_TAB 1314

sakura_rc.h の 350 行で定義されています。

参照元 CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_CHECK_MultiWin 1283

sakura_rc.h の 318 行で定義されています。

#define IDC_CHECK_NoFilterSaveFile 1516

sakura_rc.h の 584 行で定義されています。

参照元 CPropCommon::SetData_p2().

#define IDC_CHECK_NoFilterSaveNew 1515

sakura_rc.h の 583 行で定義されています。

参照元 CPropCommon::SetData_p2().

#define IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE 1072

sakura_rc.h の 93 行で定義されています。

#define IDC_CHECK_NOTIFYNOTFOUND 1192

sakura_rc.h の 246 行で定義されています。

参照元 CDlgFind::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_PLSQL 1076

sakura_rc.h の 97 行で定義されています。

参照元 CDlgJump::OnBnClicked().

#define IDC_CHECK_PS_KINSOKUHEAD 1264

sakura_rc.h の 294 行で定義されています。

#define IDC_CHECK_PS_KINSOKUKUTO 1267

sakura_rc.h の 300 行で定義されています。

#define IDC_CHECK_PS_KINSOKURET 1266

sakura_rc.h の 299 行で定義されています。

#define IDC_CHECK_PS_KINSOKUTAIL 1265

sakura_rc.h の 297 行で定義されています。

#define IDC_CHECK_QueryIfCodeChange 1492

sakura_rc.h の 552 行で定義されています。

参照元 CPropCommon::SetData_p2().

#define IDC_CHECK_REALTIMEVIEW 1477

sakura_rc.h の 537 行で定義されています。

参照元 CEditView::DoGrep()・CEditView::DoGrepFile()・CEditView::DoGrepTree().

#define IDC_CHECK_REGEX 1406

sakura_rc.h の 456 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex()・CPropTypes::GetData_Regex().

#define IDC_CHECK_RELOADWHENEXECUTE 1076

sakura_rc.h の 101 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro()・CPropCommon::SetMacro2List_Macro().

#define IDC_CHECK_REPEATEDSCROLLSMOOTH 1145

sakura_rc.h の 209 行で定義されています。

#define IDC_CHECK_RestoreBookmarks 1382

sakura_rc.h の 430 行で定義されています。

参照元 CPropCommon::SetData_p2().

#define IDC_CHECK_RestoreCurPosition 1375

sakura_rc.h の 424 行で定義されています。

参照元 CPropCommon::SetData_p2().

#define IDC_CHECK_RetainEmptyWindow 1518

sakura_rc.h の 587 行で定義されています。

参照元 CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_RTRIM_PREVLINE 1013

sakura_rc.h の 69 行で定義されています。

#define IDC_CHECK_SameTabWidth 1400

sakura_rc.h の 451 行で定義されています。

参照元 CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_SEARCHALL 1419

sakura_rc.h の 470 行で定義されています。

参照元 CDlgFind::GetData()・CDlgDiff::SetData().

#define IDC_CHECK_SENDSTDIN 1538

sakura_rc.h の 597 行で定義されています。

参照元 CDlgExec::GetData()・CDlgExec::SetData().

#define IDC_CHECK_SHIFT 1076

sakura_rc.h の 98 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CPropCommon::p5_ChangeKeyList().

#define IDC_CHECK_SortTabList 1540

sakura_rc.h の 599 行で定義されています。

参照元 CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_CHECK_SplitterWndHScroll 1077

sakura_rc.h の 104 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_SplitterWndVScroll 1399

sakura_rc.h の 447 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_CHECK_STAYTASKTRAY 1280

sakura_rc.h の 313 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1()・CPropCommon::GetData_p1().

#define IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH 1013

sakura_rc.h の 68 行で定義されています。

#define IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD 1012

sakura_rc.h の 66 行で定義されています。

#define IDC_CHECK_TAB_ARROW 1456

sakura_rc.h の 514 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropTypes::SetData_p1().

#define IDC_CHECK_TAG_MAKE_RECURSE 1472

sakura_rc.h の 532 行で定義されています。

参照元 CDlgTagsMake::GetData()・CDlgTagsMake::SetData().

#define IDC_CHECK_TILE_H 1296

sakura_rc.h の 329 行で定義されています。

参照元 CDlgCompare::GetData().

#define IDC_CHECK_TOOLBARISFLAT 1076

sakura_rc.h の 100 行で定義されています。

#define IDC_CHECK_TYPE_KEYHELPUSE 5138

sakura_rc.h の 642 行で定義されています。

#define IDC_CHECK_TYPEHTMLHELPISSINGLE 1424

sakura_rc.h の 475 行で定義されています。

参照元 CPropTypes::GetData_p2()・CPropTypes::SetData_p2().

#define IDC_CHECK_UNDERLINE 1085

sakura_rc.h の 121 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_CHECK_USETRAYICON 1279

sakura_rc.h の 311 行で定義されています。

参照元 CPropCommon::DispatchEvent_p1().

#define IDC_CHECK_WORDWRAP 1261

sakura_rc.h の 288 行で定義されています。

参照元 CDlgPrintSetting::OnChangeSettingType().

#define IDC_CHK_DEFAULTFOLDER 1123

sakura_rc.h の 189 行で定義されています。

#define IDC_CHK_FROMTHISTEXT 1076

sakura_rc.h の 99 行で定義されています。

参照元 CDlgGrep::OnBnClicked().

#define IDC_CHK_LOHICASE 1006

sakura_rc.h の 61 行で定義されています。

参照元 CDlgFind::GetData().

#define IDC_CHK_PASTE 1418

sakura_rc.h の 469 行で定義されています。

参照元 CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL().

#define IDC_CHK_REGULAREXP 1010

sakura_rc.h の 63 行で定義されています。

参照元 CDlgReplace::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CDlgGrep::OnBnClicked()・CDlgFind::OnBnClicked().

#define IDC_CHK_SUBFOLDER 1122

sakura_rc.h の 187 行で定義されています。

参照元 CDlgGrep::OnBnClicked().

#define IDC_CHK_WORD 1400

sakura_rc.h の 449 行で定義されています。

参照元 CDlgFind::GetData()・CDlgGrep::OnBnClicked()・CDlgFind::OnBnClicked().

#define IDC_COMBO1 1494

sakura_rc.h の 555 行で定義されています。

#define IDC_COMBO10 1503

sakura_rc.h の 572 行で定義されています。

#define IDC_COMBO2 1495

sakura_rc.h の 557 行で定義されています。

#define IDC_COMBO3 1496

sakura_rc.h の 558 行で定義されています。

#define IDC_COMBO4 1497

sakura_rc.h の 560 行で定義されています。

#define IDC_COMBO5 1498

sakura_rc.h の 562 行で定義されています。

#define IDC_COMBO6 1499

sakura_rc.h の 564 行で定義されています。

#define IDC_COMBO7 1500

sakura_rc.h の 566 行で定義されています。

#define IDC_COMBO8 1501

sakura_rc.h の 568 行で定義されています。

#define IDC_COMBO9 1502

sakura_rc.h の 570 行で定義されています。

#define IDC_COMBO_CHARSET 1217

sakura_rc.h の 261 行で定義されています。

参照元 CDlgGrep::GetData()・CDlgGrep::OnInitDialog().

#define IDC_COMBO_CODE 1146

sakura_rc.h の 211 行で定義されています。

参照元 OFNHookProc().

#define IDC_COMBO_EOL 1147

sakura_rc.h の 213 行で定義されています。

参照元 OFNHookProc().

#define IDC_COMBO_FILE 1118

sakura_rc.h の 180 行で定義されています。

参照元 CDlgGrep::OnBnClicked()・CDlgGrep::OnInitDialog().

#define IDC_COMBO_FOLDER 1119

sakura_rc.h の 182 行で定義されています。

参照元 CDlgGrep::OnBnClicked()・CDlgGrep::OnInitDialog().

#define IDC_COMBO_FONT_HAN 1244

sakura_rc.h の 283 行で定義されています。

参照元 CDlgPrintSetting::GetData()・CDlgPrintSetting::OnChangeSettingType()・CDlgPrintSetting::OnInitDialog()・CDlgPrintSetting::SetData()・SetData_EnumFontFamProc().

#define IDC_COMBO_FONT_ZEN 1245

sakura_rc.h の 284 行で定義されています。

参照元 CDlgPrintSetting::GetData()・CDlgPrintSetting::OnChangeSettingType()・CDlgPrintSetting::OnInitDialog()・CDlgPrintSetting::SetData()・SetData_EnumFontFamProc().

#define IDC_COMBO_FUNCKIND 1113

sakura_rc.h の 174 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_p8()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::SetData_p5()・CPropCommon::SetData_p8()・CPropCommon::SetData_PROP_TOOLBAR().

#define IDC_COMBO_IMESTATE 1303

sakura_rc.h の 337 行で定義されています。

#define IDC_COMBO_IMESWITCH 1304

sakura_rc.h の 339 行で定義されています。

#define IDC_COMBO_INDENTLAYOUT 1010

sakura_rc.h の 64 行で定義されています。

#define IDC_COMBO_KEYHELP_COLOR 5125

sakura_rc.h の 629 行で定義されています。

#define IDC_COMBO_m_szCommand 1328

sakura_rc.h の 380 行で定義されています。

参照元 CDlgExec::GetData()・CDlgExec::OnBnClicked()・CDlgExec::SetData().

#define IDC_COMBO_MACROID 1394

sakura_rc.h の 440 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro()・CPropCommon::SetMacro2List_Macro().

#define IDC_COMBO_MENU 1188

sakura_rc.h の 243 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8().

#define IDC_COMBO_MRU 1167

sakura_rc.h の 221 行で定義されています。

参照元 OFNHookProc().

#define IDC_COMBO_nSortType 1118

sakura_rc.h の 181 行で定義されています。

参照元 CDlgFuncList::OnCbnSelChange().

#define IDC_COMBO_OPENFOLDER 1169

sakura_rc.h の 223 行で定義されています。

参照元 OFNHookProc().

#define IDC_COMBO_OUTLINES 1301

sakura_rc.h の 334 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropTypes::SetData_p1().

#define IDC_COMBO_PAPER 1120

sakura_rc.h の 185 行で定義されています。

参照元 CDlgPrintSetting::GetData()・CDlgPrintSetting::OnChangeSettingType()・CDlgPrintSetting::OnInitDialog()・CDlgPrintSetting::SetData().

#define IDC_COMBO_PLSQLBLOCKS 1164

sakura_rc.h の 220 行で定義されています。

参照元 CDlgJump::OnBnClicked()・CDlgJump::OnCbnSelChange()・CDlgJump::SetData().

#define IDC_COMBO_REGEX_COLOR 1408

sakura_rc.h の 458 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_COMBO_SET 1179

sakura_rc.h の 230 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropCommon::DispatchEvent_p7()・CPropCommon::SetData_p7().

#define IDC_COMBO_SET2 1180

sakura_rc.h の 231 行で定義されています。

#define IDC_COMBO_SETTINGNAME 1119

sakura_rc.h の 184 行で定義されています。

参照元 CDlgPrintSetting::OnBnClicked()・CDlgPrintSetting::OnCbnSelChange()・CDlgPrintSetting::OnChangeSettingType()・CDlgPrintSetting::OnInitDialog().

#define IDC_COMBO_SMARTINDENT 1302

sakura_rc.h の 335 行で定義されています。

#define IDC_COMBO_TEXT 1021

sakura_rc.h の 74 行で定義されています。

参照元 CEditView::Command_REPLACE_DIALOG()・CEditView::Command_SEARCH_DIALOG()・CDlgReplace::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CDlgFind::OnBnClicked()・CDlgReplace::OnInitDialog()・CDlgGrep::OnInitDialog()・CDlgReplace::SetData()・CDlgGrep::SetData()・CDlgFind::SetData()・CDlgExec::SetData().

#define IDC_COMBO_TEXT2 1022

sakura_rc.h の 75 行で定義されています。

参照元 CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CDlgReplace::GetData()・CDlgReplace::OnBnClicked()・CDlgReplace::OnInitDialog().

#define IDC_COMBO_WINTYPE 1490

sakura_rc.h の 550 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::OnInitDialog()・CDlgWinSize::SetData().

#define IDC_CURSOR_COPYARROW 220

sakura_rc.h の 40 行で定義されています。

#define IDC_CURSOR_HAND 221

sakura_rc.h の 41 行で定義されています。

参照元 CPrintPreview::OnMouseMove()・CEditView::OnMOUSEMOVE()・CUrlWnd::UrlWndProc().

#define IDC_CURSOR_ISEARCH_B 242

sakura_rc.h の 53 行で定義されています。

参照元 CEditView::OnMOUSEMOVE().

#define IDC_CURSOR_ISEARCH_F 241

sakura_rc.h の 52 行で定義されています。

参照元 CEditView::OnMOUSEMOVE().

#define IDC_CURSOR_MOVEARROW 222

sakura_rc.h の 42 行で定義されています。

#define IDC_CURSOR_RVARROW 223

sakura_rc.h の 43 行で定義されています。

参照元 CEditView::OnMOUSEMOVE().

#define IDC_CURSOR_TAB_JOIN 248

sakura_rc.h の 59 行で定義されています。

参照元 CTabWnd::OnTabMouseMove().

#define IDC_CURSOR_TAB_LEFT 245

sakura_rc.h の 56 行で定義されています。

参照元 CTabWnd::OnTabMouseMove().

#define IDC_CURSOR_TAB_RIGHT 246

sakura_rc.h の 57 行で定義されています。

参照元 CTabWnd::OnTabMouseMove().

#define IDC_CURSOR_TAB_SEPARATE 247

sakura_rc.h の 58 行で定義されています。

参照元 CTabWnd::OnTabMouseMove().

#define IDC_EDIT1 1086

sakura_rc.h の 122 行で定義されています。

参照元 CDlgInput1::DispatchEvent().

#define IDC_EDIT2 1327

sakura_rc.h の 373 行で定義されています。

#define IDC_EDIT_ABOUT 1398

sakura_rc.h の 446 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define IDC_EDIT_AUTOBACKUP_INTERVAL 1092

sakura_rc.h の 150 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_EDIT_BACKUP_3 1327

sakura_rc.h の 374 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_EDIT_BACKUPFILE 1504

sakura_rc.h の 573 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_EDIT_BACKUPFOLDER 1086

sakura_rc.h の 123 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP().

#define IDC_EDIT_BLOCKCOMMENT_FROM 1086

sakura_rc.h の 126 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_EDIT_BLOCKCOMMENT_FROM2 1087

sakura_rc.h の 134 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_EDIT_BLOCKCOMMENT_TO 1109

sakura_rc.h の 160 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_EDIT_BLOCKCOMMENT_TO2 1112

sakura_rc.h の 173 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_EDIT_CHARSPACE 1031

sakura_rc.h の 78 行で定義されています。

#define IDC_EDIT_DANSPACE 1113

sakura_rc.h の 175 行で定義されています。

#define IDC_EDIT_DANSUU 1260

sakura_rc.h の 287 行で定義されています。

#define IDC_EDIT_DEBUG 1278

sakura_rc.h の 309 行で定義されています。

参照元 CDlgDebug::DispatchEvent().

#define IDC_EDIT_DFORM 1323

sakura_rc.h の 358 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::EnableFormatPropInput()・CPropCommon::SetData_p9().

#define IDC_EDIT_DFORM_EX 1319

sakura_rc.h の 354 行で定義されています。

参照元 CPropCommon::ChangeDateExample().

#define IDC_EDIT_DIFF_DST 1429

sakura_rc.h の 482 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::OnBnClicked()・CDlgDiff::OnEditChange().

#define IDC_EDIT_EXTHELP1 1086

sakura_rc.h の 124 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_EDIT_EXTHTMLHELP 1087

sakura_rc.h の 132 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_EDIT_FNAME_FROM 1455

sakura_rc.h の 513 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_EDIT_FNAME_TO 1087

sakura_rc.h の 135 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME().

#define IDC_EDIT_FONTWIDTH 1259

sakura_rc.h の 286 行で定義されています。

#define IDC_EDIT_FOOT1 1243

sakura_rc.h の 282 行で定義されています。

#define IDC_EDIT_FOOT2 1278

sakura_rc.h の 310 行で定義されています。

#define IDC_EDIT_FOOT3 1279

sakura_rc.h の 312 行で定義されています。

#define IDC_EDIT_FROM 1333

sakura_rc.h の 388 行で定義されています。

参照元 CDlgPrintPage::GetData()・CDlgPrintPage::OnBnClicked()・CDlgPrintPage::SetData().

#define IDC_EDIT_FUNCKEYWND_GROUPNUM 1431

sakura_rc.h の 486 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_EDIT_HEAD1 1270

sakura_rc.h の 301 行で定義されています。

#define IDC_EDIT_HEAD2 1275

sakura_rc.h の 306 行で定義されています。

#define IDC_EDIT_HEAD3 1276

sakura_rc.h の 307 行で定義されています。

#define IDC_EDIT_HOKANFILE 1201

sakura_rc.h の 252 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2()・CPropTypes::GetData_p2()・CPropTypes::SetData_p2().

#define IDC_EDIT_INDENTCHARS 1110

sakura_rc.h の 165 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropTypes::GetData_p1()・CPropTypes::SetData_p1().

#define IDC_EDIT_INYOUKIGOU 1194

sakura_rc.h の 248 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::GetData_p9()・CPropCommon::SetData_p9().

#define IDC_EDIT_KEYHELP 5123

sakura_rc.h の 627 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::SetData_KeyHelp().

#define IDC_EDIT_KEYSFUNC 1273

sakura_rc.h の 304 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define IDC_EDIT_KEYWORDHELPFILE 1088

sakura_rc.h の 138 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2().

#define IDC_EDIT_KINSOKUHEAD 1428

sakura_rc.h の 479 行で定義されています。

#define IDC_EDIT_KINSOKUTAIL 1429

sakura_rc.h の 481 行で定義されています。

#define IDC_EDIT_LINECOMMENT 1110

sakura_rc.h の 164 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_EDIT_LINECOMMENT2 1111

sakura_rc.h の 169 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_EDIT_LINECOMMENT3 1113

sakura_rc.h の 176 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

#define IDC_EDIT_LINECOMMENTPOS 1234

sakura_rc.h の 272 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::EnableTypesPropInput().

#define IDC_EDIT_LINECOMMENTPOS2 1235

sakura_rc.h の 274 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_EDIT_LINECOMMENTPOS3 1236

sakura_rc.h の 276 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_EDIT_LINENUM 1074

sakura_rc.h の 94 行で定義されています。

参照元 CDlgJump::GetData()・CDlgJump::OnNotify()・CDlgJump::SetData().

#define IDC_EDIT_LINESPACE 1037

sakura_rc.h の 81 行で定義されています。

#define IDC_EDIT_LINETERMCHAR 1220

sakura_rc.h の 263 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::EnableTypesPropInput().

#define IDC_EDIT_MARGINBY 1110

sakura_rc.h の 167 行で定義されています。

#define IDC_EDIT_MARGINLX 1111

sakura_rc.h の 170 行で定義されています。

#define IDC_EDIT_MARGINRX 1112

sakura_rc.h の 172 行で定義されています。

#define IDC_EDIT_MARGINTY 1109

sakura_rc.h の 162 行で定義されています。

#define IDC_EDIT_MAX_MRU_FILE 1186

sakura_rc.h の 237 行で定義されています。

#define IDC_EDIT_MAX_MRU_FOLDER 1110

sakura_rc.h の 166 行で定義されています。

#define IDC_EDIT_MAXLINELEN 1029

sakura_rc.h の 77 行で定義されています。

#define IDC_EDIT_MENUNAME 1382

sakura_rc.h の 429 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8().

#define IDC_EDIT_MIDASHIKIGOU 1193

sakura_rc.h の 247 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::GetData_p9()・CPropCommon::SetData_p9().

#define IDC_EDIT_MIGEMO_DICT 1089

sakura_rc.h の 144 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_EDIT_MIGEMO_DLL 1088

sakura_rc.h の 140 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

#define IDC_EDIT_nDropFileNumMax 1298

sakura_rc.h の 331 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::EnableFilePropInput()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

#define IDC_EDIT_nLineNumberRightSpace 1110

sakura_rc.h の 168 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_EDIT_nRulerBottomSpace 1109

sakura_rc.h の 163 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_EDIT_nRulerHeight 1294

sakura_rc.h の 327 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_EDIT_OUTLINERULEFILE 1426

sakura_rc.h の 477 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

#define IDC_EDIT_PLSQL_E1 1086

sakura_rc.h の 125 行で定義されています。

参照元 CDlgJump::GetData()・CDlgJump::OnBnClicked()・CDlgJump::OnCbnSelChange()・CDlgJump::OnNotify()・CDlgJump::SetData().

#define IDC_EDIT_REGEX 1404

sakura_rc.h の 455 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_EDIT_REGEXPLIB 1524

sakura_rc.h の 593 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP()・CPropCommon::SetRegexpVersion().

#define IDC_EDIT_REPEATEDSCROLLLINENUM 1098

sakura_rc.h の 153 行で定義されています。

#define IDC_EDIT_SX 1329

sakura_rc.h の 383 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::SetData().

#define IDC_EDIT_SY 1330

sakura_rc.h の 385 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::SetData().

#define IDC_EDIT_TABSPACE 1050

sakura_rc.h の 86 行で定義されています。

#define IDC_EDIT_TABVIEWSTRING 1039

sakura_rc.h の 84 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropTypes::GetData_p1()・CPropTypes::SetData_p1().

#define IDC_EDIT_TAG_MAKE_CMDLINE 1327

sakura_rc.h の 377 行で定義されています。

参照元 CDlgTagsMake::GetData()・CDlgTagsMake::SetData().

#define IDC_EDIT_TAG_MAKE_FOLDER 1473

sakura_rc.h の 533 行で定義されています。

参照元 CDlgTagsMake::GetData()・CDlgTagsMake::SelectFolder()・CDlgTagsMake::SetData().

#define IDC_EDIT_TFORM 1087

sakura_rc.h の 133 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::EnableFormatPropInput()・CPropCommon::SetData_p9().

#define IDC_EDIT_TFORM_EX 1322

sakura_rc.h の 357 行で定義されています。

参照元 CPropCommon::ChangeTimeExample().

#define IDC_EDIT_TO 1105

sakura_rc.h の 159 行で定義されています。

参照元 CDlgPrintPage::GetData()・CDlgPrintPage::OnBnClicked()・CDlgPrintPage::SetData().

#define IDC_EDIT_TYPEEXTHELP 1420

sakura_rc.h の 471 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2()・CPropTypes::GetData_p2()・CPropTypes::SetData_p2().

#define IDC_EDIT_TYPEEXTHTMLHELP 1421

sakura_rc.h の 472 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2()・CPropTypes::GetData_p2()・CPropTypes::SetData_p2().

#define IDC_EDIT_TYPEEXTS 1109

sakura_rc.h の 161 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropTypes::GetData_p1()・CPropTypes::SetData_p1().

#define IDC_EDIT_TYPENAME 1086

sakura_rc.h の 127 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropTypes::GetData_p1()・CPropTypes::SetData_p1().

#define IDC_EDIT_VERTLINE 1327

sakura_rc.h の 379 行で定義されています。

#define IDC_EDIT_WX 1327

sakura_rc.h の 378 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::RenewItemState()・CDlgWinSize::SetData().

#define IDC_EDIT_WY 1328

sakura_rc.h の 381 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::RenewItemState()・CDlgWinSize::SetData().

#define IDC_FILEUPDATEMSG 1437

sakura_rc.h の 496 行で定義されています。

#define IDC_FRAME_DIFF_DST 1438

sakura_rc.h の 497 行で定義されています。

#define IDC_FRAME_DIFF_FILE12 1436

sakura_rc.h の 494 行で定義されています。

#define IDC_FRAME_KEYHELP 5120

sakura_rc.h の 624 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_FRAME_REGEX 1416

sakura_rc.h の 466 行で定義されています。

#define IDC_FRAME_SEARCH_MSG 1474

sakura_rc.h の 534 行で定義されています。

#define IDC_GROUP_FUNCKEYWND_POSITION 1357

sakura_rc.h の 409 行で定義されています。

参照元 CPropCommon::EnableWinPropInput().

#define IDC_HIDE 1000

sakura_rc.h の 60 行で定義されています。

#define IDC_HOTKEY1 1493

sakura_rc.h の 553 行で定義されています。

#define IDC_HOTKEY_TRAYMENU 1286

sakura_rc.h の 320 行で定義されています。

参照元 CPropCommon::GetData_p1().

#define IDC_KEYWORD 1499

sakura_rc.h の 565 行で定義されています。

参照元 CDlgTagJumpList::GetData()・CDlgTagJumpList::OnInitDialog()・CDlgTagJumpList::OnTimer()・CDlgTagJumpList::SetData().

#define IDC_LABEL_AUTOSAVE 1337

sakura_rc.h の 392 行で定義されています。

#define IDC_LABEL_AUTOSAVE2 1342

sakura_rc.h の 394 行で定義されています。

#define IDC_LABEL_AUTOSAVE3 1343

sakura_rc.h の 395 行で定義されています。

参照元 CPropCommon::EnableFilePropInput().

#define IDC_LABEL_AUTOSAVE4 1344

sakura_rc.h の 396 行で定義されています。

参照元 CPropCommon::EnableFilePropInput().

#define IDC_LABEL_BACKUP_3 1336

sakura_rc.h の 391 行で定義されています。

参照元 CPropCommon::EnableBackupInput().

#define IDC_LABEL_BACKUP_4 1338

sakura_rc.h の 393 行で定義されています。

#define IDC_LABEL_BACKUP_HELP 1505

sakura_rc.h の 574 行で定義されています。

参照元 CPropCommon::EnableBackupInput().

#define IDC_LABEL_BACKUP_HELP2 1509

sakura_rc.h の 578 行で定義されています。

参照元 CPropCommon::EnableBackupInput().

#define IDC_LABEL_DFORM 1358

sakura_rc.h の 410 行で定義されています。

参照元 CPropCommon::EnableFormatPropInput().

#define IDC_LABEL_FROM 1360

sakura_rc.h の 412 行で定義されています。

参照元 CDlgPrintPage::OnBnClicked()・CDlgPrintPage::SetData().

#define IDC_LABEL_FUNCtoKEY 1352

sakura_rc.h の 405 行で定義されています。

#define IDC_LABEL_KEYHELP_ABOUT 5136

sakura_rc.h の 640 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYHELP_KEYWORD 5122

sakura_rc.h の 626 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYHELP_PRIOR 5139

sakura_rc.h の 643 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYHELP_TITLE 5124

sakura_rc.h の 628 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

#define IDC_LABEL_KEYKIND 1351

sakura_rc.h の 404 行で定義されています。

#define IDC_LABEL_KEYtoFUNC 1353

sakura_rc.h の 406 行で定義されています。

#define IDC_LABEL_KEYWORDHELPFILE 1365

sakura_rc.h の 417 行で定義されています。

#define IDC_LABEL_LCPOS 1391

sakura_rc.h の 436 行で定義されています。

参照元 CPropTypes::EnableTypesPropInput().

#define IDC_LABEL_LCPOS2 1392

sakura_rc.h の 437 行で定義されています。

#define IDC_LABEL_LCPOS3 1393

sakura_rc.h の 438 行で定義されています。

#define IDC_LABEL_LINETERMCHAR 1356

sakura_rc.h の 408 行で定義されています。

参照元 CPropTypes::EnableTypesPropInput().

#define IDC_LABEL_MENU 1347

sakura_rc.h の 399 行で定義されています。

#define IDC_LABEL_MENUCHOICE 1348

sakura_rc.h の 400 行で定義されています。

#define IDC_LABEL_MENUFUNC 1345

sakura_rc.h の 397 行で定義されています。

#define IDC_LABEL_MENUFUNCKIND 1346

sakura_rc.h の 398 行で定義されています。

#define IDC_LABEL_MENUKEYCHANGE 1349

sakura_rc.h の 401 行で定義されています。

#define IDC_LABEL_MENUNAME 1350

sakura_rc.h の 403 行で定義されています。

#define IDC_LABEL_PLSQL1 1362

sakura_rc.h の 414 行で定義されています。

参照元 CDlgJump::OnBnClicked().

#define IDC_LABEL_PLSQL2 1363

sakura_rc.h の 415 行で定義されています。

参照元 CDlgJump::OnBnClicked().

#define IDC_LABEL_PLSQL3 1364

sakura_rc.h の 416 行で定義されています。

参照元 CDlgJump::OnBnClicked().

#define IDC_LABEL_REGEX_COLOR 1409

sakura_rc.h の 459 行で定義されています。

#define IDC_LABEL_REGEX_KEYWORD 1410

sakura_rc.h の 460 行で定義されています。

#define IDC_LABEL_REGEX_VERSION 1417

sakura_rc.h の 467 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex().

#define IDC_LABEL_REGEXP 1522

sakura_rc.h の 592 行で定義されています。

#define IDC_LABEL_REGEXP_VER 1525

sakura_rc.h の 594 行で定義されています。

参照元 CPropCommon::SetRegexpVersion().

#define IDC_LABEL_TFORM 1359

sakura_rc.h の 411 行で定義されています。

参照元 CPropCommon::EnableFormatPropInput().

#define IDC_LABEL_TO 1361

sakura_rc.h の 413 行で定義されています。

参照元 CDlgPrintPage::OnBnClicked()・CDlgPrintPage::SetData().

#define IDC_LABEL_TOOLBAR 1350

sakura_rc.h の 402 行で定義されています。

#define IDC_LANEL_NOTE 1373

sakura_rc.h の 423 行で定義されています。

#define IDC_LIST1 1092

sakura_rc.h の 148 行で定義されています。

参照元 CDlgFuncList::GetData()・CDlgFuncList::OnBnClicked()・CDlgFuncList::OnInitDialog()・CDlgFuncList::OnNotify()・CDlgFuncList::OnSize()・CDlgFuncList::SetData()・CDlgFuncList::SetListVB().

#define IDC_LIST_ASSIGNEDKEYS 1129

sakura_rc.h の 192 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5().

#define IDC_LIST_COLORS 1211

sakura_rc.h の 255 行で定義されています。

参照元 CDlgSameColor::DispatchEvent()・CPropTypes::DispatchEvent_p3_new()・CDlgSameColor::OnBnClicked()・CDlgSameColor::OnDrawItem()・CDlgSameColor::OnInitDialog().

#define IDC_LIST_CTRLCODE 1438

sakura_rc.h の 498 行で定義されています。

参照元 CDlgCtrlCode::GetData()・CDlgCtrlCode::OnInitDialog()・CDlgCtrlCode::OnNotify()・CDlgCtrlCode::SetData().

#define IDC_LIST_DIFF_FILES 1437

sakura_rc.h の 495 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::OnBnClicked()・CDlgDiff::OnCbnSelChange()・CDlgDiff::OnEditChange()・CDlgDiff::SetData().

#define IDC_LIST_FAVORITE_CMD 1464

sakura_rc.h の 522 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_FILE 1458

sakura_rc.h の 516 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_FOLDER 1459

sakura_rc.h の 517 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_GREP_FILE 1460

sakura_rc.h の 518 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_GREP_FOLDER 1461

sakura_rc.h の 519 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_REPLACE 1462

sakura_rc.h の 520 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FAVORITE_SEARCH 1463

sakura_rc.h の 521 行で定義されています。

参照元 CDlgFavorite::CDlgFavorite().

#define IDC_LIST_FILES 1223

sakura_rc.h の 266 行で定義されています。

参照元 CDlgCompare::GetData()・CDlgCompare::SetData().

#define IDC_LIST_FNAME 1454

sakura_rc.h の 512 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::GetData_PROP_FILENAME()・CPropCommon::SetData_PROP_FILENAME().

#define IDC_LIST_FUNC 1112

sakura_rc.h の 171 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_p8()・CPropCommon::DispatchEvent_PROP_TOOLBAR().

#define IDC_LIST_ITEMINFO 1514

sakura_rc.h の 582 行で定義されています。

参照元 CDlgSameColor::DispatchEvent()・CDlgSameColor::OnSelChangeListColors().

#define IDC_LIST_KEY 1114

sakura_rc.h の 177 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CPropCommon::p5_ChangeKeyList().

#define IDC_LIST_KEYHELP 5121

sakura_rc.h の 625 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp()・CPropTypes::GetData_KeyHelp()・CPropTypes::Import_KeyHelp()・CPropTypes::SetData_KeyHelp().

#define IDC_LIST_KEYWORD 1181

sakura_rc.h の 232 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7()・CPropCommon::DispKeywordCount()・CPropCommon::SetData_p7_KeyWordSet().

#define IDC_LIST_REGEX 1407

sakura_rc.h の 457 行で定義されています。

参照元 CPropTypes::DispatchEvent_Regex()・CPropTypes::GetData_Regex().

#define IDC_LIST_RES 1138

sakura_rc.h の 200 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8()・CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::GetData_PROP_TOOLBAR()・CPropCommon::SetData_PROP_TOOLBAR().

#define IDC_LIST_TAGJUMP 1468

sakura_rc.h の 526 行で定義されています。

参照元 CDlgTagJumpList::GetData()・CDlgTagJumpList::OnInitDialog()・CDlgTagJumpList::OnNotify()・CDlgTagJumpList::UpdateData().

#define IDC_LIST_TYPES 1153

sakura_rc.h の 217 行で定義されています。

参照元 CDlgTypeList::OnBnClicked()・CDlgTypeList::OnLbnDblclk()・CDlgTypeList::SetData().

#define IDC_LIST_WORDS 1312

sakura_rc.h の 348 行で定義されています。

参照元 CHokanMgr::DoHokan()・CHokanMgr::DoModeless()・CHokanMgr::OnSize()・CHokanMgr::ShowTip().

#define IDC_MACRO_REG 1393

sakura_rc.h の 439 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro().

#define IDC_MACRODIR 1401

sakura_rc.h の 452 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::OnFileDropdown_Macro()・CPropCommon::SelectBaseDir_Macro().

#define IDC_MACRODIRREF 1402

sakura_rc.h の 453 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro().

#define IDC_MACROLIST 1396

sakura_rc.h の 444 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::GetData_PROP_Macro()・CPropCommon::InitDialog_PROP_Macro()・CPropCommon::SetData_PROP_Macro()・CPropCommon::SetMacro2List_Macro().

#define IDC_MACRONAME 1397

sakura_rc.h の 445 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::SetMacro2List_Macro().

#define IDC_MACROPATH 1327

sakura_rc.h の 375 行で定義されています。

参照元 CPropCommon::CheckListPosition_Macro()・CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::OnFileDropdown_Macro()・CPropCommon::SetMacro2List_Macro().

#define IDC_PROGRESS 1311

sakura_rc.h の 347 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

#define IDC_PROGRESS_REPLACE 1195

sakura_rc.h の 249 行で定義されています。

#define IDC_QUERYRELOADMSG 1441

sakura_rc.h の 502 行で定義されています。

参照元 CDlgFileUpdateQuery::OnInitDialog().

#define IDC_RADIO_ADD 1326

sakura_rc.h の 371 行で定義されています。

#define IDC_RADIO_ALL 1324

sakura_rc.h の 359 行で定義されています。

参照元 CDlgPrintPage::GetData()・CDlgPrintPage::OnBnClicked()・CDlgPrintPage::SetData().

#define IDC_RADIO_ALLAREA 1078

sakura_rc.h の 107 行で定義されています。

参照元 CDlgReplace::OnBnClicked()・CDlgReplace::OnInitDialog().

#define IDC_RADIO_BACKUP_DATETYPE1 1324

sakura_rc.h の 361 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::EnableBackupInput()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::SetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_DATETYPE1A 1507

sakura_rc.h の 576 行で定義されています。

参照元 CPropCommon::EnableBackupInput()・CPropCommon::GetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_DATETYPE2 1325

sakura_rc.h の 367 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::EnableBackupInput()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::SetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_DATETYPE2A 1508

sakura_rc.h の 577 行で定義されています。

参照元 CPropCommon::EnableBackupInput().

#define IDC_RADIO_BACKUP_TYPE1 1078

sakura_rc.h の 105 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::EnableBackupInput()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::SetData_PROP_BACKUP().

#define IDC_RADIO_BACKUP_TYPE2 1079

sakura_rc.h の 111 行で定義されています。

#define IDC_RADIO_BACKUP_TYPE3 1090

sakura_rc.h の 145 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::EnableBackupInput()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::SetData_PROP_BACKUP().

#define IDC_RADIO_CARETTYPE0 1147

sakura_rc.h の 212 行で定義されています。

参照元 CPropCommon::GetData_p1()・CPropCommon::SetData_p1().

#define IDC_RADIO_CARETTYPE1 1078

sakura_rc.h の 108 行で定義されています。

参照元 CPropCommon::GetData_p1()・CPropCommon::SetData_p1().

#define IDC_RADIO_DFORM_0 1317

sakura_rc.h の 352 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::GetData_p9()・CPropCommon::SetData_p9().

#define IDC_RADIO_DFORM_1 1318

sakura_rc.h の 353 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::EnableFormatPropInput()・CPropCommon::SetData_p9().

#define IDC_RADIO_DIFF_DST1 1326

sakura_rc.h の 372 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::OnBnClicked()・CDlgDiff::OnCbnSelChange()・CDlgDiff::OnEditChange().

#define IDC_RADIO_DIFF_DST2 1327

sakura_rc.h の 376 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::OnBnClicked()・CDlgDiff::OnCbnSelChange()・CDlgDiff::OnEditChange().

#define IDC_RADIO_DIFF_FILE1 1324

sakura_rc.h の 363 行で定義されています。

参照元 CDlgDiff::OnBnClicked()・CDlgDiff::SetData().

#define IDC_RADIO_DIFF_FILE2 1325

sakura_rc.h の 370 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::OnBnClicked()・CDlgDiff::SetData().

#define IDC_RADIO_EDITWINDOW 1537

sakura_rc.h の 596 行で定義されています。

参照元 CDlgExec::GetData()・CDlgExec::OnBnClicked()・CDlgExec::SetData().

#define IDC_RADIO_ESCAPETYPE_1 1150

sakura_rc.h の 215 行で定義されています。

#define IDC_RADIO_ESCAPETYPE_2 1151

sakura_rc.h の 216 行で定義されています。

#define IDC_RADIO_FROMTO 1325

sakura_rc.h の 365 行で定義されています。

参照元 CDlgPrintPage::OnBnClicked()・CDlgPrintPage::SetData().

#define IDC_RADIO_FUNCKEYWND_PLACE1 1190

sakura_rc.h の 244 行で定義されています。

参照元 CPropCommon::EnableWinPropInput()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_RADIO_FUNCKEYWND_PLACE2 1079

sakura_rc.h の 112 行で定義されています。

参照元 CPropCommon::EnableWinPropInput()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_RADIO_INSERT 1325

sakura_rc.h の 368 行で定義されています。

#define IDC_RADIO_LANDSCAPE 1325

sakura_rc.h の 366 行で定義されています。

#define IDC_RADIO_LINENUM_CRLF 1215

sakura_rc.h の 259 行で定義されています。

参照元 CDlgJump::OnBnClicked().

#define IDC_RADIO_LINENUM_LAYOUT 1214

sakura_rc.h の 258 行で定義されています。

参照元 CDlgJump::GetData()・CDlgJump::OnBnClicked().

#define IDC_RADIO_LINETERMTYPE0 1221

sakura_rc.h の 264 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_RADIO_LINETERMTYPE1 1222

sakura_rc.h の 265 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_RADIO_LINETERMTYPE2 1218

sakura_rc.h の 262 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::EnableTypesPropInput().

#define IDC_RADIO_nRulerType_0 1158

sakura_rc.h の 219 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_RADIO_nRulerType_1 1078

sakura_rc.h の 109 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_RADIO_OUTLINEDEFAULT 1324

sakura_rc.h の 364 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

#define IDC_RADIO_OUTLINERULEFILE 1325

sakura_rc.h の 369 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

#define IDC_RADIO_OUTPUT 1536

sakura_rc.h の 595 行で定義されています。

参照元 CDlgExec::OnBnClicked()・CDlgExec::SetData().

#define IDC_RADIO_OUTPUTLINE 1132

sakura_rc.h の 194 行で定義されています。

参照元 CDlgGrep::GetData().

#define IDC_RADIO_OUTPUTMARKED 1078

sakura_rc.h の 106 行で定義されています。

#define IDC_RADIO_OUTPUTSTYLE1 1158

sakura_rc.h の 218 行で定義されています。

参照元 CDlgGrep::GetData().

#define IDC_RADIO_OUTPUTSTYLE2 1282

sakura_rc.h の 315 行で定義されています。

参照元 CDlgGrep::GetData().

#define IDC_RADIO_PORTRAIT 1324

sakura_rc.h の 360 行で定義されています。

参照元 CDlgPrintSetting::GetData().

#define IDC_RADIO_REPLACE 1324

sakura_rc.h の 362 行で定義されています。

#define IDC_RADIO_SELECTEDAREA 1133

sakura_rc.h の 195 行で定義されています。

参照元 CDlgReplace::GetData()・CDlgReplace::OnBnClicked()・CDlgReplace::OnInitDialog().

#define IDC_RADIO_TFORM_0 1320

sakura_rc.h の 355 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::SetData_p9().

#define IDC_RADIO_TFORM_1 1321

sakura_rc.h の 356 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::EnableFormatPropInput()・CPropCommon::SetData_p9().

#define IDC_RADIO_WINPOS_DEF 1485

sakura_rc.h の 545 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::OnBnClicked()・CDlgWinSize::SetData().

#define IDC_RADIO_WINPOS_SAVE 1486

sakura_rc.h の 546 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::OnBnClicked()・CDlgWinSize::SetData().

#define IDC_RADIO_WINPOS_SET 1487

sakura_rc.h の 547 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::OnBnClicked()・CDlgWinSize::RenewItemState()・CDlgWinSize::SetData().

#define IDC_RADIO_WINSIZE_DEF 1480

sakura_rc.h の 540 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::OnBnClicked()・CDlgWinSize::SetData().

#define IDC_RADIO_WINSIZE_SAVE 1481

sakura_rc.h の 541 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::OnBnClicked()・CDlgWinSize::SetData().

#define IDC_RADIO_WINSIZE_SET 1482

sakura_rc.h の 542 行で定義されています。

参照元 CDlgWinSize::GetData()・CDlgWinSize::OnBnClicked()・CDlgWinSize::RenewItemState()・CDlgWinSize::SetData().

#define IDC_SLIDER_VIEW 1466

sakura_rc.h の 524 行で定義されています。

#define IDC_SPIN_AUTOBACKUP_INTERVAL 1367

sakura_rc.h の 419 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2().

#define IDC_SPIN_BACKUP_GENS 1366

sakura_rc.h の 418 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::EnableBackupInput().

#define IDC_SPIN_CHARSPACE 1035

sakura_rc.h の 80 行で定義されています。

#define IDC_SPIN_DANSPACE 1247

sakura_rc.h の 285 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_DANSUU 1242

sakura_rc.h の 281 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_FONTWIDTH 1241

sakura_rc.h の 280 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_FUNCKEYWND_GROUPNUM 1430

sakura_rc.h の 484 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define IDC_SPIN_LCColNum 1390

sakura_rc.h の 435 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::EnableTypesPropInput().

#define IDC_SPIN_LCColNum2 1186

sakura_rc.h の 239 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_SPIN_LCColNum3 1187

sakura_rc.h の 242 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_SPIN_LINENUM 1372

sakura_rc.h の 422 行で定義されています。

参照元 CDlgJump::OnNotify().

#define IDC_SPIN_LINESPACE 1038

sakura_rc.h の 82 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_MARGINBY 1237

sakura_rc.h の 277 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_MARGINLX 1238

sakura_rc.h の 278 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_MARGINRX 1239

sakura_rc.h の 279 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_MARGINTY 1236

sakura_rc.h の 275 行で定義されています。

参照元 CDlgPrintSetting::OnNotify()・CDlgPrintSetting::OnSpin().

#define IDC_SPIN_MAX_MRU_FILE 1184

sakura_rc.h の 233 行で定義されています。

#define IDC_SPIN_MAX_MRU_FOLDER 1185

sakura_rc.h の 234 行で定義されています。

#define IDC_SPIN_MAXLINELEN 1034

sakura_rc.h の 79 行で定義されています。

#define IDC_SPIN_nDropFileNumMax 1185

sakura_rc.h の 235 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::EnableFilePropInput().

#define IDC_SPIN_nLineNumberRightSpace 1186

sakura_rc.h の 240 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define IDC_SPIN_nRulerBottomSpace 1185

sakura_rc.h の 236 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define IDC_SPIN_nRulerHeight 1368

sakura_rc.h の 420 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN().

#define IDC_SPIN_PLSQL_E1 1186

sakura_rc.h の 238 行で定義されています。

参照元 CDlgJump::OnBnClicked()・CDlgJump::OnNotify().

#define IDC_SPIN_REPEATEDSCROLLLINENUM 1039

sakura_rc.h の 83 行で定義されています。

#define IDC_SPIN_SX 1488

sakura_rc.h の 548 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_SPIN_SY 1489

sakura_rc.h の 549 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_SPIN_TABSPACE 1040

sakura_rc.h の 85 行で定義されています。

#define IDC_SPIN_WX 1483

sakura_rc.h の 543 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_SPIN_WY 1484

sakura_rc.h の 544 行で定義されています。

参照元 CDlgWinSize::OnInitDialog().

#define IDC_STATIC -1

sakura_rc.h の 648 行で定義されています。

#define IDC_STATIC_ALL 1334

sakura_rc.h の 389 行で定義されています。

参照元 CDlgPrintPage::SetData().

#define IDC_STATIC_CMD 1330

sakura_rc.h の 384 行で定義されています。

#define IDC_STATIC_COLOR 1510

sakura_rc.h の 579 行で定義されています。

参照元 CDlgSameColor::OnInitDialog().

#define IDC_STATIC_COMPARESRC 1224

sakura_rc.h の 267 行で定義されています。

#define IDC_STATIC_CURFILE 1310

sakura_rc.h の 346 行で定義されています。

参照元 CEditView::DoGrep().

#define IDC_STATIC_CURPATH 1123

sakura_rc.h の 188 行で定義されています。

参照元 CEditView::DoGrepTree().

#define IDC_STATIC_DIFF_SRC 1428

sakura_rc.h の 480 行で定義されています。

参照元 CDlgDiff::SetData().

#define IDC_STATIC_ENABLECOLMNS 1283

sakura_rc.h の 317 行で定義されています。

参照元 CDlgPrintSetting::OnTimer().

#define IDC_STATIC_ENABLELINES 1284

sakura_rc.h の 319 行で定義されています。

参照元 CDlgPrintSetting::OnTimer().

#define IDC_STATIC_EOL 1385

sakura_rc.h の 432 行で定義されています。

参照元 OFNHookProc().

#define IDC_STATIC_FAVORITE_MSG 1476

sakura_rc.h の 536 行で定義されています。

参照元 CDlgFavorite::OnActivate()・CDlgFavorite::OnBnClicked()・CDlgFavorite::OnNotify().

#define IDC_STATIC_HAIKEI 1216

sakura_rc.h の 260 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

#define IDC_STATIC_HITCOUNT 1124

sakura_rc.h の 190 行で定義されています。

参照元 CEditView::DoGrep()・CEditView::DoGrepFile().

#define IDC_STATIC_JOBNAME 1331

sakura_rc.h の 386 行で定義されています。

#define IDC_STATIC_JRE32VER 1065

sakura_rc.h の 89 行で定義されています。

参照元 CDlgGrep::OnBnClicked()・CDlgFind::OnBnClicked().

#define IDC_STATIC_KENSUU 1197

sakura_rc.h の 250 行で定義されています。

#define IDC_STATIC_KEYWORD 1500

sakura_rc.h の 567 行で定義されています。

参照元 CDlgTagJumpList::OnInitDialog().

#define IDC_STATIC_KEYWORD_COUNT 1496

sakura_rc.h の 559 行で定義されています。

参照元 CPropCommon::DispKeywordCount().

#define IDC_STATIC_MSG 1130

sakura_rc.h の 193 行で定義されています。

参照元 CDlgInput1::DispatchEvent().

#define IDC_STATIC_MYICON 1198

sakura_rc.h の 251 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define IDC_STATIC_nSortType 1433

sakura_rc.h の 489 行で定義されています。

#define IDC_STATIC_PAGENUM 1264

sakura_rc.h の 293 行で定義されています。

参照元 CPrintPreview::OnPreviewGoPage().

#define IDC_STATIC_PAPER 1272

sakura_rc.h の 303 行で定義されています。

参照元 CPrintPreview::OnPaint().

#define IDC_STATIC_PRNDEV 1271

sakura_rc.h の 302 行で定義されています。

参照元 CPrintPreview::OnPaint().

#define IDC_STATIC_PROGRESS 1332

sakura_rc.h の 387 行で定義されています。

#define IDC_STATIC_STC32 1119

sakura_rc.h の 183 行で定義されています。

#define IDC_STATIC_UPDATE 1204

sakura_rc.h の 254 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define IDC_STATIC_URL_CAPTION 1376

sakura_rc.h の 425 行で定義されています。

#define IDC_STATIC_URL_ORG 1380

sakura_rc.h の 427 行で定義されています。

参照元 CDlgAbout::OnBnClicked().

#define IDC_STATIC_URL_UR 1379

sakura_rc.h の 426 行で定義されています。

参照元 CDlgAbout::OnBnClicked()・CDlgAbout::OnInitDialog().

#define IDC_STATIC_VER 1127

sakura_rc.h の 191 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define IDC_STATIC_ZOOM 1265

sakura_rc.h の 296 行で定義されています。

参照元 CPrintPreview::OnPreviewGoPage()・CPrintPreview::OnPreviewZoom().

#define IDC_TAB2 1355

sakura_rc.h の 407 行で定義されています。

#define IDC_TAB_FAVORITE 1457

sakura_rc.h の 515 行で定義されています。

参照元 CDlgFavorite::OnBnClicked()・CDlgFavorite::OnInitDialog()・CDlgFavorite::OnNotify().

#define IDC_TABWND_CAPTION 1471

sakura_rc.h の 531 行で定義されています。

参照元 CPropCommon::EnableTabPropInput()・CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

#define IDC_TREE1 1140

sakura_rc.h の 202 行で定義されています。

参照元 CDlgFuncList::GetData()・CDlgFuncList::OnBnClicked()・CDlgFuncList::OnCbnSelChange()・CDlgFuncList::OnNotify()・CDlgFuncList::OnSize()・CDlgFuncList::SetData()・CDlgFuncList::SetTree()・CDlgFuncList::SetTreeJava().

#define IDC_UPDATEDFILENAME 1440

sakura_rc.h の 501 行で定義されています。

参照元 CDlgFileUpdateQuery::OnInitDialog().

#define IDC_WINCAPTION_ACTIVE 1469

sakura_rc.h の 527 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDC_WINCAPTION_INACTIVE 1470

sakura_rc.h の 528 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

#define IDD_ABOUT 115

sakura_rc.h の 12 行で定義されています。

参照元 CDlgAbout::DoModal().

#define IDD_COMPARE 168

sakura_rc.h の 23 行で定義されています。

参照元 CDlgCompare::DoModal().

#define IDD_CTRLCODE 5116

sakura_rc.h の 621 行で定義されています。

参照元 CDlgCtrlCode::DoModal().

#define IDD_DEBUG 177

sakura_rc.h の 27 行で定義されています。

参照元 CDlgDebug::DoModal().

#define IDD_DIALOG_KEYWORD_SELECT 243

sakura_rc.h の 54 行で定義されています。

#define IDD_DIFF 5115

sakura_rc.h の 620 行で定義されています。

参照元 CDlgDiff::DoModal().

#define IDD_EXEC 182

sakura_rc.h の 28 行で定義されています。

参照元 CDlgExec::DoModal().

#define IDD_EXECCMD_TEST 188

sakura_rc.h の 30 行で定義されています。

#define IDD_EXECRUNNING 191

sakura_rc.h の 31 行で定義されています。

参照元 CEditView::ExecCmd().

#define IDD_EXITING 175

sakura_rc.h の 26 行で定義されています。

参照元 CEditApp::OnDestroy().

#define IDD_FAVORITE 227

sakura_rc.h の 46 行で定義されています。

参照元 CDlgFavorite::DoModal().

#define IDD_FILEUPDATEQUERY 225

sakura_rc.h の 44 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp().

#define IDD_FIND 109

sakura_rc.h の 9 行で定義されています。

参照元 CDlgFind::DoModeless().

#define IDD_FUNCLIST 122

sakura_rc.h の 14 行で定義されています。

参照元 CDlgFuncList::DoModeless().

#define IDD_GREP 132

sakura_rc.h の 15 行で定義されています。

参照元 CDlgGrep::DoModal().

#define IDD_GREPRUNNING 134

sakura_rc.h の 16 行で定義されています。

参照元 CEditView::DoGrep().

#define IDD_HOKAN 186

sakura_rc.h の 29 行で定義されています。

参照元 CHokanMgr::DoModeless().

#define IDD_INPUT1 154

sakura_rc.h の 21 行で定義されています。

参照元 CDlgInput1::DoModal().

#define IDD_JUMP 118

sakura_rc.h の 13 行で定義されています。

参照元 CDlgJump::DoModal().

#define IDD_OPERATIONRUNNING 5113

sakura_rc.h の 617 行で定義されています。

参照元 CDocLineMgr::ReplaceData().

#define IDD_PRINTING 192

sakura_rc.h の 32 行で定義されています。

#define IDD_PRINTPAGE 193

sakura_rc.h の 33 行で定義されています。

参照元 CDlgPrintPage::DoModal().

#define IDD_PRINTPREVIEWBAR 170

sakura_rc.h の 24 行で定義されています。

参照元 CPrintPreview::CreatePrintPreviewControls().

#define IDD_PRINTSETTING 174

sakura_rc.h の 25 行で定義されています。

#define IDD_PROP1P1 107

sakura_rc.h の 8 行で定義されています。

参照元 CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_BACKUP 5112

sakura_rc.h の 616 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_COLOR 5106

sakura_rc.h の 610 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::DoPropertySheet()・CPropTypes::OnHelp().

#define IDD_PROP_CUSTMENU 5103

sakura_rc.h の 607 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_EDIT 5109

sakura_rc.h の 613 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_EDIT()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_FILE 110

sakura_rc.h の 10 行で定義されています。

参照元 CPropCommon::DispatchEvent_p2()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_FNAME 226

sakura_rc.h の 45 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_FILENAME()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_FORMAT 5104

sakura_rc.h の 608 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_GREP 5111

sakura_rc.h の 615 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_GREP()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_HELPER 5105

sakura_rc.h の 609 行で定義されています。

参照元 CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_KEYBIND 5107

sakura_rc.h の 611 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_KEYBIND1 5114

sakura_rc.h の 618 行で定義されています。

#define IDD_PROP_KEYHELP 5119

sakura_rc.h の 623 行で定義されています。

参照元 CPropTypes::DoPropertySheet()・CPropTypes::OnHelp().

#define IDD_PROP_KEYWORD 153

sakura_rc.h の 20 行で定義されています。

参照元 CPropCommon::DispatchEvent_p7()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_MACRO 217

sakura_rc.h の 38 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_REGEX 219

sakura_rc.h の 39 行で定義されています。

参照元 CPropTypes::DoPropertySheet()・CPropTypes::OnHelp().

#define IDD_PROP_TAB 5110

sakura_rc.h の 614 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TAB()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_TOOLBAR 1539

sakura_rc.h の 598 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROP_WIN 5108

sakura_rc.h の 612 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CPropCommon::DoPropertySheet()・CPropCommon::OnHelp().

#define IDD_PROPERTY_FILE 152

sakura_rc.h の 19 行で定義されています。

参照元 CDlgProperty::DoModal().

#define IDD_PROPTYPESP1 5101

sakura_rc.h の 606 行で定義されています。

参照元 CPropTypes::DoPropertySheet()・CPropTypes::OnHelp().

#define IDD_PROPTYPESP2 5114

sakura_rc.h の 619 行で定義されています。

参照元 CPropTypes::DoPropertySheet()・CPropTypes::OnHelp().

#define IDD_REPLACE 137

sakura_rc.h の 17 行で定義されています。

参照元 CDlgReplace::DoModeless().

#define IDD_REPLACERUNNING 160

sakura_rc.h の 22 行で定義されています。

#define IDD_SAMECOLOR 244

sakura_rc.h の 55 行で定義されています。

参照元 CDlgSameColor::DoModal().

#define IDD_TAG_MAKE 229

sakura_rc.h の 48 行で定義されています。

参照元 CDlgTagsMake::DoModal().

#define IDD_TAGJUMPLIST 228

sakura_rc.h の 47 行で定義されています。

参照元 CDlgTagJumpList::DoModal().

#define IDD_TYPELIST 147

sakura_rc.h の 18 行で定義されています。

参照元 CDlgTypeList::DoModal().

#define IDD_WINPOSSIZE 5117

sakura_rc.h の 622 行で定義されています。

参照元 CDlgWinSize::DoModal().

#define IDI_ICON_DEBUG 231

sakura_rc.h の 50 行で定義されています。

#define IDI_ICON_GREP 240

sakura_rc.h の 51 行で定義されています。

#define IDI_ICON_STD 230

sakura_rc.h の 49 行で定義されています。

#define IDM_POPLAST 4047

sakura_rc.h の 600 行で定義されています。

#define IDM_POPLAST2 4064

sakura_rc.h の 604 行で定義されています。

#define IDOK2 3

sakura_rc.h の 5 行で定義されています。

#define IDR_MENU1 102

sakura_rc.h の 7 行で定義されています。

参照元 CEditWnd::Create()・CEditWnd::PrintPreviewModeONOFF().

#define IDR_TRAYMENU_L 113

sakura_rc.h の 11 行で定義されています。

参照元 CEditApp::CreatePopUpMenu_L()・CEditApp::CreatePopUpMenu_R().

#define IDS_ABOUT_DESCRIPTION 4056

sakura_rc.h の 603 行で定義されています。

参照元 CDlgAbout::OnInitDialog().

#define IDS_AUTHOR_MAIL 4055

sakura_rc.h の 602 行で定義されています。

#define IDS_AUTHOR_PAGE 4054

sakura_rc.h の 601 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:27:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: sakura_rc.h ソースファイル

sakura_rc.h

説明を見る。
00001 //{{NO_DEPENDENCIES}}
00002 // Microsoft Visual C++ generated include file.
00003 // Used by sakura_rc.rc
00004 //
00005 #define IDOK2                           3
00006 #define IDC_BUTTON_PRINTERSELECT        3
00007 #define IDR_MENU1                       102
00008 #define IDD_PROP1P1                     107
00009 #define IDD_FIND                        109
00010 #define IDD_PROP_FILE                   110
00011 #define IDR_TRAYMENU_L                  113
00012 #define IDD_ABOUT                       115
00013 #define IDD_JUMP                        118
00014 #define IDD_FUNCLIST                    122
00015 #define IDD_GREP                        132
00016 #define IDD_GREPRUNNING                 134
00017 #define IDD_REPLACE                     137
00018 #define IDD_TYPELIST                    147
00019 #define IDD_PROPERTY_FILE               152
00020 #define IDD_PROP_KEYWORD                153
00021 #define IDD_INPUT1                      154
00022 #define IDD_REPLACERUNNING              160
00023 #define IDD_COMPARE                     168
00024 #define IDD_PRINTPREVIEWBAR             170
00025 #define IDD_PRINTSETTING                174
00026 #define IDD_EXITING                     175
00027 #define IDD_DEBUG                       177
00028 #define IDD_EXEC                        182
00029 #define IDD_HOKAN                       186
00030 #define IDD_EXECCMD_TEST                188
00031 #define IDD_EXECRUNNING                 191
00032 #define IDD_PRINTING                    192
00033 #define IDD_PRINTPAGE                   193
00034 #define IDB_MYTOOL                      200
00035 #define IDB_OPENED                      201
00036 #define IDB_OPENED_THIS                 202
00037 #define IDB_PRINTER                     203
00038 #define IDD_PROP_MACRO                  217
00039 #define IDD_PROP_REGEX                  219
00040 #define IDC_CURSOR_COPYARROW            220
00041 #define IDC_CURSOR_HAND                 221
00042 #define IDC_CURSOR_MOVEARROW            222
00043 #define IDC_CURSOR_RVARROW              223
00044 #define IDD_FILEUPDATEQUERY             225
00045 #define IDD_PROP_FNAME                  226
00046 #define IDD_FAVORITE                    227
00047 #define IDD_TAGJUMPLIST                 228
00048 #define IDD_TAG_MAKE                    229
00049 #define IDI_ICON_STD                    230
00050 #define IDI_ICON_DEBUG                  231
00051 #define IDI_ICON_GREP                   240
00052 #define IDC_CURSOR_ISEARCH_F            241
00053 #define IDC_CURSOR_ISEARCH_B            242
00054 #define IDD_DIALOG_KEYWORD_SELECT       243
00055 #define IDD_SAMECOLOR                   244
00056 #define IDC_CURSOR_TAB_LEFT             245
00057 #define IDC_CURSOR_TAB_RIGHT            246
00058 #define IDC_CURSOR_TAB_SEPARATE         247
00059 #define IDC_CURSOR_TAB_JOIN             248
00060 #define IDC_HIDE                        1000
00061 #define IDC_CHK_LOHICASE                1006
00062 #define IDC_CHECK_INDENT                1009
00063 #define IDC_CHK_REGULAREXP              1010
00064 #define IDC_COMBO_INDENTLAYOUT          1010
00065 #define IDC_CHECK_INDENT_WSPACE         1011
00066 #define IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD 1012
00067 #define IDC_CHECK_GTJW_RETURN           1013
00068 #define IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH 1013
00069 #define IDC_CHECK_RTRIM_PREVLINE        1013
00070 #define IDC_CHECK_FREECARET             1014
00071 #define IDC_BUTTON1                     1015
00072 #define IDC_BUTTON_CLEAR_MRU_FOLDER     1016
00073 #define IDC_BUTTON_RELEASE              1016
00074 #define IDC_COMBO_TEXT                  1021
00075 #define IDC_COMBO_TEXT2                 1022
00076 #define IDC_CHECK_GTJW_LDBLCLK          1023
00077 #define IDC_EDIT_MAXLINELEN             1029
00078 #define IDC_EDIT_CHARSPACE              1031
00079 #define IDC_SPIN_MAXLINELEN             1034
00080 #define IDC_SPIN_CHARSPACE              1035
00081 #define IDC_EDIT_LINESPACE              1037
00082 #define IDC_SPIN_LINESPACE              1038
00083 #define IDC_SPIN_REPEATEDSCROLLLINENUM  1039
00084 #define IDC_EDIT_TABVIEWSTRING          1039
00085 #define IDC_SPIN_TABSPACE               1040
00086 #define IDC_EDIT_TABSPACE               1050
00087 #define IDC_BUTTON_TEXTCOLOR            1056
00088 #define IDC_BUTTON_BACKCOLOR            1060
00089 #define IDC_STATIC_JRE32VER             1065
00090 #define IDC_CHECK_EXCVLUSIVE_NO         1069
00091 #define IDC_CHECK_EXCVLUSIVE_READWRITE  1070
00092 #define IDC_CHECK_EXCVLUSIVE_WRITE      1071
00093 #define IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE      1072
00094 #define IDC_EDIT_LINENUM                1074
00095 #define IDC_CHECK_BACKUP                1076
00096 #define IDC_CHECK_EXITCONFIRM           1076
00097 #define IDC_CHECK_PLSQL                 1076
00098 #define IDC_CHECK_SHIFT                 1076
00099 #define IDC_CHK_FROMTHISTEXT            1076
00100 #define IDC_CHECK_TOOLBARISFLAT         1076
00101 #define IDC_CHECK_RELOADWHENEXECUTE     1076
00102 #define IDC_CHECK_DOCICON               1076
00103 #define IDC_CHECK_LCPOS2                1077
00104 #define IDC_CHECK_SplitterWndHScroll    1077
00105 #define IDC_RADIO_BACKUP_TYPE1          1078
00106 #define IDC_RADIO_OUTPUTMARKED          1078
00107 #define IDC_RADIO_ALLAREA               1078
00108 #define IDC_RADIO_CARETTYPE1            1078
00109 #define IDC_RADIO_nRulerType_1          1078
00110 #define IDC_CHECK_LCPOS3                1078
00111 #define IDC_RADIO_BACKUP_TYPE2          1079
00112 #define IDC_RADIO_FUNCKEYWND_PLACE2     1079
00113 #define IDC_CHECK_BACKUP_YEAR           1080
00114 #define IDC_CHECK_ALT                   1080
00115 #define IDC_CHECK_DispTabIcon           1080
00116 #define IDC_CHECK_BACKUP_HOUR           1081
00117 #define IDC_CHECK_BACKUP_MIN            1082
00118 #define IDC_CHECK_BACKUP_SEC            1083
00119 #define IDC_CHECK_BACKUPDIALOG          1084
00120 #define IDC_CHECK_BACKUPFOLDER          1085
00121 #define IDC_CHECK_UNDERLINE             1085
00122 #define IDC_EDIT1                       1086
00123 #define IDC_EDIT_BACKUPFOLDER           1086
00124 #define IDC_EDIT_EXTHELP1               1086
00125 #define IDC_EDIT_PLSQL_E1               1086
00126 #define IDC_EDIT_BLOCKCOMMENT_FROM      1086
00127 #define IDC_EDIT_TYPENAME               1086
00128 #define IDC_BUTTON_BACKUP_FOLDER_REF    1087
00129 #define IDC_BUTTON_REPALCE              1087
00130 #define IDC_BUTTON_DELETE               1087
00131 #define IDC_BUTTON_DELKEYWORD           1087
00132 #define IDC_EDIT_EXTHTMLHELP            1087
00133 #define IDC_EDIT_TFORM                  1087
00134 #define IDC_EDIT_BLOCKCOMMENT_FROM2     1087
00135 #define IDC_EDIT_FNAME_TO               1087
00136 #define IDC_CHECK_BACKUP_MONTH          1088
00137 #define IDC_BUTTON_INSERTSEPARATOR      1088
00138 #define IDC_EDIT_KEYWORDHELPFILE        1088
00139 #define IDC_BUTTON_ZOOMUP               1088
00140 #define IDC_EDIT_MIGEMO_DLL             1088
00141 #define IDC_CHECK_BACKUP_DAY            1089
00142 #define IDC_BUTTON_KEYWORDHELPFILE_REF  1089
00143 #define IDC_BUTTON_INSERTWRAP           1089
00144 #define IDC_EDIT_MIGEMO_DICT            1089
00145 #define IDC_RADIO_BACKUP_TYPE3          1090
00146 #define IDC_CHECK_AUTOSAVE              1091
00147 #define IDC_CHECK_BACKUP_DUSTBOX        1091
00148 #define IDC_LIST1                       1092
00149 #define IDC_CHECK_DispTOOLBAR           1092
00150 #define IDC_EDIT_AUTOBACKUP_INTERVAL    1092
00151 #define IDC_BUTTON_OPENHELP1            1096
00152 #define IDC_BUTTON_OPENEXTHTMLHELP      1097
00153 #define IDC_EDIT_REPEATEDSCROLLLINENUM  1098
00154 #define IDC_BUTTON_KEYWORDHELPFONT      1098
00155 #define IDC_BUTTON_HELP                 1099
00156 #define IDC_BUTTON_OPENMDLL             1099
00157 #define IDC_BUTTON_OPENHELP3            1100
00158 #define IDC_BUTTON_OPENMDICT            1100
00159 #define IDC_EDIT_TO                     1105
00160 #define IDC_EDIT_BLOCKCOMMENT_TO        1109
00161 #define IDC_EDIT_TYPEEXTS               1109
00162 #define IDC_EDIT_MARGINTY               1109
00163 #define IDC_EDIT_nRulerBottomSpace      1109
00164 #define IDC_EDIT_LINECOMMENT            1110
00165 #define IDC_EDIT_INDENTCHARS            1110
00166 #define IDC_EDIT_MAX_MRU_FOLDER         1110
00167 #define IDC_EDIT_MARGINBY               1110
00168 #define IDC_EDIT_nLineNumberRightSpace  1110
00169 #define IDC_EDIT_LINECOMMENT2           1111
00170 #define IDC_EDIT_MARGINLX               1111
00171 #define IDC_LIST_FUNC                   1112
00172 #define IDC_EDIT_MARGINRX               1112
00173 #define IDC_EDIT_BLOCKCOMMENT_TO2       1112
00174 #define IDC_COMBO_FUNCKIND              1113
00175 #define IDC_EDIT_DANSPACE               1113
00176 #define IDC_EDIT_LINECOMMENT3           1113
00177 #define IDC_LIST_KEY                    1114
00178 #define IDC_CHECK_CTRL                  1115
00179 #define IDC_CHECK_ADDCRLFWHENCOPY       1116
00180 #define IDC_COMBO_FILE                  1118
00181 #define IDC_COMBO_nSortType             1118
00182 #define IDC_COMBO_FOLDER                1119
00183 #define IDC_STATIC_STC32                1119
00184 #define IDC_COMBO_SETTINGNAME           1119
00185 #define IDC_COMBO_PAPER                 1120
00186 #define IDC_BUTTON_FOLDER               1121
00187 #define IDC_CHK_SUBFOLDER               1122
00188 #define IDC_STATIC_CURPATH              1123
00189 #define IDC_CHK_DEFAULTFOLDER           1123
00190 #define IDC_STATIC_HITCOUNT             1124
00191 #define IDC_STATIC_VER                  1127
00192 #define IDC_LIST_ASSIGNEDKEYS           1129
00193 #define IDC_STATIC_MSG                  1130
00194 #define IDC_RADIO_OUTPUTLINE            1132
00195 #define IDC_RADIO_SELECTEDAREA          1133
00196 #define IDC_BUTTON_REPALCEALL           1134
00197 #define IDC_BUTTON_SEARCHPREV           1135
00198 #define IDC_CHECK_CONSECUTIVEALL        1136
00199 #define IDC_BUTTON_SEARCHNEXT           1137
00200 #define IDC_LIST_RES                    1138
00201 #define IDC_BUTTON_SETMARK              1138
00202 #define IDC_TREE1                       1140
00203 #define IDC_BUTTON_ADD                  1141
00204 #define IDC_BUTTON_INSERT               1142
00205 #define IDC_BUTTON_REGEX_INS            1142
00206 #define IDC_BUTTON_UP                   1143
00207 #define IDC_BUTTON_DOWN                 1144
00208 #define IDC_BUTTON_SAMEBKCOLOR          1144
00209 #define IDC_CHECK_REPEATEDSCROLLSMOOTH  1145
00210 #define IDC_BUTTON_SAMETEXTCOLOR        1145
00211 #define IDC_COMBO_CODE                  1146
00212 #define IDC_RADIO_CARETTYPE0            1147
00213 #define IDC_COMBO_EOL                   1147
00214 #define IDC_BUTTON_COPY                 1149
00215 #define IDC_RADIO_ESCAPETYPE_1          1150
00216 #define IDC_RADIO_ESCAPETYPE_2          1151
00217 #define IDC_LIST_TYPES                  1153
00218 #define IDC_RADIO_OUTPUTSTYLE1          1158
00219 #define IDC_RADIO_nRulerType_0          1158
00220 #define IDC_COMBO_PLSQLBLOCKS           1164
00221 #define IDC_COMBO_MRU                   1167
00222 #define IDC_CHECK_KEYWORDCASE           1168
00223 #define IDC_COMBO_OPENFOLDER            1169
00224 #define IDC_BUTTON_ADDKEYWORD           1170
00225 #define IDC_BUTTON_IMPORT               1171
00226 #define IDC_BUTTON_EXPORT               1173
00227 #define IDC_BUTTON_ADDSET               1176
00228 #define IDC_BUTTON_EDITKEYWORD          1177
00229 #define IDC_BUTTON_DELSET               1178
00230 #define IDC_COMBO_SET                   1179
00231 #define IDC_COMBO_SET2                  1180
00232 #define IDC_LIST_KEYWORD                1181
00233 #define IDC_SPIN_MAX_MRU_FILE           1184
00234 #define IDC_SPIN_MAX_MRU_FOLDER         1185
00235 #define IDC_SPIN_nDropFileNumMax        1185
00236 #define IDC_SPIN_nRulerBottomSpace      1185
00237 #define IDC_EDIT_MAX_MRU_FILE           1186
00238 #define IDC_SPIN_PLSQL_E1               1186
00239 #define IDC_SPIN_LCColNum2              1186
00240 #define IDC_SPIN_nLineNumberRightSpace  1186
00241 #define IDC_BUTTON_CLEAR_MRU_FILE       1187
00242 #define IDC_SPIN_LCColNum3              1187
00243 #define IDC_COMBO_MENU                  1188
00244 #define IDC_RADIO_FUNCKEYWND_PLACE1     1190
00245 #define IDC_CHECK_DispFUNCKEYWND        1191
00246 #define IDC_CHECK_NOTIFYNOTFOUND        1192
00247 #define IDC_EDIT_MIDASHIKIGOU           1193
00248 #define IDC_EDIT_INYOUKIGOU             1194
00249 #define IDC_PROGRESS_REPLACE            1195
00250 #define IDC_STATIC_KENSUU               1197
00251 #define IDC_STATIC_MYICON               1198
00252 #define IDC_EDIT_HOKANFILE              1201
00253 #define IDC_BUTTON_HOKANFILE_REF        1203
00254 #define IDC_STATIC_UPDATE               1204
00255 #define IDC_LIST_COLORS                 1211
00256 #define IDC_CHECK_DISP                  1212
00257 #define IDC_CHECK_FAT                   1213
00258 #define IDC_RADIO_LINENUM_LAYOUT        1214
00259 #define IDC_RADIO_LINENUM_CRLF          1215
00260 #define IDC_STATIC_HAIKEI               1216
00261 #define IDC_COMBO_CHARSET               1217
00262 #define IDC_RADIO_LINETERMTYPE2         1218
00263 #define IDC_EDIT_LINETERMCHAR           1220
00264 #define IDC_RADIO_LINETERMTYPE0         1221
00265 #define IDC_RADIO_LINETERMTYPE1         1222
00266 #define IDC_LIST_FILES                  1223
00267 #define IDC_STATIC_COMPARESRC           1224
00268 #define IDC_CHECK_HOKANLOHICASE         1225
00269 #define IDC_BUTTON_NEXTPAGE             1227
00270 #define IDC_BUTTON_ZOOMDOWN             1228
00271 #define IDC_BUTTON_PRINTSETTING         1232
00272 #define IDC_EDIT_LINECOMMENTPOS         1234
00273 #define IDC_BUTTON_PREVPAGE             1235
00274 #define IDC_EDIT_LINECOMMENTPOS2        1235
00275 #define IDC_SPIN_MARGINTY               1236
00276 #define IDC_EDIT_LINECOMMENTPOS3        1236
00277 #define IDC_SPIN_MARGINBY               1237
00278 #define IDC_SPIN_MARGINLX               1238
00279 #define IDC_SPIN_MARGINRX               1239
00280 #define IDC_SPIN_FONTWIDTH              1241
00281 #define IDC_SPIN_DANSUU                 1242
00282 #define IDC_EDIT_FOOT1                  1243
00283 #define IDC_COMBO_FONT_HAN              1244
00284 #define IDC_COMBO_FONT_ZEN              1245
00285 #define IDC_SPIN_DANSPACE               1247
00286 #define IDC_EDIT_FONTWIDTH              1259
00287 #define IDC_EDIT_DANSUU                 1260
00288 #define IDC_CHECK_WORDWRAP              1261
00289 #define IDC_CHECK_LINENUMBER            1262
00290 #define IDC_CHECK_KINSOKUHEAD           1262
00291 #define IDC_BUTTON_EDITSETTINGNAME      1263
00292 #define IDC_CHECK_KINSOKUTAIL           1263
00293 #define IDC_STATIC_PAGENUM              1264
00294 #define IDC_CHECK_PS_KINSOKUHEAD        1264
00295 #define IDC_CHECK_KINSOKURET            1264
00296 #define IDC_STATIC_ZOOM                 1265
00297 #define IDC_CHECK_PS_KINSOKUTAIL        1265
00298 #define IDC_CHECK_KINSOKUKUTO           1265
00299 #define IDC_CHECK_PS_KINSOKURET         1266
00300 #define IDC_CHECK_PS_KINSOKUKUTO        1267
00301 #define IDC_EDIT_HEAD1                  1270
00302 #define IDC_STATIC_PRNDEV               1271
00303 #define IDC_STATIC_PAPER                1272
00304 #define IDC_EDIT_KEYSFUNC               1273
00305 #define IDC_BUTTON_ASSIGN               1274
00306 #define IDC_EDIT_HEAD2                  1275
00307 #define IDC_EDIT_HEAD3                  1276
00308 #define IDC_BUTTON_CURRENTFOLDER        1277
00309 #define IDC_EDIT_DEBUG                  1278
00310 #define IDC_EDIT_FOOT2                  1278
00311 #define IDC_CHECK_USETRAYICON           1279
00312 #define IDC_EDIT_FOOT3                  1279
00313 #define IDC_CHECK_STAYTASKTRAY          1280
00314 #define IDC_CHECK_DispSTATUSBAR         1281
00315 #define IDC_RADIO_OUTPUTSTYLE2          1282
00316 #define IDC_CHECK_DispTabWnd            1282
00317 #define IDC_STATIC_ENABLECOLMNS         1283
00318 #define IDC_CHECK_MultiWin              1283
00319 #define IDC_STATIC_ENABLELINES          1284
00320 #define IDC_HOTKEY_TRAYMENU             1286
00321 #define IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE 1287
00322 #define IDC_CHECK_DRAGDROP              1289
00323 #define IDC_CHECK_DROPSOURCE            1290
00324 #define IDC_CHECK_COPYnDISABLESELECTEDAREA 1291
00325 #define IDC_CHECK_HTMLHELPISSINGLE      1292
00326 #define IDC_CHECK_bSelectClickedURL     1293
00327 #define IDC_EDIT_nRulerHeight           1294
00328 #define IDC_CHECK_bGrepExitConfirm      1295
00329 #define IDC_CHECK_TILE_H                1296
00330 #define IDC_CHECK_bDropFileAndClose     1297
00331 #define IDC_EDIT_nDropFileNumMax        1298
00332 #define IDC_CHECK_bCheckFileTimeStamp   1299
00333 #define IDC_CHECK_bNotOverWriteCRLF     1300
00334 #define IDC_COMBO_OUTLINES              1301
00335 #define IDC_COMBO_SMARTINDENT           1302
00336 #define IDC_BUTTON_REFERENCE            1303
00337 #define IDC_COMBO_IMESTATE              1303
00338 #define IDC_CHECK_bAutoCloseDlgFind     1304
00339 #define IDC_COMBO_IMESWITCH             1304
00340 #define IDC_CHECK_bScrollBarHorz        1305
00341 #define IDC_CHECK_bAutoCloseDlgFuncList 1306
00342 #define IDC_CHECK_bAutoCloseDlgReplace  1307
00343 #define IDC_CHECK_bMarkUpBlankLineEnable 1307
00344 #define IDC_CHECK_bFunclistSetFocusOnJump 1308
00345 #define IDC_CHECK_CLICKKEYSEARCH        1309
00346 #define IDC_STATIC_CURFILE              1310
00347 #define IDC_PROGRESS                    1311
00348 #define IDC_LIST_WORDS                  1312
00349 #define IDC_CHECK_m_bHokanKey_RETURN    1313
00350 #define IDC_CHECK_m_bHokanKey_TAB       1314
00351 #define IDC_CHECK_m_bHokanKey_RIGHT     1315
00352 #define IDC_RADIO_DFORM_0               1317
00353 #define IDC_RADIO_DFORM_1               1318
00354 #define IDC_EDIT_DFORM_EX               1319
00355 #define IDC_RADIO_TFORM_0               1320
00356 #define IDC_RADIO_TFORM_1               1321
00357 #define IDC_EDIT_TFORM_EX               1322
00358 #define IDC_EDIT_DFORM                  1323
00359 #define IDC_RADIO_ALL                   1324
00360 #define IDC_RADIO_PORTRAIT              1324
00361 #define IDC_RADIO_BACKUP_DATETYPE1      1324
00362 #define IDC_RADIO_REPLACE               1324
00363 #define IDC_RADIO_DIFF_FILE1            1324
00364 #define IDC_RADIO_OUTLINEDEFAULT        1324
00365 #define IDC_RADIO_FROMTO                1325
00366 #define IDC_RADIO_LANDSCAPE             1325
00367 #define IDC_RADIO_BACKUP_DATETYPE2      1325
00368 #define IDC_RADIO_INSERT                1325
00369 #define IDC_RADIO_OUTLINERULEFILE       1325
00370 #define IDC_RADIO_DIFF_FILE2            1325
00371 #define IDC_RADIO_ADD                   1326
00372 #define IDC_RADIO_DIFF_DST1             1326
00373 #define IDC_EDIT2                       1327
00374 #define IDC_EDIT_BACKUP_3               1327
00375 #define IDC_MACROPATH                   1327
00376 #define IDC_RADIO_DIFF_DST2             1327
00377 #define IDC_EDIT_TAG_MAKE_CMDLINE       1327
00378 #define IDC_EDIT_WX                     1327
00379 #define IDC_EDIT_VERTLINE               1327
00380 #define IDC_COMBO_m_szCommand           1328
00381 #define IDC_EDIT_WY                     1328
00382 #define IDC_CHECK_GETSTDOUT             1329
00383 #define IDC_EDIT_SX                     1329
00384 #define IDC_STATIC_CMD                  1330
00385 #define IDC_EDIT_SY                     1330
00386 #define IDC_STATIC_JOBNAME              1331
00387 #define IDC_STATIC_PROGRESS             1332
00388 #define IDC_EDIT_FROM                   1333
00389 #define IDC_STATIC_ALL                  1334
00390 #define IDC_CHECK_bMenuIcon             1335
00391 #define IDC_LABEL_BACKUP_3              1336
00392 #define IDC_LABEL_AUTOSAVE              1337
00393 #define IDC_LABEL_BACKUP_4              1338
00394 #define IDC_LABEL_AUTOSAVE2             1342
00395 #define IDC_LABEL_AUTOSAVE3             1343
00396 #define IDC_LABEL_AUTOSAVE4             1344
00397 #define IDC_LABEL_MENUFUNC              1345
00398 #define IDC_LABEL_MENUFUNCKIND          1346
00399 #define IDC_LABEL_MENU                  1347
00400 #define IDC_LABEL_MENUCHOICE            1348
00401 #define IDC_LABEL_MENUKEYCHANGE         1349
00402 #define IDC_LABEL_TOOLBAR               1350
00403 #define IDC_LABEL_MENUNAME              1350
00404 #define IDC_LABEL_KEYKIND               1351
00405 #define IDC_LABEL_FUNCtoKEY             1352
00406 #define IDC_LABEL_KEYtoFUNC             1353
00407 #define IDC_TAB2                        1355
00408 #define IDC_LABEL_LINETERMCHAR          1356
00409 #define IDC_GROUP_FUNCKEYWND_POSITION   1357
00410 #define IDC_LABEL_DFORM                 1358
00411 #define IDC_LABEL_TFORM                 1359
00412 #define IDC_LABEL_FROM                  1360
00413 #define IDC_LABEL_TO                    1361
00414 #define IDC_LABEL_PLSQL1                1362
00415 #define IDC_LABEL_PLSQL2                1363
00416 #define IDC_LABEL_PLSQL3                1364
00417 #define IDC_LABEL_KEYWORDHELPFILE       1365
00418 #define IDC_SPIN_BACKUP_GENS            1366
00419 #define IDC_SPIN_AUTOBACKUP_INTERVAL    1367
00420 #define IDC_SPIN_nRulerHeight           1368
00421 #define IDC_CHECK_BACKUP_RETAINEXT      1369
00422 #define IDC_SPIN_LINENUM                1372
00423 #define IDC_LANEL_NOTE                  1373
00424 #define IDC_CHECK_RestoreCurPosition    1375
00425 #define IDC_STATIC_URL_CAPTION          1376
00426 #define IDC_STATIC_URL_UR               1379
00427 #define IDC_STATIC_URL_ORG              1380
00428 #define IDC_CHECK_AutoMIMEDecode        1381
00429 #define IDC_EDIT_MENUNAME               1382
00430 #define IDC_CHECK_RestoreBookmarks      1382
00431 #define IDC_BUTTON_TEMPCHANGE           1384
00432 #define IDC_STATIC_EOL                  1385
00433 #define IDC_BUTTON_JUMP                 1388
00434 #define IDC_CHECK_LCPOS                 1389
00435 #define IDC_SPIN_LCColNum               1390
00436 #define IDC_LABEL_LCPOS                 1391
00437 #define IDC_LABEL_LCPOS2                1392
00438 #define IDC_LABEL_LCPOS3                1393
00439 #define IDC_MACRO_REG                   1393
00440 #define IDC_COMBO_MACROID               1394
00441 #define IDC_BUTTON_TOP                  1394
00442 #define IDC_BUTTON_REGEX_TOP            1394
00443 #define IDC_BUTTON_REGEX_LAST           1395
00444 #define IDC_MACROLIST                   1396
00445 #define IDC_MACRONAME                   1397
00446 #define IDC_EDIT_ABOUT                  1398
00447 #define IDC_CHECK_SplitterWndVScroll    1399
00448 #define IDC_BUTTON_REGEX_UPD            1399
00449 #define IDC_CHK_WORD                    1400
00450 #define IDC_BUTTON_REGEX_DEL            1400
00451 #define IDC_CHECK_SameTabWidth          1400
00452 #define IDC_MACRODIR                    1401
00453 #define IDC_MACRODIRREF                 1402
00454 #define IDC_BUTTON_MENUNAME             1403
00455 #define IDC_EDIT_REGEX                  1404
00456 #define IDC_CHECK_REGEX                 1406
00457 #define IDC_LIST_REGEX                  1407
00458 #define IDC_COMBO_REGEX_COLOR           1408
00459 #define IDC_LABEL_REGEX_COLOR           1409
00460 #define IDC_LABEL_REGEX_KEYWORD         1410
00461 #define IDC_BUTTON_REGEX_UP             1411
00462 #define IDC_BUTTON_REGEX_DOWN           1412
00463 #define IDC_BUTTON_REGEX_ADD            1413
00464 #define IDC_BUTTON_REGEX_IMPORT         1414
00465 #define IDC_BUTTON_REGEX_EXPORT         1415
00466 #define IDC_FRAME_REGEX                 1416
00467 #define IDC_LABEL_REGEX_VERSION         1417
00468 #define IDC_CHECK_INS_SPACE             1417
00469 #define IDC_CHK_PASTE                   1418
00470 #define IDC_CHECK_SEARCHALL             1419
00471 #define IDC_EDIT_TYPEEXTHELP            1420
00472 #define IDC_EDIT_TYPEEXTHTMLHELP        1421
00473 #define IDC_BUTTON_TYPEOPENHELP         1422
00474 #define IDC_BUTTON_TYPEOPENEXTHTMLHELP  1423
00475 #define IDC_CHECK_TYPEHTMLHELPISSINGLE  1424
00476 #define IDC_CHECK_DispTabWndMultiWin    1425
00477 #define IDC_EDIT_OUTLINERULEFILE        1426
00478 #define IDC_BUTTON_RULEFILE_REF         1427
00479 #define IDC_EDIT_KINSOKUHEAD            1428
00480 #define IDC_STATIC_DIFF_SRC             1428
00481 #define IDC_EDIT_KINSOKUTAIL            1429
00482 #define IDC_EDIT_DIFF_DST               1429
00483 #define IDC_BUTTON_DIFF_DST             1430
00484 #define IDC_SPIN_FUNCKEYWND_GROUPNUM    1430
00485 #define IDC_CHECK_DIFF_OPT_CASE         1431
00486 #define IDC_EDIT_FUNCKEYWND_GROUPNUM    1431
00487 #define IDC_CHECK_DIFF_OPT_SPACE        1432
00488 #define IDC_CHECK_DIFF_OPT_SPCCHG       1433
00489 #define IDC_STATIC_nSortType            1433
00490 #define IDC_BTN_RELOAD                  1433
00491 #define IDC_CHECK_DIFF_OPT_BLINE        1434
00492 #define IDC_CHECK_DIFF_OPT_TABSPC       1435
00493 #define IDC_BTN_NOTIFYONLY              1435
00494 #define IDC_FRAME_DIFF_FILE12           1436
00495 #define IDC_LIST_DIFF_FILES             1437
00496 #define IDC_FILEUPDATEMSG               1437
00497 #define IDC_FRAME_DIFF_DST              1438
00498 #define IDC_LIST_CTRLCODE               1438
00499 #define IDC_BTN_NOSUPERVISION           1438
00500 #define IDC_BTN_CLOSE                   1439
00501 #define IDC_UPDATEDFILENAME             1440
00502 #define IDC_QUERYRELOADMSG              1441
00503 #define IDC_CHECK_FNAME                 1442
00504 #define IDC_BUTTON_FNAME_TOP            1446
00505 #define IDC_BUTTON_FNAME_UP             1447
00506 #define IDC_BUTTON_FNAME_DOWN           1448
00507 #define IDC_BUTTON_FNAME_LAST           1449
00508 #define IDC_BUTTON_FNAME_INS            1450
00509 #define IDC_BUTTON_FNAME_ADD            1451
00510 #define IDC_BUTTON_FNAME_UPD            1452
00511 #define IDC_BUTTON_FNAME_DEL            1453
00512 #define IDC_LIST_FNAME                  1454
00513 #define IDC_EDIT_FNAME_FROM             1455
00514 #define IDC_CHECK_TAB_ARROW             1456
00515 #define IDC_TAB_FAVORITE                1457
00516 #define IDC_LIST_FAVORITE_FILE          1458
00517 #define IDC_LIST_FAVORITE_FOLDER        1459
00518 #define IDC_LIST_FAVORITE_GREP_FILE     1460
00519 #define IDC_LIST_FAVORITE_GREP_FOLDER   1461
00520 #define IDC_LIST_FAVORITE_REPLACE       1462
00521 #define IDC_LIST_FAVORITE_SEARCH        1463
00522 #define IDC_LIST_FAVORITE_CMD           1464
00523 #define IDC_BUTTON_CLEAR                1465
00524 #define IDC_SLIDER_VIEW                 1466
00525 #define IDC_BUTTON_VIEW                 1467
00526 #define IDC_LIST_TAGJUMP                1468
00527 #define IDC_WINCAPTION_ACTIVE           1469
00528 #define IDC_WINCAPTION_INACTIVE         1470
00529 #define IDC_CHECK_HOKANBYFILE           1470
00530 #define IDC_BUTTON_TAG_MAKE_REF         1471
00531 #define IDC_TABWND_CAPTION              1471
00532 #define IDC_CHECK_TAG_MAKE_RECURSE      1472
00533 #define IDC_EDIT_TAG_MAKE_FOLDER        1473
00534 #define IDC_FRAME_SEARCH_MSG            1474
00535 #define IDC_CHECK_DIFF_EXEC_STATE       1475
00536 #define IDC_STATIC_FAVORITE_MSG         1476
00537 #define IDC_CHECK_REALTIMEVIEW          1477
00538 #define IDC_CHECK_BOM                   1478
00539 #define IDC_CHECK_GREPREALTIME          1479
00540 #define IDC_RADIO_WINSIZE_DEF           1480
00541 #define IDC_RADIO_WINSIZE_SAVE          1481
00542 #define IDC_RADIO_WINSIZE_SET           1482
00543 #define IDC_SPIN_WX                     1483
00544 #define IDC_SPIN_WY                     1484
00545 #define IDC_RADIO_WINPOS_DEF            1485
00546 #define IDC_RADIO_WINPOS_SAVE           1486
00547 #define IDC_RADIO_WINPOS_SET            1487
00548 #define IDC_SPIN_SX                     1488
00549 #define IDC_SPIN_SY                     1489
00550 #define IDC_COMBO_WINTYPE               1490
00551 #define IDC_BUTTON_WINSIZE              1491
00552 #define IDC_CHECK_QueryIfCodeChange     1492
00553 #define IDC_HOTKEY1                     1493
00554 #define IDC_CHECK_AlertIfFileNotExist   1493
00555 #define IDC_COMBO1                      1494
00556 #define IDC_BUTTON_KEYWORD_SELECT       1495
00557 #define IDC_COMBO2                      1495
00558 #define IDC_COMBO3                      1496
00559 #define IDC_STATIC_KEYWORD_COUNT        1496
00560 #define IDC_COMBO4                      1497
00561 #define IDC_BUTTON_KEYSETRENAME         1497
00562 #define IDC_COMBO5                      1498
00563 #define IDC_BUTTON_KEYCLEAN             1498
00564 #define IDC_COMBO6                      1499
00565 #define IDC_KEYWORD                     1499
00566 #define IDC_COMBO7                      1500
00567 #define IDC_STATIC_KEYWORD              1500
00568 #define IDC_COMBO8                      1501
00569 #define IDC_CHECK_ICASE                 1501
00570 #define IDC_COMBO9                      1502
00571 #define IDC_CHECK_ANYWHERE              1502
00572 #define IDC_COMBO10                     1503
00573 #define IDC_EDIT_BACKUPFILE             1504
00574 #define IDC_LABEL_BACKUP_HELP           1505
00575 #define IDC_CHECK_BACKUP_ADVANCED       1506
00576 #define IDC_RADIO_BACKUP_DATETYPE1A     1507
00577 #define IDC_RADIO_BACKUP_DATETYPE2A     1508
00578 #define IDC_LABEL_BACKUP_HELP2          1509
00579 #define IDC_STATIC_COLOR                1510
00580 #define IDC_BUTTON_SELALL               1511
00581 #define IDC_BUTTON_SELNOTING            1512
00582 #define IDC_LIST_ITEMINFO               1514
00583 #define IDC_CHECK_NoFilterSaveNew       1515
00584 #define IDC_CHECK_NoFilterSaveFile      1516
00585 #define IDC_CHECK_CLOSEALLCONFIRM       1517
00586 #define IDC_CHECK_ANTIALIAS             1518
00587 #define IDC_CHECK_RetainEmptyWindow     1518
00588 #define IDC_BUTTON_DIRECTPAGE           1519
00589 #define IDC_CHECK_CloseOneWin           1519
00590 #define IDC_CHECK_bCaretTextForSearch   1520
00591 #define IDC_CHECK_ChgWndByWheel         1521
00592 #define IDC_LABEL_REGEXP                1522
00593 #define IDC_EDIT_REGEXPLIB              1524
00594 #define IDC_LABEL_REGEXP_VER            1525
00595 #define IDC_RADIO_OUTPUT                1536
00596 #define IDC_RADIO_EDITWINDOW            1537
00597 #define IDC_CHECK_SENDSTDIN             1538
00598 #define IDD_PROP_TOOLBAR                1539
00599 #define IDC_CHECK_SortTabList           1540
00600 #define IDM_POPLAST                     4047
00601 #define IDS_AUTHOR_PAGE                 4054
00602 #define IDS_AUTHOR_MAIL                 4055
00603 #define IDS_ABOUT_DESCRIPTION           4056
00604 #define IDM_POPLAST2                    4064
00605 #define ID_IS4072                       4072
00606 #define IDD_PROPTYPESP1                 5101
00607 #define IDD_PROP_CUSTMENU               5103
00608 #define IDD_PROP_FORMAT                 5104
00609 #define IDD_PROP_HELPER                 5105
00610 #define IDD_PROP_COLOR                  5106
00611 #define IDD_PROP_KEYBIND                5107
00612 #define IDD_PROP_WIN                    5108
00613 #define IDD_PROP_EDIT                   5109
00614 #define IDD_PROP_TAB                    5110
00615 #define IDD_PROP_GREP                   5111
00616 #define IDD_PROP_BACKUP                 5112
00617 #define IDD_OPERATIONRUNNING            5113
00618 #define IDD_PROP_KEYBIND1               5114
00619 #define IDD_PROPTYPESP2                 5114
00620 #define IDD_DIFF                        5115
00621 #define IDD_CTRLCODE                    5116
00622 #define IDD_WINPOSSIZE                  5117
00623 #define IDD_PROP_KEYHELP                5119
00624 #define IDC_FRAME_KEYHELP               5120
00625 #define IDC_LIST_KEYHELP                5121
00626 #define IDC_LABEL_KEYHELP_KEYWORD       5122
00627 #define IDC_EDIT_KEYHELP                5123
00628 #define IDC_LABEL_KEYHELP_TITLE         5124
00629 #define IDC_COMBO_KEYHELP_COLOR         5125
00630 #define IDC_BUTTON_KEYHELP_INS          5126
00631 #define IDC_BUTTON_KEYHELP_ADD          5127
00632 #define IDC_BUTTON_KEYHELP_UPD          5128
00633 #define IDC_BUTTON_KEYHELP_DEL          5129
00634 #define IDC_BUTTON_KEYHELP_TOP          5130
00635 #define IDC_BUTTON_KEYHELP_UP           5131
00636 #define IDC_BUTTON_KEYHELP_DOWN         5132
00637 #define IDC_BUTTON_KEYHELP_LAST         5133
00638 #define IDC_BUTTON_KEYHELP_IMPORT       5134
00639 #define IDC_BUTTON_KEYHELP_EXPORT       5135
00640 #define IDC_LABEL_KEYHELP_ABOUT         5136
00641 #define IDC_CHECK_KEYHELP               5137
00642 #define IDC_CHECK_TYPE_KEYHELPUSE       5138
00643 #define IDC_LABEL_KEYHELP_PRIOR         5139
00644 #define IDC_BUTTON_KEYHELP_REF          5140
00645 #define IDC_CHECK_KEYHELP_ALLSEARCH     5141
00646 #define IDC_CHECK_KEYHELP_KEYDISP       5142
00647 #define IDC_CHECK_KEYHELP_PREFIX        5143
00648 #define IDC_STATIC                      -1
00649
00650 // Next default values for new objects
00651 //
00652 #ifdef APSTUDIO_INVOKED
00653 #ifndef APSTUDIO_READONLY_SYMBOLS
00654 #define _APS_NEXT_RESOURCE_VALUE        249
00655 #define _APS_NEXT_COMMAND_VALUE         4073
00656 #define _APS_NEXT_CONTROL_VALUE         1526
00657 #define _APS_NEXT_SYMED_VALUE           103
00658 #endif
00659 #endif
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: StdAfx.cpp

StdAfx.cpp

#include "stdafx.h"

StdAfx.cppのインクルード依存関係図

ソースコードを見る。

Sakura-Editorに対してSat Oct 27 02:27:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: StdAfx.cpp ソースファイル

StdAfx.cpp

説明を見る。
00001 // stdafx.cpp : 標準インクルードファイルを含むソースファイル
00002 //              sakura_core.pch 生成されるプリコンパイル済ヘッダー
00003 //              stdafx.obj 生成されるプリコンパイル済タイプ情報
00004
00005 #include "stdafx.h"
00006
00007 // TODO: STDAFX.H に含まれていて、このファイルに記述されていない
00008 // ヘッダーファイルを追加してください。
00009
00010
00011 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: StdAfx.h

StdAfx.h

#include "global.h"
#include <windows.h>
#include <commdlg.h>
#include <comutil.h>
#include <objidl.h>
#include <shellapi.h>
#include <stdlib.h>

StdAfx.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define | AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_
#define | WIN32_LEAN_AND_MEAN

マクロ定義

#define AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_

StdAfx.h の 7 行で定義されています。

#define WIN32_LEAN_AND_MEAN

StdAfx.h の 15 行で定義されています。

Sakura-Editorに対してSat Oct 27 02:34:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: StdAfx.h ソースファイル

StdAfx.h

説明を見る。
00001 // stdafx.h : 標準のシステム インクルード ファイル、
00002 //              または参照回数が多く、かつあまり変更されない
00003 //              プロジェクト専用のインクルード ファイルを記述します。
00004 //
00005
00006 #if !defined(AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_)
00007 #define AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif // _MSC_VER > 1000
00012
00013
00014 // この位置にヘッダーを挿入してください
00015 #define WIN32_LEAN_AND_MEAN     // Windows ヘッダーから殆ど使用されないスタッフを除外します
00016
00017 #if _MSC_VER >= 1400
00018 #pragma warning( disable : 4996 )
00019 #if defined _M_IX86
00020 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
00021 #elif defined _M_IA64
00022 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
00023 #elif defined _M_X64
00024 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
00025 #else
00026 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
00027 #endif
00028 #endif
00029
00030 #include "global.h"
00031 #include <windows.h>
00032 #include <commdlg.h> // PRINTDLG,
00033 #include <comutil.h> // VT_BSTR,..
00034 #include <objidl.h>  // LPDATAOBJECT
00035 #include <shellapi.h>// HDROP
00036 #include <stdlib.h>  // _MAX_PATH
00037
00038 // TODO: プログラムで必要なヘッダー参照を追加してください。
00039
00040 //{{AFX_INSERT_LOCATION}}
00041 // Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。
00042
00043 #endif // !defined(AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_)
00044
00045
00046 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: WinMain.cpp

WinMain.cpp

Entry Point [詳細]

#include "stdafx.h"
#include <windows.h>
#include "CProcessFactory.h"
#include "CProcess.h"
#include "CRunningTimer.h"

WinMain.cppのインクルード依存関係図

ソースコードを見る。

関数

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

説明

Entry Point

作者:
Norio Nakatani
日付:
1998/03/13 作成

2001/06/26 genta ワード単位のGrepのためのコマンドライン処理追加

2002/01/08 aroka 処理の流れを整理、未使用コードを削除

2002/01/18 aroka 虫取り＆リリース

WinMain.cpp で定義されています。

関数

int WINAPI WinMain | ( | HINSTANCE | hInstance,
 |  | HINSTANCE | hPrevInstance,
 |  | LPSTR | lpCmdLine,
 |  | int | nCmdShow
 | ) |

Windows Entry point

1つ目のエディタプロセスの場合は、このプロセスはコントロールプロセスと なり、新しいエディタプロセスを起動する。そうでないときはエディタプロセス となる。

コントロールプロセスはCControlProcessクラスのインスタンスを作り、 エディタプロセスはCNormalProcessクラスのインスタンスを作る。

引数:
hInstance | handle to current instance
hPrevInstance | handle to previous instance
lpCmdLine | pointer to command line
nCmdShow | show state of window

WinMain.cpp の 35 行で定義されています。

参照先 CProcessFactory::Create()・MY_RUNNINGTIMER・MY_TRACETIME・CProcess::Run().

Sakura-Editorに対してSat Oct 27 02:34:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: WinMain.cpp ソースファイル

WinMain.cpp

説明を見る。
00001
00010 /*
00011     Copyright (C) 1998-2001, Norio Nakatani
00012     Copyright (C) 2001, genta
00013     Copyright (C) 2002, aroka
00014
00015     This source code is designed for sakura editor.
00016     Please contact the copyright holder to use this code for other purpose.
00017 */
00018
00019 #include "stdafx.h"
00020 #include <windows.h>
00021 #include "CProcessFactory.h"
00022 #include "CProcess.h"
00023 #include "CRunningTimer.h"
00024
00035 int WINAPI WinMain(
00036     HINSTANCE   hInstance,
00037     HINSTANCE   hPrevInstance,
00038     LPSTR       lpCmdLine,
00039     int         nCmdShow
00040 )
00041 {
00042     MY_RUNNINGTIMER(cRunningTimer, "WinMain" );
00043
00044     CProcessFactory aFactory;
00045     CProcess *process = 0;
00046     try{
00047         process = aFactory.Create( hInstance, lpCmdLine );
00048         MY_TRACETIME( cRunningTimer, "ProcessObject Created" );
00049     }
00050     catch(...){
00051     }
00052     if( 0 != process ){
00053         process->Run();
00054         delete process;
00055     }
00056     return 0;
00057 }
00058
00059 /*[EOF]*/
Sakura-Editorに対してSat Oct 27 02:14:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成

  • 構成
  • クラス階層
  • 構成メンバ

Sakura-Editor 構成

クラス、構造体、共用体、インタフェースの説明です。
_SORTTABLE |
ARRHEAD |
bregexp |
CAutoMarkMgr | 移動履歴の管理クラス
CBlockComment |
CBregexp | Perl互換正規表現 BREGEXP.DLL をサポートするクラス
CCaretUnderLine |
CCommandLine | コマンドラインパーサ クラス
CControlProcess | コントロールプロセスクラス
CCppPreprocessMng |
CDataObject |
CDialog | ダイアログウィンドウを扱うクラス
CDicMgr |
CDlgAbout |
CDlgCancel | キャンセルボタンダイアログ
CDlgCompare | ファイル比較ダイアログボックス
CDlgCtrlCode | コントロールコード入力ダイアログボックス
CDlgDebug |
CDlgDiff | DIFF差分表示ダイアログボックス
CDlgExec |
CDlgFavorite |
CDlgFavorite::FavoriteInfoTag |
CDlgFileUpdateQuery |
CDlgFind |
CDlgFuncList | アウトライン解析ダイアログボックス
CDlgGrep | GREPダイアログボックス
CDlgInput1 | １行入力ダイアログボックス
CDlgJump | 指定行へのジャンプダイアログボックス
CDlgKeywordSelect |
CDlgOpenFile |
CDlgPrintPage |
CDlgPrintSetting |
CDlgProperty |
CDlgReplace | 置換ダイアログボックス
CDlgSameColor | 文字色／背景色統一ダイアログ
CDlgTagJumpList | ダイレクトタグジャンプ候補一覧ダイアログ
CDlgTagsMake | タグファイル作成ダイアログボックス
CDlgTypeList | ファイルタイプ一覧ダイアログ
CDlgWinSize | 位置と大きさの設定ダイアログ
CDllHandler | DLLの動的なLoad/Unloadを行うためのクラス
CDllHandler::ImportTable |
CDocLine | 文書データ1行
CDocLineMgr |
CDropSource |
CDropTarget |
CEditApp | 常駐部の管理
CEditDoc | 文書関連情報の管理
CEditView | 文書ウィンドウの管理
CEditWnd | 編集ウィンドウ（外枠）管理クラス
CEOL | 行末の改行コードを管理
CError_FileOpen | ファイルのオープンに失敗したときに送出する例外
CError_FileRead | ファイルの読み込みに失敗したときに放出する例外
CError_FileWrite | ファイルの書き込みに失敗したときに送出する例外
CESI |
CFileExt |
CFileExt::FileExtInfoTag |
CFileLoad |
CFileWrite | ファイル書き込みクラス（Cのライブラリ関数を使用して実装）
CFuncInfo | アウトライン解析 データ要素
CFuncInfoArr | アウトライン解析 データ配列
CFuncKeyWnd | ファンクションキーウィンドウ
CFuncLookup | 表示用文字列等の取得
CHokanMgr | キーワード補完
CHtmlHelp | HtmpHelp動的ロード
CImageListMgr | ImageListの管理
CInterfaceObject |
CInterfaceObject::CMethodInfo |
CInterfaceObjectTypeInfo |
CKeyBind | キー割り当て関連ルーチン
CKeyMacroMgr | キーボードマクロ
CKeyWordSetMgr | 強調キーワード管理
CLayout |
CLayoutMgr | テキストのレイアウト情報管理
CLineComment |
CMacro | キーボードマクロの1コマンド
CMacro::CMacroParam |
CMacroFactory | マクロHandler生成クラス
CMacroManagerBase | マクロを処理するエンジン部分の基底クラス
CMarkMgr |
CMarkMgr::CMark |
CMemory | メモリバッファクラス
CMemoryIterator< T > |
CMenuDrawer | メニュー表示＆管理
CMigemo |
CMRU |
CMRUFolder |
CMutex |
CNormalProcess | エディタプロセスクラス
COleLibrary |
ColorAttributeData_t |
ColorInfo | 色設定
ColorInfoIni | 色設定(保存用)
Common | 共通設定
ComPropSheetInfo |
COpe | 編集操作要素
COpeBlk | 編集操作要素ブロック
COpeBuf | 2002/2/10 aroka アンドゥ・リドゥバッファ
COsVersionInfo |
COutlinePython |
CPassiveTimer |
CPPA | PPA.DLL をサポートするクラス
CPPAMacroMgr | PPAマクロ
CPrint | 印刷関連機能
CPrintPreview |
CProcess | プロセス基底クラス
CProcessFactory | プロセス生成クラス
CProfile | INIファイル入出力
CProfile::Section |
CPropCommon | 共通設定ダイアログボックスクラス
CPropTypes | タイプ別設定ダイアログボックス
CRecent |
CRegexKeyword | 正規表現キーワードクラス
CRunningTimer | 処理所要時間の計測クラス
CShareData | 共有データの管理
CSMacroMgr |
CSortedTagJumpList | ダイレクトタグジャンプ用検索結果をソートして保持する．
CSortedTagJumpList::tagjump_info_t |
CSplitBoxWnd | 分割ボックスウィンドウクラス
CSplitterWnd | 分割線ウィンドウクラス
CTabWnd | タブバーウィンドウ
CTipWnd |
ctrl_info_t |
CUrlWnd | About Box管理
CUxTheme | UxTheme 動的ロード
CWaitCursor | 砂時計カーソルクラス
CWnd | ウィンドウの基本クラス
CWSHClient |
CWSHMacroManager |
CWSHSite |
CYbInterfaceBase |
CYbInterfaceImpl< BASEINTERFACE > |
DLLSHAREDATA | 共有データ領域
DocLineReplaceArg |
EditNode |
EditNodeEx |
EncodingInfo_t |
FileInfo |
GrepInfo |
HANKAKKO_T | 半角括弧の対応表
IDataObject |
IDispatch |
IDropSource |
IDropTarget |
ImplementsIUnknown< Base > |
IniFolder | Iniフォルダ設定 // 2007.05.31 ryoji
ITypeInfo |
KEYDATA | キー情報を保持する
KeyHelpInfo |
LayoutReplaceArg |
LockGuard< EXCLUSIVE_OBJECT > |
MacroFuncInfo |
MacroRec | マクロ情報
MYDEVMODE |
oneRule |
OPENFILENAMEZ |
PAPER_INFO | 用紙情報
PRINTSETTING |
RcCvt |
RegexInfo_t | 正規表現キーワード検索情報構造体
RegexKeywordInfo |
SysString |
TABMENU_DATA |
TagJump | タグジャンプ情報
tagRECONVERTSTRING |
TYPE_NAME |
Types | タイプ別設定
UnicodeInfo_t |
Variant |
VS_VERSION_INFO_HEAD |
WC_EncodingInfo_t |
ZENKAKKO_T | 全角括弧の対応表
Sakura-Editorに対してSat Oct 27 02:34:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 _SORTTABLE

  • 構成
  • クラス階層
  • 構成メンバ

構造体 _SORTTABLE

すべてのメンバ一覧

Public 変数

string | sKey1
string | sKey2

説明

物理行のソートに使う構造体

CEditView_Command_New.cpp の 2354 行で定義されています。

変数

string _SORTTABLE::sKey1

CEditView_Command_New.cpp の 2355 行で定義されています。

参照元 CEditView::Command_SORT()・SortByKeyAsc()・SortByKeyDesc().

string _SORTTABLE::sKey2

CEditView_Command_New.cpp の 2356 行で定義されています。

参照元 CEditView::Command_SORT().

この構造体の説明は次のファイルから生成されました:
  • CEditView_Command_New.cpp
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

_SORTTABLE メンバ一覧

これは全メンバの一覧です。_SORTTABLE継承メンバも含んでいます。

sKey1 | _SORTTABLE
sKey2 | _SORTTABLE

Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 ARRHEAD

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ARRHEAD

すべてのメンバ一覧

Public 変数

int | nLength
int | nItemNum

説明

CShareData.cpp の 35 行で定義されています。

変数

int ARRHEAD::nItemNum

CShareData.cpp の 37 行で定義されています。

int ARRHEAD::nLength

CShareData.cpp の 36 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CShareData.cpp
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ARRHEAD メンバ一覧

これは全メンバの一覧です。ARRHEAD継承メンバも含んでいます。

nItemNum | ARRHEAD
nLength | ARRHEAD

Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 bregexp

  • 構成
  • クラス階層
  • 構成メンバ

構造体 bregexp

#include <CBregexp.h>

すべてのメンバ一覧

Public 変数

const char * | outp
BSubst 置換データの先頭ポインタ
const char * | outendp
BSubst 置換データの最終ポインタ+1
int | splitctr
BSplit 配列数
const char ** | splitp
BSplit データポインタ
int | rsv1
リザーブ 自由に使用可能
char * | parap
パターンデータポインタ
char * | paraendp
パターンデータポインタ+1
char * | transtblp
BTrans 変換テーブルポインタ
char ** | startp
マッチしたデータの先頭ポインタ
char ** | endp
マッチしたデータの最終ポインタ+1
int | nparens
パターンの中の() の数。 $1,$2, を調べるときに使用

説明

BREGEXP 正規表現のコンパイル結果を保持する構造体

CBregexp.h の 50 行で定義されています。

変数

char** bregexp::endp

マッチしたデータの最終ポインタ+1

CBregexp.h の 60 行で定義されています。

参照元 CBregexp::MakePattern().

int bregexp::nparens

パターンの中の() の数。 $1,$2, を調べるときに使用

CBregexp.h の 61 行で定義されています。

参照元 CBregexp::MakePattern().

const char* bregexp::outendp

BSubst 置換データの最終ポインタ+1

CBregexp.h の 52 行で定義されています。

const char* bregexp::outp

BSubst 置換データの先頭ポインタ

CBregexp.h の 51 行で定義されています。

参照元 CBregexp::MakePattern().

char* bregexp::paraendp

パターンデータポインタ+1

CBregexp.h の 57 行で定義されています。

char* bregexp::parap

パターンデータポインタ

CBregexp.h の 56 行で定義されています。

int bregexp::rsv1

リザーブ 自由に使用可能

CBregexp.h の 55 行で定義されています。

int bregexp::splitctr

BSplit 配列数

CBregexp.h の 53 行で定義されています。

const char** bregexp::splitp

BSplit データポインタ

CBregexp.h の 54 行で定義されています。

char** bregexp::startp

マッチしたデータの先頭ポインタ

CBregexp.h の 59 行で定義されています。

参照元 CBregexp::MakePattern().

char* bregexp::transtblp

BTrans 変換テーブルポインタ

CBregexp.h の 58 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CBregexp.h
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

bregexp メンバ一覧

これは全メンバの一覧です。bregexp継承メンバも含んでいます。

endp | bregexp
nparens | bregexp
outendp | bregexp
outp | bregexp
paraendp | bregexp
parap | bregexp
rsv1 | bregexp
splitctr | bregexp
splitp | bregexp
startp | bregexp
transtblp | bregexp

Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CAutoMarkMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CAutoMarkMgr

移動履歴の管理クラス [詳細]

#include <CMarkMgr.h>

CAutoMarkMgrに対する継承グラフ

[凡例]
CAutoMarkMgrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

virtual void | Add (const CMark &m)
要素の追加
virtual void | Expire (void)
要素数の調整

説明

移動履歴の管理クラス

CMarkMgr を継承し、動作が規定されていない部分を実装する。

CMarkMgr.h の 152 行で定義されています。

関数

void CAutoMarkMgr::Add ( const CMark & m ) [virtual]

要素の追加

現在位置に要素を追加する．現在位置より後ろは全て削除する。 要素番号が大きい方が新しいデータ。

引数:
m 追加する要素

CMarkMgr.cpp の 153 行で定義されています。

参照先 CMarkMgr::m_cMarkChain・CMarkMgr::m_nCurpos.

参照元 CEditView::AddCurrentLineToHistory().

void CAutoMarkMgr::Expire ( void ) [virtual]

要素数の調整

要素数が最大値を超えている場合に要素数が範囲内に収まるよう、 古い方(番号の若い方)から削除する。

CMarkMgrを実装しています。

CMarkMgr.cpp の 173 行で定義されています。

参照先 CMarkMgr::GetMax()・CMarkMgr::m_cMarkChain・CMarkMgr::m_nCurpos.

このクラスの説明は次のファイルから生成されました:
  • CMarkMgr.h
  • CMarkMgr.cpp
Sakura-Editorに対してSat Oct 27 02:34:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CAutoMarkMgr メンバ一覧

これは全メンバの一覧です。CAutoMarkMgr継承メンバも含んでいます。

Add(const CMark &m) | CAutoMarkMgr | [virtual]
CMarkMgr::Add(const CMark &m)=0 | CMarkMgr | [pure virtual]
CheckCurrent(void) const | CMarkMgr |
CheckNext(void) const | CMarkMgr |
CheckPrev(void) const | CMarkMgr |
CMarkChain typedef | CMarkMgr |
CMarkIterator typedef | CMarkMgr |
CMarkMgr() | CMarkMgr | [inline]
Count(void) const | CMarkMgr | [inline]
Expire(void) | CAutoMarkMgr | [virtual]
Flush(void) | CMarkMgr | [virtual]
GetCurrent(void) const | CMarkMgr | [inline]
GetMax(void) const | CMarkMgr | [inline]
m_cMarkChain | CMarkMgr | [protected]
m_nCurpos | CMarkMgr | [protected]
m_nMaxitem | CMarkMgr | [protected]
NextValid(void) | CMarkMgr |
operator[](int index) const | CMarkMgr | [inline]
PrevValid(void) | CMarkMgr |
SetMax(int max) | CMarkMgr |

Sakura-Editorに対してSat Oct 27 02:34:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CBlockComment

  • 構成
  • クラス階層
  • 構成メンバ

クラス CBlockComment

#include <CBlockComment.h>

すべてのメンバ一覧

Public メソッド

CBlockComment ()
void | CopyTo (const int n, const char *pszFrom, const char *pszTo)
bool | Match_CommentFrom (int n, int nPos, int nLineLen, const char *pLine) const
int | Match_CommentTo (int n, int nPos, int nLineLen, const char *pLine) const
const char * | getBlockCommentFrom (const int n)
const char * | getBlockCommentTo (const int n)
int | getBlockFromLen (int n) const
int | getBlockToLen (int n) const

Private 変数

char | m_szBlockCommentFrom [BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE]
char | m_szBlockCommentTo [BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE]
int | m_nBlockFromLen [BLOCKCOMMENT_NUM]
int | m_nBlockToLen [BLOCKCOMMENT_NUM]

説明

CBlockComment.h の 31 行で定義されています。

コンストラクタとデストラクタ

CBlockComment::CBlockComment ( )

CBlockComment.cpp の 20 行で定義されています。

参照先 BLOCKCOMMENT_NUM・m_nBlockFromLen・m_nBlockToLen・m_szBlockCommentFrom・m_szBlockCommentTo.

関数

void CBlockComment::CopyTo | ( | const int | n,
 |  | const char * | pszFrom,
 |  | const char * | pszTo
 | ) |

ブロックコメントデリミタをコピーする

引数:
n | [in] コピー対象のコメント番号
pszFrom | [in] コメント開始文字列
pszTo | [in] コメント終了文字列

CBlockComment.cpp の 37 行で定義されています。

参照先 BLOCKCOMMENT_BUFFERSIZE・m_nBlockFromLen・m_nBlockToLen・m_szBlockCommentFrom・m_szBlockCommentTo.

const char* CBlockComment::getBlockCommentFrom ( const int n ) [inline]

CBlockComment.h の 47 行で定義されています。

参照元 CEditView::DispLineNew()・CEditView::GetColorIndex()・CPropTypes::SetData_p3_new().

const char* CBlockComment::getBlockCommentTo ( const int n ) [inline]

CBlockComment.h の 50 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

int CBlockComment::getBlockFromLen ( int n ) const [inline]

CBlockComment.h の 54 行で定義されています。

参照元 CLayoutMgr::CheckColorMODE().

int CBlockComment::getBlockToLen ( int n ) const [inline]

CBlockComment.h の 57 行で定義されています。

bool CBlockComment::Match_CommentFrom | ( | int | n,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const char * | pLine
 | ) | const

n番目のブロックコメントの、nPosからの文字列が開始文字列(From)に当てはまるか確認する。

引数:
n | [in] 検査対象のコメント番号
nPos | [in] 探索開始位置
nLineLen | [in] pLineの長さ
pLine | [in] 探索行の先頭．探索開始位置のポインタではないことに注意
戻り値:
true | 一致した
false | 一致しなかった

CBlockComment.cpp の 69 行で定義されています。

参照先 m_nBlockFromLen・m_szBlockCommentFrom・m_szBlockCommentTo・memicmp.

参照元 CLayoutMgr::CheckColorMODE()・CEditView::DispLineNew()・CEditView::GetColorIndex().

int CBlockComment::Match_CommentTo | ( | int | n,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const char * | pLine
 | ) | const

n番目のブロックコメントの、後者(To)に当てはまる文字列をnPos以降から探す

引数:
n | [in] 検査対象のコメント番号
nPos | [in] 探索開始位置
nLineLen | [in] pLineの長さ
pLine | [in] 探索行の先頭．探索開始位置のポインタではないことに注意
戻り値:
当てはまった位置を返すが、当てはまらなかったときは、nLineLenをそのまま返す。

CBlockComment.cpp の 93 行で定義されています。

参照先 CMemory::GetSizeOfChar()・m_nBlockToLen.

参照元 CLayoutMgr::CheckColorMODE()・CEditView::DispLineNew()・CEditView::GetColorIndex().

変数

int CBlockComment::m_nBlockFromLen[BLOCKCOMMENT_NUM] [private]

CBlockComment.h の 34 行で定義されています。

参照元 CBlockComment()・CopyTo()・Match_CommentFrom().

int CBlockComment::m_nBlockToLen[BLOCKCOMMENT_NUM] [private]

CBlockComment.h の 35 行で定義されています。

参照元 CBlockComment()・CopyTo()・Match_CommentTo().

char CBlockComment::m_szBlockCommentFrom[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE] [private]

ブロックコメントデリミタ(From)

CBlockComment.h の 33 行で定義されています。

参照元 CBlockComment()・CopyTo()・Match_CommentFrom().

char CBlockComment::m_szBlockCommentTo[BLOCKCOMMENT_NUM][BLOCKCOMMENT_BUFFERSIZE] [private]

ブロックコメントデリミタ(To)

CBlockComment.h の 34 行で定義されています。

参照元 CBlockComment()・CopyTo()・Match_CommentFrom().

このクラスの説明は次のファイルから生成されました:
  • CBlockComment.h
  • CBlockComment.cpp
Sakura-Editorに対してSat Oct 27 02:34:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CBlockComment メンバ一覧

これは全メンバの一覧です。CBlockComment継承メンバも含んでいます。

CBlockComment() | CBlockComment |
CopyTo(const int n, const char *pszFrom, const char *pszTo) | CBlockComment |
getBlockCommentFrom(const int n) | CBlockComment | [inline]
getBlockCommentTo(const int n) | CBlockComment | [inline]
getBlockFromLen(int n) const | CBlockComment | [inline]
getBlockToLen(int n) const | CBlockComment | [inline]
m_nBlockFromLen | CBlockComment | [private]
m_nBlockToLen | CBlockComment | [private]
m_szBlockCommentFrom | CBlockComment | [private]
m_szBlockCommentTo | CBlockComment | [private]
Match_CommentFrom(int n, int nPos, int nLineLen, const char *pLine) const | CBlockComment |
Match_CommentTo(int n, int nPos, int nLineLen, const char *pLine) const | CBlockComment |

Sakura-Editorに対してSat Oct 27 02:34:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CBregexp

  • 構成
  • クラス階層
  • 構成メンバ

クラス CBregexp

Perl互換正規表現 BREGEXP.DLL をサポートするクラス [詳細]

#include <CBregexp.h>

CBregexpに対する継承グラフ

[凡例]
CBregexpのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 型

enum | Option { optNothing = 0, optCaseSensitive = 1, optGlobal = 2 }
enum Pattern {
PAT_UNKNOWN = 0, PAT_NORMAL = 1, PAT_TOP = 2, PAT_BOTTOM = 4,
PAT_TAB = 8, PAT_LOOKAHEAD = 16
}
検索パターン定義 [詳細]

Public メソッド

CBregexp ()
virtual | ~CBregexp ()
const char * | GetVersion ()
bool | Compile (const char *szPattern, int nOption=0)
検索パターンのコンパイル
bool | Compile (const char *szPattern0, const char *szPattern1, int nOption=0)
Replace用
bool | Match (const char *szTarget, int nLen, int nStart=0)
検索を実行する
int | Replace (const char *szTarget, int nLen, int nStart=0)
置換を実行する // 2007.01.16 ryoji 戻り値を置換個数に変更
const char * | GetLastMessage (void) const
bool | IsLookAhead (void)
bool | IsLookAhead (const char *pattern)
結果を得るメソッドを追加し、BREGEXPを外部から隠す
int | GetIndex (void)
int | GetLastIndex (void)
int | GetMatchLen (void)
int | GetStringLen (void)
const char * | GetString (void)

Protected 型

typedef int(__cdecl * | BREGEXP_BMatch )(const char *, const char *, const char *, BREGEXP **, char *)
typedef int(__cdecl * | BREGEXP_BSubst )(const char *, const char *, const char *, BREGEXP **, char *)
typedef int(__cdecl * | BREGEXP_BTrans )(const char *, char *, char *, BREGEXP **, char *)
typedef int(__cdecl * | BREGEXP_BSplit )(const char *, char *, char *, int, BREGEXP **, char *)
typedef void(__cdecl * | BREGEXP_BRegfree )(BREGEXP *)
typedef const char *(__cdecl * | BREGEXP_BRegexpVersion )(void)
typedef int(* | BREGEXP_BMatchEx )(const char *, const char *, const char *, const char *, BREGEXP **, char *)
typedef int(* | BREGEXP_BSubstEx )(const char *, const char *, const char *, const char *, BREGEXP **, char *)

Protected メソッド

virtual LPCTSTR | GetDllNameInOrder (LPCTSTR, int)
virtual int | InitDll (void)
virtual int | DeinitDll (void)
void | ReleaseCompileBuffer (void)
コンパイルバッファを解放する

Protected 変数

BREGEXP_BMatch BMatch
BREGEXP_BSubst BSubst
BREGEXP_BTrans BTrans
BREGEXP_BSplit BSplit
BREGEXP_BRegfree BRegfree
BREGEXP_BRegexpVersion BRegexpVersion
BREGEXP_BMatchEx BMatchEx
BREGEXP_BSubstEx BSubstEx

Private メソッド

int | CheckPattern (const char *szPattern)
検索パターン作成
char * | MakePatternSub (const char *szPattern, const char *szPattern2, const char *szAdd2, int nOption)
ライブラリに渡すための検索・置換パターンを作成する
char * | MakePattern (const char *szPattern, const char *szPattern2, int nOption)

Private 変数

BREGEXP * m_pRegExp
コンパイル構造体
int | m_ePatType
検索文字列パターン種別
const char * | m_szTarget
対象文字列へのポインタ
char | m_szMsg [80]
BREGEXPからのメッセージを保持する

Static Private 変数

static const char | m_tmpBuf [2] = "\0"
ダミー文字列

説明

Perl互換正規表現 BREGEXP.DLL をサポートするクラス

DLLの動的ロードを行うため、DllHandlerを継承している。

CJreに近い動作をさせるため、バッファをクラス内に1つ保持し、 データの設定と検索の２つのステップに分割するようにしている。 Jreエミュレーション関数を使うときは入れ子にならないように注意すること。

本来はこのような部分は別クラスとして分離すべきだが、その場合このクラスが 破棄される前に全てのクラスを破棄する必要がある。 その安全性を保証するのが難しいため、現時点では両者を１つのクラスに入れた。

覚え書き:
このクラスはThread Safeではない。
日付:
2005.03.19 かろと リファクタリング。クラス内部を隠蔽

2006.01.22 かろと オプション追加・名称変更(全て行置換用Globalオプション追加のため)

CBregexp.h の 82 行で定義されています。

型定義

typedef int(__cdecl * CBregexp::BREGEXP_BMatch)(const char *, const char *, const char *, BREGEXP **, char *) [protected]

CBregexp.h の 205 行で定義されています。

typedef int(* CBregexp::BREGEXP_BMatchEx)(const char *, const char *, const char *, const char *, BREGEXP **, char *) [protected]

CBregexp.h の 212 行で定義されています。

typedef const char*(__cdecl * CBregexp::BREGEXP_BRegexpVersion)(void) [protected]

CBregexp.h の 210 行で定義されています。

typedef void(__cdecl * CBregexp::BREGEXP_BRegfree)(BREGEXP *) [protected]

CBregexp.h の 209 行で定義されています。

typedef int(__cdecl * CBregexp::BREGEXP_BSplit)(const char *, char *, char *, int, BREGEXP **, char *) [protected]

CBregexp.h の 208 行で定義されています。

typedef int(__cdecl * CBregexp::BREGEXP_BSubst)(const char *, const char *, const char *, BREGEXP **, char *) [protected]

CBregexp.h の 206 行で定義されています。

typedef int(* CBregexp::BREGEXP_BSubstEx)(const char *, const char *, const char *, const char *, BREGEXP **, char *) [protected]

CBregexp.h の 213 行で定義されています。

typedef int(__cdecl * CBregexp::BREGEXP_BTrans)(const char *, char *, char *, BREGEXP **, char *) [protected]

CBregexp.h の 207 行で定義されています。

列挙型

enum CBregexp::Option

列挙型の値:
optNothing | オプションなし
optCaseSensitive | 大文字小文字区別オプション(/iをつけない)
optGlobal | 全域オプション(/g)

CBregexp.h の 88 行で定義されています。

enum CBregexp::Pattern

検索パターン定義

列挙型の値:
PAT_UNKNOWN | 不明（初期値)
PAT_NORMAL | 通常
PAT_TOP | 行頭"^"
PAT_BOTTOM | 行末"$"
PAT_TAB | 行頭行末"^$"
PAT_LOOKAHEAD | 先読み"(?[=]"

CBregexp.h の 94 行で定義されています。

コンストラクタとデストラクタ

CBregexp::CBregexp ( )

CBregexp.cpp の 55 行で定義されています。

CBregexp::~CBregexp ( ) [virtual]

CBregexp.cpp の 60 行で定義されています。

参照先 DeinitDll().

関数

int CBregexp::CheckPattern ( const char * szPattern ) [private]

検索パターン作成

引数:
[in] szPattern 検索パターン
戻り値:
検索パターン文字列長
日付:
2005.03.20 かろと 関数に切り出し
< 行頭パターンのチェック用パターン

< $(行末パターンでない)チェック用パターン

< 行末パターンのチェック用パターン

< "^$"パターンかをチェック用パターン

< "(?=" 先読み の存在チェックパターン

< コンパイル構造体

< エラーメッセージ

< 検索パターンの長さ

< 検索パターンの終端

<　ノーマルは確定

CBregexp.cpp の 138 行で定義されています。

参照先 BMatch・BRegfree・m_ePatType・NULL・PAT_BOTTOM・PAT_LOOKAHEAD・PAT_NORMAL・PAT_TAB・PAT_TOP.

参照元 MakePattern().

bool CBregexp::Compile | ( | const char * | szPattern0,
 |  | const char * | szPattern1,
 |  | int | nOption = 0
 | ) |

Replace用

JRE32のエミュレーション関数．空の文字列に対して検索・置換を行うことにより BREGEXP構造体の生成のみを行う．

引数:
[in] | szPattern0 | 検索or置換パターン
[in] | szPattern1 | 置換後文字列パターン(検索時はNULL)
[in] | nOption | 検索・置換オプション
戻り値:
true | 成功
false | 失敗
< エラー解除

CBregexp.cpp の 352 行で定義されています。

参照先 BMatch・BSubst・CDllHandler::IsAvailable()・m_pRegExp・m_szMsg・m_tmpBuf・MakePattern()・NULL・ReleaseCompileBuffer().

bool CBregexp::Compile | ( | const char * | szPattern,
 |  | int | nOption = 0
 | ) | [inline]

検索パターンのコンパイル

CBregexp.h の 113 行で定義されています。

参照先 NULL.

参照元 CEditView::ChangeCurRegexp()・CheckRegexpSyntax()・CEditView::DoGrep()・CEditView::ISearchWordMake().

int CBregexp::DeinitDll ( void ) [protected, virtual]

BREGEXP構造体の解放

CDllHandlerを再定義しています。

CBregexp.cpp の 124 行で定義されています。

参照先 ReleaseCompileBuffer().

参照元 ~CBregexp().

LPCTSTR CBregexp::GetDllNameInOrder | ( | LPCTSTR | str,
 |  | int | index
 | ) | [protected, virtual]

日付:
2001.07.05 genta 引数追加。ただし、ここでは使わない。

2007.06.25 genta 複数のDLL名に対応

2007.09.13 genta サーチルールを変更

  • 指定有りの場合はそれのみを返す
  • 指定無し(NULLまたは空文字列)の場合はBREGONIG, BREGEXPの順で試みる

CDllHandlerを再定義しています。

CBregexp.cpp の 75 行で定義されています。

参照先 NULL・P_BREG・P_ONIG.

int CBregexp::GetIndex ( void ) [inline]

検索に一致した文字列の先頭位置を返す(文字列先頭なら0)

戻り値:
検索に一致した文字列の先頭位置

CBregexp.h の 129 行で定義されています。

参照元 CEditView::IsSearchString()・CDocLineMgr::SearchWord().

int CBregexp::GetLastIndex ( void ) [inline]

検索に一致した文字列の次の位置を返す

戻り値:
検索に一致した文字列の次の位置

CBregexp.h の 136 行で定義されています。

参照元 CEditView::IsSearchString()・CDocLineMgr::SearchWord().

const char* CBregexp::GetLastMessage ( void ) const [inline]

BREGEXPメッセージを取得する

戻り値:
メッセージへのポインタ

CBregexp.h の 177 行で定義されています。

参照元 CheckRegexpSyntax().

int CBregexp::GetMatchLen ( void ) [inline]

検索に一致した文字列の長さを返す

戻り値:
検索に一致した文字列の長さ

CBregexp.h の 143 行で定義されています。

const char* CBregexp::GetString ( void ) [inline]

置換された文字列を返す

戻り値:
置換された文字列へのポインタ

CBregexp.h の 168 行で定義されています。

int CBregexp::GetStringLen ( void ) [inline]

置換された文字列の長さを返す

戻り値:
置換された文字列の長さ

CBregexp.h の 150 行で定義されています。

参照先 NULL.

const char* CBregexp::GetVersion ( ) [inline]

< DLLのバージョン情報を取得

CBregexp.h の 103 行で定義されています。

参照先 CDllHandler::IsAvailable().

参照元 CheckRegexpVersion().

int CBregexp::InitDll ( void ) [protected, virtual]

DLLの初期化

関数のアドレスを取得してメンバに保管する．

戻り値:
0 | 成功
1 | アドレス取得に失敗

CDllHandlerを実装しています。

CBregexp.cpp の 96 行で定義されています。

参照先 BMatch・BMatchEx・BRegexpVersion・BRegfree・BSplit・BSubst・BSubstEx・BTrans・CDllHandler::GetInstance()・NULL・CDllHandler::RegisterEntries().

bool CBregexp::IsLookAhead ( const char * pattern ) [inline]

検索パターンに先読みが含まれるか？（コンパイル前でも判別可能）

引数:
[in] pattern 検索パターン
戻り値:
true | 先読みがある
false | 先読みがない

CBregexp.h の 191 行で定義されています。

bool CBregexp::IsLookAhead ( void ) [inline]

先読みパターンが存在するかを返す この関数は、コンパイル後であることが前提なので、コンパイル前はfalse

戻り値:
true | 先読みがある
false | 先読みがない 又は コンパイル前

CBregexp.h の 183 行で定義されています。

char * CBregexp::MakePattern | ( | const char * | szPattern,
 |  | const char * | szPattern2,
 |  | int | nOption
 | ) | [private]

行末文字の意味がライブラリでは
固定なので、 これをごまかすために、ライブラリに渡すための検索・置換パターンを工夫する

行末文字($)が検索パターンの最後にあり、その直前が [
] でない場合に、 行末文字($)の手前に ([
]+)を補って、置換パターンに $(nParen+1)を補う というアルゴリズムを用いて、ごまかす。

覚え書き:
szPattern2: == NULL:検索 != NULL:置換
引数:
[in] | szPattern | 検索パターン
[in] | szPattern2 | 置換パターン(NULLなら検索)
[in] | nOption | 検索オプション
戻り値:
ライブラリに渡す検索パターンへのポインタを返す
覚え書き:
返すポインタは、呼び出し側で delete すること
日付:
2003.05.03 かろと 関数に切り出し
< 復帰・改行

< 復帰

< 改行

< 改行・復帰

< 行末パターンの置換用パターン

< szPatternの長さ

< コンパイル構造体

< エラーメッセージ

< 行末あり置換の $数字 格納用

< 検索パターン(szPattern)中の括弧の数(行末時に使用)

< 検索パターン

CBregexp.cpp の 271 行で定義されています。

参照先 BMatch・BRegfree・BSubst・CheckPattern()・CR・CRLF・bregexp::endp・LF・LFCR・m_ePatType・MakePatternSub()・bregexp::nparens・NULL・bregexp::outp・PAT_BOTTOM・PAT_TAB・bregexp::startp.

参照元 Compile().

char * CBregexp::MakePatternSub | ( | const char * | szPattern,
 |  | const char * | szPattern2,
 |  | const char * | szAdd2,
 |  | int | nOption
 | ) | [private]

ライブラリに渡すための検索・置換パターンを作成する

覚え書き:
szPattern2: == NULL:検索 != NULL:置換
引数:
[in] | szPattern | 検索パターン
[in] | szPattern2 | 置換パターン(NULLなら検索)
[in] | szAdd2 | 置換パターンの後ろに付け加えるパターン($1など)
[in] | nOption | 検索オプション
戻り値:
ライブラリに渡す検索パターンへのポインタを返す
覚え書き:
返すポインタは、呼び出し側で delete すること
日付:
2003.05.03 かろと 関数に切り出し
< デリミタ

< szPatternの長さ

< szPattern2 + szAdd2 の長さ

< ライブラリ渡し用の検索パターン文字列

< パターン文字列操作用のポインタ

CBregexp.cpp の 206 行で定義されています。

参照先 NULL・optCaseSensitive・optGlobal.

参照元 MakePattern().

bool CBregexp::Match | ( | const char * | target,
 |  | int | len,
 |  | int | nStart = 0
 | ) |

検索を実行する

JRE32のエミュレーション関数．既にあるコンパイル構造体を利用して検索（1行）を 行う．

引数:
[in] | target | 検索対象領域先頭アドレス
[in] | len | 検索対象領域サイズ
[in] | nStart | 検索開始位置．(先頭は0)
戻り値:
true | Match
false | No Match または エラー。エラーは GetLastMessage()により判定可能。
< 検索一致したか? >0:Match, 0:NoMatch, <0:Error

< エラー解除

CBregexp.cpp の 399 行で定義されています。

参照先 BMatch・BMatchEx・CDllHandler::IsAvailable()・m_ePatType・m_pRegExp・m_szMsg・m_szTarget・NULL・PAT_TOP.

参照元 CEditView::IsSearchString()・CDocLineMgr::MarkSearchWord()・CDocLineMgr::SearchWord().

void CBregexp::ReleaseCompileBuffer ( void ) [inline, protected]

コンパイルバッファを解放する

m_pcRegをBRegfree()に渡して解放する．解放後はNULLにセットする． 元々NULLなら何もしない

CBregexp.h の 229 行で定義されています。

参照先 NULL.

参照元 Compile()・DeinitDll().

int CBregexp::Replace | ( | const char * | szTarget,
 |  | int | nLen,
 |  | int | nStart = 0
 | ) |

置換を実行する // 2007.01.16 ryoji 戻り値を置換個数に変更

正規表現による文字列置換 既にあるコンパイル構造体を利用して置換（1行）を 行う．

引数:
[in] | szTarget | 置換対象データ
[in] | nLen | 置換対象データ長
[in] | nStart | 置換開始位置(0からnLen未満)
戻り値:
置換個数
日付:
2007.01.16 ryoji 戻り値を置換個数に変更
< エラー解除

CBregexp.cpp の 454 行で定義されています。

参照先 BSubst・BSubstEx・CDllHandler::IsAvailable()・m_pRegExp・m_szMsg・m_szTarget・NULL.

変数

int CBregexp::BMatch [protected]

m/pattern/option 形式のPerl互換パターンマッチングを行う。

引数:
str | [in] 検索するパターン
target | [in] 検索対象領域先頭
targetendp | [in] 検索対象領域末尾
rxp | [out] BREGEXP構造体。結果はここから取得する。
msg | [out] エラーメッセージ
target <= p < targetendp の範囲が検索対象になる。

CBregexp.h の 215 行で定義されています。

参照元 CheckPattern()・Compile()・InitDll()・MakePattern()・Match().

int CBregexp::BMatchEx [protected]

m/pattern/option 形式のPerl互換パターンマッチングを行う。

引数:
str | [in] 検索するパターン(コンパイル済みならNULL)
targetbeg | [in] 検索対象文字列(行頭から)
target | [in] 検索対象領域先頭
targetendp | [in] 検索対象領域末尾
rxp | [out] BREGEXP構造体。結果はここから取得する。
msg | [out] エラーメッセージ
target <= p < targetendp の範囲が検索対象になる。

CBregexp.h の 221 行で定義されています。

参照元 InitDll()・Match().

const char * CBregexp::BRegexpVersion [protected]

BREGEXP.DLLのバージョン番号を返す。

戻り値:
バージョン文字列へのポインタ。
Sample
Version: Bregexp.dll V1.1 Build 22 Apr 29 2000 21:13:19

CBregexp.h の 220 行で定義されています。

参照元 InitDll().

void CBregexp::BRegfree [protected]

検索関数によって渡されたBREGEXP構造体の解放

引数:
rx [in] 解放する構造体

CBregexp.h の 219 行で定義されています。

参照元 CheckPattern()・InitDll()・MakePattern()・CRegexKeyword::RegexKeyCompile()・CRegexKeyword::~CRegexKeyword().

int CBregexp::BSplit [protected]

split( /patttern/, string ) 相当の文字列分割を行う

引数:
str | [in] 検索パターン
target | [in] 検索対象領域先頭
targetendp | [in] 検索対象領域末尾
rxp | [out] BREGEXP構造体。結果はここから取得する。
msg | [out] エラーメッセージ
limit | [in] 最大分割数。これを越えた分については分割は行われずに最終要素に入る。
戻り値:
分割数

CBregexp.h の 218 行で定義されています。

参照元 InitDll().

int CBregexp::BSubst [protected]

s/pattern/replace/option 形式のPerl互換文字列置換を行う

引数:
str | [in] 検索・置換パターン
target | [in] 検索対象領域先頭
targetendp | [in] 検索対象領域末尾
rxp | [out] BREGEXP構造体。結果はここから取得する。
msg | [out] エラーメッセージ
戻り値:
置換した文字列の数
rxp->outpからrxp->outendpに置換後の文字列が格納される。

CBregexp.h の 216 行で定義されています。

参照元 Compile()・InitDll()・MakePattern()・Replace().

int CBregexp::BSubstEx [protected]

s/pattern/replace/option 形式のPerl互換文字列置換を行う

引数:
str | [in] 検索・置換パターン（コンパイル済みならNULL)
target | [in] 検索対象文字列（行頭から）
target | [in] 検索対象領域先頭
targetendp | [in] 検索対象領域末尾
rxp | [out] BREGEXP構造体。結果はここから取得する。
msg | [out] エラーメッセージ
戻り値:
置換した文字列の数
rxp->outpからrxp->outendpに置換後の文字列が格納される。

CBregexp.h の 222 行で定義されています。

参照元 InitDll()・Replace().

int CBregexp::BTrans [protected]

tr/pattern/replace/option 形式のPerl互換文字置換を行う

引数:
str | [in] 検索・置換パターン
target | [in] 検索対象領域先頭
targetendp | [in] 検索対象領域末尾
rxp | [out] BREGEXP構造体。結果はここから取得する。
msg | [out] エラーメッセージ
戻り値:
変換した文字数
rxp->outpからrxp->outendpに変換後の文字列が格納される。

CBregexp.h の 217 行で定義されています。

参照元 InitDll().

int CBregexp::m_ePatType [private]

検索文字列パターン種別

CBregexp.h の 246 行で定義されています。

参照元 CheckPattern()・MakePattern()・Match().

BREGEXP* CBregexp::m_pRegExp [private]

コンパイル構造体

CBregexp.h の 245 行で定義されています。

参照元 Compile()・Match()・Replace().

char CBregexp::m_szMsg[80] [private]

BREGEXPからのメッセージを保持する

CRegexKeywordで再定義されています。

CBregexp.h の 248 行で定義されています。

参照元 Compile()・Match()・Replace().

const char* CBregexp::m_szTarget [private]

対象文字列へのポインタ

CBregexp.h の 247 行で定義されています。

参照元 Match()・Replace().

const char CBregexp::m_tmpBuf = "\0" [static, private]

ダミー文字列

CBregexp.h の 250 行で定義されています。

参照元 Compile().

このクラスの説明は次のファイルから生成されました:
  • CBregexp.h
  • CBregexp.cpp
Sakura-Editorに対してSat Oct 27 02:34:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CBregexp メンバ一覧

これは全メンバの一覧です。CBregexp継承メンバも含んでいます。

BMatch | CBregexp | [protected]
BMatchEx | CBregexp | [protected]
BREGEXP_BMatch typedef | CBregexp | [protected]
BREGEXP_BMatchEx typedef | CBregexp | [protected]
BREGEXP_BRegexpVersion typedef | CBregexp | [protected]
BREGEXP_BRegfree typedef | CBregexp | [protected]
BREGEXP_BSplit typedef | CBregexp | [protected]
BREGEXP_BSubst typedef | CBregexp | [protected]
BREGEXP_BSubstEx typedef | CBregexp | [protected]
BREGEXP_BTrans typedef | CBregexp | [protected]
BRegexpVersion | CBregexp | [protected]
BRegfree | CBregexp | [protected]
BSplit | CBregexp | [protected]
BSubst | CBregexp | [protected]
BSubstEx | CBregexp | [protected]
BTrans | CBregexp | [protected]
CBregexp() | CBregexp |
CDllHandler() | CDllHandler |
CheckPattern(const char *szPattern) | CBregexp | [private]
Compile(const char *szPattern, int nOption=0) | CBregexp | [inline]
Compile(const char *szPattern0, const char *szPattern1, int nOption=0) | CBregexp |
DeinitDll(void) | CBregexp | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR, int) | CBregexp | [protected, virtual]
GetIndex(void) | CBregexp | [inline]
GetInstance() const | CDllHandler | [inline]
GetLastIndex(void) | CBregexp | [inline]
GetLastMessage(void) const | CBregexp | [inline]
GetMatchLen(void) | CBregexp | [inline]
GetString(void) | CBregexp | [inline]
GetStringLen(void) | CBregexp | [inline]
GetVersion() | CBregexp | [inline]
Init(const char *str=NULL) | CDllHandler | [inline]
InitDll(void) | CBregexp | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsLookAhead(void) | CBregexp | [inline]
IsLookAhead(const char *pattern) | CBregexp | [inline]
LoadLibrary(const char *str=NULL) | CDllHandler |
m_ePatType | CBregexp | [private]
m_pRegExp | CBregexp | [private]
m_szMsg | CBregexp | [private]
m_szTarget | CBregexp | [private]
m_tmpBuf | CBregexp | [private, static]
MakePattern(const char *szPattern, const char *szPattern2, int nOption) | CBregexp | [private]
MakePatternSub(const char *szPattern, const char *szPattern2, const char *szAdd2, int nOption) | CBregexp | [private]
Match(const char *szTarget, int nLen, int nStart=0) | CBregexp |
operator!(void) const | CDllHandler | [inline]
optCaseSensitive Enum 値 | CBregexp |
optGlobal Enum 値 | CBregexp |
Option Enum | CBregexp |
optNothing Enum 値 | CBregexp |
PAT_BOTTOM Enum 値 | CBregexp |
PAT_LOOKAHEAD Enum 値 | CBregexp |
PAT_NORMAL Enum 値 | CBregexp |
PAT_TAB Enum 値 | CBregexp |
PAT_TOP Enum 値 | CBregexp |
PAT_UNKNOWN Enum 値 | CBregexp |
Pattern Enum | CBregexp |
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
ReleaseCompileBuffer(void) | CBregexp | [inline, protected]
Replace(const char *szTarget, int nLen, int nStart=0) | CBregexp |
~CBregexp() | CBregexp | [virtual]
~CDllHandler() | CDllHandler | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CCaretUnderLine

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCaretUnderLine

#include <CEditView.h>

CCaretUnderLineのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CCaretUnderLine ()
void | Lock ()
void | UnLock ()
void | CaretUnderLineON (BOOL)
void | CaretUnderLineOFF (BOOL)
void | SetView (CEditView *pcEditView)

Protected 変数

int | m_nLockCounter
CEditView * m_pcEditView

説明

CEditView.h の 78 行で定義されています。

コンストラクタとデストラクタ

CCaretUnderLine::CCaretUnderLine ( ) [inline]

CEditView.h の 81 行で定義されています。

関数

void CCaretUnderLine::CaretUnderLineOFF ( BOOL )

CEditView.cpp の 8678 行で定義されています。

参照先 CEditView::CaretUnderLineOFF()・m_nLockCounter・m_pcEditView.

参照元 CEditView::Command_WndScrollDown()・CEditView::Command_WndScrollUp()・CEditView::MoveCursor()・CEditDoc::SetActivePane().

void CCaretUnderLine::CaretUnderLineON ( BOOL )

CEditView.cpp の 8669 行で定義されています。

参照先 CEditView::CaretUnderLineON()・m_nLockCounter・m_pcEditView.

参照元 CEditView::Command_WndScrollDown()・CEditView::Command_WndScrollUp()・CEditView::DisableSelectArea().

void CCaretUnderLine::Lock ( ) [inline]

CEditView.h の 84 行で定義されています。

void CCaretUnderLine::SetView ( CEditView * pcEditView ) [inline]

CEditView.h の 95 行で定義されています。

void CCaretUnderLine::UnLock ( ) [inline]

CEditView.h の 87 行で定義されています。

参照元 CEditView::OnLBUTTONUP().

変数

int CCaretUnderLine::m_nLockCounter [protected]

CEditView.h の 97 行で定義されています。

参照元 CaretUnderLineOFF()・CaretUnderLineON().

CEditView* CCaretUnderLine::m_pcEditView [protected]

CEditView.h の 101 行で定義されています。

参照元 CaretUnderLineOFF()・CaretUnderLineON().

このクラスの説明は次のファイルから生成されました:
  • CEditView.h
  • CEditView.cpp
Sakura-Editorに対してSat Oct 27 02:34:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCaretUnderLine メンバ一覧

これは全メンバの一覧です。CCaretUnderLine継承メンバも含んでいます。

CaretUnderLineOFF(BOOL) | CCaretUnderLine |
CaretUnderLineON(BOOL) | CCaretUnderLine |
CCaretUnderLine() | CCaretUnderLine | [inline]
Lock() | CCaretUnderLine | [inline]
m_nLockCounter | CCaretUnderLine | [protected]
m_pcEditView | CCaretUnderLine | [protected]
SetView(CEditView *pcEditView) | CCaretUnderLine | [inline]
UnLock() | CCaretUnderLine | [inline]

Sakura-Editorに対してSat Oct 27 02:34:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CCommandLine

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCommandLine

コマンドラインパーサ クラス [詳細]

#include <CCommandLine.h>

CCommandLineのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

bool | IsNoWindow () const
bool | IsWriteQuit () const
bool | IsGrepMode () const
bool | IsGrepDlg () const
bool | IsDebugMode () const
bool | IsReadOnly () const
bool | GetFileInfo (FileInfo &fi) const
bool | GetGrepInfo (GrepInfo &gi) const
int | GetGroupId () const

Static Public メソッド

static CCommandLine * | Instance (LPSTR cmd=NULL)

Private メソッド

void | ParseCommandLine (void)
CCommandLine ()
CCommandLine (LPSTR cmd)

Static Private メソッド

static int | CheckCommandLine (LPSTR str, int quotelen, char **arg)
static int | AtoiOptionInt (const char *arg)

Private 変数

LPCSTR | m_pszCmdLineSrc
bool | m_bGrepMode
[in]コマンドライン文字列
bool | m_bGrepDlg
[out] TRUE: Grep Mode
bool | m_bDebugMode
bool | m_bNoWindow
bool | m_bWriteQuit
[out] TRUE: 編集Windowを開かない
FileInfo m_fi
[out] TRUE: 設定を保存して終了 // 2007.05.19 ryoji sakuext用に追加
GrepInfo m_gi
bool | m_bReadOnly
int | m_nGroup
[out] TRUE: Read Only

Static Private 変数

static CCommandLine * | _instance = NULL

説明

コマンドラインパーサ クラス

CCommandLine.h の 32 行で定義されています。

コンストラクタとデストラクタ

CCommandLine::CCommandLine ( ) [private]

参照元 Instance().

CCommandLine::CCommandLine ( LPSTR cmd ) [private]

コンストラクタ

日付:
2005-08-24 D.S.Koba ParseCommandLine()変更によりメンバ変数に初期値代入

CCommandLine.cpp の 439 行で定義されています。

参照先 GrepInfo::bGrepNoIgnoreCase・GrepInfo::bGrepOutputLine・GrepInfo::bGrepRegularExp・GrepInfo::bGrepSubFolder・GrepInfo::bGrepWordOnly・CODE_SJIS・m_bDebugMode・m_bGrepDlg・m_bGrepMode・m_bNoWindow・m_bReadOnly・m_bWriteQuit・m_gi・m_nGroup・GrepInfo::nGrepCharSet・GrepInfo::nGrepOutputStyle・ParseCommandLine().

関数

static int CCommandLine::AtoiOptionInt ( const char * arg ) [inline, static, private]

引用符で囲まれている数値を認識するようにする

日付:
2002.12.05 genta

CCommandLine.h の 55 行で定義されています。

int CCommandLine::CheckCommandLine | ( | LPSTR | str,
 |  | int | quotelen,
 |  | char ** | arg
 | ) | [static, private]

コマンドラインのチェックを行って、オプション番号と 引数がある場合はその先頭アドレスを返す。 CCommandLine::ParseCommandLine()で使われる。

戻り値:
オプションの番号。どれにも該当しないときは0を返す。
作者:
genta
日付:
Apr. 6, 2001

2006.10.25 ryoji オプション文字列の大文字小文字を区別しない

コマンドラインオプション解析用構造体配列

< オプション文字列

< オプションの文字列長（計算を省くため）

< 変換後の値

コマンドラインオプション 後ろに引数を取らないもの

コマンドラインオプション 後ろに引数を取るもの

< タイプ別設定 Mar. 7, 2002 genta

引数:
str | [in] 検証する文字列（先頭の-は含まない）
quotelen | [in] オプション末尾の引用符の長さ．オプション全体が引用符で囲まれている場合の考慮．
arg | [out] 引数がある場合はその先頭へのポインタ

CCommandLine.cpp の 72 行で定義されています。

参照先 _memicmp・CMDLINEOPT_CODE・CMDLINEOPT_DEBUGMODE・CMDLINEOPT_GCODE・CMDLINEOPT_GFILE・CMDLINEOPT_GFOLDER・CMDLINEOPT_GKEY・CMDLINEOPT_GOPT・CMDLINEOPT_GREPDLG・CMDLINEOPT_GREPMODE・CMDLINEOPT_GROUP・CMDLINEOPT_NOMOREOPT・CMDLINEOPT_NOWIN・CMDLINEOPT_R・CMDLINEOPT_SX・CMDLINEOPT_SY・CMDLINEOPT_TYPE・CMDLINEOPT_VX・CMDLINEOPT_VY・CMDLINEOPT_WRITEQUIT・CMDLINEOPT_WX・CMDLINEOPT_WY・CMDLINEOPT_X・CMDLINEOPT_Y・NULL.

bool CCommandLine::GetFileInfo ( FileInfo & fi ) const [inline]

CCommandLine.h の 68 行で定義されています。

参照元 CEditWnd::Create()・CNormalProcess::Initialize().

bool CCommandLine::GetGrepInfo ( GrepInfo & gi ) const [inline]

CCommandLine.h の 69 行で定義されています。

int CCommandLine::GetGroupId ( ) const [inline]

CCommandLine.h の 70 行で定義されています。

CCommandLine * CCommandLine::Instance ( LPSTR cmd = NULL ) [static]

シングルトン：プロセスで唯一のインスタンス

CCommandLine.cpp の 426 行で定義されています。

参照先 _instance・CCommandLine().

参照元 CProcessFactory::Create()・CEditWnd::Create()・CShareData::GetIniFileName()・CNormalProcess::Initialize()・CControlProcess::Initialize()・CProcessFactory::IsStartingControlProcess()・CProcessFactory::TestWriteQuit().

bool CCommandLine::IsDebugMode ( ) const [inline]

CCommandLine.h の 66 行で定義されています。

bool CCommandLine::IsGrepDlg ( ) const [inline]

CCommandLine.h の 65 行で定義されています。

bool CCommandLine::IsGrepMode ( ) const [inline]

CCommandLine.h の 64 行で定義されています。

bool CCommandLine::IsNoWindow ( ) const [inline]

CCommandLine.h の 62 行で定義されています。

参照元 CProcessFactory::IsStartingControlProcess().

bool CCommandLine::IsReadOnly ( ) const [inline]

CCommandLine.h の 67 行で定義されています。

参照先 m_bReadOnly.

bool CCommandLine::IsWriteQuit ( ) const [inline]

CCommandLine.h の 63 行で定義されています。

void CCommandLine::ParseCommandLine ( void ) [private]

コマンドラインの解析

WinMain()から呼び出される。

日付:
2005-08-24 D.S.Koba 関数のstaticをやめ，メンバ変数を引数で渡すのをやめる

2007.09.09 genta Visual Studioが各々の引数をお節介にも""で囲む問題に対応． オプションが""で囲まれた場合に対応する． そうすると-で始まるファイル名を指定できなくなるので， それ以降オプション解析をしないという "--" オプションを新設する．

覚え書き:
これが呼び出された時点では共有メモリの初期化が完了していないため， 共有メモリにアクセスしてはならない．

CCommandLine.cpp の 166 行で定義されています。

参照先 m_fi・FileInfo::m_nCharCode・MY_RUNNINGTIMER・NULL.

参照元 CCommandLine().

変数

CCommandLine * CCommandLine::_instance = NULL [static, private]

CCommandLine.h の 70 行で定義されています。

参照元 Instance().

bool CCommandLine::m_bDebugMode [private]

CCommandLine.h の 78 行で定義されています。

参照元 CCommandLine().

bool CCommandLine::m_bGrepDlg [private]

[out] TRUE: Grep Mode

CCommandLine.h の 77 行で定義されています。

参照元 CCommandLine().

bool CCommandLine::m_bGrepMode [private]

[in]コマンドライン文字列

CCommandLine.h の 76 行で定義されています。

参照元 CCommandLine().

bool CCommandLine::m_bNoWindow [private]

CCommandLine.h の 79 行で定義されています。

参照元 CCommandLine().

bool CCommandLine::m_bReadOnly [private]

CCommandLine.h の 83 行で定義されています。

参照元 CCommandLine().

bool CCommandLine::m_bWriteQuit [private]

[out] TRUE: 編集Windowを開かない

CCommandLine.h の 80 行で定義されています。

参照元 CCommandLine().

FileInfo CCommandLine::m_fi [private]

[out] TRUE: 設定を保存して終了 // 2007.05.19 ryoji sakuext用に追加

CCommandLine.h の 81 行で定義されています。

参照元 ParseCommandLine().

GrepInfo CCommandLine::m_gi [private]

CCommandLine.h の 82 行で定義されています。

参照元 CCommandLine().

int CCommandLine::m_nGroup [private]

[out] TRUE: Read Only

CCommandLine.h の 84 行で定義されています。

参照元 CCommandLine().

LPCSTR CCommandLine::m_pszCmdLineSrc [private]

CCommandLine.h の 75 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CCommandLine.h
  • CCommandLine.cpp
Sakura-Editorに対してSat Oct 27 02:34:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCommandLine メンバ一覧

これは全メンバの一覧です。CCommandLine継承メンバも含んでいます。

_instance | CCommandLine | [private, static]
AtoiOptionInt(const char *arg) | CCommandLine | [inline, private, static]
CCommandLine() | CCommandLine | [private]
CCommandLine(LPSTR cmd) | CCommandLine | [private]
CheckCommandLine(LPSTR str, int quotelen, char **arg) | CCommandLine | [private, static]
GetFileInfo(FileInfo &fi) const | CCommandLine | [inline]
GetGrepInfo(GrepInfo &gi) const | CCommandLine | [inline]
GetGroupId() const | CCommandLine | [inline]
Instance(LPSTR cmd=NULL) | CCommandLine | [static]
IsDebugMode() const | CCommandLine | [inline]
IsGrepDlg() const | CCommandLine | [inline]
IsGrepMode() const | CCommandLine | [inline]
IsNoWindow() const | CCommandLine | [inline]
IsReadOnly() const | CCommandLine | [inline]
IsWriteQuit() const | CCommandLine | [inline]
m_bDebugMode | CCommandLine | [private]
m_bGrepDlg | CCommandLine | [private]
m_bGrepMode | CCommandLine | [private]
m_bNoWindow | CCommandLine | [private]
m_bReadOnly | CCommandLine | [private]
m_bWriteQuit | CCommandLine | [private]
m_fi | CCommandLine | [private]
m_gi | CCommandLine | [private]
m_nGroup | CCommandLine | [private]
m_pszCmdLineSrc | CCommandLine | [private]
ParseCommandLine(void) | CCommandLine | [private]

Sakura-Editorに対してSat Oct 27 02:34:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CControlProcess

  • 構成
  • クラス階層
  • 構成メンバ

クラス CControlProcess

コントロールプロセスクラス [詳細]

#include <CControlProcess.h>

CControlProcessに対する継承グラフ

[凡例]
CControlProcessのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CControlProcess (HINSTANCE hInstance, LPSTR lpCmdLine)
virtual | ~CControlProcess ()

Protected メソッド

CControlProcess ()
virtual bool | Initialize ()
コントロールプロセスを初期化する
virtual bool | MainLoop ()
コントロールプロセスのメッセージループ
virtual void | Terminate ()
コントロールプロセスを終了する

Private 変数

HANDLE | m_hMutex
HANDLE | m_hMutexCP
HANDLE | m_hEventCPInitialized
CEditApp * m_pcEditApp

説明

コントロールプロセスクラス

コントロールプロセスはCEditAppクラスのインスタンスを作る。

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CControlProcess.h の 34 行で定義されています。

コンストラクタとデストラクタ

CControlProcess::CControlProcess | ( | HINSTANCE | hInstance,
 |  | LPSTR | lpCmdLine
 | ) | [inline]

CControlProcess.h の 36 行で定義されています。

CControlProcess::~CControlProcess ( ) [virtual]

CControlProcess.cpp の 153 行で定義されています。

参照先 m_hEventCPInitialized・m_hMutex・m_hMutexCP・m_pcEditApp.

CControlProcess::CControlProcess ( ) [protected]

関数

bool CControlProcess::Initialize ( ) [protected, virtual]

コントロールプロセスを初期化する

MutexCPを作成・ロックする。 CEditAppを作成する。

作者:
aroka
日付:
2002/01/07

2002/02/17 YAZAKI 共有メモリを初期化するのはCProcessに移動。

2006/04/10 ryoji 初期化完了イベントの処理を追加、異常時の後始末はデストラクタに任せる

CProcessを再定義しています。

CControlProcess.cpp の 47 行で定義されています。

参照先 _MAX_PATH・CEditApp::Create()・FALSE・CShareData::GetIniFileName()・GSTR_APPNAME・GSTR_EVENT_SAKURA_CP_INITIALIZED・GSTR_MUTEX_SAKURA・GSTR_MUTEX_SAKURA_CP・CProcess::Initialize()・CCommandLine::Instance()・CShareData::LoadShareData()・CProcess::m_cShareData・m_hEventCPInitialized・CProcess::m_hInstance・m_hMutex・m_hMutexCP・CProcess::m_hWnd・DLLSHAREDATA::m_hwndTray・m_pcEditApp・CProcess::m_pShareData・MY_RUNNINGTIMER・MY_TRACETIME・MYMESSAGEBOX・NULL・CShareData::SaveShareData()・TRUE.

bool CControlProcess::MainLoop ( ) [protected, virtual]

コントロールプロセスのメッセージループ

作者:
aroka
日付:
2002/01/07

CProcessを実装しています。

CControlProcess.cpp の 132 行で定義されています。

参照先 CProcess::m_hWnd・m_pcEditApp・CEditApp::MessageLoop()・NULL.

void CControlProcess::Terminate ( ) [protected, virtual]

コントロールプロセスを終了する

作者:
aroka
日付:
2002/01/07

2006/07/02 ryoji 共有データ保存を CEditApp へ移動

CProcessを実装しています。

CControlProcess.cpp の 148 行で定義されています。

参照先 DLLSHAREDATA::m_hwndTray・CProcess::m_pShareData・NULL.

変数

HANDLE CControlProcess::m_hEventCPInitialized [private]

CControlProcess.h の 55 行で定義されています。

参照元 Initialize()・~CControlProcess().

HANDLE CControlProcess::m_hMutex [private]

CControlProcess.h の 53 行で定義されています。

参照元 Initialize()・~CControlProcess().

HANDLE CControlProcess::m_hMutexCP [private]

CControlProcess.h の 54 行で定義されています。

参照元 Initialize()・~CControlProcess().

CEditApp* CControlProcess::m_pcEditApp [private]

CControlProcess.h の 56 行で定義されています。

参照元 Initialize()・MainLoop()・~CControlProcess().

このクラスの説明は次のファイルから生成されました:
  • CControlProcess.h
  • CControlProcess.cpp
Sakura-Editorに対してSat Oct 27 02:34:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CControlProcess メンバ一覧

これは全メンバの一覧です。CControlProcess継承メンバも含んでいます。

CControlProcess(HINSTANCE hInstance, LPSTR lpCmdLine) | CControlProcess | [inline]
CControlProcess() | CControlProcess | [protected]
CProcess(HINSTANCE hInstance, LPSTR lpCmdLine) | CProcess |
CProcess() | CProcess | [protected]
Initialize() | CControlProcess | [protected, virtual]
m_CommandLine | CProcess | [protected]
m_cShareData | CProcess | [protected]
m_hEventCPInitialized | CControlProcess | [private]
m_hInstance | CProcess | [protected]
m_hMutex | CControlProcess | [private]
m_hMutexCP | CControlProcess | [private]
m_hWnd | CProcess | [protected]
m_pcEditApp | CControlProcess | [private]
m_pShareData | CProcess | [protected]
MainLoop() | CControlProcess | [protected, virtual]
Run() | CProcess |
Terminate() | CControlProcess | [protected, virtual]
~CControlProcess() | CControlProcess | [virtual]
~CProcess() | CProcess | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:34:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CCppPreprocessMng

  • 構成
  • クラス階層
  • 構成メンバ

クラス CCppPreprocessMng

すべてのメンバ一覧

Public メソッド

CCppPreprocessMng (void)
int | ScanLine (const char *, int)

Private 変数

bool | m_ismultiline
複数行のディレクティブ
int | m_maxnestlevel
ネストレベルの最大値
int | m_stackptr
ネストレベル
unsigned int | m_bitpattern
unsigned int | m_enablebuf
処理の有無を保存するバッファ

説明

Cプリプロセッサの if/ifdef/ifndef - else - endif状態管理クラス

ネストレベルは32レベル=(sizeof(int) * 8)まで

CEditDoc_FuncList1.cpp の 115 行で定義されています。

コンストラクタとデストラクタ

CCppPreprocessMng::CCppPreprocessMng ( void ) [inline]

CEditDoc_FuncList1.cpp の 117 行で定義されています。

関数

int CCppPreprocessMng::ScanLine | ( | const char * | str,
 |  | int | length
 | ) |

Cプリプロセッサの if/ifdef/ifndef - else - endifを元に 処理の必要性を判定する．

与えられた1行の文字列を先頭から走査し，C/C++での走査が必要な場合は 先頭の空白を除いた開始位置を，不要な場合はlengthを返す． 呼び出し側では戻り値から解析を始めるので， lengthを返すことはすべて空白と見なすことになる．

ネストの最大を超えた場合には記憶域がないために判定は不可能となるが， ネストレベルだけは管理する．

引数:
str | [in] 1行の文字列
length | [in] 文字列長
戻り値:
C解析開始位置．処理不要の場合はlength(行末までスキップ)．
elifの扱い
if (A) elif (B) elif (C) else (D) endifのような場合には(A)-(D)のどれか1つ だけが実行される．しかし，そうなると1ビットでは管理できないしネストを 囲むようなケースでelifを使うことはあまり無いと勝手に決めて見なかったことにする．
作者:
genta
日付:
2004.08.10 新規作成

2004.08.13 zenryaku 複数行のディレクティブに対応

CEditDoc_FuncList1.cpp の 164 行で定義されています。

参照先 C_IsLineEsc()・C_IsSpace()・m_bitpattern・m_enablebuf・m_ismultiline・m_maxnestlevel・m_stackptr.

参照元 CEditDoc::MakeFuncList_C().

変数

unsigned int CCppPreprocessMng::m_bitpattern [private]

ネストレベルに対応するビットパターン

m_stackptr = n の時，下から(n-1)bit目に1が入っている

CEditDoc_FuncList1.cpp の 133 行で定義されています。

参照元 ScanLine().

unsigned int CCppPreprocessMng::m_enablebuf [private]

処理の有無を保存するバッファ

CEditDoc_FuncList1.cpp の 134 行で定義されています。

参照元 ScanLine().

bool CCppPreprocessMng::m_ismultiline [private]

複数行のディレクティブ

CEditDoc_FuncList1.cpp の 124 行で定義されています。

参照元 ScanLine().

int CCppPreprocessMng::m_maxnestlevel [private]

ネストレベルの最大値

CEditDoc_FuncList1.cpp の 125 行で定義されています。

参照元 ScanLine().

int CCppPreprocessMng::m_stackptr [private]

ネストレベル

CEditDoc_FuncList1.cpp の 127 行で定義されています。

参照元 ScanLine().

このクラスの説明は次のファイルから生成されました:
  • CEditDoc_FuncList1.cpp
Sakura-Editorに対してSat Oct 27 02:34:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CCppPreprocessMng メンバ一覧

これは全メンバの一覧です。CCppPreprocessMng継承メンバも含んでいます。

CCppPreprocessMng(void) | CCppPreprocessMng | [inline]
m_bitpattern | CCppPreprocessMng | [private]
m_enablebuf | CCppPreprocessMng | [private]
m_ismultiline | CCppPreprocessMng | [private]
m_maxnestlevel | CCppPreprocessMng | [private]
m_stackptr | CCppPreprocessMng | [private]
ScanLine(const char *, int) | CCppPreprocessMng |

Sakura-Editorに対してSat Oct 27 02:34:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDataObject

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDataObject

#include <CDropTarget.h>

CDataObjectに対する継承グラフ

[凡例]
CDataObjectのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDataObject (LPCTSTR lpszText)
~CDataObject ()
void | SetText (LPCTSTR lpszText)
DWORD | DragDrop (BOOL bLeft, DWORD dwEffects)
STDMETHOD (GetData)(LPFORMATETC
STDMETHOD (GetDataHere)(LPFORMATETC
STDMETHOD (QueryGetData)(LPFORMATETC)
STDMETHOD (GetCanonicalFormatEtc)(LPFORMATETC
STDMETHOD (SetData)(LPFORMATETC
STDMETHOD (EnumFormatEtc)(DWORD
LPENUMFORMATETC * | STDMETHOD (DAdvise)(LPFORMATETC
STDMETHOD (DUnadvise)(DWORD)
STDMETHOD (EnumDAdvise)(LPENUMSTATDATA *)

Public 変数

LPSTGMEDIUM
LPFORMATETC
BOOL
LPENUMFORMATETC * | DWORD
LPENUMFORMATETC | LPADVISESINK
LPENUMFORMATETC | LPDWORD

Private 変数

CLIPFORMAT | m_cfFormat
LPBYTE | data
unsigned int | size

説明

CDropTarget.h の 111 行で定義されています。

コンストラクタとデストラクタ

CDataObject::CDataObject ( LPCTSTR lpszText ) [inline]

CDropTarget.h の 119 行で定義されています。

参照先 SetText().

CDataObject::~CDataObject ( ) [inline]

CDropTarget.h の 122 行で定義されています。

参照先 NULL・SetText().

関数

DWORD CDataObject::DragDrop | ( | BOOL | bLeft,
 |  | DWORD | dwEffects
 | ) |

CDropTarget.cpp の 247 行で定義されています。

参照先 DWORD.

void CDataObject::SetText ( LPCTSTR lpszText )

CDropTarget.cpp の 230 行で定義されています。

参照先 data・m_cfFormat・NULL・size.

参照元 CDataObject()・~CDataObject().

CDataObject::STDMETHOD ( EnumDAdvise )

CDataObject::STDMETHOD ( DUnadvise )

LPENUMFORMATETC* CDataObject::STDMETHOD ( DAdvise )

CDataObject::STDMETHOD ( EnumFormatEtc )

CDataObject::STDMETHOD ( SetData )

CDataObject::STDMETHOD ( GetCanonicalFormatEtc )

CDataObject::STDMETHOD ( QueryGetData )

CDataObject::STDMETHOD ( GetDataHere )

CDataObject::STDMETHOD ( GetData )

変数

CDataObject::BOOL

CDropTarget.h の 130 行で定義されています。

LPBYTE CDataObject::data [private]

CDropTarget.h の 115 行で定義されています。

参照元 SetText().

LPENUMFORMATETC* CDataObject::DWORD

CDropTarget.h の 132 行で定義されています。

参照元 DragDrop().

LPENUMFORMATETC CDataObject::LPADVISESINK

CDropTarget.h の 132 行で定義されています。

LPENUMFORMATETC CDataObject::LPDWORD

CDropTarget.h の 132 行で定義されています。

CDataObject::LPFORMATETC

CDropTarget.h の 129 行で定義されています。

CDataObject::LPSTGMEDIUM

CDropTarget.h の 126 行で定義されています。

CLIPFORMAT CDataObject::m_cfFormat [private]

CDropTarget.h の 113 行で定義されています。

参照元 SetText().

unsigned int CDataObject::size [private]

CDropTarget.h の 116 行で定義されています。

参照元 SetText().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Oct 27 02:34:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDataObject メンバ一覧

これは全メンバの一覧です。CDataObject継承メンバも含んでいます。

BOOL | CDataObject |
CDataObject(LPCTSTR lpszText) | CDataObject | [inline]
CYbInterfaceBase() | CYbInterfaceBase | [protected]
CYbInterfaceImpl() | CYbInterfaceImpl< IDataObject > | [inline]
data | CDataObject | [private]
DragDrop(BOOL bLeft, DWORD dwEffects) | CDataObject |
DWORD | CDataObject |
LPADVISESINK | CDataObject |
LPDWORD | CDataObject |
LPFORMATETC | CDataObject |
LPSTGMEDIUM | CDataObject |
m_cfFormat | CDataObject | [private]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
SetText(LPCTSTR lpszText) | CDataObject |
size | CDataObject | [private]
STDMETHOD(GetData)(LPFORMATETC | CDataObject |
STDMETHOD(GetDataHere)(LPFORMATETC | CDataObject |
STDMETHOD(QueryGetData)(LPFORMATETC) | CDataObject |
STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC | CDataObject |
STDMETHOD(SetData)(LPFORMATETC | CDataObject |
STDMETHOD(EnumFormatEtc)(DWORD | CDataObject |
STDMETHOD(DAdvise)(LPFORMATETC | CDataObject |
STDMETHOD(DUnadvise)(DWORD) | CDataObject |
STDMETHOD(EnumDAdvise)(LPENUMSTATDATA *) | CDataObject |
CYbInterfaceImpl< IDataObject >::STDMETHOD(QueryInterface)(REFIID riid | CYbInterfaceImpl< IDataObject > |
~CDataObject() | CDataObject | [inline]
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Oct 27 02:34:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDialog

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDialog

ダイアログウィンドウを扱うクラス [詳細]

#include <CDialog.h>

CDialogに対する継承グラフ

[凡例]
CDialogのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDialog ()
virtual | ~CDialog ()
virtual INT_PTR | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
INT_PTR | DoModal (HINSTANCE, HWND, int, LPARAM)
モーダルダイアログの表示
HWND | DoModeless (HINSTANCE, HWND, int, LPARAM, int)
モードレスダイアログの表示
void | CloseDialog (int)
virtual BOOL | OnInitDialog (HWND, WPARAM wParam, LPARAM lParam)
virtual BOOL | OnDestroy (void)
virtual BOOL | OnNotify (WPARAM wParam, LPARAM lParam)
virtual BOOL | OnSize (WPARAM wParam, LPARAM lParam)
virtual BOOL | OnMove (WPARAM wParam, LPARAM lParam)
virtual BOOL | OnDrawItem (WPARAM wParam, LPARAM lParam)
virtual BOOL | OnTimer (WPARAM wParam)
virtual BOOL | OnKeyDown (WPARAM wParam, LPARAM lParam)
virtual BOOL | OnDeviceChange (WPARAM wParam, LPARAM lParam)
virtual int | GetData (void)
virtual void | SetData (void)
virtual BOOL | OnBnClicked (int)
virtual BOOL | OnCbnSelChange (HWND hwndCtl, int wID)
virtual BOOL | OnCbnEditChange (HWND hwndCtl, int wID)
virtual BOOL | OnEditChange (HWND hwndCtl, int wID)
virtual BOOL | OnLbnDblclk (int wID)
virtual BOOL | OnKillFocus (WPARAM wParam, LPARAM lParam)
virtual BOOL | OnActivate (WPARAM wParam, LPARAM lParam)
virtual int | OnVKeyToItem (WPARAM wParam, LPARAM lParam)
virtual LRESULT | OnCharToItem (WPARAM wParam, LPARAM lParam)
virtual BOOL | OnPopupHelp (WPARAM, LPARAM)
virtual BOOL | OnContextMenu (WPARAM, LPARAM)
virtual LPVOID | GetHelpIdTable (void)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd
HWND | m_hwndSizeBox
LPARAM | m_lParam
BOOL | m_bModal
int | m_nShowCmd
int | m_nWidth
int | m_nHeight
int | m_xPos
int | m_yPos
char | m_szHelpFile [_MAX_PATH+1]
DLLSHAREDATA * m_pShareData
BOOL | m_bInited

Protected メソッド

void | CreateSizeBox (void)
BOOL | OnCommand (WPARAM, LPARAM)

説明

ダイアログウィンドウを扱うクラス

ダイアログボックスを作るときにはここから継承させる．

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CDialog.h の 39 行で定義されています。

コンストラクタとデストラクタ

CDialog::CDialog ( )

コンストラクタ

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CDialog.cpp の 56 行で定義されています。

参照先 GetHelpFilePath()・CShareData::getInstance()・CShareData::GetShareData()・m_hInstance・m_hWnd・m_hwndParent・m_hwndSizeBox・m_lParam・m_nHeight・m_nShowCmd・m_nWidth・m_pShareData・m_szHelpFile・m_xPos・m_yPos・NULL.

CDialog::~CDialog ( ) [virtual]

CDialog.cpp の 79 行で定義されています。

参照先 CloseDialog().

関数

void CDialog::CloseDialog ( int )

CDialog.cpp の 132 行で定義されています。

参照先 m_bModal・m_hWnd・NULL.

参照元 CDlgPrintPage::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFileUpdateQuery::OnBnClicked()・CDlgExec::OnBnClicked()・OnBnClicked()・~CDialog().

void CDialog::CreateSizeBox ( void ) [protected]

CDialog.cpp の 330 行で定義されています。

参照先 m_hInstance・m_hWnd・m_hwndSizeBox・NULL.

参照元 CHokanMgr::OnDestroy()・CDlgFuncList::OnInitDialog().

INT_PTR CDialog::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [virtual]

CDlgAbout・CDlgSameColorで再定義されています。

CDialog.cpp の 357 行で定義されています。

参照先 FALSE・m_hWnd・OnActivate()・OnCharToItem()・OnCommand()・OnContextMenu()・OnDestroy()・OnDrawItem()・OnInitDialog()・OnKeyDown()・OnKillFocus()・OnMove()・OnNotify()・OnPopupHelp()・OnSize()・OnTimer()・OnVKeyToItem().

参照元 CDlgSameColor::DispatchEvent()・CDlgAbout::DispatchEvent()・MyDialogProc().

INT_PTR CDialog::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | int | nDlgTemplete,
 |  | LPARAM | lParam
 | ) |

モーダルダイアログの表示

引数:
hInstance | [in] アプリケーションインスタンスのハンドル
hwndParent | [in] オーナーウィンドウのハンドル

CDialog.cpp の 91 行で定義されています。

参照先 FALSE・m_bInited・m_bModal・m_hInstance・m_hwndParent・m_lParam・MyDialogProc()・TRUE.

参照元 CEditDoc::CheckFileTimeStamp()・CDlgWinSize::DoModal()・CDlgTypeList::DoModal()・CDlgTagsMake::DoModal()・CDlgTagJumpList::DoModal()・CDlgSameColor::DoModal()・CDlgProperty::DoModal()・CDlgPrintPage::DoModal()・CDlgJump::DoModal()・CDlgGrep::DoModal()・CDlgFavorite::DoModal()・CDlgExec::DoModal()・CDlgDiff::DoModal()・CDlgCtrlCode::DoModal()・CDlgCompare::DoModal()・CDlgCancel::DoModal()・CDlgAbout::DoModal().

HWND CDialog::DoModeless | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | int | nDlgTemplete,
 |  | LPARAM | lParam,
 |  | int | nCmdShow
 | ) |

モードレスダイアログの表示

引数:
hInstance | [in] アプリケーションインスタンスのハンドル
hwndParent | [in] オーナーウィンドウのハンドル

CDialog.cpp の 112 行で定義されています。

参照先 FALSE・m_bInited・m_bModal・m_hInstance・m_hWnd・m_hwndParent・m_lParam・MyDialogProc()・NULL.

参照元 CHokanMgr::DoModeless()・CDlgReplace::DoModeless()・CDlgFuncList::DoModeless()・CDlgFind::DoModeless()・CDlgCancel::DoModeless().

virtual int CDialog::GetData ( void ) [inline, virtual]

CDlgCompare・CDlgCtrlCode・CDlgDiff・CDlgExec・CDlgFavorite・CDlgFind・CDlgFuncList・CDlgGrep・CDlgJump・CDlgKeywordSelect・CDlgPrintPage・CDlgPrintSetting・CDlgReplace・CDlgTagJumpList・CDlgTagsMake・CDlgWinSizeで再定義されています。

CDialog.h の 64 行で定義されています。

LPVOID CDialog::GetHelpIdTable ( void ) [virtual]

CDlgAbout・CDlgCancel・CDlgCompare・CDlgCtrlCode・CDlgDiff・CDlgExec・CDlgFavorite・CDlgFind・CDlgFuncList・CDlgGrep・CDlgJump・CDlgKeywordSelect・CDlgPrintPage・CDlgPrintSetting・CDlgProperty・CDlgReplace・CDlgSameColor・CDlgTagJumpList・CDlgTagsMake・CDlgTypeList・CDlgWinSize・CHokanMgrで再定義されています。

CDialog.cpp の 432 行で定義されています。

参照先 p_helpids.

参照元 OnContextMenu()・OnPopupHelp().

virtual BOOL CDialog::OnActivate | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CDlgFavoriteで再定義されています。

CDialog.h の 76 行で定義されています。

参照先 FALSE.

参照元 DispatchEvent()・CDlgFavorite::OnActivate().

BOOL CDialog::OnBnClicked ( int ) [virtual]

CDlgAbout・CDlgCancel・CDlgCompare・CDlgCtrlCode・CDlgDiff・CDlgExec・CDlgFavorite・CDlgFileUpdateQuery・CDlgFind・CDlgFuncList・CDlgGrep・CDlgJump・CDlgKeywordSelect・CDlgPrintPage・CDlgPrintSetting・CDlgProperty・CDlgReplace・CDlgSameColor・CDlgTagJumpList・CDlgTagsMake・CDlgTypeList・CDlgWinSize・CHokanMgrで再定義されています。

CDialog.cpp の 246 行で定義されています。

参照先 CloseDialog()・FALSE・TRUE.

参照元 CDlgWinSize::OnBnClicked()・CDlgTypeList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgKeywordSelect::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・CDlgAbout::OnBnClicked()・OnCommand().

virtual BOOL CDialog::OnCbnEditChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [inline, virtual]

CDlgTagJumpListで再定義されています。

CDialog.h の 68 行で定義されています。

参照先 FALSE.

参照元 CDlgTagJumpList::OnCbnEditChange()・OnCommand().

virtual BOOL CDialog::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [inline, virtual]

CDlgDiff・CDlgFuncList・CDlgJump・CDlgPrintSetting・CDlgTagJumpList・CHokanMgrで再定義されています。

CDialog.h の 67 行で定義されています。

参照先 FALSE.

参照元 CDlgTagJumpList::OnCbnSelChange()・CDlgDiff::OnCbnSelChange()・OnCommand()・CDlgDiff::OnEditChange().

virtual LRESULT CDialog::OnCharToItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CDialog.h の 78 行で定義されています。

参照元 DispatchEvent().

BOOL CDialog::OnCommand | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CDialog.cpp の 387 行で定義されています。

参照先 FALSE・OnBnClicked()・OnCbnEditChange()・OnCbnSelChange()・OnEditChange()・OnLbnDblclk().

参照元 DispatchEvent().

BOOL CDialog::OnContextMenu | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [virtual]

CDialog.cpp の 422 行で定義されています。

参照先 GetHelpIdTable()・m_hWnd・m_szHelpFile・MyWinHelp()・TRUE・ULONG_PTR.

参照元 DispatchEvent().

BOOL CDialog::OnDestroy ( void ) [virtual]

CDlgFuncList・CDlgPrintSetting・CHokanMgrで再定義されています。

CDialog.cpp の 224 行で定義されています。

参照先 m_hWnd・m_hwndSizeBox・m_nHeight・m_nShowCmd・m_nWidth・m_xPos・m_yPos・NULL・TRUE.

参照元 DispatchEvent()・CHokanMgr::OnDestroy()・CDlgPrintSetting::OnDestroy()・CDlgFuncList::OnDestroy().

virtual BOOL CDialog::OnDeviceChange | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CDialog.h の 63 行で定義されています。

参照先 TRUE.

virtual BOOL CDialog::OnDrawItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CDlgSameColorで再定義されています。

CDialog.h の 60 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnEditChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [inline, virtual]

CDlgDiffで再定義されています。

CDialog.h の 72 行で定義されています。

参照先 FALSE.

参照元 OnCommand().

BOOL CDialog::OnInitDialog | ( | HWND | ,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDlgAbout・CDlgCancel・CDlgCtrlCode・CDlgFavorite・CDlgFileUpdateQuery・CDlgFuncList・CDlgGrep・CDlgKeywordSelect・CDlgPrintSetting・CDlgReplace・CDlgSameColor・CDlgTagJumpList・CDlgWinSize・CHokanMgrで再定義されています。

CDialog.cpp の 147 行で定義されています。

参照先 DWLP_USER・GetMonitorWorkRect()・m_bInited・m_hWnd・m_nHeight・m_nShowCmd・m_nWidth・m_xPos・m_yPos・MYTRACE・NULL・SetData()・SetWindowLongPtr・TRUE.

参照元 DispatchEvent()・CHokanMgr::OnInitDialog()・CDlgWinSize::OnInitDialog()・CDlgTagJumpList::OnInitDialog()・CDlgSameColor::OnInitDialog()・CDlgReplace::OnInitDialog()・CDlgPrintSetting::OnInitDialog()・CDlgKeywordSelect::OnInitDialog()・CDlgFuncList::OnInitDialog()・CDlgFileUpdateQuery::OnInitDialog()・CDlgCtrlCode::OnInitDialog()・CDlgCancel::OnInitDialog()・CDlgAbout::OnInitDialog().

virtual BOOL CDialog::OnKeyDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CHokanMgrで再定義されています。

CDialog.h の 62 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnKillFocus | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CHokanMgrで再定義されています。

CDialog.h の 75 行で定義されています。

参照先 FALSE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnLbnDblclk ( int wID ) [inline, virtual]

CDlgTypeList・CHokanMgrで再定義されています。

CDialog.h の 74 行で定義されています。

参照先 FALSE.

参照元 OnCommand().

BOOL CDialog::OnMove | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDialog.cpp の 306 行で定義されています。

参照先 FALSE・m_bInited・m_hWnd・m_nHeight・m_nWidth・m_xPos・m_yPos・MYTRACE・TRUE.

参照元 DispatchEvent().

virtual BOOL CDialog::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CDlgCtrlCode・CDlgFavorite・CDlgFuncList・CDlgJump・CDlgPrintSetting・CDlgTagJumpListで再定義されています。

CDialog.h の 57 行で定義されています。

参照先 FALSE.

参照元 DispatchEvent()・CDlgTagJumpList::OnNotify()・CDlgFavorite::OnNotify().

BOOL CDialog::OnPopupHelp | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [virtual]

CDialog.cpp の 415 行で定義されています。

参照先 GetHelpIdTable()・m_szHelpFile・MyWinHelp()・TRUE・ULONG_PTR.

参照元 DispatchEvent().

BOOL CDialog::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDlgFuncList・CHokanMgrで再定義されています。

CDialog.cpp の 260 行で定義されています。

参照先 FALSE・m_hWnd・m_hwndSizeBox・m_nHeight・m_nWidth・m_xPos・m_yPos・NULL・TRUE.

参照元 DispatchEvent()・CHokanMgr::OnSize()・CDlgFuncList::OnSize().

virtual BOOL CDialog::OnTimer ( WPARAM wParam ) [inline, virtual]

CDlgPrintSetting・CDlgTagJumpListで再定義されています。

CDialog.h の 61 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent().

virtual int CDialog::OnVKeyToItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [inline, virtual]

CDialog.h の 77 行で定義されています。

参照元 DispatchEvent().

virtual void CDialog::SetData ( void ) [inline, virtual]

CDlgCompare・CDlgCtrlCode・CDlgDiff・CDlgExec・CDlgFavorite・CDlgFind・CDlgFuncList・CDlgGrep・CDlgJump・CDlgKeywordSelect・CDlgPrintPage・CDlgPrintSetting・CDlgProperty・CDlgReplace・CDlgTagJumpList・CDlgTagsMake・CDlgTypeList・CDlgWinSizeで再定義されています。

CDialog.h の 65 行で定義されています。

参照元 OnInitDialog().

変数

BOOL CDialog::m_bInited

CDialog.h の 103 行で定義されています。

参照元 DoModal()・DoModeless()・OnInitDialog()・OnMove().

BOOL CDialog::m_bModal

CDialog.h の 94 行で定義されています。

参照元 CloseDialog()・DoModal()・DoModeless()・CDlgFind::GetData()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFuncList::OnJump().

HINSTANCE CDialog::m_hInstance

CDialog.h の 89 行で定義されています。

参照元 CDialog()・CreateSizeBox()・DoModal()・DoModeless()・CDlgPrintSetting::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgGrep::OnInitDialog()・CDlgAbout::OnInitDialog().

HWND CDialog::m_hWnd

CDialog.h の 91 行で定義されています。

参照元 CDialog()・CloseDialog()・CEditView::Command_FUNCLIST()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_DIALOG()・CEditView::Command_SEARCH_DIALOG()・CreateSizeBox()・DispatchEvent()・CEditApp::DoGrep()・CEditView::DoGrepFile()・CEditView::DoGrepTree()・CHokanMgr::DoModeless()・DoModeless()・CPrintPreview::DrawPageText()・CEditView::ExecCmd()・CDlgWinSize::GetData()・CDlgTagsMake::GetData()・CDlgTagJumpList::GetData()・CDlgReplace::GetData()・CDlgPrintSetting::GetData()・CDlgPrintPage::GetData()・CDlgKeywordSelect::GetData()・CDlgJump::GetData()・CDlgFind::GetData()・CDlgFavorite::GetData()・CDlgExec::GetData()・CDlgDiff::GetData()・CDlgCtrlCode::GetData()・CDlgCompare::GetData()・CHokanMgr::Hide()・CEditWnd::MessageLoop()・CDlgFavorite::OnActivate()・CDlgWinSize::OnBnClicked()・CDlgTypeList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgSameColor::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgPrintPage::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・CDlgAbout::OnBnClicked()・CDlgPrintSetting::OnCbnSelChange()・CDlgJump::OnCbnSelChange()・CDlgDiff::OnCbnSelChange()・OnContextMenu()・CDlgPrintSetting::OnDestroy()・OnDestroy()・CDlgDiff::OnEditChange()・CDlgWinSize::OnInitDialog()・CDlgTagJumpList::OnInitDialog()・CDlgSameColor::OnInitDialog()・CDlgPrintSetting::OnInitDialog()・CDlgKeywordSelect::OnInitDialog()・CDlgGrep::OnInitDialog()・CDlgFavorite::OnInitDialog()・CDlgCtrlCode::OnInitDialog()・CDlgCancel::OnInitDialog()・CDlgAbout::OnInitDialog()・OnInitDialog()・CDlgTypeList::OnLbnDblclk()・OnMove()・CDlgTagJumpList::OnNotify()・CDlgJump::OnNotify()・CDlgFavorite::OnNotify()・CDlgCtrlCode::OnNotify()・CDlgSameColor::OnSelChangeListColors()・OnSize()・CDlgTagJumpList::OnTimer()・CDlgFavorite::RefreshListOne()・CDlgWinSize::RenewItemState()・CEditDoc::SetActivePane()・CDlgWinSize::SetData()・CDlgTypeList::SetData()・CDlgTagsMake::SetData()・CDlgTagJumpList::SetData()・CDlgReplace::SetData()・CDlgPrintSetting::SetData()・CDlgPrintPage::SetData()・CDlgKeywordSelect::SetData()・CDlgJump::SetData()・CDlgGrep::SetData()・CDlgFuncList::SetData()・CDlgFind::SetData()・CDlgExec::SetData()・CDlgDiff::SetData()・CDlgCtrlCode::SetData()・CDlgCompare::SetData()・SetData_EnumFontFamProc()・CDlgFavorite::SetDataOne()・CDlgTagJumpList::StartTimer()・CDlgTagJumpList::StopTimer()・CDlgTagJumpList::UpdateData().

HWND CDialog::m_hwndParent

CDialog.h の 90 行で定義されています。

参照元 CDialog()・DoModal()・DoModeless()・CHokanMgr::Hide()・HokanList_SubclassProc()・CDlgFuncList::OnJump()・CDlgFuncList::OnNotify()・CDlgPrintSetting::SetData().

HWND CDialog::m_hwndSizeBox

CDialog.h の 92 行で定義されています。

参照元 CDialog()・CreateSizeBox()・OnDestroy()・OnSize().

LPARAM CDialog::m_lParam

CDialog.h の 93 行で定義されています。

参照元 CDialog()・CHokanMgr::ChangeView()・CDlgReplace::ChangeView()・CDlgFuncList::ChangeView()・CDlgFind::ChangeView()・CHokanMgr::DoHokan()・DoModal()・DoModeless()・CDlgTagJumpList::GetData()・CHokanMgr::Hide()・CDlgFuncList::Key2Command()・CDlgReplace::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFuncList::OnDestroy()・CDlgTagJumpList::OnInitDialog()・CDlgFuncList::OnInitDialog()・CDlgTagJumpList::SetData()・CDlgProperty::SetData()・CDlgJump::SetData()・CDlgDiff::SetData()・CDlgCompare::SetData()・CHokanMgr::ShowTip().

int CDialog::m_nHeight

CDialog.h の 97 行で定義されています。

参照元 CDialog()・CDlgFuncList::OnDestroy()・OnDestroy()・CDlgFuncList::OnInitDialog()・OnInitDialog()・OnMove()・OnSize()・CHokanMgr::ShowTip().

int CDialog::m_nShowCmd

CDialog.h の 95 行で定義されています。

参照元 CDialog()・OnDestroy()・OnInitDialog().

int CDialog::m_nWidth

CDialog.h の 96 行で定義されています。

参照元 CDialog()・CDlgFuncList::OnDestroy()・OnDestroy()・CDlgFuncList::OnInitDialog()・OnInitDialog()・OnMove()・OnSize()・CHokanMgr::ShowTip().

DLLSHAREDATA* CDialog::m_pShareData

CDialog.h の 102 行で定義されています。

参照元 CDialog()・CDlgGrep::CDlgGrep()・CDlgKeywordSelect::CDlgKeywordSelect()・CHokanMgr::DoHokan()・CDlgGrep::DoModal()・CDlgReplace::DoModeless()・CDlgFind::DoModeless()・CDlgTagsMake::GetData()・CDlgTagJumpList::GetData()・CDlgReplace::GetData()・CDlgJump::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CDlgExec::GetData()・CDlgDiff::GetData()・CDlgCompare::GetData()・CDlgFuncList::Key2Command()・CHokanMgr::KeyProc()・CDlgJump::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgFuncList::OnDestroy()・CDlgFuncList::OnInitDialog()・CDlgFuncList::OnJump()・CDlgFuncList::OnNotify()・CDlgTypeList::SetData()・CDlgTagsMake::SetData()・CDlgTagJumpList::SetData()・CDlgReplace::SetData()・CDlgProperty::SetData()・CDlgGrep::SetData()・CDlgFind::SetData()・CDlgExec::SetData()・CDlgDiff::SetData()・CDlgCompare::SetData().

char CDialog::m_szHelpFile[_MAX_PATH+1]

CDialog.h の 101 行で定義されています。

参照元 CDialog()・CDlgWinSize::OnBnClicked()・CDlgTypeList::OnBnClicked()・CDlgTagsMake::OnBnClicked()・CDlgTagJumpList::OnBnClicked()・CDlgSameColor::OnBnClicked()・CDlgProperty::OnBnClicked()・CDlgPrintSetting::OnBnClicked()・CDlgJump::OnBnClicked()・CDlgGrep::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CDlgFavorite::OnBnClicked()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CDlgCtrlCode::OnBnClicked()・CDlgCompare::OnBnClicked()・OnContextMenu()・OnPopupHelp().

int CDialog::m_xPos

CDialog.h の 98 行で定義されています。

参照元 CDialog()・CDlgFuncList::OnDestroy()・OnDestroy()・CDlgFuncList::OnInitDialog()・OnInitDialog()・OnMove()・OnSize().

int CDialog::m_yPos

CDialog.h の 99 行で定義されています。

参照元 CDialog()・CDlgFuncList::OnDestroy()・OnDestroy()・CDlgFuncList::OnInitDialog()・OnInitDialog()・OnMove()・OnSize().

このクラスの説明は次のファイルから生成されました:
  • CDialog.h
  • CDialog.cpp
Sakura-Editorに対してSat Oct 27 02:34:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDialog メンバ一覧

これは全メンバの一覧です。CDialog継承メンバも含んでいます。

CDialog() | CDialog |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CDialog | [virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDialog | [virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDialog | [inline, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDicMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDicMgr

#include <CDicMgr.h>

すべてのメンバ一覧

Public メソッド

CDicMgr ()
~CDicMgr ()

Static Public メソッド

static BOOL | Search (const char *, const int, CMemory **, CMemory **, const char *, int *)
static int | HokanSearch (const char *, BOOL, CMemory **, int, const char *)

説明

CDicMgr.h の 27 行で定義されています。

コンストラクタとデストラクタ

CDicMgr::CDicMgr ( )

CDicMgr.cpp の 27 行で定義されています。

CDicMgr::~CDicMgr ( )

CDicMgr.cpp の 35 行で定義されています。

関数

int CDicMgr::HokanSearch | ( | const char * | ,
 |  | BOOL | ,
 |  | CMemory ** | ,
 |  | int | ,
 |  | const char * |
 | ) | [static]

CDicMgr.cpp の 133 行で定義されています。

参照先 _tfopen_absini()・memicmp・NULL・CMemory::SetDataSz().

BOOL CDicMgr::Search | ( | const char * | pszKey,
 |  | const | int,
 |  | CMemory ** | ppcmemKey,
 |  | CMemory ** | ppcmemMean,
 |  | const char * | pszKeyWordHelpFile,
 |  | int * | pLine
 | ) | [static]

キーワードの検索 最初に見つかったキーワードの意味を返す

引数:
[in] | pszKey | 検索キーワード
[in] | nCmpLen | 検索キーワードの長さ
[out] | ppcmemKey | 見つかったキーワード．呼び出し元の責任で解放する．
[out] | ppcmemMean | 見つかったキーワードに対応する辞書内容．呼び出し元の責任で解放する．
[in] | pszKeyWordHelpFile | キーワードヘルプファイルのパス名
[out] | pLine | 見つかったキーワードのキーワードヘルプファイル内での行番号
日付:
2006.04.10 fon 検索ヒット行を返す引数pLineを追加

CDicMgr.cpp の 56 行で定義されています。

参照先 _strnicmp・_tfopen_absini()・FALSE・LINEREADBUFSIZE・NULL・CMemory::SetDataSz()・TRUE.

このクラスの説明は次のファイルから生成されました:
  • CDicMgr.h
  • CDicMgr.cpp
Sakura-Editorに対してSat Oct 27 02:34:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDicMgr メンバ一覧

これは全メンバの一覧です。CDicMgr継承メンバも含んでいます。

CDicMgr() | CDicMgr |
HokanSearch(const char *, BOOL, CMemory **, int, const char *) | CDicMgr | [static]
Search(const char *, const int, CMemory **, CMemory **, const char *, int *) | CDicMgr | [static]
~CDicMgr() | CDicMgr |

Sakura-Editorに対してSat Oct 27 02:34:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgAbout

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgAbout

#include <CDlgAbout.h>

CDlgAboutに対する継承グラフ

[凡例]
CDlgAboutのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

int | DoModal (HINSTANCE, HWND)
INT_PTR | DispatchEvent (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam)

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)

Private 変数

CUrlWnd m_UrlUrWnd
CUrlWnd m_UrlOrgWnd

説明

CDlgAbout.h の 42 行で定義されています。

関数

INT_PTR CDlgAbout::DispatchEvent | ( | HWND | hWnd,
 |  | UINT | wMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

標準以外のメッセージを捕捉する

CDialogを再定義しています。

CDlgAbout.cpp の 69 行で定義されています。

参照先 CDialog::DispatchEvent()・INT_PTR.

int CDlgAbout::DoModal | ( | HINSTANCE | ,
 |  | HWND |
 | ) |

CDlgAbout.cpp の 83 行で定義されています。

参照先 CDialog::DoModal()・IDD_ABOUT・NULL.

参照元 CEditView::Command_ABOUT()・CEditWnd::OnCommand().

LPVOID CDlgAbout::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgAbout.cpp の 197 行で定義されています。

参照先 p_helpids.

BOOL CDlgAbout::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgAbout.cpp の 173 行で定義されています。

参照先 IDC_STATIC_URL_ORG・IDC_STATIC_URL_UR・CDialog::m_hWnd・NULL・CDialog::OnBnClicked()・TRUE.

BOOL CDlgAbout::OnInitDialog | ( | HWND | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgAbout.cpp の 88 行で定義されています。

参照先 _MAX_PATH・COMPILER_TYPE・COMPILER_VER・FN_APP_ICON・GetAppIcon()・GetAppVersionInfo()・GetLastWriteTimestamp()・ICON_DEFAULT_APP・IDC_EDIT_ABOUT・IDC_STATIC_MYICON・IDC_STATIC_UPDATE・IDC_STATIC_URL_UR・IDC_STATIC_VER・IDS_ABOUT_DESCRIPTION・CDialog::m_hInstance・CDialog::m_hWnd・m_UrlUrWnd・NULL・CDialog::OnInitDialog()・CUrlWnd::SubclassWindow().

変数

CUrlWnd CDlgAbout::m_UrlOrgWnd [private]

CDlgAbout.h の 54 行で定義されています。

CUrlWnd CDlgAbout::m_UrlUrWnd [private]

CDlgAbout.h の 53 行で定義されています。

参照元 OnInitDialog().

このクラスの説明は次のファイルから生成されました:
  • CDlgAbout.h
  • CDlgAbout.cpp
Sakura-Editorに対してSat Oct 27 02:34:22 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgAbout メンバ一覧

これは全メンバの一覧です。CDlgAbout継承メンバも含んでいます。

CDialog() | CDialog |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) | CDlgAbout | [virtual]
DoModal(HINSTANCE, HWND) | CDlgAbout |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CDlgAbout | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_UrlOrgWnd | CDlgAbout | [private]
m_UrlUrWnd | CDlgAbout | [private]
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgAbout | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgAbout | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDialog | [inline, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:22 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgCancel

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgCancel

キャンセルボタンダイアログ [詳細]

#include <CDlgCancel.h>

CDlgCancelに対する継承グラフ

[凡例]
CDlgCancelのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgCancel ()
int | DoModal (HINSTANCE, HWND, int)
HWND | DoModeless (HINSTANCE, HWND, int)
BOOL | IsCanceled (void)

Public 変数

BOOL | m_bCANCEL

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)

説明

キャンセルボタンダイアログ

CDlgCancel.h の 26 行で定義されています。

コンストラクタとデストラクタ

CDlgCancel::CDlgCancel ( )

CDlgCancel.cpp の 16 行で定義されています。

参照先 FALSE・m_bCANCEL.

関数

int CDlgCancel::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | int |
 | ) |

CDlgCancel.cpp の 22 行で定義されています。

参照先 CDialog::DoModal()・FALSE・m_bCANCEL・NULL.

HWND CDlgCancel::DoModeless | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | int |
 | ) |

CDlgCancel.cpp の 28 行で定義されています。

参照先 CDialog::DoModeless()・FALSE・m_bCANCEL・NULL.

参照元 CEditView::DoGrep()・CEditView::ExecCmd()・CDocLineMgr::ReplaceData().

LPVOID CDlgCancel::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgCancel.cpp の 68 行で定義されています。

参照先 p_helpids.

BOOL CDlgCancel::IsCanceled ( void ) [inline]

CDlgCancel.h の 43 行で定義されています。

参照先 m_bCANCEL.

参照元 CEditView::DoGrepFile()・CEditView::DoGrepTree()・CEditView::ExecCmd().

BOOL CDlgCancel::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgCancel.cpp の 52 行で定義されています。

参照先 FALSE・m_bCANCEL・TRUE.

BOOL CDlgCancel::OnInitDialog | ( | HWND | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgCancel.cpp の 35 行で定義されています。

参照先 CDialog::m_hWnd・NULL・CDialog::OnInitDialog().

変数

BOOL CDlgCancel::m_bCANCEL

CDlgCancel.h の 49 行で定義されています。

参照元 CDlgCancel()・DoModal()・DoModeless()・IsCanceled()・OnBnClicked().

このクラスの説明は次のファイルから生成されました:
  • CDlgCancel.h
  • CDlgCancel.cpp
Sakura-Editorに対してSat Oct 27 02:34:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgCancel メンバ一覧

これは全メンバの一覧です。CDlgCancel継承メンバも含んでいます。

CDialog() | CDialog |
CDlgCancel() | CDlgCancel |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int) | CDlgCancel |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int) | CDlgCancel |
CDialog::DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CDlgCancel | [protected, virtual]
IsCanceled(void) | CDlgCancel | [inline]
m_bCANCEL | CDlgCancel |
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgCancel | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgCancel | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDialog | [inline, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgCompare

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgCompare

ファイル比較ダイアログボックス [詳細]

#include <CDlgCompare.h>

CDlgCompareに対する継承グラフ

[凡例]
CDlgCompareのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgCompare ()
int | DoModal (HINSTANCE, HWND, LPARAM, const char *, BOOL, char *, HWND *)

Public 変数

const char * | m_pszPath
BOOL | m_bIsModified
char * | m_pszComparePath
HWND * | m_phwndCompareWnd
BOOL | m_bCompareAndTileHorz

Protected メソッド

BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)

説明

ファイル比較ダイアログボックス

CDlgCompare.h の 23 行で定義されています。

コンストラクタとデストラクタ

CDlgCompare::CDlgCompare ( )

CDlgCompare.cpp の 43 行で定義されています。

参照先 m_bCompareAndTileHorz・TRUE.

関数

int CDlgCompare::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM | ,
 |  | const char * | ,
 |  | BOOL | ,
 |  | char * | ,
 |  | HWND * |
 | ) |

CDlgCompare.cpp の 52 行で定義されています。

参照先 CDialog::DoModal()・IDD_COMPARE・m_bIsModified・m_phwndCompareWnd・m_pszComparePath・m_pszPath.

参照元 CEditView::Command_COMPARE().

int CDlgCompare::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgCompare.cpp の 209 行で定義されています。

参照先 IDC_CHECK_TILE_H・IDC_LIST_FILES・m_bCompareAndTileHorz・DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO・CDialog::m_hWnd・m_phwndCompareWnd・CDialog::m_pShareData・m_pszComparePath・FileInfo::m_szPath・MYWM_GETFILEINFO・TRUE.

参照元 OnBnClicked().

LPVOID CDlgCompare::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgCompare.cpp の 233 行で定義されています。

参照先 p_helpids.

BOOL CDlgCompare::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgCompare.cpp の 69 行で定義されています。

参照先 F_COMPARE・FALSE・FuncID_To_HelpContextID()・GetData()・IDC_BUTTON_HELP・CDialog::m_hWnd・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・TRUE.

void CDlgCompare::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgCompare.cpp の 117 行で定義されています。

参照先 CODE_CODEMAX・CODE_EUC・CODE_JIS・CODE_UNICODE・CODE_UTF7・CODE_UTF8・CShareData::getInstance()・CShareData::GetOpenedWindowArr()・gm_pszCodeNameArr_3・IDC_LIST_FILES・FileInfo::m_bIsModified・DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO・CDialog::m_hWnd・CEditDoc::m_hwndParent・CDialog::m_lParam・FileInfo::m_nCharCode・CDialog::m_pShareData・FileInfo::m_szPath・MYWM_GETFILEINFO・TRUE.

変数

BOOL CDlgCompare::m_bCompareAndTileHorz

CDlgCompare.h の 40 行で定義されています。

参照元 CDlgCompare()・CEditView::Command_COMPARE()・GetData().

BOOL CDlgCompare::m_bIsModified

CDlgCompare.h の 37 行で定義されています。

参照元 DoModal().

HWND* CDlgCompare::m_phwndCompareWnd

CDlgCompare.h の 39 行で定義されています。

参照元 DoModal()・GetData().

char* CDlgCompare::m_pszComparePath

CDlgCompare.h の 38 行で定義されています。

参照元 DoModal()・GetData().

const char* CDlgCompare::m_pszPath

CDlgCompare.h の 36 行で定義されています。

参照元 DoModal().

このクラスの説明は次のファイルから生成されました:
  • CDlgCompare.h
  • CDlgCompare.cpp
Sakura-Editorに対してSat Oct 27 02:34:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgCompare メンバ一覧

これは全メンバの一覧です。CDlgCompare継承メンバも含んでいます。

CDialog() | CDialog |
CDlgCompare() | CDlgCompare |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM, const char *, BOOL, char *, HWND *) | CDlgCompare |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgCompare | [protected, virtual]
GetHelpIdTable(void) | CDlgCompare | [protected, virtual]
m_bCompareAndTileHorz | CDlgCompare |
m_bInited | CDialog |
m_bIsModified | CDlgCompare |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_phwndCompareWnd | CDlgCompare |
m_pShareData | CDialog |
m_pszComparePath | CDlgCompare |
m_pszPath | CDlgCompare |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgCompare | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgCompare | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgCtrlCode

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgCtrlCode

コントロールコード入力ダイアログボックス [詳細]

#include <CDlgCtrlCode.h>

CDlgCtrlCodeに対する継承グラフ

[凡例]
CDlgCtrlCodeのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgCtrlCode ()
int | DoModal (HINSTANCE, HWND, LPARAM)

Public 変数

int | m_nCode

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM wParam, LPARAM lParam)
BOOL | OnBnClicked (int)
BOOL | OnNotify (WPARAM wParam, LPARAM lParam)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)

説明

コントロールコード入力ダイアログボックス

CDlgCtrlCode.h の 40 行で定義されています。

コンストラクタとデストラクタ

CDlgCtrlCode::CDlgCtrlCode ( )

CDlgCtrlCode.cpp の 100 行で定義されています。

参照先 m_nCode.

関数

int CDlgCtrlCode::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgCtrlCode.cpp の 106 行で定義されています。

参照先 CDialog::DoModal()・IDD_CTRLCODE.

参照元 CEditView::Command_CtrlCode_Dialog().

int CDlgCtrlCode::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgCtrlCode.cpp の 180 行で定義されています。

参照先 ctrl_info_t::code・FALSE・IDC_LIST_CTRLCODE・CDialog::m_hWnd・m_nCode・p_ctrl_list・TRUE.

参照元 OnBnClicked()・OnNotify().

LPVOID CDlgCtrlCode::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgCtrlCode.cpp の 315 行で定義されています。

参照先 p_helpids.

BOOL CDlgCtrlCode::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgCtrlCode.cpp の 238 行で定義されています。

参照先 F_CTRL_CODE_DIALOG・FALSE・FuncID_To_HelpContextID()・GetData()・IDC_BUTTON_HELP・CDialog::m_hWnd・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・TRUE.

BOOL CDlgCtrlCode::OnInitDialog | ( | HWND | ,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgCtrlCode.cpp の 195 行で定義されています。

参照先 IDC_LIST_CTRLCODE・CDialog::m_hWnd・CDialog::OnInitDialog().

BOOL CDlgCtrlCode::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgCtrlCode.cpp の 262 行で定義されています。

参照先 ctrl_info_t::code・FALSE・GetData()・IDC_LIST_CTRLCODE・CDialog::m_hWnd・p_ctrl_list・p_ctrl_list_num・TRUE.

void CDlgCtrlCode::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgCtrlCode.cpp の 116 行で定義されています。

参照先 IDC_LIST_CTRLCODE・ctrl_info_t::jname・CDialog::m_hWnd・NULL・p_ctrl_list・p_ctrl_list_num.

変数

int CDlgCtrlCode::m_nCode

CDlgCtrlCode.h の 53 行で定義されています。

参照元 CDlgCtrlCode()・GetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgCtrlCode.h
  • CDlgCtrlCode.cpp
Sakura-Editorに対してSat Oct 27 02:34:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgCtrlCode メンバ一覧

これは全メンバの一覧です。CDlgCtrlCode継承メンバも含んでいます。

CDialog() | CDialog |
CDlgCtrlCode() | CDlgCtrlCode |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM) | CDlgCtrlCode |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgCtrlCode | [protected, virtual]
GetHelpIdTable(void) | CDlgCtrlCode | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nCode | CDlgCtrlCode |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgCtrlCode | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDlgCtrlCode | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDlgCtrlCode | [protected, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgCtrlCode | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgDebug

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgDebug

#include <CDlgDebug.h>

CDlgDebugのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgDebug ()
~CDlgDebug ()
INT_PTR | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
int | DoModal (HINSTANCE, HWND, CMemory &)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd
CMemory m_cmemDebugInfo

説明

CDlgDebug.h の 26 行で定義されています。

コンストラクタとデストラクタ

CDlgDebug::CDlgDebug ( )

CDlgDebug.cpp の 47 行で定義されています。

参照先 m_hInstance・m_hWnd・m_hwndParent・NULL.

CDlgDebug::~CDlgDebug ( )

CDlgDebug.cpp の 58 行で定義されています。

関数

INT_PTR CDlgDebug::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CDlgDebug.cpp の 90 行で定義されています。

参照先 DWLP_USER・FALSE・CMemory::GetPtr()・IDC_EDIT_DEBUG・m_cmemDebugInfo・m_hWnd・SetWindowLongPtr・TRUE.

参照元 CDlgDebug_Proc().

int CDlgDebug::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | CMemory & |
 | ) |

CDlgDebug.cpp の 72 行で定義されています。

参照先 CDlgDebug_Proc()・IDD_DEBUG・m_cmemDebugInfo・m_hInstance・m_hwndParent.

変数

CMemory CDlgDebug::m_cmemDebugInfo

CDlgDebug.h の 45 行で定義されています。

参照元 DispatchEvent()・DoModal().

HINSTANCE CDlgDebug::m_hInstance

CDlgDebug.h の 41 行で定義されています。

参照元 CDlgDebug()・DoModal().

HWND CDlgDebug::m_hWnd

CDlgDebug.h の 43 行で定義されています。

参照元 CDlgDebug()・DispatchEvent().

HWND CDlgDebug::m_hwndParent

CDlgDebug.h の 42 行で定義されています。

参照元 CDlgDebug()・DoModal().

このクラスの説明は次のファイルから生成されました:
  • CDlgDebug.h
  • CDlgDebug.cpp
Sakura-Editorに対してSat Oct 27 02:34:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgDebug メンバ一覧

これは全メンバの一覧です。CDlgDebug継承メンバも含んでいます。

CDlgDebug() | CDlgDebug
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDlgDebug
DoModal(HINSTANCE, HWND, CMemory &) | CDlgDebug
m_cmemDebugInfo | CDlgDebug
m_hInstance | CDlgDebug
m_hWnd | CDlgDebug
m_hwndParent | CDlgDebug
~CDlgDebug() | CDlgDebug

Sakura-Editorに対してSat Oct 27 02:34:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgDiff

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgDiff

DIFF差分表示ダイアログボックス [詳細]

#include <CDlgDiff.h>

CDlgDiffに対する継承グラフ

[凡例]
CDlgDiffのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgDiff ()
int | DoModal (HINSTANCE, HWND, LPARAM, const char *, BOOL)

Public 変数

char | m_szFile1 [_MAX_PATH]
char | m_szFile2 [_MAX_PATH]
BOOL | m_bIsModified
BOOL | m_bIsModifiedDst
int | m_nDiffFlgOpt
HWND | m_hWnd_Dst

Protected メソッド

BOOL | OnBnClicked (int)
BOOL | OnCbnSelChange (HWND hwndCtl, int wID)
BOOL | OnEditChange (HWND hwndCtl, int wID)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)

Private 変数

int | m_nIndexSave

説明

DIFF差分表示ダイアログボックス

CDlgDiff.h の 41 行で定義されています。

コンストラクタとデストラクタ

CDlgDiff::CDlgDiff ( )

CDlgDiff.cpp の 59 行で定義されています。

参照先 FALSE・m_bIsModified・m_bIsModifiedDst・m_hWnd_Dst・m_nDiffFlgOpt・m_szFile1・m_szFile2・NULL.

関数

int CDlgDiff::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM | ,
 |  | const char * | ,
 |  | BOOL |
 | ) |

CDlgDiff.cpp の 73 行で定義されています。

参照先 CDialog::DoModal()・IDD_DIFF・m_bIsModified・m_szFile1.

参照元 CEditView::Command_Diff_Dialog().

int CDlgDiff::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgDiff.cpp の 323 行で定義されています。

参照先 BOOL・FALSE・IDC_CHECK_DIFF_EXEC_STATE・IDC_CHECK_DIFF_OPT_BLINE・IDC_CHECK_DIFF_OPT_CASE・IDC_CHECK_DIFF_OPT_SPACE・IDC_CHECK_DIFF_OPT_SPCCHG・IDC_CHECK_DIFF_OPT_TABSPC・IDC_EDIT_DIFF_DST・IDC_LIST_DIFF_FILES・IDC_RADIO_DIFF_DST1・IDC_RADIO_DIFF_DST2・IDC_RADIO_DIFF_FILE2・FileInfo::m_bIsModified・m_bIsModifiedDst・DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO・CDialog::m_hWnd・m_hWnd_Dst・DLLSHAREDATA::m_nDiffFlgOpt・m_nDiffFlgOpt・CDialog::m_pShareData・m_szFile2・FileInfo::m_szPath・MYWM_GETFILEINFO・NULL・TRUE.

参照元 OnBnClicked().

LPVOID CDlgDiff::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgDiff.cpp の 441 行で定義されています。

参照先 p_helpids.

BOOL CDlgDiff::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgDiff.cpp の 87 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・F_DIFF_DIALOG・FALSE・FuncID_To_HelpContextID()・GetData()・IDC_BUTTON_DIFF_DST・IDC_BUTTON_HELP・IDC_EDIT_DIFF_DST・IDC_LIST_DIFF_FILES・IDC_RADIO_DIFF_DST1・IDC_RADIO_DIFF_DST2・IDC_RADIO_DIFF_FILE1・IDC_RADIO_DIFF_FILE2・CDialog::m_hInstance・CDialog::m_hWnd・m_nIndexSave・m_szFile1・m_szFile2・CDialog::m_szHelpFile・MyWinHelp()・TRUE.

BOOL CDlgDiff::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgDiff.cpp の 401 行で定義されています。

参照先 FALSE・IDC_LIST_DIFF_FILES・IDC_RADIO_DIFF_DST1・IDC_RADIO_DIFF_DST2・CDialog::m_hWnd・CDialog::OnCbnSelChange()・TRUE.

BOOL CDlgDiff::OnEditChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgDiff.cpp の 418 行で定義されています。

参照先 FALSE・IDC_EDIT_DIFF_DST・IDC_LIST_DIFF_FILES・IDC_RADIO_DIFF_DST1・IDC_RADIO_DIFF_DST2・CDialog::m_hWnd・m_nIndexSave・CDialog::OnCbnSelChange()・TRUE.

void CDlgDiff::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgDiff.cpp の 174 行で定義されています。

参照先 _MAX_PATH・CODE_CODEMAX・CODE_EUC・CODE_JIS・CODE_UNICODE・CODE_UTF7・CODE_UTF8・FALSE・CShareData::getInstance()・CShareData::GetOpenedWindowArr()・gm_pszCodeNameArr_3・IDC_CHECK_DIFF_EXEC_STATE・IDC_CHECK_DIFF_OPT_BLINE・IDC_CHECK_DIFF_OPT_CASE・IDC_CHECK_DIFF_OPT_SPACE・IDC_CHECK_DIFF_OPT_SPCCHG・IDC_CHECK_DIFF_OPT_TABSPC・IDC_CHECK_NOTIFYNOTFOUND・IDC_CHECK_SEARCHALL・IDC_LIST_DIFF_FILES・IDC_RADIO_DIFF_FILE1・IDC_RADIO_DIFF_FILE2・IDC_STATIC_DIFF_SRC・FileInfo::m_bIsModified・Common::m_bNOTIFYNOTFOUND・Common::m_bSearchAll・DLLSHAREDATA::m_Common・DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO・CDialog::m_hWnd・CEditDoc::m_hwndParent・CDialog::m_lParam・FileInfo::m_nCharCode・DLLSHAREDATA::m_nDiffFlgOpt・m_nDiffFlgOpt・CDialog::m_pShareData・m_szFile1・FileInfo::m_szPath・MYWM_GETFILEINFO・TRUE.

変数

BOOL CDlgDiff::m_bIsModified

CDlgDiff.h の 56 行で定義されています。

参照元 CDlgDiff()・DoModal().

BOOL CDlgDiff::m_bIsModifiedDst

CDlgDiff.h の 57 行で定義されています。

参照元 CDlgDiff()・CEditView::Command_Diff_Dialog()・GetData().

HWND CDlgDiff::m_hWnd_Dst

CDlgDiff.h の 60 行で定義されています。

参照元 CDlgDiff()・CEditView::Command_Diff_Dialog()・GetData().

int CDlgDiff::m_nDiffFlgOpt

CDlgDiff.h の 58 行で定義されています。

参照元 CDlgDiff()・CEditView::Command_Diff_Dialog()・GetData()・SetData().

int CDlgDiff::m_nIndexSave [private]

CDlgDiff.h の 76 行で定義されています。

参照元 OnBnClicked()・OnEditChange().

char CDlgDiff::m_szFile1[_MAX_PATH]

CDlgDiff.h の 54 行で定義されています。

参照元 CDlgDiff()・DoModal()・OnBnClicked()・SetData().

char CDlgDiff::m_szFile2[_MAX_PATH]

CDlgDiff.h の 55 行で定義されています。

参照元 CDlgDiff()・CEditView::Command_Diff_Dialog()・GetData()・OnBnClicked().

このクラスの説明は次のファイルから生成されました:
  • CDlgDiff.h
  • CDlgDiff.cpp
Sakura-Editorに対してSat Oct 27 02:34:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgDiff メンバ一覧

これは全メンバの一覧です。CDlgDiff継承メンバも含んでいます。

CDialog() | CDialog |
CDlgDiff() | CDlgDiff |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM, const char *, BOOL) | CDlgDiff |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgDiff | [protected, virtual]
GetHelpIdTable(void) | CDlgDiff | [protected, virtual]
m_bInited | CDialog |
m_bIsModified | CDlgDiff |
m_bIsModifiedDst | CDlgDiff |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hWnd_Dst | CDlgDiff |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nDiffFlgOpt | CDlgDiff |
m_nHeight | CDialog |
m_nIndexSave | CDlgDiff | [private]
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szFile1 | CDlgDiff |
m_szFile2 | CDlgDiff |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgDiff | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDlgDiff | [protected, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDlgDiff | [protected, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgDiff | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgExec

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgExec

#include <CDlgExec.h>

CDlgExecに対する継承グラフ

[凡例]
CDlgExecのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgExec ()
int | DoModal (HINSTANCE, HWND, LPARAM)

Public 変数

char | m_szCommand [1024+1]

Protected メソッド

int | GetData (void)
void | SetData (void)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)

説明

CDlgExec.h の 21 行で定義されています。

コンストラクタとデストラクタ

CDlgExec::CDlgExec ( )

CDlgExec.cpp の 45 行で定義されています。

参照先 m_szCommand.

関数

int CDlgExec::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgExec.cpp の 57 行で定義されています。

参照先 CDialog::DoModal()・IDD_EXEC・m_szCommand.

参照元 CEditView::Command_EXECCOMMAND()・CEditView::Command_EXECCOMMAND_DIALOG().

int CDlgExec::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgExec.cpp の 122 行で定義されています。

参照先 IDC_CHECK_GETSTDOUT・IDC_CHECK_SENDSTDIN・IDC_COMBO_m_szCommand・IDC_RADIO_EDITWINDOW・CDialog::m_hWnd・DLLSHAREDATA::m_nExecFlgOpt・CDialog::m_pShareData・m_szCommand.

参照元 OnBnClicked().

LPVOID CDlgExec::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgExec.cpp の 202 行で定義されています。

参照先 p_helpids.

BOOL CDlgExec::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgExec.cpp の 138 行で定義されています。

参照先 _MAX_PATH・BOOL・CDialog::CloseDialog()・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・F_EXECCOMMAND_DIALOG・FALSE・FuncID_To_HelpContextID()・GetData()・IDC_BUTTON_HELP・IDC_BUTTON_REFERENCE・IDC_CHECK_GETSTDOUT・IDC_COMBO_m_szCommand・IDC_RADIO_EDITWINDOW・IDC_RADIO_OUTPUT・CDialog::m_hInstance・CDialog::m_hWnd・CDialog::m_pShareData・m_szCommand・CDialog::m_szHelpFile・MyWinHelp()・TRUE.

void CDlgExec::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgExec.cpp の 67 行で定義されています。

参照先 BOOL・FALSE・IDC_CHECK_GETSTDOUT・IDC_CHECK_SENDSTDIN・IDC_COMBO_m_szCommand・IDC_COMBO_TEXT・IDC_RADIO_EDITWINDOW・IDC_RADIO_OUTPUT・CDialog::m_hWnd・DLLSHAREDATA::m_nCmdArrNum・DLLSHAREDATA::m_nExecFlgOpt・CDialog::m_pShareData・DLLSHAREDATA::m_szCmdArr・m_szCommand・TRUE.

変数

char CDlgExec::m_szCommand[1024+1]

CDlgExec.h の 33 行で定義されています。

参照元 CDlgExec()・CEditView::Command_EXECCOMMAND()・DoModal()・GetData()・OnBnClicked()・SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgExec.h
  • CDlgExec.cpp
Sakura-Editorに対してSat Oct 27 02:34:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgExec メンバ一覧

これは全メンバの一覧です。CDlgExec継承メンバも含んでいます。

CDialog() | CDialog |
CDlgExec() | CDlgExec |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM) | CDlgExec |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgExec | [protected, virtual]
GetHelpIdTable(void) | CDlgExec | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szCommand | CDlgExec |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgExec | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgExec | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgFavorite

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgFavorite

#include <CDlgFavorite.h>

CDlgFavoriteに対する継承グラフ

[凡例]
CDlgFavoriteのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgFavorite ()
~CDlgFavorite ()
int | DoModal (HINSTANCE, HWND, LPARAM)

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM wParam, LPARAM lParam)
BOOL | OnBnClicked (int)
BOOL | OnNotify (WPARAM wParam, LPARAM lParam)
BOOL | OnActivate (WPARAM wParam, LPARAM lParam)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)
bool | RefreshList (void)
void | SetDataOne (int nIndex, int CurrentIndex)
bool | RefreshListOne (int nIndex)

Private 型

typedef CDlgFavorite::FavoriteInfoTag | FavoriteInfoTag

Private 変数

CRecent m_cRecentFile
CRecent m_cRecentFolder
CRecent m_cRecentSearch
CRecent m_cRecentReplace
CRecent m_cRecentGrepFile
CRecent m_cRecentGrepFolder
CRecent m_cRecentCmd
FavoriteInfoTag | p_favorite_info [8]
int | m_nCurrentTab
char | m_szMsg [1024]

構成

struct | FavoriteInfoTag

説明

CDlgFavorite.h の 40 行で定義されています。

型定義

typedef struct CDlgFavorite::FavoriteInfoTag CDlgFavorite::FavoriteInfoTag [private]

コンストラクタとデストラクタ

CDlgFavorite::CDlgFavorite ( )

CDlgFavorite.cpp の 76 行で定義されています。

参照先 CRecent::EasyCreate()・IDC_LIST_FAVORITE_CMD・IDC_LIST_FAVORITE_FILE・IDC_LIST_FAVORITE_FOLDER・IDC_LIST_FAVORITE_GREP_FILE・IDC_LIST_FAVORITE_GREP_FOLDER・IDC_LIST_FAVORITE_REPLACE・IDC_LIST_FAVORITE_SEARCH・m_cRecentCmd・m_cRecentFile・m_cRecentFolder・m_cRecentGrepFile・m_cRecentGrepFolder・m_cRecentReplace・m_cRecentSearch・m_nCurrentTab・m_szMsg・NULL・p_favorite_info・RECENT_FOR_CMD・RECENT_FOR_FILE・RECENT_FOR_FOLDER・RECENT_FOR_GREP_FILE・RECENT_FOR_GREP_FOLDER・RECENT_FOR_REPLACE・RECENT_FOR_SEARCH.

CDlgFavorite::~CDlgFavorite ( )

CDlgFavorite.cpp の 169 行で定義されています。

参照先 CDlgFavorite::FavoriteInfoTag::m_pRecent・NULL・p_favorite_info・CRecent::Terminate().

関数

int CDlgFavorite::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgFavorite.cpp の 181 行で定義されています。

参照先 CDialog::DoModal()・IDD_FAVORITE.

参照元 CEditView::Command_Favorite().

int CDlgFavorite::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFavorite.cpp の 270 行で定義されています。

参照先 BOOL・CDialog::m_hWnd・CDlgFavorite::FavoriteInfoTag::m_pRecent・NULL・p_favorite_info・CRecent::SetFavorite().

参照元 OnBnClicked().

LPVOID CDlgFavorite::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFavorite.cpp の 539 行で定義されています。

参照先 p_helpids.

BOOL CDlgFavorite::OnActivate | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgFavorite.cpp の 511 行で定義されています。

参照先 IDC_STATIC_FAVORITE_MSG・CDialog::m_hWnd・m_szMsg・CDialog::OnActivate()・RefreshList()・TRUE.

BOOL CDlgFavorite::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgFavorite.cpp の 379 行で定義されています。

参照先 BOOL・CRecent::DeleteAllItem()・F_FAVORITE・FALSE・FuncID_To_HelpContextID()・GetData()・GSTR_APPNAME・IDC_BUTTON_CLEAR・IDC_BUTTON_HELP・IDC_STATIC_FAVORITE_MSG・IDC_TAB_FAVORITE・CDialog::m_hWnd・CDlgFavorite::FavoriteInfoTag::m_nId・CDlgFavorite::FavoriteInfoTag::m_pRecent・CDlgFavorite::FavoriteInfoTag::m_pszCaption・CDialog::m_szHelpFile・MYMESSAGEBOX・MyWinHelp()・p_favorite_info・TRUE.

BOOL CDlgFavorite::OnInitDialog | ( | HWND | ,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgFavorite.cpp の 302 行で定義されています。

参照先 FALSE・IDC_TAB_FAVORITE・CDialog::m_hWnd・m_nCurrentTab・CDlgFavorite::FavoriteInfoTag::m_nId・CDlgFavorite::FavoriteInfoTag::m_pRecent・CDlgFavorite::FavoriteInfoTag::m_pszCaption・NULL・p_favorite_info.

BOOL CDlgFavorite::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgFavorite.cpp の 470 行で定義されています。

参照先 IDC_STATIC_FAVORITE_MSG・IDC_TAB_FAVORITE・CDialog::m_hWnd・m_nCurrentTab・CDialog::OnNotify()・p_favorite_info・TRUE.

bool CDlgFavorite::RefreshList ( void ) [protected]

CDlgFavorite.cpp の 547 行で定義されています。

参照先 CDlgFavorite::FavoriteInfoTag::m_pRecent・m_szMsg・NULL・p_favorite_info・RefreshListOne().

参照元 OnActivate().

bool CDlgFavorite::RefreshListOne ( int nIndex ) [protected]

CDlgFavorite.cpp の 586 行で定義されています。

参照先 BOOL・FALSE・CRecent::FindItem()・CRecent::GetItemCount()・CRecent::GetViewCount()・CDialog::m_hWnd・CDlgFavorite::FavoriteInfoTag::m_pRecent・p_favorite_info.

参照元 RefreshList().

void CDlgFavorite::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFavorite.cpp の 191 行で定義されています。

参照先 CDlgFavorite::FavoriteInfoTag::m_pRecent・NULL・p_favorite_info・SetDataOne().

void CDlgFavorite::SetDataOne | ( | int | nIndex,
 |  | int | CurrentIndex
 | ) | [protected]

CDlgFavorite.cpp の 206 行で定義されています。

参照先 BOOL・CRecent::GetDataOfItem()・CRecent::GetItemCount()・CRecent::GetViewCount()・CRecent::IsFavorite()・ListView_SetCheckState・CDialog::m_hWnd・CDlgFavorite::FavoriteInfoTag::m_nId・CDlgFavorite::FavoriteInfoTag::m_nViewCount・CDlgFavorite::FavoriteInfoTag::m_pRecent・p_favorite_info.

参照元 SetData().

変数

CRecent CDlgFavorite::m_cRecentCmd [private]

CDlgFavorite.h の 79 行で定義されています。

参照元 CDlgFavorite().

CRecent CDlgFavorite::m_cRecentFile [private]

CDlgFavorite.h の 73 行で定義されています。

参照元 CDlgFavorite().

CRecent CDlgFavorite::m_cRecentFolder [private]

CDlgFavorite.h の 74 行で定義されています。

参照元 CDlgFavorite().

CRecent CDlgFavorite::m_cRecentGrepFile [private]

CDlgFavorite.h の 77 行で定義されています。

参照元 CDlgFavorite().

CRecent CDlgFavorite::m_cRecentGrepFolder [private]

CDlgFavorite.h の 78 行で定義されています。

参照元 CDlgFavorite().

CRecent CDlgFavorite::m_cRecentReplace [private]

CDlgFavorite.h の 76 行で定義されています。

参照元 CDlgFavorite().

CRecent CDlgFavorite::m_cRecentSearch [private]

CDlgFavorite.h の 75 行で定義されています。

参照元 CDlgFavorite().

int CDlgFavorite::m_nCurrentTab [private]

CDlgFavorite.h の 92 行で定義されています。

参照元 CDlgFavorite()・OnInitDialog()・OnNotify().

char CDlgFavorite::m_szMsg[1024] [private]

CDlgFavorite.h の 93 行で定義されています。

参照元 CDlgFavorite()・OnActivate()・RefreshList().

FavoriteInfoTag CDlgFavorite::p_favorite_info[8] [private]

CDlgFavorite.h の 90 行で定義されています。

参照元 CDlgFavorite()・GetData()・OnBnClicked()・OnInitDialog()・OnNotify()・RefreshList()・RefreshListOne()・SetData()・SetDataOne()・~CDlgFavorite().

このクラスの説明は次のファイルから生成されました:
  • CDlgFavorite.h
  • CDlgFavorite.cpp
Sakura-Editorに対してSat Oct 27 02:34:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFavorite メンバ一覧

これは全メンバの一覧です。CDlgFavorite継承メンバも含んでいます。

CDialog() | CDialog |
CDlgFavorite() | CDlgFavorite |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM) | CDlgFavorite |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
FavoriteInfoTag typedef | CDlgFavorite | [private]
GetData(void) | CDlgFavorite | [protected, virtual]
GetHelpIdTable(void) | CDlgFavorite | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_cRecentCmd | CDlgFavorite | [private]
m_cRecentFile | CDlgFavorite | [private]
m_cRecentFolder | CDlgFavorite | [private]
m_cRecentGrepFile | CDlgFavorite | [private]
m_cRecentGrepFolder | CDlgFavorite | [private]
m_cRecentReplace | CDlgFavorite | [private]
m_cRecentSearch | CDlgFavorite | [private]
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nCurrentTab | CDlgFavorite | [private]
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_szMsg | CDlgFavorite | [private]
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDlgFavorite | [protected, virtual]
OnBnClicked(int) | CDlgFavorite | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDlgFavorite | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDlgFavorite | [protected, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
p_favorite_info | CDlgFavorite | [private]
RefreshList(void) | CDlgFavorite | [protected]
RefreshListOne(int nIndex) | CDlgFavorite | [protected]
SetData(void) | CDlgFavorite | [protected, virtual]
SetDataOne(int nIndex, int CurrentIndex) | CDlgFavorite | [protected]
~CDialog() | CDialog | [virtual]
~CDlgFavorite() | CDlgFavorite |

Sakura-Editorに対してSat Oct 27 02:34:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 CDlgFavorite::FavoriteInfoTag

  • 構成
  • クラス階層
  • 構成メンバ
CDlgFavorite::FavoriteInfoTag

構造体 CDlgFavorite::FavoriteInfoTag

CDlgFavorite::FavoriteInfoTagのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

CRecent * m_pRecent
char * | m_pszCaption
int | m_nId
bool | m_bHaveFavorite
bool | m_bHaveView
int | m_nViewCount

説明

CDlgFavorite.h の 81 行で定義されています。

変数

bool CDlgFavorite::FavoriteInfoTag::m_bHaveFavorite

CDlgFavorite.h の 85 行で定義されています。

bool CDlgFavorite::FavoriteInfoTag::m_bHaveView

CDlgFavorite.h の 86 行で定義されています。

int CDlgFavorite::FavoriteInfoTag::m_nId

CDlgFavorite.h の 84 行で定義されています。

参照元 CDlgFavorite::OnBnClicked()・CDlgFavorite::OnInitDialog()・CDlgFavorite::SetDataOne().

int CDlgFavorite::FavoriteInfoTag::m_nViewCount

CDlgFavorite.h の 87 行で定義されています。

参照元 CDlgFavorite::SetDataOne().

CRecent* CDlgFavorite::FavoriteInfoTag::m_pRecent

CDlgFavorite.h の 82 行で定義されています。

参照元 CDlgFavorite::GetData()・CDlgFavorite::OnBnClicked()・CDlgFavorite::OnInitDialog()・CDlgFavorite::RefreshList()・CDlgFavorite::RefreshListOne()・CDlgFavorite::SetData()・CDlgFavorite::SetDataOne()・CDlgFavorite::~CDlgFavorite().

char* CDlgFavorite::FavoriteInfoTag::m_pszCaption

CDlgFavorite.h の 83 行で定義されています。

参照元 CDlgFavorite::OnBnClicked()・CDlgFavorite::OnInitDialog().

この構造体の説明は次のファイルから生成されました:
  • CDlgFavorite.h
Sakura-Editorに対してSat Oct 27 02:34:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFavorite::FavoriteInfoTag メンバ一覧

これは全メンバの一覧です。CDlgFavorite::FavoriteInfoTag継承メンバも含んでいます。

m_bHaveFavorite | CDlgFavorite::FavoriteInfoTag
m_bHaveView | CDlgFavorite::FavoriteInfoTag
m_nId | CDlgFavorite::FavoriteInfoTag
m_nViewCount | CDlgFavorite::FavoriteInfoTag
m_pRecent | CDlgFavorite::FavoriteInfoTag
m_pszCaption | CDlgFavorite::FavoriteInfoTag

Sakura-Editorに対してSat Oct 27 02:34:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgFileUpdateQuery

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgFileUpdateQuery

#include <CDlgFileUpdateQuery.h>

CDlgFileUpdateQueryに対する継承グラフ

[凡例]
CDlgFileUpdateQueryのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgFileUpdateQuery (const char *filename, bool IsModified)
virtual BOOL | OnInitDialog (HWND, WPARAM wParam, LPARAM lParam)
virtual BOOL | OnBnClicked (int)

Private 変数

const char * | m_pFilename
bool | m_bModified

説明

CDlgFileUpdateQuery.h の 39 行で定義されています。

コンストラクタとデストラクタ

CDlgFileUpdateQuery::CDlgFileUpdateQuery | ( | const char * | filename,
 |  | bool | IsModified
 | ) | [inline]

CDlgFileUpdateQuery.h の 45 行で定義されています。

関数

BOOL CDlgFileUpdateQuery::OnBnClicked ( int id ) [virtual]

ボタンが押されたときの動作

CDialogを再定義しています。

CDlgFileUpdateQuery.cpp の 49 行で定義されています。

参照先 CDialog::CloseDialog()・IDC_BTN_CLOSE・IDC_BTN_NOSUPERVISION・IDC_BTN_NOTIFYONLY・IDC_BTN_RELOAD.

BOOL CDlgFileUpdateQuery::OnInitDialog | ( | HWND | ,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDialogを再定義しています。

CDlgFileUpdateQuery.cpp の 37 行で定義されています。

参照先 IDC_QUERYRELOADMSG・IDC_UPDATEDFILENAME・m_bModified・m_pFilename・CDialog::OnInitDialog().

変数

bool CDlgFileUpdateQuery::m_bModified [private]

CDlgFileUpdateQuery.h の 42 行で定義されています。

参照元 OnInitDialog().

const char* CDlgFileUpdateQuery::m_pFilename [private]

CDlgFileUpdateQuery.h の 41 行で定義されています。

参照元 OnInitDialog().

このクラスの説明は次のファイルから生成されました:
  • CDlgFileUpdateQuery.h
  • CDlgFileUpdateQuery.cpp
Sakura-Editorに対してSat Oct 27 02:34:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFileUpdateQuery メンバ一覧

これは全メンバの一覧です。CDlgFileUpdateQuery継承メンバも含んでいます。

CDialog() | CDialog |
CDlgFileUpdateQuery(const char *filename, bool IsModified) | CDlgFileUpdateQuery | [inline]
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CDialog | [virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_bModified | CDlgFileUpdateQuery | [private]
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pFilename | CDlgFileUpdateQuery | [private]
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgFileUpdateQuery | [virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDlgFileUpdateQuery | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDialog | [inline, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgFind

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgFind

#include <CDlgFind.h>

CDlgFindに対する継承グラフ

[凡例]
CDlgFindのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgFind ()
HWND | DoModeless (HINSTANCE, HWND, LPARAM)
void | ChangeView (LPARAM)

Public 変数

int | m_bLoHiCase
int | m_bWordOnly
int | m_bRegularExp
int | m_bNOTIFYNOTFOUND
char | m_szText [_MAX_PATH+1]
int | m_nEscCaretPosX_PHY
int | m_nEscCaretPosY_PHY

Protected メソッド

int | GetData (void)
void | SetData (void)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)

説明

CDlgFind.h の 23 行で定義されています。

コンストラクタとデストラクタ

CDlgFind::CDlgFind ( )

CDlgFind.cpp の 49 行で定義されています。

参照先 FALSE・m_bLoHiCase・m_bRegularExp・m_bWordOnly・m_szText.

関数

void CDlgFind::ChangeView ( LPARAM )

CDlgFind.cpp の 86 行で定義されています。

参照先 CDialog::m_lParam.

参照元 CEditDoc::SetActivePane().

HWND CDlgFind::DoModeless | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgFind.cpp の 73 行で定義されています。

参照先 CDialog::DoModeless()・IDD_FIND・Common::m_bLoHiCase・m_bLoHiCase・Common::m_bNOTIFYNOTFOUND・m_bNOTIFYNOTFOUND・Common::m_bRegularExp・m_bRegularExp・Common::m_bWordOnly・m_bWordOnly・DLLSHAREDATA::m_Common・m_nEscCaretPosX_PHY・m_nEscCaretPosY_PHY・CDialog::m_pShareData・TRUE.

参照元 CEditView::Command_SEARCH_DIALOG().

int CDlgFind::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFind.cpp の 167 行で定義されています。

参照先 CShareData::AddToSearchKeyArr()・CheckRegexpSyntax()・FALSE・CShareData::getInstance()・IDC_CHECK_bAutoCloseDlgFind・IDC_CHECK_NOTIFYNOTFOUND・IDC_CHECK_SEARCHALL・IDC_CHK_LOHICASE・IDC_CHK_REGULAREXP・IDC_CHK_WORD・IDC_COMBO_TEXT・Common::m_bAutoCloseDlgFind・Common::m_bLoHiCase・m_bLoHiCase・CDialog::m_bModal・Common::m_bNOTIFYNOTFOUND・m_bNOTIFYNOTFOUND・Common::m_bRegularExp・m_bRegularExp・Common::m_bSearchAll・Common::m_bWordOnly・m_bWordOnly・DLLSHAREDATA::m_Common・CDialog::m_hWnd・CDialog::m_pShareData・m_szText・SetData().

参照元 OnBnClicked().

LPVOID CDlgFind::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFind.cpp の 394 行で定義されています。

参照先 p_helpids.

BOOL CDlgFind::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgFind.cpp の 229 行で定義されています。

参照先 CheckRegexpVersion()・CDialog::CloseDialog()・F_BOOKMARK_PATTERN・F_REDRAW・F_SEARCH_DIALOG・F_SEARCH_NEXT・F_SEARCH_PREV・FALSE・FuncID_To_HelpContextID()・GetData()・GSTR_APPNAME・CEditView::HandleCommand()・IDC_BUTTON_HELP・IDC_BUTTON_SEARCHNEXT・IDC_BUTTON_SEARCHPREV・IDC_BUTTON_SETMARK・IDC_CHK_REGULAREXP・IDC_CHK_WORD・IDC_COMBO_TEXT・IDC_STATIC_JRE32VER・Common::m_bAutoCloseDlgFind・CDialog::m_bModal・CEditView::m_bSearch・DLLSHAREDATA::m_Common・CDialog::m_hWnd・CDialog::m_lParam・m_nEscCaretPosX_PHY・m_nEscCaretPosY_PHY・CEditView::m_nSrchStartPosX_PHY・CEditView::m_nSrchStartPosY_PHY・CDialog::m_pShareData・CDialog::m_szHelpFile・MYMESSAGEBOX・MyWinHelp()・TRUE.

void CDlgFind::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFind.cpp の 95 行で定義されています。

参照先 _MAX_PATH・BOOL・IDC_COMBO_TEXT・CDialog::m_hWnd・DLLSHAREDATA::m_nSEARCHKEYArrNum・CDialog::m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr・m_szText・TRUE.

参照元 GetData().

変数

int CDlgFind::m_bLoHiCase

CDlgFind.h の 39 行で定義されています。

参照元 CDlgFind()・DoModeless()・GetData().

int CDlgFind::m_bNOTIFYNOTFOUND

CDlgFind.h の 42 行で定義されています。

参照元 DoModeless()・GetData().

int CDlgFind::m_bRegularExp

CDlgFind.h の 41 行で定義されています。

参照元 CDlgFind()・DoModeless()・GetData().

int CDlgFind::m_bWordOnly

CDlgFind.h の 40 行で定義されています。

参照元 CDlgFind()・DoModeless()・GetData().

int CDlgFind::m_nEscCaretPosX_PHY

CDlgFind.h の 44 行で定義されています。

参照元 DoModeless()・OnBnClicked().

int CDlgFind::m_nEscCaretPosY_PHY

CDlgFind.h の 45 行で定義されています。

参照元 DoModeless()・OnBnClicked().

char CDlgFind::m_szText[_MAX_PATH+1]

CDlgFind.h の 43 行で定義されています。

参照元 CDlgFind()・CEditView::Command_SEARCH_DIALOG()・GetData()・SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgFind.h
  • CDlgFind.cpp
Sakura-Editorに対してSat Oct 27 02:34:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFind メンバ一覧

これは全メンバの一覧です。CDlgFind継承メンバも含んでいます。

CDialog() | CDialog |
CDlgFind() | CDlgFind |
ChangeView(LPARAM) | CDlgFind |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, LPARAM) | CDlgFind |
CDialog::DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgFind | [protected, virtual]
GetHelpIdTable(void) | CDlgFind | [protected, virtual]
m_bInited | CDialog |
m_bLoHiCase | CDlgFind |
m_bModal | CDialog |
m_bNOTIFYNOTFOUND | CDlgFind |
m_bRegularExp | CDlgFind |
m_bWordOnly | CDlgFind |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nEscCaretPosX_PHY | CDlgFind |
m_nEscCaretPosY_PHY | CDlgFind |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_szText | CDlgFind |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgFind | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgFind | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgFuncList

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgFuncList

アウトライン解析ダイアログボックス [詳細]

#include <CDlgFuncList.h>

CDlgFuncListに対する継承グラフ

[凡例]
CDlgFuncListのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgFuncList ()
HWND | DoModeless (HINSTANCE, HWND, LPARAM, CFuncInfoArr *, int, int, int)
void | ChangeView (LPARAM)
bool | CheckListType (int nOutLineType) const
void | Redraw (int nOutLineType, CFuncInfoArr *, int nCurLine)

Public 変数

CFuncInfoArr * m_pcFuncInfoArr
int | m_nCurLine
int | m_nSortCol
int | m_nListType
CMemory m_cmemClipText
int | m_bLineNumIsCRLF

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnBnClicked (int)
BOOL | OnNotify (WPARAM, LPARAM)
BOOL | OnSize (WPARAM, LPARAM)
BOOL | OnDestroy (void)
BOOL | OnCbnSelChange (HWND hwndCtl, int wID)
void | SetData (void)
int | GetData (void)
BOOL | OnJump (bool bCheckAutoClose=true)
void | SetTreeCpp (HWND)
void | SetTreeJava (HWND, BOOL)
void | SetTree (bool tagjump=false)
void | SetListVB (void)
void | SortTree (HWND hWndTree, HTREEITEM htiParent)
ツリービューの項目をソートする（ソート基準はm_nSortTypeを使用）
void | SortListView (HWND hwndList, int sortcol)
LPVOID | GetHelpIdTable (void)
void | Key2Command (WORD)

Private 変数

int | m_nViewType
アウトライン解析種別
bool | m_bWaitTreeProcess
int | m_nSortType
ツリービューをソートする基準

説明

アウトライン解析ダイアログボックス

CDlgFuncList.h の 31 行で定義されています。

コンストラクタとデストラクタ

CDlgFuncList::CDlgFuncList ( )

CDlgFuncList.cpp の 102 行で定義されています。

参照先 FALSE・m_bLineNumIsCRLF・m_bWaitTreeProcess・m_nCurLine・m_nSortCol・m_nSortType・m_pcFuncInfoArr・NULL.

関数

void CDlgFuncList::ChangeView ( LPARAM )

CDlgFuncList.cpp の 158 行で定義されています。

参照先 CDialog::m_lParam.

参照元 CEditDoc::SetActivePane().

bool CDlgFuncList::CheckListType ( int nOutLineType ) const [inline]

現在の種別と同じなら

CDlgFuncList.h の 46 行で定義されています。

参照元 CEditView::Command_FUNCLIST().

HWND CDlgFuncList::DoModeless | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM | ,
 |  | CFuncInfoArr * | ,
 |  | int | ,
 |  | int | ,
 |  | int |
 | ) |

CDlgFuncList.cpp の 136 行で定義されています。

参照先 CDialog::DoModeless()・IDD_FUNCLIST・m_bLineNumIsCRLF・m_bWaitTreeProcess・m_nCurLine・m_nListType・m_pcFuncInfoArr.

int CDlgFuncList::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFuncList.cpp の 476 行で定義されています。

参照先 CFuncInfoArr::GetAt()・IDC_LIST1・IDC_TREE1・CFuncInfo::m_nFuncLineCRLF・m_nViewType・m_pcFuncInfoArr・NULL.

参照元 OnJump().

LPVOID CDlgFuncList::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFuncList.cpp の 1986 行で定義されています。

参照先 p_helpids.

void CDlgFuncList::Key2Command ( WORD KeyCode ) [protected]

キー操作をコマンドに変換するヘルパー関数

CDlgFuncList.cpp の 1996 行で定義されています。

参照先 F_BOOKMARK_SET・F_BOOKMARK_VIEW・F_COPY・F_CUT・F_OUTLINE・F_OUTLINE_TOGGLE・F_REDRAW・getCtrlKeyState()・CKeyBind::GetFuncCode()・CEditView::HandleCommand()・IDC_BUTTON_COPY・CDialog::m_lParam・DLLSHAREDATA::m_nKeyNameArrNum・m_nListType・DLLSHAREDATA::m_pKeyNameArr・CDialog::m_pShareData・OnBnClicked()・OnJump()・OUTLINE_BOOKMARK・SHOW_RELOAD・TRUE.

参照元 OnNotify().

BOOL CDlgFuncList::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgFuncList.cpp の 1551 行で定義されています。

参照先 F_BOOKMARK_VIEW・F_OUTLINE・FALSE・FuncID_To_HelpContextID()・CMemory::GetLength()・CMemory::GetPtr()・CEditView::HandleCommand()・IDC_BUTTON_COPY・IDC_BUTTON_HELP・IDC_LIST1・IDC_TREE1・Common::m_bAutoCloseDlgFuncList・Common::m_bFunclistSetFocusOnJump・Common::m_bMarkUpBlankLineEnable・CDialog::m_bModal・Common::m_bRememberOutlineWindowPos・m_cmemClipText・DLLSHAREDATA::m_Common・CDialog::m_lParam・CEditView::m_nCaretPosY・m_nCurLine・m_nListType・m_nViewType・CDialog::m_pShareData・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・OnJump()・OUTLINE_BOOKMARK・SetClipboardText()・SetData()・TRUE.

参照元 Key2Command().

BOOL CDlgFuncList::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgFuncList.cpp の 1920 行で定義されています。

参照先 FALSE・IDC_COMBO_nSortType・IDC_TREE1・SortTree()・TRUE.

BOOL CDlgFuncList::OnDestroy ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgFuncList.cpp の 1896 行で定義されています。

参照先 Common::m_bRememberOutlineWindowPos・DLLSHAREDATA::m_Common・Common::m_heightOutlineWindow・CEditWnd::m_hWnd・CDialog::m_lParam・CDialog::m_nHeight・CDialog::m_nWidth・CEditView::m_pcEditDoc・CEditDoc::m_pcEditWnd・CDialog::m_pShareData・Common::m_widthOutlineWindow・Common::m_xOutlineWindowPos・CDialog::m_xPos・Common::m_yOutlineWindowPos・CDialog::m_yPos・CDialog::OnDestroy()・TRUE.

BOOL CDlgFuncList::OnInitDialog | ( | HWND | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgFuncList.cpp の 1491 行で定義されています。

参照先 CDialog::CreateSizeBox()・IDC_LIST1・Common::m_bRememberOutlineWindowPos・DLLSHAREDATA::m_Common・Common::m_heightOutlineWindow・CEditWnd::m_hWnd・CDialog::m_lParam・CDialog::m_nHeight・CDialog::m_nWidth・CEditView::m_pcEditDoc・CEditDoc::m_pcEditWnd・CDialog::m_pShareData・Common::m_widthOutlineWindow・Common::m_xOutlineWindowPos・CDialog::m_xPos・Common::m_yOutlineWindowPos・CDialog::m_yPos・NULL・CDialog::OnInitDialog().

BOOL CDlgFuncList::OnJump ( bool bCheckAutoClose = true ) [protected]

CDlgFuncList.cpp の 1954 行で定義されています。

参照先 GetData()・Common::m_bAutoCloseDlgFuncList・Common::m_bFunclistSetFocusOnJump・CDialog::m_bModal・DLLSHAREDATA::m_Common・CDialog::m_hwndParent・CDialog::m_pShareData・DLLSHAREDATA::m_szWork・MYWM_SETCARETPOS・PM_SETCARETPOS_KEEPSELECT・TRUE.

参照元 Key2Command()・OnBnClicked()・OnNotify().

BOOL CDlgFuncList::OnNotify | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgFuncList.cpp の 1607 行で定義されています。

参照先 FALSE・IDC_LIST1・IDC_TREE1・Key2Command()・Common::m_bFunclistSetFocusOnJump・m_bWaitTreeProcess・DLLSHAREDATA::m_Common・CDialog::m_hwndParent・m_nSortCol・CDialog::m_pShareData・OnJump()・SortListView()・TRUE.

BOOL CDlgFuncList::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

ウィンドウサイズが変更された

日付:
2003.06.22 Moca コードの整理(コントロールの処理方法をテーブルに持たせる)

2003.08.16 genta 配列はstaticに(無駄な初期化を行わないため)

CDialogを再定義しています。

CDlgFuncList.cpp の 1807 行で定義されています。

参照先 IDC_BUTTON_COPY・IDC_BUTTON_HELP・IDC_LIST1・IDC_TREE1・NULL・CDialog::OnSize()・TRUE.

void CDlgFuncList::Redraw | ( | int | nOutLineType,
 |  | CFuncInfoArr * | pcFuncInfoArr,
 |  | int | nCurLine
 | ) |

日付:
2002.10.05 genta

CDlgFuncList.cpp の 2044 行で定義されています。

参照先 m_nCurLine・m_nListType・m_pcFuncInfoArr・SetData().

void CDlgFuncList::SetData ( void ) [protected, virtual]

ダイアログデータの設定

CDialogを再定義しています。

CDlgFuncList.cpp の 165 行で定義されています。

参照先 FALSE・CFuncInfoArr::GetAt()・CFuncInfoArr::GetNum()・IDC_BUTTON_COPY・IDC_LIST1・IDC_TREE1・m_cmemClipText・CDialog::m_hWnd・m_nCurLine・CFuncInfo::m_nFuncLineLAYOUT・m_nListType・m_nViewType・m_pcFuncInfoArr・OUTLINE_ASM・OUTLINE_BOOKMARK・OUTLINE_C・OUTLINE_COBOL・OUTLINE_CPP・OUTLINE_FILE・OUTLINE_HTML・OUTLINE_JAVA・OUTLINE_PERL・OUTLINE_PLSQL・OUTLINE_PYTHON・OUTLINE_TEX・OUTLINE_TEXT・OUTLINE_VB・OUTLINE_WZTXT・CMemory::SetDataSz()・SetListVB()・SetTree()・SetTreeJava()・TRUE.

参照元 OnBnClicked()・Redraw().

void CDlgFuncList::SetListVB ( void ) [protected]

リストビューコントロールの初期化：VisualBasic

長くなったので独立させました。

日付:
Jul 10, 2003 little YOSHI

CDlgFuncList.cpp の 1008 行で定義されています。

参照先 FALSE・CFuncInfoArr::GetAt()・CFuncInfoArr::GetNum()・IDC_BUTTON_COPY・IDC_LIST1・m_nCurLine・CFuncInfo::m_nFuncLineLAYOUT・m_pcFuncInfoArr・TRUE.

参照元 SetData().

void CDlgFuncList::SetTree ( bool tagjump = false ) [protected]

汎用ツリーコントロールの初期化：CFuncInfom_nDepthを利用して親子を設定

引数:
[in] tagjump タグジャンプ形式で出力する
日付:
2002.04.01 YAZAKI

2002.11.10 Moca 階層の制限をなくした

2007.02.25 genta クリップボード出力をタブジャンプ可能な書式に変更

2007.03.04 genta タブジャンプ可能な書式に変更するかどうかのフラグを追加

CDlgFuncList.cpp の 1244 行で定義されています。

参照先 CFuncInfoArr::GetAt()・CMemory::GetLength()・CFuncInfoArr::GetNum()・CMemory::GetPtr()・IDC_TREE1・CFuncInfo::IsAddClipText()・CFuncInfo::m_cmemFuncName・m_nCurLine・CFuncInfo::m_nDepth・CFuncInfo::m_nFuncLineCRLF・CFuncInfo::m_nFuncLineLAYOUT・m_pcFuncInfoArr・CFuncInfoArr::m_szFilePath・NULL.

参照元 SetData().

void CDlgFuncList::SetTreeCpp ( HWND ) [protected]

void CDlgFuncList::SetTreeJava | ( | HWND | hwndDlg,
 |  | BOOL | bAddClass
 | ) | [protected]

ツリーコントロールの初期化：Javaメソッドツリー

Java Method Treeの構築: 関数リストを元にTreeControlを初期化する。

日付:
2002.01.04 genta C++ツリーを統合

CDlgFuncList.cpp の 718 行で定義されています。

参照先 FALSE・CFuncInfoArr::GetAt()・CFuncInfoArr::GetNum()・CMemory::GetPtr()・CMemory::GetSizeOfChar()・IDC_BUTTON_COPY・IDC_TREE1・CFuncInfo::m_cmemFuncName・m_pcFuncInfoArr・NULL・TRUE.

参照元 SetData().

void CDlgFuncList::SortListView | ( | HWND | hwndList,
 |  | int | sortcol
 | ) | [protected]

指定されたカラムでリストビューをソートする． 同時にヘッダも書き換える．

ソート後はフォーカスが画面内に現れるように表示位置を調整する．

表示位置調整の小技
EnsureVisibleの結果は，上スクロールの場合は上端に，下スクロールの場合は 下端に目的の項目が現れる．端から少し離したい場合はオフセットを与える必要が あるが，スクロール方向がわからないと±がわからない そのため最初に一番下に一回スクロールさせることでEnsureVisibleでは かならず上スクロールになるようにすることで，ソート後の表示位置を 固定する
引数:
[in] | hwndList | リストビューのウィンドウハンドル
[in] | sortcol | ソートするカラム番号(0-2)
日付:
2005.04.23 genta 関数として独立させた

2005.04.29 genta ソート後の表示位置調整

CDlgFuncList.cpp の 1713 行で定義されています。

参照先 _CompareFunc_()・FALSE・m_nListType・OUTLINE_BOOKMARK.

参照元 OnNotify().

void CDlgFuncList::SortTree | ( | HWND | hWndTree,
 |  | HTREEITEM | htiParent
 | ) | [protected]

ツリービューの項目をソートする（ソート基準はm_nSortTypeを使用）

CDlgFuncList.cpp の 1936 行で定義されています。

参照先 Compare_by_ItemData()・NULL・TRUE.

参照元 OnCbnSelChange().

変数

int CDlgFuncList::m_bLineNumIsCRLF

CDlgFuncList.h の 54 行で定義されています。

参照元 CDlgFuncList()・DoModeless().

bool CDlgFuncList::m_bWaitTreeProcess [private]

CDlgFuncList.h の 102 行で定義されています。

参照元 CDlgFuncList()・DoModeless()・OnNotify().

CMemory CDlgFuncList::m_cmemClipText

CDlgFuncList.h の 53 行で定義されています。

参照元 OnBnClicked()・SetData().

int CDlgFuncList::m_nCurLine

CDlgFuncList.h の 50 行で定義されています。

参照元 CDlgFuncList()・DoModeless()・OnBnClicked()・Redraw()・SetData()・SetListVB()・SetTree().

int CDlgFuncList::m_nListType

CDlgFuncList.h の 52 行で定義されています。

参照元 DoModeless()・Key2Command()・OnBnClicked()・Redraw()・SetData()・SortListView().

int CDlgFuncList::m_nSortCol

CDlgFuncList.h の 51 行で定義されています。

参照元 _CompareFunc_()・CDlgFuncList()・OnNotify().

int CDlgFuncList::m_nSortType [private]

ツリービューをソートする基準

CDlgFuncList.h の 108 行で定義されています。

参照元 CDlgFuncList().

int CDlgFuncList::m_nViewType [private]

アウトライン解析種別

0: List, 1: Tree

CDlgFuncList.h の 98 行で定義されています。

参照元 GetData()・OnBnClicked()・SetData().

CFuncInfoArr* CDlgFuncList::m_pcFuncInfoArr

CDlgFuncList.h の 49 行で定義されています。

参照元 _CompareFunc_()・CDlgFuncList()・DoModeless()・GetData()・Redraw()・SetData()・SetListVB()・SetTree()・SetTreeJava().

このクラスの説明は次のファイルから生成されました:
  • CDlgFuncList.h
  • CDlgFuncList.cpp
Sakura-Editorに対してSat Oct 27 02:34:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgFuncList メンバ一覧

これは全メンバの一覧です。CDlgFuncList継承メンバも含んでいます。

CDialog() | CDialog |
CDlgFuncList() | CDlgFuncList |
ChangeView(LPARAM) | CDlgFuncList |
CheckListType(int nOutLineType) const | CDlgFuncList | [inline]
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, LPARAM, CFuncInfoArr *, int, int, int) | CDlgFuncList |
CDialog::DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgFuncList | [protected, virtual]
GetHelpIdTable(void) | CDlgFuncList | [protected, virtual]
Key2Command(WORD) | CDlgFuncList | [protected]
m_bInited | CDialog |
m_bLineNumIsCRLF | CDlgFuncList |
m_bModal | CDialog |
m_bWaitTreeProcess | CDlgFuncList | [private]
m_cmemClipText | CDlgFuncList |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nCurLine | CDlgFuncList |
m_nHeight | CDialog |
m_nListType | CDlgFuncList |
m_nShowCmd | CDialog |
m_nSortCol | CDlgFuncList |
m_nSortType | CDlgFuncList | [private]
m_nViewType | CDlgFuncList | [private]
m_nWidth | CDialog |
m_pcFuncInfoArr | CDlgFuncList |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgFuncList | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDlgFuncList | [protected, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDlgFuncList | [protected, virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgFuncList | [protected, virtual]
OnJump(bool bCheckAutoClose=true) | CDlgFuncList | [protected]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM, LPARAM) | CDlgFuncList | [protected, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM, LPARAM) | CDlgFuncList | [protected, virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
Redraw(int nOutLineType, CFuncInfoArr *, int nCurLine) | CDlgFuncList |
SetData(void) | CDlgFuncList | [protected, virtual]
SetListVB(void) | CDlgFuncList | [protected]
SetTree(bool tagjump=false) | CDlgFuncList | [protected]
SetTreeCpp(HWND) | CDlgFuncList | [protected]
SetTreeJava(HWND, BOOL) | CDlgFuncList | [protected]
SortListView(HWND hwndList, int sortcol) | CDlgFuncList | [protected]
SortTree(HWND hWndTree, HTREEITEM htiParent) | CDlgFuncList | [protected]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgGrep

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgGrep

GREPダイアログボックス [詳細]

#include <CDlgGrep.h>

CDlgGrepに対する継承グラフ

[凡例]
CDlgGrepのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgGrep ()
int | DoModal (HINSTANCE, HWND, const char *)

Public 変数

BOOL | m_bSubFolder
BOOL | m_bFromThisText
int | m_bLoHiCase
int | m_bRegularExp
BOOL | m_bGrepOutputLine
BOOL | m_bWordOnly
int | m_nGrepCharSet
int | m_nGrepOutputStyle
char | m_szText [_MAX_PATH+1]
char | m_szFile [_MAX_PATH+1]
char | m_szFolder [_MAX_PATH+1]
char | m_szCurrentFilePath [_MAX_PATH+1]

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)

説明

GREPダイアログボックス

CDlgGrep.h の 24 行で定義されています。

コンストラクタとデストラクタ

CDlgGrep::CDlgGrep ( )

CDlgGrep.cpp の 55 行で定義されています。

参照先 CODE_SJIS・FALSE・m_bFromThisText・m_bGrepOutputLine・m_bLoHiCase・m_bRegularExp・m_bSubFolder・m_nGrepCharSet・m_nGrepOutputStyle・CDialog::m_pShareData・m_szFile・m_szFolder・DLLSHAREDATA::m_szGREPFILEArr・DLLSHAREDATA::m_szGREPFOLDERArr・DLLSHAREDATA::m_szSEARCHKEYArr・m_szText・TRUE.

関数

int CDlgGrep::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | const char * |
 | ) |

CDlgGrep.cpp の 74 行で定義されています。

参照先 CDialog::DoModal()・IDD_GREP・Common::m_bGrepOutputLine・m_bGrepOutputLine・Common::m_bGrepSubFolder・Common::m_bLoHiCase・m_bLoHiCase・Common::m_bRegularExp・m_bRegularExp・m_bSubFolder・Common::m_bWordOnly・m_bWordOnly・DLLSHAREDATA::m_Common・Common::m_nGrepCharSet・m_nGrepCharSet・Common::m_nGrepOutputStyle・m_nGrepOutputStyle・CDialog::m_pShareData・m_szCurrentFilePath・NULL.

参照元 CEditApp::DoGrep().

int CDlgGrep::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgGrep.cpp の 467 行で定義されています。

参照先 _MAX_PATH・CShareData::AddToGrepFileArr()・CShareData::AddToGrepFolderArr()・CShareData::AddToSearchKeyArr()・CheckRegexpSyntax()・FALSE・CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・IDC_CHK_REGULAREXP・IDC_COMBO_CHARSET・IDC_COMBO_TEXT・IDC_RADIO_OUTPUTLINE・IDC_RADIO_OUTPUTSTYLE1・IDC_RADIO_OUTPUTSTYLE2・m_bFromThisText・Common::m_bGrepOutputLine・m_bGrepOutputLine・Common::m_bGrepSubFolder・Common::m_bLoHiCase・m_bLoHiCase・Common::m_bRegularExp・m_bRegularExp・m_bSubFolder・Common::m_bWordOnly・m_bWordOnly・DLLSHAREDATA::m_Common・Common::m_nGrepCharSet・m_nGrepCharSet・Common::m_nGrepOutputStyle・m_nGrepOutputStyle・CDialog::m_pShareData・m_szFile・m_szFolder・m_szText・MYMESSAGEBOX.

LPVOID CDlgGrep::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgGrep.cpp の 591 行で定義されています。

参照先 p_helpids.

BOOL CDlgGrep::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgGrep.cpp の 193 行で定義されています。

参照先 _MAX_PATH・CheckRegexpVersion()・F_GREP_DIALOG・FALSE・FuncID_To_HelpContextID()・IDC_BUTTON_CURRENTFOLDER・IDC_BUTTON_FOLDER・IDC_BUTTON_HELP・IDC_CHK_FROMTHISTEXT・IDC_CHK_REGULAREXP・IDC_CHK_SUBFOLDER・IDC_CHK_WORD・IDC_COMBO_FILE・IDC_COMBO_FOLDER・IDC_STATIC_JRE32VER・CDialog::m_hWnd・m_szCurrentFilePath・CDialog::m_szHelpFile・MyWinHelp()・SelectDir()・SplitPath_FolderAndFile()・TRUE.

BOOL CDlgGrep::OnInitDialog | ( | HWND | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgGrep.cpp の 109 行で定義されています。

参照先 _MAX_PATH・BOOL・FN_GREP_ICON・GetAppIcon()・gm_nCodeComboNameArrNum・gm_nCodeComboValueArr・gm_pszCodeComboNameArr・ICON_DEFAULT_GREP・IDC_COMBO_CHARSET・IDC_COMBO_FILE・IDC_COMBO_FOLDER・IDC_COMBO_TEXT・CDialog::m_hInstance・CDialog::m_hWnd・TRUE.

void CDlgGrep::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgGrep.cpp の 320 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・IDC_COMBO_TEXT・CDialog::m_hWnd・DLLSHAREDATA::m_nSEARCHKEYArrNum・CDialog::m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr・m_szText.

変数

BOOL CDlgGrep::m_bFromThisText

この編集中のテキストから検索する

CDlgGrep.h の 39 行で定義されています。

参照元 CDlgGrep()・GetData().

BOOL CDlgGrep::m_bGrepOutputLine

行を出力するか該当部分だけ出力するか

CDlgGrep.h の 42 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・DoModal()・GetData().

int CDlgGrep::m_bLoHiCase

英大文字と小文字を区別する

CDlgGrep.h の 40 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・DoModal()・GetData().

int CDlgGrep::m_bRegularExp

正規表現

CDlgGrep.h の 41 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・DoModal()・GetData().

BOOL CDlgGrep::m_bSubFolder

サブフォルダからも検索する

CDlgGrep.h の 38 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・DoModal()・GetData().

BOOL CDlgGrep::m_bWordOnly

単語単位で検索

CDlgGrep.h の 45 行で定義されています。

参照元 CEditView::Command_GREP()・CEditApp::DoGrep()・DoModal()・GetData().

int CDlgGrep::m_nGrepCharSet

文字コードセット

CDlgGrep.h の 47 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・DoModal()・GetData().

int CDlgGrep::m_nGrepOutputStyle

Grep: 出力形式

CDlgGrep.h の 49 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・DoModal()・GetData().

char CDlgGrep::m_szCurrentFilePath[_MAX_PATH+1]

CDlgGrep.h の 53 行で定義されています。

参照元 DoModal()・OnBnClicked().

char CDlgGrep::m_szFile[_MAX_PATH+1]

検索ファイル

CDlgGrep.h の 51 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・GetData().

char CDlgGrep::m_szFolder[_MAX_PATH+1]

検索フォルダ

CDlgGrep.h の 52 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・GetData().

char CDlgGrep::m_szText[_MAX_PATH+1]

検索文字列

CDlgGrep.h の 50 行で定義されています。

参照元 CDlgGrep()・CEditView::Command_GREP()・CEditApp::DoGrep()・GetData()・SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgGrep.h
  • CDlgGrep.cpp
Sakura-Editorに対してSat Oct 27 02:34:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgGrep メンバ一覧

これは全メンバの一覧です。CDlgGrep継承メンバも含んでいます。

CDialog() | CDialog |
CDlgGrep() | CDlgGrep |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, const char *) | CDlgGrep |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgGrep | [protected, virtual]
GetHelpIdTable(void) | CDlgGrep | [protected, virtual]
m_bFromThisText | CDlgGrep |
m_bGrepOutputLine | CDlgGrep |
m_bInited | CDialog |
m_bLoHiCase | CDlgGrep |
m_bModal | CDialog |
m_bRegularExp | CDlgGrep |
m_bSubFolder | CDlgGrep |
m_bWordOnly | CDlgGrep |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nGrepCharSet | CDlgGrep |
m_nGrepOutputStyle | CDlgGrep |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szCurrentFilePath | CDlgGrep |
m_szFile | CDlgGrep |
m_szFolder | CDlgGrep |
m_szHelpFile | CDialog |
m_szText | CDlgGrep |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgGrep | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgGrep | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgGrep | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgInput1

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgInput1

１行入力ダイアログボックス [詳細]

#include <CDlgInput1.h>

CDlgInput1のコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgInput1 ()
~CDlgInput1 ()
BOOL | DoModal (HINSTANCE, HWND, const char *, const char *, int, char *)
INT_PTR | DispatchEvent (HWND, UINT, WPARAM, LPARAM)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd
const char * | m_pszTitle
const char * | m_pszMessage
int | m_nMaxTextLen
CMemory m_cmemText
char | m_szHelpFile [_MAX_PATH+1]

説明

１行入力ダイアログボックス

CDlgInput1.h の 29 行で定義されています。

コンストラクタとデストラクタ

CDlgInput1::CDlgInput1 ( )

CDlgInput1.cpp の 64 行で定義されています。

参照先 GetHelpFilePath()・m_szHelpFile.

CDlgInput1::~CDlgInput1 ( )

CDlgInput1.cpp の 74 行で定義されています。

関数

INT_PTR CDlgInput1::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CDlgInput1.cpp の 106 行で定義されています。

参照先 CMemory::AllocBuffer()・DWLP_USER・FALSE・CMemory::GetPtr()・IDC_EDIT1・IDC_STATIC_MSG・m_cmemText・m_nMaxTextLen・m_pszMessage・m_pszTitle・m_szHelpFile・MyWinHelp()・p_helpids・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 CDlgInput1Proc().

BOOL CDlgInput1::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | const char * | ,
 |  | const char * | ,
 |  | int | ,
 |  | char * |
 | ) |

CDlgInput1.cpp の 82 行で定義されています。

参照先 BOOL・CDlgInput1Proc()・CMemory::GetPtr()・IDD_INPUT1・m_cmemText・m_hInstance・m_hwndParent・m_nMaxTextLen・m_pszMessage・m_pszTitle・CMemory::SetDataSz().

参照元 CPropCommon::DispatchEvent_p7()・CPropCommon::DispatchEvent_p8()・CDlgPrintSetting::OnBnClicked()・CPrintPreview::OnPreviewGoDirectPage()・CPropCommon::p7_Edit_List_KeyWord().

変数

CMemory CDlgInput1::m_cmemText

CDlgInput1.h の 51 行で定義されています。

参照元 DispatchEvent()・DoModal().

HINSTANCE CDlgInput1::m_hInstance

CDlgInput1.h の 43 行で定義されています。

参照元 DoModal().

HWND CDlgInput1::m_hWnd

CDlgInput1.h の 45 行で定義されています。

HWND CDlgInput1::m_hwndParent

CDlgInput1.h の 44 行で定義されています。

参照元 DoModal().

int CDlgInput1::m_nMaxTextLen

CDlgInput1.h の 49 行で定義されています。

参照元 DispatchEvent()・DoModal().

const char* CDlgInput1::m_pszMessage

CDlgInput1.h の 48 行で定義されています。

参照元 DispatchEvent()・DoModal().

const char* CDlgInput1::m_pszTitle

CDlgInput1.h の 47 行で定義されています。

参照元 DispatchEvent()・DoModal().

char CDlgInput1::m_szHelpFile[_MAX_PATH+1]

CDlgInput1.h の 52 行で定義されています。

参照元 CDlgInput1()・DispatchEvent().

このクラスの説明は次のファイルから生成されました:
  • CDlgInput1.h
  • CDlgInput1.cpp
Sakura-Editorに対してSat Oct 27 02:34:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgInput1 メンバ一覧

これは全メンバの一覧です。CDlgInput1継承メンバも含んでいます。

CDlgInput1() | CDlgInput1
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDlgInput1
DoModal(HINSTANCE, HWND, const char *, const char *, int, char *) | CDlgInput1
m_cmemText | CDlgInput1
m_hInstance | CDlgInput1
m_hWnd | CDlgInput1
m_hwndParent | CDlgInput1
m_nMaxTextLen | CDlgInput1
m_pszMessage | CDlgInput1
m_pszTitle | CDlgInput1
m_szHelpFile | CDlgInput1
~CDlgInput1() | CDlgInput1

Sakura-Editorに対してSat Oct 27 02:34:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgJump

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgJump

指定行へのジャンプダイアログボックス [詳細]

#include <CDlgJump.h>

CDlgJumpに対する継承グラフ

[凡例]
CDlgJumpのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgJump ()
int | DoModal (HINSTANCE, HWND, LPARAM)

Public 変数

int | m_nLineNum
BOOL | m_bPLSQL
int | m_nPLSQL_E1
int | m_nPLSQL_E2

Protected メソッド

BOOL | OnNotify (WPARAM, LPARAM)
BOOL | OnCbnSelChange (HWND, int)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)

説明

指定行へのジャンプダイアログボックス

CDlgJump.h の 24 行で定義されています。

コンストラクタとデストラクタ

CDlgJump::CDlgJump ( )

CDlgJump.cpp の 45 行で定義されています。

参照先 FALSE・m_bPLSQL・m_nLineNum・m_nPLSQL_E1・m_nPLSQL_E2.

関数

int CDlgJump::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgJump.cpp の 57 行で定義されています。

参照先 CDialog::DoModal()・IDD_JUMP.

参照元 CEditView::Command_JUMP_DIALOG().

int CDlgJump::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgJump.cpp の 340 行で定義されています。

参照先 BOOL・FALSE・IDC_EDIT_LINENUM・IDC_EDIT_PLSQL_E1・IDC_RADIO_LINENUM_LAYOUT・DLLSHAREDATA::m_bLineNumIsCRLF・m_bPLSQL・CDialog::m_hWnd・m_nLineNum・m_nPLSQL_E1・CDialog::m_pShareData・TRUE.

参照元 OnBnClicked().

LPVOID CDlgJump::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgJump.cpp の 373 行で定義されています。

参照先 p_helpids.

BOOL CDlgJump::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgJump.cpp の 133 行で定義されています。

参照先 CDialog::CloseDialog()・F_JUMP・F_JUMP_DIALOG・FALSE・FuncID_To_HelpContextID()・GetData()・GSTR_APPNAME・CEditView::HandleCommand()・IDC_BUTTON_HELP・IDC_BUTTON_JUMP・IDC_CHECK_PLSQL・IDC_COMBO_PLSQLBLOCKS・IDC_EDIT_PLSQL_E1・IDC_LABEL_PLSQL1・IDC_LABEL_PLSQL2・IDC_LABEL_PLSQL3・IDC_RADIO_LINENUM_CRLF・IDC_RADIO_LINENUM_LAYOUT・IDC_SPIN_PLSQL_E1・DLLSHAREDATA::m_bLineNumIsCRLF・CEditDoc::m_cEditViewArr・CDialog::m_hWnd・CDialog::m_lParam・CEditDoc::m_nActivePaneIndex・CDialog::m_pShareData・CDialog::m_szHelpFile・MYMESSAGEBOX・MyWinHelp()・TRUE.

BOOL CDlgJump::OnCbnSelChange | ( | HWND | ,
 |  | int |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgJump.cpp の 119 行で定義されています。

参照先 FALSE・IDC_COMBO_PLSQLBLOCKS・IDC_EDIT_PLSQL_E1・CDialog::m_hWnd・TRUE.

BOOL CDlgJump::OnNotify | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgJump.cpp の 73 行で定義されています。

参照先 FALSE・IDC_EDIT_LINENUM・IDC_EDIT_PLSQL_E1・IDC_SPIN_LINENUM・IDC_SPIN_PLSQL_E1・CDialog::m_hWnd・NULL・TRUE.

void CDlgJump::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgJump.cpp の 202 行で定義されています。

参照先 FALSE・CEditDoc::GetDocumentAttribute()・IDC_COMBO_PLSQLBLOCKS・IDC_EDIT_LINENUM・IDC_EDIT_PLSQL_E1・CDialog::m_hWnd・CDialog::m_lParam・Types::m_nDefaultOutline・m_nLineNum・m_nPLSQL_E1・CEditDoc::MakeFuncList_PLSQL()・OUTLINE_PLSQL.

変数

BOOL CDlgJump::m_bPLSQL

PL/SQLソースの有効行か

CDlgJump.h の 38 行で定義されています。

参照元 CMacro::AddLParam()・CDlgJump()・GetData()・CMacro::HandleCommand().

int CDlgJump::m_nLineNum

行番号

CDlgJump.h の 37 行で定義されています。

参照元 CMacro::AddLParam()・CDlgJump()・GetData()・CMacro::HandleCommand()・SetData().

int CDlgJump::m_nPLSQL_E1

CDlgJump.h の 39 行で定義されています。

参照元 CDlgJump()・GetData()・SetData().

int CDlgJump::m_nPLSQL_E2

CDlgJump.h の 40 行で定義されています。

参照元 CDlgJump().

このクラスの説明は次のファイルから生成されました:
  • CDlgJump.h
  • CDlgJump.cpp
Sakura-Editorに対してSat Oct 27 02:34:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgJump メンバ一覧

これは全メンバの一覧です。CDlgJump継承メンバも含んでいます。

CDialog() | CDialog |
CDlgJump() | CDlgJump |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM) | CDlgJump |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgJump | [protected, virtual]
GetHelpIdTable(void) | CDlgJump | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_bPLSQL | CDlgJump |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nLineNum | CDlgJump |
m_nPLSQL_E1 | CDlgJump |
m_nPLSQL_E2 | CDlgJump |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgJump | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND, int) | CDlgJump | [protected, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM, LPARAM) | CDlgJump | [protected, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgJump | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgKeywordSelect

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgKeywordSelect

#include <CDlgKeywordSelect.h>

CDlgKeywordSelectに対する継承グラフ

[凡例]
CDlgKeywordSelectのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgKeywordSelect ()
~CDlgKeywordSelect ()
int | DoModal (HINSTANCE, HWND, int *pnSet)

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnBnClicked (int)
int | GetData (void)
void | SetData (void)
LPVOID | GetHelpIdTable (void)

Protected 変数

int | m_nSet [KEYWORD_SELECT_NUM]
CKeyWordSetMgr * m_pCKeyWordSetMgr

説明

CDlgKeywordSelect.h の 45 行で定義されています。

コンストラクタとデストラクタ

CDlgKeywordSelect::CDlgKeywordSelect ( )

CDlgKeywordSelect.cpp の 67 行で定義されています。

参照先 DLLSHAREDATA::m_CKeyWordSetMgr・m_pCKeyWordSetMgr・CDialog::m_pShareData.

CDlgKeywordSelect::~CDlgKeywordSelect ( )

CDlgKeywordSelect.cpp の 74 行で定義されています。

関数

int CDlgKeywordSelect::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | int * | pnSet
 | ) |

CDlgKeywordSelect.cpp の 82 行で定義されています。

参照先 KEYWORD_SELECT_NUM・m_nSet.

参照元 CPropTypes::DispatchEvent_p3_new().

int CDlgKeywordSelect::GetData ( void ) [protected, virtual]

ダイアログデータの設定

CDialogを再定義しています。

CDlgKeywordSelect.cpp の 163 行で定義されています。

参照先 KEYWORD_SELECT_NUM・keyword_select_target_combo・CDialog::m_hWnd・m_nSet.

参照元 OnBnClicked().

LPVOID CDlgKeywordSelect::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgKeywordSelect.cpp の 187 行で定義されています。

参照先 p_helpids.

BOOL CDlgKeywordSelect::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgKeywordSelect.cpp の 109 行で定義されています。

参照先 GetData()・CDialog::OnBnClicked().

BOOL CDlgKeywordSelect::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

初期化処理

CDialogを再定義しています。

CDlgKeywordSelect.cpp の 101 行で定義されています。

参照先 CDialog::m_hWnd・CDialog::OnInitDialog().

void CDlgKeywordSelect::SetData ( void ) [protected, virtual]

ダイアログデータの設定

CDialogを再定義しています。

CDlgKeywordSelect.cpp の 123 行で定義されています。

参照先 CKeyWordSetMgr::GetTypeName()・KEYWORD_SELECT_NUM・keyword_select_target_combo・CDialog::m_hWnd・CKeyWordSetMgr::m_nKeyWordSetNum・m_nSet・m_pCKeyWordSetMgr.

変数

int CDlgKeywordSelect::m_nSet[KEYWORD_SELECT_NUM] [protected]

CDlgKeywordSelect.h の 60 行で定義されています。

参照元 DoModal()・GetData()・SetData().

CKeyWordSetMgr* CDlgKeywordSelect::m_pCKeyWordSetMgr [protected]

CDlgKeywordSelect.h の 61 行で定義されています。

参照元 CDlgKeywordSelect()・SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgKeywordSelect.h
  • CDlgKeywordSelect.cpp
Sakura-Editorに対してSat Oct 27 02:34:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgKeywordSelect メンバ一覧

これは全メンバの一覧です。CDlgKeywordSelect継承メンバも含んでいます。

CDialog() | CDialog |
CDlgKeywordSelect() | CDlgKeywordSelect |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int *pnSet) | CDlgKeywordSelect |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgKeywordSelect | [protected, virtual]
GetHelpIdTable(void) | CDlgKeywordSelect | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nSet | CDlgKeywordSelect | [protected]
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pCKeyWordSetMgr | CDlgKeywordSelect | [protected]
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgKeywordSelect | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgKeywordSelect | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgKeywordSelect | [protected, virtual]
~CDialog() | CDialog | [virtual]
~CDlgKeywordSelect() | CDlgKeywordSelect |

Sakura-Editorに対してSat Oct 27 02:34:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgOpenFile

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgOpenFile

#include <CDlgOpenFile.h>

CDlgOpenFileのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgOpenFile ()
~CDlgOpenFile ()
void | Create (HINSTANCE, HWND, const char *, const char *, const char **=NULL, const char **=NULL)
BOOL | DoModal_GetOpenFileName (char *, bool bSetCurDir=false)
BOOL | DoModal_GetSaveFileName (char *, bool bSetCurDir=false)
BOOL | DoModalOpenDlg (char *, int *, BOOL *)
BOOL | DoModalSaveDlg (char *, int *, CEOL *, BOOL *)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hWnd
DLLSHAREDATA * m_pShareData
char | m_szDefaultWildCard [_MAX_PATH+1]
char | m_szInitialDir [_MAX_PATH+1]
OPENFILENAMEZ m_ofn
int | m_nCharCode
CEOL m_cEol
bool | m_bUseEol
BOOL | m_bBom
BOMを付けるかどうか
bool | m_bUseBom
BOMの有無を選択する機能を利用するかどうか
TCHAR | m_szPath [_MAX_PATH]

Protected メソッド

void | DlgOpenFail (void)
コモンダイアログボックス失敗処理
BOOL | IsOfnV5 (void)
void | InitOfn (OPENFILENAMEZ &)
BOOL | GetOpenFileNameRecover (OPENFILENAMEZ &ofn)
リトライ機能付き GetOpenFileName
BOOL | GetSaveFileNameRecover (OPENFILENAMEZ &ofn)
リトライ機能付き GetOpenFileName

Static Protected メソッド

static void | InitLayout (HWND hwndOpenDlg, HWND hwndDlg, HWND hwndBaseCtrl)
static void | OnCmbDropdown (HWND hwnd)

Static Protected 変数

static COsVersionInfo | m_cOsVer

フレンド

UINT_PTR CALLBACK | OFNHookProc (HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)

説明

ファイルオープンダイアログボックス

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CDlgOpenFile.h の 51 行で定義されています。

コンストラクタとデストラクタ

CDlgOpenFile::CDlgOpenFile ( )

CDlgOpenFile.cpp の 611 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・_MAX_PATH・CODE_AUTODETECT・GetHelpFilePath()・CShareData::getInstance()・CShareData::GetShareData()・InitOfn()・m_hInstance・m_hWnd・m_hwndParent・m_nCharCode・m_nHelpTopicID・m_ofn・m_pShareData・m_szDefaultWildCard・m_szHelpFile・m_szInitialDir・NULL.

CDlgOpenFile::~CDlgOpenFile ( )

CDlgOpenFile.cpp の 658 行で定義されています。

関数

void CDlgOpenFile::Create | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | const char * | ,
 |  | const char * | ,
 |  | const char ** | = NULL,
 |  | const char ** | = NULL
 | ) |

CDlgOpenFile.cpp の 690 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・m_hInstance・m_hwndParent・m_ppszMRU・m_ppszOPENFOLDER・m_szDefaultWildCard・m_szInitialDir・my_splitpath()・NULL.

参照元 CEditView::Command_LOADKEYMACRO()・CPropTypes::DispatchEvent_KeyHelp()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・CPropTypes::Export_KeyHelp()・CPropTypes::Export_Regex()・CPropTypes::Import_KeyHelp()・CPropTypes::Import_Regex()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CEditDoc::OpenFileDialog()・CPropTypes::p3_Export_Colors()・CPropTypes::p3_Import_Colors()・CPropCommon::p5_Export_KeySetting()・CPropCommon::p5_Import_KeySetting()・CPropCommon::p7_Export_List_KeyWord()・CPropCommon::p7_Import_List_KeyWord()・CPropCommon::p8_Export_CustMenuSetting()・CPropCommon::p8_Import_CustMenuSetting()・CEditDoc::SaveFileDialog().

void CDlgOpenFile::DlgOpenFail ( void ) [protected]

コモンダイアログボックス失敗処理

コモンダイアログボックスからFALSEが返された場合に エラー原因を調べてエラーならメッセージを出す．

作者:
genta
日付:
2004.05.29 genta 元々あった部分をまとめた

CDlgOpenFile.cpp の 1069 行で定義されています。

参照先 GSTR_APPNAME・m_hwndParent・MYMESSAGEBOX.

参照元 DoModal_GetOpenFileName()・DoModal_GetSaveFileName()・DoModalSaveDlg().

BOOL CDlgOpenFile::DoModal_GetOpenFileName | ( | char * | pszPath,
 |  | bool | bSetCurDir = false
 | ) |

「開く」ダイアログ モーダルダイアログの表示

引数:
[in,out] | pszPath | 初期ファイル名．選択されたファイル名の格納場所
[in] | bSetCurDir | カレントディレクトリを変更するか デフォルト: false
日付:
2002/08/21 カレントディレクトリを変更するかどうかのオプションを追加

2003.05.12 MIK 拡張子フィルタでタイプ別設定の拡張子を使うように。 拡張子フィルタの管理をCFileExtクラスで行う。

2005/02/20 novice 拡張子を省略したら補完する

CDlgOpenFile.cpp の 731 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・_MAX_EXT・_MAX_FNAME・_MAX_PATH・CFileExt::AppendExtRaw()・DlgOpenFail()・FALSE・CFileExt::GetExtFilter()・GetOpenFileNameRecover()・InitOfn()・m_hInstance・m_hwndParent・m_ofn・m_szDefaultWildCard・m_szInitialDir・my_splitpath()・TRUE.

参照元 CEditView::Command_LOADKEYMACRO()・CPropTypes::DispatchEvent_KeyHelp()・CPropCommon::DispatchEvent_p10()・CPropTypes::DispatchEvent_p2()・CPropTypes::Import_KeyHelp()・CPropTypes::Import_Regex()・CDlgExec::OnBnClicked()・CDlgDiff::OnBnClicked()・CPropTypes::p3_Import_Colors()・CPropCommon::p5_Import_KeySetting()・CPropCommon::p7_Import_List_KeyWord()・CPropCommon::p8_Import_CustMenuSetting().

BOOL CDlgOpenFile::DoModal_GetSaveFileName | ( | char * | pszPath,
 |  | bool | bSetCurDir = false
 | ) |

保存ダイアログ モーダルダイアログの表示

引数:
pszPath | [i/o] 初期ファイル名．選択されたファイル名の格納場所
bSetCurDir | [in] カレントディレクトリを変更するか デフォルト: false
日付:
2002/08/21 カレントディレクトリを変更するかどうかのオプションを追加

2003.05.12 MIK 拡張子フィルタでタイプ別設定の拡張子を使うように。 拡張子フィルタの管理をCFileExtクラスで行う。

2005/02/20 novice 拡張子を省略したら補完する

CDlgOpenFile.cpp の 809 行で定義されています。

参照先 _MAX_PATH・CFileExt::AppendExtRaw()・DlgOpenFail()・FALSE・CFileExt::GetExtFilter()・GetSaveFileNameRecover()・InitOfn()・m_hInstance・m_hwndParent・m_ofn・m_szDefaultWildCard・m_szInitialDir・TRUE.

参照元 CPropTypes::Export_KeyHelp()・CPropTypes::Export_Regex()・CPropTypes::p3_Export_Colors()・CPropCommon::p5_Export_KeySetting()・CPropCommon::p7_Export_List_KeyWord()・CPropCommon::p8_Export_CustMenuSetting().

BOOL CDlgOpenFile::DoModalOpenDlg | ( | char * | pszPath,
 |  | int * | pnCharCode,
 |  | BOOL * | pbReadOnly
 | ) |

「開く」ダイアログ モーダルダイアログの表示

日付:
2003.05.12 MIK 拡張子フィルタでタイプ別設定の拡張子を使うように。 拡張子フィルタの管理をCFileExtクラスで行う。

2005/02/20 novice 拡張子を省略したら補完する

CDlgOpenFile.cpp の 870 行で定義されています。

参照先 CFileExt::AppendExt()・CFileExt::AppendExtRaw()・FALSE・m_pShareData・Types::m_szTypeExts・Types::m_szTypeName・DLLSHAREDATA::m_Types・MAX_TYPES.

参照元 CEditDoc::OpenFileDialog().

BOOL CDlgOpenFile::DoModalSaveDlg | ( | char * | pszPath,
 |  | int * | pnCharCode,
 |  | CEOL * | pcEol,
 |  | BOOL * | pbBom
 | ) |

保存ダイアログ モーダルダイアログの表示

引数:
pszPath | [out] 取得したパス名
pnCharCode | [out] 文字コード
pcEol | [out] 改行コード
pbBom | [out] BOM
日付:
2003.05.12 MIK 拡張子フィルタでタイプ別設定の拡張子を使うように。 拡張子フィルタの管理をCFileExtクラスで行う。

2003.07.26 ryoji BOMパラメータ追加

2005/02/20 novice 拡張子を省略したら補完する

2006.11.10 ryoji フックを使う場合は拡張子の補完を自前で行う Windowsで関連付けが無いような拡張子を指定して保存すると、明示的に 拡張子入力してあるのにデフォルト拡張子が補完されてしまうことがある。 例）hoge.abc -> hoge.abc.txt 自前で補完することでこれを回避する。（実際の処理はフックプロシージャの中）

CDlgOpenFile.cpp の 963 行で定義されています。

参照先 CFileExt::AppendExtRaw()・DlgOpenFail()・EOL_NONE・F_FILESAVEAS_DIALOG・FALSE・FuncID_To_HelpContextID()・CFileExt::GetExtFilter()・GetSaveFileNameRecover()・InitOfn()・m_bBom・m_bUseBom・m_cEol・m_hInstance・m_hwndParent・m_nCharCode・m_nHelpTopicID・m_ofn・m_szDefaultWildCard・m_szInitialDir・m_szPath・NULL・OFN_ENABLESIZING・TRUE.

参照元 CEditDoc::SaveFileDialog().

BOOL CDlgOpenFile::GetOpenFileNameRecover ( OPENFILENAMEZ & ofn ) [protected]

リトライ機能付き GetOpenFileName

リトライ機能付き GetOpenFileName

作者:
Moca
日付:
2006.09.03 新規作成

CDlgOpenFile.cpp の 1245 行で定義されています。

参照先 BOOL・FALSE.

参照元 DoModal_GetOpenFileName().

BOOL CDlgOpenFile::GetSaveFileNameRecover ( OPENFILENAMEZ & ofn ) [protected]

リトライ機能付き GetOpenFileName

リトライ機能付き GetSaveFileName

作者:
Moca
日付:
2006.09.03 新規作成

CDlgOpenFile.cpp の 1263 行で定義されています。

参照先 BOOL・FALSE.

参照元 DoModal_GetSaveFileName()・DoModalSaveDlg().

void CDlgOpenFile::InitLayout | ( | HWND | hwndOpenDlg,
 |  | HWND | hwndDlg,
 |  | HWND | hwndBaseCtrl
 | ) | [static, protected]

初期レイアウト設定処理

追加コントロールのレイアウトを変更する

引数:
hwndOpenDlg | [in] ファイルダイアログのウィンドウハンドル
hwndDlg | [in] 子ダイアログのウィンドウハンドル
hwndBaseCtrl | [in] 移動基準コントロール（ファイル名ボックスと左端を合わせるコントロール）のウィンドウハンドル
作者:
ryoji
日付:
2005.11.02

CDlgOpenFile.cpp の 1131 行で定義されています。

参照元 OFNHookProc().

void CDlgOpenFile::InitOfn ( OPENFILENAMEZ & ofn ) [protected]

OPENFILENAME 初期化

OPENFILENAME に CDlgOpenFile クラス用の初期規定値を設定する

作者:
ryoji
日付:
2005.10.29

CDlgOpenFile.cpp の 1110 行で定義されています。

参照先 IsOfnV5()・m_ofn・OFNHookProc・OPENFILENAME_SIZE_VERSION_400.

参照元 CDlgOpenFile()・DoModal_GetOpenFileName()・DoModal_GetSaveFileName()・DoModalSaveDlg().

BOOL CDlgOpenFile::IsOfnV5 ( void ) [inline, protected]

CDlgOpenFile.h の 107 行で定義されています。

参照元 InitOfn().

void CDlgOpenFile::OnCmbDropdown ( HWND hwnd ) [static, protected]

コンボボックスのドロップダウン時処理

コンボボックスがドロップダウンされる時に ドロップダウンリストの幅をアイテム文字列の最大表示幅に合わせる

引数:
hwnd [in] コンボボックスのウィンドウハンドル
作者:
ryoji
日付:
2005.10.29

CDlgOpenFile.cpp の 1204 行で定義されています。

参照先 NULL.

フレンドと関連する関数

UINT_PTR CALLBACK OFNHookProc | ( | HWND | hdlg,
 |  | UINT | uiMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [friend]

開くダイアログのフックプロシージャ

CDlgOpenFile.cpp の 133 行で定義されています。

参照元 InitOfn().

変数

BOOL CDlgOpenFile::m_bBom

BOMを付けるかどうか

CDlgOpenFile.h の 92 行で定義されています。

参照元 DoModalSaveDlg()・OFNHookProc().

bool CDlgOpenFile::m_bUseBom

BOMの有無を選択する機能を利用するかどうか

CDlgOpenFile.h の 93 行で定義されています。

参照元 DoModalSaveDlg()・OFNHookProc().

bool CDlgOpenFile::m_bUseEol

CDlgOpenFile.h の 89 行で定義されています。

参照元 OFNHookProc().

CEOL CDlgOpenFile::m_cEol

CDlgOpenFile.h の 88 行で定義されています。

参照元 DoModalSaveDlg().

COsVersionInfo CDlgOpenFile::m_cOsVer [static, protected]

CDlgOpenFile.h の 106 行で定義されています。

HINSTANCE CDlgOpenFile::m_hInstance

CDlgOpenFile.h の 75 行で定義されています。

参照元 CDlgOpenFile()・Create()・DoModal_GetOpenFileName()・DoModal_GetSaveFileName()・DoModalSaveDlg().

HWND CDlgOpenFile::m_hWnd

CDlgOpenFile.h の 77 行で定義されています。

参照元 CDlgOpenFile().

HWND CDlgOpenFile::m_hwndParent

CDlgOpenFile.h の 76 行で定義されています。

参照元 CDlgOpenFile()・Create()・DlgOpenFail()・DoModal_GetOpenFileName()・DoModal_GetSaveFileName()・DoModalSaveDlg().

int CDlgOpenFile::m_nCharCode

CDlgOpenFile.h の 85 行で定義されています。

参照元 CDlgOpenFile()・DoModalSaveDlg()・OFNHookProc().

OPENFILENAMEZ CDlgOpenFile::m_ofn

CDlgOpenFile.h の 84 行で定義されています。

参照元 CDlgOpenFile()・DoModal_GetOpenFileName()・DoModal_GetSaveFileName()・DoModalSaveDlg()・InitOfn().

DLLSHAREDATA* CDlgOpenFile::m_pShareData

CDlgOpenFile.h の 79 行で定義されています。

参照元 CDlgOpenFile()・DoModalOpenDlg()・OFNHookProc().

char CDlgOpenFile::m_szDefaultWildCard[_MAX_PATH+1]

CDlgOpenFile.h の 82 行で定義されています。

参照元 CDlgOpenFile()・Create()・DoModal_GetOpenFileName()・DoModal_GetSaveFileName()・DoModalSaveDlg().

char CDlgOpenFile::m_szInitialDir[_MAX_PATH+1]

CDlgOpenFile.h の 83 行で定義されています。

参照元 CDlgOpenFile()・Create()・DoModal_GetOpenFileName()・DoModal_GetSaveFileName()・DoModalSaveDlg().

TCHAR CDlgOpenFile::m_szPath[_MAX_PATH]

CDlgOpenFile.h の 95 行で定義されています。

参照元 DoModalSaveDlg().

このクラスの説明は次のファイルから生成されました:
  • CDlgOpenFile.h
  • CDlgOpenFile.cpp
Sakura-Editorに対してSat Oct 27 02:34:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgOpenFile メンバ一覧

これは全メンバの一覧です。CDlgOpenFile継承メンバも含んでいます。

CDlgOpenFile() | CDlgOpenFile |
Create(HINSTANCE, HWND, const char *, const char *, const char **=NULL, const char **=NULL) | CDlgOpenFile |
DlgOpenFail(void) | CDlgOpenFile | [protected]
DoModal_GetOpenFileName(char *, bool bSetCurDir=false) | CDlgOpenFile |
DoModal_GetSaveFileName(char *, bool bSetCurDir=false) | CDlgOpenFile |
DoModalOpenDlg(char *, int *, BOOL *) | CDlgOpenFile |
DoModalSaveDlg(char *, int *, CEOL *, BOOL *) | CDlgOpenFile |
GetOpenFileNameRecover(OPENFILENAMEZ &ofn) | CDlgOpenFile | [protected]
GetSaveFileNameRecover(OPENFILENAMEZ &ofn) | CDlgOpenFile | [protected]
InitLayout(HWND hwndOpenDlg, HWND hwndDlg, HWND hwndBaseCtrl) | CDlgOpenFile | [protected, static]
InitOfn(OPENFILENAMEZ &) | CDlgOpenFile | [protected]
IsOfnV5(void) | CDlgOpenFile | [inline, protected]
m_bBom | CDlgOpenFile |
m_bUseBom | CDlgOpenFile |
m_bUseEol | CDlgOpenFile |
m_cEol | CDlgOpenFile |
m_cOsVer | CDlgOpenFile | [protected, static]
m_hInstance | CDlgOpenFile |
m_hWnd | CDlgOpenFile |
m_hwndParent | CDlgOpenFile |
m_nCharCode | CDlgOpenFile |
m_ofn | CDlgOpenFile |
m_pShareData | CDlgOpenFile |
m_szDefaultWildCard | CDlgOpenFile |
m_szInitialDir | CDlgOpenFile |
m_szPath | CDlgOpenFile |
OFNHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) | CDlgOpenFile | [friend]
OnCmbDropdown(HWND hwnd) | CDlgOpenFile | [protected, static]
~CDlgOpenFile() | CDlgOpenFile |

Sakura-Editorに対してSat Oct 27 02:34:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgPrintPage

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgPrintPage

#include <CDlgPrintPage.h>

CDlgPrintPageに対する継承グラフ

[凡例]
CDlgPrintPageのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgPrintPage ()
int | DoModal (HINSTANCE, HWND, LPARAM)

Public 変数

int | m_nPageMin
int | m_nPageMax
BOOL | m_bAllPage
int | m_nPageFrom
int | m_nPageTo

Protected メソッド

int | GetData (void)
void | SetData (void)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)

説明

CDlgPrintPage.h の 20 行で定義されています。

コンストラクタとデストラクタ

CDlgPrintPage::CDlgPrintPage ( )

CDlgPrintPage.cpp の 32 行で定義されています。

関数

int CDlgPrintPage::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgPrintPage.cpp の 41 行で定義されています。

参照先 CDialog::DoModal()・IDD_PRINTPAGE.

int CDlgPrintPage::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintPage.cpp の 94 行で定義されています。

参照先 FALSE・IDC_EDIT_FROM・IDC_EDIT_TO・IDC_RADIO_ALL・m_bAllPage・CDialog::m_hWnd・m_nPageFrom・m_nPageMax・m_nPageMin・m_nPageTo・MYMESSAGEBOX・NULL・TRUE.

参照元 OnBnClicked().

LPVOID CDlgPrintPage::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintPage.cpp の 156 行で定義されています。

参照先 p_helpids.

BOOL CDlgPrintPage::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintPage.cpp の 120 行で定義されています。

参照先 CDialog::CloseDialog()・FALSE・GetData()・IDC_EDIT_FROM・IDC_EDIT_TO・IDC_LABEL_FROM・IDC_LABEL_TO・IDC_RADIO_ALL・IDC_RADIO_FROMTO・CDialog::m_hWnd・TRUE.

void CDlgPrintPage::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintPage.cpp の 50 行で定義されています。

参照先 FALSE・IDC_EDIT_FROM・IDC_EDIT_TO・IDC_LABEL_FROM・IDC_LABEL_TO・IDC_RADIO_ALL・IDC_RADIO_FROMTO・IDC_STATIC_ALL・m_bAllPage・CDialog::m_hWnd・m_nPageFrom・m_nPageMax・m_nPageMin・m_nPageTo・TRUE.

変数

BOOL CDlgPrintPage::m_bAllPage

CDlgPrintPage.h の 36 行で定義されています。

参照元 GetData()・SetData().

int CDlgPrintPage::m_nPageFrom

CDlgPrintPage.h の 37 行で定義されています。

参照元 GetData()・SetData().

int CDlgPrintPage::m_nPageMax

CDlgPrintPage.h の 34 行で定義されています。

参照元 GetData()・SetData().

int CDlgPrintPage::m_nPageMin

CDlgPrintPage.h の 33 行で定義されています。

参照元 GetData()・SetData().

int CDlgPrintPage::m_nPageTo

CDlgPrintPage.h の 38 行で定義されています。

参照元 GetData()・SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgPrintPage.h
  • CDlgPrintPage.cpp
Sakura-Editorに対してSat Oct 27 02:34:38 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgPrintPage メンバ一覧

これは全メンバの一覧です。CDlgPrintPage継承メンバも含んでいます。

CDialog() | CDialog |
CDlgPrintPage() | CDlgPrintPage |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM) | CDlgPrintPage |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgPrintPage | [protected, virtual]
GetHelpIdTable(void) | CDlgPrintPage | [protected, virtual]
m_bAllPage | CDlgPrintPage |
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nPageFrom | CDlgPrintPage |
m_nPageMax | CDlgPrintPage |
m_nPageMin | CDlgPrintPage |
m_nPageTo | CDlgPrintPage |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgPrintPage | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgPrintPage | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:38 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgPrintSetting

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgPrintSetting

#include <CDlgPrintSetting.h>

CDlgPrintSettingに対する継承グラフ

[凡例]
CDlgPrintSettingのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

int | DoModal (HINSTANCE, HWND, int *, PRINTSETTING *)

Public 変数

int | m_nCurrentPrintSetting
PRINTSETTING | m_PrintSettingArr [MAX_PRINTSETTINGARR]

Protected メソッド

void | SetData (void)
int | GetData (void)
BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnDestroy (void)
BOOL | OnNotify (WPARAM, LPARAM)
BOOL | OnCbnSelChange (HWND, int)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)
void | OnChangeSettingType (BOOL)
void | OnSpin (int, BOOL)
int | DataCheckAndCrrect (int, int)
BOOL | OnTimer (WPARAM)

説明

印刷設定ダイアログ

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CDlgPrintSetting.h の 25 行で定義されています。

関数

int CDlgPrintSetting::DataCheckAndCrrect | ( | int | ,
 |  | int |
 | ) | [protected]

CDlgPrintSetting.cpp の 683 行で定義されています。

参照元 OnSpin().

int CDlgPrintSetting::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | int * | ,
 |  | PRINTSETTING * |
 | ) |

CDlgPrintSetting.cpp の 98 行で定義されています。

参照先 m_nCurrentPrintSetting・m_PrintSettingArr・MAX_PRINTSETTINGARR.

int CDlgPrintSetting::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 321 行で定義されています。

参照先 IDC_COMBO_FONT_HAN・IDC_COMBO_FONT_ZEN・IDC_COMBO_PAPER・IDC_RADIO_PORTRAIT・CDialog::m_hWnd・m_nCurrentPrintSetting・PRINTSETTING::m_nPrintPaperSize・m_PrintSettingArr.

参照元 OnChangeSettingType()・OnTimer().

LPVOID CDlgPrintSetting::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 810 行で定義されています。

参照先 p_helpids.

BOOL CDlgPrintSetting::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 209 行で定義されています。

参照先 CDlgInput1::DoModal()・F_PRINT_PAGESETUP・FALSE・FuncID_To_HelpContextID()・IDC_BUTTON_EDITSETTINGNAME・IDC_BUTTON_HELP・IDC_COMBO_SETTINGNAME・CDialog::m_hInstance・CDialog::m_hWnd・m_nCurrentPrintSetting・m_PrintSettingArr・CDialog::m_szHelpFile・MAX_PRINTSETTINGARR・MyWinHelp()・TRUE.

BOOL CDlgPrintSetting::OnCbnSelChange | ( | HWND | ,
 |  | int |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 198 行で定義されています。

参照先 FALSE・IDC_COMBO_SETTINGNAME・CDialog::m_hWnd・OnChangeSettingType()・TRUE.

void CDlgPrintSetting::OnChangeSettingType ( BOOL ) [protected]

CDlgPrintSetting.cpp の 480 行で定義されています。

参照先 FALSE・GetData()・IDC_CHECK_LINENUMBER・IDC_CHECK_WORDWRAP・IDC_COMBO_FONT_HAN・IDC_COMBO_FONT_ZEN・IDC_COMBO_PAPER・IDC_COMBO_SETTINGNAME・m_nCurrentPrintSetting・PRINTSETTING::m_nPrintDanSpace・PRINTSETTING::m_nPrintDansuu・PRINTSETTING::m_nPrintFontWidth・PRINTSETTING::m_nPrintLineSpacing・PRINTSETTING::m_nPrintMarginBY・PRINTSETTING::m_nPrintMarginLX・PRINTSETTING::m_nPrintMarginRX・PRINTSETTING::m_nPrintMarginTY・m_PrintSettingArr・PRINTSETTING::m_szFooterForm・PRINTSETTING::m_szHeaderForm・POS_CENTER・POS_LEFT・POS_RIGHT.

参照元 OnCbnSelChange().

BOOL CDlgPrintSetting::OnDestroy ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 149 行で定義されています。

参照先 IDT_PRINTSETTING・CDialog::m_hWnd・CDialog::OnDestroy().

BOOL CDlgPrintSetting::OnInitDialog | ( | HWND | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 129 行で定義されています。

参照先 BOOL・IDC_COMBO_FONT_HAN・IDC_COMBO_FONT_ZEN・IDC_COMBO_PAPER・IDC_COMBO_SETTINGNAME・IDT_PRINTSETTING・CDialog::m_hWnd・NULL・CDialog::OnInitDialog()・TRUE.

BOOL CDlgPrintSetting::OnNotify | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 157 行で定義されています。

参照先 BOOL・FALSE・IDC_SPIN_DANSPACE・IDC_SPIN_DANSUU・IDC_SPIN_FONTWIDTH・IDC_SPIN_LINESPACE・IDC_SPIN_MARGINBY・IDC_SPIN_MARGINLX・IDC_SPIN_MARGINRX・IDC_SPIN_MARGINTY・OnSpin()・TRUE.

void CDlgPrintSetting::OnSpin | ( | int | ,
 |  | BOOL |
 | ) | [protected]

CDlgPrintSetting.cpp の 590 行で定義されています。

参照先 BOOL・DataCheckAndCrrect()・FALSE・IDC_SPIN_DANSPACE・IDC_SPIN_DANSUU・IDC_SPIN_FONTWIDTH・IDC_SPIN_LINESPACE・IDC_SPIN_MARGINBY・IDC_SPIN_MARGINLX・IDC_SPIN_MARGINRX・IDC_SPIN_MARGINTY・TRUE.

参照元 OnNotify().

BOOL CDlgPrintSetting::OnTimer ( WPARAM ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 756 行で定義されています。

参照先 MYDEVMODE::dmFields・MYDEVMODE::dmOrientation・MYDEVMODE::dmPaperSize・FALSE・GetData()・CPrint::GetPaperSize()・IDC_STATIC_ENABLECOLMNS・IDC_STATIC_ENABLELINES・IDT_PRINTSETTING・m_nCurrentPrintSetting・PRINTSETTING::m_nPrintDanSpace・PRINTSETTING::m_nPrintDansuu・PRINTSETTING::m_nPrintFontHeight・PRINTSETTING::m_nPrintFontWidth・PRINTSETTING::m_nPrintLineSpacing・PRINTSETTING::m_nPrintMarginBY・PRINTSETTING::m_nPrintMarginLX・PRINTSETTING::m_nPrintMarginRX・PRINTSETTING::m_nPrintMarginTY・PRINTSETTING::m_nPrintPaperOrientation・PRINTSETTING::m_nPrintPaperSize・m_PrintSettingArr・TRUE.

void CDlgPrintSetting::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgPrintSetting.cpp の 261 行で定義されています。

参照先 IDC_COMBO_FONT_HAN・IDC_COMBO_FONT_ZEN・IDC_COMBO_PAPER・CDialog::m_hWnd・CDialog::m_hwndParent・PAPER_INFO::m_nId・CPrint::m_nPaperInfoArrNum・CPrint::m_paperInfoArr・NULL・SetData_EnumFontFamProc().

変数

int CDlgPrintSetting::m_nCurrentPrintSetting

CDlgPrintSetting.h の 37 行で定義されています。

参照元 DoModal()・GetData()・OnBnClicked()・OnChangeSettingType()・OnTimer().

PRINTSETTING CDlgPrintSetting::m_PrintSettingArr[MAX_PRINTSETTINGARR]

CDlgPrintSetting.h の 38 行で定義されています。

参照元 DoModal()・GetData()・OnBnClicked()・OnChangeSettingType()・OnTimer().

このクラスの説明は次のファイルから生成されました:
  • CDlgPrintSetting.h
  • CDlgPrintSetting.cpp
Sakura-Editorに対してSat Oct 27 02:34:39 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgPrintSetting メンバ一覧

これは全メンバの一覧です。CDlgPrintSetting継承メンバも含んでいます。

CDialog() | CDialog |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DataCheckAndCrrect(int, int) | CDlgPrintSetting | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int *, PRINTSETTING *) | CDlgPrintSetting |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgPrintSetting | [protected, virtual]
GetHelpIdTable(void) | CDlgPrintSetting | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nCurrentPrintSetting | CDlgPrintSetting |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_PrintSettingArr | CDlgPrintSetting |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgPrintSetting | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND, int) | CDlgPrintSetting | [protected, virtual]
OnChangeSettingType(BOOL) | CDlgPrintSetting | [protected]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDlgPrintSetting | [protected, virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgPrintSetting | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM, LPARAM) | CDlgPrintSetting | [protected, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnSpin(int, BOOL) | CDlgPrintSetting | [protected]
OnTimer(WPARAM) | CDlgPrintSetting | [protected, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgPrintSetting | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:39 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgProperty

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgProperty

#include <CDlgProperty.h>

CDlgPropertyに対する継承グラフ

[凡例]
CDlgPropertyのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

int | DoModal (HINSTANCE, HWND, LPARAM)

Protected メソッド

BOOL | OnBnClicked (int)
void | SetData (void)
LPVOID | GetHelpIdTable (void)

説明

CDlgProperty.h の 24 行で定義されています。

関数

int CDlgProperty::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgProperty.cpp の 38 行で定義されています。

参照先 CDialog::DoModal()・IDD_PROPERTY_FILE.

参照元 CEditView::Command_PROPERTY_FILE().

LPVOID CDlgProperty::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgProperty.cpp の 325 行で定義されています。

参照先 p_helpids.

BOOL CDlgProperty::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgProperty.cpp の 43 行で定義されています。

参照先 F_PROPERTY_FILE・FALSE・FuncID_To_HelpContextID()・IDC_BUTTON_HELP・CDialog::m_hWnd・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・TRUE.

void CDlgProperty::SetData ( void ) [protected, virtual]

ダイアログデータの設定

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CDialogを再定義しています。

CDlgProperty.cpp の 68 行で定義されています。

参照先 CMemory::AppendSz()・CEditDoc::GetDocumentAttribute()・CEditDoc::GetFilePath()・CShareData::getInstance()・CLayoutMgr::GetLineCount()・CDocLineMgr::GetLineCount()・CShareData::GetShareData()・gm_pszCodeNameArr_1・CEditDoc::IsModified()・CEditDoc::m_bReadOnly・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・CDialog::m_lParam・CEditDoc::m_nCharCode・CDialog::m_pShareData・Types::m_szTypeName.

このクラスの説明は次のファイルから生成されました:
  • CDlgProperty.h
  • CDlgProperty.cpp
Sakura-Editorに対してSat Oct 27 02:34:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgProperty メンバ一覧

これは全メンバの一覧です。CDlgProperty継承メンバも含んでいます。

CDialog() | CDialog |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM) | CDlgProperty |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CDlgProperty | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgProperty | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgProperty | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgReplace

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgReplace

置換ダイアログボックス [詳細]

#include <CDlgReplace.h>

CDlgReplaceに対する継承グラフ

[凡例]
CDlgReplaceのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgReplace ()
HWND | DoModeless (HINSTANCE, HWND, LPARAM, BOOL)
void | ChangeView (LPARAM)

Public 変数

int | m_bLoHiCase
int | m_bWordOnly
int | m_bConsecutiveAll
int | m_bRegularExp
char | m_szText [_MAX_PATH+1]
char | m_szText2 [_MAX_PATH+1]
BOOL | m_bSelectedArea
int | m_bNOTIFYNOTFOUND
int | m_nSettingType
BOOL | m_bSelected
int | m_nReplaceTarget
int | m_nPaste
int | m_nReplaceCnt
bool | m_bCanceled
int | m_nEscCaretPosX_PHY
int | m_nEscCaretPosY_PHY

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)

説明

置換ダイアログボックス

CDlgReplace.h の 29 行で定義されています。

コンストラクタとデストラクタ

CDlgReplace::CDlgReplace ( )

CDlgReplace.cpp の 58 行で定義されています。

参照先 FALSE・m_bCanceled・m_bConsecutiveAll・m_bLoHiCase・m_bRegularExp・m_bSelectedArea・m_bWordOnly・m_nPaste・m_nReplaceCnt・m_nReplaceTarget・m_szText・m_szText2.

関数

void CDlgReplace::ChangeView ( LPARAM )

CDlgReplace.cpp の 91 行で定義されています。

参照先 CDialog::m_lParam.

参照元 CEditDoc::SetActivePane().

HWND CDlgReplace::DoModeless | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM | ,
 |  | BOOL |
 | ) |

CDlgReplace.cpp の 75 行で定義されています。

参照先 CDialog::DoModeless()・IDD_REPLACE・Common::m_bConsecutiveAll・m_bConsecutiveAll・Common::m_bLoHiCase・m_bLoHiCase・Common::m_bNOTIFYNOTFOUND・m_bNOTIFYNOTFOUND・Common::m_bRegularExp・m_bRegularExp・m_bSelected・Common::m_bSelectedArea・m_bSelectedArea・Common::m_bWordOnly・m_bWordOnly・DLLSHAREDATA::m_Common・m_nEscCaretPosX_PHY・m_nEscCaretPosY_PHY・CDialog::m_pShareData・TRUE.

参照元 CEditView::Command_REPLACE_DIALOG().

int CDlgReplace::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgReplace.cpp の 197 行で定義されています。

参照先 CheckRegexpSyntax()・IDC_CHK_REGULAREXP・IDC_COMBO_TEXT・IDC_COMBO_TEXT2・IDC_RADIO_SELECTEDAREA・Common::m_bAutoCloseDlgReplace・Common::m_bConsecutiveAll・m_bConsecutiveAll・Common::m_bLoHiCase・m_bLoHiCase・Common::m_bNOTIFYNOTFOUND・m_bNOTIFYNOTFOUND・Common::m_bRegularExp・m_bRegularExp・Common::m_bSearchAll・Common::m_bSelectedArea・m_bSelectedArea・Common::m_bWordOnly・m_bWordOnly・DLLSHAREDATA::m_Common・CDialog::m_hWnd・CDialog::m_pShareData・m_szText・m_szText2.

LPVOID CDlgReplace::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgReplace.cpp の 575 行で定義されています。

参照先 p_helpids.

BOOL CDlgReplace::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgReplace.cpp の 316 行で定義されています。

参照先 FALSE・GSTR_APPNAME・IDC_BUTTON_REPALCE・IDC_BUTTON_SEARCHNEXT・IDC_BUTTON_SEARCHPREV・IDC_COMBO_TEXT2・IDC_RADIO_ALLAREA・IDC_RADIO_SELECTEDAREA・CEditDoc::IsEnablePaste()・CDialog::m_lParam・CEditView::m_pcEditDoc・MYMESSAGEBOX・TRUE.

BOOL CDlgReplace::OnInitDialog | ( | HWND | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgReplace.cpp の 280 行で定義されています。

参照先 _MAX_PATH・BOOL・FALSE・IDC_BUTTON_REPALCE・IDC_BUTTON_SEARCHNEXT・IDC_BUTTON_SEARCHPREV・IDC_COMBO_TEXT・IDC_COMBO_TEXT2・IDC_RADIO_ALLAREA・IDC_RADIO_SELECTEDAREA・m_bSelected・CDialog::OnInitDialog()・TRUE.

void CDlgReplace::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgReplace.cpp の 101 行で定義されています。

参照先 IDC_COMBO_TEXT・CDialog::m_hWnd・DLLSHAREDATA::m_nSEARCHKEYArrNum・CDialog::m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr・m_szText.

変数

bool CDlgReplace::m_bCanceled

CDlgReplace.h の 55 行で定義されています。

参照元 CDlgReplace()・CEditView::Command_REPLACE_ALL().

int CDlgReplace::m_bConsecutiveAll

CDlgReplace.h の 44 行で定義されています。

参照元 CDlgReplace()・DoModeless()・GetData().

int CDlgReplace::m_bLoHiCase

CDlgReplace.h の 42 行で定義されています。

参照元 CDlgReplace()・DoModeless()・GetData().

int CDlgReplace::m_bNOTIFYNOTFOUND

CDlgReplace.h の 49 行で定義されています。

参照元 DoModeless()・GetData().

int CDlgReplace::m_bRegularExp

CDlgReplace.h の 45 行で定義されています。

参照元 CDlgReplace()・DoModeless()・GetData().

BOOL CDlgReplace::m_bSelected

CDlgReplace.h の 51 行で定義されています。

参照元 DoModeless()・OnInitDialog().

BOOL CDlgReplace::m_bSelectedArea

CDlgReplace.h の 48 行で定義されています。

参照元 CDlgReplace()・DoModeless()・GetData().

int CDlgReplace::m_bWordOnly

CDlgReplace.h の 43 行で定義されています。

参照元 CDlgReplace()・DoModeless()・GetData().

int CDlgReplace::m_nEscCaretPosX_PHY

CDlgReplace.h の 56 行で定義されています。

参照元 DoModeless().

int CDlgReplace::m_nEscCaretPosY_PHY

CDlgReplace.h の 57 行で定義されています。

参照元 DoModeless().

int CDlgReplace::m_nPaste

CDlgReplace.h の 53 行で定義されています。

参照元 CMacro::AddLParam()・CDlgReplace()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_REPLACE_DIALOG()・CMacro::HandleCommand().

int CDlgReplace::m_nReplaceCnt

CDlgReplace.h の 54 行で定義されています。

参照元 CDlgReplace()・CEditView::Command_REPLACE_ALL().

int CDlgReplace::m_nReplaceTarget

CDlgReplace.h の 52 行で定義されています。

参照元 CMacro::AddLParam()・CDlgReplace()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_REPLACE_DIALOG()・CMacro::HandleCommand().

int CDlgReplace::m_nSettingType

CDlgReplace.h の 50 行で定義されています。

char CDlgReplace::m_szText[_MAX_PATH+1]

CDlgReplace.h の 46 行で定義されています。

参照元 CDlgReplace()・CEditView::Command_REPLACE_DIALOG()・GetData()・SetData().

char CDlgReplace::m_szText2[_MAX_PATH+1]

CDlgReplace.h の 47 行で定義されています。

参照元 CDlgReplace()・CEditView::Command_REPLACE_DIALOG()・GetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgReplace.h
  • CDlgReplace.cpp
Sakura-Editorに対してSat Oct 27 02:34:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgReplace メンバ一覧

これは全メンバの一覧です。CDlgReplace継承メンバも含んでいます。

CDialog() | CDialog |
CDlgReplace() | CDlgReplace |
ChangeView(LPARAM) | CDlgReplace |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, LPARAM, BOOL) | CDlgReplace |
CDialog::DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgReplace | [protected, virtual]
GetHelpIdTable(void) | CDlgReplace | [protected, virtual]
m_bCanceled | CDlgReplace |
m_bConsecutiveAll | CDlgReplace |
m_bInited | CDialog |
m_bLoHiCase | CDlgReplace |
m_bModal | CDialog |
m_bNOTIFYNOTFOUND | CDlgReplace |
m_bRegularExp | CDlgReplace |
m_bSelected | CDlgReplace |
m_bSelectedArea | CDlgReplace |
m_bWordOnly | CDlgReplace |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nEscCaretPosX_PHY | CDlgReplace |
m_nEscCaretPosY_PHY | CDlgReplace |
m_nHeight | CDialog |
m_nPaste | CDlgReplace |
m_nReplaceCnt | CDlgReplace |
m_nReplaceTarget | CDlgReplace |
m_nSettingType | CDlgReplace |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_szText | CDlgReplace |
m_szText2 | CDlgReplace |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgReplace | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgReplace | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDlgReplace | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgSameColor

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgSameColor

文字色／背景色統一ダイアログ [詳細]

#include <CDlgSameColor.h>

CDlgSameColorに対する継承グラフ

[凡例]
CDlgSameColorのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgSameColor ()
~CDlgSameColor ()
int | DoModal (HINSTANCE, HWND, WORD, Types *, COLORREF)
モーダルダイアログの表示

Protected メソッド

virtual LPVOID | GetHelpIdTable (void)
virtual INT_PTR | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
virtual BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
ダイアログのメッセージ処理 WM_INITDIALOG 処理
virtual BOOL | OnBnClicked (int)
BN_CLICKED 処理
virtual BOOL | OnDrawItem (WPARAM wParam, LPARAM lParam)
WM_DRAWITEM 処理
BOOL | OnSelChangeListColors (HWND hwndCtl)
色選択リストの LBN_SELCHANGE 処理

Static Protected メソッド

static LRESULT CALLBACK | ColorStatic_SubclassProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
サブクラス化された指定色スタティックのウィンドウプロシージャ
static LRESULT CALLBACK | ColorList_SubclassProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
サブクラス化された色選択リストのウィンドウプロシージャ

Protected 変数

WNDPROC | m_wpColorStaticProc
サブクラス化以前の指定色スタティックのウィンドウプロシージャ
WNDPROC | m_wpColorListProc
サブクラス化以前の色選択リストのウィンドウプロシージャ
WORD | m_wID
タイプ別設定ダイアログ（親ダイアログ）で押されたボタンID
Types * m_pTypes
タイプ別設定データ
COLORREF | m_cr
指定色

説明

文字色／背景色統一ダイアログ

タイプ別設定のカラー設定で，文字色／背景色統一の対象色を指定するために補助的に 使用されるダイアログボックス

CDlgSameColor.h の 42 行で定義されています。

コンストラクタとデストラクタ

CDlgSameColor::CDlgSameColor ( )

CDlgSameColor.cpp の 53 行で定義されています。

CDlgSameColor::~CDlgSameColor ( )

CDlgSameColor.cpp の 63 行で定義されています。

関数

LRESULT CALLBACK CDlgSameColor::ColorList_SubclassProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

サブクラス化された色選択リストのウィンドウプロシージャ

サブクラス化された色選択リストのウィンドウプロシージャ

日付:
2006.04.26 ryoji 新規作成

CDlgSameColor.cpp の 447 行で定義されています。

参照先 BOOL・GetWindowLongPtr・GWLP_USERDATA・TRUE.

参照元 OnInitDialog().

LRESULT CALLBACK CDlgSameColor::ColorStatic_SubclassProc | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

サブクラス化された指定色スタティックのウィンドウプロシージャ

サブクラス化された指定色スタティックのウィンドウプロシージャ

日付:
2006.04.26 ryoji 新規作成

CDlgSameColor.cpp の 380 行で定義されています。

参照先 GetWindowLongPtr・GWLP_USERDATA・GWLP_WNDPROC・LONG_PTR・m_cr・m_wpColorStaticProc・NULL・SetWindowLongPtr.

参照元 OnInitDialog().

INT_PTR CDlgSameColor::DispatchEvent | ( | HWND | hWnd,
 |  | UINT | wMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

標準以外のメッセージを捕捉する

CDialogを再定義しています。

CDlgSameColor.cpp の 71 行で定義されています。

参照先 CDialog::DispatchEvent()・IDC_LIST_COLORS・IDC_LIST_ITEMINFO・INT_PTR・OnSelChangeListColors().

int CDlgSameColor::DoModal | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | WORD | wID,
 |  | Types * | pTypes,
 |  | COLORREF | cr
 | ) |

モーダルダイアログの表示

モーダルダイアログの表示

引数:
wID | [in] タイプ別設定ダイアログで押されたボタンID
pTypes | [in/out] タイプ別設定データ
cr | [in] 指定色
日付:
2006.04.26 ryoji 新規作成

CDlgSameColor.cpp の 109 行で定義されています。

参照先 CDialog::DoModal()・IDD_SAMECOLOR・m_cr・m_pTypes・m_wID・NULL・TRUE.

参照元 CPropTypes::DispatchEvent_p3_new().

LPVOID CDlgSameColor::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgSameColor.cpp の 48 行で定義されています。

参照先 p_helpids.

BOOL CDlgSameColor::OnBnClicked ( int wID ) [protected, virtual]

BN_CLICKED 処理

BN_CLICKED 処理

日付:
2006.04.26 ryoji 新規作成

CDialogを再定義しています。

CDlgSameColor.cpp の 189 行で定義されています。

参照先 BOOL・HLP000316・IDC_BUTTON_HELP・IDC_BUTTON_SAMETEXTCOLOR・IDC_BUTTON_SELALL・IDC_BUTTON_SELNOTING・IDC_LIST_COLORS・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・m_cr・CDialog::m_hWnd・m_pTypes・CDialog::m_szHelpFile・m_wID・MyWinHelp()・NULL・TRUE.

BOOL CDlgSameColor::OnDrawItem | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

WM_DRAWITEM 処理

WM_DRAWITEM 処理

日付:
2006.04.26 ryoji 新規作成

CDialogを再定義しています。

CDlgSameColor.cpp の 259 行で定義されています。

参照先 BOOL・IDC_LIST_COLORS・TRUE.

BOOL CDlgSameColor::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

ダイアログのメッセージ処理 WM_INITDIALOG 処理

WM_INITDIALOG 処理

日付:
2006.04.26 ryoji 新規作成

CDialogを再定義しています。

CDlgSameColor.cpp の 123 行で定義されています。

参照先 BOOL・COLORIDX_LAST・ColorList_SubclassProc()・ColorStatic_SubclassProc()・FALSE・GWLP_USERDATA・GWLP_WNDPROC・IDC_BUTTON_SAMETEXTCOLOR・IDC_LIST_COLORS・IDC_STATIC_COLOR・LONG_PTR・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・m_cr・CDialog::m_hWnd・m_pTypes・m_wID・m_wpColorListProc・m_wpColorStaticProc・CDialog::OnInitDialog()・SetWindowLongPtr.

BOOL CDlgSameColor::OnSelChangeListColors ( HWND hwndCtl ) [protected]

色選択リストの LBN_SELCHANGE 処理

色選択リストの LBN_SELCHANGE 処理

日付:
2006.05.01 ryoji 新規作成

CDlgSameColor.cpp の 330 行で定義されています。

参照先 g_ColorAttributeArr・IDC_BUTTON_SAMEBKCOLOR・IDC_BUTTON_SAMETEXTCOLOR・IDC_LIST_ITEMINFO・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・CDialog::m_hWnd・m_pTypes・ColorInfo::m_szName・m_wID.

参照元 DispatchEvent().

変数

COLORREF CDlgSameColor::m_cr [protected]

指定色

CDlgSameColor.h の 66 行で定義されています。

参照元 ColorStatic_SubclassProc()・DoModal()・OnBnClicked()・OnInitDialog().

Types* CDlgSameColor::m_pTypes [protected]

タイプ別設定データ

CDlgSameColor.h の 65 行で定義されています。

参照元 DoModal()・OnBnClicked()・OnInitDialog()・OnSelChangeListColors().

WORD CDlgSameColor::m_wID [protected]

タイプ別設定ダイアログ（親ダイアログ）で押されたボタンID

CDlgSameColor.h の 64 行で定義されています。

参照元 DoModal()・OnBnClicked()・OnInitDialog()・OnSelChangeListColors().

WNDPROC CDlgSameColor::m_wpColorListProc [protected]

サブクラス化以前の色選択リストのウィンドウプロシージャ

CDlgSameColor.h の 62 行で定義されています。

参照元 OnInitDialog().

WNDPROC CDlgSameColor::m_wpColorStaticProc [protected]

サブクラス化以前の指定色スタティックのウィンドウプロシージャ

CDlgSameColor.h の 61 行で定義されています。

参照元 ColorStatic_SubclassProc()・OnInitDialog().

このクラスの説明は次のファイルから生成されました:
  • CDlgSameColor.h
  • CDlgSameColor.cpp
Sakura-Editorに対してSat Oct 27 02:34:43 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgSameColor メンバ一覧

これは全メンバの一覧です。CDlgSameColor継承メンバも含んでいます。

CDialog() | CDialog |
CDlgSameColor() | CDlgSameColor |
CloseDialog(int) | CDialog |
ColorList_SubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CDlgSameColor | [protected, static]
ColorStatic_SubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CDlgSameColor | [protected, static]
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDlgSameColor | [protected, virtual]
DoModal(HINSTANCE, HWND, WORD, Types *, COLORREF) | CDlgSameColor |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CDlgSameColor | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_cr | CDlgSameColor | [protected]
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_pTypes | CDlgSameColor | [protected]
m_szHelpFile | CDialog |
m_wID | CDlgSameColor | [protected]
m_wpColorListProc | CDlgSameColor | [protected]
m_wpColorStaticProc | CDlgSameColor | [protected]
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgSameColor | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDlgSameColor | [protected, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgSameColor | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSelChangeListColors(HWND hwndCtl) | CDlgSameColor | [protected]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData(void) | CDialog | [inline, virtual]
~CDialog() | CDialog | [virtual]
~CDlgSameColor() | CDlgSameColor |

Sakura-Editorに対してSat Oct 27 02:34:43 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgTagJumpList

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgTagJumpList

ダイレクトタグジャンプ候補一覧ダイアログ [詳細]

#include <CDlgTagJumpList.h>

CDlgTagJumpListに対する継承グラフ

[凡例]
CDlgTagJumpListのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgTagJumpList ()
~CDlgTagJumpList ()
int | DoModal (HINSTANCE, HWND, LPARAM)
bool | AddParam (char *s0, char *s1, int n2, char *s3, char *s4, int depth)
bool | GetSelectedParam (char *s0, char *s1, int *n2, char *s3, char *s4, int *depth)
void | SetFileName (const char *pszFileName)
void | SetKeyword (const char *pszKeyword)

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM wParam, LPARAM lParam)
BOOL | OnBnClicked (int)
BOOL | OnNotify (WPARAM wParam, LPARAM lParam)
BOOL | OnCbnSelChange (HWND hwndCtl, int wID)
BOOL | OnCbnEditChange (HWND hwndCtl, int wID)
BOOL | OnTimer (WPARAM wParam)
LPVOID | GetHelpIdTable (void)
void | StopTimer (void)
void | StartTimer (void)
void | SetData (void)
int | GetData (void)
void | UpdateData (void)
Jump候補の更新
char * | GetNameByType (const char type, const char *name)
int | SearchBestTag (void)
const char * | GetFileName (void)
const char * | GetFilePath (void)
void | find_key (const char *keyword)
void | Empty (void)

Private 変数

int | m_nIndex
選択された要素番号
char * | m_pszFileName
編集中のファイル名
char * | m_pszKeyword
キーワード(DoModalのlParam!=0を指定した場合に指定できる)
int | m_nLoop
さかのぼれる階層数
CSortedTagJumpList m_cList
タグジャンプ情報
UINT | m_nTimerId
タイマ番号
BOOL | m_bTagJumpICase
大文字小文字を同一視
BOOL | m_bTagJumpAnyWhere
文字列の途中にマッチ

説明

ダイレクトタグジャンプ候補一覧ダイアログ

ダイレクトタグジャンプで複数の候補がある場合及び キーワード指定タグジャンプのためのダイアログボックス制御

CDlgTagJumpList.h の 59 行で定義されています。

コンストラクタとデストラクタ

CDlgTagJumpList::CDlgTagJumpList ( )

CDlgTagJumpList.cpp の 101 行で定義されています。

CDlgTagJumpList::~CDlgTagJumpList ( )

CDlgTagJumpList.cpp の 113 行で定義されています。

参照先 Empty()・m_nLoop・m_pszFileName・m_pszKeyword・NULL・StopTimer().

関数

bool CDlgTagJumpList::AddParam | ( | char * | s0,
 |  | char * | s1,
 |  | int | n2,
 |  | char * | s3,
 |  | char * | s4,
 |  | int | depth
 | ) |

CDlgTagJumpList.cpp の 537 行で定義されています。

参照先 CSortedTagJumpList::AddParam()・m_cList・m_nIndex.

参照元 CEditView::Command_TagJumpByTagsFile().

int CDlgTagJumpList::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CDlgTagJumpList.cpp の 172 行で定義されています。

参照先 CDialog::DoModal()・IDD_TAGJUMPLIST・StopTimer().

参照元 CEditView::Command_TagJumpByTagsFile()・CEditView::Command_TagJumpByTagsFileKeyword().

void CDlgTagJumpList::Empty ( void ) [protected]

リストのクリア

作者:
MIK
日付:
2005.03.31 新規作成

CDlgTagJumpList.cpp の 161 行で定義されています。

参照先 CSortedTagJumpList::Empty()・m_cList・m_nIndex.

参照元 find_key()・~CDlgTagJumpList().

void CDlgTagJumpList::find_key ( const char * keyword ) [protected]

タグファイルからキーワードにマッチするデータを抽出し， m_cListに設定する

日付:
2007.03.13 genta バッファオーバーラン暫定対処でバッファサイズ変更

CDlgTagJumpList.cpp の 683 行で定義されています。

参照先 CSortedTagJumpList::AddParam()・Empty()・GetFileName()・GetFilePath()・m_bTagJumpAnyWhere・m_bTagJumpICase・m_cList・m_nLoop・NULL・strnicmp・strstri・TAG_FILENAME・TAG_FORMAT.

参照元 OnTimer().

int CDlgTagJumpList::GetData ( void ) [protected, virtual]

ダイアログデータの取得

戻り値:
TRUE: 正常, FALSE: 入力エラー
日付:
2005.04.03 MIK 設定値の保存処理追加

CDialogを再定義しています。

CDlgTagJumpList.cpp の 295 行で定義されています。

参照先 CRecent::AppendItem()・CRecent::EasyCreate()・FALSE・CSortedTagJumpList::GetCapacity()・IDC_KEYWORD・IDC_LIST_TAGJUMP・m_bTagJumpAnyWhere・DLLSHAREDATA::m_bTagJumpAnyWhere・m_bTagJumpICase・DLLSHAREDATA::m_bTagJumpICase・m_cList・CDialog::m_hWnd・CDialog::m_lParam・m_nIndex・CDialog::m_pShareData・m_pszKeyword・MAX_TAG_STRING_LENGTH・RECENT_FOR_TAGJUMP_KEYWORD・SetKeyword()・CRecent::Terminate()・TRUE.

参照元 OnBnClicked()・OnNotify().

const char * CDlgTagJumpList::GetFileName ( void ) [protected]

パスからファイル名部分のみを取り出す．(2バイト対応)

CDlgTagJumpList.cpp の 767 行で定義されています。

参照先 _IS_SJIS_1・_IS_SJIS_2・GetFilePath().

参照元 find_key().

const char* CDlgTagJumpList::GetFilePath ( void ) [inline, protected]

CDlgTagJumpList.h の 103 行で定義されています。

参照先 NULL.

参照元 find_key()・GetFileName().

LPVOID CDlgTagJumpList::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgTagJumpList.cpp の 532 行で定義されています。

参照先 p_helpids.

char * CDlgTagJumpList::GetNameByType | ( | const char | type,
 |  | const char * | name
 | ) | [protected]

CDlgTagJumpList.cpp の 555 行で定義されています。

参照先 MAX_TAG_STRING_LENGTH・NULL・p_extentions・stricmp.

参照元 UpdateData().

bool CDlgTagJumpList::GetSelectedParam | ( | char * | s0,
 |  | char * | s1,
 |  | int * | n2,
 |  | char * | s3,
 |  | char * | s4,
 |  | int * | depth
 | ) |

CDlgTagJumpList.cpp の 546 行で定義されています。

参照先 CSortedTagJumpList::GetCount()・CSortedTagJumpList::GetParam()・m_cList・m_nIndex.

参照元 CEditView::Command_TagJumpByTagsFile().

BOOL CDlgTagJumpList::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgTagJumpList.cpp の 417 行で定義されています。

参照先 BOOL・F_TAGJUMP_LIST・FALSE・FuncID_To_HelpContextID()・GetData()・IDC_BUTTON_HELP・IDC_CHECK_ANYWHERE・IDC_CHECK_ICASE・m_bTagJumpAnyWhere・m_bTagJumpICase・CDialog::m_hWnd・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・StartTimer()・StopTimer()・TRUE.

BOOL CDlgTagJumpList::OnCbnEditChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [protected, virtual]

タイマー経過

タイマーを停止し，候補リストを更新する

CDialogを再定義しています。

CDlgTagJumpList.cpp の 506 行で定義されています。

参照先 CDialog::OnCbnEditChange()・StartTimer().

BOOL CDlgTagJumpList::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgTagJumpList.cpp の 514 行で定義されています。

参照先 CDialog::OnCbnSelChange()・StartTimer().

BOOL CDlgTagJumpList::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

日付:
2005.03.31 MIK 階層カラムの追加．キーワード指定欄の追加

CDialogを再定義しています。

CDlgTagJumpList.cpp の 329 行で定義されています。

参照先 BOOL・FALSE・IDC_CHECK_ANYWHERE・IDC_CHECK_ICASE・IDC_KEYWORD・IDC_LIST_TAGJUMP・IDC_STATIC_KEYWORD・CDialog::m_hWnd・CDialog::m_lParam・CDialog::OnInitDialog()・TRUE.

BOOL CDlgTagJumpList::OnNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

CDialogを再定義しています。

CDlgTagJumpList.cpp の 454 行で定義されています。

参照先 CSortedTagJumpList::GetCount()・GetData()・IDC_LIST_TAGJUMP・m_cList・CDialog::m_hWnd・m_nIndex・CDialog::OnNotify()・StopTimer()・TRUE.

BOOL CDlgTagJumpList::OnTimer ( WPARAM wParam ) [protected, virtual]

タイマー経過

タイマーを停止し，候補リストを更新する

CDialogを再定義しています。

CDlgTagJumpList.cpp の 488 行で定義されています。

参照先 find_key()・IDC_KEYWORD・CDialog::m_hWnd・MAX_TAG_STRING_LENGTH・StopTimer()・TRUE・UpdateData().

int CDlgTagJumpList::SearchBestTag ( void ) [protected]

得られた候補から最も期待に近いと思われるものを 選び出す．(初期選択位置決定のため)

戻り値:
選択されたアイテムのindex

CDlgTagJumpList.cpp の 637 行で定義されています。

参照先 CSortedTagJumpList::GetCount()・CSortedTagJumpList::GetPtr()・m_cList・m_pszFileName・NULL・stricmp.

void CDlgTagJumpList::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgTagJumpList.cpp の 184 行で定義されています。

参照先 _MAX_PATH・CRecent::EasyCreate()・CRecent::GetItem()・CRecent::GetItemCount()・IDC_CHECK_ANYWHERE・IDC_CHECK_ICASE・IDC_KEYWORD・DLLSHAREDATA::m_bTagJumpAnyWhere・m_bTagJumpAnyWhere・DLLSHAREDATA::m_bTagJumpICase・m_bTagJumpICase・CDialog::m_hWnd・CDialog::m_lParam・CDialog::m_pShareData・m_pszKeyword・NULL・RECENT_FOR_TAGJUMP_KEYWORD.

void CDlgTagJumpList::SetFileName ( const char * pszFileName )

与えられたファイル名と，そこに含まれるディレクトリの深さを設定する．

CDlgTagJumpList.cpp の 600 行で定義されています。

参照先 _MAX_PATH・CalcDirectoryDepth()・m_nLoop・m_pszFileName・NULL.

参照元 CEditView::Command_TagJumpByTagsFile()・CEditView::Command_TagJumpByTagsFileKeyword().

void CDlgTagJumpList::SetKeyword ( const char * pszKeyword )

検索キーワードの設定

CDlgTagJumpList.cpp の 619 行で定義されています。

参照先 m_pszKeyword・NULL.

参照元 CEditView::Command_TagJumpByTagsFileKeyword()・GetData().

void CDlgTagJumpList::StartTimer ( void ) [protected]

タイマー開始

キーワード指定時，一定期間文字入力がなければリストを更新するため 「一定期間」を計るタイマーが必要

作者:
MIK
日付:
2005.03.31 新規作成

CDlgTagJumpList.cpp の 149 行で定義されています。

参照先 CDialog::m_hWnd・m_nTimerId・NULL・StopTimer()・TAGJUMP_TIMER_DELAY.

参照元 OnBnClicked()・OnCbnEditChange()・OnCbnSelChange().

void CDlgTagJumpList::StopTimer ( void ) [protected]

タイマー停止

作者:
MIK
日付:
2005.03.31 新規作成

CDlgTagJumpList.cpp の 132 行で定義されています。

参照先 CDialog::m_hWnd・m_nTimerId.

参照元 DoModal()・OnBnClicked()・OnNotify()・OnTimer()・StartTimer()・~CDlgTagJumpList().

void CDlgTagJumpList::UpdateData ( void ) [protected]

Jump候補の更新

日付:
2005.03.31 MIK ダイアログOpen時以外にも更新が必要なためSetData()より分離

CDlgTagJumpList.cpp の 221 行で定義されています。

参照先 CSortedTagJumpList::GetCount()・GetNameByType()・CSortedTagJumpList::GetPtr()・IDC_LIST_TAGJUMP・m_cList・CDialog::m_hWnd・NULL.

参照元 OnTimer().

変数

BOOL CDlgTagJumpList::m_bTagJumpAnyWhere [private]

文字列の途中にマッチ

CDlgTagJumpList.h の 118 行で定義されています。

参照元 find_key()・GetData()・OnBnClicked()・SetData().

BOOL CDlgTagJumpList::m_bTagJumpICase [private]

大文字小文字を同一視

CDlgTagJumpList.h の 117 行で定義されています。

参照元 find_key()・GetData()・OnBnClicked()・SetData().

CSortedTagJumpList CDlgTagJumpList::m_cList [private]

タグジャンプ情報

CDlgTagJumpList.h の 115 行で定義されています。

参照元 AddParam()・Empty()・find_key()・GetData()・GetSelectedParam()・OnNotify()・SearchBestTag()・UpdateData().

int CDlgTagJumpList::m_nIndex [private]

選択された要素番号

CDlgTagJumpList.h の 111 行で定義されています。

参照元 AddParam()・Empty()・GetData()・GetSelectedParam()・OnNotify().

int CDlgTagJumpList::m_nLoop [private]

さかのぼれる階層数

CDlgTagJumpList.h の 114 行で定義されています。

参照元 find_key()・SetFileName()・~CDlgTagJumpList().

UINT CDlgTagJumpList::m_nTimerId [private]

タイマ番号

CDlgTagJumpList.h の 116 行で定義されています。

参照元 StartTimer()・StopTimer().

char* CDlgTagJumpList::m_pszFileName [private]

編集中のファイル名

CDlgTagJumpList.h の 112 行で定義されています。

参照元 SearchBestTag()・SetFileName()・~CDlgTagJumpList().

char* CDlgTagJumpList::m_pszKeyword [private]

キーワード(DoModalのlParam!=0を指定した場合に指定できる)

CDlgTagJumpList.h の 113 行で定義されています。

参照元 GetData()・SetData()・SetKeyword()・~CDlgTagJumpList().

このクラスの説明は次のファイルから生成されました:
  • CDlgTagJumpList.h
  • CDlgTagJumpList.cpp
Sakura-Editorに対してSat Oct 27 02:34:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgTagJumpList メンバ一覧

これは全メンバの一覧です。CDlgTagJumpList継承メンバも含んでいます。

AddParam(char *s0, char *s1, int n2, char *s3, char *s4, int depth) | CDlgTagJumpList |
CDialog() | CDialog |
CDlgTagJumpList() | CDlgTagJumpList |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM) | CDlgTagJumpList |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
Empty(void) | CDlgTagJumpList | [protected]
find_key(const char *keyword) | CDlgTagJumpList | [protected]
GetData(void) | CDlgTagJumpList | [protected, virtual]
GetFileName(void) | CDlgTagJumpList | [protected]
GetFilePath(void) | CDlgTagJumpList | [inline, protected]
GetHelpIdTable(void) | CDlgTagJumpList | [protected, virtual]
GetNameByType(const char type, const char *name) | CDlgTagJumpList | [protected]
GetSelectedParam(char *s0, char *s1, int *n2, char *s3, char *s4, int *depth) | CDlgTagJumpList |
m_bInited | CDialog |
m_bModal | CDialog |
m_bTagJumpAnyWhere | CDlgTagJumpList | [private]
m_bTagJumpICase | CDlgTagJumpList | [private]
m_cList | CDlgTagJumpList | [private]
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nIndex | CDlgTagJumpList | [private]
m_nLoop | CDlgTagJumpList | [private]
m_nShowCmd | CDialog |
m_nTimerId | CDlgTagJumpList | [private]
m_nWidth | CDialog |
m_pShareData | CDialog |
m_pszFileName | CDlgTagJumpList | [private]
m_pszKeyword | CDlgTagJumpList | [private]
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgTagJumpList | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDlgTagJumpList | [protected, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDlgTagJumpList | [protected, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDlgTagJumpList | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDlgTagJumpList | [protected, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDlgTagJumpList | [protected, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SearchBestTag(void) | CDlgTagJumpList | [protected]
SetData(void) | CDlgTagJumpList | [protected, virtual]
SetFileName(const char *pszFileName) | CDlgTagJumpList |
SetKeyword(const char *pszKeyword) | CDlgTagJumpList |
StartTimer(void) | CDlgTagJumpList | [protected]
StopTimer(void) | CDlgTagJumpList | [protected]
UpdateData(void) | CDlgTagJumpList | [protected]
~CDialog() | CDialog | [virtual]
~CDlgTagJumpList() | CDlgTagJumpList |

Sakura-Editorに対してSat Oct 27 02:34:44 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgTagsMake

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgTagsMake

タグファイル作成ダイアログボックス [詳細]

#include <CDlgTagsMake.h>

CDlgTagsMakeに対する継承グラフ

[凡例]
CDlgTagsMakeのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgTagsMake ()
int | DoModal (HINSTANCE, HWND, LPARAM, const char *)

Public 変数

char | m_szPath [_MAX_PATH+1]
char | m_szTagsCmdLine [_MAX_PATH]
int | m_nTagsOpt

Protected メソッド

BOOL | OnBnClicked (int)
LPVOID | GetHelpIdTable (void)
void | SetData (void)
int | GetData (void)

Private メソッド

void | SelectFolder (HWND hwndDlg)

説明

タグファイル作成ダイアログボックス

CDlgTagsMake.h の 40 行で定義されています。

コンストラクタとデストラクタ

CDlgTagsMake::CDlgTagsMake ( )

CDlgTagsMake.cpp の 56 行で定義されています。

参照先 m_nTagsOpt・m_szPath・m_szTagsCmdLine.

関数

int CDlgTagsMake::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM | ,
 |  | const char * |
 | ) |

CDlgTagsMake.cpp の 65 行で定義されています。

参照先 CDialog::DoModal()・IDD_TAG_MAKE・m_szPath.

int CDlgTagsMake::GetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgTagsMake.cpp の 152 行で定義されています。

参照先 IDC_CHECK_TAG_MAKE_RECURSE・IDC_EDIT_TAG_MAKE_CMDLINE・IDC_EDIT_TAG_MAKE_FOLDER・CDialog::m_hWnd・DLLSHAREDATA::m_nTagsOpt・m_nTagsOpt・CDialog::m_pShareData・m_szPath・DLLSHAREDATA::m_szTagsCmdLine・m_szTagsCmdLine・TRUE.

参照元 OnBnClicked().

LPVOID CDlgTagsMake::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgTagsMake.cpp の 174 行で定義されています。

参照先 p_helpids.

BOOL CDlgTagsMake::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgTagsMake.cpp の 77 行で定義されています。

参照先 F_TAGS_MAKE・FALSE・FuncID_To_HelpContextID()・GetData()・IDC_BUTTON_HELP・IDC_BUTTON_TAG_MAKE_REF・CDialog::m_hWnd・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・SelectFolder()・TRUE.

void CDlgTagsMake::SelectFolder ( HWND hwndDlg ) [private]

フォルダを選択する

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル

CDlgTagsMake.cpp の 110 行で定義されています。

参照先 _MAX_PATH・IDC_EDIT_TAG_MAKE_FOLDER・SelectDir().

参照元 OnBnClicked().

void CDlgTagsMake::SetData ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgTagsMake.cpp の 132 行で定義されています。

参照先 IDC_CHECK_TAG_MAKE_RECURSE・IDC_EDIT_TAG_MAKE_CMDLINE・IDC_EDIT_TAG_MAKE_FOLDER・CDialog::m_hWnd・DLLSHAREDATA::m_nTagsOpt・m_nTagsOpt・CDialog::m_pShareData・m_szPath・m_szTagsCmdLine・DLLSHAREDATA::m_szTagsCmdLine・TRUE.

変数

int CDlgTagsMake::m_nTagsOpt

CDlgTagsMake.h の 55 行で定義されています。

参照元 CDlgTagsMake()・GetData()・SetData().

char CDlgTagsMake::m_szPath[_MAX_PATH+1]

CDlgTagsMake.h の 53 行で定義されています。

参照元 CDlgTagsMake()・DoModal()・GetData()・SetData().

char CDlgTagsMake::m_szTagsCmdLine[_MAX_PATH]

CDlgTagsMake.h の 54 行で定義されています。

参照元 CDlgTagsMake()・GetData()・SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgTagsMake.h
  • CDlgTagsMake.cpp
Sakura-Editorに対してSat Oct 27 02:34:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgTagsMake メンバ一覧

これは全メンバの一覧です。CDlgTagsMake継承メンバも含んでいます。

CDialog() | CDialog |
CDlgTagsMake() | CDlgTagsMake |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, LPARAM, const char *) | CDlgTagsMake |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgTagsMake | [protected, virtual]
GetHelpIdTable(void) | CDlgTagsMake | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nShowCmd | CDialog |
m_nTagsOpt | CDlgTagsMake |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_szPath | CDlgTagsMake |
m_szTagsCmdLine | CDlgTagsMake |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgTagsMake | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SelectFolder(HWND hwndDlg) | CDlgTagsMake | [private]
SetData(void) | CDlgTagsMake | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:47 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgTypeList

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgTypeList

ファイルタイプ一覧ダイアログ [詳細]

#include <CDlgTypeList.h>

CDlgTypeListに対する継承グラフ

[凡例]
CDlgTypeListのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

int | DoModal (HINSTANCE, HWND, int *)

Public 変数

int | m_nSettingType

Protected メソッド

BOOL | OnLbnDblclk (int)
BOOL | OnBnClicked (int)
void | SetData ()
LPVOID | GetHelpIdTable (void)

説明

ファイルタイプ一覧ダイアログ

CDlgTypeList.h の 29 行で定義されています。

関数

int CDlgTypeList::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | int * |
 | ) |

CDlgTypeList.cpp の 38 行で定義されています。

参照先 CDialog::DoModal()・FALSE・IDD_TYPELIST・m_nSettingType・NULL・TRUE.

参照元 CEditView::Command_TYPE_LIST().

LPVOID CDlgTypeList::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgTypeList.cpp の 118 行で定義されています。

参照先 p_helpids.

BOOL CDlgTypeList::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgTypeList.cpp の 65 行で定義されています。

参照先 F_TYPE_LIST・FuncID_To_HelpContextID()・IDC_BUTTON_HELP・IDC_BUTTON_TEMPCHANGE・IDC_LIST_TYPES・CDialog::m_hWnd・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・PROP_TEMPCHANGE_FLAG・TRUE.

BOOL CDlgTypeList::OnLbnDblclk ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgTypeList.cpp の 52 行で定義されています。

参照先 FALSE・IDC_LIST_TYPES・CDialog::m_hWnd・PROP_TEMPCHANGE_FLAG・TRUE.

void CDlgTypeList::SetData ( ) [protected, virtual]

CDialogを再定義しています。

CDlgTypeList.cpp の 94 行で定義されています。

参照先 IDC_LIST_TYPES・CDialog::m_hWnd・CDialog::m_pShareData・Types::m_szTypeExts・Types::m_szTypeName・DLLSHAREDATA::m_Types・MAX_TYPES.

変数

int CDlgTypeList::m_nSettingType

CDlgTypeList.h の 34 行で定義されています。

参照元 DoModal().

このクラスの説明は次のファイルから生成されました:
  • CDlgTypeList.h
  • CDlgTypeList.cpp
Sakura-Editorに対してSat Oct 27 02:34:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgTypeList メンバ一覧

これは全メンバの一覧です。CDlgTypeList継承メンバも含んでいます。

CDialog() | CDialog |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int *) | CDlgTypeList |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CDlgTypeList | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nSettingType | CDlgTypeList |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_pShareData | CDialog |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgTypeList | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int) | CDlgTypeList | [protected, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
SetData() | CDlgTypeList | [protected, virtual]
~CDialog() | CDialog | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDlgWinSize

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDlgWinSize

位置と大きさの設定ダイアログ [詳細]

#include <CDlgWinSize.h>

CDlgWinSizeに対する継承グラフ

[凡例]
CDlgWinSizeのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDlgWinSize ()
~CDlgWinSize ()
int | DoModal (HINSTANCE, HWND, int &, int &, int &, RECT &)
モーダルダイアログの表示

Protected メソッド

BOOL | OnInitDialog (HWND, WPARAM, LPARAM)
BOOL | OnBnClicked (int)
int | GetData (void)
void | SetData (void)
ダイアログボックスにデータを設定
LPVOID | GetHelpIdTable (void)
void | RenewItemState (void)

Protected 変数

int | m_nSaveWinSize
ウィンドウサイズの保存: 0/デフォルト，1/継承，2/指定
int | m_nSaveWinPos
ウィンドウ位置の保存: 0/デフォルト，1/継承，2/指定
int | m_nWinSizeType
ウィンドウ表示方法: 0/標準，1/最大化，2/最小化
RECT | m_rc

説明

位置と大きさの設定ダイアログ

共通設定のウィンドウ設定で，ウィンドウ位置を指定するために補助的に 使用されるダイアログボックス

CDlgWinSize.h の 41 行で定義されています。

コンストラクタとデストラクタ

CDlgWinSize::CDlgWinSize ( )

CDlgWinSize.cpp の 55 行で定義されています。

CDlgWinSize::~CDlgWinSize ( )

CDlgWinSize.cpp の 60 行で定義されています。

関数

int CDlgWinSize::DoModal | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | int & | ,
 |  | int & | ,
 |  | int & | ,
 |  | RECT & |
 | ) |

モーダルダイアログの表示

CDlgWinSize.cpp の 72 行で定義されています。

参照先 CDialog::DoModal()・IDD_WINPOSSIZE・m_nSaveWinPos・m_nSaveWinSize・m_nWinSizeType・m_rc・NULL・TRUE.

参照元 CPropCommon::DispatchEvent_PROP_WIN().

int CDlgWinSize::GetData ( void ) [protected, virtual]

ダイアログボックスのデータを読み出す

CDialogを再定義しています。

CDlgWinSize.cpp の 178 行で定義されています。

参照先 IDC_COMBO_WINTYPE・IDC_EDIT_SX・IDC_EDIT_SY・IDC_EDIT_WX・IDC_EDIT_WY・IDC_RADIO_WINPOS_DEF・IDC_RADIO_WINPOS_SAVE・IDC_RADIO_WINPOS_SET・IDC_RADIO_WINSIZE_DEF・IDC_RADIO_WINSIZE_SAVE・IDC_RADIO_WINSIZE_SET・CDialog::m_hWnd・m_nSaveWinPos・m_nSaveWinSize・m_nWinSizeType・m_rc・NULL・TRUE.

参照元 OnBnClicked().

LPVOID CDlgWinSize::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CDlgWinSize.cpp の 243 行で定義されています。

参照先 p_helpids.

BOOL CDlgWinSize::OnBnClicked ( int ) [protected, virtual]

CDialogを再定義しています。

CDlgWinSize.cpp の 109 行で定義されています。

参照先 GetData()・HLP000286・IDC_BUTTON_HELP・IDC_RADIO_WINPOS_DEF・IDC_RADIO_WINPOS_SAVE・IDC_RADIO_WINPOS_SET・IDC_RADIO_WINSIZE_DEF・IDC_RADIO_WINSIZE_SAVE・IDC_RADIO_WINSIZE_SET・CDialog::m_hWnd・CDialog::m_szHelpFile・MyWinHelp()・CDialog::OnBnClicked()・RenewItemState()・TRUE.

BOOL CDlgWinSize::OnInitDialog | ( | HWND | hwndDlg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected, virtual]

初期化処理

CDialogを再定義しています。

CDlgWinSize.cpp の 89 行で定義されています。

参照先 IDC_COMBO_WINTYPE・IDC_SPIN_SX・IDC_SPIN_SY・IDC_SPIN_WX・IDC_SPIN_WY・CDialog::m_hWnd・CDialog::OnInitDialog().

void CDlgWinSize::RenewItemState ( void ) [protected]

利用可能・不可の状態を更新する

CDlgWinSize.cpp の 222 行で定義されています。

参照先 BOOL・FALSE・IDC_EDIT_WX・IDC_EDIT_WY・IDC_RADIO_WINPOS_SET・IDC_RADIO_WINSIZE_SET・CDialog::m_hWnd・TRUE.

参照元 OnBnClicked()・SetData().

void CDlgWinSize::SetData ( void ) [protected, virtual]

ダイアログボックスにデータを設定

CDialogを再定義しています。

CDlgWinSize.cpp の 132 行で定義されています。

参照先 IDC_COMBO_WINTYPE・IDC_EDIT_SX・IDC_EDIT_SY・IDC_EDIT_WX・IDC_EDIT_WY・IDC_RADIO_WINPOS_DEF・IDC_RADIO_WINPOS_SAVE・IDC_RADIO_WINPOS_SET・IDC_RADIO_WINSIZE_DEF・IDC_RADIO_WINSIZE_SAVE・IDC_RADIO_WINSIZE_SET・CDialog::m_hWnd・m_nSaveWinPos・m_nSaveWinSize・m_nWinSizeType・m_rc・RenewItemState()・TRUE.

変数

int CDlgWinSize::m_nSaveWinPos [protected]

ウィンドウ位置の保存: 0/デフォルト，1/継承，2/指定

CDlgWinSize.h の 59 行で定義されています。

参照元 DoModal()・GetData()・SetData().

int CDlgWinSize::m_nSaveWinSize [protected]

ウィンドウサイズの保存: 0/デフォルト，1/継承，2/指定

CDlgWinSize.h の 58 行で定義されています。

参照元 DoModal()・GetData()・SetData().

int CDlgWinSize::m_nWinSizeType [protected]

ウィンドウ表示方法: 0/標準，1/最大化，2/最小化

CDlgWinSize.h の 60 行で定義されています。

参照元 DoModal()・GetData()・SetData().

RECT CDlgWinSize::m_rc [protected]

CDlgWinSize.h の 61 行で定義されています。

参照元 DoModal()・GetData()・SetData().

このクラスの説明は次のファイルから生成されました:
  • CDlgWinSize.h
  • CDlgWinSize.cpp
Sakura-Editorに対してSat Oct 27 02:34:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDlgWinSize メンバ一覧

これは全メンバの一覧です。CDlgWinSize継承メンバも含んでいます。

CDialog() | CDialog |
CDlgWinSize() | CDlgWinSize |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoModal(HINSTANCE, HWND, int &, int &, int &, RECT &) | CDlgWinSize |
CDialog::DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDlgWinSize | [protected, virtual]
GetHelpIdTable(void) | CDlgWinSize | [protected, virtual]
m_bInited | CDialog |
m_bModal | CDialog |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nHeight | CDialog |
m_nSaveWinPos | CDlgWinSize | [protected]
m_nSaveWinSize | CDlgWinSize | [protected]
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_nWinSizeType | CDlgWinSize | [protected]
m_pShareData | CDialog |
m_rc | CDlgWinSize | [protected]
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int) | CDlgWinSize | [protected, virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CDialog | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM, LPARAM) | CDlgWinSize | [protected, virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnLbnDblclk(int wID) | CDialog | [inline, virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
RenewItemState(void) | CDlgWinSize | [protected]
SetData(void) | CDlgWinSize | [protected, virtual]
~CDialog() | CDialog | [virtual]
~CDlgWinSize() | CDlgWinSize |

Sakura-Editorに対してSat Oct 27 02:34:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDllHandler

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDllHandler

DLLの動的なLoad/Unloadを行うためのクラス [詳細]

#include <CDllHandler.h>

CDllHandlerに対する継承グラフ

[凡例]
すべてのメンバ一覧

Public メソッド

CDllHandler ()
virtual | ~CDllHandler ()
virtual bool | IsAvailable (void) const
利用状態のチェック
int | LoadLibrary (const char *str=NULL)
DLLのロード
int | FreeLibrary (bool force=false)
DLLのアンロード
bool | operator! (void) const
利用状態のチェック（operator版）
bool | Init (const char *str=NULL)
DLLのロード
HINSTANCE | GetInstance () const
インスタンスハンドルの取得

Protected メソッド

virtual int | InitDll (void)=0
DLLの初期化
virtual int | DeinitDll (void)
関数の初期化
virtual LPCTSTR | GetDllName (LPCTSTR)
DLLファイル名の取得
virtual LPCTSTR | GetDllNameInOrder (LPCTSTR str, int index)
DLLファイル名の取得(複数を順次)
bool | RegisterEntries (const ImportTable table[])

Private 変数

HINSTANCE | m_hInstance

構成

struct | ImportTable

説明

DLLの動的なLoad/Unloadを行うためのクラス

作者:
genta
日付:
Jun. 10, 2001

Apr. 15, 2002 genta RegisterEntriesの追加。

CDllHandler.h の 44 行で定義されています。

コンストラクタとデストラクタ

CDllHandler::CDllHandler ( )

CDllHandler.cpp の 34 行で定義されています。

CDllHandler::~CDllHandler ( ) [virtual]

オブジェクト消滅前にDLLが読み込まれた状態であればDLLの解放を行う．

CDllHandler.cpp の 41 行で定義されています。

参照先 FreeLibrary()・IsAvailable().

関数

int CDllHandler::DeinitDll ( void ) [protected, virtual]

関数の初期化

DLLのアンロードを行う直前に呼び出される．メモリの解放などを 行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外を返したときはDLLのUnloadは行われない．
注意
デストラクタからFreeLibrary及びDeinitDllが呼び出されたときは ポリモーフィズムが行われないためにサブクラスのDeinitDllが呼び出されない。 そのため、サブクラスのデストラクタではDeinitDllを明示的に呼び出す必要がある。
FreeLibraryがデストラクタ以外から呼び出される場合はDeinitDllは仮想関数として サブクラスのものが呼び出され、デストラクタは当然呼び出されないので DeinitDllそのものは必要である。

デストラクタからDeinitDllを呼ぶときは、初期化されているという保証がないので 呼び出し前にIsAvailableによる確認を必ず行うこと。

日付:
2002.04.15 genta 注意書き追加

CBregexp・CPPAで再定義されています。

CDllHandler.cpp の 96 行で定義されています。

参照元 FreeLibrary().

int CDllHandler::FreeLibrary ( bool force = false )

DLLのアンロード

引数:
force [in] 終了処理に失敗してもDLLを解放するかどうか

CDllHandler.cpp の 79 行で定義されています。

参照先 DeinitDll()・IsAvailable()・m_hInstance・NULL.

参照元 ~CDllHandler().

LPCTSTR CDllHandler::GetDllName ( LPCTSTR ) [protected, virtual]

DLLファイル名の取得

日付:
2001.07.05 genta 引数追加。パスの指定などに使える

2007.06.25 genta GetDllNameInOrderを使用する場合は必須ではないので， 純粋仮想関数はやめてプレースホルダーを用意する．

CPPA・CUxThemeで再定義されています。

CDllHandler.cpp の 124 行で定義されています。

参照先 NULL.

参照元 GetDllNameInOrder().

LPCTSTR CDllHandler::GetDllNameInOrder | ( | LPCTSTR | str,
 |  | int | index
 | ) | [protected, virtual]

DLLファイル名の取得(複数を順次)

DLLファイル名として複数の可能性があり，そのうちの一つでも 見つかったものを使用する場合に対応する．

番号に応じてそれぞれ異なるファイル名を返すことができる． LoadLibrary()からはcounterを0から1ずつ増加させて順に呼びだされる． それはDLLのロードに成功する(成功)か，戻り値としてNULLを返す(失敗) まで続けられる．

デフォルトの実装はcounterが0の場合だけGetDllName()を呼びだし， それ以外ではNULLを返す．

引数:
[in] | str | LoadLibrary()に渡された文字列がそのまま渡される
[in] | index | インデックス．(0～)
戻り値:
引数に応じてDLL名(LoadLibraryに渡す文字列)，またはNULL．

CBregexpで再定義されています。

CDllHandler.cpp の 129 行で定義されています。

参照先 GetDllName()・NULL.

参照元 LoadLibrary().

HINSTANCE CDllHandler::GetInstance ( ) const [inline]

インスタンスハンドルの取得

CDllHandler.h の 82 行で定義されています。

参照元 CHtmlHelp::InitDll()・CBregexp::InitDll()・RegisterEntries().

bool CDllHandler::Init ( const char * str = NULL ) [inline]

DLLのロード

詳細な戻り値を返さないこと以外はLoadLibrary()と同じ

CDllHandler.h の 79 行で定義されています。

参照元 CEditView::CEditView()・CRegexKeyword::CRegexKeyword()・CPPAMacroMgr::declare()・CUxTheme::Init()・InitRegexp()・CEditView::ISearchEnter()・OpenHtmlHelp()・CPropCommon::SetRegexpVersion().

virtual int CDllHandler::InitDll ( void ) [protected, pure virtual]

DLLの初期化

DLLのロードに成功した直後に呼び出される．エントリポイントの 確認などを行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外の値を返した場合は、読み込んだDLLを解放する．

CBregexp・CHtmlHelp・CMigemo・CPPA・CUxThemeで実装されています。

virtual bool CDllHandler::IsAvailable ( void ) const [inline, virtual]

利用状態のチェック

DLLの関数を呼び出せるか状態どうか

戻り値:
true | 利用可能
false | 利用不能

CDllHandler.h の 56 行で定義されています。

参照先 NULL.

参照元 CBregexp::Compile()・FreeLibrary()・CPPA::GetVersion()・CBregexp::GetVersion()・CUxTheme::Init()・CEditView::ISearchEnter()・LoadLibrary()・CBregexp::Match()・CMigemo::migemo_close()・CMigemo::migemo_get_operator()・CMigemo::migemo_is_enable()・CMigemo::migemo_load()・CMigemo::migemo_open()・CMigemo::migemo_query()・CMigemo::migemo_release()・CMigemo::migemo_set_operator()・CMigemo::migemo_setproc_char2int()・CMigemo::migemo_setproc_int2char()・CRegexKeyword::RegexIsKeyword()・CRegexKeyword::RegexKeyCompile()・CRegexKeyword::RegexKeyLineStart()・CBregexp::Replace()・~CDllHandler()・CPPA::~CPPA()・CRegexKeyword::~CRegexKeyword().

int CDllHandler::LoadLibrary ( const char * str = NULL )

DLLのロード

戻り値:
0 | 正常終了。DLLがロードされた。
other | 異常終了。DLLはロードされなかった。
日付:
2001.07.05 genta 引数追加。パスの指定などに使える

2007.06.25 genta GetDllNameInOrderを使うように実装を変更．

CDllHandler.cpp の 48 行で定義されています。

参照先 GetDllNameInOrder()・IsAvailable()・m_hInstance・NULL.

bool CDllHandler::operator! ( void ) const [inline]

利用状態のチェック（operator版）

CDllHandler.h の 73 行で定義されています。

bool CDllHandler::RegisterEntries ( const ImportTable table[] ) [protected]

テーブルで与えられたエントリポインタアドレスを入れる場所に 対応する文字列から調べたエントリポインタを設定する。

引数:
table [in] 名前とアドレスの対応表。最後は{NULL,0}で終わること。
戻り値:
true | 全てのアドレスが設定された。
false | アドレスの取得に失敗した関数があった。

CDllHandler.cpp の 109 行で定義されています。

参照先 GetInstance()・NULL・CDllHandler::ImportTable::proc.

参照元 CUxTheme::InitDll()・CPPA::InitDll()・CMigemo::InitDll()・CBregexp::InitDll().

変数

HINSTANCE CDllHandler::m_hInstance [private]

CDllHandler.h の 162 行で定義されています。

参照元 FreeLibrary()・LoadLibrary().

このクラスの説明は次のファイルから生成されました:
  • CDllHandler.h
  • CDllHandler.cpp
Sakura-Editorに対してSat Oct 27 02:34:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDllHandler メンバ一覧

これは全メンバの一覧です。CDllHandler継承メンバも含んでいます。

CDllHandler() | CDllHandler |
DeinitDll(void) | CDllHandler | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
Init(const char *str=NULL) | CDllHandler | [inline]
InitDll(void)=0 | CDllHandler | [protected, pure virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
LoadLibrary(const char *str=NULL) | CDllHandler |
m_hInstance | CDllHandler | [private]
operator!(void) const | CDllHandler | [inline]
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
~CDllHandler() | CDllHandler | [virtual]

Sakura-Editorに対してSat Oct 27 02:34:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 CDllHandler::ImportTable

  • 構成
  • クラス階層
  • 構成メンバ
CDllHandler::ImportTable

構造体 CDllHandler::ImportTable

#include <CDllHandler.h>

すべてのメンバ一覧

Public 変数

void * | proc
const char * | name

説明

アドレスとエントリ名の対応表。RegisterEntriesで使われる。
作者:
YAZAKI
日付:
2002.01.26

CDllHandler.h の 90 行で定義されています。

変数

const char* CDllHandler::ImportTable::name

CDllHandler.h の 93 行で定義されています。

void* CDllHandler::ImportTable::proc

CDllHandler.h の 92 行で定義されています。

参照元 CDllHandler::RegisterEntries().

この構造体の説明は次のファイルから生成されました:
  • CDllHandler.h
Sakura-Editorに対してSat Oct 27 02:34:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDllHandler::ImportTable メンバ一覧

これは全メンバの一覧です。CDllHandler::ImportTable継承メンバも含んでいます。

name | CDllHandler::ImportTable
proc | CDllHandler::ImportTable

Sakura-Editorに対してSat Oct 27 02:34:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDocLine

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDocLine

文書データ1行 [詳細]

#include <CDocLine.h>

CDocLineのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDocLine ()
~CDocLine ()
bool | IsModifyed (void) const
void | SetModifyFlg (bool bFlg)
bool | IsBookMarked (void) const
void | SetBookMark (bool bFlg)
int | IsDiffMarked (void) const
void | SetDiffMark (int type)
bool | IsEmptyLine (void)
int | GetLengthWithoutEOL (void) const
char * | GetPtr (void) const
int | GetLength (void) const
int | GetIndent (void) const

Public 変数

CDocLine * m_pPrev
CDocLine * m_pNext
CMemory * m_pLine
CEOL m_cEol
unsigned | m_bModify: 1
unsigned | m_bBookMark: 1
unsigned | m_bDiffMark: 3

Protected 変数

union {
unsigned char m_bAllMark
struct Mark_tag {
unsigned m_bModify: 1
unsigned m_bBookMark: 1
unsigned m_bDiffMark: 3
} m_bMarkArray
} m_bMark

説明

文書データ1行

CDocLine.h の 34 行で定義されています。

コンストラクタとデストラクタ

CDocLine::CDocLine ( )

CDocLine.cpp の 19 行で定義されています。

参照先 m_bMark.

CDocLine::~CDocLine ( )

CDocLine.cpp の 28 行で定義されています。

参照先 m_pLine.

関数

int CDocLine::GetIndent ( void ) const [inline]

CDocLine.h の 62 行で定義されています。

int CDocLine::GetLength ( void ) const [inline]

CDocLine.h の 61 行で定義されています。

参照先 CMemory::GetLength()・m_pLine.

参照元 CEditView::ISearchExec().

int CDocLine::GetLengthWithoutEOL ( void ) const [inline]

CDocLine.h の 59 行で定義されています。

参照先 CEOL::GetLen()・CMemory::GetLength()・m_cEol・m_pLine.

参照元 CDocLineMgr::GetAllData()・CDocLineMgr::GetLineStrWithoutEOL()・IsEmptyLine().

char* CDocLine::GetPtr ( void ) const [inline]

CDocLine.h の 60 行で定義されています。

参照先 CMemory::GetPtr()・m_pLine.

参照元 CEditView::DrawCaretPosInfo()・IsEmptyLine().

bool CDocLine::IsBookMarked ( void ) const [inline]

CDocLine.h の 52 行で定義されています。

参照先 m_bMark.

参照元 CEditView::Command_BOOKMARK_SET()・CDocLineMgr::GetBookMarks()・CDocLineMgr::InsertData_CDocLineMgr()・CEditDoc::MakeFuncList_BookMark()・CDocLineMgr::MarkSearchWord()・CDocLineMgr::SearchBookMark().

int CDocLine::IsDiffMarked ( void ) const [inline]

CDocLine.h の 55 行で定義されています。

参照先 m_bMark.

参照元 CDocLineMgr::SearchDiffMark().

bool CDocLine::IsEmptyLine ( void )

CDocLine.cpp の 40 行で定義されています。

参照先 GetLengthWithoutEOL()・GetPtr().

参照元 CEditView::Command_GONEXTPARAGRAPH()・CEditView::Command_GOPREVPARAGRAPH().

bool CDocLine::IsModifyed ( void ) const [inline]

CDocLine.h の 49 行で定義されています。

参照先 m_bMark.

参照元 CEditView::DispLineNumber().

void CDocLine::SetBookMark ( bool bFlg ) [inline]

CDocLine.h の 53 行で定義されています。

参照先 m_bMark.

参照元 CEditView::Command_BOOKMARK_SET()・CDocLineMgr::InsertData_CDocLineMgr()・CDocLineMgr::MarkSearchWord()・CDocLineMgr::ResetAllBookMark()・CDocLineMgr::SetBookMarks().

void CDocLine::SetDiffMark ( int type ) [inline]

CDocLine.h の 56 行で定義されています。

参照先 m_bMark.

参照元 CDocLineMgr::ResetAllDiffMark()・CDocLineMgr::SetDiffMarkRange().

void CDocLine::SetModifyFlg ( bool bFlg ) [inline]

CDocLine.h の 50 行で定義されています。

参照先 m_bMark.

参照元 CDocLineMgr::DeleteData_CDocLineMgr()・CDocLineMgr::InsertData_CDocLineMgr()・CDocLineMgr::ResetAllModifyFlag().

変数

unsigned char CDocLine::m_bAllMark [protected]

CDocLine.h の 66 行で定義されています。

unsigned CDocLine::m_bBookMark

CDocLine.h の 69 行で定義されています。

unsigned CDocLine::m_bDiffMark

CDocLine.h の 70 行で定義されています。

union { ... } CDocLine::m_bMark [protected]

参照元 CDocLine()・IsBookMarked()・IsDiffMarked()・IsModifyed()・SetBookMark()・SetDiffMark()・SetModifyFlg().

struct { ... } ::Mark_tag CDocLine::m_bMarkArray [protected]

unsigned CDocLine::m_bModify

CDocLine.h の 68 行で定義されています。

CEOL CDocLine::m_cEol

行末コード

CDocLine.h の 47 行で定義されています。

参照元 CDocLineMgr::AddLineStrX()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_SORT()・CLayoutMgr::CreateLayout()・CDocLineMgr::DeleteData_CDocLineMgr()・CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range()・CDocLineMgr::DUMP()・GetLengthWithoutEOL()・CDocLineMgr::InsertData_CDocLineMgr()・CEditView::SetReconvertStruct()・CDocLineMgr::WriteFile().

CMemory* CDocLine::m_pLine

データ

CDocLine.h の 46 行で定義されています。

参照元 CDocLineMgr::AddLineStrX()・CLayoutMgr::CaretPos_Phys2Log()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_SEARCH_PREV()・CLayoutMgr::CreateLayout()・CDocLineMgr::DeleteData_CDocLineMgr()・CEditView::DispLineNew()・CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range()・CDocLineMgr::DUMP()・CDocLineMgr::GetAllData()・CEditView::GetColorIndex()・CDocLineMgr::GetFirstLinrStr()・GetLength()・GetLengthWithoutEOL()・CLayoutMgr::GetLineStr()・CDocLineMgr::GetLineStr()・CDocLineMgr::GetLineStrWithoutEOL()・CDocLineMgr::GetNextLinrStr()・CLayout::GetPtr()・GetPtr()・CDocLineMgr::InsertData_CDocLineMgr()・CDocLineMgr::MarkSearchWord()・CEditView::OnPaint()・CDocLineMgr::PrevOrNextWord()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・CDocLineMgr::SearchWord()・CEditView::SetReconvertStruct()・CDocLineMgr::WhereCurrentWord()・CDocLineMgr::WriteFile()・~CDocLine().

CDocLine* CDocLine::m_pNext

一つ後の要素

CDocLine.h の 45 行で定義されています。

参照元 CDocLineMgr::AddLineStrX()・CDocLineMgr::DeleteData_CDocLineMgr()・CDocLineMgr::DeleteNode()・CDocLineMgr::DUMP()・CDocLineMgr::Empty()・CDocLineMgr::GetAllData()・CDocLineMgr::GetBookMarks()・CDocLineMgr::GetFirstLinrStr()・CDocLineMgr::GetLineInfo()・CDocLineMgr::GetNextLinrStr()・CDocLineMgr::InsertData_CDocLineMgr()・CDocLineMgr::InsertNode()・CDocLineMgr::MarkSearchWord()・CDocLineMgr::ReplaceData()・CDocLineMgr::ResetAllBookMark()・CDocLineMgr::ResetAllDiffMark()・CDocLineMgr::ResetAllModifyFlag()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・CDocLineMgr::SearchWord()・CDocLineMgr::WriteFile().

CDocLine* CDocLine::m_pPrev

一つ前の要素

CDocLine.h の 44 行で定義されています。

参照元 CDocLineMgr::AddLineStrX()・CDocLineMgr::DeleteNode()・CDocLineMgr::DUMP()・CDocLineMgr::GetLineInfo()・CDocLineMgr::InsertData_CDocLineMgr()・CDocLineMgr::InsertNode()・CDocLineMgr::ReplaceData()・CDocLineMgr::SearchBookMark()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CDocLineMgr::SearchDiffMark()・CDocLineMgr::SearchWord().

このクラスの説明は次のファイルから生成されました:
  • CDocLine.h
  • CDocLine.cpp
Sakura-Editorに対してSat Oct 27 02:34:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDocLine メンバ一覧

これは全メンバの一覧です。CDocLine継承メンバも含んでいます。

CDocLine() | CDocLine |
GetIndent(void) const | CDocLine | [inline]
GetLength(void) const | CDocLine | [inline]
GetLengthWithoutEOL(void) const | CDocLine | [inline]
GetPtr(void) const | CDocLine | [inline]
IsBookMarked(void) const | CDocLine | [inline]
IsDiffMarked(void) const | CDocLine | [inline]
IsEmptyLine(void) | CDocLine |
IsModifyed(void) const | CDocLine | [inline]
m_bAllMark | CDocLine | [protected]
m_bBookMark | CDocLine |
m_bDiffMark | CDocLine |
m_bMark | CDocLine | [protected]
m_bMarkArray | CDocLine | [protected]
m_bModify | CDocLine |
m_cEol | CDocLine |
m_pLine | CDocLine |
m_pNext | CDocLine |
m_pPrev | CDocLine |
SetBookMark(bool bFlg) | CDocLine | [inline]
SetDiffMark(int type) | CDocLine | [inline]
SetModifyFlg(bool bFlg) | CDocLine | [inline]
~CDocLine() | CDocLine |

Sakura-Editorに対してSat Oct 27 02:34:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDocLineMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDocLineMgr

#include <CDocLineMgr.h>

CDocLineMgrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDocLineMgr ()
~CDocLineMgr ()
char * | GetAllData (int *)
int | GetLineCount (void)
const char * | GetLineStr (int, int *)
const char * | GetLineStrWithoutEOL (int, int *)
const char * | GetFirstLinrStr (int *)
const char * | GetNextLinrStr (int *)
int | WhereCurrentWord (int, int, int *, int *, CMemory *, CMemory *)
int | PrevOrNextWord (int, int, int *, BOOL bLEFT, BOOL bStopsBothEnds)
int | SearchWord (int, int, const char *, int, int, int, int, int *, int *, int *, CBregexp *)
void | DUMP (void)
CDocLineMgrDEBUG用
void | ResetAllModifyFlag (void)
void | ResetAllBookMark (void)
ブックマークの全解除
int | SearchBookMark (int, int, int *)
ブックマーク検索
void | ResetAllDiffMark (void)
int | SearchDiffMark (int, int, int *)
void | SetDiffMarkRange (int nMode, int nStartLine, int nEndLine)
bool | IsDiffUse (void) const
void | MarkSearchWord (const char *, int, int, int, CBregexp *)
検索条件に該当する行にブックマークをセットする
void | SetBookMarks (char *)
物理行番号のリストからまとめて行マーク
char * | GetBookMarks (void)
行マークされてる物理行番号のリストを作る
void | Init ()
void | Empty ()
void | AddLineStrX (const char *, int, CEOL)
void | DeleteData_CDocLineMgr (int nLine, int nDelPos, int nDelLen, int *pnModLineOldFrom, int *pnModLineOldTo, int *pnDelLineOldFrom, int *pnDelLineOldNum, CMemory &cmemDeleted)
void | ReplaceData (DocLineReplaceArg *)
void | DeleteNode (CDocLine *)
void | InsertNode (CDocLine *, CDocLine *)
void | InsertData_CDocLineMgr (int nLine, int nInsPos, const char *pInsData, int nInsDataLen, int *pnInsLineNum, int *pnNewLine, int *pnNewPos)
int | ReadFile (const char *, HWND, HWND, int, FILETIME *, int extraflag, BOOL *pbBomExist=NULL)
int | WriteFile (const char *, HWND, HWND, int, FILETIME *, CEOL, BOOL bBomExist=FALSE)
CDocLine * | GetLineInfo (int)
CDocLine * | GetDocLineTop () const
CDocLine * | GetDocLineBottom () const

Static Public メソッド

static int | WhereCurrentWord_2 (const char *, int, int, int *, int *, CMemory *, CMemory *)
現在位置の単語の範囲を調べる staticメンバ
static int | WhatKindOfChar (const char *, int, int)
static int | SearchNextWordPosition (const char *pLine, int nLineLen, int nIdx, int *pnColmNew, BOOL bStopsBothEnds)
static char * | SearchString (const unsigned char *, int, int, const unsigned char *, int, int *, int)
static void | CreateCharCharsArr (const unsigned char *, int, int **)

Private 変数

CDocLine * m_pDocLineTop
CDocLine * m_pDocLineBot
CDocLine * m_pDocLineCurrent
int | m_nLines
int | m_nPrevReferLine
CDocLine * m_pCodePrevRefer
bool | m_bIsDiffUse

説明

CDocLineMgr.h の 49 行で定義されています。

コンストラクタとデストラクタ

CDocLineMgr::CDocLineMgr ( )

CDocLineMgr.cpp の 94 行で定義されています。

CDocLineMgr::~CDocLineMgr ( )

CDocLineMgr.cpp の 102 行で定義されています。

参照先 Empty().

関数

void CDocLineMgr::AddLineStrX | ( | const char * | pData,
 |  | int | nDataLen,
 |  | CEOL | cEol
 | ) |

末尾に行を追加

バージョン:
1.5
引数:
pData | [in] 追加する文字列へのポインタ
nDataLen | [in] 文字列の長さ
cEol | [in] 行末コード

CDocLineMgr.cpp の 423 行で定義されています。

参照先 CDocLine::m_cEol・m_nLines・m_pDocLineBot・m_pDocLineTop・CDocLine::m_pLine・CDocLine::m_pNext・CDocLine::m_pPrev・NULL.

参照元 ReadFile().

void CDocLineMgr::CreateCharCharsArr | ( | const unsigned char * | ,
 |  | int | ,
 |  | int ** |
 | ) | [static]

CDocLineMgr.cpp の 1956 行で定義されています。

参照先 CMemory::GetSizeOfChar().

参照元 SearchWord().

void CDocLineMgr::DeleteData_CDocLineMgr | ( | int | nLine,
 |  | int | nDelPos,
 |  | int | nDelLen,
 |  | int * | pnModLineOldFrom,
 |  | int * | pnModLineOldTo,
 |  | int * | pnDelLineOldFrom,
 |  | int * | pnDelLineOldNum,
 |  | CMemory & | cmemDeleted
 | ) |

CDocLineMgr.cpp の 950 行で定義されています。

参照先 DeleteNode()・EOL_NONE・CEOL::GetLen()・GetLineInfo()・CMemory::GetPtr()・CDocLine::m_cEol・CDocLine::m_pLine・CDocLine::m_pNext・NULL・CMemory::SetData()・CMemory::SetDataSz()・CDocLine::SetModifyFlg()・CEOL::SetType().

参照元 CLayoutMgr::DeleteData_CLayoutMgr().

void CDocLineMgr::DeleteNode ( CDocLine * )

CDocLineMgr.cpp の 2456 行で定義されています。

参照先 Init()・m_nLines・m_pCodePrevRefer・m_pDocLineBot・m_pDocLineTop・CDocLine::m_pNext・CDocLine::m_pPrev・NULL.

参照元 DeleteData_CDocLineMgr().

void CDocLineMgr::DUMP ( void )

CDocLineMgrDEBUG用

日付:
2004.03.18 Moca m_pDocLineCurrentとm_pCodePrevReferがデータチェーンの 要素を指しているかの検証機能を追加．

CDocLineMgr.cpp の 2281 行で定義されています。

参照先 CEOL::GetLen()・CMemory::GetLength()・CEOL::GetName()・CMemory::GetPtr()・CDocLine::m_cEol・m_nLines・m_pCodePrevRefer・m_pDocLineBot・m_pDocLineCurrent・m_pDocLineTop・CDocLine::m_pLine・CDocLine::m_pNext・CDocLine::m_pPrev・MYTRACE・NULL.

参照元 CEditView::OnPaint().

void CDocLineMgr::Empty ( void )

データのクリア

全ての行を削除する

CDocLineMgr.cpp の 127 行で定義されています。

参照先 m_pDocLineTop・CDocLine::m_pNext・NULL.

参照元 CEditDoc::Init()・ReadFile()・~CDocLineMgr().

char * CDocLineMgr::GetAllData ( int * )

CDocLineMgr.cpp の 2409 行で定義されています。

参照先 CDocLine::GetLengthWithoutEOL()・CMemory::GetPtr()・GSTR_APPNAME・m_pDocLineTop・CDocLine::m_pLine・CDocLine::m_pNext・MYMESSAGEBOX・NULL.

参照元 CEditView::Command_PROPERTY_FILE().

char * CDocLineMgr::GetBookMarks ( void )

行マークされてる物理行番号のリストを作る

CDocLineMgr_New.cpp の 632 行で定義されています。

参照先 GetLineInfo()・CDocLine::IsBookMarked()・CDocLine::m_pNext・MAX_MARKLINES_LEN・NULL.

参照元 CEditDoc::AddToMRU().

CDocLine* CDocLineMgr::GetDocLineBottom ( ) const [inline]

CDocLineMgr.h の 182 行で定義されています。

CDocLine* CDocLineMgr::GetDocLineTop ( ) const [inline]

CDocLineMgr.h の 181 行で定義されています。

参照元 CLayoutMgr::DoLayout().

const char * CDocLineMgr::GetFirstLinrStr ( int * pnLineLen )

順アクセスモード：先頭行を得る

引数:
pnLineLen [out] 行の長さが返る。
戻り値:
1行目の先頭へのポインタ。 データが1行もないときは、長さ0、ポインタNULLが返る。

CDocLineMgr.cpp の 295 行で定義されています。

参照先 CMemory::GetPtr()・m_nLines・m_pDocLineCurrent・m_pDocLineTop・CDocLine::m_pLine・CDocLine::m_pNext・NULL.

int CDocLineMgr::GetLineCount ( void ) [inline]

CDocLineMgr.h の 62 行で定義されています。

参照元 CLayoutMgr::CaretPos_Log2Phys()・CLayoutMgr::DeleteData_CLayoutMgr()・CEditView::DetectWidthOfLineNumberArea_calculate()・CLayoutMgr::DoLayout()・CMacro::HandleFunction()・CEditView::HokanSearchByFile()・CLayoutMgr::InsertData_CLayoutMgr()・CEditView::ISearchExec()・CEditDoc::MakeFuncList_BookMark()・CEditDoc::MakeFuncList_C()・CEditDoc::MakeFuncList_Java()・CEditDoc::MakeFuncList_Perl()・CEditDoc::MakeFuncList_PLSQL()・CEditDoc::MakeFuncList_python()・CEditDoc::MakeFuncList_RuleFile()・CEditDoc::MakeFuncList_VisualBasic()・CEditDoc::MakeTopicList_asm()・CEditDoc::MakeTopicList_cobol()・CEditDoc::MakeTopicList_html()・CEditDoc::MakeTopicList_tex()・CEditDoc::MakeTopicList_txt()・CEditDoc::MakeTopicList_wztxt()・CLayoutMgr::ReplaceData_CLayoutMgr()・CDlgProperty::SetData()・SetDiffMarkRange().

CDocLine * CDocLineMgr::GetLineInfo ( int nLine )

指定された番号の行へのポインタを返す

引数:
nLine [in] 行番号
戻り値:
行オブジェクトへのポインタ。該当行がない場合はNULL。

CDocLineMgr.cpp の 181 行で定義されています。

参照先 m_nLines・m_nPrevReferLine・m_pCodePrevRefer・m_pDocLineBot・m_pDocLineCurrent・m_pDocLineTop・CDocLine::m_pNext・CDocLine::m_pPrev・MY_RUNNINGTIMER・NULL.

参照元 CEditView::Command_BOOKMARK_SET()・CEditView::Command_CHAR()・CEditView::Command_GONEXTPARAGRAPH()・CEditView::Command_GOPREVPARAGRAPH()・CEditView::Command_SORT()・DeleteData_CDocLineMgr()・CLayoutMgr::DoLayout_Range()・GetBookMarks()・GetLineStr()・GetLineStrWithoutEOL()・InsertData_CDocLineMgr()・CEditView::ISearchExec()・CEditDoc::MakeFuncList_BookMark()・MarkSearchWord()・PrevOrNextWord()・ReplaceData()・SearchBookMark()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・SearchDiffMark()・SearchWord()・SetBookMarks()・SetDiffMarkRange()・CEditView::SetReconvertStruct()・CEditView::SmartIndent_CPP()・WhereCurrentWord().

const char * CDocLineMgr::GetLineStr | ( | int | ,
 |  | int * |
 | ) |

CDocLineMgr.cpp の 144 行で定義されています。

参照先 GetLineInfo()・CMemory::GetPtr()・CDocLine::m_pLine・NULL.

参照元 CEditView::Command_CHAR()・CEditView::Command_MERGE()・CEditView::Command_SORT()・CEditView::Command_TAGJUMP()・CLayoutMgr::DUMP()・CLayoutMgr::GetLineStr()・CMacro::HandleFunction()・CEditView::IsCurrentPositionURL()・CEditView::MakeDiffTmpFile()・CEditDoc::MakeFuncList_BookMark()・CEditDoc::MakeFuncList_C()・CEditDoc::MakeFuncList_Java()・CEditDoc::MakeFuncList_Perl()・CEditDoc::MakeFuncList_PLSQL()・CEditDoc::MakeFuncList_python()・CEditDoc::MakeFuncList_RuleFile()・CEditDoc::MakeFuncList_VisualBasic()・CEditDoc::MakeTopicList_asm()・CEditDoc::MakeTopicList_cobol()・CEditDoc::MakeTopicList_html()・CEditDoc::MakeTopicList_tex()・CEditDoc::MakeTopicList_txt()・CEditDoc::MakeTopicList_wztxt()・CEditView::SearchBracket()・CEditView::SmartIndent_CPP().

const char * CDocLineMgr::GetLineStrWithoutEOL | ( | int | nLine,
 |  | int * | pnLineLen
 | ) |

指定された行番号の文字列と改行コードを除く長さを取得

作者:
Moca
日付:
2003.06.22

CDocLineMgr.cpp の 164 行で定義されています。

参照先 CDocLine::GetLengthWithoutEOL()・GetLineInfo()・CMemory::GetPtr()・CDocLine::m_pLine・NULL.

参照元 CEditView::HokanSearchByFile()・CEditView::RTrimPrevLine().

const char * CDocLineMgr::GetNextLinrStr ( int * pnLineLen )

順アクセスモード：次の行を得る

引数:
pnLineLen [out] 行の長さが返る。
戻り値:
次行の先頭へのポインタ。 GetFirstLinrStr()が呼び出されていないとNULLが返る

CDocLineMgr.cpp の 321 行で定義されています。

参照先 CMemory::GetPtr()・m_pDocLineCurrent・CDocLine::m_pLine・CDocLine::m_pNext・NULL.

void CDocLineMgr::Init ( )

CDocLineMgr.cpp の 111 行で定義されています。

参照先 m_bIsDiffUse・m_nLines・m_nPrevReferLine・m_pCodePrevRefer・m_pDocLineBot・m_pDocLineTop・NULL.

参照元 DeleteNode()・CEditDoc::Init()・ReadFile().

void CDocLineMgr::InsertData_CDocLineMgr | ( | int | nLine,
 |  | int | nInsPos,
 |  | const char * | pInsData,
 |  | int | nInsDataLen,
 |  | int * | pnInsLineNum,
 |  | int * | pnNewLine,
 |  | int * | pnNewPos
 | ) |

データの挿入

日付:
2002/03/24 YAZAKI bUndo削除

CDocLineMgr.cpp の 1099 行で定義されています。

参照先 EOL_NONE・CEOL::GetLen()・GetLineInfo()・CMemory::GetPtr()・CEOL::GetTypeFromString()・CDocLine::IsBookMarked()・CDocLine::m_cEol・m_nLines・m_pDocLineBot・m_pDocLineTop・CDocLine::m_pLine・CDocLine::m_pNext・CDocLine::m_pPrev・NULL・CDocLine::SetBookMark()・CMemory::SetData()・CMemory::SetDataSz()・CDocLine::SetModifyFlg()・CEOL::SetType().

参照元 CLayoutMgr::InsertData_CLayoutMgr().

void CDocLineMgr::InsertNode | ( | CDocLine * | ,
 |  | CDocLine * |
 | ) |

CDocLineMgr.cpp の 2487 行で定義されています。

参照先 m_nLines・m_pDocLineBot・m_pDocLineTop・CDocLine::m_pNext・CDocLine::m_pPrev・NULL.

bool CDocLineMgr::IsDiffUse ( void ) const [inline]

CDocLineMgr.h の 105 行で定義されています。

参照元 CEditWnd::IsFuncEnable()・CEditView::ViewDiffInfo().

void CDocLineMgr::MarkSearchWord | ( | const char * | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | CBregexp * |
 | ) |

検索条件に該当する行にブックマークをセットする

引数:
pRegexp [in] 正規表現コンパイルデータ。既にコンパイルされている必要がある

CDocLineMgr_New.cpp の 515 行で定義されています。

参照先 GetLineInfo()・CMemory::GetPtr()・CDocLine::IsBookMarked()・CDocLine::m_pLine・CDocLine::m_pNext・CBregexp::Match()・NULL・CDocLine::SetBookMark().

参照元 CEditView::Command_BOOKMARK_PATTERN().

int CDocLineMgr::PrevOrNextWord | ( | int | ,
 |  | int | ,
 |  | int * | ,
 |  | BOOL | bLEFT,
 |  | BOOL | bStopsBothEnds
 | ) |

CDocLineMgr.cpp の 1523 行で定義されています。

参照先 CK_MBC_HIRA・CK_MBC_KATA・CK_MBC_NOVASU・CK_SPACE・CK_TAB・CR・FALSE・GetLineInfo()・CMemory::GetPtr()・LF・CDocLine::m_pLine・CMemory::MemCharPrev()・NULL・SearchNextWordPosition()・TRUE・WhatKindOfChar().

参照元 CLayoutMgr::PrevOrNextWord().

int CDocLineMgr::ReadFile | ( | const char * | pszPath,
 |  | HWND | hWndParent,
 |  | HWND | hwndProgress,
 |  | int | nCharCode,
 |  | FILETIME * | pFileTime,
 |  | int | nFlags,
 |  | BOOL * | pbBomExist = NULL
 | ) |

ファイルを読み込んで格納する（分割読み込みテスト版）

バージョン:
2.0
覚え書き:
Windows用にコーディングしてある
引数:
nFlags | [in] bit 0: MIME Encodeされたヘッダをdecodeするかどうか
hWndParent | [in] 親ウィンドウのハンドル
hwndProgress | [in] Progress barのウィンドウハンドル
戻り値:
TRUE | 正常読み込み
FALSE | エラー(またはユーザによるキャンセル?)
日付:
2002/08/30 Moca 旧ReadFileを元に作成 ファイルアクセスに関する部分をCFileLoadで行う

2003/07/26 ryoji BOMの状態の取得を追加

CDocLineMgr.cpp の 474 行で定義されています。

参照先 AddLineStrX()・BlockingHook()・Empty()・FALSE・CFileLoad::FileClose()・CFileLoad::FileOpen()・CFileLoad::GetFileTime()・CFileLoad::GetPercent()・Init()・MY_RUNNINGTIMER・MYTRACE・NULL・CFileLoad::ReadLine()・TRUE.

void CDocLineMgr::ReplaceData ( DocLineReplaceArg * )

CDocLineMgr_New.cpp の 39 行で定義されています。

参照先 CDlgCancel::DoModeless()・EOL_NONE・GetLineInfo()・IDC_PROGRESS・IDD_OPERATIONRUNNING・CDocLine::m_pNext・CDocLine::m_pPrev・MY_RUNNINGTIMER・MYMESSAGEBOX・DocLineReplaceArg::nDeletedLineNum・DocLineReplaceArg::nDelLineFrom・DocLineReplaceArg::nDelLineTo・DocLineReplaceArg::nDelPosFrom・DocLineReplaceArg::nDelPosTo・DocLineReplaceArg::nInsDataLen・DocLineReplaceArg::nInsLineNum・DocLineReplaceArg::nNewLine・DocLineReplaceArg::nNewPos・NULL・DocLineReplaceArg::pcmemDeleted・CMemory::SetDataSz().

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

void CDocLineMgr::ResetAllBookMark ( void )

ブックマークの全解除

CDocLineMgr_New.cpp の 458 行で定義されています。

参照先 m_pDocLineTop・CDocLine::m_pNext・NULL・CDocLine::SetBookMark().

参照元 CEditView::Command_BOOKMARK_RESET().

void CDocLineMgr::ResetAllDiffMark ( void )

差分表示の全解除

作者:
MIK
日付:
2002.05.25

CDocLineMgr_New.cpp の 656 行で定義されています。

参照先 m_bIsDiffUse・m_pDocLineTop・CDocLine::m_pNext・NULL・CDocLine::SetDiffMark().

参照元 CEditView::Command_Diff_Reset().

void CDocLineMgr::ResetAllModifyFlag ( void )

CDocLineMgr.cpp の 2384 行で定義されています。

参照先 m_pDocLineTop・CDocLine::m_pNext・NULL・CDocLine::SetModifyFlg().

int CDocLineMgr::SearchBookMark | ( | int | ,
 |  | int | ,
 |  | int * |
 | ) |

ブックマーク検索

CDocLineMgr_New.cpp の 474 行で定義されています。

参照先 GetLineInfo()・CDocLine::IsBookMarked()・CDocLine::m_pPrev・NULL・TRUE.

参照元 CEditView::Command_BOOKMARK_NEXT()・CEditView::Command_BOOKMARK_PREV().

int CDocLineMgr::SearchDiffMark | ( | int | nLineNum,
 |  | int | bPrevOrNext,
 |  | int * | pnLineNum
 | ) |

差分検索

作者:
MIK
日付:
2002.05.25

CDocLineMgr_New.cpp の 676 行で定義されています。

参照先 GetLineInfo()・CDocLine::IsDiffMarked()・CDocLine::m_pPrev・NULL・TRUE.

参照元 CEditView::Command_Diff_Next()・CEditView::Command_Diff_Prev().

int CDocLineMgr::SearchNextWordPosition | ( | const char * | pLine,
 |  | int | nLineLen,
 |  | int | nIdx,
 |  | int * | pnColmNew,
 |  | BOOL | bStopsBothEnds
 | ) | [static]

次の単語の先頭を探す pLine（長さ：nLineLen）の文字列から単語を探す。 探し始める位置はnIdxで指定。方向は後方に限定。単語の両端で止まらない（関係ないから）

CDocLineMgr.cpp の 1470 行で定義されています。

参照先 CK_MBC_HIRA・CK_MBC_KATA・CK_MBC_NOVASU・CK_SPACE・CK_TAB・FALSE・CMemory::GetSizeOfChar()・TRUE・WhatKindOfChar().

参照元 PrevOrNextWord().

char * CDocLineMgr::SearchString | ( | const unsigned char * | ,
 |  | int | ,
 |  | int | ,
 |  | const unsigned char * | ,
 |  | int | ,
 |  | int * | ,
 |  | int |
 | ) | [static]

CDocLineMgr.cpp の 2017 行で定義されています。

参照先 CMemory::MemCharNext()・NULL.

int CDocLineMgr::SearchWord | ( | int | nLineNum,
 |  | int | nIdx,
 |  | const char * | pszPattern,
 |  | int | bPrevOrNext,
 |  | int | bRegularExp,
 |  | int | bLoHiCase,
 |  | int | bWordOnly,
 |  | int * | pnLineNum,
 |  | int * | pnIdxFrom,
 |  | int * | pnIdxTo,
 |  | CBregexp * | pRegexp
 | ) |

単語検索

日付:
2003.05.22 かろと 行頭処理など見直し

2005.11.26 かろと や.が
にヒットしないように

引数:
pRegexp [in] 正規表現コンパイルデータ。既にコンパイルされている必要がある

CDocLineMgr.cpp の 1625 行で定義されています。

参照先 CreateCharCharsArr()・CBregexp::GetIndex()・CBregexp::GetLastIndex()・CMemory::GetLength()・GetLineInfo()・CMemory::GetPtr()・CMemory::GetSizeOfChar()・CDocLine::m_pLine・CDocLine::m_pNext・CDocLine::m_pPrev・CBregexp::Match()・NULL.

参照元 CLayoutMgr::SearchWord().

void CDocLineMgr::SetBookMarks ( char * )

物理行番号のリストからまとめて行マーク

CDocLineMgr_New.cpp の 612 行で定義されています。

参照先 GetLineInfo()・NULL・CDocLine::SetBookMark().

void CDocLineMgr::SetDiffMarkRange | ( | int | nMode,
 |  | int | nStartLine,
 |  | int | nEndLine
 | ) |

差分情報を行範囲指定で登録する。

作者:
MIK
日付:
2002/05/25

CDocLineMgr_New.cpp の 723 行で定義されています。

参照先 GetLineCount()・GetLineInfo()・m_bIsDiffUse・MARK_DIFF_DEL_EX・NULL・CDocLine::SetDiffMark().

int CDocLineMgr::WhatKindOfChar | ( | const char * | ,
 |  | int | ,
 |  | int |
 | ) | [static]

CDocLineMgr.cpp の 2179 行で定義されています。

参照先 CK_CR・CK_CSYM・CK_ETC・CK_KATA・CK_LF・CK_MBC_CSYM・CK_MBC_ETC・CK_MBC_GIRI・CK_MBC_HIRA・CK_MBC_KATA・CK_MBC_KIGO・CK_MBC_NOVASU・CK_MBC_ROS・CK_MBC_SKIGO・CK_MBC_SPACE・CK_NULL・CK_SPACE・CK_TAB・CR・CMemory::GetSizeOfChar()・LF・SPACE・TAB.

参照元 PrevOrNextWord()・SearchNextWordPosition()・WhereCurrentWord_2().

int CDocLineMgr::WhereCurrentWord | ( | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * | ,
 |  | CMemory * | ,
 |  | CMemory * |
 | ) |

CDocLineMgr.cpp の 1323 行で定義されています。

参照先 FALSE・GetLineInfo()・CMemory::GetPtr()・CDocLine::m_pLine・NULL・WhereCurrentWord_2().

参照元 CLayoutMgr::WhereCurrentWord().

int CDocLineMgr::WhereCurrentWord_2 | ( | const char * | pLine,
 |  | int | nLineLen,
 |  | int | nIdx,
 |  | int * | pnIdxFrom,
 |  | int * | pnIdxTo,
 |  | CMemory * | pcmcmWord,
 |  | CMemory * | pcmcmWordLeft
 | ) | [static]

現在位置の単語の範囲を調べる staticメンバ

作者:
N.Nakatani
引数:
pLine | [in] 調べるメモリ全体の先頭アドレス
nLineLen | [in] 調べるメモリ全体の有効長
nIdx | [out] 調査開始地点:pLineからの相対的な位置
pnIdxFrom | [out] 単語が見つかった場合は、単語の先頭インデックスを返す。
pnIdxTo | [out] 単語が見つかった場合は、単語の終端の次のバイトの先頭インデックスを返す。
pcmcmWord | [out] 単語が見つかった場合は、現在単語を切り出して指定されたCMemoryオブジェクトに格納する。情報が不要な場合はNULLを指定する。
pcmcmWordLeft | [out] 単語が見つかった場合は、現在単語の左に位置する単語を切り出して指定されたCMemoryオブジェクトに格納する。情報が不要な場合はNULLを指定する。
戻り値:
true | 成功 現在位置のデータは「単語」と認識する。
false | 失敗 現在位置のデータは「単語」とは言いきれない気がする。

CDocLineMgr.cpp の 1366 行で定義されています。

参照先 CK_MBC_HIRA・CK_MBC_KATA・CK_MBC_NOVASU・CR・FALSE・CMemory::GetSizeOfChar()・LF・CMemory::MemCharPrev()・NULL・CMemory::SetData()・TRUE・WhatKindOfChar().

参照元 WhereCurrentWord().

int CDocLineMgr::WriteFile | ( | const char * | pszPath,
 |  | HWND | hWndParent,
 |  | HWND | hwndProgress,
 |  | int | nCharCode,
 |  | FILETIME * | pFileTime,
 |  | CEOL | cEol,
 |  | BOOL | bBomExist = FALSE
 | ) |

バッファ内容をファイルに書き出す (テスト用)

引数:
cEol | [in] 使用する改行コード
bBomExist | [in] ファイル先頭にBOMを付けるか
覚え書き:
Windows用にコーディングしてある
日付:
2003.07.26 ryoji BOM引数追加
Oct 6, 2000 ao ファイル出力にstream を使うようにする

* ファイルを書き込み用にオープンする */

CDocLineMgr.cpp の 615 行で定義されています。

参照先 CMemory::AllocBuffer()・CMemory::Append()・BlockingHook()・CODE_EUC・CODE_JIS・CODE_SJIS・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF7・CODE_UTF8・EOL_NONE・FALSE・GetLastWriteTimestamp()・CEOL::GetLen()・CMemory::GetLength()・CMemory::GetPtr()・CEOL::GetUnicodeBEValue()・CEOL::GetUnicodeValue()・CEOL::GetValue()・GSTR_APPNAME・CDocLine::m_cEol・m_nLines・m_pDocLineTop・CDocLine::m_pLine・CDocLine::m_pNext・MYMESSAGEBOX・NULL・CMemory::SetData()・CMemory::SetDataSz()・CMemory::SJISToEUC()・CMemory::SJIStoJIS()・CMemory::SJISToUnicode()・CMemory::SJISToUnicodeBE()・CMemory::SJISToUTF7()・CMemory::SJISToUTF8()・TRUE・CFileWrite::Write().

参照元 CEditView::Command_PUTFILE()・CEditDoc::FileWrite()・CEditView::MakeDiffTmpFile().

変数

bool CDocLineMgr::m_bIsDiffUse [private]

CDocLineMgr.h の 195 行で定義されています。

参照元 Init()・ResetAllDiffMark()・SetDiffMarkRange().

int CDocLineMgr::m_nLines [private]

CDocLineMgr.h の 192 行で定義されています。

参照元 AddLineStrX()・DeleteNode()・DUMP()・GetFirstLinrStr()・GetLineInfo()・Init()・InsertData_CDocLineMgr()・InsertNode()・WriteFile().

int CDocLineMgr::m_nPrevReferLine [private]

CDocLineMgr.h の 193 行で定義されています。

参照元 GetLineInfo()・Init().

CDocLine* CDocLineMgr::m_pCodePrevRefer [private]

CDocLineMgr.h の 194 行で定義されています。

参照元 DeleteNode()・DUMP()・GetLineInfo()・Init().

CDocLine* CDocLineMgr::m_pDocLineBot [private]

CDocLineMgr.h の 190 行で定義されています。

参照元 AddLineStrX()・DeleteNode()・DUMP()・GetLineInfo()・Init()・InsertData_CDocLineMgr()・InsertNode().

CDocLine* CDocLineMgr::m_pDocLineCurrent [private]

CDocLineMgr.h の 191 行で定義されています。

参照元 DUMP()・GetFirstLinrStr()・GetLineInfo()・GetNextLinrStr().

CDocLine* CDocLineMgr::m_pDocLineTop [private]

CDocLineMgr.h の 189 行で定義されています。

参照元 AddLineStrX()・DeleteNode()・DUMP()・Empty()・GetAllData()・GetFirstLinrStr()・GetLineInfo()・Init()・InsertData_CDocLineMgr()・InsertNode()・ResetAllBookMark()・ResetAllDiffMark()・ResetAllModifyFlag()・WriteFile().

このクラスの説明は次のファイルから生成されました:
  • CDocLineMgr.h
  • CDocLineMgr.cpp
  • CDocLineMgr_New.cpp
Sakura-Editorに対してSat Oct 27 02:34:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDocLineMgr メンバ一覧

これは全メンバの一覧です。CDocLineMgr継承メンバも含んでいます。

AddLineStrX(const char *, int, CEOL) | CDocLineMgr |
CDocLineMgr() | CDocLineMgr |
CreateCharCharsArr(const unsigned char *, int, int **) | CDocLineMgr | [static]
DeleteData_CDocLineMgr(int nLine, int nDelPos, int nDelLen, int *pnModLineOldFrom, int *pnModLineOldTo, int *pnDelLineOldFrom, int *pnDelLineOldNum, CMemory &cmemDeleted) | CDocLineMgr |
DeleteNode(CDocLine *) | CDocLineMgr |
DUMP(void) | CDocLineMgr |
Empty() | CDocLineMgr |
GetAllData(int *) | CDocLineMgr |
GetBookMarks(void) | CDocLineMgr |
GetDocLineBottom() const | CDocLineMgr | [inline]
GetDocLineTop() const | CDocLineMgr | [inline]
GetFirstLinrStr(int *) | CDocLineMgr |
GetLineCount(void) | CDocLineMgr | [inline]
GetLineInfo(int) | CDocLineMgr |
GetLineStr(int, int *) | CDocLineMgr |
GetLineStrWithoutEOL(int, int *) | CDocLineMgr |
GetNextLinrStr(int *) | CDocLineMgr |
Init() | CDocLineMgr |
InsertData_CDocLineMgr(int nLine, int nInsPos, const char *pInsData, int nInsDataLen, int *pnInsLineNum, int *pnNewLine, int *pnNewPos) | CDocLineMgr |
InsertNode(CDocLine *, CDocLine *) | CDocLineMgr |
IsDiffUse(void) const | CDocLineMgr | [inline]
m_bIsDiffUse | CDocLineMgr | [private]
m_nLines | CDocLineMgr | [private]
m_nPrevReferLine | CDocLineMgr | [private]
m_pCodePrevRefer | CDocLineMgr | [private]
m_pDocLineBot | CDocLineMgr | [private]
m_pDocLineCurrent | CDocLineMgr | [private]
m_pDocLineTop | CDocLineMgr | [private]
MarkSearchWord(const char *, int, int, int, CBregexp *) | CDocLineMgr |
PrevOrNextWord(int, int, int *, BOOL bLEFT, BOOL bStopsBothEnds) | CDocLineMgr |
ReadFile(const char *, HWND, HWND, int, FILETIME *, int extraflag, BOOL *pbBomExist=NULL) | CDocLineMgr |
ReplaceData(DocLineReplaceArg *) | CDocLineMgr |
ResetAllBookMark(void) | CDocLineMgr |
ResetAllDiffMark(void) | CDocLineMgr |
ResetAllModifyFlag(void) | CDocLineMgr |
SearchBookMark(int, int, int *) | CDocLineMgr |
SearchDiffMark(int, int, int *) | CDocLineMgr |
SearchNextWordPosition(const char *pLine, int nLineLen, int nIdx, int *pnColmNew, BOOL bStopsBothEnds) | CDocLineMgr | [static]
SearchString(const unsigned char *, int, int, const unsigned char *, int, int *, int) | CDocLineMgr | [static]
SearchWord(int, int, const char *, int, int, int, int, int *, int *, int *, CBregexp *) | CDocLineMgr |
SetBookMarks(char *) | CDocLineMgr |
SetDiffMarkRange(int nMode, int nStartLine, int nEndLine) | CDocLineMgr |
WhatKindOfChar(const char *, int, int) | CDocLineMgr | [static]
WhereCurrentWord(int, int, int *, int *, CMemory *, CMemory *) | CDocLineMgr |
WhereCurrentWord_2(const char *, int, int, int *, int *, CMemory *, CMemory *) | CDocLineMgr | [static]
WriteFile(const char *, HWND, HWND, int, FILETIME *, CEOL, BOOL bBomExist=FALSE) | CDocLineMgr |
~CDocLineMgr() | CDocLineMgr |

Sakura-Editorに対してSat Oct 27 02:34:50 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDropSource

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDropSource

#include <CDropTarget.h>

CDropSourceに対する継承グラフ

[凡例]
CDropSourceのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDropSource (BOOL bLeft)
STDMETHOD (QueryContinueDrag)(BOOL bEscapePressed
STDMETHOD (GiveFeedback)(DWORD dropEffect)

Public 変数

DWORD | dwKeyState

Private 変数

BOOL | m_bLeft

説明

CDropTarget.h の 100 行で定義されています。

コンストラクタとデストラクタ

CDropSource::CDropSource ( BOOL bLeft ) [inline]

CDropTarget.h の 104 行で定義されています。

関数

CDropSource::STDMETHOD ( GiveFeedback )

CDropSource::STDMETHOD ( QueryContinueDrag )

変数

DWORD CDropSource::dwKeyState

CDropTarget.h の 106 行で定義されています。

BOOL CDropSource::m_bLeft [private]

CDropTarget.h の 102 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Oct 27 02:34:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDropSource メンバ一覧

これは全メンバの一覧です。CDropSource継承メンバも含んでいます。

CDropSource(BOOL bLeft) | CDropSource | [inline]
CYbInterfaceBase() | CYbInterfaceBase | [protected]
CYbInterfaceImpl() | CYbInterfaceImpl< IDropSource > | [inline]
dwKeyState | CDropSource |
m_bLeft | CDropSource | [private]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
STDMETHOD(QueryContinueDrag)(BOOL bEscapePressed | CDropSource |
STDMETHOD(GiveFeedback)(DWORD dropEffect) | CDropSource |
CYbInterfaceImpl< IDropSource >::STDMETHOD(QueryInterface)(REFIID riid | CYbInterfaceImpl< IDropSource > |
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Oct 27 02:34:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CDropTarget

  • 構成
  • クラス階層
  • 構成メンバ

クラス CDropTarget

#include <CDropTarget.h>

CDropTargetに対する継承グラフ

[凡例]
CDropTargetのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CDropTarget (CEditView *)
~CDropTarget ()
BOOL | Register_DropTarget (HWND)
BOOL | Revoke_DropTarget (void)
STDMETHODIMP | DragEnter (LPDATAOBJECT, DWORD, POINTL, LPDWORD)
STDMETHODIMP | DragOver (DWORD, POINTL, LPDWORD)
STDMETHODIMP | DragLeave (void)
STDMETHODIMP | Drop (LPDATAOBJECT, DWORD, POINTL, LPDWORD)

Public 変数

LPDATAOBJECT | m_pDataObject

Private 変数

HWND | m_hWnd_DropTarget
CEditView * m_pCEditView

説明

CDropTarget.h の 69 行で定義されています。

コンストラクタとデストラクタ

CDropTarget::CDropTarget ( CEditView * )

CDropTarget.cpp の 92 行で定義されています。

参照先 NULL.

CDropTarget::~CDropTarget ( )

CDropTarget.cpp の 101 行で定義されています。

参照先 Revoke_DropTarget().

関数

STDMETHODIMP CDropTarget::DragEnter | ( | LPDATAOBJECT | ,
 |  | DWORD | ,
 |  | POINTL | ,
 |  | LPDWORD |
 | ) |

CDropTarget.cpp の 130 行で定義されています。

参照先 CEditView::DragEnter()・m_pCEditView・MYTRACE.

STDMETHODIMP CDropTarget::DragLeave ( void )

CDropTarget.cpp の 162 行で定義されています。

参照先 CEditView::DragLeave()・m_pCEditView.

STDMETHODIMP CDropTarget::DragOver | ( | DWORD | ,
 |  | POINTL | ,
 |  | LPDWORD |
 | ) |

CDropTarget.cpp の 147 行で定義されています。

参照先 CEditView::DragOver()・m_pCEditView.

STDMETHODIMP CDropTarget::Drop | ( | LPDATAOBJECT | ,
 |  | DWORD | ,
 |  | POINTL | ,
 |  | LPDWORD |
 | ) |

CDropTarget.cpp の 172 行で定義されています。

参照先 CEditView::Drop()・m_pCEditView.

BOOL CDropTarget::Register_DropTarget ( HWND )

CDropTarget.cpp の 108 行で定義されています。

参照先 FALSE・GSTR_APPNAME・m_hWnd_DropTarget・MYMESSAGEBOX・TRUE.

BOOL CDropTarget::Revoke_DropTarget ( void )

CDropTarget.cpp の 121 行で定義されています。

参照先 BOOL・m_hWnd_DropTarget・NULL・TRUE.

参照元 ~CDropTarget().

変数

HWND CDropTarget::m_hWnd_DropTarget [private]

CDropTarget.h の 81 行で定義されています。

参照元 Register_DropTarget()・Revoke_DropTarget().

CEditView* CDropTarget::m_pCEditView [private]

CDropTarget.h の 82 行で定義されています。

参照元 DragEnter()・DragLeave()・DragOver()・Drop().

LPDATAOBJECT CDropTarget::m_pDataObject

CDropTarget.h の 86 行で定義されています。

参照元 CEditView::DragLeave()・CEditView::DragOver()・CEditView::Drop().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Oct 27 02:34:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CDropTarget メンバ一覧

これは全メンバの一覧です。CDropTarget継承メンバも含んでいます。

CDropTarget(CEditView *) | CDropTarget |
CYbInterfaceBase() | CYbInterfaceBase | [protected]
CYbInterfaceImpl() | CYbInterfaceImpl< IDropTarget > | [inline]
DragEnter(LPDATAOBJECT, DWORD, POINTL, LPDWORD) | CDropTarget |
DragLeave(void) | CDropTarget |
DragOver(DWORD, POINTL, LPDWORD) | CDropTarget |
Drop(LPDATAOBJECT, DWORD, POINTL, LPDWORD) | CDropTarget |
m_hWnd_DropTarget | CDropTarget | [private]
m_pCEditView | CDropTarget | [private]
m_pDataObject | CDropTarget |
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
Register_DropTarget(HWND) | CDropTarget |
Revoke_DropTarget(void) | CDropTarget |
STDMETHOD(QueryInterface)(REFIID riid | CYbInterfaceImpl< IDropTarget > |
~CDropTarget() | CDropTarget |
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Oct 27 02:34:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CEditApp

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditApp

常駐部の管理 [詳細]

#include <CEditApp.h>

CEditAppのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CEditApp ()
~CEditApp ()
HWND | Create (HINSTANCE)
bool | CreateTrayIcon (HWND)
タスクトレイにアイコンを登録する
LRESULT | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
void | MessageLoop (void)
void | OnDestroy (void)
WM_DESTROY 処理
int | CreatePopUpMenu_L (void)
int | CreatePopUpMenu_R (void)

Static Public メソッド

static bool | OpenNewEditor (HINSTANCE, HWND, const char *, int, BOOL, bool sync=false, const char *szCurDir=NULL)
static bool | OpenNewEditor2 (HINSTANCE, HWND, const FileInfo *, BOOL, bool sync=false)
static BOOL | CloseAllEditor (BOOL bCheckConfirm, HWND hWndFrom, BOOL bExit, int nGroup)
static void | TerminateApplication (HWND hWndFrom)

Protected メソッド

BOOL | TrayMessage (HWND, DWORD, UINT, HICON, const char *)
void | OnCommand (WORD, WORD, HWND)
void | OnNewEditor (void)
2003.05.30 genta 新規ウィンドウ作成処理を切り出し

Static Protected メソッド

static INT_PTR CALLBACK | ExitingDlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
終了ダイアログ用プロシージャ

Private メソッド

void | DoGrep ()

Private 変数

CMenuDrawer m_CMenuDrawer
bool | m_bUseTrayMenu
HINSTANCE | m_hInstance
HWND | m_hWnd
char * | m_pszAppName
BOOL | m_bCreatedTrayIcon
DLLSHAREDATA * m_pShareData
CDlgGrep m_cDlgGrep
CImageListMgr m_hIcons
UINT | m_uCreateTaskBarMsg

説明

常駐部の管理

タスクトレイアイコンの管理，タスクトレイメニューのアクション， MRU、キー割り当て、共通設定、編集ウィンドウの管理など

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CEditApp.h の 46 行で定義されています。

コンストラクタとデストラクタ

CEditApp::CEditApp ( )

CEditApp.cpp の 199 行で定義されています。

参照先 CKeyBind::CreateAccerelator()・CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・GSTR_CEDITAPP・m_bUseTrayMenu・DLLSHAREDATA::m_hAccel・DLLSHAREDATA::m_nKeyNameArrNum・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・m_pszAppName・NULL.

CEditApp::~CEditApp ( )

CEditApp.cpp の 234 行で定義されています。

関数

BOOL CEditApp::CloseAllEditor | ( | BOOL | bCheckConfirm,
 |  | HWND | hWndFrom,
 |  | BOOL | bExit,
 |  | int | nGroup
 | ) | [static]

すべてのウィンドウを閉じる

引数:
bCheckConfirm | [in] [すべて閉じる]確認オプションに従って問い合わせをするかどうか
hWndFrom | [in] 呼び出し元のウィンドウハンドル
bExit | [in] TRUE: 編集の全終了 / FALSE: すべて閉じる
nGroup | [in] グループID
日付:
Oct. 7, 2000 jepro 「編集ウィンドウの全終了」という説明を左記のように変更

2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2006.12.25 ryoji 複数の編集ウィンドウを閉じるときの確認（引数追加）

2007.02.13 ryoji 「編集の全終了」を示す引数(bExit)を追加

2007.06.20 ryoji nGroup引数を追加

CEditApp.cpp の 1536 行で定義されています。

参照先 FALSE・CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・CShareData::IsEditWnd()・Common::m_bCloseAllConfirm・DLLSHAREDATA::m_Common・MYMESSAGEBOX・TRUE.

参照元 CEditView::Command_EXITALLEDITORS()・CEditView::Command_FILECLOSEALL()・CEditView::Command_GROUPCLOSE()・TerminateApplication().

HWND CEditApp::Create ( HINSTANCE )

CEditApp.cpp の 251 行で定義されています。

参照先 CEditAppWndProc()・CMenuDrawer::Create()・CImageListMgr::Create()・CreateTrayIcon()・g_m_pCEditApp・GSTR_APPNAME・m_CMenuDrawer・m_hIcons・m_hInstance・m_hWnd・m_pszAppName・MY_RUNNINGTIMER・MY_TRACETIME・NULL.

参照元 CControlProcess::Initialize().

int CEditApp::CreatePopUpMenu_L ( void )

ポップアップメニュー(トレイ左ボタン)

CEditApp.cpp の 1567 行で定義されています。

参照先 CShareData::getInstance()・IDR_TRAYMENU_L・m_bUseTrayMenu・m_CMenuDrawer・m_hInstance・CMenuDrawer::ResetContents()・CShareData::TransformFileName_MakeCache().

int CEditApp::CreatePopUpMenu_R ( void )

ポップアップメニュー(トレイ右ボタン)

CEditApp.cpp の 1737 行で定義されています。

参照先 IDR_TRAYMENU_L・m_bUseTrayMenu・m_CMenuDrawer・m_hInstance・CMenuDrawer::ResetContents().

bool CEditApp::CreateTrayIcon ( HWND )

タスクトレイにアイコンを登録する

CEditApp.cpp の 345 行で定義されています。

参照先 FN_APP_ICON・GetAppIcon()・GetAppVersionInfo()・GSTR_APPNAME・ICON_DEFAULT_APP・m_bCreatedTrayIcon・Common::m_bUseTaskTray・DLLSHAREDATA::m_Common・m_hInstance・m_hWnd・m_pShareData・NULL・TrayMessage()・TRUE.

参照元 Create().

LRESULT CEditApp::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditApp.cpp の 466 行で定義されています。

参照先 CMenuDrawer::DrawItem()・FALSE・ID_HOTKEY_TRAYMENU・m_CMenuDrawer・m_hWnd・CMenuDrawer::MeasureItem()・MYWM_NOTIFYICON・CMenuDrawer::OnMenuChar()・TRUE.

参照元 CEditAppWndProc().

void CEditApp::DoGrep ( ) [private]

CEditApp.cpp の 55 行で定義されています。

参照先 CDlgGrep::DoModal()・FALSE・CMemory::GetPtr()・CDlgGrep::m_bGrepOutputLine・CDlgGrep::m_bLoHiCase・CDlgGrep::m_bRegularExp・CDlgGrep::m_bSubFolder・CDlgGrep::m_bWordOnly・m_cDlgGrep・m_hInstance・m_hWnd・CDialog::m_hWnd・DLLSHAREDATA::m_hwndTray・CDlgGrep::m_nGrepCharSet・CDlgGrep::m_nGrepOutputStyle・m_pShareData・CDlgGrep::m_szFile・CDlgGrep::m_szFolder・DLLSHAREDATA::m_szSEARCHKEYArr・CDlgGrep::m_szText・NULL・OpenNewEditor()・CMemory::Replace()・CMemory::SetDataSz().

INT_PTR CALLBACK CEditApp::ExitingDlgProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

終了ダイアログ用プロシージャ

日付:
2006.07.02 ryoji CControlProcess から移動
引数:
hwndDlg 終了ダイアログ用プロシージャ

CEditApp.cpp の 1888 行で定義されています。

参照先 FALSE・TRUE.

参照元 OnDestroy().

void CEditApp::MessageLoop ( void )

CEditApp.cpp の 381 行で定義されています。

参照先 m_hWnd・NULL.

参照元 CControlProcess::MainLoop().

void CEditApp::OnCommand | ( | WORD | ,
 |  | WORD | ,
 |  | HWND |
 | ) | [protected]

WM_COMMANDメッセージ処理

CEditApp.cpp の 1237 行で定義されています。

void CEditApp::OnDestroy ( void )

WM_DESTROY 処理

日付:
2006.07.09 ryoji 新規作成

CEditApp.cpp の 1833 行で定義されています。

参照先 ExitingDlgProc()・CShareData::getInstance()・IDD_EXITING・m_bCreatedTrayIcon・Common::m_bDispExitingDialog・DLLSHAREDATA::m_Common・DLLSHAREDATA::m_hAccel・m_hInstance・m_hWnd・m_pShareData・NULL・CShareData::SaveShareData()・TrayMessage()・TRUE.

void CEditApp::OnNewEditor ( void ) [protected]

2003.05.30 genta 新規ウィンドウ作成処理を切り出し

タスクトレイからの新規作成の場合にはカレントディレクトリ＝ 保存時のデフォルトディレクトリを最後に使われたディレクトリとする． ただし最後に使われたディレクトリが存在しない場合は次に使われたディレクトリとし， 順次存在するディレクトリが見つかるまで履歴を順に試す．

どの履歴も見つからなかった場合には現在のカレントディレクトリで作成する．

作者:
genta
日付:
2003.05.30 新規作成

CEditApp.cpp の 1260 行で定義されています。

参照先 CMRUFolder::GetPath()・CMRUFolder::Length()・NULL.

bool CEditApp::OpenNewEditor | ( | HINSTANCE | hInstance,
 |  | HWND | hWndParent,
 |  | const char * | pszPath,
 |  | int | nCharCode,
 |  | BOOL | bReadOnly,
 |  | bool | sync = false,
 |  | const char * | szCurDir = NULL
 | ) | [static]

新規編集ウィンドウの追加 ver 0

引数:
hInstance | [in] インスタンスID (実は未使用)
hWndParent | [in] 親ウィンドウハンドル．エラーメッセージ表示用
pszPath | [in] 新規エディタで開くファイル名とオプション．NULLで新規エディタ作成．
nCharCode | [in] 新規エディタの文字コード
bReadOnly | [in] FALSEでなければ読みとり専用で開く
sync | [in] trueなら新規エディタの起動まで待機する
szCurDir | [in] 新規エディタのカレントディレクトリ
日付:
2000.10.24 genta WinExec -> CreateProcess．同期機能を付加

2002.02.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2003.05.30 genta 外部プロセス起動時のカレントディレクトリ指定を可能に．

2007.06.26 ryoji 新規編集ウィンドウは hWndParent と同じグループを指定して起動する

CEditApp.cpp の 1308 行で定義されています。

参照先 CODE_AUTODETECT・FALSE・GA_ROOTOWNER・CShareData::GetGroupId()・CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・DLLSHAREDATA::m_nEditArrNum・MAX_EDITWINDOWS・MyGetAncestor()・MYMESSAGEBOX・NULL.

参照元 CEditView::Command_FILENEW()・CEditView::Command_GREP()・CEditView::Command_WIN_OUTPUT()・DoGrep()・CMacro::HandleCommand()・CEditDoc::OpenFile()・OpenNewEditor2()・CShareData::TraceOut().

bool CEditApp::OpenNewEditor2 | ( | HINSTANCE | hInstance,
 |  | HWND | hWndParent,
 |  | const FileInfo * | pfi,
 |  | BOOL | bReadOnly,
 |  | bool | sync = false
 | ) | [static]

新規編集ウィンドウの追加 ver 2:

日付:
Oct. 24, 2000 genta create.

CEditApp.cpp の 1435 行で定義されています。

参照先 CODE_AUTODETECT・CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・FileInfo::m_nCharCode・DLLSHAREDATA::m_nEditArrNum・FileInfo::m_nViewLeftCol・FileInfo::m_nViewTopLine・FileInfo::m_nX・FileInfo::m_nY・FileInfo::m_szPath・MAX_EDITWINDOWS・NULL・OpenNewEditor().

参照元 CEditView::TagJumpSub().

void CEditApp::TerminateApplication ( HWND hWndFrom ) [static]

サクラエディタの全終了

引数:
hWndFrom [in] 呼び出し元のウィンドウハンドル
日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2006.12.25 ryoji 複数の編集ウィンドウを閉じるときの確認（引数追加）

CEditApp.cpp の 1495 行で定義されています。

参照先 BOOL・CloseAllEditor()・FALSE・CShareData::getInstance()・CShareData::GetShareData()・GSTR_APPNAME・Common::m_bExitConfirm・DLLSHAREDATA::m_Common・DLLSHAREDATA::m_hwndTray・MYMESSAGEBOX・TRUE.

参照元 CEditView::Command_EXITALL()・CEditWnd::OnCommand().

BOOL CEditApp::TrayMessage | ( | HWND | ,
 |  | DWORD | ,
 |  | UINT | ,
 |  | HICON | ,
 |  | const char * |
 | ) | [protected]

タスクトレイのアイコンに関する処理

CEditApp.cpp の 439 行で定義されています。

参照先 BOOL・MYWM_NOTIFYICON.

参照元 CreateTrayIcon()・OnDestroy().

変数

BOOL CEditApp::m_bCreatedTrayIcon [private]

トレイにアイコンを作った

CEditApp.h の 82 行で定義されています。

参照元 CreateTrayIcon()・OnDestroy().

bool CEditApp::m_bUseTrayMenu [private]

CEditApp.h の 78 行で定義されています。

参照元 CEditApp()・CreatePopUpMenu_L()・CreatePopUpMenu_R().

CDlgGrep CEditApp::m_cDlgGrep [private]

CEditApp.h の 85 行で定義されています。

参照元 DoGrep().

CMenuDrawer CEditApp::m_CMenuDrawer [private]

CEditApp.h の 77 行で定義されています。

参照元 Create()・CreatePopUpMenu_L()・CreatePopUpMenu_R()・DispatchEvent().

CImageListMgr CEditApp::m_hIcons [private]

CEditApp.h の 87 行で定義されています。

参照元 Create().

HINSTANCE CEditApp::m_hInstance [private]

CEditApp.h の 79 行で定義されています。

参照元 Create()・CreatePopUpMenu_L()・CreatePopUpMenu_R()・CreateTrayIcon()・DoGrep()・OnDestroy().

HWND CEditApp::m_hWnd [private]

CEditApp.h の 80 行で定義されています。

参照元 Create()・CreateTrayIcon()・DispatchEvent()・DoGrep()・MessageLoop()・OnDestroy().

DLLSHAREDATA* CEditApp::m_pShareData [private]

CEditApp.h の 84 行で定義されています。

参照元 CEditApp()・CreateTrayIcon()・DoGrep()・OnDestroy().

char* CEditApp::m_pszAppName [private]

CEditApp.h の 81 行で定義されています。

参照元 CEditApp()・Create().

UINT CEditApp::m_uCreateTaskBarMsg [private]

RegisterMessageで得られるMessage IDの保管場所

CEditApp.h の 96 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CEditApp.h
  • CEditApp.cpp
Sakura-Editorに対してSat Oct 27 02:34:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditApp メンバ一覧

これは全メンバの一覧です。CEditApp継承メンバも含んでいます。

CEditApp() | CEditApp |
CloseAllEditor(BOOL bCheckConfirm, HWND hWndFrom, BOOL bExit, int nGroup) | CEditApp | [static]
Create(HINSTANCE) | CEditApp |
CreatePopUpMenu_L(void) | CEditApp |
CreatePopUpMenu_R(void) | CEditApp |
CreateTrayIcon(HWND) | CEditApp |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CEditApp |
DoGrep() | CEditApp | [private]
ExitingDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CEditApp | [protected, static]
m_bCreatedTrayIcon | CEditApp | [private]
m_bUseTrayMenu | CEditApp | [private]
m_cDlgGrep | CEditApp | [private]
m_CMenuDrawer | CEditApp | [private]
m_hIcons | CEditApp | [private]
m_hInstance | CEditApp | [private]
m_hWnd | CEditApp | [private]
m_pShareData | CEditApp | [private]
m_pszAppName | CEditApp | [private]
m_uCreateTaskBarMsg | CEditApp | [private]
MessageLoop(void) | CEditApp |
OnCommand(WORD, WORD, HWND) | CEditApp | [protected]
OnDestroy(void) | CEditApp |
OnNewEditor(void) | CEditApp | [protected]
OpenNewEditor(HINSTANCE, HWND, const char *, int, BOOL, bool sync=false, const char *szCurDir=NULL) | CEditApp | [static]
OpenNewEditor2(HINSTANCE, HWND, const FileInfo *, BOOL, bool sync=false) | CEditApp | [static]
TerminateApplication(HWND hWndFrom) | CEditApp | [static]
TrayMessage(HWND, DWORD, UINT, HICON, const char *) | CEditApp | [protected]
~CEditApp() | CEditApp |

Sakura-Editorに対してSat Oct 27 02:34:54 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CEditDoc

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditDoc

文書関連情報の管理 [詳細]

#include <CEditDoc.h>

CEditDocのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 型

enum | WatchUpdate { WU_QUERY, WU_NOTIFY, WU_NONE }

Public メソッド

CEditDoc ()
~CEditDoc ()
BOOL | Create (HINSTANCE, HWND, CImageListMgr *)
void | Init (void)
void | InitAllView ()
BOOL | IsTextSelected (void)
BOOL | IsEnableUndo (void)
BOOL | IsEnableRedo (void)
BOOL | IsEnablePaste (void)
void | SetFileInfo (FileInfo *)
LRESULT | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
void | OnMove (int, int, int, int)
BOOL | OnFileClose (void)
BOOL | HandleCommand (int)
void | SetActivePane (int)
int | GetActivePane (void)
void | RedrawInactivePane (void)
BOOL | DetectWidthOfLineNumberAreaAllPane (BOOL bRedraw)
BOOL | SelectFont (LOGFONT *)
BOOL | FileRead (char *, BOOL *, int, BOOL, BOOL)
BOOL | FileWrite (const char *, enumEOLType cEolType)
ファイルの保存
bool | SaveFile (const char *path)
void | OpenFile (const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE)
指定されたファイルを開く
void | FileClose (void)
void | FileCloseOpen (const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE)
BOOL | FileSave (bool warnbeep=true, bool askname=true)
BOOL | FileSaveAs_Dialog (void)
BOOL | FileSaveAs (const char *filename)
int | MakeBackUp (const char *target_file)
void | SetParentCaption (void)
BOOL | OpenPropertySheet (int)
BOOL | OpenPropertySheetTypes (int, int)
BOOL | OpenFileDialog (HWND, const char *, char *, int *, BOOL *)
void | OnChangeSetting (void)
BOOL | SaveFileDialog (char *, int *, CEOL *pcEol=NULL, BOOL *pbBomExist=NULL)
void | CheckFileTimeStamp (void)
void | ReloadCurrentFile (BOOL, BOOL)
CEOL | GetNewLineCode () const
void | SetNewLineCode (const CEOL &t)
bool | IsModificationForbidden (int nCommand)
void | CheckAutoSave (void)
void | ReloadAutoSaveParam (void)
const CEditView & | ActiveView (void) const
CEditView & | ActiveView (void)
void | SetImeMode (int mode)
const char * | GetFilePath (void) const
bool | IsFilePathAvailable (void) const
const char * | GetFileName (void) const
ファイル名(パスなし)を取得
void | SetDocumentIcon (void)
void | LockDocumentType (void)
void | UnlockDocumentType (void)
bool | GetDocumentLockState (void)
void | SetDocumentType (int type, bool force)
int | GetDocumentType (void) const
< 文書種別の読み出し
Types & | GetDocumentAttribute (void) const
< 設定された文書情報への参照を返す
BOOL | IsReadOnly (void)
ReadOnly状態の読み出し
void | SetReadOnly (BOOL flag)
ReadOnly状態の設定
void | SetModified (bool flag, bool redraw)
bool | IsModified (void) const
void | SetModified (bool flag, BOOL redraw)
void | SetModified (BOOL flag, bool redraw)
bool | IsFileOpenInThisWindow (void)
このウィンドウで新しいファイルを開けるか
void | AddToMRU (void)
const char * | ExParam_SkipCond (const char *pszSource, int part)
処理の読み飛ばし
int | ExParam_Evaluate (const char *pCond)
条件の評価
void | ChangeLayoutParam (bool bShowProgress, int nTabSize, int nMaxLineSize)
bool | IsInsMode () const
void | SetInsMode (bool mode)
void | MakeFuncList_C (CFuncInfoArr *, bool bVisibleMemberFunc=true)
C/C++関数リスト作成
void | MakeFuncList_PLSQL (CFuncInfoArr *)
void | MakeTopicList_txt (CFuncInfoArr *)
void | MakeFuncList_Java (CFuncInfoArr *)
void | MakeTopicList_cobol (CFuncInfoArr *)
void | MakeTopicList_asm (CFuncInfoArr *)
void | MakeFuncList_Perl (CFuncInfoArr *)
Perl用アウトライン解析機能（簡易版）
void | MakeFuncList_VisualBasic (CFuncInfoArr *)
Visual Basic関数リスト作成（簡易版）
void | MakeFuncList_python (CFuncInfoArr *pcFuncInfoArr)
python関数リスト作成
void | MakeTopicList_wztxt (CFuncInfoArr *)
void | MakeTopicList_html (CFuncInfoArr *)
void | MakeTopicList_tex (CFuncInfoArr *)
void | MakeFuncList_RuleFile (CFuncInfoArr *)
int | ReadRuleFile (const char *pszFilename, oneRule *pcOneRule, int nMaxCount)
void | MakeFuncList_BookMark (CFuncInfoArr *)
void | ExpandParameter (const char *pszSource, char *pszBuffer, int nBufferLen)

Public 変数

CPassiveTimer m_cAutoSave
自動保存管理
CHokanMgr m_cHokanMgr
BOOL | m_bGrepRunning
int | m_nCommandExecNum
FILETIME | m_FileTime
CDocLineMgr m_cDocLineMgr
CLayoutMgr m_cLayoutMgr
int | m_nCharCode
BOOL | m_bBomExist
保存時にBOMを付けるかどうか Jul. 26, 2003 ryoji
bool | m_bInsMode
挿入・上書きモード Oct. 2, 2005 genta
CEOL m_cSaveLineCode
BOOL | m_bReadOnly
BOOL | m_bDebugMode
BOOL | m_bGrepMode
char | m_szGrepKey [1024]
HWND | m_hWnd
COpeBuf m_cOpeBuf
CSplitterWnd m_cSplitterWnd
CEditView | m_cEditViewArr [4]
int | m_nActivePaneIndex
CDlgFind m_cDlgFind
CDlgReplace m_cDlgReplace
CDlgJump m_cDlgJump
CDlgGrep m_cDlgGrep
CDlgFuncList m_cDlgFuncList
CEditWnd * m_pcEditWnd
char * | m_pszAppName
HINSTANCE | m_hInstance
HWND | m_hwndParent
DLLSHAREDATA * m_pShareData
BOOL | m_bDoing_UndoRedo
CDlgOpenFile m_cDlgOpenFile
CPropCommon m_cPropCommon
CPropTypes m_cPropTypes
int | m_nFileShareModeOld
HFILE | m_hLockedFile
CSMacroMgr * m_pcSMacroMgr
マクロ
CFuncLookup m_cFuncLookup
機能名，機能番号などのresolve
WatchUpdate m_eWatchUpdate
更新監視方法

Protected メソッド

void | SetFilePath (const char *)
void | DoFileLock (void)
void | DoFileUnLock (void)
int * | SavePhysPosOfAllView (void)
void | RestorePhysPosOfAllView (int *posary)
bool | FormatBackUpPath (char *szNewPath, const char *target_file)

Protected 変数

int | m_nSettingType
bool | m_nSettingTypeLocked
bool | m_bIsModified
char | m_szFilePath [_MAX_PATH]
CEOL m_cNewLineCode

説明

文書関連情報の管理

CEditDoc.h の 55 行で定義されています。

列挙型

enum CEditDoc::WatchUpdate

ファイルが更新された場合に再読込を行うかどうかのフラグ

列挙型の値:
WU_QUERY | 再読込を行うかどうかダイアログボックスで問い合わせる
WU_NOTIFY | 更新されたことをステータスバーで通知
WU_NONE | 更新監視を行わない

CEditDoc.h の 333 行で定義されています。

コンストラクタとデストラクタ

CEditDoc::CEditDoc ( )

May 12, 2000 genta 初期化方法変更

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
覚え書き:
m_pcEditWnd はコンストラクタ内では使用しないこと．

CEditDoc.cpp の 61 行で定義されています。

参照先 CLayoutMgr::Create()・FALSE・GetDocumentAttribute()・CShareData::getInstance()・CShareData::GetShareData()・Common::m_bIsINSMode・m_cDocLineMgr・m_cLayoutMgr・DLLSHAREDATA::m_Common・m_FileTime・m_pcSMacroMgr・m_pShareData・m_szFilePath・m_szGrepKey・MY_RUNNINGTIMER・NULL・ReloadAutoSaveParam()・SetInsMode()・CLayoutMgr::SetLayoutInfo()・TRUE.

CEditDoc::~CEditDoc ( )

CEditDoc.cpp の 139 行で定義されています。

参照先 DoFileUnLock()・m_hWnd・m_pcSMacroMgr・NULL.

関数

CEditView& CEditDoc::ActiveView ( void ) [inline]

CEditDoc.h の 133 行で定義されています。

const CEditView& CEditDoc::ActiveView ( void ) const [inline]

CEditDoc.h の 132 行で定義されています。

void CEditDoc::AddToMRU ( void )

カレントファイルをMRUに登録する。 ブックマークも一緒に登録する。

日付:
2003.03.30 genta 作成

CEditDoc_new.cpp の 1241 行で定義されています。

参照先 CMRU::Add()・CDocLineMgr::GetBookMarks()・m_cDocLineMgr・FileInfo::m_szMarkLines・SetFileInfo().

参照元 OnFileClose()・ReloadCurrentFile().

void CEditDoc::ChangeLayoutParam | ( | bool | bShowProgress,
 |  | int | nTabSize,
 |  | int | nMaxLineSize
 | ) |

レイアウトパラメータの変更

具体的にはタブ幅と折り返し位置を変更する． 現在のドキュメントのレイアウトのみを変更し，共通設定は変更しない．

日付:
2005.08.14 genta 新規作成

CEditDoc_new.cpp の 1324 行で定義されています。

参照先 CLayoutMgr::ChangeLayoutParam()・m_cEditViewArr・m_cLayoutMgr・m_hWnd・CEditWnd::m_hwndProgressBar・m_pcEditWnd・NULL・RestorePhysPosOfAllView()・SavePhysPosOfAllView()・TRUE.

参照元 CEditView::Command_WRAPWINDOWWIDTH()・CMacro::HandleFunction().

void CEditDoc::CheckAutoSave ( void )

CEditDoc_new.cpp の 533 行で定義されています。

参照先 CPassiveTimer::CheckAction()・CPassiveTimer::Enable()・GetFilePath()・CPassiveTimer::IsEnabled()・IsFilePathAvailable()・IsModified()・m_cAutoSave・SaveFile().

参照元 CEditWnd::OnEditTimer().

void CEditDoc::CheckFileTimeStamp ( void )

CEditDoc.cpp の 3822 行で定義されています。

参照先 BOOL・CDialog::DoModal()・FALSE・GetFilePath()・GetLastWriteTimestamp()・IDD_FILEUPDATEQUERY・IsFilePathAvailable()・IsModified()・Common::m_bCheckFileTimeStamp・m_bReadOnly・DLLSHAREDATA::m_Common・m_eWatchUpdate・m_FileTime・m_hInstance・m_hWnd・m_hwndParent・m_nCharCode・Common::m_nFileShareMode・m_pcEditWnd・m_pShareData・NULL・ReloadCurrentFile()・CEditWnd::SendStatusMessage()・TRUE・WU_NONE・WU_NOTIFY・WU_QUERY.

参照元 CEditWnd::OnEditTimer().

BOOL CEditDoc::Create | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | CImageListMgr * |
 | ) |

CEditDoc.cpp の 168 行で定義されています。

参照先 CPropTypes::Create()・CPropCommon::Create()・CEditView::Create()・CSplitterWnd::Create()・CHokanMgr::DoModeless()・FALSE・CFuncLookup::Init()・m_cEditViewArr・m_cFuncLookup・m_cHokanMgr・CEditWnd::m_CMenuDrawer・DLLSHAREDATA::m_Common・m_cPropCommon・m_cPropTypes・m_cSplitterWnd・m_hInstance・m_hWnd・CEditView::m_hWnd・CWnd::m_hWnd・m_hwndParent・m_pcEditWnd・m_pcSMacroMgr・m_pShareData・MY_RUNNINGTIMER・MY_TRACETIME・CEditView::OnKillFocus()・CEditView::OnSetFocus()・CSplitterWnd::SetChildWndArr()・TRUE.

参照元 CEditWnd::Create().

BOOL CEditDoc::DetectWidthOfLineNumberAreaAllPane ( BOOL bRedraw )

CEditDoc.cpp の 3245 行で定義されています。

参照先 CEditView::DetectWidthOfLineNumberArea()・FALSE・CSplitterWnd::GetAllSplitCols()・CSplitterWnd::GetAllSplitRows()・m_cEditViewArr・m_cSplitterWnd・m_nActivePaneIndex.

LRESULT CEditDoc::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditDoc.cpp の 233 行で定義されています。

参照先 CEditView::DispatchEvent()・m_cEditViewArr・m_nActivePaneIndex.

void CEditDoc::DoFileLock ( void ) [protected]

CEditDoc.cpp の 1744 行で定義されています。

参照先 BOOL・DoFileUnLock()・FALSE・GetFilePath()・GSTR_APPNAME・IsFilePathAvailable()・m_bReadOnly・DLLSHAREDATA::m_Common・m_hLockedFile・m_hWnd・Common::m_nFileShareMode・m_nFileShareModeOld・m_pShareData・MYMESSAGEBOX・NULL・SetParentCaption()・TRUE.

参照元 OnChangeSetting().

void CEditDoc::DoFileUnLock ( void ) [protected]

CEditDoc.cpp の 1861 行で定義されています。

参照先 m_hLockedFile・m_nFileShareModeOld・NULL.

参照元 DoFileLock()・FileWrite()・Init()・OnChangeSetting()・~CEditDoc().

void CEditDoc::ExpandParameter | ( | const char * | pszSource,
 |  | char * | pszBuffer,
 |  | int | nBufferLen
 | ) |

$xの展開

特殊文字は以下の通り

  • $ $自身
  • F 開いているファイルのフルパス。名前がなければ(無題)。
  • f 開いているファイルの名前（ファイル名+拡張子のみ）
  • g 開いているファイルの名前（拡張子除く）
  • / 開いているファイルの名前（フルパス。パスの区切りが/）
  • N 開いているファイルの名前(簡易表示)
  • C 現在選択中のテキスト
  • x 現在の物理桁位置(先頭からのバイト数1開始)
  • y 現在の物理行位置(1開始)
  • d 現在の日付(共通設定の日付書式)
  • t 現在の時刻(共通設定の時刻書式)
  • p 現在のページ
  • P 総ページ
  • D ファイルのタイムスタンプ(共通設定の日付書式)
  • T ファイルのタイムスタンプ(共通設定の時刻書式)
  • V エディタのバージョン文字列
  • h Grep検索キーの先頭32byte
  • S サクラエディタのフルパス
  • I iniファイルのフルパス
  • M 現在実行しているマクロファイルパス
日付:
2003.04.03 genta strncpy_ex導入によるfor文の削減

2005.09.15 FILE 特殊文字S, M追加

CEditDoc.cpp の 4053 行で定義されています。

参照元 CEditView::Command_TRACEOUT()・CPrintPreview::DrawFooter()・CPrintPreview::DrawHeader()・CMacro::HandleFunction()・SetParentCaption().

int CEditDoc::ExParam_Evaluate ( const char * pCond )

条件の評価

引数:
pCond [in] 条件種別先頭．'?'までを条件と見なして評価する
戻り値:
評価の値
覚え書き:
ポインタの読み飛ばし作業は行わないので，'?'までの読み飛ばしは 呼び出し側で別途行う必要がある．
作者:
genta
日付:
2003.03.31 genta 作成

CEditDoc.cpp の 4442 行で定義されています。

参照先 IsModified()・m_bDebugMode・m_bGrepMode・m_bReadOnly・DLLSHAREDATA::m_bRecordingKeyMacro・m_hLockedFile・m_hwndParent・DLLSHAREDATA::m_hwndRecordingKeyMacro・m_nFileShareModeOld・m_pShareData・NULL・TRUE.

const char * CEditDoc::ExParam_SkipCond | ( | const char * | pszSource,
 |  | int | part
 | ) |

処理の読み飛ばし

条件分岐の構文 ${cond:A0$:A1$:A2$:..$} において， 指定した番号に対応する位置の先頭へのポインタを返す． 指定番号に対応する物が無ければ$}の次のポインタを返す．

${が登場した場合にはネストと考えて$}まで読み飛ばす．

引数:
pszSource | [in] スキャンを開始する文字列の先頭．cond:の次のアドレスを渡す．
part | [in] 移動する番号＝読み飛ばす$:の数．-1を与えると最後まで読み飛ばす．
戻り値:
移動後のポインタ．該当領域の先頭かあるいは$}の直後．
作者:
genta
日付:
2003.03.31 genta 作成

CEditDoc.cpp の 4393 行で定義されています。

void CEditDoc::FileClose ( void )

CEditDoc_new.cpp の 1360 行で定義されています。

参照先 Init()・InitAllView()・OnFileClose()・SetParentCaption().

参照元 CEditView::Command_FILECLOSE().

void CEditDoc::FileCloseOpen | ( | const char * | filename = NULL,
 |  | int | nCharCode = CODE_AUTODETECT,
 |  | BOOL | bReadOnly = FALSE
 | ) |

CEditDoc_new.cpp の 1386 行で定義されています。

参照先 _MAX_PATH・Init()・InitAllView()・m_hWnd・NULL・OnFileClose()・OpenFile()・OpenFileDialog()・SetParentCaption().

参照元 CEditView::Command_FILECLOSE_OPEN().

BOOL CEditDoc::FileRead | ( | char * | pszPath,
 |  | BOOL * | pbOpened,
 |  | int | nCharCode,
 |  | BOOL | bReadOnly,
 |  | BOOL | bConfirmCodeChange
 | ) |

ファイルを開く

戻り値:
成功: TRUE/pbOpened==FALSE, 既に開かれている: FALSE/pbOpened==TRUE 失敗: FALSE/pbOpened==FALSE
覚え書き:
genta 近いうちに見直した方がいいな．
日付:
2000.01.18 システム属性のファイルが開けない問題

2000.05,12 genta 改行コードの設定

2000.10.25 genta 文字コードの異常な値をチェック

2000.11.20 genta IME状態の設定

2001.12.26 YAZAKI MRUリストは、CMRUに依頼する

2002.01.16 hor ブックマーク復元

2002.10.19 genta 読み取り不可のファイルは文字コード判別で失敗する

2003.03.28 MIK 改行の真ん中にカーソルが来ないように

2003.07.26 ryoji BOM引数追加

2002.05.26 Moca gm_pszCodeNameArr_1 を使うように変更

2004.06.18 moca ファイルが開けなかった場合にpbOpenedがFALSEに初期化されていなかった．

2004.10.09 genta 存在しないファイルを開こうとしたときに フラグに応じて警告を出す（以前の動作）ように

2006.12.16 じゅうじ 前回の文字コードを優先する

2007.03.12 maru ファイルが存在しなくても前回の文字コードを継承 多重オープン処理をCEditDocIsPathOpenedに移動

引数:
pszPath | [in/out]
pbOpened | [out] すでに開かれていたか
nCharCode | [in] 文字コード種別
bReadOnly | [in] 読み取り専用か
bConfirmCodeChange | [in] 文字コード変更時の確認をするかどうか

CEditDoc.cpp の 392 行で定義されています。

参照先 _MAX_PATH・BOOL・CODE_AUTODETECT・FALSE・CShareData::getInstance()・GSTR_APPNAME・IsTextSelected()・m_bReadOnly・m_cEditViewArr・m_hWnd・CEditWnd::m_hwndProgressBar・m_pcEditWnd・MYMESSAGEBOX・NULL・OpenFileDialog()・TRUE.

参照元 OpenFile()・ReloadCurrentFile().

BOOL CEditDoc::FileSave | ( | bool | warnbeep = true,
 |  | bool | askname = true
 | ) |

上書き保存

引数:
warnbeep | [in] true: 保存不要 or 保存禁止のときに警告を出す
askname | [in] true: ファイル名未設定の時に入力を促す
日付:
2006.12.30 ryoji CEditView::Command_FILESAVE()から処理本体を切り出し

CEditDoc_new.cpp の 1425 行で定義されています。

参照先 CEditView::DrawCaretPosInfo()・FALSE・FileSaveAs_Dialog()・GetFilePath()・GSTR_APPNAME・IsFilePathAvailable()・IsModified()・Common::m_bEnableUnmodifiedOverwrite・m_bReadOnly・m_cEditViewArr・DLLSHAREDATA::m_Common・m_hWnd・m_nActivePaneIndex・m_pShareData・MYMESSAGEBOX・SaveFile()・TRUE.

参照元 CEditView::Command_FILESAVE()・OnFileClose().

BOOL CEditDoc::FileSaveAs ( const char * filename )

CEditDoc_new.cpp の 1523 行で定義されています。

参照先 CEditView::DrawCaretPosInfo()・FALSE・m_cEditViewArr・m_nActivePaneIndex・m_nCharCode・OnChangeSetting()・ReloadCurrentFile()・SaveFile()・TRUE.

参照元 CEditView::Command_FILESAVEAS()・FileSaveAs_Dialog().

BOOL CEditDoc::FileSaveAs_Dialog ( void )

名前を付けて保存ダイアログ

日付:
2006.12.30 ryoji CEditView::Command_FILESAVEAS_DIALOG()から処理本体を切り出し

CEditDoc_new.cpp の 1480 行で定義されています。

参照先 _MAX_PATH・FALSE・FileSaveAs()・GetFilePath()・GSTR_APPNAME・IsReadOnly()・m_bBomExist・m_bReadOnly・m_cSaveLineCode・m_hWnd・m_nCharCode・MYMESSAGEBOX・SaveFileDialog()・TRUE.

参照元 CEditView::Command_FILESAVEAS_DIALOG()・FileSave()・OnFileClose().

BOOL CEditDoc::FileWrite | ( | const char * | pszPath,
 |  | enumEOLType | cEolType
 | ) |

ファイルの保存

引数:
pszPath | [in] 保存ファイル名
cEolType | [in] 改行コード種別
pszPathはNULLであってはならない。

日付:
Feb. 9, 2001 genta 改行コード用引数追加

CEditDoc.cpp の 822 行で定義されています。

参照先 BOOL・DoFileUnLock()・FALSE・Common::m_bBackUp・m_bBomExist・m_cDocLineMgr・DLLSHAREDATA::m_Common・m_eWatchUpdate・m_FileTime・m_hWnd・CEditWnd::m_hwndProgressBar・m_nCharCode・m_pcEditWnd・m_pShareData・MakeBackUp()・MYMESSAGEBOX・NULL・TRUE・CDocLineMgr::WriteFile()・WU_NONE.

参照元 SaveFile().

bool CEditDoc::FormatBackUpPath | ( | char * | szNewPath,
 |  | const char * | target_file
 | ) | [protected]

バックアップの作成

引数:
[out] | szNewPath | バックアップ先パス名
[in] | target_file | バックアップ元パス名
作者:
aroka
日付:
2005.11.29 aroka MakeBackUpから分離．書式を元にバックアップファイル名を作成する機能追加
戻り値:
true
TODO:
Advanced modeでの世代管理

CEditDoc.cpp の 1502 行で定義されています。

参照先 _MAX_DIR・_MAX_EXT・_MAX_FNAME・AddLastYenFromDirectoryPath()・BKUP_MONTH・BKUP_YEAR・Common::GetBackupOpt()・Common::GetBackupType()・Common::m_bBackUpFolder・Common::m_bBackUpPathAdvanced・DLLSHAREDATA::m_Common・m_pShareData・Common::m_szBackUpFolder.

参照元 MakeBackUp().

int CEditDoc::GetActivePane ( void )

CEditDoc.cpp の 3216 行で定義されています。

参照先 m_nActivePaneIndex.

参照元 CEditView::DispatchEvent()・CEditView::ShowEditCaret().

Types& CEditDoc::GetDocumentAttribute ( void ) const [inline]

< 設定された文書情報への参照を返す

CEditDoc.h の 165 行で定義されています。

参照元 CEditView::CaretUnderLineOFF()・CEditView::CaretUnderLineON()・CEditDoc()・CEditView::Command_CHAR()・CEditView::Command_FUNCLIST()・CEditView::Command_GOLINETOP()・CEditView::Command_HOKAN()・CEditView::Command_INDENT_TAB()・CEditView::Create()・CEditView::DetectWidthOfLineNumberArea()・CEditView::DetectWidthOfLineNumberArea_calculate()・CEditView::DispLineNew()・CEditView::DispLineNumber()・CEditView::DispRuler()・CEditView::DispText()・CEditView::DispTextSelected()・CEditView::DispVerticalLines()・CEditView::DrawBracketPair()・CEditView::DrawCaretPosInfo()・CEditView::DrawRulerCaret()・CEditView::DrawSelectArea()・CEditView::GetColorIndex()・CLayoutMgr::getIndentOffset_LeftSpace()・Init()・CEditView::KeySearchCore()・CEditView::KeyWordHelpSearchDict()・MakeFuncList_RuleFile()・CEditView::MoveCursorProperly()・CEditView::MoveCursorToPoint()・CEditView::OnChangeSetting()・OnChangeSetting()・CEditView::OnLBUTTONDBLCLK()・CEditView::OnMOUSEMOVE()・CEditView::OnPaint()・CEditView::OnRBUTTONDOWN()・CEditView::OnSize()・CEditWnd::PrintPreviewModeONOFF()・CEditView::ScrollAtV()・CEditView::SetBracketPairPos()・CEditView::SetCurrentColor()・CDlgProperty::SetData()・CDlgJump::SetData()・SetDocumentIcon()・CEditView::SetFont()・CEditView::ShowHokanMgr()・CEditView::ShowKeywordHelp().

bool CEditDoc::GetDocumentLockState ( void ) [inline]

CEditDoc.h の 148 行で定義されています。

int CEditDoc::GetDocumentType ( void ) const [inline]

< 文書種別の読み出し

CEditDoc.h の 161 行で定義されています。

参照元 CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP()・CEditView::Command_HOKAN()・CEditView::Command_OPTION_TYPE()・CEditView::Command_TYPE_LIST()・CEditView::KeySearchCore().

const char * CEditDoc::GetFileName ( void ) const

ファイル名(パスなし)を取得

ファイル名(パスなし)を取得する

作者:
Moca
日付:
2002.10.13

CEditDoc_new.cpp の 1192 行で定義されています。

参照先 _IS_SJIS_1・_IS_SJIS_2・GetFilePath().

参照元 CEditView::Command_COPYFILENAME()・CEditView::Command_TagJumpByTagsFile()・CEditView::Command_TagJumpByTagsFileKeyword()・CEditView::Command_TagsMake().

const char* CEditDoc::GetFilePath ( void ) const [inline]

CEditDoc.h の 138 行で定義されています。

参照元 CheckAutoSave()・CheckFileTimeStamp()・CEditView::Command_COMPARE()・CEditView::Command_COPYPATH()・CEditView::Command_COPYTAG()・CEditView::Command_Diff()・CEditView::Command_Diff_Dialog()・CEditView::Command_FILE_REOPEN()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::Command_TagJumpByTagsFile()・CEditView::Command_TagJumpByTagsFileKeyword()・CEditView::Command_TagsMake()・DoFileLock()・FileSave()・FileSaveAs_Dialog()・GetFileName()・CMacro::HandleFunction()・Init()・MakeFuncList_VisualBasic()・OnChangeSetting()・OnFileClose()・CEditWnd::OnMouseMove()・CEditView::OPEN_ExtFromtoExt()・OpenFileDialog()・ReloadCurrentFile()・SaveFileDialog()・CDlgProperty::SetData()・SetDocumentIcon()・SetFileInfo().

CEOL CEditDoc::GetNewLineCode ( ) const [inline]

CEditDoc.h の 120 行で定義されています。

参照元 CEditView::Command_CHAR()・CEditView::DrawCaretPosInfo()・CEditWnd::IsFuncChecked().

BOOL CEditDoc::HandleCommand ( int nCommand )

コマンドコードによる処理振り分け

引数:
[in] nCommand MAKELONG( コマンドコード，送信元識別子 )
日付:
2006.05.19 genta 上位16bitに送信元の識別子が入るように変更

2007.06.20 ryoji グループ内で巡回するように変更

CEditDoc.cpp の 3278 行で定義されています。

参照先 F_PREVWINDOW・CShareData::getInstance()・CShareData::GetOpenedWindowArr()・CSplitterWnd::GetPrevPane()・m_cSplitterWnd・m_hWnd・m_hwndParent・SetActivePane()・TRUE.

参照元 CEditWnd::OnCommand().

void CEditDoc::Init ( void )

CEditDoc.cpp の 3723 行で定義されています。

参照先 COpeBuf::ClearAll()・DoFileUnLock()・CDocLineMgr::Empty()・EOL_CRLF・FALSE・GetDocumentAttribute()・CShareData::GetDocumentType()・GetFilePath()・CShareData::getInstance()・CShareData::GetShareData()・CDocLineMgr::Init()・m_bBomExist・m_bDebugMode・m_bGrepMode・Common::m_bIsINSMode・m_bReadOnly・m_cDocLineMgr・m_cLayoutMgr・m_cNewLineCode・DLLSHAREDATA::m_Common・m_cOpeBuf・m_eWatchUpdate・m_FileTime・m_nCharCode・m_nFileShareModeOld・m_pcEditWnd・m_pShareData・m_szGrepKey・NULL・CEditWnd::SetDebugModeOFF()・SetDocumentType()・SetFilePath()・SetInsMode()・CLayoutMgr::SetLayoutInfo()・SetModified()・CEOL::SetType()・TRUE・WU_QUERY.

参照元 FileClose()・FileCloseOpen()・ReloadCurrentFile().

void CEditDoc::InitAllView ( )

CEditDoc.cpp の 3798 行で定義されています。

参照先 CEditView::DisableSelectArea()・FALSE・m_cEditViewArr・CEditView::m_nCaretPosX_Prev・m_nCommandExecNum・CEditView::MoveCursor()・CEditView::OnChangeSetting()・TRUE.

参照元 FileClose()・FileCloseOpen()・ReloadCurrentFile().

BOOL CEditDoc::IsEnablePaste ( void )

クリップボードから貼り付け可能か？

CEditDoc.cpp の 1192 行で定義されています。

参照先 FALSE・TRUE.

参照元 CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditWnd::IsFuncEnable()・CDlgReplace::OnBnClicked().

BOOL CEditDoc::IsEnableRedo ( void )

Redo(やり直し)可能な状態か？

CEditDoc.cpp の 1183 行で定義されています。

参照先 COpeBuf::IsEnableRedo()・m_cOpeBuf.

参照元 CEditView::Command_REDO().

BOOL CEditDoc::IsEnableUndo ( void )

CEditDoc.cpp の 1175 行で定義されています。

参照先 COpeBuf::IsEnableUndo()・m_cOpeBuf.

参照元 CEditView::Command_UNDO().

bool CEditDoc::IsFileOpenInThisWindow ( void ) [inline]

このウィンドウで新しいファイルを開けるか

新しいウィンドウを開かずに現在のウィンドウを再利用できるかどうかのテストを行う． 変更済み，ファイルを開いている，Grepウィンドウ，アウトプットウィンドウの場合には 再利用不可．

作者:
Moca
日付:
2005.06.24 Moca

CEditDoc.h の 202 行で定義されています。

参照元 OpenFile().

bool CEditDoc::IsFilePathAvailable ( void ) const [inline]

CEditDoc.h の 139 行で定義されています。

参照元 CheckAutoSave()・CheckFileTimeStamp()・CEditView::Command_BROWSE()・CEditView::Command_COPYFILENAME()・CEditView::Command_COPYPATH()・CEditView::Command_COPYTAG()・CEditView::Command_GREP()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::Command_TagJumpByTagsFile()・CEditView::Command_TagJumpByTagsFileKeyword()・CEditView::Command_TagsMake()・DoFileLock()・FileSave()・OnFileClose()・CEditWnd::OnMouseMove()・CPrintPreview::OnPrint()・OpenFileDialog()・SaveFileDialog().

bool CEditDoc::IsInsMode ( ) const [inline]

CEditDoc.h の 215 行で定義されています。

参照元 CEditView::IsInsMode().

bool CEditDoc::IsModificationForbidden ( int nCommand )

CEditDoc_new.cpp の 450 行で定義されています。

参照先 F_ADDTAIL・F_CHAR・F_CHGMOD_INS・F_CODECNV_AUTO2SJIS・F_CODECNV_EMAIL・F_CODECNV_EUC2SJIS・F_CODECNV_SJIS2EUC・F_CODECNV_SJIS2JIS・F_CODECNV_SJIS2UTF7・F_CODECNV_SJIS2UTF8・F_CODECNV_UNICODE2SJIS・F_CODECNV_UNICODEBE2SJIS・F_CODECNV_UTF72SJIS・F_CODECNV_UTF82SJIS・F_CTRL_CODE_DIALOG・F_CUT・F_CUT_LINE・F_DELETE・F_DELETE_BACK・F_DELETE_LINE・F_DUPLICATELINE・F_HANKATATOZENKAKUHIRA・F_HANKATATOZENKAKUKATA・F_HOKAN・F_IME_CHAR・F_INDENT_SPACE・F_INDENT_TAB・F_INS_DATE・F_INS_TIME・F_INSTEXT・F_LineCutToEnd・F_LineCutToStart・F_LineDeleteToEnd・F_LineDeleteToStart・F_LTRIM・F_MERGE・F_PASTE・F_PASTEBOX・F_REDO・F_REPLACE・F_REPLACE_ALL・F_REPLACE_DIALOG・F_RTRIM・F_SORT_ASC・F_SORT_DESC・F_SPACETOTAB・F_TABTOSPACE・F_TOHANEI・F_TOHANKAKU・F_TOHANKATA・F_TOLOWER・F_TOUPPER・F_TOZENEI・F_TOZENKAKUHIRA・F_TOZENKAKUKATA・F_UNDO・F_UNINDENT_SPACE・F_UNINDENT_TAB・F_WordCut・F_WordDelete・F_WordDeleteToEnd・F_WordDeleteToStart・FALSE・m_bReadOnly・m_hLockedFile・m_nFileShareModeOld・NULL.

参照元 CEditView::HandleCommand()・CEditWnd::IsFuncEnable().

bool CEditDoc::IsModified ( void ) const [inline]

ファイルが修正中かどうか

戻り値:
true | ファイルは修正されている
false | ファイルは修正されていない

CEditDoc.h の 183 行で定義されています。

参照元 CheckAutoSave()・CheckFileTimeStamp()・CEditView::Command_Diff()・CEditView::Command_FILE_REOPEN()・CEditView::Command_GREP()・CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS()・CEditView::DispLineNumber()・ExParam_Evaluate()・FileSave()・OnFileClose()・CDlgProperty::SetData()・SetFileInfo().

BOOL CEditDoc::IsReadOnly ( void ) [inline]

ReadOnly状態の読み出し

CEditDoc.h の 173 行で定義されています。

参照先 m_bReadOnly.

参照元 CEditView::DragEnter()・FileSaveAs_Dialog().

BOOL CEditDoc::IsTextSelected ( void )

テキストが選択されているか

CEditDoc.cpp の 267 行で定義されています。

参照先 CEditView::IsTextSelected()・m_cEditViewArr・m_nActivePaneIndex.

参照元 FileRead().

void CEditDoc::LockDocumentType ( void ) [inline]

CEditDoc.h の 146 行で定義されています。

参照元 CEditView::Command_TYPE_LIST().

int CEditDoc::MakeBackUp ( const char * target_file )

バックアップの作成

作者:
genta
日付:
2001.06.12 asa-o ファイルの時刻を元にバックアップファイル名を作成する機能

2001.12.11 MIK バックアップファイルをゴミ箱に入れる機能

2004.06.05 genta バックアップ対象ファイルを引数で与えるように． 名前を付けて保存の時は自分のバックアップを作っても無意味なので． また，バックアップも保存も行わない選択肢を追加．

2005.11.26 aroka ファイル名生成をFormatBackUpPathに分離

戻り値:
0 | バックアップ作成失敗．
1 | バックアップ作成成功．
2 | バックアップ作成失敗．保存中断指示．
3 | ファイル操作エラーによるバックアップ作成失敗．
TODO:
Advanced modeでの世代管理

CEditDoc.cpp の 1273 行で定義されています。

参照先 _MAX_PATH・FormatBackUpPath()・Common::GetBackupType()・IsLocalDrive()・Common::m_bBackUpDialog・Common::m_bBackUpDustBox・Common::m_bBackUpFolder・DLLSHAREDATA::m_Common・m_hWnd・m_pShareData・Common::m_szBackUpFolder・MYMESSAGEBOX.

参照元 FileWrite().

void CEditDoc::MakeFuncList_BookMark ( CFuncInfoArr * pcFuncInfoArr )

ブックマークリスト作成（無理矢理！）

日付:
2002.01.19 aroka 空行をマーク対象にするフラグ bMarkUpBlankLineEnable を導入しました。

2005.10.11 ryoji "ａ@" の右２バイトが全角空白と判定される問題の対処

2005.11.03 genta 文字列長修正．右端のゴミを除去

空行をマーク対象にするフラグ 20020119 aroka

CEditDoc_new.cpp の 1074 行で定義されています。

参照先 BOOL・CEOL::GetLen()・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineInfo()・CDocLineMgr::GetLineStr()・CDocLine::IsBookMarked()・Common::m_bMarkUpBlankLineEnable・m_cDocLineMgr・m_cNewLineCode・DLLSHAREDATA::m_Common・m_pShareData・NULL.

void CEditDoc::MakeFuncList_C | ( | CFuncInfoArr * | pcFuncInfoArr,
 |  | bool | bVisibleMemberFunc = true
 | ) |

C/C++関数リスト作成

引数:
bVisibleMemberFunc クラス、構造体定義内のメンバ関数の宣言をアウトライン解析結果に登録する場合はtrue
MODE一覧
  • 0 通常
  • 20 Single quotation文字列読み込み中
  • 21 Double quotation文字列読み込み中
  • 8 コメント読み込み中
  • 1 単語読み込み中
  • 2 記号列読み込み中
  • 999 長過ぎる単語無視中
FuncIdの値の意味
10の位で目的別に使い分けている．C/C++用は10位が0
  • 1: 宣言
  • 2: 通常の関数 (追加文字列無し)
  • 3: クラス("クラス")
  • 4: 構造体 ("構造体")
  • 5: 列挙体("列挙体")
  • 6: 共用体("共用体")
  • 7: 名前空間("名前空間")
引数:
pcFuncInfoArr [out] 関数一覧を返すためのクラス。 ここに関数のリストを登録する。
状態2

< 通常

< ネームスペース名調査中

< テンプレートクラス名調査中

< ネームスペース名調査完了。(';' '{' を読み込んだ時点で「通常」になる。 )

< 関数名調査完了。(';' '{' を読み込んだ時点で「通常」になる。 )

< '='の後。

< K&Rスタイルの関数定義を調査する。

< ネスト可能なネームスペース、クラス等の最大数

< ネームスペース全体の長さ

< 最大のネームスペース全体の長さ

< 現在のネームスペース(終端がになっているとは限らないので注意)

< すぐ前の 関数名 or クラス名 or 構造体名 or 共用体名 or 列挙体名 or ネームスペース名

< すぐ前の 関数 or クラス or 構造体 or 共用体 or 列挙体 or ネームスペースのある行

CEditDoc_FuncList1.cpp の 277 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・CMemory::GetSizeOfChar()・m_cDocLineMgr・CCppPreprocessMng::ScanLine().

void CEditDoc::MakeFuncList_Java ( CFuncInfoArr * )

CEditDoc_new.cpp の 34 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・CMemory::GetSizeOfChar()・m_cDocLineMgr.

void CEditDoc::MakeFuncList_Perl ( CFuncInfoArr * pcFuncInfoArr )

Perl用アウトライン解析機能（簡易版）

単純に /^\s*sub\s+(\w+)/ に一致したら $1を取り出す動作を行う。 ネストとかは面倒くさいので考えない。 package{ }を使わなければこれで十分．無いよりはまし。

nModeの意味
  • 0: はじめ
  • 2: subを見つけた後
  • 1: 単語読み出し中
日付:
2005.06.18 genta パッケージ区切りを表す ::と'を考慮するように

CEditDoc_new.cpp の 594 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・CMemory::GetSizeOfChar()・m_cDocLineMgr.

void CEditDoc::MakeFuncList_PLSQL ( CFuncInfoArr * pcFuncInfoArr )

PL/SQL関数リスト作成

CEditDoc.cpp の 1878 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・CMemory::GetSizeOfChar()・m_cDocLineMgr.

参照元 CDlgJump::SetData().

void CEditDoc::MakeFuncList_python ( CFuncInfoArr * pcFuncInfoArr )

python関数リスト作成

class, def で始まる行から名前を抜き出す．

class CLASS_NAME( superclass ): def FUNCTION_NAME( parameters ):

文字列とコメントを除外する必要がある．

通常の行頭の場合に関数・クラス判定と登録処理を行う． Python特有の空白の数を数えてネストレベルを判定する． indent_levelを配列として用いており，インデントレベルごとのスペース数を格納する． なお，TABは8桁区切りへの移動と解釈することになっている．

通常の行頭でない(文字列中および継続行)，あるいは行頭の処理完了後は 状態機械 python_analyze_state に判定処理を依頼する．

文字列
'' "" 両方OK 引用符3連続でロング文字列 直前にrかRがあったらエスケープ記号を無視(ただし改行のエスケープは有効)
コメント
#で始まり，行の継続はない．
日付:
2007.02.08 genta 新規作成

CEditDoc_FuncList2.cpp の 400 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・COutlinePython::IsLogicalLineTop()・m_cDocLineMgr.

void CEditDoc::MakeFuncList_RuleFile ( CFuncInfoArr * pcFuncInfoArr )

ルールファイルを元に、トピックリストを作成

日付:
2002.04.01 YAZAKI

2002.11.03 Moca ネストの深さが最大値を超えるとバッファオーバーランするのを修正 最大値以上は追加せずに無視する

CEditDoc.cpp の 2457 行で定義されています。

参照先 GetDocumentAttribute()・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・m_cDocLineMgr・NULL・ReadRuleFile().

void CEditDoc::MakeFuncList_VisualBasic ( CFuncInfoArr * pcFuncInfoArr )

Visual Basic関数リスト作成（簡易版）

Visual Basicのコードから単純にユーザー定義の関数やステートメントを取り出す動作を行う。

Jul 10, 2003 little YOSHI 細かく解析するように変更 すべてのキーワードは自動的に成形されるので、大文字小文字は完全に一致する。 フォームやモジュールだけではなく、クラスにも対応。 ただし、Constの「,」で連続宣言には未対応 Jul. 21, 2003 genta キーワードの大文字・小文字を同一視するようにした Aug 7, 2003 little YOSHI ダブルクォーテーションで囲まれたテキストを無視するようにした 関数名などをVBの名前付け規則より255文字に拡張

CEditDoc_new.cpp の 733 行で定義されています。

参照先 _stricmp・GetFilePath()・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・CMemory::GetSizeOfChar()・m_cDocLineMgr・NULL.

void CEditDoc::MakeTopicList_asm ( CFuncInfoArr * pcFuncInfoArr )

アセンブラ アウトライン解析

作者:
MIK
日付:
2004.04.12 作り直し

CEditDoc.cpp の 2674 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・m_cDocLineMgr・MAX_ASM_TOKEN・my_strtok()・NULL.

void CEditDoc::MakeTopicList_cobol ( CFuncInfoArr * pcFuncInfoArr )

COBOL アウトライン解析

CEditDoc.cpp の 2573 行で定義されています。

参照先 BOOL・CR・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・LF・m_cDocLineMgr・NULL.

void CEditDoc::MakeTopicList_html ( CFuncInfoArr * pcFuncInfoArr )

HTML アウトライン解析

作者:
zenryaku
日付:
2003.05.20 zenryaku 新規作成

2004.04.19 zenryaku 空要素を判定

2004.04.20 Moca コメント処理と、不明な終了タグを無視する処理を追加

CEditDoc.cpp の 2868 行で定義されています。

参照先 BOOL・FALSE・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・m_cDocLineMgr.

void CEditDoc::MakeTopicList_tex ( CFuncInfoArr * pcFuncInfoArr )

TeX アウトライン解析

作者:
naoh
日付:
2003.07.21 naoh 新規作成

2005.01.03 naoh 「マ」などの"}"を含む文字に対する修正、prosperのslideに対応

CEditDoc.cpp の 3038 行で定義されています。

参照先 _IS_SJIS_1・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・m_cDocLineMgr.

void CEditDoc::MakeTopicList_txt ( CFuncInfoArr * pcFuncInfoArr )

テキスト・トピックリスト作成

日付:
2002.04.01 YAZAKI CDlgFuncList::SetText()を使用するように改訂。

2002.11.03 Moca 階層が最大値を超えるとバッファオーバーランするのを修正 最大値以上は追加せずに無視する

CEditDoc.cpp の 2224 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・m_cDocLineMgr・DLLSHAREDATA::m_Common・m_pShareData・Common::m_szMidashiKigou・NULL.

void CEditDoc::MakeTopicList_wztxt ( CFuncInfoArr * pcFuncInfoArr )

階層付きテキスト アウトライン解析

作者:
zenryaku
日付:
2003.05.20 zenryaku 新規作成

2003.05.25 genta 実装方法一部修正

2003.06.21 Moca 階層が2段以上深くなる場合を考慮

CEditDoc.cpp の 2787 行で定義されています。

参照先 _IS_SJIS_1・CFuncInfoArr::AppendData()・CLayoutMgr::CaretPos_Phys2Log()・FUNCINFO_NOCLIPTEXT・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・m_cDocLineMgr・m_cLayoutMgr.

void CEditDoc::OnChangeSetting ( void )

ビューに設定変更を反映させる

日付:
2004.06.09 Moca レイアウト再構築中にProgress Barを表示する．

CEditDoc.cpp の 3512 行で定義されています。

参照先 DoFileLock()・DoFileUnLock()・GetDocumentAttribute()・CShareData::GetDocumentType()・GetFilePath()・CShareData::getInstance()・CShareData::GetShareData()・m_cEditViewArr・m_cLayoutMgr・DLLSHAREDATA::m_Common・CEditWnd::m_hwndProgressBar・Common::m_nFileShareMode・m_nFileShareModeOld・m_pcEditWnd・m_pShareData・NULL・SavePhysPosOfAllView()・SetDocumentType()・CLayoutMgr::SetLayoutInfo()・CShareData::TransformFileName_MakeCache()・TRUE.

参照元 CEditView::Command_TYPE_LIST()・FileSaveAs().

BOOL CEditDoc::OnFileClose ( void )

ファイルを閉じるときのMRU登録 & 保存確認 ＆ 保存実行

戻り値:
TRUE,: 終了して良い / FALSE: 終了しない

CEditDoc.cpp の 3629 行で定義されています。

参照先 ActivateFrameWindow()・AddToMRU()・FALSE・FileSave()・FileSaveAs_Dialog()・GetFilePath()・GSTR_APPNAME・IsFilePathAvailable()・IsModified()・m_bDebugMode・Common::m_bGrepExitConfirm・m_bGrepMode・m_bGrepRunning・m_bReadOnly・DLLSHAREDATA::m_Common・m_hWnd・m_pShareData・MYMESSAGEBOX・TRUE.

参照元 FileClose()・FileCloseOpen()・CEditWnd::OnClose().

void CEditDoc::OnMove | ( | int | ,
 |  | int | ,
 |  | int | ,
 |  | int |
 | ) |

CEditDoc.cpp の 255 行で定義されています。

参照先 m_cSplitterWnd・CWnd::m_hWnd・TRUE.

void CEditDoc::OpenFile | ( | const char * | filename = NULL,
 |  | int | nCharCode = CODE_AUTODETECT,
 |  | BOOL | bReadOnly = FALSE
 | ) |

指定されたファイルを開く

現在の編集状況に応じて，現在のウィンドウに読み込むか，新しいウィンドウを開くか あるいは既に開かれているウィンドウにフォーカスを移すだけにするかを決定し， 実行する．

対象ファイル，エディタウィンドウの状況に依らず新しいファイルを開きたい場合に 使用する．

日付:
2003.03.30 genta 「閉じて開く」から利用するために引数追加

2004.10.09 CEditViewより移動

2007.03.12 maru 重複コード(多重オープン処理部分など)をCShareDataIsPathOpenedに移動

CEditDoc_new.cpp の 1267 行で定義されています。

参照先 _MAX_PATH・BOOL・FileRead()・CShareData::getInstance()・GetLongFileName()・GSTR_APPNAME・IsFileOpenInThisWindow()・Common::m_bQueryIfCodeChange・DLLSHAREDATA::m_Common・m_hInstance・m_hWnd・m_pShareData・MYMESSAGEBOX・NULL・OpenFileDialog()・CEditApp::OpenNewEditor().

参照元 CEditView::Command_FILEOPEN()・FileCloseOpen()・CEditWnd::OnCommand().

BOOL CEditDoc::OpenFileDialog | ( | HWND | ,
 |  | const char * | ,
 |  | char * | ,
 |  | int * | ,
 |  | BOOL * |
 | ) |

CEditDoc.cpp の 940 行で定義されています。

参照先 _MAX_PATH・ActivateFrameWindow()・BOOL・CDlgOpenFile::Create()・CDlgOpenFile::DoModalOpenDlg()・GetFilePath()・CMRUFolder::GetPathList()・CMRU::GetPathList()・IsFilePathAvailable()・CMRUFolder::Length()・CMRU::Length()・m_cDlgOpenFile・m_hInstance・NULL.

参照元 FileCloseOpen()・FileRead()・CEditWnd::OnCommand()・OpenFile().

BOOL CEditDoc::OpenPropertySheet ( int nPageNum )

共通設定 プロパティシート

CEditDoc.cpp の 1095 行で定義されています。

参照先 CPropCommon::ApplyData()・BOOL・CPropCommon::DoPropertySheet()・CShareData::getInstance()・CPropCommon::InitData()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・m_cEditViewArr・DLLSHAREDATA::m_Common・m_cPropCommon・DLLSHAREDATA::m_hwndTray・Common::m_lf_kh・m_pShareData・MYWM_CHANGESETTING・CShareData::ResetGroupId().

参照元 CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP()・CEditView::Command_OPTION().

BOOL CEditDoc::OpenPropertySheetTypes | ( | int | nPageNum,
 |  | int | nSettingType
 | ) |

タイプ別設定 プロパティシート

CEditDoc.cpp の 1136 行で定義されています。

参照先 CPropTypes::DoPropertySheet()・CShareData::getInstance()・CPropTypes::GetTypeData()・m_cPropTypes・m_hwndParent・DLLSHAREDATA::m_hwndTray・m_pShareData・DLLSHAREDATA::m_Types・MYWM_CHANGESETTING・CShareData::SendMessageToAllEditors()・CPropTypes::SetTypeData()・TRUE.

参照元 CEditView::Command_HOKAN()・CEditView::Command_OPTION_TYPE()・CEditView::Command_TYPE_LIST().

int CEditDoc::ReadRuleFile | ( | const char * | pszFilename,
 |  | oneRule * | pcOneRule,
 |  | int | nMaxCount
 | ) |

ルールファイルを読み込み、ルール構造体の配列を作成する

日付:
2002.04.01 YAZAKI

2002.11.03 Moca 引数nMaxCountを追加。バッファ長チェックをするように変更

CEditDoc.cpp の 2405 行で定義されています。

参照先 _tfopen_absini()・LINEREADBUFSIZE・oneRule::nLength・NULL・oneRule::szGroupName・oneRule::szMatch.

参照元 MakeFuncList_RuleFile().

void CEditDoc::RedrawInactivePane ( void )

非アクティブなペインをRedrawする

スクロールバーの状態更新はパラメータでフラグ制御 or 別関数にしたほうがいい？

日付:
2007.07.22 ryoji スクロールバーの状態更新を追加

CEditDoc.cpp の 3228 行で定義されています。

参照先 CSplitterWnd::GetAllSplitCols()・m_cEditViewArr・m_cSplitterWnd・m_nActivePaneIndex・CEditView::Redraw().

参照元 CEditView::Drop().

void CEditDoc::ReloadAutoSaveParam ( void )

CEditDoc_new.cpp の 556 行で定義されています。

参照先 CPassiveTimer::Enable()・Common::GetAutoBackupInterval()・Common::IsAutoBackupEnabled()・m_cAutoSave・DLLSHAREDATA::m_Common・m_pShareData・CPassiveTimer::SetInterval().

参照元 CEditDoc().

void CEditDoc::ReloadCurrentFile | ( | BOOL | nCharCode,
 |  | BOOL | bReadOnly
 | ) |

同一ファイルの再オープン

引数:
nCharCode | [in] 文字コード種別
bReadOnly | [in] 読み取り専用モード

CEditDoc.cpp の 3909 行で定義されています。

参照先 AddToMRU()・BOOL・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF8・FALSE・FileRead()・GetFilePath()・CLayoutMgr::GetLineCount()・Init()・InitAllView()・m_bBomExist・m_cEditViewArr・m_cLayoutMgr・m_nActivePaneIndex・CEditView::m_nCaretPosX・CEditView::m_nCaretPosY・m_nCharCode・CEditView::m_nViewLeftCol・CEditView::m_nViewTopLine・SetParentCaption()・TRUE.

参照元 CheckFileTimeStamp()・FileSaveAs().

void CEditDoc::RestorePhysPosOfAllView ( int * posary ) [protected]

座標の復元

CEditDoc::SavePhysPosOfAllViewで保存したデータを元に座標値を再計算する．

日付:
2005.08.11 genta 新規作成

CEditDoc.cpp の 3453 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・m_cEditViewArr・m_cLayoutMgr・CEditView::m_nCaretPosX・CEditView::m_nCaretPosX_Prev・CEditView::MoveCursor()・TRUE.

参照元 ChangeLayoutParam().

bool CEditDoc::SaveFile ( const char * path )

CEditDoc_new.cpp の 565 行で定義されています。

参照先 FileWrite()・m_cOpeBuf・m_cSaveLineCode・SetModified()・COpeBuf::SetNoModified().

参照元 CheckAutoSave()・FileSave()・FileSaveAs().

BOOL CEditDoc::SaveFileDialog | ( | char * | pszPath,
 |  | int * | pnCharCode,
 |  | CEOL * | pcEol = NULL,
 |  | BOOL * | pbBomExist = NULL
 | ) |

「ファイル名を付けて保存」ダイアログ

引数:
pszPath | [out] 保存ファイル名
pnCharCode | [out] 保存文字コードセット
pcEol | [out] 保存改行コード
日付:
2001.02.09 genta 改行コードを示す引数追加

2003.03.30 genta ファイル名未定時の初期ディレクトリをカレントフォルダに

2003.07.20 ryoji BOMの有無を示す引数追加

2006.11.10 ryoji ユーザー指定の拡張子を状況依存で変化させる

CEditDoc.cpp の 1026 行で定義されています。

参照先 _MAX_EXT・_MAX_PATH・BOOL・CDlgOpenFile::Create()・CDlgOpenFile::DoModalSaveDlg()・GetFilePath()・CMRUFolder::GetPathList()・CMRU::GetPathList()・IsFilePathAvailable()・CMRUFolder::Length()・CMRU::Length()・Common::m_bNoFilterSaveFile・Common::m_bNoFilterSaveNew・m_cDlgOpenFile・DLLSHAREDATA::m_Common・m_hInstance・m_hWnd・m_pShareData・NULL.

参照元 CEditView::Command_BASE64DECODE()・CEditView::Command_UUDECODE()・FileSaveAs_Dialog().

int * CEditDoc::SavePhysPosOfAllView ( void ) [protected]

レイアウトの変更に先立って，全てのViewの座標を物理座標に変換して保存する．

戻り値:
データを保存した配列へのポインタ
覚え書き:
取得した値はレイアウト変更後にCEditDocRestorePhysPosOfAllViewへ渡す． 渡し忘れるとメモリリークとなる．
日付:
2005.08.11 genta 新規作成

CEditDoc.cpp の 3396 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・m_cEditViewArr・m_cLayoutMgr・CEditView::m_nCaretPosX・CEditView::m_nCaretPosY.

参照元 ChangeLayoutParam()・OnChangeSetting().

BOOL CEditDoc::SelectFont ( LOGFONT * )

CEditDoc.cpp の 275 行で定義されています。

参照先 FALSE・m_hWnd・MYTRACE・NULL.

参照元 CEditView::Command_FONT().

void CEditDoc::SetActivePane ( int )

CEditDoc.cpp の 3170 行で定義されています。

参照先 CCaretUnderLine::CaretUnderLineOFF()・CDlgFuncList::ChangeView()・CHokanMgr::ChangeView()・CDlgReplace::ChangeView()・CDlgFind::ChangeView()・CHokanMgr::Hide()・m_cDlgFind・m_cDlgFuncList・m_cDlgReplace・m_cEditViewArr・m_cHokanMgr・m_cSplitterWnd・CEditView::m_cUnderLine・CDialog::m_hWnd・m_nActivePaneIndex・NULL・CEditView::OnKillFocus()・CEditView::OnSetFocus()・CEditView::RedrawAll()・CSplitterWnd::SetActivePane()・TRUE.

参照元 CEditView::DispatchEvent()・HandleCommand().

void CEditDoc::SetDocumentIcon ( void )

アイコンの設定

タイプ別設定に応じてウィンドウアイコンをファイルに関連づけられた物， または標準のものに設定する．

作者:
genta
日付:
2002.09.10

CEditDoc_new.cpp の 1218 行で定義されています。

参照先 CEditWnd::GetDefaultIcon()・GetDocumentAttribute()・GetFilePath()・CEditWnd::GetRelatedIcon()・m_bGrepMode・m_pcEditWnd・CEditWnd::SetWindowIcon().

参照元 SetFilePath().

void CEditDoc::SetDocumentType | ( | int | type,
 |  | bool | force
 | ) | [inline]

CEditDoc.h の 152 行で定義されています。

参照元 CEditView::Command_TYPE_LIST()・Init()・OnChangeSetting().

void CEditDoc::SetFileInfo ( FileInfo * )

CEditDoc.cpp の 3568 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・FALSE・GetFilePath()・IsModified()・m_bDebugMode・m_bGrepMode・FileInfo::m_bIsDebug・FileInfo::m_bIsGrep・FileInfo::m_bIsModified・m_cEditViewArr・m_cLayoutMgr・m_nActivePaneIndex・m_nCharCode・FileInfo::m_nCharCode・CEditView::m_nViewLeftCol・FileInfo::m_nViewLeftCol・CEditView::m_nViewTopLine・FileInfo::m_nViewTopLine・FileInfo::m_nX・FileInfo::m_nY・m_szGrepKey・FileInfo::m_szGrepKey・FileInfo::m_szPath・TRUE.

参照元 AddToMRU().

void CEditDoc::SetFilePath ( const char * szFile ) [protected]

ファイル名の設定

ファイル名を設定すると同時に，ウィンドウアイコンを適切に設定する．

引数:
szFile [in] ファイルのパス名
作者:
genta
日付:
2002.09.09

CEditDoc_new.cpp の 1177 行で定義されています。

参照先 m_szFilePath・SetDocumentIcon().

参照元 Init().

void CEditDoc::SetImeMode ( int mode )

IME状態の設定

引数:
mode [in] IMEのモード
日付:
Nov 20, 2000 genta

CEditDoc.cpp の 3985 行で定義されています。

参照先 FALSE・m_hwndParent・TRUE.

void CEditDoc::SetInsMode ( bool mode ) [inline]

CEditDoc.h の 216 行で定義されています。

参照元 CEditDoc()・Init()・CEditView::SetInsMode().

void CEditDoc::SetModified | ( | BOOL | flag,
 |  | bool | redraw
 | ) | [inline]

CEditDoc.h の 189 行で定義されています。

参照先 FALSE.

void CEditDoc::SetModified | ( | bool | flag,
 |  | BOOL | redraw
 | ) | [inline]

CEditDoc.h の 186 行で定義されています。

参照先 FALSE.

void CEditDoc::SetModified | ( | bool | flag,
 |  | bool | redraw
 | ) |

変更フラグの設定

引数:
flag | [in] 設定する値．true: 変更有り / false: 変更無し
redraw | [in] true: タイトルの再描画を行う / false: 行わない
作者:
genta
日付:
2002.01.22 新規作成

CEditDoc_new.cpp の 1156 行で定義されています。

参照先 m_bIsModified・SetParentCaption().

参照元 CEditView::Command_ADDTAIL()・CEditView::Command_CHAR()・CEditView::Command_CUT()・CEditView::Command_DELETE_BACK()・CEditView::Command_IME_CHAR()・CEditView::Command_INDENT()・CEditView::Command_INSTEXT()・CEditView::Command_PASTEBOX()・CEditView::Command_UNINDENT()・CEditView::DeleteData()・Init()・SaveFile().

void CEditDoc::SetNewLineCode ( const CEOL & t ) [inline]

CEditDoc.h の 121 行で定義されています。

参照元 CEditView::Command_CHGMOD_EOL().

void CEditDoc::SetParentCaption ( void )

親ウィンドウのタイトルを更新

日付:
2007.03.08 ryoji bKillFocusパラメータを除去

CEditDoc.cpp の 1212 行で定義されています。

参照先 ExpandParameter()・CEditWnd::IsActiveApp()・m_cEditViewArr・DLLSHAREDATA::m_Common・m_hWnd・m_nActivePaneIndex・m_pcEditWnd・m_pShareData・Common::m_szWindowCaptionInactive・NULL.

参照元 CEditView::Command_READONLY()・DoFileLock()・FileClose()・FileCloseOpen()・ReloadCurrentFile()・CEditWnd::SetDebugModeOFF()・CEditWnd::SetDebugModeON()・SetModified()・CEditView::SetParentCaption().

void CEditDoc::SetReadOnly ( BOOL flag ) [inline]

ReadOnly状態の設定

CEditDoc.h の 175 行で定義されています。

参照先 m_bReadOnly.

void CEditDoc::UnlockDocumentType ( void ) [inline]

CEditDoc.h の 147 行で定義されています。

変数

BOOL CEditDoc::m_bBomExist

保存時にBOMを付けるかどうか Jul. 26, 2003 ryoji

CEditDoc.h の 242 行で定義されています。

参照元 CEditView::Command_PUTFILE()・FileSaveAs_Dialog()・FileWrite()・CMacro::HandleCommand()・Init()・CEditView::MakeDiffTmpFile()・ReloadCurrentFile().

BOOL CEditDoc::m_bDebugMode

CEditDoc.h の 253 行で定義されています。

参照元 ExParam_Evaluate()・Init()・OnFileClose()・CEditWnd::SetDebugModeOFF()・CEditWnd::SetDebugModeON()・SetFileInfo().

BOOL CEditDoc::m_bDoing_UndoRedo

CEditDoc.h の 300 行で定義されています。

BOOL CEditDoc::m_bGrepMode

CEditDoc.h の 254 行で定義されています。

参照元 CEditView::Command_GREP()・CEditView::DoGrep()・ExParam_Evaluate()・Init()・OnFileClose()・SetDocumentIcon()・SetFileInfo()・CEditView::TranslateCommand_grep().

BOOL CEditDoc::m_bGrepRunning

CEditDoc.h の 234 行で定義されています。

参照元 CEditView::DoGrep()・OnFileClose().

bool CEditDoc::m_bInsMode

挿入・上書きモード Oct. 2, 2005 genta

CEditDoc.h の 243 行で定義されています。

bool CEditDoc::m_bIsModified [protected]

変更フラグ

日付:
2002.01.22 genta public→protectedに移動．型をint→boolに．

CEditDoc.h の 225 行で定義されています。

参照元 SetModified().

BOOL CEditDoc::m_bReadOnly

CEditDoc.h の 252 行で定義されています。

参照元 CheckFileTimeStamp()・CEditView::Command_READONLY()・DoFileLock()・ExParam_Evaluate()・FileRead()・FileSave()・FileSaveAs_Dialog()・Init()・CEditWnd::IsFuncChecked()・IsModificationForbidden()・OnFileClose()・CDlgProperty::SetData()・CEditWnd::SetDebugModeON().

CPassiveTimer CEditDoc::m_cAutoSave

自動保存管理

CEditDoc.h の 127 行で定義されています。

参照元 CheckAutoSave()・ReloadAutoSaveParam().

CDlgFind CEditDoc::m_cDlgFind

CEditDoc.h の 282 行で定義されています。

参照元 CEditView::Command_SEARCH_DIALOG()・CEditWnd::MessageLoop()・SetActivePane().

CDlgFuncList CEditDoc::m_cDlgFuncList

CEditDoc.h の 287 行で定義されています。

参照元 CEditView::Command_FUNCLIST()・CEditWnd::MessageLoop()・SetActivePane().

CDlgGrep CEditDoc::m_cDlgGrep

CEditDoc.h の 286 行で定義されています。

参照元 CEditView::Command_GREP()・CEditWnd::MessageLoop().

CDlgJump CEditDoc::m_cDlgJump

CEditDoc.h の 284 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::Command_JUMP_DIALOG()・CMacro::HandleCommand().

CDlgOpenFile CEditDoc::m_cDlgOpenFile

CEditDoc.h の 301 行で定義されています。

参照元 OpenFileDialog()・SaveFileDialog().

CDlgReplace CEditDoc::m_cDlgReplace

CEditDoc.h の 283 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_REPLACE_DIALOG()・CMacro::HandleCommand()・CEditWnd::MessageLoop()・SetActivePane().

CDocLineMgr CEditDoc::m_cDocLineMgr

CEditDoc.h の 239 行で定義されています。

参照元 AddToMRU()・CEditDoc()・CEditView::Command_BOOKMARK_NEXT()・CEditView::Command_BOOKMARK_PATTERN()・CEditView::Command_BOOKMARK_PREV()・CEditView::Command_BOOKMARK_RESET()・CEditView::Command_BOOKMARK_SET()・CEditView::Command_CHAR()・CEditView::Command_Diff_Next()・CEditView::Command_Diff_Prev()・CEditView::Command_Diff_Reset()・CEditView::Command_GONEXTPARAGRAPH()・CEditView::Command_GOPREVPARAGRAPH()・CEditView::Command_MERGE()・CEditView::Command_PROPERTY_FILE()・CEditView::Command_PUTFILE()・CEditView::Command_SORT()・CEditView::Command_TAGJUMP()・CEditView::DetectWidthOfLineNumberArea_calculate()・FileWrite()・CMacro::HandleFunction()・CEditView::HokanSearchByFile()・Init()・CEditView::IsCurrentPositionURL()・CEditView::ISearchExec()・CEditWnd::IsFuncEnable()・CEditView::MakeDiffTmpFile()・MakeFuncList_BookMark()・MakeFuncList_C()・MakeFuncList_Java()・MakeFuncList_Perl()・MakeFuncList_PLSQL()・MakeFuncList_python()・MakeFuncList_RuleFile()・MakeFuncList_VisualBasic()・MakeTopicList_asm()・MakeTopicList_cobol()・MakeTopicList_html()・MakeTopicList_tex()・MakeTopicList_txt()・MakeTopicList_wztxt()・CEditView::OnPaint()・CEditView::RTrimPrevLine()・CEditView::SearchBracket()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・CDlgProperty::SetData()・CEditView::SetReconvertStruct()・CEditView::SmartIndent_CPP()・CEditView::ViewDiffInfo().

CEditView CEditDoc::m_cEditViewArr[4]

CEditDoc.h の 279 行で定義されています。

参照元 ChangeLayoutParam()・CEditView::Command_BOOKMARK_PATTERN()・CEditView::Command_BOOKMARK_RESET()・CEditView::Command_Diff_Reset()・CEditView::Command_SEARCH_DIALOG()・Create()・DetectWidthOfLineNumberAreaAllPane()・DispatchEvent()・CEditWnd::EndLayoutBars()・FileRead()・FileSave()・FileSaveAs()・InitAllView()・CEditWnd::IsFuncEnable()・IsTextSelected()・CDlgJump::OnBnClicked()・CPrintPreview::OnChangePrintSetting()・OnChangeSetting()・CEditWnd::OnCommand()・OpenPropertySheet()・CEditWnd::PopupWinList()・CEditWnd::ProcSearchBox()・RedrawInactivePane()・ReloadCurrentFile()・RestorePhysPosOfAllView()・SavePhysPosOfAllView()・SetActivePane()・SetFileInfo()・SetParentCaption()・CEditView::SyncScrollH()・CEditView::SyncScrollV().

CFuncLookup CEditDoc::m_cFuncLookup

機能名，機能番号などのresolve

CEditDoc.h の 326 行で定義されています。

参照元 CEditView::Command_CREATEKEYBINDLIST()・CEditView::Command_CUSTMENU()・CEditView::Command_MENU_ALLFUNC()・Create()・CEditView::CreatePopUpMenu_R()・CFuncKeyWnd::OnTimer().

CHokanMgr CEditDoc::m_cHokanMgr

CEditDoc.h の 233 行で定義されています。

参照元 Create()・CEditWnd::MessageLoop()・CEditView::OnKillFocus()・CEditView::OnLBUTTONDOWN()・CEditView::PostprocessCommand_hokan()・CEditView::PreprocessCommand_hokan()・SetActivePane()・CEditView::ShowHokanMgr().

CLayoutMgr CEditDoc::m_cLayoutMgr

CEditDoc.h の 240 行で定義されています。

参照元 CEditView::AddCurrentLineToHistory()・CEditView::AdjustScrollBars()・CEditDoc()・ChangeLayoutParam()・CEditView::Command_BOOKMARK_NEXT()・CEditView::Command_BOOKMARK_PREV()・CEditView::Command_BOOKMARK_SET()・CEditView::Command_CHAR()・CEditView::Command_COPY()・CEditView::Command_COPYTAG()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_Diff_Next()・CEditView::Command_Diff_Prev()・CEditView::Command_DUPLICATELINE()・CEditView::Command_GOFILEEND()・CEditView::Command_GOLINEEND()・CEditView::Command_GOLINETOP()・CEditView::Command_IME_CHAR()・CEditView::Command_INDENT()・CEditView::Command_JUMP_SRCHSTARTPOS()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineCutToStart()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_LineDeleteToStart()・CEditView::Command_MERGE()・CEditView::Command_PASTE()・CEditView::Command_PASTEBOX()・CEditView::Command_SEARCH_NEXT()・CEditView::Command_SEARCH_PREV()・CEditView::Command_SELECTALL()・CEditView::Command_SELECTWORD()・CEditView::Command_SORT()・CEditView::Command_TAGJUMP()・CEditView::Command_TRIM()・CEditView::Command_UNINDENT()・CEditView::Command_WndScrollDown()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::Command_WORDLEFT()・CEditView::Command_WORDRIGHT()・CEditView::Command_WRAPWINDOWWIDTH()・CEditView::ConvMemory()・CEditView::ConvSelectedArea()・CEditView::Cursor_UPDOWN()・CEditView::DeleteData()・CEditView::DeleteData2()・CEditView::DispLineNew()・CEditView::DispTextSelected()・CEditView::DispVerticalLines()・CEditView::DrawCaretPosInfo()・CEditView::DrawSelectArea()・CEditView::DrawSelectAreaLine()・CEditView::ExecCmd()・CEditView::GetAdjustCursorPos()・CEditView::GetCurrentTextForSearch()・CEditView::GetCurrentWord()・CEditView::GetLeftWord()・CEditView::GetSelectedData()・CEditView::GetWrapMode()・CMacro::HandleFunction()・Init()・CEditView::InsertData_CEditView()・CEditView::IsCurrentPositionURL()・CEditView::ISearchExec()・CEditView::LineColmnToIndex()・CEditView::LineColmnToIndex2()・CEditView::LineIndexToColmn()・MakeTopicList_wztxt()・CEditView::MoveCursor()・CEditView::MoveCursorProperly()・OnChangeSetting()・CEditView::OnHScroll()・CEditView::OnLBUTTONDOWN()・CEditView::OnPaint()・CEditView::OnVScroll()・CPrintPreview::Print_DrawLine()・CEditView::PrintSelectionInfoMsg()・ReloadCurrentFile()・CEditView::ReplaceData_CEditView()・RestorePhysPosOfAllView()・CEditView::RTrimPrevLine()・SavePhysPosOfAllView()・CEditView::ScrollAtH()・CEditView::ScrollAtV()・CEditView::SearchBracket()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・CDlgProperty::SetData()・SetFileInfo()・CEditView::SetReconvertStruct()・CEditView::SetSelectionFromReonvert()・CEditView::TagJumpSub().

CEOL CEditDoc::m_cNewLineCode [protected]

CEditDoc.h の 247 行で定義されています。

参照元 Init()・MakeFuncList_BookMark().

COpeBuf CEditDoc::m_cOpeBuf

CEditDoc.h の 257 行で定義されています。

参照元 CEditView::Drop()・Init()・IsEnableRedo()・IsEnableUndo()・SaveFile().

CPropCommon CEditDoc::m_cPropCommon

CEditDoc.h の 308 行で定義されています。

参照元 Create()・OpenPropertySheet().

CPropTypes CEditDoc::m_cPropTypes

CEditDoc.h の 309 行で定義されています。

参照元 Create()・OpenPropertySheetTypes().

CEOL CEditDoc::m_cSaveLineCode

CEditDoc.h の 249 行で定義されています。

参照元 FileSaveAs_Dialog()・CMacro::HandleCommand()・CEditView::MakeDiffTmpFile()・SaveFile().

CSplitterWnd CEditDoc::m_cSplitterWnd

CEditDoc.h の 278 行で定義されています。

参照元 CEditView::Command_SPLIT_H()・CEditView::Command_SPLIT_V()・CEditView::Command_SPLIT_VH()・Create()・CEditWnd::CreateStatusBar()・CEditWnd::DestroyStatusBar()・DetectWidthOfLineNumberAreaAllPane()・CEditWnd::EndLayoutBars()・HandleCommand()・OnMove()・RedrawInactivePane()・SetActivePane().

WatchUpdate CEditDoc::m_eWatchUpdate

更新監視方法

CEditDoc.h の 338 行で定義されています。

参照元 CheckFileTimeStamp()・FileWrite()・Init().

FILETIME CEditDoc::m_FileTime

CEditDoc.h の 238 行で定義されています。

参照元 CEditDoc()・CheckFileTimeStamp()・FileWrite()・Init().

HINSTANCE CEditDoc::m_hInstance

CEditDoc.h の 293 行で定義されています。

参照元 CheckFileTimeStamp()・Create()・OpenFile()・OpenFileDialog()・SaveFileDialog().

HFILE CEditDoc::m_hLockedFile

CEditDoc.h の 312 行で定義されています。

参照元 DoFileLock()・DoFileUnLock()・CEditView::DragEnter()・ExParam_Evaluate()・IsModificationForbidden().

HWND CEditDoc::m_hWnd

CEditDoc.h の 256 行で定義されています。

参照元 ChangeLayoutParam()・CheckFileTimeStamp()・CEditView::Command_CREATEKEYBINDLIST()・CEditView::Command_PUTFILE()・Create()・DoFileLock()・FileCloseOpen()・FileRead()・FileSave()・FileSaveAs_Dialog()・FileWrite()・HandleCommand()・MakeBackUp()・CEditView::MakeDiffTmpFile()・OnFileClose()・OpenFile()・CEditWnd::PrintPreviewModeONOFF()・SaveFileDialog()・SelectFont()・SetParentCaption()・~CEditDoc().

HWND CEditDoc::m_hwndParent

CEditDoc.h の 294 行で定義されています。

参照元 CheckFileTimeStamp()・Create()・ExParam_Evaluate()・HandleCommand()・CEditWnd::IsFuncChecked()・CEditWnd::IsFuncEnable()・OpenPropertySheetTypes()・CDlgDiff::SetData()・CDlgCompare::SetData()・SetImeMode()・CEditView::TagJumpSub().

int CEditDoc::m_nActivePaneIndex

CEditDoc.h の 280 行で定義されています。

参照元 CEditView::Command_BOOKMARK_PATTERN()・CEditView::Command_BOOKMARK_RESET()・CEditView::Command_Diff_Reset()・CEditView::Command_SEARCH_DIALOG()・DetectWidthOfLineNumberAreaAllPane()・DispatchEvent()・CEditWnd::EndLayoutBars()・FileSave()・FileSaveAs()・GetActivePane()・CEditWnd::IsFuncEnable()・IsTextSelected()・CDlgJump::OnBnClicked()・CEditWnd::OnCommand()・CEditWnd::PopupWinList()・CEditWnd::ProcSearchBox()・RedrawInactivePane()・ReloadCurrentFile()・SetActivePane()・SetFileInfo()・SetParentCaption().

int CEditDoc::m_nCharCode

CEditDoc.h の 241 行で定義されています。

参照元 CheckFileTimeStamp()・CEditView::Command_INSFILE()・CEditView::Command_PUTFILE()・CEditView::DrawCaretPosInfo()・FileSaveAs()・FileSaveAs_Dialog()・FileWrite()・CMacro::HandleCommand()・Init()・CEditWnd::IsFuncChecked()・CEditView::MakeDiffTmpFile()・ReloadCurrentFile()・CDlgProperty::SetData()・SetFileInfo().

int CEditDoc::m_nCommandExecNum

CEditDoc.h の 237 行で定義されています。

参照元 InitAllView().

int CEditDoc::m_nFileShareModeOld

CEditDoc.h の 311 行で定義されています。

参照元 DoFileLock()・DoFileUnLock()・CEditView::DragEnter()・ExParam_Evaluate()・Init()・IsModificationForbidden()・OnChangeSetting().

int CEditDoc::m_nSettingType [protected]

CEditDoc.h の 219 行で定義されています。

bool CEditDoc::m_nSettingTypeLocked [protected]

CEditDoc.h の 220 行で定義されています。

CEditWnd* CEditDoc::m_pcEditWnd

CEditDoc.h の 288 行で定義されています。

参照元 CEditWnd::CEditWnd()・ChangeLayoutParam()・CheckFileTimeStamp()・CEditView::Command_BIND_WINDOW()・CEditView::Command_CUSTMENU()・CEditView::Command_MENU_ALLFUNC()・CEditView::Command_NEXTGROUP()・CEditView::Command_PREVGROUP()・CEditView::Command_PRINT()・CEditView::Command_PRINT_PAGESETUP()・CEditView::Command_PRINT_PREVIEW()・CEditView::Command_PUTFILE()・CEditView::Command_SEARCH_BOX()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR()・CEditView::Command_TAB_JOINTNEXT()・CEditView::Command_TAB_JOINTPREV()・CEditView::Command_TAB_MOVELEFT()・CEditView::Command_TAB_MOVERIGHT()・CEditView::Command_TAB_SEPARATE()・CEditView::Command_WINLIST()・CEditView::Command_WINTOPMOST()・Create()・CEditView::CreatePopUpMenu_R()・CEditView::DrawCaretPosInfo()・FileRead()・FileWrite()・Init()・OnChangeSetting()・CDlgFuncList::OnDestroy()・CDlgFuncList::OnInitDialog()・CEditView::PrintSelectionInfoMsg()・CEditView::SendStatusMessage()・SetDocumentIcon()・SetParentCaption().

CSMacroMgr* CEditDoc::m_pcSMacroMgr

マクロ

CEditDoc.h の 322 行で定義されています。

参照元 CEditDoc()・CEditView::Command_EXECKEYMACRO()・CEditView::Command_RECKEYMACRO()・CEditView::Command_SAVEKEYMACRO()・Create()・CEditWnd::IsFuncEnable()・~CEditDoc().

DLLSHAREDATA* CEditDoc::m_pShareData

CEditDoc.h の 296 行で定義されています。

参照元 CEditDoc()・CheckFileTimeStamp()・Create()・DoFileLock()・ExParam_Evaluate()・FileSave()・FileWrite()・FormatBackUpPath()・Init()・MakeBackUp()・MakeFuncList_BookMark()・MakeTopicList_txt()・OnChangeSetting()・OnFileClose()・OpenFile()・OpenPropertySheet()・OpenPropertySheetTypes()・ReloadAutoSaveParam()・SaveFileDialog()・SetParentCaption().

char* CEditDoc::m_pszAppName

CEditDoc.h の 292 行で定義されています。

char CEditDoc::m_szFilePath[_MAX_PATH] [protected]

CEditDoc.h の 227 行で定義されています。

参照元 CEditDoc()・SetFilePath().

char CEditDoc::m_szGrepKey[1024]

CEditDoc.h の 255 行で定義されています。

参照元 CEditDoc()・CEditView::DoGrep()・Init()・SetFileInfo().

このクラスの説明は次のファイルから生成されました:
  • CEditDoc.h
  • CEditDoc.cpp
  • CEditDoc_FuncList1.cpp
  • CEditDoc_FuncList2.cpp
  • CEditDoc_new.cpp
Sakura-Editorに対してSat Oct 27 02:34:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditDoc メンバ一覧

これは全メンバの一覧です。CEditDoc継承メンバも含んでいます。

ActiveView(void) const | CEditDoc | [inline]
ActiveView(void) | CEditDoc | [inline]
AddToMRU(void) | CEditDoc |
CEditDoc() | CEditDoc |
ChangeLayoutParam(bool bShowProgress, int nTabSize, int nMaxLineSize) | CEditDoc |
CheckAutoSave(void) | CEditDoc |
CheckFileTimeStamp(void) | CEditDoc |
Create(HINSTANCE, HWND, CImageListMgr *) | CEditDoc |
DetectWidthOfLineNumberAreaAllPane(BOOL bRedraw) | CEditDoc |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CEditDoc |
DoFileLock(void) | CEditDoc | [protected]
DoFileUnLock(void) | CEditDoc | [protected]
ExpandParameter(const char *pszSource, char *pszBuffer, int nBufferLen) | CEditDoc |
ExParam_Evaluate(const char *pCond) | CEditDoc |
ExParam_SkipCond(const char *pszSource, int part) | CEditDoc |
FileClose(void) | CEditDoc |
FileCloseOpen(const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE) | CEditDoc |
FileRead(char *, BOOL *, int, BOOL, BOOL) | CEditDoc |
FileSave(bool warnbeep=true, bool askname=true) | CEditDoc |
FileSaveAs(const char *filename) | CEditDoc |
FileSaveAs_Dialog(void) | CEditDoc |
FileWrite(const char *, enumEOLType cEolType) | CEditDoc |
FormatBackUpPath(char *szNewPath, const char *target_file) | CEditDoc | [protected]
GetActivePane(void) | CEditDoc |
GetDocumentAttribute(void) const | CEditDoc | [inline]
GetDocumentLockState(void) | CEditDoc | [inline]
GetDocumentType(void) const | CEditDoc | [inline]
GetFileName(void) const | CEditDoc |
GetFilePath(void) const | CEditDoc | [inline]
GetNewLineCode() const | CEditDoc | [inline]
HandleCommand(int) | CEditDoc |
Init(void) | CEditDoc |
InitAllView() | CEditDoc |
IsEnablePaste(void) | CEditDoc |
IsEnableRedo(void) | CEditDoc |
IsEnableUndo(void) | CEditDoc |
IsFileOpenInThisWindow(void) | CEditDoc | [inline]
IsFilePathAvailable(void) const | CEditDoc | [inline]
IsInsMode() const | CEditDoc | [inline]
IsModificationForbidden(int nCommand) | CEditDoc |
IsModified(void) const | CEditDoc | [inline]
IsReadOnly(void) | CEditDoc | [inline]
IsTextSelected(void) | CEditDoc |
LockDocumentType(void) | CEditDoc | [inline]
m_bBomExist | CEditDoc |
m_bDebugMode | CEditDoc |
m_bDoing_UndoRedo | CEditDoc |
m_bGrepMode | CEditDoc |
m_bGrepRunning | CEditDoc |
m_bInsMode | CEditDoc |
m_bIsModified | CEditDoc | [protected]
m_bReadOnly | CEditDoc |
m_cAutoSave | CEditDoc |
m_cDlgFind | CEditDoc |
m_cDlgFuncList | CEditDoc |
m_cDlgGrep | CEditDoc |
m_cDlgJump | CEditDoc |
m_cDlgOpenFile | CEditDoc |
m_cDlgReplace | CEditDoc |
m_cDocLineMgr | CEditDoc |
m_cEditViewArr | CEditDoc |
m_cFuncLookup | CEditDoc |
m_cHokanMgr | CEditDoc |
m_cLayoutMgr | CEditDoc |
m_cNewLineCode | CEditDoc | [protected]
m_cOpeBuf | CEditDoc |
m_cPropCommon | CEditDoc |
m_cPropTypes | CEditDoc |
m_cSaveLineCode | CEditDoc |
m_cSplitterWnd | CEditDoc |
m_eWatchUpdate | CEditDoc |
m_FileTime | CEditDoc |
m_hInstance | CEditDoc |
m_hLockedFile | CEditDoc |
m_hWnd | CEditDoc |
m_hwndParent | CEditDoc |
m_nActivePaneIndex | CEditDoc |
m_nCharCode | CEditDoc |
m_nCommandExecNum | CEditDoc |
m_nFileShareModeOld | CEditDoc |
m_nSettingType | CEditDoc | [protected]
m_nSettingTypeLocked | CEditDoc | [protected]
m_pcEditWnd | CEditDoc |
m_pcSMacroMgr | CEditDoc |
m_pShareData | CEditDoc |
m_pszAppName | CEditDoc |
m_szFilePath | CEditDoc | [protected]
m_szGrepKey | CEditDoc |
MakeBackUp(const char *target_file) | CEditDoc |
MakeFuncList_BookMark(CFuncInfoArr *) | CEditDoc |
MakeFuncList_C(CFuncInfoArr *, bool bVisibleMemberFunc=true) | CEditDoc |
MakeFuncList_Java(CFuncInfoArr *) | CEditDoc |
MakeFuncList_Perl(CFuncInfoArr *) | CEditDoc |
MakeFuncList_PLSQL(CFuncInfoArr *) | CEditDoc |
MakeFuncList_python(CFuncInfoArr *pcFuncInfoArr) | CEditDoc |
MakeFuncList_RuleFile(CFuncInfoArr *) | CEditDoc |
MakeFuncList_VisualBasic(CFuncInfoArr *) | CEditDoc |
MakeTopicList_asm(CFuncInfoArr *) | CEditDoc |
MakeTopicList_cobol(CFuncInfoArr *) | CEditDoc |
MakeTopicList_html(CFuncInfoArr *) | CEditDoc |
MakeTopicList_tex(CFuncInfoArr *) | CEditDoc |
MakeTopicList_txt(CFuncInfoArr *) | CEditDoc |
MakeTopicList_wztxt(CFuncInfoArr *) | CEditDoc |
OnChangeSetting(void) | CEditDoc |
OnFileClose(void) | CEditDoc |
OnMove(int, int, int, int) | CEditDoc |
OpenFile(const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE) | CEditDoc |
OpenFileDialog(HWND, const char *, char *, int *, BOOL *) | CEditDoc |
OpenPropertySheet(int) | CEditDoc |
OpenPropertySheetTypes(int, int) | CEditDoc |
ReadRuleFile(const char *pszFilename, oneRule *pcOneRule, int nMaxCount) | CEditDoc |
RedrawInactivePane(void) | CEditDoc |
ReloadAutoSaveParam(void) | CEditDoc |
ReloadCurrentFile(BOOL, BOOL) | CEditDoc |
RestorePhysPosOfAllView(int *posary) | CEditDoc | [protected]
SaveFile(const char *path) | CEditDoc |
SaveFileDialog(char *, int *, CEOL *pcEol=NULL, BOOL *pbBomExist=NULL) | CEditDoc |
SavePhysPosOfAllView(void) | CEditDoc | [protected]
SelectFont(LOGFONT *) | CEditDoc |
SetActivePane(int) | CEditDoc |
SetDocumentIcon(void) | CEditDoc |
SetDocumentType(int type, bool force) | CEditDoc | [inline]
SetFileInfo(FileInfo *) | CEditDoc |
SetFilePath(const char *) | CEditDoc | [protected]
SetImeMode(int mode) | CEditDoc |
SetInsMode(bool mode) | CEditDoc | [inline]
SetModified(bool flag, bool redraw) | CEditDoc |
SetModified(bool flag, BOOL redraw) | CEditDoc | [inline]
SetModified(BOOL flag, bool redraw) | CEditDoc | [inline]
SetNewLineCode(const CEOL &t) | CEditDoc | [inline]
SetParentCaption(void) | CEditDoc |
SetReadOnly(BOOL flag) | CEditDoc | [inline]
UnlockDocumentType(void) | CEditDoc | [inline]
WatchUpdate Enum | CEditDoc |
WU_NONE Enum 値 | CEditDoc |
WU_NOTIFY Enum 値 | CEditDoc |
WU_QUERY Enum 値 | CEditDoc |
~CEditDoc() | CEditDoc |

Sakura-Editorに対してSat Oct 27 02:34:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CEditView

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditView

文書ウィンドウの管理 [詳細]

#include <CEditView.h>

CEditViewのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 型

enum | LID_SKH { LID_SKH_ONTIMER = 1, LID_SKH_POPUPMENU_R = 2 }
enum | TOGGLE_WRAP_ACTION { TGWRAP_NONE = 0, TGWRAP_FULL, TGWRAP_WINDOW, TGWRAP_PROP }

Public メソッド

CEditView ()
~CEditView ()
BOOL | Create (HINSTANCE, HWND, CEditDoc *, int, BOOL)
BOOL | CreateScrollBar (void)
void | DestroyScrollBar (void)
BOOL | IsTextSelected (void)
BOOL | IsTextSelecting (void)
bool | IsInsMode () const
void | SetInsMode (bool)
LRESULT | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
void | OnMove (int, int, int, int)
void | OnSetFocus (void)
void | OnKillFocus (void)
void | OnTimer (HWND, UINT, UINT, DWORD)
BOOL | HandleCommand (int, BOOL, LPARAM, LPARAM, LPARAM, LPARAM)
void | CaretUnderLineON (BOOL)
void | CaretUnderLineOFF (BOOL)
void | AdjustScrollBars (void)
int | MoveCursor (int, int, BOOL, int=_CARETMARGINRATE)
行桁指定によるカーソル移動
int | MoveCursorProperly (int, int, BOOL, int=_CARETMARGINRATE, int=0)
void | MoveCursorSelecting (int, int, BOOL, int=_CARETMARGINRATE)
選択を考慮した行桁指定によるカーソル移動
BOOL | GetAdjustCursorPos (int *, int *)
BOOL | DetectWidthOfLineNumberArea (BOOL)
int | DetectWidthOfLineNumberArea_calculate (void)
void | DisableSelectArea (BOOL)
void | OnChangeSetting (void)
void | SetFont (void)
void | RedrawAll (void)
void | Redraw (void)
void | CopyViewStatus (CEditView *)
void | SplitBoxOnOff (BOOL, BOOL, BOOL)
DWORD | DoGrep (const CMemory *, const CMemory *, const CMemory *, BOOL, BOOL, BOOL, int, BOOL, BOOL, int)
int | DoGrepTree (CDlgCancel *, HWND, const char *, int *, const char *, const char *, BOOL, BOOL, BOOL, int, BOOL, BOOL, int, CBregexp *, int, int *)
Grep実行
int | DoGrepFile (CDlgCancel *, HWND, const char *, int *, const char *, BOOL, BOOL, int, BOOL, BOOL, int, CBregexp *, int *, const char *, CMemory &)
void | SetGrepResult (char *pWork, int *pnWorkLen, const char *pszFullPath, const char *pszCodeName, int nLine, int nColm, const char *pCompareData, int nLineLen, int nEolCodeLen, const char *pMatchData, int nMatchLen, BOOL bGrepOutputLine, int nGrepOutputStyle)
Grep結果を構築する
bool | SearchBracket (int PosX, int PosY, int *NewX, int *NewY, int *mode)
対括弧の検索
bool | SearchBracketForward (int PosX, int PosY, int *NewX, int *NewY, char *upChar, char *dnChar, int *mode)
半角対括弧の検索:順方向
bool | SearchBracketBackward (int PosX, int PosY, int *NewX, int *NewY, char *dnChar, char *upChar, int *mode)
半角対括弧の検索:逆方向
bool | SearchBracketForward2 (int PosX, int PosY, int *NewX, int *NewY, char *upChar, char *dnChar, int *mode)
全角対括弧の検索:順方向
bool | SearchBracketBackward2 (int PosX, int PosY, int *NewX, int *NewY, char *dnChar, char *upChar, int *mode)
全角対括弧の検索:逆方向
bool | ShowKeywordHelp (POINT po, LPCTSTR pszHelp, LPRECT prcHokanWin)
BOOL | GetSelectedData (CMemory &, BOOL, const char *, BOOL, BOOL bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN)
bool | IsImeON (void)
void | CreateEditCaret (COLORREF crCaret, COLORREF crBack, int nWidth, int nHeight)
void | ShowEditCaret (void)
int | HokanSearchByFile (const char *, BOOL, CMemory **, int, int)
BOOL | KeyWordHelpSearchDict (LID_SKH nID, POINT *po, RECT *rc)
BOOL | KeySearchCore (const CMemory *pcmemCurText)
bool | IsISearchEnabled (int nCommand) const
TOGGLE_WRAP_ACTION GetWrapMode (int &)
折り返しの動作を決定
void | GetCurrentTextForSearch (CMemory &)
void | GetCurrentTextForSearchDlg (CMemory &)
void | DestroyCaret (void)
void | SetIMECompFormPos (void)
void | DrawCaretPosInfo (void)
STDMETHODIMP | DragEnter (LPDATAOBJECT, DWORD, POINTL, LPDWORD)
STDMETHODIMP | DragOver (DWORD, POINTL, LPDWORD)
STDMETHODIMP | DragLeave (void)
STDMETHODIMP | Drop (LPDATAOBJECT, DWORD, POINTL, LPDWORD)

Public 変数

CDropTarget * m_pcDropTarget
BOOL | m_bDrawSWITCH
BOOL | m_bDragSource
BOOL | m_bDragMode
CBregexp m_CurRegexp
BOOL | m_bCurSrchKeyMark
char | m_szCurSrchKey [_MAX_PATH]
int m_bCurSrchRegularExp
int m_bCurSrchLoHiCase
int m_bCurSrchWordOnly
BOOL | m_bExecutingKeyMacro
HWND | m_hWnd
int m_nViewTopLine
int m_nViewLeftCol
int m_nCaretPosX_Prev
直前のX座標記憶用
int m_nCaretPosX
int m_nCaretPosY
int m_nCaretPosX_PHY
int m_nCaretPosY_PHY
int m_nSrchStartPosX_PHY
int m_nSrchStartPosY_PHY
BOOL | m_bSearch
int m_nCharSize
int m_nBracketCaretPosX_PHY
int m_nBracketCaretPosY_PHY
int m_nBracketPairPosX_PHY
int m_nBracketPairPosY_PHY
BOOL | m_bDrawBracketPairFlag
BOOL | m_bDrawSelectArea
char * | m_pszAppName
HINSTANCE | m_hInstance
HWND | m_hwndParent
DLLSHAREDATA * m_pShareData
CEditDoc * m_pcEditDoc
COpeBlk * m_pcOpeBlk
BOOL | m_bDoing_UndoRedo
HWND | m_hwndVScrollBar
int m_nVScrollRate
HWND | m_hwndHScrollBar
HWND | m_hwndSizeBox
CSplitBoxWnd * m_pcsbwVSplitBox
CSplitBoxWnd * m_pcsbwHSplitBox
HDC | m_hdcCompatDC
HBITMAP | m_hbmpCompatBMP
HBITMAP | m_hbmpCompatBMPOld
HFONT | m_hFont_HAN
HFONT | m_hFont_HAN_FAT
HFONT | m_hFont_HAN_UL
HFONT | m_hFont_HAN_FAT_UL
HFONT | m_hFontOld
BOOL | m_bCommandRunning
int m_nMyIndex
int m_bPrevCommand
int m_nCaretWidth
int m_nCaretHeight
COLORREF | m_crCaret
COLORREF | m_crBack
HBITMAP | m_hbmpCaret
CCaretUnderLine m_cUnderLine
int m_nOldUnderLineY
int m_nOldCaretPosX
int m_nOldCaretWidth
bool | m_bRedrawRuler
int m_bSelectingLock
int m_bBeginSelect
int m_bBeginBoxSelect
int m_bBeginLineSelect
int m_bBeginWordSelect
int m_nSelectLineBgnFrom
int m_nSelectColmBgnFrom
int m_nSelectLineBgnTo
int m_nSelectColmBgnTo
int m_nSelectLineFrom
int m_nSelectColmFrom
int m_nSelectLineTo
int m_nSelectColmTo
int m_nSelectLineFromOld
int m_nSelectColmFromOld
int m_nSelectLineToOld
int m_nSelectColmToOld
int m_nMouseRollPosXOld
int m_nMouseRollPosYOld
int m_nViewAlignLeft
int m_nViewAlignLeftCols
int m_nViewAlignTop
int m_nTopYohaku
int m_nViewCx
int m_nViewCy
int m_nViewColNum
int m_nViewRowNum
int m_nCharWidth
int m_nCharHeight
DWORD m_dwTipTimer
CTipWnd m_cTipWnd
POINT | m_poTipCurPos
BOOL | m_bInMenuLoop
CDicMgr m_cDicMgr
BOOL | m_bHokan
CAutoMarkMgr * m_cHistory
CRegexKeyword * m_cRegexKeyword

Static Public 変数

static int | m_pnDx [MAXLINESIZE+10]

Protected メソッド

BOOL | MyGetClipboardData (CMemory &, BOOL *)
BOOL | MySetClipboardData (const char *, int, BOOL)
int GetLeftWord (CMemory *, int)
BOOL | GetCurrentWord (CMemory *)
void | OnPaint (HDC, PAINTSTRUCT *, BOOL)
int | DispLineNew (HDC, const CLayout *, int &, int, int &, BOOL, int, BOOL)
void | DispLineNumber (HDC, const CLayout *, int, int)
void | SetCurrentColor (HDC, int)
void | DispRuler (HDC)
void | DrawRulerCaret (HDC hdc)
int | DispText (HDC, int, int, const char *, int)
void | DispTextSelected (HDC, int, int, int, int)
void | TwoPointToRect (RECT *, int, int, int, int)
void | DrawSelectArea (void)
void | DrawSelectAreaLine (HDC, int, int, int, int, int)
int | LineColmnToIndex (const CLayout *pcLayout, int nColumn)
int | LineColmnToIndex (const CDocLine *pcDocLine, int nColumn)
int | LineColmnToIndex2 (const CLayout *pcLayout, int nColumn, int &pnLineAllColLen)
int | LineIndexToColmn (const CLayout *pcLayout, int nIndex)
int | LineIndexToColmn (const CDocLine *pcLayout, int nIndex)
void | CopySelectedAllLines (const char *, BOOL)
void | ConvSelectedArea (int)
void | ConvMemory (CMemory *, int)
void | OnSize (int, int)
int OnVScroll (int, int)
int OnHScroll (int, int)
void | OnLBUTTONDOWN (WPARAM, int, int)
void | OnMOUSEMOVE (WPARAM, int, int)
void | OnLBUTTONUP (WPARAM, int, int)
void | OnLBUTTONDBLCLK (WPARAM, int, int)
void | OnRBUTTONDOWN (WPARAM, int, int)
void | OnRBUTTONUP (WPARAM, int, int)
void | OnMBUTTONDOWN (WPARAM, int, int)
void | OnXLBUTTONDOWN (WPARAM, int, int)
void | OnXRBUTTONDOWN (WPARAM, int, int)
LRESULT | OnMOUSEWHEEL (WPARAM, LPARAM)
void | SetSelectArea (int nLineFrom, int nColmFrom, int nLineTo, int nColmTo)
void | BeginSelectArea (void)
void | ChangeSelectAreaByCurrentCursor (int, int)
void | ChangeSelectAreaByCurrentCursorTEST (int, int, int &, int &, int &, int &)
void | PrintSelectionInfoMsg (void)
int MoveCursorToPoint (int, int)
int ScrollAtV (int)
int ScrollAtH (int)
int | ScrollByV (int vl)
int | ScrollByH (int hl)
void | SyncScrollV (int)
void | SyncScrollH (int)
int Cursor_UPDOWN (int, int)
void | DrawBracketPair (bool)
void | SetBracketPairPos (bool)
int | GetColorIndex (HDC, const CLayout *, int)
bool | IsBracket (const char *, int, int)
括弧判定
void | SetIMECompFormFont (void)
void | SetParentCaption (void)
BOOL | IsCurrentPositionURL (int, int, int *, int *, int *, char **)
int IsCurrentPositionSelected (int, int)
int IsCurrentPositionSelectedTEST (int, int, int, int, int, int)
BOOL | IsSearchString (const char *, int, int, int *, int *)
HFONT | ChooseFontHandle (BOOL bFat, BOOL bUnderLine)
void | ExecCmd (const char *, const int)
外部コマンドの実行
void | AddToCmdArr (const char *)
BOOL | ChangeCurRegexp (void)
void | SendStatusMessage (const char *msg)
void | SendStatusMessage2 (const char *msg)
LRESULT | SetReconvertStruct (PRECONVERTSTRING pReconv, bool bUnicode)
* IMEからの再変換要求に応える for 95/NT */ // 20020331 aroka
LRESULT | SetSelectionFromReonvert (PRECONVERTSTRING pReconv, bool bUnicode)
void | Command_FILENEW (void)
void | Command_FILEOPEN (const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE)
ファイルを開く
BOOL | Command_FILESAVE (bool warnbeep=true, bool askname=true)
BOOL | Command_FILESAVEAS_DIALOG ()
BOOL | Command_FILESAVEAS (const char *filename)
BOOL | Command_FILESAVEALL (void)
void | Command_FILECLOSE (void)
void | Command_FILECLOSE_OPEN (const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE)
閉じて開く
void | Command_FILE_REOPEN (int, int)
ファイルの再オープン
void | Command_PRINT (void)
void | Command_PRINT_PREVIEW (void)
void | Command_PRINT_PAGESETUP (void)
BOOL | Command_OPEN_HfromtoC (BOOL)
BOOL | Command_OPEN_HHPP (BOOL bCheckOnly, BOOL bBeepWhenMiss)
BOOL | Command_OPEN_CCPP (BOOL bCheckOnly, BOOL bBeepWhenMiss)
void | Command_ACTIVATE_SQLPLUS (void)
void | Command_PLSQL_COMPILE_ON_SQLPLUS (void)
void | Command_BROWSE (void)
void | Command_READONLY (void)
void | Command_PROPERTY_FILE (void)
void | Command_EXITALLEDITORS (void)
void | Command_EXITALL (void)
BOOL | Command_PUTFILE (const char *, int, int)
編集中の内容を別名保存
BOOL | Command_INSFILE (const char *, int, int)
カーソル位置にファイルを挿入
void | Command_CHAR (char)
void | Command_IME_CHAR (WORD)
2バイト文字入力
void | Command_UNDO (void)
void | Command_REDO (void)
void | Command_DELETE (void)
void | Command_DELETE_BACK (void)
void | Command_WordDeleteToStart (void)
void | Command_WordDeleteToEnd (void)
void | Command_WordCut (void)
void | Command_WordDelete (void)
void | Command_LineCutToStart (void)
void | Command_LineCutToEnd (void)
void | Command_LineDeleteToStart (void)
void | Command_LineDeleteToEnd (void)
void | Command_CUT_LINE (void)
void | Command_DELETE_LINE (void)
void | Command_DUPLICATELINE (void)
void | Command_INDENT (char cChar)
void | Command_INDENT (const char *, int, BOOL=FALSE)
void | Command_INDENT_TAB (void)
void | Command_UNINDENT (char cChar)
void | Command_TRIM (BOOL)
void | Command_TRIM2 (CMemory *, BOOL)
void | Command_SORT (BOOL)
物理行のソート
void | Command_MERGE (void)
物理行のマージ
void | Command_Reconvert (void)
void | Command_CtrlCode_Dialog (void)
void | DeleteData2 (int nCaretX, int nCaretY, int nDelLen, CMemory *pcMem, COpe *pcOpe)
void | DeleteData (BOOL bRedraw)
void | InsertData_CEditView (int nX, int nY, const char *pData, int nDataLen, int *pnNewLine, int *pnNewPos, COpe *pcOpe, BOOL bRedraw)
void | SmartIndent_CPP (char)
void | RTrimPrevLine (void)
int | Command_UP (int, BOOL, int line=0)
int | Command_DOWN (int, BOOL)
int | Command_LEFT (int, BOOL)
カーソル左移動
void | Command_RIGHT (int, int, BOOL)
void | Command_UP2 (int)
void | Command_DOWN2 (int)
void | Command_WORDLEFT (int)
void | Command_WORDRIGHT (int)
void | Command_GOLINETOP (int bSelect, int lparam)
行頭に移動
void | Command_GOLINEEND (int, int)
void | Command_HalfPageUp (int)
* スクロールダウン */
void | Command_HalfPageDown (int)
void | Command_1PageUp (int)
void | Command_1PageDown (int)
void | Command_GOFILETOP (int)
void | Command_GOFILEEND (int)
void | Command_CURLINECENTER (void)
void | Command_JUMPHIST_PREV (void)
void | Command_JUMPHIST_NEXT (void)
void | Command_JUMPHIST_SET (void)
void | Command_WndScrollDown (void)
void | Command_WndScrollUp (void)
void | Command_GONEXTPARAGRAPH (int bSelect)
void | Command_GOPREVPARAGRAPH (int bSelect)
bool | Command_SELECTWORD (void)
void | Command_SELECTALL (void)
void | Command_BEGIN_SELECT (void)
void | Command_BEGIN_BOXSELECT (void)
int | Command_UP_BOX (BOOL)
void | Command_CUT (void)
void | Command_COPY (int, BOOL bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN)
void | Command_PASTE (void)
void | Command_PASTEBOX (void)
void | Command_PASTEBOX (const char *szPaste, int nPasteSize)
void | Command_INSTEXT (BOOL, const char *, int, BOOL)
* テキストを貼り付け ver0 */
void | Command_ADDTAIL (const char *, int)
void | Command_COPYFILENAME (void)
void | Command_COPYPATH (void)
void | Command_COPYTAG (void)
void | Command_COPYLINES (void)
void | Command_COPYLINESASPASSAGE (void)
void | Command_COPYLINESWITHLINENUMBER (void)
void | Command_CREATEKEYBINDLIST (void)
void | ReplaceData_CEditView (int nDelLineFrom, int nDelColmFrom, int nDelLineTo, int nDelColmTo, CMemory *pcmemCopyOfDeleted, const char *pInsData, int nInsDataLen, BOOL bRedraw)
void | Command_INS_DATE (void)
void | Command_INS_TIME (void)
void | Command_TOLOWER (void)
void | Command_TOUPPER (void)
void | Command_TOZENKAKUKATA (void)
void | Command_TOZENKAKUHIRA (void)
void | Command_TOHANKAKU (void)
void | Command_TOHANKATA (void)
void | Command_TOZENEI (void)
void | Command_TOHANEI (void)
void | Command_HANKATATOZENKAKUKATA (void)
void | Command_HANKATATOZENKAKUHIRA (void)
void | Command_TABTOSPACE (void)
void | Command_SPACETOTAB (void)
void | Command_CODECNV_AUTO2SJIS (void)
void | Command_CODECNV_EMAIL (void)
void | Command_CODECNV_EUC2SJIS (void)
void | Command_CODECNV_UNICODE2SJIS (void)
void | Command_CODECNV_UNICODEBE2SJIS (void)
void | Command_CODECNV_UTF82SJIS (void)
void | Command_CODECNV_UTF72SJIS (void)
void | Command_CODECNV_SJIS2JIS (void)
void | Command_CODECNV_SJIS2EUC (void)
void | Command_CODECNV_SJIS2UTF8 (void)
void | Command_CODECNV_SJIS2UTF7 (void)
void | Command_BASE64DECODE (void)
void | Command_UUDECODE (void)
void | Command_SEARCH_BOX (void)
void | Command_SEARCH_DIALOG (void)
void | Command_SEARCH_NEXT (bool, BOOL, HWND, const char *)
void | Command_SEARCH_PREV (BOOL, HWND)
void | Command_REPLACE_DIALOG (void)
void | Command_REPLACE (HWND hwndParent)
void | Command_REPLACE_ALL ()
void | Command_SEARCH_CLEARMARK (void)
void | Command_JUMP_SRCHSTARTPOS (void)
void | TranslateCommand_grep (int &, BOOL &, LPARAM &, LPARAM &, LPARAM &, LPARAM &)
void | Command_GREP_DIALOG (void)
void | Command_GREP (void)
void | Command_JUMP_DIALOG (void)
void | Command_JUMP (void)
BOOL | Command_FUNCLIST (int, int=OUTLINE_DEFAULT)
bool | Command_TAGJUMP (bool bClose=false)
void | Command_TAGJUMPBACK (void)
bool | Command_TagJumpByTagsFile (void)
bool | TagJumpSub (const char *pszJumpToFile, int nLine, int nColumn, bool bClose=false, bool bRelFromIni=false)
bool | Command_TagsMake (void)
bool | Command_TagJumpByTagsFileKeyword (const char *keyword)
void | Command_COMPARE (void)
void | Command_Diff_Dialog (void)
void | Command_Diff (const char *, int)
void | Command_Diff_Next (void)
void | Command_Diff_Prev (void)
void | Command_Diff_Reset (void)
void | Command_BRACKETPAIR (void)
void | Command_BOOKMARK_SET (void)
ブックマークの設定・解除を行う(トグル動作)
void | Command_BOOKMARK_NEXT (void)
次のブックマークを探し，見つかったら移動する
void | Command_BOOKMARK_PREV (void)
前のブックマークを探し，見つかったら移動する．
void | Command_BOOKMARK_RESET (void)
ブックマークをクリアする
void | Command_BOOKMARK_PATTERN (void)
void | TranslateCommand_isearch (int &, BOOL &, LPARAM &, LPARAM &, LPARAM &, LPARAM &)
bool | ProcessCommand_isearch (int, BOOL, LPARAM, LPARAM, LPARAM, LPARAM)
void | Command_CHGMOD_INS (void)
void | Command_CHGMOD_EOL (enumEOLType)
void | Command_CANCEL_MODE (void)
void | Command_SHOWTOOLBAR (void)
void | Command_SHOWFUNCKEY (void)
void | Command_SHOWTAB (void)
void | Command_SHOWSTATUSBAR (void)
void | Command_TYPE_LIST (void)
void | Command_OPTION_TYPE (void)
void | Command_OPTION (void)
void | Command_FONT (void)
void | Command_WRAPWINDOWWIDTH (void)
void | Command_Favorite (void)
void | Command_SET_QUOTESTRING (const char *)
引用符の設定
void | Command_RECKEYMACRO (void)
void | Command_SAVEKEYMACRO (void)
void | Command_LOADKEYMACRO (void)
void | Command_EXECKEYMACRO (void)
void | Command_EXECCOMMAND_DIALOG (void)
void | Command_EXECCOMMAND (const char *cmd, const int nFlgOpt)
void | Command_MENU_RBUTTON (void)
int | CreatePopUpMenu_R (void)
int Command_CUSTMENU (int)
void | Command_SPLIT_V (void)
void | Command_SPLIT_H (void)
void | Command_SPLIT_VH (void)
void | Command_WINCLOSE (void)
void | Command_FILECLOSEALL (void)
void | Command_BIND_WINDOW (void)
結合して表示
void | Command_CASCADE (void)
重ねて表示
void | Command_TILE_V (void)
void | Command_TILE_H (void)
void | Command_MAXIMIZE_V (void)
void | Command_MAXIMIZE_H (void)
void | Command_MINIMIZE_ALL (void)
void | Command_REDRAW (void)
void | Command_WIN_OUTPUT (void)
void | Command_TRACEOUT (const char *outputstr, int)
マクロ用アウトプットウインドウに表示
void | Command_WINTOPMOST (LPARAM)
void | Command_WINLIST (int nCommandFrom)
ウィンドウ一覧ポップアップ表示処理（ファイル名のみ）
void | Command_GROUPCLOSE (void)
void | Command_NEXTGROUP (void)
void | Command_PREVGROUP (void)
void | Command_TAB_MOVERIGHT (void)
void | Command_TAB_MOVELEFT (void)
void | Command_TAB_SEPARATE (void)
void | Command_TAB_JOINTNEXT (void)
void | Command_TAB_JOINTPREV (void)
void | PreprocessCommand_hokan (int nCommand)
コマンド受信前補完処理
void | PostprocessCommand_hokan (void)
void | Command_ToggleKeySearch (void)
void | ShowHokanMgr (CMemory &cmemData, BOOL bAutoDecided)
void | Command_HOKAN (void)
void | Command_HELP_CONTENTS (void)
void | Command_HELP_SEARCH (void)
void | Command_MENU_ALLFUNC (void)
void | Command_EXTHELP1 (void)
void | Command_EXTHTMLHELP (const char *helpfile=NULL, const char *kwd=NULL)
void | Command_ABOUT (void)
void | DrawEOL (HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, CEOL cEol, int bBold, COLORREF pColor)
void | DrawTabArrow (HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, int bBold, COLORREF pColor)
int | DispEOF (HDC hdc, int x, int y, int nCharWidth, int nLineHeight, UINT fuOptions, const ColorInfo &EofColInfo)
void | DispVerticalLines (HDC, int, int, int, int)
指定桁縦線描画関数 // 2005.11.08 Moca
void | AddCurrentLineToHistory (void)
現在のカーソル行位置を履歴に登録する
void | AnalyzeDiffInfo (const char *, int)
BOOL | MakeDiffTmpFile (char *, HWND)
void | ViewDiffInfo (const char *, const char *, int)
BOOL | OPEN_ExtFromtoExt (BOOL, BOOL, const char *[], const char *[], int, int, const char *)
void | ShowCaret_ (HWND hwnd)
void | HideCaret_ (HWND hwnd)

Private メソッド

BOOL (WINAPI *AT_ImmSetReconvertString)(HIMC
void | ISearchEnter (int mode, int direction)
void | ISearchExit ()
インクリメンタルサーチモードから抜ける
void | ISearchExec (WORD wChar)
インクリメンタルサーチの実行(1文字追加)
void | ISearchExec (const char *pszText)
インクリメンタルサーチの実行(文字列追加)
void | ISearchExec (bool bNext)
インクリメンタルサーチの実行
void | ISearchBack (void)
バックスペースを押されたときの処理
void | ISearchWordMake (void)
入力文字から、検索文字を生成する。
void | ISearchSetStatusMsg (CMemory *msg) const
ISearchメッセージ構築

Private 変数

UINT | m_uMSIMEReconvertMsg
UINT | m_uATOKReconvertMsg
UINT | m_uWM_MSIME_RECONVERTREQUEST
int m_nLastReconvLine
int m_nLastReconvIndex
HMODULE | m_hAtokModule
int
PRECONVERTSTRING
DWORD
bool | m_bUnderLineON
bool | m_bCaretShowFlag
CMigemo * m_pcmigemo
char * | m_pszMigemoWord
int m_nISearchDirection
int m_nISearchMode
bool | m_bISearchWrap
int | m_nISearchX1History [256]
int | m_nISearchY1History [256]
int | m_nISearchX2History [256]
int | m_nISearchY2History [256]
bool | m_bISearchFlagHistory [256]
int m_nISearchHistoryCount
bool | m_bISearchFirst
bool | m_bActivateByMouse
マウスによるアクティベート

説明

文書ウィンドウの管理

1つの文書ウィンドウにつき1つのCEditDocオブジェクトが割り当てられ、 1つのCEditDocオブジェクトにつき、4つのCEditViweオブジェクトが割り当てられる。 ウィンドウメッセージの処理、コマンドメッセージの処理、 画面表示などを行う。

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CEditView.h の 114 行で定義されています。

列挙型

enum CEditView::LID_SKH

CEditView::KeyWordHelpSearchDictのコール元指定用ローカルID

日付:
2006.04.10 fon 新規作成
列挙型の値:
LID_SKH_ONTIMER | CEditView::OnTimer
LID_SKH_POPUPMENU_R | CEditView::CreatePopUpMenu_R

CEditView.h の 223 行で定義されています。

enum CEditView::TOGGLE_WRAP_ACTION

列挙型の値:
TGWRAP_NONE
TGWRAP_FULL
TGWRAP_WINDOW
TGWRAP_PROP

CEditView.h の 234 行で定義されています。

コンストラクタとデストラクタ

CEditView::CEditView ( )

CEditView.cpp の 213 行で定義されています。

参照先 BOOL()・DWORD・FALSE・CShareData::getInstance()・CShareData::GetShareData()・CDllHandler::Init()・int・m_bBeginBoxSelect・m_bBeginLineSelect・m_bBeginSelect・m_bBeginWordSelect・m_bCommandRunning・m_bCurSrchKeyMark・m_bCurSrchLoHiCase・m_bCurSrchRegularExp・m_bCurSrchWordOnly・m_bDoing_UndoRedo・m_bDragMode・m_bDragSource・m_bDrawBracketPairFlag・m_bDrawSelectArea・m_bDrawSWITCH・m_bExecutingKeyMacro・m_bHokan・m_bInMenuLoop・m_bPrevCommand・m_bRedrawRuler・m_bSearch・m_bSelectingLock・m_cHistory・DLLSHAREDATA::m_Common・m_crBack・m_crCaret・m_CurRegexp・m_dwTipTimer・m_hAtokModule・m_hbmpCaret・m_hbmpCompatBMP・m_hbmpCompatBMPOld・m_hdcCompatDC・m_hFont_HAN・m_hFont_HAN_FAT・m_hFont_HAN_FAT_UL・m_hFont_HAN_UL・m_hFontOld・m_hInstance・m_hWnd・m_hwndHScrollBar・m_hwndSizeBox・m_hwndVScrollBar・Common::m_lf・m_nBracketCaretPosX_PHY・m_nBracketCaretPosY_PHY・m_nBracketPairPosX_PHY・m_nBracketPairPosY_PHY・m_nCaretHeight・m_nCaretPosX・m_nCaretPosX_PHY・m_nCaretPosX_Prev・m_nCaretPosY・m_nCaretPosY_PHY・m_nCaretWidth・m_nCharHeight・m_nCharWidth・m_nMyIndex・m_nOldCaretPosX・m_nOldCaretWidth・Common::m_nRulerBottomSpace・Common::m_nRulerHeight・m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmFromOld・m_nSelectColmTo・m_nSelectColmToOld・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineFrom・m_nSelectLineFromOld・m_nSelectLineTo・m_nSelectLineToOld・m_nSrchStartPosX_PHY・m_nSrchStartPosY_PHY・m_nTopYohaku・m_nViewAlignLeft・m_nViewAlignLeftCols・m_nViewAlignTop・m_nViewColNum・m_nViewCx・m_nViewCy・m_nViewLeftCol・m_nViewRowNum・m_nViewTopLine・m_nVScrollRate・m_pcDropTarget・m_pcOpeBlk・m_pcsbwHSplitBox・m_pcsbwVSplitBox・m_pShareData・m_pszAppName・m_szCurSrchKey・Common::m_szRegexpLib・m_uATOKReconvertMsg・m_uMSIMEReconvertMsg・m_uWM_MSIME_RECONVERTREQUEST・MSGNAME_ATOK_RECONVERT・NULL・COsVersionInfo::OsDoesNOTSupportReconvert()・RWM_RECONVERT・CMarkMgr::SetMax()・TRUE.

CEditView::~CEditView ( )

CEditView.cpp の 400 行で定義されています。

参照先 m_cHistory・m_cRegexKeyword・m_hAtokModule・m_hbmpCaret・m_hbmpCompatBMP・m_hbmpCompatBMPOld・m_hdcCompatDC・m_hFont_HAN・m_hFont_HAN_FAT・m_hFont_HAN_FAT_UL・m_hFont_HAN_UL・m_hWnd・m_pcDropTarget・NULL.

関数

void CEditView::AddCurrentLineToHistory ( void ) [protected]

現在のカーソル行位置を履歴に登録する

CEditView_New2.cpp の 1425 行で定義されています。

参照先 CAutoMarkMgr::Add()・CLayoutMgr::CaretPos_Log2Phys()・m_cHistory・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・m_pcEditDoc.

参照元 Command_GOFILEEND()・Command_GOFILETOP()・Command_JUMPHIST_PREV()・Command_JUMPHIST_SET()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL().

void CEditView::AddToCmdArr ( const char * ) [protected]

CEditView_Command.cpp の 9385 行で定義されています。

参照先 CRecent::AppendItem()・CRecent::EasyCreate()・RECENT_FOR_CMD・CRecent::Terminate().

参照元 Command_EXECCOMMAND().

void CEditView::AdjustScrollBars ( void )

CEditView.cpp の 2594 行で定義されています。

参照先 CLayoutMgr::GetLineCount()・CLayoutMgr::GetMaxLineSize()・m_bDrawSWITCH・CEditDoc::m_cLayoutMgr・m_hwndHScrollBar・m_hwndVScrollBar・m_nViewColNum・m_nViewLeftCol・m_nViewRowNum・m_nViewTopLine・m_nVScrollRate・m_pcEditDoc・NULL・ScrollAtH()・ScrollAtV()・TRUE.

参照元 Command_PASTEBOX()・Drop()・OnSize()・RedrawAll()・ScrollAtV().

void CEditView::AnalyzeDiffInfo | ( | const char * | pszDiffInfo,
 |  | int | nFlgFile12
 | ) | [protected]

DIFF差分情報を解析しマーク登録

引数:
pszDiffInfo | [in] 新ファイル名
nFlgFile12 | [in] 編集中ファイルは... 0 ファイル1(旧ファイル) 1 ファイル2(新ファイル)
作者:
MIK
日付:
2002/05/25

CEditView_Diff.cpp の 437 行で定義されています。

void CEditView::BeginSelectArea ( void ) [protected]

CEditView.cpp の 4368 行で定義されています。

参照先 m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineFrom・m_nSelectLineTo.

参照元 Command_BEGIN_BOXSELECT()・Command_BEGIN_SELECT()・Command_Diff_Next()・Command_Diff_Prev()・Command_GOLINEEND()・Command_LEFT()・Command_RIGHT()・Command_WORDLEFT()・Command_WORDRIGHT()・Cursor_UPDOWN()・MoveCursorSelecting().

CEditView::BOOL ( WINAPI * AT_ImmSetReconvertString ) [private]

参照元 CEditView()・ChangeCurRegexp()・Command_BOOKMARK_NEXT()・Command_BOOKMARK_PREV()・Command_COMPARE()・Command_COPY()・Command_CUT()・Command_DELETE_BACK()・Command_Diff_Next()・Command_Diff_Prev()・Command_GOLINETOP()・Command_IME_CHAR()・Command_INSFILE()・Command_PASTE()・Command_PASTEBOX()・Command_PLSQL_COMPILE_ON_SQLPLUS()・Command_PRINT_PAGESETUP()・Command_PUTFILE()・Command_REPLACE_DIALOG()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SORT()・Command_WORDLEFT()・Command_WORDRIGHT()・ConvSelectedArea()・DispLineNew()・DispVerticalLines()・DoGrepFile()・DoGrepTree()・Drop()・ExecCmd()・GetAdjustCursorPos()・GetColorIndex()・HandleCommand()・MakeDiffTmpFile()・OnPaint()・OPEN_ExtFromtoExt()・SmartIndent_CPP().

void CEditView::CaretUnderLineOFF ( BOOL )

CEditView.cpp の 8734 行で定義されています。

参照先 COLORIDX_UNDERLINE・FALSE・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・Types::m_ColorInfoArr・m_pcEditDoc.

参照元 CCaretUnderLine::CaretUnderLineOFF().

void CEditView::CaretUnderLineON ( BOOL )

CEditView.cpp の 8686 行で定義されています。

参照先 COLORIDX_UNDERLINE・FALSE・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・Types::m_ColorInfoArr・m_pcEditDoc.

参照元 CCaretUnderLine::CaretUnderLineON().

BOOL CEditView::ChangeCurRegexp ( void ) [protected]

CEditView_Command.cpp の 3138 行で定義されています。

参照先 BOOL()・CBregexp::Compile()・FALSE・InitRegexp()・m_bCurSrchKeyMark・m_bCurSrchLoHiCase・m_bCurSrchRegularExp・m_bCurSrchWordOnly・Common::m_bLoHiCase・Common::m_bRegularExp・Common::m_bWordOnly・DLLSHAREDATA::m_Common・m_CurRegexp・m_hWnd・m_pShareData・m_szCurSrchKey・DLLSHAREDATA::m_szSEARCHKEYArr・RedrawAll()・TRUE.

参照元 Command_BOOKMARK_PATTERN()・Command_SEARCH_NEXT()・Command_SEARCH_PREV().

void CEditView::ChangeSelectAreaByCurrentCursor | ( | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 4432 行で定義されています。

参照先 ChangeSelectAreaByCurrentCursorTEST()・DrawSelectArea()・m_nSelectColmFrom・m_nSelectColmFromOld・m_nSelectColmTo・m_nSelectColmToOld・m_nSelectLineFrom・m_nSelectLineFromOld・m_nSelectLineTo・m_nSelectLineToOld.

参照元 Command_Diff_Next()・Command_Diff_Prev()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_WORDLEFT()・Command_WORDRIGHT()・Cursor_UPDOWN()・MoveCursorSelecting().

void CEditView::ChangeSelectAreaByCurrentCursorTEST | ( | int | ,
 |  | int | ,
 |  | int & | ,
 |  | int & | ,
 |  | int & | ,
 |  | int & |
 | ) | [protected]

CEditView.cpp の 4463 行で定義されています。

参照先 m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectLineBgnFrom・m_nSelectLineBgnTo.

参照元 ChangeSelectAreaByCurrentCursor().

HFONT CEditView::ChooseFontHandle | ( | BOOL | bFat,
 |  | BOOL | bUnderLine
 | ) | [protected]

フォントを選ぶ

引数:
bFat | TRUEで太字
bUnderLine | TRUEでアンダーライン

CEditView_New.cpp の 45 行で定義されています。

参照先 m_hFont_HAN・m_hFont_HAN_FAT・m_hFont_HAN_FAT_UL・m_hFont_HAN_UL.

参照元 DispEOF()・DispLineNew()・SetCurrentColor().

void CEditView::Command_1PageDown ( int bSelect ) [protected]

１ページダウン

日付:
2000.10.10 JEPRO 作成

2001.12.13 hor 画面に対するカーソル位置はそのままで １ページダウンに動作変更

CEditView_Command.cpp の 1118 行で定義されています。

参照先 Cursor_UPDOWN()・FALSE・m_bDrawSWITCH・m_nCaretPosY・m_nViewRowNum・m_nViewTopLine・RedrawAll()・ScrollAtV()・SyncScrollV()・TRUE.

void CEditView::Command_1PageUp ( int bSelect ) [protected]

１ページアップ

日付:
2000.10.10 JEPRO 作成

2001.12.13 hor 画面に対するカーソル位置はそのままで １ページアップに動作変更

CEditView_Command.cpp の 1087 行で定義されています。

参照先 Cursor_UPDOWN()・FALSE・m_bDrawSWITCH・m_nCaretPosY・m_nViewRowNum・m_nViewTopLine・RedrawAll()・ScrollAtV()・SyncScrollV()・TRUE.

void CEditView::Command_ABOUT ( void ) [protected]

CEditView_Command.cpp の 5127 行で定義されています。

参照先 CDlgAbout::DoModal()・m_hInstance・m_hWnd.

void CEditView::Command_ACTIVATE_SQLPLUS ( void ) [protected]

CEditView_Command.cpp の 8293 行で定義されています。

参照先 ActivateFrameWindow()・GSTR_APPNAME・m_hWnd・MYMESSAGEBOX・NULL.

void CEditView::Command_ADDTAIL | ( | const char * | ,
 |  | int |
 | ) | [protected]

CEditView_Command.cpp の 5732 行で定義されています。

参照先 COpeBlk::AppendOpe()・Command_GOFILEEND()・FALSE・InsertData_CEditView()・m_bDoing_UndoRedo・m_nCaretPosX・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosX_Prev・m_nCaretPosY・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・m_pcEditDoc・m_pcOpeBlk・MoveCursor()・NULL・CEditDoc::SetModified()・TRUE.

void CEditView::Command_BASE64DECODE ( void ) [protected]

CEditView_Command.cpp の 8099 行で定義されています。

参照先 _MAX_PATH・CMemory::BASE64Decode()・FALSE・GetSelectedData()・IsTextSelected()・Common::m_bAddCRLFWhenCopy・DLLSHAREDATA::m_Common・m_pcEditDoc・m_pShareData・NULL・CEditDoc::SaveFileDialog().

void CEditView::Command_BEGIN_BOXSELECT ( void ) [protected]

CEditView_Command.cpp の 3677 行で定義されています。

参照先 BeginSelectArea()・DisableSelectArea()・FALSE・IsTextSelected()・m_bBeginBoxSelect・Common::m_bFontIs_FIXED_PITCH・m_bSelectingLock・DLLSHAREDATA::m_Common・m_pShareData・TRUE.

void CEditView::Command_BEGIN_SELECT ( void ) [protected]

CEditView_Command.cpp の 3656 行で定義されています。

参照先 BeginSelectArea()・FALSE・IsTextSelected()・m_bSelectingLock・TRUE.

void CEditView::Command_BIND_WINDOW ( void ) [protected]

結合して表示

タブウィンドウの結合、非結合を切り替えるコマンドです。 [共通設定]->[ウィンドウ]->[タブ表示 まとめない]の切り替えと同じです。

作者:
Kazika
日付:
2004.07.14 Kazika 新規作成

2007.06.20 ryoji m_pShareData->m_TabWndWndplの廃止，グループIDリセット

CEditView_Command.cpp の 6786 行で定義されています。

参照先 DWORD・CShareData::getInstance()・GetWindowLongPtr・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・m_hWnd・CEditWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・m_pShareData・MYWM_TAB_WINDOW_NOTIFY・CShareData::PostMessageToAllEditors()・CShareData::ResetGroupId()・TWNT_MODE_DISABLE・TWNT_MODE_ENABLE・CEditWnd::WindowTopMost().

void CEditView::Command_BOOKMARK_NEXT ( void ) [protected]

次のブックマークを探し，見つかったら移動する

CEditView_Command_New.cpp の 2119 行で定義されています。

参照先 BOOL()・CLayoutMgr::CaretPos_Phys2Log()・FALSE・m_bSelectingLock・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosY_PHY・m_pcEditDoc・MoveCursorSelecting()・CDocLineMgr::SearchBookMark()・TRUE.

void CEditView::Command_BOOKMARK_PATTERN ( void ) [protected]

CEditView_Command_New.cpp の 2215 行で定義されています。

参照先 ChangeCurRegexp()・Common::m_bLoHiCase・Common::m_bRegularExp・Common::m_bWordOnly・CEditDoc::m_cDocLineMgr・CEditDoc::m_cEditViewArr・DLLSHAREDATA::m_Common・m_CurRegexp・CEditDoc::m_nActivePaneIndex・m_pcEditDoc・m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr・CDocLineMgr::MarkSearchWord()・Redraw().

void CEditView::Command_BOOKMARK_PREV ( void ) [protected]

前のブックマークを探し，見つかったら移動する．

CEditView_Command_New.cpp の 2161 行で定義されています。

参照先 BOOL()・CLayoutMgr::CaretPos_Phys2Log()・FALSE・m_bSelectingLock・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosY_PHY・m_pcEditDoc・MoveCursorSelecting()・CDocLineMgr::SearchBookMark()・TRUE.

void CEditView::Command_BOOKMARK_RESET ( void ) [protected]

ブックマークをクリアする

CEditView_Command_New.cpp の 2203 行で定義されています。

参照先 CEditDoc::m_cDocLineMgr・CEditDoc::m_cEditViewArr・CEditDoc::m_nActivePaneIndex・m_pcEditDoc・Redraw()・CDocLineMgr::ResetAllBookMark().

void CEditView::Command_BOOKMARK_SET ( void ) [protected]

ブックマークの設定・解除を行う(トグル動作)

CEditView_Command_New.cpp の 2091 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・CDocLineMgr::GetLineInfo()・CDocLine::IsBookMarked()・IsTextSelected()・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・NULL・CDocLine::SetBookMark().

void CEditView::Command_BRACKETPAIR ( void ) [protected]

CEditView_Command.cpp の 9430 行で定義されています。

参照先 m_bSelectingLock・m_nCaretPosX・m_nCaretPosY・MoveCursorSelecting()・SearchBracket().

void CEditView::Command_BROWSE ( void ) [protected]

CEditView_Command.cpp の 8854 行で定義されています。

参照先 CEditDoc::IsFilePathAvailable()・m_pcEditDoc.

void CEditView::Command_CANCEL_MODE ( void ) [protected]

CEditView_Command.cpp の 3642 行で定義されています。

参照先 DisableSelectArea()・FALSE・IsTextSelected()・m_bSelectingLock・TRUE.

void CEditView::Command_CASCADE ( void ) [protected]

重ねて表示

日付:
2002.01.08 YAZAKI 「左右に並べて表示」すると、 裏で最大化されているエクスプローラが「元の大きさ」になるバグ修正。

2003.06.12 MIK タブウインドウ時は動作しないように

2004.03.19 crayonzen カレントウィンドウを最後に配置． ウィンドウが多い場合に2周目以降は右にずらして配置．

2004.03.20 genta Z-Orderの上から順に並べていくように．(SetWindowPosを利用)

2007.06.20 ryoji タブモードは解除せずグループ単位で並べる

CEditView_Command.cpp の 6825 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetOpenedWindowArr()・m_hWnd・TRUE.

void CEditView::Command_CHAR ( char ) [protected]

CEditView_Command.cpp の 2760 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・CR・DeleteData()・CEditDoc::GetDocumentAttribute()・CEOL::GetLen()・CDocLineMgr::GetLineInfo()・CDocLineMgr::GetLineStr()・CLayoutMgr::GetLineStr()・CEditDoc::GetNewLineCode()・CMemory::GetSizeOfChar()・CEOL::GetValue()・IsTextSelected()・LF・LineColmnToIndex()・LineIndexToColmn()・Types::m_bAutoIndent・Types::m_bAutoIndent_ZENSPACE・m_bBeginSelect・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・m_pcEditDoc・Types::m_szIndentChars・NULL・CMemory::SetData()・CEditDoc::SetModified()・SPACE・TAB・TRUE.

参照元 Command_IME_CHAR()・Command_INDENT_TAB()・Command_UNINDENT().

void CEditView::Command_CHGMOD_EOL ( enumEOLType e ) [protected]

入力する改行コードを設定

作者:
moca
日付:
2003.06.23 新規作成

CEditView_Command_New.cpp の 2808 行で定義されています。

参照先 DrawCaretPosInfo()・EOL_CODEMAX・EOL_NONE・m_pcEditDoc・CEditDoc::SetNewLineCode().

void CEditView::Command_CHGMOD_INS ( void ) [protected]

挿入／上書きモード切り替え

日付:
2005.10.02 genta InsMode関数化

CEditView_Command.cpp の 3085 行で定義されています。

参照先 DrawCaretPosInfo()・IsInsMode()・SetInsMode()・ShowEditCaret().

void CEditView::Command_CODECNV_AUTO2SJIS ( void ) [protected]

CEditView_Command.cpp の 4576 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_AUTO2SJIS.

void CEditView::Command_CODECNV_EMAIL ( void ) [protected]

CEditView_Command.cpp の 4466 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_EMAIL.

void CEditView::Command_CODECNV_EUC2SJIS ( void ) [protected]

CEditView_Command.cpp の 4477 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_EUC2SJIS.

void CEditView::Command_CODECNV_SJIS2EUC ( void ) [protected]

CEditView_Command.cpp の 4521 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_SJIS2EUC.

void CEditView::Command_CODECNV_SJIS2JIS ( void ) [protected]

CEditView_Command.cpp の 4510 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_SJIS2JIS.

void CEditView::Command_CODECNV_SJIS2UTF7 ( void ) [protected]

CEditView_Command.cpp の 4554 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_SJIS2UTF7.

void CEditView::Command_CODECNV_SJIS2UTF8 ( void ) [protected]

CEditView_Command.cpp の 4565 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_SJIS2UTF8.

void CEditView::Command_CODECNV_UNICODE2SJIS ( void ) [protected]

CEditView_Command.cpp の 4488 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_UNICODE2SJIS.

void CEditView::Command_CODECNV_UNICODEBE2SJIS ( void ) [protected]

CEditView_Command.cpp の 4499 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_UNICODEBE2SJIS.

void CEditView::Command_CODECNV_UTF72SJIS ( void ) [protected]

CEditView_Command.cpp の 4543 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_UTF72SJIS.

void CEditView::Command_CODECNV_UTF82SJIS ( void ) [protected]

CEditView_Command.cpp の 4532 行で定義されています。

参照先 ConvSelectedArea()・F_CODECNV_UTF82SJIS.

void CEditView::Command_COMPARE ( void ) [protected]

CEditView_Command.cpp の 8561 行で定義されています。

参照先 _MAX_PATH・BOOL()・CDlgCompare::DoModal()・CEditDoc::GetFilePath()・GSTR_APPNAME・Common::m_bCompareAndTileHorz・CDlgCompare::m_bCompareAndTileHorz・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・m_hInstance・m_hWnd・m_nCaretPosX・m_nCaretPosY・m_pcEditDoc・m_pShareData・DLLSHAREDATA::m_szWork・MYMESSAGEBOX・MYWM_GETCARETPOS・MYWM_GETLINEDATA・NULL・TRUE.

void CEditView::Command_COPY | ( | int | bIgnoreLockAndDisable,
 |  | BOOL | bAddCRLFWhenCopy,
 |  | enumEOLType | neweol = EOL_UNKNOWN
 | ) | [protected]

選択範囲をクリップボードにコピー

引数:
bIgnoreLockAndDisable | [in] 選択範囲を解除するか？
bAddCRLFWhenCopy | [in] 折り返し位置に改行コードを挿入するか？
neweol | [in] コピーするときのEOL。

CEditView_Command.cpp の 1541 行で定義されています。

参照先 CMemory::AppendSz()・BOOL()・EOL_UNKNOWN・FALSE・CEOL::GetLen()・CLayout::GetLengthWithoutEOL()・CLayout::GetPtr()・GetSelectedData()・CEOL::GetValue()・IsTextSelected()・m_bBeginBoxSelect・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・m_nCaretPosY・m_pcEditDoc・NULL・CLayoutMgr::Search()・CMemory::SetData()・TRUE.

void CEditView::Command_COPYFILENAME ( void ) [protected]

現在編集中のファイル名をクリップボードにコピー 2002/2/3 aroka

CEditView_Command.cpp の 3798 行で定義されています。

参照先 FALSE・CEditDoc::GetFileName()・CEditDoc::IsFilePathAvailable()・m_pcEditDoc・MySetClipboardData().

void CEditView::Command_COPYLINES ( void ) [protected]

CEditView_Command.cpp の 8498 行で定義されています。

参照先 CopySelectedAllLines()・NULL.

参照元 Command_CUT_LINE().

void CEditView::Command_COPYLINESASPASSAGE ( void ) [protected]

CEditView_Command.cpp の 8512 行で定義されています。

参照先 CopySelectedAllLines()・DLLSHAREDATA::m_Common・m_pShareData・Common::m_szInyouKigou.

void CEditView::Command_COPYLINESWITHLINENUMBER ( void ) [protected]

CEditView_Command.cpp の 8526 行で定義されています。

参照先 CopySelectedAllLines()・NULL・TRUE.

void CEditView::Command_COPYPATH ( void ) [protected]

CEditView_Command.cpp の 3815 行で定義されています。

参照先 FALSE・CEditDoc::GetFilePath()・CEditDoc::IsFilePathAvailable()・m_pcEditDoc・MySetClipboardData().

void CEditView::Command_COPYTAG ( void ) [protected]

CEditView_Command.cpp の 3848 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・FALSE・CEditDoc::GetFilePath()・CEditDoc::IsFilePathAvailable()・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・m_pcEditDoc・MySetClipboardData().

void CEditView::Command_CREATEKEYBINDLIST ( void ) [protected]

CEditView_Command.cpp の 8541 行で定義されています。

参照先 CKeyBind::CreateKeyBindList()・CMemory::GetLength()・CMemory::GetPtr()・CEditDoc::m_cFuncLookup・m_hInstance・CEditDoc::m_hWnd・DLLSHAREDATA::m_nKeyNameArrNum・m_pcEditDoc・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・SetClipboardText().

void CEditView::Command_CtrlCode_Dialog ( void ) [protected]

コントロールコードの入力(ダイアログ)

作者:
MIK
日付:
2002/06/02

CEditView_Command_New.cpp の 2745 行で定義されています。

参照先 CDlgCtrlCode::DoModal()・FALSE・m_hInstance・m_hWnd・m_pcEditDoc.

void CEditView::Command_CURLINECENTER ( void ) [protected]

CEditView_Command.cpp の 8075 行で定義されています。

参照先 m_nCaretPosY・m_nViewRowNum・m_nViewTopLine・RedrawAll()・SyncScrollV().

int CEditView::Command_CUSTMENU ( int ) [protected]

CEditView_Command.cpp の 8423 行で定義されています。

参照先 CEditDoc::m_cFuncLookup・CEditWnd::m_CMenuDrawer・DLLSHAREDATA::m_Common・Common::m_nCustMenuItemFuncArr・Common::m_nCustMenuItemNumArr・m_pcEditDoc・CEditDoc::m_pcEditWnd・m_pShareData・MAX_CUSTOM_MENU・NULL・CMenuDrawer::ResetContents().

void CEditView::Command_CUT ( void ) [protected]

CEditView_Command.cpp の 1606 行で定義されています。

参照先 BOOL()・Command_CUT_LINE()・DeleteData()・FALSE・CMemory::GetLength()・CMemory::GetPtr()・GetSelectedData()・IsTextSelected()・Common::m_bAddCRLFWhenCopy・m_bBeginBoxSelect・m_bBeginSelect・DLLSHAREDATA::m_Common・m_pcEditDoc・m_pShareData・MySetClipboardData()・NULL・CEditDoc::SetModified()・TRUE.

参照元 Command_LineCutToEnd()・Command_LineCutToStart()・Command_WordCut().

void CEditView::Command_CUT_LINE ( void ) [protected]

CEditView_Command.cpp の 2031 行で定義されています。

参照先 COpeBlk::AppendOpe()・Command_COPYLINES()・Command_DELETE()・IsTextSelected()・LineColmnToIndex2()・LineIndexToColmn()・m_bBeginSelect・m_bDoing_UndoRedo・Common::m_bIsFreeCursorMode・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・m_nCaretPosX・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosX_Prev・m_nCaretPosY・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・COpe::m_nOpe・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・m_pcOpeBlk・m_pShareData・MoveCursor()・NULL・OPE_MOVECARET・CLayoutMgr::Search()・TRUE.

参照元 Command_CUT().

void CEditView::Command_DELETE ( void ) [protected]

CEditView_Command.cpp の 1652 行で定義されています。

参照先 DeleteData()・IsTextSelected()・m_bBeginSelect・TRUE.

参照元 Command_CUT_LINE()・Command_DELETE_LINE().

void CEditView::Command_DELETE_BACK ( void ) [protected]

CEditView_Command.cpp の 1671 行で定義されています。

参照先 COpeBlk::AppendOpe()・BOOL()・CLayoutMgr::CaretPos_Log2Phys()・Command_LEFT()・DeleteData()・FALSE・IsTextSelected()・m_bBeginSelect・m_bDoing_UndoRedo・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosY・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・COpe::m_nOpe・m_pcEditDoc・m_pcOpeBlk・NULL・OPE_MOVECARET・PostprocessCommand_hokan()・CEditDoc::SetModified()・TRUE.

void CEditView::Command_DELETE_LINE ( void ) [protected]

CEditView_Command.cpp の 2096 行で定義されています。

参照先 COpeBlk::AppendOpe()・Command_DELETE()・IsTextSelected()・LineColmnToIndex2()・LineIndexToColmn()・m_bBeginSelect・m_bDoing_UndoRedo・Common::m_bIsFreeCursorMode・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・m_nCaretPosX・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosX_Prev・m_nCaretPosY・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・COpe::m_nOpe・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・m_pcOpeBlk・m_pShareData・MoveCursor()・NULL・OPE_MOVECARET・CLayoutMgr::Search()・TRUE.

void CEditView::Command_Diff | ( | const char * | szTmpFile2,
 |  | int | nFlgOpt
 | ) | [protected]

差分表示

覚え書き:
HandleCommandからの呼び出し対応(ダイアログなし版)
作者:
maru
日付:
2005/10/28 これまでのCommand_DiffはViewDiffInfoに名称変更

CEditView_Diff.cpp の 45 行で定義されています。

参照先 _MAX_PATH・FALSE・CEditDoc::GetFilePath()・GSTR_APPNAME・CEditDoc::IsModified()・m_hWnd・m_pcEditDoc・MakeDiffTmpFile()・MYMESSAGEBOX・NULL・ViewDiffInfo().

void CEditView::Command_Diff_Dialog ( void ) [protected]

差分表示

覚え書き:
HandleCommandからの呼び出し対応(ダイアログあり版)
作者:
MIK
日付:
2002/05/25

2002/11/09 編集中ファイルを許可

2005/10/29 maru 一時ファイル作成処理をMakeDiffTmpFileへ移動

CEditView_Diff.cpp の 79 行で定義されています。

参照先 _MAX_PATH・CDlgDiff::DoModal()・FALSE・CEditDoc::GetFilePath()・CDlgDiff::m_bIsModifiedDst・m_hInstance・m_hWnd・CDlgDiff::m_hWnd_Dst・CDlgDiff::m_nDiffFlgOpt・m_pcEditDoc・CDlgDiff::m_szFile2・MakeDiffTmpFile()・NULL・ViewDiffInfo().

void CEditView::Command_Diff_Next ( void ) [protected]

次の差分を探し，見つかったら移動する

CEditView_Diff.cpp の 538 行で定義されています。

参照先 BeginSelectArea()・BOOL()・CLayoutMgr::CaretPos_Phys2Log()・ChangeSelectAreaByCurrentCursor()・DisableSelectArea()・FALSE・IsTextSelected()・m_bSelectingLock・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosY_PHY・m_pcEditDoc・MoveCursor()・CDocLineMgr::SearchDiffMark()・TRUE.

void CEditView::Command_Diff_Prev ( void ) [protected]

前の差分を探し，見つかったら移動する

CEditView_Diff.cpp の 598 行で定義されています。

参照先 BeginSelectArea()・BOOL()・CLayoutMgr::CaretPos_Phys2Log()・ChangeSelectAreaByCurrentCursor()・DisableSelectArea()・FALSE・IsTextSelected()・m_bSelectingLock・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosY_PHY・m_pcEditDoc・MoveCursor()・CDocLineMgr::SearchDiffMark()・TRUE.

void CEditView::Command_Diff_Reset ( void ) [protected]

差分表示の全解除

作者:
MIK
日付:
2002/05/26

CEditView_Diff.cpp の 658 行で定義されています。

参照先 CEditDoc::m_cDocLineMgr・CEditDoc::m_cEditViewArr・CEditDoc::m_nActivePaneIndex・m_pcEditDoc・Redraw()・CDocLineMgr::ResetAllDiffMark().

参照元 ViewDiffInfo().

int CEditView::Command_DOWN | ( | int | ,
 |  | BOOL |
 | ) | [protected]

CEditView_Command.cpp の 731 行で定義されています。

参照先 Cursor_UPDOWN()・DLLSHAREDATA::m_Common・m_hWnd・Common::m_nRepeatedScroll_Smooth・Common::m_nRepeatedScrollLineNum・m_pShareData.

参照元 Command_GOFILEEND().

void CEditView::Command_DOWN2 ( int ) [protected]

CEditView_Command.cpp の 1155 行で定義されています。

参照先 Cursor_UPDOWN().

void CEditView::Command_DUPLICATELINE ( void ) [protected]

CEditView_Command.cpp の 4190 行で定義されています。

参照先 COpeBlk::AppendOpe()・Command_GOLINETOP()・DisableSelectArea()・EOL_NONE・FALSE・CLayoutMgr::GetLineCount()・IsTextSelected()・m_bDoing_UndoRedo・m_bSelectingLock・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosY・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・COpe::m_nOpe・m_pcEditDoc・m_pcOpeBlk・NULL・OPE_MOVECARET・CLayoutMgr::Search()・TRUE.

void CEditView::Command_EXECCOMMAND | ( | const char * | cmd,
 |  | const int | nFlgOpt
 | ) | [protected]

CEditView_Command.cpp の 9348 行で定義されています。

参照先 AddToCmdArr()・CDlgExec::DoModal()・m_hInstance・m_hWnd・CDlgExec::m_szCommand・NULL.

void CEditView::Command_EXECCOMMAND_DIALOG ( void ) [protected]

外部コマンド実行ダイアログ表示

日付:
2002.02.02 YAZAKI.

2007.01.02 maru 引数は使っていないようなのでvoidに変更． HandleCommand(F_EXECCOMMAND,,,,,)実行の引数変更

CEditView_Command.cpp の 9324 行で定義されています。

参照先 CDlgExec::DoModal()・m_hInstance・m_hWnd.

void CEditView::Command_EXECKEYMACRO ( void ) [protected]

CEditView_Command.cpp の 8993 行で定義されています。

参照先 Command_RECKEYMACRO()・CSMacroMgr::Exec()・GSTR_APPNAME・CSMacroMgr::Load()・m_bExecutingKeyMacro・DLLSHAREDATA::m_bRecordingKeyMacro・m_hInstance・m_hWnd・DLLSHAREDATA::m_hwndRecordingKeyMacro・m_pcEditDoc・CEditDoc::m_pcSMacroMgr・m_pShareData・DLLSHAREDATA::m_szKeyMacroFileName・MYMESSAGEBOX・NULL・STAND_KEYMACRO・TRUE.

void CEditView::Command_EXITALL ( void ) [protected]

CEditView_Command.cpp の 8357 行で定義されています。

参照先 m_hwndParent・CEditApp::TerminateApplication().

void CEditView::Command_EXITALLEDITORS ( void ) [protected]

CEditView_Command.cpp の 8350 行で定義されています。

参照先 CEditApp::CloseAllEditor()・m_hwndParent・TRUE.

void CEditView::Command_EXTHELP1 ( void ) [protected]

CEditView_Command.cpp の 4892 行で定義されています。

参照先 CEditDoc::GetDocumentType()・CShareData::getInstance()・GSTR_APPNAME・ID_PAGENUM_HELPER・m_pcEditDoc・MYMESSAGEBOX・NULL・CEditDoc::OpenPropertySheet().

void CEditView::Command_EXTHTMLHELP | ( | const char * | helpfile = NULL,
 |  | const char * | kwd = NULL
 | ) | [protected]

外部HTMLヘルプ

引数:
helpfile | [in] HTMLヘルプファイル名．NULLのときはタイプ別に設定されたファイル．
kwd | [in] 検索キーワード．NULLのときはカーソル位置or選択されたワード
日付:
2002.07.05 genta 任意のファイル・キーワードの指定ができるよう引数追加

CEditView_Command.cpp の 4943 行で定義されています。

参照先 CEditDoc::GetDocumentType()・CShareData::getInstance()・GSTR_APPNAME・ID_PAGENUM_HELPER・m_pcEditDoc・MYMESSAGEBOX・NULL・CEditDoc::OpenPropertySheet().

void CEditView::Command_Favorite ( void ) [protected]

履歴の管理(ダイアログ)

作者:
MIK
日付:
2003/04/07

CEditView_Command_New.cpp の 2790 行で定義されています。

参照先 CDlgFavorite::DoModal()・FALSE・m_hInstance・m_hWnd・m_pcEditDoc.

void CEditView::Command_FILE_REOPEN | ( | int | nCharCode,
 |  | int | bNoConfirm
 | ) | [protected]

ファイルの再オープン

引数:
nCharCode | [in] 開き直す際の文字コード
bNoConfirm | [in] ファイルが更新された場合に確認を行うか． 0: 確認する, !0: 確認しない

CEditView_Command.cpp の 9263 行で定義されています。

参照先 CEditDoc::GetFilePath()・GSTR_APPNAME・CEditDoc::IsModified()・m_hWnd・m_pcEditDoc・MYMESSAGEBOX.

void CEditView::Command_FILECLOSE ( void ) [protected]

CEditView_Command.cpp の 3727 行で定義されています。

参照先 CEditDoc::FileClose()・m_pcEditDoc.

void CEditView::Command_FILECLOSE_OPEN | ( | const char * | filename = NULL,
 |  | int | nCharCode = CODE_AUTODETECT,
 |  | BOOL | bReadOnly = FALSE
 | ) | [protected]

閉じて開く

日付:
2003.03.30 genta 開くダイアログでキャンセルしたとき元のファイルが残るように。 ついでにFILEOPENと同じように引数を追加しておく

CEditView_Command.cpp の 3740 行で定義されています。

参照先 CEditDoc::FileCloseOpen()・m_pcEditDoc.

void CEditView::Command_FILECLOSEALL ( void ) [protected]

CEditView_Command.cpp の 8377 行で定義されています。

参照先 CEditApp::CloseAllEditor()・CShareData::GetGroupId()・CShareData::getInstance()・m_hwndParent・TRUE.

void CEditView::Command_FILENEW ( void ) [protected]

CEditView_Command.cpp の 3704 行で定義されています。

参照先 FALSE・m_hInstance・m_hWnd・NULL・CEditApp::OpenNewEditor().

void CEditView::Command_FILEOPEN | ( | const char * | filename = NULL,
 |  | int | nCharCode = CODE_AUTODETECT,
 |  | BOOL | bReadOnly = FALSE
 | ) | [protected]

ファイルを開く

日付:
2003.03.30 genta 「閉じて開く」から利用するために引数追加

2004.10.09 genta 実装をCEditDocへ移動

CEditView_Command.cpp の 3718 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::OpenFile().

BOOL CEditView::Command_FILESAVE | ( | bool | warnbeep = true,
 |  | bool | askname = true
 | ) | [protected]

上書き保存

F_FILESAVEALLとの組み合わせのみで使われるコマンド．

引数:
warnbeep | [in] true: 保存不要 or 保存禁止のときに警告を出す
askname | [in] true: ファイル名未設定の時に入力を促す
日付:
2004.02.28 genta 引数warnbeep追加

2005.01.24 genta 引数askname追加

CEditView_Command.cpp の 3758 行で定義されています。

参照先 CEditDoc::FileSave()・m_pcEditDoc.

参照元 Command_PLSQL_COMPILE_ON_SQLPLUS().

BOOL CEditView::Command_FILESAVEALL ( void ) [protected]

全て上書き保存

編集中の全てのウィンドウで上書き保存を行う． ただし，上書き保存の指示を出すのみで実行結果の確認は行わない．

上書き禁止及びファイル名未設定のウィンドウでは何も行わない．

日付:
2005.01.24 genta 新規作成

CEditView_Command.cpp の 3787 行で定義されています。

参照先 F_FILESAVE_QUIET・CShareData::getInstance()・NULL・CShareData::SendMessageToAllEditors()・TRUE.

BOOL CEditView::Command_FILESAVEAS ( const char * filename ) [protected]

CEditView_Command.cpp の 3773 行で定義されています。

参照先 CEditDoc::FileSaveAs()・m_pcEditDoc.

BOOL CEditView::Command_FILESAVEAS_DIALOG ( ) [protected]

CEditView_Command.cpp の 3764 行で定義されています。

参照先 CEditDoc::FileSaveAs_Dialog()・m_pcEditDoc.

参照元 Command_PLSQL_COMPILE_ON_SQLPLUS().

void CEditView::Command_FONT ( void ) [protected]

CEditView_Command.cpp の 4099 行で定義されています。

参照先 FALSE・CShareData::getInstance()・Common::m_bFontIs_FIXED_PITCH・DLLSHAREDATA::m_Common・m_hwndParent・Common::m_lf・m_pcEditDoc・m_pShareData・MYWM_CHANGESETTING・CShareData::PostMessageToAllEditors()・CEditDoc::SelectFont()・TRUE.

BOOL CEditView::Command_FUNCLIST | ( | int | nAction,
 |  | int | nOutlineType = OUTLINE_DEFAULT
 | ) | [protected]

アウトライン解析

2002/3/13 YAZAKI nOutlineTypeとnListTypeを統合。

CEditView_Command.cpp の 4591 行で定義されています。

参照先 ActivateFrameWindow()・CDlgFuncList::CheckListType()・CEditDoc::GetDocumentAttribute()・CEditDoc::m_cDlgFuncList・CDialog::m_hWnd・Types::m_nDefaultOutline・m_pcEditDoc・NULL・OUTLINE_DEFAULT・SHOW_NORMAL・SHOW_RELOAD・SHOW_TOGGLE・TRUE.

void CEditView::Command_GOFILEEND ( int ) [protected]

CEditView_Command.cpp の 1332 行で定義されています。

参照先 AddCurrentLineToHistory()・Command_DOWN()・Command_GOLINEEND()・Cursor_UPDOWN()・DisableSelectArea()・FALSE・CLayoutMgr::GetLineCount()・IsTextSelected()・m_bBeginBoxSelect・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・m_pcEditDoc・MoveCursor()・TRUE.

参照元 Command_ADDTAIL().

void CEditView::Command_GOFILETOP ( int ) [protected]

CEditView_Command.cpp の 1318 行で定義されています。

参照先 AddCurrentLineToHistory()・m_bBeginBoxSelect・m_nCaretPosX・MoveCursorSelecting().

void CEditView::Command_GOLINEEND | ( | int | ,
 |  | int |
 | ) | [protected]

CEditView_Command.cpp の 1265 行で定義されています。

参照先 BeginSelectArea()・DisableSelectArea()・CLayout::GetLengthWithoutEOL()・CLayoutMgr::GetTabSpace()・IsTextSelected()・CEditDoc::m_cLayoutMgr・m_nCaretPosY・m_pcEditDoc・CLayoutMgr::Search()・TRUE.

参照元 Command_GOFILEEND().

void CEditView::Command_GOLINETOP | ( | int | bSelect,
 |  | int | lparam
 | ) | [protected]

行頭に移動

引数:
bSelect [in] 選択の有無。true: 選択しながら移動。false: 選択しないで移動。
lparam [in] マクロから使用する拡張フラグ
  • 0: キー操作と同一(default)
  • 1: カーソル位置に関係なく行頭に移動。
  • 4: 選択して移動(合成可)
  • 8: 改行単位で先頭に移動(合成可)
日付:
Oct. 29, 2001 genta マクロ用機能拡張(パラメータ追加) + goto排除

May. 15, 2002 oak 改行単位移動

Oct. 7, 2002 YAZAKI 冗長な引数 bLineTopOnly を削除

Jun. 18, 2007 maru 行頭判定に全角空白のインデント設定も考慮する

CEditView_Command.cpp の 1178 行で定義されています。

参照先 BOOL()・CLayoutMgr::CaretPos_Phys2Log()・CR・CEditDoc::GetDocumentAttribute()・CLayout::GetIndent()・CLayoutMgr::GetLineStr()・LF・Types::m_bAutoIndent_ZENSPACE・CEditDoc::m_cLayoutMgr・m_nCaretPosY・m_nCaretPosY_PHY・m_pcEditDoc・NULL・CLayoutMgr::Search()・TRUE.

参照元 Command_DUPLICATELINE().

void CEditView::Command_GONEXTPARAGRAPH ( int bSelect ) [protected]

CEditView_Command_New.cpp の 1932 行で定義されています。

参照先 CDocLineMgr::GetLineInfo()・CDocLine::IsEmptyLine()・CEditDoc::m_cDocLineMgr・m_nCaretPosY_PHY・m_pcEditDoc.

void CEditView::Command_GOPREVPARAGRAPH ( int bSelect ) [protected]

CEditView_Command_New.cpp の 2008 行で定義されています。

参照先 CDocLineMgr::GetLineInfo()・CDocLine::IsEmptyLine()・CEditDoc::m_cDocLineMgr・m_nCaretPosY_PHY・m_pcEditDoc.

void CEditView::Command_GREP ( void ) [protected]

GREP実行

日付:
2005.01.10 genta CEditView_Commandより移動

CEditView_Cmdgrep.cpp の 81 行で定義されています。

参照先 DoGrep()・FALSE・CMemory::GetPtr()・GSTR_APPNAME・CEditDoc::IsFilePathAvailable()・CEditDoc::IsModified()・CEditDoc::m_bGrepMode・CDlgGrep::m_bGrepOutputLine・CDlgGrep::m_bLoHiCase・CDlgGrep::m_bRegularExp・CDlgGrep::m_bSubFolder・CDlgGrep::m_bWordOnly・CEditDoc::m_cDlgGrep・m_hInstance・m_hWnd・DLLSHAREDATA::m_nEditArrNum・CDlgGrep::m_nGrepCharSet・CDlgGrep::m_nGrepOutputStyle・m_pcEditDoc・m_pShareData・CDlgGrep::m_szFile・CDlgGrep::m_szFolder・CDlgGrep::m_szText・MAX_EDITWINDOWS・CEditApp::OpenNewEditor()・CMemory::Replace()・CMemory::SetDataSz().

void CEditView::Command_GREP_DIALOG ( void ) [protected]

GREPダイアログの表示

日付:
2005.01.10 genta CEditView_Commandより移動
作者:
Yazaki

CEditView_Cmdgrep.cpp の 54 行で定義されています。

参照先 GetCurrentTextForSearchDlg()・CMemory::GetLength()・m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr・CMemory::SetDataSz().

void CEditView::Command_GROUPCLOSE ( void ) [protected]

CEditView_Command.cpp の 8367 行で定義されています。

参照先 CEditApp::CloseAllEditor()・CShareData::GetGroupId()・CShareData::getInstance()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・m_hwndParent・m_pShareData・TRUE.

void CEditView::Command_HalfPageDown ( int ) [protected]

CEditView_Command.cpp の 1072 行で定義されています。

参照先 Cursor_UPDOWN()・m_nViewRowNum.

void CEditView::Command_HalfPageUp ( int ) [protected]

* スクロールダウン */

CEditView_Command.cpp の 1062 行で定義されています。

参照先 Cursor_UPDOWN()・m_nViewRowNum.

void CEditView::Command_HANKATATOZENKAKUHIRA ( void ) [protected]

CEditView_Command.cpp の 4431 行で定義されています。

参照先 ConvSelectedArea()・F_HANKATATOZENKAKUHIRA.

void CEditView::Command_HANKATATOZENKAKUKATA ( void ) [protected]

CEditView_Command.cpp の 4420 行で定義されています。

参照先 ConvSelectedArea()・F_HANKATATOZENKAKUKATA.

void CEditView::Command_HELP_CONTENTS ( void ) [protected]

CEditView_Command.cpp の 4771 行で定義されています。

参照先 _MAX_PATH・GetHelpFilePath()・m_hWnd・ShowWinHelpContents().

void CEditView::Command_HELP_SEARCH ( void ) [protected]

CEditView_Command.cpp の 4784 行で定義されています。

参照先 _MAX_PATH・GetHelpFilePath()・m_hWnd・MyWinHelp()・ULONG_PTR.

void CEditView::Command_HOKAN ( void ) [protected]

入力補完 Ctrl+Spaceでここに到着。 CEditView::m_bHokan： 現在補完ウィンドウが表示されているかを表すフラグ。 m_Common.m_bUseHokan：現在補完ウィンドウが表示されているべきか否かをあらわすフラグ。

日付:
2001/06/19 asa-o 英大文字小文字を同一視する 候補が1つのときはそれに確定する

2001/06/14 asa-o 参照データ変更 開くプロパティシートをタイプ別に変更

2000/09/15 JEPRO [Esc]キーと[x]ボタンでも中止できるように変更

2005/01/10 genta CEditView_Commandから移動

CEditView_CmdHokan.cpp の 163 行で定義されています。

参照先 FALSE・CEditDoc::GetDocumentAttribute()・CEditDoc::GetDocumentType()・GSTR_APPNAME・Common::m_bUseHokan・Types::m_bUseHokanByFile・DLLSHAREDATA::m_Common・m_pcEditDoc・m_pShareData・Types::m_szHokanFile・MYMESSAGEBOX・NULL・CEditDoc::OpenPropertySheetTypes()・TRUE.

void CEditView::Command_IME_CHAR ( WORD wChar ) [protected]

2バイト文字入力

WM_IME_CHARで送られてきた文字を処理する． ただし，挿入モードではWM_IME_CHARではなくWM_IME_COMPOSITIONで文字列を 取得するのでここには来ない．

引数:
wChar [in] SJIS漢字コード．上位が1バイト目，下位が2バイト目．
日付:
2002.10.06 genta 引数の上下バイトの意味を逆転． WM_IME_CHARのwParamに合わせた．

CEditView_Command.cpp の 2986 行で定義されています。

参照先 BOOL()・Command_CHAR()・Command_INDENT()・DeleteData()・FALSE・CLayout::GetLengthWithoutEOL()・IsInsMode()・IsTextSelected()・LineColmnToIndex()・m_bBeginBoxSelect・m_bBeginSelect・Common::m_bNotOverWriteCRLF・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・m_nCaretPosX・m_nCaretPosY・m_pcEditDoc・m_pShareData・NULL・CLayoutMgr::Search()・CEditDoc::SetModified()・TRUE.

void CEditView::Command_INDENT | ( | const char * | ,
 |  | int | ,
 |  | BOOL | = FALSE
 | ) | [protected]

CEditView_Command.cpp の 5293 行で定義されています。

参照先 Command_INSTEXT()・CR・DeleteData()・DisableSelectArea()・FALSE・CLayout::GetPtr()・IsInsMode()・IsTextSelected()・LF・LineColmnToIndex()・m_bBeginBoxSelect・m_bDrawSWITCH・CEditDoc::m_cLayoutMgr・m_hWnd・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・NULL・CLayoutMgr::Search()・CEditDoc::SetModified()・SPACE・TAB・TRUE・TwoPointToRect().

void CEditView::Command_INDENT ( char cChar ) [protected]

CEditView_Command.cpp の 5271 行で定義されています。

参照先 CLayoutMgr::GetMaxLineSize()・m_bBeginBoxSelect・CEditDoc::m_cLayoutMgr・m_nSelectColmFrom・m_nSelectColmTo・m_pcEditDoc・RedrawAll()・SPACE・TAB.

参照元 Command_IME_CHAR()・Command_INDENT_TAB()・Command_INSTEXT().

void CEditView::Command_INDENT_TAB ( void ) [protected]

CEditView_Command.cpp の 5216 行で定義されています。

参照先 Command_CHAR()・Command_INDENT()・CEditDoc::GetDocumentAttribute()・IsTextSelected()・Types::m_bInsSpace・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・TAB.

void CEditView::Command_INS_DATE ( void ) [protected]

CEditView_Command.cpp の 9290 行で定義されています。

参照先 Command_INSTEXT()・CShareData::getInstance()・CShareData::MyGetDateFormat()・TRUE.

void CEditView::Command_INS_TIME ( void ) [protected]

CEditView_Command.cpp の 9306 行で定義されています。

参照先 Command_INSTEXT()・CShareData::getInstance()・CShareData::MyGetTimeFormat()・TRUE.

BOOL CEditView::Command_INSFILE | ( | const char * | filename,
 |  | int | nCharCode,
 |  | int | nFlgOpt
 | ) | [protected]

カーソル位置にファイルを挿入

現在のカーソル位置に指定のファイルを読み込む．

引数:
[in] | filename | 入力ファイル名
[in] nCharCode 文字コード指定
  • CODE_xxxxxxxxxx:各種文字コード
  • CODE_AUTODETECT:前回文字コードもしくは自動判別の結果による
[in] | nFlgOpt | 動作オプション（現在は未定義．0を指定のこと）
戻り値:
TRUE | 正常終了
FALSE | ファイルオープンに失敗
作者:
maru
日付:
2006.12.10 maru 新規作成

CEditView_Command_New.cpp の 3002 行で定義されています。

参照先 BOOL()・CODE_AUTODETECT・FALSE・CMRU::GetFileInfo()・IsTextSelected()・m_hWnd・CEditDoc::m_nCharCode・FileInfo::m_nCharCode・m_nSelectColmFrom・m_nSelectLineFrom・m_pcEditDoc・NULL・TRUE.

void CEditView::Command_INSTEXT | ( | BOOL | bRedraw,
 |  | const char * | pszText,
 |  | int | nTextLen,
 |  | BOOL | bNoWaitCursor
 | ) | [protected]

* テキストを貼り付け ver0 */

テキストを貼り付け

引数:
pszText | [in] 貼り付ける文字列。
nTextLen | [in] pszTextの長さ。-1を指定すると、pszTextをNUL終端文字列とみなして長さを自動計算する
日付:
2004.05.14 Moca '\0'を受け入れるように、引数に長さを追加

CEditView_Command.cpp の 2393 行で定義されています。

参照先 Command_INDENT()・CR・IsTextSelected()・LF・m_bBeginBoxSelect・m_bBeginSelect・m_hWnd・m_pcEditDoc・NULL・CEditDoc::SetModified().

参照元 Command_INDENT()・Command_INS_DATE()・Command_INS_TIME()・Drop()・ShowHokanMgr().

void CEditView::Command_JUMP ( void ) [protected]

CEditView_Command.cpp の 3882 行で定義されています。

void CEditView::Command_JUMP_DIALOG ( void ) [protected]

指定行へジャンプダイアログの表示 2002.2.2 YAZAKI

CEditView_Command.cpp の 3870 行で定義されています。

参照先 CDlgJump::DoModal()・CEditDoc::m_cDlgJump・m_hInstance・m_hWnd・m_pcEditDoc.

void CEditView::Command_JUMP_SRCHSTARTPOS ( void ) [protected]

検索開始位置へ戻る

作者:
ai
日付:
02/06/26

CEditView_Command_New.cpp の 2765 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・m_bSelectingLock・CEditDoc::m_cLayoutMgr・m_nSrchStartPosX_PHY・m_nSrchStartPosY_PHY・m_pcEditDoc・MoveCursorSelecting().

void CEditView::Command_JUMPHIST_NEXT ( void ) [protected]

CEditView_Command.cpp の 9488 行で定義されています。

参照先 CMarkMgr::CheckNext()・m_cHistory・CMarkMgr::NextValid()・NULL.

void CEditView::Command_JUMPHIST_PREV ( void ) [protected]

CEditView_Command.cpp の 9461 行で定義されています。

参照先 AddCurrentLineToHistory()・CMarkMgr::CheckNext()・m_cHistory・CMarkMgr::PrevValid().

void CEditView::Command_JUMPHIST_SET ( void ) [protected]

CEditView_Command.cpp の 9452 行で定義されています。

参照先 AddCurrentLineToHistory().

int CEditView::Command_LEFT | ( | int | bSelect,
 |  | BOOL | bRepeat
 | ) | [protected]

カーソル左移動

日付:
2004.03.28 Moca EOFだけの行以降の途中にカーソルがあると落ちるバグ修正． pcLayout == NULLかつキャレット位置が行頭以外の場合は 2つのifのどちらにも当てはまらないが，そのあとのMoveCursorにて適正な 位置に移動させられる．

CEditView_Command.cpp の 769 行で定義されています。

参照先 BeginSelectArea()・IsTextSelected()・m_nCaretPosY.

参照元 Command_DELETE_BACK()・Command_WORDLEFT().

void CEditView::Command_LineCutToEnd ( void ) [protected]

CEditView_Command.cpp の 1917 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・Command_CUT()・EOL_NONE・CEOL::GetLen()・CMemory::GetLength()・IsTextSelected()・CDocLine::m_cEol・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・CLayout::m_nLinePhysical・CLayout::m_pCDocLine・m_pcEditDoc・CDocLine::m_pLine・NULL・CLayoutMgr::Search()・SetSelectArea().

void CEditView::Command_LineCutToStart ( void ) [protected]

CEditView_Command.cpp の 1883 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・Command_CUT()・IsTextSelected()・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・CLayout::m_nLinePhysical・m_pcEditDoc・NULL・CLayoutMgr::Search()・SetSelectArea().

void CEditView::Command_LineDeleteToEnd ( void ) [protected]

CEditView_Command.cpp の 1991 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・DeleteData()・EOL_NONE・CEOL::GetLen()・CMemory::GetLength()・IsTextSelected()・CDocLine::m_cEol・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・CLayout::m_nLinePhysical・CLayout::m_pCDocLine・m_pcEditDoc・CDocLine::m_pLine・NULL・CLayoutMgr::Search()・SetSelectArea()・TRUE.

void CEditView::Command_LineDeleteToStart ( void ) [protected]

CEditView_Command.cpp の 1958 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・DeleteData()・IsTextSelected()・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・CLayout::m_nLinePhysical・m_pcEditDoc・NULL・CLayoutMgr::Search()・SetSelectArea()・TRUE.

void CEditView::Command_LOADKEYMACRO ( void ) [protected]

キーマクロの読み込み

日付:
2005/02/20 novice デフォルトの拡張子変更

CEditView_Command.cpp の 9038 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・GetInidirOrExedir()・DLLSHAREDATA::m_bRecordingKeyMacro・m_hInstance・m_hWnd・DLLSHAREDATA::m_hwndRecordingKeyMacro・m_pShareData・DLLSHAREDATA::m_szMACROFOLDER・NULL.

void CEditView::Command_MAXIMIZE_H ( void ) [protected]

CEditView_Command.cpp の 7101 行で定義されています。

参照先 GetMonitorWorkRect()・m_hwndParent.

void CEditView::Command_MAXIMIZE_V ( void ) [protected]

CEditView_Command.cpp の 7078 行で定義されています。

参照先 GetMonitorWorkRect()・m_hwndParent.

void CEditView::Command_MENU_ALLFUNC ( void ) [protected]

CEditView_Command.cpp の 4814 行で定義されています。

参照先 CFuncLookup::GetCategoryCount()・CFuncLookup::GetItemCount()・CEditDoc::m_cFuncLookup・CEditWnd::m_CMenuDrawer・m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・CMenuDrawer::MyAppendMenu()・CFuncLookup::Pos2FuncCode()・CFuncLookup::Pos2FuncName()・CMenuDrawer::ResetContents().

void CEditView::Command_MENU_RBUTTON ( void ) [protected]

CEditView_Command.cpp の 5139 行で定義されています。

参照先 CreatePopUpMenu_R()・CMemory::GetPtr()・IDM_COPYDICINFO・CTipWnd::m_cInfo・m_cTipWnd.

void CEditView::Command_MERGE ( void ) [protected]

物理行のマージ

連続する物理行で内容が同一の物を1行にまとめます．

矩形選択時はなにも実行しません．

覚え書き:
改行コードを含むデータを比較しているので、 ファイルの最終行はソート対象外にしています
作者:
hor
日付:
2001.12.03 hor 新規作成

2001.12.21 hor 選択範囲の調整ロジックを訂正

CEditView_Command_New.cpp の 2544 行で定義されています。

参照先 CMemory::AppendSz()・CLayoutMgr::CaretPos_Log2Phys()・EOL_NONE・CDocLineMgr::GetLineStr()・IsTextSelected()・m_bBeginBoxSelect・CEditDoc::m_cDocLineMgr・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・m_nCaretPosY・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・NULL・CLayoutMgr::Search()・CMemory::SetDataSz().

void CEditView::Command_MINIMIZE_ALL ( void ) [protected]

CEditView_Command.cpp の 7125 行で定義されています。

参照先 EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData.

void CEditView::Command_NEXTGROUP ( void ) [protected]

CEditView_Command.cpp の 9508 行で定義されています。

参照先 CEditWnd::m_cTabWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・CTabWnd::NextGroup()・NULL.

BOOL CEditView::Command_OPEN_CCPP | ( | BOOL | bCheckOnly,
 |  | BOOL | bBeepWhenMiss
 | ) | [protected]

CEditView_Command.cpp の 6601 行で定義されています。

参照先 OPEN_ExtFromtoExt().

参照元 Command_OPEN_HfromtoC().

BOOL CEditView::Command_OPEN_HfromtoC ( BOOL ) [protected]

CEditView_Command.cpp の 6767 行で定義されています。

参照先 Command_OPEN_CCPP()・Command_OPEN_HHPP()・FALSE・TRUE.

BOOL CEditView::Command_OPEN_HHPP | ( | BOOL | bCheckOnly,
 |  | BOOL | bBeepWhenMiss
 | ) | [protected]

CEditView_Command.cpp の 6586 行で定義されています。

参照先 OPEN_ExtFromtoExt().

参照元 Command_OPEN_HfromtoC().

void CEditView::Command_OPTION ( void ) [protected]

CEditView_Command.cpp の 4140 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::OpenPropertySheet().

void CEditView::Command_OPTION_TYPE ( void ) [protected]

CEditView_Command.cpp の 4152 行で定義されています。

参照先 CEditDoc::GetDocumentType()・m_pcEditDoc・CEditDoc::OpenPropertySheetTypes().

void CEditView::Command_PASTE ( void ) [protected]

CEditView_Command.cpp の 2241 行で定義されています。

参照先 BOOL()・Command_PASTEBOX()・CR・DisableSelectArea()・FALSE・CLayoutMgr::GetLineStr()・CMemory::GetPtr()・int・IsTextSelected()・LF・LineColmnToIndex()・Common::m_bAutoColmnPaste・m_bBeginBoxSelect・m_bBeginSelect・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・m_hWnd・m_nCaretPosX・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・m_pShareData・MyGetClipboardData()・NULL・ReplaceData_CEditView()・TRUE.

void CEditView::Command_PASTEBOX | ( | const char * | szPaste,
 |  | int | nPasteSize
 | ) | [protected]

CEditView_Command.cpp の 2520 行で定義されています。

参照先 BOOL()・CLayoutMgr::CaretPos_Log2Phys()・CR・DeleteData()・FALSE・IsTextSelected()・LF・m_bDoing_UndoRedo・m_bDrawSWITCH・CEditDoc::m_cLayoutMgr・m_nCaretPosX・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosY・COpe::m_nCaretPosY_PHY_Before・m_pcEditDoc・NULL・CEditDoc::SetModified().

void CEditView::Command_PASTEBOX ( void ) [protected]

CEditView_Command.cpp の 2727 行で定義されています。

参照先 AdjustScrollBars()・FALSE・CMemory::GetPtr()・m_bBeginSelect・Common::m_bFontIs_FIXED_PITCH・DLLSHAREDATA::m_Common・m_pShareData・MyGetClipboardData()・NULL・Redraw().

参照元 Command_PASTE()・Drop().

void CEditView::Command_PLSQL_COMPILE_ON_SQLPLUS ( void ) [protected]

CEditView_Command.cpp の 8202 行で定義されています。

参照先 BOOL()・Command_FILESAVE()・Command_FILESAVEAS_DIALOG()・FALSE・CEditDoc::GetFilePath()・GSTR_APPNAME・CEditDoc::IsFilePathAvailable()・CEditDoc::IsModified()・m_hWnd・m_pcEditDoc・MYMESSAGEBOX・NULL・ULONG_PTR.

void CEditView::Command_PREVGROUP ( void ) [protected]

CEditView_Command.cpp の 9517 行で定義されています。

参照先 CEditWnd::m_cTabWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・NULL・CTabWnd::PrevGroup().

void CEditView::Command_PRINT ( void ) [protected]

CEditView_Command.cpp の 8813 行で定義されています。

参照先 Command_PRINT_PREVIEW()・m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::m_pPrintPreview・CPrintPreview::OnPrint().

void CEditView::Command_PRINT_PAGESETUP ( void ) [protected]

CEditView_Command.cpp の 8840 行で定義されています。

参照先 BOOL()・m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::OnPrintPageSetting().

void CEditView::Command_PRINT_PREVIEW ( void ) [protected]

CEditView_Command.cpp の 8827 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::PrintPreviewModeONOFF().

参照元 Command_PRINT().

void CEditView::Command_PROPERTY_FILE ( void ) [protected]

CEditView_Command.cpp の 8322 行で定義されています。

参照先 CDlgProperty::DoModal()・CDocLineMgr::GetAllData()・CEditDoc::m_cDocLineMgr・m_hInstance・m_hWnd・m_pcEditDoc・NULL・CRunningTimer::Reset().

BOOL CEditView::Command_PUTFILE | ( | const char * | filename,
 |  | int | nCharCode,
 |  | int | nFlgOpt
 | ) | [protected]

編集中の内容を別名保存

主に編集中の一時ファイル出力などの目的に使用する． 現在開いているファイル(m_szFilePath)には影響しない．

引数:
[in] filename 出力ファイル名
[in] nCharCode 文字コード指定
  • CODE_xxxxxxxxxx:各種文字コード
  • CODE_AUTODETECT:現在の文字コードを維持
[in] nFlgOpt 動作オプション
  • 0x01:選択範囲を出力 (非選択状態でも空ファイルを出力する)
戻り値:
TRUE | 正常終了
FALSE | ファイル作成に失敗
作者:
maru
日付:
2006.12.10 maru 新規作成

CEditView_Command_New.cpp の 2894 行で定義されています。

参照先 BOOL()・CODE_AUTODETECT・CODE_EUC・CODE_JIS・CODE_SJIS・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF7・CODE_UTF8・EOL_NONE・FALSE・CMemory::GetLength()・CMemory::GetPtr()・GetSelectedData()・GSTR_APPNAME・CEditDoc::m_bBomExist・CEditDoc::m_cDocLineMgr・CEditDoc::m_hWnd・m_hWnd・CEditWnd::m_hwndProgressBar・CEditDoc::m_nCharCode・m_pcEditDoc・CEditDoc::m_pcEditWnd・MYMESSAGEBOX・NULL・CMemory::SJISToEUC()・CMemory::SJIStoJIS()・CMemory::SJISToUnicode()・CMemory::SJISToUnicodeBE()・CMemory::SJISToUTF7()・CMemory::SJISToUTF8()・TRUE・CFileWrite::Write()・CDocLineMgr::WriteFile().

参照元 ExecCmd().

void CEditView::Command_READONLY ( void ) [protected]

CEditView_Command.cpp の 8313 行で定義されています。

参照先 CEditDoc::m_bReadOnly・m_pcEditDoc・CEditDoc::SetParentCaption().

void CEditView::Command_RECKEYMACRO ( void ) [protected]

CEditView_Command.cpp の 8890 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetMacroFilename()・GSTR_APPNAME・DLLSHAREDATA::m_bRecordingKeyMacro・m_hInstance・m_hWnd・DLLSHAREDATA::m_hwndRecordingKeyMacro・m_pcEditDoc・CEditDoc::m_pcSMacroMgr・m_pShareData・DLLSHAREDATA::m_szKeyMacroFileName・MYMESSAGEBOX・NULL・CSMacroMgr::Save()・STAND_KEYMACRO.

参照元 Command_EXECKEYMACRO().

void CEditView::Command_Reconvert ( void ) [protected]

CEditView_Command_New.cpp の 2664 行で定義されています。

参照先 FID_RECONVERT_VERSION・m_hWnd・m_uWM_MSIME_RECONVERTREQUEST・NULL・COsVersionInfo::OsDoesNOTSupportReconvert()・SetReconvertStruct().

void CEditView::Command_REDO ( void ) [protected]

CEditView_Command_New.cpp の 860 行で定義されています。

参照先 CEditDoc::IsEnableRedo()・m_bBeginSelect・m_pcEditDoc.

void CEditView::Command_REDRAW ( void ) [protected]

CEditView_Command.cpp の 8191 行で定義されています。

参照先 RedrawAll().

void CEditView::Command_REPLACE ( HWND hwndParent ) [protected]

置換実行

日付:
2002/04/08 親ウィンドウを指定するように変更。

2003.05.17 かろと 長さ０マッチの無限置換回避など

CEditView_Command.cpp の 7261 行で定義されています。

参照先 FALSE・GSTR_APPNAME・IDC_CHK_PASTE・IDC_COMBO_TEXT2・CEditDoc::IsEnablePaste()・Common::m_bLoHiCase・Common::m_bRegularExp・CEditDoc::m_cDlgReplace・DLLSHAREDATA::m_Common・CDialog::m_hWnd・m_hWnd・CDlgReplace::m_nPaste・CDlgReplace::m_nReplaceTarget・m_pcEditDoc・m_pShareData・MYMESSAGEBOX・NULL・TRUE.

void CEditView::Command_REPLACE_ALL ( ) [protected]

すべて置換実行

日付:
2003.05.22 かろと 無限マッチ対策．行頭・行末処理など見直し

2006.03.31 かろと 行置換機能追加

2007.01.16 ryoji 行置換機能を全置換のオプションに変更

2009.09.20 genta 左下～右上で矩形選択された領域の置換が行われない

CEditView_Command.cpp の 7436 行で定義されています。

参照先 FALSE・GSTR_APPNAME・IDC_CHK_PASTE・IDC_COMBO_TEXT2・CEditDoc::IsEnablePaste()・CDlgReplace::m_bCanceled・Common::m_bConsecutiveAll・Common::m_bRegularExp・Common::m_bSelectedArea・CEditDoc::m_cDlgReplace・DLLSHAREDATA::m_Common・m_hWnd・CDlgReplace::m_nPaste・CDlgReplace::m_nReplaceCnt・CDlgReplace::m_nReplaceTarget・m_pcEditDoc・m_pShareData・MYMESSAGEBOX・TRUE.

void CEditView::Command_REPLACE_DIALOG ( void ) [protected]

CEditView_Command.cpp の 7153 行で定義されています。

参照先 ActivateFrameWindow()・BOOL()・CDlgReplace::DoModeless()・FALSE・GetCurrentTextForSearchDlg()・CMemory::GetPtr()・IDC_COMBO_TEXT・IsTextSelected()・CEditDoc::m_cDlgReplace・m_hInstance・m_hWnd・CDialog::m_hWnd・CDlgReplace::m_nPaste・CDlgReplace::m_nReplaceTarget・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・m_pShareData・DLLSHAREDATA::m_szREPLACEKEYArr・CDlgReplace::m_szText・CDlgReplace::m_szText2・TRUE.

void CEditView::Command_RIGHT | ( | int | ,
 |  | int | ,
 |  | BOOL |
 | ) | [protected]

CEditView_Command.cpp の 881 行で定義されています。

参照先 BeginSelectArea()・IsTextSelected()・m_nCaretPosY.

参照元 Command_WordCut().

void CEditView::Command_SAVEKEYMACRO ( void ) [protected]

CEditView_Command.cpp の 8938 行で定義されています。

参照先 GSTR_APPNAME・CSMacroMgr::IsSaveOk()・DLLSHAREDATA::m_bRecordingKeyMacro・m_hWnd・DLLSHAREDATA::m_hwndRecordingKeyMacro・m_pcEditDoc・CEditDoc::m_pcSMacroMgr・m_pShareData・MYMESSAGEBOX・NULL.

void CEditView::Command_SEARCH_BOX ( void ) [protected]

検索(ボックス)コマンド実行. ツールバーの検索ボックスにフォーカスを移動する.

日付:
2006.06.04 yukihane 新規作成

CEditView_Command.cpp の 3106 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::SetFocusSearchBox().

void CEditView::Command_SEARCH_CLEARMARK ( void ) [protected]

CEditView_Command.cpp の 9199 行で定義されています。

参照先 GetCurrentTextForSearch()・CMemory::GetPtr()・IsTextSelected()・DLLSHAREDATA::m_nSEARCHKEYArrNum・m_pShareData・m_szCurSrchKey・DLLSHAREDATA::m_szSEARCHKEYArr.

void CEditView::Command_SEARCH_DIALOG ( void ) [protected]

CEditView_Command.cpp の 3113 行で定義されています。

参照先 ActivateFrameWindow()・CDlgFind::DoModeless()・GetCurrentTextForSearchDlg()・CMemory::GetPtr()・IDC_COMBO_TEXT・CEditDoc::m_cDlgFind・CEditDoc::m_cEditViewArr・m_hInstance・m_hWnd・CDialog::m_hWnd・CEditDoc::m_nActivePaneIndex・m_pcEditDoc・CDlgFind::m_szText・NULL.

void CEditView::Command_SEARCH_NEXT | ( | bool | bChangeCurRegexp,
 |  | BOOL | bRedraw,
 |  | HWND | hwndParent,
 |  | const char * | pszNotFoundMessage
 | ) | [protected]

次を検索

引数:
bChangeCurRegexp 共有データの検索文字列を使う
日付:
2003.05.22 かろと 無限マッチ対策．行頭・行末処理見直し．

2004.05.30 Moca bChangeCurRegexp=trueで従来通り。falseで、CEditViewの現在設定されている検索パターンを使う

< 長さ０でマッチしているか？フラグ by かろと

CEditView_Command.cpp の 3373 行で定義されています。

参照先 AddCurrentLineToHistory()・BOOL()・ChangeCurRegexp()・ChangeSelectAreaByCurrentCursor()・DisableSelectArea()・DrawSelectArea()・FALSE・CLayoutMgr::GetLineStr()・CMemory::GetSizeOfChar()・IsTextSelected()・LineColmnToIndex()・m_bBeginBoxSelect・m_bCurSrchLoHiCase・m_bCurSrchRegularExp・m_bCurSrchWordOnly・m_bDrawSWITCH・m_bSelectingLock・CEditDoc::m_cLayoutMgr・m_CurRegexp・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・m_pShareData・m_szCurSrchKey・DLLSHAREDATA::m_szSEARCHKEYArr・MoveCursor()・CLayoutMgr::SearchWord()・SetSelectArea()・TRUE.

void CEditView::Command_SEARCH_PREV | ( | BOOL | ,
 |  | HWND |
 | ) | [protected]

CEditView_Command.cpp の 3181 行で定義されています。

参照先 AddCurrentLineToHistory()・BOOL()・ChangeCurRegexp()・ChangeSelectAreaByCurrentCursor()・DisableSelectArea()・DrawSelectArea()・FALSE・CMemory::GetLength()・IsTextSelected()・LineColmnToIndex()・m_bBeginBoxSelect・m_bCurSrchLoHiCase・m_bCurSrchRegularExp・m_bCurSrchWordOnly・m_bSelectingLock・CEditDoc::m_cLayoutMgr・m_CurRegexp・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineFrom・m_nSelectLineTo・CLayout::m_pCDocLine・m_pcEditDoc・CDocLine::m_pLine・m_pShareData・m_szCurSrchKey・DLLSHAREDATA::m_szSEARCHKEYArr・MoveCursor()・NULL・CLayoutMgr::Search()・CLayoutMgr::SearchWord()・SetSelectArea()・TRUE.

void CEditView::Command_SELECTALL ( void ) [protected]

CEditView_Command.cpp の 2161 行で定義されています。

参照先 AddCurrentLineToHistory()・DisableSelectArea()・DrawSelectArea()・CLayoutMgr::GetEndLayoutPos()・IsTextSelected()・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosX_Prev・m_pcEditDoc・SetSelectArea()・TRUE.

bool CEditView::Command_SELECTWORD ( void ) [protected]

CEditView_Command.cpp の 2191 行で定義されています。

参照先 DisableSelectArea()・DrawSelectArea()・IsTextSelected()・LineColmnToIndex()・LineIndexToColmn()・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・m_pcEditDoc・MoveCursor()・NULL・CLayoutMgr::Search()・SetSelectArea()・TRUE・CLayoutMgr::WhereCurrentWord().

参照元 Command_WordCut()・Command_WordDelete().

void CEditView::Command_SET_QUOTESTRING ( const char * quotestr ) [protected]

引用符の設定

日付:
Jan. 29, 2005 genta 新規作成

CEditView_Command_New.cpp の 2828 行で定義されています。

参照先 DLLSHAREDATA::m_Common・m_pShareData・Common::m_szInyouKigou・NULL.

void CEditView::Command_SHOWFUNCKEY ( void ) [protected]

ファンクションキーの表示/非表示

日付:
2006.12.19 ryoji 表示切替は CEditWnd::LayoutFuncKey(), CEditWnd::EndLayoutBars() で行うように変更

CEditView_Command.cpp の 8768 行で定義されています。

参照先 CEditWnd::EndLayoutBars()・CShareData::getInstance()・CEditWnd::LayoutFuncKey()・Common::m_bDispFUNCKEYWND・CEditWnd::m_CFuncKeyWnd・DLLSHAREDATA::m_Common・CEditWnd::m_hWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・m_pShareData・MYBCN_FUNCKEY・MYWM_BAR_CHANGE_NOTIFY・NULL・CShareData::PostMessageToAllEditors()・TRUE.

void CEditView::Command_SHOWSTATUSBAR ( void ) [protected]

ステータスバーの表示/非表示

日付:
2006.12.19 ryoji 表示切替は CEditWnd::LayoutStatusBar(), CEditWnd::EndLayoutBars() で行うように変更

CEditView_Command.cpp の 8749 行で定義されています。

参照先 CEditWnd::EndLayoutBars()・CShareData::getInstance()・CEditWnd::LayoutStatusBar()・Common::m_bDispSTATUSBAR・DLLSHAREDATA::m_Common・CEditWnd::m_hWnd・CEditWnd::m_hwndStatusBar・m_pcEditDoc・CEditDoc::m_pcEditWnd・m_pShareData・MYBCN_STATUSBAR・MYWM_BAR_CHANGE_NOTIFY・NULL・CShareData::PostMessageToAllEditors()・TRUE.

void CEditView::Command_SHOWTAB ( void ) [protected]

タブ(ウインドウ)の表示/非表示

作者:
MIK
日付:
2003.06.10 新規作成

2006.12.19 ryoji 表示切替は CEditWnd::LayoutTabBar(), CEditWnd::EndLayoutBars() で行うように変更

2007.06.20 ryoji グループIDリセット

CEditView_Command.cpp の 8788 行で定義されています。

参照先 DWORD・CEditWnd::EndLayoutBars()・CShareData::getInstance()・GetWindowLongPtr・CEditWnd::LayoutTabBar()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・CEditWnd::m_cTabWnd・CEditWnd::m_hWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・m_pShareData・MYBCN_TAB・MYWM_BAR_CHANGE_NOTIFY・NULL・CShareData::PostMessageToAllEditors()・CShareData::ResetGroupId()・TRUE・CEditWnd::WindowTopMost().

void CEditView::Command_SHOWTOOLBAR ( void ) [protected]

ツールバーの表示/非表示

日付:
2006.12.19 ryoji 表示切替は CEditWnd::LayoutToolBar(), CEditWnd::EndLayoutBars() で行うように変更

CEditView_Command.cpp の 8730 行で定義されています。

参照先 CEditWnd::EndLayoutBars()・CShareData::getInstance()・CEditWnd::LayoutToolBar()・Common::m_bDispTOOLBAR・DLLSHAREDATA::m_Common・CEditWnd::m_hWnd・CEditWnd::m_hwndToolBar・m_pcEditDoc・CEditDoc::m_pcEditWnd・m_pShareData・MYBCN_TOOLBAR・MYWM_BAR_CHANGE_NOTIFY・NULL・CShareData::PostMessageToAllEditors()・TRUE.

void CEditView::Command_SORT ( BOOL bAsc ) [protected]

物理行のソート

非選択時は何も実行しない．矩形選択時は、その範囲をキーにして物理行をソート．

覚え書き:
とりあえず改行コードを含むデータをソートしているので、 ファイルの最終行はソート対象外にしています
作者:
hor
日付:
2001.12.03 hor 新規作成

2001.12.21 hor 選択範囲の調整ロジックを訂正

CEditView_Command_New.cpp の 2373 行で定義されています。

参照先 BOOL()・CLayoutMgr::CaretPos_Log2Phys()・EOL_NONE・CDocLineMgr::GetLineInfo()・CDocLineMgr::GetLineStr()・CLayoutMgr::GetMaxLineSize()・IsTextSelected()・LineColmnToIndex()・m_bBeginBoxSelect・CEditDoc::m_cDocLineMgr・CDocLine::m_cEol・CEditDoc::m_cLayoutMgr・m_nCaretPosY・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・NULL・_SORTTABLE::sKey1・_SORTTABLE::sKey2.

void CEditView::Command_SPACETOTAB ( void ) [protected]

CEditView_Command.cpp の 4450 行で定義されています。

参照先 ConvSelectedArea()・F_SPACETOTAB.

void CEditView::Command_SPLIT_H ( void ) [protected]

CEditView_Command.cpp の 4750 行で定義されています。

参照先 CSplitterWnd::HSplitOnOff()・CEditDoc::m_cSplitterWnd・m_pcEditDoc.

void CEditView::Command_SPLIT_V ( void ) [protected]

CEditView_Command.cpp の 4740 行で定義されています。

参照先 CEditDoc::m_cSplitterWnd・m_pcEditDoc・CSplitterWnd::VSplitOnOff().

void CEditView::Command_SPLIT_VH ( void ) [protected]

CEditView_Command.cpp の 4760 行で定義されています。

参照先 CEditDoc::m_cSplitterWnd・m_pcEditDoc・CSplitterWnd::VHSplitOnOff().

void CEditView::Command_TAB_JOINTNEXT ( void ) [protected]

CEditView_Command.cpp の 9553 行で定義されています。

参照先 CTabWnd::JoinNext()・CEditWnd::m_cTabWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・NULL.

void CEditView::Command_TAB_JOINTPREV ( void ) [protected]

CEditView_Command.cpp の 9562 行で定義されています。

参照先 CTabWnd::JoinPrev()・CEditWnd::m_cTabWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・NULL.

void CEditView::Command_TAB_MOVELEFT ( void ) [protected]

CEditView_Command.cpp の 9535 行で定義されています。

参照先 CEditWnd::m_cTabWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・CTabWnd::MoveLeft()・NULL.

void CEditView::Command_TAB_MOVERIGHT ( void ) [protected]

CEditView_Command.cpp の 9526 行で定義されています。

参照先 CEditWnd::m_cTabWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・CTabWnd::MoveRight()・NULL.

void CEditView::Command_TAB_SEPARATE ( void ) [protected]

CEditView_Command.cpp の 9544 行で定義されています。

参照先 CEditWnd::m_cTabWnd・CWnd::m_hWnd・m_pcEditDoc・CEditDoc::m_pcEditWnd・NULL・CTabWnd::Separate().

void CEditView::Command_TABTOSPACE ( void ) [protected]

CEditView_Command.cpp の 4442 行で定義されています。

参照先 ConvSelectedArea()・F_TABTOSPACE.

bool CEditView::Command_TAGJUMP ( bool bClose = false ) [protected]

タグジャンプ

引数:
bClose [in] true:元ウィンドウを閉じる
日付:
2003.04.03 genta 元ウィンドウを閉じるかどうかの引数を追加

2004.05.13 Moca 行桁位置の指定が無い場合は、行桁を移動しない

CEditView_Command.cpp の 5796 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・GetLineColm()・CDocLineMgr::GetLineStr()・IsFilePath()・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・m_pcEditDoc・NULL.

void CEditView::Command_TAGJUMPBACK ( void ) [protected]

CEditView_Command.cpp の 5939 行で定義されています。

参照先 ActivateFrameWindow()・CShareData::getInstance()・GSTR_APPNAME・TagJump::hwndReferer・CShareData::IsEditWnd()・m_hWnd・m_pcEditDoc・m_pShareData・DLLSHAREDATA::m_szWork・MYMESSAGEBOX・MYWM_SETCARETPOS・NULL・TagJump::point・SendStatusMessage().

bool CEditView::Command_TagJumpByTagsFile ( void ) [protected]

CEditView_Command.cpp の 5996 行で定義されています。

参照先 _MAX_PATH・CDlgTagJumpList::AddParam()・CalcDirectoryDepth()・CDlgTagJumpList::DoModal()・GetCurrentTextForSearch()・CEditDoc::GetFileName()・CEditDoc::GetFilePath()・CMemory::GetLength()・CMemory::GetPtr()・CDlgTagJumpList::GetSelectedParam()・CEditDoc::IsFilePathAvailable()・m_hInstance・m_hWnd・m_pcEditDoc・CDlgTagJumpList::SetFileName()・TAG_FILENAME・TAG_FORMAT・TagJumpSub().

bool CEditView::Command_TagJumpByTagsFileKeyword ( const char * keyword ) [protected]

キーワードを指定してタグジャンプ

作者:
MIK
日付:
2005.03.31 新規作成

CEditView_Command.cpp の 6513 行で定義されています。

参照先 CDlgTagJumpList::DoModal()・CEditDoc::GetFileName()・CEditDoc::GetFilePath()・CEditDoc::IsFilePathAvailable()・m_hInstance・m_hWnd・m_pcEditDoc・CDlgTagJumpList::SetFileName()・CDlgTagJumpList::SetKeyword().

bool CEditView::Command_TagsMake ( void ) [protected]

CEditView_Command.cpp の 6271 行で定義されています。

参照先 CEditDoc::GetFileName()・CEditDoc::GetFilePath()・CEditDoc::IsFilePathAvailable()・m_pcEditDoc.

void CEditView::Command_TILE_H ( void ) [protected]

CEditView_Command.cpp の 6966 行で定義されています。

参照先 CShareData::getInstance()・GetMonitorWorkRect()・CShareData::GetOpenedWindowArr()・m_hWnd・TRUE.

void CEditView::Command_TILE_V ( void ) [protected]

CEditView_Command.cpp の 7022 行で定義されています。

参照先 CShareData::getInstance()・GetMonitorWorkRect()・CShareData::GetOpenedWindowArr()・m_hWnd・TRUE.

void CEditView::Command_ToggleKeySearch ( void ) [protected]

キャレット位置の単語を辞書検索ON-OFF

日付:
2006.03.24 fon 新規作成

CEditView_Command.cpp の 4801 行で定義されています。

参照先 FALSE・Common::m_bUseCaretKeyWord・DLLSHAREDATA::m_Common・m_pShareData・TRUE.

void CEditView::Command_TOHANEI ( void ) [protected]

全角英数→半角英数

CEditView_Command.cpp の 4389 行で定義されています。

参照先 ConvSelectedArea()・F_TOHANEI.

void CEditView::Command_TOHANKAKU ( void ) [protected]

CEditView_Command.cpp の 4363 行で定義されています。

参照先 ConvSelectedArea()・F_TOHANKAKU.

void CEditView::Command_TOHANKATA ( void ) [protected]

CEditView_Command.cpp の 4372 行で定義されています。

参照先 ConvSelectedArea()・F_TOHANKATA.

void CEditView::Command_TOLOWER ( void ) [protected]

CEditView_Command.cpp の 4341 行で定義されています。

参照先 ConvSelectedArea()・F_TOLOWER.

void CEditView::Command_TOUPPER ( void ) [protected]

CEditView_Command.cpp の 4352 行で定義されています。

参照先 ConvSelectedArea()・F_TOUPPER.

void CEditView::Command_TOZENEI ( void ) [protected]

半角英数→全角英数

CEditView_Command.cpp の 4381 行で定義されています。

参照先 ConvSelectedArea()・F_TOZENEI.

void CEditView::Command_TOZENKAKUHIRA ( void ) [protected]

CEditView_Command.cpp の 4409 行で定義されています。

参照先 ConvSelectedArea()・F_TOZENKAKUHIRA.

void CEditView::Command_TOZENKAKUKATA ( void ) [protected]

CEditView_Command.cpp の 4398 行で定義されています。

参照先 ConvSelectedArea()・F_TOZENKAKUKATA.

void CEditView::Command_TRACEOUT | ( | const char * | outputstr,
 |  | int | nFlgOpt
 | ) | [protected]

マクロ用アウトプットウインドウに表示

日付:
2006.04.26 maru 新規作成

CEditView_Command_New.cpp の 2857 行で定義されています。

参照先 CEditDoc::ExpandParameter()・CShareData::getInstance()・m_pcEditDoc・NULL・CShareData::TraceOut().

void CEditView::Command_TRIM ( BOOL bLeft ) [protected]

TRIM Step1

非選択時はカレント行を選択して ConvSelectedArea → ConvMemory へ

引数:
bLeft [in] FALSE: 右TRIM / それ以外: 左TRIM
作者:
hor
日付:
2001.12.03 hor 新規作成

CEditView_Command_New.cpp の 2242 行で定義されています。

参照先 ConvSelectedArea()・DisableSelectArea()・F_LTRIM・F_RTRIM・CLayoutMgr::GetMaxLineSize()・IsTextSelected()・CEditDoc::m_cLayoutMgr・m_nCaretPosY・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・TRUE.

void CEditView::Command_TRIM2 | ( | CMemory * | pCMemory,
 |  | BOOL | bLeft
 | ) | [protected]

TRIM Step2 ConvMemory から 戻ってきた後の処理． CMemory.cppのなかに置かないほうが良いかなと思ってこちらに置きました．

作者:
hor
日付:
2001.12.03 hor 新規作成

CEditView_Command_New.cpp の 2269 行で定義されています。

参照先 CEOL::GetLen()・CMemory::GetLength()・GetNextLine()・CMemory::GetPtr()・NULL.

参照元 ConvMemory().

void CEditView::Command_TYPE_LIST ( void ) [protected]

CEditView_Command.cpp の 4163 行で定義されています。

参照先 CDlgTypeList::DoModal()・CEditDoc::GetDocumentType()・CEditDoc::LockDocumentType()・m_hInstance・m_hWnd・m_pcEditDoc・CEditDoc::OnChangeSetting()・CEditDoc::OpenPropertySheetTypes()・PROP_TEMPCHANGE_FLAG・CEditDoc::SetDocumentType().

void CEditView::Command_UNDO ( void ) [protected]

CEditView_Command_New.cpp の 641 行で定義されています。

参照先 CEditDoc::IsEnableUndo()・m_bBeginSelect・m_pcEditDoc.

void CEditView::Command_UNINDENT ( char cChar ) [protected]

CEditView_Command.cpp の 5569 行で定義されています。

参照先 Command_CHAR()・DisableSelectArea()・FALSE・CLayoutMgr::GetLineCount()・CLayoutMgr::GetLineStr()・CLayoutMgr::GetTabSpace()・IsTextSelected()・m_bBeginBoxSelect・CEditDoc::m_cLayoutMgr・m_hWnd・CLayout::m_nOffset・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・NULL・SendStatusMessage()・CEditDoc::SetModified()・SPACE・TAB.

int CEditView::Command_UP | ( | int | bSelect,
 |  | BOOL | bRepeat,
 |  | int | lines = 0
 | ) | [protected]

カーソル上移動

CEditView_Command.cpp の 690 行で定義されています。

参照先 Cursor_UPDOWN()・FALSE・DLLSHAREDATA::m_Common・m_hWnd・Common::m_nRepeatedScroll_Smooth・Common::m_nRepeatedScrollLineNum・m_pShareData.

void CEditView::Command_UP2 ( int ) [protected]

CEditView_Command.cpp の 1145 行で定義されています。

参照先 Cursor_UPDOWN().

int CEditView::Command_UP_BOX ( BOOL ) [protected]

void CEditView::Command_UUDECODE ( void ) [protected]

CEditView_Command.cpp の 8145 行で定義されています。

参照先 _MAX_PATH・FALSE・GetSelectedData()・IsTextSelected()・Common::m_bAddCRLFWhenCopy・DLLSHAREDATA::m_Common・m_pcEditDoc・m_pShareData・NULL・CEditDoc::SaveFileDialog()・CMemory::UUDECODE().

void CEditView::Command_WIN_OUTPUT ( void ) [protected]

CEditView_Command.cpp の 8396 行で定義されています。

参照先 CODE_SJIS・CShareData::IsEditWnd()・m_hWnd・DLLSHAREDATA::m_hwndDebug・m_pShareData・NULL・CEditApp::OpenNewEditor()・CRunningTimer::Read().

void CEditView::Command_WINCLOSE ( void ) [protected]

CEditView_Command.cpp の 8388 行で定義されています。

参照先 m_hwndParent・MYWM_CLOSE.

参照元 TagJumpSub().

void CEditView::Command_WINLIST ( int nCommandFrom ) [protected]

ウィンドウ一覧ポップアップ表示処理（ファイル名のみ）

日付:
2006.03.23 fon 新規作成

2006.05.19 genta コマンド実行要因を表す引数追加

CEditView_Command_New.cpp の 2843 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::PopupWinList().

void CEditView::Command_WINTOPMOST ( LPARAM lparam ) [protected]

常に手前に表示

日付:
2004.09.21 Moca

CEditView_Command_New.cpp の 2820 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::WindowTopMost().

void CEditView::Command_WndScrollDown ( void ) [protected]

CEditView_Command_New.cpp の 1851 行で定義されています。

参照先 _CARETMARGINRATE・CCaretUnderLine::CaretUnderLineOFF()・CCaretUnderLine::CaretUnderLineON()・Cursor_UPDOWN()・DrawCaretPosInfo()・FALSE・CLayoutMgr::GetLineCount()・IsTextSelected()・CEditDoc::m_cLayoutMgr・m_cUnderLine・m_nCaretPosY・m_nViewRowNum・m_nViewTopLine・m_pcEditDoc・ScrollAtV()・SyncScrollV()・TRUE.

void CEditView::Command_WndScrollUp ( void ) [protected]

CEditView_Command_New.cpp の 1891 行で定義されています。

参照先 _CARETMARGINRATE・CCaretUnderLine::CaretUnderLineOFF()・CCaretUnderLine::CaretUnderLineON()・Cursor_UPDOWN()・DrawCaretPosInfo()・FALSE・IsTextSelected()・m_cUnderLine・m_nCaretPosY・m_nViewRowNum・m_nViewTopLine・ScrollAtV()・SyncScrollV()・TRUE.

void CEditView::Command_WordCut ( void ) [protected]

CEditView_Command.cpp の 1843 行で定義されています。

参照先 Command_CUT()・Command_RIGHT()・Command_SELECTWORD()・FALSE・IsTextSelected()・TRUE.

void CEditView::Command_WordDelete ( void ) [protected]

CEditView_Command.cpp の 1865 行で定義されています。

参照先 Command_SELECTWORD()・DeleteData()・IsTextSelected()・TRUE.

void CEditView::Command_WordDeleteToEnd ( void ) [protected]

CEditView_Command.cpp の 1736 行で定義されています。

参照先 COpeBlk::AppendOpe()・CLayoutMgr::CaretPos_Log2Phys()・Command_WORDRIGHT()・DeleteData()・IsTextSelected()・m_bBeginBoxSelect・m_bDoing_UndoRedo・CEditDoc::m_cLayoutMgr・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・COpe::m_nOpe・m_nSelectColmFrom・m_nSelectLineFrom・m_pcEditDoc・m_pcOpeBlk・NULL・OPE_MOVECARET・TRUE.

void CEditView::Command_WordDeleteToStart ( void ) [protected]

CEditView_Command.cpp の 1790 行で定義されています。

参照先 COpeBlk::AppendOpe()・CLayoutMgr::CaretPos_Log2Phys()・Command_WORDLEFT()・DeleteData()・IsTextSelected()・m_bBeginBoxSelect・m_bDoing_UndoRedo・CEditDoc::m_cLayoutMgr・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・m_nSelectColmTo・m_nSelectLineTo・m_pcEditDoc・m_pcOpeBlk・NULL・TRUE.

参照元 ShowHokanMgr().

void CEditView::Command_WORDLEFT ( int ) [protected]

CEditView_Command.cpp の 1401 行で定義されています。

参照先 BeginSelectArea()・BOOL()・ChangeSelectAreaByCurrentCursor()・Command_LEFT()・DisableSelectArea()・FALSE・IsTextSelected()・LineColmnToIndex()・LineIndexToColmn()・Common::m_bIsFreeCursorMode・Common::m_bStopsBothEndsWhenSearchWord・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・m_pcEditDoc・m_pShareData・MoveCursor()・NULL・CLayoutMgr::PrevWord()・CLayoutMgr::Search()・TRUE.

参照元 Command_WordDeleteToStart().

void CEditView::Command_WORDRIGHT ( int ) [protected]

CEditView_Command.cpp の 1467 行で定義されています。

参照先 BeginSelectArea()・BOOL()・ChangeSelectAreaByCurrentCursor()・DisableSelectArea()・FALSE・CLayout::GetPtr()・IsTextSelected()・LineColmnToIndex()・LineIndexToColmn()・Common::m_bStopsBothEndsWhenSearchWord・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・m_pcEditDoc・m_pShareData・MoveCursor()・CLayoutMgr::NextWord()・NULL・CLayoutMgr::Search()・TAB・TRUE.

参照元 Command_WordDeleteToEnd().

void CEditView::Command_WRAPWINDOWWIDTH ( void ) [protected]

現在のウィンドウ幅で折り返し

日付:
2002.01.14 YAZAKI 現在のウィンドウ幅で折り返されているときは、最大値にするように

2002.04.08 YAZAKI ときどきウィンドウ幅で折り返されないことがあるバグ修正。

2005.08.14 genta ここでの設定は共通設定に反映しない．

2005.10.22 aroka 現在のウィンドウ幅→最大値→文書タイプの初期値 をトグルにする

覚え書き:
変更する順序を変更したときはCEditWndInitMenu()も変更すること
参照:
CEditWnd::InitMenu()

CEditView_Command.cpp の 9166 行で定義されています。

参照先 CEditDoc::ChangeLayoutParam()・CLayoutMgr::GetTabSpace()・GetWrapMode()・CEditDoc::m_cLayoutMgr・m_nViewLeftCol・m_pcEditDoc・RedrawAll()・TGWRAP_NONE.

void CEditView::ConvMemory | ( | CMemory * | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 5698 行で定義されています。

参照先 CMemory::AUTOToSJIS()・Command_TRIM2()・CMemory::EUCToSJIS()・F_CODECNV_AUTO2SJIS・F_CODECNV_EMAIL・F_CODECNV_EUC2SJIS・F_CODECNV_SJIS2EUC・F_CODECNV_SJIS2JIS・F_CODECNV_SJIS2UTF7・F_CODECNV_SJIS2UTF8・F_CODECNV_UNICODE2SJIS・F_CODECNV_UNICODEBE2SJIS・F_CODECNV_UTF72SJIS・F_CODECNV_UTF82SJIS・F_HANKATATOZENKAKUHIRA・F_HANKATATOZENKAKUKATA・F_LTRIM・F_RTRIM・F_SPACETOTAB・F_TABTOSPACE・F_TOHANEI・F_TOHANKAKU・F_TOHANKATA・F_TOLOWER・F_TOUPPER・F_TOZENEI・F_TOZENKAKUHIRA・F_TOZENKAKUKATA・FALSE・CLayoutMgr::GetTabSpace()・CMemory::JIStoSJIS()・CEditDoc::m_cLayoutMgr・m_pcEditDoc・CMemory::SJISToEUC()・CMemory::SJIStoJIS()・CMemory::SJISToUTF7()・CMemory::SJISToUTF8()・CMemory::SPACEToTAB()・CMemory::TABToSPACE()・CMemory::ToHankaku()・CMemory::ToLower()・CMemory::ToUpper()・CMemory::ToZenkaku()・TRUE・CMemory::UnicodeBEToSJIS()・CMemory::UnicodeToSJIS()・CMemory::UTF7ToSJIS()・CMemory::UTF8ToSJIS().

参照元 ConvSelectedArea().

void CEditView::ConvSelectedArea ( int ) [protected]

CEditView.cpp の 5413 行で定義されています。

参照先 COpeBlk::AppendOpe()・BOOL()・CLayoutMgr::CaretPos_Log2Phys()・ConvMemory()・CR・DeleteData2()・DisableSelectArea()・FALSE・CMemory::GetLength()・CLayoutMgr::GetLineStr()・CMemory::GetPtr()・InsertData_CEditView()・IsTextSelected()・LF・LineColmnToIndex()・LineIndexToColmn()・m_bBeginBoxSelect・m_bDoing_UndoRedo・CEditDoc::m_cLayoutMgr・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosX_Prev・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineTo・m_pcEditDoc・m_pcOpeBlk・MoveCursor()・CMemory::SetData()・TRUE・TwoPointToRect().

参照元 Command_CODECNV_AUTO2SJIS()・Command_CODECNV_EMAIL()・Command_CODECNV_EUC2SJIS()・Command_CODECNV_SJIS2EUC()・Command_CODECNV_SJIS2JIS()・Command_CODECNV_SJIS2UTF7()・Command_CODECNV_SJIS2UTF8()・Command_CODECNV_UNICODE2SJIS()・Command_CODECNV_UNICODEBE2SJIS()・Command_CODECNV_UTF72SJIS()・Command_CODECNV_UTF82SJIS()・Command_HANKATATOZENKAKUHIRA()・Command_HANKATATOZENKAKUKATA()・Command_SPACETOTAB()・Command_TABTOSPACE()・Command_TOHANEI()・Command_TOHANKAKU()・Command_TOHANKATA()・Command_TOLOWER()・Command_TOUPPER()・Command_TOZENEI()・Command_TOZENKAKUHIRA()・Command_TOZENKAKUKATA()・Command_TRIM().

void CEditView::CopySelectedAllLines | ( | const char * | ,
 |  | BOOL |
 | ) | [protected]

CEditView.cpp の 5318 行で定義されています。

参照先 DisableSelectArea()・FALSE・CMemory::GetLength()・CMemory::GetPtr()・GetSelectedData()・IsTextSelected()・Common::m_bAddCRLFWhenCopy・m_bBeginBoxSelect・DLLSHAREDATA::m_Common・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineTo・m_nViewCy・m_pShareData・MySetClipboardData()・OnPaint()・TRUE・TwoPointToRect().

参照元 Command_COPYLINES()・Command_COPYLINESASPASSAGE()・Command_COPYLINESWITHLINENUMBER().

void CEditView::CopyViewStatus ( CEditView * )

CEditView.cpp の 6379 行で定義されています。

参照先 m_bBeginBoxSelect・m_bBeginSelect・m_bSelectingLock・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・m_nCharHeight・m_nCharWidth・m_nMouseRollPosXOld・m_nMouseRollPosYOld・m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmFromOld・m_nSelectColmTo・m_nSelectColmToOld・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineFrom・m_nSelectLineFromOld・m_nSelectLineTo・m_nSelectLineToOld・m_nViewAlignLeft・m_nViewAlignLeftCols・m_nViewAlignTop・m_nViewLeftCol・m_nViewTopLine.

BOOL CEditView::Create | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | CEditDoc * | ,
 |  | int | ,
 |  | BOOL |
 | ) |

CEditView.cpp の 442 行で定義されています。

参照先 COLORIDX_RULER・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・Types::m_ColorInfoArr・DLLSHAREDATA::m_Common・m_cRegexKeyword・m_hInstance・m_hwndParent・m_nMyIndex・Common::m_nRulerBottomSpace・Common::m_nRulerHeight・m_nTopYohaku・m_nViewAlignTop・m_pcEditDoc・m_pShareData・Common::m_szRegexpLib・CRegexKeyword::RegexKeySetTypes().

参照元 CEditDoc::Create().

void CEditView::CreateEditCaret | ( | COLORREF | crCaret,
 |  | COLORREF | crBack,
 |  | int | nWidth,
 |  | int | nHeight
 | ) |

キャレットの作成

引数:
nCaretColor | [in] キャレットの色種別 (0:通常, 1:IME ON)
nWidth | [in] キャレット幅
nHeight | [in] キャレット高
日付:
2006.12.07 ryoji 新規作成

CEditView.cpp の 1264 行で定義されています。

参照先 m_hbmpCaret・NULL.

int CEditView::CreatePopUpMenu_R ( void ) [protected]

CEditView.cpp の 5860 行で定義されています。

参照先 CUSTMENU_INDEX_FOR_RBUTTONUP・CEditDoc::m_cFuncLookup・CEditWnd::m_CMenuDrawer・DLLSHAREDATA::m_Common・Common::m_nCustMenuItemFuncArr・Common::m_nCustMenuItemNumArr・m_pcEditDoc・CEditDoc::m_pcEditWnd・m_pShareData・CMenuDrawer::ResetContents().

参照元 Command_MENU_RBUTTON().

BOOL CEditView::CreateScrollBar ( void )

スクロールバー作成

日付:
2006.12.19 ryoji 新規作成（CEditViewCreateから分離）

CEditView.cpp の 577 行で定義されています。

参照先 Common::m_bScrollBarHorz・DLLSHAREDATA::m_Common・m_hInstance・m_hwndHScrollBar・m_hwndSizeBox・m_hwndVScrollBar・Common::m_nFUNCKEYWND_Place・m_pShareData・NULL・TRUE.

int CEditView::Cursor_UPDOWN | ( | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 4691 行で定義されています。

参照先 BeginSelectArea()・ChangeSelectAreaByCurrentCursor()・DisableSelectArea()・EOL_NONE・CEOL::GetLen()・CLayoutMgr::GetLineCount()・CLayoutMgr::GetLineStr()・CLayoutMgr::GetMaxLineSize()・IsTextSelected()・LineIndexToColmn()・m_bDrawSWITCH・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・m_pcEditDoc・MoveCursor()・TRUE.

参照元 Command_1PageDown()・Command_1PageUp()・Command_DOWN()・Command_DOWN2()・Command_GOFILEEND()・Command_HalfPageDown()・Command_HalfPageUp()・Command_UP()・Command_UP2()・Command_WndScrollDown()・Command_WndScrollUp().

void CEditView::DeleteData ( BOOL bRedraw ) [protected]

カーソル位置または選択エリアを削除

日付:
2002/03/24 YAZAKI bUndo削除

CEditView_Command_New.cpp の 362 行で定義されています。

参照先 COpeBlk::AppendOpe()・CLayoutMgr::CaretPos_Log2Phys()・CR・DeleteData2()・DisableSelectArea()・FALSE・CLayoutMgr::GetLineStr()・IsTextSelected()・LF・LineColmnToIndex()・LineIndexToColmn()・m_bBeginBoxSelect・m_bDoing_UndoRedo・m_bDrawSWITCH・CEditDoc::m_cLayoutMgr・m_hWnd・m_nCaretPosX・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosY・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・COpe::m_nOpe・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・m_pcOpeBlk・MY_RUNNINGTIMER・NULL・OPE_MOVECARET・CEditDoc::SetModified()・TwoPointToRect().

参照元 Command_CHAR()・Command_CUT()・Command_DELETE()・Command_DELETE_BACK()・Command_IME_CHAR()・Command_INDENT()・Command_LineDeleteToEnd()・Command_LineDeleteToStart()・Command_PASTEBOX()・Command_WordDelete()・Command_WordDeleteToEnd()・Command_WordDeleteToStart()・Drop()・ExecCmd()・InsertData_CEditView().

void CEditView::DeleteData2 | ( | int | nCaretX,
 |  | int | nCaretY,
 |  | int | nDelLen,
 |  | CMemory * | pcMem,
 |  | COpe * | pcOpe
 | ) | [protected]

指定位置の指定長データ削除

日付:
2002/03/24 YAZAKI bUndo削除

2002/05/12 YAZAKI bRedraw, bRedraw2削除（常にFALSEだから）

CEditView_Command_New.cpp の 275 行で定義されています。

参照先 CLayoutMgr::GetLineCount()・CEditDoc::m_cLayoutMgr・m_pcEditDoc・MY_RUNNINGTIMER.

参照元 ConvSelectedArea()・DeleteData().

void CEditView::DestroyCaret ( void ) [inline]

CEditView.h の 410 行で定義されています。

参照元 OnKillFocus().

void CEditView::DestroyScrollBar ( void )

スクロールバー破棄

日付:
2006.12.19 ryoji 新規作成

CEditView.cpp の 675 行で定義されています。

参照先 m_hwndHScrollBar・m_hwndSizeBox・m_hwndVScrollBar・NULL.

BOOL CEditView::DetectWidthOfLineNumberArea ( BOOL )

CEditView.cpp の 2537 行で定義されています。

参照先 COLORIDX_GYOU・DetectWidthOfLineNumberArea_calculate()・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・Types::m_ColorInfoArr・m_nCharWidth・Types::m_nColmSpace・m_nViewAlignLeftCols・m_pcEditDoc.

参照元 CEditDoc::DetectWidthOfLineNumberAreaAllPane()・SetFont().

int CEditView::DetectWidthOfLineNumberArea_calculate ( void )

CEditView.cpp の 2507 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute()・CDocLineMgr::GetLineCount()・Types::m_bLineNumIsCRLF・CEditDoc::m_cDocLineMgr・m_pcEditDoc.

参照元 DetectWidthOfLineNumberArea()・GetSelectedData()・CPrintPreview::OnChangePrintSetting().

void CEditView::DisableSelectArea ( BOOL )

CEditView.cpp の 4387 行で定義されています。

参照先 CCaretUnderLine::CaretUnderLineON()・DrawSelectArea()・FALSE・m_bBeginBoxSelect・m_bBeginLineSelect・m_bBeginWordSelect・m_bDrawSelectArea・m_bSelectingLock・m_cUnderLine・m_nCaretPosX_Prev・m_nSelectColmFrom・m_nSelectColmFromOld・m_nSelectColmTo・m_nSelectColmToOld・m_nSelectLineFrom・m_nSelectLineFromOld・m_nSelectLineTo・m_nSelectLineToOld.

参照元 Command_BEGIN_BOXSELECT()・Command_CANCEL_MODE()・Command_Diff_Next()・Command_Diff_Prev()・Command_DUPLICATELINE()・Command_GOFILEEND()・Command_GOLINEEND()・Command_INDENT()・Command_PASTE()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL()・Command_SELECTWORD()・Command_TRIM()・Command_UNINDENT()・Command_WORDLEFT()・Command_WORDRIGHT()・ConvSelectedArea()・CopySelectedAllLines()・Cursor_UPDOWN()・DeleteData()・Drop()・GetCurrentTextForSearch()・CEditDoc::InitAllView()・ISearchBack()・ISearchEnter()・MoveCursorSelecting()・OnLBUTTONUP()・SetSelectionFromReonvert().

LRESULT CEditView::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditView.cpp の 703 行で定義されています。

参照先 DWORD・F_CHAR・F_IME_CHAR・F_INSTEXT・FALSE・CEditDoc::GetActivePane()・HandleCommand()・IsInsMode()・LONG_PTR・m_bActivateByMouse・m_bPrevCommand・m_hwndParent・m_nMyIndex・m_pcEditDoc・NULL・OnKillFocus()・OnLBUTTONDBLCLK()・OnLBUTTONDOWN()・OnMBUTTONDOWN()・OnMOUSEWHEEL()・OnSetFocus()・OnSize()・CEditDoc::SetActivePane()・SetParentCaption()・SetWindowLongPtr・TRUE・WM_MOUSEWHEEL.

参照元 CEditDoc::DispatchEvent()・EditViewWndProc().

int CEditView::DispEOF | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | int | nCharWidth,
 |  | int | nLineHeight,
 |  | UINT | fuOptions,
 |  | const ColorInfo & | EofColInfo
 | ) | [protected]

EOF記号の描画

引数:
hdc | [in] 描画対象のDevice Context
x | [in] 表示座標x
y | [in] 表示座標y
nCharWidth | [in] 1文字の横幅(pixel)
fuOptions | [in] ExtTextOut()に渡す描画オプション
EofColInfo | [in] 描画に使う色情報
日付:
2004.05.29 genta MIKさんのアドバイスにより関数にくくりだし

CEditView_New.cpp の 1795 行で定義されています。

参照先 ChooseFontHandle()・ColorInfo::m_bFatFont・ColorInfo::m_bUnderLine・ColorInfo::m_colBACK・ColorInfo::m_colTEXT・m_nViewAlignLeft・m_pnDx.

int CEditView::DispLineNew | ( | HDC | hdc,
 |  | const CLayout * | pcLayout,
 |  | int & | nLineNum,
 |  | int | x,
 |  | int & | y,
 |  | BOOL | bDispBkBitmap,
 |  | int | nLineTo,
 |  | BOOL | bSelected
 | ) | [protected]

行のテキスト／選択状態の描画 1回で1論理行分を作画する。

引数:
hdc | 作画対象
pcLayout | 表示を開始するレイアウト
[in,out] | nLineNum | 作画するレイアウト行番号(0開始), 次の物理行に対応するレイアウト行番号
x | レイアウト0桁目の作画座標x
[in,out] | y | 作画座標y, 次の作画座標y
bDispBkBitmap | 背景にビットマップを使用する(事実上は常にFALSE。TRUEの場合背景作画しない)
nLineTo | 作画終了するレイアウト行番号
bSelected | 選択中か
戻り値:
EOFを作画したらtrue
nCOMMENTMODE
関数内部で状態遷移のために使われる変数nCOMMENTMODEと状態の関係。
2002/03/13 novice
  • COLORIDX_TEXT : テキスト
  • COLORIDX_COMMENT : 行コメント
  • COLORIDX_BLOCK1 : ブロックコメント1
  • COLORIDX_SSTRING : シングルコーテーション
  • COLORIDX_WSTRING : ダブルコーテーション
  • COLORIDX_KEYWORD1 : 強調キーワード1
  • COLORIDX_CTRLCODE : コントロールコード
  • COLORIDX_DIGIT : 半角数値
  • COLORIDX_BLOCK2 : ブロックコメント2
  • COLORIDX_KEYWORD2 : 強調キーワード2
  • COLORIDX_URL : URL
  • COLORIDX_SEARCH : 検索
  • 1000: 正規表現キーワード 色指定SetCurrentColorを呼ぶときにCOLORIDX_*値を加算するので、 1000～COLORIDX_LASTまでは正規表現で使用する。

日付:
2001.12.21 YAZAKI 改行記号の描きかたを変更

CEditView_New.cpp の 366 行で定義されています。

参照先 BOOL()・ChooseFontHandle()・COLORIDX_BLOCK1・COLORIDX_COMMENT・COLORIDX_CRLF・COLORIDX_SEARCH・COLORIDX_TEXT・DispLineNumber()・DispText()・DispTextSelected()・DispVerticalLines()・DrawEOL()・FALSE・CBlockComment::getBlockCommentFrom()・CEditDoc::GetDocumentAttribute()・CLayout::GetIndent()・CEOL::GetLen()・CMemory::GetLength()・CLayoutMgr::GetMaxLineSize()・CMemory::GetPtr()・IsSearchString()・m_bCurSrchKeyMark・m_bCurSrchRegularExp・ColorInfo::m_bFatFont・ColorInfo::m_bUnderLine・Types::m_bUseRegexKeyword・Types::m_cBlockComment・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・Types::m_cLineComment・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・m_cRegexKeyword・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・CLayout::m_nOffset・CLayout::m_nTypePrev・m_nViewAlignLeft・m_nViewAlignTop・m_nViewCx・m_nViewRowNum・m_nViewTopLine・CLayout::m_pCDocLine・m_pcEditDoc・CDocLine::m_pLine・m_pnDx・CLineComment::Match()・CBlockComment::Match_CommentFrom()・CBlockComment::Match_CommentTo()・MY_RUNNINGTIMER・NULL・CRegexKeyword::RegexIsKeyword()・CRegexKeyword::RegexKeyLineStart()・CLayoutMgr::Search()・SetCurrentColor()・TRUE.

参照元 OnPaint().

void CEditView::DispLineNumber | ( | HDC | ,
 |  | const CLayout * | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView_New2.cpp の 134 行で定義されています。

参照先 COLORIDX_GYOU・COLORIDX_GYOU_MOD・CEditDoc::GetDocumentAttribute()・CEditDoc::IsModified()・CDocLine::IsModifyed()・ColorInfo::m_bDisp・Types::m_ColorInfoArr・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nViewAlignLeftCols・CLayout::m_pCDocLine・m_pcEditDoc・NULL.

参照元 DispLineNew().

void CEditView::DispRuler ( HDC hdc ) [protected]

ルーラー描画

日付:
2005.08.14 genta 折り返し幅をLayoutMgrから取得するように

CEditView_New2.cpp の 689 行で定義されています。

参照先 COLORIDX_RULER・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・m_bDrawSWITCH・Types::m_ColorInfoArr・m_pcEditDoc.

参照元 OnKillFocus()・OnSetFocus()・SyncScrollH().

int CEditView::DispText | ( | HDC | ,
 |  | int | ,
 |  | int | ,
 |  | const char * | ,
 |  | int |
 | ) | [protected]

CEditView_New2.cpp の 390 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute()・CMemory::GetSizeOfChar()・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nViewAlignLeft・m_nViewAlignTop・m_nViewCx・m_pcEditDoc・m_pnDx.

参照元 DispLineNew().

void CEditView::DispTextSelected | ( | HDC | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView_New2.cpp の 447 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute()・CLayoutMgr::GetEndLayoutPos()・CLayout::GetIndent()・CLayoutMgr::GetLineCount()・IsTextSelected()・m_bBeginBoxSelect・CEditDoc::m_cLayoutMgr・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_nViewAlignLeft・m_nViewColNum・m_nViewCx・m_nViewLeftCol・m_pcEditDoc・CLayoutMgr::Search()・SELECTEDAREA_RGB・SELECTEDAREA_ROP2.

参照元 DispLineNew().

void CEditView::DispVerticalLines | ( | HDC | hdc,
 |  | int | nTop,
 |  | int | nBottom,
 |  | int | nLeftCol,
 |  | int | nRightCol
 | ) | [protected]

指定桁縦線描画関数 // 2005.11.08 Moca

指定桁縦線の描画

引数:
hdc | 作画するウィンドウのDC
nTop | 線を引く上端のクライアント座標y
nButtom | 線を引く下端のクライアント座標y
nColLeft | 線を引く範囲の左桁の指定
nColRight | 線を引く範囲の右桁の指定(-1で未指定)
日付:
2005.11.08 Moca 新規作成

2006.04.29 Moca 太線・点線のサポート。選択中の反転対策に行ごとに作画するように変更 縦線の色がテキストの背景色と同じ場合は、縦線の背景色をEXORで作画する

覚え書き:
Common::m_nVertLineOffsetにより、指定桁の前の文字の上に作画されることがある。

CEditView_New.cpp の 1855 行で定義されています。

参照先 BOOL()・COLORIDX_TEXT・COLORIDX_VERTLINE・FALSE・CEditDoc::GetDocumentAttribute()・CLayoutMgr::GetMaxLineSize()・ColorInfo::m_bFatFont・ColorInfo::m_bUnderLine・CEditDoc::m_cLayoutMgr・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・DLLSHAREDATA::m_Common・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・Types::m_nVertLineIdx・Common::m_nVertLineOffset・m_nViewAlignLeft・m_nViewAlignTop・m_nViewLeftCol・m_nViewTopLine・m_pcEditDoc・m_pShareData・MAX_VERTLINES・NULL.

参照元 DispLineNew().

DWORD CEditView::DoGrep | ( | const CMemory * | ,
 |  | const CMemory * | ,
 |  | const CMemory * | ,
 |  | BOOL | ,
 |  | BOOL | ,
 |  | BOOL | ,
 |  | int | ,
 |  | BOOL | ,
 |  | BOOL | ,
 |  | int |
 | ) |

CEditView.cpp の 6519 行で定義されています。

参照先 _MAX_PATH・CMemory::AllocBuffer()・CBregexp::Compile()・CDlgCancel::DoModeless()・FALSE・CMemory::GetPtr()・IDC_CHECK_REALTIMEVIEW・IDC_STATIC_CURFILE・IDC_STATIC_HITCOUNT・IDD_GREPRUNNING・InitRegexp()・m_bCurSrchKeyMark・m_bCurSrchLoHiCase・m_bCurSrchRegularExp・m_bDoing_UndoRedo・CEditDoc::m_bGrepMode・Common::m_bGrepRealTimeView・CEditDoc::m_bGrepRunning・DLLSHAREDATA::m_Common・m_CurRegexp・m_hInstance・m_hwndParent・m_pcEditDoc・m_pcOpeBlk・m_pShareData・m_szCurSrchKey・CEditDoc::m_szGrepKey・TRUE.

参照元 Command_GREP().

int CEditView::DoGrepFile | ( | CDlgCancel * | pcDlgCancel,
 |  | HWND | hwndCancel,
 |  | const char * | pszKey,
 |  | int * | pnKey_CharCharsArr,
 |  | const char * | pszFile,
 |  | BOOL | bGrepLoHiCase,
 |  | BOOL | bGrepRegularExp,
 |  | int | nGrepCharSet,
 |  | BOOL | bGrepOutputLine,
 |  | BOOL | bWordOnly,
 |  | int | nGrepOutputStyle,
 |  | CBregexp * | pRegexp,
 |  | int * | pnHitCount,
 |  | const char * | pszFullPath,
 |  | CMemory & | cmemMessage
 | ) |

Grep実行 (CFileLoadを使ったテスト版)

引数:
pcDlgCancel | [in] Cancelダイアログへのポインタ
hwndCancel | [in] Cancelダイアログのウィンドウハンドル
pszKey | [in] 検索パターン
pnKey_CharCharsArr | [in] 文字種配列(2byte/1byte)．単純文字列検索で使用．
pszFile | [in] 処理対象ファイル名(表示用)
bGrepLoHiCase | [in] TRUE: 大文字小文字の区別あり / FALSE: 無し
bGrepRegularExp | [in] TRUE: 検索パターンは正規表現 / FALSE: 文字列
nGrepCharSet | [in] 文字コードセット (0:自動認識)～
bGrepOutputLine | [in] TRUE: ヒット行を出力 / FALSE: ヒット部分を出力
bWordOnly | [in] TRUE: 単語単位で一致を判断 / FALSE: 部分にも一致する
nGrepOutputStyle | [in] 出力形式 1: Normal, 2: WZ風(ファイル単位)
pRegexp | [in] 正規表現コンパイルデータ。既にコンパイルされている必要がある
pnHitCount | [i/o] ヒット数の合計．元々の値に見つかった数を加算して返す．
pszFullPath | [in] 処理対象ファイルパス
戻り値:
-1 | GREPのキャンセル
それ以外 | ヒット数(ファイル検索時はファイル数)
日付:
2002/08/30 Moca CFileLoadを使ったテスト版

2004/03/28 genta 不要な引数nNest, bGrepSubFolder, pszPathを削除

CEditView.cpp の 7441 行で定義されています。

参照先 _MAX_PATH・CMemory::AppendSz()・BlockingHook()・BOOL()・CMemory::CheckKanjiCodeOfFile()・CODE_AUTODETECT・FALSE・CFileLoad::FileOpen()・CFileLoad::GetFileSize()・CEOL::GetLen()・CFileLoad::GetPercent()・gm_pszCodeNameArr_3・IDC_CHECK_REALTIMEVIEW・IDC_STATIC_HITCOUNT・CDlgCancel::IsCanceled()・m_bDrawSWITCH・CDialog::m_hWnd・CFileLoad::ReadLine().

int CEditView::DoGrepTree | ( | CDlgCancel * | pcDlgCancel,
 |  | HWND | hwndCancel,
 |  | const char * | pszKey,
 |  | int * | pnKey_CharCharsArr,
 |  | const char * | pszFile,
 |  | const char * | pszPath,
 |  | BOOL | bGrepSubFolder,
 |  | BOOL | bGrepLoHiCase,
 |  | BOOL | bGrepRegularExp,
 |  | int | nGrepCharSet,
 |  | BOOL | bGrepOutputLine,
 |  | BOOL | bWordOnly,
 |  | int | nGrepOutputStyle,
 |  | CBregexp * | pRegexp,
 |  | int | nNest,
 |  | int * | pnHitCount
 | ) |

Grep実行

引数:
pcDlgCancel | [in] Cancelダイアログへのポインタ
hwndCancel | [in] Cancelダイアログのウィンドウハンドル
pszKey | [in] 検索パターン
pnKey_CharCharsArr | [in] 文字種配列(2byte/1byte)．単純文字列検索で使用．
pszFile | [in] 検索対象ファイルパターン(!で除外指定)
pszPath | [in] 検索対象パス
bGrepSubFolder | [in] TRUE: サブフォルダを再帰的に探索する / FALSE: しない
bGrepLoHiCase | [in] TRUE: 大文字小文字の区別あり / FALSE: 無し
bGrepRegularExp | [in] TRUE: 検索パターンは正規表現 / FALSE: 文字列
nGrepCharSet | [in] 文字コードセット (0:自動認識)～
bGrepOutputLine | [in] TRUE: ヒット行を出力 / FALSE: ヒット部分を出力
bWordOnly | [in] TRUE: 単語単位で一致を判断 / FALSE: 部分にも一致する
nGrepOutputStyle | [in] 出力形式 1: Normal, 2: WZ風(ファイル単位)
pRegexp | [in] 正規表現コンパイルデータ。既にコンパイルされている必要がある
nNest | [in] ネストレベル
pnHitCount | [i/o] ヒット数の合計
日付:
2003.06.23 Moca サブフォルダ→ファイルだったのをファイル→サブフォルダの順に変更

2003.06.23 Moca ファイル名から""を取り除くように

2003.03.27 みく 除外ファイル指定の導入と重複検索防止の追加． 大部分が変更されたため，個別の変更点記入は無し．

CEditView.cpp の 6939 行で定義されています。

参照先 BlockingHook()・BOOL()・FALSE・IDC_CHECK_REALTIMEVIEW・IDC_STATIC_CURPATH・CDlgCancel::IsCanceled()・m_bDrawSWITCH・CDialog::m_hWnd・my_strtok()・TRUE.

STDMETHODIMP CEditView::DragEnter | ( | LPDATAOBJECT | ,
 |  | DWORD | ,
 |  | POINTL | ,
 |  | LPDWORD |
 | ) |

CEditView.cpp の 8207 行で定義されています。

参照先 CEditDoc::IsReadOnly()・Common::m_bUseOLE_DragDrop・DLLSHAREDATA::m_Common・CEditDoc::m_hLockedFile・CEditDoc::m_nFileShareModeOld・m_pcEditDoc・m_pShareData・MYTRACE・TRUE.

参照元 CDropTarget::DragEnter().

STDMETHODIMP CEditView::DragLeave ( void )

CEditView.cpp の 8326 行で定義されています。

参照先 FALSE・m_bDragMode・m_bDragSource・m_hwndParent・m_pcDropTarget・CDropTarget::m_pDataObject・MYTRACE・OnKillFocus()・OnSetFocus().

参照元 CDropTarget::DragLeave().

STDMETHODIMP CEditView::DragOver | ( | DWORD | ,
 |  | POINTL | ,
 |  | LPDWORD |
 | ) |

CEditView.cpp の 8274 行で定義されています。

参照先 FALSE・IsCurrentPositionSelected()・m_bDragSource・m_pcDropTarget・CDropTarget::m_pDataObject・MYTRACE・OnMOUSEMOVE().

参照元 CDropTarget::DragOver().

void CEditView::DrawBracketPair ( bool bDraw ) [protected]

対括弧の強調表示

日付:
2002/09/18 ai

2003/02/18 ai 再描画対応の為大改造

CEditView.cpp の 9532 行で定義されています。

参照先 COLORIDX_BRACKET_PAIR・FALSE・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・m_bDoing_UndoRedo・m_bDrawSWITCH・Types::m_ColorInfoArr・m_pcEditDoc.

参照元 OnKillFocus()・OnPaint()・OnSetFocus().

void CEditView::DrawCaretPosInfo ( void )

キャレットの行桁位置およびステータスバーの状態表示の更新

覚え書き:
ステータスバーの状態の並び方の変更はメッセージを受信する CEditWnd::DispatchEvent()のWM_NOTIFYにも影響があることに注意

ステータスバーの出力内容の変更はCEditWndOnSize()の カラム幅計算に影響があることに注意

CEditView.cpp の 5986 行で定義されています。

参照先 CLayoutMgr::GetActualTabSpace()・CEditDoc::GetDocumentAttribute()・CLayoutMgr::GetLineStr()・CEOL::GetName()・CEditDoc::GetNewLineCode()・CDocLine::GetPtr()・CMemory::GetSizeOfChar()・gm_pszCodeNameArr_2・m_bDrawSWITCH・Types::m_bLineNumIsCRLF・CEditDoc::m_cLayoutMgr・m_hwndParent・m_nCaretPosX_PHY・CEditDoc::m_nCharCode・CLayout::m_nOffset・CLayout::m_pCDocLine・m_pcEditDoc・CEditDoc::m_pcEditWnd・TAB.

参照元 Command_CHGMOD_EOL()・Command_CHGMOD_INS()・Command_WndScrollDown()・Command_WndScrollUp()・CEditDoc::FileSave()・CEditDoc::FileSaveAs()・RedrawAll().

void CEditView::DrawEOL | ( | HDC | hdc,
 |  | int | nPosX,
 |  | int | nPosY,
 |  | int | nWidth,
 |  | int | nHeight,
 |  | CEOL | cEol,
 |  | int | bBold,
 |  | COLORREF | pColor
 | ) | [protected]

画面描画補助関数: 行末の改行マークを改行コードによって書き分ける（メイン）

引数:
hdc | Device Context Handle
nPosX | 描画座標X
nPosY | 描画座標Y
nWidth | 描画エリアのサイズX
nHeight | 描画エリアのサイズY
cEol | 行末コード種別
bBold | TRUE: 太字
pColor | 色
覚え書き:
bBoldがTRUEの時は横に1ドットずらして重ね書きを行うが、 あまり太く見えない。
日付:
2001.12.21 YAZAKI 改行記号の描きかたを変更。ペンはこの関数内で作るようにした。 矢印の先頭を、sx, syにして描画ルーチン書き直し。

CEditView_New.cpp の 1586 行で定義されています。

参照先 EOL_CR・EOL_CRLF・EOL_LF・EOL_LFCR・CEOL::GetType()・NULL.

参照元 DispLineNew().

void CEditView::DrawRulerCaret ( HDC hdc ) [inline, protected]

ルーラーのキャレットを再描画 2002.02.25 Add By KK

引数:
hdc [in] デバイスコンテキスト DispRulerの内容を元に作成

CEditView_New2.cpp の 626 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute()・m_nCaretPosX・m_nCaretWidth・m_nCharWidth・Types::m_nColmSpace・m_nOldCaretPosX・m_nOldCaretWidth・m_nTopYohaku・m_nViewAlignLeft・m_nViewAlignTop・m_nViewColNum・m_nViewLeftCol・m_pcEditDoc.

void CEditView::DrawSelectArea ( void ) [protected]

選択領域の描画

日付:
2006.10.01 Moca 重複コード削除．矩形作画改善．

CEditView.cpp の 2070 行で定義されています。

参照先 DrawSelectAreaLine()・CEditDoc::GetDocumentAttribute()・CLayoutMgr::GetEndLayoutPos()・m_bBeginBoxSelect・m_bDrawSelectArea・m_bDrawSWITCH・CEditDoc::m_cLayoutMgr・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nSelectColmFrom・m_nSelectColmFromOld・m_nSelectColmTo・m_nSelectColmToOld・m_nSelectLineFrom・m_nSelectLineFromOld・m_nSelectLineTo・m_nSelectLineToOld・m_nViewAlignLeft・m_nViewAlignTop・m_nViewColNum・m_nViewCx・m_nViewLeftCol・m_nViewRowNum・m_nViewTopLine・m_pcEditDoc・NULL・SELECTEDAREA_RGB・SELECTEDAREA_ROP2・TRUE・TwoPointToRect().

参照元 ChangeSelectAreaByCurrentCursor()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL()・Command_SELECTWORD()・DisableSelectArea()・SetSelectionFromReonvert().

void CEditView::DrawSelectAreaLine | ( | HDC | hdc,
 |  | int | nLineNum,
 |  | int | nFromLine,
 |  | int | nFromCol,
 |  | int | nToLine,
 |  | int | nToCol
 | ) | [protected]

選択領域の中の指定行の描画

引数:
[in] | hdc | 描画領域のDevice Context Handle
[in] | nLineNum | 描画対象行(レイアウト行)
[in] | nFromLine | 選択開始行(レイアウト座標)
[in] | nFromCol | 選択開始桁(レイアウト座標)
[in] | nToLine | 選択終了行(レイアウト座標)
[in] | nToCol | 選択終了桁(レイアウト座標)
複数行に渡る選択範囲のうち，nLineNumで指定された1行分だけを描画する． 選択範囲は固定されたままnLineNumのみが必要行分変化しながら呼びだされる．

日付:
2006.03.29 Moca 3000桁制限を撤廃．

CEditView.cpp の 2314 行で定義されています。

参照先 CLayout::GetLengthWithoutEOL()・CLayoutMgr::GetTabSpace()・CEditDoc::m_cLayoutMgr・m_nViewColNum・m_nViewLeftCol・m_pcEditDoc・CLayoutMgr::Search().

参照元 DrawSelectArea().

void CEditView::DrawTabArrow | ( | HDC | hdc,
 |  | int | nPosX,
 |  | int | nPosY,
 |  | int | nWidth,
 |  | int | nHeight,
 |  | int | bBold,
 |  | COLORREF | pColor
 | ) | [protected]

CEditView_New.cpp の 1754 行で定義されています。

参照先 NULL.

STDMETHODIMP CEditView::Drop | ( | LPDATAOBJECT | ,
 |  | DWORD | ,
 |  | POINTL | ,
 |  | LPDWORD |
 | ) |

CEditView.cpp の 8350 行で定義されています。

参照先 AdjustScrollBars()・COpeBuf::AppendOpeBlk()・BOOL()・Command_INSTEXT()・Command_PASTEBOX()・DeleteData()・DisableSelectArea()・DWORD・F_INSTEXT・FALSE・GetGlobalData()・CMemory::GetLength()・COpeBlk::GetNum()・CMemory::GetPtr()・HandleCommand()・IsDataAvailable()・IsTextSelected()・m_bBeginBoxSelect・m_bDragMode・m_bDragSource・CEditDoc::m_cOpeBuf・m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineTo・m_pcDropTarget・m_pcEditDoc・m_pcOpeBlk・CDropTarget::m_pDataObject・MoveCursor()・MYTRACE・Redraw()・CEditDoc::RedrawInactivePane()・CMemory::SetDataSz()・TRUE・TwoPointToRect().

参照元 CDropTarget::Drop().

void CEditView::ExecCmd | ( | const char * | pszCmd,
 |  | const | int
 | ) | [protected]

外部コマンドの実行

引数:
[in] pszCmd コマンドライン
[in] nFlgOpt オプション
  • 0x01 標準出力を得る
  • 0x02 標準出力のりダイレクト先（無効=アウトプットウィンドウ / 有効=編集中のウィンドウ）
  • 0x04 編集中ファイルを標準入力へ
覚え書き:
子プロセスの標準出力取得はパイプを使用する

子プロセスの標準入力への送信は一時ファイルを使用

作者:
N.Nakatani
日付:
2001/06/23

2001/06/30 GAE

2002/01/24 YAZAKI 1バイト取りこぼす可能性があった

2003/06/04 genta

2004/09/20 naoh 多少は見やすく・・・

2004/01/23 genta

2004/01/28 Moca 改行コードが分割されるのを防ぐ

2007/03/18 maru オプションの拡張

CEditView.cpp の 8835 行で定義されています。

参照先 BlockingHook()・BOOL()・CODE_SJIS・Command_PUTFILE()・DeleteData()・CDlgCancel::DoModeless()・DWORD・FALSE・CShareData::getInstance()・CLayoutMgr::GetLineCount()・CMemory::GetSizeOfChar()・IDD_EXECRUNNING・int・CDlgCancel::IsCanceled()・IsTextSelected()・COsVersionInfo::IsWin32NT()・CEditDoc::m_cLayoutMgr・m_hInstance・CDialog::m_hWnd・m_hwndParent・m_nSelectColmFrom・m_pcEditDoc・CShareData::MyGetDateFormat()・CShareData::MyGetTimeFormat()・MYTRACE・SetSelectArea()・CShareData::TraceOut()・TRUE.

BOOL CEditView::GetAdjustCursorPos | ( | int * | pnPosX,
 |  | int * | pnPosY
 | ) |

正しいカーソル位置を算出する(EOF以降のみ)

引数:
pnPosX | [in/out] カーソルのレイアウト座標X
pnPosY | [in/out] カーソルのレイアウト座標Y
戻り値:
TRUE | 座標を修正した
FALSE | 座標は修正されなかった
覚え書き:
EOFの直前が改行でない場合は、その行に限りEOF以降にも移動可能 EOFだけの行は、先頭位置のみ正しい。
日付:
2004.04.02 Moca 関数化

CEditView.cpp の 2996 行で定義されています。

参照先 BOOL()・EOL_NONE・FALSE・CLayout::GetLength()・CLayoutMgr::GetLineCount()・CLayoutMgr::GetMaxLineSize()・LineIndexToColmn()・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・m_pcEditDoc・CLayoutMgr::Search()・TRUE.

参照元 MoveCursor()・OnSetFocus().

int CEditView::GetColorIndex | ( | HDC | hdc,
 |  | const CLayout * | pcLayout,
 |  | int | nCol
 | ) | [protected]

指定位置のColorIndexの取得 CEditView::DispLineNewを元にしたためCEditViewDispLineNewに 修正があった場合は、ここも修正が必要。

nCOMMENTMODE
関数内部で状態遷移のために使われる変数nCOMMENTMODEと状態の関係。
  • COLORIDX_TEXT : テキスト
  • COLORIDX_COMMENT : 行コメント
  • COLORIDX_BLOCK1 : ブロックコメント1
  • COLORIDX_SSTRING : シングルコーテーション
  • COLORIDX_WSTRING : ダブルコーテーション
  • COLORIDX_KEYWORD1 : 強調キーワード1
  • COLORIDX_CTRLCODE : コントロールコード
  • COLORIDX_DIGIT : 半角数値
  • COLORIDX_BLOCK2 : ブロックコメント2
  • COLORIDX_KEYWORD2 : 強調キーワード2
  • COLORIDX_URL : URL
  • COLORIDX_SEARCH : 検索
  • 1000: 正規表現キーワード 色指定SetCurrentColorを呼ぶときにCOLORIDX_*値を加算するので、 1000～COLORIDX_LASTまでは正規表現で使用する。

CEditView.cpp の 9682 行で定義されています。

参照先 BOOL()・COLORIDX_BLOCK1・COLORIDX_BLOCK2・COLORIDX_COMMENT・COLORIDX_SEARCH・COLORIDX_TEXT・FALSE・CBlockComment::getBlockCommentFrom()・CEditDoc::GetDocumentAttribute()・CEOL::GetLen()・CMemory::GetLength()・CMemory::GetPtr()・IsSearchString()・m_bCurSrchKeyMark・m_bCurSrchRegularExp・Types::m_bUseRegexKeyword・Types::m_cBlockComment・CLayout::m_cEol・Types::m_cLineComment・Types::m_ColorInfoArr・m_cRegexKeyword・CLayout::m_nOffset・CLayout::m_nTypePrev・CLayout::m_pCDocLine・m_pcEditDoc・CDocLine::m_pLine・CLayout::m_pPrev・CLineComment::Match()・CBlockComment::Match_CommentFrom()・CBlockComment::Match_CommentTo()・CRegexKeyword::RegexIsKeyword()・CRegexKeyword::RegexKeyLineStart()・TRUE.

void CEditView::GetCurrentTextForSearch ( CMemory & )

CEditView.cpp の 8570 行で定義されています。

参照先 _MAX_PATH・DisableSelectArea()・FALSE・CLayoutMgr::GetLineStr()・CMemory::GetPtr()・GetSelectedData()・IsTextSelected()・LineColmnToIndex()・LineIndexToColmn()・Common::m_bAddCRLFWhenCopy・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineTo・m_pcEditDoc・m_pShareData・CMemory::SetDataSz()・CLayoutMgr::WhereCurrentWord().

参照元 Command_SEARCH_CLEARMARK()・Command_TagJumpByTagsFile()・GetCurrentTextForSearchDlg().

void CEditView::GetCurrentTextForSearchDlg ( CMemory & cmemCurText )

現在カーソル位置単語または選択範囲より検索等のキーを取得（ダイアログ用）

日付:
2006.08.23 ryoji 新規作成

CEditView.cpp の 8650 行で定義されています。

参照先 GetCurrentTextForSearch()・IsTextSelected()・Common::m_bCaretTextForSearch・DLLSHAREDATA::m_Common・m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr・CMemory::SetDataSz().

参照元 Command_GREP_DIALOG()・Command_REPLACE_DIALOG()・Command_SEARCH_DIALOG().

BOOL CEditView::GetCurrentWord ( CMemory * pcmemWord ) [protected]

キャレット位置の単語を取得 単語区切り

引数:
[out] pcmemWord キャレット位置の単語
戻り値:
true: 成功，false: 失敗
日付:
2006.03.24 fon (CEditView::Command_SELECTWORDを流用)

CEditView.cpp の 7878 行で定義されています。

参照先 LineColmnToIndex()・CEditDoc::m_cLayoutMgr・m_pcEditDoc・CLayoutMgr::Search()・CLayoutMgr::WhereCurrentWord().

int CEditView::GetLeftWord | ( | CMemory * | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 7755 行で定義されています。

参照先 CMemory::Append()・CMemory::GetLength()・CLayoutMgr::GetLineStr()・LineColmnToIndex()・CEditDoc::m_cLayoutMgr・m_pcEditDoc・CMemory::MemCharPrev()・SPACE・TAB・CLayoutMgr::WhereCurrentWord().

参照元 PostprocessCommand_hokan().

BOOL CEditView::GetSelectedData | ( | CMemory & | ,
 |  | BOOL | ,
 |  | const char * | ,
 |  | BOOL | ,
 |  | BOOL | bAddCRLFWhenCopy,
 |  | enumEOLType | neweol = EOL_UNKNOWN
 | ) |

CEditView.cpp の 5068 行で定義されています。

参照先 CMemory::AllocBuffer()・CMemory::Append()・CMemory::AppendSz()・CRLF・DetectWidthOfLineNumberArea_calculate()・FALSE・CLayoutMgr::GetLineStr()・IsTextSelected()・LineColmnToIndex()・m_bBeginBoxSelect・CEditDoc::m_cLayoutMgr・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・CLayout::m_pNext・CMemory::SetDataSz()・TwoPointToRect().

参照元 Command_BASE64DECODE()・Command_COPY()・Command_CUT()・Command_PUTFILE()・Command_UUDECODE()・CopySelectedAllLines()・GetCurrentTextForSearch()・CMacro::HandleFunction()・KeyWordHelpSearchDict().

CEditView::TOGGLE_WRAP_ACTION CEditView::GetWrapMode ( int & newWidth )

折り返しの動作を決定

トグルコマンド「現在のウィンドウ幅で折り返し」を行った場合の動作を決定する

戻り値:
TGWRAP_NONE | No action
TGWRAP_FULL | 最大値
TGWRAP_WINDOW | ウィンドウ幅
TGWRAP_PROP | 設定値
日付:
2006.01.08 genta メニュー表示で同一の判定を使うため，Command_WRAPWINDOWWIDTH()より分離．

2006.01.08 genta 判定条件を見直し

CEditView_Command.cpp の 9088 行で定義されています。

参照先 CLayoutMgr::GetMaxLineSize()・CEditDoc::m_cLayoutMgr・m_nViewColNum・m_pcEditDoc・MAXLINESIZE・TGWRAP_FULL.

参照元 Command_WRAPWINDOWWIDTH().

BOOL CEditView::HandleCommand | ( | int | ,
 |  | BOOL | ,
 |  | LPARAM | ,
 |  | LPARAM | ,
 |  | LPARAM | ,
 |  | LPARAM |
 | ) |

CEditView_Command.cpp の 65 行で定義されています。

参照先 _IS_SJIS_1・_IS_SJIS_2・BOOL()・F_CHAR・F_IME_CHAR・FALSE・CEditDoc::IsModificationForbidden()・m_pcEditDoc・TranslateCommand_grep()・TranslateCommand_isearch()・TRUE.

参照元 DispatchEvent()・CHokanMgr::DoHokan()・Drop()・CMacro::HandleCommand()・CDlgFuncList::Key2Command()・CDlgJump::OnBnClicked()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked().

void CEditView::HideCaret_ ( HWND hwnd ) [protected]

キャレットの非表示

CEditView.cpp の 9456 行で定義されています。

参照先 m_bCaretShowFlag.

参照元 OnPaint().

int CEditView::HokanSearchByFile | ( | const char * | pszKey,
 |  | BOOL | bHokanLoHiCase,
 |  | CMemory ** | ppcmemKouho,
 |  | int | nKouhoNum,
 |  | int | nMaxKouho
 | ) |

編集中データから入力補完キーワードの検索 CHokanMgrから呼ばれる

戻り値:
候補数
作者:
Moca
日付:
2003.06.25

2005/01/10 genta CEditView_Commandから移動

引数:
bHokanLoHiCase | 英大文字小文字を同一視する
ppcmemKouho | [IN/OUT] 候補
nKouhoNum | ppcmemKouhoのすでに入っている数
nMaxKouho | Max候補数(0==無制限)

CEditView_CmdHokan.cpp の 208 行で定義されています。

参照先 CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStrWithoutEOL()・IS_KEYWORD_CHAR・CEditDoc::m_cDocLineMgr・m_nCaretPosX_PHY・m_nCaretPosY_PHY・m_pcEditDoc.

void CEditView::InsertData_CEditView | ( | int | nX,
 |  | int | nY,
 |  | const char * | pData,
 |  | int | nDataLen,
 |  | int * | pnNewLine,
 |  | int * | pnNewPos,
 |  | COpe * | pcOpe,
 |  | BOOL | bRedraw
 | ) | [protected]

現在位置にデータを挿入 Ver0

日付:
2002/03/24 YAZAKI bUndo削除

CEditView_Command_New.cpp の 53 行で定義されています。

参照先 CMemory::Append()・DeleteData()・EOL_NONE・CLayoutMgr::GetLineStr()・IsTextSelected()・LineColmnToIndex2()・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・m_pcEditDoc・MY_RUNNINGTIMER・NULL・CMemory::SetDataSz().

参照元 Command_ADDTAIL()・ConvSelectedArea().

bool CEditView::IsBracket | ( | const char * | pLine,
 |  | int | x,
 |  | int | size
 | ) | [protected]

括弧判定

作者:
ai
引数:
pLine [in]
x
size
戻り値:
true | 括弧
false | 非括弧

CEditView_New2.cpp の 1386 行で定義されています。

参照先 ZENKAKKO_T::eStr・hankakkoarr・NULL・HANKAKKO_T::sStr.

int CEditView::IsCurrentPositionSelected | ( | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 7912 行で定義されています。

参照先 IsTextSelected()・m_bBeginBoxSelect・m_bDragSource・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineTo・TwoPointToRect().

参照元 DragOver()・OnMOUSEMOVE()・OnRBUTTONDOWN().

int CEditView::IsCurrentPositionSelectedTEST | ( | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 8009 行で定義されています。

参照先 IsTextSelected().

BOOL CEditView::IsCurrentPositionURL | ( | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * | ,
 |  | int * | ,
 |  | char ** |
 | ) | [protected]

CEditView.cpp の 3644 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・FALSE・CDocLineMgr::GetLineStr()・IsURL()・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_pcEditDoc・MY_RUNNINGTIMER.

参照元 OnLBUTTONDBLCLK()・OnMOUSEMOVE().

void CEditView::ISearchBack ( void ) [private]

バックスペースを押されたときの処理

CEditView_Cmdisrch.cpp の 465 行で定義されています。

参照先 _CARETMARGINRATE・DisableSelectArea()・FALSE・CMemory::GetPtr()・ISearchSetStatusMsg()・ISearchWordMake()・m_bCurSrchKeyMark・m_bISearchFirst・m_bISearchFlagHistory・m_nISearchHistoryCount・m_nISearchX1History・m_nISearchX2History・m_nISearchY1History・m_nISearchY2History・m_szCurSrchKey・MoveCursor()・Redraw()・SendStatusMessage()・SetSelectArea()・TRUE.

参照元 ProcessCommand_isearch().

void CEditView::ISearchEnter | ( | int | mode,
 |  | int | direction
 | ) | [private]

インクリメンタルサーチモードに入る

引数:
mode | [in] 検索方法 1:通常, 2:正規表現, 3:MIGEMO
direction | [in] 検索方向 0:後方(上方), 1:前方(下方)
作者:
isearch

CEditView_Cmdisrch.cpp の 145 行で定義されています。

参照先 DisableSelectArea()・FALSE・CMigemo::getInstance()・CDllHandler::Init()・CDllHandler::IsAvailable()・ISearchExec()・IsTextSelected()・m_bCurSrchRegularExp・m_bISearchFirst・Common::m_bRegularExp・DLLSHAREDATA::m_Common・m_CurRegexp・m_nISearchDirection・m_nISearchMode・m_pcmigemo・m_pShareData・NULL・SendStatusMessage()・TRUE.

参照元 ProcessCommand_isearch().

void CEditView::ISearchExec ( bool bNext ) [private]

インクリメンタルサーチの実行

引数:
bNext [in] true:次の候補を検索, false:現在のカーソル位置のまま検索

CEditView_Cmdisrch.cpp の 339 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・CDocLine::GetLength()・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineInfo()・CMemory::GetPtr()・ISearchSetStatusMsg()・ISearchWordMake()・IsTextSelected()・LineColmnToIndex()・m_bISearchFlagHistory・m_bISearchWrap・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosX・m_nCaretPosY・m_nISearchDirection・m_nISearchHistoryCount・m_nISearchMode・m_nISearchX1History・m_nISearchX2History・m_nISearchY1History・m_nISearchY2History・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・m_pcEditDoc・m_szCurSrchKey・CLayoutMgr::Search()・SendStatusMessage().

void CEditView::ISearchExec ( const char * pszText ) [private]

インクリメンタルサーチの実行(文字列追加)

引数:
pszText [in] 追加する文字列

CEditView_Cmdisrch.cpp の 314 行で定義されています。

参照先 ISearchExec().

void CEditView::ISearchExec ( WORD wChar ) [private]

インクリメンタルサーチの実行(1文字追加)

引数:
wChar [in] 追加する文字 (1byte or 2byte)

CEditView_Cmdisrch.cpp の 273 行で定義されています。

参照先 ISearchExit()・m_bISearchFirst・m_szCurSrchKey.

参照元 ISearchEnter()・ISearchExec()・ProcessCommand_isearch().

void CEditView::ISearchExit ( ) [private]

インクリメンタルサーチモードから抜ける

CEditView_Cmdisrch.cpp の 248 行で定義されています。

参照先 CShareData::AddToSearchKeyArr()・CShareData::getInstance()・m_nISearchDirection・m_nISearchHistoryCount・m_nISearchMode・m_szCurSrchKey・OnMOUSEMOVE()・SendStatusMessage().

参照元 ISearchExec()・OnLBUTTONDOWN()・TranslateCommand_isearch().

void CEditView::ISearchSetStatusMsg ( CMemory * msg ) const [private]

ISearchメッセージ構築

現在のサーチモード及び検索中文字列から メッセージエリアに表示する文字列を構築する

引数:
msg [out] メッセージバッファ
作者:
isearch
日付:
2004/10/13

2005.01.13 genta 文字列修正

CEditView_Cmdisrch.cpp の 559 行で定義されています。

参照先 CMemory::AppendSz()・m_nISearchDirection・m_nISearchHistoryCount・m_nISearchMode・m_szCurSrchKey・CMemory::SetDataSz().

参照元 ISearchBack()・ISearchExec().

void CEditView::ISearchWordMake ( void ) [private]

入力文字から、検索文字を生成する。

CEditView_Cmdisrch.cpp の 517 行で定義されています。

参照先 CBregexp::Compile()・InitRegexp()・m_bCurSrchLoHiCase・m_CurRegexp・m_hWnd・m_nISearchMode・m_pcmigemo・m_pszMigemoWord・m_szCurSrchKey・CMigemo::migemo_query()・CMigemo::migemo_release().

参照元 ISearchBack()・ISearchExec().

bool CEditView::IsImeON ( void )

IME ONか

日付:
2006.12.04 ryoji 新規作成（関数化）

CEditView.cpp の 1226 行で定義されています。

参照先 DWORD・FALSE・m_hwndParent.

bool CEditView::IsInsMode ( void ) const

挿入モード取得

日付:
2005.10.02 genta 管理方法変更のため関数化

CEditView.cpp の 10313 行で定義されています。

参照先 CEditDoc::IsInsMode()・m_pcEditDoc.

参照元 Command_CHGMOD_INS()・Command_IME_CHAR()・Command_INDENT()・DispatchEvent().

bool CEditView::IsISearchEnabled ( int nCommand ) const

ISearch状態をツールバーに反映させる．

参照:
CEditWnd::IsFuncChecked()
引数:
nCommand [in] 調べたいコマンドのID
戻り値:
true:チェック有り / false: チェック無し
日付:
2005.01.10 genta 新規作成

CEditView_Cmdisrch.cpp の 595 行で定義されています。

参照先 F_ISEARCH_MIGEMO_NEXT・F_ISEARCH_MIGEMO_PREV・F_ISEARCH_NEXT・F_ISEARCH_PREV・F_ISEARCH_REGEXP_NEXT・F_ISEARCH_REGEXP_PREV・m_nISearchDirection・m_nISearchMode.

BOOL CEditView::IsSearchString | ( | const char * | ,
 |  | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * |
 | ) | [protected]

CEditView_New2.cpp の 559 行で定義されています。

参照先 FALSE・CBregexp::GetIndex()・CBregexp::GetLastIndex()・m_bCurSrchRegularExp・m_CurRegexp・CBregexp::Match()・TRUE.

参照元 DispLineNew()・GetColorIndex().

BOOL CEditView::IsTextSelected ( void ) [inline]

CEditView.h の 126 行で定義されています。

参照元 Command_BASE64DECODE()・Command_BEGIN_BOXSELECT()・Command_BEGIN_SELECT()・Command_BOOKMARK_SET()・Command_CANCEL_MODE()・Command_CHAR()・Command_COPY()・Command_CUT()・Command_CUT_LINE()・Command_DELETE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_Diff_Next()・Command_Diff_Prev()・Command_DUPLICATELINE()・Command_GOFILEEND()・Command_GOLINEEND()・Command_IME_CHAR()・Command_INDENT()・Command_INDENT_TAB()・Command_INSFILE()・Command_INSTEXT()・Command_LEFT()・Command_LineCutToEnd()・Command_LineCutToStart()・Command_LineDeleteToEnd()・Command_LineDeleteToStart()・Command_MERGE()・Command_PASTE()・Command_PASTEBOX()・Command_REPLACE_DIALOG()・Command_RIGHT()・Command_SEARCH_CLEARMARK()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL()・Command_SELECTWORD()・Command_SORT()・Command_TRIM()・Command_UNINDENT()・Command_UUDECODE()・Command_WndScrollDown()・Command_WndScrollUp()・Command_WordCut()・Command_WordDelete()・Command_WordDeleteToEnd()・Command_WordDeleteToStart()・Command_WORDLEFT()・Command_WORDRIGHT()・ConvSelectedArea()・CopySelectedAllLines()・Cursor_UPDOWN()・DeleteData()・DispTextSelected()・Drop()・ExecCmd()・GetCurrentTextForSearch()・GetCurrentTextForSearchDlg()・GetSelectedData()・CMacro::HandleFunction()・InsertData_CEditView()・IsCurrentPositionSelected()・IsCurrentPositionSelectedTEST()・ISearchEnter()・ISearchExec()・CEditDoc::IsTextSelected()・MoveCursorSelecting()・OnPaint()・PrintSelectionInfoMsg()・SetReconvertStruct()・SetSelectionFromReonvert().

BOOL CEditView::IsTextSelecting ( void ) [inline]

CEditView.h の 133 行で定義されています。

BOOL CEditView::KeySearchCore ( const CMemory * pcmemCurText )

キーワード辞書検索処理メイン

日付:
2006.04.10 fon KeyWordHelpSearchDictから分離

CEditView.cpp の 3987 行で定義されています。

参照先 CMemory::AppendSz()・CEditDoc::GetDocumentAttribute()・CEditDoc::GetDocumentType()・CMemory::GetPtr()・Types::m_bUseKeyHelpKeyDisp・CTipWnd::m_cInfo・m_cTipWnd・m_pcEditDoc・CMemory::SetDataSz()・STRNCMP_MAX.

参照元 ShowKeywordHelp().

BOOL CEditView::KeyWordHelpSearchDict | ( | LID_SKH | nID,
 |  | POINT * | po,
 |  | RECT * | rc
 | ) |

キーワード辞書検索の前提条件チェックと、検索

日付:
2006.04.10 fon OnTimer, CreatePopUpMenu_Rから分離

CEditView.cpp の 3907 行で定義されています。

参照先 CR・FALSE・CEditDoc::GetDocumentAttribute()・CMemory::GetPtr()・GetSelectedData()・LF・LID_SKH_ONTIMER・LID_SKH_POPUPMENU_R・Common::m_bAddCRLFWhenCopy・m_bInMenuLoop・Types::m_bUseKeyWordHelp・DLLSHAREDATA::m_Common・m_dwTipTimer・m_nCaretWidth・m_pcEditDoc・m_pShareData・MYMESSAGEBOX・NULL・TRUE.

参照元 OnTimer().

int CEditView::LineColmnToIndex | ( | const CDocLine * | pcDocLine,
 |  | int | nColumn
 | ) | [protected]

CEditView.cpp の 5746 行で定義されています。

参照先 CLayoutMgr::GetTabSpace()・CEditDoc::m_cLayoutMgr・m_pcEditDoc.

int CEditView::LineColmnToIndex | ( | const CLayout * | pcLayout,
 |  | int | nColumn
 | ) | [protected]

CEditView.cpp の 5766 行で定義されています。

参照先 CLayoutMgr::GetTabSpace()・CEditDoc::m_cLayoutMgr・m_pcEditDoc.

参照元 Command_CHAR()・Command_IME_CHAR()・Command_INDENT()・Command_PASTE()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTWORD()・Command_SORT()・Command_WORDLEFT()・Command_WORDRIGHT()・ConvSelectedArea()・DeleteData()・GetCurrentTextForSearch()・GetCurrentWord()・GetLeftWord()・GetSelectedData()・ISearchExec()・PrintSelectionInfoMsg()・ReplaceData_CEditView().

int CEditView::LineColmnToIndex2 | ( | const CLayout * | pcLayout,
 |  | int | nColumn,
 |  | int & | pnLineAllColLen
 | ) | [protected]

CEditView.cpp の 5789 行で定義されています。

参照先 CLayoutMgr::GetTabSpace()・CEditDoc::m_cLayoutMgr・m_pcEditDoc.

参照元 Command_CUT_LINE()・Command_DELETE_LINE()・InsertData_CEditView().

int CEditView::LineIndexToColmn | ( | const CDocLine * | pcLayout,
 |  | int | nIndex
 | ) | [protected]

CEditView.cpp の 5842 行で定義されています。

参照先 CLayoutMgr::GetTabSpace()・CEditDoc::m_cLayoutMgr・m_pcEditDoc.

int CEditView::LineIndexToColmn | ( | const CLayout * | pcLayout,
 |  | int | nIndex
 | ) | [protected]

CEditView.cpp の 5820 行で定義されています。

参照先 CLayoutMgr::GetTabSpace()・CEditDoc::m_cLayoutMgr・m_pcEditDoc.

参照元 Command_CHAR()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_SELECTWORD()・Command_WORDLEFT()・Command_WORDRIGHT()・ConvSelectedArea()・Cursor_UPDOWN()・DeleteData()・GetAdjustCursorPos()・GetCurrentTextForSearch()・ReplaceData_CEditView().

BOOL CEditView::MakeDiffTmpFile | ( | char * | filename,
 |  | HWND | hWnd
 | ) | [protected]

一時ファイルを作成する

作者:
MIK
日付:
2002/05/26

2005/10/29 引数変更const char* → char* 一時ファイル名の取得処理もここでおこなう。maru

CEditView_Diff.cpp の 676 行で定義されています。

参照先 BOOL()・FALSE・CDocLineMgr::GetLineStr()・GSTR_APPNAME・CEditDoc::m_bBomExist・CEditDoc::m_cDocLineMgr・CEditDoc::m_cSaveLineCode・CEditDoc::m_hWnd・CEditDoc::m_nCharCode・m_pcEditDoc・m_pShareData・DLLSHAREDATA::m_szWork・MYMESSAGEBOX・MYWM_GETLINEDATA・NULL・SAKURA_DIFF_TEMP_PREFIX・TRUE・CDocLineMgr::WriteFile().

参照元 Command_Diff()・Command_Diff_Dialog().

int CEditView::MoveCursor | ( | int | nWk_CaretPosX,
 |  | int | nWk_CaretPosY,
 |  | BOOL | bScroll,
 |  | int | nCaretMarginRate = _CARETMARGINRATE
 | ) |

行桁指定によるカーソル移動

必要に応じて縦/横スクロールもする． 垂直スクロールをした場合はその行数を返す（正／負）．

引数:
nWk_CaretPosX | [in] 移動先桁位置(0～)
nWk_CaretPosY | [in] 移動先行位置(0～)
bScroll | [in] TRUE: 画面位置調整有り/ FALSE: 画面位置調整有り無し
nCaretMarginRate | [in] 縦スクロール開始位置を決める値
戻り値:
縦スクロール行数(負:上スクロール/正:下スクロール)
覚え書き:
不正な位置が指定された場合には適切な座標値に 移動するため，引数で与えた座標と移動後の座標は 必ずしも一致しない．

bScrollがfalseの場合にはカーソル位置のみ移動する． trueの場合にはスクロール位置があわせて変更される

日付:
2001/10/20 deleted by novice AdjustScrollBar()を呼ぶ位置を変更

2004.04.02 Moca 行だけ有効な座標に修正するのを厳密に処理する

2004.09.11 genta bDrawスイッチは動作と名称が一致していないので 再描画スイッチ→画面位置調整スイッチと名称変更

CEditView.cpp の 2738 行で定義されています。

参照先 CCaretUnderLine::CaretUnderLineOFF()・GetAdjustCursorPos()・CLayoutMgr::GetMaxLineSize()・m_bBeginSelect・CEditDoc::m_cLayoutMgr・m_cUnderLine・m_nViewColNum・m_nViewLeftCol・m_nViewRowNum・m_pcEditDoc.

参照元 Command_ADDTAIL()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_Diff_Next()・Command_Diff_Prev()・Command_GOFILEEND()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTWORD()・Command_WORDLEFT()・Command_WORDRIGHT()・ConvSelectedArea()・Cursor_UPDOWN()・Drop()・CEditDoc::InitAllView()・ISearchBack()・MoveCursorSelecting()・OnSetFocus()・CEditDoc::RestorePhysPosOfAllView()・RTrimPrevLine()・SetSelectionFromReonvert().

int CEditView::MoveCursorProperly | ( | int | nNewX,
 |  | int | nNewY,
 |  | BOOL | bScroll,
 |  | int | nCaretMarginRate = _CARETMARGINRATE,
 |  | int | dx = 0
 | ) |

行桁指定によるカーソル移動（座標調整付き）

引数:
nNewX[in/out] | カーソルのレイアウト座標X
nNewY[in/out] | カーソルのレイアウト座標Y
bScroll[in] | TRUE: 画面位置調整有り/ FALSE: 画面位置調整有り無し
nCaretMarginRate[in] | 縦スクロール開始位置を決める値
dx[in] | nNewXとマウスカーソル位置との誤差(カラム幅未満のドット数)
戻り値:
縦スクロール行数(負:上スクロール/正:下スクロール)
覚え書き:
マウス等による移動で不適切な位置に行かないよう座標調整してカーソル移動する
日付:
2007.08.23 ryoji 関数化（MoveCursorToPoint()から処理を抜き出し）

2007.09.26 ryoji 半角文字でも中央で左右にカーソルを振り分ける

CEditView.cpp の 3110 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute()・CLayout::GetIndent()・CLayout::GetLengthWithoutEOL()・CLayoutMgr::GetLineCount()・CLayoutMgr::GetLineStr()・CLayoutMgr::GetTabSpace()・CEditDoc::m_cLayoutMgr・m_nCharWidth・Types::m_nColmSpace・m_pcEditDoc.

参照元 MoveCursorToPoint().

void CEditView::MoveCursorSelecting | ( | int | nWk_CaretPosX,
 |  | int | nWk_CaretPosY,
 |  | BOOL | bSelect,
 |  | int | nCaretMarginRate = _CARETMARGINRATE
 | ) |

選択を考慮した行桁指定によるカーソル移動

選択状態チェック→カーソル移動→選択領域更新という処理が あちこちのコマンドにあるのでまとめることにした． また，戻り値はほとんど使われていないのでvoidにした．

選択状態を考慮してカーソルを移動する． 非選択が指定された場合には既存選択範囲を解除して移動する． 選択が指定された場合には選択範囲の開始・変更を併せて行う． インタラクティブ操作を前提とするため，必要に応じたスクロールを行う． カーソル移動後は上下移動でもカラム位置を保つよう， m_nCaretPosX_Prevの更新も併せて行う．

引数:
nWk_CaretPosX | [in] 移動先桁位置(0～)
nWk_CaretPosY | [in] 移動先行位置(0～)
bSelect | [in] TRUE: 選択する/ FALSE: 選択解除
nCaretMarginRate | [in] 縦スクロール開始位置を決める値
日付:
2006.07.09 genta 新規作成

CEditView.cpp の 2684 行で定義されています。

参照先 BeginSelectArea()・ChangeSelectAreaByCurrentCursor()・DisableSelectArea()・IsTextSelected()・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・MoveCursor()・TRUE.

参照元 Command_BOOKMARK_NEXT()・Command_BOOKMARK_PREV()・Command_BRACKETPAIR()・Command_GOFILETOP()・Command_JUMP_SRCHSTARTPOS().

int CEditView::MoveCursorToPoint | ( | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 3199 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute()・m_nCaretPosX・m_nCaretPosX_Prev・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nViewLeftCol・m_pcEditDoc・MoveCursorProperly()・TRUE.

参照元 OnMOUSEMOVE().

BOOL CEditView::MyGetClipboardData | ( | CMemory & | cmemBuf,
 |  | BOOL * | pbColmnSelect
 | ) | [protected]

クリップボードからデータを取得

日付:
2005/05/29 novice UNICODE TEXT 対応処理を追加

CEditView.cpp の 8047 行で定義されています。

参照先 FALSE・CMemory::GetPtr()・CMemory::SetData()・CMemory::SetDataSz()・TRUE・CMemory::UnicodeToSJIS().

参照元 Command_PASTE()・Command_PASTEBOX().

BOOL CEditView::MySetClipboardData | ( | const char * | ,
 |  | int | ,
 |  | BOOL |
 | ) | [protected]

CEditView.cpp の 8124 行で定義されています。

参照先 FALSE・int・TRUE.

参照元 Command_COPYFILENAME()・Command_COPYPATH()・Command_COPYTAG()・Command_CUT()・CopySelectedAllLines().

void CEditView::OnChangeSetting ( void )

CEditView.cpp の 6256 行で定義されています。

参照先 COLORIDX_RULER・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・Types::m_ColorInfoArr・DLLSHAREDATA::m_Common・Common::m_nRulerBottomSpace・Common::m_nRulerHeight・m_nTopYohaku・m_pcEditDoc・m_pShareData.

参照元 CEditDoc::InitAllView().

int CEditView::OnHScroll | ( | int | nScrollCode,
 |  | int | nPos
 | ) | [protected]

水平スクロールバーメッセージ処理

引数:
nScrollCode | [in] スクロール種別 (Windowsから渡されるもの)
nPos | [in] スクロール位置(THUMBTRACK用)
戻り値:
実際にスクロールした桁数
日付:
2004.09.11 genta スクロール桁数を返すように． 未使用のhwndScrollBar引数削除．

CEditView.cpp の 1597 行で定義されています。

参照先 CLayoutMgr::GetMaxLineSize()・m_bRedrawRuler・CEditDoc::m_cLayoutMgr・m_nViewColNum・m_nViewLeftCol・m_pcEditDoc・ScrollAtH().

void CEditView::OnKillFocus ( void )

CEditView.cpp の 1505 行で定義されています。

参照先 DestroyCaret()・DispRuler()・DrawBracketPair()・FALSE・CHokanMgr::Hide()・CTipWnd::Hide()・m_bDrawBracketPairFlag・m_bHokan・CEditDoc::m_cHokanMgr・m_cTipWnd・m_dwTipTimer・m_pcEditDoc.

参照元 CEditDoc::Create()・DispatchEvent()・DragLeave()・CEditDoc::SetActivePane().

void CEditView::OnLBUTTONDBLCLK | ( | WPARAM | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 4573 行で定義されています。

参照先 COLORIDX_URL・CEditDoc::GetDocumentAttribute()・IsCurrentPositionURL()・IsMailAddress()・ColorInfo::m_bDisp・Types::m_ColorInfoArr・m_pcEditDoc・TRUE.

参照元 DispatchEvent().

void CEditView::OnLBUTTONDOWN | ( | WPARAM | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 3219 行で定義されています。

参照先 FALSE・CLayoutMgr::GetLineCount()・CHokanMgr::Hide()・ISearchExit()・m_bHokan・CEditDoc::m_cHokanMgr・CEditDoc::m_cLayoutMgr・m_nISearchMode・m_pcEditDoc.

参照元 DispatchEvent()・OnRBUTTONDOWN().

void CEditView::OnLBUTTONUP | ( | WPARAM | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 4540 行で定義されています。

参照先 DisableSelectArea()・FALSE・m_bBeginSelect・m_cUnderLine・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineFrom・m_nSelectLineTo・ShowCaret_()・TRUE・CCaretUnderLine::UnLock().

参照元 OnRBUTTONUP().

void CEditView::OnMBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) | [protected]

マウス中ボタンを押したときの処理

引数:
fwKeys | [in] first message parameter
xPos | [in] マウスカーソルX座標
yPos | [in] マウスカーソルY座標
日付:
2004.10.11 novice 新規作成

CEditView.cpp の 3768 行で定義されています。

参照先 CMD_FROM_MOUSE・getCtrlKeyState()・m_hwndParent・KEYDATA::m_nFuncCodeArr・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・NULL.

参照元 DispatchEvent().

void CEditView::OnMOUSEMOVE | ( | WPARAM | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 4067 行で定義されています。

参照先 COLORIDX_URL・CEditDoc::GetDocumentAttribute()・CTipWnd::Hide()・IDC_CURSOR_HAND・IDC_CURSOR_ISEARCH_B・IDC_CURSOR_ISEARCH_F・IDC_CURSOR_RVARROW・IsCurrentPositionSelected()・IsCurrentPositionURL()・m_bBeginSelect・ColorInfo::m_bDisp・m_bDragMode・m_bHokan・Common::m_bUseOLE_DragDrop・Common::m_bUseOLE_DropSource・Types::m_ColorInfoArr・DLLSHAREDATA::m_Common・m_cTipWnd・m_dwTipTimer・m_hInstance・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・m_nISearchDirection・m_nISearchMode・Types::m_nLineSpace・m_nSelectColmBgnFrom・m_nSelectColmBgnTo・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineBgnFrom・m_nSelectLineBgnTo・m_nSelectLineFrom・m_nSelectLineTo・m_nViewLeftCol・m_pcEditDoc・m_poTipCurPos・m_pShareData・MoveCursorToPoint()・NULL・TRUE.

参照元 DragOver()・ISearchExit()・OnTimer().

LRESULT CEditView::OnMOUSEWHEEL | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CEditView.cpp の 4302 行で定義されています。

参照先 m_nViewRowNum・ReadRegistry()・ScrollAtV().

参照元 DispatchEvent().

void CEditView::OnMove | ( | int | ,
 |  | int | ,
 |  | int | ,
 |  | int |
 | ) |

CEditView.cpp の 1129 行で定義されています。

参照先 TRUE.

void CEditView::OnPaint | ( | HDC | ,
 |  | PAINTSTRUCT * | ,
 |  | BOOL |
 | ) | [protected]

CEditView_New.cpp の 64 行で定義されています。

参照先 BOOL()・COLORIDX_GYOU・COLORIDX_TEXT・DispLineNew()・DrawBracketPair()・CLayoutMgr::DUMP()・CDocLineMgr::DUMP()・FALSE・CEditDoc::GetDocumentAttribute()・CMemory::GetLength()・CLayoutMgr::GetMaxLineSize()・CMemory::GetPtr()・HideCaret_()・IsTextSelected()・m_bDrawSWITCH・CRegexKeyword::m_bUseRegexKeyword・Types::m_bUseRegexKeyword・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・DLLSHAREDATA::m_Common・m_cRegexKeyword・m_hdcCompatDC・m_hFont_HAN・m_hFontOld・m_hWnd・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Common::m_nLineNumRightSpace・Types::m_nLineSpace・CLayout::m_nOffset・m_nTopYohaku・m_nViewAlignLeft・m_nViewAlignTop・m_nViewCx・m_nViewLeftCol・m_nViewTopLine・CLayout::m_pCDocLine・m_pcEditDoc・CDocLine::m_pLine・m_pShareData・MY_RUNNINGTIMER・NULL・CRegexKeyword::RegexKeySetTypes()・CLayoutMgr::Search()・TRUE.

参照元 CopySelectedAllLines()・Redraw()・RedrawAll().

void CEditView::OnRBUTTONDOWN | ( | WPARAM | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 3715 行で定義されています。

参照先 CEditDoc::GetDocumentAttribute()・IsCurrentPositionSelected()・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nViewLeftCol・m_pcEditDoc・OnLBUTTONDOWN().

void CEditView::OnRBUTTONUP | ( | WPARAM | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 3733 行で定義されています。

参照先 CMD_FROM_MOUSE・getCtrlKeyState()・m_bBeginSelect・m_hwndParent・KEYDATA::m_nFuncCodeArr・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・NULL・OnLBUTTONUP().

void CEditView::OnSetFocus ( void )

CEditView.cpp の 1467 行で定義されています。

参照先 DispRuler()・DrawBracketPair()・FALSE・GetAdjustCursorPos()・m_bDrawBracketPairFlag・m_nCaretPosX・m_nCaretPosX_Prev・m_nCaretPosY・MoveCursor()・SetIMECompFormFont()・ShowEditCaret()・TRUE.

参照元 CEditDoc::Create()・DispatchEvent()・DragLeave()・CHokanMgr::Hide()・CEditDoc::SetActivePane().

void CEditView::OnSize | ( | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 1139 行で定義されています。

参照先 AdjustScrollBars()・CEditDoc::GetDocumentAttribute()・m_hbmpCompatBMP・m_hbmpCompatBMPOld・CWnd::m_hWnd・m_hwndHScrollBar・m_hwndSizeBox・m_hwndVScrollBar・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nViewAlignLeft・m_nViewAlignTop・m_nViewColNum・m_nViewCx・m_nViewCy・m_nViewRowNum・m_pcEditDoc・m_pcsbwHSplitBox・NULL・SetParentCaption()・TRUE.

参照元 DispatchEvent()・SplitBoxOnOff().

VOID CEditView::OnTimer | ( | HWND | ,
 |  | UINT | ,
 |  | UINT | ,
 |  | DWORD |
 | ) |

CEditView.cpp の 3842 行で定義されています。

参照先 KeyWordHelpSearchDict()・LID_SKH_ONTIMER・m_bBeginSelect・m_bDragSource・Common::m_bUseOLE_DragDrop・DLLSHAREDATA::m_Common・m_cTipWnd・m_nCharHeight・m_nMouseRollPosXOld・m_nMouseRollPosYOld・m_pShareData・NULL・OnMOUSEMOVE()・CTipWnd::Show()・TRUE.

参照元 EditViewTimerProc().

int CEditView::OnVScroll | ( | int | nScrollCode,
 |  | int | nPos
 | ) | [protected]

垂直スクロールバーメッセージ処理

引数:
nScrollCode | [in] スクロール種別 (Windowsから渡されるもの)
nPos | [in] スクロール位置(THUMBTRACK用)
戻り値:
実際にスクロールした行数
日付:
2004.09.11 genta スクロール行数を返すように． 未使用のhwndScrollBar引数削除．

CEditView.cpp の 1547 行で定義されています。

参照先 CLayoutMgr::GetLineCount()・CEditDoc::m_cLayoutMgr・DLLSHAREDATA::m_Common・Common::m_nRepeatedScrollLineNum・m_nViewRowNum・m_nViewTopLine・m_pcEditDoc・m_pShareData・ScrollAtV().

void CEditView::OnXLBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) | [protected]

マウス左サイドボタンを押したときの処理

引数:
fwKeys | [in] first message parameter
xPos | [in] マウスカーソルX座標
yPos | [in] マウスカーソルY座標
日付:
2004.10.10 novice 新規作成

2004.10.11 novice マウス中ボタン対応のため変更

CEditView.cpp の 3795 行で定義されています。

参照先 CMD_FROM_MOUSE・getCtrlKeyState()・m_hwndParent・KEYDATA::m_nFuncCodeArr・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・NULL.

void CEditView::OnXRBUTTONDOWN | ( | WPARAM | fwKeys,
 |  | int | xPos,
 |  | int | yPos
 | ) | [protected]

マウス右サイドボタン押したときの処理

引数:
fwKeys | [in] first message parameter
xPos | [in] マウスカーソルX座標
yPos | [in] マウスカーソルY座標
日付:
2004.10.10 novice 新規作成

2004.10.11 novice マウス中ボタン対応のため変更

CEditView.cpp の 3823 行で定義されています。

参照先 CMD_FROM_MOUSE・getCtrlKeyState()・m_hwndParent・KEYDATA::m_nFuncCodeArr・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・NULL.

BOOL CEditView::OPEN_ExtFromtoExt | ( | BOOL | bCheckOnly,
 |  | BOOL | bBeepWhenMiss,
 |  | const char * | file_ext[],
 |  | const char * | open_ext[],
 |  | int | file_extno,
 |  | int | open_extno,
 |  | const char * | errmes
 | ) | [protected]

指定拡張子のファイルに対応するファイルを開く補助関数

引数:
bCheckOnly | [in] true: チェックのみ行ってファイルは開かない
bBeepWhenMiss | [in] true: ファイルを開けなかった場合に警告音を出す
file_ext | [in] 処理対象とする拡張子
file_extno | [in] 処理対象拡張子リストの要素数
open_ext | [in] 開く対象とする拡張子
open_extno | [in] 開く対象拡張子リストの要素数
errmes | [in] ファイルを開けなかった場合に表示するエラーメッセージ
日付:
2003.06.28 Moca ヘッダ・ソースファイルオープン機能のコードを統合

CEditView_Command.cpp の 6624 行で定義されています。

参照先 BOOL()・CheckEXT()・CEditDoc::GetFilePath()・m_pcEditDoc・TRUE.

参照元 Command_OPEN_CCPP()・Command_OPEN_HHPP().

void CEditView::PostprocessCommand_hokan ( void ) [protected]

コマンド実行後補完処理

作者:
Moca
日付:
2005.01.10 genta 関数化

CEditView_CmdHokan.cpp の 53 行で定義されています。

参照先 FALSE・GetLeftWord()・CHokanMgr::Hide()・m_bExecutingKeyMacro・m_bHokan・Common::m_bUseHokan・CEditDoc::m_cHokanMgr・DLLSHAREDATA::m_Common・m_pcEditDoc・m_pShareData・ShowHokanMgr().

参照元 Command_DELETE_BACK().

void CEditView::PreprocessCommand_hokan ( int nCommand ) [protected]

コマンド受信前補完処理

補完ウィンドウの非表示

日付:
2005.01.10 genta 関数化

CEditView_CmdHokan.cpp の 33 行で定義されています。

参照先 F_CHAR・F_HOKAN・F_IME_CHAR・FALSE・CHokanMgr::Hide()・m_bHokan・CEditDoc::m_cHokanMgr・m_pcEditDoc.

void CEditView::PrintSelectionInfoMsg ( void ) [protected]

選択範囲情報メッセージの表示

作者:
genta
日付:
2005.07.09 genta 新規作成

2006.06.06 ryoji 選択範囲の行が実在しない場合の対策を追加

CEditView.cpp の 6154 行で定義されています。

参照先 CEOL::GetLen()・CLayout::GetLengthWithoutEOL()・CLayoutMgr::GetLineCount()・CLayoutMgr::GetLineStr()・IsTextSelected()・LineColmnToIndex()・m_bBeginBoxSelect・CLayout::m_cEol・CEditDoc::m_cLayoutMgr・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineTo・m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::SendStatusMessage2()・CEditWnd::SendStatusMessage2IsEffective().

参照元 RedrawAll().

bool CEditView::ProcessCommand_isearch | ( | int | nCommand,
 |  | BOOL | bRedraw,
 |  | LPARAM | lparam1,
 |  | LPARAM | lparam2,
 |  | LPARAM | lparam3,
 |  | LPARAM | lparam4
 | ) | [protected]

ISearch コマンド処理

日付:
2005.01.10 genta 各コマンドに入っていた処理を1カ所に移動

CEditView_Cmdisrch.cpp の 91 行で定義されています。

参照先 F_ISEARCH_ADD_CHAR・F_ISEARCH_ADD_STR・F_ISEARCH_DEL_BACK・F_ISEARCH_MIGEMO_NEXT・F_ISEARCH_MIGEMO_PREV・F_ISEARCH_NEXT・F_ISEARCH_PREV・F_ISEARCH_REGEXP_NEXT・F_ISEARCH_REGEXP_PREV・ISearchBack()・ISearchEnter()・ISearchExec().

void CEditView::Redraw ( void )

CEditView.cpp の 6361 行で定義されています。

参照先 FALSE・OnPaint().

参照元 Command_BOOKMARK_PATTERN()・Command_BOOKMARK_RESET()・Command_Diff_Reset()・Command_PASTEBOX()・Drop()・CSMacroMgr::Exec()・ISearchBack()・CEditDoc::RedrawInactivePane().

void CEditView::RedrawAll ( void )

CEditView.cpp の 6327 行で定義されています。

参照先 AdjustScrollBars()・DrawCaretPosInfo()・FALSE・OnPaint()・PrintSelectionInfoMsg()・SetParentCaption()・ShowEditCaret().

参照元 ChangeCurRegexp()・Command_1PageDown()・Command_1PageUp()・Command_CURLINECENTER()・Command_INDENT()・Command_REDRAW()・Command_WRAPWINDOWWIDTH()・CEditDoc::SetActivePane().

void CEditView::ReplaceData_CEditView | ( | int | nDelLineFrom,
 |  | int | nDelColmFrom,
 |  | int | nDelLineTo,
 |  | int | nDelColmTo,
 |  | CMemory * | pcmemCopyOfDeleted,
 |  | const char * | pInsData,
 |  | int | nInsDataLen,
 |  | BOOL | bRedraw
 | ) | [protected]

CEditView_Command_New.cpp の 1063 行で定義されています。

参照先 CLayoutMgr::GetLineStr()・LineColmnToIndex()・LineIndexToColmn()・CEditDoc::m_cLayoutMgr・m_pcEditDoc・NULL.

参照元 Command_PASTE()・RTrimPrevLine().

void CEditView::RTrimPrevLine ( void ) [protected]

CEditView_Command_New.cpp の 1778 行で定義されています。

参照先 COpeBlk::AppendOpe()・CLayoutMgr::CaretPos_Phys2Log()・CDocLineMgr::GetLineStrWithoutEOL()・CMemory::GetSizeOfChar()・m_bDoing_UndoRedo・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCaretPosX_PHY・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・m_nCaretPosY_PHY・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・COpe::m_nOpe・m_pcEditDoc・m_pcOpeBlk・MoveCursor()・NULL・OPE_MOVECARET・ReplaceData_CEditView()・SPACE・TAB・TRUE.

int CEditView::ScrollAtH ( int nPos ) [protected]

指定左端桁位置へスクロール

引数:
nPos [in] スクロール位置
戻り値:
実際にスクロールした桁数 (正:右方向/負:左方向)
日付:
2004.09.11 genta 桁数を戻り値として返すように．(同期スクロール用)

CEditView.cpp の 4927 行で定義されています。

参照先 CLayoutMgr::GetMaxLineSize()・CEditDoc::m_cLayoutMgr・m_nViewColNum・m_pcEditDoc.

参照元 AdjustScrollBars()・OnHScroll()・SyncScrollH().

int CEditView::ScrollAtV ( int nPos ) [protected]

指定上端行位置へスクロール

引数:
nPos [in] スクロール位置
戻り値:
実際にスクロールした行数 (正:下方向/負:上方向)
日付:
2004.09.11 genta 行数を戻り値として返すように．(同期スクロール用)

CEditView.cpp の 4844 行で定義されています。

参照先 AdjustScrollBars()・CEditDoc::GetDocumentAttribute()・CLayoutMgr::GetLineCount()・m_bDrawSWITCH・CEditDoc::m_cLayoutMgr・m_nCharHeight・Types::m_nLineSpace・m_nViewCy・m_nViewRowNum・m_pcEditDoc・ShowEditCaret()・TRUE.

参照元 AdjustScrollBars()・Command_1PageDown()・Command_1PageUp()・Command_WndScrollDown()・Command_WndScrollUp()・OnMOUSEWHEEL()・OnVScroll()・SyncScrollV().

int CEditView::ScrollByH ( int hl ) [inline, protected]

CEditView.h の 489 行で定義されています。

参照元 SyncScrollH().

int CEditView::ScrollByV ( int vl ) [inline, protected]

CEditView.h の 488 行で定義されています。

参照元 SyncScrollV().

bool CEditView::SearchBracket | ( | int | LayoutX,
 |  | int | LayoutY,
 |  | int * | NewX,
 |  | int * | NewY,
 |  | int * | mode
 | ) |

対括弧の検索

カーソル位置の括弧に対応する括弧を探す。カーソル位置が括弧でない場合は カーソルの後ろの文字が括弧かどうかを調べる。

カーソルの前後いずれもが括弧でない場合は何もしない。

括弧が半角か全角か、及び始まりか終わりかによってこれに続く4つの関数に 制御を移す。

引数:
LayoutX | [in] 検索開始点の物理座標X
LayoutY | [in] 検索開始点の物理座標Y
NewX | [out] 移動先のレイアウト座標X
NewY | [out] 移動先のレイアウト座標Y
mode | [in/out] bit0(in) : 表示領域外を調べるか？ 0:調べない 1:調べる bit1(in) : 前方文字を調べるか？ 0:調べない 1:調べる (このbitを参照) bit2(out) : 見つかった位置 0:後ろ 1:前 (このbitを更新)
戻り値:
true | 成功
false | 失敗
作者:
genta
日付:
Jun. 16, 2000 genta

Feb. 03, 2001 MIK 全角括弧に対応

Sep. 18, 2002 ai modeの追加

CEditView_New2.cpp の 912 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・HANKAKKO_T::eStr・CDocLineMgr::GetLineStr()・CMemory::GetSizeOfChar()・hankakkoarr・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nCharSize・m_pcEditDoc・SearchBracketBackward()・SearchBracketForward()・HANKAKKO_T::sStr.

参照元 Command_BRACKETPAIR().

bool CEditView::SearchBracketBackward | ( | int | PosX,
 |  | int | PosY,
 |  | int * | NewX,
 |  | int * | NewY,
 |  | char * | dnChar,
 |  | char * | upChar,
 |  | int * | mode
 | ) |

半角対括弧の検索:逆方向

作者:
genta
引数:
PosX | [in] 検索開始点の物理座標X
PosY | [in] 検索開始点の物理座標Y
NewX | [out] 移動先のレイアウト座標X
NewY | [out] 移動先のレイアウト座標Y
upChar | [in] 括弧の始まりの文字
dnChar | [in] 括弧を閉じる文字列
mode | [in] bit0(in) : 表示領域外を調べるか？ 0:調べない 1:調べる (このbitを参照) bit1(in) : 前方文字を調べるか？ 0:調べない 1:調べる bit2(out) : 見つかった位置 0:後ろ 1:前
戻り値:
true | 成功
false | 失敗

CEditView_New2.cpp の 1130 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・CDocLineMgr::GetLineInfo()・CMemory::GetPtr()・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nViewTopLine・m_pcEditDoc・CDocLine::m_pLine・CDocLine::m_pPrev・CMemory::MemCharPrev()・NULL.

参照元 SearchBracket().

bool CEditView::SearchBracketBackward2 | ( | int | PosX,
 |  | int | PosY,
 |  | int * | NewX,
 |  | int * | NewY,
 |  | char * | dnChar,
 |  | char * | upChar,
 |  | int * | mode
 | ) |

全角対括弧の検索:逆方向

作者:
MIK
引数:
PosX | [in] 検索開始点の物理座標X
PosY | [in] 検索開始点の物理座標Y
NewX | [out] 移動先のレイアウト座標X
NewY | [out] 移動先のレイアウト座標Y
upChar | [in] 括弧の始まりの文字へのポインタ
dnChar | [in] 括弧を閉じる文字列へのポインタ
mode | [in] bit0(in) : 表示領域外を調べるか？ 0:調べない 1:調べる (このbitを参照) bit1(in) : 前方文字を調べるか？ 0:調べない 1:調べる bit2(out) : 見つかった位置 0:後ろ 1:前
戻り値:
true | 成功
false | 失敗

CEditView_New2.cpp の 1306 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・CDocLineMgr::GetLineInfo()・CMemory::GetPtr()・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nViewTopLine・m_pcEditDoc・CDocLine::m_pLine・CDocLine::m_pPrev・CMemory::MemCharPrev()・NULL.

bool CEditView::SearchBracketForward | ( | int | PosX,
 |  | int | PosY,
 |  | int * | NewX,
 |  | int * | NewY,
 |  | char * | upChar,
 |  | char * | dnChar,
 |  | int * | mode
 | ) |

半角対括弧の検索:順方向

作者:
genta
引数:
PosX | [in] 検索開始点の物理座標X
PosY | [in] 検索開始点の物理座標Y
NewX | [out] 移動先のレイアウト座標X
NewY | [out] 移動先のレイアウト座標Y
upChar | [in] 括弧の始まりの文字
dnChar | [in] 括弧を閉じる文字列
mode | [in] bit0(in) : 表示領域外を調べるか？ 0:調べない 1:調べる (このbitを参照) bit1(in) : 前方文字を調べるか？ 0:調べない 1:調べる bit2(out) : 見つかった位置 0:後ろ 1:前
戻り値:
true | 成功
false | 失敗

CEditView_New2.cpp の 1041 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・CDocLineMgr::GetLineInfo()・CMemory::GetPtr()・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nViewRowNum・m_nViewTopLine・m_pcEditDoc・CDocLine::m_pLine・CDocLine::m_pNext・CMemory::MemCharNext()・NULL.

参照元 SearchBracket().

bool CEditView::SearchBracketForward2 | ( | int | PosX,
 |  | int | PosY,
 |  | int * | NewX,
 |  | int * | NewY,
 |  | char * | upChar,
 |  | char * | dnChar,
 |  | int * | mode
 | ) |

全角対括弧の検索:順方向

作者:
MIK
引数:
PosX | [in] 検索開始点の物理座標X
PosY | [in] 検索開始点の物理座標Y
NewX | [out] 移動先のレイアウト座標X
NewY | [out] 移動先のレイアウト座標Y
upChar | [in] 括弧の始まりの文字へのポインタ
dnChar | [in] 括弧を閉じる文字列へのポインタ
mode | [in] bit0(in) : 表示領域外を調べるか？ 0:調べない 1:調べる (このbitを参照) bit1(in) : 前方文字を調べるか？ 0:調べない 1:調べる bit2(out) : 見つかった位置 0:後ろ 1:前
戻り値:
true | 成功
false | 失敗

CEditView_New2.cpp の 1219 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・CDocLineMgr::GetLineInfo()・CMemory::GetPtr()・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・m_nViewRowNum・m_nViewTopLine・m_pcEditDoc・CDocLine::m_pLine・CDocLine::m_pNext・CMemory::MemCharNext()・NULL.

void CEditView::SendStatusMessage ( const char * msg ) [protected]

検索／置換／ブックマーク検索時の状態をステータスバーに表示する

日付:
2002.01.26 hor 新規作成

2002.12.04 genta 実体をCEditWndへ移動

CEditView.cpp の 9139 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::m_pcEditWnd・CEditWnd::SendStatusMessage().

参照元 Command_TAGJUMPBACK()・Command_UNINDENT()・ISearchBack()・ISearchEnter()・ISearchExec()・ISearchExit().

void CEditView::SendStatusMessage2 ( const char * msg ) [protected]

void CEditView::SetBracketPairPos ( bool flag ) [protected]

日付:
2003/02/18 ai
引数:
flag [in] モード(true:登録, false:解除)

CEditView.cpp の 9468 行で定義されています。

参照先 COLORIDX_BRACKET_PAIR・FALSE・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・m_bDoing_UndoRedo・m_bDrawSWITCH・Types::m_ColorInfoArr・m_pcEditDoc.

void CEditView::SetCurrentColor | ( | HDC | ,
 |  | int |
 | ) | [protected]

CEditView_New2.cpp の 42 行で定義されています。

参照先 ChooseFontHandle()・COLORIDX_BLOCK1・COLORIDX_BLOCK2・COLORIDX_BRACKET_PAIR・COLORIDX_COMMENT・COLORIDX_CTRLCODE・COLORIDX_DIGIT・COLORIDX_KEYWORD1・COLORIDX_KEYWORD10・COLORIDX_KEYWORD2・COLORIDX_KEYWORD3・COLORIDX_KEYWORD4・COLORIDX_KEYWORD5・COLORIDX_KEYWORD6・COLORIDX_KEYWORD7・COLORIDX_KEYWORD8・COLORIDX_KEYWORD9・COLORIDX_SEARCH・COLORIDX_SSTRING・COLORIDX_TEXT・COLORIDX_URL・COLORIDX_WSTRING・CEditDoc::GetDocumentAttribute()・ColorInfo::m_bDisp・ColorInfo::m_bFatFont・ColorInfo::m_bUnderLine・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・m_hFontOld・m_pcEditDoc・NULL.

参照元 DispLineNew().

void CEditView::SetFont ( void )

CEditView.cpp の 2450 行で定義されています。

参照先 DetectWidthOfLineNumberArea()・FALSE・CEditDoc::GetDocumentAttribute()・m_hFont_HAN・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nViewColNum・m_nViewCx・m_nViewCy・m_nViewRowNum・m_pcEditDoc・m_pnDx.

void CEditView::SetGrepResult | ( | char * | pWork,
 |  | int * | pnWorkLen,
 |  | const char * | pszFullPath,
 |  | const char * | pszCodeName,
 |  | int | nLine,
 |  | int | nColm,
 |  | const char * | pCompareData,
 |  | int | nLineLen,
 |  | int | nEolCodeLen,
 |  | const char * | pMatchData,
 |  | int | nMatchLen,
 |  | BOOL | bGrepOutputLine,
 |  | int | nGrepOutputStyle
 | ) |

Grep結果を構築する

引数:
pWork [out] Grep出力文字列．充分なメモリ領域を予め確保しておくこと． 最長で 本文2000 byte＋ファイル名 _MAX_PATH byte＋行・桁位置表示の長さが必要． ファイル単位出力の場合は本文2500 byte + _MAX_PATH + 行・桁位置表示の長さが必要．
pWorkは充分なメモリ領域を持っているコト
日付:
2002/08/29 Moca バイナリーデータに対応 pnWorkLen 追加
引数:
pnWorkLen | [out] Grep出力文字列の長さ
pszFullPath | [in] フルパス
pszCodeName | [in] 文字コード情報．" [SJIS]"とか
nLine | [in] マッチした行番号(1～)
nColm | [in] マッチした桁番号(1～)
pCompareData | [in] 行の文字列
nLineLen | [in] 行の文字列の長さ
nEolCodeLen | [in] EOLの長さ
pMatchData | [in] マッチした文字列
nMatchLen | [in] マッチした文字列の長さ
bGrepOutputLine | [in] 0: 該当部分のみ, !0: 該当行
nGrepOutputStyle | [in] 1: Normal, 2: WZ風(ファイル単位)

CEditView.cpp の 7348 行で定義されています。

void CEditView::SetIMECompFormFont ( void ) [protected]

CEditView.cpp の 3076 行で定義されています。

参照先 DLLSHAREDATA::m_Common・Common::m_lf・m_pShareData.

参照元 OnSetFocus().

void CEditView::SetIMECompFormPos ( void )

CEditView.cpp の 3035 行で定義されています。

参照先 m_hwndParent・m_nCaretHeight・m_nCharHeight.

参照元 CEditWnd::EndLayoutBars().

void CEditView::SetInsMode ( bool )

CEditView.cpp の 10318 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::SetInsMode().

参照元 Command_CHGMOD_INS().

void CEditView::SetParentCaption ( void ) [protected]

親ウィンドウのタイトルを更新

日付:
2007.03.08 ryoji bKillFocusパラメータを除去

CEditView.cpp の 5971 行で定義されています。

参照先 m_pcEditDoc・CEditDoc::SetParentCaption().

参照元 DispatchEvent()・OnSize()・RedrawAll().

LRESULT CEditView::SetReconvertStruct | ( | PRECONVERTSTRING | pReconv,
 |  | bool | bUnicode
 | ) | [protected]

* IMEからの再変換要求に応える for 95/NT */ // 20020331 aroka

CEditView.cpp の 9217 行で定義されています。

参照先 CLayoutMgr::CaretPos_Log2Phys()・tagRECONVERTSTRING::dwCompStrLen・tagRECONVERTSTRING::dwCompStrOffset・DWORD・tagRECONVERTSTRING::dwSize・tagRECONVERTSTRING::dwStrLen・tagRECONVERTSTRING::dwStrOffset・tagRECONVERTSTRING::dwTargetStrLen・tagRECONVERTSTRING::dwTargetStrOffset・tagRECONVERTSTRING::dwVersion・CEOL::GetLen()・CMemory::GetLength()・CDocLineMgr::GetLineInfo()・CMemory::GetPtr()・IsTextSelected()・m_bBeginBoxSelect・CEditDoc::m_cDocLineMgr・CDocLine::m_cEol・CEditDoc::m_cLayoutMgr・m_nLastReconvIndex・m_nLastReconvLine・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineTo・m_pcEditDoc・CDocLine::m_pLine・CMemory::SetData()・CMemory::SJISToUnicode().

参照元 Command_Reconvert().

void CEditView::SetSelectArea | ( | int | nLineFrom,
 |  | int | nColmFrom,
 |  | int | nLineTo,
 |  | int | nColmTo
 | ) | [inline, protected]

選択範囲を指定する(原点未選択)

日付:
2005.06.24 Moca

CEditView.h の 470 行で定義されています。

参照元 Command_LineCutToEnd()・Command_LineCutToStart()・Command_LineDeleteToEnd()・Command_LineDeleteToStart()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL()・Command_SELECTWORD()・ExecCmd()・ISearchBack().

LRESULT CEditView::SetSelectionFromReonvert | ( | PRECONVERTSTRING | pReconv,
 |  | bool | bUnicode
 | ) | [protected]

CEditView.cpp の 9378 行で定義されています。

参照先 CLayoutMgr::CaretPos_Phys2Log()・DisableSelectArea()・DrawSelectArea()・tagRECONVERTSTRING::dwCompStrLen・tagRECONVERTSTRING::dwCompStrOffset・DWORD・CMemory::GetLength()・IsTextSelected()・CEditDoc::m_cLayoutMgr・m_nLastReconvIndex・m_nLastReconvLine・m_nSelectColmFrom・m_nSelectColmTo・m_nSelectLineTo・m_pcEditDoc・MoveCursor()・CMemory::SetData()・TRUE・CMemory::UnicodeToSJIS().

void CEditView::ShowCaret_ ( HWND hwnd ) [protected]

キャレットの表示

CEditView.cpp の 9444 行で定義されています。

参照先 m_bCaretShowFlag.

参照元 OnLBUTTONUP().

void CEditView::ShowEditCaret ( void )

CEditView.cpp の 1310 行で定義されています。

参照先 CEditDoc::GetActivePane()・m_hwndParent・m_nCaretWidth・m_nMyIndex・m_pcEditDoc.

参照元 Command_CHGMOD_INS()・CWSHMacroManager::ExecKeyMacro()・OnSetFocus()・RedrawAll()・ScrollAtV().

void CEditView::ShowHokanMgr | ( | CMemory & | cmemData,
 |  | BOOL | bAutoDecided
 | ) | [protected]

補完ウィンドウを表示する ウィンドウを表示した後は、HokanMgrに任せるので、ShowHokanMgrの知るところではない。

引数:
cmemData | [in] 補完する元のテキスト 「Ab」などがくる。
bAutoDecided | [in] 候補が1つだったら確定する
日付:
2005.01.10 genta CEditView_Commandから移動

CEditView_CmdHokan.cpp の 80 行で定義されています。

参照先 Command_INSTEXT()・Command_WordDeleteToStart()・FALSE・CEditDoc::GetDocumentAttribute()・CMemory::GetLength()・CMemory::GetPtr()・CHokanMgr::Hide()・m_bHokan・Types::m_bHokanLoHiCase・Common::m_bUseHokan・Types::m_bUseHokanByFile・CEditDoc::m_cHokanMgr・DLLSHAREDATA::m_Common・m_hWnd・m_nCaretPosX・m_nCaretPosY・m_nCharHeight・m_nCharWidth・Types::m_nColmSpace・Types::m_nLineSpace・m_nViewAlignLeft・m_nViewAlignTop・m_nViewLeftCol・m_nViewTopLine・m_pcEditDoc・m_pShareData・Types::m_szHokanFile・NULL・CHokanMgr::Search()・TRUE.

参照元 PostprocessCommand_hokan().

bool CEditView::ShowKeywordHelp | ( | POINT | po,
 |  | LPCTSTR | pszHelp,
 |  | LPRECT | prcHokanWin
 | ) |

CEditView_New2.cpp の 1438 行で定義されています。

参照先 FALSE・CEditDoc::GetDocumentAttribute()・GetMonitorWorkRect()・CTipWnd::GetWindowSize()・CMemory::IsEqual()・KeySearchCore()・m_bInMenuLoop・Types::m_bUseKeyWordHelp・CTipWnd::m_cKey・m_cTipWnd・m_dwTipTimer・CWnd::m_hWnd・CTipWnd::m_KeyWasHit・m_pcEditDoc・NULL・CMemory::SetDataSz()・CTipWnd::Show().

void CEditView::SmartIndent_CPP ( char cChar ) [protected]

2000.1.12 編集動作とスマートインデントのUndo/Redoバッファを分ける場合

/* アンドゥバッファの処理

CEditView_Command_New.cpp の 1417 行で定義されています。

参照先 BOOL()・CR・CDocLineMgr::GetLineInfo()・CDocLineMgr::GetLineStr()・CMemory::GetSizeOfChar()・CEditDoc::m_cDocLineMgr・m_nCaretPosX_PHY・m_nCaretPosY_PHY・m_pcEditDoc・NULL・SPACE・TAB.

void CEditView::SplitBoxOnOff | ( | BOOL | ,
 |  | BOOL | ,
 |  | BOOL |
 | ) |

CEditView.cpp の 6437 行で定義されています。

参照先 CSplitBoxWnd::Create()・FALSE・m_hInstance・m_hwndSizeBox・m_pcsbwHSplitBox・OnSize()・TRUE.

void CEditView::SyncScrollH ( int col ) [protected]

水平同期スクロール

水平同期スクロールがONならば，対応するウィンドウを指定行数同期スクロールする．

引数:
col [in] スクロール桁数 (正:右方向/負:左方向/0:何もしない)
作者:
asa-o
日付:
2001.06.20 asa-o 新規作成

2004.09.11 genta 関数化

覚え書き:
動作の詳細は設定や機能拡張により変更になる可能性がある

CEditView.cpp の 5047 行で定義されています。

参照先 DispRuler()・m_bRedrawRuler・Common::m_bSplitterWndHScroll・CEditDoc::m_cEditViewArr・DLLSHAREDATA::m_Common・m_hWnd・m_nMyIndex・m_nViewLeftCol・m_pcEditDoc・m_pShareData・ScrollAtH()・ScrollByH().

void CEditView::SyncScrollV ( int line ) [protected]

垂直同期スクロール

垂直同期スクロールがONならば，対応するウィンドウを指定行数同期スクロールする

引数:
line [in] スクロール行数 (正:下方向/負:上方向/0:何もしない)
作者:
asa-o
日付:
2001.06.20 asa-o 新規作成

2004.09.11 genta 関数化

覚え書き:
動作の詳細は設定や機能拡張により変更になる可能性がある

CEditView.cpp の 5021 行で定義されています。

参照先 Common::m_bSplitterWndVScroll・CEditDoc::m_cEditViewArr・DLLSHAREDATA::m_Common・m_nMyIndex・m_pcEditDoc・m_pShareData・ScrollAtV()・ScrollByV().

参照元 Command_1PageDown()・Command_1PageUp()・Command_CURLINECENTER()・Command_WndScrollDown()・Command_WndScrollUp().

bool CEditView::TagJumpSub | ( | const char * | pszJumpToFile,
 |  | int | nLine,
 |  | int | nColumn,
 |  | bool | bClose = false,
 |  | bool | bRelFromIni = false
 | ) | [protected]

CEditView_Command.cpp の 6150 行で定義されています。

参照先 _IS_REL_PATH()・ActivateFrameWindow()・CLayoutMgr::CaretPos_Log2Phys()・CODE_AUTODETECT・Command_WINCLOSE()・FALSE・GetInidirOrExedir()・CShareData::getInstance()・GetLongFileName()・TagJump::hwndReferer・CEditDoc::m_cLayoutMgr・m_hInstance・m_hWnd・CEditDoc::m_hwndParent・m_nCaretPosX・m_nCaretPosY・FileInfo::m_nCharCode・FileInfo::m_nViewLeftCol・FileInfo::m_nViewTopLine・FileInfo::m_nX・FileInfo::m_nY・m_pcEditDoc・m_pShareData・FileInfo::m_szPath・DLLSHAREDATA::m_szWork・MYWM_SETCARETPOS・MYWM_SETREFERER・CEditApp::OpenNewEditor2()・TagJump::point・CShareData::PushTagJump()・TRUE.

参照元 Command_TagJumpByTagsFile().

void CEditView::TranslateCommand_grep | ( | int & | nCommand,
 |  | BOOL & | bRedraw,
 |  | LPARAM & | lparam1,
 |  | LPARAM & | lparam2,
 |  | LPARAM & | lparam3,
 |  | LPARAM & | lparam4
 | ) | [protected]

コマンドコードの変換(grep mode時)

CEditView_Cmdgrep.cpp の 27 行で定義されています。

参照先 CR・F_CHAR・F_TAGJUMP・LF・CEditDoc::m_bGrepMode・Common::m_bGTJW_RETURN・DLLSHAREDATA::m_Common・m_pcEditDoc・m_pShareData.

参照元 HandleCommand().

void CEditView::TranslateCommand_isearch | ( | int & | nCommand,
 |  | BOOL & | bRedraw,
 |  | LPARAM & | lparam1,
 |  | LPARAM & | lparam2,
 |  | LPARAM & | lparam3,
 |  | LPARAM & | lparam4
 | ) | [protected]

コマンドコードの変換(ISearch時)及び インクリメンタルサーチモードを抜ける判定

戻り値:
true: コマンド処理済み / false: コマンド処理継続
日付:
2004.09.14 isearch 新規作成

2005.01.10 genta 関数化, UNINDENT追加

覚え書き:
UNINDENTを通常文字として扱うのは， SHIFT+文字の後でSPACEを入力するようなケースで SHIFTの解放が遅れても文字が入らなくなることを防ぐため．

CEditView_Cmdisrch.cpp の 35 行で定義されています。

参照先 F_CHAR・F_DELETE_BACK・F_IME_CHAR・F_INDENT_SPACE・F_INDENT_TAB・F_INSTEXT・F_ISEARCH_ADD_CHAR・F_ISEARCH_ADD_STR・F_ISEARCH_DEL_BACK・F_ISEARCH_MIGEMO_NEXT・F_ISEARCH_MIGEMO_PREV・F_ISEARCH_NEXT・F_ISEARCH_PREV・F_ISEARCH_REGEXP_NEXT・F_ISEARCH_REGEXP_PREV・F_UNINDENT_SPACE・F_UNINDENT_TAB・ISearchExit()・m_nISearchMode.

参照元 HandleCommand().

void CEditView::TwoPointToRect | ( | RECT * | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CEditView.cpp の 2012 行で定義されています。

参照元 Command_INDENT()・ConvSelectedArea()・CopySelectedAllLines()・DeleteData()・DrawSelectArea()・Drop()・GetSelectedData()・IsCurrentPositionSelected().

void CEditView::ViewDiffInfo | ( | const char * | pszFile1,
 |  | const char * | pszFile2,
 |  | int | nFlgOpt
 | ) | [protected]

差分表示

引数:
pszFile1 | [in] 自ファイル名
pszFile2 | [in] 相手ファイル名
nFlgOpt | [in] 0b000000000 ||||||+--- -i ignore-case 大文字小文字同一視 |||||+---- -w ignore-all-space 空白無視 ||||+----- -b ignore-space-change 空白変更無視 |||+------ -B ignore-blank-lines 空行無視 ||+------- -t expand-tabs TAB-SPACE変換 |+-------- (編集中のファイルが旧ファイル) +--------- (DIFF差分がないときにメッセージ表示)
覚え書き:
HandleCommandからの呼び出し対応(ダイアログなし版)
作者:
MIK
日付:
2002/05/25

2005/10/28 旧Command_Diffから関数名の変更。 Command_Diff_Dialogだけでなく新Command_Diff からも呼ばれる関数。maru

CEditView_Diff.cpp の 137 行で定義されています。

参照先 _MAX_PATH・Command_Diff_Reset()・FALSE・GetExedir()・GSTR_APPNAME・CDocLineMgr::IsDiffUse()・COsVersionInfo::IsWin32NT()・CEditDoc::m_cDocLineMgr・m_hWnd・m_pcEditDoc・MYMESSAGEBOX・NULL・SplitPath_FolderAndFile()・TRUE.

参照元 Command_Diff()・Command_Diff_Dialog().

変数

CEditView::DWORD [private]

CEditView.h の 941 行で定義されています。

参照元 CEditView()・Command_BIND_WINDOW()・Command_SHOWTAB()・DispatchEvent()・Drop()・ExecCmd()・IsImeON()・SetReconvertStruct()・SetSelectionFromReonvert().

CEditView::int [private]

CEditView.h の 941 行で定義されています。

参照元 CEditView()・Command_PASTE()・ExecCmd()・MySetClipboardData().

bool CEditView::m_bActivateByMouse [private]

マウスによるアクティベート

CEditView.h の 970 行で定義されています。

参照元 DispatchEvent().

int CEditView::m_bBeginBoxSelect

CEditView.h の 356 行で定義されています。

参照元 CEditView()・Command_BEGIN_BOXSELECT()・Command_COPY()・Command_CUT()・Command_GOFILEEND()・Command_GOFILETOP()・Command_IME_CHAR()・Command_INDENT()・Command_INSTEXT()・Command_MERGE()・Command_PASTE()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SORT()・Command_UNINDENT()・Command_WordDeleteToEnd()・Command_WordDeleteToStart()・ConvSelectedArea()・CopySelectedAllLines()・CopyViewStatus()・DeleteData()・DisableSelectArea()・DispTextSelected()・DrawSelectArea()・Drop()・GetSelectedData()・CMacro::HandleFunction()・IsCurrentPositionSelected()・PrintSelectionInfoMsg()・SetReconvertStruct().

int CEditView::m_bBeginLineSelect

CEditView.h の 357 行で定義されています。

参照元 CEditView()・DisableSelectArea().

int CEditView::m_bBeginSelect

CEditView.h の 355 行で定義されています。

参照元 CEditView()・Command_CHAR()・Command_CUT()・Command_CUT_LINE()・Command_DELETE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_IME_CHAR()・Command_INSTEXT()・Command_PASTE()・Command_PASTEBOX()・Command_REDO()・Command_UNDO()・CopyViewStatus()・MoveCursor()・OnLBUTTONUP()・OnMOUSEMOVE()・OnRBUTTONUP()・OnTimer().

int CEditView::m_bBeginWordSelect

CEditView.h の 358 行で定義されています。

参照元 CEditView()・DisableSelectArea().

bool CEditView::m_bCaretShowFlag [private]

CEditView.h の 944 行で定義されています。

参照元 HideCaret_()・ShowCaret_().

BOOL CEditView::m_bCommandRunning

CEditView.h の 335 行で定義されています。

参照元 CEditView().

BOOL CEditView::m_bCurSrchKeyMark

CEditView.h の 252 行で定義されています。

参照元 CEditView()・ChangeCurRegexp()・DispLineNew()・DoGrep()・GetColorIndex()・ISearchBack().

int CEditView::m_bCurSrchLoHiCase

CEditView.h の 255 行で定義されています。

参照元 CEditView()・ChangeCurRegexp()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・DoGrep()・ISearchWordMake().

int CEditView::m_bCurSrchRegularExp

CEditView.h の 254 行で定義されています。

参照元 CEditView()・ChangeCurRegexp()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・DispLineNew()・DoGrep()・GetColorIndex()・ISearchEnter()・IsSearchString().

int CEditView::m_bCurSrchWordOnly

CEditView.h の 256 行で定義されています。

参照元 CEditView()・ChangeCurRegexp()・Command_SEARCH_NEXT()・Command_SEARCH_PREV().

BOOL CEditView::m_bDoing_UndoRedo

CEditView.h の 310 行で定義されています。

参照元 CEditView()・Command_ADDTAIL()・Command_CUT_LINE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_DUPLICATELINE()・Command_PASTEBOX()・Command_WordDeleteToEnd()・Command_WordDeleteToStart()・ConvSelectedArea()・DeleteData()・DoGrep()・DrawBracketPair()・RTrimPrevLine()・SetBracketPairPos().

BOOL CEditView::m_bDragMode

CEditView.h の 246 行で定義されています。

参照元 CEditView()・DragLeave()・Drop()・OnMOUSEMOVE().

BOOL CEditView::m_bDragSource

CEditView.h の 245 行で定義されています。

参照元 CEditView()・DragLeave()・DragOver()・Drop()・IsCurrentPositionSelected()・OnTimer().

BOOL CEditView::m_bDrawBracketPairFlag

CEditView.h の 295 行で定義されています。

参照元 CEditView()・OnKillFocus()・OnSetFocus().

BOOL CEditView::m_bDrawSelectArea

CEditView.h の 296 行で定義されています。

参照元 CEditView()・DisableSelectArea()・DrawSelectArea().

BOOL CEditView::m_bDrawSWITCH

CEditView.h の 244 行で定義されています。

参照元 AdjustScrollBars()・CEditView()・Command_1PageDown()・Command_1PageUp()・Command_INDENT()・Command_PASTEBOX()・Command_SEARCH_NEXT()・Cursor_UPDOWN()・DeleteData()・DispRuler()・DoGrepFile()・DoGrepTree()・DrawBracketPair()・DrawCaretPosInfo()・DrawSelectArea()・OnPaint()・ScrollAtV()・SetBracketPairPos().

BOOL CEditView::m_bExecutingKeyMacro

CEditView.h の 258 行で定義されています。

参照元 CEditView()・Command_EXECKEYMACRO()・PostprocessCommand_hokan().

BOOL CEditView::m_bHokan

CEditView.h の 400 行で定義されています。

参照元 CEditView()・OnKillFocus()・OnLBUTTONDOWN()・OnMOUSEMOVE()・PostprocessCommand_hokan()・PreprocessCommand_hokan()・ShowHokanMgr().

BOOL CEditView::m_bInMenuLoop

CEditView.h の 396 行で定義されています。

参照元 CEditView()・KeyWordHelpSearchDict()・ShowKeywordHelp().

bool CEditView::m_bISearchFirst [private]

CEditView.h の 967 行で定義されています。

参照元 ISearchBack()・ISearchEnter()・ISearchExec().

bool CEditView::m_bISearchFlagHistory[256] [private]

CEditView.h の 965 行で定義されています。

参照元 ISearchBack()・ISearchExec().

bool CEditView::m_bISearchWrap [private]

CEditView.h の 960 行で定義されています。

参照元 ISearchExec().

int CEditView::m_bPrevCommand

CEditView.h の 339 行で定義されています。

参照元 CEditView()・DispatchEvent().

bool CEditView::m_bRedrawRuler

CEditView.h の 351 行で定義されています。

参照元 CEditView()・OnHScroll()・SyncScrollH().

BOOL CEditView::m_bSearch

CEditView.h の 289 行で定義されています。

参照元 CEditView()・CDlgFind::OnBnClicked().

int CEditView::m_bSelectingLock

CEditView.h の 354 行で定義されています。

参照元 CEditView()・Command_BEGIN_BOXSELECT()・Command_BEGIN_SELECT()・Command_BOOKMARK_NEXT()・Command_BOOKMARK_PREV()・Command_BRACKETPAIR()・Command_CANCEL_MODE()・Command_Diff_Next()・Command_Diff_Prev()・Command_DUPLICATELINE()・Command_JUMP_SRCHSTARTPOS()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・CopyViewStatus()・DisableSelectArea().

bool CEditView::m_bUnderLineON [private]

CEditView.h の 943 行で定義されています。

CDicMgr CEditView::m_cDicMgr

CEditView.h の 397 行で定義されています。

CAutoMarkMgr* CEditView::m_cHistory

CEditView.h の 402 行で定義されています。

参照元 AddCurrentLineToHistory()・CEditView()・Command_JUMPHIST_NEXT()・Command_JUMPHIST_PREV()・~CEditView().

COLORREF CEditView::m_crBack

CEditView.h の 344 行で定義されています。

参照元 CEditView().

COLORREF CEditView::m_crCaret

CEditView.h の 343 行で定義されています。

参照元 CEditView().

CRegexKeyword* CEditView::m_cRegexKeyword

CEditView.h の 403 行で定義されています。

参照元 Create()・DispLineNew()・GetColorIndex()・OnPaint()・~CEditView().

CTipWnd CEditView::m_cTipWnd

CEditView.h の 394 行で定義されています。

参照元 Command_MENU_RBUTTON()・KeySearchCore()・OnKillFocus()・OnMOUSEMOVE()・OnTimer()・ShowKeywordHelp().

CCaretUnderLine CEditView::m_cUnderLine

CEditView.h の 346 行で定義されています。

参照元 Command_WndScrollDown()・Command_WndScrollUp()・DisableSelectArea()・MoveCursor()・OnLBUTTONUP()・CEditDoc::SetActivePane().

CBregexp CEditView::m_CurRegexp

コンパイルデータ

CEditView.h の 251 行で定義されています。

参照元 CEditView()・ChangeCurRegexp()・Command_BOOKMARK_PATTERN()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・DoGrep()・ISearchEnter()・ISearchWordMake()・IsSearchString().

DWORD CEditView::m_dwTipTimer

CEditView.h の 393 行で定義されています。

参照元 CEditView()・KeyWordHelpSearchDict()・OnKillFocus()・OnMOUSEMOVE()・ShowKeywordHelp()・CHokanMgr::ShowTip().

HMODULE CEditView::m_hAtokModule [private]

CEditView.h の 940 行で定義されています。

参照元 CEditView()・~CEditView().

HBITMAP CEditView::m_hbmpCaret

CEditView.h の 345 行で定義されています。

参照元 CEditView()・CreateEditCaret()・~CEditView().

HBITMAP CEditView::m_hbmpCompatBMP

CEditView.h の 324 行で定義されています。

参照元 CEditView()・OnSize()・~CEditView().

HBITMAP CEditView::m_hbmpCompatBMPOld

CEditView.h の 325 行で定義されています。

参照元 CEditView()・OnSize()・~CEditView().

HDC CEditView::m_hdcCompatDC

CEditView.h の 323 行で定義されています。

参照元 CEditView()・OnPaint()・~CEditView().

HFONT CEditView::m_hFont_HAN

CEditView.h の 328 行で定義されています。

参照元 CEditView()・ChooseFontHandle()・OnPaint()・SetFont()・~CEditView().

HFONT CEditView::m_hFont_HAN_FAT

CEditView.h の 329 行で定義されています。

参照元 CEditView()・ChooseFontHandle()・~CEditView().

HFONT CEditView::m_hFont_HAN_FAT_UL

CEditView.h の 331 行で定義されています。

参照元 CEditView()・ChooseFontHandle()・~CEditView().

HFONT CEditView::m_hFont_HAN_UL

CEditView.h の 330 行で定義されています。

参照元 CEditView()・ChooseFontHandle()・~CEditView().

HFONT CEditView::m_hFontOld

CEditView.h の 334 行で定義されています。

参照元 CEditView()・OnPaint()・SetCurrentColor().

HINSTANCE CEditView::m_hInstance

CEditView.h の 302 行で定義されています。

参照元 CEditView()・Command_ABOUT()・Command_COMPARE()・Command_CREATEKEYBINDLIST()・Command_CtrlCode_Dialog()・Command_Diff_Dialog()・Command_EXECCOMMAND()・Command_EXECCOMMAND_DIALOG()・Command_EXECKEYMACRO()・Command_Favorite()・Command_FILENEW()・Command_GREP()・Command_JUMP_DIALOG()・Command_LOADKEYMACRO()・Command_PROPERTY_FILE()・Command_RECKEYMACRO()・Command_REPLACE_DIALOG()・Command_SEARCH_DIALOG()・Command_TagJumpByTagsFile()・Command_TagJumpByTagsFileKeyword()・Command_TYPE_LIST()・Create()・CreateScrollBar()・DoGrep()・ExecCmd()・CMacro::HandleCommand()・OnMOUSEMOVE()・SplitBoxOnOff()・TagJumpSub().

HWND CEditView::m_hWnd

CEditView.h の 261 行で定義されています。

参照元 CEditView()・ChangeCurRegexp()・Command_ABOUT()・Command_ACTIVATE_SQLPLUS()・Command_BIND_WINDOW()・Command_CASCADE()・Command_COMPARE()・Command_CtrlCode_Dialog()・Command_Diff()・Command_Diff_Dialog()・Command_DOWN()・Command_EXECCOMMAND()・Command_EXECCOMMAND_DIALOG()・Command_EXECKEYMACRO()・Command_Favorite()・Command_FILE_REOPEN()・Command_FILENEW()・Command_GREP()・Command_HELP_CONTENTS()・Command_HELP_SEARCH()・Command_INDENT()・Command_INSFILE()・Command_INSTEXT()・Command_JUMP_DIALOG()・Command_LOADKEYMACRO()・Command_MENU_ALLFUNC()・Command_PASTE()・Command_PLSQL_COMPILE_ON_SQLPLUS()・Command_PROPERTY_FILE()・Command_PUTFILE()・Command_RECKEYMACRO()・Command_Reconvert()・Command_REPLACE()・Command_REPLACE_ALL()・Command_REPLACE_DIALOG()・Command_SAVEKEYMACRO()・Command_SEARCH_DIALOG()・Command_TAGJUMPBACK()・Command_TagJumpByTagsFile()・Command_TagJumpByTagsFileKeyword()・Command_TILE_H()・Command_TILE_V()・Command_TYPE_LIST()・Command_UNINDENT()・Command_UP()・Command_WIN_OUTPUT()・CEditDoc::Create()・DeleteData()・CMacro::HandleCommand()・ISearchWordMake()・MacroError()・CEditWnd::OnCommand()・OnPaint()・CEditWnd::PopupWinList()・CEditWnd::ProcSearchBox()・ShowHokanMgr()・SyncScrollH()・TagJumpSub()・ViewDiffInfo()・~CEditView().

HWND CEditView::m_hwndHScrollBar

CEditView.h の 313 行で定義されています。

参照元 AdjustScrollBars()・CEditView()・CreateScrollBar()・DestroyScrollBar()・OnSize().

HWND CEditView::m_hwndParent

CEditView.h の 303 行で定義されています。

参照元 Command_EXITALL()・Command_EXITALLEDITORS()・Command_FILECLOSEALL()・Command_FONT()・Command_GROUPCLOSE()・Command_MAXIMIZE_H()・Command_MAXIMIZE_V()・Command_WINCLOSE()・Create()・DispatchEvent()・DoGrep()・DragLeave()・DrawCaretPosInfo()・EditViewWndProc()・ExecCmd()・IsImeON()・OnMBUTTONDOWN()・OnRBUTTONUP()・OnXLBUTTONDOWN()・OnXRBUTTONDOWN()・SetIMECompFormPos()・ShowEditCaret().

HWND CEditView::m_hwndSizeBox

CEditView.h の 314 行で定義されています。

参照元 CEditView()・CreateScrollBar()・DestroyScrollBar()・OnSize()・SplitBoxOnOff().

HWND CEditView::m_hwndVScrollBar

CEditView.h の 311 行で定義されています。

参照元 AdjustScrollBars()・CEditView()・CreateScrollBar()・DestroyScrollBar()・OnSize().

int CEditView::m_nBracketCaretPosX_PHY

CEditView.h の 291 行で定義されています。

参照元 CEditView().

int CEditView::m_nBracketCaretPosY_PHY

CEditView.h の 292 行で定義されています。

参照元 CEditView().

int CEditView::m_nBracketPairPosX_PHY

CEditView.h の 293 行で定義されています。

参照元 CEditView().

int CEditView::m_nBracketPairPosY_PHY

CEditView.h の 294 行で定義されています。

参照元 CEditView().

int CEditView::m_nCaretHeight

CEditView.h の 342 行で定義されています。

参照元 CEditView()・SetIMECompFormPos().

int CEditView::m_nCaretPosX

CEditView.h の 282 行で定義されています。

参照元 AddCurrentLineToHistory()・CEditView()・Command_ADDTAIL()・Command_BRACKETPAIR()・Command_CHAR()・Command_COMPARE()・Command_COPYTAG()・Command_CUT_LINE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_DUPLICATELINE()・Command_GOFILEEND()・Command_GOFILETOP()・Command_IME_CHAR()・Command_LineCutToEnd()・Command_LineCutToStart()・Command_LineDeleteToEnd()・Command_LineDeleteToStart()・Command_PASTE()・Command_PASTEBOX()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL()・Command_SELECTWORD()・Command_TAGJUMP()・Command_WORDLEFT()・Command_WORDRIGHT()・CopyViewStatus()・DeleteData()・DrawRulerCaret()・InsertData_CEditView()・ISearchExec()・MoveCursorSelecting()・MoveCursorToPoint()・OnSetFocus()・CEditDoc::ReloadCurrentFile()・CEditDoc::RestorePhysPosOfAllView()・CEditDoc::SavePhysPosOfAllView()・ShowHokanMgr()・TagJumpSub().

int CEditView::m_nCaretPosX_PHY

CEditView.h の 284 行で定義されています。

参照元 CEditView()・Command_ADDTAIL()・Command_CUT_LINE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_DUPLICATELINE()・ConvSelectedArea()・DeleteData()・DrawCaretPosInfo()・HokanSearchByFile()・CEditWnd::ProcSearchBox()・RTrimPrevLine()・SmartIndent_CPP().

int CEditView::m_nCaretPosX_Prev

直前のX座標記憶用

フリーカーソルモードでない場合にカーソルを上下に移動させた場合 カーソル位置より短い行では行末にカーソルを移動するが， さらに移動を続けた場合に長い行で移動起点のX位置を復元できるように するための変数．

使い方
読み出しはCEditViewCursor_UPDOWN()のみで行う． カーソル上下移動以外でカーソル移動を行った場合には 直ちにm_nCaretPosXの値を設定する．そうしないと その直後のカーソル上下移動で移動前のX座標に戻ってしまう．
ビュー左端からのカーソル桁位置(０開始)

日付:
2004.04.09 genta 説明文追加

CEditView.h の 281 行で定義されています。

参照元 CEditView()・Command_ADDTAIL()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_GOFILEEND()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL()・Command_SELECTWORD()・Command_WORDLEFT()・Command_WORDRIGHT()・ConvSelectedArea()・CopyViewStatus()・DisableSelectArea()・CEditDoc::InitAllView()・MoveCursorSelecting()・MoveCursorToPoint()・OnSetFocus()・CEditDoc::RestorePhysPosOfAllView().

int CEditView::m_nCaretPosY

CEditView.h の 283 行で定義されています。

参照元 AddCurrentLineToHistory()・CEditView()・Command_1PageDown()・Command_1PageUp()・Command_ADDTAIL()・Command_BRACKETPAIR()・Command_CHAR()・Command_COMPARE()・Command_COPY()・Command_COPYTAG()・Command_CURLINECENTER()・Command_CUT_LINE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_DUPLICATELINE()・Command_GOFILEEND()・Command_GOLINEEND()・Command_GOLINETOP()・Command_IME_CHAR()・Command_LEFT()・Command_LineCutToEnd()・Command_LineCutToStart()・Command_LineDeleteToEnd()・Command_LineDeleteToStart()・Command_MERGE()・Command_PASTEBOX()・Command_RIGHT()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTWORD()・Command_SORT()・Command_TAGJUMP()・Command_TRIM()・Command_WndScrollDown()・Command_WndScrollUp()・Command_WORDLEFT()・Command_WORDRIGHT()・CopyViewStatus()・DeleteData()・InsertData_CEditView()・ISearchExec()・MoveCursorSelecting()・CDlgFuncList::OnBnClicked()・OnSetFocus()・CEditDoc::ReloadCurrentFile()・CEditDoc::SavePhysPosOfAllView()・ShowHokanMgr()・TagJumpSub().

int CEditView::m_nCaretPosY_PHY

CEditView.h の 285 行で定義されています。

参照元 CEditView()・Command_ADDTAIL()・Command_BOOKMARK_NEXT()・Command_BOOKMARK_PREV()・Command_CUT_LINE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_Diff_Next()・Command_Diff_Prev()・Command_DUPLICATELINE()・Command_GOLINETOP()・Command_GONEXTPARAGRAPH()・Command_GOPREVPARAGRAPH()・ConvSelectedArea()・DeleteData()・CMacro::HandleFunction()・HokanSearchByFile()・CEditWnd::ProcSearchBox()・RTrimPrevLine()・SmartIndent_CPP().

int CEditView::m_nCaretWidth

CEditView.h の 341 行で定義されています。

参照元 CEditView()・DrawRulerCaret()・KeyWordHelpSearchDict()・ShowEditCaret().

int CEditView::m_nCharHeight

CEditView.h の 391 行で定義されています。

参照元 CEditView()・CopyViewStatus()・DispLineNew()・DispLineNumber()・DispText()・DispTextSelected()・DispVerticalLines()・DrawSelectArea()・MoveCursorToPoint()・OnMOUSEMOVE()・OnPaint()・OnRBUTTONDOWN()・OnSize()・OnTimer()・ScrollAtV()・SetFont()・SetIMECompFormPos()・ShowHokanMgr().

int CEditView::m_nCharSize

CEditView.h の 290 行で定義されています。

参照元 SearchBracket().

int CEditView::m_nCharWidth

CEditView.h の 390 行で定義されています。

参照元 CEditView()・CopyViewStatus()・DetectWidthOfLineNumberArea()・DispLineNew()・DispLineNumber()・DispText()・DispTextSelected()・DispVerticalLines()・DrawRulerCaret()・DrawSelectArea()・MoveCursorProperly()・MoveCursorToPoint()・OnMOUSEMOVE()・OnPaint()・OnRBUTTONDOWN()・OnSize()・SetFont()・ShowHokanMgr().

int CEditView::m_nISearchDirection [private]

CEditView.h の 958 行で定義されています。

参照元 ISearchEnter()・ISearchExec()・ISearchExit()・ISearchSetStatusMsg()・IsISearchEnabled()・OnMOUSEMOVE().

int CEditView::m_nISearchHistoryCount [private]

CEditView.h の 966 行で定義されています。

参照元 ISearchBack()・ISearchExec()・ISearchExit()・ISearchSetStatusMsg().

int CEditView::m_nISearchMode [private]

CEditView.h の 959 行で定義されています。

参照元 ISearchEnter()・ISearchExec()・ISearchExit()・ISearchSetStatusMsg()・ISearchWordMake()・IsISearchEnabled()・OnLBUTTONDOWN()・OnMOUSEMOVE()・TranslateCommand_isearch().

int CEditView::m_nISearchX1History[256] [private]

CEditView.h の 961 行で定義されています。

参照元 ISearchBack()・ISearchExec().

int CEditView::m_nISearchX2History[256] [private]

CEditView.h の 963 行で定義されています。

参照元 ISearchBack()・ISearchExec().

int CEditView::m_nISearchY1History[256] [private]

CEditView.h の 962 行で定義されています。

参照元 ISearchBack()・ISearchExec().

int CEditView::m_nISearchY2History[256] [private]

CEditView.h の 964 行で定義されています。

参照元 ISearchBack()・ISearchExec().

int CEditView::m_nLastReconvIndex [private]

CEditView.h の 937 行で定義されています。

参照元 SetReconvertStruct()・SetSelectionFromReonvert().

int CEditView::m_nLastReconvLine [private]

CEditView.h の 936 行で定義されています。

参照元 SetReconvertStruct()・SetSelectionFromReonvert().

int CEditView::m_nMouseRollPosXOld

CEditView.h の 378 行で定義されています。

参照元 CopyViewStatus()・OnTimer().

int CEditView::m_nMouseRollPosYOld

CEditView.h の 379 行で定義されています。

参照元 CopyViewStatus()・OnTimer().

int CEditView::m_nMyIndex

CEditView.h の 337 行で定義されています。

参照元 CEditView()・Create()・DispatchEvent()・ShowEditCaret()・SyncScrollH()・SyncScrollV().

int CEditView::m_nOldCaretPosX

CEditView.h の 349 行で定義されています。

参照元 CEditView()・DrawRulerCaret().

int CEditView::m_nOldCaretWidth

CEditView.h の 350 行で定義されています。

参照元 CEditView()・DrawRulerCaret().

int CEditView::m_nOldUnderLineY

CEditView.h の 347 行で定義されています。

int CEditView::m_nSelectColmBgnFrom

CEditView.h の 363 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursorTEST()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・CopyViewStatus()・Drop()・GetCurrentTextForSearch()・OnMOUSEMOVE().

int CEditView::m_nSelectColmBgnTo

CEditView.h の 365 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursorTEST()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・CopyViewStatus()・Drop()・GetCurrentTextForSearch()・OnMOUSEMOVE().

int CEditView::m_nSelectColmFrom

CEditView.h の 367 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursor()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_INDENT()・Command_INSFILE()・Command_MERGE()・Command_PASTE()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SORT()・Command_TRIM()・Command_WordDeleteToEnd()・ConvSelectedArea()・CopySelectedAllLines()・CopyViewStatus()・DeleteData()・DisableSelectArea()・DispTextSelected()・DrawSelectArea()・Drop()・ExecCmd()・GetCurrentTextForSearch()・GetSelectedData()・IsCurrentPositionSelected()・ISearchExec()・OnLBUTTONUP()・OnMOUSEMOVE()・PrintSelectionInfoMsg()・SetReconvertStruct()・SetSelectionFromReonvert().

int CEditView::m_nSelectColmFromOld

CEditView.h の 375 行で定義されています。

参照元 CEditView()・ChangeSelectAreaByCurrentCursor()・CopyViewStatus()・DisableSelectArea()・DrawSelectArea().

int CEditView::m_nSelectColmTo

CEditView.h の 369 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursor()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_INDENT()・Command_MERGE()・Command_PASTE()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SORT()・Command_TRIM()・Command_UNINDENT()・Command_WordDeleteToStart()・ConvSelectedArea()・CopySelectedAllLines()・CopyViewStatus()・DeleteData()・DisableSelectArea()・DispTextSelected()・DrawSelectArea()・Drop()・GetCurrentTextForSearch()・GetSelectedData()・IsCurrentPositionSelected()・ISearchExec()・OnLBUTTONUP()・OnMOUSEMOVE()・PrintSelectionInfoMsg()・SetReconvertStruct()・SetSelectionFromReonvert().

int CEditView::m_nSelectColmToOld

CEditView.h の 377 行で定義されています。

参照元 CEditView()・ChangeSelectAreaByCurrentCursor()・CopyViewStatus()・DisableSelectArea()・DrawSelectArea().

int CEditView::m_nSelectLineBgnFrom

CEditView.h の 362 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursorTEST()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・CopyViewStatus()・Drop()・GetCurrentTextForSearch()・OnMOUSEMOVE().

int CEditView::m_nSelectLineBgnTo

CEditView.h の 364 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursorTEST()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・CopyViewStatus()・Drop()・GetCurrentTextForSearch()・OnMOUSEMOVE().

int CEditView::m_nSelectLineFrom

CEditView.h の 366 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursor()・Command_BOOKMARK_SET()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_INDENT()・Command_INDENT_TAB()・Command_INSFILE()・Command_MERGE()・Command_PASTE()・Command_REPLACE_DIALOG()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SORT()・Command_TRIM()・Command_UNINDENT()・Command_WordDeleteToEnd()・CopyViewStatus()・DeleteData()・DisableSelectArea()・DispTextSelected()・DrawSelectArea()・GetSelectedData()・ISearchExec()・OnLBUTTONUP()・OnMOUSEMOVE().

int CEditView::m_nSelectLineFromOld

CEditView.h の 374 行で定義されています。

参照元 CEditView()・ChangeSelectAreaByCurrentCursor()・CopyViewStatus()・DisableSelectArea()・DrawSelectArea().

int CEditView::m_nSelectLineTo

CEditView.h の 368 行で定義されています。

参照元 BeginSelectArea()・CEditView()・ChangeSelectAreaByCurrentCursor()・Command_BOOKMARK_SET()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_INDENT()・Command_INDENT_TAB()・Command_MERGE()・Command_PASTE()・Command_REPLACE_DIALOG()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SORT()・Command_TRIM()・Command_UNINDENT()・Command_WordDeleteToStart()・ConvSelectedArea()・CopySelectedAllLines()・CopyViewStatus()・DeleteData()・DisableSelectArea()・DispTextSelected()・DrawSelectArea()・Drop()・GetCurrentTextForSearch()・GetSelectedData()・IsCurrentPositionSelected()・ISearchExec()・OnLBUTTONUP()・OnMOUSEMOVE()・PrintSelectionInfoMsg()・SetReconvertStruct()・SetSelectionFromReonvert().

int CEditView::m_nSelectLineToOld

CEditView.h の 376 行で定義されています。

参照元 CEditView()・ChangeSelectAreaByCurrentCursor()・CopyViewStatus()・DisableSelectArea()・DrawSelectArea().

int CEditView::m_nSrchStartPosX_PHY

CEditView.h の 287 行で定義されています。

参照元 CEditView()・Command_JUMP_SRCHSTARTPOS()・CDlgFind::OnBnClicked()・CEditWnd::ProcSearchBox().

int CEditView::m_nSrchStartPosY_PHY

CEditView.h の 288 行で定義されています。

参照元 CEditView()・Command_JUMP_SRCHSTARTPOS()・CDlgFind::OnBnClicked()・CEditWnd::ProcSearchBox().

int CEditView::m_nTopYohaku

CEditView.h の 384 行で定義されています。

参照元 CEditView()・Create()・DrawRulerCaret()・OnChangeSetting()・OnPaint().

int CEditView::m_nViewAlignLeft

CEditView.h の 381 行で定義されています。

参照元 CEditView()・CopyViewStatus()・DispEOF()・DispLineNew()・DispText()・DispTextSelected()・DispVerticalLines()・DrawRulerCaret()・DrawSelectArea()・OnPaint()・OnSize()・ShowHokanMgr().

int CEditView::m_nViewAlignLeftCols

CEditView.h の 382 行で定義されています。

参照元 CEditView()・CopyViewStatus()・DetectWidthOfLineNumberArea()・DispLineNumber().

int CEditView::m_nViewAlignTop

CEditView.h の 383 行で定義されています。

参照元 CEditView()・CopyViewStatus()・Create()・DispLineNew()・DispText()・DispVerticalLines()・DrawRulerCaret()・DrawSelectArea()・OnPaint()・OnSize()・ShowHokanMgr().

int CEditView::m_nViewColNum

CEditView.h の 387 行で定義されています。

参照元 AdjustScrollBars()・CEditView()・DispTextSelected()・DrawRulerCaret()・DrawSelectArea()・DrawSelectAreaLine()・GetWrapMode()・MoveCursor()・OnHScroll()・OnSize()・ScrollAtH()・SetFont().

int CEditView::m_nViewCx

CEditView.h の 385 行で定義されています。

参照元 CEditView()・DispLineNew()・DispText()・DispTextSelected()・DrawSelectArea()・OnPaint()・OnSize()・SetFont().

int CEditView::m_nViewCy

CEditView.h の 386 行で定義されています。

参照元 CEditView()・CopySelectedAllLines()・OnSize()・ScrollAtV()・SetFont().

int CEditView::m_nViewLeftCol

CEditView.h の 263 行で定義されています。

参照元 AdjustScrollBars()・CEditView()・Command_WRAPWINDOWWIDTH()・CopyViewStatus()・DispTextSelected()・DispVerticalLines()・DrawRulerCaret()・DrawSelectArea()・DrawSelectAreaLine()・MoveCursor()・MoveCursorToPoint()・OnHScroll()・OnMOUSEMOVE()・OnPaint()・OnRBUTTONDOWN()・CEditDoc::ReloadCurrentFile()・CEditDoc::SetFileInfo()・ShowHokanMgr()・SyncScrollH().

int CEditView::m_nViewRowNum

CEditView.h の 388 行で定義されています。

参照元 AdjustScrollBars()・CEditView()・Command_1PageDown()・Command_1PageUp()・Command_CURLINECENTER()・Command_HalfPageDown()・Command_HalfPageUp()・Command_WndScrollDown()・Command_WndScrollUp()・DispLineNew()・DrawSelectArea()・MoveCursor()・OnMOUSEWHEEL()・OnSize()・OnVScroll()・ScrollAtV()・SearchBracketForward()・SearchBracketForward2()・SetFont().

int CEditView::m_nViewTopLine

CEditView.h の 262 行で定義されています。

参照元 AdjustScrollBars()・CEditView()・Command_1PageDown()・Command_1PageUp()・Command_CURLINECENTER()・Command_WndScrollDown()・Command_WndScrollUp()・CopyViewStatus()・DispLineNew()・DispVerticalLines()・DrawSelectArea()・OnPaint()・OnVScroll()・CEditDoc::ReloadCurrentFile()・SearchBracketBackward()・SearchBracketBackward2()・SearchBracketForward()・SearchBracketForward2()・CEditDoc::SetFileInfo()・ShowHokanMgr().

int CEditView::m_nVScrollRate

CEditView.h の 312 行で定義されています。

参照元 AdjustScrollBars()・CEditView().

CDropTarget* CEditView::m_pcDropTarget

CEditView.h の 243 行で定義されています。

参照元 CEditView()・DragLeave()・DragOver()・Drop()・~CEditView().

CEditDoc* CEditView::m_pcEditDoc

CEditView.h の 308 行で定義されています。

参照元 AddCurrentLineToHistory()・CMacro::AddLParam()・AdjustScrollBars()・CaretUnderLineOFF()・CaretUnderLineON()・Command_ADDTAIL()・Command_BASE64DECODE()・Command_BIND_WINDOW()・Command_BOOKMARK_NEXT()・Command_BOOKMARK_PATTERN()・Command_BOOKMARK_PREV()・Command_BOOKMARK_RESET()・Command_BOOKMARK_SET()・Command_BROWSE()・Command_CHAR()・Command_CHGMOD_EOL()・Command_COMPARE()・Command_COPY()・Command_COPYFILENAME()・Command_COPYPATH()・Command_COPYTAG()・Command_CREATEKEYBINDLIST()・Command_CtrlCode_Dialog()・Command_CUSTMENU()・Command_CUT()・Command_CUT_LINE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_Diff()・Command_Diff_Dialog()・Command_Diff_Next()・Command_Diff_Prev()・Command_Diff_Reset()・Command_DUPLICATELINE()・Command_EXECKEYMACRO()・Command_EXTHELP1()・Command_EXTHTMLHELP()・Command_Favorite()・Command_FILE_REOPEN()・Command_FILECLOSE()・Command_FILECLOSE_OPEN()・Command_FILEOPEN()・Command_FILESAVE()・Command_FILESAVEAS()・Command_FILESAVEAS_DIALOG()・Command_FONT()・Command_FUNCLIST()・Command_GOFILEEND()・Command_GOLINEEND()・Command_GOLINETOP()・Command_GONEXTPARAGRAPH()・Command_GOPREVPARAGRAPH()・Command_GREP()・Command_HOKAN()・Command_IME_CHAR()・Command_INDENT()・Command_INDENT_TAB()・Command_INSFILE()・Command_INSTEXT()・Command_JUMP_DIALOG()・Command_JUMP_SRCHSTARTPOS()・Command_LineCutToEnd()・Command_LineCutToStart()・Command_LineDeleteToEnd()・Command_LineDeleteToStart()・Command_MENU_ALLFUNC()・Command_MERGE()・Command_NEXTGROUP()・Command_OPTION()・Command_OPTION_TYPE()・Command_PASTE()・Command_PASTEBOX()・Command_PLSQL_COMPILE_ON_SQLPLUS()・Command_PREVGROUP()・Command_PRINT()・Command_PRINT_PAGESETUP()・Command_PRINT_PREVIEW()・Command_PROPERTY_FILE()・Command_PUTFILE()・Command_READONLY()・Command_RECKEYMACRO()・Command_REDO()・Command_REPLACE()・Command_REPLACE_ALL()・Command_REPLACE_DIALOG()・Command_SAVEKEYMACRO()・Command_SEARCH_BOX()・Command_SEARCH_DIALOG()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SELECTALL()・Command_SELECTWORD()・Command_SHOWFUNCKEY()・Command_SHOWSTATUSBAR()・Command_SHOWTAB()・Command_SHOWTOOLBAR()・Command_SORT()・Command_SPLIT_H()・Command_SPLIT_V()・Command_SPLIT_VH()・Command_TAB_JOINTNEXT()・Command_TAB_JOINTPREV()・Command_TAB_MOVELEFT()・Command_TAB_MOVERIGHT()・Command_TAB_SEPARATE()・Command_TAGJUMP()・Command_TAGJUMPBACK()・Command_TagJumpByTagsFile()・Command_TagJumpByTagsFileKeyword()・Command_TagsMake()・Command_TRACEOUT()・Command_TRIM()・Command_TYPE_LIST()・Command_UNDO()・Command_UNINDENT()・Command_UUDECODE()・Command_WINLIST()・Command_WINTOPMOST()・Command_WndScrollDown()・Command_WordDeleteToEnd()・Command_WordDeleteToStart()・Command_WORDLEFT()・Command_WORDRIGHT()・Command_WRAPWINDOWWIDTH()・ConvMemory()・ConvSelectedArea()・Create()・CreatePopUpMenu_R()・Cursor_UPDOWN()・DeleteData()・DeleteData2()・DetectWidthOfLineNumberArea()・DetectWidthOfLineNumberArea_calculate()・DispatchEvent()・DispLineNew()・DispLineNumber()・DispRuler()・DispText()・DispTextSelected()・DispVerticalLines()・DoGrep()・DragEnter()・DrawBracketPair()・DrawCaretPosInfo()・DrawRulerCaret()・DrawSelectArea()・DrawSelectAreaLine()・Drop()・ExecCmd()・GetAdjustCursorPos()・GetColorIndex()・GetCurrentTextForSearch()・GetCurrentWord()・GetLeftWord()・GetSelectedData()・GetWrapMode()・CMacro::HandleCommand()・HandleCommand()・CMacro::HandleFunction()・HokanSearchByFile()・InsertData_CEditView()・IsCurrentPositionURL()・ISearchExec()・IsInsMode()・KeySearchCore()・KeyWordHelpSearchDict()・LineColmnToIndex()・LineColmnToIndex2()・LineIndexToColmn()・MakeDiffTmpFile()・MoveCursor()・MoveCursorProperly()・MoveCursorToPoint()・CDlgReplace::OnBnClicked()・OnChangeSetting()・CDlgFuncList::OnDestroy()・OnHScroll()・CDlgFuncList::OnInitDialog()・OnKillFocus()・OnLBUTTONDBLCLK()・OnLBUTTONDOWN()・OnMOUSEMOVE()・OnPaint()・OnRBUTTONDOWN()・OnSize()・OnVScroll()・OPEN_ExtFromtoExt()・PostprocessCommand_hokan()・PreprocessCommand_hokan()・PrintSelectionInfoMsg()・ReplaceData_CEditView()・RTrimPrevLine()・ScrollAtH()・ScrollAtV()・SearchBracket()・SearchBracketBackward()・SearchBracketBackward2()・SearchBracketForward()・SearchBracketForward2()・SendStatusMessage()・SetBracketPairPos()・SetCurrentColor()・SetFont()・SetInsMode()・SetParentCaption()・SetReconvertStruct()・SetSelectionFromReonvert()・ShowEditCaret()・ShowHokanMgr()・ShowKeywordHelp()・SmartIndent_CPP()・SyncScrollH()・SyncScrollV()・TagJumpSub()・TranslateCommand_grep()・ViewDiffInfo().

CMigemo* CEditView::m_pcmigemo [private]

CEditView.h の 948 行で定義されています。

参照元 ISearchEnter()・ISearchWordMake().

COpeBlk* CEditView::m_pcOpeBlk

CEditView.h の 309 行で定義されています。

参照元 CEditView()・Command_ADDTAIL()・Command_CUT_LINE()・Command_DELETE_BACK()・Command_DELETE_LINE()・Command_DUPLICATELINE()・Command_WordDeleteToEnd()・Command_WordDeleteToStart()・ConvSelectedArea()・DeleteData()・DoGrep()・Drop()・RTrimPrevLine().

CSplitBoxWnd* CEditView::m_pcsbwHSplitBox

CEditView.h の 316 行で定義されています。

参照元 CEditView()・OnSize()・SplitBoxOnOff().

CSplitBoxWnd* CEditView::m_pcsbwVSplitBox

CEditView.h の 315 行で定義されています。

参照元 CEditView().

int CEditView::m_pnDx [static]

CEditView.h の 327 行で定義されています。

参照元 DispEOF()・DispLineNew()・DispText()・SetFont().

POINT CEditView::m_poTipCurPos

CEditView.h の 395 行で定義されています。

参照元 OnMOUSEMOVE().

DLLSHAREDATA* CEditView::m_pShareData

CEditView.h の 305 行で定義されています。

参照元 CMacro::AddLParam()・CEditView()・ChangeCurRegexp()・Command_BASE64DECODE()・Command_BEGIN_BOXSELECT()・Command_BIND_WINDOW()・Command_BOOKMARK_PATTERN()・Command_COMPARE()・Command_COPYLINESASPASSAGE()・Command_CREATEKEYBINDLIST()・Command_CUSTMENU()・Command_CUT()・Command_CUT_LINE()・Command_DELETE_LINE()・Command_DOWN()・Command_EXECKEYMACRO()・Command_FONT()・Command_GREP()・Command_GREP_DIALOG()・Command_GROUPCLOSE()・Command_HOKAN()・Command_IME_CHAR()・Command_LOADKEYMACRO()・Command_MINIMIZE_ALL()・Command_PASTE()・Command_PASTEBOX()・Command_RECKEYMACRO()・Command_REPLACE()・Command_REPLACE_ALL()・Command_REPLACE_DIALOG()・Command_SAVEKEYMACRO()・Command_SEARCH_CLEARMARK()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・Command_SET_QUOTESTRING()・Command_SHOWFUNCKEY()・Command_SHOWSTATUSBAR()・Command_SHOWTAB()・Command_SHOWTOOLBAR()・Command_TAGJUMPBACK()・Command_ToggleKeySearch()・Command_UP()・Command_UUDECODE()・Command_WIN_OUTPUT()・Command_WORDLEFT()・Command_WORDRIGHT()・CopySelectedAllLines()・Create()・CreatePopUpMenu_R()・CreateScrollBar()・DispVerticalLines()・DoGrep()・DragEnter()・GetCurrentTextForSearch()・GetCurrentTextForSearchDlg()・CMacro::HandleCommand()・ISearchEnter()・KeyWordHelpSearchDict()・MakeDiffTmpFile()・OnChangeSetting()・OnMBUTTONDOWN()・OnMOUSEMOVE()・OnPaint()・OnRBUTTONUP()・OnTimer()・OnVScroll()・OnXLBUTTONDOWN()・OnXRBUTTONDOWN()・PostprocessCommand_hokan()・SetIMECompFormFont()・ShowHokanMgr()・SyncScrollH()・SyncScrollV()・TagJumpSub()・TranslateCommand_grep().

char* CEditView::m_pszAppName

CEditView.h の 301 行で定義されています。

参照元 CEditView().

char* CEditView::m_pszMigemoWord [private]

CEditView.h の 957 行で定義されています。

参照元 ISearchWordMake().

char CEditView::m_szCurSrchKey[_MAX_PATH]

CEditView.h の 253 行で定義されています。

参照元 CEditView()・ChangeCurRegexp()・Command_SEARCH_CLEARMARK()・Command_SEARCH_NEXT()・Command_SEARCH_PREV()・DoGrep()・ISearchBack()・ISearchExec()・ISearchExit()・ISearchSetStatusMsg()・ISearchWordMake().

UINT CEditView::m_uATOKReconvertMsg [private]

CEditView.h の 933 行で定義されています。

参照元 CEditView().

UINT CEditView::m_uMSIMEReconvertMsg [private]

CEditView.h の 932 行で定義されています。

参照元 CEditView().

UINT CEditView::m_uWM_MSIME_RECONVERTREQUEST [private]

CEditView.h の 934 行で定義されています。

参照元 CEditView()・Command_Reconvert().

CEditView::PRECONVERTSTRING [private]

CEditView.h の 941 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CEditView.h
  • CEditView.cpp
  • CEditView_Cmdgrep.cpp
  • CEditView_CmdHokan.cpp
  • CEditView_Cmdisrch.cpp
  • CEditView_Command.cpp
  • CEditView_Command_New.cpp
  • CEditView_Diff.cpp
  • CEditView_New.cpp
  • CEditView_New2.cpp
Sakura-Editorに対してSat Oct 27 02:35:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditView メンバ一覧

これは全メンバの一覧です。CEditView継承メンバも含んでいます。

AddCurrentLineToHistory(void) | CEditView | [protected]
AddToCmdArr(const char *) | CEditView | [protected]
AdjustScrollBars(void) | CEditView |
AnalyzeDiffInfo(const char *, int) | CEditView | [protected]
BeginSelectArea(void) | CEditView | [protected]
BOOL(WINAPI *AT_ImmSetReconvertString)(HIMC | CEditView | [private]
CaretUnderLineOFF(BOOL) | CEditView |
CaretUnderLineON(BOOL) | CEditView |
CEditView() | CEditView |
ChangeCurRegexp(void) | CEditView | [protected]
ChangeSelectAreaByCurrentCursor(int, int) | CEditView | [protected]
ChangeSelectAreaByCurrentCursorTEST(int, int, int &, int &, int &, int &) | CEditView | [protected]
ChooseFontHandle(BOOL bFat, BOOL bUnderLine) | CEditView | [protected]
Command_1PageDown(int) | CEditView | [protected]
Command_1PageUp(int) | CEditView | [protected]
Command_ABOUT(void) | CEditView | [protected]
Command_ACTIVATE_SQLPLUS(void) | CEditView | [protected]
Command_ADDTAIL(const char *, int) | CEditView | [protected]
Command_BASE64DECODE(void) | CEditView | [protected]
Command_BEGIN_BOXSELECT(void) | CEditView | [protected]
Command_BEGIN_SELECT(void) | CEditView | [protected]
Command_BIND_WINDOW(void) | CEditView | [protected]
Command_BOOKMARK_NEXT(void) | CEditView | [protected]
Command_BOOKMARK_PATTERN(void) | CEditView | [protected]
Command_BOOKMARK_PREV(void) | CEditView | [protected]
Command_BOOKMARK_RESET(void) | CEditView | [protected]
Command_BOOKMARK_SET(void) | CEditView | [protected]
Command_BRACKETPAIR(void) | CEditView | [protected]
Command_BROWSE(void) | CEditView | [protected]
Command_CANCEL_MODE(void) | CEditView | [protected]
Command_CASCADE(void) | CEditView | [protected]
Command_CHAR(char) | CEditView | [protected]
Command_CHGMOD_EOL(enumEOLType) | CEditView | [protected]
Command_CHGMOD_INS(void) | CEditView | [protected]
Command_CODECNV_AUTO2SJIS(void) | CEditView | [protected]
Command_CODECNV_EMAIL(void) | CEditView | [protected]
Command_CODECNV_EUC2SJIS(void) | CEditView | [protected]
Command_CODECNV_SJIS2EUC(void) | CEditView | [protected]
Command_CODECNV_SJIS2JIS(void) | CEditView | [protected]
Command_CODECNV_SJIS2UTF7(void) | CEditView | [protected]
Command_CODECNV_SJIS2UTF8(void) | CEditView | [protected]
Command_CODECNV_UNICODE2SJIS(void) | CEditView | [protected]
Command_CODECNV_UNICODEBE2SJIS(void) | CEditView | [protected]
Command_CODECNV_UTF72SJIS(void) | CEditView | [protected]
Command_CODECNV_UTF82SJIS(void) | CEditView | [protected]
Command_COMPARE(void) | CEditView | [protected]
Command_COPY(int, BOOL bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN) | CEditView | [protected]
Command_COPYFILENAME(void) | CEditView | [protected]
Command_COPYLINES(void) | CEditView | [protected]
Command_COPYLINESASPASSAGE(void) | CEditView | [protected]
Command_COPYLINESWITHLINENUMBER(void) | CEditView | [protected]
Command_COPYPATH(void) | CEditView | [protected]
Command_COPYTAG(void) | CEditView | [protected]
Command_CREATEKEYBINDLIST(void) | CEditView | [protected]
Command_CtrlCode_Dialog(void) | CEditView | [protected]
Command_CURLINECENTER(void) | CEditView | [protected]
Command_CUSTMENU(int) | CEditView | [protected]
Command_CUT(void) | CEditView | [protected]
Command_CUT_LINE(void) | CEditView | [protected]
Command_DELETE(void) | CEditView | [protected]
Command_DELETE_BACK(void) | CEditView | [protected]
Command_DELETE_LINE(void) | CEditView | [protected]
Command_Diff(const char *, int) | CEditView | [protected]
Command_Diff_Dialog(void) | CEditView | [protected]
Command_Diff_Next(void) | CEditView | [protected]
Command_Diff_Prev(void) | CEditView | [protected]
Command_Diff_Reset(void) | CEditView | [protected]
Command_DOWN(int, BOOL) | CEditView | [protected]
Command_DOWN2(int) | CEditView | [protected]
Command_DUPLICATELINE(void) | CEditView | [protected]
Command_EXECCOMMAND(const char *cmd, const int nFlgOpt) | CEditView | [protected]
Command_EXECCOMMAND_DIALOG(void) | CEditView | [protected]
Command_EXECKEYMACRO(void) | CEditView | [protected]
Command_EXITALL(void) | CEditView | [protected]
Command_EXITALLEDITORS(void) | CEditView | [protected]
Command_EXTHELP1(void) | CEditView | [protected]
Command_EXTHTMLHELP(const char *helpfile=NULL, const char *kwd=NULL) | CEditView | [protected]
Command_Favorite(void) | CEditView | [protected]
Command_FILE_REOPEN(int, int) | CEditView | [protected]
Command_FILECLOSE(void) | CEditView | [protected]
Command_FILECLOSE_OPEN(const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE) | CEditView | [protected]
Command_FILECLOSEALL(void) | CEditView | [protected]
Command_FILENEW(void) | CEditView | [protected]
Command_FILEOPEN(const char *filename=NULL, int nCharCode=CODE_AUTODETECT, BOOL bReadOnly=FALSE) | CEditView | [protected]
Command_FILESAVE(bool warnbeep=true, bool askname=true) | CEditView | [protected]
Command_FILESAVEALL(void) | CEditView | [protected]
Command_FILESAVEAS(const char *filename) | CEditView | [protected]
Command_FILESAVEAS_DIALOG() | CEditView | [protected]
Command_FONT(void) | CEditView | [protected]
Command_FUNCLIST(int, int=OUTLINE_DEFAULT) | CEditView | [protected]
Command_GOFILEEND(int) | CEditView | [protected]
Command_GOFILETOP(int) | CEditView | [protected]
Command_GOLINEEND(int, int) | CEditView | [protected]
Command_GOLINETOP(int bSelect, int lparam) | CEditView | [protected]
Command_GONEXTPARAGRAPH(int bSelect) | CEditView | [protected]
Command_GOPREVPARAGRAPH(int bSelect) | CEditView | [protected]
Command_GREP(void) | CEditView | [protected]
Command_GREP_DIALOG(void) | CEditView | [protected]
Command_GROUPCLOSE(void) | CEditView | [protected]
Command_HalfPageDown(int) | CEditView | [protected]
Command_HalfPageUp(int) | CEditView | [protected]
Command_HANKATATOZENKAKUHIRA(void) | CEditView | [protected]
Command_HANKATATOZENKAKUKATA(void) | CEditView | [protected]
Command_HELP_CONTENTS(void) | CEditView | [protected]
Command_HELP_SEARCH(void) | CEditView | [protected]
Command_HOKAN(void) | CEditView | [protected]
Command_IME_CHAR(WORD) | CEditView | [protected]
Command_INDENT(char cChar) | CEditView | [protected]
Command_INDENT(const char *, int, BOOL=FALSE) | CEditView | [protected]
Command_INDENT_TAB(void) | CEditView | [protected]
Command_INS_DATE(void) | CEditView | [protected]
Command_INS_TIME(void) | CEditView | [protected]
Command_INSFILE(const char *, int, int) | CEditView | [protected]
Command_INSTEXT(BOOL, const char *, int, BOOL) | CEditView | [protected]
Command_JUMP(void) | CEditView | [protected]
Command_JUMP_DIALOG(void) | CEditView | [protected]
Command_JUMP_SRCHSTARTPOS(void) | CEditView | [protected]
Command_JUMPHIST_NEXT(void) | CEditView | [protected]
Command_JUMPHIST_PREV(void) | CEditView | [protected]
Command_JUMPHIST_SET(void) | CEditView | [protected]
Command_LEFT(int, BOOL) | CEditView | [protected]
Command_LineCutToEnd(void) | CEditView | [protected]
Command_LineCutToStart(void) | CEditView | [protected]
Command_LineDeleteToEnd(void) | CEditView | [protected]
Command_LineDeleteToStart(void) | CEditView | [protected]
Command_LOADKEYMACRO(void) | CEditView | [protected]
Command_MAXIMIZE_H(void) | CEditView | [protected]
Command_MAXIMIZE_V(void) | CEditView | [protected]
Command_MENU_ALLFUNC(void) | CEditView | [protected]
Command_MENU_RBUTTON(void) | CEditView | [protected]
Command_MERGE(void) | CEditView | [protected]
Command_MINIMIZE_ALL(void) | CEditView | [protected]
Command_NEXTGROUP(void) | CEditView | [protected]
Command_OPEN_CCPP(BOOL bCheckOnly, BOOL bBeepWhenMiss) | CEditView | [protected]
Command_OPEN_HfromtoC(BOOL) | CEditView | [protected]
Command_OPEN_HHPP(BOOL bCheckOnly, BOOL bBeepWhenMiss) | CEditView | [protected]
Command_OPTION(void) | CEditView | [protected]
Command_OPTION_TYPE(void) | CEditView | [protected]
Command_PASTE(void) | CEditView | [protected]
Command_PASTEBOX(void) | CEditView | [protected]
Command_PASTEBOX(const char *szPaste, int nPasteSize) | CEditView | [protected]
Command_PLSQL_COMPILE_ON_SQLPLUS(void) | CEditView | [protected]
Command_PREVGROUP(void) | CEditView | [protected]
Command_PRINT(void) | CEditView | [protected]
Command_PRINT_PAGESETUP(void) | CEditView | [protected]
Command_PRINT_PREVIEW(void) | CEditView | [protected]
Command_PROPERTY_FILE(void) | CEditView | [protected]
Command_PUTFILE(const char *, int, int) | CEditView | [protected]
Command_READONLY(void) | CEditView | [protected]
Command_RECKEYMACRO(void) | CEditView | [protected]
Command_Reconvert(void) | CEditView | [protected]
Command_REDO(void) | CEditView | [protected]
Command_REDRAW(void) | CEditView | [protected]
Command_REPLACE(HWND hwndParent) | CEditView | [protected]
Command_REPLACE_ALL() | CEditView | [protected]
Command_REPLACE_DIALOG(void) | CEditView | [protected]
Command_RIGHT(int, int, BOOL) | CEditView | [protected]
Command_SAVEKEYMACRO(void) | CEditView | [protected]
Command_SEARCH_BOX(void) | CEditView | [protected]
Command_SEARCH_CLEARMARK(void) | CEditView | [protected]
Command_SEARCH_DIALOG(void) | CEditView | [protected]
Command_SEARCH_NEXT(bool, BOOL, HWND, const char *) | CEditView | [protected]
Command_SEARCH_PREV(BOOL, HWND) | CEditView | [protected]
Command_SELECTALL(void) | CEditView | [protected]
Command_SELECTWORD(void) | CEditView | [protected]
Command_SET_QUOTESTRING(const char *) | CEditView | [protected]
Command_SHOWFUNCKEY(void) | CEditView | [protected]
Command_SHOWSTATUSBAR(void) | CEditView | [protected]
Command_SHOWTAB(void) | CEditView | [protected]
Command_SHOWTOOLBAR(void) | CEditView | [protected]
Command_SORT(BOOL) | CEditView | [protected]
Command_SPACETOTAB(void) | CEditView | [protected]
Command_SPLIT_H(void) | CEditView | [protected]
Command_SPLIT_V(void) | CEditView | [protected]
Command_SPLIT_VH(void) | CEditView | [protected]
Command_TAB_JOINTNEXT(void) | CEditView | [protected]
Command_TAB_JOINTPREV(void) | CEditView | [protected]
Command_TAB_MOVELEFT(void) | CEditView | [protected]
Command_TAB_MOVERIGHT(void) | CEditView | [protected]
Command_TAB_SEPARATE(void) | CEditView | [protected]
Command_TABTOSPACE(void) | CEditView | [protected]
Command_TAGJUMP(bool bClose=false) | CEditView | [protected]
Command_TAGJUMPBACK(void) | CEditView | [protected]
Command_TagJumpByTagsFile(void) | CEditView | [protected]
Command_TagJumpByTagsFileKeyword(const char *keyword) | CEditView | [protected]
Command_TagsMake(void) | CEditView | [protected]
Command_TILE_H(void) | CEditView | [protected]
Command_TILE_V(void) | CEditView | [protected]
Command_ToggleKeySearch(void) | CEditView | [protected]
Command_TOHANEI(void) | CEditView | [protected]
Command_TOHANKAKU(void) | CEditView | [protected]
Command_TOHANKATA(void) | CEditView | [protected]
Command_TOLOWER(void) | CEditView | [protected]
Command_TOUPPER(void) | CEditView | [protected]
Command_TOZENEI(void) | CEditView | [protected]
Command_TOZENKAKUHIRA(void) | CEditView | [protected]
Command_TOZENKAKUKATA(void) | CEditView | [protected]
Command_TRACEOUT(const char *outputstr, int) | CEditView | [protected]
Command_TRIM(BOOL) | CEditView | [protected]
Command_TRIM2(CMemory *, BOOL) | CEditView | [protected]
Command_TYPE_LIST(void) | CEditView | [protected]
Command_UNDO(void) | CEditView | [protected]
Command_UNINDENT(char cChar) | CEditView | [protected]
Command_UP(int, BOOL, int line=0) | CEditView | [protected]
Command_UP2(int) | CEditView | [protected]
Command_UP_BOX(BOOL) | CEditView | [protected]
Command_UUDECODE(void) | CEditView | [protected]
Command_WIN_OUTPUT(void) | CEditView | [protected]
Command_WINCLOSE(void) | CEditView | [protected]
Command_WINLIST(int nCommandFrom) | CEditView | [protected]
Command_WINTOPMOST(LPARAM) | CEditView | [protected]
Command_WndScrollDown(void) | CEditView | [protected]
Command_WndScrollUp(void) | CEditView | [protected]
Command_WordCut(void) | CEditView | [protected]
Command_WordDelete(void) | CEditView | [protected]
Command_WordDeleteToEnd(void) | CEditView | [protected]
Command_WordDeleteToStart(void) | CEditView | [protected]
Command_WORDLEFT(int) | CEditView | [protected]
Command_WORDRIGHT(int) | CEditView | [protected]
Command_WRAPWINDOWWIDTH(void) | CEditView | [protected]
ConvMemory(CMemory *, int) | CEditView | [protected]
ConvSelectedArea(int) | CEditView | [protected]
CopySelectedAllLines(const char *, BOOL) | CEditView | [protected]
CopyViewStatus(CEditView *) | CEditView |
Create(HINSTANCE, HWND, CEditDoc *, int, BOOL) | CEditView |
CreateEditCaret(COLORREF crCaret, COLORREF crBack, int nWidth, int nHeight) | CEditView |
CreatePopUpMenu_R(void) | CEditView | [protected]
CreateScrollBar(void) | CEditView |
Cursor_UPDOWN(int, int) | CEditView | [protected]
DeleteData(BOOL bRedraw) | CEditView | [protected]
DeleteData2(int nCaretX, int nCaretY, int nDelLen, CMemory *pcMem, COpe *pcOpe) | CEditView | [protected]
DestroyCaret(void) | CEditView | [inline]
DestroyScrollBar(void) | CEditView |
DetectWidthOfLineNumberArea(BOOL) | CEditView |
DetectWidthOfLineNumberArea_calculate(void) | CEditView |
DisableSelectArea(BOOL) | CEditView |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CEditView |
DispEOF(HDC hdc, int x, int y, int nCharWidth, int nLineHeight, UINT fuOptions, const ColorInfo &EofColInfo) | CEditView | [protected]
DispLineNew(HDC, const CLayout *, int &, int, int &, BOOL, int, BOOL) | CEditView | [protected]
DispLineNumber(HDC, const CLayout *, int, int) | CEditView | [protected]
DispRuler(HDC) | CEditView | [protected]
DispText(HDC, int, int, const char *, int) | CEditView | [protected]
DispTextSelected(HDC, int, int, int, int) | CEditView | [protected]
DispVerticalLines(HDC, int, int, int, int) | CEditView | [protected]
DoGrep(const CMemory *, const CMemory *, const CMemory *, BOOL, BOOL, BOOL, int, BOOL, BOOL, int) | CEditView |
DoGrepFile(CDlgCancel *, HWND, const char *, int *, const char *, BOOL, BOOL, int, BOOL, BOOL, int, CBregexp *, int *, const char *, CMemory &) | CEditView |
DoGrepTree(CDlgCancel *, HWND, const char *, int *, const char *, const char *, BOOL, BOOL, BOOL, int, BOOL, BOOL, int, CBregexp *, int, int *) | CEditView |
DragEnter(LPDATAOBJECT, DWORD, POINTL, LPDWORD) | CEditView |
DragLeave(void) | CEditView |
DragOver(DWORD, POINTL, LPDWORD) | CEditView |
DrawBracketPair(bool) | CEditView | [protected]
DrawCaretPosInfo(void) | CEditView |
DrawEOL(HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, CEOL cEol, int bBold, COLORREF pColor) | CEditView | [protected]
DrawRulerCaret(HDC hdc) | CEditView | [inline, protected]
DrawSelectArea(void) | CEditView | [protected]
DrawSelectAreaLine(HDC, int, int, int, int, int) | CEditView | [protected]
DrawTabArrow(HDC hdc, int nPosX, int nPosY, int nWidth, int nHeight, int bBold, COLORREF pColor) | CEditView | [protected]
Drop(LPDATAOBJECT, DWORD, POINTL, LPDWORD) | CEditView |
DWORD | CEditView | [private]
ExecCmd(const char *, const int) | CEditView | [protected]
GetAdjustCursorPos(int *, int *) | CEditView |
GetColorIndex(HDC, const CLayout *, int) | CEditView | [protected]
GetCurrentTextForSearch(CMemory &) | CEditView |
GetCurrentTextForSearchDlg(CMemory &) | CEditView |
GetCurrentWord(CMemory *) | CEditView | [protected]
GetLeftWord(CMemory *, int) | CEditView | [protected]
GetSelectedData(CMemory &, BOOL, const char *, BOOL, BOOL bAddCRLFWhenCopy, enumEOLType neweol=EOL_UNKNOWN) | CEditView |
GetWrapMode(int &) | CEditView |
HandleCommand(int, BOOL, LPARAM, LPARAM, LPARAM, LPARAM) | CEditView |
HideCaret_(HWND hwnd) | CEditView | [protected]
HokanSearchByFile(const char *, BOOL, CMemory **, int, int) | CEditView |
InsertData_CEditView(int nX, int nY, const char *pData, int nDataLen, int *pnNewLine, int *pnNewPos, COpe *pcOpe, BOOL bRedraw) | CEditView | [protected]
int | CEditView | [private]
IsBracket(const char *, int, int) | CEditView | [protected]
IsCurrentPositionSelected(int, int) | CEditView | [protected]
IsCurrentPositionSelectedTEST(int, int, int, int, int, int) | CEditView | [protected]
IsCurrentPositionURL(int, int, int *, int *, int *, char **) | CEditView | [protected]
ISearchBack(void) | CEditView | [private]
ISearchEnter(int mode, int direction) | CEditView | [private]
ISearchExec(WORD wChar) | CEditView | [private]
ISearchExec(const char *pszText) | CEditView | [private]
ISearchExec(bool bNext) | CEditView | [private]
ISearchExit() | CEditView | [private]
ISearchSetStatusMsg(CMemory *msg) const | CEditView | [private]
ISearchWordMake(void) | CEditView | [private]
IsImeON(void) | CEditView |
IsInsMode() const | CEditView |
IsISearchEnabled(int nCommand) const | CEditView |
IsSearchString(const char *, int, int, int *, int *) | CEditView | [protected]
IsTextSelected(void) | CEditView | [inline]
IsTextSelecting(void) | CEditView | [inline]
KeySearchCore(const CMemory *pcmemCurText) | CEditView |
KeyWordHelpSearchDict(LID_SKH nID, POINT *po, RECT *rc) | CEditView |
LID_SKH Enum | CEditView |
LID_SKH_ONTIMER Enum 値 | CEditView |
LID_SKH_POPUPMENU_R Enum 値 | CEditView |
LineColmnToIndex(const CLayout *pcLayout, int nColumn) | CEditView | [protected]
LineColmnToIndex(const CDocLine *pcDocLine, int nColumn) | CEditView | [protected]
LineColmnToIndex2(const CLayout *pcLayout, int nColumn, int &pnLineAllColLen) | CEditView | [protected]
LineIndexToColmn(const CLayout *pcLayout, int nIndex) | CEditView | [protected]
LineIndexToColmn(const CDocLine *pcLayout, int nIndex) | CEditView | [protected]
m_bActivateByMouse | CEditView | [private]
m_bBeginBoxSelect | CEditView |
m_bBeginLineSelect | CEditView |
m_bBeginSelect | CEditView |
m_bBeginWordSelect | CEditView |
m_bCaretShowFlag | CEditView | [private]
m_bCommandRunning | CEditView |
m_bCurSrchKeyMark | CEditView |
m_bCurSrchLoHiCase | CEditView |
m_bCurSrchRegularExp | CEditView |
m_bCurSrchWordOnly | CEditView |
m_bDoing_UndoRedo | CEditView |
m_bDragMode | CEditView |
m_bDragSource | CEditView |
m_bDrawBracketPairFlag | CEditView |
m_bDrawSelectArea | CEditView |
m_bDrawSWITCH | CEditView |
m_bExecutingKeyMacro | CEditView |
m_bHokan | CEditView |
m_bInMenuLoop | CEditView |
m_bISearchFirst | CEditView | [private]
m_bISearchFlagHistory | CEditView | [private]
m_bISearchWrap | CEditView | [private]
m_bPrevCommand | CEditView |
m_bRedrawRuler | CEditView |
m_bSearch | CEditView |
m_bSelectingLock | CEditView |
m_bUnderLineON | CEditView | [private]
m_cDicMgr | CEditView |
m_cHistory | CEditView |
m_crBack | CEditView |
m_crCaret | CEditView |
m_cRegexKeyword | CEditView |
m_cTipWnd | CEditView |
m_cUnderLine | CEditView |
m_CurRegexp | CEditView |
m_dwTipTimer | CEditView |
m_hAtokModule | CEditView | [private]
m_hbmpCaret | CEditView |
m_hbmpCompatBMP | CEditView |
m_hbmpCompatBMPOld | CEditView |
m_hdcCompatDC | CEditView |
m_hFont_HAN | CEditView |
m_hFont_HAN_FAT | CEditView |
m_hFont_HAN_FAT_UL | CEditView |
m_hFont_HAN_UL | CEditView |
m_hFontOld | CEditView |
m_hInstance | CEditView |
m_hWnd | CEditView |
m_hwndHScrollBar | CEditView |
m_hwndParent | CEditView |
m_hwndSizeBox | CEditView |
m_hwndVScrollBar | CEditView |
m_nBracketCaretPosX_PHY | CEditView |
m_nBracketCaretPosY_PHY | CEditView |
m_nBracketPairPosX_PHY | CEditView |
m_nBracketPairPosY_PHY | CEditView |
m_nCaretHeight | CEditView |
m_nCaretPosX | CEditView |
m_nCaretPosX_PHY | CEditView |
m_nCaretPosX_Prev | CEditView |
m_nCaretPosY | CEditView |
m_nCaretPosY_PHY | CEditView |
m_nCaretWidth | CEditView |
m_nCharHeight | CEditView |
m_nCharSize | CEditView |
m_nCharWidth | CEditView |
m_nISearchDirection | CEditView | [private]
m_nISearchHistoryCount | CEditView | [private]
m_nISearchMode | CEditView | [private]
m_nISearchX1History | CEditView | [private]
m_nISearchX2History | CEditView | [private]
m_nISearchY1History | CEditView | [private]
m_nISearchY2History | CEditView | [private]
m_nLastReconvIndex | CEditView | [private]
m_nLastReconvLine | CEditView | [private]
m_nMouseRollPosXOld | CEditView |
m_nMouseRollPosYOld | CEditView |
m_nMyIndex | CEditView |
m_nOldCaretPosX | CEditView |
m_nOldCaretWidth | CEditView |
m_nOldUnderLineY | CEditView |
m_nSelectColmBgnFrom | CEditView |
m_nSelectColmBgnTo | CEditView |
m_nSelectColmFrom | CEditView |
m_nSelectColmFromOld | CEditView |
m_nSelectColmTo | CEditView |
m_nSelectColmToOld | CEditView |
m_nSelectLineBgnFrom | CEditView |
m_nSelectLineBgnTo | CEditView |
m_nSelectLineFrom | CEditView |
m_nSelectLineFromOld | CEditView |
m_nSelectLineTo | CEditView |
m_nSelectLineToOld | CEditView |
m_nSrchStartPosX_PHY | CEditView |
m_nSrchStartPosY_PHY | CEditView |
m_nTopYohaku | CEditView |
m_nViewAlignLeft | CEditView |
m_nViewAlignLeftCols | CEditView |
m_nViewAlignTop | CEditView |
m_nViewColNum | CEditView |
m_nViewCx | CEditView |
m_nViewCy | CEditView |
m_nViewLeftCol | CEditView |
m_nViewRowNum | CEditView |
m_nViewTopLine | CEditView |
m_nVScrollRate | CEditView |
m_pcDropTarget | CEditView |
m_pcEditDoc | CEditView |
m_pcmigemo | CEditView | [private]
m_pcOpeBlk | CEditView |
m_pcsbwHSplitBox | CEditView |
m_pcsbwVSplitBox | CEditView |
m_pnDx | CEditView | [static]
m_poTipCurPos | CEditView |
m_pShareData | CEditView |
m_pszAppName | CEditView |
m_pszMigemoWord | CEditView | [private]
m_szCurSrchKey | CEditView |
m_uATOKReconvertMsg | CEditView | [private]
m_uMSIMEReconvertMsg | CEditView | [private]
m_uWM_MSIME_RECONVERTREQUEST | CEditView | [private]
MakeDiffTmpFile(char *, HWND) | CEditView | [protected]
MoveCursor(int, int, BOOL, int=_CARETMARGINRATE) | CEditView |
MoveCursorProperly(int, int, BOOL, int=_CARETMARGINRATE, int=0) | CEditView |
MoveCursorSelecting(int, int, BOOL, int=_CARETMARGINRATE) | CEditView |
MoveCursorToPoint(int, int) | CEditView | [protected]
MyGetClipboardData(CMemory &, BOOL *) | CEditView | [protected]
MySetClipboardData(const char *, int, BOOL) | CEditView | [protected]
OnChangeSetting(void) | CEditView |
OnHScroll(int, int) | CEditView | [protected]
OnKillFocus(void) | CEditView |
OnLBUTTONDBLCLK(WPARAM, int, int) | CEditView | [protected]
OnLBUTTONDOWN(WPARAM, int, int) | CEditView | [protected]
OnLBUTTONUP(WPARAM, int, int) | CEditView | [protected]
OnMBUTTONDOWN(WPARAM, int, int) | CEditView | [protected]
OnMOUSEMOVE(WPARAM, int, int) | CEditView | [protected]
OnMOUSEWHEEL(WPARAM, LPARAM) | CEditView | [protected]
OnMove(int, int, int, int) | CEditView |
OnPaint(HDC, PAINTSTRUCT *, BOOL) | CEditView | [protected]
OnRBUTTONDOWN(WPARAM, int, int) | CEditView | [protected]
OnRBUTTONUP(WPARAM, int, int) | CEditView | [protected]
OnSetFocus(void) | CEditView |
OnSize(int, int) | CEditView | [protected]
OnTimer(HWND, UINT, UINT, DWORD) | CEditView |
OnVScroll(int, int) | CEditView | [protected]
OnXLBUTTONDOWN(WPARAM, int, int) | CEditView | [protected]
OnXRBUTTONDOWN(WPARAM, int, int) | CEditView | [protected]
OPEN_ExtFromtoExt(BOOL, BOOL, const char *[], const char *[], int, int, const char *) | CEditView | [protected]
PostprocessCommand_hokan(void) | CEditView | [protected]
PRECONVERTSTRING | CEditView | [private]
PreprocessCommand_hokan(int nCommand) | CEditView | [protected]
PrintSelectionInfoMsg(void) | CEditView | [protected]
ProcessCommand_isearch(int, BOOL, LPARAM, LPARAM, LPARAM, LPARAM) | CEditView | [protected]
Redraw(void) | CEditView |
RedrawAll(void) | CEditView |
ReplaceData_CEditView(int nDelLineFrom, int nDelColmFrom, int nDelLineTo, int nDelColmTo, CMemory *pcmemCopyOfDeleted, const char *pInsData, int nInsDataLen, BOOL bRedraw) | CEditView | [protected]
RTrimPrevLine(void) | CEditView | [protected]
ScrollAtH(int) | CEditView | [protected]
ScrollAtV(int) | CEditView | [protected]
ScrollByH(int hl) | CEditView | [inline, protected]
ScrollByV(int vl) | CEditView | [inline, protected]
SearchBracket(int PosX, int PosY, int *NewX, int *NewY, int *mode) | CEditView |
SearchBracketBackward(int PosX, int PosY, int *NewX, int *NewY, char *dnChar, char *upChar, int *mode) | CEditView |
SearchBracketBackward2(int PosX, int PosY, int *NewX, int *NewY, char *dnChar, char *upChar, int *mode) | CEditView |
SearchBracketForward(int PosX, int PosY, int *NewX, int *NewY, char *upChar, char *dnChar, int *mode) | CEditView |
SearchBracketForward2(int PosX, int PosY, int *NewX, int *NewY, char *upChar, char *dnChar, int *mode) | CEditView |
SendStatusMessage(const char *msg) | CEditView | [protected]
SendStatusMessage2(const char *msg) | CEditView | [protected]
SetBracketPairPos(bool) | CEditView | [protected]
SetCurrentColor(HDC, int) | CEditView | [protected]
SetFont(void) | CEditView |
SetGrepResult(char *pWork, int *pnWorkLen, const char *pszFullPath, const char *pszCodeName, int nLine, int nColm, const char *pCompareData, int nLineLen, int nEolCodeLen, const char *pMatchData, int nMatchLen, BOOL bGrepOutputLine, int nGrepOutputStyle) | CEditView |
SetIMECompFormFont(void) | CEditView | [protected]
SetIMECompFormPos(void) | CEditView |
SetInsMode(bool) | CEditView |
SetParentCaption(void) | CEditView | [protected]
SetReconvertStruct(PRECONVERTSTRING pReconv, bool bUnicode) | CEditView | [protected]
SetSelectArea(int nLineFrom, int nColmFrom, int nLineTo, int nColmTo) | CEditView | [inline, protected]
SetSelectionFromReonvert(PRECONVERTSTRING pReconv, bool bUnicode) | CEditView | [protected]
ShowCaret_(HWND hwnd) | CEditView | [protected]
ShowEditCaret(void) | CEditView |
ShowHokanMgr(CMemory &cmemData, BOOL bAutoDecided) | CEditView | [protected]
ShowKeywordHelp(POINT po, LPCTSTR pszHelp, LPRECT prcHokanWin) | CEditView |
SmartIndent_CPP(char) | CEditView | [protected]
SplitBoxOnOff(BOOL, BOOL, BOOL) | CEditView |
SyncScrollH(int) | CEditView | [protected]
SyncScrollV(int) | CEditView | [protected]
TagJumpSub(const char *pszJumpToFile, int nLine, int nColumn, bool bClose=false, bool bRelFromIni=false) | CEditView | [protected]
TGWRAP_FULL Enum 値 | CEditView |
TGWRAP_NONE Enum 値 | CEditView |
TGWRAP_PROP Enum 値 | CEditView |
TGWRAP_WINDOW Enum 値 | CEditView |
TOGGLE_WRAP_ACTION Enum | CEditView |
TranslateCommand_grep(int &, BOOL &, LPARAM &, LPARAM &, LPARAM &, LPARAM &) | CEditView | [protected]
TranslateCommand_isearch(int &, BOOL &, LPARAM &, LPARAM &, LPARAM &, LPARAM &) | CEditView | [protected]
TwoPointToRect(RECT *, int, int, int, int) | CEditView | [protected]
ViewDiffInfo(const char *, const char *, int) | CEditView | [protected]
~CEditView() | CEditView |

Sakura-Editorに対してSat Oct 27 02:35:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CEditWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEditWnd

編集ウィンドウ（外枠）管理クラス [詳細]

#include <CEditWnd.h>

CEditWndのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CEditWnd ()
~CEditWnd ()
HWND | Create (HINSTANCE, HWND, int nGroup, const char *, int, BOOL, int=-1)
LRESULT | DispatchEvent (HWND, UINT, WPARAM, LPARAM)
void | PrintPreviewModeONOFF (void)
LRESULT | OnPaint (HWND, UINT, WPARAM, LPARAM)
LRESULT | OnSize (WPARAM, LPARAM)
LRESULT | OnLButtonUp (WPARAM, LPARAM)
LRESULT | OnLButtonDown (WPARAM, LPARAM)
LRESULT | OnMouseMove (WPARAM, LPARAM)
LRESULT | OnMouseWheel (WPARAM, LPARAM)
LRESULT | OnHScroll (WPARAM, LPARAM)
LRESULT | OnVScroll (WPARAM, LPARAM)
void | CreateToolBar (void)
void | DestroyToolBar (void)
void | CreateStatusBar (void)
void | DestroyStatusBar (void)
void | LayoutToolBar (void)
void | LayoutFuncKey (void)
void | LayoutTabBar (void)
void | LayoutStatusBar (void)
void | EndLayoutBars (BOOL bAdjust=TRUE)
void | InitMenu (HMENU, UINT, BOOL)
void | MessageLoop (void)
int | OnClose (void)
void | SetWindowIcon (HICON, int)
ウィンドウのアイコン設定
void | GetDefaultIcon (HICON &hIconBig, HICON &hIconSmall) const
bool | GetRelatedIcon (const char *szFile, HICON &hIconBig, HICON &hIconSmall) const
void | ChangeFileNameNotify (const char *pszTabCaption, const char *pszFilePath, BOOL m_bIsGrep)
void | InitMenubarMessageFont (void)
void | PrintMenubarMessage (const char *msg)
void | SendStatusMessage (const char *msg)
メッセージの表示
void | SendStatusMessage2 (const char *msg)
メッセージの表示
bool | SendStatusMessage2IsEffective (void) const
void | WindowTopMost (int)
void | SetFocusSearchBox (void) const
void | SetDebugModeON (void)
void | SetDebugModeOFF (void)
デバックモニタモードの解除
LRESULT | PopupWinList (bool bMousePos)
ウィンドウ一覧をポップアップ表示
LRESULT | WinListMenu (HMENU hMenu, EditNode *pEditNodeArr, int nRowNum, BOOL bFull)
現在開いている編集窓のリストをメニューにする
BOOL | OnPrintPageSetting (void)
BOOL | IsActiveApp () const

Static Public メソッド

static int | IsFuncEnable (CEditDoc *, DLLSHAREDATA *, int)
static int | IsFuncChecked (CEditDoc *, DLLSHAREDATA *, int)
static void | OnHelp_MenuItem (HWND, int)

Public 変数

HINSTANCE | m_hInstance
HWND | m_hWnd
char * | m_pszAppName
CEditDoc m_cEditDoc
HWND | m_hwndParent
HWND | m_hwndReBar
HWND | m_hwndToolBar
HWND | m_hwndStatusBar
HWND | m_hwndProgressBar
DLLSHAREDATA * m_pShareData
CFuncKeyWnd m_CFuncKeyWnd
CTabWnd m_cTabWnd
CMenuDrawer m_CMenuDrawer
int | m_nWinSizeType
BOOL | m_bDragMode
int | m_nDragPosOrgX
int | m_nDragPosOrgY
CPrintPreview * m_pPrintPreview
CImageListMgr m_cIcons

Protected メソッド

void | OnDropFiles (HDROP)

Private 型

enum | { icNone, icDown, icClicked, icDoubleClicked }

Private メソッド

LRESULT | OnNcLButtonDown (WPARAM, LPARAM)
LRESULT | OnNcLButtonUp (WPARAM, LPARAM)
LRESULT | OnLButtonDblClk (WPARAM, LPARAM)
int | CreateFileDropDownMenu (HWND)
void | ProcSearchBox (MSG *)
LPARAM | ToolBarOwnerDraw (LPNMCUSTOMDRAW pnmh)
ToolBarのOwnerDraw
LRESULT | OnTimer (WPARAM, LPARAM)
void | OnEditTimer (void)
void | OnToolbarTimer (void)
void | OnCaptionTimer (void)
void | OnSysMenuTimer (void)
void | OnCommand (WORD, WORD, HWND)
void | Timer_ONOFF (BOOL)

Private 変数

UINT | m_uMSIMEReconvertMsg
UINT | m_uATOKReconvertMsg
enum CEditWnd:: { ... } | m_IconClicked
HWND | m_hwndSearchBox
HFONT | m_fontSearchBox
int | m_nCurrentFocus
BOOL | m_bIsActiveApp
BOOL | m_bUIPI
HFONT | m_hFontCaretPosInfo
int | m_nCaretPosInfoCharWidth
int | m_nCaretPosInfoCharHeight
int | m_pnCaretPosInfoDx [64]
LPTSTR | m_pszLastCaption
int | m_nTimerCount
OnTimer用 2003.08.29 wmlhq

説明

編集ウィンドウ（外枠）管理クラス

CEditWnd.h の 46 行で定義されています。

列挙型

anonymous enum [private]

列挙型の値:
icNone
icDown
icClicked
icDoubleClicked

CEditWnd.h の 211 行で定義されています。

コンストラクタとデストラクタ

CEditWnd::CEditWnd ( )

CEditWnd.cpp の 135 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・InitMenubarMessageFont()・m_cEditDoc・CEditDoc::m_pcEditWnd・m_pShareData.

CEditWnd::~CEditWnd ( )

CEditWnd.cpp の 172 行で定義されています。

参照先 m_hFontCaretPosInfo・m_hWnd・m_pszLastCaption・NULL.

関数

void CEditWnd::ChangeFileNameNotify | ( | const char * | pszTabCaption,
 |  | const char * | pszFilePath,
 |  | BOOL | bIsGrep
 | ) |

ファイル名変更通知

作者:
MIK
日付:
2003.05.31 新規作成

2006.01.28 ryoji ファイル名、Grepモードパラメータを追加

CEditWnd.cpp の 4613 行で定義されています。

参照先 CRecent::EasyCreate()・CRecent::FindItem()・CShareData::GetGroupId()・CShareData::getInstance()・CRecent::GetItem()・EditNode::m_bIsGrep・EditNode::m_szFilePath・EditNode::m_szTabCaption・MYWM_TAB_WINDOW_NOTIFY・CShareData::PostMessageToAllEditors()・RECENT_FOR_EDITNODE・CRecent::Terminate()・TWNT_FILE.

HWND CEditWnd::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | int | nGroup,
 |  | const char * | pszPath,
 |  | int | nCharCode,
 |  | BOOL | bReadOnly,
 |  | int | nDocumentType = -1
 | ) |

作成

引数:
hInstance | [in] Instance Handle
hwndParent | [in] 親ウィンドウのハンドル
nGroup | [in] グループID
pszPath | [in] 最初に開くファイルのパス．NULLのとき開くファイル無し．
nCharCode | [in] 漢字コード
bReadOnly | [in] 読みとり専用で開くかどうか
nDocumentType | [in] 文書タイプ．-1のとき強制指定無し．
日付:
2002.03.07 genta nDocumentType追加

2007.06.26 ryoji nGroup追加

CEditWnd.cpp の 204 行で定義されています。

参照先 BOOL・CEditWndProc()・CEditDoc::Create()・CMenuDrawer::Create()・CImageListMgr::Create()・FALSE・FN_APP_ICON・GetAppIcon()・CShareData::GetEditNodeAt()・CCommandLine::GetFileInfo()・CShareData::getInstance()・GetMonitorWorkRect()・GSTR_APPNAME・ICON_DEFAULT_APP・IDR_MENU1・CCommandLine::Instance()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・m_cEditDoc・m_cIcons・m_CMenuDrawer・DLLSHAREDATA::m_Common・m_hInstance・m_hWnd・EditNode::m_hWnd・m_hwndParent・DLLSHAREDATA::m_nEditArrNum・Common::m_nSaveWindowPos・Common::m_nSaveWindowSize・FileInfo::m_nWindowOriginX・FileInfo::m_nWindowOriginY・FileInfo::m_nWindowSizeX・FileInfo::m_nWindowSizeY・Common::m_nWinPosX・Common::m_nWinPosY・Common::m_nWinSizeCX・Common::m_nWinSizeCY・m_pShareData・m_pszAppName・EditNode::m_showCmdRestore・MAX_EDITWINDOWS・MY_RUNNINGTIMER・MyInitCommonControls()・NULL・WINSIZEMODE_DEF.

int CEditWnd::CreateFileDropDownMenu ( HWND hwnd ) [private]

ドロップダウンメニュー(開く)

CEditWnd.cpp の 4272 行で定義されています。

参照先 CMRU::CreateMenu()・FALSE・GetMonitorWorkRect()・CMRU::Length()・m_CMenuDrawer・CMenuDrawer::MyAppendMenu()・CMenuDrawer::ResetContents().

void CEditWnd::CreateStatusBar ( void )

CEditWnd.cpp の 577 行で定義されています。

参照先 CSplitterWnd::DoSplit()・FALSE・IDW_STATUSBAR・m_cEditDoc・m_CFuncKeyWnd・CEditDoc::m_cSplitterWnd・m_hInstance・CWnd::m_hWnd・m_hWnd・m_hwndProgressBar・m_hwndStatusBar・CFuncKeyWnd::SizeBox_ONOFF().

参照元 LayoutStatusBar().

void CEditWnd::CreateToolBar ( void )

CEditWnd.cpp の 651 行で定義されています。

参照先 _MAX_PATH・DestroyToolBar()・F_SEARCH_BOX・FALSE・g_pOldToolBarWndProc・CMenuDrawer::getButton()・GSTR_APPNAME・GWLP_WNDPROC・ID_TOOLBAR・INT_PTR・IsVisualStyle()・LONG_PTR・Common::m_bToolBarIsFlat・m_cIcons・m_CMenuDrawer・DLLSHAREDATA::m_Common・m_fontSearchBox・m_hInstance・m_hWnd・m_hwndReBar・m_hwndSearchBox・m_hwndToolBar・m_nCurrentFocus・DLLSHAREDATA::m_nSEARCHKEYArrNum・Common::m_nToolBarButtonIdxArr・Common::m_nToolBarButtonNum・m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr・MYMESSAGEBOX・PreventVisualStyle()・CImageListMgr::SetToolBarImages()・SetWindowLongPtr・TB_SETEXTENDEDSTYLE・TBSTYLE_COMBOBOX・TBSTYLE_DROPDOWN・TBSTYLE_EX_DRAWDDARROWS・TBSTYLE_FLAT・ToolBarWndProc()・TRUE.

参照元 LayoutToolBar().

void CEditWnd::DestroyStatusBar ( void )

CEditWnd.cpp の 617 行で定義されています。

参照先 BOOL・CSplitterWnd::DoSplit()・FALSE・m_cEditDoc・m_CFuncKeyWnd・DLLSHAREDATA::m_Common・CEditDoc::m_cSplitterWnd・CWnd::m_hWnd・m_hwndProgressBar・m_hwndStatusBar・Common::m_nFUNCKEYWND_Place・m_pShareData・CFuncKeyWnd::SizeBox_ONOFF()・TRUE.

参照元 LayoutStatusBar().

void CEditWnd::DestroyToolBar ( void )

CEditWnd.cpp の 912 行で定義されています。

参照先 m_fontSearchBox・m_hwndReBar・m_hwndSearchBox・m_hwndToolBar・m_nCurrentFocus.

参照元 CreateToolBar()・LayoutToolBar().

LRESULT CEditWnd::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 1092 行で定義されています。

参照先 CMemory::Append()・CMemory::AppendSz()・CKeyBind::GetKeyStrList()・CMemory::GetPtr()・m_CMenuDrawer・m_hInstance・m_hwndStatusBar・DLLSHAREDATA::m_nKeyNameArrNum・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・OnHScroll()・OnLButtonDown()・OnLButtonUp()・CMenuDrawer::OnMenuChar()・OnMouseMove()・OnMouseWheel()・OnVScroll()・WM_MOUSEWHEEL.

参照元 CEditWndProc().

void CEditWnd::EndLayoutBars ( BOOL bAdjust = TRUE )

バーの配置終了処理

日付:
2006.12.19 ryoji 新規作成 2007.03.04 ryoji 印刷プレビュー時はバーを隠す

CEditWnd.cpp の 1020 行で定義されています。

参照先 CSplitterWnd::DoSplit()・m_cEditDoc・CEditDoc::m_cEditViewArr・m_CFuncKeyWnd・CEditDoc::m_cSplitterWnd・m_cTabWnd・m_hWnd・CWnd::m_hWnd・m_hwndReBar・m_hwndStatusBar・m_hwndToolBar・CEditDoc::m_nActivePaneIndex・m_nWinSizeType・m_pPrintPreview・CEditView::SetIMECompFormPos().

参照元 CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR().

void CEditWnd::GetDefaultIcon | ( | HICON & | hIconBig,
 |  | HICON & | hIconSmall
 | ) | const

標準アイコンの取得

引数:
hIconBig | [out] 大きいアイコンのハンドル
hIconSmall | [out] 小さいアイコンのハンドル
作者:
genta
日付:
2002.09.10

2002.12.02 genta 新設した共通関数を使うように

CEditWnd.cpp の 4417 行で定義されています。

参照先 FN_APP_ICON・GetAppIcon()・ICON_DEFAULT_APP・m_hInstance.

参照元 GetRelatedIcon()・CEditDoc::SetDocumentIcon().

bool CEditWnd::GetRelatedIcon | ( | const char * | szFile,
 |  | HICON & | hIconBig,
 |  | HICON & | hIconSmall
 | ) | const

アイコンの取得

指定されたファイル名に対応するアイコン(大・小)を取得して返す．

引数:
szFile | [in] ファイル名
hIconBig | [out] 大きいアイコンのハンドル
hIconSmall | [out] 小さいアイコンのハンドル
戻り値:
true | 関連づけられたアイコンが見つかった
false | 関連づけられたアイコンが見つからなかった
作者:
genta
日付:
2002.09.10

CEditWnd.cpp の 4438 行で定義されています。

参照先 _MAX_EXT・GetDefaultIcon()・ReadRegistry().

参照元 CEditDoc::SetDocumentIcon().

void CEditWnd::InitMenu | ( | HMENU | ,
 |  | UINT | ,
 |  | BOOL |
 | ) |

CEditWnd.cpp の 2112 行で定義されています。

参照先 BOOL・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・F_BROWSE・F_FILE_REOPEN・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UNICODEBE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_FILECLOSE・F_FILECLOSE_OPEN・F_FILENEW・F_FILEOPEN・F_FILESAVE・F_FILESAVEALL・F_FILESAVEAS_DIALOG・F_FILESAVECLOSE・F_PRINT・F_PRINT_PAGESETUP・F_PRINT_PREVIEW・F_PROPERTY_FILE・F_WINCLOSE・CMRUFolder::Length()・CMRU::Length()・m_CMenuDrawer・m_hWnd・CMenuDrawer::MyAppendMenu()・CMenuDrawer::ResetContents().

void CEditWnd::InitMenubarMessageFont ( void )

CEditWnd.cpp の 4473 行で定義されています。

参照先 m_hFontCaretPosInfo・m_nCaretPosInfoCharHeight・m_nCaretPosInfoCharWidth・m_pnCaretPosInfoDx.

参照元 CEditWnd().

BOOL CEditWnd::IsActiveApp ( ) const [inline]

CEditWnd.h の 246 行で定義されています。

参照元 CEditDoc::SetParentCaption().

int CEditWnd::IsFuncChecked | ( | CEditDoc * | ,
 |  | DLLSHAREDATA * | ,
 |  | int |
 | ) | [static]

CEditWnd.cpp の 3084 行で定義されています。

参照先 CODE_EUC・CODE_JIS・CODE_SJIS・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF7・CODE_UTF8・EOL_CRLF・EOL_LF・F_CHGMOD_EOL_CRLF・F_CHGMOD_EOL_LF・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UNICODEBE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_READONLY・F_SHOWFUNCKEY・F_SHOWSTATUSBAR・F_SHOWTAB・F_SHOWTOOLBAR・FALSE・CEditDoc::GetNewLineCode()・GetWindowLongPtr・GWLP_USERDATA・CEditDoc::m_bReadOnly・DLLSHAREDATA::m_bRecordingKeyMacro・m_CFuncKeyWnd・m_cTabWnd・CWnd::m_hWnd・CEditDoc::m_hwndParent・DLLSHAREDATA::m_hwndRecordingKeyMacro・m_hwndStatusBar・m_hwndToolBar・CEditDoc::m_nCharCode・TRUE.

参照元 OnToolbarTimer().

int CEditWnd::IsFuncEnable | ( | CEditDoc * | ,
 |  | DLLSHAREDATA * | ,
 |  | int |
 | ) | [static]

CEditWnd.cpp の 3243 行で定義されています。

参照先 F_BEGIN_BOX・F_COMPARE・F_DIFF_DIALOG・F_DIFF_NEXT・F_DIFF_PREV・F_DIFF_RESET・F_EXECKEYMACRO・F_JUMP_SRCHSTARTPOS・F_LOADKEYMACRO・F_PASTE・F_PASTEBOX・F_SAVEKEYMACRO・F_SEARCH_CLEARMARK・FALSE・CDocLineMgr::IsDiffUse()・CEditDoc::IsEnablePaste()・CEditDoc::IsModificationForbidden()・CSMacroMgr::IsSaveOk()・Common::m_bFontIs_FIXED_PITCH・DLLSHAREDATA::m_bRecordingKeyMacro・CEditDoc::m_cDocLineMgr・CEditDoc::m_cEditViewArr・DLLSHAREDATA::m_Common・CEditDoc::m_hwndParent・DLLSHAREDATA::m_hwndRecordingKeyMacro・CEditDoc::m_nActivePaneIndex・DLLSHAREDATA::m_nEditArrNum・CEditDoc::m_pcSMacroMgr・DLLSHAREDATA::m_szKeyMacroFileName・TRUE.

参照元 OnToolbarTimer().

void CEditWnd::LayoutFuncKey ( void )

ファンクションキーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 980 行で定義されています。

参照先 BOOL・CFuncKeyWnd::Close()・FALSE・Common::m_bDispFUNCKEYWND・m_cEditDoc・m_CFuncKeyWnd・DLLSHAREDATA::m_Common・m_hInstance・m_hWnd・CWnd::m_hWnd・m_hwndStatusBar・Common::m_nFUNCKEYWND_Place・m_pShareData・CFuncKeyWnd::Open()・TRUE.

参照元 CEditView::Command_SHOWFUNCKEY().

void CEditWnd::LayoutStatusBar ( void )

ステータスバーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 964 行で定義されています。

参照先 CreateStatusBar()・DestroyStatusBar()・Common::m_bDispSTATUSBAR・DLLSHAREDATA::m_Common・m_hwndStatusBar・m_pShareData.

参照元 CEditView::Command_SHOWSTATUSBAR().

void CEditWnd::LayoutTabBar ( void )

タブバーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 1005 行で定義されています。

参照先 CTabWnd::Close()・Common::m_bDispTabWnd・DLLSHAREDATA::m_Common・m_cTabWnd・m_hInstance・m_hWnd・CWnd::m_hWnd・m_pShareData・CTabWnd::Open().

参照元 CEditView::Command_SHOWTAB().

void CEditWnd::LayoutToolBar ( void )

ツールバーの配置処理

日付:
2006.12.19 ryoji 新規作成

CEditWnd.cpp の 950 行で定義されています。

参照先 CreateToolBar()・DestroyToolBar()・Common::m_bDispTOOLBAR・DLLSHAREDATA::m_Common・m_hwndToolBar・m_pShareData.

参照元 CEditView::Command_SHOWTOOLBAR().

void CEditWnd::MessageLoop ( void )

CEditWnd.cpp の 1048 行で定義されています。

参照先 CPrintPreview::GetPrintPreviewBarHANDLE()・CEditDoc::m_cDlgFind・CEditDoc::m_cDlgFuncList・CEditDoc::m_cDlgGrep・CEditDoc::m_cDlgReplace・m_cEditDoc・CEditDoc::m_cHokanMgr・DLLSHAREDATA::m_hAccel・CDialog::m_hWnd・m_hWnd・m_hwndSearchBox・m_pPrintPreview・m_pShareData・ProcSearchBox().

参照元 CNormalProcess::MainLoop().

void CEditWnd::OnCaptionTimer ( void ) [private]

キャプション更新用タイマーの処理

日付:
2007.04.03 ryoji 新規

CEditWnd.cpp の 3047 行で定義されています。

参照先 IDT_CAPTION・DLLSHAREDATA::m_bEditWndChanging・m_pShareData・m_pszLastCaption.

参照元 OnTimer().

int CEditWnd::OnClose ( void )

終了時の処理

戻り値:
TRUE,: 終了して良い / FALSE: 終了しない

CEditWnd.cpp の 1884 行で定義されています。

参照先 FALSE・CShareData::getInstance()・CShareData::GetOpenedWindowArr()・m_cEditDoc・m_hWnd・CEditDoc::OnFileClose().

void CEditWnd::OnCommand | ( | WORD | ,
 |  | WORD | ,
 |  | HWND |
 | ) | [private]

CEditWnd.cpp の 1965 行で定義されています。

参照先 _MAX_PATH・ActivateFrameWindow()・CShareData::AddToSearchKeyArr()・BOOL・CMD_FROM_MOUSE・CODE_AUTODETECT・CDlgAbout::DoModal()・F_ABOUT・F_EXITALL・F_HELP_CONTENTS・F_HELP_SEARCH・F_SEARCH_BOX・FALSE・CMRU::GetFileInfo()・CKeyBind::GetFuncCode()・GetHelpFilePath()・CShareData::getInstance()・CMRUFolder::GetPath()・CEditDoc::HandleCommand()・IDM_SELMRU・IDM_SELOPENFOLDER・IDM_SELWINDOW・m_cEditDoc・CEditDoc::m_cEditViewArr・m_hInstance・CEditView::m_hWnd・EditNode::m_hWnd・m_hWnd・m_hwndSearchBox・CEditDoc::m_nActivePaneIndex・FileInfo::m_nCharCode・m_nCurrentFocus・DLLSHAREDATA::m_nKeyNameArrNum・DLLSHAREDATA::m_pEditArr・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・FileInfo::m_szPath・MyWinHelp()・NetConnect()・CEditDoc::OpenFile()・CEditDoc::OpenFileDialog()・ShowWinHelpContents()・CEditApp::TerminateApplication()・ULONG_PTR.

参照元 ProcSearchBox().

void CEditWnd::OnDropFiles ( HDROP ) [protected]

CEditWnd.cpp の 2836 行で定義されています。

参照先 _MAX_PATH・BOOL・Common::m_bDropFileAndClose・DLLSHAREDATA::m_Common・Common::m_nDropFileNumMax・m_pShareData・ResolveShortcutLink()・TRUE.

void CEditWnd::OnEditTimer ( void ) [private]

タイマーの処理

日付:
2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。

2003.08.29 wmlhq, ryoji nTimerCountの導入

2006.01.28 aroka ツールバー更新を OnToolbarTimerに移動した

2007.04.03 ryoji パラメータ無しにした

CEditWnd.cpp の 2987 行で定義されています。

参照先 CEditDoc::CheckAutoSave()・CEditDoc::CheckFileTimeStamp()・m_cEditDoc・m_nTimerCount.

参照元 OnTimer().

void CEditWnd::OnHelp_MenuItem | ( | HWND | ,
 |  | int |
 | ) | [static]

CEditWnd.cpp の 3546 行で定義されています。

参照先 _MAX_PATH・FuncID_To_HelpContextID()・GetHelpFilePath()・MyWinHelp().

LRESULT CEditWnd::OnHScroll | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 3902 行で定義されています。

参照元 DispatchEvent().

LRESULT CEditWnd::OnLButtonDblClk | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [private]

CEditWnd.cpp の 4251 行で定義されています。

参照先 icDoubleClicked・icNone・m_IconClicked.

LRESULT CEditWnd::OnLButtonDown | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 3912 行で定義されています。

参照先 icNone・m_bDragMode・m_IconClicked・m_nDragPosOrgX・m_nDragPosOrgY・TRUE.

参照元 DispatchEvent().

LRESULT CEditWnd::OnLButtonUp | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 3932 行で定義されています。

参照先 FALSE・icClicked・icDown・icNone・IDT_SYSMENU・m_bDragMode・m_IconClicked・TRUE.

参照元 DispatchEvent().

LRESULT CEditWnd::OnMouseMove | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 3953 行で定義されています。

参照先 CEditDoc::GetFilePath()・icDown・icNone・CEditDoc::IsFilePathAvailable()・m_cEditDoc・m_IconClicked・TRUE.

参照元 DispatchEvent().

LRESULT CEditWnd::OnMouseWheel | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 4053 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetOpenedWindowArr()・Common::m_bChgWndByWheel・DLLSHAREDATA::m_Common・m_cTabWnd・CWnd::m_hWnd・CTabWnd::m_hwndTab・m_pShareData・TRUE.

参照元 DispatchEvent().

LRESULT CEditWnd::OnNcLButtonDown | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [private]

CEditWnd.cpp の 4214 行で定義されています。

参照先 icDown・m_IconClicked.

LRESULT CEditWnd::OnNcLButtonUp | ( | WPARAM | ,
 |  | LPARAM |
 | ) | [private]

CEditWnd.cpp の 4229 行で定義されています。

参照先 icNone・m_IconClicked.

LRESULT CEditWnd::OnPaint | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 3867 行で定義されています。

BOOL CEditWnd::OnPrintPageSetting ( void )

CEditWnd.cpp の 4141 行で定義されています。

参照先 BOOL・DLLSHAREDATA::m_PrintSettingArr・m_pShareData・MAX_PRINTSETTINGARR.

参照元 CEditView::Command_PRINT_PAGESETUP()・CPrintPreview::DispatchEvent_PPB().

LRESULT CEditWnd::OnSize | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 3647 行で定義されています。

参照先 CShareData::GetEditNode()・CShareData::getInstance()・m_CFuncKeyWnd・DLLSHAREDATA::m_Common・m_cTabWnd・CWnd::m_hWnd・EditNode::m_hWnd・m_hwndReBar・m_hwndStatusBar・m_hwndToolBar・Common::m_nSaveWindowSize・Common::m_nWinSizeCX・Common::m_nWinSizeCY・m_nWinSizeType・Common::m_nWinSizeType・m_pShareData・EditNode::m_showCmdRestore・WINSIZEMODE_SAVE.

void CEditWnd::OnSysMenuTimer ( void ) [private]

システムメニュー表示用タイマーの処理

日付:
2007.04.03 ryoji パラメータ無しにした 以前はコールバック関数でやっていたKillTimer()をここで行うようにした

CEditWnd.cpp の 3061 行で定義されています。

参照先 GetMonitorWorkRect()・icClicked・icNone・IDT_SYSMENU・m_IconClicked.

参照元 OnTimer().

LRESULT CEditWnd::OnTimer | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [private]

WM_TIMER 処理

日付:
2007.04.03 ryoji 新規

CEditWnd.cpp の 2957 行で定義されています。

参照先 IDT_CAPTION・IDT_EDIT・IDT_SYSMENU・IDT_TOOLBAR・OnCaptionTimer()・OnEditTimer()・OnSysMenuTimer()・OnToolbarTimer().

void CEditWnd::OnToolbarTimer ( void ) [private]

ツールバー更新用タイマーの処理

日付:
2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。

2003.08.29 wmlhq, ryoji nTimerCountの導入

2006.01.28 aroka OnTimerから分離

2007.04.03 ryoji パラメータ無しにした

CEditWnd.cpp の 3014 行で定義されています。

参照先 CMenuDrawer::getButton()・IsFuncChecked()・IsFuncEnable()・m_cEditDoc・m_CMenuDrawer・DLLSHAREDATA::m_Common・m_hwndToolBar・m_nTimerCount・Common::m_nToolBarButtonIdxArr・Common::m_nToolBarButtonNum・m_pShareData.

参照元 OnTimer().

LRESULT CEditWnd::OnVScroll | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CEditWnd.cpp の 3888 行で定義されています。

参照元 DispatchEvent().

LRESULT CEditWnd::PopupWinList ( bool bMousePos )

ウィンドウ一覧をポップアップ表示

ウィンドウ一覧ポップアップ表示処理

CEditWnd.cpp の 4798 行で定義されています。

参照先 CShareData::getInstance()・GetMonitorWorkRect()・CShareData::GetOpenedWindowArr()・m_cEditDoc・CEditDoc::m_cEditViewArr・m_cTabWnd・CWnd::m_hWnd・CEditView::m_hWnd・CEditDoc::m_nActivePaneIndex・CTabWnd::TabListMenu()・TRUE・WinListMenu().

参照元 CEditView::Command_WINLIST().

void CEditWnd::PrintMenubarMessage ( const char * msg )

CEditWnd.cpp の 4520 行で定義されています。

参照先 COLOR_MENUBAR・m_hFontCaretPosInfo・m_nCaretPosInfoCharHeight・m_nCaretPosInfoCharWidth・m_pnCaretPosInfoDx.

参照元 SendStatusMessage().

void CEditWnd::PrintPreviewModeONOFF ( void )

CEditWnd.cpp の 3566 行で定義されています。

参照先 BOOL・FALSE・CEditDoc::GetDocumentAttribute()・GSTR_APPNAME・IDR_MENU1・m_cEditDoc・m_CFuncKeyWnd・m_cTabWnd・m_hInstance・CWnd::m_hWnd・CEditDoc::m_hWnd・m_hwndReBar・m_hwndStatusBar・m_hwndToolBar・Types::m_nCurrentPrintSetting・DLLSHAREDATA::m_PrintSettingArr・m_pShareData・MYMESSAGEBOX・TRUE.

参照元 CEditView::Command_PRINT_PREVIEW()・CPrintPreview::DispatchEvent_PPB().

void CEditWnd::ProcSearchBox ( MSG * msg ) [private]

検索ボックスでの処理

CEditWnd.cpp の 4350 行で定義されています。

参照先 _MAX_PATH・CShareData::AddToSearchKeyArr()・F_SEARCH_NEXT・CShareData::getInstance()・m_cEditDoc・CEditDoc::m_cEditViewArr・CEditView::m_hWnd・m_hwndSearchBox・CEditDoc::m_nActivePaneIndex・CEditView::m_nCaretPosX_PHY・CEditView::m_nCaretPosY_PHY・CEditView::m_nSrchStartPosX_PHY・CEditView::m_nSrchStartPosY_PHY・OnCommand().

参照元 MessageLoop().

void CEditWnd::SendStatusMessage ( const char * msg )

メッセージの表示

指定されたメッセージをステータスバーに表示する． ステータスバーが非表示の場合はメニューバーの右端に表示する．

引数:
msg [in] 表示するメッセージ
日付:
2002.01.26 hor 新規作成

2002.12.04 genta CEditViewより移動

CEditWnd.cpp の 4574 行で定義されています。

参照先 m_hwndStatusBar・PrintMenubarMessage().

参照元 CEditDoc::CheckFileTimeStamp()・CEditView::SendStatusMessage().

void CEditWnd::SendStatusMessage2 ( const char * msg )

メッセージの表示

指定されたメッセージをステータスバーに表示する． メニューバー右端に入らないものや，桁位置表示を隠したくないものに使う

呼び出し前にSendStatusMessage2IsEffective()で処理の有無を 確認することで無駄な処理を省くことが出来る．

引数:
msg [in] 表示するメッセージ
日付:
2005.07.09 genta 新規作成
参照:
SendStatusMessage2IsEffective

CEditWnd.cpp の 4599 行で定義されています。

参照先 m_hwndStatusBar.

参照元 CEditView::PrintSelectionInfoMsg().

bool CEditWnd::SendStatusMessage2IsEffective ( void ) const [inline]

SendStatusMessage2()が効き目があるかを予めチェック

日付:
2005.07.09 genta
覚え書き:
もしSendStatusMessage2()でステータスバー表示以外の処理を追加 する場合にはここを変更しないと新しい場所への出力が行われない．
参照:
SendStatusMessage2

CEditWnd.h の 123 行で定義されています。

参照先 NULL.

参照元 CEditView::PrintSelectionInfoMsg().

void CEditWnd::SetDebugModeOFF ( void )

デバックモニタモードの解除

CEditWnd.cpp の 3524 行で定義されています。

参照先 FALSE・CEditDoc::m_bDebugMode・m_cEditDoc・DLLSHAREDATA::m_hwndDebug・m_pShareData・CEditDoc::SetParentCaption().

参照元 CEditDoc::Init().

void CEditWnd::SetDebugModeON ( void )

CEditWnd.cpp の 3505 行で定義されています。

参照先 FALSE・CShareData::IsEditWnd()・CEditDoc::m_bDebugMode・CEditDoc::m_bReadOnly・m_cEditDoc・DLLSHAREDATA::m_hwndDebug・m_pShareData・CEditDoc::SetParentCaption()・TRUE.

void CEditWnd::SetFocusSearchBox ( void ) const

ツールバーの検索ボックスにフォーカスを移動する.

日付:
2006.06.04 yukihane 新規作成

CEditWnd.cpp の 4760 行で定義されています。

参照先 m_hwndSearchBox.

参照元 CEditView::Command_SEARCH_BOX().

void CEditWnd::SetWindowIcon | ( | HICON | hIcon,
 |  | int | flag
 | ) |

ウィンドウのアイコン設定

指定されたアイコンをウィンドウに設定する． 以前のアイコンは破棄する．

引数:
hIcon | [in] 設定するアイコン
flag | [in] アイコン種別．ICON_BIGまたはICON_SMALL.
作者:
genta
日付:
2002.09.10

CEditWnd.cpp の 4399 行で定義されています。

参照元 CEditDoc::SetDocumentIcon().

void CEditWnd::Timer_ONOFF ( BOOL ) [private]

CEditWnd.cpp の 4772 行で定義されています。

参照先 GSTR_APPNAME・IDT_TOOLBAR・MYMESSAGEBOX.

LPARAM CEditWnd::ToolBarOwnerDraw ( LPNMCUSTOMDRAW pnmh ) [private]

ToolBarのOwnerDraw

引数:
pnmh [in] Owner Draw情報
覚え書き:
Common Control V4.71以降はNMTBCUSTOMDRAWを送ってくるが， Common Control V4.70はLPNMCUSTOMDRAWしか送ってこないので 安全のため小さい方に合わせて処理を行う．
作者:
genta
日付:
2003.07.21 作成

CEditWnd.cpp の 4661 行で定義されています。

参照先 CImageListMgr::cy()・CImageListMgr::Draw()・CMenuDrawer::FindIndexFromCommandId()・CMenuDrawer::GetIconId()・m_cIcons・m_CMenuDrawer.

void CEditWnd::WindowTopMost ( int top )

常に手前に表示

引数:
top 0:トグル動作 1:最前面 2:最前面解除 その他:なにもしない
日付:
2004.09.21 Moca

CEditWnd.cpp の 4715 行で定義されています。

参照先 GetWindowLongPtr・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData.

参照元 CEditView::Command_BIND_WINDOW()・CEditView::Command_SHOWTAB()・CEditView::Command_WINTOPMOST().

LRESULT CEditWnd::WinListMenu | ( | HMENU | hMenu,
 |  | EditNode * | pEditNodeArr,
 |  | int | nRowNum,
 |  | BOOL | bFull
 | ) |

現在開いている編集窓のリストをメニューにする

ウィンドウ一覧メニュー作成処理

CEditWnd.cpp の 4843 行で定義されています。

参照先 _MAX_PATH・CODE_CODEMAX・dupamp()・CShareData::getInstance()・CShareData::GetTransformFileNameFast()・gm_pszCodeNameArr_3・IDM_SELWINDOW・LimitStringLengthB()・FileInfo::m_bIsGrep・FileInfo::m_bIsModified・m_CMenuDrawer・DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO・DLLSHAREDATA::m_hwndDebug・FileInfo::m_nCharCode・EditNode::m_nIndex・m_pShareData・FileInfo::m_szGrepKey・FileInfo::m_szPath・CMenuDrawer::MyAppendMenu()・MYWM_GETFILEINFO・CShareData::TransformFileName_MakeCache().

参照元 PopupWinList().

変数

BOOL CEditWnd::m_bDragMode

CEditWnd.h の 172 行で定義されています。

参照元 OnLButtonDown()・OnLButtonUp()・CPrintPreview::OnMouseMove().

BOOL CEditWnd::m_bIsActiveApp [private]

CEditWnd.h の 221 行で定義されています。

BOOL CEditWnd::m_bUIPI [private]

CEditWnd.h の 222 行で定義されています。

CEditDoc CEditWnd::m_cEditDoc

CEditWnd.h の 154 行で定義されています。

参照元 CEditWnd()・Create()・CreateStatusBar()・DestroyStatusBar()・CPrintPreview::DrawFooter()・CPrintPreview::DrawHeader()・EndLayoutBars()・LayoutFuncKey()・MessageLoop()・CPrintPreview::OnChangePrintSetting()・OnClose()・OnCommand()・OnEditTimer()・OnMouseMove()・CPrintPreview::OnPrint()・OnToolbarTimer()・PopupWinList()・CPrintPreview::Print_DrawLine()・PrintPreviewModeONOFF()・ProcSearchBox()・SetDebugModeOFF()・SetDebugModeON().

CFuncKeyWnd CEditWnd::m_CFuncKeyWnd

CEditWnd.h の 167 行で定義されています。

参照元 CEditView::Command_SHOWFUNCKEY()・CreateStatusBar()・DestroyStatusBar()・CSplitterWnd::DoSplit()・EndLayoutBars()・IsFuncChecked()・LayoutFuncKey()・OnSize()・PrintPreviewModeONOFF().

CImageListMgr CEditWnd::m_cIcons

CEditWnd.h の 192 行で定義されています。

参照元 Create()・CreateToolBar()・ToolBarOwnerDraw().

CMenuDrawer CEditWnd::m_CMenuDrawer

CEditWnd.h の 169 行で定義されています。

参照元 CEditView::Command_CUSTMENU()・CEditView::Command_MENU_ALLFUNC()・Create()・CEditDoc::Create()・CreateFileDropDownMenu()・CEditView::CreatePopUpMenu_R()・CreateToolBar()・DispatchEvent()・InitMenu()・OnToolbarTimer()・ToolBarOwnerDraw()・WinListMenu().

CTabWnd CEditWnd::m_cTabWnd

CEditWnd.h の 168 行で定義されています。

参照元 CEditView::Command_NEXTGROUP()・CEditView::Command_PREVGROUP()・CEditView::Command_SHOWTAB()・CEditView::Command_TAB_JOINTNEXT()・CEditView::Command_TAB_JOINTPREV()・CEditView::Command_TAB_MOVELEFT()・CEditView::Command_TAB_MOVERIGHT()・CEditView::Command_TAB_SEPARATE()・EndLayoutBars()・IsFuncChecked()・LayoutTabBar()・OnMouseWheel()・OnSize()・PopupWinList()・PrintPreviewModeONOFF().

HFONT CEditWnd::m_fontSearchBox [private]

CEditWnd.h の 218 行で定義されています。

参照元 CreateToolBar()・DestroyToolBar().

HFONT CEditWnd::m_hFontCaretPosInfo [private]

キャレットの行桁位置表示用フォント

CEditWnd.h の 229 行で定義されています。

参照元 InitMenubarMessageFont()・PrintMenubarMessage()・~CEditWnd().

HINSTANCE CEditWnd::m_hInstance

CEditWnd.h の 151 行で定義されています。

参照元 Create()・CPrintPreview::CreatePrintPreviewControls()・CreateStatusBar()・CreateToolBar()・DispatchEvent()・GetDefaultIcon()・LayoutFuncKey()・LayoutTabBar()・OnCommand()・CPrintPreview::OnMouseMove()・CPrintPreview::OnPreviewGoDirectPage()・PrintPreviewModeONOFF().

HWND CEditWnd::m_hWnd

CEditWnd.h の 152 行で定義されています。

参照元 CEditView::Command_BIND_WINDOW()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR()・CPrintPreview::CPrintPreview()・Create()・CPrintPreview::CreatePrintPreviewControls()・CreateStatusBar()・CreateToolBar()・CPrintPreview::DispatchEvent_PPB()・EndLayoutBars()・InitMenu()・CPrintPreview::InitPreviewScrollBar()・LayoutFuncKey()・LayoutTabBar()・MessageLoop()・CPrintPreview::OnChangePrintSetting()・CPrintPreview::OnCheckAntialias()・OnClose()・OnCommand()・CDlgFuncList::OnDestroy()・CPrintPreview::OnHScroll()・CDlgFuncList::OnInitDialog()・CPrintPreview::OnMouseMove()・CPrintPreview::OnMouseWheel()・CPrintPreview::OnPreviewGoPage()・CPrintPreview::OnPreviewZoom()・CPrintPreview::OnPrint()・CPrintPreview::OnSize()・CPrintPreview::OnVScroll()・~CEditWnd().

HWND CEditWnd::m_hwndParent

CEditWnd.h の 155 行で定義されています。

参照元 Create().

HWND CEditWnd::m_hwndProgressBar

CEditWnd.h の 159 行で定義されています。

参照元 CEditDoc::ChangeLayoutParam()・CEditView::Command_PUTFILE()・CreateStatusBar()・DestroyStatusBar()・CEditDoc::FileRead()・CEditDoc::FileWrite()・CEditDoc::OnChangeSetting().

HWND CEditWnd::m_hwndReBar

CEditWnd.h の 156 行で定義されています。

参照元 CreateToolBar()・DestroyToolBar()・EndLayoutBars()・OnSize()・PrintPreviewModeONOFF().

HWND CEditWnd::m_hwndSearchBox [private]

CEditWnd.h の 217 行で定義されています。

参照元 CreateToolBar()・DestroyToolBar()・MessageLoop()・OnCommand()・ProcSearchBox()・SetFocusSearchBox().

HWND CEditWnd::m_hwndStatusBar

CEditWnd.h の 158 行で定義されています。

参照元 CEditView::Command_SHOWSTATUSBAR()・CreateStatusBar()・DestroyStatusBar()・DispatchEvent()・CSplitterWnd::DoSplit()・EndLayoutBars()・IsFuncChecked()・LayoutFuncKey()・LayoutStatusBar()・OnSize()・PrintPreviewModeONOFF()・SendStatusMessage()・SendStatusMessage2().

HWND CEditWnd::m_hwndToolBar

CEditWnd.h の 157 行で定義されています。

参照元 CEditView::Command_SHOWTOOLBAR()・CreateToolBar()・DestroyToolBar()・EndLayoutBars()・IsFuncChecked()・LayoutToolBar()・OnSize()・OnToolbarTimer()・PrintPreviewModeONOFF().

enum { ... } CEditWnd::m_IconClicked [private]

参照元 OnLButtonDblClk()・OnLButtonDown()・OnLButtonUp()・OnMouseMove()・OnNcLButtonDown()・OnNcLButtonUp()・OnSysMenuTimer().

int CEditWnd::m_nCaretPosInfoCharHeight [private]

キャレットの行桁位置表示用フォントの高さ

CEditWnd.h の 231 行で定義されています。

参照元 InitMenubarMessageFont()・PrintMenubarMessage().

int CEditWnd::m_nCaretPosInfoCharWidth [private]

キャレットの行桁位置表示用フォントの幅

CEditWnd.h の 230 行で定義されています。

参照元 InitMenubarMessageFont()・PrintMenubarMessage().

int CEditWnd::m_nCurrentFocus [private]

CEditWnd.h の 220 行で定義されています。

参照元 CreateToolBar()・DestroyToolBar()・OnCommand().

int CEditWnd::m_nDragPosOrgX

CEditWnd.h の 173 行で定義されています。

参照元 OnLButtonDown()・CPrintPreview::OnMouseMove().

int CEditWnd::m_nDragPosOrgY

CEditWnd.h の 174 行で定義されています。

参照元 OnLButtonDown()・CPrintPreview::OnMouseMove().

int CEditWnd::m_nTimerCount [private]

OnTimer用 2003.08.29 wmlhq

CEditWnd.h の 235 行で定義されています。

参照元 OnEditTimer()・OnToolbarTimer().

int CEditWnd::m_nWinSizeType

CEditWnd.h の 170 行で定義されています。

参照元 EndLayoutBars()・OnSize().

int CEditWnd::m_pnCaretPosInfoDx[64] [private]

CEditWnd.h の 232 行で定義されています。

参照元 InitMenubarMessageFont()・PrintMenubarMessage().

CPrintPreview* CEditWnd::m_pPrintPreview

CEditWnd.h の 185 行で定義されています。

参照元 CEditView::Command_PRINT()・EndLayoutBars()・MessageLoop().

DLLSHAREDATA* CEditWnd::m_pShareData

CEditWnd.h の 162 行で定義されています。

参照元 CEditWnd()・Create()・CreateToolBar()・DestroyStatusBar()・DispatchEvent()・LayoutFuncKey()・LayoutStatusBar()・LayoutTabBar()・LayoutToolBar()・MessageLoop()・OnCaptionTimer()・OnCommand()・OnDropFiles()・OnMouseWheel()・OnPrintPageSetting()・OnSize()・OnToolbarTimer()・PrintPreviewModeONOFF()・SetDebugModeOFF()・SetDebugModeON()・WindowTopMost()・WinListMenu().

char* CEditWnd::m_pszAppName

CEditWnd.h の 153 行で定義されています。

参照元 Create().

LPTSTR CEditWnd::m_pszLastCaption [private]

CEditWnd.h の 234 行で定義されています。

参照元 OnCaptionTimer()・~CEditWnd().

UINT CEditWnd::m_uATOKReconvertMsg [private]

CEditWnd.h の 207 行で定義されています。

UINT CEditWnd::m_uMSIMEReconvertMsg [private]

CEditWnd.h の 206 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CEditWnd.h
  • CEditWnd.cpp
Sakura-Editorに対してSat Oct 27 02:35:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEditWnd メンバ一覧

これは全メンバの一覧です。CEditWnd継承メンバも含んでいます。

CEditWnd() | CEditWnd |
ChangeFileNameNotify(const char *pszTabCaption, const char *pszFilePath, BOOL m_bIsGrep) | CEditWnd |
Create(HINSTANCE, HWND, int nGroup, const char *, int, BOOL, int=-1) | CEditWnd |
CreateFileDropDownMenu(HWND) | CEditWnd | [private]
CreateStatusBar(void) | CEditWnd |
CreateToolBar(void) | CEditWnd |
DestroyStatusBar(void) | CEditWnd |
DestroyToolBar(void) | CEditWnd |
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CEditWnd |
EndLayoutBars(BOOL bAdjust=TRUE) | CEditWnd |
GetDefaultIcon(HICON &hIconBig, HICON &hIconSmall) const | CEditWnd |
GetRelatedIcon(const char *szFile, HICON &hIconBig, HICON &hIconSmall) const | CEditWnd |
icClicked Enum 値 | CEditWnd | [private]
icDoubleClicked Enum 値 | CEditWnd | [private]
icDown Enum 値 | CEditWnd | [private]
icNone Enum 値 | CEditWnd | [private]
InitMenu(HMENU, UINT, BOOL) | CEditWnd |
InitMenubarMessageFont(void) | CEditWnd |
IsActiveApp() const | CEditWnd | [inline]
IsFuncChecked(CEditDoc *, DLLSHAREDATA *, int) | CEditWnd | [static]
IsFuncEnable(CEditDoc *, DLLSHAREDATA *, int) | CEditWnd | [static]
LayoutFuncKey(void) | CEditWnd |
LayoutStatusBar(void) | CEditWnd |
LayoutTabBar(void) | CEditWnd |
LayoutToolBar(void) | CEditWnd |
m_bDragMode | CEditWnd |
m_bIsActiveApp | CEditWnd | [private]
m_bUIPI | CEditWnd | [private]
m_cEditDoc | CEditWnd |
m_CFuncKeyWnd | CEditWnd |
m_cIcons | CEditWnd |
m_CMenuDrawer | CEditWnd |
m_cTabWnd | CEditWnd |
m_fontSearchBox | CEditWnd | [private]
m_hFontCaretPosInfo | CEditWnd | [private]
m_hInstance | CEditWnd |
m_hWnd | CEditWnd |
m_hwndParent | CEditWnd |
m_hwndProgressBar | CEditWnd |
m_hwndReBar | CEditWnd |
m_hwndSearchBox | CEditWnd | [private]
m_hwndStatusBar | CEditWnd |
m_hwndToolBar | CEditWnd |
m_IconClicked | CEditWnd | [private]
m_nCaretPosInfoCharHeight | CEditWnd | [private]
m_nCaretPosInfoCharWidth | CEditWnd | [private]
m_nCurrentFocus | CEditWnd | [private]
m_nDragPosOrgX | CEditWnd |
m_nDragPosOrgY | CEditWnd |
m_nTimerCount | CEditWnd | [private]
m_nWinSizeType | CEditWnd |
m_pnCaretPosInfoDx | CEditWnd | [private]
m_pPrintPreview | CEditWnd |
m_pShareData | CEditWnd |
m_pszAppName | CEditWnd |
m_pszLastCaption | CEditWnd | [private]
m_uATOKReconvertMsg | CEditWnd | [private]
m_uMSIMEReconvertMsg | CEditWnd | [private]
MessageLoop(void) | CEditWnd |
OnCaptionTimer(void) | CEditWnd | [private]
OnClose(void) | CEditWnd |
OnCommand(WORD, WORD, HWND) | CEditWnd | [private]
OnDropFiles(HDROP) | CEditWnd | [protected]
OnEditTimer(void) | CEditWnd | [private]
OnHelp_MenuItem(HWND, int) | CEditWnd | [static]
OnHScroll(WPARAM, LPARAM) | CEditWnd |
OnLButtonDblClk(WPARAM, LPARAM) | CEditWnd | [private]
OnLButtonDown(WPARAM, LPARAM) | CEditWnd |
OnLButtonUp(WPARAM, LPARAM) | CEditWnd |
OnMouseMove(WPARAM, LPARAM) | CEditWnd |
OnMouseWheel(WPARAM, LPARAM) | CEditWnd |
OnNcLButtonDown(WPARAM, LPARAM) | CEditWnd | [private]
OnNcLButtonUp(WPARAM, LPARAM) | CEditWnd | [private]
OnPaint(HWND, UINT, WPARAM, LPARAM) | CEditWnd |
OnPrintPageSetting(void) | CEditWnd |
OnSize(WPARAM, LPARAM) | CEditWnd |
OnSysMenuTimer(void) | CEditWnd | [private]
OnTimer(WPARAM, LPARAM) | CEditWnd | [private]
OnToolbarTimer(void) | CEditWnd | [private]
OnVScroll(WPARAM, LPARAM) | CEditWnd |
PopupWinList(bool bMousePos) | CEditWnd |
PrintMenubarMessage(const char *msg) | CEditWnd |
PrintPreviewModeONOFF(void) | CEditWnd |
ProcSearchBox(MSG *) | CEditWnd | [private]
SendStatusMessage(const char *msg) | CEditWnd |
SendStatusMessage2(const char *msg) | CEditWnd |
SendStatusMessage2IsEffective(void) const | CEditWnd | [inline]
SetDebugModeOFF(void) | CEditWnd |
SetDebugModeON(void) | CEditWnd |
SetFocusSearchBox(void) const | CEditWnd |
SetWindowIcon(HICON, int) | CEditWnd |
Timer_ONOFF(BOOL) | CEditWnd | [private]
ToolBarOwnerDraw(LPNMCUSTOMDRAW pnmh) | CEditWnd | [private]
WindowTopMost(int) | CEditWnd |
WinListMenu(HMENU hMenu, EditNode *pEditNodeArr, int nRowNum, BOOL bFull) | CEditWnd |
~CEditWnd() | CEditWnd |

Sakura-Editorに対してSat Oct 27 02:35:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CEOL

  • 構成
  • クラス階層
  • 構成メンバ

クラス CEOL

行末の改行コードを管理 [詳細]

#include <CEol.h>

すべてのメンバ一覧

Public メソッド

void | Init (void)
bool | SetType (enumEOLType t)
void | GetTypeFromString (const char *pszData, int nDataLen)
enumEOLType | GetType (void) const
現在のTypeを取得
int | GetLen (void) const
現在のEOL長を取得
const char * | GetName (void) const
現在のEOLの名称取得
const char * | GetValue (void) const
現在のEOL文字列先頭へのポインタを取得
const char * | GetUnicodeValue () const
Unicode版GetValue 2002/5/9 Frozen
const char * | GetUnicodeBEValue (void) const
UnicodeBE版のGetValue 2002.05.30 Moca
bool | operator== (enumEOLType t) const
bool | operator!= (enumEOLType t) const
const CEOL & | operator= (const CEOL &t)
operator enumEOLType (void) const
CEOL ()
CEOL (enumEOLType t)

Static Public メソッド

static enumEOLType | GetEOLType (const char *pszData, int nDataLen)
static enumEOLType | GetEOLTypeUni (const wchar_t *pszData, int nDataLen)
static enumEOLType | GetEOLTypeUniBE (const wchar_t *pszData, int nDataLen)

Private 変数

enumEOLType m_enumEOLType
改行コードの種類

Static Private 変数

static const char * | gm_pszEolDataArr [EOL_TYPE_NUM]
static const wchar_t * | gm_pszEolUnicodeDataArr [EOL_TYPE_NUM]
static const wchar_t * | gm_pszEolUnicodeBEDataArr [EOL_TYPE_NUM]
static const int | gm_pnEolLenArr [EOL_TYPE_NUM]
static const char * | gm_pszEolNameArr [EOL_TYPE_NUM]

説明

行末の改行コードを管理

管理とは言ってもオブジェクト化することで安全に設定を行えたり関連情報の取得を オブジェクトに対するメソッドで行えるだけだが、グローバル変数への参照を クラス内部に閉じこめることができるのでそれなりに意味はあると思う。

CEol.h の 47 行で定義されています。

コンストラクタとデストラクタ

CEOL::CEOL ( ) [inline]

CEol.h の 90 行で定義されています。

CEOL::CEOL ( enumEOLType t ) [inline]

CEol.h の 91 行で定義されています。

関数

enumEOLType CEOL::GetEOLType | ( | const char * | pszData,
 |  | int | nDataLen
 | ) | [static]

行終端子の種類を調べる。

引数:
pszData | 調査対象文字列へのポインタ
nDataLen | 調査対象文字列の長さ
戻り値:
改行コードの種類。終端子が見つからなかったときはEOL_NONEを返す。

CEol.cpp の 111 行で定義されています。

参照先 EOL_TYPE_NUM・gm_pnEolLenArr・gm_pnEolTypeArr・gm_pszEolDataArr.

enumEOLType CEOL::GetEOLTypeUni | ( | const wchar_t * | pszData,
 |  | int | nDataLen
 | ) | [static]

行端子の種類を調べるUnicode版

引数:
pszData | 調査対象文字列へのポインタ
nDataLen | 調査対象文字列の長さ(wchar_tの長さ)
戻り値:
改行コードの種類。終端子が見つからなかったときはEOL_NONEを返す。

CEol.cpp の 131 行で定義されています。

参照先 EOL_TYPE_NUM・gm_pnEolLenArr・gm_pnEolTypeArr・gm_pszEolUnicodeDataArr.

参照元 CFileLoad::GetNextLineW().

enumEOLType CEOL::GetEOLTypeUniBE | ( | const wchar_t * | pszData,
 |  | int | nDataLen
 | ) | [static]

CEol.cpp の 151 行で定義されています。

参照先 EOL_TYPE_NUM・gm_pnEolLenArr・gm_pnEolTypeArr・gm_pszEolUnicodeBEDataArr.

参照元 CFileLoad::GetNextLineWB().

int CEOL::GetLen ( void ) const [inline]

現在のEOL長を取得

CEol.h の 71 行で定義されています。

参照元 CEditView::Command_CHAR()・CEditView::Command_COPY()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_TRIM2()・CLayoutMgr::CreateLayout()・CEditView::Cursor_UPDOWN()・CDocLineMgr::DeleteData_CDocLineMgr()・CEditView::DispLineNew()・CEditView::DoGrepFile()・CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range()・CLayoutMgr::DUMP()・CDocLineMgr::DUMP()・CEditView::GetColorIndex()・CLayout::GetLengthWithoutEOL()・CDocLine::GetLengthWithoutEOL()・CFileLoad::GetNextLineCharCode()・CDocLineMgr::InsertData_CDocLineMgr()・CEditDoc::MakeFuncList_BookMark()・CEditView::PrintSelectionInfoMsg()・CFileLoad::ReadLine()・CEditView::SetReconvertStruct()・CMemory::SPACEToTAB()・CDocLineMgr::WriteFile().

const char* CEOL::GetName ( void ) const [inline]

現在のEOLの名称取得

CEol.h の 73 行で定義されています。

参照元 CEditView::DrawCaretPosInfo()・CLayoutMgr::DUMP()・CDocLineMgr::DUMP().

enumEOLType CEOL::GetType ( void ) const [inline]

現在のTypeを取得

CEol.h の 70 行で定義されています。

参照元 CEditView::DrawEOL()・CLayoutMgr::IsEndOfLine().

void CEOL::GetTypeFromString | ( | const char * | pszData,
 |  | int | nDataLen
 | ) | [inline]

CEol.h の 66 行で定義されています。

参照元 GetNextLine()・CDocLineMgr::InsertData_CDocLineMgr().

const char* CEOL::GetUnicodeBEValue ( void ) const [inline]

UnicodeBE版のGetValue 2002.05.30 Moca

CEol.h の 79 行で定義されています。

参照元 CDocLineMgr::WriteFile().

const char* CEOL::GetUnicodeValue ( ) const [inline]

Unicode版GetValue 2002/5/9 Frozen

CEol.h の 77 行で定義されています。

参照元 CDocLineMgr::WriteFile().

const char* CEOL::GetValue ( void ) const [inline]

現在のEOL文字列先頭へのポインタを取得

CEol.h の 75 行で定義されています。

参照元 CEditView::Command_CHAR()・CEditView::Command_COPY()・CFileLoad::ReadLine()・CDocLineMgr::WriteFile().

void CEOL::Init ( void ) [inline]

CEol.h の 57 行で定義されています。

参照先 EOL_NONE.

CEOL::operator enumEOLType ( void ) const [inline]

CEol.h の 87 行で定義されています。

bool CEOL::operator!= ( enumEOLType t ) const [inline]

CEol.h の 84 行で定義されています。

const CEOL& CEOL::operator= ( const CEOL & t ) [inline]

CEol.h の 85 行で定義されています。

参照先 m_enumEOLType.

bool CEOL::operator== ( enumEOLType t ) const [inline]

CEol.h の 83 行で定義されています。

bool CEOL::SetType ( enumEOLType t )

行末種別の設定。

引数:
t 行末種別
戻り値:
true | 正常終了。設定が反映された。
false | 異常終了。強制的にCRLFに設定。

CEol.cpp の 93 行で定義されています。

参照先 EOL_CR・EOL_CRLF・EOL_NONE・m_enumEOLType.

参照元 CLayoutMgr::CreateLayout()・CDocLineMgr::DeleteData_CDocLineMgr()・GetNextLine()・CFileLoad::GetNextLineW()・CFileLoad::GetNextLineWB()・CEditDoc::Init()・CDocLineMgr::InsertData_CDocLineMgr().

変数

const int CEOL::gm_pnEolLenArr [static, private]

初期値:

 {
    LEN_EOL_NONE            ,
    LEN_EOL_CRLF            ,
    LEN_EOL_LFCR            ,
    LEN_EOL_LF              ,
    LEN_EOL_CR

}
行終端子のデータ長の配列

CEol.h の 52 行で定義されています。

参照元 GetEOLType()・GetEOLTypeUni()・GetEOLTypeUniBE().

const char * CEOL::gm_pszEolDataArr [static, private]

初期値:

 {
    "",
    "\x0d\x0a",
    "\x0a\x0d",
    "\x0a",
    "\x0d"
}
行終端子のデータの配列

CEol.h の 49 行で定義されています。

参照元 GetEOLType().

const char * CEOL::gm_pszEolNameArr [static, private]

初期値:

 {

    "改行無",
    "CRLF",
    "LFCR",
    "LF",
    "CR"
}

CEol.h の 53 行で定義されています。

const wchar_t * CEOL::gm_pszEolUnicodeBEDataArr [static, private]

初期値:

 {
    L"",
    (const wchar_t*)"\x00\x0d\x00\x0a\x00",
    (const wchar_t*)"\x00\x0a\x00\x0d\x00",
    (const wchar_t*)"\x00\x0a\x00",
    (const wchar_t*)"\x00\x0d\x00"
}
行終端子のデータの配列(UnicodeBE版) 2000.05.30 Moca

CEol.h の 51 行で定義されています。

参照元 GetEOLTypeUniBE().

const wchar_t * CEOL::gm_pszEolUnicodeDataArr [static, private]

初期値:

 {
    L"",
    L"\x0d\x0a",
    L"\x0a\x0d",
    L"\x0a",
    L"\x0d"
}
行終端子のデータの配列(Unicode版) 2000/05/09 Frozen

CEol.h の 50 行で定義されています。

参照元 GetEOLTypeUni().

enumEOLType CEOL::m_enumEOLType [private]

改行コードの種類

CEol.h の 94 行で定義されています。

参照元 operator=()・SetType().

このクラスの説明は次のファイルから生成されました:
  • CEol.h
  • CEol.cpp
Sakura-Editorに対してSat Oct 27 02:35:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CEOL メンバ一覧

これは全メンバの一覧です。CEOL継承メンバも含んでいます。

CEOL() | CEOL | [inline]
CEOL(enumEOLType t) | CEOL | [inline]
GetEOLType(const char *pszData, int nDataLen) | CEOL | [static]
GetEOLTypeUni(const wchar_t *pszData, int nDataLen) | CEOL | [static]
GetEOLTypeUniBE(const wchar_t *pszData, int nDataLen) | CEOL | [static]
GetLen(void) const | CEOL | [inline]
GetName(void) const | CEOL | [inline]
GetType(void) const | CEOL | [inline]
GetTypeFromString(const char *pszData, int nDataLen) | CEOL | [inline]
GetUnicodeBEValue(void) const | CEOL | [inline]
GetUnicodeValue() const | CEOL | [inline]
GetValue(void) const | CEOL | [inline]
gm_pnEolLenArr | CEOL | [private, static]
gm_pszEolDataArr | CEOL | [private, static]
gm_pszEolNameArr | CEOL | [private, static]
gm_pszEolUnicodeBEDataArr | CEOL | [private, static]
gm_pszEolUnicodeDataArr | CEOL | [private, static]
Init(void) | CEOL | [inline]
m_enumEOLType | CEOL | [private]
operator enumEOLType(void) const | CEOL | [inline]
operator!=(enumEOLType t) const | CEOL | [inline]
operator=(const CEOL &t) | CEOL | [inline]
operator==(enumEOLType t) const | CEOL | [inline]
SetType(enumEOLType t) | CEOL |

Sakura-Editorに対してSat Oct 27 02:35:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CError_FileOpen

  • 構成
  • クラス階層
  • 構成メンバ

クラス CError_FileOpen

ファイルのオープンに失敗したときに送出する例外 [詳細]

#include <CFileLoad.h>

説明

ファイルのオープンに失敗したときに送出する例外

CFileLoad.h の 48 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CFileLoad.h
Sakura-Editorに対してSat Oct 27 02:35:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CError_FileRead

  • 構成
  • クラス階層
  • 構成メンバ

クラス CError_FileRead

ファイルの読み込みに失敗したときに放出する例外 [詳細]

#include <CFileLoad.h>

説明

ファイルの読み込みに失敗したときに放出する例外

CFileLoad.h の 55 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CFileLoad.h
Sakura-Editorに対してSat Oct 27 02:35:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CError_FileWrite

  • 構成
  • クラス階層
  • 構成メンバ

クラス CError_FileWrite

ファイルの書き込みに失敗したときに送出する例外 [詳細]

#include <CFileWrite.h>

説明

ファイルの書き込みに失敗したときに送出する例外

CFileWrite.h の 29 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CFileWrite.h
Sakura-Editorに対してSat Oct 27 02:35:09 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CESI

  • 構成
  • クラス階層
  • 構成メンバ

クラス CESI

#include <CESI.h>

CESIのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 型

enum | enum_CESI_public_constants { NUM_OF_MBCODE = CODE_CODEMAX - 2 }

Public メソッド

CESI ()
CESI (const char *pS, const int nLen)
bool | ScanEncoding (const char *, const int)
int | DetectUnicode (WCCODE_INFO *)
int | DetectMultibyte (MBCODE_INFO *)

Private 変数

MBCODE_INFO | m_pEI [NUM_OF_MBCODE]
マルチバイト系コード情報
UNICODE_INFO m_WEI
ユニコード系コード情報

説明

CESI.h の 46 行で定義されています。

列挙型

enum CESI::enum_CESI_public_constants

列挙型の値:
NUM_OF_MBCODE

CESI.h の 51 行で定義されています。

コンストラクタとデストラクタ

CESI::CESI ( ) [inline]

CESI.h の 55 行で定義されています。

CESI::CESI | ( | const char * | pS,
 |  | const int | nLen
 | ) | [inline]

CESI.h の 56 行で定義されています。

参照先 ScanEncoding().

関数

int CESI::DetectMultibyte ( MBCODE_INFO * pEI_result )

マルチバイト系文字コードを判定.

戻り値:
判定ポイント（特有バイト数 － 不正バイト数）の最も大きいものを返す． pEI_result: 判定ポイントが最も高かった文字コードの詳細．

CESI.cpp の 124 行で定義されています。

参照先 m_pEI・NUM_OF_MBCODE.

int CESI::DetectUnicode ( WCCODE_INFO * pEI_result )

Unicode を判定.

戻り値:
正の数： Unicode らしいと判断された． 負の数： Unicode BE らしいと判断された． ゼロ： どちらともいえない． pEI_result： 戻り値がゼロ以外の場合に限り，詳細情報を返す．

CESI.cpp の 63 行で定義されています。

参照先 m_WEI・WC_EncodingInfo_t::nCRorLF・UnicodeInfo_t::nCRorLF_ascii・UnicodeInfo_t::Uni・UnicodeInfo_t::UniBe.

bool CESI::ScanEncoding | ( | const char * | pS,
 |  | const | int
 | ) |

テキストの文字コードをスキャンする．

CESI.cpp の 38 行で定義されています。

参照先 Charcode::GetEncdInf_EucJp()・Charcode::GetEncdInf_Jis()・Charcode::GetEncdInf_SJis()・Charcode::GetEncdInf_Uni()・Charcode::GetEncdInf_Utf7()・Charcode::GetEncdInf_Utf8()・m_pEI・m_WEI・NULL.

参照元 CESI()・CMemory::CheckKanjiCode().

変数

MBCODE_INFO CESI::m_pEI[NUM_OF_MBCODE] [private]

マルチバイト系コード情報

CESI.h の 63 行で定義されています。

参照元 DetectMultibyte()・ScanEncoding().

UNICODE_INFO CESI::m_WEI [private]

ユニコード系コード情報

CESI.h の 64 行で定義されています。

参照元 DetectUnicode()・ScanEncoding().

このクラスの説明は次のファイルから生成されました:
  • CESI.h
  • CESI.cpp
Sakura-Editorに対してSat Oct 27 02:35:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CESI メンバ一覧

これは全メンバの一覧です。CESI継承メンバも含んでいます。

CESI() | CESI | [inline]
CESI(const char *pS, const int nLen) | CESI | [inline]
DetectMultibyte(MBCODE_INFO *) | CESI |
DetectUnicode(WCCODE_INFO *) | CESI |
enum_CESI_public_constants Enum | CESI |
m_pEI | CESI | [private]
m_WEI | CESI | [private]
NUM_OF_MBCODE Enum 値 | CESI |
ScanEncoding(const char *, const int) | CESI |

Sakura-Editorに対してSat Oct 27 02:35:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CFileExt

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFileExt

#include <CFileExt.h>

CFileExtのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CFileExt ()
~CFileExt ()
bool | AppendExt (const char *pszName, const char *pszExt)
bool | AppendExtRaw (const char *pszName, const char *pszExt)
const char * | GetName (int nIndex)
const char * | GetExt (int nIndex)
const char * | GetExtFilter (void)
int | GetCount (void)

Protected メソッド

bool | ConvertTypesExtToDlgExt (const char *pszSrcExt, char *pszDstExt)

Private 変数

int | m_nCount
FileExtInfoTag * m_puFileExtInfo
char | m_szFilter [4096]

構成

struct | FileExtInfoTag

説明

CFileExt.h の 36 行で定義されています。

コンストラクタとデストラクタ

CFileExt::CFileExt ( )

CFileExt.cpp の 37 行で定義されています。

参照先 m_nCount・m_puFileExtInfo・m_szFilter・NULL.

CFileExt::~CFileExt ( )

CFileExt.cpp の 52 行で定義されています。

参照先 m_nCount・m_puFileExtInfo・NULL.

関数

bool CFileExt::AppendExt | ( | const char * | pszName,
 |  | const char * | pszExt
 | ) |

CFileExt.cpp の 59 行で定義されています。

参照先 AppendExtRaw()・ConvertTypesExtToDlgExt().

参照元 CDlgOpenFile::DoModalOpenDlg().

bool CFileExt::AppendExtRaw | ( | const char * | pszName,
 |  | const char * | pszExt
 | ) |

CFileExt.cpp の 67 行で定義されています。

参照先 m_nCount・m_puFileExtInfo・NULL.

参照元 AppendExt()・CDlgOpenFile::DoModal_GetOpenFileName()・CDlgOpenFile::DoModal_GetSaveFileName()・CDlgOpenFile::DoModalOpenDlg()・CDlgOpenFile::DoModalSaveDlg().

bool CFileExt::ConvertTypesExtToDlgExt | ( | const char * | pszSrcExt,
 |  | char * | pszDstExt
 | ) | [protected]

CFileExt.cpp の 136 行で定義されています。

参照先 NULL.

参照元 AppendExt().

int CFileExt::GetCount ( void ) [inline]

CFileExt.h の 50 行で定義されています。

const char * CFileExt::GetExt ( int nIndex )

CFileExt.cpp の 100 行で定義されています。

参照先 m_nCount・m_puFileExtInfo・CFileExt::FileExtInfoTag::m_szExt・NULL.

const char * CFileExt::GetExtFilter ( void )

CFileExt.cpp の 107 行で定義されています。

参照先 m_nCount・m_puFileExtInfo・m_szFilter.

参照元 CDlgOpenFile::DoModal_GetOpenFileName()・CDlgOpenFile::DoModal_GetSaveFileName()・CDlgOpenFile::DoModalSaveDlg().

const char * CFileExt::GetName ( int nIndex )

CFileExt.cpp の 93 行で定義されています。

参照先 m_nCount・m_puFileExtInfo・CFileExt::FileExtInfoTag::m_szName・NULL.

変数

int CFileExt::m_nCount [private]

CFileExt.h の 62 行で定義されています。

参照元 AppendExtRaw()・CFileExt()・GetExt()・GetExtFilter()・GetName()・~CFileExt().

FileExtInfoTag* CFileExt::m_puFileExtInfo [private]

CFileExt.h の 63 行で定義されています。

参照元 AppendExtRaw()・CFileExt()・GetExt()・GetExtFilter()・GetName()・~CFileExt().

char CFileExt::m_szFilter[4096] [private]

CFileExt.h の 64 行で定義されています。

参照元 CFileExt()・GetExtFilter().

このクラスの説明は次のファイルから生成されました:
  • CFileExt.h
  • CFileExt.cpp
Sakura-Editorに対してSat Oct 27 02:35:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFileExt メンバ一覧

これは全メンバの一覧です。CFileExt継承メンバも含んでいます。

AppendExt(const char *pszName, const char *pszExt) | CFileExt |
AppendExtRaw(const char *pszName, const char *pszExt) | CFileExt |
CFileExt() | CFileExt |
ConvertTypesExtToDlgExt(const char *pszSrcExt, char *pszDstExt) | CFileExt | [protected]
GetCount(void) | CFileExt | [inline]
GetExt(int nIndex) | CFileExt |
GetExtFilter(void) | CFileExt |
GetName(int nIndex) | CFileExt |
m_nCount | CFileExt | [private]
m_puFileExtInfo | CFileExt | [private]
m_szFilter | CFileExt | [private]
~CFileExt() | CFileExt |

Sakura-Editorに対してSat Oct 27 02:35:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 CFileExt::FileExtInfoTag

  • 構成
  • クラス階層
  • 構成メンバ
CFileExt::FileExtInfoTag

構造体 CFileExt::FileExtInfoTag

すべてのメンバ一覧

Public 変数

char | m_szName [64]
char | m_szExt [64 *3+1]

説明

CFileExt.h の 57 行で定義されています。

変数

char CFileExt::FileExtInfoTag::m_szExt[64 *3+1]

CFileExt.h の 59 行で定義されています。

参照元 CFileExt::GetExt().

char CFileExt::FileExtInfoTag::m_szName[64]

CFileExt.h の 58 行で定義されています。

参照元 CFileExt::GetName().

この構造体の説明は次のファイルから生成されました:
  • CFileExt.h
Sakura-Editorに対してSat Oct 27 02:35:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFileExt::FileExtInfoTag メンバ一覧

これは全メンバの一覧です。CFileExt::FileExtInfoTag継承メンバも含んでいます。

m_szExt | CFileExt::FileExtInfoTag
m_szName | CFileExt::FileExtInfoTag

Sakura-Editorに対してSat Oct 27 02:35:10 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CFileLoad

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFileLoad

#include <CFileLoad.h>

CFileLoadのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CFileLoad (void)
~CFileLoad (void)
enumCodeType | FileOpen (LPCTSTR, int, int, BOOL *pbBomExist=NULL)
void | FileClose (void)
const char * | ReadLine (int *, CEOL *)
BOOL | GetFileTime (FILETIME *, FILETIME *, FILETIME *)
ファイルの日時を取得する
BOOL | IsBomExist (void)
開いたファイルにはBOMがあるか？
int | GetPercent (void)
現在の進行率を取得する(0% - 100%) 若干誤差が出る
int | GetFileSize (void)
ファイルサイズを取得する

Static Public 変数

static const int | gm_nBufSizeDef = 32768

Protected 型

enum | enumFileLoadMode { FLMODE_CLOSE = 0, FLMODE_OPEN, FLMODE_REDY, FLMODE_READBUFEND }

Protected メソッド

CFileLoad (const CFileLoad &)
CFileLoad & | operator= (const CFileLoad &)
void | Buffering (void)
void | ReadBufEmpty (void)
const char * | GetNextLineCharCode (const char *, int, int *, int *, CEOL *, int *)
int | Read (void *, size_t)
DWORD | FilePointer (DWORD, DWORD)

Static Protected メソッド

static const wchar_t * | GetNextLineW (const wchar_t *, int, int *, int *, CEOL *)
static const wchar_t * | GetNextLineWB (const wchar_t *, int, int *, int *, CEOL *)

Protected 変数

CMemory m_cmemLine
HANDLE | m_hFile
int | m_nFileSize
int | m_nFileDataLen
int | m_nReadLength
int | m_nLineIndex
int | m_CharCode
BOOL | m_bBomExist
int | m_nFlag
enumFileLoadMode m_eMode
char * | m_pReadBuf
int | m_nReadBufSize
int | m_nReadDataLen
int | m_nReadBufOffSet

説明

文字コードを変換してデータを行単位で取得するためのクラス
覚え書き:
明示的にFileOpenメンバを呼び出さないと使えない ファイルポインタを共有すると困るので、クラスのコピー禁止

CFileLoad.h の 64 行で定義されています。

列挙型

enum CFileLoad::enumFileLoadMode [protected]

列挙型の値:
FLMODE_CLOSE | 初期状態
FLMODE_OPEN | ファイルオープンのみ
FLMODE_REDY | 順アクセスOK
FLMODE_READBUFEND | ファイルの終端までバッファに入れた

CFileLoad.h の 137 行で定義されています。

コンストラクタとデストラクタ

CFileLoad::CFileLoad ( void )

コンストラクタ

CFileLoad.cpp の 60 行で定義されています。

参照先 FALSE・FLMODE_CLOSE・m_bBomExist・m_CharCode・m_eMode・m_hFile・m_nFileDataLen・m_nFileSize・m_nFlag・m_nLineIndex・m_nReadBufOffSet・m_nReadBufSize・m_nReadDataLen・m_nReadLength・m_pReadBuf・NULL.

CFileLoad::~CFileLoad ( void )

デストラクタ

CFileLoad.cpp の 80 行で定義されています。

参照先 FileClose()・m_hFile・m_pReadBuf・NULL.

CFileLoad::CFileLoad ( const CFileLoad & ) [inline, protected]

CFileLoad.h の 105 行で定義されています。

関数

void CFileLoad::Buffering ( void ) [protected]

バッファにデータを読み込む

覚え書き:
エラー時は throw する

CFileLoad.cpp の 441 行で定義されています。

参照先 FLMODE_READBUFEND・gm_nBufSizeDef・m_eMode・m_nFileSize・m_nReadBufOffSet・m_nReadBufSize・m_nReadDataLen・m_pReadBuf・NULL・Read().

参照元 FileOpen()・ReadLine().

void CFileLoad::FileClose ( void )

ファイルを閉じる 読み込み用バッファとm_memLineもクリアされる

CFileLoad.cpp の 191 行で定義されています。

参照先 FALSE・FLMODE_CLOSE・m_bBomExist・m_CharCode・m_cmemLine・m_eMode・m_hFile・m_nFileDataLen・m_nFileSize・m_nFlag・m_nLineIndex・m_nReadLength・NULL・ReadBufEmpty()・CMemory::SetDataSz().

参照元 FileOpen()・CDocLineMgr::ReadFile()・~CFileLoad().

enumCodeType CFileLoad::FileOpen | ( | LPCTSTR | pFileName,
 |  | int | CharCode,
 |  | int | nFlag,
 |  | BOOL * | pbBomExist = NULL
 | ) |

ファイルを開く

引数:
pFileName | [in] ファイル名
CharCode | [in] ファイルの文字コード．
nFlag | [in] 文字コードのオプション
pbBomExist | [out] BOMの有無
日付:
2003.06.08 Moca CODE_AUTODETECTを指定できるように変更

2003.07.26 ryoji BOM引数追加

CFileLoad.cpp の 99 行で定義されています。

参照先 Buffering()・CMemory::CheckKanjiCode()・CODE_AUTODETECT・CODE_CODEMAX・CODE_SJIS・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF8・Charcode::DetectUnicodeBom()・FALSE・FileClose()・FLMODE_REDY・GetFileSize()・m_bBomExist・m_CharCode・m_eMode・m_hFile・m_nFileDataLen・m_nFileSize・m_nFlag・m_nReadBufOffSet・m_nReadDataLen・m_pReadBuf・NULL・TRUE.

参照元 CEditView::DoGrepFile()・CDocLineMgr::ReadFile().

DWORD CFileLoad::FilePointer | ( | DWORD | ,
 |  | DWORD |
 | ) | [inline, protected]

CFileLoad.h の 171 行で定義されています。

参照先 INVALID_SET_FILE_POINTER・m_hFile・NULL.

int CFileLoad::GetFileSize ( void ) [inline]

ファイルサイズを取得する

CFileLoad.h の 97 行で定義されています。

参照元 CEditView::DoGrepFile()・FileOpen().

BOOL CFileLoad::GetFileTime | ( | FILETIME * | ,
 |  | FILETIME * | ,
 |  | FILETIME * |
 | ) | [inline]

ファイルの日時を取得する

CFileLoad.h の 157 行で定義されています。

参照先 m_hFile.

参照元 CDocLineMgr::ReadFile().

const char * CFileLoad::GetNextLineCharCode | ( | const char * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol,
 |  | int * | pnEolLen
 | ) | [protected]

GetNextLineの汎用文字コード版

引数:
pData | [in] 検索文字列
nDataLen | [in] 検索文字列のバイト数
pnLineLen | [out] 1行のバイト数を返すただしEOLは含まない
pnBgn | [i/o] 検索文字列のバイト単位のオフセット位置
pcEol | [i/o] EOL
pnEolLen | [out] EOLのバイト数 (Unicodeで困らないように)

CFileLoad.cpp の 554 行で定義されています。

参照先 CODE_UNICODE・CODE_UNICODEBE・CEOL::GetLen()・GetNextLine()・GetNextLineW()・GetNextLineWB()・m_CharCode.

参照元 ReadLine().

const wchar_t * CFileLoad::GetNextLineW | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) | [static, protected]

GetNextLineのwchar_t版 GetNextLineより作成 static メンバ関数

引数:
pData | [in] 検索文字列
nDataLen | [in] 検索文字列の文字数
pnLineLen | [out] 1行の文字数を返すただしEOLは含まない
pnBgn | [i/o] 検索文字列のオフセット位置
pcEol | [i/o] EOL

CFileLoad.cpp の 604 行で定義されています。

参照先 EOL_NONE・CEOL::GetEOLTypeUni()・NULL・CEOL::SetType().

参照元 GetNextLineCharCode().

const wchar_t * CFileLoad::GetNextLineWB | ( | const wchar_t * | pData,
 |  | int | nDataLen,
 |  | int * | pnLineLen,
 |  | int * | pnBgn,
 |  | CEOL * | pcEol
 | ) | [static, protected]

GetNextLineのwchar_t版(ビックエンディアン用) GetNextLineより作成 static メンバ関数

引数:
pData | [in] 検索文字列
nDataLen | [in] 検索文字列の文字数
pnLineLen | [out] 1行の文字数を返すただしEOLは含まない
pnBgn | [i/o] 検索文字列のオフセット位置
pcEol | [i/o] EOL

CFileLoad.cpp の 638 行で定義されています。

参照先 EOL_NONE・CEOL::GetEOLTypeUniBE()・NULL・CEOL::SetType().

参照元 GetNextLineCharCode().

int CFileLoad::GetPercent ( void )

現在の進行率を取得する(0% - 100%) 若干誤差が出る

現在の進行率を取得する

戻り値:
0% - 100% 若干誤差が出る

CFileLoad.cpp の 539 行で定義されています。

参照先 m_nFileDataLen・m_nReadLength.

参照元 CEditView::DoGrepFile()・CDocLineMgr::ReadFile().

BOOL CFileLoad::IsBomExist ( void ) [inline]

開いたファイルにはBOMがあるか？

CFileLoad.h の 91 行で定義されています。

CFileLoad& CFileLoad::operator= ( const CFileLoad & ) [inline, protected]

CFileLoad.h の 106 行で定義されています。

int CFileLoad::Read | ( | void * | ,
 |  | size_t |
 | ) | [inline, protected]

CFileLoad.h の 162 行で定義されています。

参照先 FALSE・m_hFile・NULL.

参照元 Buffering().

void CFileLoad::ReadBufEmpty ( void ) [protected]

バッファクリア

CFileLoad.cpp の 484 行で定義されています。

参照先 m_nReadBufOffSet・m_nReadBufSize・m_nReadDataLen・m_pReadBuf・NULL.

参照元 FileClose().

const char * CFileLoad::ReadLine | ( | int * | pnLineLen,
 |  | CEOL * | pcEol
 | ) |

次の論理行を文字コード変換してロードする 順次アクセス専用 GetNextLineのような動作をする

戻り値:
NULL以外 1行を保持しているデータの先頭アドレスを返す NULL データがなかった
引数:
pnLineLen | [out] 改行コード長を含む一行のデータ長
pcEol | [i/o]

CFileLoad.cpp の 259 行で定義されています。

参照先 CMemory::Append()・Buffering()・CODE_EUC・CODE_JIS・CODE_SJIS・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF7・CODE_UTF8・CMemory::EUCToSJIS()・FLMODE_REDY・CEOL::GetLen()・CMemory::GetLength()・GetNextLineCharCode()・CMemory::GetPtr()・CEOL::GetValue()・CMemory::JIStoSJIS()・m_CharCode・m_cmemLine・m_eMode・m_nFlag・m_nLineIndex・m_nReadBufOffSet・m_nReadDataLen・m_nReadLength・m_pReadBuf・MYTRACE・NULL・CMemory::SetData()・CMemory::SetDataSz()・CMemory::UnicodeBEToSJIS()・CMemory::UnicodeToSJIS()・CMemory::UTF7ToSJIS()・CMemory::UTF8ToSJIS().

参照元 CEditView::DoGrepFile()・CDocLineMgr::ReadFile().

変数

const int CFileLoad::gm_nBufSizeDef = 32768 [static]

ロード用バッファサイズの初期値

CFileLoad.h の 99 行で定義されています。

参照元 Buffering().

BOOL CFileLoad::m_bBomExist [protected]

CFileLoad.h の 133 行で定義されています。

参照元 CFileLoad()・FileClose()・FileOpen().

int CFileLoad::m_CharCode [protected]

CFileLoad.h の 132 行で定義されています。

参照元 CFileLoad()・FileClose()・FileOpen()・GetNextLineCharCode()・ReadLine().

CMemory CFileLoad::m_cmemLine [protected]

CFileLoad.h の 124 行で定義されています。

参照元 FileClose()・ReadLine().

enumFileLoadMode CFileLoad::m_eMode [protected]

CFileLoad.h の 143 行で定義されています。

参照元 Buffering()・CFileLoad()・FileClose()・FileOpen()・ReadLine().

HANDLE CFileLoad::m_hFile [protected]

CFileLoad.h の 127 行で定義されています。

参照元 CFileLoad()・FileClose()・FileOpen()・FilePointer()・GetFileTime()・Read()・~CFileLoad().

int CFileLoad::m_nFileDataLen [protected]

CFileLoad.h の 129 行で定義されています。

参照元 CFileLoad()・FileClose()・FileOpen()・GetPercent().

int CFileLoad::m_nFileSize [protected]

CFileLoad.h の 128 行で定義されています。

参照元 Buffering()・CFileLoad()・FileClose()・FileOpen().

int CFileLoad::m_nFlag [protected]

CFileLoad.h の 134 行で定義されています。

参照元 CFileLoad()・FileClose()・FileOpen()・ReadLine().

int CFileLoad::m_nLineIndex [protected]

CFileLoad.h の 131 行で定義されています。

参照元 CFileLoad()・FileClose()・ReadLine().

int CFileLoad::m_nReadBufOffSet [protected]

CFileLoad.h の 149 行で定義されています。

参照元 Buffering()・CFileLoad()・FileOpen()・ReadBufEmpty()・ReadLine().

int CFileLoad::m_nReadBufSize [protected]

CFileLoad.h の 147 行で定義されています。

参照元 Buffering()・CFileLoad()・ReadBufEmpty().

int CFileLoad::m_nReadDataLen [protected]

CFileLoad.h の 148 行で定義されています。

参照元 Buffering()・CFileLoad()・FileOpen()・ReadBufEmpty()・ReadLine().

int CFileLoad::m_nReadLength [protected]

CFileLoad.h の 130 行で定義されています。

参照元 CFileLoad()・FileClose()・GetPercent()・ReadLine().

char* CFileLoad::m_pReadBuf [protected]

CFileLoad.h の 146 行で定義されています。

参照元 Buffering()・CFileLoad()・FileOpen()・ReadBufEmpty()・ReadLine()・~CFileLoad().

このクラスの説明は次のファイルから生成されました:
  • CFileLoad.h
  • CFileLoad.cpp
Sakura-Editorに対してSat Oct 27 02:35:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFileLoad メンバ一覧

これは全メンバの一覧です。CFileLoad継承メンバも含んでいます。

Buffering(void) | CFileLoad | [protected]
CFileLoad(void) | CFileLoad |
CFileLoad(const CFileLoad &) | CFileLoad | [inline, protected]
enumFileLoadMode Enum | CFileLoad | [protected]
FileClose(void) | CFileLoad |
FileOpen(LPCTSTR, int, int, BOOL *pbBomExist=NULL) | CFileLoad |
FilePointer(DWORD, DWORD) | CFileLoad | [inline, protected]
FLMODE_CLOSE Enum 値 | CFileLoad | [protected]
FLMODE_OPEN Enum 値 | CFileLoad | [protected]
FLMODE_READBUFEND Enum 値 | CFileLoad | [protected]
FLMODE_REDY Enum 値 | CFileLoad | [protected]
GetFileSize(void) | CFileLoad | [inline]
GetFileTime(FILETIME *, FILETIME *, FILETIME *) | CFileLoad | [inline]
GetNextLineCharCode(const char *, int, int *, int *, CEOL *, int *) | CFileLoad | [protected]
GetNextLineW(const wchar_t *, int, int *, int *, CEOL *) | CFileLoad | [protected, static]
GetNextLineWB(const wchar_t *, int, int *, int *, CEOL *) | CFileLoad | [protected, static]
GetPercent(void) | CFileLoad |
gm_nBufSizeDef | CFileLoad | [static]
IsBomExist(void) | CFileLoad | [inline]
m_bBomExist | CFileLoad | [protected]
m_CharCode | CFileLoad | [protected]
m_cmemLine | CFileLoad | [protected]
m_eMode | CFileLoad | [protected]
m_hFile | CFileLoad | [protected]
m_nFileDataLen | CFileLoad | [protected]
m_nFileSize | CFileLoad | [protected]
m_nFlag | CFileLoad | [protected]
m_nLineIndex | CFileLoad | [protected]
m_nReadBufOffSet | CFileLoad | [protected]
m_nReadBufSize | CFileLoad | [protected]
m_nReadDataLen | CFileLoad | [protected]
m_nReadLength | CFileLoad | [protected]
m_pReadBuf | CFileLoad | [protected]
operator=(const CFileLoad &) | CFileLoad | [inline, protected]
Read(void *, size_t) | CFileLoad | [inline, protected]
ReadBufEmpty(void) | CFileLoad | [protected]
ReadLine(int *, CEOL *) | CFileLoad |
~CFileLoad(void) | CFileLoad |

Sakura-Editorに対してSat Oct 27 02:35:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CFileWrite

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFileWrite

ファイル書き込みクラス（Cのライブラリ関数を使用して実装） [詳細]

#include <CFileWrite.h>

すべてのメンバ一覧

Public メソッド

CFileWrite (const TCHAR *pszPath)
~CFileWrite ()
void | Write (const void *buffer, size_t size)

Private 変数

FILE * | m_hFile
DWORD | m_dwFileAttribute
TCHAR * | m_pszPath
bool | m_ChangeAttribute

説明

ファイル書き込みクラス（Cのライブラリ関数を使用して実装）

CFileWrite.h の 34 行で定義されています。

コンストラクタとデストラクタ

CFileWrite::CFileWrite ( const TCHAR * pszPath )

CFileWrite.cpp の 20 行で定義されています。

参照先 m_ChangeAttribute・m_dwFileAttribute・m_hFile・m_pszPath・NULL.

CFileWrite::~CFileWrite ( )

CFileWrite.cpp の 47 行で定義されています。

参照先 m_ChangeAttribute・m_dwFileAttribute・m_hFile・m_pszPath.

関数

void CFileWrite::Write | ( | const void * | buffer,
 |  | size_t | size
 | ) | [inline]

CFileWrite.h の 39 行で定義されています。

参照先 m_hFile.

参照元 CEditView::Command_PUTFILE()・CDocLineMgr::WriteFile().

変数

bool CFileWrite::m_ChangeAttribute [private]

CFileWrite.h の 48 行で定義されています。

参照元 CFileWrite()・~CFileWrite().

DWORD CFileWrite::m_dwFileAttribute [private]

CFileWrite.h の 46 行で定義されています。

参照元 CFileWrite()・~CFileWrite().

FILE* CFileWrite::m_hFile [private]

CFileWrite.h の 45 行で定義されています。

参照元 CFileWrite()・Write()・~CFileWrite().

TCHAR* CFileWrite::m_pszPath [private]

CFileWrite.h の 47 行で定義されています。

参照元 CFileWrite()・~CFileWrite().

このクラスの説明は次のファイルから生成されました:
  • CFileWrite.h
  • CFileWrite.cpp
Sakura-Editorに対してSat Oct 27 02:35:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFileWrite メンバ一覧

これは全メンバの一覧です。CFileWrite継承メンバも含んでいます。

CFileWrite(const TCHAR *pszPath) | CFileWrite |
m_ChangeAttribute | CFileWrite | [private]
m_dwFileAttribute | CFileWrite | [private]
m_hFile | CFileWrite | [private]
m_pszPath | CFileWrite | [private]
Write(const void *buffer, size_t size) | CFileWrite | [inline]
~CFileWrite() | CFileWrite |

Sakura-Editorに対してSat Oct 27 02:35:11 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CFuncInfo

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFuncInfo

アウトライン解析 データ要素 [詳細]

#include <CFuncInfo.h>

CFuncInfoのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CFuncInfo (int, int, const char *, int)
~CFuncInfo ()
bool | IsAddClipText (void)
クリップボードに追加する要素か？

Public 変数

int | m_nFuncLineCRLF
int | m_nFuncLineLAYOUT
CMemory m_cmemFuncName
int | m_nInfo
int | m_nDepth

説明

アウトライン解析 データ要素

CFuncInfo.h の 30 行で定義されています。

コンストラクタとデストラクタ

CFuncInfo::CFuncInfo | ( | int | nFuncLineCRLF,
 |  | int | nFuncLineLAYOUT,
 |  | const char * | pszFuncName,
 |  | int | nInfo
 | ) |

< 深さ

引数:
nFuncLineCRLF | 関数のある行(CRLF単位)
nFuncLineLAYOUT | 関数のある行(折り返し単位)
pszFuncName | 関数名
nInfo | 付加情報

CFuncInfo.cpp の 18 行で定義されています。

参照先 m_cmemFuncName・m_nFuncLineCRLF・m_nFuncLineLAYOUT・m_nInfo・CMemory::SetDataSz().

CFuncInfo::~CFuncInfo ( )

CFuncInfo.cpp の 41 行で定義されています。

関数

bool CFuncInfo::IsAddClipText ( void ) [inline]

クリップボードに追加する要素か？

CFuncInfo.h の 37 行で定義されています。

参照先 FUNCINFO_NOCLIPTEXT・m_nInfo.

参照元 CDlgFuncList::SetTree().

変数

CMemory CFuncInfo::m_cmemFuncName

関数名

CFuncInfo.h の 44 行で定義されています。

参照元 _CompareFunc_()・CFuncInfo()・CDlgFuncList::SetTree()・CDlgFuncList::SetTreeJava().

int CFuncInfo::m_nDepth

深さ

CFuncInfo.h の 46 行で定義されています。

参照元 CFuncInfoArr::AppendData()・CDlgFuncList::SetTree().

int CFuncInfo::m_nFuncLineCRLF

関数のある行(CRLF単位)

CFuncInfo.h の 39 行で定義されています。

参照元 _CompareFunc_()・CFuncInfo()・CDlgFuncList::GetData()・CDlgFuncList::SetTree().

int CFuncInfo::m_nFuncLineLAYOUT

関数のある行(折り返し単位)

CFuncInfo.h の 43 行で定義されています。

参照元 CFuncInfo()・CDlgFuncList::SetData()・CDlgFuncList::SetListVB()・CDlgFuncList::SetTree().

int CFuncInfo::m_nInfo

付加情報

CFuncInfo.h の 45 行で定義されています。

参照元 _CompareFunc_()・CFuncInfo()・IsAddClipText().

このクラスの説明は次のファイルから生成されました:
  • CFuncInfo.h
  • CFuncInfo.cpp
Sakura-Editorに対してSat Oct 27 02:35:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncInfo メンバ一覧

これは全メンバの一覧です。CFuncInfo継承メンバも含んでいます。

CFuncInfo(int, int, const char *, int) | CFuncInfo |
IsAddClipText(void) | CFuncInfo | [inline]
m_cmemFuncName | CFuncInfo |
m_nDepth | CFuncInfo |
m_nFuncLineCRLF | CFuncInfo |
m_nFuncLineLAYOUT | CFuncInfo |
m_nInfo | CFuncInfo |
~CFuncInfo() | CFuncInfo |

Sakura-Editorに対してSat Oct 27 02:35:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CFuncInfoArr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFuncInfoArr

アウトライン解析 データ配列 [詳細]

#include <CFuncInfoArr.h>

CFuncInfoArrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CFuncInfoArr ()
~CFuncInfoArr ()
CFuncInfo * | GetAt (int)
void | AppendData (CFuncInfo *)
void | AppendData (int, int, const char *, int, int nDepth=0)
int | GetNum (void)
void | Empty (void)
void | DUMP (void)

Public 変数

char | m_szFilePath [_MAX_PATH+1]

Private 変数

int | m_nFuncInfoArrNum
CFuncInfo ** m_ppcFuncInfoArr

説明

アウトライン解析 データ配列

CFuncInfoArr.h の 23 行で定義されています。

コンストラクタとデストラクタ

CFuncInfoArr::CFuncInfoArr ( )

CFuncInfoArr.cpp の 23 行で定義されています。

参照先 m_nFuncInfoArrNum・m_ppcFuncInfoArr・NULL.

CFuncInfoArr::~CFuncInfoArr ( )

CFuncInfoArr.cpp の 34 行で定義されています。

参照先 Empty().

関数

void CFuncInfoArr::AppendData | ( | int | nFuncLineCRLF,
 |  | int | nFuncLineLAYOUT,
 |  | const char * | pszFuncName,
 |  | int | nInfo,
 |  | int | nDepth = 0
 | ) |

配列の最後にデータを追加する

日付:
2002.04.01 YAZAKI 深さ導入

CFuncInfoArr.cpp の 87 行で定義されています。

参照先 AppendData()・CFuncInfo::m_nDepth.

void CFuncInfoArr::AppendData ( CFuncInfo * pcFuncInfo )

配列の最後にデータを追加する

CFuncInfoArr.cpp の 69 行で定義されています。

参照先 m_nFuncInfoArrNum・m_ppcFuncInfoArr.

参照元 AppendData()・CEditDoc::MakeTopicList_wztxt().

void CFuncInfoArr::DUMP ( void )

CFuncInfoArr.cpp の 102 行で定義されています。

参照先 m_nFuncInfoArrNum・m_ppcFuncInfoArr・MYTRACE.

void CFuncInfoArr::Empty ( void )

CFuncInfoArr.cpp の 40 行で定義されています。

参照先 m_nFuncInfoArrNum・m_ppcFuncInfoArr・NULL.

参照元 ~CFuncInfoArr().

CFuncInfo * CFuncInfoArr::GetAt ( int )

CFuncInfoArr.cpp の 58 行で定義されています。

参照先 m_nFuncInfoArrNum・m_ppcFuncInfoArr・NULL.

参照元 _CompareFunc_()・CDlgFuncList::GetData()・CDlgFuncList::SetData()・CDlgFuncList::SetListVB()・CDlgFuncList::SetTree()・CDlgFuncList::SetTreeJava().

int CFuncInfoArr::GetNum ( void ) [inline]

CFuncInfoArr.h の 30 行で定義されています。

参照先 m_nFuncInfoArrNum.

参照元 CDlgFuncList::SetData()・CDlgFuncList::SetListVB()・CDlgFuncList::SetTree()・CDlgFuncList::SetTreeJava().

変数

int CFuncInfoArr::m_nFuncInfoArrNum [private]

配列要素数

CFuncInfoArr.h の 38 行で定義されています。

参照元 AppendData()・CFuncInfoArr()・DUMP()・Empty()・GetAt()・GetNum().

CFuncInfo** CFuncInfoArr::m_ppcFuncInfoArr [private]

配列

CFuncInfoArr.h の 39 行で定義されています。

参照元 AppendData()・CFuncInfoArr()・DUMP()・Empty()・GetAt().

char CFuncInfoArr::m_szFilePath[_MAX_PATH+1]

解析対象ファイル名

CFuncInfoArr.h の 36 行で定義されています。

参照元 CDlgFuncList::SetTree().

このクラスの説明は次のファイルから生成されました:
  • CFuncInfoArr.h
  • CFuncInfoArr.cpp
Sakura-Editorに対してSat Oct 27 02:35:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncInfoArr メンバ一覧

これは全メンバの一覧です。CFuncInfoArr継承メンバも含んでいます。

AppendData(CFuncInfo *) | CFuncInfoArr |
AppendData(int, int, const char *, int, int nDepth=0) | CFuncInfoArr |
CFuncInfoArr() | CFuncInfoArr |
DUMP(void) | CFuncInfoArr |
Empty(void) | CFuncInfoArr |
GetAt(int) | CFuncInfoArr |
GetNum(void) | CFuncInfoArr | [inline]
m_nFuncInfoArrNum | CFuncInfoArr | [private]
m_ppcFuncInfoArr | CFuncInfoArr | [private]
m_szFilePath | CFuncInfoArr |
~CFuncInfoArr() | CFuncInfoArr |

Sakura-Editorに対してSat Oct 27 02:35:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CFuncKeyWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFuncKeyWnd

ファンクションキーウィンドウ [詳細]

#include <CFuncKeyWnd.h>

CFuncKeyWndに対する継承グラフ

[凡例]
CFuncKeyWndのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CFuncKeyWnd ()
virtual | ~CFuncKeyWnd ()
HWND | Open (HINSTANCE, HWND, CEditDoc *, BOOL)
void | Close (void)
void | SizeBox_ONOFF (BOOL)
void | Timer_ONOFF (BOOL)

Protected メソッド

void | CreateButtons (void)
int | CalcButtonSize (void)
virtual void | AfterCreateWindow (void)
virtual LRESULT | OnTimer (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnCommand (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnSize (HWND, UINT, WPARAM, LPARAM)
* WM_SIZE処理 */
virtual LRESULT | OnDestroy (HWND, UINT, WPARAM, LPARAM)

Private 変数

const char * | m_pszClassName
CEditDoc * m_pCEditDoc
DLLSHAREDATA * m_pShareData
int | m_nCurrentKeyState
char | m_szFuncNameArr [12][256]
HWND | m_hwndButtonArr [12]
HFONT | m_hFont
BOOL | m_bSizeBox
HWND | m_hwndSizeBox
int | m_nTimerCount
int | m_nButtonGroupNum
int | m_nFuncCodeArr [12]

説明

ファンクションキーウィンドウ

CFuncKeyWnd.h の 26 行で定義されています。

コンストラクタとデストラクタ

CFuncKeyWnd::CFuncKeyWnd ( )

CFuncKeyWnd.cpp の 53 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・m_nCurrentKeyState・m_pCEditDoc・m_pShareData・m_pszClassName・CWnd::m_szClassInheritances・m_szFuncNameArr・NULL.

CFuncKeyWnd::~CFuncKeyWnd ( ) [virtual]

CFuncKeyWnd.cpp の 107 行で定義されています。

参照先 m_hFont.

関数

virtual void CFuncKeyWnd::AfterCreateWindow ( void ) [inline, protected, virtual]

CWndを再定義しています。

CFuncKeyWnd.h の 66 行で定義されています。

int CFuncKeyWnd::CalcButtonSize ( void ) [protected]

ボタンのサイズを計算

CFuncKeyWnd.cpp の 464 行で定義されています。

参照先 CWnd::m_hWnd・m_hwndButtonArr・m_hwndSizeBox・m_nButtonGroupNum・NULL・TRUE.

参照元 OnSize().

void CFuncKeyWnd::Close ( void )

CFuncKeyWnd.cpp の 237 行で定義されています。

参照先 CWnd::m_hWnd・NULL.

参照元 CEditWnd::LayoutFuncKey().

void CFuncKeyWnd::CreateButtons ( void ) [protected]

ボタンの生成

日付:
2007.02.05 ryoji ボタンの水平位置・幅の設定処理を削除（OnSizeで再配置されるので不要）

CFuncKeyWnd.cpp の 499 行で定義されています。

参照先 CWnd::m_hWnd・m_nFuncCodeArr.

参照元 Open().

LRESULT CFuncKeyWnd::OnCommand | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CFuncKeyWnd.cpp の 335 行で定義されています。

参照先 m_hwndButtonArr・CWnd::m_hwndParent・m_nFuncCodeArr.

LRESULT CFuncKeyWnd::OnDestroy | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CFuncKeyWnd.cpp の 435 行で定義されています。

参照先 FALSE・m_hwndButtonArr・NULL・Timer_ONOFF().

LRESULT CFuncKeyWnd::OnSize | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

* WM_SIZE処理 */

CFuncKeyWnd.cpp の 255 行で定義されています。

参照先 CalcButtonSize()・CWnd::m_hWnd・m_hwndButtonArr・m_nButtonGroupNum・NULL.

参照元 SizeBox_ONOFF().

LRESULT CFuncKeyWnd::OnTimer | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CFuncKeyWnd.cpp の 363 行で定義されています。

参照先 CFuncLookup::Funccode2Name()・getCtrlKeyState()・CKeyBind::GetFuncCode()・CEditDoc::m_cFuncLookup・CWnd::m_hWnd・m_hwndButtonArr・CWnd::m_hwndParent・m_nCurrentKeyState・m_nFuncCodeArr・DLLSHAREDATA::m_nKeyNameArrNum・m_nTimerCount・m_pCEditDoc・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・m_szFuncNameArr・NULL・TIMER_CHECKFUNCENABLE.

参照元 Open().

HWND CFuncKeyWnd::Open | ( | HINSTANCE | hInstance,
 |  | HWND | hwndParent,
 |  | CEditDoc * | pCEditDoc,
 |  | BOOL | bSizeBox
 | ) |

hWnd = CreateWindow( m_pszAppName, // pointer to registered class name m_pszAppName, // pointer to window name WS_VISIBLE | 0 | WS_VISIBLE | WS_CHILD , // window style

CW_USEDEFAULT, // horizontal position of window 0, // vertical position of window 100, // window width GetSystemMetrics( SM_CYMENU ), // window height m_hwndParent, // handle to parent or owner window NULL, // handle to menu or child-window identifier m_hInstance, // handle to application instance NULL // pointer to window-creation data ); m_hWnd = hWnd;

CFuncKeyWnd.cpp の 118 行で定義されています。

参照先 CWnd::Create()・CreateButtons()・IDT_FUNCWND・m_bSizeBox・DLLSHAREDATA::m_Common・CWnd::m_hInstance・CWnd::m_hWnd・CWnd::m_hwndParent・m_hwndSizeBox・m_nButtonGroupNum・m_nCurrentKeyState・Common::m_nFUNCKEYWND_GroupNum・m_pCEditDoc・m_pShareData・m_pszClassName・NULL・OnTimer()・CWnd::RegisterWC()・Timer_ONOFF()・TRUE.

参照元 CEditWnd::LayoutFuncKey().

void CFuncKeyWnd::SizeBox_ONOFF ( BOOL bSizeBox )

サイズボックスの表示／非表示切り替え

CFuncKeyWnd.cpp の 541 行で定義されています。

参照先 FALSE・m_bSizeBox・CWnd::m_hInstance・CWnd::m_hWnd・m_hwndSizeBox・NULL・OnSize()・TRUE.

参照元 CEditWnd::CreateStatusBar()・CEditWnd::DestroyStatusBar().

void CFuncKeyWnd::Timer_ONOFF ( BOOL )

CFuncKeyWnd.cpp の 582 行で定義されています。

参照先 GSTR_APPNAME・IDT_FUNCWND・CWnd::m_hWnd・m_nCurrentKeyState・MYMESSAGEBOX・NULL・TIMER_TIMEOUT.

参照元 OnDestroy()・Open().

変数

BOOL CFuncKeyWnd::m_bSizeBox [private]

CFuncKeyWnd.h の 53 行で定義されています。

参照元 Open()・SizeBox_ONOFF().

HFONT CFuncKeyWnd::m_hFont [private]

表示用フォント

CFuncKeyWnd.h の 52 行で定義されています。

参照元 ~CFuncKeyWnd().

HWND CFuncKeyWnd::m_hwndButtonArr[12] [private]

CFuncKeyWnd.h の 51 行で定義されています。

参照元 CalcButtonSize()・OnCommand()・OnDestroy()・OnSize()・OnTimer().

HWND CFuncKeyWnd::m_hwndSizeBox [private]

CFuncKeyWnd.h の 54 行で定義されています。

参照元 CalcButtonSize()・Open()・SizeBox_ONOFF().

int CFuncKeyWnd::m_nButtonGroupNum [private]

CFuncKeyWnd.h の 56 行で定義されています。

参照元 CalcButtonSize()・OnSize()・Open().

int CFuncKeyWnd::m_nCurrentKeyState [private]

CFuncKeyWnd.h の 49 行で定義されています。

参照元 CFuncKeyWnd()・OnTimer()・Open()・Timer_ONOFF().

int CFuncKeyWnd::m_nFuncCodeArr[12] [private]

CFuncKeyWnd.h の 57 行で定義されています。

参照元 CreateButtons()・OnCommand()・OnTimer().

int CFuncKeyWnd::m_nTimerCount [private]

CFuncKeyWnd.h の 55 行で定義されています。

参照元 OnTimer().

CEditDoc* CFuncKeyWnd::m_pCEditDoc [private]

CFuncKeyWnd.h の 47 行で定義されています。

参照元 CFuncKeyWnd()・OnTimer()・Open().

DLLSHAREDATA* CFuncKeyWnd::m_pShareData [private]

CFuncKeyWnd.h の 48 行で定義されています。

参照元 CFuncKeyWnd()・OnTimer()・Open().

const char* CFuncKeyWnd::m_pszClassName [private]

クラス名

CFuncKeyWnd.h の 46 行で定義されています。

参照元 CFuncKeyWnd()・Open().

char CFuncKeyWnd::m_szFuncNameArr[12][256] [private]

CFuncKeyWnd.h の 50 行で定義されています。

参照元 CFuncKeyWnd()・OnTimer().

このクラスの説明は次のファイルから生成されました:
  • CFuncKeyWnd.h
  • CFuncKeyWnd.cpp
Sakura-Editorに対してSat Oct 27 02:35:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncKeyWnd メンバ一覧

これは全メンバの一覧です。CFuncKeyWnd継承メンバも含んでいます。

AfterCreateWindow(void) | CFuncKeyWnd | [inline, protected, virtual]
CalcButtonSize(void) | CFuncKeyWnd | [protected]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
CFuncKeyWnd() | CFuncKeyWnd |
Close(void) | CFuncKeyWnd |
Create(DWORD, LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HMENU) | CWnd |
CreateButtons(void) | CFuncKeyWnd | [protected]
CWnd() | CWnd |
DECLH(OnCreate) | CWnd | [protected, virtual]
DECLH(OnCommand) | CWnd | [protected, virtual]
DECLH(OnPaint) | CWnd | [protected, virtual]
DECLH(OnLButtonDown) | CWnd | [protected, virtual]
DECLH(OnLButtonUp) | CWnd | [protected, virtual]
DECLH(OnLButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnRButtonDown) | CWnd | [protected, virtual]
DECLH(OnRButtonUp) | CWnd | [protected, virtual]
DECLH(OnRButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMButtonDown) | CWnd | [protected, virtual]
DECLH(OnMButtonUp) | CWnd | [protected, virtual]
DECLH(OnMButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMouseMove) | CWnd | [protected, virtual]
DECLH(OnMouseWheel) | CWnd | [protected, virtual]
DECLH(OnTimer) | CWnd | [protected, virtual]
DECLH(OnSize) | CWnd | [protected, virtual]
DECLH(OnMove) | CWnd | [protected, virtual]
DECLH(OnClose) | CWnd | [protected, virtual]
DECLH(OnDestroy) | CWnd | [protected, virtual]
DECLH(OnQueryEndSession) | CWnd | [protected, virtual]
DECLH(OnMeasureItem) | CWnd | [protected, virtual]
DECLH(OnMenuChar) | CWnd | [protected, virtual]
DECLH(OnNotify) | CWnd | [protected, virtual]
DECLH(OnDrawItem) | CWnd | [protected, virtual]
DECLH(OnCaptureChanged) | CWnd | [protected, virtual]
DECLH(OnMDIActivate) | CWnd | [protected, virtual]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Init(HINSTANCE, HWND) | CWnd |
m_bSizeBox | CFuncKeyWnd | [private]
m_hFont | CFuncKeyWnd | [private]
m_hInstance | CWnd | [protected]
m_hWnd | CWnd |
m_hwndButtonArr | CFuncKeyWnd | [private]
m_hwndParent | CWnd | [protected]
m_hwndSizeBox | CFuncKeyWnd | [private]
m_nButtonGroupNum | CFuncKeyWnd | [private]
m_nCurrentKeyState | CFuncKeyWnd | [private]
m_nFuncCodeArr | CFuncKeyWnd | [private]
m_nTimerCount | CFuncKeyWnd | [private]
m_pCEditDoc | CFuncKeyWnd | [private]
m_pShareData | CFuncKeyWnd | [private]
m_pszClassName | CFuncKeyWnd | [private]
m_szClassInheritances | CWnd | [protected]
m_szFuncNameArr | CFuncKeyWnd | [private]
OnCommand(HWND, UINT, WPARAM, LPARAM) | CFuncKeyWnd | [protected, virtual]
OnDestroy(HWND, UINT, WPARAM, LPARAM) | CFuncKeyWnd | [protected, virtual]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
OnSize(HWND, UINT, WPARAM, LPARAM) | CFuncKeyWnd | [protected, virtual]
OnTimer(HWND, UINT, WPARAM, LPARAM) | CFuncKeyWnd | [protected, virtual]
Open(HINSTANCE, HWND, CEditDoc *, BOOL) | CFuncKeyWnd |
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
RegisterWC(HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR) | CWnd |
SizeBox_ONOFF(BOOL) | CFuncKeyWnd |
Timer_ONOFF(BOOL) | CFuncKeyWnd |
~CFuncKeyWnd() | CFuncKeyWnd | [virtual]
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Oct 27 02:35:15 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CFuncLookup

  • 構成
  • クラス階層
  • 構成メンバ

クラス CFuncLookup

表示用文字列等の取得 [詳細]

#include <CFuncLookup.h>

CFuncLookupのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CFuncLookup (HINSTANCE hInst, CSMacroMgr *SMacroMgr, Common *pCom)
CFuncLookup ()
void | Init (HINSTANCE hInst, CSMacroMgr *SMacroMgr, Common *pCom)
int | Pos2FuncCode (int category, int position) const
分類中の位置に対応する機能番号を返す．
bool | Pos2FuncName (int category, int position, char *ptr, int bufsize) const
分類中の位置に対応する機能名称を返す．
bool | Funccode2Name (int funccode, char *ptr, int bufsize) const
機能番号に対応する機能名称を返す．
const char * | Category2Name (int category) const
機能分類番号に対応する機能名称を返す．
void | SetCategory2Combo (HWND hComboBox) const
ComboBoxに利用可能な機能分類一覧を登録する
void | SetListItem (HWND hListBox, int category) const
指定された分類に属する機能リストをListBoxに登録する．
int | GetCategoryCount (void) const
int | GetItemCount (int category) const

Private 変数

HINSTANCE | m_hInstance
文字列リソースを持つインスタンス
CSMacroMgr * m_pcSMacroMgr
マクロ管理クラス
Common * m_pCommon

説明

表示用文字列等の取得

機能，機能分類と位置，機能番号，文字列などの対応を集約する．

CFuncLookup.h の 48 行で定義されています。

コンストラクタとデストラクタ

CFuncLookup::CFuncLookup | ( | HINSTANCE | hInst,
 |  | CSMacroMgr * | SMacroMgr,
 |  | Common * | pCom
 | ) | [inline]

CFuncLookup.h の 52 行で定義されています。

CFuncLookup::CFuncLookup ( ) [inline]

CFuncLookup.h の 54 行で定義されています。

関数

const char * CFuncLookup::Category2Name ( int category ) const

機能分類番号に対応する機能名称を返す．

引数:
category [in] 機能分類番号
戻り値:
NULL 分類名称．取得に失敗したらNULL．

CFuncLookup.cpp の 155 行で定義されています。

参照先 DynCategory・LUOFFSET_CUSTMENU・LUOFFSET_MACRO・nsFuncCode::nFuncKindNum・NULL・nsFuncCode::ppszFuncKind.

bool CFuncLookup::Funccode2Name | ( | int | funccode,
 |  | char * | ptr,
 |  | int | bufsize
 | ) | const

機能番号に対応する機能名称を返す．

引数:
funccode | [in] 機能番号
ptr | [out] 文字列を格納するバッファの先頭
bufsize | [in] 文字列を格納するバッファのサイズ
戻り値:
true | 名称の設定に成功
false | 失敗。文字列は格納されていない

CFuncLookup.cpp の 120 行で定義されています。

参照先 F_USERMACRO_0・CSMacroMgr::GetTitle()・CSMacroMgr::IsEnabled()・m_pcSMacroMgr・MAX_CUSTMACRO・NULL.

参照元 CPropCommon::DispatchEvent_p8()・CPropCommon::DrawToolBarItemList()・CFuncKeyWnd::OnTimer().

int CFuncLookup::GetCategoryCount ( void ) const [inline]

CFuncLookup.h の 70 行で定義されています。

参照先 nsFuncCode::nFuncKindNum.

参照元 CEditView::Command_MENU_ALLFUNC().

int CFuncLookup::GetItemCount ( int category ) const

指定分類中の機能数を取得する．

引数:
category [in] 機能分類番号

CFuncLookup.cpp の 236 行で定義されています。

参照先 LUOFFSET_CUSTMENU・LUOFFSET_MACRO・MAX_CUSTOM_MENU・nsFuncCode::nFuncKindNum・nsFuncCode::pnFuncListNumArr.

参照元 CEditView::Command_MENU_ALLFUNC()・CPropCommon::DispatchEvent_PROP_TOOLBAR().

void CFuncLookup::Init | ( | HINSTANCE | hInst,
 |  | CSMacroMgr * | SMacroMgr,
 |  | Common * | pCom
 | ) | [inline]

CFuncLookup.h の 56 行で定義されています。

参照元 CPropCommon::Create()・CEditDoc::Create().

int CFuncLookup::Pos2FuncCode | ( | int | category,
 |  | int | position
 | ) | const

分類中の位置に対応する機能番号を返す．

引数:
category | [in] 分類番号 (0-)
position | [in] 分類中のindex (0-)

CFuncLookup.cpp の 53 行で定義されています。

参照先 F_CUSTMENU_BASE・F_MENU_RBUTTON・F_USERMACRO_0・CSMacroMgr::IsEnabled()・LUOFFSET_CUSTMENU・LUOFFSET_MACRO・m_pcSMacroMgr・MAX_CUSTOM_MENU・nsFuncCode::nFuncKindNum・nsFuncCode::ppnFuncListArr.

参照元 CEditView::Command_MENU_ALLFUNC()・CPropCommon::DispatchEvent_p5()・CPropCommon::DispatchEvent_PROP_TOOLBAR().

bool CFuncLookup::Pos2FuncName | ( | int | category,
 |  | int | position,
 |  | char * | ptr,
 |  | int | bufsize
 | ) | const

分類中の位置に対応する機能名称を返す．

引数:
category | [in] 分類番号 (0-)
position | [in] 分類中のindex (0-)
ptr | [out] 文字列を格納するバッファの先頭
bufsize | [in] 文字列を格納するバッファのサイズ
戻り値:
true | 名称の設定に成功
false | 失敗。文字列は格納されていない

CFuncLookup.cpp の 83 行で定義されています。

参照先 CSMacroMgr::GetTitle()・LUOFFSET_CUSTMENU・LUOFFSET_MACRO・m_hInstance・m_pCommon・m_pcSMacroMgr・Common::m_szCustMenuNameArr・MAX_CUSTOM_MENU・nsFuncCode::nFuncKindNum・NULL・nsFuncCode::ppnFuncListArr.

参照元 CEditView::Command_MENU_ALLFUNC().

void CFuncLookup::SetCategory2Combo ( HWND hComboBox ) const

ComboBoxに利用可能な機能分類一覧を登録する

引数:
hComboBox [in(out)] データを設定するコンボボックス

CFuncLookup.cpp の 173 行で定義されています。

参照先 nsFuncCode::nFuncKindNum・nsFuncCode::ppszFuncKind.

参照元 CPropCommon::SetData_p5()・CPropCommon::SetData_p8()・CPropCommon::SetData_PROP_TOOLBAR().

void CFuncLookup::SetListItem | ( | HWND | hListBox,
 |  | int | category
 | ) | const

指定された分類に属する機能リストをListBoxに登録する．

引数:
hListBox | [in(out)] 値を設定するリストボックス
category | [in] 機能分類番号

CFuncLookup.cpp の 196 行で定義されています。

参照先 m_hInstance・nsFuncCode::nFuncKindNum・nsFuncCode::pnFuncListNumArr・nsFuncCode::ppnFuncListArr.

変数

HINSTANCE CFuncLookup::m_hInstance [private]

文字列リソースを持つインスタンス

CFuncLookup.h の 78 行で定義されています。

参照元 Pos2FuncName()・SetListItem().

Common* CFuncLookup::m_pCommon [private]

CFuncLookup.h の 81 行で定義されています。

参照元 Pos2FuncName().

CSMacroMgr* CFuncLookup::m_pcSMacroMgr [private]

マクロ管理クラス

CFuncLookup.h の 79 行で定義されています。

参照元 Funccode2Name()・Pos2FuncCode()・Pos2FuncName().

このクラスの説明は次のファイルから生成されました:
  • CFuncLookup.h
  • CFuncLookup.cpp
Sakura-Editorに対してSat Oct 27 02:35:16 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CFuncLookup メンバ一覧

これは全メンバの一覧です。CFuncLookup継承メンバも含んでいます。

Category2Name(int category) const | CFuncLookup |
CFuncLookup(HINSTANCE hInst, CSMacroMgr *SMacroMgr, Common *pCom) | CFuncLookup | [inline]
CFuncLookup() | CFuncLookup | [inline]
Funccode2Name(int funccode, char *ptr, int bufsize) const | CFuncLookup |
GetCategoryCount(void) const | CFuncLookup | [inline]
GetItemCount(int category) const | CFuncLookup |
Init(HINSTANCE hInst, CSMacroMgr *SMacroMgr, Common *pCom) | CFuncLookup | [inline]
m_hInstance | CFuncLookup | [private]
m_pCommon | CFuncLookup | [private]
m_pcSMacroMgr | CFuncLookup | [private]
Pos2FuncCode(int category, int position) const | CFuncLookup |
Pos2FuncName(int category, int position, char *ptr, int bufsize) const | CFuncLookup |
SetCategory2Combo(HWND hComboBox) const | CFuncLookup |
SetListItem(HWND hListBox, int category) const | CFuncLookup |

Sakura-Editorに対してSat Oct 27 02:35:17 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CHokanMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CHokanMgr

キーワード補完 [詳細]

#include <CHokanMgr.h>

CHokanMgrに対する継承グラフ

[凡例]
CHokanMgrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CHokanMgr ()
~CHokanMgr ()
HWND | DoModeless (HINSTANCE, HWND, LPARAM)
void | Hide (void)
int | Search (POINT *ppoWin, int nWinHeight, int nColmWidth, const char *pszCurWord, const char *pszHokanFile, BOOL bHokanLoHiCase, BOOL bHokanByFile, CMemory *pcmemHokanWord=NULL)
BOOL | DoHokan (int)
void | ChangeView (LPARAM)
BOOL | OnInitDialog (HWND, WPARAM wParam, LPARAM lParam)
BOOL | OnDestroy (void)
BOOL | OnSize (WPARAM wParam, LPARAM lParam)
BOOL | OnBnClicked (int wID)
BOOL | OnKeyDown (WPARAM wParam, LPARAM lParam)
BOOL | OnCbnSelChange (HWND hwndCtl, int wID)
BOOL | OnLbnDblclk (int wID)
BOOL | OnKillFocus (WPARAM wParam, LPARAM lParam)
int | KeyProc (WPARAM, LPARAM)
void | ShowTip ()

Public 変数

CMemory m_cmemCurWord
CMemory * m_pcmemKouho
int | m_nKouhoNum
int | m_nCurKouhoIdx
char * | m_pszCurKouho
POINT | m_poWin
int | m_nWinHeight
int | m_nColmWidth
int | m_bTimerFlag

Protected メソッド

LPVOID | GetHelpIdTable (void)

説明

キーワード補完

日付:
2003.06.25 Moca ファイル内からの補完機能を追加

CHokanMgr.h の 31 行で定義されています。

コンストラクタとデストラクタ

CHokanMgr::CHokanMgr ( )

CHokanMgr.cpp の 88 行で定義されています。

参照先 m_bTimerFlag・m_cmemCurWord・m_nCurKouhoIdx・m_nKouhoNum・m_pcmemKouho・m_pszCurKouho・NULL・CMemory::SetDataSz()・TRUE.

CHokanMgr::~CHokanMgr ( )

CHokanMgr.cpp の 104 行で定義されています。

参照先 m_nKouhoNum・m_pcmemKouho・m_pszCurKouho・NULL.

関数

void CHokanMgr::ChangeView ( LPARAM )

CHokanMgr.cpp の 133 行で定義されています。

参照先 CDialog::m_lParam.

参照元 CEditDoc::SetActivePane().

BOOL CHokanMgr::DoHokan ( int )

CHokanMgr.cpp の 583 行で定義されています。

参照先 F_INSTEXT・F_WordDeleteToStart・FALSE・CEditView::HandleCommand()・Hide()・IDC_LIST_WORDS・Common::m_bHokanKey_RETURN・Common::m_bHokanKey_RIGHT・Common::m_bHokanKey_SPACE・Common::m_bHokanKey_TAB・Common::m_bUseHokan・DLLSHAREDATA::m_Common・CDialog::m_lParam・CDialog::m_pShareData・MYTRACE・TRUE.

参照元 KeyProc()・OnBnClicked()・OnLbnDblclk().

HWND CHokanMgr::DoModeless | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | LPARAM |
 | ) |

CHokanMgr.cpp の 119 行で定義されています。

参照先 CDialog::DoModeless()・gm_wpHokanListProc・GWLP_WNDPROC・HokanList_SubclassProc()・IDC_LIST_WORDS・IDD_HOKAN・LONG_PTR・CDialog::m_hWnd・OnSize()・SetWindowLongPtr.

参照元 CEditDoc::Create().

LPVOID CHokanMgr::GetHelpIdTable ( void ) [protected, virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 767 行で定義されています。

void CHokanMgr::Hide ( void )

CHokanMgr.cpp の 139 行で定義されています。

参照先 CDialog::m_hWnd・CDialog::m_hwndParent・CDialog::m_lParam・m_nCurKouhoIdx・CEditView::OnSetFocus()・TRUE.

参照元 DoHokan()・OnBnClicked()・CEditView::OnKillFocus()・CEditView::OnLBUTTONDOWN()・CEditView::PostprocessCommand_hokan()・CEditView::PreprocessCommand_hokan()・CEditDoc::SetActivePane()・CEditView::ShowHokanMgr().

int CHokanMgr::KeyProc | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CHokanMgr.cpp の 672 行で定義されています。

参照先 DoHokan()・FALSE・Common::m_bUseHokan・DLLSHAREDATA::m_Common・CDialog::m_pShareData.

参照元 HokanList_SubclassProc().

BOOL CHokanMgr::OnBnClicked ( int wID ) [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 521 行で定義されています。

参照先 DoHokan()・FALSE・Hide()・TRUE.

BOOL CHokanMgr::OnCbnSelChange | ( | HWND | hwndCtl,
 |  | int | wID
 | ) | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 558 行で定義されています。

参照先 ShowTip()・TRUE.

BOOL CHokanMgr::OnDestroy ( void ) [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 446 行で定義されています。

参照先 CDialog::CreateSizeBox()・CDialog::OnDestroy().

BOOL CHokanMgr::OnInitDialog | ( | HWND | ,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 437 行で定義されています。

参照先 CDialog::OnInitDialog().

BOOL CHokanMgr::OnKeyDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 540 行で定義されています。

BOOL CHokanMgr::OnKillFocus | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 574 行で定義されています。

参照先 TRUE.

BOOL CHokanMgr::OnLbnDblclk ( int wID ) [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 565 行で定義されています。

参照先 DoHokan()・TRUE.

BOOL CHokanMgr::OnSize | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [virtual]

CDialogを再定義しています。

CHokanMgr.cpp の 456 行で定義されています。

参照先 IDC_LIST_WORDS・m_poWin・NULL・CDialog::OnSize().

参照元 DoModeless().

int CHokanMgr::Search | ( | POINT * | ppoWin,
 |  | int | nWinHeight,
 |  | int | nColmWidth,
 |  | const char * | pszCurWord,
 |  | const char * | pszHokanFile,
 |  | BOOL | bHokanLoHiCase,
 |  | BOOL | bHokanByFile,
 |  | CMemory * | pcmemHokanWord = NULL
 | ) |

参照元 CEditView::ShowHokanMgr().

void CHokanMgr::ShowTip ( )

CHokanMgr.cpp の 719 行で定義されています。

参照先 IDC_LIST_WORDS・CEditView::m_dwTipTimer・CDialog::m_lParam・CDialog::m_nHeight・CDialog::m_nWidth・m_poWin.

参照元 OnCbnSelChange().

変数

int CHokanMgr::m_bTimerFlag

CHokanMgr.h の 91 行で定義されています。

参照元 CHokanMgr().

CMemory CHokanMgr::m_cmemCurWord

CHokanMgr.h の 80 行で定義されています。

参照元 CHokanMgr().

int CHokanMgr::m_nColmWidth

CHokanMgr.h の 89 行で定義されています。

int CHokanMgr::m_nCurKouhoIdx

CHokanMgr.h の 84 行で定義されています。

参照元 CHokanMgr()・Hide().

int CHokanMgr::m_nKouhoNum

CHokanMgr.h の 82 行で定義されています。

参照元 CHokanMgr()・~CHokanMgr().

int CHokanMgr::m_nWinHeight

CHokanMgr.h の 88 行で定義されています。

CMemory* CHokanMgr::m_pcmemKouho

CHokanMgr.h の 81 行で定義されています。

参照元 CHokanMgr()・~CHokanMgr().

POINT CHokanMgr::m_poWin

CHokanMgr.h の 87 行で定義されています。

参照元 OnSize()・ShowTip().

char* CHokanMgr::m_pszCurKouho

CHokanMgr.h の 85 行で定義されています。

参照元 CHokanMgr()・~CHokanMgr().

このクラスの説明は次のファイルから生成されました:
  • CHokanMgr.h
  • CHokanMgr.cpp
Sakura-Editorに対してSat Oct 27 02:35:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CHokanMgr メンバ一覧

これは全メンバの一覧です。CHokanMgr継承メンバも含んでいます。

CDialog() | CDialog |
ChangeView(LPARAM) | CHokanMgr |
CHokanMgr() | CHokanMgr |
CloseDialog(int) | CDialog |
CreateSizeBox(void) | CDialog | [protected]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CDialog | [virtual]
DoHokan(int) | CHokanMgr |
DoModal(HINSTANCE, HWND, int, LPARAM) | CDialog |
DoModeless(HINSTANCE, HWND, LPARAM) | CHokanMgr |
CDialog::DoModeless(HINSTANCE, HWND, int, LPARAM, int) | CDialog |
GetData(void) | CDialog | [inline, virtual]
GetHelpIdTable(void) | CHokanMgr | [protected, virtual]
Hide(void) | CHokanMgr |
KeyProc(WPARAM, LPARAM) | CHokanMgr |
m_bInited | CDialog |
m_bModal | CDialog |
m_bTimerFlag | CHokanMgr |
m_cmemCurWord | CHokanMgr |
m_hInstance | CDialog |
m_hWnd | CDialog |
m_hwndParent | CDialog |
m_hwndSizeBox | CDialog |
m_lParam | CDialog |
m_nColmWidth | CHokanMgr |
m_nCurKouhoIdx | CHokanMgr |
m_nHeight | CDialog |
m_nKouhoNum | CHokanMgr |
m_nShowCmd | CDialog |
m_nWidth | CDialog |
m_nWinHeight | CHokanMgr |
m_pcmemKouho | CHokanMgr |
m_poWin | CHokanMgr |
m_pShareData | CDialog |
m_pszCurKouho | CHokanMgr |
m_szHelpFile | CDialog |
m_xPos | CDialog |
m_yPos | CDialog |
OnActivate(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnBnClicked(int wID) | CHokanMgr | [virtual]
OnCbnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnCbnSelChange(HWND hwndCtl, int wID) | CHokanMgr | [virtual]
OnCharToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnCommand(WPARAM, LPARAM) | CDialog | [protected]
OnContextMenu(WPARAM, LPARAM) | CDialog | [virtual]
OnDestroy(void) | CHokanMgr | [virtual]
OnDeviceChange(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnDrawItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnEditChange(HWND hwndCtl, int wID) | CDialog | [inline, virtual]
OnInitDialog(HWND, WPARAM wParam, LPARAM lParam) | CHokanMgr | [virtual]
OnKeyDown(WPARAM wParam, LPARAM lParam) | CHokanMgr | [virtual]
OnKillFocus(WPARAM wParam, LPARAM lParam) | CHokanMgr | [virtual]
OnLbnDblclk(int wID) | CHokanMgr | [virtual]
OnMove(WPARAM wParam, LPARAM lParam) | CDialog | [virtual]
OnNotify(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
OnPopupHelp(WPARAM, LPARAM) | CDialog | [virtual]
OnSize(WPARAM wParam, LPARAM lParam) | CHokanMgr | [virtual]
OnTimer(WPARAM wParam) | CDialog | [inline, virtual]
OnVKeyToItem(WPARAM wParam, LPARAM lParam) | CDialog | [inline, virtual]
Search(POINT *ppoWin, int nWinHeight, int nColmWidth, const char *pszCurWord, const char *pszHokanFile, BOOL bHokanLoHiCase, BOOL bHokanByFile, CMemory *pcmemHokanWord=NULL) | CHokanMgr |
SetData(void) | CDialog | [inline, virtual]
ShowTip() | CHokanMgr |
~CDialog() | CDialog | [virtual]
~CHokanMgr() | CHokanMgr |

Sakura-Editorに対してSat Oct 27 02:35:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CHtmlHelp

  • 構成
  • クラス階層
  • 構成メンバ

クラス CHtmlHelp

HtmpHelp動的ロード [詳細]

#include <CHtmlHelp.h>

CHtmlHelpに対する継承グラフ

[凡例]
CHtmlHelpのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 型

typedef HWND(WINAPI * | Proc_HtmlHelp )(HWND, LPCTSTR, UINT, DWORD_PTR)

Public メソッド

CHtmlHelp ()
virtual | ~CHtmlHelp ()

Public 変数

Proc_HtmlHelp HtmlHelp

Protected メソッド

virtual int | InitDll (void)
DLLの初期化
virtual const char * | GetDllName (const char *)

説明

HtmpHelp動的ロード

HTMLヘルプコンポーネントの動的ロードをサポートするクラス

CHtmlHelp.h の 43 行で定義されています。

型定義

typedef HWND(WINAPI* CHtmlHelp::Proc_HtmlHelp)(HWND, LPCTSTR, UINT, DWORD_PTR)

CHtmlHelp.h の 49 行で定義されています。

コンストラクタとデストラクタ

CHtmlHelp::CHtmlHelp ( ) [inline]

CHtmlHelp.h の 45 行で定義されています。

CHtmlHelp::~CHtmlHelp ( ) [virtual]

CHtmlHelp.cpp の 36 行で定義されています。

関数

virtual const char* CHtmlHelp::GetDllName ( const char * ) [protected, virtual]

int CHtmlHelp::InitDll ( void ) [protected, virtual]

DLLの初期化

DLLのロードに成功した直後に呼び出される．エントリポイントの 確認などを行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外の値を返した場合は、読み込んだDLLを解放する．

CDllHandlerを実装しています。

CHtmlHelp.cpp の 47 行で定義されています。

参照先 CDllHandler::GetInstance()・HtmlHelp・NULL.

変数

Proc_HtmlHelp CHtmlHelp::HtmlHelp

CHtmlHelp.h の 50 行で定義されています。

参照元 InitDll()・OpenHtmlHelp().

このクラスの説明は次のファイルから生成されました:
  • CHtmlHelp.h
  • CHtmlHelp.cpp
Sakura-Editorに対してSat Oct 27 02:35:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CHtmlHelp メンバ一覧

これは全メンバの一覧です。CHtmlHelp継承メンバも含んでいます。

CDllHandler() | CDllHandler |
CHtmlHelp() | CHtmlHelp | [inline]
DeinitDll(void) | CDllHandler | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(const char *) | CHtmlHelp | [protected, virtual]
CDllHandler::GetDllName(LPCTSTR) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
HtmlHelp | CHtmlHelp |
Init(const char *str=NULL) | CDllHandler | [inline]
InitDll(void) | CHtmlHelp | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
LoadLibrary(const char *str=NULL) | CDllHandler |
operator!(void) const | CDllHandler | [inline]
Proc_HtmlHelp typedef | CHtmlHelp |
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
~CDllHandler() | CDllHandler | [virtual]
~CHtmlHelp() | CHtmlHelp | [virtual]

Sakura-Editorに対してSat Oct 27 02:35:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CImageListMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CImageListMgr

ImageListの管理 [詳細]

#include <CImageListMgr.h>

すべてのメンバ一覧

Public メソッド

CImageListMgr ()
~CImageListMgr ()
bool | Create (HINSTANCE hInstance, HWND hWnd)
bool | Draw (int index, HDC dc, int x, int y, int fstyle) const
アイコンの描画
int | Count (void) const
アイコン数を返す
int | cx (void) const
アイコンの幅
int | cy (void) const
アイコンの高さ
void | SetToolBarImages (HWND hToolBar, int id=0) const

Protected メソッド

void | MyBitBlt (HDC drawdc, int nXDest, int nYDest, int nWidth, int nHeight, HBITMAP bmp, int nXSrc, int nYSrc) const
void | DitherBlt2 (HDC drawdc, int nXDest, int nYDest, int nWidth, int nHeight, HBITMAP bmp, int nXSrc, int nYSrc) const

Protected 変数

int | m_cx
width of icon
int | m_cy
height of icon
COLORREF | m_cTrans
透過色
HBITMAP | m_hIconBitmap

説明

ImageListの管理

アイコンイメージを管理する

作者:
genta
日付:
2003.07.21 genta イメージリストの使用をやめた．代わりにTool BarのOwner Drawを使う． アクセスメソッドの大部分に於いて実装が変更されている．
覚え書き:
イメージリストへのビットマップの登録でBitbltを行う部分が VAIOと相性が悪くブルースクリーンが発生していた． またイメージリストがIE3以前のcommon componentに含まれていないために 初期Win95でイメージの表示ができなかった．それらを回避するためにImageListの使用をやめて 当初の独自描画に戻した．

CImageListMgr.h の 53 行で定義されています。

コンストラクタとデストラクタ

CImageListMgr::CImageListMgr ( ) [inline]

CImageListMgr.h の 57 行で定義されています。

CImageListMgr::~CImageListMgr ( )

CImageListMgr.cpp の 44 行で定義されています。

参照先 m_hIconBitmap・NULL.

関数

int CImageListMgr::Count ( void ) const

アイコン数を返す

アイコン数を返す

日付:
2003.07.21 genta 個数を自分で管理する必要がある．

CImageListMgr.cpp の 347 行で定義されています。

参照先 MAX_X・MAX_Y.

bool CImageListMgr::Create | ( | HINSTANCE | hInstance,
 |  | HWND | hWnd
 | ) |

CImageListMgr.cpp の 63 行で定義されています。

参照先 _MAX_PATH・FN_TOOL_BMP・GetInidirOrExedir()・IDB_MYTOOL・m_cTrans・m_cx・m_cy・m_hIconBitmap・MY_RUNNINGTIMER・NULL.

参照元 CEditWnd::Create()・CEditApp::Create().

int CImageListMgr::cx ( void ) const [inline]

アイコンの幅

CImageListMgr.h の 81 行で定義されています。

参照元 Draw().

int CImageListMgr::cy ( void ) const [inline]

アイコンの高さ

CImageListMgr.h の 83 行で定義されています。

参照元 Draw()・CEditWnd::ToolBarOwnerDraw().

void CImageListMgr::DitherBlt2 | ( | HDC | drawdc,
 |  | int | nXDest,
 |  | int | nYDest,
 |  | int | nWidth,
 |  | int | nHeight,
 |  | HBITMAP | bmp,
 |  | int | nXSrc,
 |  | int | nYSrc
 | ) | const [protected]

メニューアイコンの淡色表示

作者:
Nakatani
日付:
2003.07.21 genta 以前のCMenuDrawerより移転復活

2003.08.27 Moca 背景色は透過処理する

CImageListMgr.cpp の 238 行で定義されています。

参照先 m_cTrans.

参照元 Draw().

bool CImageListMgr::Draw | ( | int | index,
 |  | HDC | dc,
 |  | int | x,
 |  | int | y,
 |  | int | fstyle
 | ) | const

アイコンの描画

指定されたDCの指定された座標にアイコンを描画する．

引数:
index | [in] 描画するアイコン番号
dc | [in] 描画するDevice Context
x | [in] 描画するX座標
y | [in] 描画するY座標
fstyle | [in] 描画スタイル
日付:
2003.09.06 genta 背景の透過処理に伴い背景色指定削除

CImageListMgr.cpp の 327 行で定義されています。

参照先 cx()・cy()・DitherBlt2()・m_hIconBitmap・MAX_X・MyBitBlt()・NULL.

参照元 CPropCommon::DrawToolBarItemList()・CEditWnd::ToolBarOwnerDraw().

void CImageListMgr::MyBitBlt | ( | HDC | drawdc,
 |  | int | nXDest,
 |  | int | nYDest,
 |  | int | nWidth,
 |  | int | nHeight,
 |  | HBITMAP | bmp,
 |  | int | nXSrc,
 |  | int | nYSrc
 | ) | const [protected]

ビットマップの表示 灰色を透明描画

作者:
Nakatani
日付:
2003.07.21 genta 以前のCMenuDrawerより移転復活

2003.08.27 Moca 背景は透過処理に変更し、colBkColorを削除

CImageListMgr.cpp の 168 行で定義されています。

参照先 m_cTrans.

参照元 Draw().

void CImageListMgr::SetToolBarImages | ( | HWND | hToolBar,
 |  | int | id = 0
 | ) | const [inline]

イメージのToolBarへの登録

引数:
hToolBar | [in] 登録するToolBar
id | [in] 登録する先頭アイコン番号
日付:
2003.07.21 genta ここでは何も行わないが，受け皿だけ残しておく

2003.07.21 genta 戻り型をvoidに変更

CImageListMgr.h の 94 行で定義されています。

参照元 CEditWnd::CreateToolBar().

変数

COLORREF CImageListMgr::m_cTrans [protected]

透過色

描画を自前で行うため，透過色を覚えておく必要がある．

日付:
2003.07.21 genta

CImageListMgr.h の 104 行で定義されています。

参照元 Create()・DitherBlt2()・MyBitBlt().

int CImageListMgr::m_cx [protected]

width of icon

CImageListMgr.h の 97 行で定義されています。

参照元 Create().

int CImageListMgr::m_cy [protected]

height of icon

CImageListMgr.h の 98 行で定義されています。

参照元 Create().

HBITMAP CImageListMgr::m_hIconBitmap [protected]

アイコン用ビットマップを保持する

日付:
2003.07.21 genta

CImageListMgr.h の 109 行で定義されています。

参照元 Create()・Draw()・~CImageListMgr().

このクラスの説明は次のファイルから生成されました:
  • CImageListMgr.h
  • CImageListMgr.cpp
Sakura-Editorに対してSat Oct 27 02:35:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CImageListMgr メンバ一覧

これは全メンバの一覧です。CImageListMgr継承メンバも含んでいます。

CImageListMgr() | CImageListMgr | [inline]
Count(void) const | CImageListMgr |
Create(HINSTANCE hInstance, HWND hWnd) | CImageListMgr |
cx(void) const | CImageListMgr | [inline]
cy(void) const | CImageListMgr | [inline]
DitherBlt2(HDC drawdc, int nXDest, int nYDest, int nWidth, int nHeight, HBITMAP bmp, int nXSrc, int nYSrc) const | CImageListMgr | [protected]
Draw(int index, HDC dc, int x, int y, int fstyle) const | CImageListMgr |
m_cTrans | CImageListMgr | [protected]
m_cx | CImageListMgr | [protected]
m_cy | CImageListMgr | [protected]
m_hIconBitmap | CImageListMgr | [protected]
MyBitBlt(HDC drawdc, int nXDest, int nYDest, int nWidth, int nHeight, HBITMAP bmp, int nXSrc, int nYSrc) const | CImageListMgr | [protected]
SetToolBarImages(HWND hToolBar, int id=0) const | CImageListMgr | [inline]
~CImageListMgr() | CImageListMgr |

Sakura-Editorに対してSat Oct 27 02:35:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CInterfaceObject

  • 構成
  • クラス階層
  • 構成メンバ

クラス CInterfaceObject

#include <CWSH.h>

CInterfaceObjectに対する継承グラフ

[凡例]
CInterfaceObjectのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 型

typedef std::vector< CMethodInfo > | CMethodInfoList

Public メソッド

CInterfaceObject (CWSHClient *AOwner)
~CInterfaceObject ()
void | AddMethod (wchar_t *Name, int ID, VARTYPE *ArgumentTypes, int ArgumentCount, VARTYPE ResultType, CInterfaceObjectMethod Method)
void | ReserveMethods (int Count)
virtual HRESULT STDMETHODCALLTYPE | QueryInterface (REFIID iid, void **ppvObject)
virtual HRESULT STDMETHODCALLTYPE | GetIDsOfNames (REFIID riid, OLECHAR FAR *FAR *rgszNames, UINT cNames, LCID lcid, DISPID FAR *rgdispid)
virtual HRESULT STDMETHODCALLTYPE | Invoke (DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS FAR *pdispparams, VARIANT FAR *pvarResult, EXCEPINFO FAR *pexcepinfo, UINT FAR *puArgErr)
virtual HRESULT STDMETHODCALLTYPE | GetTypeInfo (UINT iTInfo, LCID lcid, ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo)
virtual HRESULT STDMETHODCALLTYPE | GetTypeInfoCount (UINT __RPC_FAR *pctinfo)

Public 変数

CMethodInfoList m_Methods
CWSHClient * m_Owner

Private 変数

ITypeInfo * m_TypeInfo

構成

struct | CMethodInfo

説明

CWSH.h の 65 行で定義されています。

型定義

typedef std::vector<CMethodInfo> CInterfaceObject::CMethodInfoList

CWSH.h の 78 行で定義されています。

コンストラクタとデストラクタ

CInterfaceObject::CInterfaceObject ( CWSHClient * AOwner )

CWSH.cpp の 388 行で定義されています。

CInterfaceObject::~CInterfaceObject ( )

CWSH.cpp の 393 行で定義されています。

参照先 m_TypeInfo・NULL.

関数

void CInterfaceObject::AddMethod | ( | wchar_t * | Name,
 |  | int | ID,
 |  | VARTYPE * | ArgumentTypes,
 |  | int | ArgumentCount,
 |  | VARTYPE | ResultType,
 |  | CInterfaceObjectMethod | Method
 | ) |

CWSH.cpp の 484 行で定義されています。

参照先 CInterfaceObject::CMethodInfo::Arguments・CInterfaceObject::CMethodInfo::Desc・CInterfaceObject::CMethodInfo::ID・m_Methods・CInterfaceObject::CMethodInfo::Method・CInterfaceObject::CMethodInfo::Name.

参照元 CWSHMacroManager::ReadyCommands().

HRESULT STDMETHODCALLTYPE CInterfaceObject::GetIDsOfNames | ( | REFIID | riid,
 |  | OLECHAR FAR *FAR * | rgszNames,
 |  | UINT | cNames,
 |  | LCID | lcid,
 |  | DISPID FAR * | rgdispid
 | ) | [virtual]

CWSH.cpp の 456 行で定義されています。

参照先 m_Methods.

HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfo | ( | UINT | iTInfo,
 |  | LCID | lcid,
 |  | ITypeInfo __RPC_FAR *__RPC_FAR * | ppTInfo
 | ) | [virtual]

CWSH.cpp の 430 行で定義されています。

参照先 m_TypeInfo・NULL.

参照元 CWSHSite::GetItemInfo().

HRESULT STDMETHODCALLTYPE CInterfaceObject::GetTypeInfoCount ( UINT __RPC_FAR * pctinfo ) [virtual]

CWSH.cpp の 446 行で定義されています。

HRESULT STDMETHODCALLTYPE CInterfaceObject::Invoke | ( | DISPID | dispidMember,
 |  | REFIID | riid,
 |  | LCID | lcid,
 |  | WORD | wFlags,
 |  | DISPPARAMS FAR * | pdispparams,
 |  | VARIANT FAR * | pvarResult,
 |  | EXCEPINFO FAR * | pexcepinfo,
 |  | UINT FAR * | puArgErr
 | ) | [virtual]

CWSH.cpp の 414 行で定義されています。

参照先 CWSHClient::m_Data・m_Methods・m_Owner.

HRESULT STDMETHODCALLTYPE CInterfaceObject::QueryInterface | ( | REFIID | iid,
 |  | void ** | ppvObject
 | ) | [virtual]

ImplementsIUnknown< IDispatch >を再定義しています。

CWSH.cpp の 400 行で定義されています。

参照先 ImplementsIUnknown< IDispatch >::AddRef()・NULL.

void CInterfaceObject::ReserveMethods ( int Count ) [inline]

CWSH.h の 86 行で定義されています。

参照先 m_Methods.

変数

CMethodInfoList CInterfaceObject::m_Methods

CWSH.h の 79 行で定義されています。

参照元 AddMethod()・CInterfaceObjectTypeInfo::CInterfaceObjectTypeInfo()・CInterfaceObjectTypeInfo::GetFuncDesc()・GetIDsOfNames()・CInterfaceObjectTypeInfo::GetNames()・Invoke()・ReserveMethods().

CWSHClient* CInterfaceObject::m_Owner

CWSH.h の 80 行で定義されています。

参照元 Invoke().

ITypeInfo* CInterfaceObject::m_TypeInfo [private]

CWSH.h の 68 行で定義されています。

参照元 GetTypeInfo()・~CInterfaceObject().

このクラスの説明は次のファイルから生成されました:
  • CWSH.h
  • CWSH.cpp
Sakura-Editorに対してSat Oct 27 02:35:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CInterfaceObject メンバ一覧

これは全メンバの一覧です。CInterfaceObject継承メンバも含んでいます。

AddMethod(wchar_t *Name, int ID, VARTYPE *ArgumentTypes, int ArgumentCount, VARTYPE ResultType, CInterfaceObjectMethod Method) | CInterfaceObject |
AddRef() | ImplementsIUnknown< IDispatch > | [inline, virtual]
CInterfaceObject(CWSHClient *AOwner) | CInterfaceObject |
CMethodInfoList typedef | CInterfaceObject |
GetIDsOfNames(REFIID riid, OLECHAR FAR *FAR *rgszNames, UINT cNames, LCID lcid, DISPID FAR *rgdispid) | CInterfaceObject | [virtual]
GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo) | CInterfaceObject | [virtual]
GetTypeInfoCount(UINT __RPC_FAR *pctinfo) | CInterfaceObject | [virtual]
ImplementsIUnknown() | ImplementsIUnknown< IDispatch > | [inline]
Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS FAR *pdispparams, VARIANT FAR *pvarResult, EXCEPINFO FAR *pexcepinfo, UINT FAR *puArgErr) | CInterfaceObject | [virtual]
m_Methods | CInterfaceObject |
m_Owner | CInterfaceObject |
m_TypeInfo | CInterfaceObject | [private]
QueryInterface(REFIID iid, void **ppvObject) | CInterfaceObject | [virtual]
Release() | ImplementsIUnknown< IDispatch > | [inline, virtual]
ReserveMethods(int Count) | CInterfaceObject | [inline]
~CInterfaceObject() | CInterfaceObject |
~ImplementsIUnknown() | ImplementsIUnknown< IDispatch > | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:35:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 CInterfaceObject::CMethodInfo

  • 構成
  • クラス階層
  • 構成メンバ
CInterfaceObject::CMethodInfo

構造体 CInterfaceObject::CMethodInfo

#include <CWSH.h>

すべてのメンバ一覧

Public 変数

FUNCDESC | Desc
wchar_t | Name [64]
CInterfaceObjectMethod Method
ELEMDESC | Arguments [8]
int | ID

説明

CWSH.h の 70 行で定義されています。

変数

ELEMDESC CInterfaceObject::CMethodInfo::Arguments[8]

CWSH.h の 75 行で定義されています。

参照元 CInterfaceObject::AddMethod().

FUNCDESC CInterfaceObject::CMethodInfo::Desc

CWSH.h の 72 行で定義されています。

参照元 CInterfaceObject::AddMethod().

int CInterfaceObject::CMethodInfo::ID

CWSH.h の 76 行で定義されています。

参照元 CInterfaceObject::AddMethod().

CInterfaceObjectMethod CInterfaceObject::CMethodInfo::Method

CWSH.h の 74 行で定義されています。

参照元 CInterfaceObject::AddMethod().

wchar_t CInterfaceObject::CMethodInfo::Name[64]

CWSH.h の 73 行で定義されています。

参照元 CInterfaceObject::AddMethod().

この構造体の説明は次のファイルから生成されました:
  • CWSH.h
Sakura-Editorに対してSat Oct 27 02:35:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CInterfaceObject::CMethodInfo メンバ一覧

これは全メンバの一覧です。CInterfaceObject::CMethodInfo継承メンバも含んでいます。

Arguments | CInterfaceObject::CMethodInfo
Desc | CInterfaceObject::CMethodInfo
ID | CInterfaceObject::CMethodInfo
Method | CInterfaceObject::CMethodInfo
Name | CInterfaceObject::CMethodInfo

Sakura-Editorに対してSat Oct 27 02:35:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CInterfaceObjectTypeInfo

  • 構成
  • クラス階層
  • 構成メンバ

クラス CInterfaceObjectTypeInfo

CInterfaceObjectTypeInfoに対する継承グラフ

[凡例]
CInterfaceObjectTypeInfoのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CInterfaceObjectTypeInfo (CInterfaceObject *AObject)
virtual HRESULT STDMETHODCALLTYPE | GetTypeAttr (TYPEATTR __RPC_FAR *__RPC_FAR *ppTypeAttr)
virtual HRESULT STDMETHODCALLTYPE | GetTypeComp (ITypeComp __RPC_FAR *__RPC_FAR *ppTComp)
virtual HRESULT STDMETHODCALLTYPE | GetFuncDesc (UINT index, FUNCDESC __RPC_FAR *__RPC_FAR *ppFuncDesc)
virtual HRESULT STDMETHODCALLTYPE | GetVarDesc (UINT index, VARDESC __RPC_FAR *__RPC_FAR *ppVarDesc)
virtual HRESULT STDMETHODCALLTYPE | GetNames (MEMBERID memid, BSTR __RPC_FAR *rgBstrNames, UINT cMaxNames, UINT __RPC_FAR *pcNames)
virtual HRESULT STDMETHODCALLTYPE | GetRefTypeOfImplType (UINT index, HREFTYPE __RPC_FAR *pRefType)
virtual HRESULT STDMETHODCALLTYPE | GetImplTypeFlags (UINT index, INT __RPC_FAR *pImplTypeFlags)
virtual HRESULT STDMETHODCALLTYPE | GetIDsOfNames (LPOLESTR __RPC_FAR *rgszNames, UINT cNames, MEMBERID __RPC_FAR *pMemId)
virtual HRESULT STDMETHODCALLTYPE | Invoke (PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS __RPC_FAR *pDispParams, VARIANT __RPC_FAR *pVarResult, EXCEPINFO __RPC_FAR *pExcepInfo, UINT __RPC_FAR *puArgErr)
virtual HRESULT STDMETHODCALLTYPE | GetDocumentation (MEMBERID memid, BSTR __RPC_FAR *pBstrName, BSTR __RPC_FAR *pBstrDocString, DWORD __RPC_FAR *pdwHelpContext, BSTR __RPC_FAR *pBstrHelpFile)
virtual HRESULT STDMETHODCALLTYPE | GetDllEntry (MEMBERID memid, INVOKEKIND invKind, BSTR __RPC_FAR *pBstrDllName, BSTR __RPC_FAR *pBstrName, WORD __RPC_FAR *pwOrdinal)
virtual HRESULT STDMETHODCALLTYPE | GetRefTypeInfo (HREFTYPE hRefType, ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo)
virtual HRESULT STDMETHODCALLTYPE | AddressOfMember (MEMBERID memid, INVOKEKIND invKind, PVOID __RPC_FAR *ppv)
virtual HRESULT STDMETHODCALLTYPE | CreateInstance (IUnknown __RPC_FAR *pUnkOuter, REFIID riid, PVOID __RPC_FAR *ppvObj)
virtual HRESULT STDMETHODCALLTYPE | GetMops (MEMBERID memid, BSTR __RPC_FAR *pBstrMops)
virtual HRESULT STDMETHODCALLTYPE | GetContainingTypeLib (ITypeLib __RPC_FAR *__RPC_FAR *ppTLib, UINT __RPC_FAR *pIndex)
virtual void STDMETHODCALLTYPE | ReleaseTypeAttr (TYPEATTR __RPC_FAR *pTypeAttr)
virtual void STDMETHODCALLTYPE | ReleaseFuncDesc (FUNCDESC __RPC_FAR *pFuncDesc)
virtual void STDMETHODCALLTYPE | ReleaseVarDesc (VARDESC __RPC_FAR *pVarDesc)

Private 変数

CInterfaceObject * m_Object
TYPEATTR | m_TypeAttr

説明

CWSH.cpp の 30 行で定義されています。

コンストラクタとデストラクタ

CInterfaceObjectTypeInfo::CInterfaceObjectTypeInfo ( CInterfaceObject * AObject )

CWSH.cpp の 353 行で定義されています。

参照先 CInterfaceObject::m_Methods・m_Object・m_TypeAttr.

関数

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::AddressOfMember | ( | MEMBERID | memid,
 |  | INVOKEKIND | invKind,
 |  | PVOID __RPC_FAR * | ppv
 | ) | [inline, virtual]

CWSH.cpp の 141 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::CreateInstance | ( | IUnknown __RPC_FAR * | pUnkOuter,
 |  | REFIID | riid,
 |  | PVOID __RPC_FAR * | ppvObj
 | ) | [inline, virtual]

CWSH.cpp の 149 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetContainingTypeLib | ( | ITypeLib __RPC_FAR *__RPC_FAR * | ppTLib,
 |  | UINT __RPC_FAR * | pIndex
 | ) | [inline, virtual]

CWSH.cpp の 164 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetDllEntry | ( | MEMBERID | memid,
 |  | INVOKEKIND | invKind,
 |  | BSTR __RPC_FAR * | pBstrDllName,
 |  | BSTR __RPC_FAR * | pBstrName,
 |  | WORD __RPC_FAR * | pwOrdinal
 | ) | [inline, virtual]

CWSH.cpp の 124 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetDocumentation | ( | MEMBERID | memid,
 |  | BSTR __RPC_FAR * | pBstrName,
 |  | BSTR __RPC_FAR * | pBstrDocString,
 |  | DWORD __RPC_FAR * | pdwHelpContext,
 |  | BSTR __RPC_FAR * | pBstrHelpFile
 | ) | [inline, virtual]

CWSH.cpp の 108 行で定義されています。

参照先 NULL.

HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetFuncDesc | ( | UINT | index,
 |  | FUNCDESC __RPC_FAR *__RPC_FAR * | ppFuncDesc
 | ) | [virtual]

CWSH.cpp の 361 行で定義されています。

参照先 CInterfaceObject::m_Methods・m_Object.

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetIDsOfNames | ( | LPOLESTR __RPC_FAR * | rgszNames,
 |  | UINT | cNames,
 |  | MEMBERID __RPC_FAR * | pMemId
 | ) | [inline, virtual]

CWSH.cpp の 88 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetImplTypeFlags | ( | UINT | index,
 |  | INT __RPC_FAR * | pImplTypeFlags
 | ) | [inline, virtual]

CWSH.cpp の 81 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetMops | ( | MEMBERID | memid,
 |  | BSTR __RPC_FAR * | pBstrMops
 | ) | [inline, virtual]

CWSH.cpp の 157 行で定義されています。

HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetNames | ( | MEMBERID | memid,
 |  | BSTR __RPC_FAR * | rgBstrNames,
 |  | UINT | cMaxNames,
 |  | UINT __RPC_FAR * | pcNames
 | ) | [virtual]

CWSH.cpp の 372 行で定義されています。

参照先 CInterfaceObject::m_Methods・m_Object.

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetRefTypeInfo | ( | HREFTYPE | hRefType,
 |  | ITypeInfo __RPC_FAR *__RPC_FAR * | ppTInfo
 | ) | [inline, virtual]

CWSH.cpp の 134 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetRefTypeOfImplType | ( | UINT | index,
 |  | HREFTYPE __RPC_FAR * | pRefType
 | ) | [inline, virtual]

CWSH.cpp の 74 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetTypeAttr ( TYPEATTR __RPC_FAR *__RPC_FAR * ppTypeAttr ) [inline, virtual]

CWSH.cpp の 38 行で定義されています。

参照先 m_TypeAttr.

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetTypeComp ( ITypeComp __RPC_FAR *__RPC_FAR * ppTComp ) [inline, virtual]

CWSH.cpp の 48 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::GetVarDesc | ( | UINT | index,
 |  | VARDESC __RPC_FAR *__RPC_FAR * | ppVarDesc
 | ) | [inline, virtual]

CWSH.cpp の 61 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CInterfaceObjectTypeInfo::Invoke | ( | PVOID | pvInstance,
 |  | MEMBERID | memid,
 |  | WORD | wFlags,
 |  | DISPPARAMS __RPC_FAR * | pDispParams,
 |  | VARIANT __RPC_FAR * | pVarResult,
 |  | EXCEPINFO __RPC_FAR * | pExcepInfo,
 |  | UINT __RPC_FAR * | puArgErr
 | ) | [inline, virtual]

CWSH.cpp の 96 行で定義されています。

virtual void STDMETHODCALLTYPE CInterfaceObjectTypeInfo::ReleaseFuncDesc ( FUNCDESC __RPC_FAR * pFuncDesc ) [inline, virtual]

CWSH.cpp の 176 行で定義されています。

virtual void STDMETHODCALLTYPE CInterfaceObjectTypeInfo::ReleaseTypeAttr ( TYPEATTR __RPC_FAR * pTypeAttr ) [inline, virtual]

CWSH.cpp の 171 行で定義されています。

virtual void STDMETHODCALLTYPE CInterfaceObjectTypeInfo::ReleaseVarDesc ( VARDESC __RPC_FAR * pVarDesc ) [inline, virtual]

CWSH.cpp の 181 行で定義されています。

変数

CInterfaceObject* CInterfaceObjectTypeInfo::m_Object [private]

CWSH.cpp の 33 行で定義されています。

参照元 CInterfaceObjectTypeInfo()・GetFuncDesc()・GetNames().

TYPEATTR CInterfaceObjectTypeInfo::m_TypeAttr [private]

CWSH.cpp の 34 行で定義されています。

参照元 CInterfaceObjectTypeInfo()・GetTypeAttr().

このクラスの説明は次のファイルから生成されました:
  • CWSH.cpp
Sakura-Editorに対してSat Oct 27 02:35:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CInterfaceObjectTypeInfo メンバ一覧

これは全メンバの一覧です。CInterfaceObjectTypeInfo継承メンバも含んでいます。

AddRef() | ImplementsIUnknown< ITypeInfo > | [inline, virtual]
AddressOfMember(MEMBERID memid, INVOKEKIND invKind, PVOID __RPC_FAR *ppv) | CInterfaceObjectTypeInfo | [inline, virtual]
CInterfaceObjectTypeInfo(CInterfaceObject *AObject) | CInterfaceObjectTypeInfo |
CreateInstance(IUnknown __RPC_FAR *pUnkOuter, REFIID riid, PVOID __RPC_FAR *ppvObj) | CInterfaceObjectTypeInfo | [inline, virtual]
GetContainingTypeLib(ITypeLib __RPC_FAR *__RPC_FAR *ppTLib, UINT __RPC_FAR *pIndex) | CInterfaceObjectTypeInfo | [inline, virtual]
GetDllEntry(MEMBERID memid, INVOKEKIND invKind, BSTR __RPC_FAR *pBstrDllName, BSTR __RPC_FAR *pBstrName, WORD __RPC_FAR *pwOrdinal) | CInterfaceObjectTypeInfo | [inline, virtual]
GetDocumentation(MEMBERID memid, BSTR __RPC_FAR *pBstrName, BSTR __RPC_FAR *pBstrDocString, DWORD __RPC_FAR *pdwHelpContext, BSTR __RPC_FAR *pBstrHelpFile) | CInterfaceObjectTypeInfo | [inline, virtual]
GetFuncDesc(UINT index, FUNCDESC __RPC_FAR *__RPC_FAR *ppFuncDesc) | CInterfaceObjectTypeInfo | [virtual]
GetIDsOfNames(LPOLESTR __RPC_FAR *rgszNames, UINT cNames, MEMBERID __RPC_FAR *pMemId) | CInterfaceObjectTypeInfo | [inline, virtual]
GetImplTypeFlags(UINT index, INT __RPC_FAR *pImplTypeFlags) | CInterfaceObjectTypeInfo | [inline, virtual]
GetMops(MEMBERID memid, BSTR __RPC_FAR *pBstrMops) | CInterfaceObjectTypeInfo | [inline, virtual]
GetNames(MEMBERID memid, BSTR __RPC_FAR *rgBstrNames, UINT cMaxNames, UINT __RPC_FAR *pcNames) | CInterfaceObjectTypeInfo | [virtual]
GetRefTypeInfo(HREFTYPE hRefType, ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo) | CInterfaceObjectTypeInfo | [inline, virtual]
GetRefTypeOfImplType(UINT index, HREFTYPE __RPC_FAR *pRefType) | CInterfaceObjectTypeInfo | [inline, virtual]
GetTypeAttr(TYPEATTR __RPC_FAR *__RPC_FAR *ppTypeAttr) | CInterfaceObjectTypeInfo | [inline, virtual]
GetTypeComp(ITypeComp __RPC_FAR *__RPC_FAR *ppTComp) | CInterfaceObjectTypeInfo | [inline, virtual]
GetVarDesc(UINT index, VARDESC __RPC_FAR *__RPC_FAR *ppVarDesc) | CInterfaceObjectTypeInfo | [inline, virtual]
ImplementsIUnknown() | ImplementsIUnknown< ITypeInfo > | [inline]
Invoke(PVOID pvInstance, MEMBERID memid, WORD wFlags, DISPPARAMS __RPC_FAR *pDispParams, VARIANT __RPC_FAR *pVarResult, EXCEPINFO __RPC_FAR *pExcepInfo, UINT __RPC_FAR *puArgErr) | CInterfaceObjectTypeInfo | [inline, virtual]
m_Object | CInterfaceObjectTypeInfo | [private]
m_TypeAttr | CInterfaceObjectTypeInfo | [private]
QueryInterface(REFIID iid, void **ppvObject) | ImplementsIUnknown< ITypeInfo > | [inline, virtual]
Release() | ImplementsIUnknown< ITypeInfo > | [inline, virtual]
ReleaseFuncDesc(FUNCDESC __RPC_FAR *pFuncDesc) | CInterfaceObjectTypeInfo | [inline, virtual]
ReleaseTypeAttr(TYPEATTR __RPC_FAR *pTypeAttr) | CInterfaceObjectTypeInfo | [inline, virtual]
ReleaseVarDesc(VARDESC __RPC_FAR *pVarDesc) | CInterfaceObjectTypeInfo | [inline, virtual]
~ImplementsIUnknown() | ImplementsIUnknown< ITypeInfo > | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:35:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CKeyBind

  • 構成
  • クラス階層
  • 構成メンバ

クラス CKeyBind

キー割り当て関連ルーチン [詳細]

#include <CKeyBind.h>

すべてのメンバ一覧

Public メソッド

CKeyBind ()
~CKeyBind ()

Static Public メソッド

static HACCEL | CreateAccerelator (int, KEYDATA *)
static int | GetFuncCode (WORD nAccelCmd, int nKeyNameArrNum, KEYDATA *pKeyNameArr, BOOL bGetDefFuncCode=TRUE)
static int | GetFuncCodeAt (KEYDATA &KeyData, int nState, BOOL bGetDefFuncCode=TRUE)
static int | GetDefFuncCode (int nKeyCode, int nState)
static int | CreateKeyBindList (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CMemory &cMemList, CFuncLookup *pcFuncLookup, BOOL bGetDefFuncCode=TRUE)
キー割り当て一覧を作成する
static int | GetKeyStr (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CMemory &cMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE)
static int | GetKeyStrList (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CMemory ***pppcMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE)
static char * | GetMenuLabel (HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, int nFuncId, char *pszLabel, BOOL bKeyStr, BOOL bGetDefFuncCode=TRUE)

説明

キー割り当て関連ルーチン

すべての関数はstaticで保持するデータはない。

CKeyBind.h の 49 行で定義されています。

コンストラクタとデストラクタ

CKeyBind::CKeyBind ( )

CKeyBind.cpp の 27 行で定義されています。

CKeyBind::~CKeyBind ( )

CKeyBind.cpp の 33 行で定義されています。

関数

HACCEL CKeyBind::CreateAccerelator | ( | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr
 | ) | [static]

Windows アクセラレータの作成

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 44 行で定義されています。

参照先 GetFuncCodeAt().

参照元 CEditApp::CEditApp().

int CKeyBind::CreateKeyBindList | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | CMemory & | cMemList,
 |  | CFuncLookup * | pcFuncLookup,
 |  | BOOL | bGetDefFuncCode = TRUE
 | ) | [static]

キー割り当て一覧を作成する

引数:
hInstance | [in] インスタンスハンドル
nKeyNameArrNum | [in]
pKeyNameArr | [out]
cMemList
pcFuncLookup | [in] 機能番号→名前の対応を取る
bGetDefFuncCode | [in] ON:デフォルト機能割り当てを使う/OFF:使わない
戻り値:
機能が割り当てられているキーストロークの数
日付:
Oct. 31, 2001 genta 動的な機能名に対応するため引数追加

2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 146 行で定義されています。

参照先 _SHIFT・CMemory::AppendSz()・GetFuncCodeAt()・CMemory::SetDataSz().

参照元 CEditView::Command_CREATEKEYBINDLIST().

int CKeyBind::GetDefFuncCode | ( | int | nKeyCode,
 |  | int | nState
 | ) | [static]

キーのデフォルト機能を取得する

引数:
nKeyCode | [in] キーコード
nState | [in] Shift,Ctrl,Altキー状態
戻り値:
機能番号
日付:
2007.02.22 ryoji 新規作成

CKeyBind.cpp の 417 行で定義されています。

参照先 F_FILECLOSE・F_GROUPCLOSE・F_WINCLOSE・CShareData::getInstance()・CShareData::GetShareData()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・Common::m_bTab_CloseOneWin・DLLSHAREDATA::m_Common・NULL.

参照元 GetFuncCodeAt().

int CKeyBind::GetFuncCode | ( | WORD | nAccelCmd,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | BOOL | bGetDefFuncCode = TRUE
 | ) | [static]

アクラセレータ識別子に対応するコマンド識別子を返す． 対応するアクラセレータ識別子がない場合または機能未割り当ての場合は0を返す．

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 110 行で定義されています。

参照先 GetFuncCodeAt().

参照元 CDlgFuncList::Key2Command()・CEditWnd::OnCommand()・CFuncKeyWnd::OnTimer().

int CKeyBind::GetFuncCodeAt | ( | KEYDATA & | KeyData,
 |  | int | nState,
 |  | BOOL | bGetDefFuncCode = TRUE
 | ) | [static]

特定のキー情報から機能コードを取得する

引数:
KeyData | [in] キー情報
nState | [in] Shift,Ctrl,Altキー状態
bGetDefFuncCode | [in] デフォルト機能を取得するかどうか
戻り値:
機能番号
日付:
2007.03.07 ryoji インライン関数から通常の関数に変更（BCCの最適化バグ対策）

CKeyBind.cpp の 453 行で定義されています。

参照先 GetDefFuncCode()・KEYDATA::m_nFuncCodeArr・KEYDATA::m_nKeyCode.

参照元 CreateAccerelator()・CreateKeyBindList()・GetFuncCode()・GetKeyStr()・GetKeyStrList().

int CKeyBind::GetKeyStr | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | CMemory & | cMemList,
 |  | int | nFuncId,
 |  | BOOL | bGetDefFuncCode = TRUE
 | ) | [static]

機能に対応するキー名の取得

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 260 行で定義されています。

参照先 _SHIFT・CMemory::AppendSz()・GetFuncCodeAt()・CMemory::SetDataSz().

参照元 GetMenuLabel().

int CKeyBind::GetKeyStrList | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | CMemory *** | pppcMemList,
 |  | int | nFuncId,
 |  | BOOL | bGetDefFuncCode = TRUE
 | ) | [static]

機能に対応するキー名の取得(複数)

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 304 行で定義されています。

参照先 GetFuncCodeAt().

参照元 CEditWnd::DispatchEvent().

char * CKeyBind::GetMenuLabel | ( | HINSTANCE | hInstance,
 |  | int | nKeyNameArrNum,
 |  | KEYDATA * | pKeyNameArr,
 |  | int | nFuncId,
 |  | char * | pszLabel,
 |  | BOOL | bKeyStr,
 |  | BOOL | bGetDefFuncCode = TRUE
 | ) | [static]

メニューラベルの作成

日付:
2007.02.22 ryoji デフォルト機能割り当てに関する処理を追加

CKeyBind.cpp の 370 行で定義されています。

参照先 GetKeyStr()・CMemory::GetPtr()・IDM_SELMRU・IDM_SELOPENFOLDER・IDM_SELWINDOW.

参照元 CMenuDrawer::MyAppendMenu().

このクラスの説明は次のファイルから生成されました:
  • CKeyBind.h
  • CKeyBind.cpp
Sakura-Editorに対してSat Oct 27 02:35:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CKeyBind メンバ一覧

これは全メンバの一覧です。CKeyBind継承メンバも含んでいます。

CKeyBind() | CKeyBind |
CreateAccerelator(int, KEYDATA *) | CKeyBind | [static]
CreateKeyBindList(HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CMemory &cMemList, CFuncLookup *pcFuncLookup, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
GetDefFuncCode(int nKeyCode, int nState) | CKeyBind | [static]
GetFuncCode(WORD nAccelCmd, int nKeyNameArrNum, KEYDATA *pKeyNameArr, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
GetFuncCodeAt(KEYDATA &KeyData, int nState, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
GetKeyStr(HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CMemory &cMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
GetKeyStrList(HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, CMemory ***pppcMemList, int nFuncId, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
GetMenuLabel(HINSTANCE hInstance, int nKeyNameArrNum, KEYDATA *pKeyNameArr, int nFuncId, char *pszLabel, BOOL bKeyStr, BOOL bGetDefFuncCode=TRUE) | CKeyBind | [static]
~CKeyBind() | CKeyBind |

Sakura-Editorに対してSat Oct 27 02:35:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CKeyMacroMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CKeyMacroMgr

キーボードマクロ [詳細]

#include <CKeyMacroMgr.h>

CKeyMacroMgrに対する継承グラフ

[凡例]
CKeyMacroMgrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CKeyMacroMgr ()
~CKeyMacroMgr ()
void | ClearAll (void)
void | Append (int, LPARAM, class CEditView *pcEditView)
void | Append (class CMacro *macro)
BOOL | SaveKeyMacro (HINSTANCE hInstance, const char *pszPath) const
virtual void | ExecKeyMacro (class CEditView *pcEditView) const
virtual BOOL | LoadKeyMacro (HINSTANCE hInstance, const char *pszPath)

Static Public メソッド

static CMacroManagerBase * | Creator (const char *)
static void | declare (void)

Protected 変数

CMacro * m_pTop
CMacro * m_pBot

説明

キーボードマクロ

キーボードマクロクラス

CKeyMacroMgr.h の 37 行で定義されています。

コンストラクタとデストラクタ

CKeyMacroMgr::CKeyMacroMgr ( )

CKeyMacroMgr.cpp の 35 行で定義されています。

参照先 m_pBot・m_pTop・NULL.

CKeyMacroMgr::~CKeyMacroMgr ( )

CKeyMacroMgr.cpp の 45 行で定義されています。

参照先 ClearAll().

関数

void CKeyMacroMgr::Append ( class CMacro * macro )

キーマクロのバッファにデータ追加 CMacroを指定して追加する版

CKeyMacroMgr.cpp の 84 行で定義されています。

参照先 m_pBot・m_pTop・CMacro::SetNext().

void CKeyMacroMgr::Append | ( | int | nFuncID,
 |  | LPARAM | lParam1,
 |  | class CEditView * | pcEditView
 | ) |

キーマクロのバッファにデータ追加 機能番号と、引数ひとつを追加版。

日付:
2002.2.2 YAZAKI pcEditViewも渡すようにした。

CKeyMacroMgr.cpp の 74 行で定義されています。

参照先 CMacro::AddLParam().

参照元 CSMacroMgr::Append().

void CKeyMacroMgr::ClearAll ( void )

キーマクロのバッファをクリアする

CKeyMacroMgr.cpp の 54 行で定義されています。

参照先 CMacro::GetNext()・m_pBot・m_pTop・NULL.

参照元 LoadKeyMacro()・~CKeyMacroMgr().

CMacroManagerBase * CKeyMacroMgr::Creator ( const char * ext ) [static]

Factory

引数:
ext [in] オブジェクト生成の判定に使う拡張子(小文字)
日付:
2004-01-31 genta RegisterExtの廃止のためRegisterCreatorに置き換え そのため，過ったオブジェクト生成を行わないために拡張子チェックは必須．

CKeyMacroMgr.cpp の 363 行で定義されています。

参照元 declare().

void CKeyMacroMgr::declare ( void ) [static]

CKeyMacroManagerの登録

日付:
2004.01.31 genta RegisterExtの廃止のためRegisterCreatorに置き換え

CKeyMacroMgr.cpp の 375 行で定義されています。

参照先 Creator()・CMacroFactory::Instance()・CMacroFactory::RegisterCreator().

参照元 CSMacroMgr::CSMacroMgr().

void CKeyMacroMgr::ExecKeyMacro ( class CEditView * pcEditView ) const [virtual]

キーボードマクロの実行 CMacroに委譲。

CMacroManagerBaseを実装しています。

CKeyMacroMgr.cpp の 129 行で定義されています。

参照先 CMacro::Exec()・CMacro::GetNext()・m_pTop.

BOOL CKeyMacroMgr::LoadKeyMacro | ( | HINSTANCE | hInstance,
 |  | const char * | pszPath
 | ) | [virtual]

キーボードマクロの読み込み エラーメッセージは出しません。呼び出し側でよきにはからってください。

CMacroManagerBaseを実装しています。

CKeyMacroMgr.cpp の 141 行で定義されています。

参照先 ClearAll()・FALSE・LINEREADBUFSIZE・CMacroManagerBase::m_nReady・NULL・SPACE・TAB.

BOOL CKeyMacroMgr::SaveKeyMacro | ( | HINSTANCE | hInstance,
 |  | const char * | pszPath
 | ) | const

キーボードマクロの保存 エラーメッセージは出しません。呼び出し側でよきにはからってください。

CKeyMacroMgr.cpp の 103 行で定義されています。

参照先 FALSE・CMacro::GetNext()・m_pTop・CMacro::Save()・TRUE.

参照元 CSMacroMgr::Save().

変数

class CMacro* CKeyMacroMgr::m_pBot [protected]

CKeyMacroMgr.h の 74 行で定義されています。

参照元 Append()・CKeyMacroMgr()・ClearAll().

class CMacro* CKeyMacroMgr::m_pTop [protected]

CKeyMacroMgr.h の 73 行で定義されています。

参照元 Append()・CKeyMacroMgr()・ClearAll()・ExecKeyMacro()・SaveKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CKeyMacroMgr.h
  • CKeyMacroMgr.cpp
Sakura-Editorに対してSat Oct 27 02:35:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CKeyMacroMgr メンバ一覧

これは全メンバの一覧です。CKeyMacroMgr継承メンバも含んでいます。

Append(int, LPARAM, class CEditView *pcEditView) | CKeyMacroMgr |
Append(class CMacro *macro) | CKeyMacroMgr |
CKeyMacroMgr() | CKeyMacroMgr |
ClearAll(void) | CKeyMacroMgr |
CMacroManagerBase() | CMacroManagerBase |
Creator(const char *) | CKeyMacroMgr | [static]
declare(void) | CKeyMacroMgr | [static]
ExecKeyMacro(class CEditView *pcEditView) const | CKeyMacroMgr | [virtual]
IsReady() | CMacroManagerBase | [inline]
LoadKeyMacro(HINSTANCE hInstance, const char *pszPath) | CKeyMacroMgr | [virtual]
m_nReady | CMacroManagerBase | [protected]
m_pBot | CKeyMacroMgr | [protected]
m_pTop | CKeyMacroMgr | [protected]
SaveKeyMacro(HINSTANCE hInstance, const char *pszPath) const | CKeyMacroMgr |
~CKeyMacroMgr() | CKeyMacroMgr |
~CMacroManagerBase() | CMacroManagerBase | [virtual]

Sakura-Editorに対してSat Oct 27 02:35:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CKeyWordSetMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CKeyWordSetMgr

強調キーワード管理 [詳細]

#include <CKeyWordSetMgr.h>

すべてのメンバ一覧

Public メソッド

CKeyWordSetMgr ()
~CKeyWordSetMgr ()
int | CleanKeyWords (int)
キーワードの整頓・利用できないキーワードの削除
int | GetAllocSize (int) const
確保している数を返す
int | GetFreeSize () const
未割り当てブロックのキーワード数を返す
void | ResetAllKeyWordSet (void)
全キーワードセットの削除と初期化
const CKeyWordSetMgr & | operator= (CKeyWordSetMgr &)
キーワードセット操作
BOOL | AddKeyWordSet (const char *, BOOL, int nSize=-1)
セットの追加
BOOL | DelKeyWordSet (int)
const char * | GetTypeName (int)
const char * | SetTypeName (int, const char *)
ｎ番目のセット名を設定する // 2005.01.26 Moca
void | SetKeyWordCase (int, int)
int | GetKeyWordCase (int)
void | SortKeyWord (int)
int | SetKeyWordArr (int, int, const char *)
iniからキーワードを設定する
int | SetKeyWordArr (int, int, const char *const *)
キーワードの配列から設定する
キーワード操作
int | GetKeyWordNum (int)
const char * | GetKeyWord (int, int)
const char * | UpdateKeyWord (int, int, const char *)
int | AddKeyWord (int, const char *)
int | DelKeyWord (int, int)
bool | CanAddKeyWord (int)
キーワードが追加可能か
検索
BOOL | IsModify (CKeyWordSetMgr &, BOOL *pnModifyFlagArr)
int | SearchKeyWord2 (int, const char *, int)

Public 変数

int | m_nCurrentKeyWordSetIdx
現在のキーワードセット番号(GUI用)
int | m_nKeyWordSetNum
char | m_szSetNameArr [MAX_SETNUM][MAX_SETNAMELEN+1]
int | m_nKEYWORDCASEArr [MAX_SETNUM]
int | m_nKeyWordNumArr [MAX_SETNUM]
char | m_szKeyWordArr [MAX_KEYWORDNUM][MAX_KEYWORDLEN+1]
char | m_IsSorted [MAX_SETNUM]

Protected メソッド

bool | KeyWordReAlloc (int, int)

Protected 変数

int | m_nStartIdx [MAX_SETNUM+1]
int | m_nKeyWordMaxLenArr [MAX_SETNUM]
一番長いキーワードの長さ(ソート後のみ有効)(INI未保存)

説明

強調キーワード管理

日付:
2005.01.27 Moca キーワード数を可変に．
キーワード数可変について
従来は各キーワードセット毎に固定サイズを割り当てていたが PHPキーワードなど多数のキーワードを登録できない一方で 少数のキーワード割り当てでは無駄が多かった．

キーワードを全体で1つの配列に入れ，開始位置を別途管理することで キーワード総数を全体で管理するように変更した．

セットが複数ある場合に前のセットにキーワードを登録していく場合に 保管場所が不足するとそれ以降を後ろにずらす必要がある． 頻繁にずらす操作が発生しないよう，nKeyWordSetBlockSize(50個)ずつの ブロック単位で場所を確保するようにしている．

CKeyWordSetMgr.h の 71 行で定義されています。

コンストラクタとデストラクタ

CKeyWordSetMgr::CKeyWordSetMgr ( void )

覚え書き:
CKeyWordSetMgrは共有メモリ構造体に埋め込まれているため， そのままではコンストラクタが動かないことに注意．

CKeyWordSetMgr.cpp の 55 行で定義されています。

参照先 m_nCurrentKeyWordSetIdx・m_nKeyWordSetNum・m_nStartIdx・MAX_SETNUM.

CKeyWordSetMgr::~CKeyWordSetMgr ( )

CKeyWordSetMgr.cpp の 65 行で定義されています。

参照先 m_nKeyWordSetNum.

関数

int CKeyWordSetMgr::AddKeyWord | ( | int | nIdx,
 |  | const char * | pszKeyWord
 | ) |

ｎ番目のセットにキーワードを追加

引数:
nIdx | [in] セット番号
pszKeyWord | [in] キーワード文字列
戻り値:
0: 成功, 1: セット番号エラー，2: メモリ確保エラー 3: キーワード不正，4: キーワード重複

CKeyWordSetMgr.cpp の 264 行で定義されています。

参照先 KeyWordReAlloc()・m_nKeyWordNumArr・m_nKeyWordSetNum・m_nStartIdx・m_szKeyWordArr.

BOOL CKeyWordSetMgr::AddKeyWordSet | ( | const char * | pszSetName,
 |  | BOOL | nKEYWORDCASE,
 |  | int | nSize = -1
 | ) |

セットの追加

引数:
pszSetName | [in] セット名
nKEYWORDCASE | [in] 大文字小文字の区別．true:あり, false:無し
nSize | [in] 最初に領域を確保するサイズ．
日付:
2005.01.26 Moca 新規作成

2005.01.29 genta サイズ0で作成→reallocするように

CKeyWordSetMgr.cpp の 121 行で定義されています。

参照先 FALSE・KeyWordReAlloc()・m_IsSorted・m_nKEYWORDCASEArr・m_nKeyWordNumArr・m_nKeyWordSetNum・m_nStartIdx・m_szSetNameArr・MAX_SETNUM・nKeyWordSetBlockSize・TRUE.

参照元 CPropCommon::DispatchEvent_p7()・CShareData::ShareData_IO_KeyWords().

bool CKeyWordSetMgr::CanAddKeyWord ( int nIdx )

キーワードが追加可能か

引数:
nIdx [in] キーワードセット番号
戻り値:
true: もう1つ追加可能, false: 追加不可能
日付:
2005.01.26 Moca 新規作成

2005.01.29 genta 割り当て済みの領域に空きがあれば拡張不能でも追加可能

CKeyWordSetMgr.cpp の 616 行で定義されています。

参照先 GetAllocSize()・GetFreeSize()・nKeyWordSetBlockSize.

int CKeyWordSetMgr::CleanKeyWords ( int nIdx )

キーワードの整頓・利用できないキーワードの削除

重複や使用不可のキーワードを取り除く

引数:
nIdx [in] キーワードセット番号
戻り値:
削除したキーワード数
< 削除キーワード数

< trueなら削除対象

CKeyWordSetMgr.cpp の 562 行で定義されています。

参照先 GetKeyWord()・GetKeyWordNum()・IS_KEYWORD_CHAR・m_IsSorted・SortKeyWord().

参照元 CPropCommon::p7_Clean_List_KeyWord().

int CKeyWordSetMgr::DelKeyWord | ( | int | nIdx,
 |  | int | nIdx2
 | ) |

ｎ番目のセットのｍ番目のキーワードを削除

引数:
nIdx | [in] キーワードセット番号
nIdx2 | [in] キーワード番号

CKeyWordSetMgr.cpp の 306 行で定義されています。

参照先 m_nKeyWordNumArr・m_nKeyWordSetNum・m_nStartIdx・m_szKeyWordArr.

参照元 CPropCommon::DispatchEvent_p7()・CPropCommon::p7_Delete_List_KeyWord().

BOOL CKeyWordSetMgr::DelKeyWordSet ( int )

CKeyWordSetMgr.cpp の 142 行で定義されています。

参照先 FALSE・KeyWordReAlloc()・m_IsSorted・m_nKEYWORDCASEArr・m_nKeyWordNumArr・m_nKeyWordSetNum・m_nStartIdx・m_szSetNameArr.

int CKeyWordSetMgr::GetAllocSize ( int nIdx ) const

確保している数を返す

引数:
nIdx [in] キーワードセット番号
戻り値:
キーワードセットに割り当て済みのキーワード数

CKeyWordSetMgr.cpp の 705 行で定義されています。

参照先 m_nStartIdx.

参照元 CanAddKeyWord()・CPropCommon::DispKeywordCount()・KeyWordReAlloc().

int CKeyWordSetMgr::GetFreeSize ( void ) const

未割り当てブロックのキーワード数を返す

共有空きスペース

日付:
2004.07.29 Moca 新規作成
戻り値:
共有空き領域(キーワード数)

CKeyWordSetMgr.cpp の 716 行で定義されています。

参照先 m_nKeyWordSetNum・m_nStartIdx・MAX_KEYWORDNUM.

参照元 CanAddKeyWord()・CPropCommon::DispKeywordCount()・KeyWordReAlloc().

const char * CKeyWordSetMgr::GetKeyWord | ( | int | nIdx,
 |  | int | nIdx2
 | ) |

ｎ番目のセットのｍ番目のキーワードを返す

引数:
nIdx | [in] キーワードセット番号
nIdx2 | [in] キーワード番号

CKeyWordSetMgr.cpp の 214 行で定義されています。

参照先 m_nKeyWordNumArr・m_nKeyWordSetNum・m_nStartIdx・m_szKeyWordArr・NULL.

参照元 CleanKeyWords()・CPropCommon::p7_Edit_List_KeyWord().

int CKeyWordSetMgr::GetKeyWordCase ( int )

CKeyWordSetMgr.cpp の 491 行で定義されています。

参照先 m_nKEYWORDCASEArr.

参照元 CPropCommon::SetData_p7_KeyWordSet().

int CKeyWordSetMgr::GetKeyWordNum ( int )

CKeyWordSetMgr.cpp の 201 行で定義されています。

参照先 m_nKeyWordNumArr・m_nKeyWordSetNum.

参照元 CleanKeyWords()・CPropCommon::DispKeywordCount().

const char * CKeyWordSetMgr::GetTypeName ( int nIdx )

ｎ番目のセットのセット名を返す

引数:
nIdx [in] セット番号 0～キーワードセット数-1

CKeyWordSetMgr.cpp の 178 行で定義されています。

参照先 m_nKeyWordSetNum・m_szSetNameArr・NULL.

参照元 CPropCommon::DispatchEvent_p7()・CDlgKeywordSelect::SetData()・CPropCommon::SetData_p7().

BOOL CKeyWordSetMgr::IsModify | ( | CKeyWordSetMgr & | ,
 |  | BOOL * | pnModifyFlagArr
 | ) |

bool CKeyWordSetMgr::KeyWordReAlloc | ( | int | nIdx,
 |  | int | nSize
 | ) | [protected]

初期化済みのキーワードセットのキーワード領域の再割り当て、解放を行う

引数:
nIdx | [in] キーワードセット番号
nSize | [in] 必要なキーワード数 (0～)

CKeyWordSetMgr.cpp の 664 行で定義されています。

参照先 GetAlignmentSize()・GetAllocSize()・GetFreeSize()・m_nKeyWordSetNum・m_nStartIdx・m_szKeyWordArr.

参照元 AddKeyWord()・AddKeyWordSet()・DelKeyWordSet()・SetKeyWordArr().

const CKeyWordSetMgr & CKeyWordSetMgr::operator= ( CKeyWordSetMgr & )

CKeyWordSetMgr.cpp の 90 行で定義されています。

参照先 m_IsSorted・m_nCurrentKeyWordSetIdx・m_nKEYWORDCASEArr・m_nKeyWordNumArr・m_nKeyWordSetNum・m_nStartIdx・m_szKeyWordArr・m_szSetNameArr.

void CKeyWordSetMgr::ResetAllKeyWordSet ( void )

全キーワードセットの削除と初期化

キーワードセットのインデックスを全て0とする．

日付:
2004.07.29 Moca 可変長記憶

CKeyWordSetMgr.cpp の 78 行で定義されています。

参照先 m_nKeyWordSetNum・m_nStartIdx・MAX_SETNUM.

参照元 CShareData::ShareData_IO_KeyWords().

int CKeyWordSetMgr::SearchKeyWord2 | ( | int | ,
 |  | const char * | ,
 |  | int |
 | ) |

CKeyWordSetMgr.cpp の 436 行で定義されています。

参照先 m_IsSorted・m_nKEYWORDCASEArr・m_nKeyWordMaxLenArr・m_nStartIdx・m_szKeyWordArr・SortKeyWord()・strnicmp.

int CKeyWordSetMgr::SetKeyWordArr | ( | int | nIdx,
 |  | int | nSize,
 |  | const char *const * | ppszKeyWordArr
 | ) |

キーワードの配列から設定する

キーワードリストを設定

引数:
[in] | nSize | ppszKeyWordArrの要素数
[in] | ppszKeyWordArr | キーワードの配列(重複・長さ制限等、考慮済みであること)
nIdx | [in] キーワードセット番号
戻り値:
登録したキーワード数．0は失敗．

CKeyWordSetMgr.cpp の 541 行で定義されています。

参照先 KeyWordReAlloc()・m_nStartIdx・m_szKeyWordArr.

int CKeyWordSetMgr::SetKeyWordArr | ( | int | nIdx,
 |  | int | nSize,
 |  | const char * | pszKeyWordArr
 | ) |

iniからキーワードを設定する

引数:
nIdx | [in] キーワードセット番号
nSize | [in] キーワード数
pszKeyWordArr | [in]「key\tword\t\0」又は「key\0word\0\0」の形式
戻り値:
登録に成功したキーワード数
作者:
Moca
日付:
2004.07.29 Moca CShareData::ShareData_IO_2内のコードを元に移築・作成

CKeyWordSetMgr.cpp の 510 行で定義されています。

参照先 KeyWordReAlloc()・m_nStartIdx・m_szKeyWordArr.

参照元 CShareData::ShareData_IO_KeyWords().

void CKeyWordSetMgr::SetKeyWordCase | ( | int | ,
 |  | int |
 | ) |

CKeyWordSetMgr.cpp の 475 行で定義されています。

参照先 FALSE・m_IsSorted・m_nKEYWORDCASEArr・TRUE.

const char * CKeyWordSetMgr::SetTypeName | ( | int | nIdx,
 |  | const char * | name
 | ) |

ｎ番目のセット名を設定する // 2005.01.26 Moca

ｎ番目のセットのセット名を再設定

日付:
2005.01.26 Moca 新規作成

CKeyWordSetMgr.cpp の 190 行で定義されています。

参照先 m_nKeyWordSetNum・m_szSetNameArr・MAX_SETNAMELEN・NULL.

void CKeyWordSetMgr::SortKeyWord ( int nIdx )

キーワードのソートとキーワード長の最大値計算

引数:
nIdx [in] キーワードセット番号

CKeyWordSetMgr.cpp の 405 行で定義されています。

参照先 m_nKeyWordMaxLenArr・m_szKeyWordArr・my_stricmp().

参照元 CleanKeyWords()・SearchKeyWord2().

const char * CKeyWordSetMgr::UpdateKeyWord | ( | int | nIdx,
 |  | int | nIdx2,
 |  | const char * | pszKeyWord
 | ) |

ｎ番目のセットのｍ番目のキーワードを編集

引数:
nIdx | [in] キーワードセット番号
nIdx2 | [in] キーワード番号
pszKeyWord | [in] 設定するキーワード

CKeyWordSetMgr.cpp の 231 行で定義されています。

参照先 m_nKeyWordNumArr・m_nKeyWordSetNum・m_nStartIdx・m_szKeyWordArr・NULL.

参照元 CPropCommon::DispatchEvent_p7().

変数

char CKeyWordSetMgr::m_IsSorted[MAX_SETNUM]

ソートしたかどうかのフラグ(INI未保存)

CKeyWordSetMgr.h の 140 行で定義されています。

参照元 AddKeyWordSet()・CleanKeyWords()・DelKeyWordSet()・operator=()・SearchKeyWord2()・SetKeyWordCase().

int CKeyWordSetMgr::m_nCurrentKeyWordSetIdx

現在のキーワードセット番号(GUI用)

本来の処理とは無関係だが，あるウィンドウで選択したセットが 別のウィンドウの設定画面にも引き継がれるようにするため．

CKeyWordSetMgr.h の 133 行で定義されています。

参照元 CKeyWordSetMgr()・CPropCommon::DispatchEvent_p7()・CPropCommon::DispKeywordCount()・CShareData::InitKeyword()・operator=()・CPropCommon::p7_Clean_List_KeyWord()・CPropCommon::p7_Delete_List_KeyWord()・CPropCommon::p7_Edit_List_KeyWord()・CPropCommon::SetData_p7()・CShareData::ShareData_IO_KeyWords().

int CKeyWordSetMgr::m_nKEYWORDCASEArr[MAX_SETNUM]

キーワードの英大文字小文字区別

CKeyWordSetMgr.h の 136 行で定義されています。

参照元 AddKeyWordSet()・DelKeyWordSet()・GetKeyWordCase()・operator=()・SearchKeyWord2()・SetKeyWordCase().

int CKeyWordSetMgr::m_nKeyWordMaxLenArr[MAX_SETNUM] [protected]

一番長いキーワードの長さ(ソート後のみ有効)(INI未保存)

CKeyWordSetMgr.h の 149 行で定義されています。

参照元 SearchKeyWord2()・SortKeyWord().

int CKeyWordSetMgr::m_nKeyWordNumArr[MAX_SETNUM]

キーワードセットに登録されているキーワード数

CKeyWordSetMgr.h の 137 行で定義されています。

参照元 AddKeyWord()・AddKeyWordSet()・DelKeyWord()・DelKeyWordSet()・GetKeyWord()・GetKeyWordNum()・operator=()・UpdateKeyWord().

int CKeyWordSetMgr::m_nKeyWordSetNum

キーワードセット数

CKeyWordSetMgr.h の 134 行で定義されています。

参照元 AddKeyWord()・AddKeyWordSet()・CKeyWordSetMgr()・DelKeyWord()・DelKeyWordSet()・CPropCommon::DispatchEvent_p7()・GetFreeSize()・GetKeyWord()・GetKeyWordNum()・GetTypeName()・KeyWordReAlloc()・operator=()・ResetAllKeyWordSet()・CDlgKeywordSelect::SetData()・CPropCommon::SetData_p7()・SetTypeName()・CShareData::ShareData_IO_KeyWords()・UpdateKeyWord()・~CKeyWordSetMgr().

int CKeyWordSetMgr::m_nStartIdx[MAX_SETNUM+1] [protected]

キーワードセットの開始位置(INI未保存) 次の開始位置までが確保済みの領域． +1しているのは最後が0で終わるようにするため．

CKeyWordSetMgr.h の 148 行で定義されています。

参照元 AddKeyWord()・AddKeyWordSet()・CKeyWordSetMgr()・DelKeyWord()・DelKeyWordSet()・GetAllocSize()・GetFreeSize()・GetKeyWord()・KeyWordReAlloc()・operator=()・ResetAllKeyWordSet()・SearchKeyWord2()・SetKeyWordArr()・UpdateKeyWord().

char CKeyWordSetMgr::m_szKeyWordArr[MAX_KEYWORDNUM][MAX_KEYWORDLEN+1]

キーワード格納領域

CKeyWordSetMgr.h の 139 行で定義されています。

参照元 AddKeyWord()・DelKeyWord()・GetKeyWord()・KeyWordReAlloc()・operator=()・SearchKeyWord2()・SetKeyWordArr()・SortKeyWord()・UpdateKeyWord().

char CKeyWordSetMgr::m_szSetNameArr[MAX_SETNUM][MAX_SETNAMELEN+1]

キーワードセット名

CKeyWordSetMgr.h の 135 行で定義されています。

参照元 AddKeyWordSet()・DelKeyWordSet()・GetTypeName()・operator=()・SetTypeName().

このクラスの説明は次のファイルから生成されました:
  • CKeyWordSetMgr.h
  • CKeyWordSetMgr.cpp
Sakura-Editorに対してSat Oct 27 02:35:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CKeyWordSetMgr メンバ一覧

これは全メンバの一覧です。CKeyWordSetMgr継承メンバも含んでいます。

AddKeyWord(int, const char *) | CKeyWordSetMgr |
AddKeyWordSet(const char *, BOOL, int nSize=-1) | CKeyWordSetMgr |
CanAddKeyWord(int) | CKeyWordSetMgr |
CKeyWordSetMgr() | CKeyWordSetMgr |
CleanKeyWords(int) | CKeyWordSetMgr |
DelKeyWord(int, int) | CKeyWordSetMgr |
DelKeyWordSet(int) | CKeyWordSetMgr |
GetAllocSize(int) const | CKeyWordSetMgr |
GetFreeSize() const | CKeyWordSetMgr |
GetKeyWord(int, int) | CKeyWordSetMgr |
GetKeyWordCase(int) | CKeyWordSetMgr |
GetKeyWordNum(int) | CKeyWordSetMgr |
GetTypeName(int) | CKeyWordSetMgr |
IsModify(CKeyWordSetMgr &, BOOL *pnModifyFlagArr) | CKeyWordSetMgr |
KeyWordReAlloc(int, int) | CKeyWordSetMgr | [protected]
m_IsSorted | CKeyWordSetMgr |
m_nCurrentKeyWordSetIdx | CKeyWordSetMgr |
m_nKEYWORDCASEArr | CKeyWordSetMgr |
m_nKeyWordMaxLenArr | CKeyWordSetMgr | [protected]
m_nKeyWordNumArr | CKeyWordSetMgr |
m_nKeyWordSetNum | CKeyWordSetMgr |
m_nStartIdx | CKeyWordSetMgr | [protected]
m_szKeyWordArr | CKeyWordSetMgr |
m_szSetNameArr | CKeyWordSetMgr |
operator=(CKeyWordSetMgr &) | CKeyWordSetMgr |
ResetAllKeyWordSet(void) | CKeyWordSetMgr |
SearchKeyWord2(int, const char *, int) | CKeyWordSetMgr |
SetKeyWordArr(int, int, const char *) | CKeyWordSetMgr |
SetKeyWordArr(int, int, const char *const *) | CKeyWordSetMgr |
SetKeyWordCase(int, int) | CKeyWordSetMgr |
SetTypeName(int, const char *) | CKeyWordSetMgr |
SortKeyWord(int) | CKeyWordSetMgr |
UpdateKeyWord(int, int, const char *) | CKeyWordSetMgr |
~CKeyWordSetMgr() | CKeyWordSetMgr |

Sakura-Editorに対してSat Oct 27 02:35:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CLayout

  • 構成
  • クラス階層
  • 構成メンバ

クラス CLayout

#include <CLayout.h>

CLayoutのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CLayout ()
~CLayout ()
void | DUMP (void)
char * | GetPtr (void) const
int | GetLengthWithEOL (void) const
int | GetLengthWithoutEOL (void) const
int | GetLength (void) const
int | GetIndent (void) const

Public 変数

CLayout * m_pPrev
CLayout * m_pNext
int | m_nLinePhysical
const CDocLine * | m_pCDocLine
int | m_nOffset
int | m_nLength
int | m_nIndent
int | m_nTypePrev
CEOL m_cEol

説明

CLayout.h の 28 行で定義されています。

コンストラクタとデストラクタ

CLayout::CLayout ( )

CLayout.cpp の 20 行で定義されています。

参照先 m_nIndent・m_nLength・m_nLinePhysical・m_nOffset・m_nTypePrev・m_pCDocLine・m_pNext・m_pPrev・NULL.

CLayout::~CLayout ( )

CLayout.cpp の 34 行で定義されています。

関数

void CLayout::DUMP ( void )

CLayout.cpp の 39 行で定義されています。

参照先 m_nLength・m_nLinePhysical・m_nOffset・m_nTypePrev・MYTRACE.

int CLayout::GetIndent ( void ) const [inline]

CLayout.h の 43 行で定義されています。

参照元 CLayoutMgr::CaretPos_Log2Phys()・CLayoutMgr::CaretPos_Phys2Log()・CEditView::Command_GOLINETOP()・CEditView::DispLineNew()・CEditView::DispTextSelected()・CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x()・CEditView::MoveCursorProperly().

int CLayout::GetLength ( void ) const [inline]

CLayout.h の 42 行で定義されています。

参照先 m_nLength.

参照元 CEditView::GetAdjustCursorPos().

int CLayout::GetLengthWithEOL ( void ) const [inline]

CLayout.h の 40 行で定義されています。

参照先 m_nLength.

int CLayout::GetLengthWithoutEOL ( void ) const [inline]

CLayout.h の 41 行で定義されています。

参照先 CEOL::GetLen()・m_cEol・m_nLength.

参照元 CEditView::Command_COPY()・CEditView::Command_GOLINEEND()・CEditView::Command_IME_CHAR()・CEditView::DrawSelectAreaLine()・CEditView::MoveCursorProperly()・CEditView::PrintSelectionInfoMsg().

char* CLayout::GetPtr ( void ) const [inline]

CLayout.h の 39 行で定義されています。

参照先 CMemory::GetPtr()・m_nOffset・m_pCDocLine・CDocLine::m_pLine.

参照元 CEditView::Command_COPY()・CEditView::Command_INDENT()・CEditView::Command_WORDRIGHT().

変数

CEOL CLayout::m_cEol

CLayout.h の 54 行で定義されています。

参照元 CEditView::Command_COPY()・CEditView::Command_DUPLICATELINE()・CEditView::Command_MERGE()・CLayoutMgr::CreateLayout()・CEditView::Cursor_UPDOWN()・CEditView::DispLineNew()・CLayoutMgr::DUMP()・CEditView::GetAdjustCursorPos()・CEditView::GetColorIndex()・CLayoutMgr::GetEndLayoutPos()・GetLengthWithoutEOL()・CEditView::InsertData_CEditView()・CLayoutMgr::IsEndOfLine()・CEditView::PrintSelectionInfoMsg().

int CLayout::m_nIndent

このレイアウト行のインデント数 @@ 2002.09.23 YAZAKI

CLayout.h の 52 行で定義されています。

参照元 CLayout()・CLayoutMgr::CreateLayout().

int CLayout::m_nLength

このレイアウト行の長さ(ハイト数)

CLayout.h の 51 行で定義されています。

参照元 CLayoutMgr::CaretPos_Phys2Log()・CLayout()・CLayoutMgr::CreateLayout()・CLayoutMgr::DeleteLayoutAsLogical()・CLayoutMgr::DUMP()・DUMP()・GetLength()・GetLengthWithEOL()・GetLengthWithoutEOL()・CLayoutMgr::GetLineStr()・CLayoutMgr::IsEndOfLine()・CLayoutMgr::XYLogicalToLayout().

int CLayout::m_nLinePhysical

対応する改行単位の行の番号

CLayout.h の 48 行で定義されています。

参照元 CLayoutMgr::CaretPos_Log2Phys()・CLayoutMgr::CaretPos_Phys2Log()・CLayout()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineCutToStart()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_LineDeleteToStart()・CLayoutMgr::CreateLayout()・CLayoutMgr::DeleteData_CLayoutMgr()・CLayoutMgr::DeleteLayoutAsLogical()・CLayoutMgr::DoLayout_Range()・CLayoutMgr::DUMP()・DUMP()・CLayoutMgr::GetLineStr()・CLayoutMgr::InsertData_CLayoutMgr()・CLayoutMgr::PrevOrNextWord()・CLayoutMgr::ReplaceData_CLayoutMgr()・CLayoutMgr::SearchWord()・CLayoutMgr::ShiftLogicalLineNum()・CLayoutMgr::WhereCurrentWord()・CLayoutMgr::XYLogicalToLayout().

int CLayout::m_nOffset

対応する改行単位の行頭からのオフセット

CLayout.h の 50 行で定義されています。

参照元 CLayoutMgr::CaretPos_Phys2Log()・CLayout()・CEditView::Command_UNINDENT()・CLayoutMgr::CreateLayout()・CLayoutMgr::DeleteData_CLayoutMgr()・CEditView::DispLineNew()・CEditView::DrawCaretPosInfo()・CLayoutMgr::DUMP()・DUMP()・CEditView::GetColorIndex()・CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x()・CLayoutMgr::GetLineStr()・GetPtr()・CLayoutMgr::InsertData_CLayoutMgr()・CEditView::OnPaint()・CLayoutMgr::PrevOrNextWord()・CLayoutMgr::ReplaceData_CLayoutMgr()・CLayoutMgr::SearchWord()・CLayoutMgr::WhereCurrentWord()・CLayoutMgr::XYLogicalToLayout().

int CLayout::m_nTypePrev

タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列

CLayout.h の 53 行で定義されています。

参照元 CLayout()・CLayoutMgr::CreateLayout()・CLayoutMgr::DeleteData_CLayoutMgr()・CEditView::DispLineNew()・CLayoutMgr::DoLayout_Range()・CLayoutMgr::DUMP()・DUMP()・CEditView::GetColorIndex()・CLayoutMgr::InsertData_CLayoutMgr()・CLayoutMgr::ReplaceData_CLayoutMgr().

const CDocLine* CLayout::m_pCDocLine

CLayout.h の 49 行で定義されています。

参照元 CLayoutMgr::CaretPos_Phys2Log()・CLayout()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_SEARCH_PREV()・CLayoutMgr::CreateLayout()・CEditView::DispLineNew()・CEditView::DispLineNumber()・CEditView::DrawCaretPosInfo()・CEditView::GetColorIndex()・CLayoutMgr::GetLineStr()・GetPtr()・CEditView::OnPaint().

CLayout* CLayout::m_pNext

CLayout.h の 47 行で定義されています。

参照元 CLayoutMgr::AddLineBottom()・CLayout()・CLayoutMgr::DeleteData_CLayoutMgr()・CLayoutMgr::DeleteLayoutAsLogical()・CLayoutMgr::DoLayout_Range()・CLayoutMgr::DUMP()・CLayoutMgr::Empty()・CEditView::GetSelectedData()・CLayoutMgr::InsertData_CLayoutMgr()・CLayoutMgr::InsertLineNext()・CLayoutMgr::ReplaceData_CLayoutMgr()・CLayoutMgr::Search()・CLayoutMgr::ShiftLogicalLineNum()・CLayoutMgr::XYLogicalToLayout().

CLayout* CLayout::m_pPrev

CLayout.h の 43 行で定義されています。

参照元 CLayoutMgr::AddLineBottom()・CLayout()・CLayoutMgr::DeleteData_CLayoutMgr()・CLayoutMgr::DeleteLayoutAsLogical()・CLayoutMgr::DUMP()・CEditView::GetColorIndex()・CLayoutMgr::InsertData_CLayoutMgr()・CLayoutMgr::InsertLineNext()・CLayoutMgr::ReplaceData_CLayoutMgr()・CLayoutMgr::Search()・CLayoutMgr::XYLogicalToLayout().

このクラスの説明は次のファイルから生成されました:
  • CLayout.h
  • CLayout.cpp
Sakura-Editorに対してSat Oct 27 02:35:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CLayout メンバ一覧

これは全メンバの一覧です。CLayout継承メンバも含んでいます。

CLayout() | CLayout |
DUMP(void) | CLayout |
GetIndent(void) const | CLayout | [inline]
GetLength(void) const | CLayout | [inline]
GetLengthWithEOL(void) const | CLayout | [inline]
GetLengthWithoutEOL(void) const | CLayout | [inline]
GetPtr(void) const | CLayout | [inline]
m_cEol | CLayout |
m_nIndent | CLayout |
m_nLength | CLayout |
m_nLinePhysical | CLayout |
m_nOffset | CLayout |
m_nTypePrev | CLayout |
m_pCDocLine | CLayout |
m_pNext | CLayout |
m_pPrev | CLayout |
~CLayout() | CLayout |

Sakura-Editorに対してSat Oct 27 02:35:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CLayoutMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CLayoutMgr

テキストのレイアウト情報管理 [詳細]

#include <CLayoutMgr.h>

CLayoutMgrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CLayoutMgr ()
~CLayoutMgr ()
void | Create (CEditDoc *, CDocLineMgr *)
int | GetLineCount (void)
const char * | GetLineStr (int, int *)
const char * | GetLineStr (int, int *, const CLayout **)
bool | IsEndOfLine (int nLine, int nPos)
CLayout * | Search (int)
指定された物理行のレイアウト情報を取得
int | WhereCurrentWord (int, int, int *, int *, int *, int *, CMemory *, CMemory *)
int | GetTabSpace (void) const
int | GetActualTabSpace (int pos) const
int | GetMaxLineSize (void) const
bool | ChangeLayoutParam (HWND hwndProgress, int nTabSize, int nMaxLineSize)
void | GetEndLayoutPos (int &lX, int &lY)
ファイル末尾のレイアウト位置を取得する
int | PrevWord (int nLineNum, int nIdx, int *pnLineNew, int *pnColmNew, BOOL bStopsBothEnds)
int | NextWord (int nLineNum, int nIdx, int *pnLineNew, int *pnColmNew, BOOL bStopsBothEnds)
int | SearchWord (int, int, const char *, int, int, int, int, int *, int *, int *, int *, CBregexp *)
単語検索
void | CaretPos_Phys2Log (int, int, int *, int *)
カーソル位置変換 物理→レイアウト
void | CaretPos_Log2Phys (int, int, int *, int *)
void | DUMP (void)
void | SetLayoutInfo (int, HWND, Types &refType)
void | DeleteData_CLayoutMgr (int nLineNum, int nDelPos, int nDelLen, int *pnModifyLayoutLinesOld, int *pnModifyLayoutLinesNew, int *pnDeleteLayoutLines, CMemory &cmemDeleted)
void | InsertData_CLayoutMgr (int nLineNum, int nInsPos, const char *pInsData, int nInsDataLen, int *pnModifyLayoutLinesOld, int *pnInsLineNum, int *pnNewLine, int *pnNewPos)
void | ReplaceData_CLayoutMgr (LayoutReplaceArg *pArg)
void | Init ()
void | Empty ()

Public 変数

CDocLineMgr * m_pcDocLineMgr

Protected メソッド

int | PrevOrNextWord (int, int, int *, int *, BOOL, BOOL bStopsBothEnds)
const char * | GetFirstLinrStr (int *)
const char * | GetNextLinrStr (int *)
void | XYLogicalToLayout (CLayout *, int, int, int, int *, int *)
void | DoLayout (HWND)
int | DoLayout_Range (CLayout *, int, int, int, int, int *)
CLayout * | DeleteLayoutAsLogical (CLayout *, int, int, int, int, int, int *)
void | ShiftLogicalLineNum (CLayout *, int)
CLayout * | CreateLayout (CDocLine *pCDocLine, int nLine, int nOffset, int nLength, int nTypePrev, int nIndent)
CLayout * InsertLineNext (CLayout *, CLayout *)
void | AddLineBottom (CLayout *)

Protected 変数

CLayout * m_pLayoutTop
CLayout * m_pLayoutBot
int | m_nLineTypeBot
int | m_nLines
int | m_nMaxLineSize
BOOL | m_bWordWrap
BOOL | m_bKinsokuHead
BOOL | m_bKinsokuTail
BOOL | m_bKinsokuRet
BOOL | m_bKinsokuKuto
char * | m_pszKinsokuHead_1
char * | m_pszKinsokuHead_2
char * | m_pszKinsokuTail_1
char * | m_pszKinsokuTail_2
char * | m_pszKinsokuKuto_1
char * | m_pszKinsokuKuto_2
int | m_nTabSpace
BOOL | m_bDispComment
BOOL | m_bDispSString
BOOL | m_bDispWString
CLineComment m_cLineComment
CBlockComment m_cBlockComment
int | m_nStringType
int(CLayoutMgr::* | getIndentOffset )(CLayout *)
int | m_nPrevReferLine
CLayout * m_pLayoutPrevRefer
int | m_nEOFLine
EOF行数
int | m_nEOFColumn
EOF幅位置
CEditDoc * m_pcEditDoc

Private メソッド

bool | IsKinsokuHead (const char *pLine, int length)
bool | IsKinsokuTail (const char *pLine, int length)
bool | IsKutoTen (unsigned char c1, unsigned char c2)
bool | IsKinsokuKuto (const char *pLine, int length)
bool | IsKinsokuPosKuto (const int nRest, const int nCharChars) const
bool | IsKinsokuPosHead (const int, const int, const int)
行頭禁則の処理位置か
bool | IsKinsokuPosTail (const int, const int, const int)
行末禁則の処理位置か
bool | CheckColorMODE (int &nCOMMENTMODE, int &nCOMMENTEND, int nPos, int nLineLen, const char *pLine)
int | Match_Quote (char szQuote, int nPos, int nLineLen, const char *pLine)
int | getIndentOffset_Normal (CLayout *pLayoutPrev)
行の長さを計算する (2行目以降の字下げ無し)
int | getIndentOffset_Tx2x (CLayout *pLayoutPrev)
インデント幅を計算する (Tx2x)
int | getIndentOffset_LeftSpace (CLayout *pLayoutPrev)
インデント幅を計算する (スペース字下げ版)

説明

テキストのレイアウト情報管理

日付:
2005.11.21 Moca 色分け情報をメンバーへ移動．不要となった引数をメンバ関数から削除．

CLayoutMgr.h の 67 行で定義されています。

コンストラクタとデストラクタ

CLayoutMgr::CLayoutMgr ( )

CLayoutMgr.cpp の 38 行で定義されています。

参照先 FALSE・Init()・m_bDispComment・m_bDispSString・m_bDispWString・m_bKinsokuHead・m_bKinsokuKuto・m_bKinsokuRet・m_bKinsokuTail・m_bWordWrap・m_nStringType・m_nTabSpace・m_pcDocLineMgr・m_pszKinsokuHead_1・m_pszKinsokuHead_2・m_pszKinsokuKuto_1・m_pszKinsokuKuto_2・m_pszKinsokuTail_1・m_pszKinsokuTail_2・NULL・TRUE.

CLayoutMgr::~CLayoutMgr ( )

CLayoutMgr.cpp の 73 行で定義されています。

参照先 Empty()・m_pszKinsokuHead_1・m_pszKinsokuHead_2・m_pszKinsokuKuto_1・m_pszKinsokuKuto_2・m_pszKinsokuTail_1・m_pszKinsokuTail_2・NULL.

関数

void CLayoutMgr::AddLineBottom ( CLayout * ) [protected]

CLayoutMgr.cpp の 457 行で定義されています。

参照先 m_nLines・m_pLayoutBot・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・NULL.

参照元 DoLayout().

void CLayoutMgr::CaretPos_Log2Phys | ( | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * |
 | ) |

CLayoutMgr.cpp の 1437 行で定義されています。

参照先 BOOL・FALSE・GetActualTabSpace()・CLayout::GetIndent()・CDocLineMgr::GetLineCount()・GetLineStr()・CLayout::m_nLinePhysical・m_nLines・m_pcDocLineMgr・NULL・Search()・TAB・TRUE.

参照元 CEditView::AddCurrentLineToHistory()・CEditView::Command_BOOKMARK_SET()・CEditView::Command_CHAR()・CEditView::Command_COPYTAG()・CEditView::Command_DELETE_BACK()・CEditView::Command_MERGE()・CEditView::Command_PASTEBOX()・CEditView::Command_SORT()・CEditView::Command_TAGJUMP()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::ConvSelectedArea()・CEditView::DeleteData()・CEditView::IsCurrentPositionURL()・ReplaceData_CLayoutMgr()・CEditDoc::SavePhysPosOfAllView()・CEditView::SearchBracket()・CEditDoc::SetFileInfo()・CEditView::SetReconvertStruct()・CEditView::TagJumpSub().

void CLayoutMgr::CaretPos_Phys2Log | ( | int | nX,
 |  | int | nY,
 |  | int * | pnCaretPosX,
 |  | int * | pnCaretPosY
 | ) |

カーソル位置変換 物理→レイアウト

物理位置(行頭からのバイト数、折り返し無し行位置) →レイアウト位置(行頭からの表示桁位置、折り返しあり行位置)

引数:
nX | [in] 物理位置X
nY | [in] 物理位置Y
pnCaretPosX | [out] 論理位置X
pnCaretPosY | [out] 論理位置Y
日付:
2004.06.16 Moca インデント表示の際のTABを含む行の座標ずれ修正

CLayoutMgr.cpp の 1324 行で定義されています。

参照先 GetActualTabSpace()・CLayout::GetIndent()・CMemory::GetPtr()・CMemory::GetSizeOfChar()・CLayout::m_nLength・CLayout::m_nLinePhysical・m_nLines・CLayout::m_nOffset・CLayout::m_pCDocLine・CDocLine::m_pLine・NULL・Search()・TAB.

参照元 CEditView::Command_BOOKMARK_NEXT()・CEditView::Command_BOOKMARK_PREV()・CEditView::Command_Diff_Next()・CEditView::Command_Diff_Prev()・CEditView::Command_GOLINETOP()・CEditView::Command_JUMP_SRCHSTARTPOS()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineCutToStart()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_LineDeleteToStart()・CEditView::ISearchExec()・CEditDoc::MakeTopicList_wztxt()・ReplaceData_CLayoutMgr()・CEditDoc::RestorePhysPosOfAllView()・CEditView::RTrimPrevLine()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・SearchWord()・CEditView::SetSelectionFromReonvert().

bool CLayoutMgr::ChangeLayoutParam | ( | HWND | hwndProgress,
 |  | int | nTabSize,
 |  | int | nMaxLineSize
 | ) |

CLayoutMgr.cpp の 1532 行で定義されています。

参照先 DoLayout()・m_nMaxLineSize・m_nTabSpace・MAXLINESIZE.

参照元 CEditDoc::ChangeLayoutParam().

bool CLayoutMgr::CheckColorMODE | ( | int & | nCOMMENTMODE,
 |  | int & | nCOMMENTEND,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const char * | pLine
 | ) | [private]

CLayoutMgr_New.cpp の 1111 行で定義されています。

参照先 COLORIDX_BLOCK1・COLORIDX_COMMENT・COLORIDX_TEXT・CBlockComment::getBlockFromLen()・m_bDispComment・m_cBlockComment・m_cLineComment・CLineComment::Match()・CBlockComment::Match_CommentFrom()・CBlockComment::Match_CommentTo().

void CLayoutMgr::Create | ( | CEditDoc * | ,
 |  | CDocLineMgr * |
 | ) |

CLayoutMgr.cpp の 293 行で定義されています。

参照先 Init()・m_pcDocLineMgr・m_pcEditDoc.

参照元 CEditDoc::CEditDoc().

CLayout * CLayoutMgr::CreateLayout | ( | CDocLine * | pCDocLine,
 |  | int | nLine,
 |  | int | nOffset,
 |  | int | nLength,
 |  | int | nTypePrev,
 |  | int | nIndent
 | ) | [protected]

CLayoutMgr.cpp の 511 行で定義されています。

参照先 EOL_NONE・CEOL::GetLen()・CMemory::GetLength()・CLayout::m_cEol・CDocLine::m_cEol・CLayout::m_nIndent・CLayout::m_nLength・CLayout::m_nLinePhysical・CLayout::m_nOffset・CLayout::m_nTypePrev・CLayout::m_pCDocLine・CDocLine::m_pLine・CEOL::SetType().

参照元 DoLayout()・DoLayout_Range().

void CLayoutMgr::DeleteData_CLayoutMgr | ( | int | nLineNum,
 |  | int | nDelPos,
 |  | int | nDelLen,
 |  | int * | pnModifyLayoutLinesOld,
 |  | int * | pnModifyLayoutLinesNew,
 |  | int * | pnDeleteLayoutLines,
 |  | CMemory & | cmemDeleted
 | ) |

行内文字削除

日付:
2002/03/24 YAZAKI bUndo削除

CLayoutMgr.cpp の 657 行で定義されています。

参照先 CDocLineMgr::DeleteData_CDocLineMgr()・DeleteLayoutAsLogical()・DoLayout_Range()・CDocLineMgr::GetLineCount()・GetLineStr()・CLayout::m_nLinePhysical・m_nLines・CLayout::m_nOffset・CLayout::m_nTypePrev・m_pcDocLineMgr・m_pLayoutPrevRefer・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・NULL・ShiftLogicalLineNum().

CLayout * CLayoutMgr::DeleteLayoutAsLogical | ( | CLayout * | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int * |
 | ) | [protected]

CLayoutMgr.cpp の 957 行で定義されています。

参照先 CLayout::m_nLength・CLayout::m_nLinePhysical・m_nLines・m_nPrevReferLine・m_pLayoutBot・m_pLayoutPrevRefer・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・MYTRACE・NULL.

参照元 DeleteData_CLayoutMgr()・InsertData_CLayoutMgr()・ReplaceData_CLayoutMgr().

void CLayoutMgr::DoLayout ( HWND hwndProgress ) [protected]

現在の折り返し文字数に合わせて全データのレイアウト情報を再生成します

日付:
2004.04.03 Moca TABが使われると折り返し位置がずれるのを防ぐため， nPosXがインデントを含む幅を保持するように変更．nMaxLineSizeは 固定値となったが，既存コードの置き換えは避けて最初に値を代入するようにした．
メモリ上の位置(offset)

CLayoutMgr_New.cpp の 49 行で定義されています。

参照先 AddLineBottom()・BlockingHook()・COLORIDX_TEXT・CreateLayout()・Empty()・CDocLineMgr::GetDocLineTop()・getIndentOffset・CEOL::GetLen()・CDocLineMgr::GetLineCount()・CMemory::GetPtr()・CMemory::GetSizeOfChar()・Init()・IS_KEYWORD_CHAR・KINSOKU_TYPE_KINSOKU_KUTO・KINSOKU_TYPE_NONE・KINSOKU_TYPE_WORDWRAP・m_bKinsokuRet・m_bWordWrap・CDocLine::m_cEol・m_nLineTypeBot・m_nMaxLineSize・m_nTabSpace・m_pcDocLineMgr・m_pLayoutBot・CDocLine::m_pLine・MY_RUNNINGTIMER・NULL.

参照元 ChangeLayoutParam().

int CLayoutMgr::DoLayout_Range | ( | CLayout * | pLayoutPrev,
 |  | int | nLineNum,
 |  | int | nDelLogicalLineFrom,
 |  | int | nDelLogicalColFrom,
 |  | int | nCurrentLineType,
 |  | int * | pnExtInsLineNum
 | ) | [protected]

指定レイアウト行に対応する論理行の次の論理行から指定論理行数だけ再レイアウトする

日付:
2002.10.07 YAZAKI rename from "DoLayout3_New"

2004.04.03 Moca TABが使われると折り返し位置がずれるのを防ぐため， nPosXがインデントを含む幅を保持するように変更．nMaxLineSizeは 固定値となったが，既存コードの置き換えは避けて最初に値を代入するようにした．

覚え書き:
2004.04.03 Moca DoLayoutとは違ってレイアウト情報がリスト中間に挿入されるため， 挿入後にm_nLineTypeBotへコメントモードを指定してはならない 代わりに最終行のコメントモードを終了間際に確認している．
メモリ上の位置(offset)

CLayoutMgr_New.cpp の 419 行で定義されています。

参照先 CreateLayout()・getIndentOffset・CEOL::GetLen()・CDocLineMgr::GetLineInfo()・CMemory::GetPtr()・CMemory::GetSizeOfChar()・InsertLineNext()・IS_KEYWORD_CHAR・KINSOKU_TYPE_KINSOKU_KUTO・KINSOKU_TYPE_NONE・KINSOKU_TYPE_WORDWRAP・m_bKinsokuRet・m_bWordWrap・CDocLine::m_cEol・m_nEOFColumn・m_nEOFLine・CLayout::m_nLinePhysical・m_nMaxLineSize・CLayout::m_nTypePrev・m_pcDocLineMgr・CDocLine::m_pLine・CLayout::m_pNext・NULL.

参照元 DeleteData_CLayoutMgr()・InsertData_CLayoutMgr()・ReplaceData_CLayoutMgr().

void CLayoutMgr::DUMP ( void )

CLayoutMgr.cpp の 1547 行で定義されています。

参照先 CEOL::GetLen()・CDocLineMgr::GetLineStr()・CEOL::GetName()・CLayout::m_cEol・CLayout::m_nLength・CLayout::m_nLinePhysical・m_nLines・m_nMaxLineSize・CLayout::m_nOffset・m_nTabSpace・CLayout::m_nTypePrev・m_pcDocLineMgr・m_pLayoutBot・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・MYTRACE・NULL.

参照元 CEditView::OnPaint().

void CLayoutMgr::Empty ( )

CLayoutMgr.cpp の 323 行で定義されています。

参照先 m_pLayoutTop・CLayout::m_pNext・NULL.

参照元 DoLayout()・~CLayoutMgr().

int CLayoutMgr::GetActualTabSpace ( int pos ) const [inline]

次のTAB位置までの幅

引数:
pos [in] 現在の位置
戻り値:
次のTAB位置までの文字数．1～TAB幅

CLayoutMgr.h の 95 行で定義されています。

参照元 CaretPos_Log2Phys()・CaretPos_Phys2Log()・CEditView::DrawCaretPosInfo().

void CLayoutMgr::GetEndLayoutPos | ( | int & | lX,
 |  | int & | lY
 | ) |

ファイル末尾のレイアウト位置を取得する

ファイル末尾まで選択する場合に正確な位置情報を与えるため

既存の関数では物理行からレイアウト位置を変換する必要があり， 処理に無駄が多いため，専用関数を作成

日付:
2006.07.29 genta

2006.10.01 Moca メンバで保持するように。データ変更時には、DoLayout/DoLayout_Rangeで無効にする。

CLayoutMgr.cpp の 610 行で定義されています。

参照先 CMemoryIterator< T >::addDelta()・CMemoryIterator< T >::end()・EOL_NONE・GetLineCount()・GetMaxLineSize()・GetTabSpace()・CLayout::m_cEol・m_nEOFColumn・m_nEOFLine・m_nLines・m_pLayoutBot・NULL・CMemoryIterator< T >::scanNext().

参照元 CEditView::Command_SELECTALL()・CEditView::DispTextSelected()・CEditView::DrawSelectArea().

const char* CLayoutMgr::GetFirstLinrStr ( int * ) [protected]

int CLayoutMgr::getIndentOffset_LeftSpace ( CLayout * pLayoutPrev ) [private]

インデント幅を計算する (スペース字下げ版)

論理行行頭のホワイトスペースの終わりインデント位置として返す． ただし，残り幅が6文字未満の場合はインデントを行わない．

作者:
genta
戻り値:
インデントすべき文字数
日付:
2002.10.01

CLayoutMgr_New.cpp の 1258 行で定義されています。

参照先 CMemoryIterator< T >::addDelta()・CMemoryIterator< T >::end()・FALSE・CMemoryIterator< T >::getColumn()・CMemoryIterator< T >::getCurrentChar()・CMemoryIterator< T >::getCurrentPos()・CEditDoc::GetDocumentAttribute()・CLayout::GetIndent()・CMemoryIterator< T >::getIndexDelta()・Types::m_bAutoIndent_ZENSPACE・CLayout::m_nOffset・m_nTabSpace・m_pcEditDoc・Types::m_szIndentChars・NULL・CMemoryIterator< T >::scanNext()・TAB.

参照元 SetLayoutInfo().

int CLayoutMgr::getIndentOffset_Normal ( CLayout * pLayoutPrev ) [private]

行の長さを計算する (2行目以降の字下げ無し)

字下げを行わないので，常に0を返す． 引数は使わない．

戻り値:
1行の表示文字数 (常に0)
作者:
genta
日付:
2002.10.01

CLayoutMgr_New.cpp の 1205 行で定義されています。

参照元 SetLayoutInfo().

int CLayoutMgr::getIndentOffset_Tx2x ( CLayout * pLayoutPrev ) [private]

インデント幅を計算する (Tx2x)

前の行の最後のTABの位置をインデント位置として返す． ただし，残り幅が6文字未満の場合はインデントを行わない．

作者:
Yazaki
戻り値:
インデントすべき文字数
日付:
2002.10.01

2002.10.07 YAZAKI 名称変更, 処理見直し

CLayoutMgr_New.cpp の 1222 行で定義されています。

参照先 CMemoryIterator< T >::end()・CMemoryIterator< T >::getColumn()・CMemoryIterator< T >::getColumnDelta()・CMemoryIterator< T >::getCurrentChar()・CLayout::GetIndent()・CMemoryIterator< T >::getIndexDelta()・CLayout::m_nOffset・m_nTabSpace・NULL・CMemoryIterator< T >::scanNext()・TAB.

参照元 SetLayoutInfo().

int CLayoutMgr::GetLineCount ( void ) [inline]

CLayoutMgr.h の 79 行で定義されています。

参照元 CEditView::AdjustScrollBars()・CEditView::Command_DUPLICATELINE()・CEditView::Command_GOFILEEND()・CEditView::Command_UNINDENT()・CEditView::Command_WndScrollDown()・CEditView::Cursor_UPDOWN()・CEditView::DeleteData2()・CEditView::DispTextSelected()・CEditView::ExecCmd()・CEditView::GetAdjustCursorPos()・GetEndLayoutPos()・CEditView::MoveCursorProperly()・CEditView::OnLBUTTONDOWN()・CEditView::OnVScroll()・CEditView::PrintSelectionInfoMsg()・CEditDoc::ReloadCurrentFile()・CEditView::ScrollAtV()・CDlgProperty::SetData().

const char * CLayoutMgr::GetLineStr | ( | int | nLine,
 |  | int * | pnLineLen,
 |  | const CLayout ** | ppcLayoutDes
 | ) |

指定された物理行のデータへのポインタとその長さを返す Ver1

日付:
2002/03/24 YAZAKI GetLineStr( int nLine, int* pnLineLen )と同じ動作に変更。

CLayoutMgr.cpp の 555 行で定義されています。

参照先 CDocLineMgr::GetLineStr()・CLayout::m_nLength・CLayout::m_nLinePhysical・CLayout::m_nOffset・m_pcDocLineMgr・NULL・Search().

const char * CLayoutMgr::GetLineStr | ( | int | ,
 |  | int * |
 | ) |

CLayoutMgr.cpp の 542 行で定義されています。

参照先 CMemory::GetPtr()・CLayout::m_nLength・CLayout::m_nOffset・CLayout::m_pCDocLine・CDocLine::m_pLine・NULL・Search().

参照元 CaretPos_Log2Phys()・CEditView::Command_CHAR()・CEditView::Command_GOLINETOP()・CEditView::Command_PASTE()・CEditView::Command_SEARCH_NEXT()・CEditView::Command_UNINDENT()・CEditView::ConvSelectedArea()・CEditView::Cursor_UPDOWN()・CEditView::DeleteData()・DeleteData_CLayoutMgr()・CEditView::DrawCaretPosInfo()・CEditView::GetCurrentTextForSearch()・CEditView::GetLeftWord()・CEditView::GetSelectedData()・CEditView::InsertData_CEditView()・InsertData_CLayoutMgr()・CEditView::MoveCursorProperly()・CEditView::PrintSelectionInfoMsg()・CEditView::ReplaceData_CEditView().

int CLayoutMgr::GetMaxLineSize ( void ) const [inline]

CLayoutMgr.h の 97 行で定義されています。

参照元 CEditView::AdjustScrollBars()・CEditView::Command_INDENT()・CEditView::Command_SORT()・CEditView::Command_TRIM()・CEditView::Cursor_UPDOWN()・CEditView::DispLineNew()・CEditView::DispVerticalLines()・CEditView::GetAdjustCursorPos()・GetEndLayoutPos()・CEditView::GetWrapMode()・CMacro::HandleFunction()・CEditView::MoveCursor()・CEditView::OnHScroll()・CEditView::OnPaint()・CEditView::ScrollAtH().

const char* CLayoutMgr::GetNextLinrStr ( int * ) [protected]

int CLayoutMgr::GetTabSpace ( void ) const [inline]

タブ幅の取得

戻り値:
タブ幅

CLayoutMgr.h の 90 行で定義されています。

参照元 CEditView::Command_GOLINEEND()・CEditView::Command_UNINDENT()・CEditView::Command_WRAPWINDOWWIDTH()・CEditView::ConvMemory()・CEditView::DrawSelectAreaLine()・GetEndLayoutPos()・CMacro::HandleFunction()・CEditView::LineColmnToIndex()・CEditView::LineColmnToIndex2()・CEditView::LineIndexToColmn()・CEditView::MoveCursorProperly()・CPrintPreview::Print_DrawLine().

void CLayoutMgr::Init ( )

CLayoutMgr.cpp の 304 行で定義されています。

参照先 m_nEOFColumn・m_nEOFLine・m_nLines・m_nPrevReferLine・m_pLayoutBot・m_pLayoutPrevRefer・m_pLayoutTop・NULL.

参照元 CLayoutMgr()・Create()・DoLayout().

void CLayoutMgr::InsertData_CLayoutMgr | ( | int | nLineNum,
 |  | int | nInsPos,
 |  | const char * | pInsData,
 |  | int | nInsDataLen,
 |  | int * | pnModifyLayoutLinesOld,
 |  | int * | pnInsLineNum,
 |  | int * | pnNewLine,
 |  | int * | pnNewPos
 | ) |

文字列挿入

日付:
2002/03/24 YAZAKI bUndo削除

CLayoutMgr.cpp の 781 行で定義されています。

参照先 CR・DeleteLayoutAsLogical()・DoLayout_Range()・CDocLineMgr::GetLineCount()・GetLineStr()・CDocLineMgr::InsertData_CDocLineMgr()・LF・CLayout::m_nLinePhysical・m_nLines・m_nLineTypeBot・CLayout::m_nOffset・m_nPrevReferLine・CLayout::m_nTypePrev・m_pcDocLineMgr・m_pLayoutBot・m_pLayoutPrevRefer・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・NULL・Search()・ShiftLogicalLineNum()・XYLogicalToLayout().

CLayout * CLayoutMgr::InsertLineNext | ( | CLayout * | ,
 |  | CLayout * |
 | ) | [protected]

CLayoutMgr.cpp の 473 行で定義されています。

参照先 m_nLines・m_pLayoutBot・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・NULL.

参照元 DoLayout_Range().

bool CLayoutMgr::IsEndOfLine | ( | int | nLine,
 |  | int | nPos
 | ) |

CLayoutMgr.cpp の 582 行で定義されています。

参照先 EOL_NONE・CEOL::GetType()・CLayout::m_cEol・CLayout::m_nLength・NULL・Search().

bool CLayoutMgr::IsKinsokuHead | ( | const char * | pLine,
 |  | int | length
 | ) | [private]

行頭禁則文字をチェックする

CLayoutMgr_New.cpp の 873 行で定義されています。

参照先 m_pszKinsokuHead_1・m_pszKinsokuHead_2.

bool CLayoutMgr::IsKinsokuKuto | ( | const char * | pLine,
 |  | int | length
 | ) | [private]

句読点文字をチェックする

CLayoutMgr_New.cpp の 958 行で定義されています。

参照先 m_pszKinsokuKuto_1・m_pszKinsokuKuto_2.

bool CLayoutMgr::IsKinsokuPosHead | ( | const | int,
 |  | const | int,
 |  | const | int
 | ) | [private]

行頭禁則の処理位置か

引数:
[in] | nRest | 行の残り文字数
[in] | nCharChars | 現在位置の文字サイズ
[in] | nCharChars2 | 現在位置の次の文字サイズ
日付:
2005-08-20 D.S.Koba DoLayout()とDoLayout_Range()から分離

CLayoutMgr_New.cpp の 1004 行で定義されています。

bool CLayoutMgr::IsKinsokuPosKuto | ( | const int | nRest,
 |  | const int | nCharChars
 | ) | const [inline, private]

句読点ぶら下げの処理位置か

日付:
2005-08-20 D.S.Koba

Sep. 3, 2005 genta 最適化

CLayoutMgr.h の 242 行で定義されています。

bool CLayoutMgr::IsKinsokuPosTail | ( | const | int,
 |  | const | int,
 |  | const | int
 | ) | [private]

行末禁則の処理位置か

引数:
[in] | nRest | 行の残り文字数
[in] | nCharChars | 現在位置の文字サイズ
[in] | nCharChars2 | 現在位置の次の文字サイズ
日付:
2005-08-20 D.S.Koba DoLayout()とDoLayout_Range()から分離

CLayoutMgr_New.cpp の 1047 行で定義されています。

bool CLayoutMgr::IsKinsokuTail | ( | const char * | pLine,
 |  | int | length
 | ) | [private]

行末禁則文字をチェックする

CLayoutMgr_New.cpp の 899 行で定義されています。

参照先 m_pszKinsokuTail_1・m_pszKinsokuTail_2.

bool CLayoutMgr::IsKutoTen | ( | unsigned char | c1,
 |  | unsigned char | c2
 | ) | [private]

句読点文字をチェックする

CLayoutMgr_New.cpp の 926 行で定義されています。

参照元 SetLayoutInfo().

int CLayoutMgr::Match_Quote | ( | char | szQuote,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | const char * | pLine
 | ) | [private]

CLayoutMgr_New.cpp の 1077 行で定義されています。

参照先 CMemory::GetSizeOfChar().

int CLayoutMgr::NextWord | ( | int | nLineNum,
 |  | int | nIdx,
 |  | int * | pnLineNew,
 |  | int * | pnColmNew,
 |  | BOOL | bStopsBothEnds
 | ) | [inline]

CLayoutMgr.h の 107 行で定義されています。

参照先 FALSE.

参照元 CEditView::Command_WORDRIGHT().

int CLayoutMgr::PrevOrNextWord | ( | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * | ,
 |  | BOOL | ,
 |  | BOOL | bStopsBothEnds
 | ) | [protected]

CLayoutMgr.cpp の 1126 行で定義されています。

参照先 FALSE・CLayout::m_nLinePhysical・CLayout::m_nOffset・m_pcDocLineMgr・NULL・CDocLineMgr::PrevOrNextWord()・Search()・XYLogicalToLayout().

int CLayoutMgr::PrevWord | ( | int | nLineNum,
 |  | int | nIdx,
 |  | int * | pnLineNew,
 |  | int * | pnColmNew,
 |  | BOOL | bStopsBothEnds
 | ) | [inline]

CLayoutMgr.h の 106 行で定義されています。

参照先 TRUE.

参照元 CEditView::Command_WORDLEFT().

void CLayoutMgr::ReplaceData_CLayoutMgr ( LayoutReplaceArg * pArg )

CLayoutMgr_New2.cpp の 26 行で定義されています。

参照先 CaretPos_Log2Phys()・CaretPos_Phys2Log()・DeleteLayoutAsLogical()・DoLayout_Range()・CDocLineMgr::GetLineCount()・CLayout::m_nLinePhysical・m_nLines・CLayout::m_nOffset・CLayout::m_nTypePrev・m_pcDocLineMgr・m_pLayoutBot・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・LayoutReplaceArg::nAddLineNum・LayoutReplaceArg::nDelColmFrom・LayoutReplaceArg::nDelColmTo・DocLineReplaceArg::nDeletedLineNum・DocLineReplaceArg::nDelLineFrom・LayoutReplaceArg::nDelLineFrom・DocLineReplaceArg::nDelLineTo・LayoutReplaceArg::nDelLineTo・DocLineReplaceArg::nDelPosFrom・DocLineReplaceArg::nDelPosTo・LayoutReplaceArg::nInsDataLen・DocLineReplaceArg::nInsDataLen・DocLineReplaceArg::nInsLineNum・LayoutReplaceArg::nModLineFrom・LayoutReplaceArg::nModLineTo・DocLineReplaceArg::nNewLine・LayoutReplaceArg::nNewLine・DocLineReplaceArg::nNewPos・LayoutReplaceArg::nNewPos・NULL・LayoutReplaceArg::pcmemDeleted・DocLineReplaceArg::pcmemDeleted・LayoutReplaceArg::pInsData・DocLineReplaceArg::pInsData・CDocLineMgr::ReplaceData()・Search()・ShiftLogicalLineNum().

CLayout * CLayoutMgr::Search ( int nLineNum )

指定された物理行のレイアウト情報を取得

引数:
nLineNum [in] 物理行番号 (0～)

CLayoutMgr.cpp の 343 行で定義されています。

参照先 m_nLines・m_nPrevReferLine・m_pLayoutBot・m_pLayoutPrevRefer・m_pLayoutTop・CLayout::m_pNext・CLayout::m_pPrev・MYTRACE・NULL.

参照元 CaretPos_Log2Phys()・CaretPos_Phys2Log()・CEditView::Command_COPY()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_LINE()・CEditView::Command_DUPLICATELINE()・CEditView::Command_GOLINEEND()・CEditView::Command_GOLINETOP()・CEditView::Command_IME_CHAR()・CEditView::Command_INDENT()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineCutToStart()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_LineDeleteToStart()・CEditView::Command_MERGE()・CEditView::Command_SEARCH_PREV()・CEditView::Command_SELECTWORD()・CEditView::Command_WORDLEFT()・CEditView::Command_WORDRIGHT()・CEditView::DispLineNew()・CEditView::DispTextSelected()・CEditView::DrawSelectAreaLine()・CEditView::GetAdjustCursorPos()・CEditView::GetCurrentWord()・GetLineStr()・InsertData_CLayoutMgr()・CEditView::ISearchExec()・IsEndOfLine()・CEditView::OnPaint()・PrevOrNextWord()・ReplaceData_CLayoutMgr()・SearchWord()・WhereCurrentWord().

int CLayoutMgr::SearchWord | ( | int | ,
 |  | int | ,
 |  | const char * | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * | ,
 |  | int * | ,
 |  | int * | ,
 |  | CBregexp * |
 | ) |

単語検索

引数:
pRegexp [in] 正規表現コンパイルデータ

CLayoutMgr.cpp の 1165 行で定義されています。

参照先 CaretPos_Phys2Log()・FALSE・CLayout::m_nLinePhysical・CLayout::m_nOffset・m_pcDocLineMgr・NULL・Search()・CDocLineMgr::SearchWord().

参照元 CEditView::Command_SEARCH_NEXT()・CEditView::Command_SEARCH_PREV().

void CLayoutMgr::SetLayoutInfo | ( | int | ,
 |  | HWND | ,
 |  | Types & | refType
 | ) |

CLayoutMgr.cpp の 109 行で定義されています。

参照先 _IS_SJIS_1・COLORIDX_COMMENT・COLORIDX_SSTRING・COLORIDX_WSTRING・getIndentOffset・getIndentOffset_LeftSpace()・getIndentOffset_Normal()・getIndentOffset_Tx2x()・IsKutoTen()・ColorInfo::m_bDisp・m_bDispComment・m_bDispSString・m_bDispWString・Types::m_bKinsokuHead・m_bKinsokuHead・Types::m_bKinsokuKuto・m_bKinsokuKuto・Types::m_bWordWrap・m_bWordWrap・Types::m_cBlockComment・m_cBlockComment・Types::m_cLineComment・m_cLineComment・Types::m_ColorInfoArr・Types::m_nIndentLayout・Types::m_nMaxLineSize・m_nMaxLineSize・Types::m_nStringType・m_nStringType・Types::m_nTabSpace・m_nTabSpace・m_pszKinsokuHead_1・m_pszKinsokuHead_2・m_pszKinsokuKuto_1・m_pszKinsokuKuto_2・Types::m_szKinsokuHead・MY_RUNNINGTIMER・NULL.

参照元 CEditDoc::CEditDoc()・CEditDoc::Init()・CEditDoc::OnChangeSetting().

void CLayoutMgr::ShiftLogicalLineNum | ( | CLayout * | ,
 |  | int |
 | ) | [protected]

CLayoutMgr.cpp の 1061 行で定義されています。

参照先 CLayout::m_nLinePhysical・m_pLayoutTop・CLayout::m_pNext・MY_RUNNINGTIMER・NULL.

参照元 DeleteData_CLayoutMgr()・InsertData_CLayoutMgr()・ReplaceData_CLayoutMgr().

int CLayoutMgr::WhereCurrentWord | ( | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * | ,
 |  | int * | ,
 |  | int * | ,
 |  | CMemory * | ,
 |  | CMemory * |
 | ) |

CLayoutMgr.cpp の 1086 行で定義されています。

参照先 FALSE・CLayout::m_nLinePhysical・CLayout::m_nOffset・m_pcDocLineMgr・NULL・Search()・CDocLineMgr::WhereCurrentWord()・XYLogicalToLayout().

参照元 CEditView::Command_SELECTWORD()・CEditView::GetCurrentTextForSearch()・CEditView::GetCurrentWord()・CEditView::GetLeftWord().

void CLayoutMgr::XYLogicalToLayout | ( | CLayout * | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int * | ,
 |  | int * |
 | ) | [protected]

CLayoutMgr.cpp の 1228 行で定義されています。

参照先 CLayout::m_nLength・CLayout::m_nLinePhysical・m_nLines・CLayout::m_nOffset・m_pLayoutBot・CLayout::m_pNext・CLayout::m_pPrev・NULL.

参照元 InsertData_CLayoutMgr()・PrevOrNextWord()・WhereCurrentWord().

変数

int(CLayoutMgr::* CLayoutMgr::getIndentOffset)(CLayout *) [protected]

参照元 DoLayout()・DoLayout_Range()・SetLayoutInfo().

BOOL CLayoutMgr::m_bDispComment [protected]

CLayoutMgr.h の 199 行で定義されています。

参照元 CheckColorMODE()・CLayoutMgr()・SetLayoutInfo().

BOOL CLayoutMgr::m_bDispSString [protected]

CLayoutMgr.h の 200 行で定義されています。

参照元 CLayoutMgr()・SetLayoutInfo().

BOOL CLayoutMgr::m_bDispWString [protected]

CLayoutMgr.h の 201 行で定義されています。

参照元 CLayoutMgr()・SetLayoutInfo().

BOOL CLayoutMgr::m_bKinsokuHead [protected]

CLayoutMgr.h の 188 行で定義されています。

参照元 CLayoutMgr()・SetLayoutInfo().

BOOL CLayoutMgr::m_bKinsokuKuto [protected]

CLayoutMgr.h の 191 行で定義されています。

参照元 CLayoutMgr()・SetLayoutInfo().

BOOL CLayoutMgr::m_bKinsokuRet [protected]

CLayoutMgr.h の 190 行で定義されています。

参照元 CLayoutMgr()・DoLayout()・DoLayout_Range().

BOOL CLayoutMgr::m_bKinsokuTail [protected]

CLayoutMgr.h の 189 行で定義されています。

参照元 CLayoutMgr().

BOOL CLayoutMgr::m_bWordWrap [protected]

CLayoutMgr.h の 187 行で定義されています。

参照元 CLayoutMgr()・DoLayout()・DoLayout_Range()・SetLayoutInfo().

CBlockComment CLayoutMgr::m_cBlockComment [protected]

CLayoutMgr.h の 203 行で定義されています。

参照元 CheckColorMODE()・SetLayoutInfo().

CLineComment CLayoutMgr::m_cLineComment [protected]

CLayoutMgr.h の 202 行で定義されています。

参照元 CheckColorMODE()・SetLayoutInfo().

int CLayoutMgr::m_nEOFColumn [protected]

EOF幅位置

CLayoutMgr.h の 215 行で定義されています。

参照元 DoLayout_Range()・GetEndLayoutPos()・Init().

int CLayoutMgr::m_nEOFLine [protected]

EOF行数

CLayoutMgr.h の 214 行で定義されています。

参照元 DoLayout_Range()・GetEndLayoutPos()・Init().

int CLayoutMgr::m_nLines [protected]

CLayoutMgr.h の 185 行で定義されています。

参照元 AddLineBottom()・CaretPos_Log2Phys()・CaretPos_Phys2Log()・DeleteData_CLayoutMgr()・DeleteLayoutAsLogical()・DUMP()・GetEndLayoutPos()・Init()・InsertData_CLayoutMgr()・InsertLineNext()・ReplaceData_CLayoutMgr()・Search()・XYLogicalToLayout().

int CLayoutMgr::m_nLineTypeBot [protected]

タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列

CLayoutMgr.h の 184 行で定義されています。

参照元 DoLayout()・InsertData_CLayoutMgr().

int CLayoutMgr::m_nMaxLineSize [protected]

CLayoutMgr.h の 186 行で定義されています。

参照元 ChangeLayoutParam()・DoLayout()・DoLayout_Range()・DUMP()・SetLayoutInfo().

int CLayoutMgr::m_nPrevReferLine [protected]

CLayoutMgr.h の 210 行で定義されています。

参照元 DeleteLayoutAsLogical()・Init()・InsertData_CLayoutMgr()・Search().

int CLayoutMgr::m_nStringType [protected]

CLayoutMgr.h の 204 行で定義されています。

参照元 CLayoutMgr()・SetLayoutInfo().

int CLayoutMgr::m_nTabSpace [protected]

CLayoutMgr.h の 198 行で定義されています。

参照元 ChangeLayoutParam()・CLayoutMgr()・DoLayout()・DUMP()・getIndentOffset_LeftSpace()・getIndentOffset_Tx2x()・SetLayoutInfo().

CDocLineMgr* CLayoutMgr::m_pcDocLineMgr

CLayoutMgr.h の 179 行で定義されています。

参照元 CaretPos_Log2Phys()・CLayoutMgr()・Create()・DeleteData_CLayoutMgr()・DoLayout()・DoLayout_Range()・DUMP()・GetLineStr()・InsertData_CLayoutMgr()・PrevOrNextWord()・ReplaceData_CLayoutMgr()・SearchWord()・WhereCurrentWord().

CEditDoc* CLayoutMgr::m_pcEditDoc [protected]

CLayoutMgr.h の 219 行で定義されています。

参照元 Create()・getIndentOffset_LeftSpace().

CLayout* CLayoutMgr::m_pLayoutBot [protected]

CLayoutMgr.h の 182 行で定義されています。

参照元 AddLineBottom()・DeleteLayoutAsLogical()・DoLayout()・DUMP()・GetEndLayoutPos()・Init()・InsertData_CLayoutMgr()・InsertLineNext()・ReplaceData_CLayoutMgr()・Search()・XYLogicalToLayout().

CLayout* CLayoutMgr::m_pLayoutPrevRefer [protected]

CLayoutMgr.h の 211 行で定義されています。

参照元 DeleteData_CLayoutMgr()・DeleteLayoutAsLogical()・Init()・InsertData_CLayoutMgr()・Search().

CLayout* CLayoutMgr::m_pLayoutTop [protected]

CLayoutMgr.h の 181 行で定義されています。

参照元 AddLineBottom()・DeleteData_CLayoutMgr()・DeleteLayoutAsLogical()・DUMP()・Empty()・Init()・InsertData_CLayoutMgr()・InsertLineNext()・ReplaceData_CLayoutMgr()・Search()・ShiftLogicalLineNum().

char* CLayoutMgr::m_pszKinsokuHead_1 [protected]

CLayoutMgr.h の 192 行で定義されています。

参照元 CLayoutMgr()・IsKinsokuHead()・SetLayoutInfo()・~CLayoutMgr().

char* CLayoutMgr::m_pszKinsokuHead_2 [protected]

CLayoutMgr.h の 193 行で定義されています。

参照元 CLayoutMgr()・IsKinsokuHead()・SetLayoutInfo()・~CLayoutMgr().

char* CLayoutMgr::m_pszKinsokuKuto_1 [protected]

CLayoutMgr.h の 196 行で定義されています。

参照元 CLayoutMgr()・IsKinsokuKuto()・SetLayoutInfo()・~CLayoutMgr().

char* CLayoutMgr::m_pszKinsokuKuto_2 [protected]

CLayoutMgr.h の 197 行で定義されています。

参照元 CLayoutMgr()・IsKinsokuKuto()・SetLayoutInfo()・~CLayoutMgr().

char* CLayoutMgr::m_pszKinsokuTail_1 [protected]

CLayoutMgr.h の 194 行で定義されています。

参照元 CLayoutMgr()・IsKinsokuTail()・~CLayoutMgr().

char* CLayoutMgr::m_pszKinsokuTail_2 [protected]

CLayoutMgr.h の 195 行で定義されています。

参照元 CLayoutMgr()・IsKinsokuTail()・~CLayoutMgr().

このクラスの説明は次のファイルから生成されました:
  • CLayoutMgr.h
  • CLayoutMgr.cpp
  • CLayoutMgr_New.cpp
  • CLayoutMgr_New2.cpp
Sakura-Editorに対してSat Oct 27 02:35:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CLayoutMgr メンバ一覧

これは全メンバの一覧です。CLayoutMgr継承メンバも含んでいます。

AddLineBottom(CLayout *) | CLayoutMgr | [protected]
CaretPos_Log2Phys(int, int, int *, int *) | CLayoutMgr |
CaretPos_Phys2Log(int, int, int *, int *) | CLayoutMgr |
ChangeLayoutParam(HWND hwndProgress, int nTabSize, int nMaxLineSize) | CLayoutMgr |
CheckColorMODE(int &nCOMMENTMODE, int &nCOMMENTEND, int nPos, int nLineLen, const char *pLine) | CLayoutMgr | [private]
CLayoutMgr() | CLayoutMgr |
Create(CEditDoc *, CDocLineMgr *) | CLayoutMgr |
CreateLayout(CDocLine *pCDocLine, int nLine, int nOffset, int nLength, int nTypePrev, int nIndent) | CLayoutMgr | [protected]
DeleteData_CLayoutMgr(int nLineNum, int nDelPos, int nDelLen, int *pnModifyLayoutLinesOld, int *pnModifyLayoutLinesNew, int *pnDeleteLayoutLines, CMemory &cmemDeleted) | CLayoutMgr |
DeleteLayoutAsLogical(CLayout *, int, int, int, int, int, int *) | CLayoutMgr | [protected]
DoLayout(HWND) | CLayoutMgr | [protected]
DoLayout_Range(CLayout *, int, int, int, int, int *) | CLayoutMgr | [protected]
DUMP(void) | CLayoutMgr |
Empty() | CLayoutMgr |
GetActualTabSpace(int pos) const | CLayoutMgr | [inline]
GetEndLayoutPos(int &lX, int &lY) | CLayoutMgr |
GetFirstLinrStr(int *) | CLayoutMgr | [protected]
getIndentOffset | CLayoutMgr | [protected]
getIndentOffset_LeftSpace(CLayout *pLayoutPrev) | CLayoutMgr | [private]
getIndentOffset_Normal(CLayout *pLayoutPrev) | CLayoutMgr | [private]
getIndentOffset_Tx2x(CLayout *pLayoutPrev) | CLayoutMgr | [private]
GetLineCount(void) | CLayoutMgr | [inline]
GetLineStr(int, int *) | CLayoutMgr |
GetLineStr(int, int *, const CLayout **) | CLayoutMgr |
GetMaxLineSize(void) const | CLayoutMgr | [inline]
GetNextLinrStr(int *) | CLayoutMgr | [protected]
GetTabSpace(void) const | CLayoutMgr | [inline]
Init() | CLayoutMgr |
InsertData_CLayoutMgr(int nLineNum, int nInsPos, const char *pInsData, int nInsDataLen, int *pnModifyLayoutLinesOld, int *pnInsLineNum, int *pnNewLine, int *pnNewPos) | CLayoutMgr |
InsertLineNext(CLayout *, CLayout *) | CLayoutMgr | [protected]
IsEndOfLine(int nLine, int nPos) | CLayoutMgr |
IsKinsokuHead(const char *pLine, int length) | CLayoutMgr | [private]
IsKinsokuKuto(const char *pLine, int length) | CLayoutMgr | [private]
IsKinsokuPosHead(const int, const int, const int) | CLayoutMgr | [private]
IsKinsokuPosKuto(const int nRest, const int nCharChars) const | CLayoutMgr | [inline, private]
IsKinsokuPosTail(const int, const int, const int) | CLayoutMgr | [private]
IsKinsokuTail(const char *pLine, int length) | CLayoutMgr | [private]
IsKutoTen(unsigned char c1, unsigned char c2) | CLayoutMgr | [private]
m_bDispComment | CLayoutMgr | [protected]
m_bDispSString | CLayoutMgr | [protected]
m_bDispWString | CLayoutMgr | [protected]
m_bKinsokuHead | CLayoutMgr | [protected]
m_bKinsokuKuto | CLayoutMgr | [protected]
m_bKinsokuRet | CLayoutMgr | [protected]
m_bKinsokuTail | CLayoutMgr | [protected]
m_bWordWrap | CLayoutMgr | [protected]
m_cBlockComment | CLayoutMgr | [protected]
m_cLineComment | CLayoutMgr | [protected]
m_nEOFColumn | CLayoutMgr | [protected]
m_nEOFLine | CLayoutMgr | [protected]
m_nLines | CLayoutMgr | [protected]
m_nLineTypeBot | CLayoutMgr | [protected]
m_nMaxLineSize | CLayoutMgr | [protected]
m_nPrevReferLine | CLayoutMgr | [protected]
m_nStringType | CLayoutMgr | [protected]
m_nTabSpace | CLayoutMgr | [protected]
m_pcDocLineMgr | CLayoutMgr |
m_pcEditDoc | CLayoutMgr | [protected]
m_pLayoutBot | CLayoutMgr | [protected]
m_pLayoutPrevRefer | CLayoutMgr | [protected]
m_pLayoutTop | CLayoutMgr | [protected]
m_pszKinsokuHead_1 | CLayoutMgr | [protected]
m_pszKinsokuHead_2 | CLayoutMgr | [protected]
m_pszKinsokuKuto_1 | CLayoutMgr | [protected]
m_pszKinsokuKuto_2 | CLayoutMgr | [protected]
m_pszKinsokuTail_1 | CLayoutMgr | [protected]
m_pszKinsokuTail_2 | CLayoutMgr | [protected]
Match_Quote(char szQuote, int nPos, int nLineLen, const char *pLine) | CLayoutMgr | [private]
NextWord(int nLineNum, int nIdx, int *pnLineNew, int *pnColmNew, BOOL bStopsBothEnds) | CLayoutMgr | [inline]
PrevOrNextWord(int, int, int *, int *, BOOL, BOOL bStopsBothEnds) | CLayoutMgr | [protected]
PrevWord(int nLineNum, int nIdx, int *pnLineNew, int *pnColmNew, BOOL bStopsBothEnds) | CLayoutMgr | [inline]
ReplaceData_CLayoutMgr(LayoutReplaceArg *pArg) | CLayoutMgr |
Search(int) | CLayoutMgr |
SearchWord(int, int, const char *, int, int, int, int, int *, int *, int *, int *, CBregexp *) | CLayoutMgr |
SetLayoutInfo(int, HWND, Types &refType) | CLayoutMgr |
ShiftLogicalLineNum(CLayout *, int) | CLayoutMgr | [protected]
WhereCurrentWord(int, int, int *, int *, int *, int *, CMemory *, CMemory *) | CLayoutMgr |
XYLogicalToLayout(CLayout *, int, int, int, int *, int *) | CLayoutMgr | [protected]
~CLayoutMgr() | CLayoutMgr |

Sakura-Editorに対してSat Oct 27 02:35:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CLineComment

  • 構成
  • クラス階層
  • 構成メンバ

クラス CLineComment

#include <CLineComment.h>

すべてのメンバ一覧

Public メソッド

CLineComment ()
void | CopyTo (const int n, const char *buffer, int nCommentPos)
bool | Match (int nPos, int nLineLen, const char *pLine) const
const char * | getLineComment (const int n)
int | getLineCommentPos (const int n) const

Private 変数

char | m_pszLineComment [COMMENT_DELIMITER_NUM][COMMENT_DELIMITER_BUFFERSIZE]
int | m_nLineCommentPos [COMMENT_DELIMITER_NUM]
行コメントの開始位置(負数は指定無し)
int | m_nLineCommentLen [COMMENT_DELIMITER_NUM]
行コメント文字列の長さ

説明

行コメントデリミタを管理する

覚え書き:
CLineCommentは、共有メモリTypesに含まれるので、メンバ変数は常に実体を持っていなければならない。

CLineComment.h の 30 行で定義されています。

コンストラクタとデストラクタ

CLineComment::CLineComment ( )

CLineComment.cpp の 18 行で定義されています。

参照先 COMMENT_DELIMITER_NUM・m_nLineCommentPos・m_pszLineComment.

関数

void CLineComment::CopyTo | ( | const int | n,
 |  | const char * | buffer,
 |  | int | nCommentPos
 | ) |

行コメントデリミタをコピーする

引数:
n | [in] コピー対象のコメント番号
buffer | [in] コメント文字列
nCommentPos | [in] コメント位置．-1のときは指定無し．

CLineComment.cpp の 33 行で定義されています。

参照先 COMMENT_DELIMITER_BUFFERSIZE・m_nLineCommentLen・m_nLineCommentPos・m_pszLineComment.

const char* CLineComment::getLineComment ( const int n ) [inline]

CLineComment.h の 45 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

int CLineComment::getLineCommentPos ( const int n ) const [inline]

CLineComment.h の 48 行で定義されています。

参照元 CPropTypes::SetData_p3_new().

bool CLineComment::Match | ( | int | nPos,
 |  | int | nLineLen,
 |  | const char * | pLine
 | ) | const

CLineComment.cpp の 48 行で定義されています。

参照先 COMMENT_DELIMITER_NUM・m_nLineCommentLen・m_nLineCommentPos・m_pszLineComment・memicmp.

参照元 CLayoutMgr::CheckColorMODE()・CEditView::DispLineNew()・CEditView::GetColorIndex().

変数

int CLineComment::m_nLineCommentLen[COMMENT_DELIMITER_NUM] [private]

行コメント文字列の長さ

CLineComment.h の 34 行で定義されています。

参照元 CopyTo()・Match().

int CLineComment::m_nLineCommentPos[COMMENT_DELIMITER_NUM] [private]

行コメントの開始位置(負数は指定無し)

CLineComment.h の 33 行で定義されています。

参照元 CLineComment()・CopyTo()・Match().

char CLineComment::m_pszLineComment[COMMENT_DELIMITER_NUM][COMMENT_DELIMITER_BUFFERSIZE] [private]

CLineComment.h の 32 行で定義されています。

参照元 CLineComment()・CopyTo()・Match().

このクラスの説明は次のファイルから生成されました:
  • CLineComment.h
  • CLineComment.cpp
Sakura-Editorに対してSat Oct 27 02:35:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CLineComment メンバ一覧

これは全メンバの一覧です。CLineComment継承メンバも含んでいます。

CLineComment() | CLineComment |
CopyTo(const int n, const char *buffer, int nCommentPos) | CLineComment |
getLineComment(const int n) | CLineComment | [inline]
getLineCommentPos(const int n) const | CLineComment | [inline]
m_nLineCommentLen | CLineComment | [private]
m_nLineCommentPos | CLineComment | [private]
m_pszLineComment | CLineComment | [private]
Match(int nPos, int nLineLen, const char *pLine) const | CLineComment |

Sakura-Editorに対してSat Oct 27 02:35:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMacro

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMacro

キーボードマクロの1コマンド [詳細]

#include <CMacro.h>

CMacroのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CMacro (int nFuncID)
~CMacro ()
void | SetNext (CMacro *pNext)
CMacro * GetNext ()
void | Exec (CEditView *pcEditView)
void | Save (HINSTANCE hInstance, HFILE hFile)
void | AddLParam (LPARAM lParam, CEditView *pcEditView)
void | AddParam (const char *lParam)
void | AddParam (const int lParam)

Static Public メソッド

static void | HandleCommand (CEditView *pcEditView, const int Index, const char *Argument[], const int ArgSize)
static bool | HandleFunction (CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result)

Protected 変数

int | m_nFuncID
CMacro::CMacroParam * m_pParamTop
CMacro::CMacroParam * m_pParamBot
CMacro * m_pNext

構成

struct | CMacroParam

説明

キーボードマクロの1コマンド

引数をリスト構造にして、いくつでも持てるようにしてみました。 スタックにするのが通例なのかもしれません（よくわかりません）。

今後、制御構造が入っても困らないようにしようと思ったのですが、挫折しました。

さて、このクラスは次のような前提で動作している。

  • 引数のリストを、m_pParamTopからのリスト構造で保持。
  • 引数を新たに追加するには、AddParam()を使用する。 AddParamにどんな値が渡されてもよいように準備するコト。 渡された値が数値なのか、文字列へのポインタなのかは、m_nFuncID（機能 ID）によって、このクラス内で判別し、よろしくやること。
  • 引数は、CMacro内部ではすべて文字列で保持すること（数値97は、"97"として保持）（いまのところ）

CMacro.h の 42 行で定義されています。

コンストラクタとデストラクタ

CMacro::CMacro ( int nFuncID )

CMacro.cpp の 32 行で定義されています。

参照先 m_nFuncID・m_pNext・m_pParamBot・m_pParamTop・NULL.

CMacro::~CMacro ( )

CMacro.cpp の 39 行で定義されています。

参照先 CMacro::CMacroParam::m_pData・CMacro::CMacroParam::m_pNext・m_pParamTop.

関数

void CMacro::AddLParam | ( | LPARAM | lParam,
 |  | CEditView * | pcEditView
 | ) |

CMacro.cpp の 59 行で定義されています。

参照先 AddParam()・CODE_AUTODETECT・F_BOOKMARK_PATTERN・F_CHAR・F_EXECCOMMAND・F_FILEOPEN・F_GREP・F_INSTEXT・F_JUMP・F_REPLACE・F_REPLACE_ALL・F_SEARCH_NEXT・F_SEARCH_PREV・Common::m_bAutoCloseDlgFind・Common::m_bConsecutiveAll・Common::m_bGrepOutputLine・Common::m_bGrepSubFolder・DLLSHAREDATA::m_bLineNumIsCRLF・Common::m_bLoHiCase・Common::m_bNOTIFYNOTFOUND・CDlgJump::m_bPLSQL・Common::m_bRegularExp・Common::m_bSearchAll・Common::m_bSelectedArea・Common::m_bWordOnly・CEditDoc::m_cDlgJump・CEditDoc::m_cDlgReplace・DLLSHAREDATA::m_Common・DLLSHAREDATA::m_nExecFlgOpt・m_nFuncID・Common::m_nGrepCharSet・Common::m_nGrepOutputStyle・CDlgJump::m_nLineNum・CDlgReplace::m_nPaste・CDlgReplace::m_nReplaceTarget・CEditView::m_pcEditDoc・CEditView::m_pShareData・DLLSHAREDATA::m_szGREPFILEArr・DLLSHAREDATA::m_szGREPFOLDERArr・DLLSHAREDATA::m_szREPLACEKEYArr・DLLSHAREDATA::m_szSEARCHKEYArr.

参照元 CKeyMacroMgr::Append().

void CMacro::AddParam ( const int lParam )

CMacro.cpp の 176 行で定義されています。

参照先 CMacro::CMacroParam::m_pData・CMacro::CMacroParam::m_pNext・m_pParamBot・m_pParamTop・NULL.

void CMacro::AddParam ( const char * lParam )

CMacro.cpp の 152 行で定義されています。

参照先 CMacro::CMacroParam::m_pData・CMacro::CMacroParam::m_pNext・m_pParamBot・m_pParamTop・NULL.

参照元 AddLParam().

void CMacro::Exec ( CEditView * pcEditView )

CMacro.cpp の 206 行で定義されています。

参照先 CMacro::CMacroParam::m_pData・CMacro::CMacroParam::m_pNext・m_pParamTop・NULL.

参照元 CKeyMacroMgr::ExecKeyMacro().

CMacro* CMacro::GetNext ( ) [inline]

CMacro.h の 52 行で定義されています。

参照先 m_pNext.

参照元 CKeyMacroMgr::ClearAll()・CKeyMacroMgr::ExecKeyMacro()・CKeyMacroMgr::SaveKeyMacro().

void CMacro::HandleCommand | ( | CEditView * | pcEditView,
 |  | const int | Index,
 |  | const char * | Argument[],
 |  | const int | ArgSize
 | ) | [static]

MacroコマンドをCEditViewHandleCommandに引き渡す。

引数がないマクロを除き，マクロとHandleCommandでの対応をここで定義する必要がある．

引数:
pcEditView | [in] 操作対象EditView
Index | [in] 機能 ID
Argument | [in] 引数
ArgSize | [in] 引数の数

CMacro.cpp の 343 行で定義されています。

参照先 CShareData::AddToReplaceKeyArr()・CShareData::AddToSearchKeyArr()・CheckRegexpSyntax()・CODE_AUTODETECT・CODE_CODEMAX・CODE_SJIS・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF8・EOL_CR・EOL_CRLF・EOL_LF・EOL_NONE・F_ADDTAIL・F_BOOKMARK_PATTERN・F_CHAR・F_CHGMOD_EOL・F_DIFF・F_EXECCOMMAND・F_EXTHTMLHELP・F_FILE_REOPEN・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UNICODEBE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_FILEOPEN・F_FILESAVEAS・F_GOLINETOP・F_GREP・F_IME_CHAR・F_INSFILE・F_INSTEXT・F_JUMP・F_PUTFILE・F_REPLACE・F_REPLACE_ALL・F_SEARCH_NEXT・F_SEARCH_PREV・F_SET_QUOTESTRING・F_TAGJUMP_KEYWORD・F_TOPMOST・F_TRACEOUT・FALSE・CShareData::getInstance()・CMemory::GetPtr()・CEditView::HandleCommand()・Common::m_bAutoCloseDlgFind・CEditDoc::m_bBomExist・Common::m_bConsecutiveAll・DLLSHAREDATA::m_bLineNumIsCRLF・Common::m_bLoHiCase・Common::m_bNOTIFYNOTFOUND・CDlgJump::m_bPLSQL・Common::m_bRegularExp・Common::m_bSearchAll・Common::m_bSelectedArea・Common::m_bWordOnly・CEditDoc::m_cDlgJump・CEditDoc::m_cDlgReplace・DLLSHAREDATA::m_Common・CEditDoc::m_cSaveLineCode・CEditView::m_hInstance・CEditView::m_hWnd・CEditDoc::m_nCharCode・CDlgJump::m_nLineNum・CDlgReplace::m_nPaste・CDlgReplace::m_nReplaceTarget・CEditView::m_pcEditDoc・CEditView::m_pShareData・MYMESSAGEBOX・NULL・CEditApp::OpenNewEditor()・CMemory::Replace_j()・CMemory::SetDataSz()・TRUE.

参照元 CPPA::stdProc().

bool CMacro::HandleFunction | ( | CEditView * | View,
 |  | int | ID,
 |  | VARIANT * | Arguments,
 |  | int | ArgSize,
 |  | VARIANT & | Result
 | ) | [static]

値を返す関数を処理する

引数:
View | [in] 対象となるView
ID | [in] 関数番号
Arguments | [in] 引数の配列
ArgSize | [in] 引数の数(Argument)
Result | [out] 結果の値を返す場所。戻り値がfalseのときは不定。
戻り値:
true: 成功, false: 失敗
作者:
鬼
日付:
2003.02.21 鬼

2003.06.01 Moca 関数追加

2005.08.05 maru,zenryaku 関数追加

2005.11.29 FILE VariantChangeType対応

CMacro.cpp の 811 行で定義されています。

参照先 CEditDoc::ChangeLayoutParam()・Variant::Data・CEditDoc::ExpandParameter()・F_CHGTABWIDTH・F_EXPANDPARAMETER・F_GETFILENAME・F_GETLINECOUNT・F_GETLINESTR・F_GETSELECTED・F_ISTEXTSELECTED・FALSE・CEditDoc::GetFilePath()・CDocLineMgr::GetLineCount()・CDocLineMgr::GetLineStr()・CLayoutMgr::GetMaxLineSize()・CEditView::GetSelectedData()・CLayoutMgr::GetTabSpace()・CEditView::IsTextSelected()・CEditView::m_bBeginBoxSelect・CEditDoc::m_cDocLineMgr・CEditDoc::m_cLayoutMgr・CEditView::m_nCaretPosY_PHY・CEditView::m_pcEditDoc・NULL・Variant::Receive()・Wrap().

参照元 MacroCommand().

void CMacro::Save | ( | HINSTANCE | hInstance,
 |  | HFILE | hFile
 | ) |

CMacro.cpp の 225 行で定義されています。

参照先 F_BOOKMARK_PATTERN・F_EXECCOMMAND・F_FILEOPEN・F_GREP・F_INSTEXT・F_JUMP・F_REPLACE・F_REPLACE_ALL・F_SEARCH_NEXT・F_SEARCH_PREV・CSMacroMgr::GetFuncInfoByID()・CMemory::GetPtr()・m_nFuncID・CMacro::CMacroParam::m_pData・CMacro::CMacroParam::m_pNext・m_pParamTop・CMemory::Replace_j()・CMemory::SetData().

参照元 CKeyMacroMgr::SaveKeyMacro().

void CMacro::SetNext ( CMacro * pNext ) [inline]

CMacro.h の 51 行で定義されています。

参照先 m_pNext.

参照元 CKeyMacroMgr::Append().

変数

int CMacro::m_nFuncID [protected]

CMacro.h の 75 行で定義されています。

参照元 AddLParam()・CMacro()・Save().

CMacro* CMacro::m_pNext [protected]

CMacro.h の 80 行で定義されています。

参照元 CMacro()・GetNext()・SetNext().

struct CMacro::CMacroParam * CMacro::m_pParamBot [protected]

参照元 AddParam()・CMacro().

struct CMacro::CMacroParam * CMacro::m_pParamTop [protected]

参照元 AddParam()・CMacro()・Exec()・Save()・~CMacro().

このクラスの説明は次のファイルから生成されました:
  • CMacro.h
  • CMacro.cpp
Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacro メンバ一覧

これは全メンバの一覧です。CMacro継承メンバも含んでいます。

AddLParam(LPARAM lParam, CEditView *pcEditView) | CMacro |
AddParam(const char *lParam) | CMacro |
AddParam(const int lParam) | CMacro |
CMacro(int nFuncID) | CMacro |
Exec(CEditView *pcEditView) | CMacro |
GetNext() | CMacro | [inline]
HandleCommand(CEditView *pcEditView, const int Index, const char *Argument[], const int ArgSize) | CMacro | [static]
HandleFunction(CEditView *View, int ID, VARIANT *Arguments, int ArgSize, VARIANT &Result) | CMacro | [static]
m_nFuncID | CMacro | [protected]
m_pNext | CMacro | [protected]
m_pParamBot | CMacro | [protected]
m_pParamTop | CMacro | [protected]
Save(HINSTANCE hInstance, HFILE hFile) | CMacro |
SetNext(CMacro *pNext) | CMacro | [inline]
~CMacro() | CMacro |

Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 CMacro::CMacroParam

  • 構成
  • クラス階層
  • 構成メンバ
CMacro::CMacroParam

構造体 CMacro::CMacroParam

#include <CMacro.h>

CMacro::CMacroParamのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

char * m_pData
CMacroParam * m_pNext

説明

CMacro.h の 76 行で定義されています。

変数

char* CMacro::CMacroParam::m_pData

CMacro.h の 77 行で定義されています。

参照元 CMacro::AddParam()・CMacro::Exec()・CMacro::Save()・CMacro::~CMacro().

CMacroParam* CMacro::CMacroParam::m_pNext

CMacro.h の 78 行で定義されています。

参照元 CMacro::AddParam()・CMacro::Exec()・CMacro::Save()・CMacro::~CMacro().

この構造体の説明は次のファイルから生成されました:
  • CMacro.h
Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacro::CMacroParam メンバ一覧

これは全メンバの一覧です。CMacro::CMacroParam継承メンバも含んでいます。

m_pData | CMacro::CMacroParam
m_pNext | CMacro::CMacroParam

Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMacroFactory

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMacroFactory

マクロHandler生成クラス [詳細]

#include <CMacroFactory.h>

すべてのメンバ一覧

Public 型

typedef CMacroManagerBase *(* | Creator )(const char *)

Public メソッド

bool | RegisterCreator (Creator)
bool | Unregister (Creator)
CMacroManagerBase * | Create (const char *)

Static Public メソッド

static CMacroFactory * | Instance ()

Private 型

typedef std::list< Creator > | MacroEngineRep

Private メソッド

CMacroFactory ()
std::string | Ext2Key (const char *ext)

Private 変数

MacroEngineRep m_mMacroCreators

説明

マクロHandler生成クラス

初期化
CMacroManagerBase::declare() により，MacroEngineのCreaterの登録 RegisterEngine() 及び 対応拡張子の登録 RegisterExt() が呼び出される．
呼び出し
CMacroFactory::Create()を拡張子を引数にして呼び出すと対応する マクロエンジンが返される．得られたEngineに対してLoadKeyMacro()及び ExecKeyMacro() を呼び出すことでマクロの読み込み・実行が行われる．
Singleton

CMacroFactory.h の 57 行で定義されています。

型定義

typedef CMacroManagerBase*(* CMacroFactory::Creator)(const char *)

CMacroFactory.h の 59 行で定義されています。

typedef std::list<Creator> CMacroFactory::MacroEngineRep [private]

CMacroFactory.h の 78 行で定義されています。

コンストラクタとデストラクタ

CMacroFactory::CMacroFactory ( ) [private]

CMacroFactory.cpp の 39 行で定義されています。

関数

CMacroManagerBase * CMacroFactory::Create ( const char * )

CMacroFactory.cpp の 176 行で定義されています。

参照先 Ext2Key()・MYTRACE・NULL.

参照元 CSMacroMgr::Load().

std::string CMacroFactory::Ext2Key ( const char * ext ) [private]

与えられた拡張子をmapのkeyに変換する

引数:
ext [in] 拡張子
Rule
  • NULLは""にする。
  • アルファベットは小文字に統一

CMacroFactory.cpp の 51 行で定義されています。

参照先 NULL・NULSTR.

参照元 Create().

CMacroFactory * CMacroFactory::Instance ( void ) [static]

SingletonのためのInstance取得関数。

Scott MeyersのSingleton

CMacroFactory.cpp の 222 行で定義されています。

参照元 CWSHMacroManager::declare()・CPPAMacroMgr::declare()・CKeyMacroMgr::declare()・CSMacroMgr::Load().

bool CMacroFactory::RegisterCreator ( Creator f )

Creatorの登録

拡張子の対応を初期に登録しないCreatorを登録する． ただし，一旦対応がわかったら次回以降は対応表が使われる．

引数:
f [in] 登録するFactory関数
参照:
CMacroFactory::RegisterExts
日付:
2002.08.25 genta 追加

CMacroFactory.cpp の 109 行で定義されています。

参照先 m_mMacroCreators・NULL.

参照元 CWSHMacroManager::declare()・CPPAMacroMgr::declare()・CKeyMacroMgr::declare().

bool CMacroFactory::Unregister ( Creator f )

Creatorの登録解除

引数:
f [in] 登録解除するCreator

CMacroFactory.cpp の 124 行で定義されています。

変数

MacroEngineRep CMacroFactory::m_mMacroCreators [private]

Creatorリスト

日付:
2002.08.25 genta 追加

CMacroFactory.h の 87 行で定義されています。

参照元 RegisterCreator().

このクラスの説明は次のファイルから生成されました:
  • CMacroFactory.h
  • CMacroFactory.cpp
Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacroFactory メンバ一覧

これは全メンバの一覧です。CMacroFactory継承メンバも含んでいます。

CMacroFactory() | CMacroFactory | [private]
Create(const char *) | CMacroFactory |
Creator typedef | CMacroFactory |
Ext2Key(const char *ext) | CMacroFactory | [private]
Instance() | CMacroFactory | [static]
m_mMacroCreators | CMacroFactory | [private]
MacroEngineRep typedef | CMacroFactory | [private]
RegisterCreator(Creator) | CMacroFactory |
Unregister(Creator) | CMacroFactory |

Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMacroManagerBase

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMacroManagerBase

マクロを処理するエンジン部分の基底クラス [詳細]

#include <CMacroManagerBase.h>

CMacroManagerBaseに対する継承グラフ

[凡例]
すべてのメンバ一覧

Public メソッド

virtual void | ExecKeyMacro (class CEditView *pcEditView) const =0
virtual BOOL | LoadKeyMacro (HINSTANCE hInstance, const char *pszPath)=0
virtual | ~CMacroManagerBase ()
bool | IsReady ()
CMacroManagerBase ()

Protected 変数

bool | m_nReady
Load済みかどうかを表すフラグ true...Load済み、false...未Load。

説明

マクロを処理するエンジン部分の基底クラス

CMacroManagerBase.h の 40 行で定義されています。

コンストラクタとデストラクタ

CMacroManagerBase::~CMacroManagerBase ( ) [virtual]

CMacroManagerBase.cpp の 39 行で定義されています。

CMacroManagerBase::CMacroManagerBase ( )

CMacroManagerBase.cpp の 35 行で定義されています。

関数

virtual void CMacroManagerBase::ExecKeyMacro ( class CEditView * pcEditView ) const [pure virtual]

キーボードマクロの実行

引数:
pcEditView [in] マクロ実行対象の編集ウィンドウ

CKeyMacroMgr・CPPAMacroMgr・CWSHMacroManagerで実装されています。

参照元 CSMacroMgr::Exec().

bool CMacroManagerBase::IsReady ( ) [inline]

Load済みかどうか

戻り値:
true | Load済み
false | 未Load

CMacroManagerBase.h の 74 行で定義されています。

参照先 m_nReady.

virtual BOOL CMacroManagerBase::LoadKeyMacro | ( | HINSTANCE | hInstance,
 |  | const char * | pszPath
 | ) | [pure virtual]

キーボードマクロを読み込む

引数:
hInstance | [in]
pszPath | [in] ファイル名

CKeyMacroMgr・CPPAMacroMgr・CWSHMacroManagerで実装されています。

変数

bool CMacroManagerBase::m_nReady [protected]

Load済みかどうかを表すフラグ true...Load済み、false...未Load。

CMacroManagerBase.h の 66 行で定義されています。

参照元 IsReady()・CPPAMacroMgr::LoadKeyMacro()・CKeyMacroMgr::LoadKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CMacroManagerBase.h
  • CMacroManagerBase.cpp
Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMacroManagerBase メンバ一覧

これは全メンバの一覧です。CMacroManagerBase継承メンバも含んでいます。

CMacroManagerBase() | CMacroManagerBase |
ExecKeyMacro(class CEditView *pcEditView) const =0 | CMacroManagerBase | [pure virtual]
IsReady() | CMacroManagerBase | [inline]
LoadKeyMacro(HINSTANCE hInstance, const char *pszPath)=0 | CMacroManagerBase | [pure virtual]
m_nReady | CMacroManagerBase | [protected]
~CMacroManagerBase() | CMacroManagerBase | [virtual]

Sakura-Editorに対してSat Oct 27 02:35:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMarkMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMarkMgr

#include <CMarkMgr.h>

CMarkMgrに対する継承グラフ

[凡例]
すべてのメンバ一覧

Public 型

typedef std::vector< CMark > | CMarkChain
typedef std::vector< CMark
>::const_iterator 		CMarkIterator

Public メソッド

CMarkMgr ()
int | Count (void) const
項目数を返す
int | GetMax (void) const
最大項目数を返す
void | SetMax (int max)
最大項目数を設定
virtual void | Add (const CMark &m)=0
要素の追加
virtual void | Flush (void)
要素の全消去
const CMark & | GetCurrent (void) const
要素の取得
bool | CheckCurrent (void) const
現在位置の要素が有効かどうかの判定
bool | CheckPrev (void) const
現在位置の前に有効な要素があるかどうかを調べる
bool | CheckNext (void) const
現在位置の後に有効な要素があるかどうかを調べる
bool | NextValid (void)
現在位置を後の有効な位置まで進める
bool | PrevValid (void)
現在位置を前の有効な位置まで進める
const CMark & | operator[] (int index) const

Protected メソッド

virtual void | Expire (void)=0

Protected 変数

CMarkChain m_cMarkChain
int | m_nCurpos
int | m_nMaxitem

構成

class | CMark

説明

行マークを管理するクラス。 純粋仮想関数を含むので、実際にはサブクラスを作って使う。

通常操作（共通）
Add()で追加．場所と名前を登録できる．操作そのものはカスタマイズ可能． [番号]で該当番号の要素を取得できる．
内部動作
最大値を超えた場合はprotectedな関数で処理する．（カスタマイズ可能） Add()の処理はサブクラスに任せる．
現在位置の管理
現在位置はManager内で管理する．
削除操作はサブクラスにまかせる

CMarkMgr.h の 59 行で定義されています。

型定義

typedef std::vector<CMark> CMarkMgr::CMarkChain

CMarkMgr.h の 97 行で定義されています。

typedef std::vector<CMark>::const_iterator CMarkMgr::CMarkIterator

CMarkMgr.h の 98 行で定義されています。

コンストラクタとデストラクタ

CMarkMgr::CMarkMgr ( ) [inline]

CMarkMgr.h の 102 行で定義されています。

関数

virtual void CMarkMgr::Add ( const CMark & m ) [pure virtual]

要素の追加

bool CMarkMgr::CheckCurrent ( void ) const

現在位置の要素が有効かどうかの判定

戻り値:
true | 有効
false | 無効

CMarkMgr.cpp の 58 行で定義されています。

参照先 Count()・m_cMarkChain・m_nCurpos.

bool CMarkMgr::CheckNext ( void ) const

現在位置の後に有効な要素があるかどうかを調べる

戻り値:
true | 有る
false | 無い

CMarkMgr.cpp の 87 行で定義されています。

参照先 Count()・m_cMarkChain・m_nCurpos.

参照元 CEditView::Command_JUMPHIST_NEXT()・CEditView::Command_JUMPHIST_PREV().

bool CMarkMgr::CheckPrev ( void ) const

現在位置の前に有効な要素があるかどうかを調べる

戻り値:
true | 有る
false | 無い

CMarkMgr.cpp の 72 行で定義されています。

参照先 m_cMarkChain・m_nCurpos.

int CMarkMgr::Count ( void ) const [inline]

項目数を返す

CMarkMgr.h の 105 行で定義されています。

参照先 m_cMarkChain.

参照元 CheckCurrent()・CheckNext()・NextValid().

virtual void CMarkMgr::Expire ( void ) [protected, pure virtual]

CAutoMarkMgrで実装されています。

参照元 SetMax().

void CMarkMgr::Flush ( void ) [virtual]

要素の全消去

現在のデータを全て消去し、現在位置のポインタをリセットする。

history
Apr. 1, 2001 genta 新規追加

CMarkMgr.cpp の 136 行で定義されています。

参照先 m_cMarkChain・m_nCurpos.

const CMark& CMarkMgr::GetCurrent ( void ) const [inline]

要素の取得

CMarkMgr.h の 115 行で定義されています。

参照先 m_cMarkChain・m_nCurpos.

int CMarkMgr::GetMax ( void ) const [inline]

最大項目数を返す

CMarkMgr.h の 106 行で定義されています。

参照先 m_nMaxitem.

参照元 CAutoMarkMgr::Expire().

bool CMarkMgr::NextValid ( void )

現在位置を後の有効な位置まで進める

戻り値:
true | 正常終了。現在位置は1つ後の有効な要素に移動した。
false | 有効な要素が見つからなかった。現在位置は移動していない。

CMarkMgr.cpp の 118 行で定義されています。

参照先 Count()・m_cMarkChain・m_nCurpos.

参照元 CEditView::Command_JUMPHIST_NEXT().

const CMark& CMarkMgr::operator[] ( int index ) const [inline]

CMarkMgr.h の 126 行で定義されています。

参照先 m_cMarkChain.

bool CMarkMgr::PrevValid ( void )

現在位置を前の有効な位置まで進める

戻り値:
true | 正常終了。現在位置は1つ前の有効な要素に移動した。
false | 有効な要素が見つからなかった。現在位置は移動していない。

CMarkMgr.cpp の 102 行で定義されています。

参照先 m_cMarkChain・m_nCurpos.

参照元 CEditView::Command_JUMPHIST_PREV().

void CMarkMgr::SetMax ( int max )

最大項目数を設定

現在より小さい値を設定したときは余分な要素は削除される。

引数:
max 設定する最大件数

CMarkMgr.cpp の 46 行で定義されています。

参照先 Expire()・m_nMaxitem.

参照元 CEditView::CEditView().

変数

CMarkChain CMarkMgr::m_cMarkChain [protected]

CMarkMgr.h の 137 行で定義されています。

参照元 CAutoMarkMgr::Add()・CheckCurrent()・CheckNext()・CheckPrev()・Count()・CAutoMarkMgr::Expire()・Flush()・GetCurrent()・NextValid()・operator[]()・PrevValid().

int CMarkMgr::m_nCurpos [protected]

CMarkMgr.h の 138 行で定義されています。

参照元 CAutoMarkMgr::Add()・CheckCurrent()・CheckNext()・CheckPrev()・CAutoMarkMgr::Expire()・Flush()・GetCurrent()・NextValid()・PrevValid().

int CMarkMgr::m_nMaxitem [protected]

CMarkMgr.h の 140 行で定義されています。

参照元 GetMax()・SetMax().

このクラスの説明は次のファイルから生成されました:
  • CMarkMgr.h
  • CMarkMgr.cpp
Sakura-Editorに対してSat Oct 27 02:35:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMarkMgr メンバ一覧

これは全メンバの一覧です。CMarkMgr継承メンバも含んでいます。

Add(const CMark &m)=0 | CMarkMgr | [pure virtual]
CheckCurrent(void) const | CMarkMgr |
CheckNext(void) const | CMarkMgr |
CheckPrev(void) const | CMarkMgr |
CMarkChain typedef | CMarkMgr |
CMarkIterator typedef | CMarkMgr |
CMarkMgr() | CMarkMgr | [inline]
Count(void) const | CMarkMgr | [inline]
Expire(void)=0 | CMarkMgr | [protected, pure virtual]
Flush(void) | CMarkMgr | [virtual]
GetCurrent(void) const | CMarkMgr | [inline]
GetMax(void) const | CMarkMgr | [inline]
m_cMarkChain | CMarkMgr | [protected]
m_nCurpos | CMarkMgr | [protected]
m_nMaxitem | CMarkMgr | [protected]
NextValid(void) | CMarkMgr |
operator[](int index) const | CMarkMgr | [inline]
PrevValid(void) | CMarkMgr |
SetMax(int max) | CMarkMgr |

Sakura-Editorに対してSat Oct 27 02:35:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMarkMgr::CMark

  • 構成
  • クラス階層
  • 構成メンバ
CMarkMgr::CMark

クラス CMarkMgr::CMark

#include <CMarkMgr.h>

すべてのメンバ一覧

Public メソッド

CMark (int x, int y)
int | GetLine (void) const
int | GetPos (void) const
void | SetPosition (int x, int y)
bool | IsValid (void) const
bool | operator== (CMark &r) const
bool | operator!= (CMark &r) const

Private 変数

int | m_line
該当行番号: 行番号は論理行で数える
int | m_pos
該当桁位置

説明

CMarkMgr.h の 63 行で定義されています。

コンストラクタとデストラクタ

CMarkMgr::CMark::CMark | ( | int | x,
 |  | int | y
 | ) | [inline]

CMarkMgr.h の 66 行で定義されています。

関数

int CMarkMgr::CMark::GetLine ( void ) const [inline]

CMarkMgr.h の 73 行で定義されています。

参照先 m_line.

int CMarkMgr::CMark::GetPos ( void ) const [inline]

CMarkMgr.h の 74 行で定義されています。

参照先 m_pos.

bool CMarkMgr::CMark::IsValid ( void ) const [inline]

CMarkMgr.h の 80 行で定義されています。

bool CMarkMgr::CMark::operator!= ( CMark & r ) const [inline]

CMarkMgr.h の 85 行で定義されています。

参照先 m_line.

bool CMarkMgr::CMark::operator== ( CMark & r ) const [inline]

CMarkMgr.h の 84 行で定義されています。

参照先 m_line.

void CMarkMgr::CMark::SetPosition | ( | int | x,
 |  | int | y
 | ) | [inline]

CMarkMgr.h の 75 行で定義されています。

参照先 m_line・m_pos.

変数

int CMarkMgr::CMark::m_line [private]

該当行番号: 行番号は論理行で数える

CMarkMgr.h の 89 行で定義されています。

参照元 GetLine()・operator!=()・operator==()・SetPosition().

int CMarkMgr::CMark::m_pos [private]

該当桁位置

CMarkMgr.h の 90 行で定義されています。

参照元 GetPos()・SetPosition().

このクラスの説明は次のファイルから生成されました:
  • CMarkMgr.h
Sakura-Editorに対してSat Oct 27 02:35:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMarkMgr::CMark メンバ一覧

これは全メンバの一覧です。CMarkMgr::CMark継承メンバも含んでいます。

CMark(int x, int y) | CMarkMgr::CMark | [inline]
GetLine(void) const | CMarkMgr::CMark | [inline]
GetPos(void) const | CMarkMgr::CMark | [inline]
IsValid(void) const | CMarkMgr::CMark | [inline]
m_line | CMarkMgr::CMark | [private]
m_pos | CMarkMgr::CMark | [private]
operator!=(CMark &r) const | CMarkMgr::CMark | [inline]
operator==(CMark &r) const | CMarkMgr::CMark | [inline]
SetPosition(int x, int y) | CMarkMgr::CMark | [inline]

Sakura-Editorに対してSat Oct 27 02:35:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMemory

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMemory

メモリバッファクラス [詳細]

#include <CMemory.h>

すべてのメンバ一覧

Public メソッド

CMemory ()
CMemory (const char *, int)
~CMemory ()
int | GetLength () const
void | AllocBuffer (int)
void | SetData (const char *, int)
void | SetDataSz (const char *)
void | SetData (CMemory *)
const char * | Append (const char *pData, int nDataLen)
void | AppendSz (const char *pszData)
void | Append (CMemory *)
void | Replace (char *, char *)
void | Replace_j (char *, char *)
void | ToLower (void)
void | ToUpper (void)
void | AUTOToSJIS (void)
void | SJIStoJIS (void)
void | JIStoSJIS (bool base64decode=true)
void | SJISToUnicode (void)
void | SJISToUnicodeBE (void)
void | SJISToEUC (void)
void | EUCToSJIS (void)
void | UnicodeToSJIS (void)
void | UnicodeBEToSJIS (void)
void | UTF8ToSJIS (void)
void | UTF7ToSJIS (void)
void | SJISToUTF8 (void)
void | SJISToUTF7 (void)
void | UnicodeToUTF8 (void)
void | UnicodeToUTF7 (void)
void | TABToSPACE (int)
void | SPACEToTAB (int)
空白→TAB変換
void | SwapHLByte (void)
void | BASE64Decode (void)
void | UUDECODE (char *)
void | ToZenkaku (int, int)
void | ToHankaku (int nMode)
const CMemory & | operator= (char)
const CMemory & | operator= (const CMemory &)
const CMemory & | operator+= (const CMemory &)
* データの最後に追加 publicメンバ */
const CMemory & | operator+= (char)
const char | operator[] (int nIndex) const
__forceinline char * | GetPtr (int *pnLength) const
__forceinline char * | GetPtr (void) const

Static Public メソッド

static int | GetSizeOfChar (const char *, const int, const int)
指定した位置の文字が何バイト文字かを返す
static int | IsEqual (CMemory &, CMemory &)
static const char * | MemCharNext (const char *, int, const char *)
static const char * | MemCharPrev (const char *, int, const char *)
static int | CheckKanjiCodeOfFile (const char *)
static int | CheckKanjiCode (const unsigned char *, int)

Protected メソッド

void | Empty (void)
void | AddData (const char *, int)
long | MemJIStoSJIS (unsigned char *, long)
long | MemSJIStoJIS (unsigned char *, long)
int | MemBASE64_Encode (const char *, int, char **, int, int)
long | QuotedPrintable_Decode (char *, long)
int | StrSJIStoJIS (CMemory *, unsigned char *, int)

Static Protected メソッド

static int | MemSJISToUnicode (char **, const char *, int)
static int | MemUnicodeToSJIS (char **, const char *, int)
static int | DecodeUTF8toUnicode (const unsigned char *, int, unsigned char *)
static long | MemBASE64_Decode (unsigned char *, long)
static int | IsUTF8 (const unsigned char *, int)
static int | IsBASE64Char (char)
static int | IsUTF7Direct (wchar_t)
static unsigned short | _mbcjmstojis_ex (unsigned char *pszSrc)
拡張版 SJIS→JIS変換

Protected 変数

int | m_nDataBufSize
char * | m_pData
int | m_nDataLen

説明

メモリバッファクラス

CMemory.h の 44 行で定義されています。

コンストラクタとデストラクタ

CMemory::CMemory ( )

CMemory.cpp の 85 行で定義されています。

CMemory::CMemory | ( | const char * | ,
 |  | int |
 | ) |

CMemory.cpp の 115 行で定義されています。

CMemory::~CMemory ( )

CMemory.cpp の 125 行で定義されています。

関数

unsigned short CMemory::_mbcjmstojis_ex ( unsigned char * pszSrc ) [static, protected]

拡張版 SJIS→JIS変換

SJISコードをJISに変換する．その際，JISに対応領域のないIBM拡張文字を NEC選定IBM拡張文字に変換する．

Shift_JIS fa40～fc4b の範囲の文字は 8754～879a または ed40～eefc に 散在する文字に変換された後に，JISに変換されます．

引数:
pszSrc [in] 変換する文字列へのポインタ (Shift JIS)
作者:
すい
日付:
2002.10.03 1文字のみ扱い，変換まで行うように変更 genta

CMemory.cpp の 291 行で定義されています。

参照先 _IS_SJIS_1・_IS_SJIS_2.

参照元 MemSJIStoJIS().

void CMemory::AddData | ( | const char * | ,
 |  | int |
 | ) | [protected]

CMemory.cpp の 266 行で定義されています。

参照先 m_nDataLen・m_pData・NULL.

参照元 Append()・AppendSz()・operator+=()・SetData()・SetDataSz().

void CMemory::AllocBuffer ( int )

CMemory.cpp の 2769 行で定義されています。

参照先 GSTR_APPNAME・m_nDataBufSize・m_nDataLen・m_pData・MYMESSAGEBOX・NULL.

参照元 Append()・AppendSz()・CDlgInput1::DispatchEvent()・CEditView::DoGrep()・CEditView::GetSelectedData()・operator+=()・SetData()・SetDataSz()・StrSJIStoJIS()・CDocLineMgr::WriteFile().

void CMemory::Append ( CMemory * )

CMemory.cpp の 2861 行で定義されています。

参照先 AddData()・AllocBuffer()・GetPtr()・m_nDataLen.

const char * CMemory::Append | ( | const char * | pData,
 |  | int | nDataLen
 | ) |

CMemory.cpp の 2846 行で定義されています。

参照先 AddData()・AllocBuffer()・m_nDataLen・m_pData.

参照元 BASE64Decode()・CEditWnd::DispatchEvent()・CEditView::GetLeftWord()・CEditView::GetSelectedData()・CEditView::InsertData_CEditView()・CPPAMacroMgr::LoadKeyMacro()・CFileLoad::ReadLine()・Replace()・Replace_j()・UUDECODE()・CDocLineMgr::WriteFile().

void CMemory::AppendSz ( const char * pszData )

CMemory.cpp の 2853 行で定義されています。

参照先 AddData()・AllocBuffer()・m_nDataLen.

参照元 CEditView::Command_COPY()・CEditView::Command_MERGE()・CKeyBind::CreateKeyBindList()・CEditWnd::DispatchEvent()・CEditView::DoGrepFile()・CKeyBind::GetKeyStr()・CEditView::GetSelectedData()・CEditView::ISearchSetStatusMsg()・CEditView::KeySearchCore()・CDlgProperty::SetData().

void CMemory::AUTOToSJIS ( void )

CMemory.cpp の 2481 行で定義されています。

参照先 CheckKanjiCode()・CODE_EUC・CODE_JIS・CODE_UNICODE・CODE_UNICODEBE・CODE_UTF7・CODE_UTF8・EUCToSJIS()・JIStoSJIS()・m_nDataLen・m_pData・UnicodeBEToSJIS()・UnicodeToSJIS()・UTF7ToSJIS()・UTF8ToSJIS().

参照元 CEditView::ConvMemory().

void CMemory::BASE64Decode ( void )

CMemory.cpp の 820 行で定義されています。

参照先 Append()・GetPtr()・IsBASE64Char()・m_nDataLen・m_pData・MemBASE64_Decode()・SetData().

参照元 CEditView::Command_BASE64DECODE().

int CMemory::CheckKanjiCode | ( | const unsigned char * | ,
 |  | int |
 | ) | [static]

CMemory.cpp の 2450 行で定義されています。

参照先 CODE_SJIS・CESI::ScanEncoding().

参照元 AUTOToSJIS()・CheckKanjiCodeOfFile()・CFileLoad::FileOpen().

int CMemory::CheckKanjiCodeOfFile ( const char * ) [static]

CMemory.cpp の 2384 行で定義されています。

参照先 CheckKanjiCode()・CheckKanjiCode_MAXREADLENGTH・CODE_SJIS・Charcode::DetectUnicodeBom()・NULL.

参照元 CEditView::DoGrepFile().

int CMemory::DecodeUTF8toUnicode | ( | const unsigned char * | ,
 |  | int | ,
 |  | unsigned char * |
 | ) | [static, protected]

CMemory.cpp の 1189 行で定義されています。

参照元 UTF8ToSJIS().

void CMemory::Empty ( void ) [protected]

CMemory.cpp の 2870 行で定義されています。

参照先 m_nDataBufSize・m_nDataLen・m_pData・NULL.

参照元 SetData()・SetDataSz().

void CMemory::EUCToSJIS ( void )

CMemory.cpp の 1044 行で定義されています。

参照先 Charcode::IsEucKan1()・Charcode::IsEucKan2()・m_nDataLen・m_pData・SetData().

参照元 AUTOToSJIS()・CEditView::ConvMemory()・CFileLoad::ReadLine().

int CMemory::GetLength ( void ) const [inline]

CMemory.h の 58 行で定義されています。

参照元 CEditView::Command_CREATEKEYBINDLIST()・CEditView::Command_CUT()・CEditView::Command_GREP_DIALOG()・CEditView::Command_LineCutToEnd()・CEditView::Command_LineDeleteToEnd()・CEditView::Command_PUTFILE()・CEditView::Command_SEARCH_PREV()・CEditView::Command_TagJumpByTagsFile()・CEditView::Command_TRIM2()・CEditView::ConvSelectedArea()・CEditView::CopySelectedAllLines()・CLayoutMgr::CreateLayout()・CEditView::DispLineNew()・CEditView::Drop()・CDocLineMgr::DUMP()・CEditView::GetColorIndex()・CEditView::GetLeftWord()・CDocLine::GetLength()・CDocLine::GetLengthWithoutEOL()・CDlgFuncList::OnBnClicked()・CEditView::OnPaint()・CFileLoad::ReadLine()・CDocLineMgr::SearchWord()・CEditView::SetReconvertStruct()・CEditView::SetSelectionFromReonvert()・CDlgFuncList::SetTree()・CEditView::ShowHokanMgr()・CDocLineMgr::WriteFile().

__forceinline char* CMemory::GetPtr ( void ) const [inline]

CMemory.h の 141 行で定義されています。

参照元 SwapHLByte().

__forceinline char* CMemory::GetPtr ( int * pnLength ) const [inline]

CMemory.h の 133 行で定義されています。

参照先 NULL.

参照元 _CompareFunc_()・Append()・BASE64Decode()・CLayoutMgr::CaretPos_Phys2Log()・CEditView::Command_CREATEKEYBINDLIST()・CEditView::Command_CUT()・CEditView::Command_GREP()・CEditView::Command_MENU_RBUTTON()・CEditView::Command_PASTE()・CEditView::Command_PASTEBOX()・CEditView::Command_PUTFILE()・CEditView::Command_REPLACE_DIALOG()・CEditView::Command_SEARCH_CLEARMARK()・CEditView::Command_SEARCH_DIALOG()・CEditView::Command_TagJumpByTagsFile()・CEditView::Command_TRIM2()・CEditView::ConvSelectedArea()・CEditView::CopySelectedAllLines()・CDocLineMgr::DeleteData_CDocLineMgr()・CEditWnd::DispatchEvent()・CDlgInput1::DispatchEvent()・CDlgDebug::DispatchEvent()・CEditView::DispLineNew()・CEditView::DoGrep()・CEditApp::DoGrep()・CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range()・CDlgInput1::DoModal()・CMenuDrawer::DrawItem()・CEditView::Drop()・COpe::DUMP()・CDocLineMgr::DUMP()・CPPAMacroMgr::ExecKeyMacro()・CDocLineMgr::GetAllData()・CEditView::GetColorIndex()・CEditView::GetCurrentTextForSearch()・CDocLineMgr::GetFirstLinrStr()・CMenuDrawer::GetLabel()・CLayoutMgr::GetLineStr()・CDocLineMgr::GetLineStr()・CDocLineMgr::GetLineStrWithoutEOL()・CKeyBind::GetMenuLabel()・CDocLineMgr::GetNextLinrStr()・CLayout::GetPtr()・CDocLine::GetPtr()・CTipWnd::GetWindowSize()・CMacro::HandleCommand()・CDocLineMgr::InsertData_CDocLineMgr()・CEditView::ISearchBack()・CEditView::ISearchExec()・IsEqual()・CEditView::KeySearchCore()・CEditView::KeyWordHelpSearchDict()・CDocLineMgr::MarkSearchWord()・CEditView::MyGetClipboardData()・CDlgFuncList::OnBnClicked()・CTipWnd::OnPaint()・CEditView::OnPaint()・operator+=()・CDocLineMgr::PrevOrNextWord()・CFileLoad::ReadLine()・CMacro::Save()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・CDocLineMgr::SearchWord()・SetData()・CEditView::SetReconvertStruct()・CDlgFuncList::SetTree()・CDlgFuncList::SetTreeJava()・CTipWnd::Show()・CEditView::ShowHokanMgr()・SJIStoJIS()・CPPA::stdStrFunc()・CPPA::stdStrObj()・UUDECODE()・CDocLineMgr::WhereCurrentWord()・CDocLineMgr::WriteFile().

int CMemory::GetSizeOfChar | ( | const char * | pData,
 |  | const | int,
 |  | const | int
 | ) | [static]

指定した位置の文字が何バイト文字かを返す

引数:
[in] | pData | 位置を求めたい文字列の先頭
[in] | nDataLen | 文字列長
[in] | nIdx | 位置(0オリジン)
日付:
2005-09-02 D.S.Koba 作成
覚え書き:
nIdxは予め文字の先頭位置とわかっていなければならない． 2バイト文字の2バイト目をnIdxに与えると正しい結果が得られない．

CMemory.cpp の 2892 行で定義されています。

参照先 _IS_SJIS_1・_IS_SJIS_2.

参照元 C_IsLineEsc()・CLayoutMgr::CaretPos_Phys2Log()・CEditView::Command_CHAR()・CEditView::Command_SEARCH_NEXT()・CTipWnd::ComputeWindowSize()・CDocLineMgr::CreateCharCharsArr()・CEditView::DispText()・CLayoutMgr::DoLayout()・CLayoutMgr::DoLayout_Range()・CEditView::DrawCaretPosInfo()・CTipWnd::DrawTipText()・CEditView::ExecCmd()・GetNextLimitedLengthText()・LimitStringLengthB()・CEditDoc::MakeFuncList_C()・CEditDoc::MakeFuncList_Java()・CEditDoc::MakeFuncList_Perl()・CEditDoc::MakeFuncList_PLSQL()・CEditDoc::MakeFuncList_VisualBasic()・CBlockComment::Match_CommentTo()・CLayoutMgr::Match_Quote()・MemSJISToUnicode()・CPrintPreview::Print_DrawLine()・CEditView::RTrimPrevLine()・CMemoryIterator< T >::scanNext()・COutlinePython::ScanNormal()・COutlinePython::ScanString()・CEditView::SearchBracket()・CDocLineMgr::SearchNextWordPosition()・CDocLineMgr::SearchWord()・CDlgFuncList::SetTreeJava()・SJISToEUC()・CEditView::SmartIndent_CPP()・ToHankaku()・ToLower()・ToUpper()・ToZenkaku()・CDocLineMgr::WhatKindOfChar()・CDocLineMgr::WhereCurrentWord_2().

int CMemory::IsBASE64Char ( char ) [static, protected]

CMemory.cpp の 664 行で定義されています。

参照先 Charcode::BASE64VAL.

参照元 BASE64Decode().

int CMemory::IsEqual | ( | CMemory & | ,
 |  | CMemory & |
 | ) | [static]

CMemory.cpp の 2076 行で定義されています。

参照先 FALSE・GetPtr()・TRUE.

参照元 CEditView::ShowKeywordHelp().

int CMemory::IsUTF7Direct ( wchar_t wc ) [static, protected]

Unicodeの文字がUTF-7で直接エンコードできるか調べる

作者:
Moca
日付:
2002.10.25 新規作成
TAB SP CR LF は 直接エンコード可能 基本セット '(),-./012...789:?ABC...XYZabc...xyz 以下はオプションでメールでは支障をきたす場合がある !"#$%&*;<=>@[\]^_`{|} とりあえず無条件でオプションは直接変換できないと判断する

CMemory.cpp の 1481 行で定義されています。

参照先 Charcode::IsUtf7SetDChar().

参照元 UnicodeToUTF7().

int CMemory::IsUTF8 | ( | const unsigned char * | ,
 |  | int |
 | ) | [static, protected]

CMemory.cpp の 1165 行で定義されています。

参照元 UTF8ToSJIS().

void CMemory::JIStoSJIS ( bool base64decode = true )

CMemory.cpp の 494 行で定義されています。

参照先 _memicmp・BOOL・CHAR_ASCII・FALSE・m_nDataLen・m_pData・MIME_BASE64・MIME_QUOTED・TRUE.

参照元 AUTOToSJIS()・CEditView::ConvMemory()・CFileLoad::ReadLine().

long CMemory::MemBASE64_Decode | ( | unsigned char * | ,
 |  | long |
 | ) | [static, protected]

CMemory.cpp の 680 行で定義されています。

参照元 BASE64Decode().

int CMemory::MemBASE64_Encode | ( | const char * | ,
 |  | int | ,
 |  | char ** | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CMemory.cpp の 738 行で定義されています。

const char * CMemory::MemCharNext | ( | const char * | ,
 |  | int | ,
 |  | const char * |
 | ) | [static]

CMemory.cpp の 1796 行で定義されています。

参照先 _IS_SJIS_1・_IS_SJIS_2.

参照元 CEditView::SearchBracketForward()・CEditView::SearchBracketForward2()・CDocLineMgr::SearchString().

const char * CMemory::MemCharPrev | ( | const char * | ,
 |  | int | ,
 |  | const char * |
 | ) | [static]

CMemory.cpp の 1831 行で定義されています。

参照元 AddLastYenFromDirectoryPath()・CutLastYenFromDirectoryPath()・CEditView::GetLeftWord()・CDocLineMgr::PrevOrNextWord()・CEditView::SearchBracketBackward()・CEditView::SearchBracketBackward2()・CShareData::ShareData_IO_Common()・SplitPath_FolderAndFile()・CDocLineMgr::WhereCurrentWord_2().

long CMemory::MemJIStoSJIS | ( | unsigned char * | ,
 |  | long |
 | ) | [protected]

CMemory.cpp の 991 行で定義されています。

long CMemory::MemSJIStoJIS | ( | unsigned char * | ,
 |  | long |
 | ) | [protected]

CMemory.cpp の 464 行で定義されています。

参照先 _mbcjmstojis_ex().

int CMemory::MemSJISToUnicode | ( | char ** | ,
 |  | const char * | ,
 |  | int |
 | ) | [static, protected]

CMemory.cpp の 1925 行で定義されています。

参照先 GetSizeOfChar()・MYTRACE.

参照元 SJISToUnicode()・SJISToUnicodeBE().

int CMemory::MemUnicodeToSJIS | ( | char ** | ,
 |  | const char * | ,
 |  | int |
 | ) | [static, protected]

CMemory.cpp の 1977 行で定義されています。

参照元 UnicodeToSJIS().

const CMemory & CMemory::operator+= ( char )

CMemory.cpp の 205 行で定義されています。

参照先 AddData()・AllocBuffer()・m_nDataLen.

const CMemory & CMemory::operator+= ( const CMemory & )

* データの最後に追加 publicメンバ */

CMemory.cpp の 187 行で定義されています。

参照先 AddData()・AllocBuffer()・GetPtr()・m_nDataLen.

const CMemory & CMemory::operator= ( const CMemory & )

CMemory.cpp の 158 行で定義されています。

参照先 SetData().

const CMemory & CMemory::operator= ( char )

CMemory.cpp の 134 行で定義されています。

const char CMemory::operator[] ( int nIndex ) const

CMemory.cpp の 247 行で定義されています。

参照先 m_nDataLen・m_pData.

long CMemory::QuotedPrintable_Decode | ( | char * | ,
 |  | long |
 | ) | [protected]

CMemory.cpp の 955 行で定義されています。

void CMemory::Replace | ( | char * | ,
 |  | char * |
 | ) |

CMemory.cpp の 2017 行で定義されています。

参照先 Append()・m_nDataLen・m_pData・SetData().

参照元 CEditView::Command_GREP()・CEditApp::DoGrep().

void CMemory::Replace_j | ( | char * | ,
 |  | char * |
 | ) |

CMemory.cpp の 2046 行で定義されています。

参照先 _IS_SJIS_1・Append()・m_nDataLen・m_pData・SetData().

参照元 CMacro::HandleCommand()・CMacro::Save().

void CMemory::SetData ( CMemory * )

CMemory.cpp の 2833 行で定義されています。

参照先 AddData()・AllocBuffer()・Empty()・GetPtr().

void CMemory::SetData | ( | const char * | ,
 |  | int |
 | ) |

CMemory.cpp の 2809 行で定義されています。

参照先 AddData()・AllocBuffer()・Empty().

参照元 BASE64Decode()・CEditView::Command_CHAR()・CEditView::Command_COPY()・CEditView::ConvSelectedArea()・CDocLineMgr::DeleteData_CDocLineMgr()・EUCToSJIS()・CDocLineMgr::InsertData_CDocLineMgr()・CPPAMacroMgr::LoadKeyMacro()・CMenuDrawer::MyAppendMenu()・CEditView::MyGetClipboardData()・operator=()・CFileLoad::ReadLine()・Replace()・Replace_j()・CMacro::Save()・CEditView::SetReconvertStruct()・CEditView::SetSelectionFromReonvert()・CTipWnd::Show()・SJIStoJIS()・SJISToUnicode()・SJISToUnicodeBE()・CPPA::stdStrFunc()・UnicodeToSJIS()・UUDECODE()・CDocLineMgr::WhereCurrentWord_2()・CDocLineMgr::WriteFile().

void CMemory::SetDataSz ( const char * )

CMemory.cpp の 2820 行で定義されています。

参照先 AddData()・AllocBuffer()・Empty().

参照元 CFuncInfo::CFuncInfo()・CHokanMgr::CHokanMgr()・CEditView::Command_GREP()・CEditView::Command_GREP_DIALOG()・CEditView::Command_MERGE()・CKeyBind::CreateKeyBindList()・CDocLineMgr::DeleteData_CDocLineMgr()・CEditApp::DoGrep()・CDlgInput1::DoModal()・CEditView::Drop()・CPPA::Execute()・CFileLoad::FileClose()・CEditView::GetCurrentTextForSearch()・CEditView::GetCurrentTextForSearchDlg()・CKeyBind::GetKeyStr()・CEditView::GetSelectedData()・CMacro::HandleCommand()・CDicMgr::HokanSearch()・CDocLineMgr::InsertData_CDocLineMgr()・CEditView::InsertData_CEditView()・CEditView::ISearchSetStatusMsg()・CEditView::KeySearchCore()・CEditView::MyGetClipboardData()・CFileLoad::ReadLine()・CDocLineMgr::ReplaceData()・CDicMgr::Search()・CDlgFuncList::SetData()・CEditView::ShowKeywordHelp()・CPPA::stdFinishProc()・CPPA::stdStrObj()・StrSJIStoJIS()・CDocLineMgr::WriteFile().

void CMemory::SJISToEUC ( void )

CMemory.cpp の 1097 行で定義されています。

参照先 GetSizeOfChar()・m_nDataLen・m_pData.

参照元 CEditView::Command_PUTFILE()・CEditView::ConvMemory()・CDocLineMgr::WriteFile().

void CMemory::SJIStoJIS ( void )

CMemory.cpp の 328 行で定義されています。

参照先 GetPtr()・m_nDataLen・m_pData・SetData()・StrSJIStoJIS().

参照元 CEditView::Command_PUTFILE()・CEditView::ConvMemory()・CDocLineMgr::WriteFile().

void CMemory::SJISToUnicode ( void )

CMemory.cpp の 1872 行で定義されています。

参照先 m_nDataLen・m_pData・MemSJISToUnicode()・SetData().

参照元 CEditView::Command_PUTFILE()・CEditView::SetReconvertStruct()・SJISToUTF7()・SJISToUTF8()・CDocLineMgr::WriteFile().

void CMemory::SJISToUnicodeBE ( void )

CMemory.cpp の 1885 行で定義されています。

参照先 m_nDataLen・m_pData・MemSJISToUnicode()・SetData()・SwapHLByte().

参照元 CEditView::Command_PUTFILE()・CDocLineMgr::WriteFile().

void CMemory::SJISToUTF7 ( void )

CMemory.cpp の 1283 行で定義されています。

参照先 SJISToUnicode()・UnicodeToUTF7().

参照元 CEditView::Command_PUTFILE()・CEditView::ConvMemory()・CDocLineMgr::WriteFile().

void CMemory::SJISToUTF8 ( void )

CMemory.cpp の 1272 行で定義されています。

参照先 SJISToUnicode()・UnicodeToUTF8().

参照元 CEditView::Command_PUTFILE()・CEditView::ConvMemory()・CDocLineMgr::WriteFile().

void CMemory::SPACEToTAB ( int nTabSpace )

空白→TAB変換

引数:
nTabSpace TABの文字数 単独のスペースは変換しない
作者:
Stonee
日付:
2001/5/27

CMemory.cpp の 2587 行で定義されています。

参照先 BOOL・FALSE・CEOL::GetLen()・GetNextLine()・m_nDataLen・m_pData・NULL・SPACE・TAB・TRUE.

参照元 CEditView::ConvMemory().

int CMemory::StrSJIStoJIS | ( | CMemory * | pcmemDes,
 |  | unsigned char * | pszSrc,
 |  | int | nSrcLen
 | ) | [protected]

SJIS→JIS

日付:
2003.09.07 genta 不要なキャスト除去

CMemory.cpp の 346 行で定義されています。

参照先 AllocBuffer()・CHAR_ASCII・CHAR_NULL・FALSE・SetDataSz().

参照元 SJIStoJIS().

void CMemory::SwapHLByte ( void )

CMemory.cpp の 2709 行で定義されています。

参照先 GetPtr().

参照元 SJISToUnicodeBE()・UnicodeBEToSJIS().

void CMemory::TABToSPACE ( int )

CMemory.cpp の 2513 行で定義されています。

参照先 GetNextLine()・m_nDataLen・m_pData・NULL・TAB.

参照元 CEditView::ConvMemory().

void CMemory::ToHankaku ( int nMode )

CMemory.cpp の 2234 行で定義されています。

参照先 BOOL・FALSE・GetSizeOfChar()・m_nDataLen・m_pData・NULL・TRUE.

参照元 CEditView::ConvMemory().

void CMemory::ToLower ( void )

CMemory.cpp の 1695 行で定義されています。

参照先 GetSizeOfChar()・m_nDataLen・m_pData.

参照元 CEditView::ConvMemory().

void CMemory::ToUpper ( void )

CMemory.cpp の 1746 行で定義されています。

参照先 GetSizeOfChar()・m_nDataLen・m_pData.

参照元 CEditView::ConvMemory().

void CMemory::ToZenkaku | ( | int | bHiragana,
 |  | int | bHanKataOnly
 | ) |

英数変換用に新たな条件を付加 2001/07/30 Misaka

英数変換用に新たな条件を付加 2001/07/30 Misaka bHiragana != 2 //英数変換フラグがオンではない場合

CMemory.cpp の 2098 行で定義されています。

参照先 BOOL・FALSE・GetSizeOfChar()・m_nDataLen・m_pData・NULL・TRUE.

参照元 CEditView::ConvMemory().

void CMemory::UnicodeBEToSJIS ( void )

CMemory.cpp の 1915 行で定義されています。

参照先 SwapHLByte()・UnicodeToSJIS().

参照元 AUTOToSJIS()・CEditView::ConvMemory()・CFileLoad::ReadLine().

void CMemory::UnicodeToSJIS ( void )

CMemory.cpp の 1899 行で定義されています。

参照先 m_nDataLen・m_pData・MemUnicodeToSJIS()・SetData().

参照元 AUTOToSJIS()・CEditView::ConvMemory()・CEditView::MyGetClipboardData()・CFileLoad::ReadLine()・CEditView::SetSelectionFromReonvert()・UnicodeBEToSJIS().

void CMemory::UnicodeToUTF7 ( void )

コード変換 Unicode→UTF-7

日付:
2002.10.25 Moca UTF-7で直接エンコードできる文字をRFCに合わせて制限した

CMemory.cpp の 1495 行で定義されています。

参照先 BOOL・FALSE・IsUTF7Direct()・m_nDataLen・m_pData.

参照元 SJISToUTF7().

void CMemory::UnicodeToUTF8 ( void )

CMemory.cpp の 1297 行で定義されています。

参照先 m_nDataLen・m_pData.

参照元 SJISToUTF8().

void CMemory::UTF7ToSJIS ( void )

CMemory.cpp の 1370 行で定義されています。

参照先 BOOL・FALSE・m_nDataLen・m_pData.

参照元 AUTOToSJIS()・CEditView::ConvMemory()・CFileLoad::ReadLine().

void CMemory::UTF8ToSJIS ( void )

CMemory.cpp の 1211 行で定義されています。

参照先 DecodeUTF8toUnicode()・IsUTF8()・m_nDataLen・m_pData.

参照元 AUTOToSJIS()・CEditView::ConvMemory()・CFileLoad::ReadLine().

void CMemory::UUDECODE ( char * )

CMemory.cpp の 859 行で定義されています。

参照先 Append()・BOOL・CR・FALSE・GetPtr()・LF・m_nDataLen・m_pData・NULL・SetData()・TRUE・UUDECODE_CHAR.

参照元 CEditView::Command_UUDECODE().

変数

int CMemory::m_nDataBufSize [protected]

CMemory.h の 152 行で定義されています。

参照元 AllocBuffer()・Empty().

int CMemory::m_nDataLen [protected]

CMemory.h の 154 行で定義されています。

参照元 AddData()・AllocBuffer()・Append()・AppendSz()・AUTOToSJIS()・BASE64Decode()・Empty()・EUCToSJIS()・JIStoSJIS()・operator+=()・operator[]()・Replace()・Replace_j()・SJISToEUC()・SJIStoJIS()・SJISToUnicode()・SJISToUnicodeBE()・SPACEToTAB()・TABToSPACE()・ToHankaku()・ToLower()・ToUpper()・ToZenkaku()・UnicodeToSJIS()・UnicodeToUTF7()・UnicodeToUTF8()・UTF7ToSJIS()・UTF8ToSJIS()・UUDECODE().

char* CMemory::m_pData [protected]

CMemory.h の 153 行で定義されています。

参照元 AddData()・AllocBuffer()・Append()・AUTOToSJIS()・BASE64Decode()・Empty()・EUCToSJIS()・JIStoSJIS()・operator[]()・Replace()・Replace_j()・SJISToEUC()・SJIStoJIS()・SJISToUnicode()・SJISToUnicodeBE()・SPACEToTAB()・TABToSPACE()・ToHankaku()・ToLower()・ToUpper()・ToZenkaku()・UnicodeToSJIS()・UnicodeToUTF7()・UnicodeToUTF8()・UTF7ToSJIS()・UTF8ToSJIS()・UUDECODE().

このクラスの説明は次のファイルから生成されました:
  • CMemory.h
  • CMemory.cpp
Sakura-Editorに対してSat Oct 27 02:35:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMemory メンバ一覧

これは全メンバの一覧です。CMemory継承メンバも含んでいます。

_mbcjmstojis_ex(unsigned char *pszSrc) | CMemory | [protected, static]
AddData(const char *, int) | CMemory | [protected]
AllocBuffer(int) | CMemory |
Append(const char *pData, int nDataLen) | CMemory |
Append(CMemory *) | CMemory |
AppendSz(const char *pszData) | CMemory |
AUTOToSJIS(void) | CMemory |
BASE64Decode(void) | CMemory |
CheckKanjiCode(const unsigned char *, int) | CMemory | [static]
CheckKanjiCodeOfFile(const char *) | CMemory | [static]
CMemory() | CMemory |
CMemory(const char *, int) | CMemory |
DecodeUTF8toUnicode(const unsigned char *, int, unsigned char *) | CMemory | [protected, static]
Empty(void) | CMemory | [protected]
EUCToSJIS(void) | CMemory |
GetLength() const | CMemory | [inline]
GetPtr(int *pnLength) const | CMemory | [inline]
GetPtr(void) const | CMemory | [inline]
GetSizeOfChar(const char *, const int, const int) | CMemory | [static]
IsBASE64Char(char) | CMemory | [protected, static]
IsEqual(CMemory &, CMemory &) | CMemory | [static]
IsUTF7Direct(wchar_t) | CMemory | [protected, static]
IsUTF8(const unsigned char *, int) | CMemory | [protected, static]
JIStoSJIS(bool base64decode=true) | CMemory |
m_nDataBufSize | CMemory | [protected]
m_nDataLen | CMemory | [protected]
m_pData | CMemory | [protected]
MemBASE64_Decode(unsigned char *, long) | CMemory | [protected, static]
MemBASE64_Encode(const char *, int, char **, int, int) | CMemory | [protected]
MemCharNext(const char *, int, const char *) | CMemory | [static]
MemCharPrev(const char *, int, const char *) | CMemory | [static]
MemJIStoSJIS(unsigned char *, long) | CMemory | [protected]
MemSJIStoJIS(unsigned char *, long) | CMemory | [protected]
MemSJISToUnicode(char **, const char *, int) | CMemory | [protected, static]
MemUnicodeToSJIS(char **, const char *, int) | CMemory | [protected, static]
operator+=(const CMemory &) | CMemory |
operator+=(char) | CMemory |
operator=(char) | CMemory |
operator=(const CMemory &) | CMemory |
operator[](int nIndex) const | CMemory |
QuotedPrintable_Decode(char *, long) | CMemory | [protected]
Replace(char *, char *) | CMemory |
Replace_j(char *, char *) | CMemory |
SetData(const char *, int) | CMemory |
SetData(CMemory *) | CMemory |
SetDataSz(const char *) | CMemory |
SJISToEUC(void) | CMemory |
SJIStoJIS(void) | CMemory |
SJISToUnicode(void) | CMemory |
SJISToUnicodeBE(void) | CMemory |
SJISToUTF7(void) | CMemory |
SJISToUTF8(void) | CMemory |
SPACEToTAB(int) | CMemory |
StrSJIStoJIS(CMemory *, unsigned char *, int) | CMemory | [protected]
SwapHLByte(void) | CMemory |
TABToSPACE(int) | CMemory |
ToHankaku(int nMode) | CMemory |
ToLower(void) | CMemory |
ToUpper(void) | CMemory |
ToZenkaku(int, int) | CMemory |
UnicodeBEToSJIS(void) | CMemory |
UnicodeToSJIS(void) | CMemory |
UnicodeToUTF7(void) | CMemory |
UnicodeToUTF8(void) | CMemory |
UTF7ToSJIS(void) | CMemory |
UTF8ToSJIS(void) | CMemory |
UUDECODE(char *) | CMemory |
~CMemory() | CMemory |

Sakura-Editorに対してSat Oct 27 02:35:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス テンプレート CMemoryIterator< T >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CMemoryIterator< T >

#include <CMemoryIterator.h>

すべてのメンバ一覧

Public メソッド

CMemoryIterator (const T *pcT, int nTabSpace)
void | first ()
bool | end () const
void | scanNext ()
void | addDelta ()
int | getIndex () const
int | getColumn () const
int | getIndexDelta () const
int | getColumnDelta () const
const char | getCurrentChar ()
const char * | getCurrentPos ()

Private 変数

int | m_nIndent
int | m_nIndex
int | m_nColumn
int | m_nIndex_Delta
int | m_nColumn_Delta
const char * | m_pLine
const int | m_nLineLen
const int | m_nTabSpace

説明

template<class T>
class CMemoryIterator< T >

ブロックコメントデリミタを管理する

CMemoryIterator.h の 29 行で定義されています。

コンストラクタとデストラクタ

template<class T>
CMemoryIterator< T >::CMemoryIterator | ( | const T * | pcT,
 |  | int | nTabSpace
 | ) | [inline]

CMemoryIterator.h の 41 行で定義されています。

関数

template<class T>
void CMemoryIterator< T >::addDelta ( ) [inline]

予め計算した差分を桁位置に加える．

参照:
scanNext()

CMemoryIterator.h の 82 行で定義されています。

参照元 CLayoutMgr::GetEndLayoutPos()・CLayoutMgr::getIndentOffset_LeftSpace().

template<class T>
bool CMemoryIterator< T >::end ( ) const [inline]

行末かどうか

戻り値:
true: 行末, false: 行末ではない

CMemoryIterator.h の 61 行で定義されています。

参照元 CLayoutMgr::GetEndLayoutPos()・CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x().

template<class T>
void CMemoryIterator< T >::first ( ) [inline]

桁位置を行の先頭にセット

CMemoryIterator.h の 51 行で定義されています。

template<class T>
int CMemoryIterator< T >::getColumn ( ) const [inline]

CMemoryIterator.h の 88 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x().

template<class T>
int CMemoryIterator< T >::getColumnDelta ( ) const [inline]

CMemoryIterator.h の 90 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_Tx2x().

template<class T>
const char CMemoryIterator< T >::getCurrentChar ( ) [inline]

CMemoryIterator.h の 93 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x().

template<class T>
const char* CMemoryIterator< T >::getCurrentPos ( ) [inline]

CMemoryIterator.h の 96 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_LeftSpace().

template<class T>
int CMemoryIterator< T >::getIndex ( ) const [inline]

CMemoryIterator.h の 87 行で定義されています。

template<class T>
int CMemoryIterator< T >::getIndexDelta ( ) const [inline]

CMemoryIterator.h の 89 行で定義されています。

参照元 CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x().

template<class T>
void CMemoryIterator< T >::scanNext ( ) [inline]

CMemoryIterator.h の 64 行で定義されています。

参照先 CMemory::GetSizeOfChar()・TAB.

参照元 CLayoutMgr::GetEndLayoutPos()・CLayoutMgr::getIndentOffset_LeftSpace()・CLayoutMgr::getIndentOffset_Tx2x().

変数

template<class T>
int CMemoryIterator< T >::m_nColumn [private]

CMemoryIterator.h の 33 行で定義されています。

template<class T>
int CMemoryIterator< T >::m_nColumn_Delta [private]

CMemoryIterator.h の 35 行で定義されています。

template<class T>
int CMemoryIterator< T >::m_nIndent [private]

CMemoryIterator.h の 31 行で定義されています。

template<class T>
int CMemoryIterator< T >::m_nIndex [private]

CMemoryIterator.h の 32 行で定義されています。

template<class T>
int CMemoryIterator< T >::m_nIndex_Delta [private]

CMemoryIterator.h の 34 行で定義されています。

template<class T>
const int CMemoryIterator< T >::m_nLineLen [private]

CMemoryIterator.h の 38 行で定義されています。

template<class T>
const int CMemoryIterator< T >::m_nTabSpace [private]

CMemoryIterator.h の 39 行で定義されています。

template<class T>
const char* CMemoryIterator< T >::m_pLine [private]

CMemoryIterator.h の 37 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CMemoryIterator.h
Sakura-Editorに対してSat Oct 27 02:35:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMemoryIterator< T > メンバ一覧

これは全メンバの一覧です。CMemoryIterator< T >継承メンバも含んでいます。

addDelta() | CMemoryIterator< T > | [inline]
CMemoryIterator(const T *pcT, int nTabSpace) | CMemoryIterator< T > | [inline]
end() const | CMemoryIterator< T > | [inline]
first() | CMemoryIterator< T > | [inline]
getColumn() const | CMemoryIterator< T > | [inline]
getColumnDelta() const | CMemoryIterator< T > | [inline]
getCurrentChar() | CMemoryIterator< T > | [inline]
getCurrentPos() | CMemoryIterator< T > | [inline]
getIndex() const | CMemoryIterator< T > | [inline]
getIndexDelta() const | CMemoryIterator< T > | [inline]
m_nColumn | CMemoryIterator< T > | [private]
m_nColumn_Delta | CMemoryIterator< T > | [private]
m_nIndent | CMemoryIterator< T > | [private]
m_nIndex | CMemoryIterator< T > | [private]
m_nIndex_Delta | CMemoryIterator< T > | [private]
m_nLineLen | CMemoryIterator< T > | [private]
m_nTabSpace | CMemoryIterator< T > | [private]
m_pLine | CMemoryIterator< T > | [private]
scanNext() | CMemoryIterator< T > | [inline]

Sakura-Editorに対してSat Oct 27 02:35:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMenuDrawer

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMenuDrawer

メニュー表示＆管理 [詳細]

#include <CMenuDrawer.h>

CMenuDrawerのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CMenuDrawer ()
~CMenuDrawer ()
void | Create (HINSTANCE, HWND, CImageListMgr *)
void | ResetContents (void)
void | MyAppendMenu (HMENU, int, int, const char *, BOOL=TRUE, int=-1)
int | MeasureItem (int, int *)
void | DrawItem (DRAWITEMSTRUCT *)
LRESULT | OnMenuChar (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
int | FindIndexFromCommandId (int idCommand)
int | GetIconId (int nIndex)
TBBUTTON | getButton (int index) const

Protected メソッド

int | GetData (void)
void | SetTBBUTTONVal (TBBUTTON *, int, int, BYTE, BYTE, DWORD_PTR, INT_PTR)

Private メソッド

int | Find (int nFuncID)
const char * | GetLabel (int nFuncID)
char | GetAccelCharFromLabel (const char *pszLabel)

Private 変数

DLLSHAREDATA * m_pShareData
HINSTANCE | m_hInstance
HWND | m_hWndOwner
int | m_nMenuItemNum
TBBUTTON | m_tbMyButton [MAX_TOOLBARBUTTONS+1]
int | m_nMyButtonNum
int | m_nMenuItemBitmapIdxArr [MAX_MENUITEMS]
int | m_nMenuItemFuncArr [MAX_MENUITEMS]
CMemory | m_cmemMenuItemStrArr [MAX_MENUITEMS]
int | m_nMenuHeight
HFONT | m_hFontMenu
HFONT | m_hFontMenuUndelLine
CImageListMgr * m_pcIcons

説明

メニュー表示＆管理

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

20050809 aroka クラス外部からアクセスされないメンバはprivateにした。

CMenuDrawer.h の 53 行で定義されています。

コンストラクタとデストラクタ

CMenuDrawer::CMenuDrawer ( )

CMenuDrawer.cpp の 47 行で定義されています。

参照先 F_1PageDown・F_1PageDown_Sel・F_1PageUp・F_1PageUp_Sel・F_ABOUT・F_ACTIVATE_SQLPLUS・F_BASE64DECODE・F_BEGIN_BOX・F_BEGIN_SEL・F_BIND_WINDOW・F_BOOKMARK_NEXT・F_BOOKMARK_PREV・F_BOOKMARK_RESET・F_BOOKMARK_SET・F_BOOKMARK_VIEW・F_BRACKETPAIR・F_BROWSE・F_CANCEL_MODE・F_CASCADE・F_CHGMOD_EOL_CR・F_CHGMOD_EOL_CRLF・F_CHGMOD_EOL_LF・F_CHGMOD_INS・F_CODECNV_AUTO2SJIS・F_CODECNV_EMAIL・F_CODECNV_EUC2SJIS・F_CODECNV_SJIS2EUC・F_CODECNV_SJIS2JIS・F_CODECNV_SJIS2UTF7・F_CODECNV_SJIS2UTF8・F_CODECNV_UNICODE2SJIS・F_CODECNV_UNICODEBE2SJIS・F_CODECNV_UTF72SJIS・F_CODECNV_UTF82SJIS・F_COMPARE・F_COPY・F_COPY_ADDCRLF・F_COPY_CRLF・F_COPYFNAME・F_COPYLINES・F_COPYLINESASPASSAGE・F_COPYLINESWITHLINENUMBER・F_COPYPATH・F_COPYTAG・F_CREATEKEYBINDLIST・F_CTRL_CODE_DIALOG・F_CURLINECENTER・F_CUSTMENU_1・F_CUSTMENU_10・F_CUSTMENU_2・F_CUSTMENU_24・F_CUSTMENU_3・F_CUSTMENU_4・F_CUSTMENU_5・F_CUSTMENU_6・F_CUSTMENU_7・F_CUSTMENU_8・F_CUSTMENU_9・F_CUT・F_CUT_LINE・F_DELETE・F_DELETE_BACK・F_DELETE_LINE・F_DIFF_DIALOG・F_DIFF_NEXT・F_DIFF_PREV・F_DIFF_RESET・F_DIRECT_TAGJUMP・F_DISABLE・F_DOWN・F_DOWN2・F_DOWN2_SEL・F_DOWN_SEL・F_DUPLICATELINE・F_EXECCOMMAND_DIALOG・F_EXECKEYMACRO・F_EXITALL・F_EXITALLEDITORS・F_EXTHELP1・F_EXTHTMLHELP・F_FAVORITE・F_FILE_REOPEN・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UNICODEBE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_FILECLOSE・F_FILECLOSE_OPEN・F_FILENEW・F_FILEOPEN・F_FILEOPEN_DROPDOWN・F_FILESAVE・F_FILESAVEALL・F_FILESAVEAS_DIALOG・F_FILESAVECLOSE・F_FONT・F_GOFILEEND・F_GOFILEEND_SEL・F_GOFILETOP・F_GOFILETOP_SEL・F_GOLINEEND・F_GOLINEEND_SEL・F_GOLINETOP・F_GOLINETOP_SEL・F_GONEXTPARAGRAPH・F_GONEXTPARAGRAPH_SEL・F_GOPREVPARAGRAPH・F_GOPREVPARAGRAPH_SEL・F_GREP_DIALOG・F_GROUPCLOSE・F_HalfPageDown・F_HalfPageDown_Sel・F_HalfPageUp・F_HalfPageUp_Sel・F_HANKATATOZENKAKUHIRA・F_HANKATATOZENKAKUKATA・F_HELP_CONTENTS・F_HELP_SEARCH・F_HOKAN・F_INDENT_SPACE・F_INDENT_TAB・F_INS_DATE・F_INS_TIME・F_ISEARCH_MIGEMO_NEXT・F_ISEARCH_MIGEMO_PREV・F_ISEARCH_NEXT・F_ISEARCH_PREV・F_ISEARCH_REGEXP_NEXT・F_ISEARCH_REGEXP_PREV・F_JUMP_DIALOG・F_JUMP_SRCHSTARTPOS・F_JUMPHIST_NEXT・F_JUMPHIST_PREV・F_LEFT・F_LEFT_SEL・F_LineCutToEnd・F_LineCutToStart・F_LineDeleteToEnd・F_LineDeleteToStart・F_LOADKEYMACRO・F_LTRIM・F_MAXIMIZE_H・F_MAXIMIZE_V・F_MENU_ALLFUNC・F_MENU_RBUTTON・F_MERGE・F_MINIMIZE_ALL・F_NEXTGROUP・F_NEXTWINDOW・F_OPEN_CCPP・F_OPEN_HfromtoC・F_OPEN_HHPP・F_OPTION・F_OPTION_TYPE・F_OUTLINE・F_OUTLINE_TOGGLE・F_PASTE・F_PASTEBOX・F_PLSQL_COMPILE_ON_SQLPLUS・F_PREVGROUP・F_PREVWINDOW・F_PRINT・F_PRINT_PAGESETUP・F_PRINT_PREVIEW・F_PROPERTY_FILE・F_READONLY・F_RECKEYMACRO・F_RECONVERT・F_REDO・F_REDRAW・F_REPLACE_DIALOG・F_RIGHT・F_RIGHT_SEL・F_RTRIM・F_SAVEKEYMACRO・F_SEARCH_BOX・F_SEARCH_CLEARMARK・F_SEARCH_DIALOG・F_SEARCH_NEXT・F_SEARCH_PREV・F_SELECTALL・F_SELECTWORD・F_SHOWFUNCKEY・F_SHOWSTATUSBAR・F_SHOWTAB・F_SHOWTOOLBAR・F_SORT_ASC・F_SORT_DESC・F_SPACETOTAB・F_SPLIT_H・F_SPLIT_V・F_SPLIT_VH・F_TAB_JOINTNEXT・F_TAB_JOINTPREV・F_TAB_MOVELEFT・F_TAB_MOVERIGHT・F_TAB_SEPARATE・F_TABTOSPACE・F_TAGJUMP・F_TAGJUMP_KEYWORD・F_TAGJUMPBACK・F_TAGS_MAKE・F_TILE_H・F_TILE_V・F_TOGGLE_KEY_SEARCH・F_TOHANEI・F_TOHANKAKU・F_TOHANKATA・F_TOLOWER・F_TOPMOST・F_TOUPPER・F_TOZENEI・F_TOZENKAKUHIRA・F_TOZENKAKUKATA・F_TYPE_LIST・F_UNDO・F_UNINDENT_SPACE・F_UNINDENT_TAB・F_UP・F_UP2・F_UP2_SEL・F_UP_SEL・F_USERMACRO_0・F_UUDECODE・F_WIN_CLOSEALL・F_WIN_OUTPUT・F_WINCLOSE・F_WINLIST・F_WndScrollDown・F_WndScrollUp・F_WordCut・F_WordDelete・F_WordDeleteToEnd・F_WordDeleteToStart・F_WORDLEFT・F_WORDLEFT_SEL・F_WORDRIGHT・F_WORDRIGHT_SEL・F_WRAPWINDOWWIDTH・CShareData::getInstance()・CShareData::GetShareData()・m_hFontMenu・m_hFontMenuUndelLine・m_nMenuHeight・m_nMenuItemNum・m_pShareData・m_tbMyButton・NULL・SetTBBUTTONVal()・TBSTYLE_COMBOBOX・TBSTYLE_DROPDOWN.

CMenuDrawer::~CMenuDrawer ( )

CMenuDrawer.cpp の 588 行で定義されています。

参照先 m_hFontMenu・m_hFontMenuUndelLine・NULL.

関数

void CMenuDrawer::Create | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | CImageListMgr * |
 | ) |

CMenuDrawer.cpp の 601 行で定義されています。

参照先 m_hInstance・m_hWndOwner・m_pcIcons.

参照元 CEditWnd::Create()・CEditApp::Create().

void CMenuDrawer::DrawItem ( DRAWITEMSTRUCT * lpdis )

メニューアイテム描画

日付:
2001.12.21 YAZAKI デバッグモードでもメニューを選択したらハイライト。

2003.08.27 Moca システムカラーのブラシはCreateSolidBrushをやめGetSysColorBrushに

CMenuDrawer.cpp の 788 行で定義されています。

参照先 FALSE・Find()・FuncID_To_HelpContextID()・CMemory::GetPtr()・m_cmemMenuItemStrArr・m_hFontMenu・m_nMenuItemBitmapIdxArr・NULL・SIZEOF_MENUITEMINFO.

参照元 CEditApp::DispatchEvent().

int CMenuDrawer::Find ( int nFuncID ) [private]

CMenuDrawer.cpp の 1067 行で定義されています。

参照先 m_nMenuItemFuncArr・m_nMenuItemNum.

参照元 DrawItem()・GetLabel().

int CMenuDrawer::FindIndexFromCommandId ( int idCommand )

CMenuDrawer.cpp の 1054 行で定義されています。

参照先 m_nMyButtonNum・m_tbMyButton.

参照元 CPropCommon::DispatchEvent_PROP_TOOLBAR()・CEditWnd::ToolBarOwnerDraw().

char CMenuDrawer::GetAccelCharFromLabel ( const char * pszLabel ) [private]

CMenuDrawer.cpp の 1092 行で定義されています。

参照元 OnMenuChar().

TBBUTTON CMenuDrawer::getButton ( int index ) const [inline]

CMenuDrawer.h の 76 行で定義されています。

参照元 CEditWnd::CreateToolBar()・CPropCommon::DrawToolBarItemList()・CEditWnd::OnToolbarTimer().

int CMenuDrawer::GetData ( void ) [protected]

int CMenuDrawer::GetIconId ( int nIndex ) [inline]

CMenuDrawer.h の 74 行で定義されています。

参照元 CEditWnd::ToolBarOwnerDraw().

const char * CMenuDrawer::GetLabel ( int nFuncID ) [private]

CMenuDrawer.cpp の 1083 行で定義されています。

参照先 Find()・CMemory::GetPtr()・m_cmemMenuItemStrArr・NULL.

参照元 MeasureItem()・OnMenuChar().

int CMenuDrawer::MeasureItem | ( | int | ,
 |  | int * |
 | ) |

CMenuDrawer.cpp の 652 行で定義されています。

参照先 GetLabel()・m_hFontMenu・m_hWndOwner・m_nMenuHeight・NULL.

参照元 CEditApp::DispatchEvent().

void CMenuDrawer::MyAppendMenu | ( | HMENU | ,
 |  | int | ,
 |  | int | ,
 |  | const char * | ,
 |  | BOOL | = TRUE,
 |  | int | = -1
 | ) |

CMenuDrawer.cpp の 684 行で定義されています。

参照先 CKeyBind::GetMenuLabel()・GSTR_APPNAME・Common::m_bMenuIcon・m_cmemMenuItemStrArr・DLLSHAREDATA::m_Common・m_hInstance・DLLSHAREDATA::m_nKeyNameArrNum・m_nMenuItemBitmapIdxArr・m_nMenuItemFuncArr・m_nMenuItemNum・m_nMyButtonNum・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・m_tbMyButton・MAX_MENUITEMS・MYMESSAGEBOX・NULL・CMemory::SetData().

参照元 CEditView::Command_MENU_ALLFUNC()・CEditWnd::CreateFileDropDownMenu()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CEditWnd::InitMenu()・CEditWnd::WinListMenu().

LRESULT CMenuDrawer::OnMenuChar | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

メニューアクセスキー押下時の処理(WM_MENUCHAR処理)

CMenuDrawer.cpp の 1112 行で定義されています。

参照先 GetAccelCharFromLabel()・GetLabel()・NULL・SIZEOF_MENUITEMINFO・TRUE.

参照元 CEditWnd::DispatchEvent()・CEditApp::DispatchEvent().

void CMenuDrawer::ResetContents ( void )

CMenuDrawer.cpp の 611 行で定義されています。

参照先 m_cmemMenuItemStrArr・m_nMenuItemFuncArr・m_nMenuItemNum.

参照元 CEditView::Command_CUSTMENU()・CEditView::Command_MENU_ALLFUNC()・CEditWnd::CreateFileDropDownMenu()・CEditApp::CreatePopUpMenu_L()・CEditView::CreatePopUpMenu_R()・CEditApp::CreatePopUpMenu_R()・CEditWnd::InitMenu().

void CMenuDrawer::SetTBBUTTONVal | ( | TBBUTTON * | ,
 |  | int | ,
 |  | int | ,
 |  | BYTE | ,
 |  | BYTE | ,
 |  | DWORD_PTR | ,
 |  | INT_PTR |
 | ) | [protected]

CMenuDrawer.cpp の 1196 行で定義されています。

参照元 CMenuDrawer().

変数

CMemory CMenuDrawer::m_cmemMenuItemStrArr[MAX_MENUITEMS] [private]

CMenuDrawer.h の 100 行で定義されています。

参照元 DrawItem()・GetLabel()・MyAppendMenu()・ResetContents().

HFONT CMenuDrawer::m_hFontMenu [private]

CMenuDrawer.h の 102 行で定義されています。

参照元 CMenuDrawer()・DrawItem()・MeasureItem()・~CMenuDrawer().

HFONT CMenuDrawer::m_hFontMenuUndelLine [private]

CMenuDrawer.h の 103 行で定義されています。

参照元 CMenuDrawer()・~CMenuDrawer().

HINSTANCE CMenuDrawer::m_hInstance [private]

CMenuDrawer.h の 90 行で定義されています。

参照元 Create()・MyAppendMenu().

HWND CMenuDrawer::m_hWndOwner [private]

CMenuDrawer.h の 91 行で定義されています。

参照元 Create()・MeasureItem().

int CMenuDrawer::m_nMenuHeight [private]

CMenuDrawer.h の 101 行で定義されています。

参照元 CMenuDrawer()・MeasureItem().

int CMenuDrawer::m_nMenuItemBitmapIdxArr[MAX_MENUITEMS] [private]

CMenuDrawer.h の 98 行で定義されています。

参照元 DrawItem()・MyAppendMenu().

int CMenuDrawer::m_nMenuItemFuncArr[MAX_MENUITEMS] [private]

CMenuDrawer.h の 99 行で定義されています。

参照元 Find()・MyAppendMenu()・ResetContents().

int CMenuDrawer::m_nMenuItemNum [private]

CMenuDrawer.h の 93 行で定義されています。

参照元 CMenuDrawer()・Find()・MyAppendMenu()・ResetContents().

int CMenuDrawer::m_nMyButtonNum [private]

CMenuDrawer.h の 96 行で定義されています。

参照元 FindIndexFromCommandId()・MyAppendMenu().

CImageListMgr* CMenuDrawer::m_pcIcons [private]

CMenuDrawer.h の 109 行で定義されています。

参照元 Create().

DLLSHAREDATA* CMenuDrawer::m_pShareData [private]

CMenuDrawer.h の 88 行で定義されています。

参照元 CMenuDrawer()・MyAppendMenu().

TBBUTTON CMenuDrawer::m_tbMyButton[MAX_TOOLBARBUTTONS+1] [private]

CMenuDrawer.h の 95 行で定義されています。

参照元 CMenuDrawer()・FindIndexFromCommandId()・MyAppendMenu().

このクラスの説明は次のファイルから生成されました:
  • CMenuDrawer.h
  • CMenuDrawer.cpp
Sakura-Editorに対してSat Oct 27 02:35:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMenuDrawer メンバ一覧

これは全メンバの一覧です。CMenuDrawer継承メンバも含んでいます。

CMenuDrawer() | CMenuDrawer |
Create(HINSTANCE, HWND, CImageListMgr *) | CMenuDrawer |
DrawItem(DRAWITEMSTRUCT *) | CMenuDrawer |
Find(int nFuncID) | CMenuDrawer | [private]
FindIndexFromCommandId(int idCommand) | CMenuDrawer |
GetAccelCharFromLabel(const char *pszLabel) | CMenuDrawer | [private]
getButton(int index) const | CMenuDrawer | [inline]
GetData(void) | CMenuDrawer | [protected]
GetIconId(int nIndex) | CMenuDrawer | [inline]
GetLabel(int nFuncID) | CMenuDrawer | [private]
m_cmemMenuItemStrArr | CMenuDrawer | [private]
m_hFontMenu | CMenuDrawer | [private]
m_hFontMenuUndelLine | CMenuDrawer | [private]
m_hInstance | CMenuDrawer | [private]
m_hWndOwner | CMenuDrawer | [private]
m_nMenuHeight | CMenuDrawer | [private]
m_nMenuItemBitmapIdxArr | CMenuDrawer | [private]
m_nMenuItemFuncArr | CMenuDrawer | [private]
m_nMenuItemNum | CMenuDrawer | [private]
m_nMyButtonNum | CMenuDrawer | [private]
m_pcIcons | CMenuDrawer | [private]
m_pShareData | CMenuDrawer | [private]
m_tbMyButton | CMenuDrawer | [private]
MeasureItem(int, int *) | CMenuDrawer |
MyAppendMenu(HMENU, int, int, const char *, BOOL=TRUE, int=-1) | CMenuDrawer |
OnMenuChar(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | CMenuDrawer |
ResetContents(void) | CMenuDrawer |
SetTBBUTTONVal(TBBUTTON *, int, int, BYTE, BYTE, DWORD_PTR, INT_PTR) | CMenuDrawer | [protected]
~CMenuDrawer() | CMenuDrawer |

Sakura-Editorに対してSat Oct 27 02:35:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMigemo

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMigemo

#include <CMigemo.h>

CMigemoに対する継承グラフ

[凡例]
CMigemoのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CMigemo ()
virtual | ~CMigemo ()
long | migemo_open (char *dict)
void | migemo_close ()
unsigned char * | migemo_query (unsigned char *query)
void | migemo_release (unsigned char *string)
int | migemo_set_operator (int index, unsigned char *op)
const unsigned char * | migemo_get_operator (int index)
void | migemo_setproc_char2int (MIGEMO_PROC_CHAR2INT proc)
void | migemo_setproc_int2char (MIGEMO_PROC_INT2CHAR proc)
int | migemo_load (int dict_id, char *dict_file)
int | migemo_is_enable ()
int | migemo_load_all ()

Static Public メソッド

static CMigemo * | getInstance ()

Static Public 変数

static CMigemo * | _instance

Protected 型

typedef migemo *(__cdecl * | Proc_migemo_open )(char *dict)
typedef void(__cdecl * | Proc_migemo_close )(migemo *object)
typedef unsigned char *(__cdecl * | Proc_migemo_query )(migemo *object, unsigned char *query)
typedef void(__cdecl * | Proc_migemo_release )(migemo *object, unsigned char *string)
typedef int(__cdecl * | Proc_migemo_set_operator )(migemo *object, int index, unsigned char *op)
typedef const unsigned char
*(__cdecl * 		Proc_migemo_get_operator )(migemo *object, int index)
typedef void(__cdecl * | Proc_migemo_setproc_char2int )(migemo *object, MIGEMO_PROC_CHAR2INT proc)
typedef void(__cdecl * | Proc_migemo_setproc_int2char )(migemo *object, MIGEMO_PROC_INT2CHAR proc)
typedef int(__cdecl * | Proc_migemo_load )(migemo *obj, int dict_id, char *dict_file)
typedef int(__cdecl * | Proc_migemo_is_enable )(migemo *obj)

Protected メソッド

const char * | GetDllName (const char *)
int | InitDll (void)
DLLの初期化
int | DeInitDll (void)

Protected 変数

Proc_migemo_open m_migemo_open
Proc_migemo_close m_migemo_close
Proc_migemo_query m_migemo_query
Proc_migemo_release m_migemo_release
Proc_migemo_set_operator m_migemo_set_operator
Proc_migemo_get_operator m_migemo_get_operator
Proc_migemo_setproc_char2int m_migemo_setproc_char2int
Proc_migemo_setproc_int2char m_migemo_setproc_int2char
Proc_migemo_load m_migemo_load
Proc_migemo_is_enable m_migemo_is_enable
migemo * m_migemo

説明

CMigemo.h の 49 行で定義されています。

型定義

typedef void(__cdecl * CMigemo::Proc_migemo_close)(migemo *object) [protected]

CMigemo.h の 63 行で定義されています。

typedef const unsigned char*(__cdecl * CMigemo::Proc_migemo_get_operator)(migemo *object, int index) [protected]

CMigemo.h の 67 行で定義されています。

typedef int(__cdecl * CMigemo::Proc_migemo_is_enable)(migemo *obj) [protected]

CMigemo.h の 71 行で定義されています。

typedef int(__cdecl * CMigemo::Proc_migemo_load)(migemo *obj, int dict_id, char *dict_file) [protected]

CMigemo.h の 70 行で定義されています。

typedef migemo*(__cdecl * CMigemo::Proc_migemo_open)(char *dict) [protected]

CMigemo.h の 62 行で定義されています。

typedef unsigned char*(__cdecl * CMigemo::Proc_migemo_query)(migemo *object, unsigned char *query) [protected]

CMigemo.h の 64 行で定義されています。

typedef void(__cdecl * CMigemo::Proc_migemo_release)(migemo *object, unsigned char *string) [protected]

CMigemo.h の 65 行で定義されています。

typedef int(__cdecl * CMigemo::Proc_migemo_set_operator)(migemo *object, int index, unsigned char *op) [protected]

CMigemo.h の 66 行で定義されています。

typedef void(__cdecl * CMigemo::Proc_migemo_setproc_char2int)(migemo *object, MIGEMO_PROC_CHAR2INT proc) [protected]

CMigemo.h の 68 行で定義されています。

typedef void(__cdecl * CMigemo::Proc_migemo_setproc_int2char)(migemo *object, MIGEMO_PROC_INT2CHAR proc) [protected]

CMigemo.h の 69 行で定義されています。

コンストラクタとデストラクタ

CMigemo::CMigemo ( )

CMigemo.cpp の 30 行で定義されています。

参照先 _instance.

CMigemo::~CMigemo ( ) [virtual]

CMigemo.cpp の 209 行で定義されています。

関数

int CMigemo::DeInitDll ( void ) [protected]

CMigemo.cpp の 63 行で定義されています。

参照先 migemo_close().

const char * CMigemo::GetDllName ( const char * ) [protected]

CMigemo.cpp の 69 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・GetInidir()・GetInidirOrExedir()・CShareData::getInstance()・CShareData::GetShareData()・DLLSHAREDATA::m_Common・Common::m_szMigemoDll.

CMigemo * CMigemo::getInstance ( ) [static]

CMigemo.cpp の 26 行で定義されています。

参照先 _instance.

参照元 CEditView::ISearchEnter().

int CMigemo::InitDll ( void ) [protected, virtual]

DLLの初期化

DLLのロードに成功した直後に呼び出される．エントリポイントの 確認などを行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外の値を返した場合は、読み込んだDLLを解放する．

CDllHandlerを実装しています。

CMigemo.cpp の 35 行で定義されています。

参照先 m_migemo_close・m_migemo_get_operator・m_migemo_is_enable・m_migemo_load・m_migemo_open・m_migemo_query・m_migemo_release・m_migemo_set_operator・m_migemo_setproc_char2int・m_migemo_setproc_int2char・migemo_open()・NULL・CDllHandler::RegisterEntries().

void CMigemo::migemo_close ( )

CMigemo.cpp の 104 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・NULL.

参照元 DeInitDll().

const unsigned char * CMigemo::migemo_get_operator ( int index )

CMigemo.cpp の 135 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・m_migemo_get_operator・NULL.

int CMigemo::migemo_is_enable ( )

CMigemo.cpp の 164 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・m_migemo_is_enable・NULL.

参照元 migemo_load_all().

int CMigemo::migemo_load | ( | int | dict_id,
 |  | char * | dict_file
 | ) |

CMigemo.cpp の 157 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・m_migemo_load・NULL.

参照元 migemo_load_all().

int CMigemo::migemo_load_all ( )

CMigemo.cpp の 172 行で定義されています。

参照先 _IS_REL_PATH()・GetInidirOrExedir()・CShareData::getInstance()・CShareData::GetShareData()・DLLSHAREDATA::m_Common・Common::m_szMigemoDict・MIGEMO_DICTID_HAN2ZEN・MIGEMO_DICTID_HIRA2KATA・MIGEMO_DICTID_MIGEMO・MIGEMO_DICTID_ROMA2HIRA・migemo_is_enable()・migemo_load().

long CMigemo::migemo_open ( char * dict )

CMigemo.cpp の 88 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・NULL.

参照元 InitDll().

unsigned char * CMigemo::migemo_query ( unsigned char * query )

CMigemo.cpp の 112 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・m_migemo_query・NULL.

参照元 CEditView::ISearchWordMake().

void CMigemo::migemo_release ( unsigned char * string )

CMigemo.cpp の 119 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・NULL.

参照元 CEditView::ISearchWordMake().

int CMigemo::migemo_set_operator | ( | int | index,
 |  | unsigned char * | op
 | ) |

CMigemo.cpp の 127 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・m_migemo_set_operator・NULL.

void CMigemo::migemo_setproc_char2int ( MIGEMO_PROC_CHAR2INT proc )

CMigemo.cpp の 143 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・NULL.

void CMigemo::migemo_setproc_int2char ( MIGEMO_PROC_INT2CHAR proc )

CMigemo.cpp の 150 行で定義されています。

参照先 CDllHandler::IsAvailable()・m_migemo・NULL.

変数

CMigemo * CMigemo::_instance [static]

CMigemo.h の 55 行で定義されています。

参照元 CMigemo()・getInstance().

migemo* CMigemo::m_migemo [protected]

CMigemo.h の 84 行で定義されています。

参照元 migemo_close()・migemo_get_operator()・migemo_is_enable()・migemo_load()・migemo_open()・migemo_query()・migemo_release()・migemo_set_operator()・migemo_setproc_char2int()・migemo_setproc_int2char().

Proc_migemo_close CMigemo::m_migemo_close [protected]

CMigemo.h の 74 行で定義されています。

参照元 InitDll().

Proc_migemo_get_operator CMigemo::m_migemo_get_operator [protected]

CMigemo.h の 78 行で定義されています。

参照元 InitDll()・migemo_get_operator().

Proc_migemo_is_enable CMigemo::m_migemo_is_enable [protected]

CMigemo.h の 82 行で定義されています。

参照元 InitDll()・migemo_is_enable().

Proc_migemo_load CMigemo::m_migemo_load [protected]

CMigemo.h の 81 行で定義されています。

参照元 InitDll()・migemo_load().

Proc_migemo_open CMigemo::m_migemo_open [protected]

CMigemo.h の 73 行で定義されています。

参照元 InitDll().

Proc_migemo_query CMigemo::m_migemo_query [protected]

CMigemo.h の 75 行で定義されています。

参照元 InitDll()・migemo_query().

Proc_migemo_release CMigemo::m_migemo_release [protected]

CMigemo.h の 76 行で定義されています。

参照元 InitDll().

Proc_migemo_set_operator CMigemo::m_migemo_set_operator [protected]

CMigemo.h の 77 行で定義されています。

参照元 InitDll()・migemo_set_operator().

Proc_migemo_setproc_char2int CMigemo::m_migemo_setproc_char2int [protected]

CMigemo.h の 79 行で定義されています。

参照元 InitDll().

Proc_migemo_setproc_int2char CMigemo::m_migemo_setproc_int2char [protected]

CMigemo.h の 80 行で定義されています。

参照元 InitDll().

このクラスの説明は次のファイルから生成されました:
  • CMigemo.h
  • CMigemo.cpp
Sakura-Editorに対してSat Oct 27 02:35:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMigemo メンバ一覧

これは全メンバの一覧です。CMigemo継承メンバも含んでいます。

_instance | CMigemo | [static]
CDllHandler() | CDllHandler |
CMigemo() | CMigemo |
DeInitDll(void) | CMigemo | [protected]
DeinitDll(void) | CDllHandler | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(const char *) | CMigemo | [protected]
CDllHandler::GetDllName(LPCTSTR) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
getInstance() | CMigemo | [static]
Init(const char *str=NULL) | CDllHandler | [inline]
InitDll(void) | CMigemo | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
LoadLibrary(const char *str=NULL) | CDllHandler |
m_migemo | CMigemo | [protected]
m_migemo_close | CMigemo | [protected]
m_migemo_get_operator | CMigemo | [protected]
m_migemo_is_enable | CMigemo | [protected]
m_migemo_load | CMigemo | [protected]
m_migemo_open | CMigemo | [protected]
m_migemo_query | CMigemo | [protected]
m_migemo_release | CMigemo | [protected]
m_migemo_set_operator | CMigemo | [protected]
m_migemo_setproc_char2int | CMigemo | [protected]
m_migemo_setproc_int2char | CMigemo | [protected]
migemo_close() | CMigemo |
migemo_get_operator(int index) | CMigemo |
migemo_is_enable() | CMigemo |
migemo_load(int dict_id, char *dict_file) | CMigemo |
migemo_load_all() | CMigemo |
migemo_open(char *dict) | CMigemo |
migemo_query(unsigned char *query) | CMigemo |
migemo_release(unsigned char *string) | CMigemo |
migemo_set_operator(int index, unsigned char *op) | CMigemo |
migemo_setproc_char2int(MIGEMO_PROC_CHAR2INT proc) | CMigemo |
migemo_setproc_int2char(MIGEMO_PROC_INT2CHAR proc) | CMigemo |
operator!(void) const | CDllHandler | [inline]
Proc_migemo_close typedef | CMigemo | [protected]
Proc_migemo_get_operator typedef | CMigemo | [protected]
Proc_migemo_is_enable typedef | CMigemo | [protected]
Proc_migemo_load typedef | CMigemo | [protected]
Proc_migemo_open typedef | CMigemo | [protected]
Proc_migemo_query typedef | CMigemo | [protected]
Proc_migemo_release typedef | CMigemo | [protected]
Proc_migemo_set_operator typedef | CMigemo | [protected]
Proc_migemo_setproc_char2int typedef | CMigemo | [protected]
Proc_migemo_setproc_int2char typedef | CMigemo | [protected]
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
~CDllHandler() | CDllHandler | [virtual]
~CMigemo() | CMigemo | [virtual]

Sakura-Editorに対してSat Oct 27 02:35:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMRU

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMRU

#include <CMRU.h>

CMRUのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CMRU ()
~CMRU ()
HMENU | CreateMenu (class CMenuDrawer *pCMenuDrawer)
BOOL | DestroyMenu (HMENU hMenu)
void | GetPathList (char **ppszMRU)
int | Length (void)
void | ClearAll (void)
BOOL | GetFileInfo (int num, FileInfo *pfi)
BOOL | GetFileInfo (const char *pszPath, FileInfo *pfi)
void | Add (FileInfo *pFileInfo)
MRUリストへの登録

Protected メソッド

bool | IsRemovableDrive (const char *pszDrive)

Protected 変数

DLLSHAREDATA * m_pShareData

Private 変数

CRecent m_cRecent

説明

CMRU.h の 49 行で定義されています。

コンストラクタとデストラクタ

CMRU::CMRU ( )

コンストラクタ

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CMRU.cpp の 31 行で定義されています。

参照先 CRecent::EasyCreate()・CShareData::getInstance()・CShareData::GetShareData()・m_cRecent・m_pShareData・RECENT_FOR_FILE.

CMRU::~CMRU ( )

CMRU.cpp の 41 行で定義されています。

参照先 m_cRecent・CRecent::Terminate().

関数

void CMRU::Add ( FileInfo * pFileInfo )

MRUリストへの登録

引数:
pFileInfo [in] 追加するファイルの情報
該当ファイルがリムーバブルディスク上にある場合にはMRU Listへの登録は行わない。

日付:
2001.03.29 MIK リムーバブルディスク上のファイルを登録しないようにした。

2001.12.26 YAZAKI CShareData::AddMRUListから移動

CMRU.cpp の 194 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・_MAX_PATH・CMRUFolder::Add()・CRecent::AppendItem()・m_cRecent・FileInfo::m_szPath・NULL.

参照元 CEditDoc::AddToMRU()・CShareData::IsPathOpened().

void CMRU::ClearAll ( void )

ファイル履歴のクリア

CMRU.cpp の 136 行で定義されています。

参照先 CRecent::DeleteAllItem()・m_cRecent.

参照元 CPropCommon::DispatchEvent_p1()・CShareData::Init().

HMENU CMRU::CreateMenu ( class CMenuDrawer * pCMenuDrawer )

ファイル履歴メニューの作成

引数:
pCMenuDrawer [in] (out?) メニュー作成で用いるMenuDrawer
作者:
Norio Nakantani
戻り値:
生成したメニューのハンドル

CMRU.cpp の 54 行で定義されています。

参照先 _MAX_PATH・CODE_CODEMAX・dupamp()・F_FAVORITE・FALSE・CShareData::getInstance()・CRecent::GetItem()・CRecent::GetItemCount()・CShareData::GetTransformFileNameFast()・CRecent::GetViewCount()・gm_pszCodeNameArr_3・IDM_SELMRU・CRecent::IsFavorite()・Common::m_bMenuIcon・DLLSHAREDATA::m_Common・m_cRecent・FileInfo::m_nCharCode・m_pShareData・FileInfo::m_szPath・CMenuDrawer::MyAppendMenu()・CShareData::TransformFileName_MakeCache()・TRUE.

参照元 CEditWnd::CreateFileDropDownMenu()・CEditWnd::InitMenu().

BOOL CMRU::DestroyMenu ( HMENU hMenu )

CMRU.cpp の 102 行で定義されています。

BOOL CMRU::GetFileInfo | ( | const char * | pszPath,
 |  | FileInfo * | pfi
 | ) |

指定された名前のファイルがMRUリストに存在するか調べる。存在するならばファイル情報を返す。

引数:
pszPath | [in] 検索するファイル名
pfi | [out] データが見つかったときにファイル情報を格納する領域。 呼び出し側で領域をあらかじめ用意する必要がある。
戻り値:
TRUE | ファイルが見つかった。pfiにファイル情報が格納されている。
FALSE | 指定されたファイルはMRU Listに無い。
日付:
2001.12.26 CShareData::IsExistInMRUListから移動した。（YAZAKI）

CMRU.cpp の 173 行で定義されています。

参照先 FALSE・CRecent::FindItem()・CRecent::GetItem()・m_cRecent・NULL・TRUE.

BOOL CMRU::GetFileInfo | ( | int | num,
 |  | FileInfo * | pfi
 | ) |

ファイル情報の取得

引数:
num | [in] 履歴番号(0~)
pfi | [out] 構造体へのポインタ格納先
戻り値:
TRUE | データが格納された
FALSE | 正しくない番号が指定された．データは格納されなかった．

CMRU.cpp の 150 行で定義されています。

参照先 FALSE・CRecent::GetItem()・m_cRecent・NULL・TRUE.

参照元 CEditView::Command_INSFILE()・CEditWnd::OnCommand().

void CMRU::GetPathList ( char ** ppszMRU )

ファイル履歴の一覧を返す

引数:
ppszMRU [out] 文字列へのポインタリストを格納する． 最後の要素の次にはNULLが入る． 予め呼び出す側で最大値+1の領域を確保しておくこと．

CMRU.cpp の 114 行で定義されています。

参照先 CRecent::GetDataOfItem()・CRecent::GetItemCount()・CRecent::GetViewCount()・m_cRecent.

参照元 CEditDoc::OpenFileDialog()・CEditDoc::SaveFileDialog().

bool CMRU::IsRemovableDrive ( const char * pszDrive ) [protected]

int CMRU::Length ( void )

アイテム数を返す

CMRU.cpp の 128 行で定義されています。

参照先 CRecent::GetItemCount()・m_cRecent.

参照元 CEditWnd::CreateFileDropDownMenu()・CEditWnd::InitMenu()・CEditDoc::OpenFileDialog()・CEditDoc::SaveFileDialog().

変数

CRecent CMRU::m_cRecent [private]

CMRU.h の 75 行で定義されています。

参照元 Add()・ClearAll()・CMRU()・CreateMenu()・GetFileInfo()・GetPathList()・Length()・~CMRU().

struct DLLSHAREDATA* CMRU::m_pShareData [protected]

CMRU.h の 71 行で定義されています。

参照元 CMRU()・CreateMenu().

このクラスの説明は次のファイルから生成されました:
  • CMRU.h
  • CMRU.cpp
Sakura-Editorに対してSat Oct 27 02:35:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMRU メンバ一覧

これは全メンバの一覧です。CMRU継承メンバも含んでいます。

Add(FileInfo *pFileInfo) | CMRU |
ClearAll(void) | CMRU |
CMRU() | CMRU |
CreateMenu(class CMenuDrawer *pCMenuDrawer) | CMRU |
DestroyMenu(HMENU hMenu) | CMRU |
GetFileInfo(int num, FileInfo *pfi) | CMRU |
GetFileInfo(const char *pszPath, FileInfo *pfi) | CMRU |
GetPathList(char **ppszMRU) | CMRU |
IsRemovableDrive(const char *pszDrive) | CMRU | [protected]
Length(void) | CMRU |
m_cRecent | CMRU | [private]
m_pShareData | CMRU | [protected]
~CMRU() | CMRU |

Sakura-Editorに対してSat Oct 27 02:35:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMRUFolder

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMRUFolder

#include <CMRUFolder.h>

CMRUFolderのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CMRUFolder ()
~CMRUFolder ()
HMENU | CreateMenu (class CMenuDrawer *pCMenuDrawer)
BOOL | DestroyMenu (HMENU hMenu)
void | GetPathList (char **ppszMRU)
int | Length ()
void | ClearAll ()
void | Add (const char *pszFolder)
const char * | GetPath (int num)

Protected 変数

DLLSHAREDATA * m_pShareData

Private 変数

CRecent m_cRecent

説明

CMRUFolder.h の 46 行で定義されています。

コンストラクタとデストラクタ

CMRUFolder::CMRUFolder ( )

コンストラクタ

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CMRUFolder.cpp の 29 行で定義されています。

参照先 CRecent::EasyCreate()・CShareData::getInstance()・CShareData::GetShareData()・m_cRecent・m_pShareData・RECENT_FOR_FOLDER.

CMRUFolder::~CMRUFolder ( )

CMRUFolder.cpp の 39 行で定義されています。

参照先 m_cRecent・CRecent::Terminate().

関数

void CMRUFolder::Add ( const char * pszFolder )

CMRUFolder.cpp の 105 行で定義されています。

参照先 CRecent::AppendItem()・m_cRecent・NULL.

参照元 CMRU::Add().

void CMRUFolder::ClearAll ( )

CMRUFolder.cpp の 96 行で定義されています。

参照先 CRecent::DeleteAllItem()・m_cRecent.

参照元 CPropCommon::DispatchEvent_p1()・CShareData::Init().

HMENU CMRUFolder::CreateMenu ( class CMenuDrawer * pCMenuDrawer )

CMRUFolder.cpp の 44 行で定義されています。

参照先 _MAX_PATH・dupamp()・F_FAVORITE・FALSE・CRecent::GetDataOfItem()・CShareData::getInstance()・CRecent::GetItemCount()・CShareData::GetTransformFileNameFast()・CRecent::GetViewCount()・IDM_SELOPENFOLDER・CRecent::IsFavorite()・Common::m_bMenuIcon・DLLSHAREDATA::m_Common・m_cRecent・m_pShareData・CMenuDrawer::MyAppendMenu()・CShareData::TransformFileName_MakeCache()・TRUE.

参照元 CEditWnd::InitMenu().

BOOL CMRUFolder::DestroyMenu ( HMENU hMenu )

const char * CMRUFolder::GetPath ( int num )

CMRUFolder.cpp の 116 行で定義されています。

参照先 CRecent::GetDataOfItem()・m_cRecent.

参照元 CEditWnd::OnCommand()・CEditApp::OnNewEditor().

void CMRUFolder::GetPathList ( char ** ppszMRU )

CMRUFolder.cpp の 78 行で定義されています。

参照先 CRecent::GetDataOfItem()・CRecent::GetItemCount()・CRecent::GetViewCount()・m_cRecent.

参照元 CEditDoc::OpenFileDialog()・CEditDoc::SaveFileDialog().

int CMRUFolder::Length ( )

CMRUFolder.cpp の 91 行で定義されています。

参照先 CRecent::GetItemCount()・m_cRecent.

参照元 CEditWnd::InitMenu()・CEditApp::OnNewEditor()・CEditDoc::OpenFileDialog()・CEditDoc::SaveFileDialog().

変数

CRecent CMRUFolder::m_cRecent [private]

CMRUFolder.h の 71 行で定義されています。

参照元 Add()・ClearAll()・CMRUFolder()・CreateMenu()・GetPath()・GetPathList()・Length()・~CMRUFolder().

struct DLLSHAREDATA* CMRUFolder::m_pShareData [protected]

CMRUFolder.h の 68 行で定義されています。

参照元 CMRUFolder()・CreateMenu().

このクラスの説明は次のファイルから生成されました:
  • CMRUFolder.h
  • CMRUFolder.cpp
Sakura-Editorに対してSat Oct 27 02:35:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMRUFolder メンバ一覧

これは全メンバの一覧です。CMRUFolder継承メンバも含んでいます。

Add(const char *pszFolder) | CMRUFolder |
ClearAll() | CMRUFolder |
CMRUFolder() | CMRUFolder |
CreateMenu(class CMenuDrawer *pCMenuDrawer) | CMRUFolder |
DestroyMenu(HMENU hMenu) | CMRUFolder |
GetPath(int num) | CMRUFolder |
GetPathList(char **ppszMRU) | CMRUFolder |
Length() | CMRUFolder |
m_cRecent | CMRUFolder | [private]
m_pShareData | CMRUFolder | [protected]
~CMRUFolder() | CMRUFolder |

Sakura-Editorに対してSat Oct 27 02:35:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CMutex

  • 構成
  • クラス階層
  • 構成メンバ

クラス CMutex

#include <CMutex.h>

すべてのメンバ一覧

Public メソッド

CMutex (BOOL bInitialOwner, LPCTSTR pszName, LPSECURITY_ATTRIBUTES psa=NULL)
~CMutex ()
BOOL | Lock (DWORD dwTimeout=INFINITE)
BOOL | Unlock ()
operator HANDLE () const

Protected 変数

HANDLE | m_hObj

説明

ミューテックスを扱うクラス
日付:
2007.07.05 ryoji 新規作成

CMutex.h の 39 行で定義されています。

コンストラクタとデストラクタ

CMutex::CMutex | ( | BOOL | bInitialOwner,
 |  | LPCTSTR | pszName,
 |  | LPSECURITY_ATTRIBUTES | psa = NULL
 | ) | [inline]

CMutex.h の 42 行で定義されています。

参照先 m_hObj.

CMutex::~CMutex ( ) [inline]

CMutex.h の 46 行で定義されています。

参照先 m_hObj・NULL.

関数

BOOL CMutex::Lock ( DWORD dwTimeout = INFINITE ) [inline]

CMutex.h の 54 行で定義されています。

参照先 FALSE・m_hObj・TRUE.

CMutex::operator HANDLE ( ) const [inline]

CMutex.h の 66 行で定義されています。

参照先 m_hObj.

BOOL CMutex::Unlock ( ) [inline]

CMutex.h の 62 行で定義されています。

参照先 m_hObj.

変数

HANDLE CMutex::m_hObj [protected]

CMutex.h の 68 行で定義されています。

参照元 CMutex()・Lock()・operator HANDLE()・Unlock()・~CMutex().

このクラスの説明は次のファイルから生成されました:
  • CMutex.h
Sakura-Editorに対してSat Oct 27 02:35:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CMutex メンバ一覧

これは全メンバの一覧です。CMutex継承メンバも含んでいます。

CMutex(BOOL bInitialOwner, LPCTSTR pszName, LPSECURITY_ATTRIBUTES psa=NULL) | CMutex | [inline]
Lock(DWORD dwTimeout=INFINITE) | CMutex | [inline]
m_hObj | CMutex | [protected]
operator HANDLE() const | CMutex | [inline]
Unlock() | CMutex | [inline]
~CMutex() | CMutex | [inline]

Sakura-Editorに対してSat Oct 27 02:35:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CNormalProcess

  • 構成
  • クラス階層
  • 構成メンバ

クラス CNormalProcess

エディタプロセスクラス [詳細]

#include <CNormalProcess.h>

CNormalProcessに対する継承グラフ

[凡例]
CNormalProcessのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CNormalProcess (HINSTANCE hInstance, LPSTR lpCmdLine)
virtual | ~CNormalProcess ()

Public 変数

CMigemo m_cMigemo

Protected メソッド

CNormalProcess ()
virtual bool | Initialize ()
エディタプロセスを初期化する
virtual bool | MainLoop ()
エディタプロセスのメッセージループ
virtual void | Terminate ()
エディタプロセスを終了する
HANDLE | GetInitializeMutex () const
Mutex(プロセス初期化の目印)を取得する

Private 変数

CEditWnd * m_pcEditWnd

説明

エディタプロセスクラス

エディタプロセスはCEditWndクラスのインスタンスを作る。

CNormalProcess.h の 30 行で定義されています。

コンストラクタとデストラクタ

CNormalProcess::CNormalProcess | ( | HINSTANCE | hInstance,
 |  | LPSTR | lpCmdLine
 | ) | [inline]

CNormalProcess.h の 32 行で定義されています。

CNormalProcess::~CNormalProcess ( ) [virtual]

デストラクタ

日付:
2002/2/3 aroka ヘッダから移動

CNormalProcess.cpp の 318 行で定義されています。

参照先 m_pcEditWnd.

CNormalProcess::CNormalProcess ( ) [protected]

関数

HANDLE CNormalProcess::GetInitializeMutex ( ) const [protected]

Mutex(プロセス初期化の目印)を取得する

多数同時に起動するとウィンドウが表に出てこないことがある。

日付:
2002/2/8 aroka Initializeから移動
戻り値:
Mutex | のハンドルを返す
失敗した時はリリースしてから | NULL を返す

CNormalProcess.cpp の 335 行で定義されています。

参照先 GSTR_APPNAME・GSTR_MUTEX_SAKURA_INIT・MY_RUNNINGTIMER・MYMESSAGEBOX・NULL・TRUE.

参照元 Initialize().

bool CNormalProcess::Initialize ( ) [protected, virtual]

エディタプロセスを初期化する

CEditWndを作成する。

作者:
aroka
日付:
2002/01/07

2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2004.05.13 Moca CEditWnd::Create()に失敗した場合にfalseを返すように．

2007.06.26 ryoji グループIDを指定して編集ウィンドウを作成する

CProcessを再定義しています。

CNormalProcess.cpp の 47 行で定義されています。

参照先 ActivateFrameWindow()・FALSE・CCommandLine::GetFileInfo()・GetInitializeMutex()・CProcess::Initialize()・CCommandLine::Instance()・CShareData::IsPathOpened()・CProcess::m_cShareData・FileInfo::m_nCharCode・FileInfo::m_nX・FileInfo::m_nY・CProcess::m_pShareData・FileInfo::m_szPath・MY_RUNNINGTIMER・MYWM_GETCARETPOS・MYWM_SETCARETPOS・NULL.

bool CNormalProcess::MainLoop ( ) [protected, virtual]

エディタプロセスのメッセージループ

作者:
aroka
日付:
2002/01/07

CProcessを実装しています。

CNormalProcess.cpp の 291 行で定義されています。

参照先 CProcess::m_hWnd・m_pcEditWnd・CEditWnd::MessageLoop()・NULL.

void CNormalProcess::Terminate ( ) [protected, virtual]

エディタプロセスを終了する

作者:
aroka
日付:
2002/01/07 こいつはなにもしない。後始末はdtorで。

CProcessを実装しています。

CNormalProcess.cpp の 307 行で定義されています。

変数

CMigemo CNormalProcess::m_cMigemo

CNormalProcess.h の 38 行で定義されています。

CEditWnd* CNormalProcess::m_pcEditWnd [private]

CNormalProcess.h の 48 行で定義されています。

参照元 MainLoop()・~CNormalProcess().

このクラスの説明は次のファイルから生成されました:
  • CNormalProcess.h
  • CNormalProcess.cpp
Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CNormalProcess メンバ一覧

これは全メンバの一覧です。CNormalProcess継承メンバも含んでいます。

CNormalProcess(HINSTANCE hInstance, LPSTR lpCmdLine) | CNormalProcess | [inline]
CNormalProcess() | CNormalProcess | [protected]
CProcess(HINSTANCE hInstance, LPSTR lpCmdLine) | CProcess |
CProcess() | CProcess | [protected]
GetInitializeMutex() const | CNormalProcess | [protected]
Initialize() | CNormalProcess | [protected, virtual]
m_cMigemo | CNormalProcess |
m_CommandLine | CProcess | [protected]
m_cShareData | CProcess | [protected]
m_hInstance | CProcess | [protected]
m_hWnd | CProcess | [protected]
m_pcEditWnd | CNormalProcess | [private]
m_pShareData | CProcess | [protected]
MainLoop() | CNormalProcess | [protected, virtual]
Run() | CProcess |
Terminate() | CNormalProcess | [protected, virtual]
~CNormalProcess() | CNormalProcess | [virtual]
~CProcess() | CProcess | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス COleLibrary

  • 構成
  • クラス階層
  • 構成メンバ

クラス COleLibrary

#include <CDropTarget.h>

すべてのメンバ一覧

Public メソッド

~COleLibrary ()

Private メソッド

COleLibrary ()
void | Initialize ()
void | UnInitialize ()

Private 変数

DWORD | m_dwCount

フレンド

class | CYbInterfaceBase

説明

CDropTarget.h の 27 行で定義されています。

コンストラクタとデストラクタ

COleLibrary::COleLibrary ( ) [private]

CDropTarget.cpp の 54 行で定義されています。

COleLibrary::~COleLibrary ( )

CDropTarget.cpp の 58 行で定義されています。

参照先 m_dwCount.

関数

void COleLibrary::Initialize ( ) [private]

CDropTarget.cpp の 66 行で定義されています。

参照先 m_dwCount・NULL.

参照元 CYbInterfaceBase::CYbInterfaceBase().

void COleLibrary::UnInitialize ( ) [private]

CDropTarget.cpp の 74 行で定義されています。

参照先 m_dwCount.

参照元 CYbInterfaceBase::~CYbInterfaceBase().

フレンドと関連する関数

friend class CYbInterfaceBase [friend]

CDropTarget.h の 29 行で定義されています。

変数

DWORD COleLibrary::m_dwCount [private]

CDropTarget.h の 31 行で定義されています。

参照元 Initialize()・UnInitialize()・~COleLibrary().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COleLibrary メンバ一覧

これは全メンバの一覧です。COleLibrary継承メンバも含んでいます。

COleLibrary() | COleLibrary | [private]
CYbInterfaceBase class | COleLibrary | [friend]
Initialize() | COleLibrary | [private]
m_dwCount | COleLibrary | [private]
UnInitialize() | COleLibrary | [private]
~COleLibrary() | COleLibrary |

Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 ColorAttributeData_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ColorAttributeData_t

#include <global.h>

すべてのメンバ一覧

Public 変数

char * | szName
unsigned int | fAttribute

説明

global.h の 423 行で定義されています。

変数

unsigned int ColorAttributeData_t::fAttribute

global.h の 425 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new().

char* ColorAttributeData_t::szName

global.h の 424 行で定義されています。

参照元 GetColorNameByIndex().

この構造体の説明は次のファイルから生成されました:
  • global.h
Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ColorAttributeData_t メンバ一覧

これは全メンバの一覧です。ColorAttributeData_t継承メンバも含んでいます。

fAttribute | ColorAttributeData_t
szName | ColorAttributeData_t

Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 ColorInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ColorInfo

色設定 [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

int | m_nColorIdx
BOOL | m_bDisp
BOOL | m_bFatFont
BOOL | m_bUnderLine
COLORREF | m_colTEXT
COLORREF | m_colBACK
char | m_szName [32]
char | m_cReserved [60]

説明

色設定

CShareData.h の 195 行で定義されています。

変数

BOOL ColorInfo::m_bDisp

CShareData.h の 197 行で定義されています。

参照元 CEditView::CaretUnderLineOFF()・CEditView::CaretUnderLineON()・CEditView::Create()・CEditView::DetectWidthOfLineNumberArea()・CPropTypes::DispatchEvent_p3_new()・CEditView::DispLineNumber()・CEditView::DispRuler()・CEditView::DrawBracketPair()・CPropTypes::DrawColorListItem()・CEditView::OnChangeSetting()・CEditView::OnLBUTTONDBLCLK()・CEditView::OnMOUSEMOVE()・CPropTypes::RearrangeKeywordSet()・CEditView::SetBracketPairPos()・CEditView::SetCurrentColor()・CLayoutMgr::SetLayoutInfo().

BOOL ColorInfo::m_bFatFont

CShareData.h の 198 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CEditView::DispEOF()・CEditView::DispLineNew()・CEditView::DispVerticalLines()・CPropTypes::DrawColorListItem()・CPropTypes::RearrangeKeywordSet()・CEditView::SetCurrentColor().

BOOL ColorInfo::m_bUnderLine

CShareData.h の 199 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CEditView::DispEOF()・CEditView::DispLineNew()・CEditView::DispVerticalLines()・CPropTypes::DrawColorListItem()・CPropTypes::RearrangeKeywordSet()・CEditView::SetCurrentColor().

COLORREF ColorInfo::m_colBACK

CShareData.h の 201 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CEditView::DispEOF()・CEditView::DispLineNew()・CEditView::DispVerticalLines()・CPropTypes::DoPropertySheet()・CPropTypes::DrawColorListItem()・CEditView::OnPaint()・CDlgSameColor::OnSelChangeListColors()・CPropTypes::RearrangeKeywordSet()・CEditView::SetCurrentColor().

COLORREF ColorInfo::m_colTEXT

CShareData.h の 200 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CEditView::DispEOF()・CEditView::DispLineNew()・CEditView::DispVerticalLines()・CPropTypes::DoPropertySheet()・CPropTypes::DrawColorListItem()・CDlgSameColor::OnBnClicked()・CDlgSameColor::OnInitDialog()・CEditView::OnPaint()・CDlgSameColor::OnSelChangeListColors()・CPropTypes::RearrangeKeywordSet()・CEditView::SetCurrentColor().

char ColorInfo::m_cReserved[60]

CShareData.h の 203 行で定義されています。

int ColorInfo::m_nColorIdx

CShareData.h の 196 行で定義されています。

参照元 CPropTypes::DrawColorListItem()・CPropTypes::SetData_Regex().

char ColorInfo::m_szName[32]

CShareData.h の 202 行で定義されています。

参照元 CPropTypes::DrawColorListItem()・CPropTypes::GetData_Regex()・CDlgSameColor::OnSelChangeListColors()・CPropTypes::SetData_Regex().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ColorInfo メンバ一覧

これは全メンバの一覧です。ColorInfo継承メンバも含んでいます。

m_bDisp | ColorInfo
m_bFatFont | ColorInfo
m_bUnderLine | ColorInfo
m_colBACK | ColorInfo
m_colTEXT | ColorInfo
m_cReserved | ColorInfo
m_nColorIdx | ColorInfo
m_szName | ColorInfo

Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 ColorInfoIni

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ColorInfoIni

色設定(保存用) [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

const char * | m_pszName
BOOL | m_bDisp
BOOL | m_bFatFont
BOOL | m_bUnderLine
COLORREF | m_colTEXT
COLORREF | m_colBACK

説明

色設定(保存用)

CShareData.h の 207 行で定義されています。

変数

BOOL ColorInfoIni::m_bDisp

CShareData.h の 209 行で定義されています。

BOOL ColorInfoIni::m_bFatFont

CShareData.h の 210 行で定義されています。

BOOL ColorInfoIni::m_bUnderLine

CShareData.h の 211 行で定義されています。

COLORREF ColorInfoIni::m_colBACK

CShareData.h の 213 行で定義されています。

COLORREF ColorInfoIni::m_colTEXT

CShareData.h の 212 行で定義されています。

const char* ColorInfoIni::m_pszName

CShareData.h の 208 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ColorInfoIni メンバ一覧

これは全メンバの一覧です。ColorInfoIni継承メンバも含んでいます。

m_bDisp | ColorInfoIni
m_bFatFont | ColorInfoIni
m_bUnderLine | ColorInfoIni
m_colBACK | ColorInfoIni
m_colTEXT | ColorInfoIni
m_pszName | ColorInfoIni

Sakura-Editorに対してSat Oct 27 02:35:37 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 Common

  • 構成
  • クラス階層
  • 構成メンバ

構造体 Common

共通設定 [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public メソッド

int | GetCaretType (void) const
void | SetCaretType (const int f)
int | GetBackupType (void) const
void | SetBackupType (int n)
bool | GetBackupOpt (int flag) const
void | SetBackupOpt (int flag, bool value)
int | GetBackupCount (void) const
void | SetBackupCount (int value)
int | GetBackupExtChar (void) const
void | SetBackupExtChar (int value)
bool | IsAutoBackupEnabled (void) const
void | EnableAutoBackup (bool flag)
int | GetAutoBackupInterval (void) const
void | SetAutoBackupInterval (int i)
int | GetBackupTypeAdv (void) const
void | SetBackupTypeAdv (int n)
bool | GetRestoreCurPosition (void) const
void | SetRestoreCurPosition (bool i)
bool | GetRestoreBookmarks (void) const
void | SetRestoreBookmarks (bool i)
bool | GetAutoMIMEdecode (void) const
void | SetAutoMIMEdecode (bool i)
bool | GetQueryIfCodeChange (void) const
void | SetQueryIfCodeChange (bool i)
bool | GetAlertIfFileNotExist (void) const
void | SetAlertIfFileNotExist (bool i)

Public 変数

int | m_nCaretType
int | m_bIsINSMode
int | m_bIsFreeCursorMode
BOOL | m_bStopsBothEndsWhenSearchWord
BOOL | m_bStopsBothEndsWhenSearchParagraph
BOOL | m_bRestoreCurPosition
BOOL | m_bRestoreBookmarks
int | m_bAddCRLFWhenCopy
int | m_nRepeatedScrollLineNum
BOOL | m_nRepeatedScroll_Smooth
BOOL | m_bCloseAllConfirm
BOOL | m_bExitConfirm
int | m_bRegularExp
int | m_bLoHiCase
int | m_bWordOnly
int | m_bConsecutiveAll
int | m_bNOTIFYNOTFOUND
int | m_bSelectedArea
int | m_bGrepSubFolder
BOOL | m_bGrepOutputLine
int | m_nGrepOutputStyle
int | m_bGrepDefaultFolder
int | m_nGrepCharSet
int | m_bGrepRealTimeView
BOOL | m_bCaretTextForSearch
char | m_szRegexpLib [_MAX_PATH]
BOOL | m_bGTJW_RETURN
BOOL | m_bGTJW_LDBLCLK
LOGFONT | m_lf
BOOL | m_bFontIs_FIXED_PITCH
BOOL | m_bBackUp
BOOL | m_bBackUpDialog
BOOL | m_bBackUpFolder
char | m_szBackUpFolder [_MAX_PATH]
int | m_nBackUpType
int | m_nBackUpType_Opt1
int | m_nBackUpType_Opt2
int | m_nBackUpType_Opt3
int | m_nBackUpType_Opt4
int | m_nBackUpType_Opt5
int | m_nBackUpType_Opt6
BOOL | m_bBackUpDustBox
BOOL | m_bBackUpPathAdvanced
char | m_szBackUpPathAdvanced [_MAX_PATH]
int | m_nFileShareMode
char | m_szExtHelp [_MAX_PATH]
char | m_szExtHtmlHelp [_MAX_PATH]
LOGFONT | m_lf_kh
BOOL | m_bUseCaretKeyWord
int | m_nToolBarButtonNum
int | m_nToolBarButtonIdxArr [MAX_TOOLBARBUTTONS]
int | m_bToolBarIsFlat
int | m_nMRUArrNum_MAX
int | m_nOPENFOLDERArrNum_MAX
BOOL | m_bDispTOOLBAR
BOOL | m_bDispSTATUSBAR
BOOL | m_bDispFUNCKEYWND
int | m_nFUNCKEYWND_Place
int | m_nFUNCKEYWND_GroupNum
BOOL | m_bDispTabWnd
BOOL | m_bDispTabWndMultiWin
BOOL | m_bTab_RetainEmptyWin
最後の文書が閉じられたとき(無題)を残す
BOOL | m_bTab_CloseOneWin
タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる
char | m_szTabWndCaption [MAX_CAPTION_CONF_LEN]
BOOL | m_bSameTabWidth
BOOL | m_bDispTabIcon
BOOL | m_bSortTabList
BOOL | m_bTab_ListFull
BOOL | m_bChgWndByWheel
BOOL | m_bSplitterWndHScroll
BOOL | m_bSplitterWndVScroll
char | m_szCustMenuNameArr [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_NAME_LEN+1]
int | m_nCustMenuItemNumArr [MAX_CUSTOM_MENU]
int | m_nCustMenuItemFuncArr [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS]
char | m_nCustMenuItemKeyArr [MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS]
char | m_szMidashiKigou [256]
char | m_szInyouKigou [32]
int | m_bUseHokan
int | m_nSaveWindowSize
int | m_nWinSizeType
int | m_nWinSizeCX
int | m_nWinSizeCY
int | m_nSaveWindowPos
int | m_nWinPosX
int | m_nWinPosY
BOOL | m_bUseTaskTray
BOOL | m_bStayTaskTray
WORD | m_wTrayMenuHotKeyCode
WORD | m_wTrayMenuHotKeyMods
BOOL | m_bUseOLE_DragDrop
BOOL | m_bUseOLE_DropSource
BOOL | m_bDispExitingDialog
BOOL | m_bEnableUnmodifiedOverwrite
BOOL | m_bJumpSingleClickURL
BOOL | m_bSelectClickedURL
BOOL | m_bGrepExitConfirm
int | m_nRulerHeight
int | m_nRulerBottomSpace
int | m_nRulerType
int | m_nLineNumRightSpace
int | m_nVertLineOffset
BOOL | m_bCopyAndDisablSelection
BOOL | m_bHtmlHelpIsSingle
BOOL | m_bCompareAndTileHorz
BOOL | m_bDropFileAndClose
int | m_nDropFileNumMax
BOOL | m_bCheckFileTimeStamp
BOOL | m_bNotOverWriteCRLF
RECT | m_rcOpenDialog
BOOL | m_bAutoCloseDlgFind
BOOL | m_bScrollBarHorz
BOOL | m_bAutoCloseDlgFuncList
BOOL | m_bAutoCloseDlgReplace
BOOL | m_bSearchAll
BOOL | m_bAutoColmnPaste
BOOL | m_bNoCaretMoveByActivation
BOOL | m_bHokanKey_RETURN
BOOL | m_bHokanKey_TAB
BOOL | m_bHokanKey_RIGHT
BOOL | m_bHokanKey_SPACE
int | m_nDateFormatType
char | m_szDateFormat [MAX_DATETIMEFOREMAT_LEN]
int | m_nTimeFormatType
char | m_szTimeFormat [MAX_DATETIMEFOREMAT_LEN]
BOOL | m_bMenuIcon
BOOL | m_bAutoMIMEdecode
BOOL | m_bQueryIfCodeChange
BOOL | m_bAlertIfFileNotExist
BOOL | m_bMarkUpBlankLineEnable
BOOL | m_bFunclistSetFocusOnJump
char | m_szWindowCaptionActive [MAX_CAPTION_CONF_LEN]
char | m_szWindowCaptionInactive [MAX_CAPTION_CONF_LEN]
char | m_szMigemoDll [_MAX_PATH]
char | m_szMigemoDict [_MAX_PATH]
int | m_bRememberOutlineWindowPos
int | m_widthOutlineWindow
int | m_heightOutlineWindow
int | m_xOutlineWindowPos
int | m_yOutlineWindowPos
BOOL | m_bNoFilterSaveNew
BOOL | m_bNoFilterSaveFile

説明

共通設定

CShareData.h の 357 行で定義されています。

関数

void Common::EnableAutoBackup ( bool flag ) [inline]

CShareData.h の 391 行で定義されています。

参照先 BKUP_AUTO・SetBackupOpt().

参照元 CPropCommon::GetData_p2().

bool Common::GetAlertIfFileNotExist ( void ) const [inline]

CShareData.h の 419 行で定義されています。

参照先 m_bAlertIfFileNotExist.

参照元 CPropCommon::SetData_p2().

int Common::GetAutoBackupInterval ( void ) const [inline]

CShareData.h の 393 行で定義されています。

参照先 m_nBackUpType_Opt3.

参照元 CEditDoc::ReloadAutoSaveParam()・CPropCommon::SetData_p2().

bool Common::GetAutoMIMEdecode ( void ) const [inline]

CShareData.h の 411 行で定義されています。

参照先 m_bAutoMIMEdecode.

参照元 CPropCommon::SetData_p2().

int Common::GetBackupCount ( void ) const [inline]

CShareData.h の 377 行で定義されています。

参照先 m_nBackUpType_Opt2.

int Common::GetBackupExtChar ( void ) const [inline]

CShareData.h の 383 行で定義されています。

参照先 m_nBackUpType_Opt2.

bool Common::GetBackupOpt ( int flag ) const [inline]

CShareData.h の 371 行で定義されています。

参照先 m_nBackUpType_Opt1.

参照元 CEditDoc::FormatBackUpPath()・IsAutoBackupEnabled()・CPropCommon::UpdateBackupFile().

int Common::GetBackupType ( void ) const [inline]

CShareData.h の 368 行で定義されています。

参照先 m_nBackUpType.

参照元 CEditDoc::FormatBackUpPath()・CEditDoc::MakeBackUp()・CPropCommon::SetData_PROP_BACKUP()・CPropCommon::UpdateBackupFile().

int Common::GetBackupTypeAdv ( void ) const [inline]

CShareData.h の 397 行で定義されています。

参照先 m_nBackUpType_Opt4.

int Common::GetCaretType ( void ) const [inline]

CShareData.h の 363 行で定義されています。

参照先 m_nCaretType.

参照元 CPropCommon::SetData_p1().

bool Common::GetQueryIfCodeChange ( void ) const [inline]

CShareData.h の 415 行で定義されています。

参照先 m_bQueryIfCodeChange.

参照元 CPropCommon::SetData_p2().

bool Common::GetRestoreBookmarks ( void ) const [inline]

CShareData.h の 406 行で定義されています。

参照先 m_bRestoreBookmarks.

参照元 CPropCommon::SetData_p2().

bool Common::GetRestoreCurPosition ( void ) const [inline]

CShareData.h の 402 行で定義されています。

参照先 m_bRestoreCurPosition.

参照元 CPropCommon::SetData_p2().

bool Common::IsAutoBackupEnabled ( void ) const [inline]

CShareData.h の 390 行で定義されています。

参照先 BKUP_AUTO・GetBackupOpt().

参照元 CEditDoc::ReloadAutoSaveParam()・CPropCommon::SetData_p2().

void Common::SetAlertIfFileNotExist ( bool i ) [inline]

CShareData.h の 420 行で定義されています。

参照先 m_bAlertIfFileNotExist.

void Common::SetAutoBackupInterval ( int i ) [inline]

CShareData.h の 394 行で定義されています。

参照先 m_nBackUpType_Opt3.

void Common::SetAutoMIMEdecode ( bool i ) [inline]

CShareData.h の 412 行で定義されています。

参照先 m_bAutoMIMEdecode.

void Common::SetBackupCount ( int value ) [inline]

CShareData.h の 378 行で定義されています。

参照先 m_nBackUpType_Opt2.

void Common::SetBackupExtChar ( int value ) [inline]

CShareData.h の 384 行で定義されています。

参照先 m_nBackUpType_Opt2.

void Common::SetBackupOpt | ( | int | flag,
 |  | bool | value
 | ) | [inline]

CShareData.h の 372 行で定義されています。

参照先 m_nBackUpType_Opt1.

参照元 EnableAutoBackup()・CPropCommon::GetData_PROP_BACKUP().

void Common::SetBackupType ( int n ) [inline]

CShareData.h の 369 行で定義されています。

参照先 m_nBackUpType.

参照元 CPropCommon::GetData_PROP_BACKUP().

void Common::SetBackupTypeAdv ( int n ) [inline]

CShareData.h の 398 行で定義されています。

参照先 m_nBackUpType_Opt4.

参照元 CPropCommon::GetData_PROP_BACKUP().

void Common::SetCaretType ( const int f ) [inline]

CShareData.h の 364 行で定義されています。

参照先 m_nCaretType.

参照元 CPropCommon::GetData_p1().

void Common::SetQueryIfCodeChange ( bool i ) [inline]

CShareData.h の 416 行で定義されています。

参照先 m_bQueryIfCodeChange.

void Common::SetRestoreBookmarks ( bool i ) [inline]

CShareData.h の 407 行で定義されています。

参照先 m_bRestoreBookmarks.

void Common::SetRestoreCurPosition ( bool i ) [inline]

CShareData.h の 403 行で定義されています。

参照先 m_bRestoreCurPosition.

変数

int Common::m_bAddCRLFWhenCopy

CShareData.h の 435 行で定義されています。

参照元 CEditView::Command_BASE64DECODE()・CEditView::Command_CUT()・CEditView::Command_UUDECODE()・CEditView::CopySelectedAllLines()・CEditView::GetCurrentTextForSearch()・CPropCommon::GetData_PROP_EDIT()・CEditView::KeyWordHelpSearchDict()・CPropCommon::SetData_PROP_EDIT()・CShareData::ShareData_IO_Common().

BOOL Common::m_bAlertIfFileNotExist

CShareData.h の 575 行で定義されています。

参照元 GetAlertIfFileNotExist()・SetAlertIfFileNotExist().

BOOL Common::m_bAutoCloseDlgFind

CShareData.h の 553 行で定義されています。

参照元 CMacro::AddLParam()・CDlgFind::GetData()・CMacro::HandleCommand()・CDlgFind::OnBnClicked().

BOOL Common::m_bAutoCloseDlgFuncList

CShareData.h の 555 行で定義されています。

参照元 CDlgFuncList::OnBnClicked()・CDlgFuncList::OnJump().

BOOL Common::m_bAutoCloseDlgReplace

CShareData.h の 556 行で定義されています。

参照元 CDlgReplace::GetData().

BOOL Common::m_bAutoColmnPaste

CShareData.h の 558 行で定義されています。

参照元 CEditView::Command_PASTE().

BOOL Common::m_bAutoMIMEdecode

CShareData.h の 573 行で定義されています。

参照元 GetAutoMIMEdecode()・SetAutoMIMEdecode().

BOOL Common::m_bBackUp

CShareData.h の 459 行で定義されています。

参照元 CEditDoc::FileWrite()・CPropCommon::GetData_PROP_BACKUP()・CPropCommon::SetData_PROP_BACKUP()・CShareData::ShareData_IO_Common()・CPropCommon::UpdateBackupFile().

BOOL Common::m_bBackUpDialog

CShareData.h の 460 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP()・CEditDoc::MakeBackUp()・CPropCommon::SetData_PROP_BACKUP()・CShareData::ShareData_IO_Common().

BOOL Common::m_bBackUpDustBox

CShareData.h の 470 行で定義されています。

参照元 CPropCommon::GetData_PROP_BACKUP()・CEditDoc::MakeBackUp()・CPropCommon::UpdateBackupFile().

BOOL Common::m_bBackUpFolder

CShareData.h の 461 行で定義されています。

参照元 CEditDoc::FormatBackUpPath()・CPropCommon::GetData_PROP_BACKUP()・CEditDoc::MakeBackUp()・CShareData::ShareData_IO_Common()・CPropCommon::UpdateBackupFile().

BOOL Common::m_bBackUpPathAdvanced

CShareData.h の 471 行で定義されています。

参照元 CEditDoc::FormatBackUpPath()・CPropCommon::GetData_PROP_BACKUP().

BOOL Common::m_bCaretTextForSearch

CShareData.h の 452 行で定義されています。

参照元 CEditView::GetCurrentTextForSearchDlg()・CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP()・CShareData::ShareData_IO_Common().

BOOL Common::m_bCheckFileTimeStamp

CShareData.h の 550 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

BOOL Common::m_bChgWndByWheel

CShareData.h の 501 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB()・CEditWnd::OnMouseWheel()・CPropCommon::SetData_PROP_TAB().

BOOL Common::m_bCloseAllConfirm

CShareData.h の 438 行で定義されています。

参照元 CEditApp::CloseAllEditor()・CPropCommon::GetData_p1()・CShareData::ShareData_IO_Common().

BOOL Common::m_bCompareAndTileHorz

CShareData.h の 547 行で定義されています。

参照元 CEditView::Command_COMPARE().

int Common::m_bConsecutiveAll

CShareData.h の 443 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::Command_REPLACE_ALL()・CDlgReplace::DoModeless()・CDlgReplace::GetData()・CMacro::HandleCommand()・CShareData::ShareData_IO_Common().

BOOL Common::m_bCopyAndDisablSelection

CShareData.h の 545 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

BOOL Common::m_bDispExitingDialog

CShareData.h の 533 行で定義されています。

参照元 CEditApp::OnDestroy().

BOOL Common::m_bDispFUNCKEYWND

CShareData.h の 487 行で定義されています。

参照元 CEditView::Command_SHOWFUNCKEY()・CPropCommon::GetData_PROP_WIN()・CEditWnd::LayoutFuncKey()・CPropCommon::SetData_PROP_WIN().

BOOL Common::m_bDispSTATUSBAR

CShareData.h の 485 行で定義されています。

参照元 CEditView::Command_SHOWSTATUSBAR()・CPropCommon::GetData_PROP_WIN()・CEditWnd::LayoutStatusBar()・CPropCommon::SetData_PROP_WIN().

BOOL Common::m_bDispTabIcon

CShareData.h の 498 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB()・CTabWnd::GetImageIndex()・CTabWnd::InitImageList()・CTabWnd::LayoutTab()・CPropCommon::SetData_PROP_TAB().

BOOL Common::m_bDispTabWnd

CShareData.h の 491 行で定義されています。

参照元 ActivateFrameWindow()・CTabWnd::AdjustWindowPlacement()・CEditView::Command_BIND_WINDOW()・CEditView::Command_COMPARE()・CEditView::Command_GROUPCLOSE()・CEditView::Command_SHOWTAB()・CEditWnd::Create()・CTabWnd::DrawCloseBtn()・CPropCommon::GetData_PROP_TAB()・CKeyBind::GetDefFuncCode()・CTabWnd::GetNextGroupWnd()・CTabWnd::GetPrevGroupWnd()・CTabWnd::HideOtherWindows()・CEditWnd::LayoutTabBar()・CTabWnd::MoveLeft()・CTabWnd::MoveRight()・CTabWnd::OnLButtonUp()・CTabWnd::OnMouseMove()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CEditApp::OpenNewEditor()・CEditDoc::OpenPropertySheet()・CTabWnd::Separate()・CPropCommon::SetData_PROP_TAB()・CTabWnd::ShowHideWindow()・CEditWnd::WindowTopMost().

BOOL Common::m_bDispTabWndMultiWin

CShareData.h の 492 行で定義されています。

参照元 ActivateFrameWindow()・CTabWnd::AdjustWindowPlacement()・CEditView::Command_BIND_WINDOW()・CEditView::Command_COMPARE()・CEditView::Command_GROUPCLOSE()・CEditView::Command_SHOWTAB()・CEditWnd::Create()・CTabWnd::DrawCloseBtn()・CPropCommon::GetData_PROP_TAB()・CKeyBind::GetDefFuncCode()・CTabWnd::GetNextGroupWnd()・CTabWnd::GetPrevGroupWnd()・CTabWnd::HideOtherWindows()・CTabWnd::OnLButtonUp()・CTabWnd::OnMouseMove()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CEditApp::OpenNewEditor()・CEditDoc::OpenPropertySheet()・CTabWnd::Separate()・CPropCommon::SetData_PROP_TAB()・CTabWnd::ShowHideWindow()・CEditWnd::WindowTopMost().

BOOL Common::m_bDispTOOLBAR

CShareData.h の 484 行で定義されています。

参照元 CEditView::Command_SHOWTOOLBAR()・CPropCommon::GetData_PROP_WIN()・CEditWnd::LayoutToolBar()・CPropCommon::SetData_PROP_WIN().

BOOL Common::m_bDropFileAndClose

CShareData.h の 548 行で定義されています。

参照元 CPropCommon::GetData_p2()・CEditWnd::OnDropFiles()・CPropCommon::SetData_p2().

BOOL Common::m_bEnableUnmodifiedOverwrite

CShareData.h の 534 行で定義されています。

参照元 CEditDoc::FileSave()・CPropCommon::GetData_p2()・CPropCommon::SetData_p2().

BOOL Common::m_bExitConfirm

CShareData.h の 439 行で定義されています。

参照元 CPropCommon::GetData_p1()・CShareData::ShareData_IO_Common()・CEditApp::TerminateApplication().

BOOL Common::m_bFontIs_FIXED_PITCH

CShareData.h の 458 行で定義されています。

参照元 CEditView::Command_BEGIN_BOXSELECT()・CEditView::Command_FONT()・CEditView::Command_PASTEBOX()・CEditWnd::IsFuncEnable().

BOOL Common::m_bFunclistSetFocusOnJump

CShareData.h の 578 行で定義されています。

参照元 CDlgFuncList::OnBnClicked()・CDlgFuncList::OnJump()・CDlgFuncList::OnNotify().

int Common::m_bGrepDefaultFolder

CShareData.h の 449 行で定義されています。

参照元 CShareData::ShareData_IO_Common().

BOOL Common::m_bGrepExitConfirm

CShareData.h の 537 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CEditDoc::OnFileClose()・CPropCommon::SetData_PROP_GREP().

BOOL Common::m_bGrepOutputLine

CShareData.h の 447 行で定義されています。

参照元 CMacro::AddLParam()・CDlgGrep::DoModal()・CDlgGrep::GetData()・CShareData::ShareData_IO_Common().

int Common::m_bGrepRealTimeView

CShareData.h の 451 行で定義されています。

参照元 CEditView::DoGrep()・CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP()・CShareData::ShareData_IO_Common().

int Common::m_bGrepSubFolder

CShareData.h の 446 行で定義されています。

参照元 CMacro::AddLParam()・CDlgGrep::DoModal()・CDlgGrep::GetData()・CShareData::ShareData_IO_Common().

BOOL Common::m_bGTJW_LDBLCLK

CShareData.h の 456 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP()・CShareData::ShareData_IO_Common().

BOOL Common::m_bGTJW_RETURN

CShareData.h の 455 行で定義されています。

参照元 CPropCommon::GetData_PROP_GREP()・CPropCommon::SetData_PROP_GREP()・CShareData::ShareData_IO_Common()・CEditView::TranslateCommand_grep().

BOOL Common::m_bHokanKey_RETURN

CShareData.h の 561 行で定義されています。

参照元 CHokanMgr::DoHokan()・CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

BOOL Common::m_bHokanKey_RIGHT

CShareData.h の 563 行で定義されています。

参照元 CHokanMgr::DoHokan()・CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

BOOL Common::m_bHokanKey_SPACE

CShareData.h の 564 行で定義されています。

参照元 CHokanMgr::DoHokan().

BOOL Common::m_bHokanKey_TAB

CShareData.h の 562 行で定義されています。

参照元 CHokanMgr::DoHokan()・CPropCommon::GetData_p10()・CPropCommon::SetData_p10().

BOOL Common::m_bHtmlHelpIsSingle

CShareData.h の 546 行で定義されています。

参照元 CPropCommon::GetData_p10()・CShareData::HTMLHelpIsSingle()・CPropCommon::SetData_p10().

int Common::m_bIsFreeCursorMode

CShareData.h の 428 行で定義されています。

参照元 CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_LINE()・CEditView::Command_WORDLEFT()・CPropCommon::GetData_p1()・CShareData::ShareData_IO_Common().

int Common::m_bIsINSMode

CShareData.h の 427 行で定義されています。

参照元 CEditDoc::CEditDoc()・CEditDoc::Init().

BOOL Common::m_bJumpSingleClickURL

CShareData.h の 535 行で定義されています。

int Common::m_bLoHiCase

CShareData.h の 441 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::ChangeCurRegexp()・CEditView::Command_BOOKMARK_PATTERN()・CEditView::Command_REPLACE()・CDlgGrep::DoModal()・CDlgReplace::DoModeless()・CDlgFind::DoModeless()・CDlgReplace::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CMacro::HandleCommand()・CShareData::ShareData_IO_Common().

BOOL Common::m_bMarkUpBlankLineEnable

CShareData.h の 577 行で定義されています。

参照元 CEditDoc::MakeFuncList_BookMark()・CDlgFuncList::OnBnClicked().

BOOL Common::m_bMenuIcon

CShareData.h の 572 行で定義されています。

参照元 CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CPropCommon::GetData_PROP_WIN()・CMenuDrawer::MyAppendMenu()・CPropCommon::SetData_PROP_WIN().

BOOL Common::m_bNoCaretMoveByActivation

CShareData.h の 559 行で定義されています。

参照元 CPropCommon::GetData_p1().

BOOL Common::m_bNoFilterSaveFile

CShareData.h の 599 行で定義されています。

参照元 CEditDoc::SaveFileDialog()・CPropCommon::SetData_p2().

BOOL Common::m_bNoFilterSaveNew

CShareData.h の 598 行で定義されています。

参照元 CEditDoc::SaveFileDialog()・CPropCommon::SetData_p2().

int Common::m_bNOTIFYNOTFOUND

CShareData.h の 444 行で定義されています。

参照元 CMacro::AddLParam()・CDlgReplace::DoModeless()・CDlgFind::DoModeless()・CDlgReplace::GetData()・CDlgFind::GetData()・CMacro::HandleCommand()・CDlgDiff::SetData()・CShareData::ShareData_IO_Common().

BOOL Common::m_bNotOverWriteCRLF

CShareData.h の 551 行で定義されています。

参照元 CEditView::Command_IME_CHAR()・CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

BOOL Common::m_bQueryIfCodeChange

CShareData.h の 574 行で定義されています。

参照元 GetQueryIfCodeChange()・CEditDoc::OpenFile()・SetQueryIfCodeChange().

int Common::m_bRegularExp

CShareData.h の 440 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::ChangeCurRegexp()・CEditView::Command_BOOKMARK_PATTERN()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CDlgGrep::DoModal()・CDlgReplace::DoModeless()・CDlgFind::DoModeless()・CDlgReplace::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CMacro::HandleCommand()・CEditView::ISearchEnter()・CShareData::ShareData_IO_Common().

int Common::m_bRememberOutlineWindowPos

CShareData.h の 591 行で定義されています。

参照元 CDlgFuncList::OnBnClicked()・CDlgFuncList::OnDestroy()・CDlgFuncList::OnInitDialog().

BOOL Common::m_bRestoreBookmarks

CShareData.h の 433 行で定義されています。

参照元 GetRestoreBookmarks()・SetRestoreBookmarks()・CShareData::ShareData_IO_Common().

BOOL Common::m_bRestoreCurPosition

CShareData.h の 432 行で定義されています。

参照元 GetRestoreCurPosition()・SetRestoreCurPosition()・CShareData::ShareData_IO_Common().

BOOL Common::m_bSameTabWidth

CShareData.h の 497 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB()・CTabWnd::LayoutTab()・CPropCommon::SetData_PROP_TAB().

BOOL Common::m_bScrollBarHorz

CShareData.h の 554 行で定義されています。

参照元 CEditView::CreateScrollBar()・CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

BOOL Common::m_bSearchAll

CShareData.h の 557 行で定義されています。

参照元 CMacro::AddLParam()・CDlgReplace::GetData()・CDlgFind::GetData()・CMacro::HandleCommand()・CDlgDiff::SetData()・CShareData::ShareData_IO_Common().

BOOL Common::m_bSelectClickedURL

CShareData.h の 536 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT()・CPropCommon::SetData_PROP_EDIT().

int Common::m_bSelectedArea

CShareData.h の 445 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::Command_REPLACE_ALL()・CDlgReplace::DoModeless()・CDlgReplace::GetData()・CMacro::HandleCommand()・CShareData::ShareData_IO_Common().

BOOL Common::m_bSortTabList

CShareData.h の 499 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

BOOL Common::m_bSplitterWndHScroll

CShareData.h の 503 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN()・CEditView::SyncScrollH().

BOOL Common::m_bSplitterWndVScroll

CShareData.h の 504 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN()・CEditView::SyncScrollV().

BOOL Common::m_bStayTaskTray

CShareData.h の 524 行で定義されています。

参照元 CPropCommon::GetData_p1().

BOOL Common::m_bStopsBothEndsWhenSearchParagraph

CShareData.h の 430 行で定義されています。

参照元 CPropCommon::GetData_p1()・CShareData::ShareData_IO_Common().

BOOL Common::m_bStopsBothEndsWhenSearchWord

CShareData.h の 429 行で定義されています。

参照元 CEditView::Command_WORDLEFT()・CEditView::Command_WORDRIGHT()・CPropCommon::GetData_p1()・CShareData::ShareData_IO_Common().

BOOL Common::m_bTab_CloseOneWin

タブモードでもウィンドウの閉じるボタンで現在のファイルのみ閉じる

CShareData.h の 494 行で定義されています。

参照元 CTabWnd::DrawCloseBtn()・CPropCommon::GetData_PROP_TAB()・CKeyBind::GetDefFuncCode()・CTabWnd::OnLButtonUp()・CTabWnd::OnMouseMove()・CPropCommon::SetData_PROP_TAB().

BOOL Common::m_bTab_ListFull

CShareData.h の 500 行で定義されています。

参照元 CTabWnd::TabListMenu().

BOOL Common::m_bTab_RetainEmptyWin

最後の文書が閉じられたとき(無題)を残す

CShareData.h の 493 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

int Common::m_bToolBarIsFlat

CShareData.h の 481 行で定義されています。

参照元 CEditWnd::CreateToolBar()・CShareData::InitToolButtons()・CShareData::ShareData_IO_Toolbar().

BOOL Common::m_bUseCaretKeyWord

CShareData.h の 477 行で定義されています。

参照元 CEditView::Command_ToggleKeySearch().

int Common::m_bUseHokan

CShareData.h の 513 行で定義されています。

参照元 CEditView::Command_HOKAN()・CHokanMgr::DoHokan()・CHokanMgr::KeyProc()・CEditView::PostprocessCommand_hokan()・CEditView::ShowHokanMgr().

BOOL Common::m_bUseOLE_DragDrop

CShareData.h の 529 行で定義されています。

参照元 CEditView::DragEnter()・CPropCommon::GetData_PROP_EDIT()・CEditView::OnMOUSEMOVE()・CEditView::OnTimer()・CPropCommon::SetData_PROP_EDIT().

BOOL Common::m_bUseOLE_DropSource

CShareData.h の 530 行で定義されています。

参照元 CPropCommon::GetData_PROP_EDIT()・CEditView::OnMOUSEMOVE()・CPropCommon::SetData_PROP_EDIT().

BOOL Common::m_bUseTaskTray

CShareData.h の 523 行で定義されています。

参照元 CEditApp::CreateTrayIcon()・CPropCommon::GetData_p1().

int Common::m_bWordOnly

CShareData.h の 442 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::ChangeCurRegexp()・CEditView::Command_BOOKMARK_PATTERN()・CDlgGrep::DoModal()・CDlgReplace::DoModeless()・CDlgFind::DoModeless()・CDlgReplace::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CMacro::HandleCommand()・CShareData::ShareData_IO_Common().

int Common::m_heightOutlineWindow

CShareData.h の 593 行で定義されています。

参照元 CDlgFuncList::OnDestroy()・CDlgFuncList::OnInitDialog().

LOGFONT Common::m_lf

CShareData.h の 457 行で定義されています。

参照元 CEditView::CEditView()・CEditView::Command_FONT()・CEditView::SetIMECompFormFont()・CShareData::ShareData_IO_Font().

LOGFONT Common::m_lf_kh

CShareData.h の 476 行で定義されています。

参照元 CTipWnd::Create()・CPropCommon::DispatchEvent_p10()・CEditDoc::OpenPropertySheet().

int Common::m_nBackUpType

CShareData.h の 463 行で定義されています。

参照元 GetBackupType()・SetBackupType().

int Common::m_nBackUpType_Opt1

CShareData.h の 464 行で定義されています。

参照元 GetBackupOpt()・SetBackupOpt().

int Common::m_nBackUpType_Opt2

CShareData.h の 465 行で定義されています。

参照元 GetBackupCount()・GetBackupExtChar()・SetBackupCount()・SetBackupExtChar().

int Common::m_nBackUpType_Opt3

CShareData.h の 466 行で定義されています。

参照元 GetAutoBackupInterval()・SetAutoBackupInterval().

int Common::m_nBackUpType_Opt4

CShareData.h の 467 行で定義されています。

参照元 GetBackupTypeAdv()・SetBackupTypeAdv().

int Common::m_nBackUpType_Opt5

CShareData.h の 468 行で定義されています。

int Common::m_nBackUpType_Opt6

CShareData.h の 469 行で定義されています。

int Common::m_nCaretType

CShareData.h の 426 行で定義されています。

参照元 GetCaretType()・SetCaretType()・CShareData::ShareData_IO_Common().

int Common::m_nCustMenuItemFuncArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS]

CShareData.h の 509 行で定義されています。

参照元 CEditView::Command_CUSTMENU()・CEditView::CreatePopUpMenu_R()・CPropCommon::DispatchEvent_p8()・CShareData::InitPopupMenu()・CShareData::ShareData_IO_CustMenu().

char Common::m_nCustMenuItemKeyArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_ITEMS]

CShareData.h の 510 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8()・CShareData::InitPopupMenu()・CShareData::ShareData_IO_CustMenu().

int Common::m_nCustMenuItemNumArr[MAX_CUSTOM_MENU]

CShareData.h の 508 行で定義されています。

参照元 CEditView::Command_CUSTMENU()・CEditView::CreatePopUpMenu_R()・CPropCommon::DispatchEvent_p8()・CShareData::InitPopupMenu()・CShareData::ShareData_IO_CustMenu().

int Common::m_nDateFormatType

CShareData.h の 567 行で定義されています。

参照元 CPropCommon::ChangeDateExample()・CPropCommon::GetData_p9()・CShareData::MyGetDateFormat()・CPropCommon::SetData_p9().

int Common::m_nDropFileNumMax

CShareData.h の 549 行で定義されています。

参照元 CPropCommon::GetData_p2()・CEditWnd::OnDropFiles()・CPropCommon::SetData_p2().

int Common::m_nFileShareMode

CShareData.h の 473 行で定義されています。

参照元 CEditDoc::CheckFileTimeStamp()・CEditDoc::DoFileLock()・CPropCommon::GetData_p2()・CEditDoc::OnChangeSetting()・CPropCommon::SetData_p2().

int Common::m_nFUNCKEYWND_GroupNum

CShareData.h の 489 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CFuncKeyWnd::Open()・CPropCommon::SetData_PROP_WIN().

int Common::m_nFUNCKEYWND_Place

CShareData.h の 488 行で定義されています。

参照元 CEditView::CreateScrollBar()・CEditWnd::DestroyStatusBar()・CSplitterWnd::DoSplit()・CPropCommon::GetData_PROP_WIN()・CEditWnd::LayoutFuncKey()・CPropCommon::SetData_PROP_WIN().

int Common::m_nGrepCharSet

CShareData.h の 450 行で定義されています。

参照元 CMacro::AddLParam()・CDlgGrep::DoModal()・CDlgGrep::GetData()・CShareData::ShareData_IO_Common().

int Common::m_nGrepOutputStyle

CShareData.h の 448 行で定義されています。

参照元 CMacro::AddLParam()・CDlgGrep::DoModal()・CDlgGrep::GetData()・CShareData::ShareData_IO_Common().

int Common::m_nLineNumRightSpace

CShareData.h の 542 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CEditView::OnPaint()・CPropCommon::SetData_PROP_WIN().

int Common::m_nMRUArrNum_MAX

CShareData.h の 482 行で定義されています。

参照元 CRecent::EasyCreate()・CPropCommon::GetData_p1()・CShareData::Init().

int Common::m_nOPENFOLDERArrNum_MAX

CShareData.h の 483 行で定義されています。

参照元 CRecent::EasyCreate()・CPropCommon::GetData_p1()・CShareData::Init().

BOOL Common::m_nRepeatedScroll_Smooth

CShareData.h の 437 行で定義されています。

参照元 CEditView::Command_DOWN()・CEditView::Command_UP()・CPropCommon::GetData_p1()・CShareData::ShareData_IO_Common().

int Common::m_nRepeatedScrollLineNum

CShareData.h の 436 行で定義されています。

参照元 CEditView::Command_DOWN()・CEditView::Command_UP()・CPropCommon::GetData_p1()・CEditView::OnVScroll()・CShareData::ShareData_IO_Common().

int Common::m_nRulerBottomSpace

CShareData.h の 540 行で定義されています。

参照元 CEditView::CEditView()・CEditView::Create()・CPropCommon::GetData_PROP_WIN()・CEditView::OnChangeSetting()・CPropCommon::SetData_PROP_WIN().

int Common::m_nRulerHeight

CShareData.h の 539 行で定義されています。

参照元 CEditView::CEditView()・CEditView::Create()・CPropCommon::GetData_PROP_WIN()・CEditView::OnChangeSetting()・CPropCommon::SetData_PROP_WIN().

int Common::m_nRulerType

CShareData.h の 541 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

int Common::m_nSaveWindowPos

CShareData.h の 519 行で定義されています。

参照元 CEditWnd::Create()・CPropCommon::DispatchEvent_PROP_WIN().

int Common::m_nSaveWindowSize

CShareData.h の 515 行で定義されています。

参照元 CEditWnd::Create()・CPropCommon::DispatchEvent_PROP_WIN()・CEditWnd::OnSize().

int Common::m_nTimeFormatType

CShareData.h の 569 行で定義されています。

参照元 CPropCommon::ChangeTimeExample()・CShareData::MyGetTimeFormat()・CPropCommon::SetData_p9().

int Common::m_nToolBarButtonIdxArr[MAX_TOOLBARBUTTONS]

CShareData.h の 480 行で定義されています。

参照元 CEditWnd::CreateToolBar()・CPropCommon::GetData_PROP_TOOLBAR()・CShareData::InitToolButtons()・CEditWnd::OnToolbarTimer()・CPropCommon::SetData_PROP_TOOLBAR()・CShareData::ShareData_IO_Toolbar().

int Common::m_nToolBarButtonNum

CShareData.h の 479 行で定義されています。

参照元 CEditWnd::CreateToolBar()・CPropCommon::GetData_PROP_TOOLBAR()・CShareData::InitToolButtons()・CEditWnd::OnToolbarTimer()・CPropCommon::SetData_PROP_TOOLBAR()・CShareData::ShareData_IO_Toolbar().

int Common::m_nVertLineOffset

CShareData.h の 543 行で定義されています。

参照元 CEditView::DispVerticalLines().

int Common::m_nWinPosX

CShareData.h の 520 行で定義されています。

参照元 CEditWnd::Create()・CPropCommon::DispatchEvent_PROP_WIN().

int Common::m_nWinPosY

CShareData.h の 521 行で定義されています。

参照元 CEditWnd::Create()・CPropCommon::DispatchEvent_PROP_WIN().

int Common::m_nWinSizeCX

CShareData.h の 517 行で定義されています。

参照元 CEditWnd::Create()・CPropCommon::DispatchEvent_PROP_WIN()・CEditWnd::OnSize().

int Common::m_nWinSizeCY

CShareData.h の 518 行で定義されています。

参照元 CEditWnd::Create()・CPropCommon::DispatchEvent_PROP_WIN()・CEditWnd::OnSize().

int Common::m_nWinSizeType

CShareData.h の 516 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_WIN()・CEditWnd::OnSize().

RECT Common::m_rcOpenDialog

CShareData.h の 552 行で定義されています。

参照元 OFNHookProc()・OFNHookProcMain().

char Common::m_szBackUpFolder[_MAX_PATH]

CShareData.h の 462 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CEditDoc::FormatBackUpPath()・CPropCommon::GetData_PROP_BACKUP()・CEditDoc::MakeBackUp()・CShareData::ShareData_IO_Common().

char Common::m_szBackUpPathAdvanced[_MAX_PATH]

CShareData.h の 472 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_BACKUP()・CPropCommon::GetData_PROP_BACKUP().

char Common::m_szCustMenuNameArr[MAX_CUSTOM_MENU][MAX_CUSTOM_MENU_NAME_LEN+1]

CShareData.h の 507 行で定義されています。

参照元 CPropCommon::DispatchEvent_p8()・CFuncLookup::Pos2FuncName()・CShareData::ShareData_IO_CustMenu().

char Common::m_szDateFormat[MAX_DATETIMEFOREMAT_LEN]

CShareData.h の 568 行で定義されています。

参照元 CPropCommon::ChangeDateExample()・CPropCommon::DispatchEvent_p9()・CShareData::MyGetDateFormat()・CPropCommon::SetData_p9().

char Common::m_szExtHelp[_MAX_PATH]

CShareData.h の 474 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CShareData::ExtWinHelpIsSet()・CPropCommon::GetData_p10()・CShareData::GetExtWinHelp()・CPropCommon::SetData_p10().

char Common::m_szExtHtmlHelp[_MAX_PATH]

CShareData.h の 475 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CShareData::ExtHTMLHelpIsSet()・CPropCommon::GetData_p10()・CShareData::GetExtHTMLHelp()・CPropCommon::SetData_p10().

char Common::m_szInyouKigou[32]

CShareData.h の 512 行で定義されています。

参照元 CEditView::Command_COPYLINESASPASSAGE()・CEditView::Command_SET_QUOTESTRING()・CPropCommon::DispatchEvent_p9()・CPropCommon::GetData_p9()・CPropCommon::SetData_p9().

char Common::m_szMidashiKigou[256]

CShareData.h の 511 行で定義されています。

参照元 CPropCommon::DispatchEvent_p9()・CPropCommon::GetData_p9()・CEditDoc::MakeTopicList_txt()・CPropCommon::SetData_p9().

char Common::m_szMigemoDict[_MAX_PATH]

CShareData.h の 586 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::GetData_p10()・CMigemo::migemo_load_all()・CPropCommon::SetData_p10().

char Common::m_szMigemoDll[_MAX_PATH]

CShareData.h の 585 行で定義されています。

参照元 CPropCommon::DispatchEvent_p10()・CPropCommon::GetData_p10()・CMigemo::GetDllName()・CPropCommon::SetData_p10().

char Common::m_szRegexpLib[_MAX_PATH]

CShareData.h の 453 行で定義されています。

参照元 CEditView::CEditView()・CEditView::Create()・CPropCommon::GetData_PROP_GREP()・InitRegexp()・CPropCommon::SetData_PROP_GREP()・CShareData::ShareData_IO_Common().

char Common::m_szTabWndCaption[MAX_CAPTION_CONF_LEN]

CShareData.h の 496 行で定義されています。

参照元 CPropCommon::GetData_PROP_TAB()・CPropCommon::SetData_PROP_TAB().

char Common::m_szTimeFormat[MAX_DATETIMEFOREMAT_LEN]

CShareData.h の 570 行で定義されています。

参照元 CPropCommon::ChangeTimeExample()・CPropCommon::DispatchEvent_p9()・CShareData::MyGetTimeFormat()・CPropCommon::SetData_p9().

char Common::m_szWindowCaptionActive[MAX_CAPTION_CONF_LEN]

CShareData.h の 581 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN().

char Common::m_szWindowCaptionInactive[MAX_CAPTION_CONF_LEN]

CShareData.h の 582 行で定義されています。

参照元 CPropCommon::GetData_PROP_WIN()・CPropCommon::SetData_PROP_WIN()・CEditDoc::SetParentCaption().

int Common::m_widthOutlineWindow

CShareData.h の 592 行で定義されています。

参照元 CDlgFuncList::OnDestroy()・CDlgFuncList::OnInitDialog().

WORD Common::m_wTrayMenuHotKeyCode

CShareData.h の 526 行で定義されています。

参照元 CPropCommon::GetData_p1().

WORD Common::m_wTrayMenuHotKeyMods

CShareData.h の 527 行で定義されています。

参照元 CPropCommon::GetData_p1().

int Common::m_xOutlineWindowPos

CShareData.h の 594 行で定義されています。

参照元 CDlgFuncList::OnDestroy()・CDlgFuncList::OnInitDialog().

int Common::m_yOutlineWindowPos

CShareData.h の 595 行で定義されています。

参照元 CDlgFuncList::OnDestroy()・CDlgFuncList::OnInitDialog().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:35:39 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

Common メンバ一覧

これは全メンバの一覧です。Common継承メンバも含んでいます。

EnableAutoBackup(bool flag) | Common | [inline]
GetAlertIfFileNotExist(void) const | Common | [inline]
GetAutoBackupInterval(void) const | Common | [inline]
GetAutoMIMEdecode(void) const | Common | [inline]
GetBackupCount(void) const | Common | [inline]
GetBackupExtChar(void) const | Common | [inline]
GetBackupOpt(int flag) const | Common | [inline]
GetBackupType(void) const | Common | [inline]
GetBackupTypeAdv(void) const | Common | [inline]
GetCaretType(void) const | Common | [inline]
GetQueryIfCodeChange(void) const | Common | [inline]
GetRestoreBookmarks(void) const | Common | [inline]
GetRestoreCurPosition(void) const | Common | [inline]
IsAutoBackupEnabled(void) const | Common | [inline]
m_bAddCRLFWhenCopy | Common |
m_bAlertIfFileNotExist | Common |
m_bAutoCloseDlgFind | Common |
m_bAutoCloseDlgFuncList | Common |
m_bAutoCloseDlgReplace | Common |
m_bAutoColmnPaste | Common |
m_bAutoMIMEdecode | Common |
m_bBackUp | Common |
m_bBackUpDialog | Common |
m_bBackUpDustBox | Common |
m_bBackUpFolder | Common |
m_bBackUpPathAdvanced | Common |
m_bCaretTextForSearch | Common |
m_bCheckFileTimeStamp | Common |
m_bChgWndByWheel | Common |
m_bCloseAllConfirm | Common |
m_bCompareAndTileHorz | Common |
m_bConsecutiveAll | Common |
m_bCopyAndDisablSelection | Common |
m_bDispExitingDialog | Common |
m_bDispFUNCKEYWND | Common |
m_bDispSTATUSBAR | Common |
m_bDispTabIcon | Common |
m_bDispTabWnd | Common |
m_bDispTabWndMultiWin | Common |
m_bDispTOOLBAR | Common |
m_bDropFileAndClose | Common |
m_bEnableUnmodifiedOverwrite | Common |
m_bExitConfirm | Common |
m_bFontIs_FIXED_PITCH | Common |
m_bFunclistSetFocusOnJump | Common |
m_bGrepDefaultFolder | Common |
m_bGrepExitConfirm | Common |
m_bGrepOutputLine | Common |
m_bGrepRealTimeView | Common |
m_bGrepSubFolder | Common |
m_bGTJW_LDBLCLK | Common |
m_bGTJW_RETURN | Common |
m_bHokanKey_RETURN | Common |
m_bHokanKey_RIGHT | Common |
m_bHokanKey_SPACE | Common |
m_bHokanKey_TAB | Common |
m_bHtmlHelpIsSingle | Common |
m_bIsFreeCursorMode | Common |
m_bIsINSMode | Common |
m_bJumpSingleClickURL | Common |
m_bLoHiCase | Common |
m_bMarkUpBlankLineEnable | Common |
m_bMenuIcon | Common |
m_bNoCaretMoveByActivation | Common |
m_bNoFilterSaveFile | Common |
m_bNoFilterSaveNew | Common |
m_bNOTIFYNOTFOUND | Common |
m_bNotOverWriteCRLF | Common |
m_bQueryIfCodeChange | Common |
m_bRegularExp | Common |
m_bRememberOutlineWindowPos | Common |
m_bRestoreBookmarks | Common |
m_bRestoreCurPosition | Common |
m_bSameTabWidth | Common |
m_bScrollBarHorz | Common |
m_bSearchAll | Common |
m_bSelectClickedURL | Common |
m_bSelectedArea | Common |
m_bSortTabList | Common |
m_bSplitterWndHScroll | Common |
m_bSplitterWndVScroll | Common |
m_bStayTaskTray | Common |
m_bStopsBothEndsWhenSearchParagraph | Common |
m_bStopsBothEndsWhenSearchWord | Common |
m_bTab_CloseOneWin | Common |
m_bTab_ListFull | Common |
m_bTab_RetainEmptyWin | Common |
m_bToolBarIsFlat | Common |
m_bUseCaretKeyWord | Common |
m_bUseHokan | Common |
m_bUseOLE_DragDrop | Common |
m_bUseOLE_DropSource | Common |
m_bUseTaskTray | Common |
m_bWordOnly | Common |
m_heightOutlineWindow | Common |
m_lf | Common |
m_lf_kh | Common |
m_nBackUpType | Common |
m_nBackUpType_Opt1 | Common |
m_nBackUpType_Opt2 | Common |
m_nBackUpType_Opt3 | Common |
m_nBackUpType_Opt4 | Common |
m_nBackUpType_Opt5 | Common |
m_nBackUpType_Opt6 | Common |
m_nCaretType | Common |
m_nCustMenuItemFuncArr | Common |
m_nCustMenuItemKeyArr | Common |
m_nCustMenuItemNumArr | Common |
m_nDateFormatType | Common |
m_nDropFileNumMax | Common |
m_nFileShareMode | Common |
m_nFUNCKEYWND_GroupNum | Common |
m_nFUNCKEYWND_Place | Common |
m_nGrepCharSet | Common |
m_nGrepOutputStyle | Common |
m_nLineNumRightSpace | Common |
m_nMRUArrNum_MAX | Common |
m_nOPENFOLDERArrNum_MAX | Common |
m_nRepeatedScroll_Smooth | Common |
m_nRepeatedScrollLineNum | Common |
m_nRulerBottomSpace | Common |
m_nRulerHeight | Common |
m_nRulerType | Common |
m_nSaveWindowPos | Common |
m_nSaveWindowSize | Common |
m_nTimeFormatType | Common |
m_nToolBarButtonIdxArr | Common |
m_nToolBarButtonNum | Common |
m_nVertLineOffset | Common |
m_nWinPosX | Common |
m_nWinPosY | Common |
m_nWinSizeCX | Common |
m_nWinSizeCY | Common |
m_nWinSizeType | Common |
m_rcOpenDialog | Common |
m_szBackUpFolder | Common |
m_szBackUpPathAdvanced | Common |
m_szCustMenuNameArr | Common |
m_szDateFormat | Common |
m_szExtHelp | Common |
m_szExtHtmlHelp | Common |
m_szInyouKigou | Common |
m_szMidashiKigou | Common |
m_szMigemoDict | Common |
m_szMigemoDll | Common |
m_szRegexpLib | Common |
m_szTabWndCaption | Common |
m_szTimeFormat | Common |
m_szWindowCaptionActive | Common |
m_szWindowCaptionInactive | Common |
m_widthOutlineWindow | Common |
m_wTrayMenuHotKeyCode | Common |
m_wTrayMenuHotKeyMods | Common |
m_xOutlineWindowPos | Common |
m_yOutlineWindowPos | Common |
SetAlertIfFileNotExist(bool i) | Common | [inline]
SetAutoBackupInterval(int i) | Common | [inline]
SetAutoMIMEdecode(bool i) | Common | [inline]
SetBackupCount(int value) | Common | [inline]
SetBackupExtChar(int value) | Common | [inline]
SetBackupOpt(int flag, bool value) | Common | [inline]
SetBackupType(int n) | Common | [inline]
SetBackupTypeAdv(int n) | Common | [inline]
SetCaretType(const int f) | Common | [inline]
SetQueryIfCodeChange(bool i) | Common | [inline]
SetRestoreBookmarks(bool i) | Common | [inline]
SetRestoreCurPosition(bool i) | Common | [inline]

Sakura-Editorに対してSat Oct 27 02:35:39 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 ComPropSheetInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ComPropSheetInfo

すべてのメンバ一覧

Public メソッド

INT_PTR (CALLBACK *DProc)(HWND

Public 変数

const char * | szTabname
TABの表示名
unsigned int | resId
Property sheetに対応するDialog resource
UINT
WPARAM
LPARAM
Dialog Procedure

説明

「共通設定」プロパティシートの作成時に必要な情報を 保持する構造体

CPropCommon.cpp の 392 行で定義されています。

関数

ComPropSheetInfo::INT_PTR ( CALLBACK * DProc )

変数

ComPropSheetInfo::LPARAM

Dialog Procedure

CPropCommon.cpp の 395 行で定義されています。

unsigned int ComPropSheetInfo::resId

Property sheetに対応するDialog resource

CPropCommon.cpp の 394 行で定義されています。

const char* ComPropSheetInfo::szTabname

TABの表示名

CPropCommon.cpp の 393 行で定義されています。

ComPropSheetInfo::UINT

CPropCommon.cpp の 395 行で定義されています。

ComPropSheetInfo::WPARAM

CPropCommon.cpp の 395 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CPropCommon.cpp
Sakura-Editorに対してSat Oct 27 02:35:39 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ComPropSheetInfo メンバ一覧

これは全メンバの一覧です。ComPropSheetInfo継承メンバも含んでいます。

INT_PTR(CALLBACK *DProc)(HWND | ComPropSheetInfo
LPARAM | ComPropSheetInfo
resId | ComPropSheetInfo
szTabname | ComPropSheetInfo
UINT | ComPropSheetInfo
WPARAM | ComPropSheetInfo

Sakura-Editorに対してSat Oct 27 02:35:39 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス COpe

  • 構成
  • クラス階層
  • 構成メンバ

クラス COpe

編集操作要素 [詳細]

#include <COpe.h>

COpeのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

COpe ()
~COpe ()
void | DUMP (void)

Public 変数

int | m_nOpe
int | m_nCaretPosX_PHY_Before
int | m_nCaretPosY_PHY_Before
int | m_nCaretPosX_PHY_To
int | m_nCaretPosY_PHY_To
int | m_nCaretPosX_PHY_After
int | m_nCaretPosY_PHY_After
int | m_nDataLen
CMemory * m_pcmemData

説明

編集操作要素

Undoのためにに操作手順を記録するために用いる。 1オブジェクトが１つの操作を表す。

COpe.h の 27 行で定義されています。

コンストラクタとデストラクタ

COpe::COpe ( )

COpe.cpp の 21 行で定義されています。

参照先 m_nCaretPosX_PHY_After・m_nCaretPosX_PHY_Before・m_nCaretPosX_PHY_To・m_nCaretPosY_PHY_After・m_nCaretPosY_PHY_Before・m_nCaretPosY_PHY_To・m_nDataLen・m_nOpe・m_pcmemData・NULL.

COpe::~COpe ( )

COpe.cpp の 48 行で定義されています。

参照先 m_pcmemData・NULL.

関数

void COpe::DUMP ( void )

COpe.cpp の 58 行で定義されています。

参照先 CMemory::GetPtr()・m_nCaretPosX_PHY_After・m_nCaretPosX_PHY_Before・m_nCaretPosY_PHY_After・m_nCaretPosY_PHY_Before・m_nDataLen・m_nOpe・m_pcmemData・MYTRACE・NULL.

参照元 COpeBlk::DUMP().

変数

int COpe::m_nCaretPosX_PHY_After

COpe.h の 48 行で定義されています。

参照元 COpeBlk::AppendOpe()・CEditView::Command_ADDTAIL()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_DUPLICATELINE()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::ConvSelectedArea()・COpe()・CEditView::DeleteData()・DUMP()・CEditView::RTrimPrevLine().

int COpe::m_nCaretPosX_PHY_Before

COpe.h の 44 行で定義されています。

参照元 COpeBlk::AppendOpe()・CEditView::Command_ADDTAIL()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_DUPLICATELINE()・CEditView::Command_PASTEBOX()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::ConvSelectedArea()・COpe()・CEditView::DeleteData()・DUMP()・CEditView::RTrimPrevLine().

int COpe::m_nCaretPosX_PHY_To

COpe.h の 46 行で定義されています。

参照元 COpe().

int COpe::m_nCaretPosY_PHY_After

COpe.h の 49 行で定義されています。

参照元 COpeBlk::AppendOpe()・CEditView::Command_ADDTAIL()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_DUPLICATELINE()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::ConvSelectedArea()・COpe()・CEditView::DeleteData()・DUMP()・CEditView::RTrimPrevLine().

int COpe::m_nCaretPosY_PHY_Before

COpe.h の 45 行で定義されています。

参照元 COpeBlk::AppendOpe()・CEditView::Command_ADDTAIL()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_DUPLICATELINE()・CEditView::Command_PASTEBOX()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::ConvSelectedArea()・COpe()・CEditView::DeleteData()・DUMP()・CEditView::RTrimPrevLine().

int COpe::m_nCaretPosY_PHY_To

COpe.h の 47 行で定義されています。

参照元 COpe().

int COpe::m_nDataLen

COpe.h の 52 行で定義されています。

参照元 COpe()・DUMP().

int COpe::m_nOpe

COpe.h の 34 行で定義されています。

参照元 CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_DUPLICATELINE()・CEditView::Command_WordDeleteToEnd()・COpe()・CEditView::DeleteData()・DUMP()・CEditView::RTrimPrevLine().

CMemory* COpe::m_pcmemData

COpe.h の 53 行で定義されています。

参照元 COpe()・DUMP()・~COpe().

このクラスの説明は次のファイルから生成されました:
  • COpe.h
  • COpe.cpp
Sakura-Editorに対してSat Oct 27 02:35:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COpe メンバ一覧

これは全メンバの一覧です。COpe継承メンバも含んでいます。

COpe() | COpe
DUMP(void) | COpe
m_nCaretPosX_PHY_After | COpe
m_nCaretPosX_PHY_Before | COpe
m_nCaretPosX_PHY_To | COpe
m_nCaretPosY_PHY_After | COpe
m_nCaretPosY_PHY_Before | COpe
m_nCaretPosY_PHY_To | COpe
m_nDataLen | COpe
m_nOpe | COpe
m_pcmemData | COpe
~COpe() | COpe

Sakura-Editorに対してSat Oct 27 02:35:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス COpeBlk

  • 構成
  • クラス階層
  • 構成メンバ

クラス COpeBlk

編集操作要素ブロック [詳細]

#include <COpeBlk.h>

COpeBlkのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

COpeBlk ()
~COpeBlk ()
int | GetNum (void)
int | AppendOpe (COpe *)
COpe * | GetOpe (int)
void | DUMP (void)

Private メソッド

void | Init (void)
void | Empty (void)

Private 変数

int | m_nCOpeArrNum
COpe ** m_ppCOpeArr

説明

編集操作要素ブロック

COpe を複数束ねるためのもの。Undo, Redoはこのブロック単位で行われる。

COpeBlk.h の 32 行で定義されています。

コンストラクタとデストラクタ

COpeBlk::COpeBlk ( )

COpeBlk.cpp の 23 行で定義されています。

参照先 Init().

COpeBlk::~COpeBlk ( )

COpeBlk.cpp の 56 行で定義されています。

参照先 Empty().

関数

int COpeBlk::AppendOpe ( COpe * )

COpeBlk.cpp の 67 行で定義されています。

参照先 FALSE・GSTR_APPNAME・COpe::m_nCaretPosX_PHY_After・COpe::m_nCaretPosX_PHY_Before・COpe::m_nCaretPosY_PHY_After・COpe::m_nCaretPosY_PHY_Before・m_nCOpeArrNum・m_ppCOpeArr・MYMESSAGEBOX・NULL・TRUE.

参照元 CEditView::Command_ADDTAIL()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_BACK()・CEditView::Command_DELETE_LINE()・CEditView::Command_DUPLICATELINE()・CEditView::Command_WordDeleteToEnd()・CEditView::Command_WordDeleteToStart()・CEditView::ConvSelectedArea()・CEditView::DeleteData()・CEditView::RTrimPrevLine().

void COpeBlk::DUMP ( void )

COpeBlk.cpp の 135 行で定義されています。

参照先 COpe::DUMP()・m_nCOpeArrNum・m_ppCOpeArr・MYTRACE.

void COpeBlk::Empty ( void ) [private]

COpeBlk.cpp の 35 行で定義されています。

参照先 m_nCOpeArrNum・m_ppCOpeArr・NULL.

参照元 ~COpeBlk().

int COpeBlk::GetNum ( void ) [inline]

COpeBlk.h の 37 行で定義されています。

参照先 m_nCOpeArrNum.

参照元 CEditView::Drop().

COpe * COpeBlk::GetOpe ( int )

COpeBlk.cpp の 125 行で定義されています。

参照先 m_nCOpeArrNum・m_ppCOpeArr・NULL.

void COpeBlk::Init ( void ) [private]

COpeBlk.cpp の 29 行で定義されています。

参照先 m_nCOpeArrNum・m_ppCOpeArr・NULL.

参照元 COpeBlk().

変数

int COpeBlk::m_nCOpeArrNum [private]

COpeBlk.h の 48 行で定義されています。

参照元 AppendOpe()・DUMP()・Empty()・GetNum()・GetOpe()・Init().

COpe** COpeBlk::m_ppCOpeArr [private]

COpeBlk.h の 49 行で定義されています。

参照元 AppendOpe()・DUMP()・Empty()・GetOpe()・Init().

このクラスの説明は次のファイルから生成されました:
  • COpeBlk.h
  • COpeBlk.cpp
Sakura-Editorに対してSat Oct 27 02:35:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COpeBlk メンバ一覧

これは全メンバの一覧です。COpeBlk継承メンバも含んでいます。

AppendOpe(COpe *) | COpeBlk |
COpeBlk() | COpeBlk |
DUMP(void) | COpeBlk |
Empty(void) | COpeBlk | [private]
GetNum(void) | COpeBlk | [inline]
GetOpe(int) | COpeBlk |
Init(void) | COpeBlk | [private]
m_nCOpeArrNum | COpeBlk | [private]
m_ppCOpeArr | COpeBlk | [private]
~COpeBlk() | COpeBlk |

Sakura-Editorに対してSat Oct 27 02:35:40 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス COpeBuf

  • 構成
  • クラス階層
  • 構成メンバ

クラス COpeBuf

2002/2/10 aroka アンドゥ・リドゥバッファ [詳細]

#include <COpeBuf.h>

COpeBufのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

COpeBuf ()
~COpeBuf ()
void | ClearAll (void)
int | AppendOpeBlk (COpeBlk *)
int | IsEnableUndo (void)
int | IsEnableRedo (void)
COpeBlk * | DoUndo (int *)
COpeBlk * | DoRedo (int *)
void | SetNoModified (void)
void | DUMP (void)

Private 変数

int | m_nCOpeBlkArrNum
COpeBlk ** m_ppCOpeBlkArr
int | m_nCurrentPointer
int | m_nNoModifiedIndex

説明

2002/2/10 aroka アンドゥ・リドゥバッファ

COpeBuf.h の 39 行で定義されています。

コンストラクタとデストラクタ

COpeBuf::COpeBuf ( )

COpeBuf.cpp の 19 行で定義されています。

参照先 m_nCOpeBlkArrNum・m_nCurrentPointer・m_nNoModifiedIndex・m_ppCOpeBlkArr・NULL.

COpeBuf::~COpeBuf ( )

COpeBuf.cpp の 34 行で定義されています。

参照先 m_nCOpeBlkArrNum・m_ppCOpeBlkArr・NULL.

関数

int COpeBuf::AppendOpeBlk ( COpeBlk * )

COpeBuf.cpp の 58 行で定義されています。

参照先 m_nCOpeBlkArrNum・m_nCurrentPointer・m_ppCOpeBlkArr・NULL.

参照元 CEditView::Drop().

void COpeBuf::ClearAll ( void )

COpeBuf.cpp の 190 行で定義されています。

参照先 m_nCOpeBlkArrNum・NULL.

参照元 CEditDoc::Init().

COpeBlk * COpeBuf::DoRedo ( int * )

COpeBuf.cpp の 146 行で定義されています。

参照先 FALSE・IsEnableRedo()・m_nCurrentPointer・m_nNoModifiedIndex・TRUE.

COpeBlk * COpeBuf::DoUndo ( int * )

COpeBuf.cpp の 126 行で定義されています。

参照先 FALSE・IsEnableUndo()・m_nCurrentPointer・m_nNoModifiedIndex・TRUE.

void COpeBuf::DUMP ( void )

COpeBuf.cpp の 174 行で定義されています。

参照先 m_nCOpeBlkArrNum・m_nCurrentPointer・MYTRACE.

int COpeBuf::IsEnableRedo ( void )

COpeBuf.cpp の 112 行で定義されています。

参照先 FALSE・m_nCOpeBlkArrNum・m_nCurrentPointer・TRUE.

参照元 DoRedo()・CEditDoc::IsEnableRedo().

int COpeBuf::IsEnableUndo ( void )

COpeBuf.cpp の 98 行で定義されています。

参照先 FALSE・m_nCOpeBlkArrNum・m_nCurrentPointer・TRUE.

参照元 DoUndo()・CEditDoc::IsEnableUndo().

void COpeBuf::SetNoModified ( void )

COpeBuf.cpp の 166 行で定義されています。

参照先 m_nCurrentPointer・m_nNoModifiedIndex.

参照元 CEditDoc::SaveFile().

変数

int COpeBuf::m_nCOpeBlkArrNum [private]

COpeBuf.h の 53 行で定義されています。

参照元 AppendOpeBlk()・ClearAll()・COpeBuf()・DUMP()・IsEnableRedo()・IsEnableUndo()・~COpeBuf().

int COpeBuf::m_nCurrentPointer [private]

COpeBuf.h の 55 行で定義されています。

参照元 AppendOpeBlk()・COpeBuf()・DoRedo()・DoUndo()・DUMP()・IsEnableRedo()・IsEnableUndo()・SetNoModified().

int COpeBuf::m_nNoModifiedIndex [private]

COpeBuf.h の 56 行で定義されています。

参照元 COpeBuf()・DoRedo()・DoUndo()・SetNoModified().

COpeBlk** COpeBuf::m_ppCOpeBlkArr [private]

COpeBuf.h の 54 行で定義されています。

参照元 AppendOpeBlk()・COpeBuf()・~COpeBuf().

このクラスの説明は次のファイルから生成されました:
  • COpeBuf.h
  • COpeBuf.cpp
Sakura-Editorに対してSat Oct 27 02:35:41 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COpeBuf メンバ一覧

これは全メンバの一覧です。COpeBuf継承メンバも含んでいます。

AppendOpeBlk(COpeBlk *) | COpeBuf |
ClearAll(void) | COpeBuf |
COpeBuf() | COpeBuf |
DoRedo(int *) | COpeBuf |
DoUndo(int *) | COpeBuf |
DUMP(void) | COpeBuf |
IsEnableRedo(void) | COpeBuf |
IsEnableUndo(void) | COpeBuf |
m_nCOpeBlkArrNum | COpeBuf | [private]
m_nCurrentPointer | COpeBuf | [private]
m_nNoModifiedIndex | COpeBuf | [private]
m_ppCOpeBlkArr | COpeBuf | [private]
SetNoModified(void) | COpeBuf |
~COpeBuf() | COpeBuf |

Sakura-Editorに対してSat Oct 27 02:35:41 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス COsVersionInfo

  • 構成
  • クラス階層
  • 構成メンバ

クラス COsVersionInfo

#include <COsVersionInfo.h>

すべてのメンバ一覧

Public メソッド

COsVersionInfo ()
BOOL | GetVersion ()
BOOL | OsIsEnableVersion ()
BOOL | IsWin32NT ()
BOOL | IsWin32Windows ()
BOOL | HasWinHelpContentsProblem ()
BOOL | OsDoesNOTSupportReconvert ()
BOOL | IsWinXP_or_later ()
BOOL | IsWin2000_or_later ()
BOOL | IsWinMe ()
BOOL | IsWinVista_or_later ()

Protected 変数

BOOL | m_bSuccess
OSVERSIONINFO | m_cOsVersionInfo

説明

COsVersionInfo.h の 41 行で定義されています。

コンストラクタとデストラクタ

COsVersionInfo::COsVersionInfo ( ) [inline]

COsVersionInfo.h の 43 行で定義されています。

参照先 m_bSuccess・m_cOsVersionInfo.

関数

BOOL COsVersionInfo::GetVersion ( ) [inline]

COsVersionInfo.h の 50 行で定義されています。

参照先 m_bSuccess.

参照元 CProcessFactory::IsValidVersion().

BOOL COsVersionInfo::HasWinHelpContentsProblem ( ) [inline]

COsVersionInfo.h の 84 行で定義されています。

参照先 IsWin32NT()・m_cOsVersionInfo.

参照元 ShowWinHelpContents().

BOOL COsVersionInfo::IsWin2000_or_later ( ) [inline]

Windows 2000以上か調べる

戻り値:
TRUE Windows 2000 or later
日付:
2005.10.26 ryoji

COsVersionInfo.h の 123 行で定義されています。

参照先 IsWin32NT()・m_cOsVersionInfo.

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::OnSize().

BOOL COsVersionInfo::IsWin32NT ( ) [inline]

NTプラットフォームかどうか調べる

戻り値:
TRUE | NT platform
FALSE | non-NT platform

COsVersionInfo.h の 66 行で定義されています。

参照先 m_cOsVersionInfo.

参照元 CEditView::ExecCmd()・HasWinHelpContentsProblem()・IsWin2000_or_later()・CEditView::ViewDiffInfo().

BOOL COsVersionInfo::IsWin32Windows ( ) [inline]

Windowsプラットフォームかどうか調べる

戻り値:
TRUE | Windows platform
FALSE | non-Windows platform

COsVersionInfo.h の 76 行で定義されています。

参照先 m_cOsVersionInfo.

参照元 IsWinMe().

BOOL COsVersionInfo::IsWinMe ( ) [inline]

Windows Meか調べる

戻り値:
TRUE Windows Me
日付:
2005.10.26 ryoji

COsVersionInfo.h の 133 行で定義されています。

参照先 IsWin32Windows()・m_cOsVersionInfo.

BOOL COsVersionInfo::IsWinVista_or_later ( ) [inline]

Windows Vista以上か調べる

戻り値:
TRUE Windows Vista or later
日付:
2007.05.19 ryoji

COsVersionInfo.h の 143 行で定義されています。

参照先 m_cOsVersionInfo.

BOOL COsVersionInfo::IsWinXP_or_later ( ) [inline]

Windows XP以上か調べる

戻り値:
TRUE Windows XP or later
日付:
2003.09.06 genta

COsVersionInfo.h の 112 行で定義されています。

参照先 m_cOsVersionInfo.

BOOL COsVersionInfo::OsDoesNOTSupportReconvert ( ) [inline]

COsVersionInfo.h の 95 行で定義されています。

参照先 m_cOsVersionInfo.

参照元 CEditView::CEditView()・CEditView::Command_Reconvert().

BOOL COsVersionInfo::OsIsEnableVersion ( ) [inline]

COsVersionInfo.h の 55 行で定義されています。

参照先 m_cOsVersionInfo.

参照元 CProcessFactory::IsValidVersion().

変数

BOOL COsVersionInfo::m_bSuccess [protected]

COsVersionInfo.h の 148 行で定義されています。

参照元 COsVersionInfo()・GetVersion().

OSVERSIONINFO COsVersionInfo::m_cOsVersionInfo [protected]

COsVersionInfo.h の 149 行で定義されています。

参照元 COsVersionInfo()・HasWinHelpContentsProblem()・IsWin2000_or_later()・IsWin32NT()・IsWin32Windows()・IsWinMe()・IsWinVista_or_later()・IsWinXP_or_later()・OsDoesNOTSupportReconvert()・OsIsEnableVersion().

このクラスの説明は次のファイルから生成されました:
  • COsVersionInfo.h
Sakura-Editorに対してSat Oct 27 02:35:41 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COsVersionInfo メンバ一覧

これは全メンバの一覧です。COsVersionInfo継承メンバも含んでいます。

COsVersionInfo() | COsVersionInfo | [inline]
GetVersion() | COsVersionInfo | [inline]
HasWinHelpContentsProblem() | COsVersionInfo | [inline]
IsWin2000_or_later() | COsVersionInfo | [inline]
IsWin32NT() | COsVersionInfo | [inline]
IsWin32Windows() | COsVersionInfo | [inline]
IsWinMe() | COsVersionInfo | [inline]
IsWinVista_or_later() | COsVersionInfo | [inline]
IsWinXP_or_later() | COsVersionInfo | [inline]
m_bSuccess | COsVersionInfo | [protected]
m_cOsVersionInfo | COsVersionInfo | [protected]
OsDoesNOTSupportReconvert() | COsVersionInfo | [inline]
OsIsEnableVersion() | COsVersionInfo | [inline]

Sakura-Editorに対してSat Oct 27 02:35:41 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 COutlinePython

  • 構成
  • クラス階層
  • 構成メンバ

構造体 COutlinePython

すべてのメンバ一覧

Public 型

enum | { STATE_NORMAL, STATE_STRING, STATE_CONTINUE }

Public メソッド

COutlinePython ()
int | ScanNormal (const char *data, int linelen, int start_offset)
Pythonプログラムの処理
int | ScanString (const char *data, int linelen, int start_offset)
python文字列(1行)を調査する
int | EnterString (const char *data, int linelen, int start_offset)
Python文字列の入り口で文字列種別を決定する
void | DoScanLine (const char *data, int linelen, int start_offset)
bool | IsLogicalLineTop (void) const

Public 変数

enum COutlinePython:: { ... } | m_state
int | m_quote_char
引用符記号
bool | m_raw_string
エスケープ記号無視ならtrue
bool | m_long_string
長い文字列中ならtrue

説明

pythonのパース状態を管理する構造体

解析中に解析関数の間を引き渡される． このクラスは現在の状態と，文字列の性質を保持する． 解析位置は解析関数間でパラメータとして渡されるので この中では保持しない．

[状態遷移] 開始 : STATE_NORMAL

STATE_NORMAL/STATE_CONTINUE→STATE_CONTINUEの遷移

  • 継続行マーク有り

STATE_NORMAL/STATE_CONTINUE→STATE_NORMALの遷移

  • 継続行マークがなく行末に達した
  • コメントに達した

STATE_NORMAL→STATE_STRINGの遷移

  • 引用符あり

STATE_STRING→STATE_NORMALの遷移

  • 規定の文字列終了記号
  • short stringで文字列の終了を示す引用符も継続行マークもなく行末に達した

日付:
2007.02.12 genta

CEditDoc_FuncList2.cpp の 97 行で定義されています。

列挙型

anonymous enum

列挙型の値:
STATE_NORMAL | 通常行 : 行頭を含む
STATE_STRING | 文字列中
STATE_CONTINUE | 継続行 : 前の行からの続きなので行頭とはみなされない

CEditDoc_FuncList2.cpp の 98 行で定義されています。

コンストラクタとデストラクタ

COutlinePython::COutlinePython ( )

コンストラクタ: 初期化

初期状態をSTATE_NORMALに設定する．

CEditDoc_FuncList2.cpp の 127 行で定義されています。

関数

void COutlinePython::DoScanLine | ( | const char * | data,
 |  | int | linelen,
 |  | int | start_offset
 | ) |

Python文字列を行末までスキャンして次の行の状態を決定する

m_stateに設定された現在の状態から開始してdataをstart_offsetからlinelenに達するまで 走査し，行末における状態をm_stateに格納する．

現在の状態に応じてサブルーチンに解析処理を依頼する． サブルーチンScan**では文字列dataのstart_offsetから状態遷移が発生するまで処理を 続け，別の状態に遷移した直後に処理済みの桁位置を返して終了する．

この関数に戻った後は再度現在の状態に応じて処理依頼を行う．これを行末に達するまで繰り返す．

引数:
[in] | data | 対象文字列
[in] | linelen | データの長さ
[in] | start_offset | 調査開始位置

CEditDoc_FuncList2.cpp の 355 行で定義されています。

参照先 m_state・ScanNormal()・ScanString()・STATE_CONTINUE・STATE_NORMAL・STATE_STRING.

int COutlinePython::EnterString | ( | const char * | data,
 |  | int | linelen,
 |  | int | start_offset
 | ) |

Python文字列の入り口で文字列種別を決定する

文字列の種類を適切に判別し，内部状態を設定する． start_offsetは開始引用符を指していること．

  • 引用符1つ: short string
  • 引用符3つ: long string
  • 引用符の前にrかRあり : raw string

引数:
[in] | data | 対象文字列
[in] | linelen | データの長さ
[in] | start_offset | 調査開始位置
戻り値:
調査後の位置
不変:
m_state != STATE_STRING
覚え書き:
引用符の位置で呼びだせば，抜けた後は必ずSTATE_STRINGになっているはず． 引用符以外の位置で呼びだした場合は何もしないで抜ける．

CEditDoc_FuncList2.cpp の 155 行で定義されています。

参照先 m_long_string・m_quote_char・m_raw_string・m_state・STATE_STRING.

bool COutlinePython::IsLogicalLineTop ( void ) const [inline]

CEditDoc_FuncList2.cpp の 120 行で定義されています。

参照先 m_state・STATE_NORMAL.

参照元 CEditDoc::MakeFuncList_python().

int COutlinePython::ScanNormal | ( | const char * | data,
 |  | int | linelen,
 |  | int | start_offset
 | ) |

Pythonプログラムの処理

プログラム本体部分の処理．文字列の開始，継続行，コメント，通常行末をチェックする． 行頭判定が終わった後で引き渡されるので，関数・クラス定義は考慮しなくて良い．

以下の場合に処理を終了する

  • 行末: STATE_NORMALとして処理終了
  • コメント: STATE_NORMALとして処理終了
  • 文字列の開始: EnterString() にて文字列種別の判定を行った後STATE_STRINGとして処理終了
  • 継続行: STATE_CONTINUEとして処理終了

引数:
[in] | data | 対象文字列
[in] | linelen | データの長さ
[in] | start_offset | 調査開始位置
m_state == STATE_NORMAL || m_state == STATE_CONTINUE

戻り値:
調査後の位置

CEditDoc_FuncList2.cpp の 209 行で定義されています。

参照先 CMemory::GetSizeOfChar()・m_state・STATE_CONTINUE・STATE_NORMAL.

参照元 DoScanLine().

int COutlinePython::ScanString | ( | const char * | data,
 |  | int | linelen,
 |  | int | start_offset
 | ) |

python文字列(1行)を調査する

与えられた状態からPython文字列の状態変化を追い， 最終的な状態を決定する．

文字列の開始判定はEnterString()関数で処理済みであり，その結果が m_state, m_raw_string, m_long_string, m_quote_charに与えられている．

m_raw_stringがtrueならbackslashによるエスケープ処理を行わない m_long_stringならm_quote_charが3つ続くまで文字列となる．

引数:
[in] | data | 対象文字列
[in] | linelen | データの長さ
[in] | start_offset | 調査開始位置
戻り値:
調査後の位置
不変:
m_state==STATE_STRING
作者:
genta
日付:
2007.02.12 新規作成

2007.03.23 genta 文字列の継続行の処理を追加

CEditDoc_FuncList2.cpp の 274 行で定義されています。

参照先 CMemory::GetSizeOfChar()・m_quote_char・m_state・STATE_STRING.

参照元 DoScanLine().

変数

bool COutlinePython::m_long_string

長い文字列中ならtrue

CEditDoc_FuncList2.cpp の 106 行で定義されています。

参照元 EnterString().

int COutlinePython::m_quote_char

引用符記号

CEditDoc_FuncList2.cpp の 104 行で定義されています。

参照元 EnterString()・ScanString().

bool COutlinePython::m_raw_string

エスケープ記号無視ならtrue

CEditDoc_FuncList2.cpp の 105 行で定義されています。

参照元 EnterString().

enum { ... } COutlinePython::m_state

参照元 DoScanLine()・EnterString()・IsLogicalLineTop()・ScanNormal()・ScanString().

この構造体の説明は次のファイルから生成されました:
  • CEditDoc_FuncList2.cpp
Sakura-Editorに対してSat Oct 27 02:35:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

COutlinePython メンバ一覧

これは全メンバの一覧です。COutlinePython継承メンバも含んでいます。

COutlinePython() | COutlinePython |
DoScanLine(const char *data, int linelen, int start_offset) | COutlinePython |
EnterString(const char *data, int linelen, int start_offset) | COutlinePython |
IsLogicalLineTop(void) const | COutlinePython | [inline]
m_long_string | COutlinePython |
m_quote_char | COutlinePython |
m_raw_string | COutlinePython |
m_state | COutlinePython |
ScanNormal(const char *data, int linelen, int start_offset) | COutlinePython |
ScanString(const char *data, int linelen, int start_offset) | COutlinePython |
STATE_CONTINUE Enum 値 | COutlinePython |
STATE_NORMAL Enum 値 | COutlinePython |
STATE_STRING Enum 値 | COutlinePython |

Sakura-Editorに対してSat Oct 27 02:35:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CPassiveTimer

  • 構成
  • クラス階層
  • 構成メンバ

クラス CPassiveTimer

#include <CAutoSave.h>

すべてのメンバ一覧

Public メソッド

CPassiveTimer ()
void | SetInterval (int m)
時間間隔の設定
int | GetInterval (void) const
時間間隔の取得
void | Reset (void)
基準時刻のリセット
void | Enable (bool flag)
有効／無効の設定
bool | IsEnabled (void) const
有効／無効の読み出し
bool | CheckAction (void)
規定時間に達したかどうかの判定

Private 変数

DWORD | nLastTick
最後にチェックしたときの時刻 (GetTickCount()で取得したもの)
int | nInterval
Action間隔 (分)
bool | bEnabled
有効かどうか

説明

基準時刻からの経過時間が設定間隔を過ぎたかどうかを判定する。 頻繁に呼び出されるタイマーが既に別の場所にあるとき、それよりも間隔が広くて 間隔の厳密さが要求されない用途に利用可能。 ファイルの自動保存で使っている。
作者:
genta

CAutoSave.h の 44 行で定義されています。

コンストラクタとデストラクタ

CPassiveTimer::CPassiveTimer ( ) [inline]

初期値は間隔1msecでタイマーは無効。

CAutoSave.h の 49 行で定義されています。

関数

bool CPassiveTimer::CheckAction ( void )

規定時間に達したかどうかの判定

外部で定期に実行されるところから呼び出される関数。 呼び出されると経過時間をチェックする。

戻り値:
true | 所定時間が経過した。このときは測定基準が自動的にリセットされる。
false | 所定の時間に達していない。

CAutoSave.cpp の 73 行で定義されています。

参照先 IsEnabled()・nInterval・nLastTick・Reset().

参照元 CEditDoc::CheckAutoSave().

void CPassiveTimer::Enable ( bool flag )

有効／無効の設定

タイマーの有効・無効の切り替え

引数:
flag true:有効 / false: 無効 無効→有効に切り替えたときはリセットされる。

CAutoSave.cpp の 57 行で定義されています。

参照先 bEnabled・Reset().

参照元 CEditDoc::CheckAutoSave()・CEditDoc::ReloadAutoSaveParam().

int CPassiveTimer::GetInterval ( void ) const [inline]

時間間隔の取得

CAutoSave.h の 55 行で定義されています。

参照先 MSec2Min.

bool CPassiveTimer::IsEnabled ( void ) const [inline]

有効／無効の読み出し

CAutoSave.h の 63 行で定義されています。

参照元 CheckAction()・CEditDoc::CheckAutoSave().

void CPassiveTimer::Reset ( void ) [inline]

基準時刻のリセット

CAutoSave.h の 58 行で定義されています。

参照元 CheckAction()・Enable().

void CPassiveTimer::SetInterval ( int m )

時間間隔の設定

時間間隔の設定

引数:
m 間隔(min) 間隔を0以下に設定したときは1秒とみなす。設定可能な最大間隔は35792分。

CAutoSave.cpp の 43 行で定義されています。

参照先 MSec2Min・nInterval.

参照元 CEditDoc::ReloadAutoSaveParam().

変数

bool CPassiveTimer::bEnabled [private]

有効かどうか

CAutoSave.h の 71 行で定義されています。

参照元 Enable().

int CPassiveTimer::nInterval [private]

Action間隔 (分)

CAutoSave.h の 70 行で定義されています。

参照元 CheckAction()・SetInterval().

DWORD CPassiveTimer::nLastTick [private]

最後にチェックしたときの時刻 (GetTickCount()で取得したもの)

CAutoSave.h の 69 行で定義されています。

参照元 CheckAction().

このクラスの説明は次のファイルから生成されました:
  • CAutoSave.h
  • CAutoSave.cpp
Sakura-Editorに対してSat Oct 27 02:35:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPassiveTimer メンバ一覧

これは全メンバの一覧です。CPassiveTimer継承メンバも含んでいます。

bEnabled | CPassiveTimer | [private]
CheckAction(void) | CPassiveTimer |
CPassiveTimer() | CPassiveTimer | [inline]
Enable(bool flag) | CPassiveTimer |
GetInterval(void) const | CPassiveTimer | [inline]
IsEnabled(void) const | CPassiveTimer | [inline]
nInterval | CPassiveTimer | [private]
nLastTick | CPassiveTimer | [private]
Reset(void) | CPassiveTimer | [inline]
SetInterval(int m) | CPassiveTimer |

Sakura-Editorに対してSat Oct 27 02:35:42 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CPPA

  • 構成
  • クラス階層
  • 構成メンバ

クラス CPPA

PPA.DLL をサポートするクラス [詳細]

#include <CPPA.h>

CPPAに対する継承グラフ

[凡例]
CPPAのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CPPA ()
virtual | ~CPPA ()
const char * | GetVersion ()
const char * | GetLastMessage (void) const
PPAメッセージを取得する
virtual LPCTSTR | GetDllName (LPCTSTR)
DLLファイル名の取得
void | Execute (class CEditView *pcEditView)
void | SetSource (const char *ss)
void | SetDeclare (const char *ss)
void | SetDefProc (const char *ss)
void | SetDefine (const char *ss)
void | AddIntVar (const char *lpszDef, int nVal, int nCnst)
void | AddStrVar (const char *lpszDef, const char *lpszVal, int nCnst)
void | SetIntFunc (void *proc)
void | SetStrFunc (void *proc)
void | SetProc (void *proc)
void | SetErrProc (void *proc)
void | Abort ()
void | DeleteVar (const char *ss)
int | GetArgInt (int index)
char * | GetArgStr (int index)
char * | GetArgBStr (int index)
void | SetStrObj (void *proc)
void | SetIntObj (void *proc)
void | AddIntObj (const char *ss, int def, BOOL read, int index)
void | AddStrObj (const char *ss, const char *def, BOOL read, int index)
int | GetIntVar (const char *ss)
char * | GetStrVar (const char *ss)
char * | GetBStrVar (const char *ss)
BOOL | SetIntVar (const char *ss, int val)
BOOL | SetStrVar (const char *ss, const char *val)
void | AddRealVar (const char *ss, double val, BOOL cnst)
void | SetRealObj (void *proc)
void | AddRealObj (const char *ss, double val, BOOL read, LONG index)
double | GetRealVar (const char *ss)
BOOL | SetRealVar (const char *ss, double val)
void | SetRealFunc (void *proc)
DWORD | GetArgReal (int index)
BOOL | IsRunning ()
void | SetFinishProc (void *proc)

Static Public メソッド

static char * | GetDeclarations (const MacroFuncInfo &, char *buf)

Protected メソッド

virtual int | InitDll (void)
virtual int | DeinitDll (void)
関数の初期化

Private 型

typedef void(WINAPI * | PPA_Execute )()
typedef void(WINAPI * | PPA_SetSource )(const char *)
typedef void(WINAPI * | PPA_SetDeclare )(const char *)
typedef void(WINAPI * | PPA_SetDefProc )(const char *)
typedef void(WINAPI * | PPA_SetDefine )(const char *)
typedef void(WINAPI * | PPA_AddIntVar )(const char *, int, int)
typedef void(WINAPI * | PPA_AddStrVar )(const char *, const char *, int)
typedef void(WINAPI * | PPA_SetIntFunc )(void *)
typedef void(WINAPI * | PPA_SetStrFunc )(void *)
typedef void(WINAPI * | PPA_SetProc )(void *)
typedef void(WINAPI * | PPA_SetErrProc )(void *)
typedef void(WINAPI * | PPA_Abort )()
typedef int(WINAPI * | PPA_GetVersion )()
typedef void(WINAPI * | PPA_DeleteVar )(const char *)
typedef int(WINAPI * | PPA_GetArgInt )(int)
typedef char *(WINAPI * | PPA_GetArgStr )(int)
typedef char *(WINAPI * | PPA_GetArgBStr )(int)
typedef void(WINAPI * | PPA_SetStrObj )(void *)
typedef void(WINAPI * | PPA_SetIntObj )(void *)
typedef void(WINAPI * | PPA_AddIntObj )(const char *, int, BOOL, int)
typedef void(WINAPI * | PPA_AddStrObj )(const char *, const char *, BOOL, int)
typedef int(WINAPI * | PPA_GetIntVar )(const char *)
typedef char *(WINAPI * | PPA_GetStrVar )(const char *)
typedef char *(WINAPI * | PPA_GetBStrVar )(const char *)
typedef BOOL(WINAPI * | PPA_SetIntVar )(const char *, int)
typedef BOOL(WINAPI * | PPA_SetStrVar )(const char *, const char *)
typedef void(WINAPI * | PPA_AddRealVar )(const char *, double, BOOL)
typedef void(WINAPI * | PPA_SetRealObj )(void *)
typedef void(WINAPI * | PPA_AddRealObj )(const char *, double, BOOL, LONG)
typedef double(WINAPI * | PPA_GetRealVar )(const char *)
typedef BOOL(WINAPI * | PPA_SetRealVar )(const char *, double)
typedef void(WINAPI * | PPA_SetRealFunc )(void *)
typedef DWORD(WINAPI * | PPA_GetArgReal )(int)
typedef BYTE(WINAPI * | PPA_IsRunning )()
typedef void(WINAPI * | PPA_SetFinishProc )(void *)

Static Private メソッド

static void __stdcall | stdStrObj (const char *, int, BYTE, int *, char **)
static void __stdcall | stdProc (const char *FuncName, const int Index, const char *Argument[], const int ArgSize, int *Err_CD)
static void __stdcall | stdIntFunc (const char *FuncName, const int Index, const char *Argument[], const int ArgSize, int *Err_CD, int *ResultValue)
static void __stdcall | stdStrFunc (const char *FuncName, const int Index, const char *Argument[], const int ArgSize, int *Err_CD, char **ResultValue)
static bool | CallHandleFunction (const int Index, const char *Arg[], int ArgSize, VARIANT *Result)
static void __stdcall | stdError (int, const char *)
static void __stdcall | stdFinishProc ()

Private 変数

PPA_Execute m_fnExecute
PPA_SetSource m_fnSetSource
PPA_SetDeclare m_fnSetDeclare
PPA_SetDefProc m_fnSetDefProc
PPA_SetDefine m_fnSetDefine
PPA_AddIntVar m_fnAddIntVar
PPA_AddStrVar m_fnAddStrVar
PPA_SetIntFunc m_fnSetIntFunc
PPA_SetStrFunc m_fnSetStrFunc
PPA_SetProc m_fnSetProc
PPA_SetErrProc m_fnSetErrProc
PPA_Abort m_fnAbort
PPA_GetVersion m_fnGetVersion
PPA_DeleteVar m_fnDeleteVar
PPA_GetArgInt m_fnGetArgInt
PPA_GetArgStr m_fnGetArgStr
PPA_GetArgBStr m_fnGetArgBStr
PPA_SetStrObj m_fnSetStrObj
PPA_SetIntObj m_fnSetIntObj
PPA_AddIntObj m_fnAddIntObj
PPA_AddStrObj m_fnAddStrObj
PPA_GetIntVar m_fnGetIntVar
PPA_GetStrVar m_fnGetStrVar
PPA_GetBStrVar m_fnGetBStrVar
PPA_SetIntVar m_fnSetIntVar
PPA_SetStrVar m_fnSetStrVar
PPA_AddRealVar m_fnAddRealVar
PPA_SetRealObj m_fnSetRealObj
PPA_AddRealObj m_fnAddRealObj
PPA_GetRealVar m_fnGetRealVar
PPA_SetRealVar m_fnSetRealVar
PPA_SetRealFunc m_fnSetRealFunc
PPA_GetArgReal m_fnGetArgReal
PPA_IsRunning m_fnIsRunning
PPA_SetFinishProc m_fnSetFinishProc
char | m_szMsg [80]
CPPAからのメッセージを保持する

Static Private 変数

static CMemory | m_cMemRet
コールバックからDLLに渡す文字列を保持
static CEditView * | m_pcEditView = NULL
static DLLSHAREDATA * | m_pShareData = NULL
static bool | m_bError = false
static CMemory | m_cMemDebug

説明

PPA.DLL をサポートするクラス

DLLの動的ロードを行うため、DllHandlerを継承している。

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CPPA.h の 52 行で定義されています。

型定義

typedef void(WINAPI * CPPA::PPA_Abort)() [private]

CPPA.h の 92 行で定義されています。

typedef void(WINAPI * CPPA::PPA_AddIntObj)(const char *, int, BOOL, int) [private]

CPPA.h の 100 行で定義されています。

typedef void(WINAPI * CPPA::PPA_AddIntVar)(const char *, int, int) [private]

CPPA.h の 86 行で定義されています。

typedef void(WINAPI * CPPA::PPA_AddRealObj)(const char *, double, BOOL, LONG) [private]

CPPA.h の 112 行で定義されています。

typedef void(WINAPI * CPPA::PPA_AddRealVar)(const char *, double, BOOL) [private]

CPPA.h の 110 行で定義されています。

typedef void(WINAPI * CPPA::PPA_AddStrObj)(const char *, const char *, BOOL, int) [private]

CPPA.h の 101 行で定義されています。

typedef void(WINAPI * CPPA::PPA_AddStrVar)(const char *, const char *, int) [private]

CPPA.h の 87 行で定義されています。

typedef void(WINAPI * CPPA::PPA_DeleteVar)(const char *) [private]

CPPA.h の 94 行で定義されています。

typedef void(WINAPI * CPPA::PPA_Execute)() [private]

CPPA.h の 81 行で定義されています。

typedef char*(WINAPI * CPPA::PPA_GetArgBStr)(int) [private]

CPPA.h の 97 行で定義されています。

typedef int(WINAPI * CPPA::PPA_GetArgInt)(int) [private]

CPPA.h の 95 行で定義されています。

typedef DWORD(WINAPI * CPPA::PPA_GetArgReal)(int) [private]

CPPA.h の 116 行で定義されています。

typedef char*(WINAPI * CPPA::PPA_GetArgStr)(int) [private]

CPPA.h の 96 行で定義されています。

typedef char*(WINAPI * CPPA::PPA_GetBStrVar)(const char *) [private]

CPPA.h の 104 行で定義されています。

typedef int(WINAPI * CPPA::PPA_GetIntVar)(const char *) [private]

CPPA.h の 102 行で定義されています。

typedef double(WINAPI * CPPA::PPA_GetRealVar)(const char *) [private]

CPPA.h の 113 行で定義されています。

typedef char*(WINAPI * CPPA::PPA_GetStrVar)(const char *) [private]

CPPA.h の 103 行で定義されています。

typedef int(WINAPI * CPPA::PPA_GetVersion)() [private]

CPPA.h の 93 行で定義されています。

typedef BYTE(WINAPI * CPPA::PPA_IsRunning)() [private]

CPPA.h の 121 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetDeclare)(const char *) [private]

CPPA.h の 83 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetDefine)(const char *) [private]

CPPA.h の 85 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetDefProc)(const char *) [private]

CPPA.h の 84 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetErrProc)(void *) [private]

CPPA.h の 91 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetFinishProc)(void *) [private]

CPPA.h の 122 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetIntFunc)(void *) [private]

CPPA.h の 88 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetIntObj)(void *) [private]

CPPA.h の 99 行で定義されています。

typedef BOOL(WINAPI * CPPA::PPA_SetIntVar)(const char *, int) [private]

CPPA.h の 105 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetProc)(void *) [private]

CPPA.h の 90 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetRealFunc)(void *) [private]

CPPA.h の 115 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetRealObj)(void *) [private]

CPPA.h の 111 行で定義されています。

typedef BOOL(WINAPI * CPPA::PPA_SetRealVar)(const char *, double) [private]

CPPA.h の 114 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetSource)(const char *) [private]

CPPA.h の 82 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetStrFunc)(void *) [private]

CPPA.h の 89 行で定義されています。

typedef void(WINAPI * CPPA::PPA_SetStrObj)(void *) [private]

CPPA.h の 98 行で定義されています。

typedef BOOL(WINAPI * CPPA::PPA_SetStrVar)(const char *, const char *) [private]

CPPA.h の 106 行で定義されています。

コンストラクタとデストラクタ

CPPA::CPPA ( )

CPPA.cpp の 62 行で定義されています。

CPPA::~CPPA ( ) [virtual]

CPPA.cpp の 66 行で定義されています。

参照先 DeinitDll()・CDllHandler::IsAvailable().

関数

void CPPA::Abort ( ) [inline]

CPPA.h の 190 行で定義されています。

void CPPA::AddIntObj | ( | const char * | ss,
 |  | int | def,
 |  | BOOL | read,
 |  | int | index
 | ) | [inline]

CPPA.h の 206 行で定義されています。

void CPPA::AddIntVar | ( | const char * | lpszDef,
 |  | int | nVal,
 |  | int | nCnst
 | ) | [inline]

CPPA.h の 178 行で定義されています。

void CPPA::AddRealObj | ( | const char * | ss,
 |  | double | val,
 |  | BOOL | read,
 |  | LONG | index
 | ) | [inline]

CPPA.h の 226 行で定義されています。

void CPPA::AddRealVar | ( | const char * | ss,
 |  | double | val,
 |  | BOOL | cnst
 | ) | [inline]

CPPA.h の 222 行で定義されています。

void CPPA::AddStrObj | ( | const char * | ss,
 |  | const char * | def,
 |  | BOOL | read,
 |  | int | index
 | ) | [inline]

CPPA.h の 208 行で定義されています。

参照元 InitDll().

void CPPA::AddStrVar | ( | const char * | lpszDef,
 |  | const char * | lpszVal,
 |  | int | nCnst
 | ) | [inline]

CPPA.h の 180 行で定義されています。

bool CPPA::CallHandleFunction | ( | const int | Index,
 |  | const char * | Arg[],
 |  | int | ArgSize,
 |  | VARIANT * | Result
 | ) | [static, private]

引数型変換

文字列で与えられた引数をVARIANT/BSTRに変換してCMacroHandleFunction()を呼びだす

作者:
Moca

CPPA.cpp の 473 行で定義されています。

参照先 CSMacroMgr::GetFuncInfoByID().

参照元 stdIntFunc()・stdStrFunc().

int CPPA::DeinitDll ( void ) [protected, virtual]

関数の初期化

DLLのアンロードを行う直前に呼び出される．メモリの解放などを 行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外を返したときはDLLのUnloadは行われない．
注意
デストラクタからFreeLibrary及びDeinitDllが呼び出されたときは ポリモーフィズムが行われないためにサブクラスのDeinitDllが呼び出されない。 そのため、サブクラスのデストラクタではDeinitDllを明示的に呼び出す必要がある。
FreeLibraryがデストラクタ以外から呼び出される場合はDeinitDllは仮想関数として サブクラスのものが呼び出され、デストラクタは当然呼び出されないので DeinitDllそのものは必要である。

デストラクタからDeinitDllを呼ぶときは、初期化されているという保証がないので 呼び出し前にIsAvailableによる確認を必ず行うこと。

日付:
2002.04.15 genta 注意書き追加

CDllHandlerを再定義しています。

CPPA.cpp の 278 行で定義されています。

参照元 ~CPPA().

void CPPA::DeleteVar ( const char * ss ) [inline]

CPPA.h の 194 行で定義されています。

void CPPA::Execute ( class CEditView * pcEditView )

CPPA.cpp の 76 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・m_bError・m_cMemDebug・m_fnExecute・m_pcEditView・m_pShareData・CMemory::SetDataSz().

参照元 CPPAMacroMgr::ExecKeyMacro().

char* CPPA::GetArgBStr ( int index ) [inline]

CPPA.h の 200 行で定義されています。

int CPPA::GetArgInt ( int index ) [inline]

CPPA.h の 196 行で定義されています。

DWORD CPPA::GetArgReal ( int index ) [inline]

CPPA.h の 234 行で定義されています。

char* CPPA::GetArgStr ( int index ) [inline]

CPPA.h の 198 行で定義されています。

char* CPPA::GetBStrVar ( const char * ss ) [inline]

CPPA.h の 214 行で定義されています。

char * CPPA::GetDeclarations | ( | const MacroFuncInfo & | cMacroFuncInfo,
 |  | char * | szBuffer
 | ) | [static]

PPAに関数を登録するための文字列を作成する

引数:
cMacroFuncInfo | [in] マクロデータ
szBuffer | [out] 生成した文字列を入れるバッファへのポインタ
覚え書き:
バッファサイズは 9 + 3 + メソッド名の長さ + 13 * 4 + 9 + 5 は最低必要
日付:
2003.06.01 Moca スタティックメンバに変更 cMacroFuncInfo.m_pszDataを書き換えないように変更

2003.06.16 genta 無駄なnew/deleteを避けるためバッファを外から与えるように

CPPA.cpp の 208 行で定義されています。

参照先 MacroFuncInfo::m_varArguments・MacroFuncInfo::m_varResult.

参照元 InitDll().

LPCTSTR CPPA::GetDllName ( LPCTSTR ) [virtual]

DLLファイル名の取得

日付:
2001.07.05 genta 引数追加。パスの指定などに使える

2007.06.25 genta GetDllNameInOrderを使用する場合は必須ではないので， 純粋仮想関数はやめてプレースホルダーを用意する．

CDllHandlerを再定義しています。

CPPA.cpp の 85 行で定義されています。

int CPPA::GetIntVar ( const char * ss ) [inline]

CPPA.h の 210 行で定義されています。

const char* CPPA::GetLastMessage ( void ) const [inline]

PPAメッセージを取得する

CPPA.h の 66 行で定義されています。

double CPPA::GetRealVar ( const char * ss ) [inline]

CPPA.h の 228 行で定義されています。

char* CPPA::GetStrVar ( const char * ss ) [inline]

CPPA.h の 212 行で定義されています。

const char* CPPA::GetVersion ( ) [inline]

< DLLのバージョン情報を取得。m_szMsgを壊す

CPPA.h の 57 行で定義されています。

参照先 CDllHandler::IsAvailable().

int CPPA::InitDll ( void ) [protected, virtual]

DLLの初期化

関数のアドレスを取得してメンバに保管する．

戻り値:
0 | 成功
1 | アドレス取得に失敗

CDllHandlerを実装しています。

CPPA.cpp の 98 行で定義されています。

参照先 AddStrObj()・FALSE・GetDeclarations()・m_fnAbort・m_fnAddIntObj・m_fnAddIntVar・m_fnAddRealObj・m_fnAddRealVar・m_fnAddStrObj・m_fnAddStrVar・m_fnDeleteVar・m_fnExecute・m_fnGetArgBStr・m_fnGetArgInt・m_fnGetArgReal・m_fnGetArgStr・m_fnGetBStrVar・m_fnGetIntVar・m_fnGetRealVar・m_fnGetStrVar・m_fnGetVersion・m_fnIsRunning・m_fnSetDeclare・m_fnSetDefine・m_fnSetDefProc・m_fnSetErrProc・m_fnSetFinishProc・m_fnSetIntFunc・m_fnSetIntObj・m_fnSetIntVar・m_fnSetProc・m_fnSetRealFunc・m_fnSetRealObj・m_fnSetRealVar・m_fnSetSource・m_fnSetStrFunc・m_fnSetStrObj・m_fnSetStrVar・CSMacroMgr::m_MacroFuncInfoNotCommandArr・MacroFuncInfo::m_pszFuncName・NULL・CDllHandler::RegisterEntries()・SetDefine()・SetDefProc()・SetErrProc()・SetFinishProc()・SetIntFunc()・SetProc()・SetStrFunc()・SetStrObj()・stdError()・stdFinishProc()・stdIntFunc()・stdProc()・stdStrFunc()・stdStrObj().

BOOL CPPA::IsRunning ( ) [inline]

CPPA.h の 239 行で定義されています。

参照先 BOOL.

void CPPA::SetDeclare ( const char * ss ) [inline]

CPPA.h の 172 行で定義されています。

void CPPA::SetDefine ( const char * ss ) [inline]

CPPA.h の 176 行で定義されています。

参照元 InitDll().

void CPPA::SetDefProc ( const char * ss ) [inline]

CPPA.h の 174 行で定義されています。

参照元 InitDll().

void CPPA::SetErrProc ( void * proc ) [inline]

CPPA.h の 188 行で定義されています。

参照元 InitDll().

void CPPA::SetFinishProc ( void * proc ) [inline]

CPPA.h の 241 行で定義されています。

参照元 InitDll().

void CPPA::SetIntFunc ( void * proc ) [inline]

CPPA.h の 182 行で定義されています。

参照元 InitDll().

void CPPA::SetIntObj ( void * proc ) [inline]

CPPA.h の 204 行で定義されています。

BOOL CPPA::SetIntVar | ( | const char * | ss,
 |  | int | val
 | ) | [inline]

CPPA.h の 216 行で定義されています。

void CPPA::SetProc ( void * proc ) [inline]

CPPA.h の 186 行で定義されています。

参照元 InitDll().

void CPPA::SetRealFunc ( void * proc ) [inline]

CPPA.h の 232 行で定義されています。

void CPPA::SetRealObj ( void * proc ) [inline]

CPPA.h の 224 行で定義されています。

BOOL CPPA::SetRealVar | ( | const char * | ss,
 |  | double | val
 | ) | [inline]

CPPA.h の 230 行で定義されています。

void CPPA::SetSource ( const char * ss ) [inline]

CPPA.h の 170 行で定義されています。

参照元 CPPAMacroMgr::ExecKeyMacro().

void CPPA::SetStrFunc ( void * proc ) [inline]

CPPA.h の 184 行で定義されています。

参照元 InitDll().

void CPPA::SetStrObj ( void * proc ) [inline]

CPPA.h の 202 行で定義されています。

参照元 InitDll().

BOOL CPPA::SetStrVar | ( | const char * | ss,
 |  | const char * | val
 | ) | [inline]

CPPA.h の 218 行で定義されています。

void __stdcall CPPA::stdError | ( | int | Err_CD,
 |  | const char * | Err_Mes
 | ) | [static, private]

ユーザー定義関数のエラーメッセージの作成

stdProc, stdIntFunc, stdStrFunc がエラーコードを返した場合、PPAから呼び出される。 異常終了/不正引数時のエラーメッセージを独自に指定する。

作者:
Moca
引数:
Err_CD | IN 0以外各コールバック関数が設定した値 1以上 FuncID + 1 0 PPAのエラー -1以下 その他ユーザ定義エラー
Err_Mes | IN エラーメッセージ
日付:
2003.06.01 Moca

CPPA.cpp の 326 行で定義されています。

参照先 m_bError・CSMacroMgr::m_MacroFuncInfoNotCommandArr・MacroFuncInfo::m_nFuncID.

参照元 InitDll().

void __stdcall CPPA::stdFinishProc ( ) [static, private]

PPAマクロの実行終了時に呼ばれる

日付:
2003.06.01 Moca

CPPA.cpp の 536 行で定義されています。

参照先 m_bError・m_cMemDebug・m_cMemRet・m_pShareData・NULL・CMemory::SetDataSz().

参照元 InitDll().

void __stdcall CPPA::stdIntFunc | ( | const char * | FuncName,
 |  | const int | Index,
 |  | const char * | Argument[],
 |  | const int | ArgSize,
 |  | int * | Err_CD,
 |  | int * | ResultValue
 | ) | [static, private]

整数値を返す関数を処理する

PPAから呼びだされる

作者:
Moca
日付:
2003.02.24 Moca

CPPA.cpp の 397 行で定義されています。

参照先 CallHandleFunction()・NEVER_USED_PARAM.

参照元 InitDll().

void __stdcall CPPA::stdProc | ( | const char * | FuncName,
 |  | const int | Index,
 |  | const char * | Argument[],
 |  | const int | ArgSize,
 |  | int * | Err_CD
 | ) | [static, private]

CPPA.cpp の 379 行で定義されています。

参照先 CMacro::HandleCommand()・m_pcEditView・NEVER_USED_PARAM.

参照元 InitDll().

void __stdcall CPPA::stdStrFunc | ( | const char * | FuncName,
 |  | const int | Index,
 |  | const char * | Argument[],
 |  | const int | ArgSize,
 |  | int * | Err_CD,
 |  | char ** | ResultValue
 | ) | [static, private]

文字列を返す関数を処理する

PPAから呼びだされる

日付:
2003.02.24 Moca CallHandleFunction対応

CPPA.cpp の 437 行で定義されています。

参照先 CallHandleFunction()・CMemory::GetPtr()・m_cMemRet・NEVER_USED_PARAM・CMemory::SetData()・Wrap().

参照元 InitDll().

void __stdcall CPPA::stdStrObj | ( | const char * | ObjName,
 |  | int | Index,
 |  | BYTE | GS_Mode,
 |  | int * | Err_CD,
 |  | char ** | Value
 | ) | [static, private]

ユーザー定義文字列型オブジェクト 現在は、デバッグ用文字列を設定する為のみ

CPPA.cpp の 290 行で定義されています。

参照先 CMemory::GetPtr()・m_cMemDebug・NEVER_USED_PARAM・omGet・omSet・CMemory::SetDataSz().

参照元 InitDll().

変数

bool CPPA::m_bError = false [static, private]

CPPA.h の 264 行で定義されています。

参照元 Execute()・stdError()・stdFinishProc().

CMemory CPPA::m_cMemDebug [static, private]

CPPA.h の 265 行で定義されています。

参照元 Execute()・stdFinishProc()・stdStrObj().

CMemory CPPA::m_cMemRet [static, private]

コールバックからDLLに渡す文字列を保持

CPPA.h の 261 行で定義されています。

参照元 stdFinishProc()・stdStrFunc().

PPA_Abort CPPA::m_fnAbort [private]

CPPA.h の 136 行で定義されています。

参照元 InitDll().

PPA_AddIntObj CPPA::m_fnAddIntObj [private]

CPPA.h の 144 行で定義されています。

参照元 InitDll().

PPA_AddIntVar CPPA::m_fnAddIntVar [private]

CPPA.h の 130 行で定義されています。

参照元 InitDll().

PPA_AddRealObj CPPA::m_fnAddRealObj [private]

CPPA.h の 155 行で定義されています。

参照元 InitDll().

PPA_AddRealVar CPPA::m_fnAddRealVar [private]

CPPA.h の 153 行で定義されています。

参照元 InitDll().

PPA_AddStrObj CPPA::m_fnAddStrObj [private]

CPPA.h の 145 行で定義されています。

参照元 InitDll().

PPA_AddStrVar CPPA::m_fnAddStrVar [private]

CPPA.h の 131 行で定義されています。

参照元 InitDll().

PPA_DeleteVar CPPA::m_fnDeleteVar [private]

CPPA.h の 138 行で定義されています。

参照元 InitDll().

PPA_Execute CPPA::m_fnExecute [private]

CPPA.h の 125 行で定義されています。

参照元 Execute()・InitDll().

PPA_GetArgBStr CPPA::m_fnGetArgBStr [private]

CPPA.h の 141 行で定義されています。

参照元 InitDll().

PPA_GetArgInt CPPA::m_fnGetArgInt [private]

CPPA.h の 139 行で定義されています。

参照元 InitDll().

PPA_GetArgReal CPPA::m_fnGetArgReal [private]

CPPA.h の 159 行で定義されています。

参照元 InitDll().

PPA_GetArgStr CPPA::m_fnGetArgStr [private]

CPPA.h の 140 行で定義されています。

参照元 InitDll().

PPA_GetBStrVar CPPA::m_fnGetBStrVar [private]

CPPA.h の 148 行で定義されています。

参照元 InitDll().

PPA_GetIntVar CPPA::m_fnGetIntVar [private]

CPPA.h の 146 行で定義されています。

参照元 InitDll().

PPA_GetRealVar CPPA::m_fnGetRealVar [private]

CPPA.h の 156 行で定義されています。

参照元 InitDll().

PPA_GetStrVar CPPA::m_fnGetStrVar [private]

CPPA.h の 147 行で定義されています。

参照元 InitDll().

PPA_GetVersion CPPA::m_fnGetVersion [private]

CPPA.h の 137 行で定義されています。

参照元 InitDll().

PPA_IsRunning CPPA::m_fnIsRunning [private]

CPPA.h の 163 行で定義されています。

参照元 InitDll().

PPA_SetDeclare CPPA::m_fnSetDeclare [private]

CPPA.h の 127 行で定義されています。

参照元 InitDll().

PPA_SetDefine CPPA::m_fnSetDefine [private]

CPPA.h の 129 行で定義されています。

参照元 InitDll().

PPA_SetDefProc CPPA::m_fnSetDefProc [private]

CPPA.h の 128 行で定義されています。

参照元 InitDll().

PPA_SetErrProc CPPA::m_fnSetErrProc [private]

CPPA.h の 135 行で定義されています。

参照元 InitDll().

PPA_SetFinishProc CPPA::m_fnSetFinishProc [private]

CPPA.h の 164 行で定義されています。

参照元 InitDll().

PPA_SetIntFunc CPPA::m_fnSetIntFunc [private]

CPPA.h の 132 行で定義されています。

参照元 InitDll().

PPA_SetIntObj CPPA::m_fnSetIntObj [private]

CPPA.h の 143 行で定義されています。

参照元 InitDll().

PPA_SetIntVar CPPA::m_fnSetIntVar [private]

CPPA.h の 149 行で定義されています。

参照元 InitDll().

PPA_SetProc CPPA::m_fnSetProc [private]

CPPA.h の 134 行で定義されています。

参照元 InitDll().

PPA_SetRealFunc CPPA::m_fnSetRealFunc [private]

CPPA.h の 158 行で定義されています。

参照元 InitDll().

PPA_SetRealObj CPPA::m_fnSetRealObj [private]

CPPA.h の 154 行で定義されています。

参照元 InitDll().

PPA_SetRealVar CPPA::m_fnSetRealVar [private]

CPPA.h の 157 行で定義されています。

参照元 InitDll().

PPA_SetSource CPPA::m_fnSetSource [private]

CPPA.h の 126 行で定義されています。

参照元 InitDll().

PPA_SetStrFunc CPPA::m_fnSetStrFunc [private]

CPPA.h の 133 行で定義されています。

参照元 InitDll().

PPA_SetStrObj CPPA::m_fnSetStrObj [private]

CPPA.h の 142 行で定義されています。

参照元 InitDll().

PPA_SetStrVar CPPA::m_fnSetStrVar [private]

CPPA.h の 150 行で定義されています。

参照元 InitDll().

CEditView * CPPA::m_pcEditView = NULL [static, private]

CPPA.h の 262 行で定義されています。

参照元 Execute()・stdProc().

DLLSHAREDATA * CPPA::m_pShareData = NULL [static, private]

CPPA.h の 263 行で定義されています。

参照元 Execute()・stdFinishProc().

char CPPA::m_szMsg[80] [private]

CPPAからのメッセージを保持する

CPPA.h の 259 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CPPA.h
  • CPPA.cpp
Sakura-Editorに対してSat Oct 27 02:35:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPPA メンバ一覧

これは全メンバの一覧です。CPPA継承メンバも含んでいます。

Abort() | CPPA | [inline]
AddIntObj(const char *ss, int def, BOOL read, int index) | CPPA | [inline]
AddIntVar(const char *lpszDef, int nVal, int nCnst) | CPPA | [inline]
AddRealObj(const char *ss, double val, BOOL read, LONG index) | CPPA | [inline]
AddRealVar(const char *ss, double val, BOOL cnst) | CPPA | [inline]
AddStrObj(const char *ss, const char *def, BOOL read, int index) | CPPA | [inline]
AddStrVar(const char *lpszDef, const char *lpszVal, int nCnst) | CPPA | [inline]
CallHandleFunction(const int Index, const char *Arg[], int ArgSize, VARIANT *Result) | CPPA | [private, static]
CDllHandler() | CDllHandler |
CPPA() | CPPA |
DeinitDll(void) | CPPA | [protected, virtual]
DeleteVar(const char *ss) | CPPA | [inline]
Execute(class CEditView *pcEditView) | CPPA |
FreeLibrary(bool force=false) | CDllHandler |
GetArgBStr(int index) | CPPA | [inline]
GetArgInt(int index) | CPPA | [inline]
GetArgReal(int index) | CPPA | [inline]
GetArgStr(int index) | CPPA | [inline]
GetBStrVar(const char *ss) | CPPA | [inline]
GetDeclarations(const MacroFuncInfo &, char *buf) | CPPA | [static]
GetDllName(LPCTSTR) | CPPA | [virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
GetIntVar(const char *ss) | CPPA | [inline]
GetLastMessage(void) const | CPPA | [inline]
GetRealVar(const char *ss) | CPPA | [inline]
GetStrVar(const char *ss) | CPPA | [inline]
GetVersion() | CPPA | [inline]
Init(const char *str=NULL) | CDllHandler | [inline]
InitDll(void) | CPPA | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsRunning() | CPPA | [inline]
LoadLibrary(const char *str=NULL) | CDllHandler |
m_bError | CPPA | [private, static]
m_cMemDebug | CPPA | [private, static]
m_cMemRet | CPPA | [private, static]
m_fnAbort | CPPA | [private]
m_fnAddIntObj | CPPA | [private]
m_fnAddIntVar | CPPA | [private]
m_fnAddRealObj | CPPA | [private]
m_fnAddRealVar | CPPA | [private]
m_fnAddStrObj | CPPA | [private]
m_fnAddStrVar | CPPA | [private]
m_fnDeleteVar | CPPA | [private]
m_fnExecute | CPPA | [private]
m_fnGetArgBStr | CPPA | [private]
m_fnGetArgInt | CPPA | [private]
m_fnGetArgReal | CPPA | [private]
m_fnGetArgStr | CPPA | [private]
m_fnGetBStrVar | CPPA | [private]
m_fnGetIntVar | CPPA | [private]
m_fnGetRealVar | CPPA | [private]
m_fnGetStrVar | CPPA | [private]
m_fnGetVersion | CPPA | [private]
m_fnIsRunning | CPPA | [private]
m_fnSetDeclare | CPPA | [private]
m_fnSetDefine | CPPA | [private]
m_fnSetDefProc | CPPA | [private]
m_fnSetErrProc | CPPA | [private]
m_fnSetFinishProc | CPPA | [private]
m_fnSetIntFunc | CPPA | [private]
m_fnSetIntObj | CPPA | [private]
m_fnSetIntVar | CPPA | [private]
m_fnSetProc | CPPA | [private]
m_fnSetRealFunc | CPPA | [private]
m_fnSetRealObj | CPPA | [private]
m_fnSetRealVar | CPPA | [private]
m_fnSetSource | CPPA | [private]
m_fnSetStrFunc | CPPA | [private]
m_fnSetStrObj | CPPA | [private]
m_fnSetStrVar | CPPA | [private]
m_pcEditView | CPPA | [private, static]
m_pShareData | CPPA | [private, static]
m_szMsg | CPPA | [private]
operator!(void) const | CDllHandler | [inline]
PPA_Abort typedef | CPPA | [private]
PPA_AddIntObj typedef | CPPA | [private]
PPA_AddIntVar typedef | CPPA | [private]
PPA_AddRealObj typedef | CPPA | [private]
PPA_AddRealVar typedef | CPPA | [private]
PPA_AddStrObj typedef | CPPA | [private]
PPA_AddStrVar typedef | CPPA | [private]
PPA_DeleteVar typedef | CPPA | [private]
PPA_Execute typedef | CPPA | [private]
PPA_GetArgBStr typedef | CPPA | [private]
PPA_GetArgInt typedef | CPPA | [private]
PPA_GetArgReal typedef | CPPA | [private]
PPA_GetArgStr typedef | CPPA | [private]
PPA_GetBStrVar typedef | CPPA | [private]
PPA_GetIntVar typedef | CPPA | [private]
PPA_GetRealVar typedef | CPPA | [private]
PPA_GetStrVar typedef | CPPA | [private]
PPA_GetVersion typedef | CPPA | [private]
PPA_IsRunning typedef | CPPA | [private]
PPA_SetDeclare typedef | CPPA | [private]
PPA_SetDefine typedef | CPPA | [private]
PPA_SetDefProc typedef | CPPA | [private]
PPA_SetErrProc typedef | CPPA | [private]
PPA_SetFinishProc typedef | CPPA | [private]
PPA_SetIntFunc typedef | CPPA | [private]
PPA_SetIntObj typedef | CPPA | [private]
PPA_SetIntVar typedef | CPPA | [private]
PPA_SetProc typedef | CPPA | [private]
PPA_SetRealFunc typedef | CPPA | [private]
PPA_SetRealObj typedef | CPPA | [private]
PPA_SetRealVar typedef | CPPA | [private]
PPA_SetSource typedef | CPPA | [private]
PPA_SetStrFunc typedef | CPPA | [private]
PPA_SetStrObj typedef | CPPA | [private]
PPA_SetStrVar typedef | CPPA | [private]
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
SetDeclare(const char *ss) | CPPA | [inline]
SetDefine(const char *ss) | CPPA | [inline]
SetDefProc(const char *ss) | CPPA | [inline]
SetErrProc(void *proc) | CPPA | [inline]
SetFinishProc(void *proc) | CPPA | [inline]
SetIntFunc(void *proc) | CPPA | [inline]
SetIntObj(void *proc) | CPPA | [inline]
SetIntVar(const char *ss, int val) | CPPA | [inline]
SetProc(void *proc) | CPPA | [inline]
SetRealFunc(void *proc) | CPPA | [inline]
SetRealObj(void *proc) | CPPA | [inline]
SetRealVar(const char *ss, double val) | CPPA | [inline]
SetSource(const char *ss) | CPPA | [inline]
SetStrFunc(void *proc) | CPPA | [inline]
SetStrObj(void *proc) | CPPA | [inline]
SetStrVar(const char *ss, const char *val) | CPPA | [inline]
stdError(int, const char *) | CPPA | [private, static]
stdFinishProc() | CPPA | [private, static]
stdIntFunc(const char *FuncName, const int Index, const char *Argument[], const int ArgSize, int *Err_CD, int *ResultValue) | CPPA | [private, static]
stdProc(const char *FuncName, const int Index, const char *Argument[], const int ArgSize, int *Err_CD) | CPPA | [private, static]
stdStrFunc(const char *FuncName, const int Index, const char *Argument[], const int ArgSize, int *Err_CD, char **ResultValue) | CPPA | [private, static]
stdStrObj(const char *, int, BYTE, int *, char **) | CPPA | [private, static]
~CDllHandler() | CDllHandler | [virtual]
~CPPA() | CPPA | [virtual]

Sakura-Editorに対してSat Oct 27 02:35:46 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CPPAMacroMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CPPAMacroMgr

PPAマクロ [詳細]

#include <CPPAMacroMgr.h>

CPPAMacroMgrに対する継承グラフ

[凡例]
CPPAMacroMgrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CPPAMacroMgr ()
~CPPAMacroMgr ()
virtual void | ExecKeyMacro (class CEditView *pcEditView) const
virtual BOOL | LoadKeyMacro (HINSTANCE hInstance, const char *pszPath)

Static Public メソッド

static CMacroManagerBase * | Creator (const char *)
Factory
static void | declare (void)

Static Public 変数

static class CPPA | m_cPPA

Protected 変数

CMemory m_cBuffer

説明

PPAマクロ

CPPAMacroMgr.h の 27 行で定義されています。

コンストラクタとデストラクタ

CPPAMacroMgr::CPPAMacroMgr ( )

CPPAMacroMgr.cpp の 23 行で定義されています。

CPPAMacroMgr::~CPPAMacroMgr ( )

CPPAMacroMgr.cpp の 27 行で定義されています。

関数

CMacroManagerBase * CPPAMacroMgr::Creator ( const char * ext ) [static]

Factory

引数:
ext [in] オブジェクト生成の判定に使う拡張子(小文字)
日付:
2004.01.31 genta RegisterExtの廃止のためRegisterCreatorに置き換え そのため，過ったオブジェクト生成を行わないために拡張子チェックは必須．

CPPAMacroMgr.cpp の 77 行で定義されています。

参照先 NULL.

参照元 declare().

void CPPAMacroMgr::declare ( void ) [static]

CPPAMacroManagerの登録

PPAが利用できないときは何もしない。

日付:
2004.01.31 genta RegisterExtの廃止のためRegisterCreatorに置き換え

CPPAMacroMgr.cpp の 91 行で定義されています。

参照先 Creator()・CDllHandler::Init()・CMacroFactory::Instance()・m_cPPA・CMacroFactory::RegisterCreator().

参照元 CSMacroMgr::CSMacroMgr().

void CPPAMacroMgr::ExecKeyMacro ( class CEditView * pcEditView ) const [virtual]

キーボードマクロの実行 PPA.DLLに、バッファ内容を渡して実行。

CMacroManagerBaseを実装しています。

CPPAMacroMgr.cpp の 34 行で定義されています。

参照先 CPPA::Execute()・CMemory::GetPtr()・m_cBuffer・m_cPPA・CPPA::SetSource().

BOOL CPPAMacroMgr::LoadKeyMacro | ( | HINSTANCE | hInstance,
 |  | const char * | pszPath
 | ) | [virtual]

キーボードマクロの読み込み エラーメッセージは出しません。呼び出し側でよきにはからってください。

CMacroManagerBaseを実装しています。

CPPAMacroMgr.cpp の 43 行で定義されています。

参照先 CMemory::Append()・FALSE・LINEREADBUFSIZE・m_cBuffer・CMacroManagerBase::m_nReady・NULL・CMemory::SetData()・TRUE.

変数

CMemory CPPAMacroMgr::m_cBuffer [protected]

CPPAMacroMgr.h の 49 行で定義されています。

参照元 ExecKeyMacro()・LoadKeyMacro().

CPPA CPPAMacroMgr::m_cPPA [static]

CPPAMacroMgr.h の 42 行で定義されています。

参照元 declare()・ExecKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CPPAMacroMgr.h
  • CPPAMacroMgr.cpp
Sakura-Editorに対してSat Oct 27 02:35:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPPAMacroMgr メンバ一覧

これは全メンバの一覧です。CPPAMacroMgr継承メンバも含んでいます。

CMacroManagerBase() | CMacroManagerBase |
CPPAMacroMgr() | CPPAMacroMgr |
Creator(const char *) | CPPAMacroMgr | [static]
declare(void) | CPPAMacroMgr | [static]
ExecKeyMacro(class CEditView *pcEditView) const | CPPAMacroMgr | [virtual]
IsReady() | CMacroManagerBase | [inline]
LoadKeyMacro(HINSTANCE hInstance, const char *pszPath) | CPPAMacroMgr | [virtual]
m_cBuffer | CPPAMacroMgr | [protected]
m_cPPA | CPPAMacroMgr | [static]
m_nReady | CMacroManagerBase | [protected]
~CMacroManagerBase() | CMacroManagerBase | [virtual]
~CPPAMacroMgr() | CPPAMacroMgr |

Sakura-Editorに対してSat Oct 27 02:35:48 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CPrint

  • 構成
  • クラス階層
  • 構成メンバ

クラス CPrint

印刷関連機能 [詳細]

#include <CPrint.h>

CPrintのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CPrint ()
~CPrint ()
BOOL | GetDefaultPrinter (MYDEVMODE *pMYDEVMODE)
デフォルトのプリンタを取得し、MYDEVMODE に設定
BOOL | PrintDlg (PRINTDLG *pd, MYDEVMODE *pMYDEVMODE)
プリンタダイアログを表示して、プリンタを選択する
BOOL | GetPrintMetrics (MYDEVMODE *pMYDEVMODE, int *pnPaperAllWidth, int *pnPaperAllHeight, int *pnPaperWidth, int *pnPaperHeight, int *pnPaperOffsetLeft, int *pnPaperOffsetTop, char *pszErrMsg)
BOOL | PrintOpen (char *pszJobName, MYDEVMODE *pMYDEVMODE, HDC *phdc, char *pszErrMsg)
void | PrintStartPage (HDC)
void | PrintEndPage (HDC)
void | PrintClose (HDC)

Static Public メソッド

static void | SettingInitialize (PRINTSETTING &, const char *settingName)
PRINTSETTINGの初期化
static char * | GetPaperName (int, char *)
static BOOL | GetPaperSize (int *pnPaperAllWidth, int *pnPaperAllHeight, MYDEVMODE *pDEVMODE)

Static Public 変数

static const PAPER_INFO | m_paperInfoArr []
用紙情報一覧
static const int | m_nPaperInfoArrNum = sizeof( m_paperInfoArr ) / sizeof( m_paperInfoArr[0] )
用紙情報一覧の要素数

Protected メソッド

HDC | CreateDC (MYDEVMODE *pMYDEVMODE, char *pszErrMsg)
プリンタをオープンし、hDCを作成する

Static Protected メソッド

static const PAPER_INFO * | FindPaperInfo (int id)

Private 変数

HGLOBAL | m_hDevMode
現在プリンタのDEVMODEへのメモリハンドル
HGLOBAL | m_hDevNames
現在プリンタのDEVNAMESへのメモリハンドル

説明

印刷関連機能

オブジェクト指向でないクラス

CPrint.h の 70 行で定義されています。

コンストラクタとデストラクタ

CPrint::CPrint ( )

CPrint.cpp の 77 行で定義されています。

参照先 m_hDevMode・m_hDevNames・NULL.

CPrint::~CPrint ( )

CPrint.cpp の 84 行で定義されています。

参照先 m_hDevMode・m_hDevNames・NULL.

関数

HDC CPrint::CreateDC | ( | MYDEVMODE * | pMYDEVMODE,
 |  | char * | pszErrMsg
 | ) | [protected]

プリンタをオープンし、hDCを作成する

CPrint.cpp の 242 行で定義されています。

参照先 MYDEVMODE::dmFields・MYDEVMODE::dmOrientation・MYDEVMODE::dmPaperLength・MYDEVMODE::dmPaperSize・MYDEVMODE::dmPaperWidth・FALSE・m_hDevMode・MYDEVMODE::m_szPrinterDeviceName・MYDEVMODE::m_szPrinterDriverName・MYDEVMODE::m_szPrinterOutputName・NULL.

参照元 GetPrintMetrics()・PrintOpen().

const PAPER_INFO * CPrint::FindPaperInfo ( int id ) [static, protected]

用紙情報の取得

日付:
2006.08.14 Moca 新規作成 用紙情報の統合

CPrint.cpp の 536 行で定義されています。

参照先 m_nPaperInfoArrNum.

参照元 GetPaperName()・GetPaperSize().

BOOL CPrint::GetDefaultPrinter ( MYDEVMODE * pMYDEVMODE )

デフォルトのプリンタを取得し、MYDEVMODE に設定

引数:
pMYDEVMODE [out] 印刷設定

CPrint.cpp の 179 行で定義されています。

参照先 FALSE・MYDEVMODE::m_bPrinterNotFound・m_hDevMode・m_hDevNames・MYTRACE・NULL・PrintDlg()・TRUE.

参照元 CPrintPreview::GetDefaultPrinterInfo()・PrintDlg().

char * CPrint::GetPaperName | ( | int | ,
 |  | char * |
 | ) | [static]

CPrint.cpp の 517 行で定義されています。

参照先 FindPaperInfo()・PAPER_INFO::m_pszName・NULL.

参照元 CPrintPreview::OnPaint().

BOOL CPrint::GetPaperSize | ( | int * | pnPaperAllWidth,
 |  | int * | pnPaperAllHeight,
 |  | MYDEVMODE * | pDEVMODE
 | ) | [static]

CPrint.cpp の 385 行で定義されています。

参照先 MYDEVMODE::dmFields・MYDEVMODE::dmOrientation・MYDEVMODE::dmPaperLength・MYDEVMODE::dmPaperSize・MYDEVMODE::dmPaperWidth・FALSE・FindPaperInfo()・PAPER_INFO::m_nAllHeight・PAPER_INFO::m_nAllWidth・NULL・TRUE.

参照元 GetPrintMetrics()・CDlgPrintSetting::OnTimer().

BOOL CPrint::GetPrintMetrics | ( | MYDEVMODE * | pMYDEVMODE,
 |  | int * | pnPaperAllWidth,
 |  | int * | pnPaperAllHeight,
 |  | int * | pnPaperWidth,
 |  | int * | pnPaperHeight,
 |  | int * | pnPaperOffsetLeft,
 |  | int * | pnPaperOffsetTop,
 |  | char * | pszErrMsg
 | ) |

CPrint.cpp の 317 行で定義されています。

参照先 BOOL・CreateDC()・FALSE・GetPaperSize()・NULL・TRUE.

参照元 CPrintPreview::OnChangePrintSetting().

void CPrint::PrintClose ( HDC )

CPrint.cpp の 506 行で定義されています。

BOOL CPrint::PrintDlg | ( | PRINTDLG * | pPD,
 |  | MYDEVMODE * | pMYDEVMODE
 | ) |

プリンタダイアログを表示して、プリンタを選択する

引数:
pPD | [i/o] プリンタダイアログ構造体
pMYDEVMODE | [i/o] 印刷設定
作者:
かろと
日付:
2003.

CPrint.cpp の 109 行で定義されています。

参照先 MYDEVMODE::dmFields・MYDEVMODE::dmOrientation・MYDEVMODE::dmPaperLength・MYDEVMODE::dmPaperSize・MYDEVMODE::dmPaperWidth・FALSE・GetDefaultPrinter()・m_hDevMode・m_hDevNames・MYDEVMODE::m_szPrinterDeviceName・MYDEVMODE::m_szPrinterDriverName・MYDEVMODE::m_szPrinterOutputName・MYTRACE・NULL・TRUE.

参照元 CPrintPreview::DispatchEvent_PPB()・GetDefaultPrinter().

void CPrint::PrintEndPage ( HDC )

CPrint.cpp の 498 行で定義されています。

BOOL CPrint::PrintOpen | ( | char * | pszJobName,
 |  | MYDEVMODE * | pMYDEVMODE,
 |  | HDC * | phdc,
 |  | char * | pszErrMsg
 | ) |

CPrint.cpp の 439 行で定義されています。

参照先 BOOL・CreateDC()・FALSE・MYDEVMODE::m_szPrinterDeviceName・NULL・TRUE.

void CPrint::PrintStartPage ( HDC )

CPrint.cpp の 489 行で定義されています。

void CPrint::SettingInitialize | ( | PRINTSETTING & | pPrintSetting,
 |  | const char * | settingName
 | ) | [static]

PRINTSETTINGの初期化

ここではm_mdmDevModeの プリンタ設定は取得・初期化しない

日付:
2006.08.14 Moca Initializeから名称変更。初期化単位をShareDate全てからPRINTSETTING単位に変更． 本関数からDLLSHAREDATAへアクセスする代わりに，CShareDataからPPRINTSETTING単位で逐一渡してもらう．

CPrint.cpp の 554 行で定義されています。

参照先 FALSE・PRINTSETTING::m_bFooterUse・PRINTSETTING::m_bHeaderUse・PRINTSETTING::m_bPrintKinsokuHead・PRINTSETTING::m_bPrintKinsokuKuto・PRINTSETTING::m_bPrintKinsokuRet・PRINTSETTING::m_bPrintKinsokuTail・PRINTSETTING::m_bPrintLineNumber・PRINTSETTING::m_bPrintWordWrap・PRINTSETTING::m_nPrintDanSpace・PRINTSETTING::m_nPrintDansuu・PRINTSETTING::m_nPrintFontHeight・PRINTSETTING::m_nPrintFontWidth・PRINTSETTING::m_nPrintLineSpacing・PRINTSETTING::m_nPrintMarginBY・PRINTSETTING::m_nPrintMarginLX・PRINTSETTING::m_nPrintMarginRX・PRINTSETTING::m_nPrintMarginTY・PRINTSETTING::m_nPrintPaperOrientation・PRINTSETTING::m_nPrintPaperSize・PRINTSETTING::m_szFooterForm・PRINTSETTING::m_szHeaderForm・PRINTSETTING::m_szPrintFontFaceHan・PRINTSETTING::m_szPrintFontFaceZen・PRINTSETTING::m_szPrintSettingName・TRUE.

変数

HGLOBAL CPrint::m_hDevMode [private]

現在プリンタのDEVMODEへのメモリハンドル

CPrint.h の 138 行で定義されています。

参照元 CPrint()・CreateDC()・GetDefaultPrinter()・PrintDlg()・~CPrint().

HGLOBAL CPrint::m_hDevNames [private]

現在プリンタのDEVNAMESへのメモリハンドル

CPrint.h の 139 行で定義されています。

参照元 CPrint()・GetDefaultPrinter()・PrintDlg()・~CPrint().

const int CPrint::m_nPaperInfoArrNum = sizeof( m_paperInfoArr ) / sizeof( m_paperInfoArr[0] ) [static]

用紙情報一覧の要素数

CPrint.h の 74 行で定義されています。

参照元 FindPaperInfo()・CDlgPrintSetting::SetData().

const PAPER_INFO CPrint::m_paperInfoArr [static]

用紙情報一覧

CPrint.h の 73 行で定義されています。

参照元 CDlgPrintSetting::SetData().

このクラスの説明は次のファイルから生成されました:
  • CPrint.h
  • CPrint.cpp
Sakura-Editorに対してSat Oct 27 02:35:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPrint メンバ一覧

これは全メンバの一覧です。CPrint継承メンバも含んでいます。

CPrint() | CPrint |
CreateDC(MYDEVMODE *pMYDEVMODE, char *pszErrMsg) | CPrint | [protected]
FindPaperInfo(int id) | CPrint | [protected, static]
GetDefaultPrinter(MYDEVMODE *pMYDEVMODE) | CPrint |
GetPaperName(int, char *) | CPrint | [static]
GetPaperSize(int *pnPaperAllWidth, int *pnPaperAllHeight, MYDEVMODE *pDEVMODE) | CPrint | [static]
GetPrintMetrics(MYDEVMODE *pMYDEVMODE, int *pnPaperAllWidth, int *pnPaperAllHeight, int *pnPaperWidth, int *pnPaperHeight, int *pnPaperOffsetLeft, int *pnPaperOffsetTop, char *pszErrMsg) | CPrint |
m_hDevMode | CPrint | [private]
m_hDevNames | CPrint | [private]
m_nPaperInfoArrNum | CPrint | [static]
m_paperInfoArr | CPrint | [static]
PrintClose(HDC) | CPrint |
PrintDlg(PRINTDLG *pd, MYDEVMODE *pMYDEVMODE) | CPrint |
PrintEndPage(HDC) | CPrint |
PrintOpen(char *pszJobName, MYDEVMODE *pMYDEVMODE, HDC *phdc, char *pszErrMsg) | CPrint |
PrintStartPage(HDC) | CPrint |
SettingInitialize(PRINTSETTING &, const char *settingName) | CPrint | [static]
~CPrint() | CPrint |

Sakura-Editorに対してSat Oct 27 02:35:49 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CPrintPreview

  • 構成
  • クラス階層
  • 構成メンバ

クラス CPrintPreview

#include <CPrintPreview.h>

CPrintPreviewのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CPrintPreview (class CEditWnd *pParentWnd)
~CPrintPreview ()
LRESULT | OnPaint (HWND, UINT, WPARAM, LPARAM)
LRESULT | OnSize (WPARAM, LPARAM)
LRESULT | OnVScroll (WPARAM wParam, LPARAM lParam)
LRESULT | OnHScroll (WPARAM wParam, LPARAM lParam)
LRESULT | OnMouseMove (WPARAM wParam, LPARAM lParam)
LRESULT | OnMouseWheel (WPARAM wParam, LPARAM lParam)
void | OnChangePrintSetting (void)
void | OnPreviewGoPage (int nPage)
void | OnPreviewGoPreviousPage ()
void | OnPreviewGoNextPage ()
void | OnPreviewGoDirectPage (void)
ページ番号直接指定によるジャンプ
void | OnPreviewZoom (BOOL bZoomUp)
void | OnPrint (void)
BOOL | OnPrintPageSetting (void)
void | OnCheckAntialias (void)
void | InitPreviewScrollBar (void)
void | CreatePrintPreviewControls (void)
void | DestroyPrintPreviewControls (void)
void | SetFocusToPrintPreviewBar (void)
HWND | GetPrintPreviewBarHANDLE (void)
INT_PTR | DispatchEvent_PPB (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
void | SetPrintSetting (PRINTSETTING *pPrintSetting)
BOOL | GetDefaultPrinterInfo ()
int | GetCurPageNum ()
int | GetAllPageNum ()
void | SetHeader (char *pszWork[])
void | SetFooter (char *pszWork[])

Static Public メソッド

static INT_PTR CALLBACK | PrintPreviewBar_DlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static int CALLBACK | MyEnumFontFamProc (ENUMLOGFONT *pelf, NEWTEXTMETRIC *pntm, int nFontType, LPARAM lParam)

Protected メソッド

void | DrawHeader (HDC hdc, RECT &rect, HFONT hFontZen)
void | DrawPageText (HDC, int, int, int, HFONT hFontZen, class CDlgCancel *)
void | DrawFooter (HDC hdc, RECT &rect, HFONT hFontZen)
void | Print_DrawLine (HDC hdc, int x, int y, const char *pLine, int nLineLen, int nIndent, HFONT hFontZen)
void | SetPreviewFontHan (LOGFONT *lf)
void | SetPreviewFontZen (LOGFONT *lf)

Protected 変数

CEditWnd * m_pParentWnd
HDC | m_hdcCompatDC
再描画用コンパチブルDC
HBITMAP | m_hbmpCompatBMP
再描画用メモリBMP
HBITMAP | m_hbmpCompatBMPOld
再描画用メモリBMP(OLD)
int | m_nbmpCompatScale
BMPの画面の10(COMPAT_BMP_BASE)ピクセル幅あたりのBMPのピクセル幅
HWND | m_hwndPrintPreviewBar
int | m_nPreviewVScrollPos
int | m_nPreviewHScrollPos
BOOL | m_SCROLLBAR_HORZ
BOOL | m_SCROLLBAR_VERT
HWND | m_hwndVScrollBar
HWND | m_hwndHScrollBar
HWND | m_hwndSizeBox
BOOL | m_SizeBoxCanMove
int | m_nPreview_Zoom
int | m_nPreview_ViewWidth
int | m_nPreview_ViewHeight
int | m_nPreview_ViewMarginLeft
int | m_nPreview_ViewMarginTop
int | m_nPreview_PaperAllWidth
int | m_nPreview_PaperAllHeight
int | m_nPreview_PaperWidth
int | m_nPreview_PaperHeight
int | m_nPreview_PaperOffsetLeft
int | m_nPreview_PaperOffsetTop
int | m_bPreview_EnableColms
int | m_bPreview_EnableLines
int | m_nPreview_LineNumberColmns
int | m_nAllPageNum
int | m_nCurPageNum
PRINTSETTING * m_pPrintSetting
LOGFONT | m_lfPreviewHan
LOGFONT | m_lfPreviewZen
CLayoutMgr * m_pLayoutMgr_Print
int | m_pnDx [MAXLINESIZE+10]

Static Protected 変数

static CPrint | m_cPrint
現在のプリンタ情報

説明

CPrintPreview.h の 22 行で定義されています。

コンストラクタとデストラクタ

CPrintPreview::CPrintPreview ( class CEditWnd * pParentWnd )

コンストラクタ 印刷プレビューを表示するために必要な情報を初期化、領域確保。 コントロールも作成する。

CPrintPreview.cpp の 48 行で定義されています。

参照先 CreatePrintPreviewControls()・m_hdcCompatDC・CEditWnd::m_hWnd・m_pLayoutMgr_Print.

CPrintPreview::~CPrintPreview ( )

CPrintPreview.cpp の 71 行で定義されています。

参照先 DestroyPrintPreviewControls()・m_hbmpCompatBMP・m_hbmpCompatBMPOld・m_hdcCompatDC・m_pLayoutMgr_Print・NULL.

関数

void CPrintPreview::CreatePrintPreviewControls ( void )

印刷プレビューに必要なコントロールを作成する

CPrintPreview.cpp の 1501 行で定義されています。

参照先 IDD_PRINTPREVIEWBAR・CEditWnd::m_hInstance・CEditWnd::m_hWnd・m_hwndHScrollBar・m_hwndPrintPreviewBar・m_hwndSizeBox・m_hwndVScrollBar・m_pParentWnd・NULL・OnSize()・PrintPreviewBar_DlgProc()・TRUE.

参照元 CPrintPreview().

void CPrintPreview::DestroyPrintPreviewControls ( void )

印刷プレビューに必要だったコントロールを破棄する

CPrintPreview.cpp の 1597 行で定義されています。

参照先 m_hwndHScrollBar・m_hwndPrintPreviewBar・m_hwndSizeBox・m_hwndVScrollBar・NULL.

参照元 ~CPrintPreview().

INT_PTR CPrintPreview::DispatchEvent_PPB | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPrintPreview.cpp の 1661 行で定義されています。

参照先 _MAX_PATH・MYDEVMODE::dmOrientation・MYDEVMODE::dmPaperSize・F_PRINT_PREVIEW・FALSE・FuncID_To_HelpContextID()・GetHelpFilePath()・IDC_BUTTON_DIRECTPAGE・IDC_BUTTON_HELP・IDC_BUTTON_NEXTPAGE・IDC_BUTTON_PREVPAGE・IDC_BUTTON_PRINTERSELECT・IDC_BUTTON_PRINTSETTING・IDC_BUTTON_ZOOMDOWN・IDC_BUTTON_ZOOMUP・IDC_CHECK_ANTIALIAS・InitPreviewScrollBar()・COsVersionInfo::IsWin2000_or_later()・m_cPrint・CEditWnd::m_hWnd・PRINTSETTING::m_mdmDevMode・PRINTSETTING::m_nPrintPaperOrientation・PRINTSETTING::m_nPrintPaperSize・m_pParentWnd・m_pPrintSetting・MyWinHelp()・NULL・OnChangePrintSetting()・OnCheckAntialias()・OnPreviewGoDirectPage()・OnPreviewGoNextPage()・OnPreviewGoPreviousPage()・OnPreviewZoom()・OnPrint()・CEditWnd::OnPrintPageSetting()・CPrint::PrintDlg()・CEditWnd::PrintPreviewModeONOFF()・TRUE.

参照元 PrintPreviewBar_DlgProc().

void CPrintPreview::DrawFooter | ( | HDC | hdc,
 |  | RECT & | rect,
 |  | HFONT | hFontZen
 | ) | [protected]

印刷/印刷プレビュー フッタの描画

CPrintPreview.cpp の 1084 行で定義されています。

参照先 CEditDoc::ExpandParameter()・CEditWnd::m_cEditDoc・PRINTSETTING::m_nPrintFontHeight・PRINTSETTING::m_nPrintFontWidth・m_pParentWnd・m_pPrintSetting・PRINTSETTING::m_szFooterForm・POS_CENTER・POS_LEFT・POS_RIGHT・Print_DrawLine().

参照元 OnPaint().

void CPrintPreview::DrawHeader | ( | HDC | hdc,
 |  | RECT & | rect,
 |  | HFONT | hFontZen
 | ) | [protected]

印刷/印刷プレビュー ヘッダの描画

CPrintPreview.cpp の 1048 行で定義されています。

参照先 CEditDoc::ExpandParameter()・CEditWnd::m_cEditDoc・PRINTSETTING::m_nPrintFontWidth・m_pParentWnd・m_pPrintSetting・PRINTSETTING::m_szHeaderForm・POS_CENTER・POS_LEFT・POS_RIGHT・Print_DrawLine().

参照元 OnPaint().

void CPrintPreview::DrawPageText | ( | HDC | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | HFONT | hFontZen,
 |  | class CDlgCancel * |
 | ) | [protected]

CPrintPreview.cpp の 1124 行で定義されています。

参照先 BlockingHook()・m_bPreview_EnableColms・m_bPreview_EnableLines・CDialog::m_hWnd・m_nPreview_LineNumberColmns・PRINTSETTING::m_nPrintDanSpace・PRINTSETTING::m_nPrintDansuu・PRINTSETTING::m_nPrintFontHeight・PRINTSETTING::m_nPrintFontWidth・PRINTSETTING::m_nPrintLineSpacing・m_pPrintSetting・NULL.

参照元 OnPaint().

int CPrintPreview::GetAllPageNum ( ) [inline]

CPrintPreview.h の 119 行で定義されています。

参照先 m_nAllPageNum.

int CPrintPreview::GetCurPageNum ( ) [inline]

CPrintPreview.h の 118 行で定義されています。

参照先 m_nCurPageNum.

BOOL CPrintPreview::GetDefaultPrinterInfo ( ) [inline]

CPrintPreview.h の 117 行で定義されています。

参照先 CPrint::GetDefaultPrinter()・m_cPrint・PRINTSETTING::m_mdmDevMode・m_pPrintSetting.

HWND CPrintPreview::GetPrintPreviewBarHANDLE ( void ) [inline]

CPrintPreview.h の 64 行で定義されています。

参照先 m_hwndPrintPreviewBar.

参照元 CEditWnd::MessageLoop().

void CPrintPreview::InitPreviewScrollBar ( void )

CPrintPreview.cpp の 1242 行で定義されています。

参照先 FALSE・CEditWnd::m_hWnd・m_hwndHScrollBar・m_hwndPrintPreviewBar・m_hwndVScrollBar・m_nPreview_ViewHeight・m_nPreview_ViewWidth・m_nPreviewHScrollPos・m_nPreviewVScrollPos・m_pParentWnd・m_SCROLLBAR_HORZ・m_SCROLLBAR_VERT・NULL・TRUE.

参照元 DispatchEvent_PPB()・OnPreviewZoom().

int CALLBACK CPrintPreview::MyEnumFontFamProc | ( | ENUMLOGFONT * | pelf,
 |  | NEWTEXTMETRIC * | pntm,
 |  | int | nFontType,
 |  | LPARAM | lParam
 | ) | [static]

CPrintPreview.cpp の 1480 行で定義されています。

参照先 m_pPrintSetting・PRINTSETTING::m_szPrintFontFaceHan・PRINTSETTING::m_szPrintFontFaceZen・SetPreviewFontHan()・SetPreviewFontZen().

参照元 OnChangePrintSetting().

void CPrintPreview::OnChangePrintSetting ( void )

CPrintPreview.cpp の 615 行で定義されています。

参照先 CEditView::DetectWidthOfLineNumberArea_calculate()・MYDEVMODE::dmFields・MYDEVMODE::dmOrientation・MYDEVMODE::dmPaperLength・MYDEVMODE::dmPaperSize・MYDEVMODE::dmPaperWidth・FALSE・CPrint::GetPrintMetrics()・PRINTSETTING::m_bPrintLineNumber・CEditWnd::m_cEditDoc・CEditDoc::m_cEditViewArr・m_cPrint・CEditWnd::m_hWnd・PRINTSETTING::m_mdmDevMode・m_nPreview_LineNumberColmns・m_nPreview_PaperAllHeight・m_nPreview_PaperAllWidth・m_nPreview_PaperHeight・m_nPreview_PaperOffsetLeft・m_nPreview_PaperOffsetTop・m_nPreview_PaperWidth・PRINTSETTING::m_nPrintPaperOrientation・PRINTSETTING::m_nPrintPaperSize・m_pParentWnd・m_pPrintSetting・MyEnumFontFamProc()・NULL.

参照元 DispatchEvent_PPB().

void CPrintPreview::OnCheckAntialias ( void )

滑らか チェック時、2倍(COMPAT_BMP_SCALE/COMPAT_BMP_BASE)サイズでレンダリングする

CPrintPreview.cpp の 876 行で定義されています。

参照先 CEditWnd::m_hWnd・m_pParentWnd・OnSize().

参照元 DispatchEvent_PPB().

LRESULT CPrintPreview::OnHScroll | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

日付:
2006.08.14 Moca SB_LEFT, SB_RIGHTへの対応

CPrintPreview.cpp の 452 行で定義されています。

参照先 LINE_RANGE_Y・CEditWnd::m_hWnd・m_nPreviewHScrollPos・m_pParentWnd・NULL・PAGE_RANGE_Y・TRUE.

LRESULT CPrintPreview::OnMouseMove | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPrintPreview.cpp の 514 行で定義されています。

参照先 IDC_CURSOR_HAND・CEditWnd::m_bDragMode・CEditWnd::m_hInstance・CEditWnd::m_hWnd・m_hwndHScrollBar・m_hwndVScrollBar・CEditWnd::m_nDragPosOrgX・CEditWnd::m_nDragPosOrgY・m_nPreviewHScrollPos・m_nPreviewVScrollPos・m_pParentWnd・m_SCROLLBAR_HORZ・m_SCROLLBAR_VERT・NULL・TRUE.

LRESULT CPrintPreview::OnMouseWheel | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CPrintPreview.cpp の 588 行で定義されています。

参照先 BlockingHook()・CEditWnd::m_hWnd・m_hwndVScrollBar・m_pParentWnd・NULL.

LRESULT CPrintPreview::OnPaint | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

印刷プレビュー時の、WM_PAINTを処理

日付:
2007.02.11 Moca プレビューを滑らかにする機能． 拡大描画してから縮小することでアンチエイリアス効果を出す．

CPrintPreview.cpp の 97 行で定義されています。

参照先 COMPAT_BMP_BASE・MYDEVMODE::dmOrientation・MYDEVMODE::dmPaperSize・DrawFooter()・DrawHeader()・DrawPageText()・CPrint::GetPaperName()・IDC_STATIC_PAPER・IDC_STATIC_PRNDEV・m_hdcCompatDC・m_hwndPrintPreviewBar・m_lfPreviewHan・m_lfPreviewZen・PRINTSETTING::m_mdmDevMode・m_nbmpCompatScale・m_nCurPageNum・m_nPreview_PaperAllHeight・m_nPreview_PaperAllWidth・m_nPreview_ViewMarginLeft・m_nPreview_ViewMarginTop・m_nPreview_Zoom・m_nPreviewHScrollPos・m_nPreviewVScrollPos・PRINTSETTING::m_nPrintFontHeight・PRINTSETTING::m_nPrintFontWidth・PRINTSETTING::m_nPrintLineSpacing・PRINTSETTING::m_nPrintMarginBY・PRINTSETTING::m_nPrintMarginLX・PRINTSETTING::m_nPrintMarginRX・PRINTSETTING::m_nPrintMarginTY・m_pPrintSetting・MYDEVMODE::m_szPrinterDeviceName・PRINTSETTING::m_szPrintFontFaceHan・PRINTSETTING::m_szPrintFontFaceZen・NULL.

void CPrintPreview::OnPreviewGoDirectPage ( void )

ページ番号直接指定によるジャンプ

作者:
Moca

CPrintPreview.cpp の 755 行で定義されています。

参照先 CDlgInput1::DoModal()・FALSE・CEditWnd::m_hInstance・m_hwndPrintPreviewBar・m_nAllPageNum・m_nCurPageNum・m_pParentWnd.

参照元 DispatchEvent_PPB().

void CPrintPreview::OnPreviewGoNextPage ( ) [inline]

CPrintPreview.h の 46 行で定義されています。

参照先 m_nCurPageNum・OnPreviewGoPage().

参照元 DispatchEvent_PPB().

void CPrintPreview::OnPreviewGoPage ( int nPage )

CPrintPreview.cpp の 780 行で定義されています。

参照先 FALSE・IDC_BUTTON_NEXTPAGE・IDC_BUTTON_PREVPAGE・IDC_STATIC_PAGENUM・IDC_STATIC_ZOOM・CEditWnd::m_hWnd・m_hwndPrintPreviewBar・m_nAllPageNum・m_nCurPageNum・m_nPreview_Zoom・m_pParentWnd・NULL・TRUE.

参照元 OnPreviewGoNextPage()・OnPreviewGoPreviousPage().

void CPrintPreview::OnPreviewGoPreviousPage ( ) [inline]

CPrintPreview.h の 45 行で定義されています。

参照先 m_nCurPageNum・OnPreviewGoPage().

参照元 DispatchEvent_PPB().

void CPrintPreview::OnPreviewZoom ( BOOL bZoomUp )

CPrintPreview.cpp の 823 行で定義されています。

参照先 FALSE・IDC_BUTTON_ZOOMDOWN・IDC_BUTTON_ZOOMUP・IDC_STATIC_ZOOM・InitPreviewScrollBar()・CEditWnd::m_hWnd・m_hwndPrintPreviewBar・m_nPreview_Zoom・m_nPreviewHScrollPos・m_nPreviewVScrollPos・m_pParentWnd・MAX_PREVIEW_ZOOM・MIN_PREVIEW_ZOOM・NULL・OnSize()・TRUE.

参照元 DispatchEvent_PPB().

void CPrintPreview::OnPrint ( void )

CPrintPreview.cpp の 887 行で定義されています。

参照先 GSTR_APPNAME・CEditDoc::IsFilePathAvailable()・CEditWnd::m_cEditDoc・CEditWnd::m_hWnd・m_nAllPageNum・m_pParentWnd・MYMESSAGEBOX.

参照元 CEditView::Command_PRINT()・DispatchEvent_PPB().

BOOL CPrintPreview::OnPrintPageSetting ( void )

LRESULT CPrintPreview::OnSize | ( | WPARAM | ,
 |  | LPARAM |
 | ) |

CPrintPreview.cpp の 271 行で定義されています。

参照先 COMPAT_BMP_SCALE・IDC_CHECK_ANTIALIAS・COsVersionInfo::IsWin2000_or_later()・m_hbmpCompatBMP・m_hbmpCompatBMPOld・m_hdcCompatDC・CEditWnd::m_hWnd・m_hwndHScrollBar・m_hwndPrintPreviewBar・m_hwndSizeBox・m_hwndVScrollBar・m_nbmpCompatScale・m_nPreview_PaperAllHeight・m_nPreview_PaperAllWidth・m_nPreview_ViewMarginLeft・m_nPreview_ViewMarginTop・m_nPreview_Zoom・m_pParentWnd・NULL・TRUE.

参照元 CreatePrintPreviewControls()・OnCheckAntialias()・OnPreviewZoom().

LRESULT CPrintPreview::OnVScroll | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

日付:
2006.08.14 Moca SB_TOP, SB_BOTTOMへの対応

CPrintPreview.cpp の 385 行で定義されています。

参照先 LINE_RANGE_Y・CEditWnd::m_hWnd・m_nPreviewVScrollPos・m_pParentWnd・NULL・PAGE_RANGE_Y・TRUE.

void CPrintPreview::Print_DrawLine | ( | HDC | hdc,
 |  | int | x,
 |  | int | y,
 |  | const char * | pLine,
 |  | int | nLineLen,
 |  | int | nIndent,
 |  | HFONT | hFontZen
 | ) | [protected]

印刷／プレビュー 行描画

引数:
[in] nIndent 行頭折り返しインデント桁数
日付:
2006.08.14 Moca 折り返しインデントが印刷時に反映されるように

CPrintPreview.cpp の 1307 行で定義されています。

参照先 CMemory::GetSizeOfChar()・CLayoutMgr::GetTabSpace()・CEditWnd::m_cEditDoc・CEditDoc::m_cLayoutMgr・m_pParentWnd.

参照元 DrawFooter()・DrawHeader().

INT_PTR CALLBACK CPrintPreview::PrintPreviewBar_DlgProc | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static]

CPrintPreview.cpp の 1623 行で定義されています。

参照先 DispatchEvent_PPB()・DWLP_USER・FALSE・GetWindowLongPtr・NULL・SetWindowLongPtr・TRUE.

参照元 CreatePrintPreviewControls().

void CPrintPreview::SetFocusToPrintPreviewBar ( void )

CPrintPreview.cpp の 1653 行で定義されています。

参照先 m_hwndPrintPreviewBar・NULL.

void CPrintPreview::SetFooter ( char * pszWork[] )

void CPrintPreview::SetHeader ( char * pszWork[] )

void CPrintPreview::SetPreviewFontHan ( LOGFONT * lf ) [protected]

CPrintPreview.cpp の 1461 行で定義されています。

参照先 m_lfPreviewHan・PRINTSETTING::m_nPrintFontHeight・PRINTSETTING::m_nPrintFontWidth・m_pPrintSetting・PRINTSETTING::m_szPrintFontFaceHan.

参照元 MyEnumFontFamProc().

void CPrintPreview::SetPreviewFontZen ( LOGFONT * lf ) [protected]

CPrintPreview.cpp の 1471 行で定義されています。

参照先 m_lfPreviewZen・PRINTSETTING::m_nPrintFontHeight・PRINTSETTING::m_nPrintFontWidth・m_pPrintSetting・PRINTSETTING::m_szPrintFontFaceZen.

参照元 MyEnumFontFamProc().

void CPrintPreview::SetPrintSetting ( PRINTSETTING * pPrintSetting ) [inline]

CPrintPreview.h の 116 行で定義されています。

参照先 m_pPrintSetting.

変数

int CPrintPreview::m_bPreview_EnableColms [protected]

CPrintPreview.h の 175 行で定義されています。

参照元 DrawPageText().

int CPrintPreview::m_bPreview_EnableLines [protected]

CPrintPreview.h の 176 行で定義されています。

参照元 DrawPageText().

CPrint CPrintPreview::m_cPrint [static, protected]

現在のプリンタ情報

CPrintPreview.h の 189 行で定義されています。

参照元 DispatchEvent_PPB()・GetDefaultPrinterInfo()・OnChangePrintSetting().

HBITMAP CPrintPreview::m_hbmpCompatBMP [protected]

再描画用メモリBMP

CPrintPreview.h の 141 行で定義されています。

参照元 OnSize()・~CPrintPreview().

HBITMAP CPrintPreview::m_hbmpCompatBMPOld [protected]

再描画用メモリBMP(OLD)

CPrintPreview.h の 142 行で定義されています。

参照元 OnSize()・~CPrintPreview().

HDC CPrintPreview::m_hdcCompatDC [protected]

再描画用コンパチブルDC

CPrintPreview.h の 140 行で定義されています。

参照元 CPrintPreview()・OnPaint()・OnSize()・~CPrintPreview().

HWND CPrintPreview::m_hwndHScrollBar [protected]

CPrintPreview.h の 154 行で定義されています。

参照元 CreatePrintPreviewControls()・DestroyPrintPreviewControls()・InitPreviewScrollBar()・OnMouseMove()・OnSize().

HWND CPrintPreview::m_hwndPrintPreviewBar [protected]

CPrintPreview.h の 147 行で定義されています。

参照元 CreatePrintPreviewControls()・DestroyPrintPreviewControls()・GetPrintPreviewBarHANDLE()・InitPreviewScrollBar()・OnPaint()・OnPreviewGoDirectPage()・OnPreviewGoPage()・OnPreviewZoom()・OnSize()・SetFocusToPrintPreviewBar().

HWND CPrintPreview::m_hwndSizeBox [protected]

CPrintPreview.h の 156 行で定義されています。

参照元 CreatePrintPreviewControls()・DestroyPrintPreviewControls()・OnSize().

HWND CPrintPreview::m_hwndVScrollBar [protected]

CPrintPreview.h の 153 行で定義されています。

参照元 CreatePrintPreviewControls()・DestroyPrintPreviewControls()・InitPreviewScrollBar()・OnMouseMove()・OnMouseWheel()・OnSize().

LOGFONT CPrintPreview::m_lfPreviewHan [protected]

CPrintPreview.h の 182 行で定義されています。

参照元 OnPaint()・SetPreviewFontHan().

LOGFONT CPrintPreview::m_lfPreviewZen [protected]

CPrintPreview.h の 183 行で定義されています。

参照元 OnPaint()・SetPreviewFontZen().

int CPrintPreview::m_nAllPageNum [protected]

CPrintPreview.h の 178 行で定義されています。

参照元 GetAllPageNum()・OnPreviewGoDirectPage()・OnPreviewGoPage()・OnPrint().

int CPrintPreview::m_nbmpCompatScale [protected]

BMPの画面の10(COMPAT_BMP_BASE)ピクセル幅あたりのBMPのピクセル幅

CPrintPreview.h の 143 行で定義されています。

参照元 OnPaint()・OnSize().

int CPrintPreview::m_nCurPageNum [protected]

CPrintPreview.h の 179 行で定義されています。

参照元 GetCurPageNum()・OnPaint()・OnPreviewGoDirectPage()・OnPreviewGoNextPage()・OnPreviewGoPage()・OnPreviewGoPreviousPage().

int CPrintPreview::m_nPreview_LineNumberColmns [protected]

CPrintPreview.h の 177 行で定義されています。

参照元 DrawPageText()・OnChangePrintSetting().

int CPrintPreview::m_nPreview_PaperAllHeight [protected]

CPrintPreview.h の 168 行で定義されています。

参照元 OnChangePrintSetting()・OnPaint()・OnSize().

int CPrintPreview::m_nPreview_PaperAllWidth [protected]

CPrintPreview.h の 167 行で定義されています。

参照元 OnChangePrintSetting()・OnPaint()・OnSize().

int CPrintPreview::m_nPreview_PaperHeight [protected]

CPrintPreview.h の 170 行で定義されています。

参照元 OnChangePrintSetting().

int CPrintPreview::m_nPreview_PaperOffsetLeft [protected]

CPrintPreview.h の 171 行で定義されています。

参照元 OnChangePrintSetting().

int CPrintPreview::m_nPreview_PaperOffsetTop [protected]

CPrintPreview.h の 172 行で定義されています。

参照元 OnChangePrintSetting().

int CPrintPreview::m_nPreview_PaperWidth [protected]

CPrintPreview.h の 169 行で定義されています。

参照元 OnChangePrintSetting().

int CPrintPreview::m_nPreview_ViewHeight [protected]

CPrintPreview.h の 164 行で定義されています。

参照元 InitPreviewScrollBar().

int CPrintPreview::m_nPreview_ViewMarginLeft [protected]

CPrintPreview.h の 165 行で定義されています。

参照元 OnPaint()・OnSize().

int CPrintPreview::m_nPreview_ViewMarginTop [protected]

CPrintPreview.h の 166 行で定義されています。

参照元 OnPaint()・OnSize().

int CPrintPreview::m_nPreview_ViewWidth [protected]

CPrintPreview.h の 163 行で定義されています。

参照元 InitPreviewScrollBar().

int CPrintPreview::m_nPreview_Zoom [protected]

CPrintPreview.h の 160 行で定義されています。

参照元 OnPaint()・OnPreviewGoPage()・OnPreviewZoom()・OnSize().

int CPrintPreview::m_nPreviewHScrollPos [protected]

CPrintPreview.h の 150 行で定義されています。

参照元 InitPreviewScrollBar()・OnHScroll()・OnMouseMove()・OnPaint()・OnPreviewZoom().

int CPrintPreview::m_nPreviewVScrollPos [protected]

CPrintPreview.h の 149 行で定義されています。

参照元 InitPreviewScrollBar()・OnMouseMove()・OnPaint()・OnPreviewZoom()・OnVScroll().

class CLayoutMgr* CPrintPreview::m_pLayoutMgr_Print [protected]

CPrintPreview.h の 185 行で定義されています。

参照元 CPrintPreview()・~CPrintPreview().

int CPrintPreview::m_pnDx[MAXLINESIZE+10] [protected]

CPrintPreview.h の 187 行で定義されています。

CEditWnd* CPrintPreview::m_pParentWnd [protected]

CPrintPreview.h の 137 行で定義されています。

参照元 CreatePrintPreviewControls()・DispatchEvent_PPB()・DrawFooter()・DrawHeader()・InitPreviewScrollBar()・OnChangePrintSetting()・OnCheckAntialias()・OnHScroll()・OnMouseMove()・OnMouseWheel()・OnPreviewGoDirectPage()・OnPreviewGoPage()・OnPreviewZoom()・OnPrint()・OnSize()・OnVScroll()・Print_DrawLine().

PRINTSETTING* CPrintPreview::m_pPrintSetting [protected]

CPrintPreview.h の 181 行で定義されています。

参照元 DispatchEvent_PPB()・DrawFooter()・DrawHeader()・DrawPageText()・GetDefaultPrinterInfo()・MyEnumFontFamProc()・OnChangePrintSetting()・OnPaint()・SetPreviewFontHan()・SetPreviewFontZen()・SetPrintSetting().

BOOL CPrintPreview::m_SCROLLBAR_HORZ [protected]

CPrintPreview.h の 151 行で定義されています。

参照元 InitPreviewScrollBar()・OnMouseMove().

BOOL CPrintPreview::m_SCROLLBAR_VERT [protected]

CPrintPreview.h の 152 行で定義されています。

参照元 InitPreviewScrollBar()・OnMouseMove().

BOOL CPrintPreview::m_SizeBoxCanMove [protected]

CPrintPreview.h の 157 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CPrintPreview.h
  • CPrintPreview.cpp
Sakura-Editorに対してSat Oct 27 02:35:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPrintPreview メンバ一覧

これは全メンバの一覧です。CPrintPreview継承メンバも含んでいます。

CPrintPreview(class CEditWnd *pParentWnd) | CPrintPreview |
CreatePrintPreviewControls(void) | CPrintPreview |
DestroyPrintPreviewControls(void) | CPrintPreview |
DispatchEvent_PPB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPrintPreview |
DrawFooter(HDC hdc, RECT &rect, HFONT hFontZen) | CPrintPreview | [protected]
DrawHeader(HDC hdc, RECT &rect, HFONT hFontZen) | CPrintPreview | [protected]
DrawPageText(HDC, int, int, int, HFONT hFontZen, class CDlgCancel *) | CPrintPreview | [protected]
GetAllPageNum() | CPrintPreview | [inline]
GetCurPageNum() | CPrintPreview | [inline]
GetDefaultPrinterInfo() | CPrintPreview | [inline]
GetPrintPreviewBarHANDLE(void) | CPrintPreview | [inline]
InitPreviewScrollBar(void) | CPrintPreview |
m_bPreview_EnableColms | CPrintPreview | [protected]
m_bPreview_EnableLines | CPrintPreview | [protected]
m_cPrint | CPrintPreview | [protected, static]
m_hbmpCompatBMP | CPrintPreview | [protected]
m_hbmpCompatBMPOld | CPrintPreview | [protected]
m_hdcCompatDC | CPrintPreview | [protected]
m_hwndHScrollBar | CPrintPreview | [protected]
m_hwndPrintPreviewBar | CPrintPreview | [protected]
m_hwndSizeBox | CPrintPreview | [protected]
m_hwndVScrollBar | CPrintPreview | [protected]
m_lfPreviewHan | CPrintPreview | [protected]
m_lfPreviewZen | CPrintPreview | [protected]
m_nAllPageNum | CPrintPreview | [protected]
m_nbmpCompatScale | CPrintPreview | [protected]
m_nCurPageNum | CPrintPreview | [protected]
m_nPreview_LineNumberColmns | CPrintPreview | [protected]
m_nPreview_PaperAllHeight | CPrintPreview | [protected]
m_nPreview_PaperAllWidth | CPrintPreview | [protected]
m_nPreview_PaperHeight | CPrintPreview | [protected]
m_nPreview_PaperOffsetLeft | CPrintPreview | [protected]
m_nPreview_PaperOffsetTop | CPrintPreview | [protected]
m_nPreview_PaperWidth | CPrintPreview | [protected]
m_nPreview_ViewHeight | CPrintPreview | [protected]
m_nPreview_ViewMarginLeft | CPrintPreview | [protected]
m_nPreview_ViewMarginTop | CPrintPreview | [protected]
m_nPreview_ViewWidth | CPrintPreview | [protected]
m_nPreview_Zoom | CPrintPreview | [protected]
m_nPreviewHScrollPos | CPrintPreview | [protected]
m_nPreviewVScrollPos | CPrintPreview | [protected]
m_pLayoutMgr_Print | CPrintPreview | [protected]
m_pnDx | CPrintPreview | [protected]
m_pParentWnd | CPrintPreview | [protected]
m_pPrintSetting | CPrintPreview | [protected]
m_SCROLLBAR_HORZ | CPrintPreview | [protected]
m_SCROLLBAR_VERT | CPrintPreview | [protected]
m_SizeBoxCanMove | CPrintPreview | [protected]
MyEnumFontFamProc(ENUMLOGFONT *pelf, NEWTEXTMETRIC *pntm, int nFontType, LPARAM lParam) | CPrintPreview | [static]
OnChangePrintSetting(void) | CPrintPreview |
OnCheckAntialias(void) | CPrintPreview |
OnHScroll(WPARAM wParam, LPARAM lParam) | CPrintPreview |
OnMouseMove(WPARAM wParam, LPARAM lParam) | CPrintPreview |
OnMouseWheel(WPARAM wParam, LPARAM lParam) | CPrintPreview |
OnPaint(HWND, UINT, WPARAM, LPARAM) | CPrintPreview |
OnPreviewGoDirectPage(void) | CPrintPreview |
OnPreviewGoNextPage() | CPrintPreview | [inline]
OnPreviewGoPage(int nPage) | CPrintPreview |
OnPreviewGoPreviousPage() | CPrintPreview | [inline]
OnPreviewZoom(BOOL bZoomUp) | CPrintPreview |
OnPrint(void) | CPrintPreview |
OnPrintPageSetting(void) | CPrintPreview |
OnSize(WPARAM, LPARAM) | CPrintPreview |
OnVScroll(WPARAM wParam, LPARAM lParam) | CPrintPreview |
Print_DrawLine(HDC hdc, int x, int y, const char *pLine, int nLineLen, int nIndent, HFONT hFontZen) | CPrintPreview | [protected]
PrintPreviewBar_DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPrintPreview | [static]
SetFocusToPrintPreviewBar(void) | CPrintPreview |
SetFooter(char *pszWork[]) | CPrintPreview |
SetHeader(char *pszWork[]) | CPrintPreview |
SetPreviewFontHan(LOGFONT *lf) | CPrintPreview | [protected]
SetPreviewFontZen(LOGFONT *lf) | CPrintPreview | [protected]
SetPrintSetting(PRINTSETTING *pPrintSetting) | CPrintPreview | [inline]
~CPrintPreview() | CPrintPreview |

Sakura-Editorに対してSat Oct 27 02:35:51 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CProcess

  • 構成
  • クラス階層
  • 構成メンバ

クラス CProcess

プロセス基底クラス [詳細]

#include <CProcess.h>

CProcessに対する継承グラフ

[凡例]
CProcessのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CProcess (HINSTANCE hInstance, LPSTR lpCmdLine)
プロセス基底クラス
bool | Run ()
プロセス実行
virtual | ~CProcess ()

Protected メソッド

CProcess ()
virtual bool | Initialize ()
プロセスを初期化する
virtual bool | MainLoop ()=0
virtual void | Terminate ()=0

Protected 変数

HINSTANCE | m_hInstance
HWND | m_hWnd
LPSTR | m_CommandLine
CShareData m_cShareData
DLLSHAREDATA * m_pShareData

説明

プロセス基底クラス

CProcess.h の 26 行で定義されています。

コンストラクタとデストラクタ

CProcess::CProcess | ( | HINSTANCE | hInstance,
 |  | LPSTR | lpCmdLine
 | ) |

プロセス基底クラス

作者:
aroka
日付:
2002/01/07
引数:
hInstance | handle to process instance
lpCmdLine | pointer to command line

CProcess.cpp の 28 行で定義されています。

virtual CProcess::~CProcess ( ) [inline, virtual]

CProcess.h の 30 行で定義されています。

CProcess::CProcess ( ) [protected]

関数

bool CProcess::Initialize ( ) [protected, virtual]

プロセスを初期化する

共有メモリを初期化する

CControlProcess・CNormalProcessで再定義されています。

CProcess.cpp の 43 行で定義されています。

参照先 GSTR_APPNAME・CShareData::Init()・m_cShareData・MYMESSAGEBOX・NULL.

参照元 CNormalProcess::Initialize()・CControlProcess::Initialize()・Run().

virtual bool CProcess::MainLoop ( ) [protected, pure virtual]

CControlProcess・CNormalProcessで実装されています。

参照元 Run().

bool CProcess::Run ( void )

プロセス実行

作者:
aroka
日付:
2002/01/16

CProcess.cpp の 67 行で定義されています。

参照先 Initialize()・MainLoop()・Terminate().

参照元 WinMain().

virtual void CProcess::Terminate ( ) [protected, pure virtual]

CControlProcess・CNormalProcessで実装されています。

参照元 Run().

変数

LPSTR CProcess::m_CommandLine [protected]

CProcess.h の 39 行で定義されています。

CShareData CProcess::m_cShareData [protected]

CProcess.h の 42 行で定義されています。

参照元 Initialize()・CNormalProcess::Initialize()・CControlProcess::Initialize().

HINSTANCE CProcess::m_hInstance [protected]

CProcess.h の 37 行で定義されています。

参照元 CControlProcess::Initialize().

HWND CProcess::m_hWnd [protected]

CProcess.h の 38 行で定義されています。

参照元 CControlProcess::Initialize()・CNormalProcess::MainLoop()・CControlProcess::MainLoop().

DLLSHAREDATA* CProcess::m_pShareData [protected]

CProcess.h の 43 行で定義されています。

参照元 CNormalProcess::Initialize()・CControlProcess::Initialize()・CControlProcess::Terminate().

このクラスの説明は次のファイルから生成されました:
  • CProcess.h
  • CProcess.cpp
Sakura-Editorに対してSat Oct 27 02:35:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProcess メンバ一覧

これは全メンバの一覧です。CProcess継承メンバも含んでいます。

CProcess(HINSTANCE hInstance, LPSTR lpCmdLine) | CProcess |
CProcess() | CProcess | [protected]
Initialize() | CProcess | [protected, virtual]
m_CommandLine | CProcess | [protected]
m_cShareData | CProcess | [protected]
m_hInstance | CProcess | [protected]
m_hWnd | CProcess | [protected]
m_pShareData | CProcess | [protected]
MainLoop()=0 | CProcess | [protected, pure virtual]
Run() | CProcess |
Terminate()=0 | CProcess | [protected, pure virtual]
~CProcess() | CProcess | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:35:52 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CProcessFactory

  • 構成
  • クラス階層
  • 構成メンバ

クラス CProcessFactory

プロセス生成クラス [詳細]

#include <CProcessFactory.h>

すべてのメンバ一覧

Public メソッド

CProcess * | Create (HINSTANCE hInstance, LPSTR lpCmdLine)
プロセスクラスを生成する

Private メソッド

bool | IsValidVersion ()
Windowsバージョンのチェック
bool | IsStartingControlProcess ()
コマンドラインに -NOWIN があるかを判定する。
bool | IsExistControlProcess ()
bool | StartControlProcess ()
コントロールプロセスを起動する
bool | WaitForInitializedControlProcess ()
コントロールプロセスの初期化完了イベントを待つ。
bool | TestWriteQuit ()
「設定を保存して終了する」オプション処理（sakuext連携用）

説明

プロセス生成クラス

与えられたコマンドライン引数から生成すべきプロセスの種別を判定し， 対応するオブジェクトを返すFactoryクラス．

通常のエディタプロセスの起動が指定された場合には，必要に応じてコントロールプロセス 起動の起動をエディタの起動に先立って行う．

CProcessFactory.h の 34 行で定義されています。

関数

CProcess * CProcessFactory::Create | ( | HINSTANCE | hInstance,
 |  | LPSTR | lpCmdLine
 | ) |

プロセスクラスを生成する

コマンドライン、コントロールプロセスの有無を判定し、 適当なプロセスクラスを生成する。

引数:
[in] | hInstance | インスタンスハンドル
[in] | lpCmdLine | コマンドライン文字列
作者:
aroka
日付:
2002/01/08

2006/04/10 ryoji

CProcessFactory.cpp の 48 行で定義されています。

参照先 CCommandLine::Instance()・IsExistControlProcess()・IsStartingControlProcess()・IsValidVersion()・StartControlProcess()・TestWriteQuit()・WaitForInitializedControlProcess().

参照元 WinMain().

bool CProcessFactory::IsExistControlProcess ( ) [private]

コントロールプロセスの有無を調べる。

作者:
aroka
日付:
2002/01/03

2006/04/10 ryoji

CProcessFactory.cpp の 141 行で定義されています。

参照先 FALSE・GSTR_MUTEX_SAKURA_CP・NULL.

参照元 Create()・WaitForInitializedControlProcess().

bool CProcessFactory::IsStartingControlProcess ( ) [private]

コマンドラインに -NOWIN があるかを判定する。

作者:
aroka
日付:
2002/01/03 作成 2002/01/18 変更

CProcessFactory.cpp の 129 行で定義されています。

参照先 CCommandLine::Instance()・CCommandLine::IsNoWindow().

参照元 Create().

bool CProcessFactory::IsValidVersion ( ) [private]

Windowsバージョンのチェック

Windows 95以上，Windows NT4.0以上であることを確認する． Windows 95系では残りリソースのチェックも行う．

作者:
aroka
日付:
2002/01/03

CProcessFactory.cpp の 94 行で定義されています。

参照先 COsVersionInfo::GetVersion()・GSTR_APPNAME・MYMESSAGEBOX・NULL・COsVersionInfo::OsIsEnableVersion().

参照元 Create().

bool CProcessFactory::StartControlProcess ( ) [private]

コントロールプロセスを起動する

自分自身に -NOWIN オプションを付けて起動する． 共有メモリをチェックしてはいけないので，残念ながらCEditAppOpenNewEditorは使えない．

作者:
genta
日付:
Aug. 28, 2001

CProcessFactory.cpp の 163 行で定義されています。

参照先 FALSE・GSTR_APPNAME・MY_RUNNINGTIMER・MYMESSAGEBOX・NULL.

参照元 Create().

bool CProcessFactory::TestWriteQuit ( ) [private]

「設定を保存して終了する」オプション処理（sakuext連携用）

作者:
ryoji
日付:
2007.09.04

CProcessFactory.cpp の 279 行で定義されています。

参照先 _MAX_PATH・FALSE・CShareData::GetIniFileNameDirect()・CCommandLine::Instance().

参照元 Create().

bool CProcessFactory::WaitForInitializedControlProcess ( ) [private]

コントロールプロセスの初期化完了イベントを待つ。

作者:
ryoji by assitance with karoto
日付:
2006/04/10

CProcessFactory.cpp の 236 行で定義されています。

参照先 FALSE・GSTR_APPNAME・GSTR_EVENT_SAKURA_CP_INITIALIZED・IsExistControlProcess()・MYMESSAGEBOX・NULL.

参照元 Create().

このクラスの説明は次のファイルから生成されました:
  • CProcessFactory.h
  • CProcessFactory.cpp
Sakura-Editorに対してSat Oct 27 02:35:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProcessFactory メンバ一覧

これは全メンバの一覧です。CProcessFactory継承メンバも含んでいます。

Create(HINSTANCE hInstance, LPSTR lpCmdLine) | CProcessFactory |
IsExistControlProcess() | CProcessFactory | [private]
IsStartingControlProcess() | CProcessFactory | [private]
IsValidVersion() | CProcessFactory | [private]
StartControlProcess() | CProcessFactory | [private]
TestWriteQuit() | CProcessFactory | [private]
WaitForInitializedControlProcess() | CProcessFactory | [private]

Sakura-Editorに対してSat Oct 27 02:35:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CProfile

  • 構成
  • クラス階層
  • 構成メンバ

クラス CProfile

INIファイル入出力 [詳細]

#include <CProfile.h>

すべてのメンバ一覧

Public メソッド

CProfile ()
~CProfile ()
void | Init (void)
bool | IsReadingMode (void)
void | SetReadingMode (void)
void | SetWritingMode (void)
bool | ReadProfile (const TCHAR *)
bool | WriteProfile (const TCHAR *, const TCHAR *)
bool | IOProfileData (const TCHAR *, const TCHAR *, bool &)
bool | IOProfileData (const TCHAR *, const TCHAR *, int &)
bool | IOProfileData (const TCHAR *, const TCHAR *, WORD &)
bool | IOProfileData (const TCHAR *, const TCHAR *, TCHAR &)
bool | IOProfileData (const TCHAR *, const TCHAR *, TCHAR *, const int &)
bool | IOProfileData (const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &, std::basic_string< TCHAR > &)
void | DUMP (void)

Protected メソッド

void | ReadOneline (const std::basic_string< TCHAR > &line)
bool | WriteFile (const std::basic_string< TCHAR > &, std::vector< std::basic_string< TCHAR > > &)
bool | GetProfileData (const TCHAR *, const TCHAR *, bool &)
bool | GetProfileData (const TCHAR *, const TCHAR *, int &)
bool | GetProfileData (const TCHAR *, const TCHAR *, WORD &)
bool | GetProfileData (const TCHAR *, const TCHAR *, TCHAR &)
bool | GetProfileData (const TCHAR *, const TCHAR *, TCHAR *, const int &)
bool | GetProfileData (const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &, std::basic_string< TCHAR > &)
bool | SetProfileData (const TCHAR *, const TCHAR *, const bool &)
bool | SetProfileData (const TCHAR *, const TCHAR *, const int &)
bool | SetProfileData (const TCHAR *, const TCHAR *, const WORD &)
bool | SetProfileData (const TCHAR *, const TCHAR *, const TCHAR &)
bool | SetProfileData (const TCHAR *, const TCHAR *, const TCHAR *, const int &)
bool | SetProfileData (const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &)

Protected 変数

std::basic_string< TCHAR > | m_strProfileName
最後に読み書きしたファイル名
std::vector< Section > | m_ProfileData
bool | m_bRead
モード(true=読み込み/false=書き出し)

Private 型

typedef std::pair< std::basic_string<
TCHAR >, std::basic_string<
TCHAR > > 		PAIR_STR_STR
typedef std::map< std::basic_string<
TCHAR >, std::basic_string<
TCHAR > > 		MAP_STR_STR

構成

struct | Section

説明

INIファイル入出力

CProfile.h の 51 行で定義されています。

型定義

typedef std::map< std::basic_string< TCHAR >, std::basic_string< TCHAR > > CProfile::MAP_STR_STR [private]

CProfile.h の 54 行で定義されています。

typedef std::pair< std::basic_string< TCHAR >, std::basic_string< TCHAR > > CProfile::PAIR_STR_STR [private]

CProfile.h の 53 行で定義されています。

コンストラクタとデストラクタ

CProfile::CProfile ( ) [inline]

CProfile.h の 62 行で定義されています。

CProfile::~CProfile ( ) [inline]

CProfile.h の 63 行で定義されています。

関数

void CProfile::DUMP ( void )

CProfile.cpp の 683 行で定義されています。

参照先 m_ProfileData・MYTRACE.

bool CProfile::GetProfileData | ( | const std::basic_string< TCHAR > & | strSectionName,
 |  | const std::basic_string< TCHAR > & | strEntryKey,
 |  | std::basic_string< TCHAR > & | strEntryValue
 | ) | [protected]

エントリ値をProfileから読み込む

引数:
[in] | strSectionName | セクション名
[in] | strEntryKey | エントリ名
[out] | strEntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2003-10-22 D.S.Koba 作成

CProfile.cpp の 612 行で定義されています。

参照先 m_ProfileData.

bool CProfile::GetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | TCHAR * | pEntryValue,
 |  | const int & | nEntryValueSize
 | ) | [protected]

エントリ値(NULL文字終端の文字列)をProfileから読み込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[out] | pEntryValue | エントリ値
[in] | nEntryValueSize | pEntryValueの確保メモリサイズ(サイズが十分であることが明確なら 0 指定可)
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 556 行で定義されています。

参照先 GetProfileData().

bool CProfile::GetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | TCHAR & | chEntryValue
 | ) | [protected]

エントリ値(TCHAR型)をProfileから読み込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[out] | EntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 508 行で定義されています。

参照先 GetProfileData().

bool CProfile::GetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | WORD & | wEntryValue
 | ) | [protected]

エントリ値(WORD型)をProfileから読み込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[out] | wEntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 455 行で定義されています。

参照先 GetProfileData().

bool CProfile::GetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | int & | nEntryValue
 | ) | [protected]

エントリ値(int型)をProfileから読み込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[out] | nEntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

2004-02-14 MIK _tstoi→_ttoi

CProfile.cpp の 400 行で定義されています。

参照先 GetProfileData().

bool CProfile::GetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | bool & | bEntryValue
 | ) | [protected]

エントリ値(bool型)をProfileから読み込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[out] | bEntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 352 行で定義されています。

参照元 GetProfileData()・IOProfileData().

void CProfile::Init ( void )

Profileを初期化

日付:
2003-10-21 D.S.Koba STLで書き直す

CProfile.cpp の 52 行で定義されています。

参照先 m_bRead・m_ProfileData・m_strProfileName.

bool CProfile::IOProfileData | ( | const std::basic_string< TCHAR > & | ,
 |  | const std::basic_string< TCHAR > & | ,
 |  | std::basic_string< TCHAR > & |
 | ) |

CProfile.cpp の 331 行で定義されています。

参照先 GetProfileData()・m_bRead・SetProfileData().

bool CProfile::IOProfileData | ( | const TCHAR * | ,
 |  | const TCHAR * | ,
 |  | TCHAR * | ,
 |  | const int & |
 | ) |

CProfile.cpp の 320 行で定義されています。

参照先 GetProfileData()・m_bRead・SetProfileData().

bool CProfile::IOProfileData | ( | const TCHAR * | ,
 |  | const TCHAR * | ,
 |  | TCHAR & |
 | ) |

CProfile.cpp の 313 行で定義されています。

参照先 GetProfileData()・m_bRead・SetProfileData().

bool CProfile::IOProfileData | ( | const TCHAR * | ,
 |  | const TCHAR * | ,
 |  | WORD & |
 | ) |

CProfile.cpp の 306 行で定義されています。

参照先 GetProfileData()・m_bRead・SetProfileData().

bool CProfile::IOProfileData | ( | const TCHAR * | ,
 |  | const TCHAR * | ,
 |  | int & |
 | ) |

CProfile.cpp の 299 行で定義されています。

参照先 GetProfileData()・m_bRead・SetProfileData().

bool CProfile::IOProfileData | ( | const TCHAR * | ,
 |  | const TCHAR * | ,
 |  | bool & |
 | ) |

CProfile.cpp の 292 行で定義されています。

参照先 GetProfileData()・m_bRead・SetProfileData().

参照元 CShareData::IO_ColorSet()・CShareData::ShareData_IO_Cmd()・CShareData::ShareData_IO_Common()・CShareData::ShareData_IO_CustMenu()・CShareData::ShareData_IO_Folders()・CShareData::ShareData_IO_Font()・CShareData::ShareData_IO_Grep()・CShareData::ShareData_IO_KeyBind()・CShareData::ShareData_IO_Keys()・CShareData::ShareData_IO_KeyWords()・CShareData::ShareData_IO_Macro()・CShareData::ShareData_IO_Mru()・CShareData::ShareData_IO_Nickname()・CShareData::ShareData_IO_Other()・CShareData::ShareData_IO_Print()・CShareData::ShareData_IO_Toolbar()・CShareData::ShareData_IO_Types().

bool CProfile::IsReadingMode ( void ) [inline]

CProfile.h の 65 行で定義されています。

参照先 m_bRead.

参照元 CShareData::IO_ColorSet()・CShareData::ShareData_IO_Common()・CShareData::ShareData_IO_Font()・CShareData::ShareData_IO_KeyBind()・CShareData::ShareData_IO_KeyWords()・CShareData::ShareData_IO_Macro()・CShareData::ShareData_IO_Print()・CShareData::ShareData_IO_Types().

void CProfile::ReadOneline ( const std::basic_string< TCHAR > & line ) [protected]

sakura.iniの1行を処理する．

1行の読み込みが完了するごとに呼ばれる．

引数:
line [in] 読み込んだ行

CProfile.cpp の 67 行で定義されています。

参照先 m_ProfileData・CProfile::Section::strSectionName.

参照元 ReadProfile().

bool CProfile::ReadProfile ( const TCHAR * pszProfileName )

Profileをファイルから読み出す

引数:
pszProfileName [in] ファイル名
戻り値:
true | 成功
false | 失敗
日付:
2003-10-21 D.S.Koba STLで書き直す

2003-10-26 D.S.Koba ReadProfile()から分離

2004-01-29 genta stream使用をやめてCライブラリ使用に．

2004-01-31 genta 行の解析の方を別関数にしてReadFileをReadProfileに

CProfile.cpp の 110 行で定義されています。

参照先 m_strProfileName・ReadOneline().

参照元 CShareData::ShareData_IO_2().

bool CProfile::SetProfileData | ( | const std::basic_string< TCHAR > & | strSectionName,
 |  | const std::basic_string< TCHAR > & | strEntryKey,
 |  | const std::basic_string< TCHAR > & | strEntryValue
 | ) | [protected]

エントリをProfileへ書き込む

引数:
[in] | strSectionName | セクション名
[in] | strEntryKey | エントリ名
[in] | strEntryValue | エントリ値
戻り値:
true | 成功
false | 失敗(処理を入れていないのでfalseは返らない)
日付:
2003-10-21 D.S.Koba 作成

CProfile.cpp の 645 行で定義されています。

参照先 m_ProfileData.

bool CProfile::SetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | const TCHAR * | pEntryValue,
 |  | const int & | nEntryValueSize
 | ) | [protected]

エントリ値(NULL文字終端の文字列)をProfileへ書き込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[in] | pEntryValue | エントリ値
[in] | nEntryValueSize | pEntryValueの確保メモリサイズ(使用しない)
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 591 行で定義されています。

参照先 SetProfileData().

bool CProfile::SetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | const TCHAR & | chEntryValue
 | ) | [protected]

エントリ値(TCHAR型)をProfileへ書き込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[in] | chEntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 532 行で定義されています。

参照先 SetProfileData().

bool CProfile::SetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | const WORD & | wEntryValue
 | ) | [protected]

エントリ値(WORD型)をProfileへ書き込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[in] | EntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 481 行で定義されています。

参照先 SetProfileData().

bool CProfile::SetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | const int & | nEntryValue
 | ) | [protected]

エントリ値(int型)をProfileへ書き込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[in] | EntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

2004-02-14 MIK _tstoi→_ttoi

CProfile.cpp の 428 行で定義されています。

参照先 SetProfileData().

bool CProfile::SetProfileData | ( | const TCHAR * | pszSectionName,
 |  | const TCHAR * | pszEntryKey,
 |  | const bool & | bEntryValue
 | ) | [protected]

エントリ値(bool型)をProfileへ書き込む

引数:
[in] | pszSectionName | セクション名
[in] | pszEntryKey | エントリ名
[in] | bEntryValue | エントリ値
戻り値:
true | 成功
false | 失敗
日付:
2004-01-10 D.S.Koba エントリの型別に関数を分離

CProfile.cpp の 376 行で定義されています。

参照元 IOProfileData()・SetProfileData().

void CProfile::SetReadingMode ( void ) [inline]

CProfile.h の 66 行で定義されています。

参照先 m_bRead.

参照元 CPropTypes::p3_Import_Colors()・CShareData::ShareData_IO_2().

void CProfile::SetWritingMode ( void ) [inline]

CProfile.h の 67 行で定義されています。

参照先 m_bRead.

参照元 CPropTypes::p3_Export_Colors()・CShareData::ShareData_IO_2().

bool CProfile::WriteFile | ( | const std::basic_string< TCHAR > & | strFilename,
 |  | std::vector< std::basic_string< TCHAR > > & | vecLine
 | ) | [protected]

ファイルへ書き込む

引数:
strFilename | [in] ファイル名
vecLine | [out] 文字列格納先
戻り値:
true | 成功
false | 失敗
日付:
2004-01-28 D.S.Koba WriteProfile()から分離

2004-01-29 genta stream使用をやめてCライブラリ使用に．

CProfile.cpp の 243 行で定義されています。

bool CProfile::WriteProfile | ( | const TCHAR * | pszProfileName,
 |  | const TCHAR * | pszComment
 | ) |

Profileをファイルへ書き出す

引数:
pszProfileName | [in] ファイル名(NULL=最後に読み書きしたファイル)
pszComment | [in] コメント文(NULL=コメント省略)
戻り値:
true | 成功
false | 失敗
日付:
2003-10-21 D.S.Koba STLで書き直す

2004-01-28 D.S.Koba ファイル書き込み部を分離

CProfile.cpp の 200 行で定義されています。

参照先 m_ProfileData・m_strProfileName・NULL.

変数

bool CProfile::m_bRead [protected]

モード(true=読み込み/false=書き出し)

CProfile.h の 100 行で定義されています。

参照元 Init()・IOProfileData()・IsReadingMode()・SetReadingMode()・SetWritingMode().

std::vector< Section > CProfile::m_ProfileData [protected]

CProfile.h の 99 行で定義されています。

参照元 DUMP()・GetProfileData()・Init()・ReadOneline()・SetProfileData()・WriteProfile().

std::basic_string< TCHAR > CProfile::m_strProfileName [protected]

最後に読み書きしたファイル名

CProfile.h の 98 行で定義されています。

参照元 Init()・ReadProfile()・WriteProfile().

このクラスの説明は次のファイルから生成されました:
  • CProfile.h
  • CProfile.cpp
Sakura-Editorに対してSat Oct 27 02:35:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProfile メンバ一覧

これは全メンバの一覧です。CProfile継承メンバも含んでいます。

CProfile() | CProfile | [inline]
DUMP(void) | CProfile |
GetProfileData(const TCHAR *, const TCHAR *, bool &) | CProfile | [protected]
GetProfileData(const TCHAR *, const TCHAR *, int &) | CProfile | [protected]
GetProfileData(const TCHAR *, const TCHAR *, WORD &) | CProfile | [protected]
GetProfileData(const TCHAR *, const TCHAR *, TCHAR &) | CProfile | [protected]
GetProfileData(const TCHAR *, const TCHAR *, TCHAR *, const int &) | CProfile | [protected]
GetProfileData(const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &, std::basic_string< TCHAR > &) | CProfile | [protected]
Init(void) | CProfile |
IOProfileData(const TCHAR *, const TCHAR *, bool &) | CProfile |
IOProfileData(const TCHAR *, const TCHAR *, int &) | CProfile |
IOProfileData(const TCHAR *, const TCHAR *, WORD &) | CProfile |
IOProfileData(const TCHAR *, const TCHAR *, TCHAR &) | CProfile |
IOProfileData(const TCHAR *, const TCHAR *, TCHAR *, const int &) | CProfile |
IOProfileData(const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &, std::basic_string< TCHAR > &) | CProfile |
IsReadingMode(void) | CProfile | [inline]
m_bRead | CProfile | [protected]
m_ProfileData | CProfile | [protected]
m_strProfileName | CProfile | [protected]
MAP_STR_STR typedef | CProfile | [private]
PAIR_STR_STR typedef | CProfile | [private]
ReadOneline(const std::basic_string< TCHAR > &line) | CProfile | [protected]
ReadProfile(const TCHAR *) | CProfile |
SetProfileData(const TCHAR *, const TCHAR *, const bool &) | CProfile | [protected]
SetProfileData(const TCHAR *, const TCHAR *, const int &) | CProfile | [protected]
SetProfileData(const TCHAR *, const TCHAR *, const WORD &) | CProfile | [protected]
SetProfileData(const TCHAR *, const TCHAR *, const TCHAR &) | CProfile | [protected]
SetProfileData(const TCHAR *, const TCHAR *, const TCHAR *, const int &) | CProfile | [protected]
SetProfileData(const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &, const std::basic_string< TCHAR > &) | CProfile | [protected]
SetReadingMode(void) | CProfile | [inline]
SetWritingMode(void) | CProfile | [inline]
WriteFile(const std::basic_string< TCHAR > &, std::vector< std::basic_string< TCHAR > > &) | CProfile | [protected]
WriteProfile(const TCHAR *, const TCHAR *) | CProfile |
~CProfile() | CProfile | [inline]

Sakura-Editorに対してSat Oct 27 02:35:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 CProfile::Section

  • 構成
  • クラス階層
  • 構成メンバ
CProfile::Section

構造体 CProfile::Section

すべてのメンバ一覧

Public 変数

std::basic_string< TCHAR > strSectionName
MAP_STR_STR mapEntries

説明

CProfile.h の 55 行で定義されています。

変数

MAP_STR_STR CProfile::Section::mapEntries

CProfile.h の 58 行で定義されています。

std::basic_string< TCHAR > CProfile::Section::strSectionName

CProfile.h の 57 行で定義されています。

参照元 CProfile::ReadOneline().

この構造体の説明は次のファイルから生成されました:
  • CProfile.h
Sakura-Editorに対してSat Oct 27 02:35:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CProfile::Section メンバ一覧

これは全メンバの一覧です。CProfile::Section継承メンバも含んでいます。

mapEntries | CProfile::Section
strSectionName | CProfile::Section

Sakura-Editorに対してSat Oct 27 02:35:53 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CPropCommon

  • 構成
  • クラス階層
  • 構成メンバ

クラス CPropCommon

共通設定ダイアログボックスクラス [詳細]

#include <CPropCommon.h>

CPropCommonのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CPropCommon ()
~CPropCommon ()
void | Create (HINSTANCE, HWND, CImageListMgr *, CSMacroMgr *, CMenuDrawer *)
int | DoPropertySheet (int)
void | InitData (void)
DLLSHAREDATAから一時データ領域に設定を複製する
void | ApplyData (void)
一時データ領域からにDLLSHAREDATA設定をコピーする

Public 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hwndThis
int | m_nPageNum
DLLSHAREDATA * m_pShareData
int | m_nSettingType
CImageListMgr * m_pcIcons
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
int | m_Types_nKeyWordSetIdx [MAX_TYPES][MAX_KEYWORDSET_PER_TYPE]
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)
BOOL | SelectColor (HWND, COLORREF *)
INT_PTR | DispatchEvent_p1 (HWND, UINT, WPARAM, LPARAM)
void | SetData_p1 (HWND)
int | GetData_p1 (HWND)
INT_PTR | DispatchEvent_p2 (HWND, UINT, WPARAM, LPARAM)
Message Handler for File page
void | SetData_p2 (HWND)
int | GetData_p2 (HWND)
INT_PTR | DispatchEvent_p5 (HWND, UINT, WPARAM, LPARAM)
Message Handler for Key Bind page
void | SetData_p5 (HWND)
int | GetData_p5 (HWND)
void | p5_ChangeKeyList (HWND)
void | p5_Import_KeySetting (HWND)
void | p5_Export_KeySetting (HWND)
INT_PTR | DispatchEvent_PROP_TOOLBAR (HWND, UINT, WPARAM, LPARAM)
Message Handler for Toolbar page
void | SetData_PROP_TOOLBAR (HWND)
int | GetData_PROP_TOOLBAR (HWND)
void | DrawToolBarItemList (DRAWITEMSTRUCT *)
INT_PTR | DispatchEvent_p7 (HWND, UINT, WPARAM, LPARAM)
Message Handler for Keyword page
void | SetData_p7 (HWND)
void | SetData_p7_KeyWordSet (HWND, int)
int | GetData_p7 (HWND)
void | GetData_p7_KeyWordSet (HWND, int)
void | DispKeywordCount (HWND hwndDlg)
INT_PTR | DispatchEvent_p8 (HWND, UINT, WPARAM, LPARAM)
Message Handler for Custom Menu page
void | SetData_p8 (HWND)
int | GetData_p8 (HWND)
INT_PTR | DispatchEvent_p9 (HWND, UINT, WPARAM, LPARAM)
Message Handler for Format page
void | SetData_p9 (HWND)
int | GetData_p9 (HWND)
void | ChangeDateExample (HWND hwndDlg)
void | ChangeTimeExample (HWND hwndDlg)
INT_PTR | DispatchEvent_p10 (HWND, UINT, WPARAM, LPARAM)
Message Handler for Custom Menu page
void | SetData_p10 (HWND)
int | GetData_p10 (HWND)
INT_PTR | DispatchEvent_PROP_BACKUP (HWND, UINT, WPARAM, LPARAM)
Message Handler for Backup page
void | SetData_PROP_BACKUP (HWND)
int | GetData_PROP_BACKUP (HWND)
INT_PTR | DispatchEvent_PROP_WIN (HWND, UINT, WPARAM, LPARAM)
Message Handler for Window page
void | SetData_PROP_WIN (HWND)
int | GetData_PROP_WIN (HWND)
INT_PTR | DispatchEvent_PROP_TAB (HWND, UINT, WPARAM, LPARAM)
Message Handler for TAB page
void | SetData_PROP_TAB (HWND)
int | GetData_PROP_TAB (HWND)
void | EnableTabPropInput (HWND hwndDlg)
INT_PTR | DispatchEvent_PROP_EDIT (HWND, UINT, WPARAM, LPARAM)
Message Handler for edit page
void | SetData_PROP_EDIT (HWND)
int | GetData_PROP_EDIT (HWND)
INT_PTR | DispatchEvent_PROP_GREP (HWND, UINT, WPARAM, LPARAM)
Message Handler for Grep page
void | SetData_PROP_GREP (HWND)
int | GetData_PROP_GREP (HWND)
void | SetRegexpVersion (HWND)
INT_PTR | DispatchEvent_PROP_Macro (HWND, UINT, WPARAM, LPARAM)
Message Handler for Macro page
void | SetData_PROP_Macro (HWND)
ダイアログデータの設定 Macro
int | GetData_PROP_Macro (HWND)
ダイアログデータの取得 Macro
void | InitDialog_PROP_Macro (HWND hwndDlg)
Macroページの初期化
void | SetMacro2List_Macro (HWND hwndDlg)
Macroデータの設定
void | SelectBaseDir_Macro (HWND hwndDlg)
Macroディレクトリの選択
void | OnFileDropdown_Macro (HWND hwndDlg)
ファイルドロップダウンが開かれるとき
void | CheckListPosition_Macro (HWND hwndDlg)
リストビューのFocus位置確認
INT_PTR | DispatchEvent_PROP_FILENAME (HWND, UINT, WPARAM, LPARAM)
Message Handler for FileName page
void | SetData_PROP_FILENAME (HWND)
int | GetData_PROP_FILENAME (HWND)
void | p7_Edit_List_KeyWord (HWND, HWND)
void | p7_Delete_List_KeyWord (HWND, HWND)
void | p7_Import_List_KeyWord (HWND, HWND)
void | p7_Export_List_KeyWord (HWND, HWND)
void | p7_Clean_List_KeyWord (HWND, HWND)
キーワードを整頓する
void | p8_Import_CustMenuSetting (HWND)
p7:リスト中のキーワードを整理する 2005.01.26 Moca
void | p8_Export_CustMenuSetting (HWND)
void | EnableBackupInput (HWND hwndDlg)
void | UpdateBackupFile (HWND hwndDlg)
void | EnableFilePropInput (HWND hwndDlg)
void | EnableWinPropInput (HWND hwndDlg)
void | EnableFormatPropInput (HWND hwndDlg)

Static Protected メソッド

static INT_PTR | DlgProc (INT_PTR(CPropCommon::*DispatchPage)(HWND, UINT, WPARAM, LPARAM), HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
汎用ダイアログプロシージャ
static INT_PTR CALLBACK | DlgProc_PROP_GENERAL (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
全般ページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_FILE (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
ファイルページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_KEYBIND (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
キー割り当てページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_TOOLBAR (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
ツールバーページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_KEYWORD (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
キーワードページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_CUSTMENU (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
カスタムメニューページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_FORMAT (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
書式ページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_HELPER (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
支援ページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_BACKUP (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
バックアップページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_WIN (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
ウィンドウページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_TAB (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
タブ動作ページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_EDIT (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
編集ページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_GREP (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
GREPページのDialog Procedure
static INT_PTR CALLBACK | DlgProc_PROP_MACRO (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
マクロページのDialog Procedure
static int CALLBACK | DirCallback_Macro (HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
static INT_PTR CALLBACK | DlgProc_PROP_FILENAME (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
ファイル名表示ページのDialog Procedure
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のアイテムを移動する

Protected 変数

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

説明

共通設定ダイアログボックスクラス

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

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CPropCommon.h の 60 行で定義されています。

コンストラクタとデストラクタ

CPropCommon::CPropCommon ( )

CPropCommon.cpp の 160 行で定義されています。

参照先 GetHelpFilePath()・CShareData::getInstance()・CShareData::GetShareData()・m_hInstance・m_hwndParent・m_hwndThis・m_nPageNum・m_pShareData・m_szHelpFile・NULL.

CPropCommon::~CPropCommon ( )

CPropCommon.cpp の 183 行で定義されています。

関数

void CPropCommon::ApplyData ( void )

一時データ領域からにDLLSHAREDATA設定をコピーする

ShareData に 設定を適用・コピーする

覚え書き:
ShareDataにコピーするだけなので，更新要求などは，利用する側で処理してもらう
日付:
2002.12.11 Moca CEditDoc::OpenPropertySheetから移動

CPropCommon.cpp の 570 行で定義されています。

参照先 m_CKeyWordSetMgr・DLLSHAREDATA::m_CKeyWordSetMgr・m_Common・DLLSHAREDATA::m_Common・Types::m_nKeyWordSetIdx・m_pKeyNameArr・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・DLLSHAREDATA::m_Types・m_Types_nKeyWordSetIdx・MAX_KEYWORDSET_PER_TYPE・MAX_TYPES.

参照元 CEditDoc::OpenPropertySheet().

void CPropCommon::ChangeDateExample ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 103 行で定義されています。

参照先 GetData_p9()・CShareData::getInstance()・IDC_EDIT_DFORM_EX・m_Common・Common::m_nDateFormatType・Common::m_szDateFormat・CShareData::MyGetDateFormat().

参照元 DispatchEvent_p9().

void CPropCommon::ChangeTimeExample ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 116 行で定義されています。

参照先 GetData_p9()・CShareData::getInstance()・IDC_EDIT_TFORM_EX・m_Common・Common::m_nTimeFormatType・Common::m_szTimeFormat・CShareData::MyGetTimeFormat().

参照元 DispatchEvent_p9().

void CPropCommon::CheckListPosition_Macro ( HWND hwndDlg ) [protected]

リストビューのFocus位置確認

CPropComMacro.cpp の 545 行で定義されています。

参照先 IDC_CHECK_RELOADWHENEXECUTE・IDC_COMBO_MACROID・IDC_MACROLIST・IDC_MACRONAME・IDC_MACROPATH・MACRONAME_MAX・nLastPos_Macro.

参照元 DispatchEvent_PROP_Macro().

void CPropCommon::Create | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | CImageListMgr * | ,
 |  | CSMacroMgr * | ,
 |  | CMenuDrawer * |
 | ) |

CPropCommon.cpp の 193 行で定義されています。

参照先 CFuncLookup::Init()・m_cLookup・m_Common・m_hInstance・m_hwndParent・m_pcIcons・m_pcMenuDrawer・m_pcSMacro.

参照元 CEditDoc::Create().

static int CALLBACK CPropCommon::DirCallback_Macro | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | LPARAM | lParam,
 |  | LPARAM | lpData
 | ) | [static, protected]

INT_PTR CPropCommon::DispatchEvent_p1 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CPropCommon.cpp の 611 行で定義されています。

参照先 CMRUFolder::ClearAll()・CMRU::ClearAll()・DWLP_USER・FALSE・GSTR_APPNAME・IDC_BUTTON_CLEAR_MRU_FILE・IDC_BUTTON_CLEAR_MRU_FOLDER・IDC_CHECK_INDENT・IDC_CHECK_INDENT_WSPACE・IDC_CHECK_STAYTASKTRAY・IDC_CHECK_USETRAYICON・MYMESSAGEBOX・SetData_p1()・SetWindowLongPtr・TRUE.

参照元 DlgProc_PROP_GENERAL().

INT_PTR CPropCommon::DispatchEvent_p10 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Custom Menu page

CPropComHelper.cpp の 95 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・DWLP_USER・GetData_p10()・GetInidirOrExedir()・IDC_BUTTON_KEYWORDHELPFONT・IDC_BUTTON_OPENEXTHTMLHELP・IDC_BUTTON_OPENHELP1・IDC_BUTTON_OPENMDICT・IDC_BUTTON_OPENMDLL・IDC_EDIT_EXTHELP1・IDC_EDIT_EXTHTMLHELP・IDC_EDIT_MIGEMO_DICT・IDC_EDIT_MIGEMO_DLL・m_Common・m_hInstance・Common::m_lf_kh・Common::m_szExtHelp・Common::m_szExtHtmlHelp・Common::m_szMigemoDict・Common::m_szMigemoDll・NULL・SelectDir()・SetData_p10()・SetWindowLongPtr・TRUE.

参照元 DlgProc_PROP_HELPER().

INT_PTR CPropCommon::DispatchEvent_p2 | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

Message Handler for File page

ファイルページ メッセージ処理

引数:
hwndDlg | handle to dialog box
uMsg | message
wParam | first message parameter
lParam | second message parameter

CPropComFile.cpp の 84 行で定義されています。

参照先 DWLP_USER・EnableFilePropInput()・FALSE・GetData_p2()・ID_PAGENUM_FILE・IDC_CHECK_AUTOSAVE・IDC_CHECK_bDropFileAndClose・IDC_CHECK_EXCVLUSIVE_NO・IDC_CHECK_EXCVLUSIVE_READWRITE・IDC_CHECK_EXCVLUSIVE_WRITE・IDC_EDIT_AUTOBACKUP_INTERVAL・IDC_EDIT_nDropFileNumMax・IDC_SPIN_AUTOBACKUP_INTERVAL・IDC_SPIN_nDropFileNumMax・IDD_PROP_FILE・m_nPageNum・m_szHelpFile・MyWinHelp()・NULL・OnHelp()・p_helpids・SetData_p2()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_FILE().

INT_PTR CPropCommon::DispatchEvent_p5 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Key Bind page

CPropComKeybind.cpp の 125 行で定義されています。

参照先 _ALT・_CTRL・_SHIFT・DWLP_USER・GetData_p5()・ID_PAGENUM_KEYBOARD・IDC_BUTTON_ASSIGN・IDC_BUTTON_EXPORT・IDC_BUTTON_IMPORT・IDC_BUTTON_RELEASE・IDC_CHECK_ALT・IDC_CHECK_CTRL・IDC_CHECK_SHIFT・IDC_COMBO_FUNCKIND・IDC_EDIT_KEYSFUNC・IDC_LIST_ASSIGNEDKEYS・IDC_LIST_FUNC・IDC_LIST_KEY・IDD_PROP_KEYBIND・m_cLookup・KEYDATA::m_nFuncCodeArr・m_nKeyNameArrNum・m_nPageNum・m_pKeyNameArr・OnHelp()・p5_ChangeKeyList()・p5_Export_KeySetting()・p5_Import_KeySetting()・CFuncLookup::Pos2FuncCode()・SetData_p5()・SetWindowLongPtr・TRUE.

参照元 DlgProc_PROP_KEYBIND().

INT_PTR CPropCommon::DispatchEvent_p7 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Keyword page

CPropComKeyword.cpp の 85 行で定義されています。

参照先 CKeyWordSetMgr::AddKeyWordSet()・CKeyWordSetMgr::DelKeyWord()・CDlgInput1::DoModal()・DWLP_USER・FALSE・GetData_p7()・CKeyWordSetMgr::GetTypeName()・GSTR_APPNAME・ID_PAGENUM_KEYWORD・IDC_BUTTON_ADDSET・IDC_BUTTON_DELSET・IDC_COMBO_SET・IDC_LIST_KEYWORD・IDD_PROP_KEYWORD・m_CKeyWordSetMgr・m_hInstance・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・CKeyWordSetMgr::m_nKeyWordSetNum・m_nPageNum・m_pShareData・Types::m_szTypeExts・Types::m_szTypeName・DLLSHAREDATA::m_Types・m_Types_nKeyWordSetIdx・MAX_KEYWORDLEN・MAX_KEYWORDSET_PER_TYPE・MAX_SETNAMELEN・MAX_SETNUM・MAX_TYPES・MYMESSAGEBOX・MYTRACE・NULL・OnHelp()・p7_Delete_List_KeyWord()・p7_Edit_List_KeyWord()・SetData_p7()・SetData_p7_KeyWordSet()・SetWindowLongPtr・TRUE・CKeyWordSetMgr::UpdateKeyWord().

参照元 DlgProc_PROP_KEYWORD().

INT_PTR CPropCommon::DispatchEvent_p8 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Custom Menu page

CPropComCustmenu.cpp の 94 行で定義されています。

参照先 CDlgInput1::DoModal()・DWLP_USER・FALSE・CFuncLookup::Funccode2Name()・GetData_p8()・ID_PAGENUM_CUSTMENU・IDC_BUTTON_EXPORT・IDC_BUTTON_IMPORT・IDC_BUTTON_MENUNAME・IDC_COMBO_FUNCKIND・IDC_COMBO_MENU・IDC_EDIT_MENUNAME・IDC_LIST_FUNC・IDC_LIST_RES・IDD_PROP_CUSTMENU・m_cLookup・m_Common・m_hInstance・Common::m_nCustMenuItemFuncArr・Common::m_nCustMenuItemKeyArr・Common::m_nCustMenuItemNumArr・m_nPageNum・Common::m_szCustMenuNameArr・MAX_CUSTOM_MENU_ITEMS・MAX_CUSTOM_MENU_NAME_LEN・NULL・OnHelp()・p8_Export_CustMenuSetting()・p8_Import_CustMenuSetting()・SetData_p8()・SetWindowLongPtr・TRUE.

参照元 DlgProc_PROP_CUSTMENU().

INT_PTR CPropCommon::DispatchEvent_p9 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Format page

CPropComFormat.cpp の 132 行で定義されています。

参照先 ChangeDateExample()・ChangeTimeExample()・DWLP_USER・EnableFormatPropInput()・FALSE・GetData_p9()・ID_PAGENUM_FORMAT・IDC_EDIT_DFORM・IDC_EDIT_INYOUKIGOU・IDC_EDIT_MIDASHIKIGOU・IDC_EDIT_TFORM・IDC_RADIO_DFORM_0・IDC_RADIO_DFORM_1・IDC_RADIO_TFORM_0・IDC_RADIO_TFORM_1・IDD_PROP_FORMAT・m_Common・m_nPageNum・Common::m_szDateFormat・m_szHelpFile・Common::m_szInyouKigou・Common::m_szMidashiKigou・Common::m_szTimeFormat・MyWinHelp()・OnHelp()・p_helpids・SetData_p9()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_FORMAT().

INT_PTR CPropCommon::DispatchEvent_PROP_BACKUP | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Backup page

CPropComBackup.cpp の 96 行で定義されています。

参照先 _MAX_PATH・DWLP_USER・EnableBackupInput()・FALSE・GetData_PROP_BACKUP()・ID_PAGENUM_BACKUP・IDC_BUTTON_BACKUP_FOLDER_REF・IDC_CHECK_AUTOSAVE・IDC_CHECK_BACKUP・IDC_CHECK_BACKUP_ADVANCED・IDC_CHECK_BACKUPFOLDER・IDC_EDIT_BACKUP_3・IDC_EDIT_BACKUPFILE・IDC_EDIT_BACKUPFOLDER・IDC_RADIO_BACKUP_DATETYPE1・IDC_RADIO_BACKUP_DATETYPE2・IDC_RADIO_BACKUP_TYPE1・IDC_RADIO_BACKUP_TYPE3・IDC_SPIN_BACKUP_GENS・IDD_PROP_BACKUP・m_Common・m_nPageNum・Common::m_szBackUpFolder・Common::m_szBackUpPathAdvanced・m_szHelpFile・MyWinHelp()・NULL・OnHelp()・p_helpids・SelectDir()・SetData_PROP_BACKUP()・SetWindowLongPtr・TRUE・ULONG_PTR・UpdateBackupFile().

参照元 DlgProc_PROP_BACKUP().

INT_PTR CPropCommon::DispatchEvent_PROP_EDIT | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for edit page

CPropComEdit.cpp の 66 行で定義されています。

参照先 DWLP_USER・FALSE・GetData_PROP_EDIT()・ID_PAGENUM_EDIT・IDC_CHECK_DRAGDROP・IDC_CHECK_DROPSOURCE・IDD_PROP_EDIT・m_nPageNum・m_szHelpFile・MYTRACE・MyWinHelp()・OnHelp()・p_helpids・SetData_PROP_EDIT()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_EDIT().

INT_PTR CPropCommon::DispatchEvent_PROP_FILENAME | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for FileName page

CPropComFileName.cpp の 65 行で定義されています。

参照先 _MAX_PATH・DWLP_USER・FALSE・GetData_PROP_FILENAME()・GetListViewItem_FILENAME()・ID_PAGENUM_FILENAME・IDC_BUTTON_FNAME_ADD・IDC_BUTTON_FNAME_DEL・IDC_BUTTON_FNAME_DOWN・IDC_BUTTON_FNAME_INS・IDC_BUTTON_FNAME_LAST・IDC_BUTTON_FNAME_TOP・IDC_BUTTON_FNAME_UP・IDC_BUTTON_FNAME_UPD・IDC_EDIT_FNAME_FROM・IDC_EDIT_FNAME_TO・IDC_LIST_FNAME・IDD_PROP_FNAME・m_nLastPos_FILENAME・m_nPageNum・m_szHelpFile・MoveListViewItem_FILENAME()・MyWinHelp()・OnHelp()・p_helpids・SetData_PROP_FILENAME()・SetListViewItem_FILENAME()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_FILENAME().

INT_PTR CPropCommon::DispatchEvent_PROP_GREP | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Grep page

CPropComGrep.cpp の 62 行で定義されています。

参照先 DWLP_USER・FALSE・GetData_PROP_GREP()・ID_PAGENUM_GREP・IDC_EDIT_REGEXPLIB・IDD_PROP_GREP・m_nPageNum・m_szHelpFile・MyWinHelp()・OnHelp()・p_helpids・SetData_PROP_GREP()・SetRegexpVersion()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_GREP().

INT_PTR CPropCommon::DispatchEvent_PROP_Macro | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

Message Handler for Macro page

Macroページのメッセージ処理

引数:
hwndDlg | ダイアログボックスのWindow Handlw
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComMacro.cpp の 92 行で定義されています。

参照先 _MAX_PATH・AddLastChar()・CheckListPosition_Macro()・DWLP_USER・FALSE・GetData_PROP_Macro()・ID_PAGENUM_MACRO・IDC_MACRO_REG・IDC_MACRODIR・IDC_MACRODIRREF・IDC_MACROLIST・IDC_MACRONAME・IDC_MACROPATH・IDD_PROP_MACRO・InitDialog_PROP_Macro()・m_MacroTable・m_nPageNum・MacroRec::m_szFile・m_szHelpFile・m_szMACROFOLDER・MacroRec::m_szName・MyWinHelp()・OnFileDropdown_Macro()・OnHelp()・p_helpids・SelectBaseDir_Macro()・SetData_PROP_Macro()・SetMacro2List_Macro()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_MACRO().

INT_PTR CPropCommon::DispatchEvent_PROP_TAB | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for TAB page

CPropComTab.cpp の 49 行で定義されています。

参照先 DWLP_USER・EnableTabPropInput()・FALSE・GetData_PROP_TAB()・ID_PAGENUM_TAB・IDC_CHECK_DispTabWnd・IDC_CHECK_DispTabWndMultiWin・IDD_PROP_TAB・m_nPageNum・m_szHelpFile・MyWinHelp()・OnHelp()・p_helpids・SetData_PROP_TAB()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_TAB().

INT_PTR CPropCommon::DispatchEvent_PROP_TOOLBAR | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Toolbar page

CPropComToolbar.cpp の 152 行で定義されています。

参照先 DrawToolBarItemList()・DWLP_USER・FALSE・CMenuDrawer::FindIndexFromCommandId()・GetData_PROP_TOOLBAR()・CFuncLookup::GetItemCount()・GSTR_APPNAME・ID_PAGENUM_TOOLBAR・IDC_BUTTON_ADD・IDC_BUTTON_DELETE・IDC_BUTTON_DOWN・IDC_BUTTON_INSERT・IDC_BUTTON_INSERTSEPARATOR・IDC_BUTTON_INSERTWRAP・IDC_BUTTON_UP・IDC_COMBO_FUNCKIND・IDC_LIST_FUNC・IDC_LIST_RES・IDD_PROP_TOOLBAR・Listbox_ADDDATA()・Listbox_INSERTDATA()・m_cLookup・m_nPageNum・m_pcMenuDrawer・m_szHelpFile・MAX_TOOLBARBUTTONS・MYMESSAGEBOX・MyWinHelp()・NULL・OnHelp()・p_helpids・CFuncLookup::Pos2FuncCode()・SetData_PROP_TOOLBAR()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_TOOLBAR().

INT_PTR CPropCommon::DispatchEvent_PROP_WIN | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

Message Handler for Window page

CPropComWin.cpp の 71 行で定義されています。

参照先 CDlgWinSize::DoModal()・DWLP_USER・EnableWinPropInput()・FALSE・GetData_PROP_WIN()・ID_PAGENUM_WIN・IDC_BUTTON_WINSIZE・IDC_CHECK_DispFUNCKEYWND・IDC_EDIT_FUNCKEYWND_GROUPNUM・IDC_EDIT_nLineNumberRightSpace・IDC_EDIT_nRulerBottomSpace・IDC_EDIT_nRulerHeight・IDC_SPIN_FUNCKEYWND_GROUPNUM・IDC_SPIN_nLineNumberRightSpace・IDC_SPIN_nRulerBottomSpace・IDC_SPIN_nRulerHeight・IDC_SPIN_nRulerHeight_MAX・IDC_SPIN_nRulerHeight_MIN・IDD_PROP_WIN・m_Common・m_nPageNum・Common::m_nSaveWindowPos・Common::m_nSaveWindowSize・Common::m_nWinPosX・Common::m_nWinPosY・Common::m_nWinSizeCX・Common::m_nWinSizeCY・Common::m_nWinSizeType・m_szHelpFile・MyWinHelp()・NULL・OnHelp()・p_helpids・SetData_PROP_WIN()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 DlgProc_PROP_WIN().

void CPropCommon::DispKeywordCount ( HWND hwndDlg ) [protected]

CPropComKeyword.cpp の 792 行で定義されています。

参照先 CKeyWordSetMgr::GetAllocSize()・CKeyWordSetMgr::GetFreeSize()・CKeyWordSetMgr::GetKeyWordNum()・IDC_LIST_KEYWORD・IDC_STATIC_KEYWORD_COUNT・m_CKeyWordSetMgr・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・MAX_KEYWORDLEN.

参照元 p7_Delete_List_KeyWord().

INT_PTR CPropCommon::DlgProc | ( | INT_PTR(CPropCommon::*)(HWND, UINT, WPARAM, LPARAM) | DispatchPage,
 |  | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

汎用ダイアログプロシージャ

プロパティページごとのWindow Procedureを引数に取ることで 処理の共通化を狙った．

引数:
DispatchPage | 真のWindow Procedureのメンバ関数ポインタ
hwndDlg | ダイアログボックスのWindow Handlw
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropCommon.cpp の 131 行で定義されています。

参照先 DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 DlgProc_PROP_BACKUP()・DlgProc_PROP_CUSTMENU()・DlgProc_PROP_EDIT()・DlgProc_PROP_FILE()・DlgProc_PROP_FILENAME()・DlgProc_PROP_FORMAT()・DlgProc_PROP_GENERAL()・DlgProc_PROP_GREP()・DlgProc_PROP_HELPER()・DlgProc_PROP_KEYBIND()・DlgProc_PROP_KEYWORD()・DlgProc_PROP_MACRO()・DlgProc_PROP_TAB()・DlgProc_PROP_TOOLBAR()・DlgProc_PROP_WIN().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_BACKUP | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

バックアップページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComBackup.cpp の 87 行で定義されています。

参照先 DispatchEvent_PROP_BACKUP()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_CUSTMENU | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

カスタムメニューページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComCustmenu.cpp の 86 行で定義されています。

参照先 DispatchEvent_p8()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_EDIT | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

編集ページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComEdit.cpp の 58 行で定義されています。

参照先 DispatchEvent_PROP_EDIT()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FILE | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

ファイルページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComFile.cpp の 76 行で定義されています。

参照先 DispatchEvent_p2()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FILENAME | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

ファイル名表示ページのDialog Procedure

CPropComFileName.cpp の 59 行で定義されています。

参照先 DispatchEvent_PROP_FILENAME()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_FORMAT | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

書式ページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComFormat.cpp の 96 行で定義されています。

参照先 DispatchEvent_p9()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_GENERAL | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

全般ページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropCommon.cpp の 115 行で定義されています。

参照先 DispatchEvent_p1()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_GREP | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

GREPページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComGrep.cpp の 54 行で定義されています。

参照先 DispatchEvent_PROP_GREP()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_HELPER | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

支援ページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComHelper.cpp の 87 行で定義されています。

参照先 DispatchEvent_p10()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_KEYBIND | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

キー割り当てページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComKeybind.cpp の 95 行で定義されています。

参照先 DispatchEvent_p5()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_KEYWORD | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

キーワードページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComKeyword.cpp の 77 行で定義されています。

参照先 DispatchEvent_p7()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_MACRO | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

マクロページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComMacro.cpp の 80 行で定義されています。

参照先 DispatchEvent_PROP_Macro()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_TAB | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

タブ動作ページのDialog Procedure

引数:
hwndDlg[in] | ダイアログボックスのWindow Handle
uMsg[in] | メッセージ
wParam[in] | パラメータ1
lParam[in] | パラメータ2

CPropComTab.cpp の 41 行で定義されています。

参照先 DispatchEvent_PROP_TAB()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_TOOLBAR | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

ツールバーページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComToolbar.cpp の 74 行で定義されています。

参照先 DispatchEvent_PROP_TOOLBAR()・DlgProc().

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropCommon::DlgProc_PROP_WIN | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

ウィンドウページのDialog Procedure

引数:
hwndDlg | ダイアログボックスのWindow Handle
uMsg | メッセージ
wParam | パラメータ1
lParam | パラメータ2

CPropComWin.cpp の 62 行で定義されています。

参照先 DispatchEvent_PROP_WIN()・DlgProc().

参照元 DoPropertySheet().

int CPropCommon::DoPropertySheet ( int nPageNum )

プロパティシートの作成

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
「共通設定」プロパティシートの作成時に必要な情報の配列．

CPropCommon.cpp の 404 行で定義されています。

参照先 DlgProc_PROP_BACKUP()・DlgProc_PROP_CUSTMENU()・DlgProc_PROP_EDIT()・DlgProc_PROP_FILE()・DlgProc_PROP_FILENAME()・DlgProc_PROP_FORMAT()・DlgProc_PROP_GENERAL()・DlgProc_PROP_GREP()・DlgProc_PROP_HELPER()・DlgProc_PROP_KEYBIND()・DlgProc_PROP_KEYWORD()・DlgProc_PROP_MACRO()・DlgProc_PROP_TAB()・DlgProc_PROP_TOOLBAR()・DlgProc_PROP_WIN()・CShareData::getInstance()・CShareData::GetShareData()・IDD_PROP1P1・IDD_PROP_BACKUP・IDD_PROP_CUSTMENU・IDD_PROP_EDIT・IDD_PROP_FILE・IDD_PROP_FNAME・IDD_PROP_FORMAT・IDD_PROP_GREP・IDD_PROP_HELPER・IDD_PROP_KEYBIND・IDD_PROP_KEYWORD・IDD_PROP_MACRO・IDD_PROP_TAB・IDD_PROP_TOOLBAR・IDD_PROP_WIN・m_hInstance・m_pShareData・NULL.

参照元 CEditDoc::OpenPropertySheet().

void CPropCommon::DrawToolBarItemList ( DRAWITEMSTRUCT * ) [protected]

CPropComToolbar.cpp の 610 行で定義されています。

参照先 CImageListMgr::Draw()・F_MENU_NOT_USED_FIRST・CFuncLookup::Funccode2Name()・CMenuDrawer::getButton()・m_cLookup・m_pcIcons・m_pcMenuDrawer.

参照元 DispatchEvent_PROP_TOOLBAR().

void CPropCommon::EnableBackupInput ( HWND hwndDlg ) [protected]

チェック状態に応じてダイアログボックス要素のEnable/Disableを 適切に設定する

日付:
2004.06.05 genta 元の拡張子を残す設定を追加． 日時指定でチェックボックスが空欄で残ると設定されない問題を避けるため， IDC_RADIO_BACKUP_TYPE2 を廃止してレイアウト変更

2005.11.07 aroka レイアウトに合わせて順序を入れ替え、インデントを整理

2005.11.21 aroka 詳細設定モードの制御を追加

CPropComBackup.cpp の 498 行で定義されています。

参照先 FALSE・IDC_CHECK_BACKUP・IDC_CHECK_BACKUP_RETAINEXT・IDC_LABEL_BACKUP_3・IDC_LABEL_BACKUP_HELP・IDC_LABEL_BACKUP_HELP2・IDC_RADIO_BACKUP_DATETYPE1・IDC_RADIO_BACKUP_DATETYPE1A・IDC_RADIO_BACKUP_DATETYPE2・IDC_RADIO_BACKUP_DATETYPE2A・IDC_RADIO_BACKUP_TYPE1・IDC_RADIO_BACKUP_TYPE3・IDC_SPIN_BACKUP_GENS・TRUE.

参照元 DispatchEvent_PROP_BACKUP().

void CPropCommon::EnableFilePropInput ( HWND hwndDlg ) [protected]

チェック状態に応じてダイアログボックス要素のEnable/Disableを 適切に設定する

引数:
hwndDlg プロパティシートのWindow Handle

CPropComFile.cpp の 400 行で定義されています。

参照先 FALSE・IDC_CHECK_bCheckFileTimeStamp・IDC_CHECK_bDropFileAndClose・IDC_CHECK_EXCVLUSIVE_NO・IDC_EDIT_nDropFileNumMax・IDC_LABEL_AUTOSAVE3・IDC_LABEL_AUTOSAVE4・IDC_SPIN_nDropFileNumMax・TRUE.

参照元 DispatchEvent_p2()・SetData_p2().

void CPropCommon::EnableFormatPropInput ( HWND hwndDlg ) [protected]

CPropComFormat.cpp の 435 行で定義されています。

参照先 FALSE・IDC_EDIT_DFORM・IDC_EDIT_TFORM・IDC_LABEL_DFORM・IDC_LABEL_TFORM・IDC_RADIO_DFORM_1・IDC_RADIO_TFORM_1・TRUE.

参照元 DispatchEvent_p9()・SetData_p9().

void CPropCommon::EnableTabPropInput ( HWND hwndDlg ) [protected]

「タブバー」シート上のアイテムの有効・無効を適切に設定する

日付:
2007.02.12 genta 新規作成

CPropComTab.cpp の 169 行で定義されています。

参照先 FALSE・IDC_CHECK_ChgWndByWheel・IDC_CHECK_CloseOneWin・IDC_CHECK_DispTabIcon・IDC_CHECK_DispTabWnd・IDC_CHECK_DispTabWndMultiWin・IDC_CHECK_RetainEmptyWindow・IDC_CHECK_SameTabWidth・IDC_CHECK_SortTabList・IDC_TABWND_CAPTION・TRUE.

参照元 DispatchEvent_PROP_TAB()・SetData_PROP_TAB().

void CPropCommon::EnableWinPropInput ( HWND hwndDlg ) [protected]

CPropComWin.cpp の 458 行で定義されています。

参照先 FALSE・IDC_CHECK_DispFUNCKEYWND・IDC_GROUP_FUNCKEYWND_POSITION・IDC_RADIO_FUNCKEYWND_PLACE1・IDC_RADIO_FUNCKEYWND_PLACE2・TRUE.

参照元 DispatchEvent_PROP_WIN()・SetData_PROP_WIN().

int CPropCommon::GetData_p1 ( HWND ) [protected]

CPropCommon.cpp の 957 行で定義されています。

参照先 CRecent::EasyCreate()・FALSE・IDC_CHECK_STAYTASKTRAY・IDC_HOTKEY_TRAYMENU・IDC_RADIO_CARETTYPE0・IDC_RADIO_CARETTYPE1・Common::m_bCloseAllConfirm・Common::m_bExitConfirm・Common::m_bIsFreeCursorMode・Common::m_bNoCaretMoveByActivation・Common::m_bStayTaskTray・Common::m_bStopsBothEndsWhenSearchParagraph・Common::m_bStopsBothEndsWhenSearchWord・Common::m_bUseTaskTray・m_Common・Common::m_nMRUArrNum_MAX・Common::m_nOPENFOLDERArrNum_MAX・Common::m_nRepeatedScroll_Smooth・Common::m_nRepeatedScrollLineNum・Common::m_wTrayMenuHotKeyCode・Common::m_wTrayMenuHotKeyMods・MAX_MRU・MAX_OPENFOLDER・RECENT_FOR_FILE・RECENT_FOR_FOLDER・Common::SetCaretType()・CRecent::Terminate()・TRUE・CRecent::UpdateView().

int CPropCommon::GetData_p10 ( HWND ) [protected]

CPropComHelper.cpp の 429 行で定義されています。

参照先 IDC_CHECK_HTMLHELPISSINGLE・IDC_CHECK_m_bHokanKey_RETURN・IDC_CHECK_m_bHokanKey_RIGHT・IDC_CHECK_m_bHokanKey_TAB・IDC_EDIT_EXTHELP1・IDC_EDIT_EXTHTMLHELP・IDC_EDIT_MIGEMO_DICT・IDC_EDIT_MIGEMO_DLL・Common::m_bHokanKey_RETURN・Common::m_bHokanKey_RIGHT・Common::m_bHokanKey_TAB・Common::m_bHtmlHelpIsSingle・m_Common・Common::m_szExtHelp・Common::m_szExtHtmlHelp・Common::m_szMigemoDict・Common::m_szMigemoDll・TRUE.

参照元 DispatchEvent_p10().

int CPropCommon::GetData_p2 ( HWND hwndDlg ) [protected]

ファイルページ ダイアログデータの取得 ダイアログボックスに設定されたデータを共有メモリに反映させる

バックアップ世代数が妥当な値かどうかのチェックも行う。不適切な値の時は
最も近い適切な値を設定する。
引数:
hwndDlg プロパティページのWindow Handle
戻り値:
常にTRUE

CPropComFile.cpp の 317 行で定義されています。

参照先 Common::EnableAutoBackup()・FALSE・IDC_CHECK_AUTOSAVE・IDC_CHECK_bCheckFileTimeStamp・IDC_CHECK_bDropFileAndClose・IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE・IDC_CHECK_EXCVLUSIVE_NO・IDC_CHECK_EXCVLUSIVE_READWRITE・IDC_CHECK_EXCVLUSIVE_WRITE・IDC_EDIT_AUTOBACKUP_INTERVAL・IDC_EDIT_nDropFileNumMax・Common::m_bCheckFileTimeStamp・Common::m_bDropFileAndClose・Common::m_bEnableUnmodifiedOverwrite・m_Common・Common::m_nDropFileNumMax・Common::m_nFileShareMode・NULL・TRUE.

参照元 DispatchEvent_p2().

int CPropCommon::GetData_p5 ( HWND ) [protected]

CPropComKeybind.cpp の 503 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent_p5().

int CPropCommon::GetData_p7 ( HWND ) [protected]

CPropComKeyword.cpp の 772 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent_p7().

void CPropCommon::GetData_p7_KeyWordSet | ( | HWND | ,
 |  | int |
 | ) | [protected]

CPropComKeyword.cpp の 787 行で定義されています。

int CPropCommon::GetData_p8 ( HWND ) [protected]

CPropComCustmenu.cpp の 809 行で定義されています。

参照先 TRUE.

参照元 DispatchEvent_p8().

int CPropCommon::GetData_p9 ( HWND ) [protected]

CPropComFormat.cpp の 377 行で定義されています。

参照先 IDC_EDIT_INYOUKIGOU・IDC_EDIT_MIDASHIKIGOU・IDC_RADIO_DFORM_0・m_Common・Common::m_nDateFormatType・Common::m_szInyouKigou・Common::m_szMidashiKigou.

参照元 ChangeDateExample()・ChangeTimeExample()・DispatchEvent_p9().

int CPropCommon::GetData_PROP_BACKUP ( HWND ) [protected]

CPropComBackup.cpp の 371 行で定義されています。

参照先 BKUP_DAY・BKUP_HOUR・BKUP_MIN・BKUP_MONTH・BKUP_SEC・BKUP_YEAR・IDC_CHECK_BACKUP・IDC_CHECK_BACKUP_RETAINEXT・IDC_CHECK_BACKUPDIALOG・IDC_RADIO_BACKUP_DATETYPE1・IDC_RADIO_BACKUP_DATETYPE1A・IDC_RADIO_BACKUP_DATETYPE2・IDC_RADIO_BACKUP_TYPE1・IDC_RADIO_BACKUP_TYPE3・Common::m_bBackUp・Common::m_bBackUpDialog・Common::m_bBackUpDustBox・Common::m_bBackUpFolder・Common::m_bBackUpPathAdvanced・m_Common・Common::m_szBackUpFolder・Common::m_szBackUpPathAdvanced・Common::SetBackupOpt()・Common::SetBackupType()・Common::SetBackupTypeAdv().

参照元 DispatchEvent_PROP_BACKUP().

int CPropCommon::GetData_PROP_EDIT ( HWND ) [protected]

CPropComEdit.cpp の 213 行で定義されています。

参照先 IDC_CHECK_ADDCRLFWHENCOPY・IDC_CHECK_bNotOverWriteCRLF・IDC_CHECK_bSelectClickedURL・IDC_CHECK_COPYnDISABLESELECTEDAREA・IDC_CHECK_DRAGDROP・IDC_CHECK_DROPSOURCE・Common::m_bAddCRLFWhenCopy・Common::m_bCopyAndDisablSelection・Common::m_bNotOverWriteCRLF・Common::m_bSelectClickedURL・Common::m_bUseOLE_DragDrop・Common::m_bUseOLE_DropSource・m_Common・TRUE.

参照元 DispatchEvent_PROP_EDIT().

int CPropCommon::GetData_PROP_FILENAME ( HWND hwndDlg ) [protected]

ダイアログ上のコントロールからデータを取得してメモリに格納する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComFileName.cpp の 332 行で定義されています。

参照先 _MAX_PATH・IDC_LIST_FNAME・m_nTransformFileNameArrNum・m_szTransformFileNameFrom・m_szTransformFileNameTo・MAX_TRANSFORM_FILENAME.

参照元 DispatchEvent_PROP_FILENAME().

int CPropCommon::GetData_PROP_GREP ( HWND ) [protected]

CPropComGrep.cpp の 171 行で定義されています。

参照先 IDC_CHECK_bCaretTextForSearch・IDC_CHECK_bGrepExitConfirm・IDC_CHECK_GREPREALTIME・IDC_CHECK_GTJW_LDBLCLK・IDC_CHECK_GTJW_RETURN・IDC_EDIT_REGEXPLIB・Common::m_bCaretTextForSearch・Common::m_bGrepExitConfirm・Common::m_bGrepRealTimeView・Common::m_bGTJW_LDBLCLK・Common::m_bGTJW_RETURN・m_Common・Common::m_szRegexpLib・TRUE.

参照元 DispatchEvent_PROP_GREP().

int CPropCommon::GetData_PROP_Macro ( HWND hwndDlg ) [protected]

ダイアログデータの取得 Macro

ダイアログ上のコントロールからデータを取得してメモリに格納する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 271 行で定義されています。

参照先 _MAX_PATH・FALSE・IDC_MACROLIST・MacroRec::m_bReloadWhenExecute・m_MacroTable・MacroRec::m_szFile・MacroRec::m_szName・MACRONAME_MAX・MAX_CUSTMACRO・TRUE.

参照元 DispatchEvent_PROP_Macro().

int CPropCommon::GetData_PROP_TAB ( HWND ) [protected]

CPropComTab.cpp の 146 行で定義されています。

参照先 FALSE・IDC_CHECK_ChgWndByWheel・IDC_CHECK_CloseOneWin・IDC_CHECK_DispTabIcon・IDC_CHECK_DispTabWnd・IDC_CHECK_DispTabWndMultiWin・IDC_CHECK_RetainEmptyWindow・IDC_CHECK_SameTabWidth・IDC_CHECK_SortTabList・IDC_TABWND_CAPTION・Common::m_bChgWndByWheel・Common::m_bDispTabIcon・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・Common::m_bSameTabWidth・Common::m_bSortTabList・Common::m_bTab_CloseOneWin・Common::m_bTab_RetainEmptyWin・m_Common・Common::m_szTabWndCaption・TRUE.

参照元 DispatchEvent_PROP_TAB().

int CPropCommon::GetData_PROP_TOOLBAR ( HWND ) [protected]

CPropComToolbar.cpp の 573 行で定義されています。

参照先 IDC_LIST_RES・m_Common・Common::m_nToolBarButtonIdxArr・Common::m_nToolBarButtonNum.

参照元 DispatchEvent_PROP_TOOLBAR().

int CPropCommon::GetData_PROP_WIN ( HWND ) [protected]

CPropComWin.cpp の 362 行で定義されています。

参照先 FALSE・IDC_CHECK_bMenuIcon・IDC_CHECK_bScrollBarHorz・IDC_CHECK_DispFUNCKEYWND・IDC_CHECK_DispSTATUSBAR・IDC_CHECK_DispTOOLBAR・IDC_CHECK_SplitterWndHScroll・IDC_CHECK_SplitterWndVScroll・IDC_EDIT_FUNCKEYWND_GROUPNUM・IDC_EDIT_nLineNumberRightSpace・IDC_EDIT_nRulerBottomSpace・IDC_EDIT_nRulerHeight・IDC_RADIO_FUNCKEYWND_PLACE1・IDC_RADIO_FUNCKEYWND_PLACE2・IDC_RADIO_nRulerType_0・IDC_RADIO_nRulerType_1・IDC_SPIN_nRulerHeight_MAX・IDC_SPIN_nRulerHeight_MIN・IDC_WINCAPTION_ACTIVE・IDC_WINCAPTION_INACTIVE・Common::m_bDispFUNCKEYWND・Common::m_bDispSTATUSBAR・Common::m_bDispTOOLBAR・Common::m_bMenuIcon・Common::m_bScrollBarHorz・Common::m_bSplitterWndHScroll・Common::m_bSplitterWndVScroll・m_Common・Common::m_nFUNCKEYWND_GroupNum・Common::m_nFUNCKEYWND_Place・Common::m_nLineNumRightSpace・Common::m_nRulerBottomSpace・Common::m_nRulerHeight・Common::m_nRulerType・Common::m_szWindowCaptionActive・Common::m_szWindowCaptionInactive・NULL・TRUE.

参照元 DispatchEvent_PROP_WIN().

void CPropCommon::GetListViewItem_FILENAME | ( | HWND | hListView,
 |  | int | ,
 |  | LPTSTR | ,
 |  | LPTSTR |
 | ) | [static, protected]

ListViewのアイテムを取得

CPropComFileName.cpp の 408 行で定義されています。

参照先 _MAX_PATH.

参照元 DispatchEvent_PROP_FILENAME()・MoveListViewItem_FILENAME().

void CPropCommon::InitData ( void )

DLLSHAREDATAから一時データ領域に設定を複製する

ShareDataから一時領域へ設定をコピーする

日付:
2002.12.11 Moca CEditDoc::OpenPropertySheetから移動

CPropCommon.cpp の 533 行で定義されています。

参照先 DLLSHAREDATA::m_CKeyWordSetMgr・m_CKeyWordSetMgr・DLLSHAREDATA::m_Common・m_Common・DLLSHAREDATA::m_nKeyNameArrNum・m_nKeyNameArrNum・Types::m_nKeyWordSetIdx・m_pKeyNameArr・DLLSHAREDATA::m_pKeyNameArr・m_pShareData・DLLSHAREDATA::m_Types・m_Types_nKeyWordSetIdx・MAX_KEYWORDSET_PER_TYPE・MAX_TYPES.

参照元 CEditDoc::OpenPropertySheet().

void CPropCommon::InitDialog_PROP_Macro ( HWND hwndDlg ) [protected]

Macroページの初期化

CPropComMacro.cpp の 326 行で定義されています。

参照先 IDC_MACROLIST・NULL.

参照元 DispatchEvent_PROP_Macro().

int CPropCommon::MoveListViewItem_FILENAME | ( | HWND | hListView,
 |  | int | ,
 |  | int |
 | ) | [static, protected]

ListViewのアイテムを移動する

CPropComFileName.cpp の 415 行で定義されています。

参照先 _MAX_PATH・GetListViewItem_FILENAME()・SetListViewItem_FILENAME().

参照元 DispatchEvent_PROP_FILENAME().

void CPropCommon::OnFileDropdown_Macro ( HWND hwndDlg ) [protected]

ファイルドロップダウンが開かれるとき

マクロファイル指定用コンボボックスのドロップダウンリストが開かれるときに， 指定ディレクトリのファイル一覧から候補を生成する．

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 504 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・GetInidirOrExedir()・IDC_MACRODIR・IDC_MACROPATH.

参照元 DispatchEvent_PROP_Macro().

void CPropCommon::OnHelp | ( | HWND | ,
 |  | int |
 | ) | [protected]

CPropCommon.cpp の 1052 行で定義されています。

参照先 F_OPTION_BACKUP・F_OPTION_CUSTMENU・F_OPTION_EDIT・F_OPTION_FILE・F_OPTION_FNAME・F_OPTION_FORMAT・F_OPTION_GENERAL・F_OPTION_GREP・F_OPTION_HELPER・F_OPTION_KEYBIND・F_OPTION_KEYWORD・F_OPTION_MACRO・F_OPTION_TAB・F_OPTION_TOOLBAR・F_OPTION_WINDOW・FuncID_To_HelpContextID()・IDD_PROP1P1・IDD_PROP_BACKUP・IDD_PROP_CUSTMENU・IDD_PROP_EDIT・IDD_PROP_FILE・IDD_PROP_FNAME・IDD_PROP_FORMAT・IDD_PROP_GREP・IDD_PROP_HELPER・IDD_PROP_KEYBIND・IDD_PROP_KEYWORD・IDD_PROP_MACRO・IDD_PROP_TAB・IDD_PROP_TOOLBAR・IDD_PROP_WIN・m_szHelpFile・MyWinHelp().

参照元 DispatchEvent_p2()・DispatchEvent_p5()・DispatchEvent_p7()・DispatchEvent_p8()・DispatchEvent_p9()・DispatchEvent_PROP_BACKUP()・DispatchEvent_PROP_EDIT()・DispatchEvent_PROP_FILENAME()・DispatchEvent_PROP_GREP()・DispatchEvent_PROP_Macro()・DispatchEvent_PROP_TAB()・DispatchEvent_PROP_TOOLBAR()・DispatchEvent_PROP_WIN().

void CPropCommon::p5_ChangeKeyList ( HWND hwndDlg ) [protected]

p5: キーリストをチェックボックスの状態に合わせて更新する

CPropComKeybind.cpp の 510 行で定義されています。

参照先 _ALT・_CTRL・_SHIFT・IDC_CHECK_ALT・IDC_CHECK_CTRL・IDC_CHECK_SHIFT・IDC_LIST_KEY・m_pKeyNameArr.

参照元 DispatchEvent_p5().

void CPropCommon::p5_Export_KeySetting ( HWND ) [protected]

CPropComKeybind.cpp の 700 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetSaveFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER.

参照元 DispatchEvent_p5().

void CPropCommon::p5_Import_KeySetting ( HWND ) [protected]

CPropComKeybind.cpp の 547 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER・STR_KEYDATA_HEAD_LEN.

参照元 DispatchEvent_p5().

void CPropCommon::p7_Clean_List_KeyWord | ( | HWND | ,
 |  | HWND |
 | ) | [protected]

キーワードを整頓する

CPropComKeyword.cpp の 652 行で定義されています。

参照先 CKeyWordSetMgr::CleanKeyWords()・GSTR_APPNAME・m_CKeyWordSetMgr・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・SetData_p7_KeyWordSet().

void CPropCommon::p7_Delete_List_KeyWord | ( | HWND | ,
 |  | HWND |
 | ) | [protected]

CPropComKeyword.cpp の 482 行で定義されています。

参照先 CKeyWordSetMgr::DelKeyWord()・DispKeywordCount()・m_CKeyWordSetMgr・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・SetData_p7_KeyWordSet().

参照元 DispatchEvent_p7().

void CPropCommon::p7_Edit_List_KeyWord | ( | HWND | ,
 |  | HWND |
 | ) | [protected]

CPropComKeyword.cpp の 442 行で定義されています。

参照先 CDlgInput1::DoModal()・FALSE・CKeyWordSetMgr::GetKeyWord()・m_CKeyWordSetMgr・m_hInstance・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・MAX_KEYWORDLEN.

参照元 DispatchEvent_p7().

void CPropCommon::p7_Export_List_KeyWord | ( | HWND | ,
 |  | HWND |
 | ) | [protected]

CPropComKeyword.cpp の 584 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetSaveFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER.

void CPropCommon::p7_Import_List_KeyWord | ( | HWND | ,
 |  | HWND |
 | ) | [protected]

CPropComKeyword.cpp の 509 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER.

void CPropCommon::p8_Export_CustMenuSetting ( HWND ) [protected]

CPropComCustmenu.cpp の 881 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetSaveFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER.

参照元 DispatchEvent_p8().

void CPropCommon::p8_Import_CustMenuSetting ( HWND ) [protected]

p7:リスト中のキーワードを整理する 2005.01.26 Moca

CPropComCustmenu.cpp の 822 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER・STR_CUSTMENU_HEAD_LEN.

参照元 DispatchEvent_p8().

int CPropCommon::SearchIntArr | ( | int | ,
 |  | int * | ,
 |  | int |
 | ) | [protected]

CPropCommon.cpp の 95 行で定義されています。

void CPropCommon::SelectBaseDir_Macro ( HWND hwndDlg ) [protected]

Macroディレクトリの選択

Macro格納用ディレクトリを選択する

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 451 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・AddLastChar()・GetInidirOrExedir()・IDC_MACRODIR・SelectDir().

参照元 DispatchEvent_PROP_Macro().

BOOL CPropCommon::SelectColor | ( | HWND | ,
 |  | COLORREF * |
 | ) | [protected]

CPropCommon.cpp の 211 行で定義されています。

void CPropCommon::SetData_p1 ( HWND ) [protected]

CPropCommon.cpp の 889 行で定義されています。

参照先 BOOL・FALSE・Common::GetCaretType()・IDC_RADIO_CARETTYPE0・IDC_RADIO_CARETTYPE1・m_Common・TRUE.

参照元 DispatchEvent_p1().

void CPropCommon::SetData_p10 ( HWND ) [protected]

CPropComHelper.cpp の 374 行で定義されています。

参照先 IDC_CHECK_HTMLHELPISSINGLE・IDC_CHECK_m_bHokanKey_RETURN・IDC_CHECK_m_bHokanKey_RIGHT・IDC_CHECK_m_bHokanKey_TAB・IDC_EDIT_EXTHELP1・IDC_EDIT_EXTHTMLHELP・IDC_EDIT_MIGEMO_DICT・IDC_EDIT_MIGEMO_DLL・Common::m_bHokanKey_RETURN・Common::m_bHokanKey_RIGHT・Common::m_bHokanKey_TAB・Common::m_bHtmlHelpIsSingle・m_Common・Common::m_szExtHelp・Common::m_szExtHtmlHelp・Common::m_szMigemoDict・Common::m_szMigemoDll.

参照元 DispatchEvent_p10().

void CPropCommon::SetData_p2 ( HWND hwndDlg ) [protected]

ファイルページ: ダイアログデータの設定 共有メモリからデータを読み出して各コントロールに値を設定する。

バックアップ世代数が妥当な値かどうかのチェックも行う。不適切な値の時は
最も近い適切な値を設定する。
引数:
hwndDlg プロパティページのWindow Handle

CPropComFile.cpp の 247 行で定義されています。

参照先 EnableFilePropInput()・FALSE・Common::GetAlertIfFileNotExist()・Common::GetAutoBackupInterval()・Common::GetAutoMIMEdecode()・Common::GetQueryIfCodeChange()・Common::GetRestoreBookmarks()・Common::GetRestoreCurPosition()・IDC_CHECK_AlertIfFileNotExist・IDC_CHECK_AutoMIMEDecode・IDC_CHECK_AUTOSAVE・IDC_CHECK_bCheckFileTimeStamp・IDC_CHECK_bDropFileAndClose・IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE・IDC_CHECK_EXCVLUSIVE_NO・IDC_CHECK_EXCVLUSIVE_READWRITE・IDC_CHECK_EXCVLUSIVE_WRITE・IDC_CHECK_NoFilterSaveFile・IDC_CHECK_NoFilterSaveNew・IDC_CHECK_QueryIfCodeChange・IDC_CHECK_RestoreBookmarks・IDC_CHECK_RestoreCurPosition・IDC_EDIT_AUTOBACKUP_INTERVAL・IDC_EDIT_nDropFileNumMax・Common::IsAutoBackupEnabled()・Common::m_bCheckFileTimeStamp・Common::m_bDropFileAndClose・Common::m_bEnableUnmodifiedOverwrite・Common::m_bNoFilterSaveFile・Common::m_bNoFilterSaveNew・m_Common・Common::m_nDropFileNumMax・Common::m_nFileShareMode.

参照元 DispatchEvent_p2().

void CPropCommon::SetData_p5 ( HWND ) [protected]

CPropComKeybind.cpp の 476 行で定義されています。

参照先 IDC_COMBO_FUNCKIND・m_cLookup・nsFuncCode::nFuncKindNum・nsFuncCode::ppszFuncKind・CFuncLookup::SetCategory2Combo().

参照元 DispatchEvent_p5().

void CPropCommon::SetData_p7 ( HWND ) [protected]

CPropComKeyword.cpp の 663 行で定義されています。

参照先 CKeyWordSetMgr::GetTypeName()・IDC_COMBO_SET・m_CKeyWordSetMgr・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・CKeyWordSetMgr::m_nKeyWordSetNum・SetData_p7_KeyWordSet().

参照元 DispatchEvent_p7().

void CPropCommon::SetData_p7_KeyWordSet | ( | HWND | ,
 |  | int |
 | ) | [protected]

CPropComKeyword.cpp の 694 行で定義されています。

参照先 FALSE・CKeyWordSetMgr::GetKeyWordCase()・IDC_BUTTON_ADDKEYWORD・IDC_BUTTON_DELKEYWORD・IDC_BUTTON_DELSET・IDC_BUTTON_EDITKEYWORD・IDC_BUTTON_EXPORT・IDC_BUTTON_IMPORT・IDC_CHECK_KEYWORDCASE・IDC_LIST_KEYWORD・m_CKeyWordSetMgr・TRUE.

参照元 DispatchEvent_p7()・p7_Clean_List_KeyWord()・p7_Delete_List_KeyWord()・SetData_p7().

void CPropCommon::SetData_p8 ( HWND ) [protected]

CPropComCustmenu.cpp の 725 行で定義されています。

参照先 IDC_COMBO_FUNCKIND・m_cLookup・nsFuncCode::nFuncKindNum・nsFuncCode::ppszFuncKind・CFuncLookup::SetCategory2Combo().

参照元 DispatchEvent_p8().

void CPropCommon::SetData_p9 ( HWND ) [protected]

CPropComFormat.cpp の 330 行で定義されています。

参照先 EnableFormatPropInput()・IDC_EDIT_DFORM・IDC_EDIT_INYOUKIGOU・IDC_EDIT_MIDASHIKIGOU・IDC_EDIT_TFORM・IDC_RADIO_DFORM_0・IDC_RADIO_DFORM_1・IDC_RADIO_TFORM_0・IDC_RADIO_TFORM_1・m_Common・Common::m_nDateFormatType・Common::m_nTimeFormatType・Common::m_szDateFormat・Common::m_szInyouKigou・Common::m_szMidashiKigou・Common::m_szTimeFormat.

参照元 DispatchEvent_p9().

void CPropCommon::SetData_PROP_BACKUP ( HWND hwndDlg ) [protected]

ダイアログデータの設定

日付:
2004.06.05 genta 元の拡張子を残す設定を追加． 日時指定でチェックボックスが空欄で残ると設定されない問題を避けるため， IDC_RADIO_BACKUP_TYPE2 を廃止してレイアウト変更

CPropComBackup.cpp の 269 行で定義されています。

参照先 Common::GetBackupType()・IDC_CHECK_BACKUP・IDC_CHECK_BACKUPDIALOG・IDC_RADIO_BACKUP_DATETYPE1・IDC_RADIO_BACKUP_DATETYPE2・IDC_RADIO_BACKUP_TYPE1・IDC_RADIO_BACKUP_TYPE3・Common::m_bBackUp・Common::m_bBackUpDialog・m_Common.

参照元 DispatchEvent_PROP_BACKUP().

void CPropCommon::SetData_PROP_EDIT ( HWND ) [protected]

CPropComEdit.cpp の 171 行で定義されています。

参照先 FALSE・IDC_CHECK_ADDCRLFWHENCOPY・IDC_CHECK_bNotOverWriteCRLF・IDC_CHECK_bSelectClickedURL・IDC_CHECK_COPYnDISABLESELECTEDAREA・IDC_CHECK_DRAGDROP・IDC_CHECK_DROPSOURCE・Common::m_bAddCRLFWhenCopy・Common::m_bCopyAndDisablSelection・Common::m_bNotOverWriteCRLF・Common::m_bSelectClickedURL・Common::m_bUseOLE_DragDrop・Common::m_bUseOLE_DropSource・m_Common・TRUE.

参照元 DispatchEvent_PROP_EDIT().

void CPropCommon::SetData_PROP_FILENAME ( HWND hwndDlg ) [protected]

ダイアログ上のコントロールにデータを設定する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComFileName.cpp の 274 行で定義されています。

参照先 IDC_LIST_FNAME・m_nTransformFileNameArrNum・m_szTransformFileNameFrom・m_szTransformFileNameTo.

参照元 DispatchEvent_PROP_FILENAME().

void CPropCommon::SetData_PROP_GREP ( HWND ) [protected]

CPropComGrep.cpp の 137 行で定義されています。

参照先 IDC_CHECK_bCaretTextForSearch・IDC_CHECK_bGrepExitConfirm・IDC_CHECK_GREPREALTIME・IDC_CHECK_GTJW_LDBLCLK・IDC_CHECK_GTJW_RETURN・IDC_EDIT_REGEXPLIB・Common::m_bCaretTextForSearch・Common::m_bGrepExitConfirm・Common::m_bGrepRealTimeView・Common::m_bGTJW_LDBLCLK・Common::m_bGTJW_RETURN・m_Common・Common::m_szRegexpLib・SetRegexpVersion().

参照元 DispatchEvent_PROP_GREP().

void CPropCommon::SetData_PROP_Macro ( HWND hwndDlg ) [protected]

ダイアログデータの設定 Macro

ダイアログ上のコントロールにデータを設定する

引数:
hwndDlg ダイアログボックスのウィンドウハンドル

CPropComMacro.cpp の 218 行で定義されています。

参照先 IDC_MACROLIST・MacroRec::m_bReloadWhenExecute・DLLSHAREDATA::m_MacroTable・m_pShareData・MacroRec::m_szFile・MacroRec::m_szName・MAX_CUSTMACRO.

参照元 DispatchEvent_PROP_Macro().

void CPropCommon::SetData_PROP_TAB ( HWND ) [protected]

CPropComTab.cpp の 124 行で定義されています。

参照先 EnableTabPropInput()・IDC_CHECK_ChgWndByWheel・IDC_CHECK_CloseOneWin・IDC_CHECK_DispTabIcon・IDC_CHECK_DispTabWnd・IDC_CHECK_DispTabWndMultiWin・IDC_CHECK_RetainEmptyWindow・IDC_CHECK_SameTabWidth・IDC_CHECK_SortTabList・IDC_TABWND_CAPTION・Common::m_bChgWndByWheel・Common::m_bDispTabIcon・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・Common::m_bSameTabWidth・Common::m_bSortTabList・Common::m_bTab_CloseOneWin・Common::m_bTab_RetainEmptyWin・m_Common・Common::m_szTabWndCaption.

参照元 DispatchEvent_PROP_TAB().

void CPropCommon::SetData_PROP_TOOLBAR ( HWND ) [protected]

CPropComToolbar.cpp の 518 行で定義されています。

参照先 IDC_COMBO_FUNCKIND・IDC_LIST_RES・Listbox_ADDDATA()・m_cLookup・m_Common・Common::m_nToolBarButtonIdxArr・Common::m_nToolBarButtonNum・CFuncLookup::SetCategory2Combo().

参照元 DispatchEvent_PROP_TOOLBAR().

void CPropCommon::SetData_PROP_WIN ( HWND ) [protected]

CPropComWin.cpp の 286 行で定義されています。

参照先 EnableWinPropInput()・FALSE・IDC_CHECK_bMenuIcon・IDC_CHECK_bScrollBarHorz・IDC_CHECK_DispFUNCKEYWND・IDC_CHECK_DispSTATUSBAR・IDC_CHECK_DispTOOLBAR・IDC_CHECK_SplitterWndHScroll・IDC_CHECK_SplitterWndVScroll・IDC_EDIT_FUNCKEYWND_GROUPNUM・IDC_EDIT_nLineNumberRightSpace・IDC_EDIT_nRulerBottomSpace・IDC_EDIT_nRulerHeight・IDC_RADIO_FUNCKEYWND_PLACE1・IDC_RADIO_FUNCKEYWND_PLACE2・IDC_RADIO_nRulerType_0・IDC_RADIO_nRulerType_1・IDC_WINCAPTION_ACTIVE・IDC_WINCAPTION_INACTIVE・Common::m_bDispFUNCKEYWND・Common::m_bDispSTATUSBAR・Common::m_bDispTOOLBAR・Common::m_bMenuIcon・Common::m_bScrollBarHorz・Common::m_bSplitterWndHScroll・Common::m_bSplitterWndVScroll・m_Common・Common::m_nFUNCKEYWND_GroupNum・Common::m_nFUNCKEYWND_Place・Common::m_nLineNumRightSpace・Common::m_nRulerBottomSpace・Common::m_nRulerHeight・Common::m_nRulerType・Common::m_szWindowCaptionActive・Common::m_szWindowCaptionInactive・TRUE.

参照元 DispatchEvent_PROP_WIN().

int CPropCommon::SetListViewItem_FILENAME | ( | HWND | hListView,
 |  | int | ,
 |  | LPTSTR | ,
 |  | LPTSTR | ,
 |  | bool |
 | ) | [static, protected]

ListViewのアイテムを設定

CPropComFileName.cpp の 370 行で定義されています。

参照先 GSTR_APPNAME・MAX_TRANSFORM_FILENAME.

参照元 DispatchEvent_PROP_FILENAME()・MoveListViewItem_FILENAME().

void CPropCommon::SetMacro2List_Macro ( HWND hwndDlg ) [protected]

Macroデータの設定

CPropComMacro.cpp の 400 行で定義されています。

参照先 _MAX_PATH・IDC_CHECK_RELOADWHENEXECUTE・IDC_COMBO_MACROID・IDC_MACROLIST・IDC_MACRONAME・IDC_MACROPATH・MACRONAME_MAX.

参照元 DispatchEvent_PROP_Macro().

void CPropCommon::SetRegexpVersion ( HWND ) [protected]

CPropComGrep.cpp の 197 行で定義されています。

参照先 _MAX_PATH・IDC_EDIT_REGEXPLIB・IDC_LABEL_REGEXP_VER・CDllHandler::Init().

参照元 DispatchEvent_PROP_GREP()・SetData_PROP_GREP().

void CPropCommon::UpdateBackupFile ( HWND hwndDlg ) [protected]

バックアップファイルの詳細設定エディットボックスを適切に更新する

日付:
2005.11.07 aroka 新規追加
覚え書き:
詳細設定切り替え時のデフォルトをオプションに合わせるため、 m_szBackUpPathAdvanced を更新する

CPropComBackup.cpp の 632 行で定義されています。

参照先 BKUP_MONTH・BKUP_YEAR・Common::GetBackupOpt()・Common::GetBackupType()・Common::m_bBackUp・Common::m_bBackUpDustBox・Common::m_bBackUpFolder・m_Common.

参照元 DispatchEvent_PROP_BACKUP().

変数

CKeyWordSetMgr CPropCommon::m_CKeyWordSetMgr

CPropCommon.h の 110 行で定義されています。

参照元 ApplyData()・DispatchEvent_p7()・DispKeywordCount()・InitData()・p7_Clean_List_KeyWord()・p7_Delete_List_KeyWord()・p7_Edit_List_KeyWord()・SetData_p7()・SetData_p7_KeyWordSet().

CFuncLookup CPropCommon::m_cLookup

CPropCommon.h の 98 行で定義されています。

参照元 Create()・DispatchEvent_p5()・DispatchEvent_p8()・DispatchEvent_PROP_TOOLBAR()・DrawToolBarItemList()・SetData_p5()・SetData_p8()・SetData_PROP_TOOLBAR().

Common CPropCommon::m_Common

CPropCommon.h の 106 行で定義されています。

参照元 ApplyData()・ChangeDateExample()・ChangeTimeExample()・Create()・DispatchEvent_p10()・DispatchEvent_p8()・DispatchEvent_p9()・DispatchEvent_PROP_BACKUP()・DispatchEvent_PROP_WIN()・GetData_p1()・GetData_p10()・GetData_p2()・GetData_p9()・GetData_PROP_BACKUP()・GetData_PROP_EDIT()・GetData_PROP_GREP()・GetData_PROP_TAB()・GetData_PROP_TOOLBAR()・GetData_PROP_WIN()・InitData()・SetData_p1()・SetData_p10()・SetData_p2()・SetData_p9()・SetData_PROP_BACKUP()・SetData_PROP_EDIT()・SetData_PROP_GREP()・SetData_PROP_TAB()・SetData_PROP_TOOLBAR()・SetData_PROP_WIN()・UpdateBackupFile().

HINSTANCE CPropCommon::m_hInstance

CPropCommon.h の 84 行で定義されています。

参照元 CPropCommon()・Create()・DispatchEvent_p10()・DispatchEvent_p7()・DispatchEvent_p8()・DoPropertySheet()・p5_Export_KeySetting()・p5_Import_KeySetting()・p7_Edit_List_KeyWord()・p7_Export_List_KeyWord()・p7_Import_List_KeyWord()・p8_Export_CustMenuSetting()・p8_Import_CustMenuSetting().

HWND CPropCommon::m_hwndParent

CPropCommon.h の 85 行で定義されています。

参照元 CPropCommon()・Create().

HWND CPropCommon::m_hwndThis

CPropCommon.h の 86 行で定義されています。

参照元 CPropCommon().

MacroRec CPropCommon::m_MacroTable[MAX_CUSTMACRO]

キー割り当て用マクロテーブル

CPropCommon.h の 116 行で定義されています。

参照元 DispatchEvent_PROP_Macro()・GetData_PROP_Macro().

short CPropCommon::m_nKeyNameArrNum

CPropCommon.h の 107 行で定義されています。

参照元 DispatchEvent_p5()・InitData().

int CPropCommon::m_nLastPos_FILENAME [protected]

前回フォーカスのあった場所 ファイル名タブ用

CPropCommon.h の 305 行で定義されています。

参照元 DispatchEvent_PROP_FILENAME().

int CPropCommon::m_nPageNum

CPropCommon.h の 87 行で定義されています。

参照元 CPropCommon()・DispatchEvent_p2()・DispatchEvent_p5()・DispatchEvent_p7()・DispatchEvent_p8()・DispatchEvent_p9()・DispatchEvent_PROP_BACKUP()・DispatchEvent_PROP_EDIT()・DispatchEvent_PROP_FILENAME()・DispatchEvent_PROP_GREP()・DispatchEvent_PROP_Macro()・DispatchEvent_PROP_TAB()・DispatchEvent_PROP_TOOLBAR()・DispatchEvent_PROP_WIN().

int CPropCommon::m_nSettingType

CPropCommon.h の 89 行で定義されています。

int CPropCommon::m_nTransformFileNameArrNum

ファイル名簡易表示

CPropCommon.h の 120 行で定義されています。

参照元 GetData_PROP_FILENAME()・SetData_PROP_FILENAME().

CImageListMgr* CPropCommon::m_pcIcons

CPropCommon.h の 93 行で定義されています。

参照元 Create()・DrawToolBarItemList().

CMenuDrawer* CPropCommon::m_pcMenuDrawer

CPropCommon.h の 101 行で定義されています。

参照元 Create()・DispatchEvent_PROP_TOOLBAR()・DrawToolBarItemList().

CSMacroMgr* CPropCommon::m_pcSMacro

CPropCommon.h の 99 行で定義されています。

参照元 Create().

KEYDATA CPropCommon::m_pKeyNameArr[100]

CPropCommon.h の 108 行で定義されています。

参照元 ApplyData()・DispatchEvent_p5()・InitData()・p5_ChangeKeyList().

DLLSHAREDATA* CPropCommon::m_pShareData

CPropCommon.h の 88 行で定義されています。

参照元 ApplyData()・CPropCommon()・DispatchEvent_p7()・DoPropertySheet()・InitData()・p5_Export_KeySetting()・p5_Import_KeySetting()・p7_Export_List_KeyWord()・p7_Import_List_KeyWord()・p8_Export_CustMenuSetting()・p8_Import_CustMenuSetting()・SetData_PROP_Macro().

char CPropCommon::m_szHelpFile[_MAX_PATH+1]

CPropCommon.h の 105 行で定義されています。

参照元 CPropCommon()・DispatchEvent_p2()・DispatchEvent_p9()・DispatchEvent_PROP_BACKUP()・DispatchEvent_PROP_EDIT()・DispatchEvent_PROP_FILENAME()・DispatchEvent_PROP_GREP()・DispatchEvent_PROP_Macro()・DispatchEvent_PROP_TAB()・DispatchEvent_PROP_TOOLBAR()・DispatchEvent_PROP_WIN()・OnHelp().

char CPropCommon::m_szMACROFOLDER[_MAX_PATH]

CPropCommon.h の 117 行で定義されています。

参照元 DispatchEvent_PROP_Macro().

char CPropCommon::m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CPropCommon.h の 121 行で定義されています。

参照元 GetData_PROP_FILENAME()・SetData_PROP_FILENAME().

char CPropCommon::m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CPropCommon.h の 122 行で定義されています。

参照元 GetData_PROP_FILENAME()・SetData_PROP_FILENAME().

int CPropCommon::m_Types_nKeyWordSetIdx[MAX_TYPES][MAX_KEYWORDSET_PER_TYPE]

CPropCommon.h の 114 行で定義されています。

参照元 ApplyData()・DispatchEvent_p7()・InitData().

int CPropCommon::nLastPos_Macro [protected]

前回フォーカスのあった場所

CPropCommon.h の 304 行で定義されています。

参照元 CheckListPosition_Macro().

このクラスの説明は次のファイルから生成されました:
  • CPropCommon.h
  • CPropComBackup.cpp
  • CPropComCustmenu.cpp
  • CPropComEdit.cpp
  • CPropComFile.cpp
  • CPropComFileName.cpp
  • CPropComFormat.cpp
  • CPropComGrep.cpp
  • CPropComHelper.cpp
  • CPropComKeybind.cpp
  • CPropComKeyword.cpp
  • CPropComMacro.cpp
  • CPropCommon.cpp
  • CPropComTab.cpp
  • CPropComToolbar.cpp
  • CPropComWin.cpp
Sakura-Editorに対してSat Oct 27 02:35:56 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPropCommon メンバ一覧

これは全メンバの一覧です。CPropCommon継承メンバも含んでいます。

ApplyData(void) | CPropCommon |
ChangeDateExample(HWND hwndDlg) | CPropCommon | [protected]
ChangeTimeExample(HWND hwndDlg) | CPropCommon | [protected]
CheckListPosition_Macro(HWND hwndDlg) | CPropCommon | [protected]
CPropCommon() | CPropCommon |
Create(HINSTANCE, HWND, CImageListMgr *, CSMacroMgr *, CMenuDrawer *) | CPropCommon |
DirCallback_Macro(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) | CPropCommon | [protected, static]
DispatchEvent_p1(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_p10(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_p2(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_p5(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_p7(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_p8(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_p9(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_BACKUP(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_EDIT(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_FILENAME(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_GREP(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_Macro(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_TAB(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_TOOLBAR(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispatchEvent_PROP_WIN(HWND, UINT, WPARAM, LPARAM) | CPropCommon | [protected]
DispKeywordCount(HWND hwndDlg) | CPropCommon | [protected]
DlgProc(INT_PTR(CPropCommon::*DispatchPage)(HWND, UINT, WPARAM, LPARAM), HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_BACKUP(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_CUSTMENU(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_EDIT(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_FILE(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_FILENAME(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_FORMAT(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_GENERAL(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_GREP(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_HELPER(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_KEYBIND(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_KEYWORD(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_MACRO(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_TAB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_TOOLBAR(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DlgProc_PROP_WIN(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropCommon | [protected, static]
DoPropertySheet(int) | CPropCommon |
DrawToolBarItemList(DRAWITEMSTRUCT *) | CPropCommon | [protected]
EnableBackupInput(HWND hwndDlg) | CPropCommon | [protected]
EnableFilePropInput(HWND hwndDlg) | CPropCommon | [protected]
EnableFormatPropInput(HWND hwndDlg) | CPropCommon | [protected]
EnableTabPropInput(HWND hwndDlg) | CPropCommon | [protected]
EnableWinPropInput(HWND hwndDlg) | CPropCommon | [protected]
GetData_p1(HWND) | CPropCommon | [protected]
GetData_p10(HWND) | CPropCommon | [protected]
GetData_p2(HWND) | CPropCommon | [protected]
GetData_p5(HWND) | CPropCommon | [protected]
GetData_p7(HWND) | CPropCommon | [protected]
GetData_p7_KeyWordSet(HWND, int) | CPropCommon | [protected]
GetData_p8(HWND) | CPropCommon | [protected]
GetData_p9(HWND) | CPropCommon | [protected]
GetData_PROP_BACKUP(HWND) | CPropCommon | [protected]
GetData_PROP_EDIT(HWND) | CPropCommon | [protected]
GetData_PROP_FILENAME(HWND) | CPropCommon | [protected]
GetData_PROP_GREP(HWND) | CPropCommon | [protected]
GetData_PROP_Macro(HWND) | CPropCommon | [protected]
GetData_PROP_TAB(HWND) | CPropCommon | [protected]
GetData_PROP_TOOLBAR(HWND) | CPropCommon | [protected]
GetData_PROP_WIN(HWND) | CPropCommon | [protected]
GetListViewItem_FILENAME(HWND hListView, int, LPTSTR, LPTSTR) | CPropCommon | [protected, static]
InitData(void) | CPropCommon |
InitDialog_PROP_Macro(HWND hwndDlg) | CPropCommon | [protected]
m_CKeyWordSetMgr | CPropCommon |
m_cLookup | CPropCommon |
m_Common | CPropCommon |
m_hInstance | CPropCommon |
m_hwndParent | CPropCommon |
m_hwndThis | CPropCommon |
m_MacroTable | CPropCommon |
m_nKeyNameArrNum | CPropCommon |
m_nLastPos_FILENAME | CPropCommon | [protected]
m_nPageNum | CPropCommon |
m_nSettingType | CPropCommon |
m_nTransformFileNameArrNum | CPropCommon |
m_pcIcons | CPropCommon |
m_pcMenuDrawer | CPropCommon |
m_pcSMacro | CPropCommon |
m_pKeyNameArr | CPropCommon |
m_pShareData | CPropCommon |
m_szHelpFile | CPropCommon |
m_szMACROFOLDER | CPropCommon |
m_szTransformFileNameFrom | CPropCommon |
m_szTransformFileNameTo | CPropCommon |
m_Types_nKeyWordSetIdx | CPropCommon |
MoveListViewItem_FILENAME(HWND hListView, int, int) | CPropCommon | [protected, static]
nLastPos_Macro | CPropCommon | [protected]
OnFileDropdown_Macro(HWND hwndDlg) | CPropCommon | [protected]
OnHelp(HWND, int) | CPropCommon | [protected]
p5_ChangeKeyList(HWND) | CPropCommon | [protected]
p5_Export_KeySetting(HWND) | CPropCommon | [protected]
p5_Import_KeySetting(HWND) | CPropCommon | [protected]
p7_Clean_List_KeyWord(HWND, HWND) | CPropCommon | [protected]
p7_Delete_List_KeyWord(HWND, HWND) | CPropCommon | [protected]
p7_Edit_List_KeyWord(HWND, HWND) | CPropCommon | [protected]
p7_Export_List_KeyWord(HWND, HWND) | CPropCommon | [protected]
p7_Import_List_KeyWord(HWND, HWND) | CPropCommon | [protected]
p8_Export_CustMenuSetting(HWND) | CPropCommon | [protected]
p8_Import_CustMenuSetting(HWND) | CPropCommon | [protected]
SearchIntArr(int, int *, int) | CPropCommon | [protected]
SelectBaseDir_Macro(HWND hwndDlg) | CPropCommon | [protected]
SelectColor(HWND, COLORREF *) | CPropCommon | [protected]
SetData_p1(HWND) | CPropCommon | [protected]
SetData_p10(HWND) | CPropCommon | [protected]
SetData_p2(HWND) | CPropCommon | [protected]
SetData_p5(HWND) | CPropCommon | [protected]
SetData_p7(HWND) | CPropCommon | [protected]
SetData_p7_KeyWordSet(HWND, int) | CPropCommon | [protected]
SetData_p8(HWND) | CPropCommon | [protected]
SetData_p9(HWND) | CPropCommon | [protected]
SetData_PROP_BACKUP(HWND) | CPropCommon | [protected]
SetData_PROP_EDIT(HWND) | CPropCommon | [protected]
SetData_PROP_FILENAME(HWND) | CPropCommon | [protected]
SetData_PROP_GREP(HWND) | CPropCommon | [protected]
SetData_PROP_Macro(HWND) | CPropCommon | [protected]
SetData_PROP_TAB(HWND) | CPropCommon | [protected]
SetData_PROP_TOOLBAR(HWND) | CPropCommon | [protected]
SetData_PROP_WIN(HWND) | CPropCommon | [protected]
SetListViewItem_FILENAME(HWND hListView, int, LPTSTR, LPTSTR, bool) | CPropCommon | [protected, static]
SetMacro2List_Macro(HWND hwndDlg) | CPropCommon | [protected]
SetRegexpVersion(HWND) | CPropCommon | [protected]
UpdateBackupFile(HWND hwndDlg) | CPropCommon | [protected]
~CPropCommon() | CPropCommon |

Sakura-Editorに対してSat Oct 27 02:35:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CPropTypes

  • 構成
  • クラス階層
  • 構成メンバ

クラス CPropTypes

タイプ別設定ダイアログボックス [詳細]

#include <CPropTypes.h>

CPropTypesのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CPropTypes ()
~CPropTypes ()
void | Create (HINSTANCE, HWND)
int | DoPropertySheet (int)
INT_PTR | DispatchEvent_p1 (HWND, UINT, WPARAM, LPARAM)
INT_PTR | DispatchEvent_p2 (HWND, UINT, WPARAM, LPARAM)
INT_PTR | DispatchEvent_p3 (HWND, UINT, WPARAM, LPARAM)
INT_PTR | DispatchEvent_p3_new (HWND, UINT, WPARAM, LPARAM)
INT_PTR | DispatchEvent_Regex (HWND, UINT, WPARAM, LPARAM)
INT_PTR | DispatchEvent_KeyHelp (HWND, UINT, WPARAM, LPARAM)
void | SetTypeData (const Types &t)
void | GetTypeData (Types &t) const

Static Public メソッド

static BOOL | SelectColor (HWND, COLORREF *, DWORD *)

Protected メソッド

void | OnHelp (HWND, int)
void | DrawColorButton (DRAWITEMSTRUCT *, COLORREF)
void | SetData_p1 (HWND)
int | GetData_p1 (HWND)
void | SetData_p2 (HWND)
int | GetData_p2 (HWND)
void | SetData_p3 (HWND)
int | GetData_p3 (HWND)
void | SetData_p3_new (HWND)
int | GetData_p3_new (HWND)
void | p3_Import_Colors (HWND)
void | p3_Export_Colors (HWND)
void | DrawColorListItem (DRAWITEMSTRUCT *)
void | EnableTypesPropInput (HWND hwndDlg)
void | SetData_Regex (HWND)
int | GetData_Regex (HWND)
BOOL | Import_Regex (HWND)
BOOL | Export_Regex (HWND)
BOOL | RegexKakomiCheck (const char *s)
void | RearrangeKeywordSet (HWND)
キーワードセットの再配列
void | SetData_KeyHelp (HWND)
int | GetData_KeyHelp (HWND)
BOOL | Import_KeyHelp (HWND)
BOOL | Export_KeyHelp (HWND)

Static Protected メソッド

static INT_PTR CALLBACK | PropTypesRegex (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static INT_PTR CALLBACK | PropTypesKeyHelp (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

Private 変数

HINSTANCE | m_hInstance
HWND | m_hwndParent
HWND | m_hwndThis
int | m_nPageNum
char | m_szHelpFile [_MAX_PATH+1]
int | m_nMaxLineSize_org
Types m_Types
CKeyWordSetMgr * m_pCKeyWordSetMgr
int | m_nCurrentColorType
DLLSHAREDATA * m_pShareData
int | m_nSet [MAX_KEYWORDSET_PER_TYPE]
DWORD | m_dwCustColors [16]

説明

タイプ別設定ダイアログボックス

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CPropTypes.h の 36 行で定義されています。

コンストラクタとデストラクタ

CPropTypes::CPropTypes ( )

CPropTypes.cpp の 352 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・DLLSHAREDATA::m_CKeyWordSetMgr・m_dwCustColors・m_hInstance・m_hwndParent・m_hwndThis・m_nPageNum・m_pCKeyWordSetMgr・m_pShareData・NULL.

CPropTypes::~CPropTypes ( )

CPropTypes.cpp の 380 行で定義されています。

関数

void CPropTypes::Create | ( | HINSTANCE | ,
 |  | HWND |
 | ) |

CPropTypes.cpp の 394 行で定義されています。

参照先 m_hInstance・m_hwndParent.

参照元 CEditDoc::Create().

INT_PTR CPropTypes::DispatchEvent_KeyHelp | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

キーワード辞書ファイル設定 メッセージ処理

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 101 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・_tfopen_absini()・BOOL・CDlgOpenFile::Create()・DICT_ABOUT_LEN・CDlgOpenFile::DoModal_GetOpenFileName()・DWLP_USER・Export_KeyHelp()・FALSE・GetData_KeyHelp()・GetFileName()・GetInidirOrExedir()・GSTR_APPNAME・IDC_BUTTON_KEYHELP_DEL・IDC_BUTTON_KEYHELP_DOWN・IDC_BUTTON_KEYHELP_EXPORT・IDC_BUTTON_KEYHELP_IMPORT・IDC_BUTTON_KEYHELP_INS・IDC_BUTTON_KEYHELP_LAST・IDC_BUTTON_KEYHELP_REF・IDC_BUTTON_KEYHELP_TOP・IDC_BUTTON_KEYHELP_UP・IDC_BUTTON_KEYHELP_UPD・IDC_CHECK_KEYHELP・IDC_CHECK_KEYHELP_ALLSEARCH・IDC_CHECK_KEYHELP_KEYDISP・IDC_CHECK_KEYHELP_PREFIX・IDC_EDIT_KEYHELP・IDC_FRAME_KEYHELP・IDC_LABEL_KEYHELP_ABOUT・IDC_LABEL_KEYHELP_KEYWORD・IDC_LABEL_KEYHELP_PRIOR・IDC_LABEL_KEYHELP_TITLE・IDC_LIST_KEYHELP・Import_KeyHelp()・ListView_SetCheckState・m_hInstance・Types::m_nKeyHelpNum・m_Types・MAX_KEYHELP_FILE・MYMESSAGEBOX・NULL・SetData_KeyHelp()・SetWindowLongPtr・strcnv()・TRUE.

参照元 PropTypesKeyHelp().

INT_PTR CPropTypes::DispatchEvent_p1 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CPropTypes.cpp の 745 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・DWLP_USER・FALSE・GetInidirOrExedir()・IDC_BUTTON_RULEFILE_REF・IDC_CHECK_TAB_ARROW・IDC_COMBO_OUTLINES・IDC_EDIT_INDENTCHARS・IDC_EDIT_OUTLINERULEFILE・IDC_EDIT_TABVIEWSTRING・IDC_EDIT_TYPEEXTS・IDC_EDIT_TYPENAME・IDC_RADIO_OUTLINEDEFAULT・IDC_RADIO_OUTLINERULEFILE・m_hInstance・m_hwndThis・Types::m_nIdx・Types::m_szIndentChars・Types::m_szOutlineRuleFilename・Types::m_szTabViewString・Types::m_szTypeExts・Types::m_szTypeName・m_Types・SetData_p1()・SetWindowLongPtr・TRUE.

参照元 PropTypesP1Proc().

INT_PTR CPropTypes::DispatchEvent_p2 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CPropTypes.cpp の 1373 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・DWLP_USER・GetData_p2()・GetInidirOrExedir()・IDC_BUTTON_HOKANFILE_REF・IDC_BUTTON_TYPEOPENEXTHTMLHELP・IDC_BUTTON_TYPEOPENHELP・IDC_EDIT_HOKANFILE・IDC_EDIT_KEYWORDHELPFILE・IDC_EDIT_TYPEEXTHELP・IDC_EDIT_TYPEEXTHTMLHELP・m_hInstance・Types::m_szExtHelp・Types::m_szExtHtmlHelp・Types::m_szHokanFile・m_Types・SetData_p2()・SetWindowLongPtr・TRUE.

参照元 PropTypesP2Proc().

INT_PTR CPropTypes::DispatchEvent_p3 | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

INT_PTR CPropTypes::DispatchEvent_p3_new | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CPropTypes.cpp の 1972 行で定義されています。

参照先 ColorList_SubclassProc()・CDlgKeywordSelect::DoModal()・CDlgSameColor::DoModal()・DrawColorButton()・DrawColorListItem()・DWLP_USER・EnableTypesPropInput()・FALSE・ColorAttributeData_t::fAttribute・g_ColorAttributeArr・GetData_p3_new()・GWLP_WNDPROC・IDC_BUTTON_BACKCOLOR・IDC_BUTTON_EXPORT・IDC_BUTTON_IMPORT・IDC_BUTTON_KEYWORD_SELECT・IDC_BUTTON_SAMEBKCOLOR・IDC_BUTTON_SAMETEXTCOLOR・IDC_BUTTON_TEXTCOLOR・IDC_CHECK_DISP・IDC_CHECK_FAT・IDC_CHECK_LCPOS・IDC_CHECK_LCPOS2・IDC_CHECK_LCPOS3・IDC_CHECK_UNDERLINE・IDC_COMBO_SET・IDC_EDIT_LINECOMMENTPOS・IDC_EDIT_LINECOMMENTPOS2・IDC_EDIT_LINECOMMENTPOS3・IDC_EDIT_LINETERMCHAR・IDC_LIST_COLORS・IDC_RADIO_LINETERMTYPE0・IDC_RADIO_LINETERMTYPE1・IDC_RADIO_LINETERMTYPE2・IDC_SPIN_LCColNum・IDC_SPIN_LCColNum2・IDC_SPIN_LCColNum3・IDC_STATIC_HAIKEI・IDD_PROP_COLOR・LONG_PTR・ColorInfo::m_bDisp・ColorInfo::m_bFatFont・ColorInfo::m_bUnderLine・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・m_dwCustColors・m_nCurrentColorType・m_nPageNum・Types::m_nRegexKeyMagicNumber・m_nSet・m_szHelpFile・m_Types・m_wpColorListProc・MyWinHelp()・OnHelp()・p3_Export_Colors()・p3_Import_Colors()・p_helpids2・RearrangeKeywordSet()・SelectColor()・SetData_p3_new()・SetWindowLongPtr・TRUE・ULONG_PTR.

参照元 PropTypesP3_newProc().

INT_PTR CPropTypes::DispatchEvent_Regex | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) |

CPropTypesRegex.cpp の 261 行で定義されています。

参照先 CheckRegexpSyntax()・CheckRegexpVersion()・DWLP_USER・FALSE・GetData_Regex()・GSTR_APPNAME・IDC_BUTTON_REGEX_ADD・IDC_BUTTON_REGEX_INS・IDC_BUTTON_REGEX_UPD・IDC_CHECK_REGEX・IDC_COMBO_REGEX_COLOR・IDC_EDIT_REGEX・IDC_LABEL_REGEX_VERSION・IDC_LIST_REGEX・Types::m_nRegexKeyMagicNumber・m_Types・MAX_REGEX_KEYWORD・MYMESSAGEBOX・NULL・RegexKakomiCheck()・SetData_Regex()・SetWindowLongPtr・TRUE.

参照元 PropTypesRegex().

int CPropTypes::DoPropertySheet ( int )

CPropTypes.cpp の 585 行で定義されています。

参照先 COLORIDX_TEXT・IDD_PROP_COLOR・IDD_PROP_KEYHELP・IDD_PROP_REGEX・IDD_PROPTYPESP1・IDD_PROPTYPESP2・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・m_dwCustColors・m_hInstance・m_hwndParent・Types::m_nMaxLineSize・m_nMaxLineSize_org・m_nPageNum・m_Types・MYMESSAGEBOX・MyPropertySheet()・NULL・PropTypesKeyHelp()・PropTypesP1Proc()・PropTypesP2Proc()・PropTypesP3_newProc()・PropTypesRegex().

参照元 CEditDoc::OpenPropertySheetTypes().

void CPropTypes::DrawColorButton | ( | DRAWITEMSTRUCT * | ,
 |  | COLORREF |
 | ) | [protected]

CPropTypes.cpp の 430 行で定義されています。

参照先 NULL.

参照元 DispatchEvent_p3_new().

void CPropTypes::DrawColorListItem ( DRAWITEMSTRUCT * ) [protected]

CPropTypes.cpp の 2639 行で定義されています。

参照先 g_ColorAttributeArr・ColorInfo::m_bDisp・ColorInfo::m_bFatFont・ColorInfo::m_bUnderLine・ColorInfo::m_colBACK・ColorInfo::m_colTEXT・ColorInfo::m_nColorIdx・ColorInfo::m_szName.

参照元 DispatchEvent_p3_new().

void CPropTypes::EnableTypesPropInput ( HWND hwndDlg ) [protected]

CPropTypes.cpp の 2841 行で定義されています。

参照先 FALSE・IDC_CHECK_LCPOS・IDC_EDIT_LINECOMMENTPOS・IDC_EDIT_LINETERMCHAR・IDC_LABEL_LCPOS・IDC_LABEL_LINETERMCHAR・IDC_RADIO_LINETERMTYPE2・IDC_SPIN_LCColNum・TRUE.

参照元 DispatchEvent_p3_new().

BOOL CPropTypes::Export_KeyHelp ( HWND hwndDlg ) [protected]

キーワードヘルプファイルリストのインポートエクスポート

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 796 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetSaveFileName()・FALSE・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER.

参照元 DispatchEvent_KeyHelp().

BOOL CPropTypes::Export_Regex ( HWND ) [protected]

CPropTypesRegex.cpp の 193 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetSaveFileName()・FALSE・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER.

int CPropTypes::GetData_KeyHelp ( HWND hwndDlg ) [protected]

ダイアログデータの取得 キーワード辞書ファイル設定

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 621 行で定義されています。

参照先 _MAX_PATH・DICT_ABOUT_LEN・FALSE・IDC_CHECK_KEYHELP・IDC_CHECK_KEYHELP_ALLSEARCH・IDC_CHECK_KEYHELP_KEYDISP・IDC_CHECK_KEYHELP_PREFIX・IDC_LIST_KEYHELP・Types::m_bUseKeyHelpAllSearch・Types::m_bUseKeyHelpKeyDisp・Types::m_bUseKeyHelpPrefix・Types::m_bUseKeyWordHelp・Types::m_KeyHelpArr・KeyHelpInfo::m_nUse・KeyHelpInfo::m_szAbout・KeyHelpInfo::m_szPath・m_Types・MAX_KEYHELP_FILE・TRUE.

参照元 DispatchEvent_KeyHelp()・Import_KeyHelp().

int CPropTypes::GetData_p1 ( HWND ) [protected]

CPropTypes.cpp の 1222 行で定義されています。

参照先 COLUMNSPACE_MAX・FALSE・IDC_EDIT_INDENTCHARS・IDC_EDIT_TABVIEWSTRING・IDC_EDIT_TYPEEXTS・IDC_EDIT_TYPENAME・LINESPACE_MAX・Types::m_nColmSpace・Types::m_nLineSpace・Types::m_nMaxLineSize・Types::m_nTabSpace・Types::m_szIndentChars・Types::m_szTabViewString・Types::m_szTypeExts・Types::m_szTypeName・m_Types・MAXLINESIZE・MINLINESIZE.

int CPropTypes::GetData_p2 ( HWND ) [protected]

CPropTypes.cpp の 1546 行で定義されています。

参照先 IDC_CHECK_HOKANBYFILE・IDC_CHECK_HOKANLOHICASE・IDC_CHECK_TYPEHTMLHELPISSINGLE・IDC_EDIT_HOKANFILE・IDC_EDIT_TYPEEXTHELP・IDC_EDIT_TYPEEXTHTMLHELP・Types::m_bHokanLoHiCase・Types::m_bHtmlHelpIsSingle・Types::m_bUseHokanByFile・Types::m_szExtHelp・Types::m_szExtHtmlHelp・Types::m_szHokanFile・m_Types・TRUE.

参照元 DispatchEvent_p2().

int CPropTypes::GetData_p3 ( HWND ) [protected]

int CPropTypes::GetData_p3_new ( HWND ) [protected]

CPropTypes.cpp の 2481 行で定義されています。

参照先 BOOL・cLineComment・COMMENT_DELIMITER_BUFFERSIZE・COMMENT_DELIMITER_NUM・FALSE・nCheckBoxID・TRUE.

参照元 DispatchEvent_p3_new().

int CPropTypes::GetData_Regex ( HWND ) [protected]

CPropTypesRegex.cpp の 840 行で定義されています。

参照先 COLORIDX_REGEX1・FALSE・IDC_CHECK_REGEX・IDC_LIST_REGEX・Types::m_bUseRegexKeyword・Types::m_ColorInfoArr・RegexKeywordInfo::m_nColorIndex・Types::m_RegexKeywordArr・RegexKeywordInfo::m_szKeyword・ColorInfo::m_szName・m_Types・TRUE.

参照元 DispatchEvent_Regex().

void CPropTypes::GetTypeData ( Types & t ) const [inline]

CPropTypes.h の 123 行で定義されています。

参照元 CEditDoc::OpenPropertySheetTypes().

BOOL CPropTypes::Import_KeyHelp ( HWND hwndDlg ) [protected]

キーワードヘルプファイルリストのインポート

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 676 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・DICT_ABOUT_LEN・CDlgOpenFile::DoModal_GetOpenFileName()・FALSE・GetData_KeyHelp()・GSTR_APPNAME・IDC_LIST_KEYHELP・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER・MAX_KEYHELP_FILE・MYMESSAGEBOX・NULL・SplitPath_FolderAndFile().

参照元 DispatchEvent_KeyHelp().

BOOL CPropTypes::Import_Regex ( HWND ) [protected]

CPropTypesRegex.cpp の 89 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・FALSE・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER・MAX_REGEX_KEYWORD.

void CPropTypes::OnHelp | ( | HWND | ,
 |  | int |
 | ) | [protected]

CPropTypes.cpp の 2800 行で定義されています。

参照先 F_TYPE_COLOR・F_TYPE_HELPER・F_TYPE_KEYHELP・F_TYPE_REGEX_KEYWORD・F_TYPE_SCREEN・FuncID_To_HelpContextID()・IDD_PROP_COLOR・IDD_PROP_KEYHELP・IDD_PROP_REGEX・IDD_PROPTYPESP1・IDD_PROPTYPESP2・m_szHelpFile・MyWinHelp().

参照元 DispatchEvent_p3_new().

void CPropTypes::p3_Export_Colors ( HWND ) [protected]

CPropTypes.cpp の 1749 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetSaveFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER・CProfile::SetWritingMode().

参照元 DispatchEvent_p3_new().

void CPropTypes::p3_Import_Colors ( HWND ) [protected]

CPropTypes.cpp の 1573 行で定義されています。

参照先 _MAX_PATH・CDlgOpenFile::Create()・CDlgOpenFile::DoModal_GetOpenFileName()・m_hInstance・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER・CProfile::SetReadingMode().

参照元 DispatchEvent_p3_new().

INT_PTR CALLBACK CPropTypes::PropTypesKeyHelp | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

キーワード辞書ファイル設定 ダイアログプロシージャ

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 72 行で定義されています。

参照先 DispatchEvent_KeyHelp()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 DoPropertySheet().

INT_PTR CALLBACK CPropTypes::PropTypesRegex | ( | HWND | hwndDlg,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [static, protected]

CPropTypesRegex.cpp の 61 行で定義されています。

参照先 DispatchEvent_Regex()・DWLP_USER・FALSE・GetWindowLongPtr・NULL.

参照元 DoPropertySheet().

void CPropTypes::RearrangeKeywordSet ( HWND hwndDlg ) [protected]

キーワードセットの再配列

キーワードセットの色分けでは未指定のキーワードセット以降はチェックを省略する． そのためセットの途中に未指定のものがある場合はそれ以降を前に詰めることで 指定された全てのキーワードセットが有効になるようにする． その際，色分けの設定も同時に移動する．

m_nSet, m_Types.m_ColorInfoArr[]が変更される．

引数:
hwndDlg [in] ダイアログボックスのウィンドウハンドル
作者:
genta
日付:
2005.01.23 genta new

CPropTypes.cpp の 2903 行で定義されています。

参照先 COLORIDX_KEYWORD1・ColorInfo::m_bDisp・ColorInfo::m_bFatFont・ColorInfo::m_bUnderLine・ColorInfo::m_colBACK・Types::m_ColorInfoArr・ColorInfo::m_colTEXT・m_nSet・m_Types・MAX_KEYWORDSET_PER_TYPE.

参照元 DispatchEvent_p3_new().

BOOL CPropTypes::RegexKakomiCheck ( const char * s ) [protected]

CPropTypesRegex.cpp の 893 行で定義されています。

参照先 NULL・TRUE.

参照元 DispatchEvent_Regex().

BOOL CPropTypes::SelectColor | ( | HWND | ,
 |  | COLORREF * | ,
 |  | DWORD * |
 | ) | [static]

CPropTypes.cpp の 406 行で定義されています。

参照先 FALSE・NULL・TRUE.

参照元 DispatchEvent_p3_new().

void CPropTypes::SetData_KeyHelp ( HWND hwndDlg ) [protected]

ダイアログデータの設定 キーワード辞書ファイル設定

日付:
2006.04.10 fon 新規作成

CPropTypesKeyHelp.cpp の 552 行で定義されています。

参照先 FALSE・GetFileName()・IDC_CHECK_KEYHELP・IDC_CHECK_KEYHELP_ALLSEARCH・IDC_CHECK_KEYHELP_KEYDISP・IDC_CHECK_KEYHELP_PREFIX・IDC_EDIT_KEYHELP・IDC_LIST_KEYHELP・ListView_SetCheckState・Types::m_bUseKeyHelpAllSearch・Types::m_bUseKeyHelpKeyDisp・Types::m_bUseKeyHelpPrefix・Types::m_bUseKeyWordHelp・Types::m_KeyHelpArr・KeyHelpInfo::m_nUse・KeyHelpInfo::m_szAbout・KeyHelpInfo::m_szPath・m_Types・MAX_KEYHELP_FILE・TRUE.

参照元 DispatchEvent_KeyHelp().

void CPropTypes::SetData_p1 ( HWND ) [protected]

CPropTypes.cpp の 1027 行で定義されています。

参照先 BOOL・FALSE・IDC_CHECK_INS_SPACE・IDC_CHECK_TAB_ARROW・IDC_COMBO_OUTLINES・IDC_EDIT_INDENTCHARS・IDC_EDIT_TABVIEWSTRING・IDC_EDIT_TYPEEXTS・IDC_EDIT_TYPENAME・Types::m_bInsSpace・Types::m_bTabArrow・Types::m_nColmSpace・Types::m_nDefaultOutline・Types::m_nLineSpace・Types::m_nMaxLineSize・Types::m_nTabSpace・Types::m_szIndentChars・Types::m_szTabViewString・Types::m_szTypeExts・Types::m_szTypeName・m_Types・nOlmArrNum・TRUE.

参照元 DispatchEvent_p1().

void CPropTypes::SetData_p2 ( HWND ) [protected]

CPropTypes.cpp の 1526 行で定義されています。

参照先 IDC_CHECK_HOKANBYFILE・IDC_CHECK_HOKANLOHICASE・IDC_CHECK_TYPEHTMLHELPISSINGLE・IDC_EDIT_HOKANFILE・IDC_EDIT_TYPEEXTHELP・IDC_EDIT_TYPEEXTHTMLHELP・Types::m_bHokanLoHiCase・Types::m_bHtmlHelpIsSingle・Types::m_bUseHokanByFile・Types::m_szExtHelp・Types::m_szExtHtmlHelp・Types::m_szHokanFile・m_Types.

参照元 DispatchEvent_p2().

void CPropTypes::SetData_p3 ( HWND ) [protected]

void CPropTypes::SetData_p3_new ( HWND ) [protected]

CPropTypes.cpp の 2311 行で定義されています。

参照先 BLOCKCOMMENT_BUFFERSIZE・cLineComment・COMMENT_DELIMITER_BUFFERSIZE・COMMENT_DELIMITER_NUM・FALSE・CBlockComment::getBlockCommentFrom()・CBlockComment::getBlockCommentTo()・CLineComment::getLineComment()・CLineComment::getLineCommentPos()・IDC_EDIT_BLOCKCOMMENT_FROM・IDC_EDIT_BLOCKCOMMENT_FROM2・IDC_EDIT_BLOCKCOMMENT_TO・IDC_EDIT_BLOCKCOMMENT_TO2・IDC_EDIT_LINECOMMENT・IDC_EDIT_LINECOMMENT2・IDC_EDIT_LINECOMMENT3・Types::m_cBlockComment・Types::m_cLineComment・m_nCurrentColorType・m_Types・nEditID・TRUE.

参照元 DispatchEvent_p3_new().

void CPropTypes::SetData_Regex ( HWND ) [protected]

CPropTypesRegex.cpp の 779 行で定義されています。

参照先 COLORIDX_REGEX1・g_ColorAttributeArr・Types::m_ColorInfoArr・ColorInfo::m_nColorIdx・Types::m_RegexKeywordArr・RegexKeywordInfo::m_szKeyword・ColorInfo::m_szName・m_Types.

参照元 DispatchEvent_Regex().

void CPropTypes::SetTypeData ( const Types & t ) [inline]

CPropTypes.h の 122 行で定義されています。

参照元 CEditDoc::OpenPropertySheetTypes().

変数

DWORD CPropTypes::m_dwCustColors[16] [private]

CPropTypes.h の 76 行で定義されています。

参照元 CPropTypes()・DispatchEvent_p3_new()・DoPropertySheet().

HINSTANCE CPropTypes::m_hInstance [private]

CPropTypes.h の 59 行で定義されています。

参照元 CPropTypes()・Create()・DispatchEvent_KeyHelp()・DispatchEvent_p1()・DispatchEvent_p2()・DoPropertySheet()・Export_KeyHelp()・Export_Regex()・Import_KeyHelp()・Import_Regex()・p3_Export_Colors()・p3_Import_Colors().

HWND CPropTypes::m_hwndParent [private]

CPropTypes.h の 60 行で定義されています。

参照元 CPropTypes()・Create()・DoPropertySheet().

HWND CPropTypes::m_hwndThis [private]

CPropTypes.h の 61 行で定義されています。

参照元 CPropTypes()・DispatchEvent_p1().

int CPropTypes::m_nCurrentColorType [private]

CPropTypes.h の 71 行で定義されています。

参照元 DispatchEvent_p3_new()・SetData_p3_new().

int CPropTypes::m_nMaxLineSize_org [private]

CPropTypes.h の 68 行で定義されています。

参照元 DoPropertySheet().

int CPropTypes::m_nPageNum [private]

CPropTypes.h の 62 行で定義されています。

参照元 CPropTypes()・DispatchEvent_p3_new()・DoPropertySheet().

int CPropTypes::m_nSet[MAX_KEYWORDSET_PER_TYPE] [private]

CPropTypes.h の 73 行で定義されています。

参照元 DispatchEvent_p3_new()・RearrangeKeywordSet().

CKeyWordSetMgr* CPropTypes::m_pCKeyWordSetMgr [private]

CPropTypes.h の 70 行で定義されています。

参照元 CPropTypes().

DLLSHAREDATA* CPropTypes::m_pShareData [private]

CPropTypes.h の 72 行で定義されています。

参照元 CPropTypes()・Export_KeyHelp()・Export_Regex()・Import_KeyHelp()・Import_Regex()・p3_Export_Colors()・p3_Import_Colors().

char CPropTypes::m_szHelpFile[_MAX_PATH+1] [private]

CPropTypes.h の 67 行で定義されています。

参照元 DispatchEvent_p3_new()・OnHelp().

Types CPropTypes::m_Types [private]

CPropTypes.h の 69 行で定義されています。

参照元 DispatchEvent_KeyHelp()・DispatchEvent_p1()・DispatchEvent_p2()・DispatchEvent_p3_new()・DispatchEvent_Regex()・DoPropertySheet()・GetData_KeyHelp()・GetData_p1()・GetData_p2()・GetData_Regex()・RearrangeKeywordSet()・SetData_KeyHelp()・SetData_p1()・SetData_p2()・SetData_p3_new()・SetData_Regex().

このクラスの説明は次のファイルから生成されました:
  • CPropTypes.h
  • CPropTypes.cpp
  • CPropTypesKeyHelp.cpp
  • CPropTypesRegex.cpp
Sakura-Editorに対してSat Oct 27 02:35:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CPropTypes メンバ一覧

これは全メンバの一覧です。CPropTypes継承メンバも含んでいます。

CPropTypes() | CPropTypes |
Create(HINSTANCE, HWND) | CPropTypes |
DispatchEvent_KeyHelp(HWND, UINT, WPARAM, LPARAM) | CPropTypes |
DispatchEvent_p1(HWND, UINT, WPARAM, LPARAM) | CPropTypes |
DispatchEvent_p2(HWND, UINT, WPARAM, LPARAM) | CPropTypes |
DispatchEvent_p3(HWND, UINT, WPARAM, LPARAM) | CPropTypes |
DispatchEvent_p3_new(HWND, UINT, WPARAM, LPARAM) | CPropTypes |
DispatchEvent_Regex(HWND, UINT, WPARAM, LPARAM) | CPropTypes |
DoPropertySheet(int) | CPropTypes |
DrawColorButton(DRAWITEMSTRUCT *, COLORREF) | CPropTypes | [protected]
DrawColorListItem(DRAWITEMSTRUCT *) | CPropTypes | [protected]
EnableTypesPropInput(HWND hwndDlg) | CPropTypes | [protected]
Export_KeyHelp(HWND) | CPropTypes | [protected]
Export_Regex(HWND) | CPropTypes | [protected]
GetData_KeyHelp(HWND) | CPropTypes | [protected]
GetData_p1(HWND) | CPropTypes | [protected]
GetData_p2(HWND) | CPropTypes | [protected]
GetData_p3(HWND) | CPropTypes | [protected]
GetData_p3_new(HWND) | CPropTypes | [protected]
GetData_Regex(HWND) | CPropTypes | [protected]
GetTypeData(Types &t) const | CPropTypes | [inline]
Import_KeyHelp(HWND) | CPropTypes | [protected]
Import_Regex(HWND) | CPropTypes | [protected]
m_dwCustColors | CPropTypes | [private]
m_hInstance | CPropTypes | [private]
m_hwndParent | CPropTypes | [private]
m_hwndThis | CPropTypes | [private]
m_nCurrentColorType | CPropTypes | [private]
m_nMaxLineSize_org | CPropTypes | [private]
m_nPageNum | CPropTypes | [private]
m_nSet | CPropTypes | [private]
m_pCKeyWordSetMgr | CPropTypes | [private]
m_pShareData | CPropTypes | [private]
m_szHelpFile | CPropTypes | [private]
m_Types | CPropTypes | [private]
OnHelp(HWND, int) | CPropTypes | [protected]
p3_Export_Colors(HWND) | CPropTypes | [protected]
p3_Import_Colors(HWND) | CPropTypes | [protected]
PropTypesKeyHelp(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropTypes | [protected, static]
PropTypesRegex(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | CPropTypes | [protected, static]
RearrangeKeywordSet(HWND) | CPropTypes | [protected]
RegexKakomiCheck(const char *s) | CPropTypes | [protected]
SelectColor(HWND, COLORREF *, DWORD *) | CPropTypes | [static]
SetData_KeyHelp(HWND) | CPropTypes | [protected]
SetData_p1(HWND) | CPropTypes | [protected]
SetData_p2(HWND) | CPropTypes | [protected]
SetData_p3(HWND) | CPropTypes | [protected]
SetData_p3_new(HWND) | CPropTypes | [protected]
SetData_Regex(HWND) | CPropTypes | [protected]
SetTypeData(const Types &t) | CPropTypes | [inline]
~CPropTypes() | CPropTypes |

Sakura-Editorに対してSat Oct 27 02:35:59 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CRecent

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRecent

#include <CRecent.h>

CRecentのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CRecent ()
~CRecent ()
bool | IsAvailable (void)
bool | Create (char *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *nViewCount, int nItemSize, int nOffset, int nCmpSize, int nCmpType)
bool | EasyCreate (int nRecentType)
void | Terminate (void)
bool | ChangeViewCount (int nViewCount)
bool | UpdateView (void)
bool | AppendItem (const char *pszData)
const char * | GetItem (int nIndex)
const char * | GetDataOfItem (int nIndex)
bool | DeleteItem (int nIndex)
bool | DeleteItem (const char *pszItemData)
void | DeleteAllItem (void)
int | FindItem (const char *pszItemData)
bool | MoveItem (int nSrcIndex, int nDstIndex)
bool | SetFavorite (int nIndex, bool bFavorite)
bool | SetFavorite (int nIndex)
bool | ResetFavorite (int nIndex)
void | ResetAllFavorite (void)
bool | IsFavorite (int nIndex)
int | GetArrayCount (void)
int | GetItemCount (void)
int | GetViewCount (void)
int | GetOffset (void)

Protected 変数

DLLSHAREDATA * m_pShareData

Private メソッド

void | ZeroItem (int nIndex)
int | GetOldestItem (int nIndex, bool bFavorite)
char * | GetArrayOffset (int nIndex)
bool | CopyItem (int nSrcIndex, int nDstIndex)

Private 変数

bool | m_bCreate
int | m_nArrayCount
int | m_nItemSize
int | m_nCmpType
int | m_nOffset
int | m_nCmpSize
char * | m_puUserItemData
int * | m_pnUserItemCount
bool * | m_pbUserItemFavorite
int * | m_pnUserViewCount

説明

CRecent.h の 65 行で定義されています。

コンストラクタとデストラクタ

CRecent::CRecent ( )

CRecent.cpp の 45 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・m_bCreate・m_nArrayCount・m_nCmpSize・m_nCmpType・m_nItemSize・m_nOffset・m_pbUserItemFavorite・m_pnUserItemCount・m_pnUserViewCount・m_pShareData・m_puUserItemData・NULL.

CRecent::~CRecent ( )

CRecent.cpp の 63 行で定義されています。

参照先 Terminate().

関数

bool CRecent::AppendItem ( const char * pszData )

CRecent.cpp の 476 行で定義されています。

参照先 CopyItem()・DeleteItem()・FindItem()・GetArrayOffset()・GetOldestItem()・IsAvailable()・m_nArrayCount・m_nCmpSize・m_nItemSize・m_nOffset・m_pnUserItemCount・MoveItem()・NULL.

参照元 CMRUFolder::Add()・CMRU::Add()・CShareData::AddEditWndList()・CEditView::AddToCmdArr()・CShareData::AddToGrepFileArr()・CShareData::AddToGrepFolderArr()・CShareData::AddToReplaceKeyArr()・CShareData::AddToSearchKeyArr()・CDlgTagJumpList::GetData().

bool CRecent::ChangeViewCount ( int nViewCount )

CRecent.cpp の 188 行で定義されています。

参照先 GetOldestItem()・IsAvailable()・IsFavorite()・m_nArrayCount・m_pnUserItemCount・m_pnUserViewCount・MoveItem().

参照元 UpdateView().

bool CRecent::CopyItem | ( | int | nSrcIndex,
 |  | int | nDstIndex
 | ) | [private]

CRecent.cpp の 359 行で定義されています。

参照先 GetArrayOffset()・IsAvailable()・m_nArrayCount・m_nItemSize・m_pbUserItemFavorite.

参照元 AppendItem()・DeleteItem()・MoveItem().

bool CRecent::Create | ( | char * | pszItemArray,
 |  | int * | pnItemCount,
 |  | bool * | pbItemFavorite,
 |  | int | nArrayCount,
 |  | int * | nViewCount,
 |  | int | nItemSize,
 |  | int | nOffset,
 |  | int | nCmpSize,
 |  | int | nCmpType
 | ) |

CRecent.cpp の 115 行で定義されています。

参照先 m_bCreate・m_nArrayCount・m_nCmpSize・m_nCmpType・m_nItemSize・m_nOffset・m_pbUserItemFavorite・m_pnUserItemCount・m_pnUserViewCount・m_puUserItemData・NULL・Terminate()・UpdateView().

参照元 EasyCreate().

void CRecent::DeleteAllItem ( void )

CRecent.cpp の 422 行で定義されています。

参照先 IsAvailable()・m_nArrayCount・ZeroItem().

参照元 CMRUFolder::ClearAll()・CMRU::ClearAll()・CDlgFavorite::OnBnClicked().

bool CRecent::DeleteItem ( const char * pszItemData ) [inline]

CRecent.h の 98 行で定義されています。

bool CRecent::DeleteItem ( int nIndex )

CRecent.cpp の 396 行で定義されています。

参照先 CopyItem()・IsAvailable()・m_pnUserItemCount・ZeroItem().

参照元 AppendItem()・CShareData::DeleteEditWndList().

bool CRecent::EasyCreate ( int nRecentType )

CRecent.cpp の 597 行で定義されています。

参照先 Create()・DLLSHAREDATA::m_bMRUArrFavorite・DLLSHAREDATA::m_bOPENFOLDERArrFavorite・DLLSHAREDATA::m_Common・DLLSHAREDATA::m_fiMRUArr・DLLSHAREDATA::m_nCmdArrNum・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_nGREPFILEArrNum・DLLSHAREDATA::m_nGREPFOLDERArrNum・DLLSHAREDATA::m_nMRUArrNum・Common::m_nMRUArrNum_MAX・DLLSHAREDATA::m_nOPENFOLDERArrNum・Common::m_nOPENFOLDERArrNum_MAX・DLLSHAREDATA::m_nREPLACEKEYArrNum・DLLSHAREDATA::m_nSEARCHKEYArrNum・DLLSHAREDATA::m_nTagJumpKeywordArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData・DLLSHAREDATA::m_szCmdArr・DLLSHAREDATA::m_szGREPFILEArr・DLLSHAREDATA::m_szGREPFOLDERArr・DLLSHAREDATA::m_szOPENFOLDERArr・DLLSHAREDATA::m_szREPLACEKEYArr・DLLSHAREDATA::m_szSEARCHKEYArr・DLLSHAREDATA::m_szTagJumpKeywordArr・MAX_CMDARR・MAX_EDITWINDOWS・MAX_GREPFILE・MAX_GREPFOLDER・MAX_MRU・MAX_OPENFOLDER・MAX_REPLACEKEY・MAX_SEARCHKEY・MAX_TAGJUMP_KEYWORD・NULL・RECENT_CMP_MEMCMP・RECENT_CMP_STRCMP・RECENT_CMP_STRICMP・RECENT_FOR_CMD・RECENT_FOR_EDITNODE・RECENT_FOR_FILE・RECENT_FOR_FOLDER・RECENT_FOR_GREP_FILE・RECENT_FOR_GREP_FOLDER・RECENT_FOR_REPLACE・RECENT_FOR_SEARCH・RECENT_FOR_TAGJUMP_KEYWORD.

参照元 CShareData::AddEditWndList()・CEditView::AddToCmdArr()・CShareData::AddToGrepFileArr()・CShareData::AddToGrepFolderArr()・CShareData::AddToReplaceKeyArr()・CShareData::AddToSearchKeyArr()・CDlgFavorite::CDlgFavorite()・CEditWnd::ChangeFileNameNotify()・CMRU::CMRU()・CMRUFolder::CMRUFolder()・CShareData::DeleteEditWndList()・CDlgTagJumpList::GetData()・CPropCommon::GetData_p1()・CDlgTagJumpList::SetData().

int CRecent::FindItem ( const char * pszItemData )

CRecent.cpp の 550 行で定義されています。

参照先 GetArrayOffset()・IsAvailable()・m_nCmpSize・m_nCmpType・m_nOffset・m_pnUserItemCount・memicmp・NULL・RECENT_CMP_MEMCMP・RECENT_CMP_MEMICMP・RECENT_CMP_STRCMP・RECENT_CMP_STRICMP・RECENT_CMP_STRNCMP・RECENT_CMP_STRNICMP・stricmp・strnicmp.

参照元 CShareData::AddEditWndList()・AppendItem()・CEditWnd::ChangeFileNameNotify()・CMRU::GetFileInfo()・CDlgFavorite::RefreshListOne().

int CRecent::GetArrayCount ( void ) [inline]

CRecent.h の 111 行で定義されています。

参照元 CShareData::AddEditWndList().

char* CRecent::GetArrayOffset ( int nIndex ) [inline, private]

CRecent.h の 143 行で定義されています。

参照元 AppendItem()・CopyItem()・FindItem()・GetItem()・MoveItem()・ZeroItem().

const char * CRecent::GetDataOfItem ( int nIndex )

CRecent.cpp の 456 行で定義されています。

参照先 GetItem()・IsAvailable()・m_nOffset・m_pnUserItemCount・NULL.

参照元 CMRUFolder::CreateMenu()・CMRUFolder::GetPath()・CMRUFolder::GetPathList()・CMRU::GetPathList()・CDlgFavorite::SetDataOne().

const char * CRecent::GetItem ( int nIndex )

CRecent.cpp の 443 行で定義されています。

参照先 GetArrayOffset()・IsAvailable()・m_pnUserItemCount・NULL.

参照元 CShareData::AddEditWndList()・CEditWnd::ChangeFileNameNotify()・CMRU::CreateMenu()・GetDataOfItem()・CMRU::GetFileInfo()・CDlgTagJumpList::SetData().

int CRecent::GetItemCount ( void ) [inline]

CRecent.h の 112 行で定義されています。

参照元 CShareData::AddEditWndList()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CMRUFolder::GetPathList()・CMRU::GetPathList()・CMRUFolder::Length()・CMRU::Length()・CDlgFavorite::RefreshListOne()・CDlgTagJumpList::SetData()・CDlgFavorite::SetDataOne().

int CRecent::GetOffset ( void ) [inline]

CRecent.h の 116 行で定義されています。

int CRecent::GetOldestItem | ( | int | nIndex,
 |  | bool | bFavorite
 | ) | [private]

CRecent.cpp の 298 行で定義されています。

参照先 IsAvailable()・IsFavorite()・m_pnUserItemCount.

参照元 AppendItem()・ChangeViewCount().

int CRecent::GetViewCount ( void ) [inline]

CRecent.h の 113 行で定義されています。

参照元 CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CMRUFolder::GetPathList()・CMRU::GetPathList()・CDlgFavorite::RefreshListOne()・CDlgFavorite::SetDataOne().

bool CRecent::IsAvailable ( void )

CRecent.cpp の 71 行で定義されています。

参照先 m_bCreate・m_nArrayCount・m_pnUserItemCount・m_pnUserViewCount・m_puUserItemData・NULL・Terminate().

参照元 AppendItem()・ChangeViewCount()・CopyItem()・DeleteAllItem()・DeleteItem()・FindItem()・GetDataOfItem()・GetItem()・GetOldestItem()・IsFavorite()・MoveItem()・ResetAllFavorite()・SetFavorite()・UpdateView()・ZeroItem().

bool CRecent::IsFavorite ( int nIndex )

CRecent.cpp の 283 行で定義されています。

参照先 IsAvailable()・m_pbUserItemFavorite・m_pnUserItemCount・NULL.

参照元 ChangeViewCount()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・GetOldestItem()・MoveItem()・CDlgFavorite::SetDataOne().

bool CRecent::MoveItem | ( | int | nSrcIndex,
 |  | int | nDstIndex
 | ) |

CRecent.cpp の 316 行で定義されています。

参照先 CopyItem()・GetArrayOffset()・IsAvailable()・IsFavorite()・m_nItemSize・m_pnUserItemCount・NULL.

参照元 AppendItem()・ChangeViewCount().

void CRecent::ResetAllFavorite ( void )

CRecent.cpp の 263 行で定義されています。

参照先 IsAvailable()・m_pnUserItemCount・SetFavorite().

bool CRecent::ResetFavorite ( int nIndex ) [inline]

CRecent.h の 106 行で定義されています。

bool CRecent::SetFavorite ( int nIndex ) [inline]

CRecent.h の 105 行で定義されています。

bool CRecent::SetFavorite | ( | int | nIndex,
 |  | bool | bFavorite
 | ) |

CRecent.cpp の 249 行で定義されています。

参照先 IsAvailable()・m_pbUserItemFavorite・m_pnUserItemCount・NULL.

参照元 CDlgFavorite::GetData()・ResetAllFavorite().

void CRecent::Terminate ( void )

CRecent.cpp の 165 行で定義されています。

参照先 m_bCreate・m_nArrayCount・m_nCmpSize・m_nCmpType・m_nItemSize・m_nOffset・m_pbUserItemFavorite・m_pnUserItemCount・m_pnUserViewCount・m_puUserItemData・NULL.

参照元 CShareData::AddEditWndList()・CEditView::AddToCmdArr()・CShareData::AddToGrepFileArr()・CShareData::AddToGrepFolderArr()・CShareData::AddToReplaceKeyArr()・CShareData::AddToSearchKeyArr()・CEditWnd::ChangeFileNameNotify()・Create()・CShareData::DeleteEditWndList()・CDlgTagJumpList::GetData()・CPropCommon::GetData_p1()・IsAvailable()・CDlgFavorite::~CDlgFavorite()・CMRU::~CMRU()・CMRUFolder::~CMRUFolder()・~CRecent().

bool CRecent::UpdateView ( void )

CRecent.cpp の 230 行で定義されています。

参照先 ChangeViewCount()・IsAvailable()・m_nArrayCount・m_pnUserViewCount.

参照元 Create()・CPropCommon::GetData_p1().

void CRecent::ZeroItem ( int nIndex ) [private]

CRecent.cpp の 379 行で定義されています。

参照先 GetArrayOffset()・IsAvailable()・m_nArrayCount・m_nItemSize・m_pbUserItemFavorite.

参照元 DeleteAllItem()・DeleteItem().

変数

bool CRecent::m_bCreate [private]

CRecent.h の 126 行で定義されています。

参照元 Create()・CRecent()・IsAvailable()・Terminate().

int CRecent::m_nArrayCount [private]

CRecent.h の 128 行で定義されています。

参照元 AppendItem()・ChangeViewCount()・CopyItem()・Create()・CRecent()・DeleteAllItem()・IsAvailable()・Terminate()・UpdateView()・ZeroItem().

int CRecent::m_nCmpSize [private]

CRecent.h の 134 行で定義されています。

参照元 AppendItem()・Create()・CRecent()・FindItem()・Terminate().

int CRecent::m_nCmpType [private]

CRecent.h の 132 行で定義されています。

参照元 Create()・CRecent()・FindItem()・Terminate().

int CRecent::m_nItemSize [private]

CRecent.h の 131 行で定義されています。

参照元 AppendItem()・CopyItem()・Create()・CRecent()・MoveItem()・Terminate()・ZeroItem().

int CRecent::m_nOffset [private]

CRecent.h の 133 行で定義されています。

参照元 AppendItem()・Create()・CRecent()・FindItem()・GetDataOfItem()・Terminate().

bool* CRecent::m_pbUserItemFavorite [private]

CRecent.h の 138 行で定義されています。

参照元 CopyItem()・Create()・CRecent()・IsFavorite()・SetFavorite()・Terminate()・ZeroItem().

int* CRecent::m_pnUserItemCount [private]

CRecent.h の 137 行で定義されています。

参照元 AppendItem()・ChangeViewCount()・Create()・CRecent()・DeleteItem()・FindItem()・GetDataOfItem()・GetItem()・GetOldestItem()・IsAvailable()・IsFavorite()・MoveItem()・ResetAllFavorite()・SetFavorite()・Terminate().

int* CRecent::m_pnUserViewCount [private]

CRecent.h の 139 行で定義されています。

参照元 ChangeViewCount()・Create()・CRecent()・IsAvailable()・Terminate()・UpdateView().

struct DLLSHAREDATA* CRecent::m_pShareData [protected]

CRecent.h の 122 行で定義されています。

参照元 CRecent()・EasyCreate().

char* CRecent::m_puUserItemData [private]

CRecent.h の 136 行で定義されています。

参照元 Create()・CRecent()・IsAvailable()・Terminate().

このクラスの説明は次のファイルから生成されました:
  • CRecent.h
  • CRecent.cpp
Sakura-Editorに対してSat Oct 27 02:36:00 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRecent メンバ一覧

これは全メンバの一覧です。CRecent継承メンバも含んでいます。

AppendItem(const char *pszData) | CRecent |
ChangeViewCount(int nViewCount) | CRecent |
CopyItem(int nSrcIndex, int nDstIndex) | CRecent | [private]
Create(char *pszItemArray, int *pnItemCount, bool *pbItemFavorite, int nArrayCount, int *nViewCount, int nItemSize, int nOffset, int nCmpSize, int nCmpType) | CRecent |
CRecent() | CRecent |
DeleteAllItem(void) | CRecent |
DeleteItem(int nIndex) | CRecent |
DeleteItem(const char *pszItemData) | CRecent | [inline]
EasyCreate(int nRecentType) | CRecent |
FindItem(const char *pszItemData) | CRecent |
GetArrayCount(void) | CRecent | [inline]
GetArrayOffset(int nIndex) | CRecent | [inline, private]
GetDataOfItem(int nIndex) | CRecent |
GetItem(int nIndex) | CRecent |
GetItemCount(void) | CRecent | [inline]
GetOffset(void) | CRecent | [inline]
GetOldestItem(int nIndex, bool bFavorite) | CRecent | [private]
GetViewCount(void) | CRecent | [inline]
IsAvailable(void) | CRecent |
IsFavorite(int nIndex) | CRecent |
m_bCreate | CRecent | [private]
m_nArrayCount | CRecent | [private]
m_nCmpSize | CRecent | [private]
m_nCmpType | CRecent | [private]
m_nItemSize | CRecent | [private]
m_nOffset | CRecent | [private]
m_pbUserItemFavorite | CRecent | [private]
m_pnUserItemCount | CRecent | [private]
m_pnUserViewCount | CRecent | [private]
m_pShareData | CRecent | [protected]
m_puUserItemData | CRecent | [private]
MoveItem(int nSrcIndex, int nDstIndex) | CRecent |
ResetAllFavorite(void) | CRecent |
ResetFavorite(int nIndex) | CRecent | [inline]
SetFavorite(int nIndex, bool bFavorite) | CRecent |
SetFavorite(int nIndex) | CRecent | [inline]
Terminate(void) | CRecent |
UpdateView(void) | CRecent |
ZeroItem(int nIndex) | CRecent | [private]
~CRecent() | CRecent |

Sakura-Editorに対してSat Oct 27 02:36:00 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CRegexKeyword

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRegexKeyword

正規表現キーワードクラス [詳細]

#include <CRegexKeyword.h>

CRegexKeywordに対する継承グラフ

[凡例]
CRegexKeywordのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CRegexKeyword (LPCTSTR)
コンストラクタ コンストラクタ
~CRegexKeyword ()
デストラクタ デストラクタ
BOOL | RegexKeyLineStart (void)
行検索開始
BOOL | RegexIsKeyword (const char *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor)
行検索
BOOL | RegexKeySetTypes (Types *pTypesPtr)
タイプ設定
BOOL | RegexKeyCheckSyntax (const char *s)
書式(囲み)チェック

Public 変数

int | m_nTypeIndex
BOOL | m_bUseRegexKeyword

Protected メソッド

BOOL | RegexKeyCompile (void)
コンパイル
BOOL | RegexKeyInit (void)
変数初期化

Private 変数

Types * m_pTypes
int | m_nCompiledMagicNumber
int | m_nRegexKeyCount
REGEX_INFO | m_sInfo [MAX_REGEX_KEYWORD]
char | m_szMsg [256]
BREGEXPからのメッセージを保持する

説明

正規表現キーワードクラス

正規表現キーワードを扱う。

CRegexKeyword.h の 88 行で定義されています。

コンストラクタとデストラクタ

CRegexKeyword::CRegexKeyword ( LPCTSTR regexp_dll )

コンストラクタ コンストラクタ

BREGEXP.DLL 初期化、正規表現キーワード初期化を行う。

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2007.08.12 genta 正規表現DLL指定のため引数追加

CRegexKeyword.cpp の 46 行で定義されています。

参照先 CDllHandler::Init()・m_nTypeIndex・m_pTypes・MYDBGMSG・NULL・RegexKeyInit().

CRegexKeyword::~CRegexKeyword ( )

デストラクタ デストラクタ

コンパイル済みデータの破棄を行う。

CRegexKeyword.cpp の 62 行で定義されています。

参照先 CBregexp::BRegfree・CDllHandler::IsAvailable()・m_sInfo・MAX_REGEX_KEYWORD・MYDBGMSG・NULL・RegexInfo_t::pBregexp.

関数

BOOL CRegexKeyword::RegexIsKeyword | ( | const char * | pLine,
 |  | int | nPos,
 |  | int | nLineLen,
 |  | int * | nMatchLen,
 |  | int * | nMatchColor
 | ) |

行検索

正規表現キーワードを検索する。

引数:
pLine | [in] １行のデータ
nPos | [in] 検索開始オフセット
nLineLen | [in] １行の長さ
nMatchLen | [out] マッチした長さ
nMatchColor | [out] マッチした色番号
戻り値:
TRUE | 一致
FALSE | 不一致
覚え書き:
RegexKeyLineStart関数によって初期化されていること。

CRegexKeyword.cpp の 342 行で定義されています。

参照先 FALSE・CDllHandler::IsAvailable()・m_bUseRegexKeyword・RegexKeywordInfo::m_nColorIndex・m_nRegexKeyCount・m_pTypes・Types::m_RegexKeywordArr・m_sInfo・MYDBGMSG・NULL・RK_NOMATCH・TRUE・USE_PARENT.

参照元 CEditView::DispLineNew()・CEditView::GetColorIndex().

BOOL CRegexKeyword::RegexKeyCheckSyntax ( const char * s )

書式(囲み)チェック

CRegexKeyword.cpp の 423 行で定義されています。

参照先 NULL・TRUE.

BOOL CRegexKeyword::RegexKeyCompile ( void ) [protected]

コンパイル

正規表現キーワードをコンパイルする。

戻り値:
TRUE | 成功
FALSE | 失敗
覚え書き:
すでにコンパイル済みの場合はそれを破棄する。 キーワードはコンパイルデータとして内部変数にコピーする。 先頭指定、色指定側の使用・未使用をチェックする。

CRegexKeyword.cpp の 170 行で定義されています。

参照先 CBregexp::BRegfree・CDllHandler::IsAvailable()・m_sInfo・MAX_REGEX_KEYWORD・MYDBGMSG・NULL・RegexInfo_t::pBregexp.

参照元 RegexKeyLineStart()・RegexKeySetTypes().

BOOL CRegexKeyword::RegexKeyInit ( void ) [protected]

変数初期化

正規表現キーワードに関する変数類を初期化する。

戻り値:
TRUE 成功

CRegexKeyword.cpp の 89 行で定義されています。

参照先 COLORIDX_REGEX1・FALSE・m_bUseRegexKeyword・m_nCompiledMagicNumber・m_nRegexKeyCount・m_nTypeIndex・m_sInfo・MAX_REGEX_KEYWORD・MYDBGMSG・NULL.

参照元 CRegexKeyword().

BOOL CRegexKeyword::RegexKeyLineStart ( void )

行検索開始

行検索を開始する。

戻り値:
TRUE | 成功
FALSE | 失敗または検索しない指定あり
覚え書き:
それぞれの行検索の最初に実行する。 タイプ設定等が変更されている場合はリロードする。

CRegexKeyword.cpp の 291 行で定義されています。

参照先 FALSE・CDllHandler::IsAvailable()・m_bUseRegexKeyword・m_nCompiledMagicNumber・Types::m_nIdx・m_nRegexKeyCount・Types::m_nRegexKeyMagicNumber・m_nTypeIndex・m_pTypes・m_sInfo・MYDBGMSG・RegexInfo_t::nFlag・RegexInfo_t::nMatch・RegexInfo_t::nStatus・NULL・RegexKeyCompile()・RK_EMPTY.

参照元 CEditView::DispLineNew()・CEditView::GetColorIndex().

BOOL CRegexKeyword::RegexKeySetTypes ( Types * pTypesPtr )

タイプ設定

現在のタイプ設定を設定する。

引数:
pTypesPtr [in] タイプ設定構造体へのポインタ
戻り値:
TRUE | 成功
FALSE | 失敗
覚え書き:
タイプ設定が変わったら再ロードしコンパイルする。

CRegexKeyword.cpp の 123 行で定義されています。

参照先 FALSE・Types::m_bUseRegexKeyword・m_bUseRegexKeyword・m_nCompiledMagicNumber・Types::m_nRegexKeyMagicNumber・m_pTypes・MYDBGMSG・NULL・RegexKeyCompile()・TRUE.

参照元 CEditView::Create()・CEditView::OnPaint().

変数

BOOL CRegexKeyword::m_bUseRegexKeyword

CRegexKeyword.h の 103 行で定義されています。

参照元 CEditView::OnPaint()・RegexIsKeyword()・RegexKeyInit()・RegexKeyLineStart()・RegexKeySetTypes().

int CRegexKeyword::m_nCompiledMagicNumber [private]

CRegexKeyword.h の 115 行で定義されています。

参照元 RegexKeyInit()・RegexKeyLineStart()・RegexKeySetTypes().

int CRegexKeyword::m_nRegexKeyCount [private]

CRegexKeyword.h の 116 行で定義されています。

参照元 RegexIsKeyword()・RegexKeyInit()・RegexKeyLineStart().

int CRegexKeyword::m_nTypeIndex

CRegexKeyword.h の 102 行で定義されています。

参照元 CRegexKeyword()・RegexKeyInit()・RegexKeyLineStart().

Types* CRegexKeyword::m_pTypes [private]

CRegexKeyword.h の 114 行で定義されています。

参照元 CRegexKeyword()・RegexIsKeyword()・RegexKeyLineStart()・RegexKeySetTypes().

REGEX_INFO CRegexKeyword::m_sInfo[MAX_REGEX_KEYWORD] [private]

CRegexKeyword.h の 117 行で定義されています。

参照元 RegexIsKeyword()・RegexKeyCompile()・RegexKeyInit()・RegexKeyLineStart()・~CRegexKeyword().

char CRegexKeyword::m_szMsg[256] [private]

BREGEXPからのメッセージを保持する

CBregexpを再定義しています。

CRegexKeyword.h の 118 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CRegexKeyword.h
  • CRegexKeyword.cpp
Sakura-Editorに対してSat Oct 27 02:36:01 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRegexKeyword メンバ一覧

これは全メンバの一覧です。CRegexKeyword継承メンバも含んでいます。

BMatch | CBregexp | [protected]
BMatchEx | CBregexp | [protected]
BREGEXP_BMatch typedef | CBregexp | [protected]
BREGEXP_BMatchEx typedef | CBregexp | [protected]
BREGEXP_BRegexpVersion typedef | CBregexp | [protected]
BREGEXP_BRegfree typedef | CBregexp | [protected]
BREGEXP_BSplit typedef | CBregexp | [protected]
BREGEXP_BSubst typedef | CBregexp | [protected]
BREGEXP_BSubstEx typedef | CBregexp | [protected]
BREGEXP_BTrans typedef | CBregexp | [protected]
BRegexpVersion | CBregexp | [protected]
BRegfree | CBregexp | [protected]
BSplit | CBregexp | [protected]
BSubst | CBregexp | [protected]
BSubstEx | CBregexp | [protected]
BTrans | CBregexp | [protected]
CBregexp() | CBregexp |
CDllHandler() | CDllHandler |
Compile(const char *szPattern, int nOption=0) | CBregexp | [inline]
Compile(const char *szPattern0, const char *szPattern1, int nOption=0) | CBregexp |
CRegexKeyword(LPCTSTR) | CRegexKeyword |
DeinitDll(void) | CBregexp | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR) | CDllHandler | [protected, virtual]
GetDllNameInOrder(LPCTSTR, int) | CBregexp | [protected, virtual]
GetIndex(void) | CBregexp | [inline]
GetInstance() const | CDllHandler | [inline]
GetLastIndex(void) | CBregexp | [inline]
GetLastMessage(void) const | CBregexp | [inline]
GetMatchLen(void) | CBregexp | [inline]
GetString(void) | CBregexp | [inline]
GetStringLen(void) | CBregexp | [inline]
GetVersion() | CBregexp | [inline]
Init(const char *str=NULL) | CDllHandler | [inline]
InitDll(void) | CBregexp | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsLookAhead(void) | CBregexp | [inline]
IsLookAhead(const char *pattern) | CBregexp | [inline]
LoadLibrary(const char *str=NULL) | CDllHandler |
m_bUseRegexKeyword | CRegexKeyword |
m_nCompiledMagicNumber | CRegexKeyword | [private]
m_nRegexKeyCount | CRegexKeyword | [private]
m_nTypeIndex | CRegexKeyword |
m_pTypes | CRegexKeyword | [private]
m_sInfo | CRegexKeyword | [private]
m_szMsg | CRegexKeyword | [private]
Match(const char *szTarget, int nLen, int nStart=0) | CBregexp |
operator!(void) const | CDllHandler | [inline]
optCaseSensitive Enum 値 | CBregexp |
optGlobal Enum 値 | CBregexp |
Option Enum | CBregexp |
optNothing Enum 値 | CBregexp |
PAT_BOTTOM Enum 値 | CBregexp |
PAT_LOOKAHEAD Enum 値 | CBregexp |
PAT_NORMAL Enum 値 | CBregexp |
PAT_TAB Enum 値 | CBregexp |
PAT_TOP Enum 値 | CBregexp |
PAT_UNKNOWN Enum 値 | CBregexp |
Pattern Enum | CBregexp |
RegexIsKeyword(const char *pLine, int nPos, int nLineLen, int *nMatchLen, int *nMatchColor) | CRegexKeyword |
RegexKeyCheckSyntax(const char *s) | CRegexKeyword |
RegexKeyCompile(void) | CRegexKeyword | [protected]
RegexKeyInit(void) | CRegexKeyword | [protected]
RegexKeyLineStart(void) | CRegexKeyword |
RegexKeySetTypes(Types *pTypesPtr) | CRegexKeyword |
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
ReleaseCompileBuffer(void) | CBregexp | [inline, protected]
Replace(const char *szTarget, int nLen, int nStart=0) | CBregexp |
~CBregexp() | CBregexp | [virtual]
~CDllHandler() | CDllHandler | [virtual]
~CRegexKeyword() | CRegexKeyword |

Sakura-Editorに対してSat Oct 27 02:36:01 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CRunningTimer

  • 構成
  • クラス階層
  • 構成メンバ

クラス CRunningTimer

処理所要時間の計測クラス [詳細]

#include <CRunningTimer.h>

すべてのメンバ一覧

Public メソッド

CRunningTimer (const char *Text=NULL)
~CRunningTimer ()
void | Reset ()
DWORD | Read ()
void | WriteTrace (const char *msg="") const

Protected 変数

DWORD | m_nStartTime
char | m_szText [100]
int | m_nDeapth

Static Protected 変数

static int | m_nNestCount = 0

説明

処理所要時間の計測クラス

定義の切り替えのみでタイマーのON/OFFを行えるようにするため， このクラスを直接使わず，後ろにあるMY_RUNNINGTIMERとMY_TRACETIMEを 使うこと．

日付:
2002/10/16 genta WriteTrace及びマクロ追加

CRunningTimer.h の 55 行で定義されています。

コンストラクタとデストラクタ

CRunningTimer::CRunningTimer ( const char * Text = NULL )

CRunningTimer::~CRunningTimer ( )

関数

DWORD CRunningTimer::Read ( )

参照元 CEditView::Command_WIN_OUTPUT().

void CRunningTimer::Reset ( )

参照元 CEditView::Command_PROPERTY_FILE().

void CRunningTimer::WriteTrace ( const char * msg = "" ) const

変数

int CRunningTimer::m_nDeapth [protected]

CRunningTimer.h の 75 行で定義されています。

int CRunningTimer::m_nNestCount = 0 [static, protected]

CRunningTimer.h の 77 行で定義されています。

DWORD CRunningTimer::m_nStartTime [protected]

CRunningTimer.h の 73 行で定義されています。

char CRunningTimer::m_szText[100] [protected]

CRunningTimer.h の 74 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CRunningTimer.h
  • CRunningTimer.cpp
Sakura-Editorに対してSat Oct 27 02:36:01 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CRunningTimer メンバ一覧

これは全メンバの一覧です。CRunningTimer継承メンバも含んでいます。

CRunningTimer(const char *Text=NULL) | CRunningTimer |
m_nDeapth | CRunningTimer | [protected]
m_nNestCount | CRunningTimer | [protected, static]
m_nStartTime | CRunningTimer | [protected]
m_szText | CRunningTimer | [protected]
Read() | CRunningTimer |
Reset() | CRunningTimer |
WriteTrace(const char *msg="") const | CRunningTimer |
~CRunningTimer() | CRunningTimer |

Sakura-Editorに対してSat Oct 27 02:36:01 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CShareData

  • 構成
  • クラス階層
  • 構成メンバ

クラス CShareData

共有データの管理 [詳細]

#include <CShareData.h>

CShareDataのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CShareData ()
~CShareData ()
bool | Init (void)
CShareDataクラスの初期化処理
DLLSHAREDATA * GetShareData ()
int | GetDocumentType (const char *pszFilePath)
int | GetDocumentTypeExt (const char *pszExt)
BOOL | AddEditWndList (HWND, int nGroup=0)
void | DeleteEditWndList (HWND)
void | ResetGroupId (void)
EditNode * | GetEditNode (HWND hWnd)
int | GetGroupId (HWND hWnd)
bool | IsSameGroup (HWND hWnd1, HWND hWnd2)
bool | ReorderTab (HWND hSrcTab, HWND hDstTab)
HWND | SeparateGroup (HWND hwndSrc, HWND hwndDst, bool bSrcIsTop, int notifygroups[])
EditNode * | GetEditNodeAt (int nGroup, int nIndex)
EditNode * | GetTopEditNode (HWND hWnd)
HWND | GetTopEditWnd (HWND hWnd)
bool | IsTopEditWnd (HWND hWnd)
BOOL | RequestCloseAllEditor (BOOL bExit, int nGroup)
BOOL | IsPathOpened (const char *, HWND *)
指定ファイルが開かれているか調べる
BOOL | IsPathOpened (const char *, HWND *, int)
指定ファイルが開かれているか調べつつ、多重オープン時の文字コード衝突も確認
int | GetEditorWindowsNum (int nGroup)
BOOL | PostMessageToAllEditors (UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup=0)
BOOL | SendMessageToAllEditors (UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup=0)
int | GetOpenedWindowArr (EditNode **, BOOL, BOOL bGSort=FALSE)
void | TraceOut (LPCTSTR lpFmt,...)
void | SetTraceOutSource (HWND hwnd)
BOOL | LoadShareData (void)
void | SaveShareData (void)
void | GetIniFileName (LPTSTR pszIniFileName, BOOL bRead=FALSE)
BOOL | IsPrivateSettings (void)
BOOL | ShareData_IO_2 (bool)
int | GetMacroFilename (int idx, char *pszPath, int nBufLen)
bool | BeReloadWhenExecuteMacro (int idx)
void | AddToSearchKeyArr (const char *pszSearchKey)
void | AddToReplaceKeyArr (const char *pszReplaceKey)
void | AddToGrepFileArr (const char *pszGrepFile)
void | AddToGrepFolderArr (const char *pszGrepFolder)
bool | ExtWinHelpIsSet (int nType=-1)
char * | GetExtWinHelp (int nType=-1)
bool | ExtHTMLHelpIsSet (int nType=-1)
char * | GetExtHTMLHelp (int nType=-1)
bool | HTMLHelpIsSingle (int nType=-1)
const char * | MyGetDateFormat (SYSTEMTIME &systime, char *pszDest, int nDestLen)
const char * | MyGetTimeFormat (SYSTEMTIME &systime, char *pszDest, int nDestLen)
const char * | MyGetDateFormat (SYSTEMTIME &systime, char *pszDest, int nDestLen, int nDateFormatType, char *szDateFormat)
const char * | MyGetTimeFormat (SYSTEMTIME &systime, char *pszDest, int nDestLen, int nTimeFormatType, char *szTimeFormat)
LPTSTR | GetTransformFileNameFast (LPCTSTR, LPTSTR, int)
int | TransformFileName_MakeCache (void)
void | PushTagJump (const TagJump *)
タグジャンプ情報の保存
bool | PopTagJump (TagJump *)
タグジャンプ情報の参照

Static Public メソッド

static CShareData * | getInstance ()
static BOOL | IsEditWnd (HWND)
static void | SetKeyNameArrVal (DLLSHAREDATA *, int, short, char *, short, short, short, short, short, short, short, short)
static LONG | MY_RegSetVal (HKEY hKey, LPCTSTR lpValueName, CONST BYTE *lpData, DWORD cbData)
static LONG | MY_RegQuerVal (HKEY hKey, LPCTSTR lpValueName, BYTE *lpData, DWORD cbData)
static void | GetIniFileNameDirect (LPTSTR pszPrivateIniFile, LPTSTR pszIniFile)
static void | IO_ColorSet (CProfile *, const char *, ColorInfo *)
色設定 I/O
static LPCTSTR | GetFilePathFormat (LPCTSTR, LPTSTR, int, LPCTSTR, LPCTSTR)
static bool | ExpandMetaToFolder (LPCTSTR, LPTSTR, int)

Protected メソッド

void | InitKeyword (DLLSHAREDATA *)
共有メモリ初期化/強調キーワード
void | InitKeyAssign (DLLSHAREDATA *)
共有メモリ初期化/キー割り当て
void | InitToolButtons (DLLSHAREDATA *)
共有メモリ初期化/ツールバー
void | InitTypeConfig (DLLSHAREDATA *)
共有メモリ初期化/タイプ別設定
void | InitPopupMenu (DLLSHAREDATA *)
共有メモリ初期化/ポップアップメニュー
void | ShareData_IO_Mru (CProfile &)
共有データのMruセクションの入出力
void | ShareData_IO_Keys (CProfile &)
共有データのKeysセクションの入出力
void | ShareData_IO_Grep (CProfile &)
共有データのGrepセクションの入出力
void | ShareData_IO_Folders (CProfile &)
共有データのFoldersセクションの入出力
void | ShareData_IO_Cmd (CProfile &)
共有データのCmdセクションの入出力
void | ShareData_IO_Nickname (CProfile &)
共有データのNicknameセクションの入出力
void | ShareData_IO_Common (CProfile &)
共有データのCommonセクションの入出力
void | ShareData_IO_Toolbar (CProfile &)
共有データのToolbarセクションの入出力
void | ShareData_IO_CustMenu (CProfile &)
共有データのCustMenuセクションの入出力
void | ShareData_IO_Font (CProfile &)
共有データのFontセクションの入出力
void | ShareData_IO_KeyBind (CProfile &)
共有データのKeyBindセクションの入出力
void | ShareData_IO_Print (CProfile &)
共有データのPrintセクションの入出力
void | ShareData_IO_Types (CProfile &)
共有データのTypesセクションの入出力
void | ShareData_IO_KeyWords (CProfile &)
共有データのKeyWordsセクションの入出力
void | ShareData_IO_Macro (CProfile &)
共有データのMacroセクションの入出力
void | ShareData_IO_Other (CProfile &)
共有データのOtherセクションの入出力
int | GetOpenedWindowArrCore (EditNode **, BOOL, BOOL bGSort=FALSE)

Protected 変数

HANDLE | m_hFileMap
DLLSHAREDATA * m_pShareData
HWND | m_hwndTraceOutSource
int | m_nTransformFileNameCount
TCHAR | m_szTransformFileNameFromExp [MAX_TRANSFORM_FILENAME][_MAX_PATH]
int | m_nTransformFileNameOrgId [MAX_TRANSFORM_FILENAME]

Static Protected 変数

static CShareData * | _instance = NULL
static CMutex | g_cEditArrMutex
CShareData::m_pEditArr保護用Mutex

説明

共有データの管理

CShareDataはCProcessのメンバであるため，両者の寿命は同一です． 本来はCProcessオブジェクトを通じてアクセスするべきですが， CProcess内のデータ領域へのポインタをstatic変数に保存することで Singletonのようにどこからでもアクセスできる構造になっています．

共有メモリへのポインタをm_pShareDataに保持します．このメンバは 公開されていますが，CShareDataによってMap/Unmapされるために ChareDataの消滅によってポインタm_pShareDataも無効になることに 注意してください．

日付:
2002.01.03 YAZAKI m_tbMyButtonなどをCShareDataからCMenuDrawerへ移動したことによる修正。

CShareData.h の 746 行で定義されています。

コンストラクタとデストラクタ

CShareData::CShareData ( )

CShareData_new.cpp の 42 行で定義されています。

参照先 m_hFileMap・m_nTransformFileNameCount・m_pShareData・NULL.

CShareData::~CShareData ( )

共有メモリ領域がある場合はプロセスのアドレス空間から､ すでにマップされているファイル ビューをアンマップする。

CShareData.cpp の 278 行で定義されています。

参照先 m_pShareData・NULL.

関数

BOOL CShareData::AddEditWndList | ( | HWND | hWnd,
 |  | int | nGroup = 0
 | ) |

編集ウィンドウリストへの登録

引数:
hWnd | [in] 登録する編集ウィンドウのハンドル
nGroup | [in] 新規登録の場合のグループID
日付:
2003.06.28 MIK CRecent利用で書き換え

2007.06.20 ryoji 新規ウィンドウにはグループIDを付与する

CShareData.cpp の 848 行で定義されています。

参照先 CRecent::AppendItem()・CRecent::EasyCreate()・FALSE・CRecent::FindItem()・g_cEditArrMutex・CRecent::GetArrayCount()・CRecent::GetItem()・CRecent::GetItemCount()・GetWindowLongPtr・LONG_PTR・EditNode::m_nGroup・DLLSHAREDATA::m_nGroupSequences・DLLSHAREDATA::m_nSequences・m_pShareData・NULL・RECENT_FOR_EDITNODE・SetWindowLongPtr・CRecent::Terminate()・TWNT_ADD・TWNT_ORDER.

void CShareData::AddToGrepFileArr ( const char * pszGrepFile )

m_szGREPFILEArrにpszGrepFileを追加する YAZAKI

CShareData.cpp の 1943 行で定義されています。

参照先 CRecent::AppendItem()・CRecent::EasyCreate()・RECENT_FOR_GREP_FILE・CRecent::Terminate().

参照元 CDlgGrep::GetData().

void CShareData::AddToGrepFolderArr ( const char * pszGrepFolder )

m_nGREPFOLDERArrNumにpszGrepFolderを追加する YAZAKI

CShareData.cpp の 1981 行で定義されています。

参照先 CRecent::AppendItem()・CRecent::EasyCreate()・RECENT_FOR_GREP_FOLDER・CRecent::Terminate().

参照元 CDlgGrep::GetData().

void CShareData::AddToReplaceKeyArr ( const char * pszReplaceKey )

m_szREPLACEKEYArrにpszReplaceKeyを追加する YAZAKI

CShareData.cpp の 1905 行で定義されています。

参照先 CRecent::AppendItem()・CRecent::EasyCreate()・RECENT_FOR_REPLACE・CRecent::Terminate().

参照元 CMacro::HandleCommand().

void CShareData::AddToSearchKeyArr ( const char * pszSearchKey )

m_szSEARCHKEYArrにpszSearchKeyを追加する。 YAZAKI

CShareData.cpp の 1867 行で定義されています。

参照先 CRecent::AppendItem()・CRecent::EasyCreate()・RECENT_FOR_SEARCH・CRecent::Terminate().

参照元 CDlgGrep::GetData()・CDlgFind::GetData()・CMacro::HandleCommand()・CEditView::ISearchExit()・CEditWnd::OnCommand()・CEditWnd::ProcSearchBox().

bool CShareData::BeReloadWhenExecuteMacro ( int idx )

idxで指定したマクロのm_bReloadWhenExecuteを取得する。 idxは正確なものでなければならない。 YAZAKI

CShareData.cpp の 1856 行で定義されています。

参照先 MacroRec::IsEnabled()・MacroRec::m_bReloadWhenExecute・DLLSHAREDATA::m_MacroTable・m_pShareData・TRUE.

void CShareData::DeleteEditWndList ( HWND hWnd )

編集ウィンドウリストからの削除

日付:
2003.06.28 MIK CRecent利用で書き換え

2007.07.05 ryoji mutexで保護

CShareData.cpp の 964 行で定義されています。

参照先 CRecent::DeleteItem()・CRecent::EasyCreate()・g_cEditArrMutex・GetGroupId()・MYWM_TAB_WINDOW_NOTIFY・PostMessageToAllEditors()・RECENT_FOR_EDITNODE・CRecent::Terminate()・TWNT_DEL.

bool CShareData::ExpandMetaToFolder | ( | LPCTSTR | pszSrc,
 |  | LPTSTR | pszDes,
 |  | int | nDesLen
 | ) | [static]

MYDOCなどのパラメータ指定を実際のパス名に変換する

引数:
pszSrc | [in] 変換前文字列
pszDes | [out] 変換後文字列
nDesLen | [in] pszDesのNULLを含むTCHAR単位の長さ
戻り値:
true | 正常に変換できた
false | バッファが足りなかった，またはエラー。pszDesは不定
日付:
2002.11.27 Moca 作成開始

CShareData.cpp の 2300 行で定義されています。

参照先 NULL.

参照元 TransformFileName_MakeCache().

bool CShareData::ExtHTMLHelpIsSet ( int nTypeNo = -1 )

外部HTMLヘルプが設定されているか確認。

CShareData.cpp の 2046 行で定義されています。

参照先 DLLSHAREDATA::m_Common・m_pShareData・Types::m_szExtHtmlHelp・Common::m_szExtHtmlHelp・DLLSHAREDATA::m_Types・MAX_TYPES.

bool CShareData::ExtWinHelpIsSet ( int nTypeNo = -1 )

外部Winヘルプが設定されているか確認。

CShareData.cpp の 2018 行で定義されています。

参照先 DLLSHAREDATA::m_Common・m_pShareData・Types::m_szExtHelp・Common::m_szExtHelp・DLLSHAREDATA::m_Types・MAX_TYPES.

int CShareData::GetDocumentType ( const char * pszFilePath )

ファイル名から、ドキュメントタイプ（数値）を取得する

引数:
pszFilePath [in] ファイル名
拡張子を切り出して GetDocumentTypeExt に渡すだけ．

CShareData.cpp の 792 行で定義されています。

参照先 _MAX_EXT・GetDocumentTypeExt()・NULL.

参照元 CEditDoc::Init()・CEditDoc::OnChangeSetting().

int CShareData::GetDocumentTypeExt ( const char * pszExt )

拡張子から、ドキュメントタイプ（数値）を取得する

引数:
pszExt [in] 拡張子 (先頭の,は含まない)
指定された拡張子の属する文書タイプ番号を返す． とりあえず今のところはタイプは拡張子のみに依存すると仮定している． ファイル全体の形式に対応させるときは，また考え直す．

CShareData.cpp の 815 行で定義されています。

参照先 _stricmp・m_pShareData・Types::m_szTypeExts・DLLSHAREDATA::m_Types・MAX_TYPES・NULL.

参照元 GetDocumentType().

EditNode * CShareData::GetEditNode ( HWND hWnd )

編集ウィンドウ情報を取得する

日付:
2007.06.20 ryoji
警告:
この関数はm_pEditArr内の要素へのポインタを返す． m_pEditArrが変更された後ではアクセスしないよう注意が必要．

CShareData.cpp の 1026 行で定義されています。

参照先 IsEditWnd()・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData.

参照元 GetGroupId()・CEditWnd::OnSize()・CTabWnd::OnTabNotify()・CTabWnd::SeparateGroup()・SeparateGroup()・CTabWnd::TabWindowNotify().

EditNode * CShareData::GetEditNodeAt | ( | int | nGroup,
 |  | int | nIndex
 | ) |

指定位置の編集ウィンドウ情報を取得する

日付:
2007.06.20 ryoji

CShareData.cpp の 1085 行で定義されています。

参照先 IsEditWnd()・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・EditNode::m_nGroup・DLLSHAREDATA::m_pEditArr・m_pShareData.

参照元 CEditWnd::Create()・GetTopEditNode()・CTabWnd::SeparateGroup().

int CShareData::GetEditorWindowsNum ( int nGroup )

現在の編集ウィンドウの数を調べる

引数:
nGroup [in] グループ指定（0:全グループ）
日付:
2007.06.22 ryoji nGroup引数を追加

CShareData.cpp の 1302 行で定義されています。

参照先 GetGroupId()・IsEditWnd()・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData.

参照元 IsPathOpened().

char * CShareData::GetExtHTMLHelp ( int nTypeNo = -1 )

設定されている外部Winヘルプのファイル名を返す。 タイプ別設定にファイル名が設定されていれば、そのファイル名を返します。 そうでなければ、共通設定のファイル名を返します。

CShareData.cpp の 2064 行で定義されています。

参照先 DLLSHAREDATA::m_Common・m_pShareData・Common::m_szExtHtmlHelp・Types::m_szExtHtmlHelp・DLLSHAREDATA::m_Types.

char * CShareData::GetExtWinHelp ( int nTypeNo = -1 )

設定されている外部Winヘルプのファイル名を返す。 タイプ別設定にファイル名が設定されていれば、そのファイル名を返します。 そうでなければ、共通設定のファイル名を返します。

CShareData.cpp の 2036 行で定義されています。

参照先 DLLSHAREDATA::m_Common・m_pShareData・Common::m_szExtHelp・Types::m_szExtHelp・DLLSHAREDATA::m_Types.

LPCTSTR CShareData::GetFilePathFormat | ( | LPCTSTR | pszSrc,
 |  | LPTSTR | pszDest,
 |  | int | nDestLen,
 |  | LPCTSTR | pszFrom,
 |  | LPCTSTR | pszTo
 | ) | [static]

ファイル・フォルダ名を置換して、簡易表示名を取得する

引数:
pszSrc | [in] ファイル名
pszDest | [out] 変換後のファイル名の格納先
nDestLen | [in] 終端のNULLを含むpszDestのTCHAR単位の長さ
pszFrom | [in] 置換前文字列
pszTo | [in] 置換後文字列
日付:
2002.11.27 Moca 新規作成
覚え書き:
大小文字を区別しない。nDestLenに達したときは後ろを切り捨てられる

CShareData.cpp の 2243 行で定義されています。

参照先 strnicmp.

参照元 GetTransformFileNameFast().

int CShareData::GetGroupId ( HWND hWnd )

グループIDを取得する

日付:
2007.06.20 ryoji

CShareData.cpp の 1046 行で定義されています。

参照先 GetEditNode()・EditNode::m_nGroup・NULL.

参照元 CEditWnd::ChangeFileNameNotify()・CEditView::Command_FILECLOSEALL()・CEditView::Command_GROUPCLOSE()・DeleteEditWndList()・GetEditorWindowsNum()・GetTopEditNode()・IsSameGroup()・CEditApp::OpenNewEditor().

void CShareData::GetIniFileName | ( | LPTSTR | pszIniFileName,
 |  | BOOL | bRead = FALSE
 | ) |

iniファイル名の取得

共有データからsakura.iniの格納フォルダを取得し、フルパス名を返す （共有データ未設定のときは共有データ設定を行う）

引数:
[out] | pszIniFileName | iniファイル名（フルパス）
[in] | bRead | true: 読み込み / false: 書き込み
作者:
ryoji
日付:
2007.05.19 ryoji 新規作成

CShareData_new.cpp の 131 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・_MAX_PATH・GetIniFileNameDirect()・CCommandLine::Instance()・IniFolder::m_bInit・IniFolder::m_bReadPrivate・IniFolder::m_bWritePrivate・DLLSHAREDATA::m_IniFolder・m_pShareData・IniFolder::m_szIniFile・IniFolder::m_szPrivateIniFile・NULL.

参照元 GetInidir()・CControlProcess::Initialize()・ShareData_IO_2().

void CShareData::GetIniFileNameDirect | ( | LPTSTR | pszPrivateIniFile,
 |  | LPTSTR | pszIniFile
 | ) | [static]

構成設定ファイルからiniファイル名を取得する

sakura.exe.iniからsakura.iniの格納フォルダを取得し、フルパス名を返す

引数:
[out] | pszPrivateIniFile | マルチユーザ用のiniファイルパス
[out] | pszIniFile | EXE基準のiniファイルパス
作者:
ryoji
日付:
2007.09.04 ryoji 新規作成

CShareData_new.cpp の 67 行で定義されています。

参照先 _MAX_DIR・_MAX_DRIVE・_MAX_EXT・_MAX_FNAME・_MAX_PATH・GetSpecialFolderPath()・NULL.

参照元 GetIniFileName()・CProcessFactory::TestWriteQuit().

CShareData * CShareData::getInstance ( ) [static]

CShareData.cpp の 269 行で定義されています。

参照先 _instance.

参照元 ActivateFrameWindow()・CTabWnd::AdjustWindowPlacement()・CDialog::CDialog()・CDlgOpenFile::CDlgOpenFile()・CEditApp::CEditApp()・CEditDoc::CEditDoc()・CEditView::CEditView()・CEditWnd::CEditWnd()・CFuncKeyWnd::CFuncKeyWnd()・CPropCommon::ChangeDateExample()・CEditWnd::ChangeFileNameNotify()・CPropCommon::ChangeTimeExample()・CEditApp::CloseAllEditor()・CMenuDrawer::CMenuDrawer()・CMRU::CMRU()・CMRUFolder::CMRUFolder()・CEditView::Command_BIND_WINDOW()・CEditView::Command_CASCADE()・CEditView::Command_EXTHELP1()・CEditView::Command_EXTHTMLHELP()・CEditView::Command_FILECLOSEALL()・CEditView::Command_FILESAVEALL()・CEditView::Command_FONT()・CEditView::Command_GROUPCLOSE()・CEditView::Command_INS_DATE()・CEditView::Command_INS_TIME()・CEditView::Command_RECKEYMACRO()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR()・CEditView::Command_TAGJUMPBACK()・CEditView::Command_TILE_H()・CEditView::Command_TILE_V()・CEditView::Command_TRACEOUT()・CPropCommon::CPropCommon()・CPropTypes::CPropTypes()・CTipWnd::Create()・CEditWnd::Create()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CEditApp::CreatePopUpMenu_L()・CRecent::CRecent()・CSMacroMgr::CSMacroMgr()・CSplitterWnd::CSplitterWnd()・CTabWnd::CTabWnd()・CPropCommon::DoPropertySheet()・CSMacroMgr::Exec()・CEditView::ExecCmd()・CPPA::Execute()・CEditDoc::FileRead()・CDlgGrep::GetData()・CDlgFind::GetData()・CKeyBind::GetDefFuncCode()・CMigemo::GetDllName()・GetInidir()・GetInidirOrExedir()・CTabWnd::GetNextGroupWnd()・CTabWnd::GetPrevGroupWnd()・CTabWnd::GetTabName()・CMacro::HandleCommand()・CEditDoc::HandleCommand()・CTabWnd::HideOtherWindows()・CEditDoc::Init()・InitRegexp()・CEditView::ISearchExit()・CMigemo::migemo_load_all()・MyPropertySheet()・OFNHookProcMain()・CEditDoc::OnChangeSetting()・CEditWnd::OnClose()・CEditWnd::OnCommand()・CEditApp::OnDestroy()・CEditWnd::OnMouseWheel()・CEditWnd::OnSize()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CTabWnd::OnTabNotify()・CEditDoc::OpenFile()・CEditApp::OpenNewEditor()・CEditApp::OpenNewEditor2()・CEditDoc::OpenPropertySheet()・CEditDoc::OpenPropertySheetTypes()・CEditWnd::PopupWinList()・CEditWnd::ProcSearchBox()・PropSheetWndProc()・CTabWnd::Refresh()・CTabWnd::ReorderTab()・CTabWnd::SeparateGroup()・CDlgProperty::SetData()・CDlgGrep::SetData()・CDlgDiff::SetData()・CDlgCompare::SetData()・CTabWnd::TabListMenu()・CTabWnd::TabWindowNotify()・CEditView::TagJumpSub()・CEditApp::TerminateApplication()・CEditWnd::WinListMenu().

int CShareData::GetMacroFilename | ( | int | idx,
 |  | char * | pszPath,
 |  | int | nBufLen
 | ) |

idxで指定したマクロファイル名（フルパス）を取得する．

引数:
pszPath | [in] パス名の出力先．長さのみを知りたいときはNULLを入れる．
idx | [in] マクロ番号
nBufLen | [in] pszPathで指定されたバッファのバッファサイズ
戻り値:
>0 | : パス名の長さ．
0 | : エラー，そのマクロは使えない，ファイル名が指定されていない．
<0 | : バッファ不足．必要なバッファサイズは -(戻り値)+1
作者:
YAZAKI
日付:
2003.06.08 Moca ローカル変数へのポインタを返さないように仕様変更

2003.06.14 genta 文字列長，ポインタのチェックを追加

2003.06.24 Moca idxが-1のとき、キーマクロのフルパスを返す.

覚え書き:
idxは正確なものでなければならない。(内部で正当性チェックを行っていない)

CShareData.cpp の 1789 行で定義されています。

参照先 _IS_REL_PATH()・_MAX_PATH・AddLastChar()・GetInidirOrExedir()・MacroRec::IsEnabled()・DLLSHAREDATA::m_MacroTable・m_pShareData・MacroRec::m_szFile・DLLSHAREDATA::m_szMACROFOLDER・NULL.

参照元 CEditView::Command_RECKEYMACRO()・CSMacroMgr::Exec().

int CShareData::GetOpenedWindowArr | ( | EditNode ** | ppEditNode,
 |  | BOOL | bSort,
 |  | BOOL | bGSort = FALSE
 | ) |

現在開いている編集ウィンドウの配列を返す

引数:
[out] | ppEditNode | 配列を受け取るポインタ 戻り値が0の場合はNULLが返されるが，それを期待しないこと． また，不要になったらdelete []しなくてはならない．
[in] | bSort | TRUE: ソートあり / FALSE: ソート無し
[in] | TRUE: グループソートあり / FALSE: グループソート無し
もとの編集ウィンドウリストはソートしなければウィンドウのMRU順に並んでいる ------------------------------------------------- bSort bGSort 処理結果 ------------------------------------------------- FALSE FALSE グループMRU順－ウィンドウMRU順 TRUE FALSE グループMRU順－ウィンドウ番号順 FALSE TRUE グループ番号順－ウィンドウMRU順 TRUE TRUE グループ番号順－ウィンドウ番号順 -------------------------------------------------

戻り値:
配列の要素数を返す
覚え書き:
要素数>0 の場合は呼び出し側で配列をdelete []してください
日付:
2003.06.28 MIK CRecent利用で書き換え

2007.06.20 ryoji bGroup引数追加、ソート処理を自前のものからqsortに変更

CShareData.cpp の 1512 行で定義されています。

参照先 g_cEditArrMutex・GetOpenedWindowArrCore().

参照元 CEditView::Command_CASCADE()・CEditView::Command_TILE_H()・CEditView::Command_TILE_V()・CTabWnd::GetNextGroupWnd()・CTabWnd::GetPrevGroupWnd()・CEditDoc::HandleCommand()・CEditWnd::OnClose()・CEditWnd::OnMouseWheel()・CEditWnd::PopupWinList()・PostMessageToAllEditors()・CTabWnd::Refresh()・RequestCloseAllEditor()・SendMessageToAllEditors()・CDlgDiff::SetData()・CDlgCompare::SetData()・CTabWnd::TabListMenu().

int CShareData::GetOpenedWindowArrCore | ( | EditNode ** | ,
 |  | BOOL | ,
 |  | BOOL | bGSort = FALSE
 | ) | [protected]

CShareData.cpp の 1523 行で定義されています。

参照先 IsEditWnd()・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData・EditNodeEx::nGroupMru・NULL・EditNodeEx::p.

参照元 GetOpenedWindowArr()・ReorderTab().

DLLSHAREDATA* CShareData::GetShareData ( ) [inline]

CShareData.h の 769 行で定義されています。

参照元 ActivateFrameWindow()・CDialog::CDialog()・CDlgOpenFile::CDlgOpenFile()・CEditApp::CEditApp()・CEditDoc::CEditDoc()・CEditView::CEditView()・CEditWnd::CEditWnd()・CFuncKeyWnd::CFuncKeyWnd()・CEditApp::CloseAllEditor()・CMenuDrawer::CMenuDrawer()・CMRU::CMRU()・CMRUFolder::CMRUFolder()・CPropCommon::CPropCommon()・CPropTypes::CPropTypes()・CTipWnd::Create()・CRecent::CRecent()・CSMacroMgr::CSMacroMgr()・CSplitterWnd::CSplitterWnd()・CTabWnd::CTabWnd()・CPropCommon::DoPropertySheet()・CPPA::Execute()・CDlgGrep::GetData()・CKeyBind::GetDefFuncCode()・CMigemo::GetDllName()・CEditDoc::Init()・InitRegexp()・CMigemo::migemo_load_all()・OFNHookProcMain()・CEditDoc::OnChangeSetting()・CEditApp::OpenNewEditor()・CEditApp::OpenNewEditor2()・PropSheetWndProc()・CDlgProperty::SetData()・CDlgGrep::SetData()・CEditApp::TerminateApplication().

EditNode * CShareData::GetTopEditNode ( HWND hWnd )

先頭の編集ウィンドウ情報を取得する

日付:
2007.06.20 ryoji

CShareData.cpp の 1111 行で定義されています。

参照先 GetEditNodeAt()・GetGroupId().

参照元 CTabWnd::AdjustWindowPlacement()・GetTopEditWnd().

HWND CShareData::GetTopEditWnd ( HWND hWnd )

先頭の編集ウィンドウを取得する

戻り値:
与えられたエディタウィンドウと同一グループに属す 先頭ウィンドウのハンドル
日付:
2007.06.20 ryoji

CShareData.cpp の 1126 行で定義されています。

参照先 GetTopEditNode()・EditNode::m_hWnd・NULL.

参照元 CTabWnd::SeparateGroup().

LPTSTR CShareData::GetTransformFileNameFast | ( | LPCTSTR | pszSrc,
 |  | LPTSTR | pszDest,
 |  | int | nDestLen
 | ) |

共有データの設定に従ってパスを縮小表記に変換する

引数:
pszSrc | [in] ファイル名
pszDest | [out] 変換後のファイル名の格納先
nDestLen | [in] 終端のNULLを含むpszDestのTCHAR単位の長さ _MAX_PATH まで
日付:
2003.01.27 Moca 新規作成
覚え書き:
連続して呼び出す場合のため、展開済みメタ文字列をキャッシュして高速化している。

CShareData.cpp の 2183 行で定義されています。

参照先 _MAX_PATH・GetFilePathFormat()・m_nTransformFileNameCount・m_nTransformFileNameOrgId・m_pShareData・m_szTransformFileNameFromExp・DLLSHAREDATA::m_szTransformFileNameTo・TransformFileName_MakeCache().

参照元 CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CTabWnd::GetTabName()・CEditWnd::WinListMenu().

bool CShareData::HTMLHelpIsSingle ( int nTypeNo = -1 )

ビューアを複数起動しないがONかを返す。

CShareData.cpp の 2074 行で定義されています。

参照先 FALSE・Common::m_bHtmlHelpIsSingle・Types::m_bHtmlHelpIsSingle・DLLSHAREDATA::m_Common・m_pShareData・DLLSHAREDATA::m_Types.

bool CShareData::Init ( void )

CShareDataクラスの初期化処理

CShareDataクラスを利用する前に必ず呼び出すこと。

戻り値:
true | 初期化成功
false | 初期化失敗
覚え書き:
既に存在する共有メモリのバージョンがこのエディタが使うものと 異なる場合は致命的エラーを防ぐためにfalseを返します。CProcessInitialize() でInit()に失敗するとメッセージを出してエディタの起動を中止します。

CShareData.cpp の 300 行で定義されています。

参照先 _instance・_MAX_PATH・AddLastChar()・CMRUFolder::ClearAll()・CMRU::ClearAll()・FALSE・GetAppVersionInfo()・GetInidir()・GSTR_CSHAREDATA・DLLSHAREDATA::m_bEditWndChanging・IniFolder::m_bInit・DLLSHAREDATA::m_bRecordingKeyMacro・DLLSHAREDATA::m_Common・DLLSHAREDATA::m_dwProductVersionLS・DLLSHAREDATA::m_dwProductVersionMS・DLLSHAREDATA::m_hAccel・m_hFileMap・DLLSHAREDATA::m_hwndDebug・DLLSHAREDATA::m_hwndRecordingKeyMacro・m_hwndTraceOutSource・DLLSHAREDATA::m_hwndTray・DLLSHAREDATA::m_IniFolder・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_nGroupSequences・Common::m_nMRUArrNum_MAX・Common::m_nOPENFOLDERArrNum_MAX・DLLSHAREDATA::m_nREPLACEKEYArrNum・DLLSHAREDATA::m_nSEARCHKEYArrNum・DLLSHAREDATA::m_nSequences・m_pShareData・DLLSHAREDATA::m_szKeyMacroFileName・DLLSHAREDATA::m_szREPLACEKEYArr・DLLSHAREDATA::m_szSEARCHKEYArr・DLLSHAREDATA::m_vStructureVersion・MAX_REPLACEKEY・MAX_SEARCHKEY・MY_RUNNINGTIMER・NULL・uShareDataVersion.

参照元 CProcess::Initialize().

void CShareData::InitKeyAssign ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/キー割り当て

デフォルトキー割り当て関連の初期化処理

日付:
2005.01.30 genta CShareData::Init()から分離
< Key Code (0 for non-keybord button)

< Key Name (for display)

< Key

< Shift + Key

< Ctrl + Key

< Shift + Ctrl + Key

< Alt + Key

< Shift + Alt + Key

< Ctrl + Alt + Key

< Shift + Ctrl + Alt + Key

CShareData.cpp の 4789 行で定義されています。

参照先 F_1PageDown・F_1PageDown_Sel・F_1PageUp・F_1PageUp_Sel・F_ABOUT・F_ACTIVATE_SQLPLUS・F_BASE64DECODE・F_BEGIN_BOX・F_BEGIN_SEL・F_BOOKMARK_NEXT・F_BOOKMARK_PREV・F_BOOKMARK_RESET・F_BOOKMARK_SET・F_BOOKMARK_VIEW・F_BRACKETPAIR・F_BROWSE・F_CANCEL_MODE・F_CASCADE・F_CHGMOD_INS・F_CODECNV_AUTO2SJIS・F_CODECNV_EMAIL・F_CODECNV_EUC2SJIS・F_CODECNV_SJIS2EUC・F_CODECNV_SJIS2JIS・F_CODECNV_SJIS2UTF7・F_CODECNV_SJIS2UTF8・F_CODECNV_UNICODE2SJIS・F_CODECNV_UTF72SJIS・F_CODECNV_UTF82SJIS・F_COMPARE・F_COPY・F_COPY_CRLF・F_COPYFNAME・F_COPYLINES・F_COPYLINESASPASSAGE・F_COPYLINESWITHLINENUMBER・F_COPYPATH・F_COPYTAG・F_CREATEKEYBINDLIST・F_CURLINECENTER・F_CUSTMENU_1・F_CUSTMENU_10・F_CUSTMENU_11・F_CUSTMENU_12・F_CUSTMENU_13・F_CUSTMENU_14・F_CUSTMENU_15・F_CUSTMENU_16・F_CUSTMENU_17・F_CUSTMENU_18・F_CUSTMENU_19・F_CUSTMENU_2・F_CUSTMENU_20・F_CUSTMENU_21・F_CUSTMENU_22・F_CUSTMENU_23・F_CUSTMENU_24・F_CUSTMENU_3・F_CUSTMENU_4・F_CUSTMENU_5・F_CUSTMENU_6・F_CUSTMENU_7・F_CUSTMENU_8・F_CUSTMENU_9・F_CUT・F_CUT_LINE・F_DELETE・F_DELETE_BACK・F_DELETE_LINE・F_DOWN・F_DOWN2_SEL・F_DOWN_SEL・F_DUPLICATELINE・F_EXECCOMMAND_DIALOG・F_EXECKEYMACRO・F_EXITALL・F_EXITALLEDITORS・F_EXTHELP1・F_EXTHTMLHELP・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_FILECLOSE_OPEN・F_FILENEW・F_FILEOPEN・F_FILESAVE・F_FILESAVEAS_DIALOG・F_FONT・F_GOFILEEND・F_GOFILEEND_SEL・F_GOFILETOP・F_GOFILETOP_SEL・F_GOLINEEND・F_GOLINEEND_SEL・F_GOLINETOP・F_GOLINETOP_SEL・F_GREP_DIALOG・F_HalfPageDown・F_HalfPageDown_Sel・F_HalfPageUp・F_HalfPageUp_Sel・F_HANKATATOZENKAKUHIRA・F_HANKATATOZENKAKUKATA・F_HELP_CONTENTS・F_HELP_SEARCH・F_HOKAN・F_INDENT_SPACE・F_INDENT_TAB・F_INS_DATE・F_INS_TIME・F_JUMP_DIALOG・F_JUMP_SRCHSTARTPOS・F_JUMPHIST_NEXT・F_JUMPHIST_PREV・F_LEFT・F_LEFT_SEL・F_LineCutToEnd・F_LineCutToStart・F_LineDeleteToEnd・F_LineDeleteToStart・F_LOADKEYMACRO・F_LTRIM・F_MAXIMIZE_H・F_MAXIMIZE_V・F_MENU_ALLFUNC・F_MENU_RBUTTON・F_MERGE・F_MINIMIZE_ALL・F_NEXTWINDOW・F_OPEN_HfromtoC・F_OPTION・F_OPTION_TYPE・F_OUTLINE・F_PASTE・F_PASTEBOX・F_PLSQL_COMPILE_ON_SQLPLUS・F_PREVWINDOW・F_PRINT・F_PRINT_PAGESETUP・F_PRINT_PREVIEW・F_PROPERTY_FILE・F_RECKEYMACRO・F_REDO・F_REDRAW・F_REPLACE_DIALOG・F_RIGHT・F_RIGHT_SEL・F_RTRIM・F_SAVEKEYMACRO・F_SEARCH_CLEARMARK・F_SEARCH_DIALOG・F_SEARCH_NEXT・F_SEARCH_PREV・F_SELECTALL・F_SELECTWORD・F_SHOWFUNCKEY・F_SHOWSTATUSBAR・F_SHOWTOOLBAR・F_SORT_ASC・F_SORT_DESC・F_SPACETOTAB・F_SPLIT_H・F_SPLIT_V・F_SPLIT_VH・F_TABTOSPACE・F_TAGJUMP・F_TAGJUMPBACK・F_TILE_H・F_TILE_V・F_TOHANKAKU・F_TOLOWER・F_TOUPPER・F_TOZENKAKUHIRA・F_TOZENKAKUKATA・F_TYPE_LIST・F_UNDO・F_UNINDENT_SPACE・F_UNINDENT_TAB・F_UP・F_UP2_SEL・F_UP_SEL・F_UUDECODE・F_WndScrollDown・F_WndScrollUp・F_WordCut・F_WordDelete・F_WordDeleteToEnd・F_WordDeleteToStart・F_WORDLEFT・F_WORDLEFT_SEL・F_WORDRIGHT・F_WORDRIGHT_SEL・F_WRAPWINDOWWIDTH・SetKeyNameArrVal().

void CShareData::InitKeyword ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/強調キーワード

強調キーワード関連の初期化処理

日付:
2005.01.30 genta CShareData::Init()から分離． キーワード定義を関数の外に出し，登録をマクロ化して簡潔に．

CShareData.cpp の 4752 行で定義されています。

参照先 FALSE・DLLSHAREDATA::m_CKeyWordSetMgr・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・PopulateKeyword・TRUE.

void CShareData::InitPopupMenu ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/ポップアップメニュー

ポップアップメニューの初期化処理

日付:
2005.01.30 genta CShareData::Init()から分離．

CShareData.cpp の 5550 行で定義されています。

参照先 CUSTMENU_INDEX_FOR_TABWND・F_COPY・F_COPY_ADDCRLF・F_COPY_CRLF・F_COPYLINES・F_COPYLINESASPASSAGE・F_COPYPATH・F_CUT・F_DELETE・F_FILE_REOPEN・F_FILECLOSE・F_FILECLOSE_OPEN・F_FILEOPEN・F_FILESAVE・F_FILESAVEAS_DIALOG・F_NEXTWINDOW・F_PASTE・F_PASTEBOX・F_PROPERTY_FILE・F_REDO・F_SELECTALL・F_TAB_JOINTNEXT・F_TAB_JOINTPREV・F_TAB_MOVELEFT・F_TAB_MOVERIGHT・F_TAB_SEPARATE・F_TAGJUMP・F_TAGJUMPBACK・F_TOLOWER・F_TOUPPER・F_UNDO・F_WINCLOSE・DLLSHAREDATA::m_Common・Common::m_nCustMenuItemFuncArr・Common::m_nCustMenuItemKeyArr・Common::m_nCustMenuItemNumArr・m_pShareData.

void CShareData::InitToolButtons ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/ツールバー

ツールバー関連の初期化処理

作者:
genta
日付:
2005.01.30 genta CShareData::Init()から分離． 一つずつ設定しないで一気にデータ転送するように．

CShareData.cpp の 5067 行で定義されています。

参照先 IsVisualStyle()・Common::m_bToolBarIsFlat・DLLSHAREDATA::m_Common・Common::m_nToolBarButtonIdxArr・Common::m_nToolBarButtonNum・MAX_TOOLBARBUTTONS.

void CShareData::InitTypeConfig ( DLLSHAREDATA * pShareData ) [protected]

共有メモリ初期化/タイプ別設定

タイプ別設定の初期化処理

日付:
2005.01.30 genta CShareData::Init()から分離．
入力補完 開いているファイル内から候補を探す

入力補完 開いているファイル内から候補を探す

CShareData.cpp の 5122 行で定義されています。

参照先 Types::m_nColmSpace・Types::m_nKeyWordSetIdx・Types::m_nLineSpace・Types::m_nMaxLineSize・Types::m_nTabSpace・DLLSHAREDATA::m_Types・MAX_KEYWORDSET_PER_TYPE・MAXLINESIZE.

void CShareData::IO_ColorSet | ( | CProfile * | pcProfile,
 |  | const char * | pszSecName,
 |  | ColorInfo * | pColorInfoArr
 | ) | [static]

色設定 I/O

指定された色設定を指定されたセクションに書き込む。または 指定されたセクションからいろ設定を読み込む。

引数:
[in,out] | pcProfile | 書き出し、読み込み先Profile object (入出力方向はbReadに依存)
[in] | pszSecName | セクション名
[in,out] | pColorInfoArr | 書き出し、読み込み対象の色設定へのポインタ (入出力方向はbReadに依存)

CShareData_new.cpp の 1549 行で定義されています。

参照先 COLORIDX_LAST・FALSE・g_ColorAttributeArr・CProfile::IOProfileData()・CProfile::IsReadingMode().

BOOL CShareData::IsEditWnd ( HWND ) [static]

CShareData.cpp の 1430 行で定義されています。

参照先 FALSE・GSTR_EDITWINDOWNAME・NULL・TRUE.

参照元 ActivateFrameWindow()・CEditApp::CloseAllEditor()・CEditView::Command_TAGJUMPBACK()・CEditView::Command_WIN_OUTPUT()・GetEditNode()・GetEditNodeAt()・GetEditorWindowsNum()・GetOpenedWindowArrCore()・CTabWnd::HideOtherWindows()・IsPathOpened()・CTabWnd::OnTabLButtonUp()・PostMessageToAllEditors()・RequestCloseAllEditor()・ResetGroupId()・SendMessageToAllEditors()・CEditWnd::SetDebugModeON()・TraceOut().

BOOL CShareData::IsPathOpened | ( | const char * | pszPath,
 |  | HWND * | phwndOwner,
 |  | int | nCharCode
 | ) |

指定ファイルが開かれているか調べつつ、多重オープン時の文字コード衝突も確認

もしすでに開いていればアクティブにして、ウィンドウのハンドルを返す。 さらに、文字コードが異なるときのワーニングも処理する。 あちこちに散らばった多重オープン処理を集結させるのが目的。

戻り値:
開かれている場合は開いているウィンドウのハンドル
覚え書き:
CEditDoc::FileReadに先立って実行されることもあるが、 CEditDoc::FileReadからも実行される必要があることに注意。 (フォルダ指定の場合やCEditDocFileReadが直接実行される場合もあるため)
戻り値:
TRUE | すでに開いていた
FALSE | 開いていなかった
日付:
2007.03.12 maru 新規作成

CShareData.cpp の 1243 行で定義されています。

参照先 ActivateFrameWindow()・CMRU::Add()・CODE_AUTODETECT・CODE_CODEMAX・FALSE・gm_pszCodeNameArr_1・GSTR_APPNAME・IsPathOpened()・DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO・FileInfo::m_nCharCode・m_pShareData・MYMESSAGEBOX・MYWM_GETFILEINFO・NULL・TRUE.

BOOL CShareData::IsPathOpened | ( | const char * | pszPath,
 |  | HWND * | phwndOwner
 | ) |

指定ファイルが開かれているか調べる

指定のファイルが開かれている場合は開いているウィンドウのハンドルを返す

戻り値:
TRUE | すでに開いていた
FALSE | 開いていなかった

CShareData.cpp の 1199 行で定義されています。

参照先 _stricmp・FALSE・GetEditorWindowsNum()・IsEditWnd()・DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData・FileInfo::m_szPath・MYWM_GETFILEINFO・NULL・TRUE.

参照元 CNormalProcess::Initialize()・IsPathOpened().

BOOL CShareData::IsPrivateSettings ( void ) [inline]

CShareData.h の 816 行で定義されています。

bool CShareData::IsSameGroup | ( | HWND | hWnd1,
 |  | HWND | hWnd2
 | ) |

同一グループかどうかを調べる

引数:
[in] | hWnd1 | 比較するウィンドウ1
[in] | hWnd2 | 比較するウィンドウ2
戻り値:
2つのウィンドウが同一グループに属していればtrue
日付:
2007.06.20 ryoji

CShareData.cpp の 1062 行で定義されています。

参照先 GetGroupId().

bool CShareData::IsTopEditWnd ( HWND hWnd ) [inline]

CShareData.h の 783 行で定義されています。

BOOL CShareData::LoadShareData ( void )

CShareData.cpp の 1134 行で定義されています。

参照先 ShareData_IO_2().

参照元 CControlProcess::Initialize().

static LONG CShareData::MY_RegQuerVal | ( | HKEY | hKey,
 |  | LPCTSTR | lpValueName,
 |  | BYTE * | lpData,
 |  | DWORD | cbData
 | ) | [static]

static LONG CShareData::MY_RegSetVal | ( | HKEY | hKey,
 |  | LPCTSTR | lpValueName,
 |  | CONST BYTE * | lpData,
 |  | DWORD | cbData
 | ) | [static]

const char * CShareData::MyGetDateFormat | ( | SYSTEMTIME & | systime,
 |  | char * | pszDest,
 |  | int | nDestLen,
 |  | int | nDateFormatType,
 |  | char * | szDateFormat
 | ) |

CShareData.cpp の 2097 行で定義されています。

参照先 NULL.

const char * CShareData::MyGetDateFormat | ( | SYSTEMTIME & | systime,
 |  | char * | pszDest,
 |  | int | nDestLen
 | ) |

日付をフォーマット systime：時刻データ

pszDest：フォーマット済みテキスト格納用バッファ nDestLen：pszDestの長さ

pszDateFormat： カスタムのときのフォーマット

CShareData.cpp の 2092 行で定義されています。

参照先 DLLSHAREDATA::m_Common・Common::m_nDateFormatType・m_pShareData・Common::m_szDateFormat.

参照元 CPropCommon::ChangeDateExample()・CEditView::Command_INS_DATE()・CEditView::ExecCmd().

const char * CShareData::MyGetTimeFormat | ( | SYSTEMTIME & | systime,
 |  | char * | pszDest,
 |  | int | nDestLen,
 |  | int | nTimeFormatType,
 |  | char * | szTimeFormat
 | ) |

CShareData.cpp の 2121 行で定義されています。

参照先 NULL.

const char * CShareData::MyGetTimeFormat | ( | SYSTEMTIME & | systime,
 |  | char * | pszDest,
 |  | int | nDestLen
 | ) |

CShareData.cpp の 2115 行で定義されています。

参照先 DLLSHAREDATA::m_Common・Common::m_nTimeFormatType・m_pShareData・Common::m_szTimeFormat.

参照元 CPropCommon::ChangeTimeExample()・CEditView::Command_INS_TIME()・CEditView::ExecCmd().

bool CShareData::PopTagJump ( TagJump * pTagJump )

タグジャンプ情報の参照

タグジャンプバックするときに、タグジャンプ元の情報を参照する。

引数:
[out] pTagJump 参照するタグジャンプ情報
戻り値:
true | 参照成功
false | 参照失敗
日付:
2004/06/21 新規作成

2004/06/22 Moca SetTagJump変更による修正

CShareData_new.cpp の 1640 行で定義されています。

参照先 m_pShareData・DLLSHAREDATA::m_TagJump・DLLSHAREDATA::m_TagJumpNum・DLLSHAREDATA::m_TagJumpTop・MAX_TAGJUMPNUM.

BOOL CShareData::PostMessageToAllEditors | ( | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam,
 |  | HWND | hWndLast,
 |  | int | nGroup = 0
 | ) |

全編集ウィンドウへメッセージをポストする

引数:
nGroup [in] グループ指定（0:全グループ）
日付:
2005.01.24 genta hWndLast == NULLのとき全くメッセージが送られなかった

2007.06.22 ryoji nGroup引数を追加、グループ単位で順番に送る

引数:
uMsg | ポストするメッセージ
wParam | 第1メッセージ パラメータ
lParam | 第2メッセージ パラメータ
hWndLast | 最後に送りたいウィンドウ
nGroup | 送りたいグループ

CShareData.cpp の 1328 行で定義されています。

参照先 FALSE・GetOpenedWindowArr()・IsEditWnd()・NULL・TRUE.

参照元 CEditWnd::ChangeFileNameNotify()・CEditView::Command_BIND_WINDOW()・CEditView::Command_FONT()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR()・DeleteEditWndList().

void CShareData::PushTagJump ( const TagJump * pTagJump )

タグジャンプ情報の保存

タグジャンプするときに、タグジャンプ先の情報を保存する。

引数:
[in] pTagJump 保存するタグジャンプ情報
戻り値:
true | 保存成功
false | 保存失敗
日付:
2004/06/21 新規作成

2004/06/22 Moca 一杯になったら一番古い情報を削除しそこに新しい情報を入れる

CShareData_new.cpp の 1614 行で定義されています。

参照先 m_pShareData・DLLSHAREDATA::m_TagJump・DLLSHAREDATA::m_TagJumpNum・DLLSHAREDATA::m_TagJumpTop・MAX_TAGJUMPNUM.

参照元 CEditView::TagJumpSub().

bool CShareData::ReorderTab | ( | HWND | hwndSrc,
 |  | HWND | hwndDst
 | ) |

ウィンドウの並び替え

引数:
[in] | hSrcTab | 移動するウィンドウ
[in] | hSrcTab | 移動先ウィンドウ
作者:
ryoji
日付:
2007.07.07 genta ウィンドウ配列操作部をCTabWndより移動

CShareData.cpp の 1622 行で定義されています。

参照先 g_cEditArrMutex・GetOpenedWindowArrCore()・NULL・TRUE.

参照元 CTabWnd::ReorderTab().

BOOL CShareData::RequestCloseAllEditor | ( | BOOL | bExit,
 |  | int | nGroup
 | ) |

全編集ウィンドウへ終了要求を出す

引数:
bExit | [in] TRUE: 編集の全終了 / FALSE: すべて閉じる
nGroup | [in] グループ指定（0:全グループ）
日付:
2007.02.13 ryoji 「編集の全終了」を示す引数(bExit)を追加

2007.06.22 ryoji nGroup引数を追加

CShareData.cpp の 1160 行で定義されています。

参照先 ActivateFrameWindow()・FALSE・GetOpenedWindowArr()・IsEditWnd()・MYWM_CLOSE・TRUE.

void CShareData::ResetGroupId ( void )

グループをIDリセットする

日付:
2007.06.20 ryoji

CShareData.cpp の 1004 行で定義されています。

参照先 IsEditWnd()・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・EditNode::m_nGroup・DLLSHAREDATA::m_nGroupSequences・DLLSHAREDATA::m_pEditArr・m_pShareData.

参照元 CEditView::Command_BIND_WINDOW()・CEditView::Command_SHOWTAB()・CEditDoc::OpenPropertySheet().

void CShareData::SaveShareData ( void )

CShareData.cpp の 1143 行で定義されています。

参照先 ShareData_IO_2().

参照元 CControlProcess::Initialize()・CEditApp::OnDestroy().

BOOL CShareData::SendMessageToAllEditors | ( | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam,
 |  | HWND | hWndLast,
 |  | int | nGroup = 0
 | ) |

全編集ウィンドウへメッセージを送る

引数:
nGroup [in] グループ指定（0:全グループ）
日付:
2005.01.24 genta m_hWndLast == NULLのとき全くメッセージが送られなかった

2007.06.22 ryoji nGroup引数を追加、グループ単位で順番に送る

引数:
nGroup 送りたいグループ

CShareData.cpp の 1382 行で定義されています。

参照先 FALSE・GetOpenedWindowArr()・IsEditWnd()・NULL・TRUE.

参照元 CEditView::Command_FILESAVEALL()・CEditDoc::OpenPropertySheetTypes().

HWND CShareData::SeparateGroup | ( | HWND | hwndSrc,
 |  | HWND | hwndDst,
 |  | bool | bSrcIsTop,
 |  | int | notifygroups[]
 | ) |

タブ移動に伴うウィンドウ処理

引数:
[in] | hwndSrc | 移動するウィンドウ
[in] | hwndDst | 移動先ウィンドウ．新規独立時はNULL．
[in] | bSrcIsTop | 移動するウィンドウが可視ウィンドウならtrue
[in] | notifygroups | タブの更新が必要なグループのグループID．int[2]を呼び出し元で用意する．
戻り値:
更新されたhwndDst (移動先が既に閉じられた場合などにNULLに変更されることがある)
作者:
ryoji
日付:
2007.07.07 genta CTabWnd::SeparateGroup()より独立

CShareData.cpp の 1690 行で定義されています。

参照先 g_cEditArrMutex・GetEditNode()・EditNode::m_nGroup・DLLSHAREDATA::m_nGroupSequences・EditNode::m_nIndex・DLLSHAREDATA::m_nSequences・m_pShareData・NULL.

参照元 CTabWnd::SeparateGroup().

void CShareData::SetKeyNameArrVal | ( | DLLSHAREDATA * | ,
 |  | int | ,
 |  | short | ,
 |  | char * | ,
 |  | short | ,
 |  | short | ,
 |  | short | ,
 |  | short | ,
 |  | short | ,
 |  | short | ,
 |  | short | ,
 |  | short |
 | ) | [static]

CShareData.cpp の 740 行で定義されています。

参照先 KEYDATA::m_nFuncCodeArr・KEYDATA::m_nKeyCode・DLLSHAREDATA::m_pKeyNameArr・KEYDATA::m_szKeyName.

参照元 InitKeyAssign().

void CShareData::SetTraceOutSource ( HWND hwnd ) [inline]

CShareData.h の 811 行で定義されています。

BOOL CShareData::ShareData_IO_2 ( bool bRead )

共有データの読み込み/保存 2

引数:
[in] bRead true: 読み込み / false: 書き込み
日付:
2004-01-11 D.S.Koba CProfile変更によるコード簡略化

2005-04-05 D.S.Koba 各セクションの入出力を関数として分離

CShareData_new.cpp の 170 行で定義されています。

参照先 _MAX_PATH・FALSE・GetIniFileName()・MY_RUNNINGTIMER・CProfile::ReadProfile()・CProfile::SetReadingMode()・CProfile::SetWritingMode().

参照元 LoadShareData()・SaveShareData().

void CShareData::ShareData_IO_Cmd ( CProfile & cProfile ) [protected]

共有データのCmdセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 410 行で定義されています。

参照先 CProfile::IOProfileData()・DLLSHAREDATA::m_nCmdArrNum・m_pShareData・DLLSHAREDATA::m_szCmdArr.

void CShareData::ShareData_IO_Common ( CProfile & cProfile ) [protected]

共有データのCommonセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 468 行で定義されています。

参照先 CProfile::IOProfileData()・CProfile::IsReadingMode()・Common::m_bAddCRLFWhenCopy・Common::m_bBackUp・Common::m_bBackUpDialog・Common::m_bBackUpFolder・Common::m_bCaretTextForSearch・Common::m_bCloseAllConfirm・Common::m_bConsecutiveAll・Common::m_bExitConfirm・Common::m_bGrepDefaultFolder・Common::m_bGrepOutputLine・Common::m_bGrepRealTimeView・Common::m_bGrepSubFolder・Common::m_bGTJW_LDBLCLK・Common::m_bGTJW_RETURN・Common::m_bIsFreeCursorMode・Common::m_bLoHiCase・Common::m_bNOTIFYNOTFOUND・Common::m_bRegularExp・Common::m_bRestoreBookmarks・Common::m_bRestoreCurPosition・Common::m_bSearchAll・Common::m_bSelectedArea・Common::m_bStopsBothEndsWhenSearchParagraph・Common::m_bStopsBothEndsWhenSearchWord・Common::m_bWordOnly・DLLSHAREDATA::m_Common・Common::m_nCaretType・Common::m_nGrepCharSet・Common::m_nGrepOutputStyle・Common::m_nRepeatedScroll_Smooth・Common::m_nRepeatedScrollLineNum・m_pShareData・Common::m_szBackUpFolder・Common::m_szRegexpLib・CMemory::MemCharPrev().

void CShareData::ShareData_IO_CustMenu ( CProfile & cProfile ) [protected]

共有データのCustMenuセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 786 行で定義されています。

参照先 CProfile::IOProfileData()・DLLSHAREDATA::m_Common・Common::m_nCustMenuItemFuncArr・Common::m_nCustMenuItemKeyArr・Common::m_nCustMenuItemNumArr・m_pShareData・Common::m_szCustMenuNameArr・MAX_CUSTOM_MENU・MAX_CUSTOM_MENU_NAME_LEN.

void CShareData::ShareData_IO_Folders ( CProfile & cProfile ) [protected]

共有データのFoldersセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 393 行で定義されています。

参照先 CProfile::IOProfileData()・m_pShareData・DLLSHAREDATA::m_szIMPORTFOLDER・DLLSHAREDATA::m_szMACROFOLDER.

void CShareData::ShareData_IO_Font ( CProfile & cProfile ) [protected]

共有データのFontセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 814 行で定義されています。

参照先 CProfile::IOProfileData()・CProfile::IsReadingMode()・DLLSHAREDATA::m_Common・Common::m_lf・m_pShareData.

void CShareData::ShareData_IO_Grep ( CProfile & cProfile ) [protected]

共有データのGrepセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 351 行で定義されています。

参照先 CProfile::IOProfileData()・DLLSHAREDATA::m_nGREPFILEArrNum・m_pShareData・DLLSHAREDATA::m_szGREPFILEArr.

void CShareData::ShareData_IO_KeyBind ( CProfile & cProfile ) [protected]

共有データのKeyBindセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 869 行で定義されています。

参照先 CProfile::IOProfileData()・CProfile::IsReadingMode()・DLLSHAREDATA::m_nKeyNameArrNum・DLLSHAREDATA::m_pKeyNameArr・m_pShareData.

void CShareData::ShareData_IO_Keys ( CProfile & cProfile ) [protected]

共有データのKeysセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 309 行で定義されています。

参照先 CProfile::IOProfileData()・DLLSHAREDATA::m_nSEARCHKEYArrNum・m_pShareData・DLLSHAREDATA::m_szSEARCHKEYArr.

void CShareData::ShareData_IO_KeyWords ( CProfile & cProfile ) [protected]

共有データのKeyWordsセクションの入出力

引数:
[in] | bRead | true: 読み込み / false: 書き込み
[in,out] | cProfile | INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 1384 行で定義されています。

参照先 CKeyWordSetMgr::AddKeyWordSet()・CProfile::IOProfileData()・CProfile::IsReadingMode()・DLLSHAREDATA::m_CKeyWordSetMgr・CKeyWordSetMgr::m_nCurrentKeyWordSetIdx・CKeyWordSetMgr::m_nKeyWordSetNum・m_pShareData・MAX_KEYWORDLEN・MAX_KEYWORDNUM・CKeyWordSetMgr::ResetAllKeyWordSet()・CKeyWordSetMgr::SetKeyWordArr().

void CShareData::ShareData_IO_Macro ( CProfile & cProfile ) [protected]

共有データのMacroセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 1466 行で定義されています。

参照先 _MAX_PATH・CProfile::IOProfileData()・CProfile::IsReadingMode()・DLLSHAREDATA::m_MacroTable・m_pShareData・MACRONAME_MAX・MAX_CUSTMACRO.

void CShareData::ShareData_IO_Mru ( CProfile & cProfile ) [protected]

共有データのMruセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 236 行で定義されています。

参照先 CProfile::IOProfileData()・DLLSHAREDATA::m_bMRUArrFavorite・DLLSHAREDATA::m_fiMRUArr・FileInfo::m_nCharCode・DLLSHAREDATA::m_nMRUArrNum・FileInfo::m_nViewLeftCol・FileInfo::m_nViewTopLine・FileInfo::m_nX・FileInfo::m_nY・m_pShareData・FileInfo::m_szMarkLines・FileInfo::m_szPath.

void CShareData::ShareData_IO_Nickname ( CProfile & cProfile ) [protected]

共有データのNicknameセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 437 行で定義されています。

参照先 CProfile::IOProfileData()・DLLSHAREDATA::m_nTransformFileNameArrNum・m_pShareData・DLLSHAREDATA::m_szTransformFileNameFrom・DLLSHAREDATA::m_szTransformFileNameTo.

void CShareData::ShareData_IO_Other ( CProfile & cProfile ) [protected]

共有データのOtherセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 1491 行で定義されています。

参照先 CProfile::IOProfileData()・DLLSHAREDATA::m_nExecFlgOpt・m_pShareData.

void CShareData::ShareData_IO_Print ( CProfile & cProfile ) [protected]

共有データのPrintセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 917 行で定義されています。

参照先 CProfile::IOProfileData()・CProfile::IsReadingMode()・DLLSHAREDATA::m_PrintSettingArr・m_pShareData・MAX_PRINTSETTINGARR.

void CShareData::ShareData_IO_Toolbar ( CProfile & cProfile ) [protected]

共有データのToolbarセクションの入出力

引数:
[in] | bRead | true: 読み込み / false: 書き込み
[in,out] | cProfile | INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。読み込み時の初期化を修正

CShareData_new.cpp の 758 行で定義されています。

参照先 CProfile::IOProfileData()・Common::m_bToolBarIsFlat・DLLSHAREDATA::m_Common・Common::m_nToolBarButtonIdxArr・Common::m_nToolBarButtonNum・m_pShareData.

void CShareData::ShareData_IO_Types ( CProfile & cProfile ) [protected]

共有データのTypesセクションの入出力

引数:
[in,out] cProfile INIファイル入出力クラス
日付:
2005-04-07 D.S.Koba ShareData_IO_2から分離。

CShareData_new.cpp の 1036 行で定義されています。

参照先 CProfile::IOProfileData()・CProfile::IsReadingMode()・m_pShareData・DLLSHAREDATA::m_Types・MAX_TYPES.

void CShareData::TraceOut | ( | LPCTSTR | lpFmt,
 |  |  | ...
 | ) |

アウトプットウインドウに出力

アウトプットウインドウが無ければオープンする

引数:
lpFmt [in] 書式指定文字列

CShareData.cpp の 1735 行で定義されています。

参照先 ActivateFrameWindow()・CODE_SJIS・FALSE・IsEditWnd()・DLLSHAREDATA::m_hwndDebug・m_hwndTraceOutSource・m_pShareData・DLLSHAREDATA::m_szWork・MYWM_ADDSTRING・NULL・CEditApp::OpenNewEditor().

参照元 CEditView::Command_TRACEOUT()・CEditView::ExecCmd().

int CShareData::TransformFileName_MakeCache ( void )

展開済みメタ文字列のキャッシュを作成・更新する

戻り値:
有効な展開済み置換前文字列の数
日付:
2003.01.27 Moca 新規作成

2003.06.23 Moca 関数名変更

CShareData.cpp の 2216 行で定義されています。

参照先 _MAX_PATH・ExpandMetaToFolder()・DLLSHAREDATA::m_nTransformFileNameArrNum・m_nTransformFileNameOrgId・m_pShareData・DLLSHAREDATA::m_szTransformFileNameFrom・m_szTransformFileNameFromExp.

参照元 CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CEditApp::CreatePopUpMenu_L()・GetTransformFileNameFast()・CEditDoc::OnChangeSetting()・CEditWnd::WinListMenu().

変数

CShareData * CShareData::_instance = NULL [static, protected]

CShareData.h の 755 行で定義されています。

参照元 getInstance()・Init().

CMutex CShareData::g_cEditArrMutex [static, protected]

CShareData::m_pEditArr保護用Mutex

複数のエディタが非同期に一斉動作しているときでも、CShareDatam_pEditArrを 安全に操作できるよう操作中はMutexをLock()する。

（非同期一斉動作の例）
多数のウィンドウを表示していてグループ化を有効にしたタスクバーで「グループを閉じる」操作をしたとき
（保護する箇所の例）
CShareData::AddEditWndList(): エントリの追加／並び替え CShareData::DeleteEditWndList(): エントリの削除 CShareData::GetOpenedWindowArr(): 配列のコピー作成
下手にどこにでも入れるとデッドロックする危険があるので入れるときは慎重に。 （Lock()期間中にSendMessage()などで他ウィンドウの操作をすると危険性大） CShareData::m_pEditArrを直接参照したり変更するような箇所には潜在的な危険があるが、 対話型で順次操作している範囲であればまず問題は起きない。

日付:
2007.07.05 ryoji 新規導入

2007.07.07 genta CShareDataのメンバへ移動

CShareData.h の 756 行で定義されています。

参照元 AddEditWndList()・DeleteEditWndList()・GetOpenedWindowArr()・ReorderTab()・SeparateGroup().

HANDLE CShareData::m_hFileMap [protected]

CShareData.h の 860 行で定義されています。

参照元 CShareData()・Init().

HWND CShareData::m_hwndTraceOutSource [protected]

CShareData.h の 862 行で定義されています。

参照元 Init()・TraceOut().

int CShareData::m_nTransformFileNameCount [protected]

CShareData.h の 872 行で定義されています。

参照元 CShareData()・GetTransformFileNameFast().

int CShareData::m_nTransformFileNameOrgId[MAX_TRANSFORM_FILENAME] [protected]

CShareData.h の 874 行で定義されています。

参照元 GetTransformFileNameFast()・TransformFileName_MakeCache().

DLLSHAREDATA* CShareData::m_pShareData [protected]

CShareData.h の 861 行で定義されています。

参照元 AddEditWndList()・BeReloadWhenExecuteMacro()・CShareData()・ExtHTMLHelpIsSet()・ExtWinHelpIsSet()・GetDocumentTypeExt()・GetEditNode()・GetEditNodeAt()・GetEditorWindowsNum()・GetExtHTMLHelp()・GetExtWinHelp()・GetIniFileName()・GetMacroFilename()・GetOpenedWindowArrCore()・GetTransformFileNameFast()・HTMLHelpIsSingle()・Init()・InitPopupMenu()・IsPathOpened()・MyGetDateFormat()・MyGetTimeFormat()・PopTagJump()・PushTagJump()・ResetGroupId()・SeparateGroup()・ShareData_IO_Cmd()・ShareData_IO_Common()・ShareData_IO_CustMenu()・ShareData_IO_Folders()・ShareData_IO_Font()・ShareData_IO_Grep()・ShareData_IO_KeyBind()・ShareData_IO_Keys()・ShareData_IO_KeyWords()・ShareData_IO_Macro()・ShareData_IO_Mru()・ShareData_IO_Nickname()・ShareData_IO_Other()・ShareData_IO_Print()・ShareData_IO_Toolbar()・ShareData_IO_Types()・TraceOut()・TransformFileName_MakeCache()・~CShareData().

TCHAR CShareData::m_szTransformFileNameFromExp[MAX_TRANSFORM_FILENAME][_MAX_PATH] [protected]

CShareData.h の 873 行で定義されています。

参照元 GetTransformFileNameFast()・TransformFileName_MakeCache().

このクラスの説明は次のファイルから生成されました:
  • CShareData.h
  • CShareData.cpp
  • CShareData_new.cpp
Sakura-Editorに対してSat Oct 27 02:36:03 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CShareData メンバ一覧

これは全メンバの一覧です。CShareData継承メンバも含んでいます。

_instance | CShareData | [protected, static]
AddEditWndList(HWND, int nGroup=0) | CShareData |
AddToGrepFileArr(const char *pszGrepFile) | CShareData |
AddToGrepFolderArr(const char *pszGrepFolder) | CShareData |
AddToReplaceKeyArr(const char *pszReplaceKey) | CShareData |
AddToSearchKeyArr(const char *pszSearchKey) | CShareData |
BeReloadWhenExecuteMacro(int idx) | CShareData |
CShareData() | CShareData |
DeleteEditWndList(HWND) | CShareData |
ExpandMetaToFolder(LPCTSTR, LPTSTR, int) | CShareData | [static]
ExtHTMLHelpIsSet(int nType=-1) | CShareData |
ExtWinHelpIsSet(int nType=-1) | CShareData |
g_cEditArrMutex | CShareData | [protected, static]
GetDocumentType(const char *pszFilePath) | CShareData |
GetDocumentTypeExt(const char *pszExt) | CShareData |
GetEditNode(HWND hWnd) | CShareData |
GetEditNodeAt(int nGroup, int nIndex) | CShareData |
GetEditorWindowsNum(int nGroup) | CShareData |
GetExtHTMLHelp(int nType=-1) | CShareData |
GetExtWinHelp(int nType=-1) | CShareData |
GetFilePathFormat(LPCTSTR, LPTSTR, int, LPCTSTR, LPCTSTR) | CShareData | [static]
GetGroupId(HWND hWnd) | CShareData |
GetIniFileName(LPTSTR pszIniFileName, BOOL bRead=FALSE) | CShareData |
GetIniFileNameDirect(LPTSTR pszPrivateIniFile, LPTSTR pszIniFile) | CShareData | [static]
getInstance() | CShareData | [static]
GetMacroFilename(int idx, char *pszPath, int nBufLen) | CShareData |
GetOpenedWindowArr(EditNode **, BOOL, BOOL bGSort=FALSE) | CShareData |
GetOpenedWindowArrCore(EditNode **, BOOL, BOOL bGSort=FALSE) | CShareData | [protected]
GetShareData() | CShareData | [inline]
GetTopEditNode(HWND hWnd) | CShareData |
GetTopEditWnd(HWND hWnd) | CShareData |
GetTransformFileNameFast(LPCTSTR, LPTSTR, int) | CShareData |
HTMLHelpIsSingle(int nType=-1) | CShareData |
Init(void) | CShareData |
InitKeyAssign(DLLSHAREDATA *) | CShareData | [protected]
InitKeyword(DLLSHAREDATA *) | CShareData | [protected]
InitPopupMenu(DLLSHAREDATA *) | CShareData | [protected]
InitToolButtons(DLLSHAREDATA *) | CShareData | [protected]
InitTypeConfig(DLLSHAREDATA *) | CShareData | [protected]
IO_ColorSet(CProfile *, const char *, ColorInfo *) | CShareData | [static]
IsEditWnd(HWND) | CShareData | [static]
IsPathOpened(const char *, HWND *) | CShareData |
IsPathOpened(const char *, HWND *, int) | CShareData |
IsPrivateSettings(void) | CShareData | [inline]
IsSameGroup(HWND hWnd1, HWND hWnd2) | CShareData |
IsTopEditWnd(HWND hWnd) | CShareData | [inline]
LoadShareData(void) | CShareData |
m_hFileMap | CShareData | [protected]
m_hwndTraceOutSource | CShareData | [protected]
m_nTransformFileNameCount | CShareData | [protected]
m_nTransformFileNameOrgId | CShareData | [protected]
m_pShareData | CShareData | [protected]
m_szTransformFileNameFromExp | CShareData | [protected]
MY_RegQuerVal(HKEY hKey, LPCTSTR lpValueName, BYTE *lpData, DWORD cbData) | CShareData | [static]
MY_RegSetVal(HKEY hKey, LPCTSTR lpValueName, CONST BYTE *lpData, DWORD cbData) | CShareData | [static]
MyGetDateFormat(SYSTEMTIME &systime, char *pszDest, int nDestLen) | CShareData |
MyGetDateFormat(SYSTEMTIME &systime, char *pszDest, int nDestLen, int nDateFormatType, char *szDateFormat) | CShareData |
MyGetTimeFormat(SYSTEMTIME &systime, char *pszDest, int nDestLen) | CShareData |
MyGetTimeFormat(SYSTEMTIME &systime, char *pszDest, int nDestLen, int nTimeFormatType, char *szTimeFormat) | CShareData |
PopTagJump(TagJump *) | CShareData |
PostMessageToAllEditors(UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup=0) | CShareData |
PushTagJump(const TagJump *) | CShareData |
ReorderTab(HWND hSrcTab, HWND hDstTab) | CShareData |
RequestCloseAllEditor(BOOL bExit, int nGroup) | CShareData |
ResetGroupId(void) | CShareData |
SaveShareData(void) | CShareData |
SendMessageToAllEditors(UINT uMsg, WPARAM wParam, LPARAM lParam, HWND hWndLast, int nGroup=0) | CShareData |
SeparateGroup(HWND hwndSrc, HWND hwndDst, bool bSrcIsTop, int notifygroups[]) | CShareData |
SetKeyNameArrVal(DLLSHAREDATA *, int, short, char *, short, short, short, short, short, short, short, short) | CShareData | [static]
SetTraceOutSource(HWND hwnd) | CShareData | [inline]
ShareData_IO_2(bool) | CShareData |
ShareData_IO_Cmd(CProfile &) | CShareData | [protected]
ShareData_IO_Common(CProfile &) | CShareData | [protected]
ShareData_IO_CustMenu(CProfile &) | CShareData | [protected]
ShareData_IO_Folders(CProfile &) | CShareData | [protected]
ShareData_IO_Font(CProfile &) | CShareData | [protected]
ShareData_IO_Grep(CProfile &) | CShareData | [protected]
ShareData_IO_KeyBind(CProfile &) | CShareData | [protected]
ShareData_IO_Keys(CProfile &) | CShareData | [protected]
ShareData_IO_KeyWords(CProfile &) | CShareData | [protected]
ShareData_IO_Macro(CProfile &) | CShareData | [protected]
ShareData_IO_Mru(CProfile &) | CShareData | [protected]
ShareData_IO_Nickname(CProfile &) | CShareData | [protected]
ShareData_IO_Other(CProfile &) | CShareData | [protected]
ShareData_IO_Print(CProfile &) | CShareData | [protected]
ShareData_IO_Toolbar(CProfile &) | CShareData | [protected]
ShareData_IO_Types(CProfile &) | CShareData | [protected]
TraceOut(LPCTSTR lpFmt,...) | CShareData |
TransformFileName_MakeCache(void) | CShareData |
~CShareData() | CShareData |

Sakura-Editorに対してSat Oct 27 02:36:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CSMacroMgr

  • 構成
  • クラス階層
  • 構成メンバ

クラス CSMacroMgr

#include <CSMacroMgr.h>

CSMacroMgrのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CSMacroMgr ()
~CSMacroMgr ()
void | Clear (int idx)
void | ClearAll (void)
BOOL | Exec (int idx, HINSTANCE hInstance, CEditView *pcEditView)
キーボードマクロの実行
bool | IsEnabled (int idx) const
実行可能か？CShareDataに問い合わせ
const char * | GetTitle (int idx) const
表示する名前の取得
const char * | GetName (int idx) const
表示名の取得
const char * | GetFile (int idx) const
ファイル名の取得
BOOL | Load (int idx, HINSTANCE hInstance, const char *pszPath)
BOOL | Save (int idx, HINSTANCE hInstance, const char *pszPath)
int | Append (int idx, int nFuncID, LPARAM lParam1, CEditView *pcEditView)
キーマクロのバッファにデータ追加
BOOL | IsSaveOk (void)
int | GetCurrentIdx (void) const
void | SetCurrentIdx (int idx)

Static Public メソッド

static char * | GetFuncInfoByID (HINSTANCE, int, char *, char *)
static int | GetFuncInfoByName (HINSTANCE, const char *, char *)
static BOOL | CanFuncIsKeyMacro (int)
static const MacroFuncInfo * | GetFuncInfoByID (int)

Static Public 変数

static MacroFuncInfo | m_MacroFuncInfoArr []
static MacroFuncInfo | m_MacroFuncInfoNotCommandArr []

Private メソッド

CMacroManagerBase ** | Idx2Ptr (int idx)

Private 変数

CMacroManagerBase * | m_cSavedKeyMacro [MAX_CUSTMACRO]
CMacroManagerBase * m_pKeyMacro
DLLSHAREDATA * m_pShareData
int | m_CurrentIdx

説明

CSMacroMgr.h の 66 行で定義されています。

コンストラクタとデストラクタ

CSMacroMgr::CSMacroMgr ( )

日付:
2002.02.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

2002.04.29 genta オブジェクトの実体は実行時まで生成しない。

CSMacroMgr.cpp の 361 行で定義されています。

参照先 CWSHMacroManager::declare()・CKeyMacroMgr::declare()・CPPAMacroMgr::declare()・CShareData::getInstance()・CShareData::GetShareData()・m_cSavedKeyMacro・m_pShareData・MAX_CUSTMACRO・MY_RUNNINGTIMER・NULL.

CSMacroMgr::~CSMacroMgr ( )

CSMacroMgr.cpp の 382 行で定義されています。

参照先 ClearAll().

関数

int CSMacroMgr::Append | ( | int | idx,
 |  | int | nFuncID,
 |  | LPARAM | lParam1,
 |  | CEditView * | pcEditView
 | ) |

キーマクロのバッファにデータ追加

キーマクロのバッファにデータ追加

CSMacroMgr.cpp の 414 行で定義されています。

参照先 CKeyMacroMgr::Append()・m_pKeyMacro・NULL・STAND_KEYMACRO・TRUE.

BOOL CSMacroMgr::CanFuncIsKeyMacro ( int nFuncID ) [static]

case F_BROWSE ://ブラウズ

CSMacroMgr.cpp の 702 行で定義されています。

参照先 F_BEGIN_BOX・F_BEGIN_SEL・F_BOOKMARK_NEXT・F_BOOKMARK_PATTERN・F_BOOKMARK_PREV・F_BOOKMARK_RESET・F_BOOKMARK_SET・F_BRACKETPAIR・F_CANCEL_MODE・F_CHAR・F_CHGMOD_EOL・F_CHGMOD_INS・F_CODECNV_AUTO2SJIS・F_CODECNV_EMAIL・F_CODECNV_EUC2SJIS・F_CODECNV_SJIS2EUC・F_CODECNV_SJIS2JIS・F_CODECNV_SJIS2UTF7・F_CODECNV_SJIS2UTF8・F_CODECNV_UNICODE2SJIS・F_CODECNV_UNICODEBE2SJIS・F_CODECNV_UTF72SJIS・F_CODECNV_UTF82SJIS・F_COPY・F_COPY_ADDCRLF・F_COPY_CRLF・F_COPYFNAME・F_COPYLINES・F_COPYLINESASPASSAGE・F_COPYLINESWITHLINENUMBER・F_COPYPATH・F_COPYTAG・F_CREATEKEYBINDLIST・F_CUT・F_CUT_LINE・F_DELETE・F_DELETE_BACK・F_DELETE_LINE・F_DOWN・F_DOWN2・F_DOWN2_SEL・F_DOWN_SEL・F_DUPLICATELINE・F_EXECCOMMAND・F_FILE_REOPEN・F_FILE_REOPEN_EUC・F_FILE_REOPEN_JIS・F_FILE_REOPEN_SJIS・F_FILE_REOPEN_UNICODE・F_FILE_REOPEN_UNICODEBE・F_FILE_REOPEN_UTF7・F_FILE_REOPEN_UTF8・F_GOFILEEND・F_GOFILEEND_SEL・F_GOFILETOP・F_GOFILETOP_SEL・F_GOLINEEND・F_GOLINEEND_SEL・F_GOLINETOP・F_GOLINETOP_SEL・F_GREP・F_HANKATATOZENKAKUHIRA・F_HANKATATOZENKAKUKATA・F_IME_CHAR・F_INDENT_SPACE・F_INDENT_TAB・F_INS_DATE・F_INS_TIME・F_INSTEXT・F_JUMP・F_JUMP_SRCHSTARTPOS・F_JUMPHIST_NEXT・F_JUMPHIST_PREV・F_JUMPHIST_SET・F_LEFT・F_LEFT_SEL・F_LineCutToEnd・F_LineCutToStart・F_LineDeleteToEnd・F_LineDeleteToStart・F_LTRIM・F_MERGE・F_PASTE・F_PASTEBOX・F_REDO・F_REDRAW・F_REPLACE・F_REPLACE_ALL・F_RIGHT・F_RIGHT_SEL・F_RTRIM・F_SEARCH_CLEARMARK・F_SEARCH_NEXT・F_SEARCH_PREV・F_SELECTALL・F_SELECTWORD・F_SORT_ASC・F_SORT_DESC・F_SPACETOTAB・F_TABTOSPACE・F_TAGJUMP・F_TAGJUMPBACK・F_TOHANEI・F_TOHANKAKU・F_TOHANKATA・F_TOLOWER・F_TOPMOST・F_TOUPPER・F_TOZENEI・F_TOZENKAKUHIRA・F_TOZENKAKUKATA・F_UNDO・F_UNINDENT_SPACE・F_UNINDENT_TAB・F_UP・F_UP2・F_UP2_SEL・F_UP_SEL・F_WIN_OUTPUT・F_WordCut・F_WordDelete・F_WordDeleteToEnd・F_WordDeleteToStart・F_WORDLEFT・F_WORDLEFT_SEL・F_WORDRIGHT・F_WORDRIGHT_SEL・FALSE・TRUE.

void CSMacroMgr::Clear ( int idx )

CSMacroMgr.cpp の 576 行で定義されています。

参照先 Idx2Ptr()・NULL.

void CSMacroMgr::ClearAll ( void )

キーマクロのバッファをクリアする

CSMacroMgr.cpp の 392 行で定義されています。

参照先 m_cSavedKeyMacro・MAX_CUSTMACRO・NULL.

参照元 ~CSMacroMgr().

BOOL CSMacroMgr::Exec | ( | int | idx,
 |  | HINSTANCE | hInstance,
 |  | CEditView * | pcEditView
 | ) |

キーボードマクロの実行

キーボードマクロの実行

CSMacroMgr.cpp の 445 行で定義されています。

参照先 _MAX_PATH・CMacroManagerBase::ExecKeyMacro()・FALSE・CShareData::getInstance()・CShareData::GetMacroFilename()・INVALID_MACRO_IDX・Load()・m_cSavedKeyMacro・m_pKeyMacro・MAX_CUSTMACRO・NULL・CEditView::Redraw()・SetCurrentIdx()・STAND_KEYMACRO・TRUE.

参照元 CEditView::Command_EXECKEYMACRO().

int CSMacroMgr::GetCurrentIdx ( void ) const [inline]

CSMacroMgr.h の 141 行で定義されています。

参照先 m_CurrentIdx.

const char* CSMacroMgr::GetFile ( int idx ) const [inline]

ファイル名の取得

引数:
idx [in] マクロ番号

CSMacroMgr.h の 116 行で定義されています。

参照先 DLLSHAREDATA::m_MacroTable・m_pShareData・MacroRec::m_szFile・MAX_CUSTMACRO・NULL.

const MacroFuncInfo * CSMacroMgr::GetFuncInfoByID ( int ) [static]

CSMacroMgr.cpp の 598 行で定義されています。

参照先 m_MacroFuncInfoArr・MacroFuncInfo::m_pszFuncName・NULL.

char * CSMacroMgr::GetFuncInfoByID | ( | HINSTANCE | hInstance,
 |  | int | nFuncID,
 |  | char * | pszFuncName,
 |  | char * | pszFuncNameJapanese
 | ) | [static]

機能番号から関数名と機能名日本語を取得

引数:
hInstance | [in] リソース取得のためのInstance Handle
nFuncID | [in] 機能番号
pszFuncName | [out] 関数名．この先には最長関数名＋1バイトのメモリが必要．
pszFuncNameJapanese | [out] 機能名日本語．この先には256バイトのメモリが必要．
戻り値:
成功したときはpszFuncName．見つからなかったときはNULL．
覚え書き:
それぞれ，文字列格納領域の指す先がNULLの時は文字列を格納しない． ただし，pszFuncNameをNULLにしてしまうと戻り値が常にNULLになって 成功判定が行えなくなる．
日付:
2002.06.16 genta 新設のGetFuncInfoById(int)を内部で使うように．

CSMacroMgr.cpp の 632 行で定義されています。

参照先 MacroFuncInfo::m_pszFuncName・NULL.

参照元 CPPA::CallHandleFunction()・CMacro::Save().

int CSMacroMgr::GetFuncInfoByName | ( | HINSTANCE | hInstance,
 |  | const char * | pszFuncName,
 |  | char * | pszFuncNameJapanese
 | ) | [static]

関数名（S_xxxx）から機能番号と機能名日本語を取得． 関数名はS_で始まる場合と始まらない場合の両方に対応．

引数:
hInstance | [in] リソース取得のためのInstance Handle
pszFuncName | [in] 関数名
pszFuncNameJapanese | [out] 機能名日本語．この先には256バイトのメモリが必要．
戻り値:
成功したときは機能番号．見つからなかったときは-1．
覚え書き:
pszFuncNameJapanese の指す先がNULLの時は日本語名を格納しない．
日付:
2002.06.16 genta ループ内の文字列コピーを排除

CSMacroMgr.cpp の 670 行で定義されています。

参照先 m_MacroFuncInfoArr・MacroFuncInfo::m_pszFuncName・NULL.

const char* CSMacroMgr::GetName ( int idx ) const [inline]

表示名の取得

CSMacroMgr.h の 107 行で定義されています。

参照先 DLLSHAREDATA::m_MacroTable・m_pShareData・MacroRec::m_szName・MAX_CUSTMACRO・NULL.

const char* CSMacroMgr::GetTitle ( int idx ) const [inline]

表示する名前の取得

CSMacroMgr.h の 98 行で定義されています。

参照先 DLLSHAREDATA::m_MacroTable・m_pShareData・MacroRec::m_szFile・MacroRec::m_szName・MAX_CUSTMACRO・NULL.

参照元 CFuncLookup::Funccode2Name()・CFuncLookup::Pos2FuncName().

CMacroManagerBase ** CSMacroMgr::Idx2Ptr ( int idx ) [private]

マクロ番号から対応するマクロオブジェクト格納位置へのポインタへの変換

引数:
idx [in] マクロ番号(0-), STAND_KEYMACROは標準キーマクロバッファを表す．
戻り値:
オブジェクト位置へのポインタ．マクロ番号が不当な場合はNULL．

CSMacroMgr.cpp の 1009 行で定義されています。

参照先 m_cSavedKeyMacro・m_pKeyMacro・MAX_CUSTMACRO・MYTRACE・NULL・STAND_KEYMACRO.

参照元 Clear()・Load().

bool CSMacroMgr::IsEnabled ( int idx ) const [inline]

実行可能か？CShareDataに問い合わせ

CSMacroMgr.h の 92 行で定義されています。

参照先 MacroRec::IsEnabled()・DLLSHAREDATA::m_MacroTable・m_pShareData・MAX_CUSTMACRO.

参照元 CFuncLookup::Funccode2Name()・CFuncLookup::Pos2FuncCode().

BOOL CSMacroMgr::IsSaveOk ( void )

キーボードマクロの保存が可能かどうか

戻り値:
TRUE | 保存可能
FALSE | 保存不可

CSMacroMgr.cpp の 1033 行で定義されています。

参照先 FALSE・m_pKeyMacro・NULL・TRUE.

参照元 CEditView::Command_SAVEKEYMACRO()・CEditWnd::IsFuncEnable().

BOOL CSMacroMgr::Load | ( | int | idx,
 |  | HINSTANCE | hInstance,
 |  | const char * | pszPath
 | ) |

キーボードマクロの読み込み

CSMacroMgr.cpp の 501 行で定義されています。

参照先 CMacroFactory::Create()・FALSE・Idx2Ptr()・CMacroFactory::Instance()・MYTRACE・NULL・TRUE.

参照元 CEditView::Command_EXECKEYMACRO()・Exec().

BOOL CSMacroMgr::Save | ( | int | idx,
 |  | HINSTANCE | hInstance,
 |  | const char * | pszPath
 | ) |

キーボードマクロの保存

引数:
idx | [in] 読み込み先マクロバッファ番号
pszPath | [in] マクロファイル名
hInstance | [in] インスタンスハンドル
作者:
YAZAKI

CSMacroMgr.cpp の 550 行で定義されています。

参照先 FALSE・m_pKeyMacro・NULL・CKeyMacroMgr::SaveKeyMacro()・STAND_KEYMACRO・TRUE.

参照元 CEditView::Command_RECKEYMACRO().

void CSMacroMgr::SetCurrentIdx ( int idx ) [inline]

CSMacroMgr.h の 144 行で定義されています。

参照先 m_CurrentIdx.

参照元 Exec().

変数

CMacroManagerBase* CSMacroMgr::m_cSavedKeyMacro[MAX_CUSTMACRO] [private]

CSMacroMgr.h の 69 行で定義されています。

参照元 ClearAll()・CSMacroMgr()・Exec()・Idx2Ptr().

int CSMacroMgr::m_CurrentIdx [private]

実行中マクロのインデックス番号 (INVALID_MACRO_IDX:無効)

日付:
Sep. 15, 2005 FILE

CSMacroMgr.h の 155 行で定義されています。

参照元 GetCurrentIdx()・SetCurrentIdx().

MacroFuncInfo CSMacroMgr::m_MacroFuncInfoArr [static]

CSMacroMgr.h の 158 行で定義されています。

参照元 CWSHMacroManager::ExecKeyMacro()・GetFuncInfoByID()・GetFuncInfoByName().

MacroFuncInfo CSMacroMgr::m_MacroFuncInfoNotCommandArr [static]

初期値:

{
    {F_GETFILENAME, "GetFilename",  {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY},   VT_BSTR,    NULL},

    {F_GETSELECTED, "GetSelectedString",    {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY},  VT_BSTR,    NULL},
    {F_EXPANDPARAMETER, "ExpandParameter",  {VT_BSTR, VT_EMPTY, VT_EMPTY, VT_EMPTY},    VT_BSTR,    NULL},
    {F_GETLINESTR, "GetLineStr", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_BSTR, NULL },
    {F_GETLINECOUNT, "GetLineCount", {VT_I4, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_CHGTABWIDTH,         "ChangeTabWidth",           {VT_I4,    VT_EMPTY, VT_EMPTY, VT_EMPTY},  VT_I4, NULL },
    {F_ISTEXTSELECTED,      "IsTextSelected",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_GETSELLINEFROM,      "GetSelectLineFrom",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_GETSELCOLMFROM,      "GetSelectColmFrom",        {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_GETSELLINETO,        "GetSelectLineTo",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_GETSELCOLMTO,        "GetSelectColmTo",          {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_ISINSMODE,           "IsInsMode",                {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_GETCHARCODE,         "GetCharCode",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_GETLINECODE,         "GetLineCode",              {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_ISPOSSIBLEUNDO,      "IsPossibleUndo",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },
    {F_ISPOSSIBLEREDO,      "IsPossibleRedo",           {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_I4, NULL },

    {-1,    NULL, {VT_EMPTY, VT_EMPTY, VT_EMPTY, VT_EMPTY}, VT_EMPTY,   NULL}
}

CSMacroMgr.h の 159 行で定義されています。

参照元 CWSHMacroManager::ExecKeyMacro()・CPPA::InitDll()・CPPA::stdError().

CMacroManagerBase* CSMacroMgr::m_pKeyMacro [private]

CSMacroMgr.h の 72 行で定義されています。

参照元 Append()・Exec()・Idx2Ptr()・IsSaveOk()・Save().

DLLSHAREDATA* CSMacroMgr::m_pShareData [private]

CSMacroMgr.h の 149 行で定義されています。

参照元 CSMacroMgr()・GetFile()・GetName()・GetTitle()・IsEnabled().

このクラスの説明は次のファイルから生成されました:
  • CSMacroMgr.h
  • CSMacroMgr.cpp
Sakura-Editorに対してSat Oct 27 02:36:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSMacroMgr メンバ一覧

これは全メンバの一覧です。CSMacroMgr継承メンバも含んでいます。

Append(int idx, int nFuncID, LPARAM lParam1, CEditView *pcEditView) | CSMacroMgr |
CanFuncIsKeyMacro(int) | CSMacroMgr | [static]
Clear(int idx) | CSMacroMgr |
ClearAll(void) | CSMacroMgr |
CSMacroMgr() | CSMacroMgr |
Exec(int idx, HINSTANCE hInstance, CEditView *pcEditView) | CSMacroMgr |
GetCurrentIdx(void) const | CSMacroMgr | [inline]
GetFile(int idx) const | CSMacroMgr | [inline]
GetFuncInfoByID(HINSTANCE, int, char *, char *) | CSMacroMgr | [static]
GetFuncInfoByID(int) | CSMacroMgr | [static]
GetFuncInfoByName(HINSTANCE, const char *, char *) | CSMacroMgr | [static]
GetName(int idx) const | CSMacroMgr | [inline]
GetTitle(int idx) const | CSMacroMgr | [inline]
Idx2Ptr(int idx) | CSMacroMgr | [private]
IsEnabled(int idx) const | CSMacroMgr | [inline]
IsSaveOk(void) | CSMacroMgr |
Load(int idx, HINSTANCE hInstance, const char *pszPath) | CSMacroMgr |
m_cSavedKeyMacro | CSMacroMgr | [private]
m_CurrentIdx | CSMacroMgr | [private]
m_MacroFuncInfoArr | CSMacroMgr | [static]
m_MacroFuncInfoNotCommandArr | CSMacroMgr | [static]
m_pKeyMacro | CSMacroMgr | [private]
m_pShareData | CSMacroMgr | [private]
Save(int idx, HINSTANCE hInstance, const char *pszPath) | CSMacroMgr |
SetCurrentIdx(int idx) | CSMacroMgr | [inline]
~CSMacroMgr() | CSMacroMgr |

Sakura-Editorに対してSat Oct 27 02:36:04 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CSortedTagJumpList

  • 構成
  • クラス階層
  • 構成メンバ

クラス CSortedTagJumpList

ダイレクトタグジャンプ用検索結果をソートして保持する． [詳細]

#include <CSortedTagJumpList.h>

CSortedTagJumpListのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 型

typedef CSortedTagJumpList::tagjump_info_t | TagJumpInfo

Public メソッド

CSortedTagJumpList (int max)
~CSortedTagJumpList ()
BOOL | AddParam (TCHAR *keyword, TCHAR *filename, int no, TCHAR type, TCHAR *note, int depth)
BOOL | GetParam (int index, TCHAR *keyword, TCHAR *filename, int *no, TCHAR *type, TCHAR *note, int *depth)
int | GetCount (void)
void | Empty (void)
bool | IsOverflow (void)
TagJumpInfo * | GetPtr (int index)
int | GetCapacity (void) const
管理数の最大値を取得する

Private メソッド

void | Free (TagJumpInfo *item)

Private 変数

TagJumpInfo * m_pTagjump
タグジャンプ情報
int | m_nCount
個数
bool | m_bOverflow
オーバーフロー
const int | m_MAX_TAGJUMPLIST
管理する情報の最大数

構成

struct | tagjump_info_t

説明

ダイレクトタグジャンプ用検索結果をソートして保持する．

作者:
MIK

CSortedTagJumpList.h の 41 行で定義されています。

型定義

typedef struct CSortedTagJumpList::tagjump_info_t CSortedTagJumpList::TagJumpInfo

コンストラクタとデストラクタ

CSortedTagJumpList::CSortedTagJumpList ( int max )

日付:
2005.04.23 genta 管理数の最大値を指定する引数追加

CSortedTagJumpList.cpp の 38 行で定義されています。

CSortedTagJumpList::~CSortedTagJumpList ( )

CSortedTagJumpList.cpp の 46 行で定義されています。

参照先 Empty().

関数

BOOL CSortedTagJumpList::AddParam | ( | TCHAR * | keyword,
 |  | TCHAR * | filename,
 |  | int | no,
 |  | TCHAR | type,
 |  | TCHAR * | note,
 |  | int | depth
 | ) |

CSortedTagJumpList.cpp の 94 行で定義されています。

参照先 CSortedTagJumpList::tagjump_info_t::depth・FALSE・CSortedTagJumpList::tagjump_info_t::filename・CSortedTagJumpList::tagjump_info_t::keyword・m_pTagjump・MAX_TAG_STRING_LENGTH・CSortedTagJumpList::tagjump_info_t::next・CSortedTagJumpList::tagjump_info_t::no・CSortedTagJumpList::tagjump_info_t::note・NULL・CSortedTagJumpList::tagjump_info_t::type.

参照元 CDlgTagJumpList::AddParam()・CDlgTagJumpList::find_key().

void CSortedTagJumpList::Empty ( void )

CSortedTagJumpList.cpp の 68 行で定義されています。

参照先 Free()・m_pTagjump・CSortedTagJumpList::tagjump_info_t::next.

参照元 CDlgTagJumpList::Empty()・~CSortedTagJumpList().

void CSortedTagJumpList::Free ( TagJumpInfo * item ) [private]

CSortedTagJumpList.cpp の 56 行で定義されています。

参照先 CSortedTagJumpList::tagjump_info_t::filename・CSortedTagJumpList::tagjump_info_t::keyword・CSortedTagJumpList::tagjump_info_t::note.

参照元 Empty().

int CSortedTagJumpList::GetCapacity ( void ) const [inline]

管理数の最大値を取得する

日付:
2005.04.22 genta 最大値を可変に

CSortedTagJumpList.h の 68 行で定義されています。

参照先 m_MAX_TAGJUMPLIST.

参照元 CDlgTagJumpList::GetData().

int CSortedTagJumpList::GetCount ( void ) [inline]

CSortedTagJumpList.h の 48 行で定義されています。

参照先 m_nCount.

参照元 CDlgTagJumpList::GetSelectedParam()・CDlgTagJumpList::OnNotify()・CDlgTagJumpList::SearchBestTag()・CDlgTagJumpList::UpdateData().

BOOL CSortedTagJumpList::GetParam | ( | int | index,
 |  | TCHAR * | keyword,
 |  | TCHAR * | filename,
 |  | int * | no,
 |  | TCHAR * | type,
 |  | TCHAR * | note,
 |  | int * | depth
 | ) |

CSortedTagJumpList.cpp の 155 行で定義されています。

参照先 CSortedTagJumpList::tagjump_info_t::depth・FALSE・CSortedTagJumpList::tagjump_info_t::filename・GetPtr()・CSortedTagJumpList::tagjump_info_t::keyword・CSortedTagJumpList::tagjump_info_t::no・CSortedTagJumpList::tagjump_info_t::note・NULL・TRUE・CSortedTagJumpList::tagjump_info_t::type.

参照元 CDlgTagJumpList::GetSelectedParam().

CSortedTagJumpList::TagJumpInfo * CSortedTagJumpList::GetPtr ( int index )

CSortedTagJumpList.cpp の 186 行で定義されています。

参照先 m_pTagjump・CSortedTagJumpList::tagjump_info_t::next.

参照元 GetParam()・CDlgTagJumpList::SearchBestTag()・CDlgTagJumpList::UpdateData().

bool CSortedTagJumpList::IsOverflow ( void ) [inline]

CSortedTagJumpList.h の 50 行で定義されています。

参照先 m_bOverflow.

変数

bool CSortedTagJumpList::m_bOverflow [private]

オーバーフロー

CSortedTagJumpList.h の 73 行で定義されています。

参照元 IsOverflow().

const int CSortedTagJumpList::m_MAX_TAGJUMPLIST [private]

管理する情報の最大数

CSortedTagJumpList.h の 76 行で定義されています。

参照元 GetCapacity().

int CSortedTagJumpList::m_nCount [private]

個数

CSortedTagJumpList.h の 72 行で定義されています。

参照元 GetCount().

TagJumpInfo* CSortedTagJumpList::m_pTagjump [private]

タグジャンプ情報

CSortedTagJumpList.h の 71 行で定義されています。

参照元 AddParam()・Empty()・GetPtr().

このクラスの説明は次のファイルから生成されました:
  • CSortedTagJumpList.h
  • CSortedTagJumpList.cpp
Sakura-Editorに対してSat Oct 27 02:36:05 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSortedTagJumpList メンバ一覧

これは全メンバの一覧です。CSortedTagJumpList継承メンバも含んでいます。

AddParam(TCHAR *keyword, TCHAR *filename, int no, TCHAR type, TCHAR *note, int depth) | CSortedTagJumpList |
CSortedTagJumpList(int max) | CSortedTagJumpList |
Empty(void) | CSortedTagJumpList |
Free(TagJumpInfo *item) | CSortedTagJumpList | [private]
GetCapacity(void) const | CSortedTagJumpList | [inline]
GetCount(void) | CSortedTagJumpList | [inline]
GetParam(int index, TCHAR *keyword, TCHAR *filename, int *no, TCHAR *type, TCHAR *note, int *depth) | CSortedTagJumpList |
GetPtr(int index) | CSortedTagJumpList |
IsOverflow(void) | CSortedTagJumpList | [inline]
m_bOverflow | CSortedTagJumpList | [private]
m_MAX_TAGJUMPLIST | CSortedTagJumpList | [private]
m_nCount | CSortedTagJumpList | [private]
m_pTagjump | CSortedTagJumpList | [private]
TagJumpInfo typedef | CSortedTagJumpList |
~CSortedTagJumpList() | CSortedTagJumpList |

Sakura-Editorに対してSat Oct 27 02:36:05 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 CSortedTagJumpList::tagjump_info_t

  • 構成
  • クラス階層
  • 構成メンバ
CSortedTagJumpList::tagjump_info_t

構造体 CSortedTagJumpList::tagjump_info_t

#include <CSortedTagJumpList.h>

CSortedTagJumpList::tagjump_info_tのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

tagjump_info_t * next
次のリスト
TCHAR * | keyword
キーワード
TCHAR * | filename
ファイル名
int | no
行番号
TCHAR | type
種類
TCHAR * | note
備考
int | depth
(さかのぼる)階層

説明

CSortedTagJumpList.h の 52 行で定義されています。

変数

int CSortedTagJumpList::tagjump_info_t::depth

(さかのぼる)階層

CSortedTagJumpList.h の 59 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CSortedTagJumpList::GetParam().

TCHAR* CSortedTagJumpList::tagjump_info_t::filename

ファイル名

CSortedTagJumpList.h の 55 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CSortedTagJumpList::Free()・CSortedTagJumpList::GetParam().

TCHAR* CSortedTagJumpList::tagjump_info_t::keyword

キーワード

CSortedTagJumpList.h の 54 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CSortedTagJumpList::Free()・CSortedTagJumpList::GetParam().

struct tagjump_info_t* CSortedTagJumpList::tagjump_info_t::next

次のリスト

CSortedTagJumpList.h の 53 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CSortedTagJumpList::Empty()・CSortedTagJumpList::GetPtr().

int CSortedTagJumpList::tagjump_info_t::no

行番号

CSortedTagJumpList.h の 56 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CSortedTagJumpList::GetParam().

TCHAR* CSortedTagJumpList::tagjump_info_t::note

備考

CSortedTagJumpList.h の 58 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CSortedTagJumpList::Free()・CSortedTagJumpList::GetParam().

TCHAR CSortedTagJumpList::tagjump_info_t::type

種類

CSortedTagJumpList.h の 57 行で定義されています。

参照元 CSortedTagJumpList::AddParam()・CSortedTagJumpList::GetParam().

この構造体の説明は次のファイルから生成されました:
  • CSortedTagJumpList.h
Sakura-Editorに対してSat Oct 27 02:36:05 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSortedTagJumpList::tagjump_info_t メンバ一覧

これは全メンバの一覧です。CSortedTagJumpList::tagjump_info_t継承メンバも含んでいます。

depth | CSortedTagJumpList::tagjump_info_t
filename | CSortedTagJumpList::tagjump_info_t
keyword | CSortedTagJumpList::tagjump_info_t
next | CSortedTagJumpList::tagjump_info_t
no | CSortedTagJumpList::tagjump_info_t
note | CSortedTagJumpList::tagjump_info_t
type | CSortedTagJumpList::tagjump_info_t

Sakura-Editorに対してSat Oct 27 02:36:05 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CSplitBoxWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CSplitBoxWnd

分割ボックスウィンドウクラス [詳細]

#include <CSplitBoxWnd.h>

CSplitBoxWndに対する継承グラフ

[凡例]
CSplitBoxWndのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CSplitBoxWnd ()
virtual | ~CSplitBoxWnd ()
HWND | Create (HINSTANCE, HWND, int)

Static Public メソッド

static void | Draw3dRect (HDC, int, int, int, int, COLORREF, COLORREF)
static void | FillSolidRect (HDC, int, int, int, int, COLORREF)

Protected メソッド

LRESULT | OnPaint (HWND, UINT, WPARAM, LPARAM)
LRESULT | OnLButtonDown (HWND, UINT, WPARAM, LPARAM)
LRESULT | OnMouseMove (HWND, UINT, WPARAM, LPARAM)
LRESULT | OnLButtonUp (HWND, UINT, WPARAM, LPARAM)
LRESULT | OnLButtonDblClk (HWND, UINT, WPARAM, LPARAM)

Private 変数

const char * | m_pszClassName
int | m_bVertical
int | m_nDragPosY
int | m_nDragPosX

説明

分割ボックスウィンドウクラス

CSplitBoxWnd.h の 28 行で定義されています。

コンストラクタとデストラクタ

CSplitBoxWnd::CSplitBoxWnd ( )

CSplitBoxWnd.cpp の 20 行で定義されています。

参照先 m_bVertical・m_pszClassName・CWnd::m_szClassInheritances・NULL・TRUE.

CSplitBoxWnd::~CSplitBoxWnd ( ) [virtual]

CSplitBoxWnd.cpp の 29 行で定義されています。

関数

HWND CSplitBoxWnd::Create | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | int |
 | ) |

CSplitBoxWnd.cpp の 35 行で定義されています。

参照先 CWnd::Create()・m_bVertical・CWnd::m_hInstance・CWnd::m_hwndParent・m_pszClassName・NULL・CWnd::RegisterWC().

参照元 CEditView::SplitBoxOnOff().

void CSplitBoxWnd::Draw3dRect | ( | HDC | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | COLORREF | ,
 |  | COLORREF |
 | ) | [static]

CSplitBoxWnd.cpp の 91 行で定義されています。

参照元 CSplitterWnd::DrawFrame()・OnPaint().

void CSplitBoxWnd::FillSolidRect | ( | HDC | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | COLORREF |
 | ) | [static]

CSplitBoxWnd.cpp の 115 行で定義されています。

参照先 NULL.

LRESULT CSplitBoxWnd::OnLButtonDblClk | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CSplitBoxWnd.cpp の 436 行で定義されています。

参照先 m_bVertical・CWnd::m_hwndParent・MYWM_DOSPLIT.

LRESULT CSplitBoxWnd::OnLButtonDown | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CSplitBoxWnd.cpp の 172 行で定義されています。

参照先 m_bVertical・CWnd::m_hwndParent・m_nDragPosX・m_nDragPosY.

LRESULT CSplitBoxWnd::OnLButtonUp | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CSplitBoxWnd.cpp の 365 行で定義されています。

参照先 m_bVertical・CWnd::m_hwndParent・m_nDragPosX・m_nDragPosY・MYWM_DOSPLIT.

LRESULT CSplitBoxWnd::OnMouseMove | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CSplitBoxWnd.cpp の 233 行で定義されています。

参照先 m_bVertical・CWnd::m_hwndParent・m_nDragPosX・m_nDragPosY.

LRESULT CSplitBoxWnd::OnPaint | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CSplitBoxWnd.cpp の 128 行で定義されています。

参照先 Draw3dRect()・m_bVertical.

変数

int CSplitBoxWnd::m_bVertical [private]

CSplitBoxWnd.h の 47 行で定義されています。

参照元 Create()・CSplitBoxWnd()・OnLButtonDblClk()・OnLButtonDown()・OnLButtonUp()・OnMouseMove()・OnPaint().

int CSplitBoxWnd::m_nDragPosX [private]

CSplitBoxWnd.h の 49 行で定義されています。

参照元 OnLButtonDown()・OnLButtonUp()・OnMouseMove().

int CSplitBoxWnd::m_nDragPosY [private]

CSplitBoxWnd.h の 48 行で定義されています。

参照元 OnLButtonDown()・OnLButtonUp()・OnMouseMove().

const char* CSplitBoxWnd::m_pszClassName [private]

CSplitBoxWnd.h の 46 行で定義されています。

参照元 Create()・CSplitBoxWnd().

このクラスの説明は次のファイルから生成されました:
  • CSplitBoxWnd.h
  • CSplitBoxWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:06 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSplitBoxWnd メンバ一覧

これは全メンバの一覧です。CSplitBoxWnd継承メンバも含んでいます。

AfterCreateWindow(void) | CWnd | [inline, protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Create(HINSTANCE, HWND, int) | CSplitBoxWnd |
CWnd::Create(DWORD, LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HMENU) | CWnd |
CSplitBoxWnd() | CSplitBoxWnd |
CWnd() | CWnd |
DECLH(OnCreate) | CWnd | [protected, virtual]
DECLH(OnCommand) | CWnd | [protected, virtual]
DECLH(OnPaint) | CWnd | [protected, virtual]
DECLH(OnLButtonDown) | CWnd | [protected, virtual]
DECLH(OnLButtonUp) | CWnd | [protected, virtual]
DECLH(OnLButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnRButtonDown) | CWnd | [protected, virtual]
DECLH(OnRButtonUp) | CWnd | [protected, virtual]
DECLH(OnRButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMButtonDown) | CWnd | [protected, virtual]
DECLH(OnMButtonUp) | CWnd | [protected, virtual]
DECLH(OnMButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMouseMove) | CWnd | [protected, virtual]
DECLH(OnMouseWheel) | CWnd | [protected, virtual]
DECLH(OnTimer) | CWnd | [protected, virtual]
DECLH(OnSize) | CWnd | [protected, virtual]
DECLH(OnMove) | CWnd | [protected, virtual]
DECLH(OnClose) | CWnd | [protected, virtual]
DECLH(OnDestroy) | CWnd | [protected, virtual]
DECLH(OnQueryEndSession) | CWnd | [protected, virtual]
DECLH(OnMeasureItem) | CWnd | [protected, virtual]
DECLH(OnMenuChar) | CWnd | [protected, virtual]
DECLH(OnNotify) | CWnd | [protected, virtual]
DECLH(OnDrawItem) | CWnd | [protected, virtual]
DECLH(OnCaptureChanged) | CWnd | [protected, virtual]
DECLH(OnMDIActivate) | CWnd | [protected, virtual]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Draw3dRect(HDC, int, int, int, int, COLORREF, COLORREF) | CSplitBoxWnd | [static]
FillSolidRect(HDC, int, int, int, int, COLORREF) | CSplitBoxWnd | [static]
Init(HINSTANCE, HWND) | CWnd |
m_bVertical | CSplitBoxWnd | [private]
m_hInstance | CWnd | [protected]
m_hWnd | CWnd |
m_hwndParent | CWnd | [protected]
m_nDragPosX | CSplitBoxWnd | [private]
m_nDragPosY | CSplitBoxWnd | [private]
m_pszClassName | CSplitBoxWnd | [private]
m_szClassInheritances | CWnd | [protected]
OnLButtonDblClk(HWND, UINT, WPARAM, LPARAM) | CSplitBoxWnd | [protected]
OnLButtonDown(HWND, UINT, WPARAM, LPARAM) | CSplitBoxWnd | [protected]
OnLButtonUp(HWND, UINT, WPARAM, LPARAM) | CSplitBoxWnd | [protected]
OnMouseMove(HWND, UINT, WPARAM, LPARAM) | CSplitBoxWnd | [protected]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
OnPaint(HWND, UINT, WPARAM, LPARAM) | CSplitBoxWnd | [protected]
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
RegisterWC(HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR) | CWnd |
~CSplitBoxWnd() | CSplitBoxWnd | [virtual]
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Oct 27 02:36:06 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CSplitterWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CSplitterWnd

分割線ウィンドウクラス [詳細]

#include <CSplitterWnd.h>

CSplitterWndに対する継承グラフ

[凡例]
CSplitterWndのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CSplitterWnd ()
~CSplitterWnd ()
HWND | Create (HINSTANCE, HWND, void *pCEditWnd)
void | SetChildWndArr (HWND *)
void | DoSplit (int, int)
void | SetActivePane (int)
int | GetPrevPane (void)
int | GetNextPane (void)
int | GetFirstPane (void)
int | GetLastPane (void)
void | VSplitOnOff (void)
void | HSplitOnOff (void)
void | VHSplitOnOff (void)
int | GetAllSplitRows ()
int | GetAllSplitCols ()

Protected メソッド

virtual LRESULT | DispatchEvent_WM_APP (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnSize (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnPaint (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnMouseMove (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnLButtonDown (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnLButtonUp (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnLButtonDblClk (HWND, UINT, WPARAM, LPARAM)
void | DrawFrame (HDC, RECT *)
int | HitTestSplitter (int, int)
void | DrawSplitter (int, int, int)

Private 変数

char * | m_pszClassName
DLLSHAREDATA * m_pShareData
void * | m_pCEditWnd
int | m_nAllSplitRows
int | m_nAllSplitCols
int | m_nVSplitPos
int | m_nHSplitPos
HWND | m_ChildWndArr [MAXCOUNTOFVIEW]
HCURSOR | m_hcurOld
int | m_bDragging
int | m_nDragPosX
int | m_nDragPosY
int | m_nActivePane

説明

分割線ウィンドウクラス

４分割ウィンドウの管理と分割線の描画を行う。

日付:
2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。

CSplitterWnd.h の 35 行で定義されています。

コンストラクタとデストラクタ

CSplitterWnd::CSplitterWnd ( )

CSplitterWnd.cpp の 27 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・m_ChildWndArr・m_hcurOld・m_pShareData・CWnd::m_szClassInheritances・MAXCOUNTOFVIEW・NULL.

CSplitterWnd::~CSplitterWnd ( )

CSplitterWnd.cpp の 54 行で定義されています。

関数

HWND CSplitterWnd::Create | ( | HINSTANCE | ,
 |  | HWND | ,
 |  | void * | pCEditWnd
 | ) |

CSplitterWnd.cpp の 62 行で定義されています。

参照先 CWnd::Create()・GSTR_APPNAME・CWnd::m_hInstance・CWnd::m_hwndParent・m_pCEditWnd・m_pszClassName・MYMESSAGEBOX・NULL・CWnd::RegisterWC().

参照元 CEditDoc::Create().

LRESULT CSplitterWnd::DispatchEvent_WM_APP | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CWndを再定義しています。

CSplitterWnd.cpp の 1071 行で定義されています。

参照先 DoSplit()・MYWM_DOSPLIT・MYWM_SETACTIVEPANE・SetActivePane().

void CSplitterWnd::DoSplit | ( | int | ,
 |  | int |
 | ) |

CSplitterWnd.cpp の 240 行で定義されています。

参照先 BOOL・FALSE・GetWindowLongPtr・CEditWnd::m_CFuncKeyWnd・m_ChildWndArr・DLLSHAREDATA::m_Common・CWnd::m_hWnd・CWnd::m_hwndParent・CEditWnd::m_hwndStatusBar・m_nAllSplitCols・m_nAllSplitRows・Common::m_nFUNCKEYWND_Place・m_nHSplitPos・m_nVSplitPos・m_pCEditWnd・m_pShareData・MAXCOUNTOFVIEW・NULL・TRUE.

参照元 CEditWnd::CreateStatusBar()・CEditWnd::DestroyStatusBar()・DispatchEvent_WM_APP()・CEditWnd::EndLayoutBars()・HSplitOnOff()・OnLButtonDblClk()・OnLButtonUp()・VHSplitOnOff()・VSplitOnOff().

void CSplitterWnd::DrawFrame | ( | HDC | ,
 |  | RECT * |
 | ) | [protected]

CSplitterWnd.cpp の 125 行で定義されています。

参照先 CSplitBoxWnd::Draw3dRect().

void CSplitterWnd::DrawSplitter | ( | int | ,
 |  | int | ,
 |  | int |
 | ) | [protected]

CSplitterWnd.cpp の 142 行で定義されています。

参照先 m_bDragging・CWnd::m_hWnd・m_nDragPosX・m_nDragPosY.

参照元 OnLButtonDown()・OnLButtonUp()・OnMouseMove().

int CSplitterWnd::GetAllSplitCols ( ) [inline]

CSplitterWnd.h の 75 行で定義されています。

参照元 CEditDoc::DetectWidthOfLineNumberAreaAllPane()・CEditDoc::RedrawInactivePane().

int CSplitterWnd::GetAllSplitRows ( ) [inline]

CSplitterWnd.h の 74 行で定義されています。

参照元 CEditDoc::DetectWidthOfLineNumberAreaAllPane().

int CSplitterWnd::GetFirstPane ( void )

CSplitterWnd.cpp の 766 行で定義されています。

int CSplitterWnd::GetLastPane ( void )

CSplitterWnd.cpp の 774 行で定義されています。

参照先 m_nAllSplitCols・m_nAllSplitRows.

int CSplitterWnd::GetNextPane ( void )

CSplitterWnd.cpp の 719 行で定義されています。

参照先 m_nActivePane・m_nAllSplitCols・m_nAllSplitRows.

int CSplitterWnd::GetPrevPane ( void )

CSplitterWnd.cpp の 670 行で定義されています。

参照先 m_nActivePane・m_nAllSplitCols・m_nAllSplitRows.

参照元 CEditDoc::HandleCommand().

int CSplitterWnd::HitTestSplitter | ( | int | ,
 |  | int |
 | ) | [protected]

CSplitterWnd.cpp の 202 行で定義されています。

参照先 m_nAllSplitCols・m_nAllSplitRows・m_nHSplitPos・m_nVSplitPos.

参照元 OnLButtonDblClk()・OnLButtonDown()・OnMouseMove().

void CSplitterWnd::HSplitOnOff ( void )

CSplitterWnd.cpp の 619 行で定義されています。

参照先 DoSplit()・CWnd::m_hWnd・m_nAllSplitCols・m_nAllSplitRows・m_nVSplitPos.

参照元 CEditView::Command_SPLIT_H().

LRESULT CSplitterWnd::OnLButtonDblClk | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CSplitterWnd.cpp の 1032 行で定義されています。

参照先 DoSplit()・HitTestSplitter()・CWnd::m_hWnd・m_nAllSplitCols・m_nAllSplitRows・OnMouseMove().

LRESULT CSplitterWnd::OnLButtonDown | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CSplitterWnd.cpp の 962 行で定義されています。

参照先 DrawSplitter()・FALSE・HitTestSplitter()・m_bDragging・CWnd::m_hWnd・CWnd::m_hwndParent.

LRESULT CSplitterWnd::OnLButtonUp | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CSplitterWnd.cpp の 988 行で定義されています。

参照先 DoSplit()・DrawSplitter()・FALSE・m_bDragging・m_hcurOld・m_nAllSplitCols・m_nAllSplitRows・m_nDragPosX・m_nDragPosY・NULL.

LRESULT CSplitterWnd::OnMouseMove | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CSplitterWnd.cpp の 914 行で定義されています。

参照先 DrawSplitter()・HitTestSplitter()・m_bDragging・CWnd::m_hWnd・NULL・TRUE.

参照元 OnLButtonDblClk().

LRESULT CSplitterWnd::OnPaint | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CSplitterWnd.cpp の 795 行で定義されています。

参照先 CWnd::m_hWnd・m_nAllSplitCols・m_nAllSplitRows・m_nHSplitPos・m_nVSplitPos.

LRESULT CSplitterWnd::OnSize | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CSplitterWnd.cpp の 823 行で定義されています。

参照先 BOOL・GetWindowLongPtr・m_pCEditWnd・MAXCOUNTOFVIEW.

void CSplitterWnd::SetActivePane ( int )

CSplitterWnd.cpp の 589 行で定義されています。

参照先 m_nActivePane.

参照元 DispatchEvent_WM_APP()・CEditDoc::SetActivePane().

void CSplitterWnd::SetChildWndArr ( HWND * )

CSplitterWnd.cpp の 108 行で定義されています。

参照先 m_ChildWndArr・MAXCOUNTOFVIEW.

参照元 CEditDoc::Create().

void CSplitterWnd::VHSplitOnOff ( void )

CSplitterWnd.cpp の 641 行で定義されています。

参照先 DoSplit()・CWnd::m_hWnd・m_nAllSplitCols・m_nAllSplitRows・m_nHSplitPos・m_nVSplitPos.

参照元 CEditView::Command_SPLIT_VH().

void CSplitterWnd::VSplitOnOff ( void )

CSplitterWnd.cpp の 597 行で定義されています。

参照先 DoSplit()・CWnd::m_hWnd・m_nAllSplitCols・m_nAllSplitRows・m_nHSplitPos.

参照元 CEditView::Command_SPLIT_V().

変数

int CSplitterWnd::m_bDragging [private]

CSplitterWnd.h の 56 行で定義されています。

参照元 DrawSplitter()・OnLButtonDown()・OnLButtonUp()・OnMouseMove().

HWND CSplitterWnd::m_ChildWndArr[MAXCOUNTOFVIEW] [private]

CSplitterWnd.h の 54 行で定義されています。

参照元 CSplitterWnd()・DoSplit()・SetChildWndArr().

HCURSOR CSplitterWnd::m_hcurOld [private]

CSplitterWnd.h の 55 行で定義されています。

参照元 CSplitterWnd()・OnLButtonUp().

int CSplitterWnd::m_nActivePane [private]

CSplitterWnd.h の 59 行で定義されています。

参照元 GetNextPane()・GetPrevPane()・SetActivePane().

int CSplitterWnd::m_nAllSplitCols [private]

CSplitterWnd.h の 51 行で定義されています。

参照元 DoSplit()・GetLastPane()・GetNextPane()・GetPrevPane()・HitTestSplitter()・HSplitOnOff()・OnLButtonDblClk()・OnLButtonUp()・OnPaint()・VHSplitOnOff()・VSplitOnOff().

int CSplitterWnd::m_nAllSplitRows [private]

CSplitterWnd.h の 50 行で定義されています。

参照元 DoSplit()・GetLastPane()・GetNextPane()・GetPrevPane()・HitTestSplitter()・HSplitOnOff()・OnLButtonDblClk()・OnLButtonUp()・OnPaint()・VHSplitOnOff()・VSplitOnOff().

int CSplitterWnd::m_nDragPosX [private]

CSplitterWnd.h の 57 行で定義されています。

参照元 DrawSplitter()・OnLButtonUp().

int CSplitterWnd::m_nDragPosY [private]

CSplitterWnd.h の 58 行で定義されています。

参照元 DrawSplitter()・OnLButtonUp().

int CSplitterWnd::m_nHSplitPos [private]

CSplitterWnd.h の 53 行で定義されています。

参照元 DoSplit()・HitTestSplitter()・OnPaint()・VHSplitOnOff()・VSplitOnOff().

int CSplitterWnd::m_nVSplitPos [private]

CSplitterWnd.h の 52 行で定義されています。

参照元 DoSplit()・HitTestSplitter()・HSplitOnOff()・OnPaint()・VHSplitOnOff().

void* CSplitterWnd::m_pCEditWnd [private]

CSplitterWnd.h の 49 行で定義されています。

参照元 Create()・DoSplit()・OnSize().

DLLSHAREDATA* CSplitterWnd::m_pShareData [private]

CSplitterWnd.h の 48 行で定義されています。

参照元 CSplitterWnd()・DoSplit().

char* CSplitterWnd::m_pszClassName [private]

CSplitterWnd.h の 47 行で定義されています。

参照元 Create().

このクラスの説明は次のファイルから生成されました:
  • CSplitterWnd.h
  • CSplitterWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:08 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CSplitterWnd メンバ一覧

これは全メンバの一覧です。CSplitterWnd継承メンバも含んでいます。

AfterCreateWindow(void) | CWnd | [inline, protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Create(HINSTANCE, HWND, void *pCEditWnd) | CSplitterWnd |
CWnd::Create(DWORD, LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HMENU) | CWnd |
CSplitterWnd() | CSplitterWnd |
CWnd() | CWnd |
DECLH(OnCreate) | CWnd | [protected, virtual]
DECLH(OnCommand) | CWnd | [protected, virtual]
DECLH(OnPaint) | CWnd | [protected, virtual]
DECLH(OnLButtonDown) | CWnd | [protected, virtual]
DECLH(OnLButtonUp) | CWnd | [protected, virtual]
DECLH(OnLButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnRButtonDown) | CWnd | [protected, virtual]
DECLH(OnRButtonUp) | CWnd | [protected, virtual]
DECLH(OnRButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMButtonDown) | CWnd | [protected, virtual]
DECLH(OnMButtonUp) | CWnd | [protected, virtual]
DECLH(OnMButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMouseMove) | CWnd | [protected, virtual]
DECLH(OnMouseWheel) | CWnd | [protected, virtual]
DECLH(OnTimer) | CWnd | [protected, virtual]
DECLH(OnSize) | CWnd | [protected, virtual]
DECLH(OnMove) | CWnd | [protected, virtual]
DECLH(OnClose) | CWnd | [protected, virtual]
DECLH(OnDestroy) | CWnd | [protected, virtual]
DECLH(OnQueryEndSession) | CWnd | [protected, virtual]
DECLH(OnMeasureItem) | CWnd | [protected, virtual]
DECLH(OnMenuChar) | CWnd | [protected, virtual]
DECLH(OnNotify) | CWnd | [protected, virtual]
DECLH(OnDrawItem) | CWnd | [protected, virtual]
DECLH(OnCaptureChanged) | CWnd | [protected, virtual]
DECLH(OnMDIActivate) | CWnd | [protected, virtual]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CSplitterWnd | [protected, virtual]
DoSplit(int, int) | CSplitterWnd |
DrawFrame(HDC, RECT *) | CSplitterWnd | [protected]
DrawSplitter(int, int, int) | CSplitterWnd | [protected]
GetAllSplitCols() | CSplitterWnd | [inline]
GetAllSplitRows() | CSplitterWnd | [inline]
GetFirstPane(void) | CSplitterWnd |
GetLastPane(void) | CSplitterWnd |
GetNextPane(void) | CSplitterWnd |
GetPrevPane(void) | CSplitterWnd |
HitTestSplitter(int, int) | CSplitterWnd | [protected]
HSplitOnOff(void) | CSplitterWnd |
Init(HINSTANCE, HWND) | CWnd |
m_bDragging | CSplitterWnd | [private]
m_ChildWndArr | CSplitterWnd | [private]
m_hcurOld | CSplitterWnd | [private]
m_hInstance | CWnd | [protected]
m_hWnd | CWnd |
m_hwndParent | CWnd | [protected]
m_nActivePane | CSplitterWnd | [private]
m_nAllSplitCols | CSplitterWnd | [private]
m_nAllSplitRows | CSplitterWnd | [private]
m_nDragPosX | CSplitterWnd | [private]
m_nDragPosY | CSplitterWnd | [private]
m_nHSplitPos | CSplitterWnd | [private]
m_nVSplitPos | CSplitterWnd | [private]
m_pCEditWnd | CSplitterWnd | [private]
m_pShareData | CSplitterWnd | [private]
m_pszClassName | CSplitterWnd | [private]
m_szClassInheritances | CWnd | [protected]
OnLButtonDblClk(HWND, UINT, WPARAM, LPARAM) | CSplitterWnd | [protected, virtual]
OnLButtonDown(HWND, UINT, WPARAM, LPARAM) | CSplitterWnd | [protected, virtual]
OnLButtonUp(HWND, UINT, WPARAM, LPARAM) | CSplitterWnd | [protected, virtual]
OnMouseMove(HWND, UINT, WPARAM, LPARAM) | CSplitterWnd | [protected, virtual]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
OnPaint(HWND, UINT, WPARAM, LPARAM) | CSplitterWnd | [protected, virtual]
OnSize(HWND, UINT, WPARAM, LPARAM) | CSplitterWnd | [protected, virtual]
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
RegisterWC(HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR) | CWnd |
SetActivePane(int) | CSplitterWnd |
SetChildWndArr(HWND *) | CSplitterWnd |
VHSplitOnOff(void) | CSplitterWnd |
VSplitOnOff(void) | CSplitterWnd |
~CSplitterWnd() | CSplitterWnd |
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Oct 27 02:36:08 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CTabWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTabWnd

タブバーウィンドウ [詳細]

#include <CTabWnd.h>

CTabWndに対する継承グラフ

[凡例]
CTabWndのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CTabWnd ()
virtual | ~CTabWnd ()
HWND | Open (HINSTANCE, HWND)
void | Close (void)
void | TabWindowNotify (WPARAM wParam, LPARAM lParam)
void | Refresh (BOOL bEnsureVisible=TRUE, BOOL bRebuild=FALSE)
void | NextGroup (void)
void | PrevGroup (void)
void | MoveRight (void)
void | MoveLeft (void)
void | Separate (void)
void | JoinNext (void)
void | JoinPrev (void)
LRESULT | TabWndDispatchEvent (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
LRESULT | TabListMenu (POINT pt, BOOL bSel=TRUE, BOOL bFull=FALSE, BOOL bOtherGroup=TRUE)

Public 変数

LPCTSTR | m_pszClassName
DLLSHAREDATA * m_pShareData
HFONT | m_hFont
HWND | m_hwndTab
HWND | m_hwndToolTip
TCHAR | m_szTextTip1 [1024]
wchar_t | m_szTextTip2 [1024]
UNICODE文字列でのツールチップ

Protected 型

enum | DragState { DRAG_NONE, DRAG_CHECK, DRAG_DRAG }
enum | CaptureSrc { CAPT_NONE, CAPT_CLOSE }

Protected メソッド

int | FindTabIndexByHWND (HWND hWnd)
void | AdjustWindowPlacement (void)
void | ShowHideWindow (HWND hwnd, BOOL bDisp)
void | HideOtherWindows (HWND hwndExclude)
void | ForceActiveWindow (HWND hwnd)
void | TabWnd_ActivateFrameWindow (HWND hwnd, bool bForce=true)
HWND | GetNextGroupWnd (void)
HWND | GetPrevGroupWnd (void)
void | GetTabName (EditNode *pEditNode, BOOL bFull, BOOL bDupamp, LPTSTR pszName, int nLen)
virtual void | AfterCreateWindow (void)
virtual LRESULT | OnSize (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnDestroy (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnNotify (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnPaint (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnCaptureChanged (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnLButtonDown (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnLButtonUp (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnRButtonDown (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnLButtonDblClk (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnMouseMove (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnTimer (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnMeasureItem (HWND, UINT, WPARAM, LPARAM)
virtual LRESULT | OnDrawItem (HWND, UINT, WPARAM, LPARAM)
LRESULT | OnTabLButtonDown (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabLButtonUp (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabMouseMove (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabCaptureChanged (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabRButtonDown (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabRButtonUp (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabMButtonDown (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabMButtonUp (WPARAM wParam, LPARAM lParam)
LRESULT | OnTabNotify (WPARAM wParam, LPARAM lParam)
void | BreakDrag (void)
BOOL | ReorderTab (int nSrcTab, int nDstTab)
タブ順序変更処理
BOOL | SeparateGroup (HWND hwndSrc, HWND hwndDst, POINT ptDrag, POINT ptDrop)
LRESULT | ExecTabCommand (int nId, POINTS pts)
void | LayoutTab (void)
HIMAGELIST (WINAPI *m_RealImageList_Duplicate)(HIMAGELIST himl)
HIMAGELIST | InitImageList (void)
int | GetImageIndex (EditNode *pNode)
HIMAGELIST | ImageList_Duplicate (HIMAGELIST himl)
void | DrawBtnBkgnd (HDC hdc, const LPRECT lprcBtn, BOOL bBtnHilighted)
void | DrawListBtn (HDC hdc, const LPRECT lprcClient)
void | DrawCloseBtn (HDC hdc, const LPRECT lprcClient)
void | GetListBtnRect (const LPRECT lprcClient, LPRECT lprc)
void | GetCloseBtnRect (const LPRECT lprcClient, LPRECT lprc)
HFONT | CreateMenuFont (void)

Protected 変数

DragState m_eDragState
ドラッグ状態
int | m_nSrcTab
移動元タブ
POINT | m_ptSrcCursor
ドラッグ開始カーソル位置
HIMAGELIST | m_hIml
HICON | m_hIconApp
HICON | m_hIconGrep
int | m_iIconApp
int | m_iIconGrep
BOOL | m_bVisualStyle
ビジュアルスタイルかどうか // 2007.04.01 ryoji
BOOL | m_bHovering
BOOL | m_bListBtnHilighted
BOOL | m_bCloseBtnHilighted
閉じるボタンハイライト状態 // 2006.10.21 ryoji
CaptureSrc m_eCaptureSrc
キャプチャー元

説明

タブバーウィンドウ

CTabWnd.h の 47 行で定義されています。

列挙型

enum CTabWnd::CaptureSrc [protected]

列挙型の値:
CAPT_NONE
CAPT_CLOSE

CTabWnd.h の 168 行で定義されています。

enum CTabWnd::DragState [protected]

列挙型の値:
DRAG_NONE
DRAG_CHECK
DRAG_DRAG

CTabWnd.h の 141 行で定義されています。

コンストラクタとデストラクタ

CTabWnd::CTabWnd ( )

CTabWnd.cpp の 642 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetShareData()・gm_pOldWndProc・m_hFont・m_hIml・CWnd::m_hInstance・CWnd::m_hwndParent・m_hwndTab・m_hwndToolTip・m_pShareData・m_pszClassName・CWnd::m_szClassInheritances・NULL.

CTabWnd::~CTabWnd ( ) [virtual]

CTabWnd.cpp の 672 行で定義されています。

関数

void CTabWnd::AdjustWindowPlacement ( void ) [protected]

編集ウィンドウの位置合わせ

CTabWnd.cpp の 1716 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetTopEditNode()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・EditNode::m_hWnd・CWnd::m_hwndParent・m_pShareData・EditNode::m_showCmdRestore・NULL.

参照元 TabWindowNotify().

virtual void CTabWnd::AfterCreateWindow ( void ) [inline, protected, virtual]

ウィンドウ作成後の処理

CWndを再定義しています。

CTabWnd.h の 106 行で定義されています。

void CTabWnd::BreakDrag ( void ) [inline, protected]

ドラッグ状態解除処理

CTabWnd.h の 135 行で定義されています。

参照元 OnTabLButtonUp()・OnTabMButtonDown()・OnTabRButtonDown()・TabWindowNotify().

void CTabWnd::Close ( void )

ウィンドウ クローズ

CTabWnd.cpp の 828 行で定義されています。

参照先 gm_pOldWndProc・GWLP_USERDATA・GWLP_WNDPROC・LONG_PTR・CWnd::m_hWnd・m_hwndTab・m_hwndToolTip・NULL・SetWindowLongPtr.

参照元 CEditWnd::LayoutTabBar().

HFONT CTabWnd::CreateMenuFont ( void ) [inline, protected]

CTabWnd.h の 170 行で定義されています。

参照元 OnDrawItem()・OnMeasureItem().

void CTabWnd::DrawBtnBkgnd | ( | HDC | hdc,
 |  | const LPRECT | lprcBtn,
 |  | BOOL | bBtnHilighted
 | ) | [protected]

ボタン背景描画処理

CTabWnd.cpp の 2119 行で定義されています。

参照元 DrawCloseBtn()・DrawListBtn().

void CTabWnd::DrawCloseBtn | ( | HDC | hdc,
 |  | const LPRECT | lprcClient
 | ) | [protected]

閉じるボタン描画処理

CTabWnd.cpp の 2172 行で定義されています。

参照先 DrawBtnBkgnd()・GetCloseBtnRect()・m_bCloseBtnHilighted・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・Common::m_bTab_CloseOneWin・DLLSHAREDATA::m_Common・m_pShareData・NULL.

参照元 OnPaint().

void CTabWnd::DrawListBtn | ( | HDC | hdc,
 |  | const LPRECT | lprcClient
 | ) | [protected]

一覧ボタン描画処理

CTabWnd.cpp の 2141 行で定義されています。

参照先 DrawBtnBkgnd()・GetListBtnRect()・m_bListBtnHilighted.

参照元 OnPaint().

LRESULT CTabWnd::ExecTabCommand | ( | int | nId,
 |  | POINTS | pts
 | ) | [protected]

タブ部 コマンド実行処理

CTabWnd.cpp の 614 行で定義されています。

参照先 m_hwndTab・NULL・ShowHideWindow()・TRUE.

参照元 OnTabMButtonUp()・OnTabRButtonUp().

int CTabWnd::FindTabIndexByHWND ( HWND hWnd ) [protected]

指定のウインドウハンドル情報を持つタブ位置を探す

CTabWnd.cpp の 1552 行で定義されています。

参照先 m_hwndTab・NULL.

参照元 MoveLeft()・MoveRight()・OnTabLButtonUp()・TabWindowNotify().

void CTabWnd::ForceActiveWindow ( HWND hwnd ) [protected]

ウインドウを強制的に前面に持ってくる

CTabWnd.cpp の 1839 行で定義されています。

参照先 FALSE・NULL・SPI_GETFOREGROUNDLOCKTIMEOUT・SPI_SETFOREGROUNDLOCKTIMEOUT・TRUE.

参照元 TabWindowNotify().

void CTabWnd::GetCloseBtnRect | ( | const LPRECT | lprcClient,
 |  | LPRECT | lprc
 | ) | [protected]

閉じるボタンの矩形取得処理

CTabWnd.cpp の 2265 行で定義されています。

参照先 rcBtnBase・TAB_MARGIN_RIGHT・TAB_MARGIN_TOP.

参照元 DrawCloseBtn()・OnLButtonDown()・OnLButtonUp()・OnMouseMove().

int CTabWnd::GetImageIndex ( EditNode * pNode ) [protected]

イメージリストのインデックス取得処理

CTabWnd.cpp の 2020 行で定義されています。

参照先 _MAX_EXT・HIMAGELIST()・ImageList_Duplicate()・Common::m_bDispTabIcon・EditNode::m_bIsGrep・DLLSHAREDATA::m_Common・m_hIconApp・m_hIconGrep・m_hIml・m_iIconApp・m_iIconGrep・m_pShareData・EditNode::m_szFilePath・NULL.

参照元 TabWindowNotify().

void CTabWnd::GetListBtnRect | ( | const LPRECT | lprcClient,
 |  | LPRECT | lprc
 | ) | [protected]

一覧ボタンの矩形取得処理

CTabWnd.cpp の 2256 行で定義されています。

参照先 rcBtnBase・TAB_MARGIN_RIGHT・TAB_MARGIN_TOP.

参照元 DrawListBtn()・OnLButtonDown()・OnMouseMove()・OnRButtonDown().

HWND CTabWnd::GetNextGroupWnd ( void ) [protected]

次のグループの先頭ウィンドウを探す

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2494 行で定義されています。

参照先 FALSE・CShareData::getInstance()・CShareData::GetOpenedWindowArr()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・CWnd::m_hWnd・CWnd::m_hwndParent・m_pShareData・NULL・TRUE.

参照元 JoinNext()・NextGroup().

HWND CTabWnd::GetPrevGroupWnd ( void ) [protected]

前のグループの先頭ウィンドウを探す

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2544 行で定義されています。

参照先 FALSE・CShareData::getInstance()・CShareData::GetOpenedWindowArr()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・CWnd::m_hWnd・CWnd::m_hwndParent・m_pShareData・NULL・TRUE.

参照元 JoinPrev()・PrevGroup().

void CTabWnd::GetTabName | ( | EditNode * | pEditNode,
 |  | BOOL | bFull,
 |  | BOOL | bDupamp,
 |  | LPTSTR | pszName,
 |  | int | nLen
 | ) | [protected]

タブ名取得処理

引数:
[in] | EditNode | 編集ウィンドウ情報
[in] | bFull | パス名で表示する
[in] | bDupamp | &を&&に置き換える
[out] | pszName | タブ名格納先
[in] | nLen | 格納先最大文字数（終端のnull文字含む）
日付:
2007.06.28 ryoji 新規作成

CTabWnd.cpp の 2282 行で定義されています。

参照先 dupamp()・CShareData::getInstance()・CShareData::GetTransformFileNameFast()・EditNode::m_szFilePath・EditNode::m_szTabCaption・NULL.

参照元 OnTabNotify()・TabWindowNotify().

void CTabWnd::HideOtherWindows ( HWND hwndExclude ) [protected]

他の編集ウィンドウを隠す

CTabWnd.cpp の 1816 行で定義されています。

参照先 CShareData::getInstance()・CShareData::IsEditWnd()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・EditNode::m_hWnd・DLLSHAREDATA::m_nEditArrNum・DLLSHAREDATA::m_pEditArr・m_pShareData.

参照元 TabWindowNotify().

CTabWnd::HIMAGELIST ( WINAPI * m_RealImageList_Duplicate ) [protected]

参照元 GetImageIndex()・ImageList_Duplicate()・InitImageList()・LayoutTab().

HIMAGELIST CTabWnd::ImageList_Duplicate ( HIMAGELIST himl ) [protected]

イメージリストの複製処理

CTabWnd.cpp の 2075 行で定義されています。

参照先 CX_SMICON・CY_SMICON・HIMAGELIST()・NULL.

参照元 GetImageIndex()・InitImageList().

HIMAGELIST CTabWnd::InitImageList ( void ) [protected]

イメージリストの初期化処理

CTabWnd.cpp の 1967 行で定義されています。

参照先 FN_APP_ICON・FN_GREP_ICON・GetAppIcon()・HIMAGELIST()・ICON_DEFAULT_APP・ICON_DEFAULT_GREP・ImageList_Duplicate()・Common::m_bDispTabIcon・DLLSHAREDATA::m_Common・m_hIconApp・m_hIconGrep・m_hIml・CWnd::m_hInstance・m_iIconApp・m_iIconGrep・m_pShareData・NULL.

参照元 LayoutTab()・Open().

void CTabWnd::JoinNext ( void )

次のグループに移動する（現在のグループから分離、結合）

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2699 行で定義されています。

参照先 GetNextGroupWnd()・CWnd::m_hwndParent・SeparateGroup().

参照元 CEditView::Command_TAB_JOINTNEXT().

void CTabWnd::JoinPrev ( void )

前のグループに移動する（現在のグループから分離、結合）

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2714 行で定義されています。

参照先 GetPrevGroupWnd()・CWnd::m_hwndParent・SeparateGroup().

参照元 CEditView::Command_TAB_JOINTPREV().

void CTabWnd::LayoutTab ( void ) [protected]

タブのレイアウト調整処理

CTabWnd.cpp の 1914 行で定義されています。

参照先 GetWindowLongPtr・HIMAGELIST()・InitImageList()・Common::m_bDispTabIcon・Common::m_bSameTabWidth・DLLSHAREDATA::m_Common・m_pShareData・MAX_TABITEM_WIDTH・MIN_TABITEM_WIDTH・NULL・Refresh()・SetWindowLongPtr・TAB_ITEM_HEIGHT・TRUE.

参照元 OnSize()・TabWindowNotify().

void CTabWnd::MoveLeft ( void )

タブを左に移動する

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2636 行で定義されています。

参照先 FindTabIndexByHWND()・Common::m_bDispTabWnd・DLLSHAREDATA::m_Common・CWnd::m_hwndParent・m_pShareData・ReorderTab().

参照元 CEditView::Command_TAB_MOVELEFT().

void CTabWnd::MoveRight ( void )

タブを右に移動する

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2617 行で定義されています。

参照先 FindTabIndexByHWND()・Common::m_bDispTabWnd・DLLSHAREDATA::m_Common・CWnd::m_hwndParent・m_pShareData・ReorderTab().

参照元 CEditView::Command_TAB_MOVERIGHT().

void CTabWnd::NextGroup ( void )

次のグループをアクティブにする

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2593 行で定義されています。

参照先 ActivateFrameWindow()・GetNextGroupWnd().

参照元 CEditView::Command_NEXTGROUP().

LRESULT CTabWnd::OnCaptureChanged | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_CAPTURECHANGED 処理

CTabWnd.cpp の 915 行で定義されています。

参照先 CAPT_NONE・m_eCaptureSrc.

LRESULT CTabWnd::OnDestroy | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_DSESTROY処理

CTabWnd.cpp の 872 行で定義されています。

参照先 m_hFont・m_hIml・CWnd::m_hWnd・m_hwndTab・NULL.

LRESULT CTabWnd::OnDrawItem | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_DRAWITEM処理

CTabWnd.cpp の 1068 行で定義されています。

参照先 CreateMenuFont()・CX_SMICON・CY_SMICON・TABMENU_DATA::iImage・m_hIml・NULL・TABMENU_DATA::szText.

LRESULT CTabWnd::OnLButtonDblClk | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_LBUTTONDBLCLK処理

CTabWnd.cpp の 905 行で定義されています。

参照先 F_FILENEW・CWnd::m_hwndParent・NULL.

LRESULT CTabWnd::OnLButtonDown | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_LBUTTONDOWN処理

CTabWnd.cpp の 928 行で定義されています。

参照先 CAPT_CLOSE・FALSE・GetCloseBtnRect()・GetListBtnRect()・m_eCaptureSrc・CWnd::m_hWnd・TabListMenu().

LRESULT CTabWnd::OnLButtonUp | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_LBUTTONUP処理

CTabWnd.cpp の 964 行で定義されています。

参照先 CAPT_CLOSE・CAPT_NONE・F_EXITALLEDITORS・F_GROUPCLOSE・F_WINCLOSE・GetCloseBtnRect()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・Common::m_bTab_CloseOneWin・DLLSHAREDATA::m_Common・m_eCaptureSrc・CWnd::m_hWnd・CWnd::m_hwndParent・m_pShareData・NULL.

LRESULT CTabWnd::OnMeasureItem | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_MEASUREITEM処理

CTabWnd.cpp の 1040 行で定義されています。

参照先 CreateMenuFont()・CX_SMICON・TABMENU_DATA::szText.

LRESULT CTabWnd::OnMouseMove | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_MOUSEMOVE処理

CTabWnd.cpp の 1141 行で定義されています。

参照先 BOOL・F_EXITALLEDITORS・F_GROUPCLOSE・FALSE・GetCloseBtnRect()・GetListBtnRect()・m_bCloseBtnHilighted・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・m_bHovering・m_bListBtnHilighted・Common::m_bTab_CloseOneWin・DLLSHAREDATA::m_Common・CWnd::m_hInstance・CWnd::m_hWnd・m_hwndToolTip・m_pShareData・m_szTextTip1・NULL.

LRESULT CTabWnd::OnNotify | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_NOTIFY処理

CTabWnd.cpp の 1332 行で定義されています。

LRESULT CTabWnd::OnPaint | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_PAINT処理

CTabWnd.cpp の 1259 行で定義されています。

参照先 DrawCloseBtn()・DrawListBtn()・m_bVisualStyle・CWnd::m_hWnd・m_hwndTab・NULL・TAB_MARGIN_LEFT・TAB_MARGIN_TOP.

LRESULT CTabWnd::OnRButtonDown | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_RBUTTONDOWN処理

CTabWnd.cpp の 1014 行で定義されています。

参照先 FALSE・GetListBtnRect()・CWnd::m_hWnd・TabListMenu()・TRUE.

LRESULT CTabWnd::OnSize | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_SIZE処理

CTabWnd.cpp の 854 行で定義されています。

参照先 FALSE・LayoutTab()・CWnd::m_hWnd・m_hwndTab・NULL・TAB_MARGIN_LEFT・TAB_MARGIN_RIGHT・TAB_MARGIN_TOP・TAB_WINDOW_HEIGHT・TRUE.

LRESULT CTabWnd::OnTabCaptureChanged | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_CAPTURECHANGED 処理

CTabWnd.cpp の 316 行で定義されています。

参照先 DRAG_NONE・m_eDragState.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabLButtonDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_LBUTTONDOWN 処理

CTabWnd.cpp の 166 行で定義されています。

参照先 DRAG_CHECK・m_eDragState・m_hwndTab・m_nSrcTab・m_ptSrcCursor.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabLButtonUp | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_LBUTTONUP 処理

CTabWnd.cpp の 188 行で定義されています。

参照先 BreakDrag()・DRAG_CHECK・DRAG_DRAG・FindTabIndexByHWND()・GA_ROOT・CShareData::getInstance()・CShareData::IsEditWnd()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・m_eDragState・CWnd::m_hwndParent・m_hwndTab・m_nSrcTab・m_pShareData・m_ptSrcCursor・MyGetAncestor()・NULL・ReorderTab()・SeparateGroup()・ShowHideWindow()・TRUE.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabMButtonDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_MBUTTONDOWN 処理

CTabWnd.cpp の 342 行で定義されています。

参照先 BreakDrag().

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabMButtonUp | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_MBUTTONUP 処理

CTabWnd.cpp の 352 行で定義されています。

参照先 ExecTabCommand()・F_WINCLOSE.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabMouseMove | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_MOUSEMOVE 処理

CTabWnd.cpp の 255 行で定義されています。

参照先 DRAG_CHECK・DRAG_DRAG・GA_ROOT・CShareData::getInstance()・IDC_CURSOR_TAB_JOIN・IDC_CURSOR_TAB_LEFT・IDC_CURSOR_TAB_RIGHT・IDC_CURSOR_TAB_SEPARATE・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・m_eDragState・CWnd::m_hwndParent・m_hwndTab・m_nSrcTab・m_pShareData・MyGetAncestor()・NULL.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_NOTIFY 処理

CTabWnd.cpp の 363 行で定義されています。

参照先 FALSE・CShareData::GetEditNode()・CShareData::getInstance()・GetTabName()・m_hwndTab・m_hwndToolTip・m_szTextTip1・m_szTextTip2・NULL・TRUE.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabRButtonDown | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_RBUTTONDOWN 処理

CTabWnd.cpp の 325 行で定義されています。

参照先 BreakDrag().

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTabRButtonUp | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) | [protected]

タブ部 WM_RBUTTONUP 処理

CTabWnd.cpp の 333 行で定義されています。

参照先 CUSTMENU_INDEX_FOR_TABWND・ExecTabCommand()・F_CUSTMENU_BASE.

参照元 TabWndDispatchEvent().

LRESULT CTabWnd::OnTimer | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

WM_TIMER処理

CTabWnd.cpp の 1233 行で定義されています。

HWND CTabWnd::Open | ( | HINSTANCE | ,
 |  | HWND |
 | ) |

ウィンドウ オープン

CTabWnd.cpp の 678 行で定義されています。

参照先 CAPT_NONE・CWnd::Create()・DRAG_NONE・FALSE・GetWindowLongPtr・gm_pOldWndProc・GWLP_USERDATA・GWLP_WNDPROC・InitImageList()・IsVisualStyle()・LONG_PTR・m_bCloseBtnHilighted・m_bHovering・m_bListBtnHilighted・m_bVisualStyle・m_eCaptureSrc・m_eDragState・m_hFont・CWnd::m_hInstance・CWnd::m_hWnd・CWnd::m_hwndParent・m_hwndTab・m_hwndToolTip・m_pszClassName・MAX_TABITEM_WIDTH・NULL・Refresh()・CWnd::RegisterWC()・SetWindowLongPtr・TAB_ITEM_HEIGHT・TAB_MARGIN_LEFT・TAB_MARGIN_TOP・TAB_WINDOW_HEIGHT・TabWndProc()・TRUE.

参照元 CEditWnd::LayoutTabBar().

void CTabWnd::PrevGroup ( void )

前のグループをアクティブにする

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2605 行で定義されています。

参照先 ActivateFrameWindow()・GetPrevGroupWnd().

参照元 CEditView::Command_PREVGROUP().

void CTabWnd::Refresh | ( | BOOL | bEnsureVisible = TRUE,
 |  | BOOL | bRebuild = FALSE
 | ) |

タブリストを再表示する

日付:
2004.06.19 genta &が含まれているファイル名が正しく表示されない

2006.02.06 ryoji 選択タブを指定するHWND引数およびその処理は不要なので削除（自ウィンドウを常時選択）

2006.06.24 ryoji スクロールしないで更新する方法を変更

CTabWnd.cpp の 1579 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetOpenedWindowArr()・CWnd::m_hWnd・CWnd::m_hwndParent・m_hwndTab・NULL・TRUE.

参照元 LayoutTab()・Open()・TabWindowNotify().

BOOL CTabWnd::ReorderTab | ( | int | nSrcTab,
 |  | int | nDstTab
 | ) | [protected]

タブ順序変更処理

タブ順序変更処理

CTabWnd.cpp の 432 行で定義されています。

参照先 FALSE・CShareData::getInstance()・m_hwndTab・CShareData::ReorderTab().

参照元 MoveLeft()・MoveRight()・OnTabLButtonUp().

void CTabWnd::Separate ( void )

新規グループを作成する（現在のグループから分離）

日付:
2007.06.20 ryoji 新規作成

CTabWnd.cpp の 2654 行で定義されています。

参照先 GetMonitorWorkRect()・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_Common・CWnd::m_hwndParent・m_pShareData・NULL・SeparateGroup().

参照元 CEditView::Command_TAB_SEPARATE().

BOOL CTabWnd::SeparateGroup | ( | HWND | hwndSrc,
 |  | HWND | hwndDst,
 |  | POINT | ptDrag,
 |  | POINT | ptDrop
 | ) | [protected]

タブ分離処理

CTabWnd.cpp の 468 行で定義されています。

参照先 FALSE・CShareData::GetEditNode()・CShareData::GetEditNodeAt()・CShareData::getInstance()・GetMonitorWorkRect()・CShareData::GetTopEditWnd()・GetWindowLongPtr・EditNode::m_hWnd・CWnd::m_hwndParent・EditNode::m_nGroup・MYWM_TAB_WINDOW_NOTIFY・NULL・CShareData::SeparateGroup()・TRUE・TWNT_WNDPL_ADJUST.

参照元 JoinNext()・JoinPrev()・OnTabLButtonUp()・Separate().

void CTabWnd::ShowHideWindow | ( | HWND | hwnd,
 |  | BOOL | bDisp
 | ) | [protected]

CTabWnd.cpp の 1776 行で定義されています。

参照先 FALSE・Common::m_bDispTabWnd・Common::m_bDispTabWndMultiWin・DLLSHAREDATA::m_bEditWndChanging・DLLSHAREDATA::m_Common・m_pShareData・MYWM_TAB_WINDOW_NOTIFY・NULL・TabWnd_ActivateFrameWindow()・TRUE・TWNT_WNDPL_ADJUST.

参照元 ExecTabCommand()・OnTabLButtonUp()・TabWindowNotify().

LRESULT CTabWnd::TabListMenu | ( | POINT | pt,
 |  | BOOL | bSel = TRUE,
 |  | BOOL | bFull = FALSE,
 |  | BOOL | bOtherGroup = TRUE
 | ) |

タブ一覧メニュー作成処理

CTabWnd.cpp の 2337 行で定義されています。

参照先 CShareData::getInstance()・CShareData::GetOpenedWindowArr()・Common::m_bTab_ListFull・DLLSHAREDATA::m_Common・CWnd::m_hWnd・CWnd::m_hwndParent・m_pShareData・TRUE.

参照元 OnLButtonDown()・OnRButtonDown()・CEditWnd::PopupWinList().

void CTabWnd::TabWindowNotify | ( | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CTabWnd.cpp の 1338 行で定義されています。

参照先 AdjustWindowPlacement()・BOOL・BreakDrag()・FALSE・FindTabIndexByHWND()・ForceActiveWindow()・CShareData::GetEditNode()・GetImageIndex()・CShareData::getInstance()・GetTabName()・HideOtherWindows()・LayoutTab()・CWnd::m_hWnd・CWnd::m_hwndParent・m_hwndTab・NULL・Refresh()・ShowHideWindow()・TabWnd_ActivateFrameWindow()・TRUE・TWNT_ADD・TWNT_DEL・TWNT_FILE・TWNT_MODE_DISABLE・TWNT_MODE_ENABLE・TWNT_ORDER・TWNT_WNDPL_ADJUST.

void CTabWnd::TabWnd_ActivateFrameWindow | ( | HWND | hwnd,
 |  | bool | bForeground = true
 | ) | [protected]

アクティブにする

引数:
hwnd | [in] 対象ウィンドウのウィンドウハンドル
bForeground | [in] true: active and forground / false: active
日付:
2004.08.27 Kazika 引数bForeground追加。bForegroundがfalseの場合はウィンドウをフォアグラウンドにしない。

2005.11.05 ryoji Grepダイアログがフォーカスを失わないようにするため， 対象ウィンドウのプロセスが既にフォアグラウンドなら何もしないようにする．

CTabWnd.cpp の 1871 行で定義されています。

参照元 ShowHideWindow()・TabWindowNotify().

LRESULT CTabWnd::TabWndDispatchEvent | ( | HWND | hwnd,
 |  | UINT | uMsg,
 |  | WPARAM | wParam,
 |  | LPARAM | lParam
 | ) |

CTabWnd.cpp の 119 行で定義されています。

参照先 IsVisualStyle()・m_bVisualStyle・CWnd::m_hWnd・NULL・OnTabCaptureChanged()・OnTabLButtonDown()・OnTabLButtonUp()・OnTabMButtonDown()・OnTabMButtonUp()・OnTabMouseMove()・OnTabNotify()・OnTabRButtonDown()・OnTabRButtonUp()・TRUE・WM_THEMECHANGED.

参照元 TabWndProc().

変数

BOOL CTabWnd::m_bCloseBtnHilighted [protected]

閉じるボタンハイライト状態 // 2006.10.21 ryoji

CTabWnd.h の 167 行で定義されています。

参照元 DrawCloseBtn()・OnMouseMove()・Open().

BOOL CTabWnd::m_bHovering [protected]

CTabWnd.h の 165 行で定義されています。

参照元 OnMouseMove()・Open().

BOOL CTabWnd::m_bListBtnHilighted [protected]

CTabWnd.h の 166 行で定義されています。

参照元 DrawListBtn()・OnMouseMove()・Open().

BOOL CTabWnd::m_bVisualStyle [protected]

ビジュアルスタイルかどうか // 2007.04.01 ryoji

CTabWnd.h の 164 行で定義されています。

参照元 OnPaint()・Open()・TabWndDispatchEvent().

CaptureSrc CTabWnd::m_eCaptureSrc [protected]

キャプチャー元

CTabWnd.h の 169 行で定義されています。

参照元 OnCaptureChanged()・OnLButtonDown()・OnLButtonUp()・Open().

DragState CTabWnd::m_eDragState [protected]

ドラッグ状態

CTabWnd.h の 143 行で定義されています。

参照元 OnTabCaptureChanged()・OnTabLButtonDown()・OnTabLButtonUp()・OnTabMouseMove()・Open().

HFONT CTabWnd::m_hFont

表示用フォント

CTabWnd.h の 79 行で定義されています。

参照元 CTabWnd()・OnDestroy()・Open().

HICON CTabWnd::m_hIconApp [protected]

アプリケーションアイコン

CTabWnd.h の 150 行で定義されています。

参照元 GetImageIndex()・InitImageList().

HICON CTabWnd::m_hIconGrep [protected]

Grepアイコン

CTabWnd.h の 151 行で定義されています。

参照元 GetImageIndex()・InitImageList().

HIMAGELIST CTabWnd::m_hIml [protected]

イメージリスト

CTabWnd.h の 149 行で定義されています。

参照元 CTabWnd()・GetImageIndex()・InitImageList()・OnDestroy()・OnDrawItem().

HWND CTabWnd::m_hwndTab

タブコントロール

CTabWnd.h の 80 行で定義されています。

参照元 Close()・CTabWnd()・ExecTabCommand()・FindTabIndexByHWND()・OnDestroy()・CEditWnd::OnMouseWheel()・OnPaint()・OnSize()・OnTabLButtonDown()・OnTabLButtonUp()・OnTabMouseMove()・OnTabNotify()・Open()・Refresh()・ReorderTab()・TabWindowNotify().

HWND CTabWnd::m_hwndToolTip

ツールチップ

CTabWnd.h の 81 行で定義されています。

参照元 Close()・CTabWnd()・OnMouseMove()・OnTabNotify()・Open().

int CTabWnd::m_iIconApp [protected]

アプリケーションアイコンのインデックス

CTabWnd.h の 152 行で定義されています。

参照元 GetImageIndex()・InitImageList().

int CTabWnd::m_iIconGrep [protected]

Grepアイコンのインデックス

CTabWnd.h の 153 行で定義されています。

参照元 GetImageIndex()・InitImageList().

int CTabWnd::m_nSrcTab [protected]

移動元タブ

CTabWnd.h の 144 行で定義されています。

参照元 OnTabLButtonDown()・OnTabLButtonUp()・OnTabMouseMove().

DLLSHAREDATA* CTabWnd::m_pShareData

共有データ

CTabWnd.h の 78 行で定義されています。

参照元 AdjustWindowPlacement()・CTabWnd()・DrawCloseBtn()・GetImageIndex()・GetNextGroupWnd()・GetPrevGroupWnd()・HideOtherWindows()・InitImageList()・LayoutTab()・MoveLeft()・MoveRight()・OnLButtonUp()・OnMouseMove()・OnTabLButtonUp()・OnTabMouseMove()・Separate()・ShowHideWindow()・TabListMenu().

LPCTSTR CTabWnd::m_pszClassName

クラス名

CTabWnd.h の 77 行で定義されています。

参照元 CTabWnd()・Open().

POINT CTabWnd::m_ptSrcCursor [protected]

ドラッグ開始カーソル位置

CTabWnd.h の 145 行で定義されています。

参照元 OnTabLButtonDown()・OnTabLButtonUp().

TCHAR CTabWnd::m_szTextTip1[1024]

CTabWnd.h の 82 行で定義されています。

参照元 OnMouseMove()・OnTabNotify().

wchar_t CTabWnd::m_szTextTip2[1024]

UNICODE文字列でのツールチップ

CTabWnd.h の 88 行で定義されています。

参照元 OnTabNotify().

このクラスの説明は次のファイルから生成されました:
  • CTabWnd.h
  • CTabWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTabWnd メンバ一覧

これは全メンバの一覧です。CTabWnd継承メンバも含んでいます。

AdjustWindowPlacement(void) | CTabWnd | [protected]
AfterCreateWindow(void) | CTabWnd | [inline, protected, virtual]
BreakDrag(void) | CTabWnd | [inline, protected]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
CAPT_CLOSE Enum 値 | CTabWnd | [protected]
CAPT_NONE Enum 値 | CTabWnd | [protected]
CaptureSrc Enum | CTabWnd | [protected]
Close(void) | CTabWnd |
Create(DWORD, LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HMENU) | CWnd |
CreateMenuFont(void) | CTabWnd | [inline, protected]
CTabWnd() | CTabWnd |
CWnd() | CWnd |
DECLH(OnCreate) | CWnd | [protected, virtual]
DECLH(OnCommand) | CWnd | [protected, virtual]
DECLH(OnPaint) | CWnd | [protected, virtual]
DECLH(OnLButtonDown) | CWnd | [protected, virtual]
DECLH(OnLButtonUp) | CWnd | [protected, virtual]
DECLH(OnLButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnRButtonDown) | CWnd | [protected, virtual]
DECLH(OnRButtonUp) | CWnd | [protected, virtual]
DECLH(OnRButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMButtonDown) | CWnd | [protected, virtual]
DECLH(OnMButtonUp) | CWnd | [protected, virtual]
DECLH(OnMButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMouseMove) | CWnd | [protected, virtual]
DECLH(OnMouseWheel) | CWnd | [protected, virtual]
DECLH(OnTimer) | CWnd | [protected, virtual]
DECLH(OnSize) | CWnd | [protected, virtual]
DECLH(OnMove) | CWnd | [protected, virtual]
DECLH(OnClose) | CWnd | [protected, virtual]
DECLH(OnDestroy) | CWnd | [protected, virtual]
DECLH(OnQueryEndSession) | CWnd | [protected, virtual]
DECLH(OnMeasureItem) | CWnd | [protected, virtual]
DECLH(OnMenuChar) | CWnd | [protected, virtual]
DECLH(OnNotify) | CWnd | [protected, virtual]
DECLH(OnDrawItem) | CWnd | [protected, virtual]
DECLH(OnCaptureChanged) | CWnd | [protected, virtual]
DECLH(OnMDIActivate) | CWnd | [protected, virtual]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
DRAG_CHECK Enum 値 | CTabWnd | [protected]
DRAG_DRAG Enum 値 | CTabWnd | [protected]
DRAG_NONE Enum 値 | CTabWnd | [protected]
DragState Enum | CTabWnd | [protected]
DrawBtnBkgnd(HDC hdc, const LPRECT lprcBtn, BOOL bBtnHilighted) | CTabWnd | [protected]
DrawCloseBtn(HDC hdc, const LPRECT lprcClient) | CTabWnd | [protected]
DrawListBtn(HDC hdc, const LPRECT lprcClient) | CTabWnd | [protected]
ExecTabCommand(int nId, POINTS pts) | CTabWnd | [protected]
FindTabIndexByHWND(HWND hWnd) | CTabWnd | [protected]
ForceActiveWindow(HWND hwnd) | CTabWnd | [protected]
GetCloseBtnRect(const LPRECT lprcClient, LPRECT lprc) | CTabWnd | [protected]
GetImageIndex(EditNode *pNode) | CTabWnd | [protected]
GetListBtnRect(const LPRECT lprcClient, LPRECT lprc) | CTabWnd | [protected]
GetNextGroupWnd(void) | CTabWnd | [protected]
GetPrevGroupWnd(void) | CTabWnd | [protected]
GetTabName(EditNode *pEditNode, BOOL bFull, BOOL bDupamp, LPTSTR pszName, int nLen) | CTabWnd | [protected]
HideOtherWindows(HWND hwndExclude) | CTabWnd | [protected]
HIMAGELIST(WINAPI *m_RealImageList_Duplicate)(HIMAGELIST himl) | CTabWnd | [protected]
ImageList_Duplicate(HIMAGELIST himl) | CTabWnd | [protected]
Init(HINSTANCE, HWND) | CWnd |
InitImageList(void) | CTabWnd | [protected]
JoinNext(void) | CTabWnd |
JoinPrev(void) | CTabWnd |
LayoutTab(void) | CTabWnd | [protected]
m_bCloseBtnHilighted | CTabWnd | [protected]
m_bHovering | CTabWnd | [protected]
m_bListBtnHilighted | CTabWnd | [protected]
m_bVisualStyle | CTabWnd | [protected]
m_eCaptureSrc | CTabWnd | [protected]
m_eDragState | CTabWnd | [protected]
m_hFont | CTabWnd |
m_hIconApp | CTabWnd | [protected]
m_hIconGrep | CTabWnd | [protected]
m_hIml | CTabWnd | [protected]
m_hInstance | CWnd | [protected]
m_hWnd | CWnd |
m_hwndParent | CWnd | [protected]
m_hwndTab | CTabWnd |
m_hwndToolTip | CTabWnd |
m_iIconApp | CTabWnd | [protected]
m_iIconGrep | CTabWnd | [protected]
m_nSrcTab | CTabWnd | [protected]
m_pShareData | CTabWnd |
m_pszClassName | CTabWnd |
m_ptSrcCursor | CTabWnd | [protected]
m_szClassInheritances | CWnd | [protected]
m_szTextTip1 | CTabWnd |
m_szTextTip2 | CTabWnd |
MoveLeft(void) | CTabWnd |
MoveRight(void) | CTabWnd |
NextGroup(void) | CTabWnd |
OnCaptureChanged(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnDestroy(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnDrawItem(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnLButtonDblClk(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnLButtonDown(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnLButtonUp(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnMeasureItem(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnMouseMove(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
OnNotify(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnPaint(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnRButtonDown(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnSize(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
OnTabCaptureChanged(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabLButtonDown(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabLButtonUp(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabMButtonDown(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabMButtonUp(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabMouseMove(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabNotify(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabRButtonDown(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTabRButtonUp(WPARAM wParam, LPARAM lParam) | CTabWnd | [protected]
OnTimer(HWND, UINT, WPARAM, LPARAM) | CTabWnd | [protected, virtual]
Open(HINSTANCE, HWND) | CTabWnd |
PrevGroup(void) | CTabWnd |
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
Refresh(BOOL bEnsureVisible=TRUE, BOOL bRebuild=FALSE) | CTabWnd |
RegisterWC(HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR) | CWnd |
ReorderTab(int nSrcTab, int nDstTab) | CTabWnd | [protected]
Separate(void) | CTabWnd |
SeparateGroup(HWND hwndSrc, HWND hwndDst, POINT ptDrag, POINT ptDrop) | CTabWnd | [protected]
ShowHideWindow(HWND hwnd, BOOL bDisp) | CTabWnd | [protected]
TabListMenu(POINT pt, BOOL bSel=TRUE, BOOL bFull=FALSE, BOOL bOtherGroup=TRUE) | CTabWnd |
TabWindowNotify(WPARAM wParam, LPARAM lParam) | CTabWnd |
TabWnd_ActivateFrameWindow(HWND hwnd, bool bForce=true) | CTabWnd | [protected]
TabWndDispatchEvent(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) | CTabWnd |
~CTabWnd() | CTabWnd | [virtual]
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Oct 27 02:36:12 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CTipWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CTipWnd

#include <CTipWnd.h>

CTipWndに対する継承グラフ

[凡例]
CTipWndのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CTipWnd ()
~CTipWnd ()
void | Create (HINSTANCE, HWND)
void | Show (int, int, char *, RECT *pRect=NULL)
void | Hide (void)
void | GetWindowSize (LPRECT pRect)
void | ChangeFont (LOGFONT *lf)

Public 変数

CMemory m_cKey
BOOL | m_KeyWasHit
int | m_nSearchLine
int | m_nSearchDict
CMemory m_cInfo

Protected メソッド

void | ComputeWindowSize (HDC, HFONT, const char *, RECT *)
void | DrawTipText (HDC, HFONT, const char *)
virtual void | AfterCreateWindow (void)
LRESULT | OnPaint (HWND, UINT, WPARAM, LPARAM)

Protected 変数

char * | m_pszClassName
HFONT | m_hFont

説明

CTipWnd.h の 27 行で定義されています。

コンストラクタとデストラクタ

CTipWnd::CTipWnd ( )

CTipWnd.cpp の 24 行で定義されています。

参照先 FALSE・m_KeyWasHit・m_pszClassName・CWnd::m_szClassInheritances.

CTipWnd::~CTipWnd ( )

CTipWnd.cpp の 35 行で定義されています。

参照先 m_hFont・NULL.

関数

void CTipWnd::AfterCreateWindow ( void ) [protected, virtual]

CreateWindowの後

CWnd::AfterCreateWindowでウィンドウを表示するようになっているのを 動かなくするための空関数

日付:
2006.01.09 genta 新規作成

CWndを再定義しています。

CTipWnd.cpp の 98 行で定義されています。

void CTipWnd::ChangeFont ( LOGFONT * lf ) [inline]

CTipWnd.h の 44 行で定義されています。

void CTipWnd::ComputeWindowSize | ( | HDC | ,
 |  | HFONT | ,
 |  | const char * | ,
 |  | RECT * |
 | ) | [protected]

CTipWnd.cpp の 136 行で定義されています。

参照先 CMemory::GetSizeOfChar().

参照元 GetWindowSize()・Show().

void CTipWnd::Create | ( | HINSTANCE | ,
 |  | HWND |
 | ) |

CTipWnd.cpp の 47 行で定義されています。

参照先 CWnd::Create()・CShareData::getInstance()・CShareData::GetShareData()・DLLSHAREDATA::m_Common・m_hFont・CWnd::m_hInstance・CWnd::m_hwndParent・Common::m_lf_kh・m_pszClassName・NULL・CWnd::RegisterWC().

void CTipWnd::DrawTipText | ( | HDC | ,
 |  | HFONT | ,
 |  | const char * |
 | ) | [protected]

CTipWnd.cpp の 207 行で定義されています。

参照先 CMemory::GetSizeOfChar().

参照元 OnPaint().

void CTipWnd::GetWindowSize ( LPRECT pRect )

CTipWnd.cpp の 317 行で定義されています。

参照先 ComputeWindowSize()・CMemory::GetPtr()・m_cInfo・m_hFont・CWnd::m_hWnd.

参照元 CEditView::ShowKeywordHelp().

void CTipWnd::Hide ( void )

CTipWnd.cpp の 284 行で定義されています。

参照先 CWnd::m_hWnd.

参照元 CEditView::OnKillFocus()・CEditView::OnMOUSEMOVE().

LRESULT CTipWnd::OnPaint | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected]

CTipWnd.cpp の 295 行で定義されています。

参照先 DrawTipText()・CMemory::GetPtr()・m_cInfo・m_hFont.

void CTipWnd::Show | ( | int | ,
 |  | int | ,
 |  | char * | ,
 |  | RECT * | pRect = NULL
 | ) |

CTipWnd.cpp の 103 行で定義されています。

参照先 ComputeWindowSize()・CMemory::GetPtr()・m_cInfo・m_hFont・CWnd::m_hWnd・NULL・CMemory::SetData()・TRUE.

参照元 CEditView::OnTimer()・CEditView::ShowKeywordHelp().

変数

CMemory CTipWnd::m_cInfo

CTipWnd.h の 61 行で定義されています。

参照元 CEditView::Command_MENU_RBUTTON()・GetWindowSize()・CEditView::KeySearchCore()・OnPaint()・Show().

CMemory CTipWnd::m_cKey

CTipWnd.h の 56 行で定義されています。

参照元 CEditView::ShowKeywordHelp().

HFONT CTipWnd::m_hFont [protected]

CTipWnd.h の 53 行で定義されています。

参照元 Create()・GetWindowSize()・OnPaint()・Show()・~CTipWnd().

BOOL CTipWnd::m_KeyWasHit

CTipWnd.h の 57 行で定義されています。

参照元 CTipWnd()・CEditView::ShowKeywordHelp().

int CTipWnd::m_nSearchDict

CTipWnd.h の 59 行で定義されています。

int CTipWnd::m_nSearchLine

CTipWnd.h の 58 行で定義されています。

char* CTipWnd::m_pszClassName [protected]

CTipWnd.h の 49 行で定義されています。

参照元 Create()・CTipWnd().

このクラスの説明は次のファイルから生成されました:
  • CTipWnd.h
  • CTipWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CTipWnd メンバ一覧

これは全メンバの一覧です。CTipWnd継承メンバも含んでいます。

AfterCreateWindow(void) | CTipWnd | [protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
ChangeFont(LOGFONT *lf) | CTipWnd | [inline]
ComputeWindowSize(HDC, HFONT, const char *, RECT *) | CTipWnd | [protected]
Create(HINSTANCE, HWND) | CTipWnd |
CWnd::Create(DWORD, LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HMENU) | CWnd |
CTipWnd() | CTipWnd |
CWnd() | CWnd |
DECLH(OnCreate) | CWnd | [protected, virtual]
DECLH(OnCommand) | CWnd | [protected, virtual]
DECLH(OnPaint) | CWnd | [protected, virtual]
DECLH(OnLButtonDown) | CWnd | [protected, virtual]
DECLH(OnLButtonUp) | CWnd | [protected, virtual]
DECLH(OnLButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnRButtonDown) | CWnd | [protected, virtual]
DECLH(OnRButtonUp) | CWnd | [protected, virtual]
DECLH(OnRButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMButtonDown) | CWnd | [protected, virtual]
DECLH(OnMButtonUp) | CWnd | [protected, virtual]
DECLH(OnMButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMouseMove) | CWnd | [protected, virtual]
DECLH(OnMouseWheel) | CWnd | [protected, virtual]
DECLH(OnTimer) | CWnd | [protected, virtual]
DECLH(OnSize) | CWnd | [protected, virtual]
DECLH(OnMove) | CWnd | [protected, virtual]
DECLH(OnClose) | CWnd | [protected, virtual]
DECLH(OnDestroy) | CWnd | [protected, virtual]
DECLH(OnQueryEndSession) | CWnd | [protected, virtual]
DECLH(OnMeasureItem) | CWnd | [protected, virtual]
DECLH(OnMenuChar) | CWnd | [protected, virtual]
DECLH(OnNotify) | CWnd | [protected, virtual]
DECLH(OnDrawItem) | CWnd | [protected, virtual]
DECLH(OnCaptureChanged) | CWnd | [protected, virtual]
DECLH(OnMDIActivate) | CWnd | [protected, virtual]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
DrawTipText(HDC, HFONT, const char *) | CTipWnd | [protected]
GetWindowSize(LPRECT pRect) | CTipWnd |
Hide(void) | CTipWnd |
Init(HINSTANCE, HWND) | CWnd |
m_cInfo | CTipWnd |
m_cKey | CTipWnd |
m_hFont | CTipWnd | [protected]
m_hInstance | CWnd | [protected]
m_hWnd | CWnd |
m_hwndParent | CWnd | [protected]
m_KeyWasHit | CTipWnd |
m_nSearchDict | CTipWnd |
m_nSearchLine | CTipWnd |
m_pszClassName | CTipWnd | [protected]
m_szClassInheritances | CWnd | [protected]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
OnPaint(HWND, UINT, WPARAM, LPARAM) | CTipWnd | [protected]
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
RegisterWC(HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR) | CWnd |
Show(int, int, char *, RECT *pRect=NULL) | CTipWnd |
~CTipWnd() | CTipWnd |
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Oct 27 02:36:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 ctrl_info_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ctrl_info_t

すべてのメンバ一覧

Public 変数

unsigned char | code
unsigned int | vKey
char | name [4]
char * | jname

説明

CDlgCtrlCode.cpp の 54 行で定義されています。

変数

unsigned char ctrl_info_t::code

CDlgCtrlCode.cpp の 55 行で定義されています。

参照元 CDlgCtrlCode::GetData()・CDlgCtrlCode::OnNotify().

char* ctrl_info_t::jname

CDlgCtrlCode.cpp の 58 行で定義されています。

参照元 CDlgCtrlCode::SetData().

char ctrl_info_t::name[4]

CDlgCtrlCode.cpp の 57 行で定義されています。

unsigned int ctrl_info_t::vKey

CDlgCtrlCode.cpp の 56 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CDlgCtrlCode.cpp
Sakura-Editorに対してSat Oct 27 02:36:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ctrl_info_t メンバ一覧

これは全メンバの一覧です。ctrl_info_t継承メンバも含んでいます。

code | ctrl_info_t
jname | ctrl_info_t
name | ctrl_info_t
vKey | ctrl_info_t

Sakura-Editorに対してSat Oct 27 02:36:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CUrlWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CUrlWnd

About Box管理 [詳細]

#include <CDlgAbout.h>

すべてのメンバ一覧

Public メソッド

CUrlWnd ()
virtual | ~CUrlWnd ()
BOOL | SubclassWindow (HWND hWnd)

Static Protected メソッド

static LRESULT CALLBACK | UrlWndProc (HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)

Protected 変数

HWND | m_hWnd
HFONT | m_hFont
BOOL | m_bHilighted
WNDPROC | m_pOldProc

説明

About Box管理

DispatchEventを独自に定義することで，CDialogでサポートされていない メッセージを捕捉する．

CDlgAbout.h の 27 行で定義されています。

コンストラクタとデストラクタ

CUrlWnd::CUrlWnd ( ) [inline]

CDlgAbout.h の 30 行で定義されています。

参照先 FALSE・m_bHilighted・m_hFont・m_hWnd・m_pOldProc・NULL.

virtual CUrlWnd::~CUrlWnd ( ) [inline, virtual]

CDlgAbout.h の 31 行で定義されています。

関数

BOOL CUrlWnd::SubclassWindow ( HWND hWnd )

CDlgAbout.cpp の 202 行で定義されています。

参照先 FALSE・GWLP_USERDATA・GWLP_WNDPROC・LONG_PTR・m_hFont・m_hWnd・m_pOldProc・NULL・SetWindowLongPtr・TRUE・UrlWndProc().

参照元 CDlgAbout::OnInitDialog().

LRESULT CALLBACK CUrlWnd::UrlWndProc | ( | HWND | hWnd,
 |  | UINT | msg,
 |  | WPARAM | wp,
 |  | LPARAM | lp
 | ) | [static, protected]

CDlgAbout.cpp の 235 行で定義されています。

参照先 BOOL・FALSE・GetWindowLongPtr・GWLP_USERDATA・GWLP_WNDPROC・IDC_CURSOR_HAND・LONG_PTR・m_bHilighted・m_hFont・m_hWnd・m_pOldProc・NULL・SetWindowLongPtr・TRUE.

参照元 SubclassWindow().

変数

BOOL CUrlWnd::m_bHilighted [protected]

CDlgAbout.h の 38 行で定義されています。

参照元 CUrlWnd()・UrlWndProc().

HFONT CUrlWnd::m_hFont [protected]

CDlgAbout.h の 37 行で定義されています。

参照元 CUrlWnd()・SubclassWindow()・UrlWndProc().

HWND CUrlWnd::m_hWnd [protected]

CDlgAbout.h の 36 行で定義されています。

参照元 CUrlWnd()・SubclassWindow()・UrlWndProc().

WNDPROC CUrlWnd::m_pOldProc [protected]

CDlgAbout.h の 39 行で定義されています。

参照元 CUrlWnd()・SubclassWindow()・UrlWndProc().

このクラスの説明は次のファイルから生成されました:
  • CDlgAbout.h
  • CDlgAbout.cpp
Sakura-Editorに対してSat Oct 27 02:36:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CUrlWnd メンバ一覧

これは全メンバの一覧です。CUrlWnd継承メンバも含んでいます。

CUrlWnd() | CUrlWnd | [inline]
m_bHilighted | CUrlWnd | [protected]
m_hFont | CUrlWnd | [protected]
m_hWnd | CUrlWnd | [protected]
m_pOldProc | CUrlWnd | [protected]
SubclassWindow(HWND hWnd) | CUrlWnd |
UrlWndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) | CUrlWnd | [protected, static]
~CUrlWnd() | CUrlWnd | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:36:18 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CUxTheme

  • 構成
  • クラス階層
  • 構成メンバ

クラス CUxTheme

UxTheme 動的ロード [詳細]

#include <CUxTheme.h>

CUxThemeに対する継承グラフ

[凡例]
CUxThemeのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

virtual | ~CUxTheme ()
BOOL | IsThemeActive (VOID)
HRESULT | SetWindowTheme (HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList)

Static Public メソッド

static CUxTheme & | getInstance (void)

Protected メソッド

CUxTheme ()
bool | Init (char *str=NULL)
virtual int | InitDll (void)
DLLの初期化
virtual LPCTSTR | GetDllName (LPCTSTR)
BOOL (WINAPI *m_pfnIsThemeActive)(VOID)
HRESULT (WINAPI *m_pfnSetWindowTheme)(HWND hwnd

Protected 変数

bool | m_bInitialized
LPCWSTR | pszSubAppName
LPCWSTR LPCWSTR | pszSubIdList

Static Protected 変数

static CUxTheme | m_cUxTheme

説明

UxTheme 動的ロード

UxTheme コンポーネントの動的ロードをサポートするクラス

CUxTheme.h の 43 行で定義されています。

コンストラクタとデストラクタ

CUxTheme::CUxTheme ( ) [protected]

CUxTheme.cpp の 38 行で定義されています。

CUxTheme::~CUxTheme ( ) [virtual]

CUxTheme.cpp の 43 行で定義されています。

関数

CUxTheme::BOOL ( WINAPI * m_pfnIsThemeActive ) [protected]

LPCTSTR CUxTheme::GetDllName ( LPCTSTR ) [protected, virtual]

UxTheme のファイル名を渡す

CDllHandlerを再定義しています。

CUxTheme.cpp の 68 行で定義されています。

static CUxTheme& CUxTheme::getInstance ( void ) [inline, static]

CUxTheme.h の 50 行で定義されています。

参照元 IsVisualStyle()・PreventVisualStyle().

CUxTheme::HRESULT ( WINAPI * m_pfnSetWindowTheme ) [protected]

bool CUxTheme::Init ( char * str = NULL ) [protected]

DLL のロード

一度しか LoadLibrary() 実行しないこと以外は CDllHandler::Init() と同じ （UxTheme 未対応 OS での LoadLibrary() 失敗の繰返しを防ぐ）

作者:
ryoji
日付:
2007.04.01 ryoji 新規

CUxTheme.cpp の 56 行で定義されています。

参照先 CDllHandler::Init()・CDllHandler::IsAvailable()・m_bInitialized.

参照元 IsThemeActive()・SetWindowTheme().

int CUxTheme::InitDll ( void ) [protected, virtual]

DLLの初期化

DLLのロードに成功した直後に呼び出される．エントリポイントの 確認などを行う．

戻り値:
0 | 正常終了
other | 異常終了．値の意味は自由に設定して良い．
覚え書き:
0以外の値を返した場合は、読み込んだDLLを解放する．

CDllHandlerを実装しています。

CUxTheme.cpp の 73 行で定義されています。

参照先 NULL・CDllHandler::RegisterEntries().

BOOL CUxTheme::IsThemeActive ( VOID )

IsThemeActive API Wrapper

CUxTheme.cpp の 89 行で定義されています。

参照先 FALSE・Init().

HRESULT CUxTheme::SetWindowTheme | ( | HWND | hwnd,
 |  | LPCWSTR | pszSubAppName,
 |  | LPCWSTR | pszSubIdList
 | ) |

SetWindowTheme API Wrapper

CUxTheme.cpp の 97 行で定義されています。

参照先 Init().

参照元 PreventVisualStyle().

変数

bool CUxTheme::m_bInitialized [protected]

CUxTheme.h の 53 行で定義されています。

参照元 Init().

CUxTheme CUxTheme::m_cUxTheme [static, protected]

CUxTheme.h の 45 行で定義されています。

LPCWSTR CUxTheme::pszSubAppName [protected]

CUxTheme.h の 62 行で定義されています。

LPCWSTR LPCWSTR CUxTheme::pszSubIdList [protected]

CUxTheme.h の 62 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CUxTheme.h
  • CUxTheme.cpp
Sakura-Editorに対してSat Oct 27 02:36:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CUxTheme メンバ一覧

これは全メンバの一覧です。CUxTheme継承メンバも含んでいます。

BOOL(WINAPI *m_pfnIsThemeActive)(VOID) | CUxTheme | [protected]
CDllHandler() | CDllHandler |
CUxTheme() | CUxTheme | [protected]
DeinitDll(void) | CDllHandler | [protected, virtual]
FreeLibrary(bool force=false) | CDllHandler |
GetDllName(LPCTSTR) | CUxTheme | [protected, virtual]
GetDllNameInOrder(LPCTSTR str, int index) | CDllHandler | [protected, virtual]
GetInstance() const | CDllHandler | [inline]
getInstance(void) | CUxTheme | [inline, static]
HRESULT(WINAPI *m_pfnSetWindowTheme)(HWND hwnd | CUxTheme | [protected]
Init(char *str=NULL) | CUxTheme | [protected]
CDllHandler::Init(const char *str=NULL) | CDllHandler | [inline]
InitDll(void) | CUxTheme | [protected, virtual]
IsAvailable(void) const | CDllHandler | [inline, virtual]
IsThemeActive(VOID) | CUxTheme |
LoadLibrary(const char *str=NULL) | CDllHandler |
m_bInitialized | CUxTheme | [protected]
m_cUxTheme | CUxTheme | [protected, static]
operator!(void) const | CDllHandler | [inline]
pszSubAppName | CUxTheme | [protected]
pszSubIdList | CUxTheme | [protected]
RegisterEntries(const ImportTable table[]) | CDllHandler | [protected]
SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList) | CUxTheme |
~CDllHandler() | CDllHandler | [virtual]
~CUxTheme() | CUxTheme | [virtual]

Sakura-Editorに対してSat Oct 27 02:36:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CWaitCursor

  • 構成
  • クラス階層
  • 構成メンバ

クラス CWaitCursor

砂時計カーソルクラス [詳細]

#include <CWaitCursor.h>

すべてのメンバ一覧

Public メソッド

CWaitCursor (HWND)
~CWaitCursor ()

Private 変数

HCURSOR | m_hCursor
HCURSOR | m_hCursorOld

説明

砂時計カーソルクラス

オブジェクトの存続している間カーソル形状を砂時計にする． オブジェクトが破棄されるとカーソル形状は元に戻る

CWaitCursor.h の 31 行で定義されています。

コンストラクタとデストラクタ

CWaitCursor::CWaitCursor ( HWND hWnd )

現在のカーソルを保存し、カーソルを砂時計にする

CWaitCursor.cpp の 19 行で定義されています。

参照先 m_hCursor・m_hCursorOld・NULL.

CWaitCursor::~CWaitCursor ( )

カーソル形状を元に戻す

CWaitCursor.cpp の 32 行で定義されています。

参照先 m_hCursorOld.

変数

HCURSOR CWaitCursor::m_hCursor [private]

CWaitCursor.h の 40 行で定義されています。

参照元 CWaitCursor().

HCURSOR CWaitCursor::m_hCursorOld [private]

CWaitCursor.h の 41 行で定義されています。

参照元 CWaitCursor()・~CWaitCursor().

このクラスの説明は次のファイルから生成されました:
  • CWaitCursor.h
  • CWaitCursor.cpp
Sakura-Editorに対してSat Oct 27 02:36:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWaitCursor メンバ一覧

これは全メンバの一覧です。CWaitCursor継承メンバも含んでいます。

CWaitCursor(HWND) | CWaitCursor |
m_hCursor | CWaitCursor | [private]
m_hCursorOld | CWaitCursor | [private]
~CWaitCursor() | CWaitCursor |

Sakura-Editorに対してSat Oct 27 02:36:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CWnd

  • 構成
  • クラス階層
  • 構成メンバ

クラス CWnd

ウィンドウの基本クラス [詳細]

#include <CWnd.h>

CWndに対する継承グラフ

[凡例]
すべてのメンバ一覧

Public メソッド

CWnd ()
virtual | ~CWnd ()
void | Init (HINSTANCE, HWND)
ATOM | RegisterWC (HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR)
HWND | Create (DWORD, LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HMENU)
virtual LRESULT | DispatchEvent (HWND, UINT, WPARAM, LPARAM)

Public 変数

HWND | m_hWnd

Protected メソッド

virtual LRESULT | DispatchEvent_WM_APP (HWND, UINT, WPARAM, LPARAM)
virtual void | PreviCreateWindow (void)
virtual void | AfterCreateWindow (void)
virtual LRESULT | OnNcDestroy (HWND, UINT, WPARAM, LPARAM)
virtual | DECLH (OnCreate)
virtual | DECLH (OnCommand)
virtual | DECLH (OnPaint)
virtual | DECLH (OnLButtonDown)
virtual | DECLH (OnLButtonUp)
virtual | DECLH (OnLButtonDblClk)
virtual | DECLH (OnRButtonDown)
virtual | DECLH (OnRButtonUp)
virtual | DECLH (OnRButtonDblClk)
virtual | DECLH (OnMButtonDown)
virtual | DECLH (OnMButtonUp)
virtual | DECLH (OnMButtonDblClk)
virtual | DECLH (OnMouseMove)
virtual | DECLH (OnMouseWheel)
virtual | DECLH (OnTimer)
virtual | DECLH (OnSize)
virtual | DECLH (OnMove)
virtual | DECLH (OnClose)
virtual | DECLH (OnDestroy)
virtual | DECLH (OnQueryEndSession)
virtual | DECLH (OnMeasureItem)
virtual | DECLH (OnMenuChar)
virtual | DECLH (OnNotify)
virtual | DECLH (OnDrawItem)
virtual | DECLH (OnCaptureChanged)
virtual | DECLH (OnMDIActivate)
virtual LRESULT | CallDefWndProc (HWND, UINT, WPARAM, LPARAM)

Protected 変数

char | m_szClassInheritances [1024]
HINSTANCE | m_hInstance
HWND | m_hwndParent

説明

ウィンドウの基本クラス

CWndクラスの基本的な機能
  • ウィンドウ作成
  • ウィンドウメッセージ配送
普通?のウィンドウの使用方法は以下の手順
  • Init() 初期化
  • RegisterWC() ウィンドウクラス登録
  • Create() ウィンドウ作成

CWnd.h の 39 行で定義されています。

コンストラクタとデストラクタ

CWnd::CWnd ( )

CWnd.cpp の 56 行で定義されています。

参照先 m_hInstance・m_hWnd・m_hwndParent・m_szClassInheritances・NULL.

CWnd::~CWnd ( ) [virtual]

CWnd.cpp の 65 行で定義されています。

参照先 GWLP_USERDATA・LONG_PTR・m_hWnd・NULL・SetWindowLongPtr.

関数

virtual void CWnd::AfterCreateWindow ( void ) [inline, protected, virtual]

CFuncKeyWnd・CTabWnd・CTipWndで再定義されています。

CWnd.h の 63 行で定義されています。

参照元 Create().

LRESULT CWnd::CallDefWndProc | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CWnd.cpp の 254 行で定義されています。

参照元 DispatchEvent()・DispatchEvent_WM_APP().

HWND CWnd::Create | ( | DWORD | ,
 |  | LPCTSTR | ,
 |  | LPCTSTR | ,
 |  | DWORD | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | int | ,
 |  | HMENU |
 | ) |

CWnd.cpp の 121 行で定義されています。

参照先 AfterCreateWindow()・gm_pCWnd・m_hInstance・m_hWnd・m_hwndParent・NULL・PreviCreateWindow().

参照元 CTipWnd::Create()・CSplitterWnd::Create()・CSplitBoxWnd::Create()・CTabWnd::Open()・CFuncKeyWnd::Open().

virtual CWnd::DECLH ( OnMDIActivate ) [protected, virtual]

virtual CWnd::DECLH ( OnCaptureChanged ) [protected, virtual]

virtual CWnd::DECLH ( OnDrawItem ) [protected, virtual]

virtual CWnd::DECLH ( OnNotify ) [protected, virtual]

virtual CWnd::DECLH ( OnMenuChar ) [protected, virtual]

virtual CWnd::DECLH ( OnMeasureItem ) [protected, virtual]

virtual CWnd::DECLH ( OnQueryEndSession ) [protected, virtual]

virtual CWnd::DECLH ( OnDestroy ) [protected, virtual]

virtual CWnd::DECLH ( OnClose ) [protected, virtual]

virtual CWnd::DECLH ( OnMove ) [protected, virtual]

virtual CWnd::DECLH ( OnSize ) [protected, virtual]

virtual CWnd::DECLH ( OnTimer ) [protected, virtual]

virtual CWnd::DECLH ( OnMouseWheel ) [protected, virtual]

virtual CWnd::DECLH ( OnMouseMove ) [protected, virtual]

virtual CWnd::DECLH ( OnMButtonDblClk ) [protected, virtual]

virtual CWnd::DECLH ( OnMButtonUp ) [protected, virtual]

virtual CWnd::DECLH ( OnMButtonDown ) [protected, virtual]

virtual CWnd::DECLH ( OnRButtonDblClk ) [protected, virtual]

virtual CWnd::DECLH ( OnRButtonUp ) [protected, virtual]

virtual CWnd::DECLH ( OnRButtonDown ) [protected, virtual]

virtual CWnd::DECLH ( OnLButtonDblClk ) [protected, virtual]

virtual CWnd::DECLH ( OnLButtonUp ) [protected, virtual]

virtual CWnd::DECLH ( OnLButtonDown ) [protected, virtual]

virtual CWnd::DECLH ( OnPaint ) [protected, virtual]

virtual CWnd::DECLH ( OnCommand ) [protected, virtual]

virtual CWnd::DECLH ( OnCreate ) [protected, virtual]

LRESULT CWnd::DispatchEvent | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [virtual]

CWnd.cpp の 166 行で定義されています。

参照先 CallDefWndProc()・CALLH・DispatchEvent_WM_APP()・OnNcDestroy()・WM_MOUSEWHEEL.

参照元 CWndProc().

LRESULT CWnd::DispatchEvent_WM_APP | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CSplitterWndで再定義されています。

CWnd.cpp の 239 行で定義されています。

参照先 CallDefWndProc().

参照元 DispatchEvent().

void CWnd::Init | ( | HINSTANCE | ,
 |  | HWND |
 | ) |

CWnd.cpp の 79 行で定義されています。

参照先 m_hInstance・m_hwndParent.

LRESULT CWnd::OnNcDestroy | ( | HWND | ,
 |  | UINT | ,
 |  | WPARAM | ,
 |  | LPARAM |
 | ) | [protected, virtual]

CWnd.cpp の 247 行で定義されています。

参照先 m_hWnd・NULL.

参照元 DispatchEvent().

virtual void CWnd::PreviCreateWindow ( void ) [inline, protected, virtual]

CWnd.h の 62 行で定義されています。

参照元 Create().

ATOM CWnd::RegisterWC | ( | HICON | ,
 |  | HICON | ,
 |  | HCURSOR | ,
 |  | HBRUSH | ,
 |  | LPCTSTR | ,
 |  | LPCTSTR |
 | ) |

CWnd.cpp の 91 行で定義されています。

参照先 CWndProc()・m_hInstance.

参照元 CTipWnd::Create()・CSplitterWnd::Create()・CSplitBoxWnd::Create()・CTabWnd::Open()・CFuncKeyWnd::Open().

変数

HINSTANCE CWnd::m_hInstance [protected]

CWnd.h の 50 行で定義されています。

参照元 Create()・CTipWnd::Create()・CSplitterWnd::Create()・CSplitBoxWnd::Create()・CTabWnd::CTabWnd()・CWnd()・Init()・CTabWnd::InitImageList()・CTabWnd::OnMouseMove()・CTabWnd::Open()・CFuncKeyWnd::Open()・RegisterWC()・CFuncKeyWnd::SizeBox_ONOFF().

HWND CWnd::m_hWnd

CWnd.h の 53 行で定義されています。

参照元 CFuncKeyWnd::CalcButtonSize()・CTabWnd::Close()・CFuncKeyWnd::Close()・CEditView::Command_NEXTGROUP()・CEditView::Command_PREVGROUP()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWTAB()・CEditView::Command_TAB_JOINTNEXT()・CEditView::Command_TAB_JOINTPREV()・CEditView::Command_TAB_MOVELEFT()・CEditView::Command_TAB_MOVERIGHT()・CEditView::Command_TAB_SEPARATE()・Create()・CEditDoc::Create()・CFuncKeyWnd::CreateButtons()・CEditWnd::CreateStatusBar()・CWnd()・CWndProc()・CEditWnd::DestroyStatusBar()・CSplitterWnd::DoSplit()・CSplitterWnd::DrawSplitter()・CEditWnd::EndLayoutBars()・CTabWnd::GetNextGroupWnd()・CTabWnd::GetPrevGroupWnd()・CTipWnd::GetWindowSize()・CTipWnd::Hide()・CSplitterWnd::HSplitOnOff()・CEditWnd::IsFuncChecked()・CEditWnd::LayoutFuncKey()・CEditWnd::LayoutTabBar()・CTabWnd::OnDestroy()・CSplitterWnd::OnLButtonDblClk()・CTabWnd::OnLButtonDown()・CSplitterWnd::OnLButtonDown()・CTabWnd::OnLButtonUp()・CTabWnd::OnMouseMove()・CSplitterWnd::OnMouseMove()・CEditWnd::OnMouseWheel()・CEditDoc::OnMove()・OnNcDestroy()・CTabWnd::OnPaint()・CSplitterWnd::OnPaint()・CTabWnd::OnRButtonDown()・CTabWnd::OnSize()・CFuncKeyWnd::OnSize()・CEditWnd::OnSize()・CEditView::OnSize()・CFuncKeyWnd::OnTimer()・CTabWnd::Open()・CFuncKeyWnd::Open()・CEditWnd::PopupWinList()・CEditWnd::PrintPreviewModeONOFF()・CTabWnd::Refresh()・CTipWnd::Show()・CEditView::ShowKeywordHelp()・CFuncKeyWnd::SizeBox_ONOFF()・CTabWnd::TabListMenu()・CTabWnd::TabWindowNotify()・CTabWnd::TabWndDispatchEvent()・CFuncKeyWnd::Timer_ONOFF()・CSplitterWnd::VHSplitOnOff()・CSplitterWnd::VSplitOnOff()・~CWnd().

HWND CWnd::m_hwndParent [protected]

CWnd.h の 51 行で定義されています。

参照元 CTabWnd::AdjustWindowPlacement()・Create()・CTipWnd::Create()・CSplitterWnd::Create()・CSplitBoxWnd::Create()・CTabWnd::CTabWnd()・CWnd()・CSplitterWnd::DoSplit()・CTabWnd::GetNextGroupWnd()・CTabWnd::GetPrevGroupWnd()・Init()・CTabWnd::JoinNext()・CTabWnd::JoinPrev()・CTabWnd::MoveLeft()・CTabWnd::MoveRight()・CFuncKeyWnd::OnCommand()・CTabWnd::OnLButtonDblClk()・CSplitBoxWnd::OnLButtonDblClk()・CSplitterWnd::OnLButtonDown()・CSplitBoxWnd::OnLButtonDown()・CTabWnd::OnLButtonUp()・CSplitBoxWnd::OnLButtonUp()・CSplitBoxWnd::OnMouseMove()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CFuncKeyWnd::OnTimer()・CTabWnd::Open()・CFuncKeyWnd::Open()・CTabWnd::Refresh()・CTabWnd::Separate()・CTabWnd::SeparateGroup()・CTabWnd::TabListMenu()・CTabWnd::TabWindowNotify().

char CWnd::m_szClassInheritances[1024] [protected]

CWnd.h の 49 行で定義されています。

参照元 CFuncKeyWnd::CFuncKeyWnd()・CSplitBoxWnd::CSplitBoxWnd()・CSplitterWnd::CSplitterWnd()・CTabWnd::CTabWnd()・CTipWnd::CTipWnd()・CWnd().

このクラスの説明は次のファイルから生成されました:
  • CWnd.h
  • CWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWnd メンバ一覧

これは全メンバの一覧です。CWnd継承メンバも含んでいます。

AfterCreateWindow(void) | CWnd | [inline, protected, virtual]
CallDefWndProc(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Create(DWORD, LPCTSTR, LPCTSTR, DWORD, int, int, int, int, HMENU) | CWnd |
CWnd() | CWnd |
DECLH(OnCreate) | CWnd | [protected, virtual]
DECLH(OnCommand) | CWnd | [protected, virtual]
DECLH(OnPaint) | CWnd | [protected, virtual]
DECLH(OnLButtonDown) | CWnd | [protected, virtual]
DECLH(OnLButtonUp) | CWnd | [protected, virtual]
DECLH(OnLButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnRButtonDown) | CWnd | [protected, virtual]
DECLH(OnRButtonUp) | CWnd | [protected, virtual]
DECLH(OnRButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMButtonDown) | CWnd | [protected, virtual]
DECLH(OnMButtonUp) | CWnd | [protected, virtual]
DECLH(OnMButtonDblClk) | CWnd | [protected, virtual]
DECLH(OnMouseMove) | CWnd | [protected, virtual]
DECLH(OnMouseWheel) | CWnd | [protected, virtual]
DECLH(OnTimer) | CWnd | [protected, virtual]
DECLH(OnSize) | CWnd | [protected, virtual]
DECLH(OnMove) | CWnd | [protected, virtual]
DECLH(OnClose) | CWnd | [protected, virtual]
DECLH(OnDestroy) | CWnd | [protected, virtual]
DECLH(OnQueryEndSession) | CWnd | [protected, virtual]
DECLH(OnMeasureItem) | CWnd | [protected, virtual]
DECLH(OnMenuChar) | CWnd | [protected, virtual]
DECLH(OnNotify) | CWnd | [protected, virtual]
DECLH(OnDrawItem) | CWnd | [protected, virtual]
DECLH(OnCaptureChanged) | CWnd | [protected, virtual]
DECLH(OnMDIActivate) | CWnd | [protected, virtual]
DispatchEvent(HWND, UINT, WPARAM, LPARAM) | CWnd | [virtual]
DispatchEvent_WM_APP(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
Init(HINSTANCE, HWND) | CWnd |
m_hInstance | CWnd | [protected]
m_hWnd | CWnd |
m_hwndParent | CWnd | [protected]
m_szClassInheritances | CWnd | [protected]
OnNcDestroy(HWND, UINT, WPARAM, LPARAM) | CWnd | [protected, virtual]
PreviCreateWindow(void) | CWnd | [inline, protected, virtual]
RegisterWC(HICON, HICON, HCURSOR, HBRUSH, LPCTSTR, LPCTSTR) | CWnd |
~CWnd() | CWnd | [virtual]

Sakura-Editorに対してSat Oct 27 02:36:19 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CWSHClient

  • 構成
  • クラス階層
  • 構成メンバ

クラス CWSHClient

#include <CWSH.h>

CWSHClientのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CWSHClient (wchar_t const *AEngine, ScriptErrorHandler AErrorHandler, void *AData)
~CWSHClient ()
void | Execute (wchar_t const *AScript)
void | Error (BSTR Description, BSTR Source)
void | Error (wchar_t *Description)

Public 変数

CInterfaceObject * m_InterfaceObject
void * | m_Data
bool | m_Valid

Protected 変数

ScriptErrorHandler m_OnError

Private 変数

IActiveScript * | m_Engine

説明

CWSH.h の 115 行で定義されています。

コンストラクタとデストラクタ

CWSHClient::CWSHClient | ( | wchar_t const * | AEngine,
 |  | ScriptErrorHandler | AErrorHandler,
 |  | void * | AData
 | ) |

CWSH.cpp の 506 行で定義されています。

参照先 ImplementsIUnknown< Base >::AddRef()・Error()・m_Engine・m_InterfaceObject・m_Valid.

CWSHClient::~CWSHClient ( )

CWSH.cpp の 535 行で定義されています。

参照先 m_Engine・m_InterfaceObject・NULL・ImplementsIUnknown< Base >::Release().

関数

void CWSHClient::Error ( wchar_t * Description )

CWSH.cpp の 579 行で定義されています。

参照先 Error().

void CWSHClient::Error | ( | BSTR | Description,
 |  | BSTR | Source
 | ) |

CWSH.cpp の 573 行で定義されています。

参照先 m_Data・m_OnError・NULL.

参照元 CWSHClient()・Error()・Execute().

void CWSHClient::Execute ( wchar_t const * AScript )

CWSH.cpp の 544 行で定義されています。

参照先 Error()・m_Engine.

参照元 CWSHMacroManager::ExecKeyMacro().

変数

void* CWSHClient::m_Data

CWSH.h の 125 行で定義されています。

参照元 Error()・CInterfaceObject::Invoke().

IActiveScript* CWSHClient::m_Engine [private]

CWSH.h の 118 行で定義されています。

参照元 CWSHClient()・Execute()・~CWSHClient().

CInterfaceObject* CWSHClient::m_InterfaceObject

CWSH.h の 124 行で定義されています。

参照元 CWSHClient()・CWSHMacroManager::ExecKeyMacro()・CWSHSite::GetItemInfo()・~CWSHClient().

ScriptErrorHandler CWSHClient::m_OnError [protected]

CWSH.h の 120 行で定義されています。

参照元 Error().

bool CWSHClient::m_Valid

CWSH.h の 126 行で定義されています。

参照元 CWSHClient()・CWSHMacroManager::ExecKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CWSH.h
  • CWSH.cpp
Sakura-Editorに対してSat Oct 27 02:36:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWSHClient メンバ一覧

これは全メンバの一覧です。CWSHClient継承メンバも含んでいます。

CWSHClient(wchar_t const *AEngine, ScriptErrorHandler AErrorHandler, void *AData) | CWSHClient |
Error(BSTR Description, BSTR Source) | CWSHClient |
Error(wchar_t *Description) | CWSHClient |
Execute(wchar_t const *AScript) | CWSHClient |
m_Data | CWSHClient |
m_Engine | CWSHClient | [private]
m_InterfaceObject | CWSHClient |
m_OnError | CWSHClient | [protected]
m_Valid | CWSHClient |
~CWSHClient() | CWSHClient |

Sakura-Editorに対してSat Oct 27 02:36:20 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CWSHMacroManager

  • 構成
  • クラス階層
  • 構成メンバ

クラス CWSHMacroManager

#include <CWSHManager.h>

CWSHMacroManagerに対する継承グラフ

[凡例]
CWSHMacroManagerのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CWSHMacroManager (std::wstring const AEngineName)
virtual | ~CWSHMacroManager ()
virtual void | ExecKeyMacro (CEditView *EditView) const
virtual BOOL | LoadKeyMacro (HINSTANCE Instance, char const *Path)

Static Public メソッド

static CMacroManagerBase * | Creator (char const *FileExt)
static void | declare ()
static void | EnumEngines (EngineCallback Proc)

Static Protected メソッド

static void | ReadyCommands (CInterfaceObject *Object, MacroFuncInfo *Info)

Protected 変数

std::wstring | m_Source
std::wstring | m_EngineName

説明

CWSHManager.h の 34 行で定義されています。

コンストラクタとデストラクタ

CWSHMacroManager::CWSHMacroManager ( std::wstring const AEngineName )

CWSH.cpp の 656 行で定義されています。

参照元 Creator().

CWSHMacroManager::~CWSHMacroManager ( ) [virtual]

CWSH.cpp の 660 行で定義されています。

関数

CMacroManagerBase * CWSHMacroManager::Creator ( char const * FileExt ) [static]

CWSH.cpp の 740 行で定義されています。

参照先 CWSHMacroManager()・NULL・ReadRegistry().

参照元 declare().

void CWSHMacroManager::declare ( ) [static]

CWSH.cpp の 760 行で定義されています。

参照先 Creator()・CMacroFactory::Instance()・CMacroFactory::RegisterCreator().

参照元 CSMacroMgr::CSMacroMgr().

static void CWSHMacroManager::EnumEngines ( EngineCallback Proc ) [static]

void CWSHMacroManager::ExecKeyMacro ( CEditView * EditView ) const [virtual]

WSHマクロの実行

引数:
EditView [in] 操作対象EditView

CMacroManagerBaseを実装しています。

CWSH.cpp の 687 行で定義されています。

参照先 CWSHClient::Execute()・m_EngineName・CWSHClient::m_InterfaceObject・CSMacroMgr::m_MacroFuncInfoArr・CSMacroMgr::m_MacroFuncInfoNotCommandArr・m_Source・CWSHClient::m_Valid・MacroError()・ReadyCommands()・CEditView::ShowEditCaret().

BOOL CWSHMacroManager::LoadKeyMacro | ( | HINSTANCE | Instance,
 |  | char const * | Path
 | ) | [virtual]

WSHマクロの読み込み

引数:
Instance | [in] インスタンスハンドル(未使用)
Path | [in] ファイルのパス

CMacroManagerBaseを実装しています。

CWSH.cpp の 715 行で定義されています。

参照先 BOOL・FALSE・m_Source・NULL・TRUE.

void CWSHMacroManager::ReadyCommands | ( | CInterfaceObject * | Object,
 |  | MacroFuncInfo * | Info
 | ) | [static, protected]

CWSH.cpp の 664 行で定義されています。

参照先 CInterfaceObject::AddMethod()・MacroFuncInfo::m_nFuncID・MacroFuncInfo::m_pszFuncName・MacroFuncInfo::m_varArguments・MacroFuncInfo::m_varResult・MacroCommand().

参照元 ExecKeyMacro().

変数

std::wstring CWSHMacroManager::m_EngineName [protected]

CWSHManager.h の 48 行で定義されています。

参照元 ExecKeyMacro().

std::wstring CWSHMacroManager::m_Source [protected]

CWSHManager.h の 47 行で定義されています。

参照元 ExecKeyMacro()・LoadKeyMacro().

このクラスの説明は次のファイルから生成されました:
  • CWSHManager.h
  • CWSH.cpp
Sakura-Editorに対してSat Oct 27 02:36:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWSHMacroManager メンバ一覧

これは全メンバの一覧です。CWSHMacroManager継承メンバも含んでいます。

CMacroManagerBase() | CMacroManagerBase |
Creator(char const *FileExt) | CWSHMacroManager | [static]
CWSHMacroManager(std::wstring const AEngineName) | CWSHMacroManager |
declare() | CWSHMacroManager | [static]
EnumEngines(EngineCallback Proc) | CWSHMacroManager | [static]
ExecKeyMacro(CEditView *EditView) const | CWSHMacroManager | [virtual]
IsReady() | CMacroManagerBase | [inline]
LoadKeyMacro(HINSTANCE Instance, char const *Path) | CWSHMacroManager | [virtual]
m_EngineName | CWSHMacroManager | [protected]
m_nReady | CMacroManagerBase | [protected]
m_Source | CWSHMacroManager | [protected]
ReadyCommands(CInterfaceObject *Object, MacroFuncInfo *Info) | CWSHMacroManager | [protected, static]
~CMacroManagerBase() | CMacroManagerBase | [virtual]
~CWSHMacroManager() | CWSHMacroManager | [virtual]

Sakura-Editorに対してSat Oct 27 02:36:21 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CWSHSite

  • 構成
  • クラス階層
  • 構成メンバ

クラス CWSHSite

CWSHSiteのコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CWSHSite (CWSHClient *AClient)
virtual ULONG _stdcall | AddRef ()
virtual ULONG _stdcall | Release ()
virtual HRESULT STDMETHODCALLTYPE | QueryInterface (REFIID iid, void **ppvObject)
virtual HRESULT STDMETHODCALLTYPE | GetLCID (LCID *plcid)
virtual HRESULT STDMETHODCALLTYPE | GetItemInfo (LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti)
virtual HRESULT STDMETHODCALLTYPE | GetDocVersionString (BSTR *pbstrVersion)
virtual HRESULT STDMETHODCALLTYPE | OnScriptTerminate (const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
virtual HRESULT STDMETHODCALLTYPE | OnStateChange (SCRIPTSTATE ssScriptState)
virtual HRESULT STDMETHODCALLTYPE | OnScriptError (IActiveScriptError *pscripterror)
virtual HRESULT STDMETHODCALLTYPE | OnEnterScript ()
virtual HRESULT STDMETHODCALLTYPE | OnLeaveScript ()
virtual HRESULT __stdcall | GetWindow (HWND *phwnd)
virtual HRESULT __stdcall | EnableModeless (BOOL fEnable)

Private 変数

CWSHClient * m_Client
ITypeInfo * m_TypeInfo
ULONG | m_RefCount

説明

日付:
Sep. 15, 2005 FILE IActiveScriptSiteWindow実装． マクロでMsgBoxを使用可能にする．

CWSH.cpp の 192 行で定義されています。

コンストラクタとデストラクタ

CWSHSite::CWSHSite ( CWSHClient * AClient ) [inline]

CWSH.cpp の 199 行で定義されています。

関数

virtual ULONG _stdcall CWSHSite::AddRef ( ) [inline, virtual]

CWSH.cpp の 203 行で定義されています。

参照先 m_RefCount.

virtual HRESULT __stdcall CWSHSite::EnableModeless ( BOOL fEnable ) [inline, virtual]

CWSH.cpp の 344 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::GetDocVersionString ( BSTR * pbstrVersion ) [inline, virtual]

CWSH.cpp の 266 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::GetItemInfo | ( | LPCOLESTR | pstrName,
 |  | DWORD | dwReturnMask,
 |  | IUnknown ** | ppiunkItem,
 |  | ITypeInfo ** | ppti
 | ) | [inline, virtual]

CWSH.cpp の 240 行で定義されています。

参照先 ImplementsIUnknown< Base >::AddRef()・CInterfaceObject::GetTypeInfo()・m_Client・CWSHClient::m_InterfaceObject.

virtual HRESULT STDMETHODCALLTYPE CWSHSite::GetLCID ( LCID * plcid ) [inline, virtual]

CWSH.cpp の 231 行で定義されています。

virtual HRESULT __stdcall CWSHSite::GetWindow ( HWND * phwnd ) [inline, virtual]

CWSH.cpp の 336 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnEnterScript ( ) [inline, virtual]

CWSH.cpp の 321 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnLeaveScript ( ) [inline, virtual]

CWSH.cpp の 328 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnScriptError ( IActiveScriptError * pscripterror ) [inline, virtual]

CWSH.cpp の 296 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnScriptTerminate | ( | const VARIANT * | pvarResult,
 |  | const EXCEPINFO * | pexcepinfo
 | ) | [inline, virtual]

CWSH.cpp の 275 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::OnStateChange ( SCRIPTSTATE ssScriptState ) [inline, virtual]

CWSH.cpp の 285 行で定義されています。

virtual HRESULT STDMETHODCALLTYPE CWSHSite::QueryInterface | ( | REFIID | iid,
 |  | void ** | ppvObject
 | ) | [inline, virtual]

CWSH.cpp の 216 行で定義されています。

参照先 m_RefCount・NULL.

virtual ULONG _stdcall CWSHSite::Release ( ) [inline, virtual]

CWSH.cpp の 207 行で定義されています。

参照先 m_RefCount.

変数

CWSHClient* CWSHSite::m_Client [private]

CWSH.cpp の 195 行で定義されています。

参照元 GetItemInfo().

ULONG CWSHSite::m_RefCount [private]

CWSH.cpp の 197 行で定義されています。

参照元 AddRef()・QueryInterface()・Release().

ITypeInfo* CWSHSite::m_TypeInfo [private]

CWSH.cpp の 196 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CWSH.cpp
Sakura-Editorに対してSat Oct 27 02:36:22 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CWSHSite メンバ一覧

これは全メンバの一覧です。CWSHSite継承メンバも含んでいます。

AddRef() | CWSHSite | [inline, virtual]
CWSHSite(CWSHClient *AClient) | CWSHSite | [inline]
EnableModeless(BOOL fEnable) | CWSHSite | [inline, virtual]
GetDocVersionString(BSTR *pbstrVersion) | CWSHSite | [inline, virtual]
GetItemInfo(LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti) | CWSHSite | [inline, virtual]
GetLCID(LCID *plcid) | CWSHSite | [inline, virtual]
GetWindow(HWND *phwnd) | CWSHSite | [inline, virtual]
m_Client | CWSHSite | [private]
m_RefCount | CWSHSite | [private]
m_TypeInfo | CWSHSite | [private]
OnEnterScript() | CWSHSite | [inline, virtual]
OnLeaveScript() | CWSHSite | [inline, virtual]
OnScriptError(IActiveScriptError *pscripterror) | CWSHSite | [inline, virtual]
OnScriptTerminate(const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo) | CWSHSite | [inline, virtual]
OnStateChange(SCRIPTSTATE ssScriptState) | CWSHSite | [inline, virtual]
QueryInterface(REFIID iid, void **ppvObject) | CWSHSite | [inline, virtual]
Release() | CWSHSite | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:36:22 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス CYbInterfaceBase

  • 構成
  • クラス階層
  • 構成メンバ

クラス CYbInterfaceBase

#include <CDropTarget.h>

CYbInterfaceBaseに対する継承グラフ

[凡例]
CYbInterfaceBaseのコラボレーション図

[凡例]
すべてのメンバ一覧

Protected メソッド

CYbInterfaceBase ()
~CYbInterfaceBase ()

Static Protected メソッド

static HRESULT | QueryInterfaceImpl (IUnknown *, REFIID, REFIID, void **)

Static Private 変数

static COleLibrary | m_olelib

説明

CDropTarget.h の 42 行で定義されています。

コンストラクタとデストラクタ

CYbInterfaceBase::CYbInterfaceBase ( ) [protected]

CDropTarget.cpp の 23 行で定義されています。

参照先 COleLibrary::Initialize()・m_olelib.

CYbInterfaceBase::~CYbInterfaceBase ( ) [protected]

CDropTarget.cpp の 28 行で定義されています。

参照先 m_olelib・COleLibrary::UnInitialize().

関数

HRESULT CYbInterfaceBase::QueryInterfaceImpl | ( | IUnknown * | ,
 |  | REFIID | ,
 |  | REFIID | ,
 |  | void ** |
 | ) | [static, protected]

CDropTarget.cpp の 34 行で定義されています。

参照先 NULL.

変数

COleLibrary CYbInterfaceBase::m_olelib [static, private]

CDropTarget.h の 45 行で定義されています。

参照元 CYbInterfaceBase()・~CYbInterfaceBase().

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
  • CDropTarget.cpp
Sakura-Editorに対してSat Oct 27 02:36:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CYbInterfaceBase メンバ一覧

これは全メンバの一覧です。CYbInterfaceBase継承メンバも含んでいます。

CYbInterfaceBase() | CYbInterfaceBase | [protected]
m_olelib | CYbInterfaceBase | [private, static]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Oct 27 02:36:23 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス テンプレート CYbInterfaceImpl< BASEINTERFACE >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート CYbInterfaceImpl< BASEINTERFACE >

#include <CDropTarget.h>

CYbInterfaceImpl< BASEINTERFACE >に対する継承グラフ

[凡例]
CYbInterfaceImpl< BASEINTERFACE >のコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

CYbInterfaceImpl ()
STDMETHOD (QueryInterface)(REFIID riid

Static Private 変数

static REFIID m_owniid

説明

template<class BASEINTERFACE>
class CYbInterfaceImpl< BASEINTERFACE >

CDropTarget.h の 54 行で定義されています。

コンストラクタとデストラクタ

template<class BASEINTERFACE>
CYbInterfaceImpl< BASEINTERFACE >::CYbInterfaceImpl ( ) [inline]

CDropTarget.h の 59 行で定義されています。

関数

template<class BASEINTERFACE>
CYbInterfaceImpl< BASEINTERFACE >::STDMETHOD ( QueryInterface )

変数

template<class BASEINTERFACE>
REFIID CYbInterfaceImpl< BASEINTERFACE >::m_owniid [static, private]

CDropTarget.h の 57 行で定義されています。

このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Oct 27 02:36:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

CYbInterfaceImpl< BASEINTERFACE > メンバ一覧

これは全メンバの一覧です。CYbInterfaceImpl< BASEINTERFACE >継承メンバも含んでいます。

CYbInterfaceBase() | CYbInterfaceBase | [protected]
CYbInterfaceImpl() | CYbInterfaceImpl< BASEINTERFACE > | [inline]
m_owniid | CYbInterfaceImpl< BASEINTERFACE > | [private, static]
QueryInterfaceImpl(IUnknown *, REFIID, REFIID, void **) | CYbInterfaceBase | [protected, static]
STDMETHOD(QueryInterface)(REFIID riid | CYbInterfaceImpl< BASEINTERFACE > |
~CYbInterfaceBase() | CYbInterfaceBase | [protected]

Sakura-Editorに対してSat Oct 27 02:36:24 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 DLLSHAREDATA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 DLLSHAREDATA

共有データ領域 [詳細]

#include <CShareData.h>

DLLSHAREDATAのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

unsigned int | m_vStructureVersion
データ構造 Version
char | m_szWork [32000]
FileInfo m_FileInfo_MYWM_GETFILEINFO
DWORD | m_dwProductVersionMS
DWORD | m_dwProductVersionLS
HWND | m_hwndTray
HWND | m_hwndDebug
HACCEL | m_hAccel
LONG | m_nSequences
LONG | m_nGroupSequences
int | m_nEditArrNum
EditNode | m_pEditArr [MAX_EDITWINDOWS]
BOOL | m_bEditWndChanging
int | m_nMRUArrNum
FileInfo | m_fiMRUArr [MAX_MRU]
bool | m_bMRUArrFavorite [MAX_MRU]
int | m_nOPENFOLDERArrNum
char | m_szOPENFOLDERArr [MAX_OPENFOLDER][_MAX_PATH]
bool | m_bOPENFOLDERArrFavorite [MAX_OPENFOLDER]
int | m_nTransformFileNameArrNum
char | m_szTransformFileNameFrom [MAX_TRANSFORM_FILENAME][_MAX_PATH]
char | m_szTransformFileNameTo [MAX_TRANSFORM_FILENAME][_MAX_PATH]
int | m_nSEARCHKEYArrNum
char | m_szSEARCHKEYArr [MAX_SEARCHKEY][_MAX_PATH]
int | m_nREPLACEKEYArrNum
char | m_szREPLACEKEYArr [MAX_REPLACEKEY][_MAX_PATH]
int | m_nGREPFILEArrNum
char | m_szGREPFILEArr [MAX_GREPFILE][_MAX_PATH]
int | m_nGREPFOLDERArrNum
char | m_szGREPFOLDERArr [MAX_GREPFOLDER][_MAX_PATH]
char | m_szMACROFOLDER [_MAX_PATH]
char | m_szIMPORTFOLDER [_MAX_PATH]
MacroRec | m_MacroTable [MAX_CUSTMACRO]
キー割り当て用マクロテーブル
int | m_TagJumpNum
タグジャンプ情報の有効データ数
int | m_TagJumpTop
スタックの一番上の位置
TagJump | m_TagJump [MAX_TAGJUMPNUM]
タグジャンプ情報
char | m_szCmdArr [MAX_CMDARR][MAX_CMDLEN]
int | m_nCmdArrNum
IniFolder m_IniFolder
Common m_Common
int | m_nKeyNameArrNum
KEYDATA | m_pKeyNameArr [100]
PRINTSETTING | m_PrintSettingArr [MAX_PRINTSETTINGARR]
CKeyWordSetMgr m_CKeyWordSetMgr
char | m_szKeyWordSetDir [MAX_PATH]
Types | m_Types [MAX_TYPES]
BOOL | m_bRecordingKeyMacro
HWND | m_hwndRecordingKeyMacro
char | m_szKeyMacroFileName [MAX_PATH]
int | m_nExecFlgOpt
BOOL | m_bLineNumIsCRLF
int | m_nDiffFlgOpt
char | m_szTagsCmdLine [_MAX_PATH]
int | m_nTagsOpt
int | m_nTagJumpKeywordArrNum
char | m_szTagJumpKeywordArr [MAX_TAGJUMP_KEYWORD][_MAX_PATH]
BOOL | m_bTagJumpICase
大文字小文字を同一視
BOOL | m_bTagJumpAnyWhere
文字列の途中にマッチ

説明

共有データ領域

CShareData.h の 613 行で定義されています。

変数

BOOL DLLSHAREDATA::m_bEditWndChanging

CShareData.h の 638 行で定義されています。

参照元 ActivateFrameWindow()・CShareData::Init()・CEditWnd::OnCaptionTimer()・CTabWnd::ShowHideWindow().

BOOL DLLSHAREDATA::m_bLineNumIsCRLF

CShareData.h の 715 行で定義されています。

参照元 CMacro::AddLParam()・CDlgJump::GetData()・CMacro::HandleCommand()・CDlgJump::OnBnClicked().

bool DLLSHAREDATA::m_bMRUArrFavorite[MAX_MRU]

CShareData.h の 643 行で定義されています。

参照元 CRecent::EasyCreate()・CShareData::ShareData_IO_Mru().

bool DLLSHAREDATA::m_bOPENFOLDERArrFavorite[MAX_OPENFOLDER]

CShareData.h の 648 行で定義されています。

参照元 CRecent::EasyCreate().

BOOL DLLSHAREDATA::m_bRecordingKeyMacro

CShareData.h の 707 行で定義されています。

参照元 CEditView::Command_EXECKEYMACRO()・CEditView::Command_LOADKEYMACRO()・CEditView::Command_RECKEYMACRO()・CEditView::Command_SAVEKEYMACRO()・CEditDoc::ExParam_Evaluate()・CShareData::Init()・CEditWnd::IsFuncChecked()・CEditWnd::IsFuncEnable().

BOOL DLLSHAREDATA::m_bTagJumpAnyWhere

文字列の途中にマッチ

CShareData.h の 726 行で定義されています。

参照元 CDlgTagJumpList::GetData()・CDlgTagJumpList::SetData().

BOOL DLLSHAREDATA::m_bTagJumpICase

大文字小文字を同一視

CShareData.h の 725 行で定義されています。

参照元 CDlgTagJumpList::GetData()・CDlgTagJumpList::SetData().

CKeyWordSetMgr DLLSHAREDATA::m_CKeyWordSetMgr

CShareData.h の 697 行で定義されています。

参照元 CPropCommon::ApplyData()・CDlgKeywordSelect::CDlgKeywordSelect()・CPropTypes::CPropTypes()・CPropCommon::InitData()・CShareData::InitKeyword()・CShareData::ShareData_IO_KeyWords().

Common DLLSHAREDATA::m_Common

CShareData.h の 687 行で定義されています。

参照元 ActivateFrameWindow()・CMacro::AddLParam()・CTabWnd::AdjustWindowPlacement()・CPropCommon::ApplyData()・CEditDoc::CEditDoc()・CEditView::CEditView()・CEditView::ChangeCurRegexp()・CEditDoc::CheckFileTimeStamp()・CEditApp::CloseAllEditor()・CEditView::Command_BASE64DECODE()・CEditView::Command_BEGIN_BOXSELECT()・CEditView::Command_BIND_WINDOW()・CEditView::Command_BOOKMARK_PATTERN()・CEditView::Command_COMPARE()・CEditView::Command_COPYLINESASPASSAGE()・CEditView::Command_CUSTMENU()・CEditView::Command_CUT()・CEditView::Command_CUT_LINE()・CEditView::Command_DELETE_LINE()・CEditView::Command_DOWN()・CEditView::Command_FONT()・CEditView::Command_GROUPCLOSE()・CEditView::Command_HOKAN()・CEditView::Command_IME_CHAR()・CEditView::Command_PASTE()・CEditView::Command_PASTEBOX()・CEditView::Command_REPLACE()・CEditView::Command_REPLACE_ALL()・CEditView::Command_SET_QUOTESTRING()・CEditView::Command_SHOWFUNCKEY()・CEditView::Command_SHOWSTATUSBAR()・CEditView::Command_SHOWTAB()・CEditView::Command_SHOWTOOLBAR()・CEditView::Command_ToggleKeySearch()・CEditView::Command_UP()・CEditView::Command_UUDECODE()・CEditView::Command_WORDLEFT()・CEditView::Command_WORDRIGHT()・CEditView::CopySelectedAllLines()・CTipWnd::Create()・CEditWnd::Create()・CEditView::Create()・CEditDoc::Create()・CMRUFolder::CreateMenu()・CMRU::CreateMenu()・CEditView::CreatePopUpMenu_R()・CEditView::CreateScrollBar()・CEditWnd::CreateToolBar()・CEditApp::CreateTrayIcon()・CEditWnd::DestroyStatusBar()・CEditView::DispVerticalLines()・CEditDoc::DoFileLock()・CEditView::DoGrep()・CHokanMgr::DoHokan()・CDlgGrep::DoModal()・CDlgReplace::DoModeless()・CDlgFind::DoModeless()・CSplitterWnd::DoSplit()・CEditView::DragEnter()・CTabWnd::DrawCloseBtn()・CRecent::EasyCreate()・CShareData::ExtHTMLHelpIsSet()・CShareData::ExtWinHelpIsSet()・CEditDoc::FileSave()・CEditDoc::FileWrite()・CEditDoc::FormatBackUpPath()・CEditView::GetCurrentTextForSearch()・CEditView::GetCurrentTextForSearchDlg()・CDlgReplace::GetData()・CDlgGrep::GetData()・CDlgFind::GetData()・CKeyBind::GetDefFuncCode()・CMigemo::GetDllName()・CShareData::GetExtHTMLHelp()・CShareData::GetExtWinHelp()・CTabWnd::GetImageIndex()・CTabWnd::GetNextGroupWnd()・CTabWnd::GetPrevGroupWnd()・CMacro::HandleCommand()・CTabWnd::HideOtherWindows()・CShareData::HTMLHelpIsSingle()・CShareData::Init()・CEditDoc::Init()・CPropCommon::InitData()・CTabWnd::InitImageList()・CShareData::InitPopupMenu()・InitRegexp()・CShareData::InitToolButtons()・CEditView::ISearchEnter()・CEditWnd::IsFuncEnable()・CHokanMgr::KeyProc()・CEditView::KeyWordHelpSearchDict()・CEditWnd::LayoutFuncKey()・CEditWnd::LayoutStatusBar()・CTabWnd::LayoutTab()・CEditWnd::LayoutTabBar()・CEditWnd::LayoutToolBar()・CEditDoc::MakeBackUp()・CEditDoc::MakeFuncList_BookMark()・CEditDoc::MakeTopicList_txt()・CMigemo::migemo_load_all()・CTabWnd::MoveLeft()・CTabWnd::MoveRight()・CMenuDrawer::MyAppendMenu()・CShareData::MyGetDateFormat()・CShareData::MyGetTimeFormat()・OFNHookProc()・OFNHookProcMain()・CDlgFuncList::OnBnClicked()・CDlgFind::OnBnClicked()・CEditView::OnChangeSetting()・CEditDoc::OnChangeSetting()・CEditApp::OnDestroy()・CDlgFuncList::OnDestroy()・CEditWnd::OnDropFiles()・CEditDoc::OnFileClose()・CDlgFuncList::OnInitDialog()・CDlgFuncList::OnJump()・CTabWnd::OnLButtonUp()・CTabWnd::OnMouseMove()・CEditView::OnMOUSEMOVE()・CEditWnd::OnMouseWheel()・CDlgFuncList::OnNotify()・CEditView::OnPaint()・CEditWnd::OnSize()・CTabWnd::OnTabLButtonUp()・CTabWnd::OnTabMouseMove()・CEditView::OnTimer()・CEditWnd::OnToolbarTimer()・CEditView::OnVScroll()・CFuncKeyWnd::Open()・CEditDoc::OpenFile()・CEditApp::OpenNewEditor()・CEditDoc::OpenPropertySheet()・CEditView::PostprocessCommand_hokan()・CEditDoc::ReloadAutoSaveParam()・CEditDoc::SaveFileDialog()・CTabWnd::Separate()・CDlgDiff::SetData()・CEditView::SetIMECompFormFont()・CEditDoc::SetParentCaption()・CShareData::ShareData_IO_Common()・CShareData::ShareData_IO_CustMenu()・CShareData::ShareData_IO_Font()・CShareData::ShareData_IO_Toolbar()・CTabWnd::ShowHideWindow()・CEditView::ShowHokanMgr()・CEditView::SyncScrollH()・CEditView::SyncScrollV()・CTabWnd::TabListMenu()・CEditApp::TerminateApplication()・CEditView::TranslateCommand_grep()・CEditWnd::WindowTopMost().

DWORD DLLSHAREDATA::m_dwProductVersionLS

CShareData.h の 625 行で定義されています。

参照元 CShareData::Init().

DWORD DLLSHAREDATA::m_dwProductVersionMS

CShareData.h の 624 行で定義されています。

参照元 CShareData::Init().

FileInfo DLLSHAREDATA::m_FileInfo_MYWM_GETFILEINFO

CShareData.h の 622 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgCompare::GetData()・CShareData::IsPathOpened()・CDlgDiff::SetData()・CDlgCompare::SetData()・CEditWnd::WinListMenu().

FileInfo DLLSHAREDATA::m_fiMRUArr[MAX_MRU]

CShareData.h の 642 行で定義されています。

参照元 CRecent::EasyCreate()・CShareData::ShareData_IO_Mru().

HACCEL DLLSHAREDATA::m_hAccel

CShareData.h の 628 行で定義されています。

参照元 CEditApp::CEditApp()・CShareData::Init()・CEditWnd::MessageLoop()・CEditApp::OnDestroy().

HWND DLLSHAREDATA::m_hwndDebug

CShareData.h の 627 行で定義されています。

参照元 CEditView::Command_WIN_OUTPUT()・CShareData::Init()・CEditWnd::SetDebugModeOFF()・CEditWnd::SetDebugModeON()・CShareData::TraceOut()・CEditWnd::WinListMenu().

HWND DLLSHAREDATA::m_hwndRecordingKeyMacro

CShareData.h の 708 行で定義されています。

参照元 CEditView::Command_EXECKEYMACRO()・CEditView::Command_LOADKEYMACRO()・CEditView::Command_RECKEYMACRO()・CEditView::Command_SAVEKEYMACRO()・CEditDoc::ExParam_Evaluate()・CShareData::Init()・CEditWnd::IsFuncChecked()・CEditWnd::IsFuncEnable().

HWND DLLSHAREDATA::m_hwndTray

CShareData.h の 626 行で定義されています。

参照元 CEditApp::DoGrep()・CShareData::Init()・CControlProcess::Initialize()・CEditDoc::OpenPropertySheet()・CEditDoc::OpenPropertySheetTypes()・CControlProcess::Terminate()・CEditApp::TerminateApplication().

IniFolder DLLSHAREDATA::m_IniFolder

CShareData.h の 684 行で定義されています。

参照元 CShareData::GetIniFileName()・CShareData::Init().

MacroRec DLLSHAREDATA::m_MacroTable[MAX_CUSTMACRO]

キー割り当て用マクロテーブル

CShareData.h の 671 行で定義されています。

参照元 CShareData::BeReloadWhenExecuteMacro()・CSMacroMgr::GetFile()・CShareData::GetMacroFilename()・CSMacroMgr::GetName()・CSMacroMgr::GetTitle()・CSMacroMgr::IsEnabled()・CPropCommon::SetData_PROP_Macro()・CShareData::ShareData_IO_Macro().

int DLLSHAREDATA::m_nCmdArrNum

CShareData.h の 680 行で定義されています。

参照元 CRecent::EasyCreate()・CDlgExec::SetData()・CShareData::ShareData_IO_Cmd().

int DLLSHAREDATA::m_nDiffFlgOpt

CShareData.h の 717 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData().

int DLLSHAREDATA::m_nEditArrNum

CShareData.h の 632 行で定義されています。

参照元 CEditView::Command_GREP()・CEditView::Command_MINIMIZE_ALL()・CEditWnd::Create()・CRecent::EasyCreate()・CShareData::GetEditNode()・CShareData::GetEditNodeAt()・CShareData::GetEditorWindowsNum()・CShareData::GetOpenedWindowArrCore()・CTabWnd::HideOtherWindows()・CShareData::Init()・CEditWnd::IsFuncEnable()・CShareData::IsPathOpened()・CEditApp::OpenNewEditor()・CEditApp::OpenNewEditor2()・CShareData::ResetGroupId()・CEditWnd::WindowTopMost().

int DLLSHAREDATA::m_nExecFlgOpt

CShareData.h の 714 行で定義されています。

参照元 CMacro::AddLParam()・CDlgExec::GetData()・CDlgExec::SetData()・CShareData::ShareData_IO_Other().

int DLLSHAREDATA::m_nGREPFILEArrNum

CShareData.h の 660 行で定義されています。

参照元 CRecent::EasyCreate()・CShareData::ShareData_IO_Grep().

int DLLSHAREDATA::m_nGREPFOLDERArrNum

CShareData.h の 663 行で定義されています。

参照元 CRecent::EasyCreate().

LONG DLLSHAREDATA::m_nGroupSequences

CShareData.h の 630 行で定義されています。

参照元 CShareData::AddEditWndList()・CShareData::Init()・CShareData::ResetGroupId()・CShareData::SeparateGroup().

int DLLSHAREDATA::m_nKeyNameArrNum

CShareData.h の 690 行で定義されています。

参照元 CEditApp::CEditApp()・CEditView::Command_CREATEKEYBINDLIST()・CEditWnd::DispatchEvent()・CPropCommon::InitData()・CDlgFuncList::Key2Command()・CMenuDrawer::MyAppendMenu()・CEditWnd::OnCommand()・CFuncKeyWnd::OnTimer()・CShareData::ShareData_IO_KeyBind().

int DLLSHAREDATA::m_nMRUArrNum

CShareData.h の 641 行で定義されています。

参照元 CRecent::EasyCreate()・CShareData::ShareData_IO_Mru().

int DLLSHAREDATA::m_nOPENFOLDERArrNum

CShareData.h の 646 行で定義されています。

参照元 CRecent::EasyCreate().

int DLLSHAREDATA::m_nREPLACEKEYArrNum

CShareData.h の 657 行で定義されています。

参照元 CRecent::EasyCreate()・CShareData::Init().

int DLLSHAREDATA::m_nSEARCHKEYArrNum

CShareData.h の 654 行で定義されています。

参照元 CEditView::Command_SEARCH_CLEARMARK()・CEditWnd::CreateToolBar()・CRecent::EasyCreate()・CShareData::Init()・CDlgReplace::SetData()・CDlgGrep::SetData()・CDlgFind::SetData()・CShareData::ShareData_IO_Keys().

LONG DLLSHAREDATA::m_nSequences

CShareData.h の 629 行で定義されています。

参照元 CShareData::AddEditWndList()・CShareData::Init()・CShareData::SeparateGroup().

int DLLSHAREDATA::m_nTagJumpKeywordArrNum

CShareData.h の 722 行で定義されています。

参照元 CRecent::EasyCreate().

int DLLSHAREDATA::m_nTagsOpt

CShareData.h の 720 行で定義されています。

参照元 CDlgTagsMake::GetData()・CDlgTagsMake::SetData().

int DLLSHAREDATA::m_nTransformFileNameArrNum

CShareData.h の 650 行で定義されています。

参照元 CShareData::ShareData_IO_Nickname()・CShareData::TransformFileName_MakeCache().

EditNode DLLSHAREDATA::m_pEditArr[MAX_EDITWINDOWS]

CShareData.h の 633 行で定義されています。

参照元 CEditView::Command_MINIMIZE_ALL()・CRecent::EasyCreate()・CShareData::GetEditNode()・CShareData::GetEditNodeAt()・CShareData::GetEditorWindowsNum()・CShareData::GetOpenedWindowArrCore()・CTabWnd::HideOtherWindows()・CShareData::IsPathOpened()・CEditWnd::OnCommand()・CShareData::ResetGroupId()・CEditWnd::WindowTopMost().

KEYDATA DLLSHAREDATA::m_pKeyNameArr[100]

CShareData.h の 691 行で定義されています。

参照元 CPropCommon::ApplyData()・CEditApp::CEditApp()・CEditView::Command_CREATEKEYBINDLIST()・CEditWnd::DispatchEvent()・CPropCommon::InitData()・CDlgFuncList::Key2Command()・CMenuDrawer::MyAppendMenu()・CEditWnd::OnCommand()・CEditView::OnMBUTTONDOWN()・CEditView::OnRBUTTONUP()・CFuncKeyWnd::OnTimer()・CEditView::OnXLBUTTONDOWN()・CEditView::OnXRBUTTONDOWN()・CShareData::SetKeyNameArrVal()・CShareData::ShareData_IO_KeyBind().

PRINTSETTING DLLSHAREDATA::m_PrintSettingArr[MAX_PRINTSETTINGARR]

CShareData.h の 694 行で定義されています。

参照元 CEditWnd::OnPrintPageSetting()・CEditWnd::PrintPreviewModeONOFF()・CShareData::ShareData_IO_Print().

char DLLSHAREDATA::m_szCmdArr[MAX_CMDARR][MAX_CMDLEN]

CShareData.h の 679 行で定義されています。

参照元 CRecent::EasyCreate()・CDlgExec::SetData()・CShareData::ShareData_IO_Cmd().

char DLLSHAREDATA::m_szGREPFILEArr[MAX_GREPFILE][_MAX_PATH]

CShareData.h の 661 行で定義されています。

参照元 CMacro::AddLParam()・CDlgGrep::CDlgGrep()・CRecent::EasyCreate()・CShareData::ShareData_IO_Grep().

char DLLSHAREDATA::m_szGREPFOLDERArr[MAX_GREPFOLDER][_MAX_PATH]

CShareData.h の 664 行で定義されています。

参照元 CMacro::AddLParam()・CDlgGrep::CDlgGrep()・CRecent::EasyCreate().

char DLLSHAREDATA::m_szIMPORTFOLDER[_MAX_PATH]

CShareData.h の 668 行で定義されています。

参照元 CPropTypes::Export_KeyHelp()・CPropTypes::Export_Regex()・CPropTypes::Import_KeyHelp()・CPropTypes::Import_Regex()・CPropTypes::p3_Export_Colors()・CPropTypes::p3_Import_Colors()・CPropCommon::p5_Export_KeySetting()・CPropCommon::p5_Import_KeySetting()・CPropCommon::p7_Export_List_KeyWord()・CPropCommon::p7_Import_List_KeyWord()・CPropCommon::p8_Export_CustMenuSetting()・CPropCommon::p8_Import_CustMenuSetting()・PropSheetWndProc()・CShareData::ShareData_IO_Folders().

char DLLSHAREDATA::m_szKeyMacroFileName[MAX_PATH]

CShareData.h の 709 行で定義されています。

参照元 CEditView::Command_EXECKEYMACRO()・CEditView::Command_RECKEYMACRO()・CShareData::Init()・CEditWnd::IsFuncEnable().

char DLLSHAREDATA::m_szKeyWordSetDir[MAX_PATH]

CShareData.h の 698 行で定義されています。

char DLLSHAREDATA::m_szMACROFOLDER[_MAX_PATH]

CShareData.h の 667 行で定義されています。

参照元 CEditView::Command_LOADKEYMACRO()・CShareData::GetMacroFilename()・CShareData::ShareData_IO_Folders().

char DLLSHAREDATA::m_szOPENFOLDERArr[MAX_OPENFOLDER][_MAX_PATH]

CShareData.h の 647 行で定義されています。

参照元 CRecent::EasyCreate().

char DLLSHAREDATA::m_szREPLACEKEYArr[MAX_REPLACEKEY][_MAX_PATH]

CShareData.h の 658 行で定義されています。

参照元 CMacro::AddLParam()・CEditView::Command_REPLACE_DIALOG()・CRecent::EasyCreate()・CShareData::Init().

char DLLSHAREDATA::m_szSEARCHKEYArr[MAX_SEARCHKEY][_MAX_PATH]

CShareData.h の 655 行で定義されています。

参照元 CMacro::AddLParam()・CDlgGrep::CDlgGrep()・CEditView::ChangeCurRegexp()・CEditView::Command_BOOKMARK_PATTERN()・CEditView::Command_GREP_DIALOG()・CEditView::Command_SEARCH_CLEARMARK()・CEditView::Command_SEARCH_NEXT()・CEditView::Command_SEARCH_PREV()・CEditWnd::CreateToolBar()・CEditApp::DoGrep()・CRecent::EasyCreate()・CEditView::GetCurrentTextForSearchDlg()・CShareData::Init()・CDlgReplace::SetData()・CDlgGrep::SetData()・CDlgFind::SetData()・CShareData::ShareData_IO_Keys().

char DLLSHAREDATA::m_szTagJumpKeywordArr[MAX_TAGJUMP_KEYWORD][_MAX_PATH]

CShareData.h の 723 行で定義されています。

参照元 CRecent::EasyCreate().

char DLLSHAREDATA::m_szTagsCmdLine[_MAX_PATH]

CShareData.h の 719 行で定義されています。

参照元 CDlgTagsMake::GetData()・CDlgTagsMake::SetData().

char DLLSHAREDATA::m_szTransformFileNameFrom[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CShareData.h の 651 行で定義されています。

参照元 CShareData::ShareData_IO_Nickname()・CShareData::TransformFileName_MakeCache().

char DLLSHAREDATA::m_szTransformFileNameTo[MAX_TRANSFORM_FILENAME][_MAX_PATH]

CShareData.h の 652 行で定義されています。

参照元 CShareData::GetTransformFileNameFast()・CShareData::ShareData_IO_Nickname().

char DLLSHAREDATA::m_szWork[32000]

CShareData.h の 621 行で定義されています。

参照元 CEditView::Command_COMPARE()・CEditView::Command_TAGJUMPBACK()・CEditView::MakeDiffTmpFile()・CDlgFuncList::OnJump()・CEditView::TagJumpSub()・CShareData::TraceOut().

TagJump DLLSHAREDATA::m_TagJump[MAX_TAGJUMPNUM]

タグジャンプ情報

CShareData.h の 676 行で定義されています。

参照元 CShareData::PopTagJump()・CShareData::PushTagJump().

int DLLSHAREDATA::m_TagJumpNum

タグジャンプ情報の有効データ数

CShareData.h の 674 行で定義されています。

参照元 CShareData::PopTagJump()・CShareData::PushTagJump().

int DLLSHAREDATA::m_TagJumpTop

スタックの一番上の位置

CShareData.h の 675 行で定義されています。

参照元 CShareData::PopTagJump()・CShareData::PushTagJump().

Types DLLSHAREDATA::m_Types[MAX_TYPES]

CShareData.h の 701 行で定義されています。

参照元 CPropCommon::ApplyData()・CPropCommon::DispatchEvent_p7()・CDlgOpenFile::DoModalOpenDlg()・CShareData::ExtHTMLHelpIsSet()・CShareData::ExtWinHelpIsSet()・CShareData::GetDocumentTypeExt()・CShareData::GetExtHTMLHelp()・CShareData::GetExtWinHelp()・CShareData::HTMLHelpIsSingle()・CPropCommon::InitData()・CShareData::InitTypeConfig()・CEditDoc::OpenPropertySheetTypes()・CDlgTypeList::SetData()・CShareData::ShareData_IO_Types().

unsigned int DLLSHAREDATA::m_vStructureVersion

データ構造 Version

CShareData.h の 619 行で定義されています。

参照元 CShareData::Init().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

DLLSHAREDATA メンバ一覧

これは全メンバの一覧です。DLLSHAREDATA継承メンバも含んでいます。

m_bEditWndChanging | DLLSHAREDATA
m_bLineNumIsCRLF | DLLSHAREDATA
m_bMRUArrFavorite | DLLSHAREDATA
m_bOPENFOLDERArrFavorite | DLLSHAREDATA
m_bRecordingKeyMacro | DLLSHAREDATA
m_bTagJumpAnyWhere | DLLSHAREDATA
m_bTagJumpICase | DLLSHAREDATA
m_CKeyWordSetMgr | DLLSHAREDATA
m_Common | DLLSHAREDATA
m_dwProductVersionLS | DLLSHAREDATA
m_dwProductVersionMS | DLLSHAREDATA
m_FileInfo_MYWM_GETFILEINFO | DLLSHAREDATA
m_fiMRUArr | DLLSHAREDATA
m_hAccel | DLLSHAREDATA
m_hwndDebug | DLLSHAREDATA
m_hwndRecordingKeyMacro | DLLSHAREDATA
m_hwndTray | DLLSHAREDATA
m_IniFolder | DLLSHAREDATA
m_MacroTable | DLLSHAREDATA
m_nCmdArrNum | DLLSHAREDATA
m_nDiffFlgOpt | DLLSHAREDATA
m_nEditArrNum | DLLSHAREDATA
m_nExecFlgOpt | DLLSHAREDATA
m_nGREPFILEArrNum | DLLSHAREDATA
m_nGREPFOLDERArrNum | DLLSHAREDATA
m_nGroupSequences | DLLSHAREDATA
m_nKeyNameArrNum | DLLSHAREDATA
m_nMRUArrNum | DLLSHAREDATA
m_nOPENFOLDERArrNum | DLLSHAREDATA
m_nREPLACEKEYArrNum | DLLSHAREDATA
m_nSEARCHKEYArrNum | DLLSHAREDATA
m_nSequences | DLLSHAREDATA
m_nTagJumpKeywordArrNum | DLLSHAREDATA
m_nTagsOpt | DLLSHAREDATA
m_nTransformFileNameArrNum | DLLSHAREDATA
m_pEditArr | DLLSHAREDATA
m_pKeyNameArr | DLLSHAREDATA
m_PrintSettingArr | DLLSHAREDATA
m_szCmdArr | DLLSHAREDATA
m_szGREPFILEArr | DLLSHAREDATA
m_szGREPFOLDERArr | DLLSHAREDATA
m_szIMPORTFOLDER | DLLSHAREDATA
m_szKeyMacroFileName | DLLSHAREDATA
m_szKeyWordSetDir | DLLSHAREDATA
m_szMACROFOLDER | DLLSHAREDATA
m_szOPENFOLDERArr | DLLSHAREDATA
m_szREPLACEKEYArr | DLLSHAREDATA
m_szSEARCHKEYArr | DLLSHAREDATA
m_szTagJumpKeywordArr | DLLSHAREDATA
m_szTagsCmdLine | DLLSHAREDATA
m_szTransformFileNameFrom | DLLSHAREDATA
m_szTransformFileNameTo | DLLSHAREDATA
m_szWork | DLLSHAREDATA
m_TagJump | DLLSHAREDATA
m_TagJumpNum | DLLSHAREDATA
m_TagJumpTop | DLLSHAREDATA
m_Types | DLLSHAREDATA
m_vStructureVersion | DLLSHAREDATA

Sakura-Editorに対してSat Oct 27 02:36:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 DocLineReplaceArg

  • 構成
  • クラス階層
  • 構成メンバ

構造体 DocLineReplaceArg

#include <CDocLineMgr.h>

DocLineReplaceArgのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

int | nDelLineFrom
int | nDelPosFrom
int | nDelLineTo
int | nDelPosTo
CMemory * pcmemDeleted
int | nDeletedLineNum
const char * | pInsData
int | nInsDataLen
int | nInsLineNum
int | nNewLine
int | nNewPos

説明

CDocLineMgr.h の 32 行で定義されています。

変数

int DocLineReplaceArg::nDeletedLineNum

CDocLineMgr.h の 38 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nDelLineFrom

CDocLineMgr.h の 33 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nDelLineTo

CDocLineMgr.h の 35 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nDelPosFrom

CDocLineMgr.h の 34 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nDelPosTo

CDocLineMgr.h の 36 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nInsDataLen

CDocLineMgr.h の 40 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nInsLineNum

CDocLineMgr.h の 41 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nNewLine

CDocLineMgr.h の 42 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

int DocLineReplaceArg::nNewPos

CDocLineMgr.h の 43 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

CMemory* DocLineReplaceArg::pcmemDeleted

CDocLineMgr.h の 37 行で定義されています。

参照元 CDocLineMgr::ReplaceData()・CLayoutMgr::ReplaceData_CLayoutMgr().

const char* DocLineReplaceArg::pInsData

CDocLineMgr.h の 39 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

この構造体の説明は次のファイルから生成されました:
  • CDocLineMgr.h
Sakura-Editorに対してSat Oct 27 02:36:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

DocLineReplaceArg メンバ一覧

これは全メンバの一覧です。DocLineReplaceArg継承メンバも含んでいます。

nDeletedLineNum | DocLineReplaceArg
nDelLineFrom | DocLineReplaceArg
nDelLineTo | DocLineReplaceArg
nDelPosFrom | DocLineReplaceArg
nDelPosTo | DocLineReplaceArg
nInsDataLen | DocLineReplaceArg
nInsLineNum | DocLineReplaceArg
nNewLine | DocLineReplaceArg
nNewPos | DocLineReplaceArg
pcmemDeleted | DocLineReplaceArg
pInsData | DocLineReplaceArg

Sakura-Editorに対してSat Oct 27 02:36:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 EditNode

  • 構成
  • クラス階層
  • 構成メンバ

構造体 EditNode

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

int | m_nIndex
int | m_nGroup
HWND | m_hWnd
char | m_szTabCaption [_MAX_PATH]
char | m_szFilePath [_MAX_PATH]
BOOL | m_bIsGrep
UINT | m_showCmdRestore
BOOL | m_bClosing

説明

CShareData.h の 146 行で定義されています。

変数

BOOL EditNode::m_bClosing

終了中か（「最後のファイルを閉じても(無題)を残す」用）

CShareData.h の 154 行で定義されています。

BOOL EditNode::m_bIsGrep

Grepのウィンドウか

CShareData.h の 152 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify()・CTabWnd::GetImageIndex().

HWND EditNode::m_hWnd

CShareData.h の 149 行で定義されています。

参照元 CTabWnd::AdjustWindowPlacement()・CEditView::Command_MINIMIZE_ALL()・CEditWnd::Create()・CShareData::GetEditNode()・CShareData::GetEditNodeAt()・CShareData::GetEditorWindowsNum()・CShareData::GetOpenedWindowArrCore()・CShareData::GetTopEditWnd()・CTabWnd::HideOtherWindows()・CShareData::IsPathOpened()・CEditWnd::OnCommand()・CEditWnd::OnSize()・CShareData::ResetGroupId()・CTabWnd::SeparateGroup()・CEditWnd::WindowTopMost().

int EditNode::m_nGroup

グループID

CShareData.h の 148 行で定義されています。

参照元 CShareData::AddEditWndList()・CShareData::GetEditNodeAt()・CShareData::GetGroupId()・CShareData::ResetGroupId()・CTabWnd::SeparateGroup()・CShareData::SeparateGroup().

int EditNode::m_nIndex

CShareData.h の 147 行で定義されています。

参照元 CShareData::SeparateGroup()・CEditWnd::WinListMenu().

UINT EditNode::m_showCmdRestore

元のサイズに戻すときのサイズ種別

CShareData.h の 153 行で定義されています。

参照元 CTabWnd::AdjustWindowPlacement()・CEditWnd::Create()・CEditWnd::OnSize().

char EditNode::m_szFilePath[_MAX_PATH]

タブウインドウ用：ファイル名

CShareData.h の 151 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify()・CTabWnd::GetImageIndex()・CTabWnd::GetTabName().

char EditNode::m_szTabCaption[_MAX_PATH]

タブウインドウ用：キャプション名

CShareData.h の 150 行で定義されています。

参照元 CEditWnd::ChangeFileNameNotify()・CTabWnd::GetTabName().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

EditNode メンバ一覧

これは全メンバの一覧です。EditNode継承メンバも含んでいます。

m_bClosing | EditNode
m_bIsGrep | EditNode
m_hWnd | EditNode
m_nGroup | EditNode
m_nIndex | EditNode
m_showCmdRestore | EditNode
m_szFilePath | EditNode
m_szTabCaption | EditNode

Sakura-Editorに対してSat Oct 27 02:36:25 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 EditNodeEx

  • 構成
  • クラス階層
  • 構成メンバ

構造体 EditNodeEx

EditNodeExのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

EditNode * p
int nGroupMru

説明

CShareData.cpp の 1453 行で定義されています。

変数

int EditNodeEx::nGroupMru

CShareData.cpp の 1455 行で定義されています。

参照元 CShareData::GetOpenedWindowArrCore().

EditNode* EditNodeEx::p

CShareData.cpp の 1454 行で定義されています。

参照元 CShareData::GetOpenedWindowArrCore().

この構造体の説明は次のファイルから生成されました:
  • CShareData.cpp
Sakura-Editorに対してSat Oct 27 02:36:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

EditNodeEx メンバ一覧

これは全メンバの一覧です。EditNodeEx継承メンバも含んでいます。

nGroupMru | EditNodeEx
p | EditNodeEx

Sakura-Editorに対してSat Oct 27 02:36:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 EncodingInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 EncodingInfo_t

#include <charcode.h>

すべてのメンバ一覧

Public 変数

enumCodeType eCodeID
int | nSpecBytes
int | nDiff

説明

charcode.h の 117 行で定義されています。

変数

enumCodeType EncodingInfo_t::eCodeID

charcode.h の 118 行で定義されています。

参照元 Charcode::GetEncdInf_EucJp()・Charcode::GetEncdInf_SJis()・Charcode::GetEncdInf_Utf7()・Charcode::GetEncdInf_Utf8().

int EncodingInfo_t::nDiff

charcode.h の 120 行で定義されています。

参照元 Charcode::GetEncdInf_EucJp()・Charcode::GetEncdInf_SJis()・Charcode::GetEncdInf_Utf7()・Charcode::GetEncdInf_Utf8().

int EncodingInfo_t::nSpecBytes

charcode.h の 119 行で定義されています。

参照元 Charcode::GetEncdInf_EucJp()・Charcode::GetEncdInf_SJis()・Charcode::GetEncdInf_Utf7()・Charcode::GetEncdInf_Utf8().

この構造体の説明は次のファイルから生成されました:
  • charcode.h
Sakura-Editorに対してSat Oct 27 02:36:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

EncodingInfo_t メンバ一覧

これは全メンバの一覧です。EncodingInfo_t継承メンバも含んでいます。

eCodeID | EncodingInfo_t
nDiff | EncodingInfo_t
nSpecBytes | EncodingInfo_t

Sakura-Editorに対してSat Oct 27 02:36:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 FileInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 FileInfo

#include <CShareData.h>

すべてのメンバ一覧

Public メソッド

FileInfo ()

Public 変数

int | m_nViewTopLine
int | m_nViewLeftCol
int | m_nX
int | m_nY
int | m_bIsModified
int | m_nCharCode
char | m_szPath [_MAX_PATH]
BOOL | m_bIsGrep
BOOL | m_bIsDebug
char | m_szGrepKey [1024]
char | m_szMarkLines [MAX_MARKLINES_LEN+1]
char | m_szDocType [MAX_DOCTYPE_LEN+1]
int | m_nWindowSizeX
int | m_nWindowSizeY
int | m_nWindowOriginX
int | m_nWindowOriginY

説明

ファイル情報

日付:
2002.03.07 genta m_szDocType追加

2003.01.26 aroka m_nWindowSizeX/Y m_nWindowOriginX/Y追加

CShareData.h の 96 行で定義されています。

コンストラクタとデストラクタ

FileInfo::FileInfo ( ) [inline]

CShareData.h の 116 行で定義されています。

参照先 m_szDocType・m_szMarkLines・m_szPath.

変数

BOOL FileInfo::m_bIsDebug

デバッグモードか(アウトプットウインドウ)

CShareData.h の 105 行で定義されています。

参照元 CEditDoc::SetFileInfo().

BOOL FileInfo::m_bIsGrep

Grepのウィンドウか

CShareData.h の 104 行で定義されています。

参照元 CEditDoc::SetFileInfo()・CEditWnd::WinListMenu().

int FileInfo::m_bIsModified

変更フラグ

CShareData.h の 101 行で定義されています。

参照元 CDlgDiff::GetData()・CDlgDiff::SetData()・CDlgCompare::SetData()・CEditDoc::SetFileInfo()・CEditWnd::WinListMenu().

int FileInfo::m_nCharCode

文字コード種別

CShareData.h の 102 行で定義されています。

参照元 CEditView::Command_INSFILE()・CMRU::CreateMenu()・CNormalProcess::Initialize()・CShareData::IsPathOpened()・CEditWnd::OnCommand()・CEditApp::OpenNewEditor2()・CCommandLine::ParseCommandLine()・CDlgDiff::SetData()・CDlgCompare::SetData()・CEditDoc::SetFileInfo()・CShareData::ShareData_IO_Mru()・CEditView::TagJumpSub()・CEditWnd::WinListMenu().

int FileInfo::m_nViewLeftCol

表示域の一番左の桁(0開始)

CShareData.h の 98 行で定義されています。

参照元 CEditApp::OpenNewEditor2()・CEditDoc::SetFileInfo()・CShareData::ShareData_IO_Mru()・CEditView::TagJumpSub().

int FileInfo::m_nViewTopLine

表示域の一番上の行(0開始)

CShareData.h の 97 行で定義されています。

参照元 CEditApp::OpenNewEditor2()・CEditDoc::SetFileInfo()・CShareData::ShareData_IO_Mru()・CEditView::TagJumpSub().

int FileInfo::m_nWindowOriginX

ウィンドウ 物理位置(ピクセル数・マイナス値も有効)

CShareData.h の 111 行で定義されています。

参照元 CEditWnd::Create().

int FileInfo::m_nWindowOriginY

ウィンドウ 物理位置(ピクセル数・マイナス値も有効)

CShareData.h の 112 行で定義されています。

参照元 CEditWnd::Create().

int FileInfo::m_nWindowSizeX

ウィンドウ 幅(ピクセル数)

CShareData.h の 109 行で定義されています。

参照元 CEditWnd::Create().

int FileInfo::m_nWindowSizeY

ウィンドウ 高さ(ピクセル数)

CShareData.h の 110 行で定義されています。

参照元 CEditWnd::Create().

int FileInfo::m_nX

カーソル 物理位置(行頭からのバイト数)

CShareData.h の 99 行で定義されています。

参照元 CNormalProcess::Initialize()・CEditApp::OpenNewEditor2()・CEditDoc::SetFileInfo()・CShareData::ShareData_IO_Mru()・CEditView::TagJumpSub().

int FileInfo::m_nY

カーソル 物理位置(折り返し無し行位置)

CShareData.h の 100 行で定義されています。

参照元 CNormalProcess::Initialize()・CEditApp::OpenNewEditor2()・CEditDoc::SetFileInfo()・CShareData::ShareData_IO_Mru()・CEditView::TagJumpSub().

char FileInfo::m_szDocType[MAX_DOCTYPE_LEN+1]

文書タイプ

CShareData.h の 108 行で定義されています。

参照元 FileInfo().

char FileInfo::m_szGrepKey[1024]

CShareData.h の 106 行で定義されています。

参照元 CEditDoc::SetFileInfo()・CEditWnd::WinListMenu().

char FileInfo::m_szMarkLines[MAX_MARKLINES_LEN+1]

ブックマークの物理行リスト

CShareData.h の 107 行で定義されています。

参照元 CEditDoc::AddToMRU()・FileInfo()・CShareData::ShareData_IO_Mru().

char FileInfo::m_szPath[_MAX_PATH]

ファイル名

CShareData.h の 103 行で定義されています。

参照元 CMRU::Add()・CMRU::CreateMenu()・FileInfo()・CDlgDiff::GetData()・CDlgCompare::GetData()・CNormalProcess::Initialize()・CShareData::IsPathOpened()・CEditWnd::OnCommand()・CEditApp::OpenNewEditor2()・CDlgDiff::SetData()・CDlgCompare::SetData()・CEditDoc::SetFileInfo()・CShareData::ShareData_IO_Mru()・CEditView::TagJumpSub()・CEditWnd::WinListMenu().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

FileInfo メンバ一覧

これは全メンバの一覧です。FileInfo継承メンバも含んでいます。

FileInfo() | FileInfo | [inline]
m_bIsDebug | FileInfo |
m_bIsGrep | FileInfo |
m_bIsModified | FileInfo |
m_nCharCode | FileInfo |
m_nViewLeftCol | FileInfo |
m_nViewTopLine | FileInfo |
m_nWindowOriginX | FileInfo |
m_nWindowOriginY | FileInfo |
m_nWindowSizeX | FileInfo |
m_nWindowSizeY | FileInfo |
m_nX | FileInfo |
m_nY | FileInfo |
m_szDocType | FileInfo |
m_szGrepKey | FileInfo |
m_szMarkLines | FileInfo |
m_szPath | FileInfo |

Sakura-Editorに対してSat Oct 27 02:36:26 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 GrepInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 GrepInfo

#include <CShareData.h>

GrepInfoのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

CMemory cmGrepKey
CMemory cmGrepFile
CMemory cmGrepFolder
bool | bGrepWordOnly
bool | bGrepSubFolder
bool | bGrepNoIgnoreCase
bool | bGrepRegularExp
bool | bGrepOutputLine
int | nGrepOutputStyle
int | nGrepCharSet

説明

検索オプション 20020118 aroka

CShareData.h の 132 行で定義されています。

変数

bool GrepInfo::bGrepNoIgnoreCase

大文字と小文字を区別する

CShareData.h の 138 行で定義されています。

参照元 CCommandLine::CCommandLine().

bool GrepInfo::bGrepOutputLine

結果出力で該当行を出力する

CShareData.h の 140 行で定義されています。

参照元 CCommandLine::CCommandLine().

bool GrepInfo::bGrepRegularExp

正規表現を使用する

CShareData.h の 139 行で定義されています。

参照元 CCommandLine::CCommandLine().

bool GrepInfo::bGrepSubFolder

サブフォルダを検索する

CShareData.h の 137 行で定義されています。

参照元 CCommandLine::CCommandLine().

bool GrepInfo::bGrepWordOnly

単語単位で探す

CShareData.h の 136 行で定義されています。

参照元 CCommandLine::CCommandLine().

CMemory GrepInfo::cmGrepFile

検索対象ファイル

CShareData.h の 134 行で定義されています。

CMemory GrepInfo::cmGrepFolder

検索対象フォルダ

CShareData.h の 135 行で定義されています。

CMemory GrepInfo::cmGrepKey

検索キー

CShareData.h の 133 行で定義されています。

int GrepInfo::nGrepCharSet

文字コードセット

CShareData.h の 142 行で定義されています。

参照元 CCommandLine::CCommandLine().

int GrepInfo::nGrepOutputStyle

結果出力形式

CShareData.h の 141 行で定義されています。

参照元 CCommandLine::CCommandLine().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

GrepInfo メンバ一覧

これは全メンバの一覧です。GrepInfo継承メンバも含んでいます。

bGrepNoIgnoreCase | GrepInfo
bGrepOutputLine | GrepInfo
bGrepRegularExp | GrepInfo
bGrepSubFolder | GrepInfo
bGrepWordOnly | GrepInfo
cmGrepFile | GrepInfo
cmGrepFolder | GrepInfo
cmGrepKey | GrepInfo
nGrepCharSet | GrepInfo
nGrepOutputStyle | GrepInfo

Sakura-Editorに対してSat Oct 27 02:36:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 HANKAKKO_T

  • 構成
  • クラス階層
  • 構成メンバ

構造体 HANKAKKO_T

半角括弧の対応表 [詳細]

すべてのメンバ一覧

Public 変数

char * | sStr
char * | eStr

説明

半角括弧の対応表

CEditView_New2.cpp の 872 行で定義されています。

変数

char* HANKAKKO_T::eStr

CEditView_New2.cpp の 874 行で定義されています。

参照元 CEditView::SearchBracket().

char* HANKAKKO_T::sStr

CEditView_New2.cpp の 873 行で定義されています。

参照元 CEditView::IsBracket()・CEditView::SearchBracket().

この構造体の説明は次のファイルから生成されました:
  • CEditView_New2.cpp
Sakura-Editorに対してSat Oct 27 02:36:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

HANKAKKO_T メンバ一覧

これは全メンバの一覧です。HANKAKKO_T継承メンバも含んでいます。

eStr | HANKAKKO_T
sStr | HANKAKKO_T

Sakura-Editorに対してSat Oct 27 02:36:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス IDataObject

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDataObject

IDataObjectに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Oct 27 02:36:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス IDispatch

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDispatch

IDispatchに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CWSH.h
Sakura-Editorに対してSat Oct 27 02:36:27 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス IDropSource

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDropSource

IDropSourceに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Oct 27 02:36:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス IDropTarget

  • 構成
  • クラス階層
  • 構成メンバ

クラス IDropTarget

IDropTargetに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CDropTarget.h
Sakura-Editorに対してSat Oct 27 02:36:28 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス テンプレート ImplementsIUnknown< Base >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート ImplementsIUnknown< Base >

#include <CWSH.h>

ImplementsIUnknown< Base >に対する継承グラフ

[凡例]
すべてのメンバ一覧

Public メソッド

virtual HRESULT STDMETHODCALLTYPE | QueryInterface (REFIID iid, void **ppvObject)
virtual ULONG STDMETHODCALLTYPE | AddRef ()
virtual ULONG STDMETHODCALLTYPE | Release ()
ImplementsIUnknown ()
virtual | ~ImplementsIUnknown ()

Private メソッド

ImplementsIUnknown (const ImplementsIUnknown &)
ImplementsIUnknown & | operator= (const ImplementsIUnknown &)

Private 変数

int | m_RefCount

説明

template<class Base>
class ImplementsIUnknown< Base >

CWSH.h の 36 行で定義されています。

コンストラクタとデストラクタ

template<class Base>
ImplementsIUnknown< Base >::ImplementsIUnknown ( const ImplementsIUnknown< Base > & ) [private]

template<class Base>
ImplementsIUnknown< Base >::ImplementsIUnknown ( ) [inline]

CWSH.h の 53 行で定義されています。

template<class Base>
virtual ImplementsIUnknown< Base >::~ImplementsIUnknown ( ) [inline, virtual]

CWSH.h の 54 行で定義されています。

関数

template<class Base>
virtual ULONG STDMETHODCALLTYPE ImplementsIUnknown< Base >::AddRef ( ) [inline, virtual]

CWSH.h の 50 行で定義されています。

参照元 CWSHClient::CWSHClient()・CWSHSite::GetItemInfo().

template<class Base>
ImplementsIUnknown& ImplementsIUnknown< Base >::operator= ( const ImplementsIUnknown< Base > & ) [private]

template<class Base>
virtual HRESULT STDMETHODCALLTYPE ImplementsIUnknown< Base >::QueryInterface | ( | REFIID | iid,
 |  | void ** | ppvObject
 | ) | [inline, virtual]

CInterfaceObjectで再定義されています。

CWSH.h の 46 行で定義されています。

template<class Base>
virtual ULONG STDMETHODCALLTYPE ImplementsIUnknown< Base >::Release ( ) [inline, virtual]

CWSH.h の 51 行で定義されています。

参照元 CWSHClient::~CWSHClient().

変数

template<class Base>
int ImplementsIUnknown< Base >::m_RefCount [private]

CWSH.h の 39 行で定義されています。

参照元 ImplementsIUnknown< IDispatch >::AddRef()・ImplementsIUnknown< IDispatch >::Release().

このクラスの説明は次のファイルから生成されました:
  • CWSH.h
Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ImplementsIUnknown< Base > メンバ一覧

これは全メンバの一覧です。ImplementsIUnknown< Base >継承メンバも含んでいます。

AddRef() | ImplementsIUnknown< Base > | [inline, virtual]
ImplementsIUnknown(const ImplementsIUnknown &) | ImplementsIUnknown< Base > | [private]
ImplementsIUnknown() | ImplementsIUnknown< Base > | [inline]
m_RefCount | ImplementsIUnknown< Base > | [private]
operator=(const ImplementsIUnknown &) | ImplementsIUnknown< Base > | [private]
QueryInterface(REFIID iid, void **ppvObject) | ImplementsIUnknown< Base > | [inline, virtual]
Release() | ImplementsIUnknown< Base > | [inline, virtual]
~ImplementsIUnknown() | ImplementsIUnknown< Base > | [inline, virtual]

Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 IniFolder

  • 構成
  • クラス階層
  • 構成メンバ

構造体 IniFolder

iniフォルダ設定 // 2007.05.31 ryoji [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

bool | m_bInit
bool | m_bReadPrivate
bool | m_bWritePrivate
TCHAR | m_szIniFile [_MAX_PATH]
TCHAR | m_szPrivateIniFile [_MAX_PATH]

説明

iniフォルダ設定 // 2007.05.31 ryoji

CShareData.h の 604 行で定義されています。

変数

bool IniFolder::m_bInit

CShareData.h の 605 行で定義されています。

参照元 CShareData::GetIniFileName()・CShareData::Init().

bool IniFolder::m_bReadPrivate

CShareData.h の 606 行で定義されています。

参照元 CShareData::GetIniFileName().

bool IniFolder::m_bWritePrivate

CShareData.h の 607 行で定義されています。

参照元 CShareData::GetIniFileName().

TCHAR IniFolder::m_szIniFile[_MAX_PATH]

CShareData.h の 608 行で定義されています。

参照元 CShareData::GetIniFileName().

TCHAR IniFolder::m_szPrivateIniFile[_MAX_PATH]

CShareData.h の 609 行で定義されています。

参照元 CShareData::GetIniFileName().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

IniFolder メンバ一覧

これは全メンバの一覧です。IniFolder継承メンバも含んでいます。

m_bInit | IniFolder
m_bReadPrivate | IniFolder
m_bWritePrivate | IniFolder
m_szIniFile | IniFolder
m_szPrivateIniFile | IniFolder

Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス ITypeInfo

  • 構成
  • クラス階層
  • 構成メンバ

クラス ITypeInfo

ITypeInfoに対する継承グラフ

[凡例]
このクラスの説明は次のファイルから生成されました:
  • CWSH.h
Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 KEYDATA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 KEYDATA

キー情報を保持する [詳細]

#include <CKeyBind.h>

すべてのメンバ一覧

Public 変数

short | m_nKeyCode
char | m_szKeyName [64]
int | m_nFuncCodeArr [8]

説明

キー情報を保持する

CKeyBind.h の 23 行で定義されています。

変数

int KEYDATA::m_nFuncCodeArr[8]

対応する機能番号

SHIFT, CTRL, ALTの３つのシフト状態のそれぞれに対して 機能を割り当てるため、配列になっている。

CKeyBind.h の 36 行で定義されています。

参照元 CPropCommon::DispatchEvent_p5()・CKeyBind::GetFuncCodeAt()・CEditView::OnMBUTTONDOWN()・CEditView::OnRBUTTONUP()・CEditView::OnXLBUTTONDOWN()・CEditView::OnXRBUTTONDOWN()・CShareData::SetKeyNameArrVal().

short KEYDATA::m_nKeyCode

キーコード

CKeyBind.h の 25 行で定義されています。

参照元 CKeyBind::GetFuncCodeAt()・CShareData::SetKeyNameArrVal().

char KEYDATA::m_szKeyName[64]

キーの名前

CKeyBind.h の 29 行で定義されています。

参照元 CShareData::SetKeyNameArrVal().

この構造体の説明は次のファイルから生成されました:
  • CKeyBind.h
Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

KEYDATA メンバ一覧

これは全メンバの一覧です。KEYDATA継承メンバも含んでいます。

m_nFuncCodeArr | KEYDATA
m_nKeyCode | KEYDATA
m_szKeyName | KEYDATA

Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 KeyHelpInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 KeyHelpInfo

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

int | m_nUse
char | m_szAbout [DICT_ABOUT_LEN]
char | m_szPath [_MAX_PATH]

説明

CShareData.h の 225 行で定義されています。

変数

int KeyHelpInfo::m_nUse

辞書を 使用する/しない

CShareData.h の 226 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

char KeyHelpInfo::m_szAbout[DICT_ABOUT_LEN]

辞書の説明(辞書ファイルの1行目から生成)

CShareData.h の 227 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

char KeyHelpInfo::m_szPath[_MAX_PATH]

ファイルパス

CShareData.h の 228 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

KeyHelpInfo メンバ一覧

これは全メンバの一覧です。KeyHelpInfo継承メンバも含んでいます。

m_nUse | KeyHelpInfo
m_szAbout | KeyHelpInfo
m_szPath | KeyHelpInfo

Sakura-Editorに対してSat Oct 27 02:36:29 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 LayoutReplaceArg

  • 構成
  • クラス階層
  • 構成メンバ

構造体 LayoutReplaceArg

#include <CLayoutMgr.h>

LayoutReplaceArgのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

int | nDelLineFrom
int | nDelColmFrom
int | nDelLineTo
int | nDelColmTo
CMemory * pcmemDeleted
const char * | pInsData
int | nInsDataLen
int | nAddLineNum
int | nModLineFrom
int | nModLineTo
int | nNewLine
int | nNewPos

説明

CLayoutMgr.h の 40 行で定義されています。

変数

int LayoutReplaceArg::nAddLineNum

再描画ヒント レイアウト行の増減

CLayoutMgr.h の 49 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nDelColmFrom

削除範囲位置From レイアウト行桁位置

CLayoutMgr.h の 42 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nDelColmTo

削除範囲位置To レイアウト行桁位置

CLayoutMgr.h の 44 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nDelLineFrom

削除範囲行 From レイアウト行番号

CLayoutMgr.h の 41 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nDelLineTo

削除範囲行 To レイアウト行番号

CLayoutMgr.h の 43 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nInsDataLen

挿入するデータの長さ

CLayoutMgr.h の 47 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nModLineFrom

再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う)

CLayoutMgr.h の 50 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nModLineTo

再描画ヒント 変更されたレイアウト行From(レイアウト行の増減が0のとき使う)

CLayoutMgr.h の 51 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nNewLine

挿入された部分の次の位置の行(レイアウト行)

CLayoutMgr.h の 53 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

int LayoutReplaceArg::nNewPos

挿入された部分の次の位置のデータ位置(レイアウト桁位置)

CLayoutMgr.h の 54 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

CMemory* LayoutReplaceArg::pcmemDeleted

削除されたデータ

CLayoutMgr.h の 45 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

const char* LayoutReplaceArg::pInsData

挿入するデータ

CLayoutMgr.h の 46 行で定義されています。

参照元 CLayoutMgr::ReplaceData_CLayoutMgr().

この構造体の説明は次のファイルから生成されました:
  • CLayoutMgr.h
Sakura-Editorに対してSat Oct 27 02:36:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

LayoutReplaceArg メンバ一覧

これは全メンバの一覧です。LayoutReplaceArg継承メンバも含んでいます。

nAddLineNum | LayoutReplaceArg
nDelColmFrom | LayoutReplaceArg
nDelColmTo | LayoutReplaceArg
nDelLineFrom | LayoutReplaceArg
nDelLineTo | LayoutReplaceArg
nInsDataLen | LayoutReplaceArg
nModLineFrom | LayoutReplaceArg
nModLineTo | LayoutReplaceArg
nNewLine | LayoutReplaceArg
nNewPos | LayoutReplaceArg
pcmemDeleted | LayoutReplaceArg
pInsData | LayoutReplaceArg

Sakura-Editorに対してSat Oct 27 02:36:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス テンプレート LockGuard< EXCLUSIVE_OBJECT >

  • 構成
  • クラス階層
  • 構成メンバ

クラス テンプレート LockGuard< EXCLUSIVE_OBJECT >

#include <CMutex.h>

LockGuard< EXCLUSIVE_OBJECT >のコラボレーション図

[凡例]
すべてのメンバ一覧

Public メソッド

LockGuard (EXCLUSIVE_OBJECT &ex)
template<class PARAM>
LockGuard (EXCLUSIVE_OBJECT &ex, PARAM p)
~LockGuard ()

Private 変数

EXCLUSIVE_OBJECT & o_

説明

template<class EXCLUSIVE_OBJECT>
class LockGuard< EXCLUSIVE_OBJECT >

スコープから抜けると同時にロックを解除する．

日付:
2007.07.07 genta 新規作成
    CMutex aMutex;

    void function()
    {
        //  other processing
        {
            LockGuard<CMutex> aGuard(aMutex);
            //  aMutex is locked
            //  do something protected by "aMutex"

        } // aMutex is automatically released
        //  other processing
    }

CMutex.h の 92 行で定義されています。

コンストラクタとデストラクタ

template<class EXCLUSIVE_OBJECT>
LockGuard< EXCLUSIVE_OBJECT >::LockGuard ( EXCLUSIVE_OBJECT & ex ) [inline]

CMutex.h の 95 行で定義されています。

参照先 LockGuard< EXCLUSIVE_OBJECT >::o_.

template<class EXCLUSIVE_OBJECT>
template<class PARAM>
LockGuard< EXCLUSIVE_OBJECT >::LockGuard | ( | EXCLUSIVE_OBJECT & | ex,
 |  | PARAM | p
 | ) | [inline]

CMutex.h の 99 行で定義されています。

参照先 LockGuard< EXCLUSIVE_OBJECT >::o_.

template<class EXCLUSIVE_OBJECT>
LockGuard< EXCLUSIVE_OBJECT >::~LockGuard ( ) [inline]

CMutex.h の 103 行で定義されています。

参照先 LockGuard< EXCLUSIVE_OBJECT >::o_.

変数

template<class EXCLUSIVE_OBJECT>
EXCLUSIVE_OBJECT& LockGuard< EXCLUSIVE_OBJECT >::o_ [private]

CMutex.h の 93 行で定義されています。

参照元 LockGuard< EXCLUSIVE_OBJECT >::LockGuard()・LockGuard< EXCLUSIVE_OBJECT >::~LockGuard().

このクラスの説明は次のファイルから生成されました:
  • CMutex.h
Sakura-Editorに対してSat Oct 27 02:36:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

LockGuard< EXCLUSIVE_OBJECT > メンバ一覧

これは全メンバの一覧です。LockGuard< EXCLUSIVE_OBJECT >継承メンバも含んでいます。

LockGuard(EXCLUSIVE_OBJECT &ex) | LockGuard< EXCLUSIVE_OBJECT > | [inline]
LockGuard(EXCLUSIVE_OBJECT &ex, PARAM p) | LockGuard< EXCLUSIVE_OBJECT > | [inline]
o_ | LockGuard< EXCLUSIVE_OBJECT > | [private]
~LockGuard() | LockGuard< EXCLUSIVE_OBJECT > | [inline]

Sakura-Editorに対してSat Oct 27 02:36:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 MacroFuncInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 MacroFuncInfo

#include <CSMacroMgr.h>

すべてのメンバ一覧

Public 変数

int | m_nFuncID
char * | m_pszFuncName
VARTYPE | m_varArguments [4]
VARTYPE | m_varResult
char * | m_pszData

説明

CSMacroMgr.h の 51 行で定義されています。

変数

int MacroFuncInfo::m_nFuncID

CSMacroMgr.h の 52 行で定義されています。

参照元 CWSHMacroManager::ReadyCommands()・CPPA::stdError().

char* MacroFuncInfo::m_pszData

CSMacroMgr.h の 58 行で定義されています。

char* MacroFuncInfo::m_pszFuncName

CSMacroMgr.h の 53 行で定義されています。

参照元 CSMacroMgr::GetFuncInfoByID()・CSMacroMgr::GetFuncInfoByName()・CPPA::InitDll()・CWSHMacroManager::ReadyCommands().

VARTYPE MacroFuncInfo::m_varArguments[4]

CSMacroMgr.h の 55 行で定義されています。

参照元 CPPA::GetDeclarations()・CWSHMacroManager::ReadyCommands().

VARTYPE MacroFuncInfo::m_varResult

CSMacroMgr.h の 57 行で定義されています。

参照元 CPPA::GetDeclarations()・CWSHMacroManager::ReadyCommands().

この構造体の説明は次のファイルから生成されました:
  • CSMacroMgr.h
Sakura-Editorに対してSat Oct 27 02:36:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

MacroFuncInfo メンバ一覧

これは全メンバの一覧です。MacroFuncInfo継承メンバも含んでいます。

m_nFuncID | MacroFuncInfo
m_pszData | MacroFuncInfo
m_pszFuncName | MacroFuncInfo
m_varArguments | MacroFuncInfo
m_varResult | MacroFuncInfo

Sakura-Editorに対してSat Oct 27 02:36:30 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 MacroRec

  • 構成
  • クラス階層
  • 構成メンバ

構造体 MacroRec

マクロ情報 [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public メソッド

bool | IsEnabled () const

Public 変数

char | m_szName [MACRONAME_MAX]
char | m_szFile [_MAX_PATH+1]
BOOL | m_bReloadWhenExecute

説明

マクロ情報

CShareData.h の 316 行で定義されています。

関数

bool MacroRec::IsEnabled ( void ) const [inline]

CShareData.h の 321 行で定義されています。

参照先 m_szFile.

参照元 CShareData::BeReloadWhenExecuteMacro()・CShareData::GetMacroFilename()・CSMacroMgr::IsEnabled().

変数

BOOL MacroRec::m_bReloadWhenExecute

CShareData.h の 319 行で定義されています。

参照元 CShareData::BeReloadWhenExecuteMacro()・CPropCommon::GetData_PROP_Macro()・CPropCommon::SetData_PROP_Macro().

char MacroRec::m_szFile[_MAX_PATH+1]

CShareData.h の 318 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::GetData_PROP_Macro()・CSMacroMgr::GetFile()・CShareData::GetMacroFilename()・CSMacroMgr::GetTitle()・IsEnabled()・CPropCommon::SetData_PROP_Macro().

char MacroRec::m_szName[MACRONAME_MAX]

CShareData.h の 317 行で定義されています。

参照元 CPropCommon::DispatchEvent_PROP_Macro()・CPropCommon::GetData_PROP_Macro()・CSMacroMgr::GetName()・CSMacroMgr::GetTitle()・CPropCommon::SetData_PROP_Macro().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

MacroRec メンバ一覧

これは全メンバの一覧です。MacroRec継承メンバも含んでいます。

IsEnabled() const | MacroRec | [inline]
m_bReloadWhenExecute | MacroRec |
m_szFile | MacroRec |
m_szName | MacroRec |

Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 MYDEVMODE

  • 構成
  • クラス階層
  • 構成メンバ

構造体 MYDEVMODE

#include <CPrint.h>

すべてのメンバ一覧

Public 変数

BOOL | m_bPrinterNotFound
char | m_szPrinterDriverName [_MAX_PATH+1]
char | m_szPrinterDeviceName [_MAX_PATH+1]
char | m_szPrinterOutputName [_MAX_PATH+1]
DWORD | dmFields
short | dmOrientation
short | dmPaperSize
short | dmPaperLength
short | dmPaperWidth
short | dmScale
short | dmCopies
short | dmDefaultSource
short | dmPrintQuality
short | dmColor
short | dmDuplex
short | dmYResolution
short | dmTTOption
short | dmCollate
BCHAR | dmFormName [CCHFORMNAME]
WORD | dmLogPixels
DWORD | dmBitsPerPel
DWORD | dmPelsWidth
DWORD | dmPelsHeight
DWORD | dmDisplayFlags
DWORD | dmDisplayFrequency

説明

CPrint.h の 22 行で定義されています。

変数

DWORD MYDEVMODE::dmBitsPerPel

CPrint.h の 43 行で定義されています。

short MYDEVMODE::dmCollate

CPrint.h の 40 行で定義されています。

short MYDEVMODE::dmColor

CPrint.h の 36 行で定義されています。

short MYDEVMODE::dmCopies

CPrint.h の 33 行で定義されています。

short MYDEVMODE::dmDefaultSource

CPrint.h の 34 行で定義されています。

DWORD MYDEVMODE::dmDisplayFlags

CPrint.h の 46 行で定義されています。

DWORD MYDEVMODE::dmDisplayFrequency

CPrint.h の 47 行で定義されています。

short MYDEVMODE::dmDuplex

CPrint.h の 37 行で定義されています。

DWORD MYDEVMODE::dmFields

CPrint.h の 27 行で定義されています。

参照元 CPrint::CreateDC()・CPrint::GetPaperSize()・CPrintPreview::OnChangePrintSetting()・CDlgPrintSetting::OnTimer()・CPrint::PrintDlg().

BCHAR MYDEVMODE::dmFormName[CCHFORMNAME]

CPrint.h の 41 行で定義されています。

WORD MYDEVMODE::dmLogPixels

CPrint.h の 42 行で定義されています。

short MYDEVMODE::dmOrientation

CPrint.h の 28 行で定義されています。

参照元 CPrint::CreateDC()・CPrintPreview::DispatchEvent_PPB()・CPrint::GetPaperSize()・CPrintPreview::OnChangePrintSetting()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrint::PrintDlg().

short MYDEVMODE::dmPaperLength

CPrint.h の 30 行で定義されています。

参照元 CPrint::CreateDC()・CPrint::GetPaperSize()・CPrintPreview::OnChangePrintSetting()・CPrint::PrintDlg().

short MYDEVMODE::dmPaperSize

CPrint.h の 29 行で定義されています。

参照元 CPrint::CreateDC()・CPrintPreview::DispatchEvent_PPB()・CPrint::GetPaperSize()・CPrintPreview::OnChangePrintSetting()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrint::PrintDlg().

short MYDEVMODE::dmPaperWidth

CPrint.h の 31 行で定義されています。

参照元 CPrint::CreateDC()・CPrint::GetPaperSize()・CPrintPreview::OnChangePrintSetting()・CPrint::PrintDlg().

DWORD MYDEVMODE::dmPelsHeight

CPrint.h の 45 行で定義されています。

DWORD MYDEVMODE::dmPelsWidth

CPrint.h の 44 行で定義されています。

short MYDEVMODE::dmPrintQuality

CPrint.h の 35 行で定義されています。

short MYDEVMODE::dmScale

CPrint.h の 32 行で定義されています。

short MYDEVMODE::dmTTOption

CPrint.h の 39 行で定義されています。

short MYDEVMODE::dmYResolution

CPrint.h の 38 行で定義されています。

BOOL MYDEVMODE::m_bPrinterNotFound

CPrint.h の 23 行で定義されています。

参照元 CPrint::GetDefaultPrinter().

char MYDEVMODE::m_szPrinterDeviceName[_MAX_PATH+1]

CPrint.h の 25 行で定義されています。

参照元 CPrint::CreateDC()・CPrintPreview::OnPaint()・CPrint::PrintDlg()・CPrint::PrintOpen().

char MYDEVMODE::m_szPrinterDriverName[_MAX_PATH+1]

CPrint.h の 24 行で定義されています。

参照元 CPrint::CreateDC()・CPrint::PrintDlg().

char MYDEVMODE::m_szPrinterOutputName[_MAX_PATH+1]

CPrint.h の 26 行で定義されています。

参照元 CPrint::CreateDC()・CPrint::PrintDlg().

この構造体の説明は次のファイルから生成されました:
  • CPrint.h
Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

MYDEVMODE メンバ一覧

これは全メンバの一覧です。MYDEVMODE継承メンバも含んでいます。

dmBitsPerPel | MYDEVMODE
dmCollate | MYDEVMODE
dmColor | MYDEVMODE
dmCopies | MYDEVMODE
dmDefaultSource | MYDEVMODE
dmDisplayFlags | MYDEVMODE
dmDisplayFrequency | MYDEVMODE
dmDuplex | MYDEVMODE
dmFields | MYDEVMODE
dmFormName | MYDEVMODE
dmLogPixels | MYDEVMODE
dmOrientation | MYDEVMODE
dmPaperLength | MYDEVMODE
dmPaperSize | MYDEVMODE
dmPaperWidth | MYDEVMODE
dmPelsHeight | MYDEVMODE
dmPelsWidth | MYDEVMODE
dmPrintQuality | MYDEVMODE
dmScale | MYDEVMODE
dmTTOption | MYDEVMODE
dmYResolution | MYDEVMODE
m_bPrinterNotFound | MYDEVMODE
m_szPrinterDeviceName | MYDEVMODE
m_szPrinterDriverName | MYDEVMODE
m_szPrinterOutputName | MYDEVMODE

Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 oneRule

  • 構成
  • クラス階層
  • 構成メンバ

構造体 oneRule

すべてのメンバ一覧

Public 変数

char | szMatch [256]
int | nLength
char | szGroupName [256]

説明

ルールファイルの1行を管理する構造体

日付:
2002.04.01 YAZAKI

CEditDoc.cpp の 2394 行で定義されています。

変数

int oneRule::nLength

CEditDoc.cpp の 2396 行で定義されています。

参照元 CEditDoc::ReadRuleFile().

char oneRule::szGroupName[256]

CEditDoc.cpp の 2397 行で定義されています。

参照元 CEditDoc::ReadRuleFile().

char oneRule::szMatch[256]

CEditDoc.cpp の 2395 行で定義されています。

参照元 CEditDoc::ReadRuleFile().

この構造体の説明は次のファイルから生成されました:
  • CEditDoc.cpp
Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

oneRule メンバ一覧

これは全メンバの一覧です。oneRule継承メンバも含んでいます。

nLength | oneRule
szGroupName | oneRule
szMatch | oneRule

Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 OPENFILENAMEZ

  • 構成
  • クラス階層
  • 構成メンバ

構造体 OPENFILENAMEZ

#include <CDlgOpenFile.h>

すべてのメンバ一覧

Public 変数

void * | pvReserved
DWORD | dwReserved
DWORD | FlagsEx

説明

CDlgOpenFile.h の 38 行で定義されています。

変数

DWORD OPENFILENAMEZ::dwReserved

CDlgOpenFile.h の 40 行で定義されています。

DWORD OPENFILENAMEZ::FlagsEx

CDlgOpenFile.h の 41 行で定義されています。

void* OPENFILENAMEZ::pvReserved

CDlgOpenFile.h の 39 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CDlgOpenFile.h
Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

OPENFILENAMEZ メンバ一覧

これは全メンバの一覧です。OPENFILENAMEZ継承メンバも含んでいます。

dwReserved | OPENFILENAMEZ
FlagsEx | OPENFILENAMEZ
pvReserved | OPENFILENAMEZ

Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 PAPER_INFO

  • 構成
  • クラス階層
  • 構成メンバ

構造体 PAPER_INFO

用紙情報 [詳細]

#include <CPrint.h>

すべてのメンバ一覧

Public 変数

int | m_nId
用紙ID
int | m_nAllWidth
幅 (0.1mm単位)
int | m_nAllHeight
高さ (0.1mm単位)
const char * | m_pszName
用紙名称

説明

用紙情報

CPrint.h の 52 行で定義されています。

変数

int PAPER_INFO::m_nAllHeight

高さ (0.1mm単位)

CPrint.h の 55 行で定義されています。

参照元 CPrint::GetPaperSize().

int PAPER_INFO::m_nAllWidth

幅 (0.1mm単位)

CPrint.h の 54 行で定義されています。

参照元 CPrint::GetPaperSize().

int PAPER_INFO::m_nId

用紙ID

CPrint.h の 53 行で定義されています。

参照元 CDlgPrintSetting::SetData().

const char* PAPER_INFO::m_pszName

用紙名称

CPrint.h の 56 行で定義されています。

参照元 CPrint::GetPaperName().

この構造体の説明は次のファイルから生成されました:
  • CPrint.h
Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

PAPER_INFO メンバ一覧

これは全メンバの一覧です。PAPER_INFO継承メンバも含んでいます。

m_nAllHeight | PAPER_INFO
m_nAllWidth | PAPER_INFO
m_nId | PAPER_INFO
m_pszName | PAPER_INFO

Sakura-Editorに対してSat Oct 27 02:36:31 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 PRINTSETTING

  • 構成
  • クラス階層
  • 構成メンバ

構造体 PRINTSETTING

#include <CShareData.h>

PRINTSETTINGのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

char | m_szPrintSettingName [32+1]
char | m_szPrintFontFaceHan [LF_FACESIZE]
char | m_szPrintFontFaceZen [LF_FACESIZE]
int | m_nPrintFontWidth
int | m_nPrintFontHeight
int | m_nPrintDansuu
int | m_nPrintDanSpace
int | m_nPrintLineSpacing
int | m_nPrintMarginTY
int | m_nPrintMarginBY
int | m_nPrintMarginLX
int | m_nPrintMarginRX
int | m_nPrintPaperOrientation
int | m_nPrintPaperSize
BOOL | m_bPrintWordWrap
BOOL | m_bPrintKinsokuHead
BOOL | m_bPrintKinsokuTail
BOOL | m_bPrintKinsokuRet
BOOL | m_bPrintKinsokuKuto
BOOL | m_bPrintLineNumber
MYDEVMODE m_mdmDevMode
BOOL | m_bHeaderUse [3]
char | m_szHeaderForm [3][HEADER_MAX]
BOOL | m_bFooterUse [3]
char | m_szFooterForm [3][FOOTER_MAX]

説明

CShareData.h の 163 行で定義されています。

変数

BOOL PRINTSETTING::m_bFooterUse[3]

CShareData.h の 189 行で定義されています。

参照元 CPrint::SettingInitialize().

BOOL PRINTSETTING::m_bHeaderUse[3]

CShareData.h の 187 行で定義されています。

参照元 CPrint::SettingInitialize().

BOOL PRINTSETTING::m_bPrintKinsokuHead

行頭禁則する

CShareData.h の 179 行で定義されています。

参照元 CPrint::SettingInitialize().

BOOL PRINTSETTING::m_bPrintKinsokuKuto

句読点のぶらさげ

CShareData.h の 182 行で定義されています。

参照元 CPrint::SettingInitialize().

BOOL PRINTSETTING::m_bPrintKinsokuRet

改行文字のぶら下げ

CShareData.h の 181 行で定義されています。

参照元 CPrint::SettingInitialize().

BOOL PRINTSETTING::m_bPrintKinsokuTail

行末禁則する

CShareData.h の 180 行で定義されています。

参照元 CPrint::SettingInitialize().

BOOL PRINTSETTING::m_bPrintLineNumber

行番号を印刷する

CShareData.h の 183 行で定義されています。

参照元 CPrintPreview::OnChangePrintSetting()・CPrint::SettingInitialize().

BOOL PRINTSETTING::m_bPrintWordWrap

英文ワードラップする

CShareData.h の 178 行で定義されています。

参照元 CPrint::SettingInitialize().

MYDEVMODE PRINTSETTING::m_mdmDevMode

プリンタ設定 DEVMODE用

CShareData.h の 186 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::GetDefaultPrinterInfo()・CPrintPreview::OnChangePrintSetting()・CPrintPreview::OnPaint().

int PRINTSETTING::m_nPrintDanSpace

段と段の隙間(1/10mm単位)

CShareData.h の 170 行で定義されています。

参照元 CPrintPreview::DrawPageText()・CDlgPrintSetting::OnChangeSettingType()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintDansuu

段組の段数

CShareData.h の 169 行で定義されています。

参照元 CPrintPreview::DrawPageText()・CDlgPrintSetting::OnChangeSettingType()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintFontHeight

印刷フォント高さ(1/10mm単位単位)

CShareData.h の 168 行で定義されています。

参照元 CPrintPreview::DrawFooter()・CPrintPreview::DrawPageText()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrintPreview::SetPreviewFontHan()・CPrintPreview::SetPreviewFontZen()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintFontWidth

印刷フォント幅(1/10mm単位単位)

CShareData.h の 167 行で定義されています。

参照元 CPrintPreview::DrawFooter()・CPrintPreview::DrawHeader()・CPrintPreview::DrawPageText()・CDlgPrintSetting::OnChangeSettingType()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrintPreview::SetPreviewFontHan()・CPrintPreview::SetPreviewFontZen()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintLineSpacing

印刷フォント行間 文字の高さに対する割合(%)

CShareData.h の 171 行で定義されています。

参照元 CPrintPreview::DrawPageText()・CDlgPrintSetting::OnChangeSettingType()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintMarginBY

印刷用紙マージン 下(mm単位)

CShareData.h の 173 行で定義されています。

参照元 CDlgPrintSetting::OnChangeSettingType()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintMarginLX

印刷用紙マージン 左(mm単位)

CShareData.h の 174 行で定義されています。

参照元 CDlgPrintSetting::OnChangeSettingType()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintMarginRX

印刷用紙マージン 右(mm単位)

CShareData.h の 175 行で定義されています。

参照元 CDlgPrintSetting::OnChangeSettingType()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintMarginTY

印刷用紙マージン 上(mm単位)

CShareData.h の 172 行で定義されています。

参照元 CDlgPrintSetting::OnChangeSettingType()・CPrintPreview::OnPaint()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintPaperOrientation

用紙方向 DMORIENT_PORTRAIT (1) または DMORIENT_LANDSCAPE (2)

CShareData.h の 176 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CPrintPreview::OnChangePrintSetting()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

int PRINTSETTING::m_nPrintPaperSize

用紙サイズ

CShareData.h の 177 行で定義されています。

参照元 CPrintPreview::DispatchEvent_PPB()・CDlgPrintSetting::GetData()・CPrintPreview::OnChangePrintSetting()・CDlgPrintSetting::OnTimer()・CPrint::SettingInitialize().

char PRINTSETTING::m_szFooterForm[3][FOOTER_MAX]

CShareData.h の 190 行で定義されています。

参照元 CPrintPreview::DrawFooter()・CDlgPrintSetting::OnChangeSettingType()・CPrint::SettingInitialize().

char PRINTSETTING::m_szHeaderForm[3][HEADER_MAX]

CShareData.h の 188 行で定義されています。

参照元 CPrintPreview::DrawHeader()・CDlgPrintSetting::OnChangeSettingType()・CPrint::SettingInitialize().

char PRINTSETTING::m_szPrintFontFaceHan[LF_FACESIZE]

印刷フォント

CShareData.h の 165 行で定義されています。

参照元 CPrintPreview::MyEnumFontFamProc()・CPrintPreview::OnPaint()・CPrintPreview::SetPreviewFontHan()・CPrint::SettingInitialize().

char PRINTSETTING::m_szPrintFontFaceZen[LF_FACESIZE]

印刷フォント

CShareData.h の 166 行で定義されています。

参照元 CPrintPreview::MyEnumFontFamProc()・CPrintPreview::OnPaint()・CPrintPreview::SetPreviewFontZen()・CPrint::SettingInitialize().

char PRINTSETTING::m_szPrintSettingName[32+1]

印刷設定の名前

CShareData.h の 164 行で定義されています。

参照元 CPrint::SettingInitialize().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

PRINTSETTING メンバ一覧

これは全メンバの一覧です。PRINTSETTING継承メンバも含んでいます。

m_bFooterUse | PRINTSETTING
m_bHeaderUse | PRINTSETTING
m_bPrintKinsokuHead | PRINTSETTING
m_bPrintKinsokuKuto | PRINTSETTING
m_bPrintKinsokuRet | PRINTSETTING
m_bPrintKinsokuTail | PRINTSETTING
m_bPrintLineNumber | PRINTSETTING
m_bPrintWordWrap | PRINTSETTING
m_mdmDevMode | PRINTSETTING
m_nPrintDanSpace | PRINTSETTING
m_nPrintDansuu | PRINTSETTING
m_nPrintFontHeight | PRINTSETTING
m_nPrintFontWidth | PRINTSETTING
m_nPrintLineSpacing | PRINTSETTING
m_nPrintMarginBY | PRINTSETTING
m_nPrintMarginLX | PRINTSETTING
m_nPrintMarginRX | PRINTSETTING
m_nPrintMarginTY | PRINTSETTING
m_nPrintPaperOrientation | PRINTSETTING
m_nPrintPaperSize | PRINTSETTING
m_szFooterForm | PRINTSETTING
m_szHeaderForm | PRINTSETTING
m_szPrintFontFaceHan | PRINTSETTING
m_szPrintFontFaceZen | PRINTSETTING
m_szPrintSettingName | PRINTSETTING

Sakura-Editorに対してSat Oct 27 02:36:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス RcCvt

  • 構成
  • クラス階層
  • 構成メンバ

クラス RcCvt

#include <RcCvt.h>

すべてのメンバ一覧

Public メソッド

RcCvt ()
~RcCvt ()
bool | init (char *infile, char *outfile)
bool | convert (void)

Private メソッド

bool | font (char *linestr)
bool | include (char *linestr)
bool | setErr (char *errstr)
エラー文字列の追加

Private 変数

FILE * | fpi
変換元(入力)ファイルのファイルポインタ
FILE * | fpo
変換先(出力)ファイルのファイルポインタ
int | nLine
1行の最大長．内部バッファの初期化時にバッファサイズとして使われる．
char * | strerr
エラー文字列へのポインタ
char * | buffer
読み込みバッファへのポインタ．

説明

RcCvt.h の 7 行で定義されています。

コンストラクタとデストラクタ

RcCvt::RcCvt ( )

RcCvt.cpp の 17 行で定義されています。

RcCvt::~RcCvt ( )

RcCvt.cpp の 22 行で定義されています。

参照先 buffer・fpi・fpo・strerr.

関数

bool RcCvt::convert ( void )

RcCvt.cpp の 84 行で定義されています。

参照先 buffer・font()・fpi・fpo・include()・nLine・NULL.

bool RcCvt::font ( char * linestr ) [private]

RcCvt.cpp の 106 行で定義されています。

参照先 NULL・setErr()・trail.

参照元 convert().

bool RcCvt::include ( char * linestr ) [private]

RcCvt.cpp の 132 行で定義されています。

参照先 NULL.

参照元 convert().

bool RcCvt::init | ( | char * | infile,
 |  | char * | outfile
 | ) |

RcCvt.cpp の 56 行で定義されています。

参照先 buffer・fpi・fpo・nLine・NULL・setErr()・trail.

参照元 main().

bool RcCvt::setErr ( char * errstr ) [private]

エラー文字列の追加

RcCvt.cpp の 35 行で定義されています。

参照先 NULL・strerr.

参照元 font()・init().

変数

char* RcCvt::buffer [private]

読み込みバッファへのポインタ．

RcCvt.h の 25 行で定義されています。

参照元 convert()・init()・~RcCvt().

FILE* RcCvt::fpi [private]

変換元(入力)ファイルのファイルポインタ

RcCvt.h の 21 行で定義されています。

参照元 convert()・init()・~RcCvt().

FILE* RcCvt::fpo [private]

変換先(出力)ファイルのファイルポインタ

RcCvt.h の 22 行で定義されています。

参照元 convert()・init()・~RcCvt().

int RcCvt::nLine [private]

1行の最大長．内部バッファの初期化時にバッファサイズとして使われる．

RcCvt.h の 23 行で定義されています。

参照元 convert()・init().

char* RcCvt::strerr [private]

エラー文字列へのポインタ

RcCvt.h の 24 行で定義されています。

参照元 setErr()・~RcCvt().

このクラスの説明は次のファイルから生成されました:
  • RcCvt.h
  • RcCvt.cpp
Sakura-Editorに対してSat Oct 27 02:36:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

RcCvt メンバ一覧

これは全メンバの一覧です。RcCvt継承メンバも含んでいます。

buffer | RcCvt | [private]
convert(void) | RcCvt |
font(char *linestr) | RcCvt | [private]
fpi | RcCvt | [private]
fpo | RcCvt | [private]
include(char *linestr) | RcCvt | [private]
init(char *infile, char *outfile) | RcCvt |
nLine | RcCvt | [private]
RcCvt() | RcCvt |
setErr(char *errstr) | RcCvt | [private]
strerr | RcCvt | [private]
~RcCvt() | RcCvt |

Sakura-Editorに対してSat Oct 27 02:36:32 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 RegexInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 RegexInfo_t

正規表現キーワード検索情報構造体 [詳細]

#include <CRegexKeyword.h>

RegexInfo_tのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

BREGEXP * pBregexp
int | nStatus
int | nMatch
int | nOffset
int | nLength
int | nHead
int | nFlag

説明

正規表現キーワード検索情報構造体

CRegexKeyword.h の 68 行で定義されています。

変数

int RegexInfo_t::nFlag

CRegexKeyword.h の 79 行で定義されています。

参照元 CRegexKeyword::RegexKeyLineStart().

int RegexInfo_t::nHead

CRegexKeyword.h の 78 行で定義されています。

int RegexInfo_t::nLength

CRegexKeyword.h の 77 行で定義されています。

int RegexInfo_t::nMatch

CRegexKeyword.h の 75 行で定義されています。

参照元 CRegexKeyword::RegexKeyLineStart().

int RegexInfo_t::nOffset

CRegexKeyword.h の 76 行で定義されています。

int RegexInfo_t::nStatus

CRegexKeyword.h の 74 行で定義されています。

参照元 CRegexKeyword::RegexKeyLineStart().

BREGEXP* RegexInfo_t::pBregexp

CRegexKeyword.h の 69 行で定義されています。

参照元 CRegexKeyword::RegexKeyCompile()・CRegexKeyword::~CRegexKeyword().

この構造体の説明は次のファイルから生成されました:
  • CRegexKeyword.h
Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

RegexInfo_t メンバ一覧

これは全メンバの一覧です。RegexInfo_t継承メンバも含んでいます。

nFlag | RegexInfo_t
nHead | RegexInfo_t
nLength | RegexInfo_t
nMatch | RegexInfo_t
nOffset | RegexInfo_t
nStatus | RegexInfo_t
pBregexp | RegexInfo_t

Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 RegexKeywordInfo

  • 構成
  • クラス階層
  • 構成メンバ

構造体 RegexKeywordInfo

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

char | m_szKeyword [100]
int | m_nColorIndex

説明

CShareData.h の 217 行で定義されています。

変数

int RegexKeywordInfo::m_nColorIndex

CShareData.h の 219 行で定義されています。

参照元 CPropTypes::GetData_Regex()・CRegexKeyword::RegexIsKeyword().

char RegexKeywordInfo::m_szKeyword[100]

CShareData.h の 218 行で定義されています。

参照元 CPropTypes::GetData_Regex()・CPropTypes::SetData_Regex().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

RegexKeywordInfo メンバ一覧

これは全メンバの一覧です。RegexKeywordInfo継承メンバも含んでいます。

m_nColorIndex | RegexKeywordInfo
m_szKeyword | RegexKeywordInfo

Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 SysString

  • 構成
  • クラス階層
  • 構成メンバ

構造体 SysString

#include <OleTypes.h>

すべてのメンバ一覧

Public メソッド

SysString ()
SysString (SysString &Source)
SysString (BSTR &Source)
SysString (wchar_t const *S, int L)
SysString (char const *S, int L)
~SysString ()
SysString & | operator= (SysString &Source)
int | Length ()
void | Get (char **S, int *L)

Public 変数

BSTR | Data

説明

BSTRのWrapper class

データ構造はBSTRと互換性あり

OleTypes.h の 23 行で定義されています。

コンストラクタとデストラクタ

SysString::SysString ( ) [inline]

OleTypes.h の 26 行で定義されています。

参照先 Data・NULL.

SysString::SysString ( SysString & Source ) [inline]

OleTypes.h の 27 行で定義されています。

参照先 Data.

SysString::SysString ( BSTR & Source ) [inline]

OleTypes.h の 28 行で定義されています。

参照先 Data.

SysString::SysString | ( | wchar_t const * | S,
 |  | int | L
 | ) | [inline]

OleTypes.h の 29 行で定義されています。

参照先 Data.

SysString::SysString | ( | char const * | S,
 |  | int | L
 | ) | [inline]

OleTypes.h の 30 行で定義されています。

参照先 Data.

SysString::~SysString ( ) [inline]

OleTypes.h の 37 行で定義されています。

参照先 Data.

関数

void SysString::Get | ( | char ** | S,
 |  | int * | L
 | ) | [inline]

OleTypes.h の 40 行で定義されています。

参照先 Data・NULL.

int SysString::Length ( void ) [inline]

OleTypes.h の 39 行で定義されています。

参照先 Data.

SysString& SysString::operator= ( SysString & Source ) [inline]

OleTypes.h の 38 行で定義されています。

参照先 Data.

変数

BSTR SysString::Data

OleTypes.h の 25 行で定義されています。

参照元 Get()・Length()・operator=()・Variant::Receive()・SysString()・~SysString().

この構造体の説明は次のファイルから生成されました:
  • OleTypes.h
Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

SysString メンバ一覧

これは全メンバの一覧です。SysString継承メンバも含んでいます。

Data | SysString |
Get(char **S, int *L) | SysString | [inline]
Length() | SysString | [inline]
operator=(SysString &Source) | SysString | [inline]
SysString() | SysString | [inline]
SysString(SysString &Source) | SysString | [inline]
SysString(BSTR &Source) | SysString | [inline]
SysString(wchar_t const *S, int L) | SysString | [inline]
SysString(char const *S, int L) | SysString | [inline]
~SysString() | SysString | [inline]

Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 TABMENU_DATA

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TABMENU_DATA

すべてのメンバ一覧

Public 変数

HWND | hwnd
int | iItem
int | iImage
TCHAR | szText [_MAX_PATH]

説明

CTabWnd.cpp の 74 行で定義されています。

変数

HWND TABMENU_DATA::hwnd

CTabWnd.cpp の 75 行で定義されています。

int TABMENU_DATA::iImage

CTabWnd.cpp の 77 行で定義されています。

参照元 CTabWnd::OnDrawItem().

int TABMENU_DATA::iItem

CTabWnd.cpp の 76 行で定義されています。

TCHAR TABMENU_DATA::szText[_MAX_PATH]

CTabWnd.cpp の 78 行で定義されています。

参照元 CTabWnd::OnDrawItem()・CTabWnd::OnMeasureItem().

この構造体の説明は次のファイルから生成されました:
  • CTabWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TABMENU_DATA メンバ一覧

これは全メンバの一覧です。TABMENU_DATA継承メンバも含んでいます。

hwnd | TABMENU_DATA
iImage | TABMENU_DATA
iItem | TABMENU_DATA
szText | TABMENU_DATA

Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 TagJump

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TagJump

タグジャンプ情報 [詳細]

#include <CShareData.h>

すべてのメンバ一覧

Public 変数

HWND | hwndReferer
POINT | point

説明

タグジャンプ情報

CShareData.h の 327 行で定義されています。

変数

HWND TagJump::hwndReferer

CShareData.h の 328 行で定義されています。

参照元 CEditView::Command_TAGJUMPBACK()・CEditView::TagJumpSub().

POINT TagJump::point

CShareData.h の 329 行で定義されています。

参照元 CEditView::Command_TAGJUMPBACK()・CEditView::TagJumpSub().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TagJump メンバ一覧

これは全メンバの一覧です。TagJump継承メンバも含んでいます。

hwndReferer | TagJump
point | TagJump

Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 tagRECONVERTSTRING

  • 構成
  • クラス階層
  • 構成メンバ

構造体 tagRECONVERTSTRING

#include <CEditView.h>

すべてのメンバ一覧

Public 変数

DWORD | dwSize
DWORD | dwVersion
DWORD | dwStrLen
DWORD | dwStrOffset
DWORD | dwCompStrLen
DWORD | dwCompStrOffset
DWORD | dwTargetStrLen
DWORD | dwTargetStrOffset

説明

CEditView.h の 57 行で定義されています。

変数

DWORD tagRECONVERTSTRING::dwCompStrLen

CEditView.h の 62 行で定義されています。

参照元 CEditView::SetReconvertStruct()・CEditView::SetSelectionFromReonvert().

DWORD tagRECONVERTSTRING::dwCompStrOffset

CEditView.h の 63 行で定義されています。

参照元 CEditView::SetReconvertStruct()・CEditView::SetSelectionFromReonvert().

DWORD tagRECONVERTSTRING::dwSize

CEditView.h の 58 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwStrLen

CEditView.h の 60 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwStrOffset

CEditView.h の 61 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwTargetStrLen

CEditView.h の 64 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwTargetStrOffset

CEditView.h の 65 行で定義されています。

参照元 CEditView::SetReconvertStruct().

DWORD tagRECONVERTSTRING::dwVersion

CEditView.h の 59 行で定義されています。

参照元 CEditView::SetReconvertStruct().

この構造体の説明は次のファイルから生成されました:
  • CEditView.h
Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

tagRECONVERTSTRING メンバ一覧

これは全メンバの一覧です。tagRECONVERTSTRING継承メンバも含んでいます。

dwCompStrLen | tagRECONVERTSTRING
dwCompStrOffset | tagRECONVERTSTRING
dwSize | tagRECONVERTSTRING
dwStrLen | tagRECONVERTSTRING
dwStrOffset | tagRECONVERTSTRING
dwTargetStrLen | tagRECONVERTSTRING
dwTargetStrOffset | tagRECONVERTSTRING
dwVersion | tagRECONVERTSTRING

Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 TYPE_NAME

  • 構成
  • クラス階層
  • 構成メンバ

構造体 TYPE_NAME

すべてのメンバ一覧

Public 変数

int | nMethod
char * | pszName

説明

CPropTypes.cpp の 36 行で定義されています。

変数

int TYPE_NAME::nMethod

CPropTypes.cpp の 37 行で定義されています。

char* TYPE_NAME::pszName

CPropTypes.cpp の 38 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CPropTypes.cpp
Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

TYPE_NAME メンバ一覧

これは全メンバの一覧です。TYPE_NAME継承メンバも含んでいます。

nMethod | TYPE_NAME
pszName | TYPE_NAME

Sakura-Editorに対してSat Oct 27 02:36:33 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 Types

  • 構成
  • クラス階層
  • 構成メンバ

構造体 Types

タイプ別設定 [詳細]

#include <CShareData.h>

Typesのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

int | m_nIdx
char | m_szTypeName [64]
char | m_szTypeExts [64]
int | m_nMaxLineSize
int | m_nColmSpace
int | m_nLineSpace
int | m_nTabSpace
int | m_bTabArrow
char | m_szTabViewString [17]
int | m_bInsSpace
int | m_nKeyWordSetIdx [MAX_KEYWORDSET_PER_TYPE]
CLineComment m_cLineComment
CBlockComment m_cBlockComment
int | m_nStringType
char | m_szIndentChars [64]
int | m_nColorInfoArrNum
ColorInfo | m_ColorInfoArr [64]
int | m_bLineNumIsCRLF
int | m_nLineTermType
char | m_cLineTermChar
int | m_nVertLineIdx [MAX_VERTLINES]
BOOL | m_bWordWrap
BOOL | m_bKinsokuHead
BOOL | m_bKinsokuTail
BOOL | m_bKinsokuRet
BOOL | m_bKinsokuKuto
char | m_szKinsokuHead [200]
char | m_szKinsokuTail [200]
int | m_nCurrentPrintSetting
int | m_nDefaultOutline
char | m_szOutlineRuleFilename [_MAX_PATH]
int | m_nSmartIndent
int | m_nImeState
char | m_szHokanFile [_MAX_PATH]
int | m_bUseHokanByFile
int | m_bHokanLoHiCase
char | m_szExtHelp [_MAX_PATH]
char | m_szExtHtmlHelp [_MAX_PATH]
BOOL | m_bHtmlHelpIsSingle
BOOL | m_bUseRegexKeyword
int | m_nRegexKeyMagicNumber
RegexKeywordInfo | m_RegexKeywordArr [MAX_REGEX_KEYWORD]
BOOL | m_bUseKeyWordHelp
int | m_nKeyHelpNum
KeyHelpInfo | m_KeyHelpArr [MAX_KEYHELP_FILE]
BOOL | m_bUseKeyHelpAllSearch
BOOL | m_bUseKeyHelpKeyDisp
BOOL | m_bUseKeyHelpPrefix
BOOL | m_bAutoIndent
BOOL | m_bAutoIndent_ZENSPACE
BOOL | m_bRTrimPrevLine
int | m_nIndentLayout
int | m_bUseDocumentIcon

説明

タイプ別設定

CShareData.h の 233 行で定義されています。

変数

BOOL Types::m_bAutoIndent

CShareData.h の 305 行で定義されています。

参照元 CEditView::Command_CHAR().

BOOL Types::m_bAutoIndent_ZENSPACE

CShareData.h の 306 行で定義されています。

参照元 CEditView::Command_CHAR()・CEditView::Command_GOLINETOP()・CLayoutMgr::getIndentOffset_LeftSpace().

int Types::m_bHokanLoHiCase

入力補完機能：英大文字小文字を同一視する

CShareData.h の 282 行で定義されています。

参照元 CPropTypes::GetData_p2()・CPropTypes::SetData_p2()・CEditView::ShowHokanMgr().

BOOL Types::m_bHtmlHelpIsSingle

CShareData.h の 286 行で定義されています。

参照元 CPropTypes::GetData_p2()・CShareData::HTMLHelpIsSingle()・CPropTypes::SetData_p2().

int Types::m_bInsSpace

CShareData.h の 243 行で定義されています。

参照元 CEditView::Command_INDENT_TAB()・CPropTypes::SetData_p1().

BOOL Types::m_bKinsokuHead

行頭禁則をする

CShareData.h の 262 行で定義されています。

参照元 CLayoutMgr::SetLayoutInfo().

BOOL Types::m_bKinsokuKuto

句読点のぶらさげ

CShareData.h の 265 行で定義されています。

参照元 CLayoutMgr::SetLayoutInfo().

BOOL Types::m_bKinsokuRet

改行文字のぶら下げ

CShareData.h の 264 行で定義されています。

BOOL Types::m_bKinsokuTail

行末禁則をする

CShareData.h の 263 行で定義されています。

int Types::m_bLineNumIsCRLF

行番号の表示 FALSE=折り返し単位／TRUE=改行単位

CShareData.h の 256 行で定義されています。

参照元 CEditView::DetectWidthOfLineNumberArea_calculate()・CEditView::DrawCaretPosInfo().

BOOL Types::m_bRTrimPrevLine

CShareData.h の 307 行で定義されています。

int Types::m_bTabArrow

タブ矢印表示

CShareData.h の 241 行で定義されています。

参照元 CPropTypes::SetData_p1().

int Types::m_bUseDocumentIcon

ファイルに関連づけられたアイコンを使う

CShareData.h の 311 行で定義されています。

int Types::m_bUseHokanByFile

入力補完 開いているファイル内から候補を探す

CShareData.h の 280 行で定義されています。

参照元 CEditView::Command_HOKAN()・CPropTypes::GetData_p2()・CPropTypes::SetData_p2()・CEditView::ShowHokanMgr().

BOOL Types::m_bUseKeyHelpAllSearch

CShareData.h の 299 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

BOOL Types::m_bUseKeyHelpKeyDisp

CShareData.h の 300 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CEditView::KeySearchCore()・CPropTypes::SetData_KeyHelp().

BOOL Types::m_bUseKeyHelpPrefix

CShareData.h の 301 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

BOOL Types::m_bUseKeyWordHelp

CShareData.h の 296 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CEditView::KeyWordHelpSearchDict()・CPropTypes::SetData_KeyHelp()・CEditView::ShowKeywordHelp().

BOOL Types::m_bUseRegexKeyword

CShareData.h の 290 行で定義されています。

参照元 CEditView::DispLineNew()・CEditView::GetColorIndex()・CPropTypes::GetData_Regex()・CEditView::OnPaint()・CRegexKeyword::RegexKeySetTypes().

BOOL Types::m_bWordWrap

英文ワードラップをする

CShareData.h の 261 行で定義されています。

参照元 CLayoutMgr::SetLayoutInfo().

CBlockComment Types::m_cBlockComment

ブロックコメントデリミタ

CShareData.h の 248 行で定義されています。

参照元 CEditView::DispLineNew()・CEditView::GetColorIndex()・CPropTypes::SetData_p3_new()・CLayoutMgr::SetLayoutInfo().

CLineComment Types::m_cLineComment

行コメントデリミタ

CShareData.h の 247 行で定義されています。

参照元 CEditView::DispLineNew()・CEditView::GetColorIndex()・CPropTypes::SetData_p3_new()・CLayoutMgr::SetLayoutInfo().

char Types::m_cLineTermChar

行番号区切り文字

CShareData.h の 258 行で定義されています。

ColorInfo Types::m_ColorInfoArr[64]

色設定配列

CShareData.h の 254 行で定義されています。

参照元 CEditView::CaretUnderLineOFF()・CEditView::CaretUnderLineON()・CEditView::Create()・CEditView::DetectWidthOfLineNumberArea()・CPropTypes::DispatchEvent_p3_new()・CEditView::DispLineNew()・CEditView::DispLineNumber()・CEditView::DispRuler()・CEditView::DispVerticalLines()・CPropTypes::DoPropertySheet()・CEditView::DrawBracketPair()・CEditView::GetColorIndex()・CPropTypes::GetData_Regex()・CDlgSameColor::OnBnClicked()・CEditView::OnChangeSetting()・CDlgSameColor::OnInitDialog()・CEditView::OnLBUTTONDBLCLK()・CEditView::OnMOUSEMOVE()・CEditView::OnPaint()・CDlgSameColor::OnSelChangeListColors()・CPropTypes::RearrangeKeywordSet()・CEditView::SetBracketPairPos()・CEditView::SetCurrentColor()・CPropTypes::SetData_Regex()・CLayoutMgr::SetLayoutInfo().

struct KeyHelpInfo Types::m_KeyHelpArr[MAX_KEYHELP_FILE]

CShareData.h の 298 行で定義されています。

参照元 CPropTypes::GetData_KeyHelp()・CPropTypes::SetData_KeyHelp().

int Types::m_nColmSpace

文字と文字の隙間

CShareData.h の 238 行で定義されています。

参照元 CEditView::DetectWidthOfLineNumberArea()・CEditView::DispLineNew()・CEditView::DispLineNumber()・CEditView::DispText()・CEditView::DispTextSelected()・CEditView::DispVerticalLines()・CEditView::DrawRulerCaret()・CEditView::DrawSelectArea()・CPropTypes::GetData_p1()・CShareData::InitTypeConfig()・CEditView::MoveCursorProperly()・CEditView::MoveCursorToPoint()・CEditView::OnMOUSEMOVE()・CEditView::OnPaint()・CEditView::OnRBUTTONDOWN()・CEditView::OnSize()・CPropTypes::SetData_p1()・CEditView::SetFont()・CEditView::ShowHokanMgr().

int Types::m_nColorInfoArrNum

色設定配列の有効数

CShareData.h の 253 行で定義されています。

int Types::m_nCurrentPrintSetting

現在選択している印刷設定

CShareData.h の 269 行で定義されています。

参照元 CEditWnd::PrintPreviewModeONOFF().

int Types::m_nDefaultOutline

アウトライン解析方法

CShareData.h の 271 行で定義されています。

参照元 CEditView::Command_FUNCLIST()・CDlgJump::SetData()・CPropTypes::SetData_p1().

int Types::m_nIdx

CShareData.h の 234 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CRegexKeyword::RegexKeyLineStart().

int Types::m_nImeState

CShareData.h の 275 行で定義されています。

int Types::m_nIndentLayout

CShareData.h の 308 行で定義されています。

参照元 CLayoutMgr::SetLayoutInfo().

int Types::m_nKeyHelpNum

CShareData.h の 297 行で定義されています。

参照元 CPropTypes::DispatchEvent_KeyHelp().

int Types::m_nKeyWordSetIdx[MAX_KEYWORDSET_PER_TYPE]

キーワードセット

CShareData.h の 245 行で定義されています。

参照元 CPropCommon::ApplyData()・CPropCommon::InitData()・CShareData::InitTypeConfig().

int Types::m_nLineSpace

行間のすきま

CShareData.h の 239 行で定義されています。

参照元 CEditView::DispLineNew()・CEditView::DispLineNumber()・CEditView::DispText()・CEditView::DispTextSelected()・CEditView::DispVerticalLines()・CEditView::DrawSelectArea()・CPropTypes::GetData_p1()・CShareData::InitTypeConfig()・CEditView::MoveCursorToPoint()・CEditView::OnMOUSEMOVE()・CEditView::OnPaint()・CEditView::OnRBUTTONDOWN()・CEditView::OnSize()・CEditView::ScrollAtV()・CPropTypes::SetData_p1()・CEditView::SetFont()・CEditView::ShowHokanMgr().

int Types::m_nLineTermType

行番号区切り 0=なし 1=縦線 2=任意

CShareData.h の 257 行で定義されています。

int Types::m_nMaxLineSize

折り返し文字数

CShareData.h の 237 行で定義されています。

参照元 CPropTypes::DoPropertySheet()・CPropTypes::GetData_p1()・CShareData::InitTypeConfig()・CPropTypes::SetData_p1()・CLayoutMgr::SetLayoutInfo().

int Types::m_nRegexKeyMagicNumber

CShareData.h の 291 行で定義されています。

参照元 CPropTypes::DispatchEvent_p3_new()・CPropTypes::DispatchEvent_Regex()・CRegexKeyword::RegexKeyLineStart()・CRegexKeyword::RegexKeySetTypes().

int Types::m_nSmartIndent

スマートインデント種別

CShareData.h の 274 行で定義されています。

int Types::m_nStringType

文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""]['']

CShareData.h の 250 行で定義されています。

参照元 CLayoutMgr::SetLayoutInfo().

int Types::m_nTabSpace

TABの文字数

CShareData.h の 240 行で定義されています。

参照元 CPropTypes::GetData_p1()・CShareData::InitTypeConfig()・CPropTypes::SetData_p1()・CLayoutMgr::SetLayoutInfo().

int Types::m_nVertLineIdx[MAX_VERTLINES]

指定桁縦線

CShareData.h の 259 行で定義されています。

参照元 CEditView::DispVerticalLines().

struct RegexKeywordInfo Types::m_RegexKeywordArr[MAX_REGEX_KEYWORD]

CShareData.h の 292 行で定義されています。

参照元 CPropTypes::GetData_Regex()・CRegexKeyword::RegexIsKeyword()・CPropTypes::SetData_Regex().

char Types::m_szExtHelp[_MAX_PATH]

CShareData.h の 284 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2()・CShareData::ExtWinHelpIsSet()・CPropTypes::GetData_p2()・CShareData::GetExtWinHelp()・CPropTypes::SetData_p2().

char Types::m_szExtHtmlHelp[_MAX_PATH]

CShareData.h の 285 行で定義されています。

参照元 CPropTypes::DispatchEvent_p2()・CShareData::ExtHTMLHelpIsSet()・CPropTypes::GetData_p2()・CShareData::GetExtHTMLHelp()・CPropTypes::SetData_p2().

char Types::m_szHokanFile[_MAX_PATH]

入力補完 単語ファイル

CShareData.h の 278 行で定義されています。

参照元 CEditView::Command_HOKAN()・CPropTypes::DispatchEvent_p2()・CPropTypes::GetData_p2()・CPropTypes::SetData_p2()・CEditView::ShowHokanMgr().

char Types::m_szIndentChars[64]

その他のインデント対象文字

CShareData.h の 251 行で定義されています。

参照元 CEditView::Command_CHAR()・CPropTypes::DispatchEvent_p1()・CPropTypes::GetData_p1()・CLayoutMgr::getIndentOffset_LeftSpace()・CPropTypes::SetData_p1().

char Types::m_szKinsokuHead[200]

行頭禁則文字

CShareData.h の 266 行で定義されています。

参照元 CLayoutMgr::SetLayoutInfo().

char Types::m_szKinsokuTail[200]

行頭禁則文字

CShareData.h の 267 行で定義されています。

char Types::m_szOutlineRuleFilename[_MAX_PATH]

アウトライン解析ルールファイル

CShareData.h の 272 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1().

char Types::m_szTabViewString[17]

TAB表示文字列

CShareData.h の 242 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropTypes::GetData_p1()・CPropTypes::SetData_p1().

char Types::m_szTypeExts[64]

タイプ属性：拡張子リスト

CShareData.h の 236 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p7()・CDlgOpenFile::DoModalOpenDlg()・CPropTypes::GetData_p1()・CShareData::GetDocumentTypeExt()・CDlgTypeList::SetData()・CPropTypes::SetData_p1().

char Types::m_szTypeName[64]

タイプ属性：名称

CShareData.h の 235 行で定義されています。

参照元 CPropTypes::DispatchEvent_p1()・CPropCommon::DispatchEvent_p7()・CDlgOpenFile::DoModalOpenDlg()・CPropTypes::GetData_p1()・CDlgTypeList::SetData()・CDlgProperty::SetData()・CPropTypes::SetData_p1().

この構造体の説明は次のファイルから生成されました:
  • CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

Types メンバ一覧

これは全メンバの一覧です。Types継承メンバも含んでいます。

m_bAutoIndent | Types
m_bAutoIndent_ZENSPACE | Types
m_bHokanLoHiCase | Types
m_bHtmlHelpIsSingle | Types
m_bInsSpace | Types
m_bKinsokuHead | Types
m_bKinsokuKuto | Types
m_bKinsokuRet | Types
m_bKinsokuTail | Types
m_bLineNumIsCRLF | Types
m_bRTrimPrevLine | Types
m_bTabArrow | Types
m_bUseDocumentIcon | Types
m_bUseHokanByFile | Types
m_bUseKeyHelpAllSearch | Types
m_bUseKeyHelpKeyDisp | Types
m_bUseKeyHelpPrefix | Types
m_bUseKeyWordHelp | Types
m_bUseRegexKeyword | Types
m_bWordWrap | Types
m_cBlockComment | Types
m_cLineComment | Types
m_cLineTermChar | Types
m_ColorInfoArr | Types
m_KeyHelpArr | Types
m_nColmSpace | Types
m_nColorInfoArrNum | Types
m_nCurrentPrintSetting | Types
m_nDefaultOutline | Types
m_nIdx | Types
m_nImeState | Types
m_nIndentLayout | Types
m_nKeyHelpNum | Types
m_nKeyWordSetIdx | Types
m_nLineSpace | Types
m_nLineTermType | Types
m_nMaxLineSize | Types
m_nRegexKeyMagicNumber | Types
m_nSmartIndent | Types
m_nStringType | Types
m_nTabSpace | Types
m_nVertLineIdx | Types
m_RegexKeywordArr | Types
m_szExtHelp | Types
m_szExtHtmlHelp | Types
m_szHokanFile | Types
m_szIndentChars | Types
m_szKinsokuHead | Types
m_szKinsokuTail | Types
m_szOutlineRuleFilename | Types
m_szTabViewString | Types
m_szTypeExts | Types
m_szTypeName | Types

Sakura-Editorに対してSat Oct 27 02:36:34 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 UnicodeInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 UnicodeInfo_t

#include <charcode.h>

UnicodeInfo_tのコラボレーション図

[凡例]
すべてのメンバ一覧

Public 変数

WCCODE_INFO Uni
WCCODE_INFO UniBe
int nCRorLF_ascii

説明

charcode.h の 127 行で定義されています。

変数

int UnicodeInfo_t::nCRorLF_ascii

charcode.h の 130 行で定義されています。

参照元 CESI::DetectUnicode()・Charcode::GetEncdInf_Uni().

WCCODE_INFO UnicodeInfo_t::Uni

charcode.h の 128 行で定義されています。

参照元 CESI::DetectUnicode()・Charcode::GetEncdInf_Uni().

WCCODE_INFO UnicodeInfo_t::UniBe

charcode.h の 129 行で定義されています。

参照元 CESI::DetectUnicode()・Charcode::GetEncdInf_Uni().

この構造体の説明は次のファイルから生成されました:
  • charcode.h
Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

UnicodeInfo_t メンバ一覧

これは全メンバの一覧です。UnicodeInfo_t継承メンバも含んでいます。

nCRorLF_ascii | UnicodeInfo_t
Uni | UnicodeInfo_t
UniBe | UnicodeInfo_t

Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 Variant

  • 構成
  • クラス階層
  • 構成メンバ

構造体 Variant

#include <OleTypes.h>

すべてのメンバ一覧

Public メソッド

Variant ()
Variant (Variant &Source)
Variant (VARIANT &Source)
~Variant ()
Variant & | operator= (Variant &Source)
void | Receive (SysString &Source)
int | Receive (int i)

Public 変数

VARIANT | Data

説明

VARIANTのWrapper class

データ構造はVARIANTと互換性あり

OleTypes.h の 53 行で定義されています。

コンストラクタとデストラクタ

Variant::Variant ( ) [inline]

OleTypes.h の 56 行で定義されています。

参照先 Data.

Variant::Variant ( Variant & Source ) [inline]

OleTypes.h の 57 行で定義されています。

参照先 Data.

Variant::Variant ( VARIANT & Source ) [inline]

OleTypes.h の 58 行で定義されています。

参照先 Data.

Variant::~Variant ( ) [inline]

OleTypes.h の 59 行で定義されています。

参照先 Data.

関数

Variant& Variant::operator= ( Variant & Source ) [inline]

OleTypes.h の 60 行で定義されています。

参照先 Data.

int Variant::Receive ( int i ) [inline]

OleTypes.h の 75 行で定義されています。

参照先 Data.

void Variant::Receive ( SysString & Source ) [inline]

SysStringをVariantにセットする

セット後、SysStringの方は中身がNULLになる。

OleTypes.h の 65 行で定義されています。

参照先 SysString::Data・Data・NULL.

参照元 CMacro::HandleFunction().

変数

VARIANT Variant::Data

OleTypes.h の 55 行で定義されています。

参照元 CMacro::HandleFunction()・MacroCommand()・operator=()・Receive()・Variant()・~Variant().

この構造体の説明は次のファイルから生成されました:
  • OleTypes.h
Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

Variant メンバ一覧

これは全メンバの一覧です。Variant継承メンバも含んでいます。

Data | Variant |
operator=(Variant &Source) | Variant | [inline]
Receive(SysString &Source) | Variant | [inline]
Receive(int i) | Variant | [inline]
Variant() | Variant | [inline]
Variant(Variant &Source) | Variant | [inline]
Variant(VARIANT &Source) | Variant | [inline]
~Variant() | Variant | [inline]

Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 VS_VERSION_INFO_HEAD

  • 構成
  • クラス階層
  • 構成メンバ

構造体 VS_VERSION_INFO_HEAD

すべてのメンバ一覧

Public 変数

WORD | wLength
WORD | wValueLength
WORD | bText
WCHAR | szKey [16]
VS_FIXEDFILEINFO | Value

説明

etc_uty.cpp の 464 行で定義されています。

変数

WORD VS_VERSION_INFO_HEAD::bText

etc_uty.cpp の 467 行で定義されています。

WCHAR VS_VERSION_INFO_HEAD::szKey[16]

etc_uty.cpp の 468 行で定義されています。

VS_FIXEDFILEINFO VS_VERSION_INFO_HEAD::Value

etc_uty.cpp の 469 行で定義されています。

参照元 GetAppVersionInfo().

WORD VS_VERSION_INFO_HEAD::wLength

etc_uty.cpp の 465 行で定義されています。

WORD VS_VERSION_INFO_HEAD::wValueLength

etc_uty.cpp の 466 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • etc_uty.cpp
Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

VS_VERSION_INFO_HEAD メンバ一覧

これは全メンバの一覧です。VS_VERSION_INFO_HEAD継承メンバも含んでいます。

bText | VS_VERSION_INFO_HEAD
szKey | VS_VERSION_INFO_HEAD
Value | VS_VERSION_INFO_HEAD
wLength | VS_VERSION_INFO_HEAD
wValueLength | VS_VERSION_INFO_HEAD

Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 WC_EncodingInfo_t

  • 構成
  • クラス階層
  • 構成メンバ

構造体 WC_EncodingInfo_t

#include <charcode.h>

すべてのメンバ一覧

Public 変数

enumCodeType eCodeID
int | nCRorLF
int | nLostBytes

説明

charcode.h の 122 行で定義されています。

変数

enumCodeType WC_EncodingInfo_t::eCodeID

charcode.h の 123 行で定義されています。

参照元 Charcode::GetEncdInf_Uni().

int WC_EncodingInfo_t::nCRorLF

charcode.h の 124 行で定義されています。

参照元 CESI::DetectUnicode()・Charcode::GetEncdInf_Uni().

int WC_EncodingInfo_t::nLostBytes

charcode.h の 125 行で定義されています。

参照元 Charcode::GetEncdInf_Uni().

この構造体の説明は次のファイルから生成されました:
  • charcode.h
Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

WC_EncodingInfo_t メンバ一覧

これは全メンバの一覧です。WC_EncodingInfo_t継承メンバも含んでいます。

eCodeID | WC_EncodingInfo_t
nCRorLF | WC_EncodingInfo_t
nLostBytes | WC_EncodingInfo_t

Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構造体 ZENKAKKO_T

  • 構成
  • クラス階層
  • 構成メンバ

構造体 ZENKAKKO_T

全角括弧の対応表 [詳細]

すべてのメンバ一覧

Public 変数

char * | sStr
char * | eStr

説明

全角括弧の対応表

CEditView_New2.cpp の 850 行で定義されています。

変数

char* ZENKAKKO_T::eStr

CEditView_New2.cpp の 852 行で定義されています。

参照元 CEditView::IsBracket().

char* ZENKAKKO_T::sStr

CEditView_New2.cpp の 851 行で定義されています。

この構造体の説明は次のファイルから生成されました:
  • CEditView_New2.cpp
Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メンバ一覧

  • 構成
  • クラス階層
  • 構成メンバ

ZENKAKKO_T メンバ一覧

これは全メンバの一覧です。ZENKAKKO_T継承メンバも含んでいます。

eStr | ZENKAKKO_T
sStr | ZENKAKKO_T

Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 階層索引

  • 構成
  • クラス階層
  • 構成メンバ

Sakura-Editor クラス階層

クラス階層図を見る。

この継承一覧はおおまかにはソートされていますが、完全にアルファベット順でソートされてはいません。

  • _SORTTABLE
  • ARRHEAD
  • bregexp
  • CBlockComment
  • CCaretUnderLine
  • CCommandLine
  • CCppPreprocessMng
  • CDialog
    • CDlgAbout
    • CDlgCancel
    • CDlgCompare
    • CDlgCtrlCode
    • CDlgDiff
    • CDlgExec
    • CDlgFavorite
    • CDlgFileUpdateQuery
    • CDlgFind
    • CDlgFuncList
    • CDlgGrep
    • CDlgJump
    • CDlgKeywordSelect
    • CDlgPrintPage
    • CDlgPrintSetting
    • CDlgProperty
    • CDlgReplace
    • CDlgSameColor
    • CDlgTagJumpList
    • CDlgTagsMake
    • CDlgTypeList
    • CDlgWinSize
    • CHokanMgr
  • CDicMgr
  • CDlgDebug
  • CDlgFavorite::FavoriteInfoTag
  • CDlgInput1
  • CDlgOpenFile
  • CDllHandler
    • CBregexp
      • CRegexKeyword
    • CHtmlHelp
    • CMigemo
    • CPPA
    • CUxTheme
  • CDllHandler::ImportTable
  • CDocLine
  • CDocLineMgr
  • CEditApp
  • CEditDoc
  • CEditView
  • CEditWnd
  • CEOL
  • CError_FileOpen
  • CError_FileRead
  • CError_FileWrite
  • CESI
  • CFileExt
  • CFileExt::FileExtInfoTag
  • CFileLoad
  • CFileWrite
  • CFuncInfo
  • CFuncInfoArr
  • CFuncLookup
  • CImageListMgr
  • CInterfaceObject::CMethodInfo
  • CKeyBind
  • CKeyWordSetMgr
  • CLayout
  • CLayoutMgr
  • CLineComment
  • CMacro
  • CMacro::CMacroParam
  • CMacroFactory
  • CMacroManagerBase
    • CKeyMacroMgr
    • CPPAMacroMgr
    • CWSHMacroManager
  • CMarkMgr
    • CAutoMarkMgr
  • CMarkMgr::CMark
  • CMemory
  • CMemoryIterator< T >
  • CMenuDrawer
  • CMRU
  • CMRUFolder
  • CMutex
  • COleLibrary
  • ColorAttributeData_t
  • ColorInfo
  • ColorInfoIni
  • Common
  • ComPropSheetInfo
  • COpe
  • COpeBlk
  • COpeBuf
  • COsVersionInfo
  • COutlinePython
  • CPassiveTimer
  • CPrint
  • CPrintPreview
  • CProcess
    • CControlProcess
    • CNormalProcess
  • CProcessFactory
  • CProfile
  • CProfile::Section
  • CPropCommon
  • CPropTypes
  • CRecent
  • CRunningTimer
  • CShareData
  • CSMacroMgr
  • CSortedTagJumpList
  • CSortedTagJumpList::tagjump_info_t
  • ctrl_info_t
  • CUrlWnd
  • CWaitCursor
  • CWnd
    • CFuncKeyWnd
    • CSplitBoxWnd
    • CSplitterWnd
    • CTabWnd
    • CTipWnd
  • CWSHClient
  • CWSHSite
  • CYbInterfaceBase
    • CYbInterfaceImpl< BASEINTERFACE >
    • CYbInterfaceImpl< IDataObject >
      • CDataObject
    • CYbInterfaceImpl< IDropSource >
      • CDropSource
    • CYbInterfaceImpl< IDropTarget >
      • CDropTarget
  • DLLSHAREDATA
  • DocLineReplaceArg
  • EditNode
  • EditNodeEx
  • EncodingInfo_t
  • FileInfo
  • GrepInfo
  • HANKAKKO_T
  • IDataObject
    • CYbInterfaceImpl< IDataObject >
  • IDispatch
    • ImplementsIUnknown< IDispatch >
      • CInterfaceObject
  • IDropSource
    • CYbInterfaceImpl< IDropSource >
  • IDropTarget
    • CYbInterfaceImpl< IDropTarget >
  • ImplementsIUnknown< Base >
  • IniFolder
  • ITypeInfo
    • ImplementsIUnknown< ITypeInfo >
      • CInterfaceObjectTypeInfo
  • KEYDATA
  • KeyHelpInfo
  • LayoutReplaceArg
  • LockGuard< EXCLUSIVE_OBJECT >
  • MacroFuncInfo
  • MacroRec
  • MYDEVMODE
  • oneRule
  • OPENFILENAMEZ
  • PAPER_INFO
  • PRINTSETTING
  • RcCvt
  • RegexInfo_t
  • RegexKeywordInfo
  • SysString
  • TABMENU_DATA
  • TagJump
  • tagRECONVERTSTRING
  • TYPE_NAME
  • Types
  • UnicodeInfo_t
  • Variant
  • VS_VERSION_INFO_HEAD
  • WC_EncodingInfo_t
  • ZENKAKKO_T
Sakura-Editorに対してSat Oct 27 02:34:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- _ -

  • _instance : CShareData, CMigemo, CCommandLine
  • _mbcjmstojis_ex() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- j -

  • JIStoSJIS() : CMemory
  • jname : ctrl_info_t
  • JoinNext() : CTabWnd
  • JoinPrev() : CTabWnd
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- k -

  • Key2Command() : CDlgFuncList
  • KeyProc() : CHokanMgr
  • KeySearchCore() : CEditView
  • keyword : CSortedTagJumpList::tagjump_info_t
  • KeyWordHelpSearchDict() : CEditView
  • KeyWordReAlloc() : CKeyWordSetMgr
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- l -

  • LayoutFuncKey() : CEditWnd
  • LayoutStatusBar() : CEditWnd
  • LayoutTab() : CTabWnd
  • LayoutTabBar() : CEditWnd
  • LayoutToolBar() : CEditWnd
  • Length() : SysString, CMRUFolder, CMRU
  • LID_SKH : CEditView
  • LID_SKH_ONTIMER : CEditView
  • LID_SKH_POPUPMENU_R : CEditView
  • LineColmnToIndex() : CEditView
  • LineColmnToIndex2() : CEditView
  • LineIndexToColmn() : CEditView
  • Load() : CSMacroMgr
  • LoadKeyMacro() : CWSHMacroManager, CPPAMacroMgr, CMacroManagerBase, CKeyMacroMgr
  • LoadLibrary() : CDllHandler
  • LoadShareData() : CShareData
  • Lock() : CMutex, CCaretUnderLine
  • LockDocumentType() : CEditDoc
  • LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
  • LPADVISESINK : CDataObject
  • LPARAM : ComPropSheetInfo
  • LPDWORD : CDataObject
  • LPFORMATETC : CDataObject
  • LPSTGMEDIUM : CDataObject
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- m -

  • m_bActivateByMouse : CEditView
  • m_bAddCRLFWhenCopy : Common
  • m_bAlertIfFileNotExist : Common
  • m_bAllMark : CDocLine
  • m_bAllPage : CDlgPrintPage
  • m_bAutoCloseDlgFind : Common
  • m_bAutoCloseDlgFuncList : Common
  • m_bAutoCloseDlgReplace : Common
  • m_bAutoColmnPaste : Common
  • m_bAutoIndent : Types
  • m_bAutoIndent_ZENSPACE : Types
  • m_bAutoMIMEdecode : Common
  • m_bBackUp : Common
  • m_bBackUpDialog : Common
  • m_bBackUpDustBox : Common
  • m_bBackUpFolder : Common
  • m_bBackUpPathAdvanced : Common
  • m_bBeginBoxSelect : CEditView
  • m_bBeginLineSelect : CEditView
  • m_bBeginSelect : CEditView
  • m_bBeginWordSelect : CEditView
  • m_bBom : CDlgOpenFile
  • m_bBomExist : CFileLoad, CEditDoc
  • m_bBookMark : CDocLine
  • m_bCANCEL : CDlgCancel
  • m_bCanceled : CDlgReplace
  • m_bCaretShowFlag : CEditView
  • m_bCaretTextForSearch : Common
  • m_bCheckFileTimeStamp : Common
  • m_bChgWndByWheel : Common
  • m_bCloseAllConfirm : Common
  • m_bCloseBtnHilighted : CTabWnd
  • m_bClosing : EditNode
  • m_bCommandRunning : CEditView
  • m_bCompareAndTileHorz : Common, CDlgCompare
  • m_bConsecutiveAll : Common, CDlgReplace
  • m_bCopyAndDisablSelection : Common
  • m_bCreate : CRecent
  • m_bCreatedTrayIcon : CEditApp
  • m_bCurSrchKeyMark : CEditView
  • m_bCurSrchLoHiCase : CEditView
  • m_bCurSrchRegularExp : CEditView
  • m_bCurSrchWordOnly : CEditView
  • m_bDebugMode : CEditDoc, CCommandLine
  • m_bDiffMark : CDocLine
  • m_bDisp : ColorInfoIni, ColorInfo
  • m_bDispComment : CLayoutMgr
  • m_bDispExitingDialog : Common
  • m_bDispFUNCKEYWND : Common
  • m_bDispSString : CLayoutMgr
  • m_bDispSTATUSBAR : Common
  • m_bDispTabIcon : Common
  • m_bDispTabWnd : Common
  • m_bDispTabWndMultiWin : Common
  • m_bDispTOOLBAR : Common
  • m_bDispWString : CLayoutMgr
  • m_bDoing_UndoRedo : CEditView, CEditDoc
  • m_bDragging : CSplitterWnd
  • m_bDragMode : CEditWnd, CEditView
  • m_bDragSource : CEditView
  • m_bDrawBracketPairFlag : CEditView
  • m_bDrawSelectArea : CEditView
  • m_bDrawSWITCH : CEditView
  • m_bDropFileAndClose : Common
  • m_bEditWndChanging : DLLSHAREDATA
  • m_bEnableUnmodifiedOverwrite : Common
  • m_bError : CPPA
  • m_bExecutingKeyMacro : CEditView
  • m_bExitConfirm : Common
  • m_bFatFont : ColorInfoIni, ColorInfo
  • m_bFontIs_FIXED_PITCH : Common
  • m_bFooterUse : PRINTSETTING
  • m_bFromThisText : CDlgGrep
  • m_bFunclistSetFocusOnJump : Common
  • m_bGrepDefaultFolder : Common
  • m_bGrepDlg : CCommandLine
  • m_bGrepExitConfirm : Common
  • m_bGrepMode : CEditDoc, CCommandLine
  • m_bGrepOutputLine : Common, CDlgGrep
  • m_bGrepRealTimeView : Common
  • m_bGrepRunning : CEditDoc
  • m_bGrepSubFolder : Common
  • m_bGTJW_LDBLCLK : Common
  • m_bGTJW_RETURN : Common
  • m_bHaveFavorite : CDlgFavorite::FavoriteInfoTag
  • m_bHaveView : CDlgFavorite::FavoriteInfoTag
  • m_bHeaderUse : PRINTSETTING
  • m_bHilighted : CUrlWnd
  • m_bHokan : CEditView
  • m_bHokanKey_RETURN : Common
  • m_bHokanKey_RIGHT : Common
  • m_bHokanKey_SPACE : Common
  • m_bHokanKey_TAB : Common
  • m_bHokanLoHiCase : Types
  • m_bHovering : CTabWnd
  • m_bHtmlHelpIsSingle : Common, Types
  • m_bInit : IniFolder
  • m_bInited : CDialog
  • m_bInitialized : CUxTheme
  • m_bInMenuLoop : CEditView
  • m_bInsMode : CEditDoc
  • m_bInsSpace : Types
  • m_bIsActiveApp : CEditWnd
  • m_bIsDebug : FileInfo
  • m_bIsDiffUse : CDocLineMgr
  • m_bISearchFirst : CEditView
  • m_bISearchFlagHistory : CEditView
  • m_bISearchWrap : CEditView
  • m_bIsFreeCursorMode : Common
  • m_bIsGrep : EditNode, FileInfo
  • m_bIsINSMode : Common
  • m_bIsModified : FileInfo, CEditDoc, CDlgDiff, CDlgCompare
  • m_bIsModifiedDst : CDlgDiff
  • m_bitpattern : CCppPreprocessMng
  • m_bJumpSingleClickURL : Common
  • m_bKinsokuHead : Types, CLayoutMgr
  • m_bKinsokuKuto : Types, CLayoutMgr
  • m_bKinsokuRet : Types, CLayoutMgr
  • m_bKinsokuTail : Types, CLayoutMgr
  • m_bLeft : CDropSource
  • m_bLineNumIsCRLF : DLLSHAREDATA, Types, CDlgFuncList
  • m_bListBtnHilighted : CTabWnd
  • m_bLoHiCase : Common, CDlgReplace, CDlgGrep, CDlgFind
  • m_bMark : CDocLine
  • m_bMarkArray : CDocLine
  • m_bMarkUpBlankLineEnable : Common
  • m_bMenuIcon : Common
  • m_bModal : CDialog
  • m_bModified : CDlgFileUpdateQuery
  • m_bModify : CDocLine
  • m_bMRUArrFavorite : DLLSHAREDATA
  • m_bNoCaretMoveByActivation : Common
  • m_bNoFilterSaveFile : Common
  • m_bNoFilterSaveNew : Common
  • m_bNOTIFYNOTFOUND : Common, CDlgReplace, CDlgFind
  • m_bNotOverWriteCRLF : Common
  • m_bNoWindow : CCommandLine
  • m_bOPENFOLDERArrFavorite : DLLSHAREDATA
  • m_bOverflow : CSortedTagJumpList
  • m_bPLSQL : CDlgJump
  • m_bPrevCommand : CEditView
  • m_bPreview_EnableColms : CPrintPreview
  • m_bPreview_EnableLines : CPrintPreview
  • m_bPrinterNotFound : MYDEVMODE
  • m_bPrintKinsokuHead : PRINTSETTING
  • m_bPrintKinsokuKuto : PRINTSETTING
  • m_bPrintKinsokuRet : PRINTSETTING
  • m_bPrintKinsokuTail : PRINTSETTING
  • m_bPrintLineNumber : PRINTSETTING
  • m_bPrintWordWrap : PRINTSETTING
  • m_bQueryIfCodeChange : Common
  • m_bRead : CProfile
  • m_bReadOnly : CEditDoc, CCommandLine
  • m_bReadPrivate : IniFolder
  • m_bRecordingKeyMacro : DLLSHAREDATA
  • m_bRedrawRuler : CEditView
  • m_bRegularExp : Common, CDlgReplace, CDlgGrep, CDlgFind
  • m_bReloadWhenExecute : MacroRec
  • m_bRememberOutlineWindowPos : Common
  • m_bRestoreBookmarks : Common
  • m_bRestoreCurPosition : Common
  • m_bRTrimPrevLine : Types
  • m_bSameTabWidth : Common
  • m_bScrollBarHorz : Common
  • m_bSearch : CEditView
  • m_bSearchAll : Common
  • m_bSelectClickedURL : Common
  • m_bSelected : CDlgReplace
  • m_bSelectedArea : Common, CDlgReplace
  • m_bSelectingLock : CEditView
  • m_bSizeBox : CFuncKeyWnd
  • m_bSortTabList : Common
  • m_bSplitterWndHScroll : Common
  • m_bSplitterWndVScroll : Common
  • m_bStayTaskTray : Common
  • m_bStopsBothEndsWhenSearchParagraph : Common
  • m_bStopsBothEndsWhenSearchWord : Common
  • m_bSubFolder : CDlgGrep
  • m_bSuccess : COsVersionInfo
  • m_bTab_CloseOneWin : Common
  • m_bTab_ListFull : Common
  • m_bTab_RetainEmptyWin : Common
  • m_bTabArrow : Types
  • m_bTagJumpAnyWhere : DLLSHAREDATA, CDlgTagJumpList
  • m_bTagJumpICase : DLLSHAREDATA, CDlgTagJumpList
  • m_bTimerFlag : CHokanMgr
  • m_bToolBarIsFlat : Common
  • m_bUIPI : CEditWnd
  • m_bUnderLine : ColorInfoIni, ColorInfo
  • m_bUnderLineON : CEditView
  • m_bUseBom : CDlgOpenFile
  • m_bUseCaretKeyWord : Common
  • m_bUseDocumentIcon : Types
  • m_bUseEol : CDlgOpenFile
  • m_bUseHokan : Common
  • m_bUseHokanByFile : Types
  • m_bUseKeyHelpAllSearch : Types
  • m_bUseKeyHelpKeyDisp : Types
  • m_bUseKeyHelpPrefix : Types
  • m_bUseKeyWordHelp : Types
  • m_bUseOLE_DragDrop : Common
  • m_bUseOLE_DropSource : Common
  • m_bUseRegexKeyword : Types, CRegexKeyword
  • m_bUseTaskTray : Common
  • m_bUseTrayMenu : CEditApp
  • m_bVertical : CSplitBoxWnd
  • m_bVisualStyle : CTabWnd
  • m_bWaitTreeProcess : CDlgFuncList
  • m_bWordOnly : Common, CDlgReplace, CDlgGrep, CDlgFind
  • m_bWordWrap : Types, CLayoutMgr
  • m_bWritePrivate : IniFolder
  • m_bWriteQuit : CCommandLine
  • m_cAutoSave : CEditDoc
  • m_cBlockComment : Types, CLayoutMgr
  • m_cBuffer : CPPAMacroMgr
  • m_cDicMgr : CEditView
  • m_cDlgFind : CEditDoc
  • m_cDlgFuncList : CEditDoc
  • m_cDlgGrep : CEditDoc, CEditApp
  • m_cDlgJump : CEditDoc
  • m_cDlgOpenFile : CEditDoc
  • m_cDlgReplace : CEditDoc
  • m_cDocLineMgr : CEditDoc
  • m_cEditDoc : CEditWnd
  • m_cEditViewArr : CEditDoc
  • m_cEol : CLayout, CDocLine, CDlgOpenFile
  • m_cfFormat : CDataObject
  • m_CFuncKeyWnd : CEditWnd
  • m_cFuncLookup : CEditDoc
  • m_ChangeAttribute : CFileWrite
  • m_CharCode : CFileLoad
  • m_ChildWndArr : CSplitterWnd
  • m_cHistory : CEditView
  • m_cHokanMgr : CEditDoc
  • m_cIcons : CEditWnd
  • m_cInfo : CTipWnd
  • m_cKey : CTipWnd
  • m_CKeyWordSetMgr : DLLSHAREDATA, CPropCommon
  • m_cLayoutMgr : CEditDoc
  • m_Client : CWSHSite
  • m_cLineComment : Types, CLayoutMgr
  • m_cLineTermChar : Types
  • m_cList : CDlgTagJumpList
  • m_cLookup : CPropCommon
  • m_cMarkChain : CMarkMgr
  • m_cmemClipText : CDlgFuncList
  • m_cmemCurWord : CHokanMgr
  • m_cMemDebug : CPPA
  • m_cmemDebugInfo : CDlgDebug
  • m_cmemFuncName : CFuncInfo
  • m_cmemLine : CFileLoad
  • m_cmemMenuItemStrArr : CMenuDrawer
  • m_cMemRet : CPPA
  • m_cmemText : CDlgInput1
  • m_CMenuDrawer : CEditWnd, CEditApp
  • m_cMigemo : CNormalProcess
  • m_cNewLineCode : CEditDoc
  • m_colBACK : ColorInfoIni, ColorInfo
  • m_ColorInfoArr : Types
  • m_colTEXT : ColorInfoIni, ColorInfo
  • m_CommandLine : CProcess
  • m_Common : DLLSHAREDATA, CPropCommon
  • m_cOpeBuf : CEditDoc
  • m_cOsVer : CDlgOpenFile
  • m_cOsVersionInfo : COsVersionInfo
  • m_cPPA : CPPAMacroMgr
  • m_cPrint : CPrintPreview
  • m_cPropCommon : CEditDoc
  • m_cPropTypes : CEditDoc
  • m_cr : CDlgSameColor
  • m_crBack : CEditView
  • m_crCaret : CEditView
  • m_cRecent : CMRUFolder, CMRU
  • m_cRecentCmd : CDlgFavorite
  • m_cRecentFile : CDlgFavorite
  • m_cRecentFolder : CDlgFavorite
  • m_cRecentGrepFile : CDlgFavorite
  • m_cRecentGrepFolder : CDlgFavorite
  • m_cRecentReplace : CDlgFavorite
  • m_cRecentSearch : CDlgFavorite
  • m_cRegexKeyword : CEditView
  • m_cReserved : ColorInfo
  • m_cSavedKeyMacro : CSMacroMgr
  • m_cSaveLineCode : CEditDoc
  • m_cShareData : CProcess
  • m_cSplitterWnd : CEditDoc
  • m_cTabWnd : CEditWnd
  • m_cTipWnd : CEditView
  • m_cTrans : CImageListMgr
  • m_cUnderLine : CEditView
  • m_CurRegexp : CEditView
  • m_CurrentIdx : CSMacroMgr
  • m_cUxTheme : CUxTheme
  • m_cx : CImageListMgr
  • m_cy : CImageListMgr
  • m_Data : CWSHClient
  • m_dwCount : COleLibrary
  • m_dwCustColors : CPropTypes
  • m_dwFileAttribute : CFileWrite
  • m_dwProductVersionLS : DLLSHAREDATA
  • m_dwProductVersionMS : DLLSHAREDATA
  • m_dwTipTimer : CEditView
  • m_eCaptureSrc : CTabWnd
  • m_eDragState : CTabWnd
  • m_eMode : CFileLoad
  • m_enablebuf : CCppPreprocessMng
  • m_Engine : CWSHClient
  • m_EngineName : CWSHMacroManager
  • m_enumEOLType : CEOL
  • m_ePatType : CBregexp
  • m_eWatchUpdate : CEditDoc
  • m_fi : CCommandLine
  • m_FileInfo_MYWM_GETFILEINFO : DLLSHAREDATA
  • m_FileTime : CEditDoc
  • m_fiMRUArr : DLLSHAREDATA
  • m_fnAbort : CPPA
  • m_fnAddIntObj : CPPA
  • m_fnAddIntVar : CPPA
  • m_fnAddRealObj : CPPA
  • m_fnAddRealVar : CPPA
  • m_fnAddStrObj : CPPA
  • m_fnAddStrVar : CPPA
  • m_fnDeleteVar : CPPA
  • m_fnExecute : CPPA
  • m_fnGetArgBStr : CPPA
  • m_fnGetArgInt : CPPA
  • m_fnGetArgReal : CPPA
  • m_fnGetArgStr : CPPA
  • m_fnGetBStrVar : CPPA
  • m_fnGetIntVar : CPPA
  • m_fnGetRealVar : CPPA
  • m_fnGetStrVar : CPPA
  • m_fnGetVersion : CPPA
  • m_fnIsRunning : CPPA
  • m_fnSetDeclare : CPPA
  • m_fnSetDefine : CPPA
  • m_fnSetDefProc : CPPA
  • m_fnSetErrProc : CPPA
  • m_fnSetFinishProc : CPPA
  • m_fnSetIntFunc : CPPA
  • m_fnSetIntObj : CPPA
  • m_fnSetIntVar : CPPA
  • m_fnSetProc : CPPA
  • m_fnSetRealFunc : CPPA
  • m_fnSetRealObj : CPPA
  • m_fnSetRealVar : CPPA
  • m_fnSetSource : CPPA
  • m_fnSetStrFunc : CPPA
  • m_fnSetStrObj : CPPA
  • m_fnSetStrVar : CPPA
  • m_fontSearchBox : CEditWnd
  • m_gi : CCommandLine
  • m_hAccel : DLLSHAREDATA
  • m_hAtokModule : CEditView
  • m_hbmpCaret : CEditView
  • m_hbmpCompatBMP : CPrintPreview, CEditView
  • m_hbmpCompatBMPOld : CPrintPreview, CEditView
  • m_hcurOld : CSplitterWnd
  • m_hCursor : CWaitCursor
  • m_hCursorOld : CWaitCursor
  • m_hdcCompatDC : CPrintPreview, CEditView
  • m_hDevMode : CPrint
  • m_hDevNames : CPrint
  • m_heightOutlineWindow : Common
  • m_hEventCPInitialized : CControlProcess
  • m_hFile : CFileWrite, CFileLoad
  • m_hFileMap : CShareData
  • m_hFont : CTipWnd, CTabWnd, CFuncKeyWnd, CUrlWnd
  • m_hFont_HAN : CEditView
  • m_hFont_HAN_FAT : CEditView
  • m_hFont_HAN_FAT_UL : CEditView
  • m_hFont_HAN_UL : CEditView
  • m_hFontCaretPosInfo : CEditWnd
  • m_hFontMenu : CMenuDrawer
  • m_hFontMenuUndelLine : CMenuDrawer
  • m_hFontOld : CEditView
  • m_hIconApp : CTabWnd
  • m_hIconBitmap : CImageListMgr
  • m_hIconGrep : CTabWnd
  • m_hIcons : CEditApp
  • m_hIml : CTabWnd
  • m_hInstance : CWnd, CPropTypes, CPropCommon, CProcess, CMenuDrawer, CFuncLookup, CEditWnd, CEditView, CEditDoc, CEditApp, CDllHandler, CDlgOpenFile, CDlgInput1, CDlgDebug, CDialog
  • m_hLockedFile : CEditDoc
  • m_hMutex : CControlProcess
  • m_hMutexCP : CControlProcess
  • m_hObj : CMutex
  • m_hWnd : CWnd, EditNode, CProcess, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgOpenFile, CDlgInput1, CDlgDebug, CUrlWnd, CDialog
  • m_hWnd_DropTarget : CDropTarget
  • m_hWnd_Dst : CDlgDiff
  • m_hwndButtonArr : CFuncKeyWnd
  • m_hwndDebug : DLLSHAREDATA
  • m_hwndHScrollBar : CPrintPreview, CEditView
  • m_hWndOwner : CMenuDrawer
  • m_hwndParent : CWnd, CPropTypes, CPropCommon, CEditWnd, CEditView, CEditDoc, CDlgOpenFile, CDlgInput1, CDlgDebug, CDialog
  • m_hwndPrintPreviewBar : CPrintPreview
  • m_hwndProgressBar : CEditWnd
  • m_hwndReBar : CEditWnd
  • m_hwndRecordingKeyMacro : DLLSHAREDATA
  • m_hwndSearchBox : CEditWnd
  • m_hwndSizeBox : CPrintPreview, CFuncKeyWnd, CEditView, CDialog
  • m_hwndStatusBar : CEditWnd
  • m_hwndTab : CTabWnd
  • m_hwndThis : CPropTypes, CPropCommon
  • m_hwndToolBar : CEditWnd
  • m_hwndToolTip : CTabWnd
  • m_hwndTraceOutSource : CShareData
  • m_hwndTray : DLLSHAREDATA
  • m_hwndVScrollBar : CPrintPreview, CEditView
  • m_IconClicked : CEditWnd
  • m_iIconApp : CTabWnd
  • m_iIconGrep : CTabWnd
  • m_IniFolder : DLLSHAREDATA
  • m_InterfaceObject : CWSHClient
  • m_ismultiline : CCppPreprocessMng
  • m_IsSorted : CKeyWordSetMgr
  • m_KeyHelpArr : Types
  • m_KeyWasHit : CTipWnd
  • m_lf : Common
  • m_lf_kh : Common
  • m_lfPreviewHan : CPrintPreview
  • m_lfPreviewZen : CPrintPreview
  • m_line : CMarkMgr::CMark
  • m_long_string : COutlinePython
  • m_lParam : CDialog
  • m_MacroFuncInfoArr : CSMacroMgr
  • m_MacroFuncInfoNotCommandArr : CSMacroMgr
  • m_MacroTable : DLLSHAREDATA, CPropCommon
  • m_MAX_TAGJUMPLIST : CSortedTagJumpList
  • m_maxnestlevel : CCppPreprocessMng
  • m_mdmDevMode : PRINTSETTING
  • m_Methods : CInterfaceObject
  • m_migemo : CMigemo
  • m_migemo_close : CMigemo
  • m_migemo_get_operator : CMigemo
  • m_migemo_is_enable : CMigemo
  • m_migemo_load : CMigemo
  • m_migemo_open : CMigemo
  • m_migemo_query : CMigemo
  • m_migemo_release : CMigemo
  • m_migemo_set_operator : CMigemo
  • m_migemo_setproc_char2int : CMigemo
  • m_migemo_setproc_int2char : CMigemo
  • m_mMacroCreators : CMacroFactory
  • m_nActivePane : CSplitterWnd
  • m_nActivePaneIndex : CEditDoc
  • m_nAllHeight : PAPER_INFO
  • m_nAllPageNum : CPrintPreview
  • m_nAllSplitCols : CSplitterWnd
  • m_nAllSplitRows : CSplitterWnd
  • m_nAllWidth : PAPER_INFO
  • m_nArrayCount : CRecent
  • m_nBackUpType : Common
  • m_nBackUpType_Opt1 : Common
  • m_nBackUpType_Opt2 : Common
  • m_nBackUpType_Opt3 : Common
  • m_nBackUpType_Opt4 : Common
  • m_nBackUpType_Opt5 : Common
  • m_nBackUpType_Opt6 : Common
  • m_nBlockFromLen : CBlockComment
  • m_nBlockToLen : CBlockComment
  • m_nbmpCompatScale : CPrintPreview
  • m_nBracketCaretPosX_PHY : CEditView
  • m_nBracketCaretPosY_PHY : CEditView
  • m_nBracketPairPosX_PHY : CEditView
  • m_nBracketPairPosY_PHY : CEditView
  • m_nButtonGroupNum : CFuncKeyWnd
  • m_nCaretHeight : CEditView
  • m_nCaretPosInfoCharHeight : CEditWnd
  • m_nCaretPosInfoCharWidth : CEditWnd
  • m_nCaretPosX : CEditView
  • m_nCaretPosX_PHY : CEditView
  • m_nCaretPosX_PHY_After : COpe
  • m_nCaretPosX_PHY_Before : COpe
  • m_nCaretPosX_PHY_To : COpe
  • m_nCaretPosX_Prev : CEditView
  • m_nCaretPosY : CEditView
  • m_nCaretPosY_PHY : CEditView
  • m_nCaretPosY_PHY_After : COpe
  • m_nCaretPosY_PHY_Before : COpe
  • m_nCaretPosY_PHY_To : COpe
  • m_nCaretType : Common
  • m_nCaretWidth : CEditView
  • m_nCharCode : FileInfo, CEditDoc, CDlgOpenFile
  • m_nCharHeight : CEditView
  • m_nCharSize : CEditView
  • m_nCharWidth : CEditView
  • m_nCmdArrNum : DLLSHAREDATA
  • m_nCmpSize : CRecent
  • m_nCmpType : CRecent
  • m_nCode : CDlgCtrlCode
  • m_nColmSpace : Types
  • m_nColmWidth : CHokanMgr
  • m_nColorIdx : ColorInfo
  • m_nColorIndex : RegexKeywordInfo
  • m_nColorInfoArrNum : Types
  • m_nColumn : CMemoryIterator< T >
  • m_nColumn_Delta : CMemoryIterator< T >
  • m_nCommandExecNum : CEditDoc
  • m_nCompiledMagicNumber : CRegexKeyword
  • m_nCOpeArrNum : COpeBlk
  • m_nCOpeBlkArrNum : COpeBuf
  • m_nCount : CSortedTagJumpList, CFileExt
  • m_nCurKouhoIdx : CHokanMgr
  • m_nCurLine : CDlgFuncList
  • m_nCurPageNum : CPrintPreview
  • m_nCurpos : CMarkMgr
  • m_nCurrentColorType : CPropTypes
  • m_nCurrentFocus : CEditWnd
  • m_nCurrentKeyState : CFuncKeyWnd
  • m_nCurrentKeyWordSetIdx : CKeyWordSetMgr
  • m_nCurrentPointer : COpeBuf
  • m_nCurrentPrintSetting : Types, CDlgPrintSetting
  • m_nCurrentTab : CDlgFavorite
  • m_nCustMenuItemFuncArr : Common
  • m_nCustMenuItemKeyArr : Common
  • m_nCustMenuItemNumArr : Common
  • m_nDataBufSize : CMemory
  • m_nDataLen : COpe, CMemory
  • m_nDateFormatType : Common
  • m_nDeapth : CRunningTimer
  • m_nDefaultOutline : Types
  • m_nDepth : CFuncInfo
  • m_nDiffFlgOpt : DLLSHAREDATA, CDlgDiff
  • m_nDragPosOrgX : CEditWnd
  • m_nDragPosOrgY : CEditWnd
  • m_nDragPosX : CSplitterWnd, CSplitBoxWnd
  • m_nDragPosY : CSplitterWnd, CSplitBoxWnd
  • m_nDropFileNumMax : Common
  • m_nEditArrNum : DLLSHAREDATA
  • m_nEOFColumn : CLayoutMgr
  • m_nEOFLine : CLayoutMgr
  • m_nEscCaretPosX_PHY : CDlgReplace, CDlgFind
  • m_nEscCaretPosY_PHY : CDlgReplace, CDlgFind
  • m_nExecFlgOpt : DLLSHAREDATA
  • m_nFileDataLen : CFileLoad
  • m_nFileShareMode : Common
  • m_nFileShareModeOld : CEditDoc
  • m_nFileSize : CFileLoad
  • m_nFlag : CFileLoad
  • m_nFuncCodeArr : KEYDATA, CFuncKeyWnd
  • m_nFuncID : MacroFuncInfo, CMacro
  • m_nFuncInfoArrNum : CFuncInfoArr
  • m_nFUNCKEYWND_GroupNum : Common
  • m_nFUNCKEYWND_Place : Common
  • m_nFuncLineCRLF : CFuncInfo
  • m_nFuncLineLAYOUT : CFuncInfo
  • m_nGrepCharSet : Common, CDlgGrep
  • m_nGREPFILEArrNum : DLLSHAREDATA
  • m_nGREPFOLDERArrNum : DLLSHAREDATA
  • m_nGrepOutputStyle : Common, CDlgGrep
  • m_nGroup : EditNode, CCommandLine
  • m_nGroupSequences : DLLSHAREDATA
  • m_nHeight : CDialog
  • m_nHSplitPos : CSplitterWnd
  • m_nId : PAPER_INFO, CDlgFavorite::FavoriteInfoTag
  • m_nIdx : Types
  • m_nImeState : Types
  • m_nIndent : CMemoryIterator< T >, CLayout
  • m_nIndentLayout : Types
  • m_nIndex : EditNode, CMemoryIterator< T >, CDlgTagJumpList
  • m_nIndex_Delta : CMemoryIterator< T >
  • m_nIndexSave : CDlgDiff
  • m_nInfo : CFuncInfo
  • m_nISearchDirection : CEditView
  • m_nISearchHistoryCount : CEditView
  • m_nISearchMode : CEditView
  • m_nISearchX1History : CEditView
  • m_nISearchX2History : CEditView
  • m_nISearchY1History : CEditView
  • m_nISearchY2History : CEditView
  • m_nItemSize : CRecent
  • m_nKeyCode : KEYDATA
  • m_nKeyHelpNum : Types
  • m_nKeyNameArrNum : DLLSHAREDATA, CPropCommon
  • m_nKEYWORDCASEArr : CKeyWordSetMgr
  • m_nKeyWordMaxLenArr : CKeyWordSetMgr
  • m_nKeyWordNumArr : CKeyWordSetMgr
  • m_nKeyWordSetIdx : Types
  • m_nKeyWordSetNum : CKeyWordSetMgr
  • m_nKouhoNum : CHokanMgr
  • m_nLastPos_FILENAME : CPropCommon
  • m_nLastReconvIndex : CEditView
  • m_nLastReconvLine : CEditView
  • m_nLength : CLayout
  • m_nLineCommentLen : CLineComment
  • m_nLineCommentPos : CLineComment
  • m_nLineIndex : CFileLoad
  • m_nLineLen : CMemoryIterator< T >
  • m_nLineNum : CDlgJump
  • m_nLineNumRightSpace : Common
  • m_nLinePhysical : CLayout
  • m_nLines : CLayoutMgr, CDocLineMgr
  • m_nLineSpace : Types
  • m_nLineTermType : Types
  • m_nLineTypeBot : CLayoutMgr
  • m_nListType : CDlgFuncList
  • m_nLockCounter : CCaretUnderLine
  • m_nLoop : CDlgTagJumpList
  • m_nMaxitem : CMarkMgr
  • m_nMaxLineSize : Types, CLayoutMgr
  • m_nMaxLineSize_org : CPropTypes
  • m_nMaxTextLen : CDlgInput1
  • m_nMenuHeight : CMenuDrawer
  • m_nMenuItemBitmapIdxArr : CMenuDrawer
  • m_nMenuItemFuncArr : CMenuDrawer
  • m_nMenuItemNum : CMenuDrawer
  • m_nMouseRollPosXOld : CEditView
  • m_nMouseRollPosYOld : CEditView
  • m_nMRUArrNum : DLLSHAREDATA
  • m_nMRUArrNum_MAX : Common
  • m_nMyButtonNum : CMenuDrawer
  • m_nMyIndex : CEditView
  • m_nNestCount : CRunningTimer
  • m_nNoModifiedIndex : COpeBuf
  • m_nOffset : CRecent, CLayout
  • m_nOldCaretPosX : CEditView
  • m_nOldCaretWidth : CEditView
  • m_nOldUnderLineY : CEditView
  • m_nOpe : COpe
  • m_nOPENFOLDERArrNum : DLLSHAREDATA
  • m_nOPENFOLDERArrNum_MAX : Common
  • m_nPageFrom : CDlgPrintPage
  • m_nPageMax : CDlgPrintPage
  • m_nPageMin : CDlgPrintPage
  • m_nPageNum : CPropTypes, CPropCommon
  • m_nPageTo : CDlgPrintPage
  • m_nPaperInfoArrNum : CPrint
  • m_nPaste : CDlgReplace
  • m_nPLSQL_E1 : CDlgJump
  • m_nPLSQL_E2 : CDlgJump
  • m_nPreview_LineNumberColmns : CPrintPreview
  • m_nPreview_PaperAllHeight : CPrintPreview
  • m_nPreview_PaperAllWidth : CPrintPreview
  • m_nPreview_PaperHeight : CPrintPreview
  • m_nPreview_PaperOffsetLeft : CPrintPreview
  • m_nPreview_PaperOffsetTop : CPrintPreview
  • m_nPreview_PaperWidth : CPrintPreview
  • m_nPreview_ViewHeight : CPrintPreview
  • m_nPreview_ViewMarginLeft : CPrintPreview
  • m_nPreview_ViewMarginTop : CPrintPreview
  • m_nPreview_ViewWidth : CPrintPreview
  • m_nPreview_Zoom : CPrintPreview
  • m_nPreviewHScrollPos : CPrintPreview
  • m_nPreviewVScrollPos : CPrintPreview
  • m_nPrevReferLine : CLayoutMgr, CDocLineMgr
  • m_nPrintDanSpace : PRINTSETTING
  • m_nPrintDansuu : PRINTSETTING
  • m_nPrintFontHeight : PRINTSETTING
  • m_nPrintFontWidth : PRINTSETTING
  • m_nPrintLineSpacing : PRINTSETTING
  • m_nPrintMarginBY : PRINTSETTING
  • m_nPrintMarginLX : PRINTSETTING
  • m_nPrintMarginRX : PRINTSETTING
  • m_nPrintMarginTY : PRINTSETTING
  • m_nPrintPaperOrientation : PRINTSETTING
  • m_nPrintPaperSize : PRINTSETTING
  • m_nReadBufOffSet : CFileLoad
  • m_nReadBufSize : CFileLoad
  • m_nReadDataLen : CFileLoad
  • m_nReadLength : CFileLoad
  • m_nReady : CMacroManagerBase
  • m_nRegexKeyCount : CRegexKeyword
  • m_nRegexKeyMagicNumber : Types
  • m_nRepeatedScroll_Smooth : Common
  • m_nRepeatedScrollLineNum : Common
  • m_nReplaceCnt : CDlgReplace
  • m_nREPLACEKEYArrNum : DLLSHAREDATA
  • m_nReplaceTarget : CDlgReplace
  • m_nRulerBottomSpace : Common
  • m_nRulerHeight : Common
  • m_nRulerType : Common
  • m_nSaveWindowPos : Common
  • m_nSaveWindowSize : Common
  • m_nSaveWinPos : CDlgWinSize
  • m_nSaveWinSize : CDlgWinSize
  • m_nSearchDict : CTipWnd
  • m_nSEARCHKEYArrNum : DLLSHAREDATA
  • m_nSearchLine : CTipWnd
  • m_nSelectColmBgnFrom : CEditView
  • m_nSelectColmBgnTo : CEditView
  • m_nSelectColmFrom : CEditView
  • m_nSelectColmFromOld : CEditView
  • m_nSelectColmTo : CEditView
  • m_nSelectColmToOld : CEditView
  • m_nSelectLineBgnFrom : CEditView
  • m_nSelectLineBgnTo : CEditView
  • m_nSelectLineFrom : CEditView
  • m_nSelectLineFromOld : CEditView
  • m_nSelectLineTo : CEditView
  • m_nSelectLineToOld : CEditView
  • m_nSequences : DLLSHAREDATA
  • m_nSet : CPropTypes, CDlgKeywordSelect
  • m_nSettingType : CPropCommon, CEditDoc, CDlgTypeList, CDlgReplace
  • m_nSettingTypeLocked : CEditDoc
  • m_nShowCmd : CDialog
  • m_nSmartIndent : Types
  • m_nSortCol : CDlgFuncList
  • m_nSortType : CDlgFuncList
  • m_nSrchStartPosX_PHY : CEditView
  • m_nSrchStartPosY_PHY : CEditView
  • m_nSrcTab : CTabWnd
  • m_nStartIdx : CKeyWordSetMgr
  • m_nStartTime : CRunningTimer
  • m_nStringType : Types, CLayoutMgr
  • m_nTabSpace : Types, CMemoryIterator< T >, CLayoutMgr
  • m_nTagJumpKeywordArrNum : DLLSHAREDATA
  • m_nTagsOpt : DLLSHAREDATA, CDlgTagsMake
  • m_nTimeFormatType : Common
  • m_nTimerCount : CFuncKeyWnd, CEditWnd
  • m_nTimerId : CDlgTagJumpList
  • m_nToolBarButtonIdxArr : Common
  • m_nToolBarButtonNum : Common
  • m_nTopYohaku : CEditView
  • m_nTransformFileNameArrNum : DLLSHAREDATA, CPropCommon
  • m_nTransformFileNameCount : CShareData
  • m_nTransformFileNameOrgId : CShareData
  • m_nTypeIndex : CRegexKeyword
  • m_nTypePrev : CLayout
  • m_nUse : KeyHelpInfo
  • m_nVertLineIdx : Types
  • m_nVertLineOffset : Common
  • m_nViewAlignLeft : CEditView
  • m_nViewAlignLeftCols : CEditView
  • m_nViewAlignTop : CEditView
  • m_nViewColNum : CEditView
  • m_nViewCount : CDlgFavorite::FavoriteInfoTag
  • m_nViewCx : CEditView
  • m_nViewCy : CEditView
  • m_nViewLeftCol : FileInfo, CEditView
  • m_nViewRowNum : CEditView
  • m_nViewTopLine : FileInfo, CEditView
  • m_nViewType : CDlgFuncList
  • m_nVScrollRate : CEditView
  • m_nVSplitPos : CSplitterWnd
  • m_nWidth : CDialog
  • m_nWindowOriginX : FileInfo
  • m_nWindowOriginY : FileInfo
  • m_nWindowSizeX : FileInfo
  • m_nWindowSizeY : FileInfo
  • m_nWinHeight : CHokanMgr
  • m_nWinPosX : Common
  • m_nWinPosY : Common
  • m_nWinSizeCX : Common
  • m_nWinSizeCY : Common
  • m_nWinSizeType : Common, CEditWnd, CDlgWinSize
  • m_nX : FileInfo
  • m_nY : FileInfo
  • m_Object : CInterfaceObjectTypeInfo
  • m_ofn : CDlgOpenFile
  • m_olelib : CYbInterfaceBase
  • m_OnError : CWSHClient
  • m_Owner : CInterfaceObject
  • m_owniid : CYbInterfaceImpl< BASEINTERFACE >
  • m_paperInfoArr : CPrint
  • m_pBot : CKeyMacroMgr
  • m_pbUserItemFavorite : CRecent
  • m_pCDocLine : CLayout
  • m_pcDocLineMgr : CLayoutMgr
  • m_pcDropTarget : CEditView
  • m_pcEditApp : CControlProcess
  • m_pCEditDoc : CFuncKeyWnd
  • m_pcEditDoc : CLayoutMgr, CEditView
  • m_pcEditView : CPPA, CCaretUnderLine
  • m_pCEditView : CDropTarget
  • m_pCEditWnd : CSplitterWnd
  • m_pcEditWnd : CNormalProcess, CEditDoc
  • m_pcFuncInfoArr : CDlgFuncList
  • m_pcIcons : CPropCommon, CMenuDrawer
  • m_pCKeyWordSetMgr : CPropTypes, CDlgKeywordSelect
  • m_pcmemData : COpe
  • m_pcmemKouho : CHokanMgr
  • m_pcMenuDrawer : CPropCommon
  • m_pcmigemo : CEditView
  • m_pCodePrevRefer : CDocLineMgr
  • m_pCommon : CFuncLookup
  • m_pcOpeBlk : CEditView
  • m_pcsbwHSplitBox : CEditView
  • m_pcsbwVSplitBox : CEditView
  • m_pcSMacro : CPropCommon
  • m_pcSMacroMgr : CFuncLookup, CEditDoc
  • m_pData : CMemory, CMacro::CMacroParam
  • m_pDataObject : CDropTarget
  • m_pDocLineBot : CDocLineMgr
  • m_pDocLineCurrent : CDocLineMgr
  • m_pDocLineTop : CDocLineMgr
  • m_pEditArr : DLLSHAREDATA
  • m_pEI : CESI
  • m_pFilename : CDlgFileUpdateQuery
  • m_phwndCompareWnd : CDlgCompare
  • m_pKeyMacro : CSMacroMgr
  • m_pKeyNameArr : DLLSHAREDATA, CPropCommon
  • m_pLayoutBot : CLayoutMgr
  • m_pLayoutMgr_Print : CPrintPreview
  • m_pLayoutPrevRefer : CLayoutMgr
  • m_pLayoutTop : CLayoutMgr
  • m_pLine : CMemoryIterator< T >, CDocLine
  • m_pnCaretPosInfoDx : CEditWnd
  • m_pnDx : CPrintPreview, CEditView
  • m_pNext : CMacro, CMacro::CMacroParam, CLayout, CDocLine
  • m_pnUserItemCount : CRecent
  • m_pnUserViewCount : CRecent
  • m_pOldProc : CUrlWnd
  • m_pos : CMarkMgr::CMark
  • m_poTipCurPos : CEditView
  • m_poWin : CHokanMgr
  • m_pParamBot : CMacro
  • m_pParamTop : CMacro
  • m_pParentWnd : CPrintPreview
  • m_ppcFuncInfoArr : CFuncInfoArr
  • m_ppCOpeArr : COpeBlk
  • m_ppCOpeBlkArr : COpeBuf
  • m_pPrev : CLayout, CDocLine
  • m_pPrintPreview : CEditWnd
  • m_pPrintSetting : CPrintPreview
  • m_pReadBuf : CFileLoad
  • m_pRecent : CDlgFavorite::FavoriteInfoTag
  • m_pRegExp : CBregexp
  • m_PrintSettingArr : DLLSHAREDATA, CDlgPrintSetting
  • m_ProfileData : CProfile
  • m_pShareData : CTabWnd, CSplitterWnd, CSMacroMgr, CShareData, CRecent, CPropTypes, CPropCommon, CProcess, CPPA, CMRUFolder, CMRU, CMenuDrawer, CFuncKeyWnd, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgOpenFile, CDialog
  • m_pszAppName : CEditWnd, CEditView, CEditDoc, CEditApp
  • m_pszCaption : CDlgFavorite::FavoriteInfoTag
  • m_pszClassName : CTipWnd, CTabWnd, CSplitterWnd, CSplitBoxWnd, CFuncKeyWnd
  • m_pszCmdLineSrc : CCommandLine
  • m_pszComparePath : CDlgCompare
  • m_pszCurKouho : CHokanMgr
  • m_pszData : MacroFuncInfo
  • m_pszFileName : CDlgTagJumpList
  • m_pszFuncName : MacroFuncInfo
  • m_pszKeyword : CDlgTagJumpList
  • m_pszKinsokuHead_1 : CLayoutMgr
  • m_pszKinsokuHead_2 : CLayoutMgr
  • m_pszKinsokuKuto_1 : CLayoutMgr
  • m_pszKinsokuKuto_2 : CLayoutMgr
  • m_pszKinsokuTail_1 : CLayoutMgr
  • m_pszKinsokuTail_2 : CLayoutMgr
  • m_pszLastCaption : CEditWnd
  • m_pszLineComment : CLineComment
  • m_pszMessage : CDlgInput1
  • m_pszMigemoWord : CEditView
  • m_pszName : ColorInfoIni, PAPER_INFO
  • m_pszPath : CFileWrite, CDlgCompare
  • m_pszTitle : CDlgInput1
  • m_pTagjump : CSortedTagJumpList
  • m_pTop : CKeyMacroMgr
  • m_ptSrcCursor : CTabWnd
  • m_pTypes : CRegexKeyword, CDlgSameColor
  • m_puFileExtInfo : CFileExt
  • m_puUserItemData : CRecent
  • m_quote_char : COutlinePython
  • m_raw_string : COutlinePython
  • m_rc : CDlgWinSize
  • m_rcOpenDialog : Common
  • m_RefCount : ImplementsIUnknown< Base >, CWSHSite
  • m_RegexKeywordArr : Types
  • m_SCROLLBAR_HORZ : CPrintPreview
  • m_SCROLLBAR_VERT : CPrintPreview
  • m_showCmdRestore : EditNode
  • m_sInfo : CRegexKeyword
  • m_SizeBoxCanMove : CPrintPreview
  • m_Source : CWSHMacroManager
  • m_stackptr : CCppPreprocessMng
  • m_state : COutlinePython
  • m_strProfileName : CProfile
  • m_szAbout : KeyHelpInfo
  • m_szBackUpFolder : Common
  • m_szBackUpPathAdvanced : Common
  • m_szBlockCommentFrom : CBlockComment
  • m_szBlockCommentTo : CBlockComment
  • m_szClassInheritances : CWnd
  • m_szCmdArr : DLLSHAREDATA
  • m_szCommand : CDlgExec
  • m_szCurrentFilePath : CDlgGrep
  • m_szCurSrchKey : CEditView
  • m_szCustMenuNameArr : Common
  • m_szDateFormat : Common
  • m_szDefaultWildCard : CDlgOpenFile
  • m_szDocType : FileInfo
  • m_szExt : CFileExt::FileExtInfoTag
  • m_szExtHelp : Common, Types
  • m_szExtHtmlHelp : Common, Types
  • m_szFile : MacroRec, CDlgGrep
  • m_szFile1 : CDlgDiff
  • m_szFile2 : CDlgDiff
  • m_szFilePath : EditNode, CFuncInfoArr, CEditDoc
  • m_szFilter : CFileExt
  • m_szFolder : CDlgGrep
  • m_szFooterForm : PRINTSETTING
  • m_szFuncNameArr : CFuncKeyWnd
  • m_szGREPFILEArr : DLLSHAREDATA
  • m_szGREPFOLDERArr : DLLSHAREDATA
  • m_szGrepKey : FileInfo, CEditDoc
  • m_szHeaderForm : PRINTSETTING
  • m_szHelpFile : CPropTypes, CPropCommon, CDlgInput1, CDialog
  • m_szHokanFile : Types
  • m_szIMPORTFOLDER : DLLSHAREDATA
  • m_szIndentChars : Types
  • m_szIniFile : IniFolder
  • m_szInitialDir : CDlgOpenFile
  • m_szInyouKigou : Common
  • m_szKeyMacroFileName : DLLSHAREDATA
  • m_szKeyName : KEYDATA
  • m_szKeyword : RegexKeywordInfo
  • m_szKeyWordArr : CKeyWordSetMgr
  • m_szKeyWordSetDir : DLLSHAREDATA
  • m_szKinsokuHead : Types
  • m_szKinsokuTail : Types
  • m_szMACROFOLDER : DLLSHAREDATA, CPropCommon
  • m_szMarkLines : FileInfo
  • m_szMidashiKigou : Common
  • m_szMigemoDict : Common
  • m_szMigemoDll : Common
  • m_szMsg : CRegexKeyword, CPPA, CDlgFavorite, CBregexp
  • m_szName : MacroRec, ColorInfo, CFileExt::FileExtInfoTag
  • m_szOPENFOLDERArr : DLLSHAREDATA
  • m_szOutlineRuleFilename : Types
  • m_szPath : KeyHelpInfo, FileInfo, CDlgTagsMake, CDlgOpenFile
  • m_szPrinterDeviceName : MYDEVMODE
  • m_szPrinterDriverName : MYDEVMODE
  • m_szPrinterOutputName : MYDEVMODE
  • m_szPrintFontFaceHan : PRINTSETTING
  • m_szPrintFontFaceZen : PRINTSETTING
  • m_szPrintSettingName : PRINTSETTING
  • m_szPrivateIniFile : IniFolder
  • m_szRegexpLib : Common
  • m_szREPLACEKEYArr : DLLSHAREDATA
  • m_szSEARCHKEYArr : DLLSHAREDATA
  • m_szSetNameArr : CKeyWordSetMgr
  • m_szTabCaption : EditNode
  • m_szTabViewString : Types
  • m_szTabWndCaption : Common
  • m_szTagJumpKeywordArr : DLLSHAREDATA
  • m_szTagsCmdLine : DLLSHAREDATA, CDlgTagsMake
  • m_szTarget : CBregexp
  • m_szText : CRunningTimer, CDlgReplace, CDlgGrep, CDlgFind
  • m_szText2 : CDlgReplace
  • m_szTextTip1 : CTabWnd
  • m_szTextTip2 : CTabWnd
  • m_szTimeFormat : Common
  • m_szTransformFileNameFrom : DLLSHAREDATA, CPropCommon
  • m_szTransformFileNameFromExp : CShareData
  • m_szTransformFileNameTo : DLLSHAREDATA, CPropCommon
  • m_szTypeExts : Types
  • m_szTypeName : Types
  • m_szWindowCaptionActive : Common
  • m_szWindowCaptionInactive : Common
  • m_szWork : DLLSHAREDATA
  • m_TagJump : DLLSHAREDATA
  • m_TagJumpNum : DLLSHAREDATA
  • m_TagJumpTop : DLLSHAREDATA
  • m_tbMyButton : CMenuDrawer
  • m_tmpBuf : CBregexp
  • m_TypeAttr : CInterfaceObjectTypeInfo
  • m_TypeInfo : CInterfaceObject, CWSHSite
  • m_Types : DLLSHAREDATA, CPropTypes
  • m_Types_nKeyWordSetIdx : CPropCommon
  • m_uATOKReconvertMsg : CEditWnd, CEditView
  • m_uCreateTaskBarMsg : CEditApp
  • m_uMSIMEReconvertMsg : CEditWnd, CEditView
  • m_UrlOrgWnd : CDlgAbout
  • m_UrlUrWnd : CDlgAbout
  • m_uWM_MSIME_RECONVERTREQUEST : CEditView
  • m_Valid : CWSHClient
  • m_varArguments : MacroFuncInfo
  • m_varResult : MacroFuncInfo
  • m_vStructureVersion : DLLSHAREDATA
  • m_WEI : CESI
  • m_wID : CDlgSameColor
  • m_widthOutlineWindow : Common
  • m_wpColorListProc : CDlgSameColor
  • m_wpColorStaticProc : CDlgSameColor
  • m_wTrayMenuHotKeyCode : Common
  • m_wTrayMenuHotKeyMods : Common
  • m_xOutlineWindowPos : Common
  • m_xPos : CDialog
  • m_yOutlineWindowPos : Common
  • m_yPos : CDialog
  • MacroEngineRep : CMacroFactory
  • MainLoop() : CProcess, CNormalProcess, CControlProcess
  • MakeBackUp() : CEditDoc
  • MakeDiffTmpFile() : CEditView
  • MakeFuncList_BookMark() : CEditDoc
  • MakeFuncList_C() : CEditDoc
  • MakeFuncList_Java() : CEditDoc
  • MakeFuncList_Perl() : CEditDoc
  • MakeFuncList_PLSQL() : CEditDoc
  • MakeFuncList_python() : CEditDoc
  • MakeFuncList_RuleFile() : CEditDoc
  • MakeFuncList_VisualBasic() : CEditDoc
  • MakePattern() : CBregexp
  • MakePatternSub() : CBregexp
  • MakeTopicList_asm() : CEditDoc
  • MakeTopicList_cobol() : CEditDoc
  • MakeTopicList_html() : CEditDoc
  • MakeTopicList_tex() : CEditDoc
  • MakeTopicList_txt() : CEditDoc
  • MakeTopicList_wztxt() : CEditDoc
  • MAP_STR_STR : CProfile
  • mapEntries : CProfile::Section
  • MarkSearchWord() : CDocLineMgr
  • Match() : CLineComment, CBregexp
  • Match_CommentFrom() : CBlockComment
  • Match_CommentTo() : CBlockComment
  • Match_Quote() : CLayoutMgr
  • MeasureItem() : CMenuDrawer
  • MemBASE64_Decode() : CMemory
  • MemBASE64_Encode() : CMemory
  • MemCharNext() : CMemory
  • MemCharPrev() : CMemory
  • MemJIStoSJIS() : CMemory
  • MemSJIStoJIS() : CMemory
  • MemSJISToUnicode() : CMemory
  • MemUnicodeToSJIS() : CMemory
  • MessageLoop() : CEditWnd, CEditApp
  • Method : CInterfaceObject::CMethodInfo
  • migemo_close() : CMigemo
  • migemo_get_operator() : CMigemo
  • migemo_is_enable() : CMigemo
  • migemo_load() : CMigemo
  • migemo_load_all() : CMigemo
  • migemo_open() : CMigemo
  • migemo_query() : CMigemo
  • migemo_release() : CMigemo
  • migemo_set_operator() : CMigemo
  • migemo_setproc_char2int() : CMigemo
  • migemo_setproc_int2char() : CMigemo
  • MoveCursor() : CEditView
  • MoveCursorProperly() : CEditView
  • MoveCursorSelecting() : CEditView
  • MoveCursorToPoint() : CEditView
  • MoveItem() : CRecent
  • MoveLeft() : CTabWnd
  • MoveListViewItem_FILENAME() : CPropCommon
  • MoveRight() : CTabWnd
  • MY_RegQuerVal() : CShareData
  • MY_RegSetVal() : CShareData
  • MyAppendMenu() : CMenuDrawer
  • MyBitBlt() : CImageListMgr
  • MyEnumFontFamProc() : CPrintPreview
  • MyGetClipboardData() : CEditView
  • MyGetDateFormat() : CShareData
  • MyGetTimeFormat() : CShareData
  • MySetClipboardData() : CEditView
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- n -

  • nAddLineNum : LayoutReplaceArg
  • Name : CInterfaceObject::CMethodInfo
  • name : CDllHandler::ImportTable, ctrl_info_t
  • nCRorLF : WC_EncodingInfo_t
  • nCRorLF_ascii : UnicodeInfo_t
  • nDelColmFrom : LayoutReplaceArg
  • nDelColmTo : LayoutReplaceArg
  • nDeletedLineNum : DocLineReplaceArg
  • nDelLineFrom : LayoutReplaceArg, DocLineReplaceArg
  • nDelLineTo : LayoutReplaceArg, DocLineReplaceArg
  • nDelPosFrom : DocLineReplaceArg
  • nDelPosTo : DocLineReplaceArg
  • nDiff : EncodingInfo_t
  • next : CSortedTagJumpList::tagjump_info_t
  • NextGroup() : CTabWnd
  • NextValid() : CMarkMgr
  • NextWord() : CLayoutMgr
  • nFlag : RegexInfo_t
  • nGrepCharSet : GrepInfo
  • nGrepOutputStyle : GrepInfo
  • nGroupMru : EditNodeEx
  • nHead : RegexInfo_t
  • nInsDataLen : LayoutReplaceArg, DocLineReplaceArg
  • nInsLineNum : DocLineReplaceArg
  • nInterval : CPassiveTimer
  • nItemNum : ARRHEAD
  • nLastPos_Macro : CPropCommon
  • nLastTick : CPassiveTimer
  • nLength : ARRHEAD, RegexInfo_t, oneRule
  • nLine : RcCvt
  • nLostBytes : WC_EncodingInfo_t
  • nMatch : RegexInfo_t
  • nMethod : TYPE_NAME
  • nModLineFrom : LayoutReplaceArg
  • nModLineTo : LayoutReplaceArg
  • nNewLine : LayoutReplaceArg, DocLineReplaceArg
  • nNewPos : LayoutReplaceArg, DocLineReplaceArg
  • no : CSortedTagJumpList::tagjump_info_t
  • nOffset : RegexInfo_t
  • note : CSortedTagJumpList::tagjump_info_t
  • nparens : bregexp
  • nSpecBytes : EncodingInfo_t
  • nStatus : RegexInfo_t
  • NUM_OF_MBCODE : CESI
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- o -

  • o_ : LockGuard< EXCLUSIVE_OBJECT >
  • OFNHookProc : CDlgOpenFile
  • OnActivate() : CDlgFavorite, CDialog
  • OnBnClicked() : CHokanMgr, CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgSameColor, CDlgReplace, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFileUpdateQuery, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDlgCancel, CDlgAbout, CDialog
  • OnCaptionTimer() : CEditWnd
  • OnCaptureChanged() : CTabWnd
  • OnCbnEditChange() : CDlgTagJumpList, CDialog
  • OnCbnSelChange() : CHokanMgr, CDlgTagJumpList, CDlgPrintSetting, CDlgJump, CDlgFuncList, CDlgDiff, CDialog
  • OnChangePrintSetting() : CPrintPreview
  • OnChangeSetting() : CEditView, CEditDoc
  • OnChangeSettingType() : CDlgPrintSetting
  • OnCharToItem() : CDialog
  • OnCheckAntialias() : CPrintPreview
  • OnClose() : CEditWnd
  • OnCmbDropdown() : CDlgOpenFile
  • OnCommand() : CFuncKeyWnd, CEditWnd, CEditApp, CDialog
  • OnContextMenu() : CDialog
  • OnDestroy() : CTabWnd, CHokanMgr, CFuncKeyWnd, CEditApp, CDlgPrintSetting, CDlgFuncList, CDialog
  • OnDeviceChange() : CDialog
  • OnDrawItem() : CTabWnd, CDlgSameColor, CDialog
  • OnDropFiles() : CEditWnd
  • OnEditChange() : CDlgDiff, CDialog
  • OnEditTimer() : CEditWnd
  • OnEnterScript() : CWSHSite
  • OnFileClose() : CEditDoc
  • OnFileDropdown_Macro() : CPropCommon
  • OnHelp() : CPropTypes, CPropCommon
  • OnHelp_MenuItem() : CEditWnd
  • OnHScroll() : CPrintPreview, CEditWnd, CEditView
  • OnInitDialog() : CHokanMgr, CDlgWinSize, CDlgTagJumpList, CDlgSameColor, CDlgReplace, CDlgPrintSetting, CDlgKeywordSelect, CDlgGrep, CDlgFuncList, CDlgFileUpdateQuery, CDlgFavorite, CDlgCtrlCode, CDlgCancel, CDlgAbout, CDialog
  • OnJump() : CDlgFuncList
  • OnKeyDown() : CHokanMgr, CDialog
  • OnKillFocus() : CHokanMgr, CEditView, CDialog
  • OnLbnDblclk() : CHokanMgr, CDlgTypeList, CDialog
  • OnLButtonDblClk() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CEditWnd
  • OnLBUTTONDBLCLK() : CEditView
  • OnLBUTTONDOWN() : CEditView
  • OnLButtonDown() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CEditWnd
  • OnLButtonUp() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CEditWnd
  • OnLBUTTONUP() : CEditView
  • OnLeaveScript() : CWSHSite
  • OnMBUTTONDOWN() : CEditView
  • OnMeasureItem() : CTabWnd
  • OnMenuChar() : CMenuDrawer
  • OnMOUSEMOVE() : CEditView
  • OnMouseMove() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CPrintPreview, CEditWnd
  • OnMouseWheel() : CPrintPreview, CEditWnd
  • OnMOUSEWHEEL() : CEditView
  • OnMove() : CEditView, CEditDoc, CDialog
  • OnNcDestroy() : CWnd
  • OnNcLButtonDown() : CEditWnd
  • OnNcLButtonUp() : CEditWnd
  • OnNewEditor() : CEditApp
  • OnNotify() : CTabWnd, CDlgTagJumpList, CDlgPrintSetting, CDlgJump, CDlgFuncList, CDlgFavorite, CDlgCtrlCode, CDialog
  • OnPaint() : CTipWnd, CTabWnd, CSplitterWnd, CSplitBoxWnd, CPrintPreview, CEditWnd, CEditView
  • OnPopupHelp() : CDialog
  • OnPreviewGoDirectPage() : CPrintPreview
  • OnPreviewGoNextPage() : CPrintPreview
  • OnPreviewGoPage() : CPrintPreview
  • OnPreviewGoPreviousPage() : CPrintPreview
  • OnPreviewZoom() : CPrintPreview
  • OnPrint() : CPrintPreview
  • OnPrintPageSetting() : CPrintPreview, CEditWnd
  • OnRBUTTONDOWN() : CEditView
  • OnRButtonDown() : CTabWnd
  • OnRBUTTONUP() : CEditView
  • OnScriptError() : CWSHSite
  • OnScriptTerminate() : CWSHSite
  • OnSelChangeListColors() : CDlgSameColor
  • OnSetFocus() : CEditView
  • OnSize() : CTabWnd, CSplitterWnd, CPrintPreview, CHokanMgr, CFuncKeyWnd, CEditWnd, CEditView, CDlgFuncList, CDialog
  • OnSpin() : CDlgPrintSetting
  • OnStateChange() : CWSHSite
  • OnSysMenuTimer() : CEditWnd
  • OnTabCaptureChanged() : CTabWnd
  • OnTabLButtonDown() : CTabWnd
  • OnTabLButtonUp() : CTabWnd
  • OnTabMButtonDown() : CTabWnd
  • OnTabMButtonUp() : CTabWnd
  • OnTabMouseMove() : CTabWnd
  • OnTabNotify() : CTabWnd
  • OnTabRButtonDown() : CTabWnd
  • OnTabRButtonUp() : CTabWnd
  • OnTimer() : CTabWnd, CFuncKeyWnd, CEditWnd, CEditView, CDlgTagJumpList, CDlgPrintSetting, CDialog
  • OnToolbarTimer() : CEditWnd
  • OnVKeyToItem() : CDialog
  • OnVScroll() : CPrintPreview, CEditWnd, CEditView
  • OnXLBUTTONDOWN() : CEditView
  • OnXRBUTTONDOWN() : CEditView
  • Open() : CTabWnd, CFuncKeyWnd
  • OPEN_ExtFromtoExt() : CEditView
  • OpenFile() : CEditDoc
  • OpenFileDialog() : CEditDoc
  • OpenNewEditor() : CEditApp
  • OpenNewEditor2() : CEditApp
  • OpenPropertySheet() : CEditDoc
  • OpenPropertySheetTypes() : CEditDoc
  • operator enumEOLType() : CEOL
  • operator HANDLE() : CMutex
  • operator!() : CDllHandler
  • operator!=() : CMarkMgr::CMark, CEOL
  • operator+=() : CMemory
  • operator=() : Variant, SysString, ImplementsIUnknown< Base >, CMemory, CKeyWordSetMgr, CFileLoad, CEOL
  • operator==() : CMarkMgr::CMark, CEOL
  • operator[]() : CMemory, CMarkMgr
  • optCaseSensitive : CBregexp
  • optGlobal : CBregexp
  • Option : CBregexp
  • optNothing : CBregexp
  • OsDoesNOTSupportReconvert() : COsVersionInfo
  • OsIsEnableVersion() : COsVersionInfo
  • outendp : bregexp
  • outp : bregexp
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- z -

  • ZeroItem() : CRecent
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- ~ -

  • ~CBregexp() : CBregexp
  • ~CControlProcess() : CControlProcess
  • ~CDataObject() : CDataObject
  • ~CDialog() : CDialog
  • ~CDicMgr() : CDicMgr
  • ~CDlgDebug() : CDlgDebug
  • ~CDlgFavorite() : CDlgFavorite
  • ~CDlgInput1() : CDlgInput1
  • ~CDlgKeywordSelect() : CDlgKeywordSelect
  • ~CDlgOpenFile() : CDlgOpenFile
  • ~CDlgSameColor() : CDlgSameColor
  • ~CDlgTagJumpList() : CDlgTagJumpList
  • ~CDlgWinSize() : CDlgWinSize
  • ~CDllHandler() : CDllHandler
  • ~CDocLine() : CDocLine
  • ~CDocLineMgr() : CDocLineMgr
  • ~CDropTarget() : CDropTarget
  • ~CEditApp() : CEditApp
  • ~CEditDoc() : CEditDoc
  • ~CEditView() : CEditView
  • ~CEditWnd() : CEditWnd
  • ~CFileExt() : CFileExt
  • ~CFileLoad() : CFileLoad
  • ~CFileWrite() : CFileWrite
  • ~CFuncInfo() : CFuncInfo
  • ~CFuncInfoArr() : CFuncInfoArr
  • ~CFuncKeyWnd() : CFuncKeyWnd
  • ~CHokanMgr() : CHokanMgr
  • ~CHtmlHelp() : CHtmlHelp
  • ~CImageListMgr() : CImageListMgr
  • ~CInterfaceObject() : CInterfaceObject
  • ~CKeyBind() : CKeyBind
  • ~CKeyMacroMgr() : CKeyMacroMgr
  • ~CKeyWordSetMgr() : CKeyWordSetMgr
  • ~CLayout() : CLayout
  • ~CLayoutMgr() : CLayoutMgr
  • ~CMacro() : CMacro
  • ~CMacroManagerBase() : CMacroManagerBase
  • ~CMemory() : CMemory
  • ~CMenuDrawer() : CMenuDrawer
  • ~CMigemo() : CMigemo
  • ~CMRU() : CMRU
  • ~CMRUFolder() : CMRUFolder
  • ~CMutex() : CMutex
  • ~CNormalProcess() : CNormalProcess
  • ~COleLibrary() : COleLibrary
  • ~COpe() : COpe
  • ~COpeBlk() : COpeBlk
  • ~COpeBuf() : COpeBuf
  • ~CPPA() : CPPA
  • ~CPPAMacroMgr() : CPPAMacroMgr
  • ~CPrint() : CPrint
  • ~CPrintPreview() : CPrintPreview
  • ~CProcess() : CProcess
  • ~CProfile() : CProfile
  • ~CPropCommon() : CPropCommon
  • ~CPropTypes() : CPropTypes
  • ~CRecent() : CRecent
  • ~CRegexKeyword() : CRegexKeyword
  • ~CRunningTimer() : CRunningTimer
  • ~CShareData() : CShareData
  • ~CSMacroMgr() : CSMacroMgr
  • ~CSortedTagJumpList() : CSortedTagJumpList
  • ~CSplitBoxWnd() : CSplitBoxWnd
  • ~CSplitterWnd() : CSplitterWnd
  • ~CTabWnd() : CTabWnd
  • ~CTipWnd() : CTipWnd
  • ~CUrlWnd() : CUrlWnd
  • ~CUxTheme() : CUxTheme
  • ~CWaitCursor() : CWaitCursor
  • ~CWnd() : CWnd
  • ~CWSHClient() : CWSHClient
  • ~CWSHMacroManager() : CWSHMacroManager
  • ~CYbInterfaceBase() : CYbInterfaceBase
  • ~ImplementsIUnknown() : ImplementsIUnknown< Base >
  • ~LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
  • ~RcCvt() : RcCvt
  • ~SysString() : SysString
  • ~Variant() : Variant
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- a -

  • Abort() : CPPA
  • ActiveView() : CEditDoc
  • Add() : CMRUFolder, CMRU, CAutoMarkMgr, CMarkMgr
  • AddCurrentLineToHistory() : CEditView
  • AddData() : CMemory
  • addDelta() : CMemoryIterator< T >
  • AddEditWndList() : CShareData
  • AddIntObj() : CPPA
  • AddIntVar() : CPPA
  • AddKeyWord() : CKeyWordSetMgr
  • AddKeyWordSet() : CKeyWordSetMgr
  • AddLineBottom() : CLayoutMgr
  • AddLineStrX() : CDocLineMgr
  • AddLParam() : CMacro
  • AddMethod() : CInterfaceObject
  • AddParam() : CSortedTagJumpList, CMacro, CDlgTagJumpList
  • AddRealObj() : CPPA
  • AddRealVar() : CPPA
  • AddRef() : ImplementsIUnknown< Base >, CWSHSite
  • AddressOfMember() : CInterfaceObjectTypeInfo
  • AddStrObj() : CPPA
  • AddStrVar() : CPPA
  • AddToCmdArr() : CEditView
  • AddToGrepFileArr() : CShareData
  • AddToGrepFolderArr() : CShareData
  • AddToMRU() : CEditDoc
  • AddToReplaceKeyArr() : CShareData
  • AddToSearchKeyArr() : CShareData
  • AdjustScrollBars() : CEditView
  • AdjustWindowPlacement() : CTabWnd
  • AfterCreateWindow() : CWnd, CTipWnd, CTabWnd, CFuncKeyWnd
  • AllocBuffer() : CMemory
  • AnalyzeDiffInfo() : CEditView
  • Append() : CSMacroMgr, CMemory, CKeyMacroMgr
  • AppendData() : CFuncInfoArr
  • AppendExt() : CFileExt
  • AppendExtRaw() : CFileExt
  • AppendItem() : CRecent
  • AppendOpe() : COpeBlk
  • AppendOpeBlk() : COpeBuf
  • AppendSz() : CMemory
  • ApplyData() : CPropCommon
  • Arguments : CInterfaceObject::CMethodInfo
  • AtoiOptionInt() : CCommandLine
  • AUTOToSJIS() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:13 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- b -

  • BASE64Decode() : CMemory
  • BeginSelectArea() : CEditView
  • bEnabled : CPassiveTimer
  • BeReloadWhenExecuteMacro() : CShareData
  • bGrepNoIgnoreCase : GrepInfo
  • bGrepOutputLine : GrepInfo
  • bGrepRegularExp : GrepInfo
  • bGrepSubFolder : GrepInfo
  • bGrepWordOnly : GrepInfo
  • BMatch : CBregexp
  • BMatchEx : CBregexp
  • BOOL : CUxTheme, CEditView, CDataObject
  • BreakDrag() : CTabWnd
  • BREGEXP_BMatch : CBregexp
  • BREGEXP_BMatchEx : CBregexp
  • BREGEXP_BRegexpVersion : CBregexp
  • BREGEXP_BRegfree : CBregexp
  • BREGEXP_BSplit : CBregexp
  • BREGEXP_BSubst : CBregexp
  • BREGEXP_BSubstEx : CBregexp
  • BREGEXP_BTrans : CBregexp
  • BRegexpVersion : CBregexp
  • BRegfree : CBregexp
  • BSplit : CBregexp
  • BSubst : CBregexp
  • BSubstEx : CBregexp
  • bText : VS_VERSION_INFO_HEAD
  • BTrans : CBregexp
  • buffer : RcCvt
  • Buffering() : CFileLoad
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- c -

  • CalcButtonSize() : CFuncKeyWnd
  • CallDefWndProc() : CWnd
  • CallHandleFunction() : CPPA
  • CanAddKeyWord() : CKeyWordSetMgr
  • CanFuncIsKeyMacro() : CSMacroMgr
  • CAPT_CLOSE : CTabWnd
  • CAPT_NONE : CTabWnd
  • CaptureSrc : CTabWnd
  • CaretPos_Log2Phys() : CLayoutMgr
  • CaretPos_Phys2Log() : CLayoutMgr
  • CaretUnderLineOFF() : CEditView, CCaretUnderLine
  • CaretUnderLineON() : CEditView, CCaretUnderLine
  • Category2Name() : CFuncLookup
  • CBlockComment() : CBlockComment
  • CBregexp() : CBregexp
  • CCaretUnderLine() : CCaretUnderLine
  • CCommandLine() : CCommandLine
  • CControlProcess() : CControlProcess
  • CCppPreprocessMng() : CCppPreprocessMng
  • CDataObject() : CDataObject
  • CDialog() : CDialog
  • CDicMgr() : CDicMgr
  • CDlgCancel() : CDlgCancel
  • CDlgCompare() : CDlgCompare
  • CDlgCtrlCode() : CDlgCtrlCode
  • CDlgDebug() : CDlgDebug
  • CDlgDiff() : CDlgDiff
  • CDlgExec() : CDlgExec
  • CDlgFavorite() : CDlgFavorite
  • CDlgFileUpdateQuery() : CDlgFileUpdateQuery
  • CDlgFind() : CDlgFind
  • CDlgFuncList() : CDlgFuncList
  • CDlgGrep() : CDlgGrep
  • CDlgInput1() : CDlgInput1
  • CDlgJump() : CDlgJump
  • CDlgKeywordSelect() : CDlgKeywordSelect
  • CDlgOpenFile() : CDlgOpenFile
  • CDlgPrintPage() : CDlgPrintPage
  • CDlgReplace() : CDlgReplace
  • CDlgSameColor() : CDlgSameColor
  • CDlgTagJumpList() : CDlgTagJumpList
  • CDlgTagsMake() : CDlgTagsMake
  • CDlgWinSize() : CDlgWinSize
  • CDllHandler() : CDllHandler
  • CDocLine() : CDocLine
  • CDocLineMgr() : CDocLineMgr
  • CDropSource() : CDropSource
  • CDropTarget() : CDropTarget
  • CEditApp() : CEditApp
  • CEditDoc() : CEditDoc
  • CEditView() : CEditView
  • CEditWnd() : CEditWnd
  • CEOL() : CEOL
  • CESI() : CESI
  • CFileExt() : CFileExt
  • CFileLoad() : CFileLoad
  • CFileWrite() : CFileWrite
  • CFuncInfo() : CFuncInfo
  • CFuncInfoArr() : CFuncInfoArr
  • CFuncKeyWnd() : CFuncKeyWnd
  • CFuncLookup() : CFuncLookup
  • ChangeCurRegexp() : CEditView
  • ChangeDateExample() : CPropCommon
  • ChangeFileNameNotify() : CEditWnd
  • ChangeFont() : CTipWnd
  • ChangeLayoutParam() : CLayoutMgr, CEditDoc
  • ChangeSelectAreaByCurrentCursor() : CEditView
  • ChangeSelectAreaByCurrentCursorTEST() : CEditView
  • ChangeTimeExample() : CPropCommon
  • ChangeView() : CHokanMgr, CDlgReplace, CDlgFuncList, CDlgFind
  • ChangeViewCount() : CRecent
  • CheckAction() : CPassiveTimer
  • CheckAutoSave() : CEditDoc
  • CheckColorMODE() : CLayoutMgr
  • CheckCommandLine() : CCommandLine
  • CheckCurrent() : CMarkMgr
  • CheckFileTimeStamp() : CEditDoc
  • CheckKanjiCode() : CMemory
  • CheckKanjiCodeOfFile() : CMemory
  • CheckListPosition_Macro() : CPropCommon
  • CheckListType() : CDlgFuncList
  • CheckNext() : CMarkMgr
  • CheckPattern() : CBregexp
  • CheckPrev() : CMarkMgr
  • CHokanMgr() : CHokanMgr
  • ChooseFontHandle() : CEditView
  • CHtmlHelp() : CHtmlHelp
  • CImageListMgr() : CImageListMgr
  • CInterfaceObject() : CInterfaceObject
  • CInterfaceObjectTypeInfo() : CInterfaceObjectTypeInfo
  • CKeyBind() : CKeyBind
  • CKeyMacroMgr() : CKeyMacroMgr
  • CKeyWordSetMgr() : CKeyWordSetMgr
  • CLayout() : CLayout
  • CLayoutMgr() : CLayoutMgr
  • CleanKeyWords() : CKeyWordSetMgr
  • Clear() : CSMacroMgr
  • ClearAll() : CSMacroMgr, COpeBuf, CMRUFolder, CMRU, CKeyMacroMgr
  • CLineComment() : CLineComment
  • Close() : CTabWnd, CFuncKeyWnd
  • CloseAllEditor() : CEditApp
  • CloseDialog() : CDialog
  • CMacro() : CMacro
  • CMacroFactory() : CMacroFactory
  • CMacroManagerBase() : CMacroManagerBase
  • CMark() : CMarkMgr::CMark
  • CMarkChain : CMarkMgr
  • CMarkIterator : CMarkMgr
  • CMarkMgr() : CMarkMgr
  • CMemory() : CMemory
  • CMemoryIterator() : CMemoryIterator< T >
  • CMenuDrawer() : CMenuDrawer
  • CMethodInfoList : CInterfaceObject
  • cmGrepFile : GrepInfo
  • cmGrepFolder : GrepInfo
  • cmGrepKey : GrepInfo
  • CMigemo() : CMigemo
  • CMRU() : CMRU
  • CMRUFolder() : CMRUFolder
  • CMutex() : CMutex
  • CNormalProcess() : CNormalProcess
  • code : ctrl_info_t
  • COleLibrary() : COleLibrary
  • ColorList_SubclassProc() : CDlgSameColor
  • ColorStatic_SubclassProc() : CDlgSameColor
  • Command_1PageDown() : CEditView
  • Command_1PageUp() : CEditView
  • Command_ABOUT() : CEditView
  • Command_ACTIVATE_SQLPLUS() : CEditView
  • Command_ADDTAIL() : CEditView
  • Command_BASE64DECODE() : CEditView
  • Command_BEGIN_BOXSELECT() : CEditView
  • Command_BEGIN_SELECT() : CEditView
  • Command_BIND_WINDOW() : CEditView
  • Command_BOOKMARK_NEXT() : CEditView
  • Command_BOOKMARK_PATTERN() : CEditView
  • Command_BOOKMARK_PREV() : CEditView
  • Command_BOOKMARK_RESET() : CEditView
  • Command_BOOKMARK_SET() : CEditView
  • Command_BRACKETPAIR() : CEditView
  • Command_BROWSE() : CEditView
  • Command_CANCEL_MODE() : CEditView
  • Command_CASCADE() : CEditView
  • Command_CHAR() : CEditView
  • Command_CHGMOD_EOL() : CEditView
  • Command_CHGMOD_INS() : CEditView
  • Command_CODECNV_AUTO2SJIS() : CEditView
  • Command_CODECNV_EMAIL() : CEditView
  • Command_CODECNV_EUC2SJIS() : CEditView
  • Command_CODECNV_SJIS2EUC() : CEditView
  • Command_CODECNV_SJIS2JIS() : CEditView
  • Command_CODECNV_SJIS2UTF7() : CEditView
  • Command_CODECNV_SJIS2UTF8() : CEditView
  • Command_CODECNV_UNICODE2SJIS() : CEditView
  • Command_CODECNV_UNICODEBE2SJIS() : CEditView
  • Command_CODECNV_UTF72SJIS() : CEditView
  • Command_CODECNV_UTF82SJIS() : CEditView
  • Command_COMPARE() : CEditView
  • Command_COPY() : CEditView
  • Command_COPYFILENAME() : CEditView
  • Command_COPYLINES() : CEditView
  • Command_COPYLINESASPASSAGE() : CEditView
  • Command_COPYLINESWITHLINENUMBER() : CEditView
  • Command_COPYPATH() : CEditView
  • Command_COPYTAG() : CEditView
  • Command_CREATEKEYBINDLIST() : CEditView
  • Command_CtrlCode_Dialog() : CEditView
  • Command_CURLINECENTER() : CEditView
  • Command_CUSTMENU() : CEditView
  • Command_CUT() : CEditView
  • Command_CUT_LINE() : CEditView
  • Command_DELETE() : CEditView
  • Command_DELETE_BACK() : CEditView
  • Command_DELETE_LINE() : CEditView
  • Command_Diff() : CEditView
  • Command_Diff_Dialog() : CEditView
  • Command_Diff_Next() : CEditView
  • Command_Diff_Prev() : CEditView
  • Command_Diff_Reset() : CEditView
  • Command_DOWN() : CEditView
  • Command_DOWN2() : CEditView
  • Command_DUPLICATELINE() : CEditView
  • Command_EXECCOMMAND() : CEditView
  • Command_EXECCOMMAND_DIALOG() : CEditView
  • Command_EXECKEYMACRO() : CEditView
  • Command_EXITALL() : CEditView
  • Command_EXITALLEDITORS() : CEditView
  • Command_EXTHELP1() : CEditView
  • Command_EXTHTMLHELP() : CEditView
  • Command_Favorite() : CEditView
  • Command_FILE_REOPEN() : CEditView
  • Command_FILECLOSE() : CEditView
  • Command_FILECLOSE_OPEN() : CEditView
  • Command_FILECLOSEALL() : CEditView
  • Command_FILENEW() : CEditView
  • Command_FILEOPEN() : CEditView
  • Command_FILESAVE() : CEditView
  • Command_FILESAVEALL() : CEditView
  • Command_FILESAVEAS() : CEditView
  • Command_FILESAVEAS_DIALOG() : CEditView
  • Command_FONT() : CEditView
  • Command_FUNCLIST() : CEditView
  • Command_GOFILEEND() : CEditView
  • Command_GOFILETOP() : CEditView
  • Command_GOLINEEND() : CEditView
  • Command_GOLINETOP() : CEditView
  • Command_GONEXTPARAGRAPH() : CEditView
  • Command_GOPREVPARAGRAPH() : CEditView
  • Command_GREP() : CEditView
  • Command_GREP_DIALOG() : CEditView
  • Command_GROUPCLOSE() : CEditView
  • Command_HalfPageDown() : CEditView
  • Command_HalfPageUp() : CEditView
  • Command_HANKATATOZENKAKUHIRA() : CEditView
  • Command_HANKATATOZENKAKUKATA() : CEditView
  • Command_HELP_CONTENTS() : CEditView
  • Command_HELP_SEARCH() : CEditView
  • Command_HOKAN() : CEditView
  • Command_IME_CHAR() : CEditView
  • Command_INDENT() : CEditView
  • Command_INDENT_TAB() : CEditView
  • Command_INS_DATE() : CEditView
  • Command_INS_TIME() : CEditView
  • Command_INSFILE() : CEditView
  • Command_INSTEXT() : CEditView
  • Command_JUMP() : CEditView
  • Command_JUMP_DIALOG() : CEditView
  • Command_JUMP_SRCHSTARTPOS() : CEditView
  • Command_JUMPHIST_NEXT() : CEditView
  • Command_JUMPHIST_PREV() : CEditView
  • Command_JUMPHIST_SET() : CEditView
  • Command_LEFT() : CEditView
  • Command_LineCutToEnd() : CEditView
  • Command_LineCutToStart() : CEditView
  • Command_LineDeleteToEnd() : CEditView
  • Command_LineDeleteToStart() : CEditView
  • Command_LOADKEYMACRO() : CEditView
  • Command_MAXIMIZE_H() : CEditView
  • Command_MAXIMIZE_V() : CEditView
  • Command_MENU_ALLFUNC() : CEditView
  • Command_MENU_RBUTTON() : CEditView
  • Command_MERGE() : CEditView
  • Command_MINIMIZE_ALL() : CEditView
  • Command_NEXTGROUP() : CEditView
  • Command_OPEN_CCPP() : CEditView
  • Command_OPEN_HfromtoC() : CEditView
  • Command_OPEN_HHPP() : CEditView
  • Command_OPTION() : CEditView
  • Command_OPTION_TYPE() : CEditView
  • Command_PASTE() : CEditView
  • Command_PASTEBOX() : CEditView
  • Command_PLSQL_COMPILE_ON_SQLPLUS() : CEditView
  • Command_PREVGROUP() : CEditView
  • Command_PRINT() : CEditView
  • Command_PRINT_PAGESETUP() : CEditView
  • Command_PRINT_PREVIEW() : CEditView
  • Command_PROPERTY_FILE() : CEditView
  • Command_PUTFILE() : CEditView
  • Command_READONLY() : CEditView
  • Command_RECKEYMACRO() : CEditView
  • Command_Reconvert() : CEditView
  • Command_REDO() : CEditView
  • Command_REDRAW() : CEditView
  • Command_REPLACE() : CEditView
  • Command_REPLACE_ALL() : CEditView
  • Command_REPLACE_DIALOG() : CEditView
  • Command_RIGHT() : CEditView
  • Command_SAVEKEYMACRO() : CEditView
  • Command_SEARCH_BOX() : CEditView
  • Command_SEARCH_CLEARMARK() : CEditView
  • Command_SEARCH_DIALOG() : CEditView
  • Command_SEARCH_NEXT() : CEditView
  • Command_SEARCH_PREV() : CEditView
  • Command_SELECTALL() : CEditView
  • Command_SELECTWORD() : CEditView
  • Command_SET_QUOTESTRING() : CEditView
  • Command_SHOWFUNCKEY() : CEditView
  • Command_SHOWSTATUSBAR() : CEditView
  • Command_SHOWTAB() : CEditView
  • Command_SHOWTOOLBAR() : CEditView
  • Command_SORT() : CEditView
  • Command_SPACETOTAB() : CEditView
  • Command_SPLIT_H() : CEditView
  • Command_SPLIT_V() : CEditView
  • Command_SPLIT_VH() : CEditView
  • Command_TAB_JOINTNEXT() : CEditView
  • Command_TAB_JOINTPREV() : CEditView
  • Command_TAB_MOVELEFT() : CEditView
  • Command_TAB_MOVERIGHT() : CEditView
  • Command_TAB_SEPARATE() : CEditView
  • Command_TABTOSPACE() : CEditView
  • Command_TAGJUMP() : CEditView
  • Command_TAGJUMPBACK() : CEditView
  • Command_TagJumpByTagsFile() : CEditView
  • Command_TagJumpByTagsFileKeyword() : CEditView
  • Command_TagsMake() : CEditView
  • Command_TILE_H() : CEditView
  • Command_TILE_V() : CEditView
  • Command_ToggleKeySearch() : CEditView
  • Command_TOHANEI() : CEditView
  • Command_TOHANKAKU() : CEditView
  • Command_TOHANKATA() : CEditView
  • Command_TOLOWER() : CEditView
  • Command_TOUPPER() : CEditView
  • Command_TOZENEI() : CEditView
  • Command_TOZENKAKUHIRA() : CEditView
  • Command_TOZENKAKUKATA() : CEditView
  • Command_TRACEOUT() : CEditView
  • Command_TRIM() : CEditView
  • Command_TRIM2() : CEditView
  • Command_TYPE_LIST() : CEditView
  • Command_UNDO() : CEditView
  • Command_UNINDENT() : CEditView
  • Command_UP() : CEditView
  • Command_UP2() : CEditView
  • Command_UP_BOX() : CEditView
  • Command_UUDECODE() : CEditView
  • Command_WIN_OUTPUT() : CEditView
  • Command_WINCLOSE() : CEditView
  • Command_WINLIST() : CEditView
  • Command_WINTOPMOST() : CEditView
  • Command_WndScrollDown() : CEditView
  • Command_WndScrollUp() : CEditView
  • Command_WordCut() : CEditView
  • Command_WordDelete() : CEditView
  • Command_WordDeleteToEnd() : CEditView
  • Command_WordDeleteToStart() : CEditView
  • Command_WORDLEFT() : CEditView
  • Command_WORDRIGHT() : CEditView
  • Command_WRAPWINDOWWIDTH() : CEditView
  • Compile() : CBregexp
  • ComputeWindowSize() : CTipWnd
  • convert() : RcCvt
  • ConvertTypesExtToDlgExt() : CFileExt
  • ConvMemory() : CEditView
  • ConvSelectedArea() : CEditView
  • COpe() : COpe
  • COpeBlk() : COpeBlk
  • COpeBuf() : COpeBuf
  • CopyItem() : CRecent
  • CopySelectedAllLines() : CEditView
  • CopyTo() : CLineComment, CBlockComment
  • CopyViewStatus() : CEditView
  • COsVersionInfo() : COsVersionInfo
  • Count() : CMarkMgr, CImageListMgr
  • COutlinePython() : COutlinePython
  • CPassiveTimer() : CPassiveTimer
  • CPPA() : CPPA
  • CPPAMacroMgr() : CPPAMacroMgr
  • CPrint() : CPrint
  • CPrintPreview() : CPrintPreview
  • CProcess() : CProcess
  • CProfile() : CProfile
  • CPropCommon() : CPropCommon
  • CPropTypes() : CPropTypes
  • Create() : CWnd, CTipWnd, CSplitterWnd, CSplitBoxWnd, CRecent, CPropTypes, CPropCommon, CProcessFactory, CMenuDrawer, CMacroFactory, CLayoutMgr, CImageListMgr, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgOpenFile
  • CreateAccerelator() : CKeyBind
  • CreateButtons() : CFuncKeyWnd
  • CreateCharCharsArr() : CDocLineMgr
  • CreateDC() : CPrint
  • CreateEditCaret() : CEditView
  • CreateFileDropDownMenu() : CEditWnd
  • CreateInstance() : CInterfaceObjectTypeInfo
  • CreateKeyBindList() : CKeyBind
  • CreateLayout() : CLayoutMgr
  • CreateMenu() : CMRUFolder, CMRU
  • CreateMenuFont() : CTabWnd
  • CreatePopUpMenu_L() : CEditApp
  • CreatePopUpMenu_R() : CEditView, CEditApp
  • CreatePrintPreviewControls() : CPrintPreview
  • CreateScrollBar() : CEditView
  • CreateSizeBox() : CDialog
  • CreateStatusBar() : CEditWnd
  • CreateToolBar() : CEditWnd
  • CreateTrayIcon() : CEditApp
  • Creator : CWSHMacroManager, CPPAMacroMgr, CKeyMacroMgr, CMacroFactory
  • CRecent() : CRecent
  • CRegexKeyword() : CRegexKeyword
  • CRunningTimer() : CRunningTimer
  • CShareData() : CShareData
  • CSMacroMgr() : CSMacroMgr
  • CSortedTagJumpList() : CSortedTagJumpList
  • CSplitBoxWnd() : CSplitBoxWnd
  • CSplitterWnd() : CSplitterWnd
  • CTabWnd() : CTabWnd
  • CTipWnd() : CTipWnd
  • CUrlWnd() : CUrlWnd
  • Cursor_UPDOWN() : CEditView
  • CUxTheme() : CUxTheme
  • CWaitCursor() : CWaitCursor
  • CWnd() : CWnd
  • CWSHClient() : CWSHClient
  • CWSHMacroManager() : CWSHMacroManager
  • CWSHSite() : CWSHSite
  • cx() : CImageListMgr
  • cy() : CImageListMgr
  • CYbInterfaceBase : CYbInterfaceBase, COleLibrary
  • CYbInterfaceImpl() : CYbInterfaceImpl< BASEINTERFACE >
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- d -

  • Data : Variant, SysString
  • data : CDataObject
  • DataCheckAndCrrect() : CDlgPrintSetting
  • declare() : CWSHMacroManager, CPPAMacroMgr, CKeyMacroMgr
  • DECLH() : CWnd
  • DecodeUTF8toUnicode() : CMemory
  • DeInitDll() : CMigemo
  • DeinitDll() : CPPA, CDllHandler, CBregexp
  • DeleteAllItem() : CRecent
  • DeleteData() : CEditView
  • DeleteData2() : CEditView
  • DeleteData_CDocLineMgr() : CDocLineMgr
  • DeleteData_CLayoutMgr() : CLayoutMgr
  • DeleteEditWndList() : CShareData
  • DeleteItem() : CRecent
  • DeleteLayoutAsLogical() : CLayoutMgr
  • DeleteNode() : CDocLineMgr
  • DeleteVar() : CPPA
  • DelKeyWord() : CKeyWordSetMgr
  • DelKeyWordSet() : CKeyWordSetMgr
  • depth : CSortedTagJumpList::tagjump_info_t
  • Desc : CInterfaceObject::CMethodInfo
  • DestroyCaret() : CEditView
  • DestroyMenu() : CMRUFolder, CMRU
  • DestroyPrintPreviewControls() : CPrintPreview
  • DestroyScrollBar() : CEditView
  • DestroyStatusBar() : CEditWnd
  • DestroyToolBar() : CEditWnd
  • DetectMultibyte() : CESI
  • DetectUnicode() : CESI
  • DetectWidthOfLineNumberArea() : CEditView
  • DetectWidthOfLineNumberArea_calculate() : CEditView
  • DetectWidthOfLineNumberAreaAllPane() : CEditDoc
  • DirCallback_Macro() : CPropCommon
  • DisableSelectArea() : CEditView
  • DispatchEvent() : CWnd, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgSameColor, CDlgInput1, CDlgDebug, CDlgAbout, CDialog
  • DispatchEvent_KeyHelp() : CPropTypes
  • DispatchEvent_p1() : CPropTypes, CPropCommon
  • DispatchEvent_p10() : CPropCommon
  • DispatchEvent_p2() : CPropTypes, CPropCommon
  • DispatchEvent_p3() : CPropTypes
  • DispatchEvent_p3_new() : CPropTypes
  • DispatchEvent_p5() : CPropCommon
  • DispatchEvent_p7() : CPropCommon
  • DispatchEvent_p8() : CPropCommon
  • DispatchEvent_p9() : CPropCommon
  • DispatchEvent_PPB() : CPrintPreview
  • DispatchEvent_PROP_BACKUP() : CPropCommon
  • DispatchEvent_PROP_EDIT() : CPropCommon
  • DispatchEvent_PROP_FILENAME() : CPropCommon
  • DispatchEvent_PROP_GREP() : CPropCommon
  • DispatchEvent_PROP_Macro() : CPropCommon
  • DispatchEvent_PROP_TAB() : CPropCommon
  • DispatchEvent_PROP_TOOLBAR() : CPropCommon
  • DispatchEvent_PROP_WIN() : CPropCommon
  • DispatchEvent_Regex() : CPropTypes
  • DispatchEvent_WM_APP() : CWnd, CSplitterWnd
  • DispEOF() : CEditView
  • DispKeywordCount() : CPropCommon
  • DispLineNew() : CEditView
  • DispLineNumber() : CEditView
  • DispRuler() : CEditView
  • DispText() : CEditView
  • DispTextSelected() : CEditView
  • DispVerticalLines() : CEditView
  • DitherBlt2() : CImageListMgr
  • DlgOpenFail() : CDlgOpenFile
  • DlgProc() : CPropCommon
  • DlgProc_PROP_BACKUP() : CPropCommon
  • DlgProc_PROP_CUSTMENU() : CPropCommon
  • DlgProc_PROP_EDIT() : CPropCommon
  • DlgProc_PROP_FILE() : CPropCommon
  • DlgProc_PROP_FILENAME() : CPropCommon
  • DlgProc_PROP_FORMAT() : CPropCommon
  • DlgProc_PROP_GENERAL() : CPropCommon
  • DlgProc_PROP_GREP() : CPropCommon
  • DlgProc_PROP_HELPER() : CPropCommon
  • DlgProc_PROP_KEYBIND() : CPropCommon
  • DlgProc_PROP_KEYWORD() : CPropCommon
  • DlgProc_PROP_MACRO() : CPropCommon
  • DlgProc_PROP_TAB() : CPropCommon
  • DlgProc_PROP_TOOLBAR() : CPropCommon
  • DlgProc_PROP_WIN() : CPropCommon
  • dmBitsPerPel : MYDEVMODE
  • dmCollate : MYDEVMODE
  • dmColor : MYDEVMODE
  • dmCopies : MYDEVMODE
  • dmDefaultSource : MYDEVMODE
  • dmDisplayFlags : MYDEVMODE
  • dmDisplayFrequency : MYDEVMODE
  • dmDuplex : MYDEVMODE
  • dmFields : MYDEVMODE
  • dmFormName : MYDEVMODE
  • dmLogPixels : MYDEVMODE
  • dmOrientation : MYDEVMODE
  • dmPaperLength : MYDEVMODE
  • dmPaperSize : MYDEVMODE
  • dmPaperWidth : MYDEVMODE
  • dmPelsHeight : MYDEVMODE
  • dmPelsWidth : MYDEVMODE
  • dmPrintQuality : MYDEVMODE
  • dmScale : MYDEVMODE
  • dmTTOption : MYDEVMODE
  • dmYResolution : MYDEVMODE
  • DoFileLock() : CEditDoc
  • DoFileUnLock() : CEditDoc
  • DoGrep() : CEditView, CEditApp
  • DoGrepFile() : CEditView
  • DoGrepTree() : CEditView
  • DoHokan() : CHokanMgr
  • DoLayout() : CLayoutMgr
  • DoLayout_Range() : CLayoutMgr
  • DoModal() : CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgSameColor, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgInput1, CDlgGrep, CDlgFavorite, CDlgExec, CDlgDiff, CDlgDebug, CDlgCtrlCode, CDlgCompare, CDlgCancel, CDlgAbout, CDialog
  • DoModal_GetOpenFileName() : CDlgOpenFile
  • DoModal_GetSaveFileName() : CDlgOpenFile
  • DoModalOpenDlg() : CDlgOpenFile
  • DoModalSaveDlg() : CDlgOpenFile
  • DoModeless() : CHokanMgr, CDlgReplace, CDlgFuncList, CDlgFind, CDlgCancel, CDialog
  • DoPropertySheet() : CPropTypes, CPropCommon
  • DoRedo() : COpeBuf
  • DoScanLine() : COutlinePython
  • DoSplit() : CSplitterWnd
  • DoUndo() : COpeBuf
  • DRAG_CHECK : CTabWnd
  • DRAG_DRAG : CTabWnd
  • DRAG_NONE : CTabWnd
  • DragDrop() : CDataObject
  • DragEnter() : CEditView, CDropTarget
  • DragLeave() : CEditView, CDropTarget
  • DragOver() : CEditView, CDropTarget
  • DragState : CTabWnd
  • Draw() : CImageListMgr
  • Draw3dRect() : CSplitBoxWnd
  • DrawBracketPair() : CEditView
  • DrawBtnBkgnd() : CTabWnd
  • DrawCaretPosInfo() : CEditView
  • DrawCloseBtn() : CTabWnd
  • DrawColorButton() : CPropTypes
  • DrawColorListItem() : CPropTypes
  • DrawEOL() : CEditView
  • DrawFooter() : CPrintPreview
  • DrawFrame() : CSplitterWnd
  • DrawHeader() : CPrintPreview
  • DrawItem() : CMenuDrawer
  • DrawListBtn() : CTabWnd
  • DrawPageText() : CPrintPreview
  • DrawRulerCaret() : CEditView
  • DrawSelectArea() : CEditView
  • DrawSelectAreaLine() : CEditView
  • DrawSplitter() : CSplitterWnd
  • DrawTabArrow() : CEditView
  • DrawTipText() : CTipWnd
  • DrawToolBarItemList() : CPropCommon
  • Drop() : CEditView, CDropTarget
  • DUMP() : CProfile, COpeBuf, COpeBlk, COpe, CLayoutMgr, CLayout, CFuncInfoArr, CDocLineMgr
  • dwCompStrLen : tagRECONVERTSTRING
  • dwCompStrOffset : tagRECONVERTSTRING
  • dwKeyState : CDropSource
  • DWORD : CEditView, CDataObject
  • dwReserved : OPENFILENAMEZ
  • dwSize : tagRECONVERTSTRING
  • dwStrLen : tagRECONVERTSTRING
  • dwStrOffset : tagRECONVERTSTRING
  • dwTargetStrLen : tagRECONVERTSTRING
  • dwTargetStrOffset : tagRECONVERTSTRING
  • dwVersion : tagRECONVERTSTRING
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- e -

  • EasyCreate() : CRecent
  • eCodeID : WC_EncodingInfo_t, EncodingInfo_t
  • Empty() : CSortedTagJumpList, COpeBlk, CMemory, CLayoutMgr, CFuncInfoArr, CDocLineMgr, CDlgTagJumpList
  • Enable() : CPassiveTimer
  • EnableAutoBackup() : Common
  • EnableBackupInput() : CPropCommon
  • EnableFilePropInput() : CPropCommon
  • EnableFormatPropInput() : CPropCommon
  • EnableModeless() : CWSHSite
  • EnableTabPropInput() : CPropCommon
  • EnableTypesPropInput() : CPropTypes
  • EnableWinPropInput() : CPropCommon
  • end() : CMemoryIterator< T >
  • EndLayoutBars() : CEditWnd
  • endp : bregexp
  • EnterString() : COutlinePython
  • enum_CESI_public_constants : CESI
  • EnumEngines() : CWSHMacroManager
  • enumFileLoadMode : CFileLoad
  • Error() : CWSHClient
  • eStr : HANKAKKO_T, ZENKAKKO_T
  • EUCToSJIS() : CMemory
  • Exec() : CSMacroMgr, CMacro
  • ExecCmd() : CEditView
  • ExecKeyMacro() : CWSHMacroManager, CPPAMacroMgr, CMacroManagerBase, CKeyMacroMgr
  • ExecTabCommand() : CTabWnd
  • Execute() : CWSHClient, CPPA
  • ExitingDlgProc() : CEditApp
  • ExpandMetaToFolder() : CShareData
  • ExpandParameter() : CEditDoc
  • ExParam_Evaluate() : CEditDoc
  • ExParam_SkipCond() : CEditDoc
  • Expire() : CAutoMarkMgr, CMarkMgr
  • Export_KeyHelp() : CPropTypes
  • Export_Regex() : CPropTypes
  • Ext2Key() : CMacroFactory
  • ExtHTMLHelpIsSet() : CShareData
  • ExtWinHelpIsSet() : CShareData
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- f -

  • fAttribute : ColorAttributeData_t
  • FavoriteInfoTag : CDlgFavorite
  • FileClose() : CFileLoad, CEditDoc
  • FileCloseOpen() : CEditDoc
  • FileInfo() : FileInfo
  • filename : CSortedTagJumpList::tagjump_info_t
  • FileOpen() : CFileLoad
  • FilePointer() : CFileLoad
  • FileRead() : CEditDoc
  • FileSave() : CEditDoc
  • FileSaveAs() : CEditDoc
  • FileSaveAs_Dialog() : CEditDoc
  • FileWrite() : CEditDoc
  • FillSolidRect() : CSplitBoxWnd
  • Find() : CMenuDrawer
  • find_key() : CDlgTagJumpList
  • FindIndexFromCommandId() : CMenuDrawer
  • FindItem() : CRecent
  • FindPaperInfo() : CPrint
  • FindTabIndexByHWND() : CTabWnd
  • first() : CMemoryIterator< T >
  • FlagsEx : OPENFILENAMEZ
  • FLMODE_CLOSE : CFileLoad
  • FLMODE_OPEN : CFileLoad
  • FLMODE_READBUFEND : CFileLoad
  • FLMODE_REDY : CFileLoad
  • Flush() : CMarkMgr
  • font() : RcCvt
  • ForceActiveWindow() : CTabWnd
  • FormatBackUpPath() : CEditDoc
  • fpi : RcCvt
  • fpo : RcCvt
  • Free() : CSortedTagJumpList
  • FreeLibrary() : CDllHandler
  • Funccode2Name() : CFuncLookup
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- g -

  • g_cEditArrMutex : CShareData
  • Get() : SysString
  • GetAccelCharFromLabel() : CMenuDrawer
  • GetActivePane() : CEditDoc
  • GetActualTabSpace() : CLayoutMgr
  • GetAdjustCursorPos() : CEditView
  • GetAlertIfFileNotExist() : Common
  • GetAllData() : CDocLineMgr
  • GetAllocSize() : CKeyWordSetMgr
  • GetAllPageNum() : CPrintPreview
  • GetAllSplitCols() : CSplitterWnd
  • GetAllSplitRows() : CSplitterWnd
  • GetArgBStr() : CPPA
  • GetArgInt() : CPPA
  • GetArgReal() : CPPA
  • GetArgStr() : CPPA
  • GetArrayCount() : CRecent
  • GetArrayOffset() : CRecent
  • GetAt() : CFuncInfoArr
  • GetAutoBackupInterval() : Common
  • GetAutoMIMEdecode() : Common
  • GetBackupCount() : Common
  • GetBackupExtChar() : Common
  • GetBackupOpt() : Common
  • GetBackupType() : Common
  • GetBackupTypeAdv() : Common
  • getBlockCommentFrom() : CBlockComment
  • getBlockCommentTo() : CBlockComment
  • getBlockFromLen() : CBlockComment
  • getBlockToLen() : CBlockComment
  • GetBookMarks() : CDocLineMgr
  • GetBStrVar() : CPPA
  • getButton() : CMenuDrawer
  • GetCapacity() : CSortedTagJumpList
  • GetCaretType() : Common
  • GetCategoryCount() : CFuncLookup
  • GetCloseBtnRect() : CTabWnd
  • GetColorIndex() : CEditView
  • getColumn() : CMemoryIterator< T >
  • getColumnDelta() : CMemoryIterator< T >
  • GetContainingTypeLib() : CInterfaceObjectTypeInfo
  • GetCount() : CSortedTagJumpList, CFileExt
  • GetCurPageNum() : CPrintPreview
  • GetCurrent() : CMarkMgr
  • getCurrentChar() : CMemoryIterator< T >
  • GetCurrentIdx() : CSMacroMgr
  • getCurrentPos() : CMemoryIterator< T >
  • GetCurrentTextForSearch() : CEditView
  • GetCurrentTextForSearchDlg() : CEditView
  • GetCurrentWord() : CEditView
  • GetData() : CMenuDrawer, CDlgWinSize, CDlgTagsMake, CDlgTagJumpList, CDlgReplace, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDialog
  • GetData_KeyHelp() : CPropTypes
  • GetData_p1() : CPropTypes, CPropCommon
  • GetData_p10() : CPropCommon
  • GetData_p2() : CPropTypes, CPropCommon
  • GetData_p3() : CPropTypes
  • GetData_p3_new() : CPropTypes
  • GetData_p5() : CPropCommon
  • GetData_p7() : CPropCommon
  • GetData_p7_KeyWordSet() : CPropCommon
  • GetData_p8() : CPropCommon
  • GetData_p9() : CPropCommon
  • GetData_PROP_BACKUP() : CPropCommon
  • GetData_PROP_EDIT() : CPropCommon
  • GetData_PROP_FILENAME() : CPropCommon
  • GetData_PROP_GREP() : CPropCommon
  • GetData_PROP_Macro() : CPropCommon
  • GetData_PROP_TAB() : CPropCommon
  • GetData_PROP_TOOLBAR() : CPropCommon
  • GetData_PROP_WIN() : CPropCommon
  • GetData_Regex() : CPropTypes
  • GetDataOfItem() : CRecent
  • GetDeclarations() : CPPA
  • GetDefaultIcon() : CEditWnd
  • GetDefaultPrinter() : CPrint
  • GetDefaultPrinterInfo() : CPrintPreview
  • GetDefFuncCode() : CKeyBind
  • GetDllEntry() : CInterfaceObjectTypeInfo
  • GetDllName() : CUxTheme, CPPA, CMigemo, CHtmlHelp, CDllHandler
  • GetDllNameInOrder() : CDllHandler, CBregexp
  • GetDocLineBottom() : CDocLineMgr
  • GetDocLineTop() : CDocLineMgr
  • GetDocumentation() : CInterfaceObjectTypeInfo
  • GetDocumentAttribute() : CEditDoc
  • GetDocumentLockState() : CEditDoc
  • GetDocumentType() : CShareData, CEditDoc
  • GetDocumentTypeExt() : CShareData
  • GetDocVersionString() : CWSHSite
  • GetEditNode() : CShareData
  • GetEditNodeAt() : CShareData
  • GetEditorWindowsNum() : CShareData
  • GetEndLayoutPos() : CLayoutMgr
  • GetEOLType() : CEOL
  • GetEOLTypeUni() : CEOL
  • GetEOLTypeUniBE() : CEOL
  • GetExt() : CFileExt
  • GetExtFilter() : CFileExt
  • GetExtHTMLHelp() : CShareData
  • GetExtWinHelp() : CShareData
  • GetFile() : CSMacroMgr
  • GetFileInfo() : CMRU, CCommandLine
  • GetFileName() : CEditDoc, CDlgTagJumpList
  • GetFilePath() : CEditDoc, CDlgTagJumpList
  • GetFilePathFormat() : CShareData
  • GetFileSize() : CFileLoad
  • GetFileTime() : CFileLoad
  • GetFirstLinrStr() : CLayoutMgr, CDocLineMgr
  • GetFirstPane() : CSplitterWnd
  • GetFreeSize() : CKeyWordSetMgr
  • GetFuncCode() : CKeyBind
  • GetFuncCodeAt() : CKeyBind
  • GetFuncDesc() : CInterfaceObjectTypeInfo
  • GetFuncInfoByID() : CSMacroMgr
  • GetFuncInfoByName() : CSMacroMgr
  • GetGrepInfo() : CCommandLine
  • GetGroupId() : CShareData, CCommandLine
  • GetHelpIdTable() : CHokanMgr, CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgSameColor, CDlgReplace, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDlgCancel, CDlgAbout, CDialog
  • GetIconId() : CMenuDrawer
  • GetIDsOfNames() : CInterfaceObject, CInterfaceObjectTypeInfo
  • GetImageIndex() : CTabWnd
  • GetImplTypeFlags() : CInterfaceObjectTypeInfo
  • GetIndent() : CLayout, CDocLine
  • getIndentOffset : CLayoutMgr
  • getIndentOffset_LeftSpace() : CLayoutMgr
  • getIndentOffset_Normal() : CLayoutMgr
  • getIndentOffset_Tx2x() : CLayoutMgr
  • getIndex() : CMemoryIterator< T >
  • GetIndex() : CBregexp
  • getIndexDelta() : CMemoryIterator< T >
  • GetIniFileName() : CShareData
  • GetIniFileNameDirect() : CShareData
  • GetInitializeMutex() : CNormalProcess
  • getInstance() : CUxTheme, CShareData, CMigemo
  • GetInstance() : CDllHandler
  • GetInterval() : CPassiveTimer
  • GetIntVar() : CPPA
  • GetItem() : CRecent
  • GetItemCount() : CRecent, CFuncLookup
  • GetItemInfo() : CWSHSite
  • GetKeyStr() : CKeyBind
  • GetKeyStrList() : CKeyBind
  • GetKeyWord() : CKeyWordSetMgr
  • GetKeyWordCase() : CKeyWordSetMgr
  • GetKeyWordNum() : CKeyWordSetMgr
  • GetLabel() : CMenuDrawer
  • GetLastIndex() : CBregexp
  • GetLastMessage() : CPPA, CBregexp
  • GetLastPane() : CSplitterWnd
  • GetLCID() : CWSHSite
  • GetLeftWord() : CEditView
  • GetLen() : CEOL
  • GetLength() : CMemory, CLayout, CDocLine
  • GetLengthWithEOL() : CLayout
  • GetLengthWithoutEOL() : CLayout, CDocLine
  • GetLine() : CMarkMgr::CMark
  • getLineComment() : CLineComment
  • getLineCommentPos() : CLineComment
  • GetLineCount() : CLayoutMgr, CDocLineMgr
  • GetLineInfo() : CDocLineMgr
  • GetLineStr() : CLayoutMgr, CDocLineMgr
  • GetLineStrWithoutEOL() : CDocLineMgr
  • GetListBtnRect() : CTabWnd
  • GetListViewItem_FILENAME() : CPropCommon
  • GetMacroFilename() : CShareData
  • GetMatchLen() : CBregexp
  • GetMax() : CMarkMgr
  • GetMaxLineSize() : CLayoutMgr
  • GetMenuLabel() : CKeyBind
  • GetMops() : CInterfaceObjectTypeInfo
  • GetName() : CSMacroMgr, CFileExt, CEOL
  • GetNameByType() : CDlgTagJumpList
  • GetNames() : CInterfaceObjectTypeInfo
  • GetNewLineCode() : CEditDoc
  • GetNext() : CMacro
  • GetNextGroupWnd() : CTabWnd
  • GetNextLineCharCode() : CFileLoad
  • GetNextLineW() : CFileLoad
  • GetNextLineWB() : CFileLoad
  • GetNextLinrStr() : CLayoutMgr, CDocLineMgr
  • GetNextPane() : CSplitterWnd
  • GetNum() : COpeBlk, CFuncInfoArr
  • GetOffset() : CRecent
  • GetOldestItem() : CRecent
  • GetOpe() : COpeBlk
  • GetOpenedWindowArr() : CShareData
  • GetOpenedWindowArrCore() : CShareData
  • GetOpenFileNameRecover() : CDlgOpenFile
  • GetPaperName() : CPrint
  • GetPaperSize() : CPrint
  • GetParam() : CSortedTagJumpList
  • GetPath() : CMRUFolder
  • GetPathList() : CMRUFolder, CMRU
  • GetPercent() : CFileLoad
  • GetPos() : CMarkMgr::CMark
  • GetPrevGroupWnd() : CTabWnd
  • GetPrevPane() : CSplitterWnd
  • GetPrintMetrics() : CPrint
  • GetPrintPreviewBarHANDLE() : CPrintPreview
  • GetProfileData() : CProfile
  • GetPtr() : CSortedTagJumpList, CMemory, CLayout, CDocLine
  • GetQueryIfCodeChange() : Common
  • GetRealVar() : CPPA
  • GetRefTypeInfo() : CInterfaceObjectTypeInfo
  • GetRefTypeOfImplType() : CInterfaceObjectTypeInfo
  • GetRelatedIcon() : CEditWnd
  • GetRestoreBookmarks() : Common
  • GetRestoreCurPosition() : Common
  • GetSaveFileNameRecover() : CDlgOpenFile
  • GetSelectedData() : CEditView
  • GetSelectedParam() : CDlgTagJumpList
  • GetShareData() : CShareData
  • GetSizeOfChar() : CMemory
  • GetString() : CBregexp
  • GetStringLen() : CBregexp
  • GetStrVar() : CPPA
  • GetTabName() : CTabWnd
  • GetTabSpace() : CLayoutMgr
  • GetTitle() : CSMacroMgr
  • GetTopEditNode() : CShareData
  • GetTopEditWnd() : CShareData
  • GetTransformFileNameFast() : CShareData
  • GetType() : CEOL
  • GetTypeAttr() : CInterfaceObjectTypeInfo
  • GetTypeComp() : CInterfaceObjectTypeInfo
  • GetTypeData() : CPropTypes
  • GetTypeFromString() : CEOL
  • GetTypeInfo() : CInterfaceObject
  • GetTypeInfoCount() : CInterfaceObject
  • GetTypeName() : CKeyWordSetMgr
  • GetUnicodeBEValue() : CEOL
  • GetUnicodeValue() : CEOL
  • GetValue() : CEOL
  • GetVarDesc() : CInterfaceObjectTypeInfo
  • GetVersion() : CPPA, COsVersionInfo, CBregexp
  • GetViewCount() : CRecent
  • GetWindow() : CWSHSite
  • GetWindowSize() : CTipWnd
  • GetWrapMode() : CEditView
  • gm_nBufSizeDef : CFileLoad
  • gm_pnEolLenArr : CEOL
  • gm_pszEolDataArr : CEOL
  • gm_pszEolNameArr : CEOL
  • gm_pszEolUnicodeBEDataArr : CEOL
  • gm_pszEolUnicodeDataArr : CEOL
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- h -

  • HandleCommand() : CMacro, CEditView, CEditDoc
  • HandleFunction() : CMacro
  • HasWinHelpContentsProblem() : COsVersionInfo
  • Hide() : CTipWnd, CHokanMgr
  • HideCaret_() : CEditView
  • HideOtherWindows() : CTabWnd
  • HIMAGELIST() : CTabWnd
  • HitTestSplitter() : CSplitterWnd
  • HokanSearch() : CDicMgr
  • HokanSearchByFile() : CEditView
  • HRESULT() : CUxTheme
  • HSplitOnOff() : CSplitterWnd
  • HtmlHelp : CHtmlHelp
  • HTMLHelpIsSingle() : CShareData
  • hwnd : TABMENU_DATA
  • hwndReferer : TagJump
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- i -

  • icClicked : CEditWnd
  • icDoubleClicked : CEditWnd
  • icDown : CEditWnd
  • icNone : CEditWnd
  • ID : CInterfaceObject::CMethodInfo
  • Idx2Ptr() : CSMacroMgr
  • iImage : TABMENU_DATA
  • iItem : TABMENU_DATA
  • ImageList_Duplicate() : CTabWnd
  • ImplementsIUnknown() : ImplementsIUnknown< Base >
  • Import_KeyHelp() : CPropTypes
  • Import_Regex() : CPropTypes
  • include() : RcCvt
  • Init() : CWnd, CUxTheme, CShareData, CProfile, COpeBlk, CLayoutMgr, CFuncLookup, CEOL, CEditDoc, CDocLineMgr, CDllHandler
  • init() : RcCvt
  • InitAllView() : CEditDoc
  • InitData() : CPropCommon
  • InitDialog_PROP_Macro() : CPropCommon
  • InitDll() : CUxTheme, CPPA, CMigemo, CHtmlHelp, CDllHandler, CBregexp
  • Initialize() : CProcess, CNormalProcess, COleLibrary, CControlProcess
  • InitImageList() : CTabWnd
  • InitKeyAssign() : CShareData
  • InitKeyword() : CShareData
  • InitLayout() : CDlgOpenFile
  • InitMenu() : CEditWnd
  • InitMenubarMessageFont() : CEditWnd
  • InitOfn() : CDlgOpenFile
  • InitPopupMenu() : CShareData
  • InitPreviewScrollBar() : CPrintPreview
  • InitToolButtons() : CShareData
  • InitTypeConfig() : CShareData
  • InsertData_CDocLineMgr() : CDocLineMgr
  • InsertData_CEditView() : CEditView
  • InsertData_CLayoutMgr() : CLayoutMgr
  • InsertLineNext() : CLayoutMgr
  • InsertNode() : CDocLineMgr
  • Instance() : CMacroFactory, CCommandLine
  • int : CEditView
  • INT_PTR() : ComPropSheetInfo
  • Invoke() : CInterfaceObject, CInterfaceObjectTypeInfo
  • IO_ColorSet() : CShareData
  • IOProfileData() : CProfile
  • IsActiveApp() : CEditWnd
  • IsAddClipText() : CFuncInfo
  • IsAutoBackupEnabled() : Common
  • IsAvailable() : CRecent, CDllHandler
  • IsBASE64Char() : CMemory
  • IsBomExist() : CFileLoad
  • IsBookMarked() : CDocLine
  • IsBracket() : CEditView
  • IsCanceled() : CDlgCancel
  • IsCurrentPositionSelected() : CEditView
  • IsCurrentPositionSelectedTEST() : CEditView
  • IsCurrentPositionURL() : CEditView
  • IsDebugMode() : CCommandLine
  • IsDiffMarked() : CDocLine
  • IsDiffUse() : CDocLineMgr
  • ISearchBack() : CEditView
  • ISearchEnter() : CEditView
  • ISearchExec() : CEditView
  • ISearchExit() : CEditView
  • ISearchSetStatusMsg() : CEditView
  • ISearchWordMake() : CEditView
  • IsEditWnd() : CShareData
  • IsEmptyLine() : CDocLine
  • IsEnabled() : CSMacroMgr, MacroRec, CPassiveTimer
  • IsEnablePaste() : CEditDoc
  • IsEnableRedo() : COpeBuf, CEditDoc
  • IsEnableUndo() : COpeBuf, CEditDoc
  • IsEndOfLine() : CLayoutMgr
  • IsEqual() : CMemory
  • IsExistControlProcess() : CProcessFactory
  • IsFavorite() : CRecent
  • IsFileOpenInThisWindow() : CEditDoc
  • IsFilePathAvailable() : CEditDoc
  • IsFuncChecked() : CEditWnd
  • IsFuncEnable() : CEditWnd
  • IsGrepDlg() : CCommandLine
  • IsGrepMode() : CCommandLine
  • IsImeON() : CEditView
  • IsInsMode() : CEditView, CEditDoc
  • IsISearchEnabled() : CEditView
  • IsKinsokuHead() : CLayoutMgr
  • IsKinsokuKuto() : CLayoutMgr
  • IsKinsokuPosHead() : CLayoutMgr
  • IsKinsokuPosKuto() : CLayoutMgr
  • IsKinsokuPosTail() : CLayoutMgr
  • IsKinsokuTail() : CLayoutMgr
  • IsKutoTen() : CLayoutMgr
  • IsLogicalLineTop() : COutlinePython
  • IsLookAhead() : CBregexp
  • IsModificationForbidden() : CEditDoc
  • IsModified() : CEditDoc
  • IsModify() : CKeyWordSetMgr
  • IsModifyed() : CDocLine
  • IsNoWindow() : CCommandLine
  • IsOfnV5() : CDlgOpenFile
  • IsOverflow() : CSortedTagJumpList
  • IsPathOpened() : CShareData
  • IsPrivateSettings() : CShareData
  • IsReadingMode() : CProfile
  • IsReadOnly() : CEditDoc, CCommandLine
  • IsReady() : CMacroManagerBase
  • IsRemovableDrive() : CMRU
  • IsRunning() : CPPA
  • IsSameGroup() : CShareData
  • IsSaveOk() : CSMacroMgr
  • IsSearchString() : CEditView
  • IsStartingControlProcess() : CProcessFactory
  • IsTextSelected() : CEditView, CEditDoc
  • IsTextSelecting() : CEditView
  • IsThemeActive() : CUxTheme
  • IsTopEditWnd() : CShareData
  • IsUTF7Direct() : CMemory
  • IsUTF8() : CMemory
  • IsValid() : CMarkMgr::CMark
  • IsValidVersion() : CProcessFactory
  • IsWin2000_or_later() : COsVersionInfo
  • IsWin32NT() : COsVersionInfo
  • IsWin32Windows() : COsVersionInfo
  • IsWinMe() : COsVersionInfo
  • IsWinVista_or_later() : COsVersionInfo
  • IsWinXP_or_later() : COsVersionInfo
  • IsWriteQuit() : CCommandLine
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- p -

  • p : EditNodeEx
  • p3_Export_Colors() : CPropTypes
  • p3_Import_Colors() : CPropTypes
  • p5_ChangeKeyList() : CPropCommon
  • p5_Export_KeySetting() : CPropCommon
  • p5_Import_KeySetting() : CPropCommon
  • p7_Clean_List_KeyWord() : CPropCommon
  • p7_Delete_List_KeyWord() : CPropCommon
  • p7_Edit_List_KeyWord() : CPropCommon
  • p7_Export_List_KeyWord() : CPropCommon
  • p7_Import_List_KeyWord() : CPropCommon
  • p8_Export_CustMenuSetting() : CPropCommon
  • p8_Import_CustMenuSetting() : CPropCommon
  • p_favorite_info : CDlgFavorite
  • PAIR_STR_STR : CProfile
  • paraendp : bregexp
  • parap : bregexp
  • ParseCommandLine() : CCommandLine
  • PAT_BOTTOM : CBregexp
  • PAT_LOOKAHEAD : CBregexp
  • PAT_NORMAL : CBregexp
  • PAT_TAB : CBregexp
  • PAT_TOP : CBregexp
  • PAT_UNKNOWN : CBregexp
  • Pattern : CBregexp
  • pBregexp : RegexInfo_t
  • pcmemDeleted : LayoutReplaceArg, DocLineReplaceArg
  • pInsData : LayoutReplaceArg, DocLineReplaceArg
  • point : TagJump
  • PopTagJump() : CShareData
  • PopupWinList() : CEditWnd
  • Pos2FuncCode() : CFuncLookup
  • Pos2FuncName() : CFuncLookup
  • PostMessageToAllEditors() : CShareData
  • PostprocessCommand_hokan() : CEditView
  • PPA_Abort : CPPA
  • PPA_AddIntObj : CPPA
  • PPA_AddIntVar : CPPA
  • PPA_AddRealObj : CPPA
  • PPA_AddRealVar : CPPA
  • PPA_AddStrObj : CPPA
  • PPA_AddStrVar : CPPA
  • PPA_DeleteVar : CPPA
  • PPA_Execute : CPPA
  • PPA_GetArgBStr : CPPA
  • PPA_GetArgInt : CPPA
  • PPA_GetArgReal : CPPA
  • PPA_GetArgStr : CPPA
  • PPA_GetBStrVar : CPPA
  • PPA_GetIntVar : CPPA
  • PPA_GetRealVar : CPPA
  • PPA_GetStrVar : CPPA
  • PPA_GetVersion : CPPA
  • PPA_IsRunning : CPPA
  • PPA_SetDeclare : CPPA
  • PPA_SetDefine : CPPA
  • PPA_SetDefProc : CPPA
  • PPA_SetErrProc : CPPA
  • PPA_SetFinishProc : CPPA
  • PPA_SetIntFunc : CPPA
  • PPA_SetIntObj : CPPA
  • PPA_SetIntVar : CPPA
  • PPA_SetProc : CPPA
  • PPA_SetRealFunc : CPPA
  • PPA_SetRealObj : CPPA
  • PPA_SetRealVar : CPPA
  • PPA_SetSource : CPPA
  • PPA_SetStrFunc : CPPA
  • PPA_SetStrObj : CPPA
  • PPA_SetStrVar : CPPA
  • PRECONVERTSTRING : CEditView
  • PreprocessCommand_hokan() : CEditView
  • PrevGroup() : CTabWnd
  • PreviCreateWindow() : CWnd
  • PrevOrNextWord() : CLayoutMgr, CDocLineMgr
  • PrevValid() : CMarkMgr
  • PrevWord() : CLayoutMgr
  • Print_DrawLine() : CPrintPreview
  • PrintClose() : CPrint
  • PrintDlg() : CPrint
  • PrintEndPage() : CPrint
  • PrintMenubarMessage() : CEditWnd
  • PrintOpen() : CPrint
  • PrintPreviewBar_DlgProc() : CPrintPreview
  • PrintPreviewModeONOFF() : CEditWnd
  • PrintSelectionInfoMsg() : CEditView
  • PrintStartPage() : CPrint
  • proc : CDllHandler::ImportTable
  • Proc_HtmlHelp : CHtmlHelp
  • Proc_migemo_close : CMigemo
  • Proc_migemo_get_operator : CMigemo
  • Proc_migemo_is_enable : CMigemo
  • Proc_migemo_load : CMigemo
  • Proc_migemo_open : CMigemo
  • Proc_migemo_query : CMigemo
  • Proc_migemo_release : CMigemo
  • Proc_migemo_set_operator : CMigemo
  • Proc_migemo_setproc_char2int : CMigemo
  • Proc_migemo_setproc_int2char : CMigemo
  • ProcessCommand_isearch() : CEditView
  • ProcSearchBox() : CEditWnd
  • PropTypesKeyHelp() : CPropTypes
  • PropTypesRegex() : CPropTypes
  • pszName : TYPE_NAME
  • pszSubAppName : CUxTheme
  • pszSubIdList : CUxTheme
  • PushTagJump() : CShareData
  • pvReserved : OPENFILENAMEZ
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- q -

  • QueryInterface() : CInterfaceObject, ImplementsIUnknown< Base >, CWSHSite
  • QueryInterfaceImpl() : CYbInterfaceBase
  • QuotedPrintable_Decode() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- r -

  • RcCvt() : RcCvt
  • Read() : CRunningTimer, CFileLoad
  • ReadBufEmpty() : CFileLoad
  • ReadFile() : CDocLineMgr
  • ReadLine() : CFileLoad
  • ReadOneline() : CProfile
  • ReadProfile() : CProfile
  • ReadRuleFile() : CEditDoc
  • ReadyCommands() : CWSHMacroManager
  • RearrangeKeywordSet() : CPropTypes
  • Receive() : Variant
  • Redraw() : CEditView, CDlgFuncList
  • RedrawAll() : CEditView
  • RedrawInactivePane() : CEditDoc
  • Refresh() : CTabWnd
  • RefreshList() : CDlgFavorite
  • RefreshListOne() : CDlgFavorite
  • RegexIsKeyword() : CRegexKeyword
  • RegexKakomiCheck() : CPropTypes
  • RegexKeyCheckSyntax() : CRegexKeyword
  • RegexKeyCompile() : CRegexKeyword
  • RegexKeyInit() : CRegexKeyword
  • RegexKeyLineStart() : CRegexKeyword
  • RegexKeySetTypes() : CRegexKeyword
  • Register_DropTarget() : CDropTarget
  • RegisterCreator() : CMacroFactory
  • RegisterEntries() : CDllHandler
  • RegisterWC() : CWnd
  • Release() : ImplementsIUnknown< Base >, CWSHSite
  • ReleaseCompileBuffer() : CBregexp
  • ReleaseFuncDesc() : CInterfaceObjectTypeInfo
  • ReleaseTypeAttr() : CInterfaceObjectTypeInfo
  • ReleaseVarDesc() : CInterfaceObjectTypeInfo
  • ReloadAutoSaveParam() : CEditDoc
  • ReloadCurrentFile() : CEditDoc
  • RenewItemState() : CDlgWinSize
  • ReorderTab() : CTabWnd, CShareData
  • Replace() : CMemory, CBregexp
  • Replace_j() : CMemory
  • ReplaceData() : CDocLineMgr
  • ReplaceData_CEditView() : CEditView
  • ReplaceData_CLayoutMgr() : CLayoutMgr
  • RequestCloseAllEditor() : CShareData
  • ReserveMethods() : CInterfaceObject
  • Reset() : CRunningTimer, CPassiveTimer
  • ResetAllBookMark() : CDocLineMgr
  • ResetAllDiffMark() : CDocLineMgr
  • ResetAllFavorite() : CRecent
  • ResetAllKeyWordSet() : CKeyWordSetMgr
  • ResetAllModifyFlag() : CDocLineMgr
  • ResetContents() : CMenuDrawer
  • ResetFavorite() : CRecent
  • ResetGroupId() : CShareData
  • resId : ComPropSheetInfo
  • RestorePhysPosOfAllView() : CEditDoc
  • Revoke_DropTarget() : CDropTarget
  • rsv1 : bregexp
  • RTrimPrevLine() : CEditView
  • Run() : CProcess
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- s -

  • Save() : CSMacroMgr, CMacro
  • SaveFile() : CEditDoc
  • SaveFileDialog() : CEditDoc
  • SaveKeyMacro() : CKeyMacroMgr
  • SavePhysPosOfAllView() : CEditDoc
  • SaveShareData() : CShareData
  • ScanEncoding() : CESI
  • ScanLine() : CCppPreprocessMng
  • scanNext() : CMemoryIterator< T >
  • ScanNormal() : COutlinePython
  • ScanString() : COutlinePython
  • ScrollAtH() : CEditView
  • ScrollAtV() : CEditView
  • ScrollByH() : CEditView
  • ScrollByV() : CEditView
  • Search() : CLayoutMgr, CHokanMgr, CDicMgr
  • SearchBestTag() : CDlgTagJumpList
  • SearchBookMark() : CDocLineMgr
  • SearchBracket() : CEditView
  • SearchBracketBackward() : CEditView
  • SearchBracketBackward2() : CEditView
  • SearchBracketForward() : CEditView
  • SearchBracketForward2() : CEditView
  • SearchDiffMark() : CDocLineMgr
  • SearchIntArr() : CPropCommon
  • SearchKeyWord2() : CKeyWordSetMgr
  • SearchNextWordPosition() : CDocLineMgr
  • SearchString() : CDocLineMgr
  • SearchWord() : CLayoutMgr, CDocLineMgr
  • SelectBaseDir_Macro() : CPropCommon
  • SelectColor() : CPropTypes, CPropCommon
  • SelectFolder() : CDlgTagsMake
  • SelectFont() : CEditDoc
  • SendMessageToAllEditors() : CShareData
  • SendStatusMessage() : CEditWnd, CEditView
  • SendStatusMessage2() : CEditWnd, CEditView
  • SendStatusMessage2IsEffective() : CEditWnd
  • Separate() : CTabWnd
  • SeparateGroup() : CTabWnd, CShareData
  • SetActivePane() : CSplitterWnd, CEditDoc
  • SetAlertIfFileNotExist() : Common
  • SetAutoBackupInterval() : Common
  • SetAutoMIMEdecode() : Common
  • SetBackupCount() : Common
  • SetBackupExtChar() : Common
  • SetBackupOpt() : Common
  • SetBackupType() : Common
  • SetBackupTypeAdv() : Common
  • SetBookMark() : CDocLine
  • SetBookMarks() : CDocLineMgr
  • SetBracketPairPos() : CEditView
  • SetCaretType() : Common
  • SetCategory2Combo() : CFuncLookup
  • SetChildWndArr() : CSplitterWnd
  • SetCurrentColor() : CEditView
  • SetCurrentIdx() : CSMacroMgr
  • SetData() : CMemory, CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgReplace, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDialog
  • SetData_KeyHelp() : CPropTypes
  • SetData_p1() : CPropTypes, CPropCommon
  • SetData_p10() : CPropCommon
  • SetData_p2() : CPropTypes, CPropCommon
  • SetData_p3() : CPropTypes
  • SetData_p3_new() : CPropTypes
  • SetData_p5() : CPropCommon
  • SetData_p7() : CPropCommon
  • SetData_p7_KeyWordSet() : CPropCommon
  • SetData_p8() : CPropCommon
  • SetData_p9() : CPropCommon
  • SetData_PROP_BACKUP() : CPropCommon
  • SetData_PROP_EDIT() : CPropCommon
  • SetData_PROP_FILENAME() : CPropCommon
  • SetData_PROP_GREP() : CPropCommon
  • SetData_PROP_Macro() : CPropCommon
  • SetData_PROP_TAB() : CPropCommon
  • SetData_PROP_TOOLBAR() : CPropCommon
  • SetData_PROP_WIN() : CPropCommon
  • SetData_Regex() : CPropTypes
  • SetDataOne() : CDlgFavorite
  • SetDataSz() : CMemory
  • SetDebugModeOFF() : CEditWnd
  • SetDebugModeON() : CEditWnd
  • SetDeclare() : CPPA
  • SetDefine() : CPPA
  • SetDefProc() : CPPA
  • SetDiffMark() : CDocLine
  • SetDiffMarkRange() : CDocLineMgr
  • SetDocumentIcon() : CEditDoc
  • SetDocumentType() : CEditDoc
  • setErr() : RcCvt
  • SetErrProc() : CPPA
  • SetFavorite() : CRecent
  • SetFileInfo() : CEditDoc
  • SetFileName() : CDlgTagJumpList
  • SetFilePath() : CEditDoc
  • SetFinishProc() : CPPA
  • SetFocusSearchBox() : CEditWnd
  • SetFocusToPrintPreviewBar() : CPrintPreview
  • SetFont() : CEditView
  • SetFooter() : CPrintPreview
  • SetGrepResult() : CEditView
  • SetHeader() : CPrintPreview
  • SetIMECompFormFont() : CEditView
  • SetIMECompFormPos() : CEditView
  • SetImeMode() : CEditDoc
  • SetInsMode() : CEditView, CEditDoc
  • SetInterval() : CPassiveTimer
  • SetIntFunc() : CPPA
  • SetIntObj() : CPPA
  • SetIntVar() : CPPA
  • SetKeyNameArrVal() : CShareData
  • SetKeyword() : CDlgTagJumpList
  • SetKeyWordArr() : CKeyWordSetMgr
  • SetKeyWordCase() : CKeyWordSetMgr
  • SetLayoutInfo() : CLayoutMgr
  • SetListItem() : CFuncLookup
  • SetListVB() : CDlgFuncList
  • SetListViewItem_FILENAME() : CPropCommon
  • SetMacro2List_Macro() : CPropCommon
  • SetMax() : CMarkMgr
  • SetModified() : CEditDoc
  • SetModifyFlg() : CDocLine
  • SetNewLineCode() : CEditDoc
  • SetNext() : CMacro
  • SetNoModified() : COpeBuf
  • SetParentCaption() : CEditView, CEditDoc
  • SetPosition() : CMarkMgr::CMark
  • SetPreviewFontHan() : CPrintPreview
  • SetPreviewFontZen() : CPrintPreview
  • SetPrintSetting() : CPrintPreview
  • SetProc() : CPPA
  • SetProfileData() : CProfile
  • SetQueryIfCodeChange() : Common
  • SetReadingMode() : CProfile
  • SetReadOnly() : CEditDoc
  • SetRealFunc() : CPPA
  • SetRealObj() : CPPA
  • SetRealVar() : CPPA
  • SetReconvertStruct() : CEditView
  • SetRegexpVersion() : CPropCommon
  • SetRestoreBookmarks() : Common
  • SetRestoreCurPosition() : Common
  • SetSelectArea() : CEditView
  • SetSelectionFromReonvert() : CEditView
  • SetSource() : CPPA
  • SetStrFunc() : CPPA
  • SetStrObj() : CPPA
  • SetStrVar() : CPPA
  • SetTBBUTTONVal() : CMenuDrawer
  • SetText() : CDataObject
  • SettingInitialize() : CPrint
  • SetToolBarImages() : CImageListMgr
  • SetTraceOutSource() : CShareData
  • SetTree() : CDlgFuncList
  • SetTreeCpp() : CDlgFuncList
  • SetTreeJava() : CDlgFuncList
  • SetType() : CEOL
  • SetTypeData() : CPropTypes
  • SetTypeName() : CKeyWordSetMgr
  • SetView() : CCaretUnderLine
  • SetWindowIcon() : CEditWnd
  • SetWindowTheme() : CUxTheme
  • SetWritingMode() : CProfile
  • ShareData_IO_2() : CShareData
  • ShareData_IO_Cmd() : CShareData
  • ShareData_IO_Common() : CShareData
  • ShareData_IO_CustMenu() : CShareData
  • ShareData_IO_Folders() : CShareData
  • ShareData_IO_Font() : CShareData
  • ShareData_IO_Grep() : CShareData
  • ShareData_IO_KeyBind() : CShareData
  • ShareData_IO_Keys() : CShareData
  • ShareData_IO_KeyWords() : CShareData
  • ShareData_IO_Macro() : CShareData
  • ShareData_IO_Mru() : CShareData
  • ShareData_IO_Nickname() : CShareData
  • ShareData_IO_Other() : CShareData
  • ShareData_IO_Print() : CShareData
  • ShareData_IO_Toolbar() : CShareData
  • ShareData_IO_Types() : CShareData
  • ShiftLogicalLineNum() : CLayoutMgr
  • Show() : CTipWnd
  • ShowCaret_() : CEditView
  • ShowEditCaret() : CEditView
  • ShowHideWindow() : CTabWnd
  • ShowHokanMgr() : CEditView
  • ShowKeywordHelp() : CEditView
  • ShowTip() : CHokanMgr
  • size : CDataObject
  • SizeBox_ONOFF() : CFuncKeyWnd
  • SJISToEUC() : CMemory
  • SJIStoJIS() : CMemory
  • SJISToUnicode() : CMemory
  • SJISToUnicodeBE() : CMemory
  • SJISToUTF7() : CMemory
  • SJISToUTF8() : CMemory
  • sKey1 : _SORTTABLE
  • sKey2 : _SORTTABLE
  • SmartIndent_CPP() : CEditView
  • SortKeyWord() : CKeyWordSetMgr
  • SortListView() : CDlgFuncList
  • SortTree() : CDlgFuncList
  • SPACEToTAB() : CMemory
  • SplitBoxOnOff() : CEditView
  • splitctr : bregexp
  • splitp : bregexp
  • sStr : HANKAKKO_T, ZENKAKKO_T
  • StartControlProcess() : CProcessFactory
  • startp : bregexp
  • StartTimer() : CDlgTagJumpList
  • STATE_CONTINUE : COutlinePython
  • STATE_NORMAL : COutlinePython
  • STATE_STRING : COutlinePython
  • stdError() : CPPA
  • stdFinishProc() : CPPA
  • stdIntFunc() : CPPA
  • STDMETHOD() : CDataObject, CDropSource, CYbInterfaceImpl< BASEINTERFACE >
  • stdProc() : CPPA
  • stdStrFunc() : CPPA
  • stdStrObj() : CPPA
  • StopTimer() : CDlgTagJumpList
  • strerr : RcCvt
  • strSectionName : CProfile::Section
  • StrSJIStoJIS() : CMemory
  • SubclassWindow() : CUrlWnd
  • SwapHLByte() : CMemory
  • SyncScrollH() : CEditView
  • SyncScrollV() : CEditView
  • SysString() : SysString
  • szGroupName : oneRule
  • szKey : VS_VERSION_INFO_HEAD
  • szMatch : oneRule
  • szName : ColorAttributeData_t
  • szTabname : ComPropSheetInfo
  • szText : TABMENU_DATA
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- t -

  • TabListMenu() : CTabWnd
  • TABToSPACE() : CMemory
  • TabWindowNotify() : CTabWnd
  • TabWnd_ActivateFrameWindow() : CTabWnd
  • TabWndDispatchEvent() : CTabWnd
  • TagJumpInfo : CSortedTagJumpList
  • TagJumpSub() : CEditView
  • Terminate() : CRecent, CProcess, CNormalProcess, CControlProcess
  • TerminateApplication() : CEditApp
  • TestWriteQuit() : CProcessFactory
  • TGWRAP_FULL : CEditView
  • TGWRAP_NONE : CEditView
  • TGWRAP_PROP : CEditView
  • TGWRAP_WINDOW : CEditView
  • Timer_ONOFF() : CFuncKeyWnd, CEditWnd
  • TOGGLE_WRAP_ACTION : CEditView
  • ToHankaku() : CMemory
  • ToLower() : CMemory
  • ToolBarOwnerDraw() : CEditWnd
  • ToUpper() : CMemory
  • ToZenkaku() : CMemory
  • TraceOut() : CShareData
  • TransformFileName_MakeCache() : CShareData
  • TranslateCommand_grep() : CEditView
  • TranslateCommand_isearch() : CEditView
  • transtblp : bregexp
  • TrayMessage() : CEditApp
  • TwoPointToRect() : CEditView
  • type : CSortedTagJumpList::tagjump_info_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- u -

  • UINT : ComPropSheetInfo
  • Uni : UnicodeInfo_t
  • UniBe : UnicodeInfo_t
  • UnicodeBEToSJIS() : CMemory
  • UnicodeToSJIS() : CMemory
  • UnicodeToUTF7() : CMemory
  • UnicodeToUTF8() : CMemory
  • UnInitialize() : COleLibrary
  • Unlock() : CMutex
  • UnLock() : CCaretUnderLine
  • UnlockDocumentType() : CEditDoc
  • Unregister() : CMacroFactory
  • UpdateBackupFile() : CPropCommon
  • UpdateData() : CDlgTagJumpList
  • UpdateKeyWord() : CKeyWordSetMgr
  • UpdateView() : CRecent
  • UrlWndProc() : CUrlWnd
  • UTF7ToSJIS() : CMemory
  • UTF8ToSJIS() : CMemory
  • UUDECODE() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- v -

  • Value : VS_VERSION_INFO_HEAD
  • Variant() : Variant
  • VHSplitOnOff() : CSplitterWnd
  • ViewDiffInfo() : CEditView
  • vKey : ctrl_info_t
  • VSplitOnOff() : CSplitterWnd
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- w -

  • WaitForInitializedControlProcess() : CProcessFactory
  • WatchUpdate : CEditDoc
  • WhatKindOfChar() : CDocLineMgr
  • WhereCurrentWord() : CLayoutMgr, CDocLineMgr
  • WhereCurrentWord_2() : CDocLineMgr
  • WindowTopMost() : CEditWnd
  • WinListMenu() : CEditWnd
  • wLength : VS_VERSION_INFO_HEAD
  • WPARAM : ComPropSheetInfo
  • Write() : CFileWrite
  • WriteFile() : CProfile, CDocLineMgr
  • WriteProfile() : CProfile
  • WriteTrace() : CRunningTimer
  • WU_NONE : CEditDoc
  • WU_NOTIFY : CEditDoc
  • WU_QUERY : CEditDoc
  • wValueLength : VS_VERSION_INFO_HEAD
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

これはクラスメンバの一覧で、それぞれが属しているクラスの説明へリンクしています。

- x -

  • XYLogicalToLayout() : CLayoutMgr
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 列挙型

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数

  • CaptureSrc : CTabWnd
  • DragState : CTabWnd
  • enum_CESI_public_constants : CESI
  • enumFileLoadMode : CFileLoad
  • LID_SKH : CEditView
  • Option : CBregexp
  • Pattern : CBregexp
  • TOGGLE_WRAP_ACTION : CEditView
  • WatchUpdate : CEditDoc
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 列挙型の値

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • c
  • d
  • f
  • i
  • l
  • n
  • o
  • p
  • s
  • t
  • w

- c -

  • CAPT_CLOSE : CTabWnd
  • CAPT_NONE : CTabWnd

- d -

  • DRAG_CHECK : CTabWnd
  • DRAG_DRAG : CTabWnd
  • DRAG_NONE : CTabWnd

- f -

  • FLMODE_CLOSE : CFileLoad
  • FLMODE_OPEN : CFileLoad
  • FLMODE_READBUFEND : CFileLoad
  • FLMODE_REDY : CFileLoad

- i -

  • icClicked : CEditWnd
  • icDoubleClicked : CEditWnd
  • icDown : CEditWnd
  • icNone : CEditWnd

- l -

  • LID_SKH_ONTIMER : CEditView
  • LID_SKH_POPUPMENU_R : CEditView

- n -

  • NUM_OF_MBCODE : CESI

- o -

  • optCaseSensitive : CBregexp
  • optGlobal : CBregexp
  • optNothing : CBregexp

- p -

  • PAT_BOTTOM : CBregexp
  • PAT_LOOKAHEAD : CBregexp
  • PAT_NORMAL : CBregexp
  • PAT_TAB : CBregexp
  • PAT_TOP : CBregexp
  • PAT_UNKNOWN : CBregexp

- s -

  • STATE_CONTINUE : COutlinePython
  • STATE_NORMAL : COutlinePython
  • STATE_STRING : COutlinePython

- t -

  • TGWRAP_FULL : CEditView
  • TGWRAP_NONE : CEditView
  • TGWRAP_PROP : CEditView
  • TGWRAP_WINDOW : CEditView

- w -

  • WU_NONE : CEditDoc
  • WU_NOTIFY : CEditDoc
  • WU_QUERY : CEditDoc
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- _ -

  • _mbcjmstojis_ex() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- j -

  • JIStoSJIS() : CMemory
  • JoinNext() : CTabWnd
  • JoinPrev() : CTabWnd
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- k -

  • Key2Command() : CDlgFuncList
  • KeyProc() : CHokanMgr
  • KeySearchCore() : CEditView
  • KeyWordHelpSearchDict() : CEditView
  • KeyWordReAlloc() : CKeyWordSetMgr
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- l -

  • LayoutFuncKey() : CEditWnd
  • LayoutStatusBar() : CEditWnd
  • LayoutTab() : CTabWnd
  • LayoutTabBar() : CEditWnd
  • LayoutToolBar() : CEditWnd
  • Length() : SysString, CMRUFolder, CMRU
  • LineColmnToIndex() : CEditView
  • LineColmnToIndex2() : CEditView
  • LineIndexToColmn() : CEditView
  • Load() : CSMacroMgr
  • LoadKeyMacro() : CWSHMacroManager, CPPAMacroMgr, CMacroManagerBase, CKeyMacroMgr
  • LoadLibrary() : CDllHandler
  • LoadShareData() : CShareData
  • Lock() : CMutex, CCaretUnderLine
  • LockDocumentType() : CEditDoc
  • LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- m -

  • MainLoop() : CProcess, CNormalProcess, CControlProcess
  • MakeBackUp() : CEditDoc
  • MakeDiffTmpFile() : CEditView
  • MakeFuncList_BookMark() : CEditDoc
  • MakeFuncList_C() : CEditDoc
  • MakeFuncList_Java() : CEditDoc
  • MakeFuncList_Perl() : CEditDoc
  • MakeFuncList_PLSQL() : CEditDoc
  • MakeFuncList_python() : CEditDoc
  • MakeFuncList_RuleFile() : CEditDoc
  • MakeFuncList_VisualBasic() : CEditDoc
  • MakePattern() : CBregexp
  • MakePatternSub() : CBregexp
  • MakeTopicList_asm() : CEditDoc
  • MakeTopicList_cobol() : CEditDoc
  • MakeTopicList_html() : CEditDoc
  • MakeTopicList_tex() : CEditDoc
  • MakeTopicList_txt() : CEditDoc
  • MakeTopicList_wztxt() : CEditDoc
  • MarkSearchWord() : CDocLineMgr
  • Match() : CLineComment, CBregexp
  • Match_CommentFrom() : CBlockComment
  • Match_CommentTo() : CBlockComment
  • Match_Quote() : CLayoutMgr
  • MeasureItem() : CMenuDrawer
  • MemBASE64_Decode() : CMemory
  • MemBASE64_Encode() : CMemory
  • MemCharNext() : CMemory
  • MemCharPrev() : CMemory
  • MemJIStoSJIS() : CMemory
  • MemSJIStoJIS() : CMemory
  • MemSJISToUnicode() : CMemory
  • MemUnicodeToSJIS() : CMemory
  • MessageLoop() : CEditWnd, CEditApp
  • migemo_close() : CMigemo
  • migemo_get_operator() : CMigemo
  • migemo_is_enable() : CMigemo
  • migemo_load() : CMigemo
  • migemo_load_all() : CMigemo
  • migemo_open() : CMigemo
  • migemo_query() : CMigemo
  • migemo_release() : CMigemo
  • migemo_set_operator() : CMigemo
  • migemo_setproc_char2int() : CMigemo
  • migemo_setproc_int2char() : CMigemo
  • MoveCursor() : CEditView
  • MoveCursorProperly() : CEditView
  • MoveCursorSelecting() : CEditView
  • MoveCursorToPoint() : CEditView
  • MoveItem() : CRecent
  • MoveLeft() : CTabWnd
  • MoveListViewItem_FILENAME() : CPropCommon
  • MoveRight() : CTabWnd
  • MY_RegQuerVal() : CShareData
  • MY_RegSetVal() : CShareData
  • MyAppendMenu() : CMenuDrawer
  • MyBitBlt() : CImageListMgr
  • MyEnumFontFamProc() : CPrintPreview
  • MyGetClipboardData() : CEditView
  • MyGetDateFormat() : CShareData
  • MyGetTimeFormat() : CShareData
  • MySetClipboardData() : CEditView
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- n -

  • NextGroup() : CTabWnd
  • NextValid() : CMarkMgr
  • NextWord() : CLayoutMgr
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- o -

  • OnActivate() : CDlgFavorite, CDialog
  • OnBnClicked() : CHokanMgr, CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgSameColor, CDlgReplace, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFileUpdateQuery, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDlgCancel, CDlgAbout, CDialog
  • OnCaptionTimer() : CEditWnd
  • OnCaptureChanged() : CTabWnd
  • OnCbnEditChange() : CDlgTagJumpList, CDialog
  • OnCbnSelChange() : CHokanMgr, CDlgTagJumpList, CDlgPrintSetting, CDlgJump, CDlgFuncList, CDlgDiff, CDialog
  • OnChangePrintSetting() : CPrintPreview
  • OnChangeSetting() : CEditView, CEditDoc
  • OnChangeSettingType() : CDlgPrintSetting
  • OnCharToItem() : CDialog
  • OnCheckAntialias() : CPrintPreview
  • OnClose() : CEditWnd
  • OnCmbDropdown() : CDlgOpenFile
  • OnCommand() : CFuncKeyWnd, CEditWnd, CEditApp, CDialog
  • OnContextMenu() : CDialog
  • OnDestroy() : CTabWnd, CHokanMgr, CFuncKeyWnd, CEditApp, CDlgPrintSetting, CDlgFuncList, CDialog
  • OnDeviceChange() : CDialog
  • OnDrawItem() : CTabWnd, CDlgSameColor, CDialog
  • OnDropFiles() : CEditWnd
  • OnEditChange() : CDlgDiff, CDialog
  • OnEditTimer() : CEditWnd
  • OnEnterScript() : CWSHSite
  • OnFileClose() : CEditDoc
  • OnFileDropdown_Macro() : CPropCommon
  • OnHelp() : CPropTypes, CPropCommon
  • OnHelp_MenuItem() : CEditWnd
  • OnHScroll() : CPrintPreview, CEditWnd, CEditView
  • OnInitDialog() : CHokanMgr, CDlgWinSize, CDlgTagJumpList, CDlgSameColor, CDlgReplace, CDlgPrintSetting, CDlgKeywordSelect, CDlgGrep, CDlgFuncList, CDlgFileUpdateQuery, CDlgFavorite, CDlgCtrlCode, CDlgCancel, CDlgAbout, CDialog
  • OnJump() : CDlgFuncList
  • OnKeyDown() : CHokanMgr, CDialog
  • OnKillFocus() : CHokanMgr, CEditView, CDialog
  • OnLbnDblclk() : CHokanMgr, CDlgTypeList, CDialog
  • OnLButtonDblClk() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CEditWnd
  • OnLBUTTONDBLCLK() : CEditView
  • OnLBUTTONDOWN() : CEditView
  • OnLButtonDown() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CEditWnd
  • OnLButtonUp() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CEditWnd
  • OnLBUTTONUP() : CEditView
  • OnLeaveScript() : CWSHSite
  • OnMBUTTONDOWN() : CEditView
  • OnMeasureItem() : CTabWnd
  • OnMenuChar() : CMenuDrawer
  • OnMOUSEMOVE() : CEditView
  • OnMouseMove() : CTabWnd, CSplitterWnd, CSplitBoxWnd, CPrintPreview, CEditWnd
  • OnMouseWheel() : CPrintPreview, CEditWnd
  • OnMOUSEWHEEL() : CEditView
  • OnMove() : CEditView, CEditDoc, CDialog
  • OnNcDestroy() : CWnd
  • OnNcLButtonDown() : CEditWnd
  • OnNcLButtonUp() : CEditWnd
  • OnNewEditor() : CEditApp
  • OnNotify() : CTabWnd, CDlgTagJumpList, CDlgPrintSetting, CDlgJump, CDlgFuncList, CDlgFavorite, CDlgCtrlCode, CDialog
  • OnPaint() : CTipWnd, CTabWnd, CSplitterWnd, CSplitBoxWnd, CPrintPreview, CEditWnd, CEditView
  • OnPopupHelp() : CDialog
  • OnPreviewGoDirectPage() : CPrintPreview
  • OnPreviewGoNextPage() : CPrintPreview
  • OnPreviewGoPage() : CPrintPreview
  • OnPreviewGoPreviousPage() : CPrintPreview
  • OnPreviewZoom() : CPrintPreview
  • OnPrint() : CPrintPreview
  • OnPrintPageSetting() : CPrintPreview, CEditWnd
  • OnRBUTTONDOWN() : CEditView
  • OnRButtonDown() : CTabWnd
  • OnRBUTTONUP() : CEditView
  • OnScriptError() : CWSHSite
  • OnScriptTerminate() : CWSHSite
  • OnSelChangeListColors() : CDlgSameColor
  • OnSetFocus() : CEditView
  • OnSize() : CTabWnd, CSplitterWnd, CPrintPreview, CHokanMgr, CFuncKeyWnd, CEditWnd, CEditView, CDlgFuncList, CDialog
  • OnSpin() : CDlgPrintSetting
  • OnStateChange() : CWSHSite
  • OnSysMenuTimer() : CEditWnd
  • OnTabCaptureChanged() : CTabWnd
  • OnTabLButtonDown() : CTabWnd
  • OnTabLButtonUp() : CTabWnd
  • OnTabMButtonDown() : CTabWnd
  • OnTabMButtonUp() : CTabWnd
  • OnTabMouseMove() : CTabWnd
  • OnTabNotify() : CTabWnd
  • OnTabRButtonDown() : CTabWnd
  • OnTabRButtonUp() : CTabWnd
  • OnTimer() : CTabWnd, CFuncKeyWnd, CEditWnd, CEditView, CDlgTagJumpList, CDlgPrintSetting, CDialog
  • OnToolbarTimer() : CEditWnd
  • OnVKeyToItem() : CDialog
  • OnVScroll() : CPrintPreview, CEditWnd, CEditView
  • OnXLBUTTONDOWN() : CEditView
  • OnXRBUTTONDOWN() : CEditView
  • Open() : CTabWnd, CFuncKeyWnd
  • OPEN_ExtFromtoExt() : CEditView
  • OpenFile() : CEditDoc
  • OpenFileDialog() : CEditDoc
  • OpenNewEditor() : CEditApp
  • OpenNewEditor2() : CEditApp
  • OpenPropertySheet() : CEditDoc
  • OpenPropertySheetTypes() : CEditDoc
  • operator enumEOLType() : CEOL
  • operator HANDLE() : CMutex
  • operator!() : CDllHandler
  • operator!=() : CMarkMgr::CMark, CEOL
  • operator+=() : CMemory
  • operator=() : Variant, SysString, ImplementsIUnknown< Base >, CMemory, CKeyWordSetMgr, CFileLoad, CEOL
  • operator==() : CMarkMgr::CMark, CEOL
  • operator[]() : CMemory, CMarkMgr
  • OsDoesNOTSupportReconvert() : COsVersionInfo
  • OsIsEnableVersion() : COsVersionInfo
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- z -

  • ZeroItem() : CRecent
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- ~ -

  • ~CBregexp() : CBregexp
  • ~CControlProcess() : CControlProcess
  • ~CDataObject() : CDataObject
  • ~CDialog() : CDialog
  • ~CDicMgr() : CDicMgr
  • ~CDlgDebug() : CDlgDebug
  • ~CDlgFavorite() : CDlgFavorite
  • ~CDlgInput1() : CDlgInput1
  • ~CDlgKeywordSelect() : CDlgKeywordSelect
  • ~CDlgOpenFile() : CDlgOpenFile
  • ~CDlgSameColor() : CDlgSameColor
  • ~CDlgTagJumpList() : CDlgTagJumpList
  • ~CDlgWinSize() : CDlgWinSize
  • ~CDllHandler() : CDllHandler
  • ~CDocLine() : CDocLine
  • ~CDocLineMgr() : CDocLineMgr
  • ~CDropTarget() : CDropTarget
  • ~CEditApp() : CEditApp
  • ~CEditDoc() : CEditDoc
  • ~CEditView() : CEditView
  • ~CEditWnd() : CEditWnd
  • ~CFileExt() : CFileExt
  • ~CFileLoad() : CFileLoad
  • ~CFileWrite() : CFileWrite
  • ~CFuncInfo() : CFuncInfo
  • ~CFuncInfoArr() : CFuncInfoArr
  • ~CFuncKeyWnd() : CFuncKeyWnd
  • ~CHokanMgr() : CHokanMgr
  • ~CHtmlHelp() : CHtmlHelp
  • ~CImageListMgr() : CImageListMgr
  • ~CInterfaceObject() : CInterfaceObject
  • ~CKeyBind() : CKeyBind
  • ~CKeyMacroMgr() : CKeyMacroMgr
  • ~CKeyWordSetMgr() : CKeyWordSetMgr
  • ~CLayout() : CLayout
  • ~CLayoutMgr() : CLayoutMgr
  • ~CMacro() : CMacro
  • ~CMacroManagerBase() : CMacroManagerBase
  • ~CMemory() : CMemory
  • ~CMenuDrawer() : CMenuDrawer
  • ~CMigemo() : CMigemo
  • ~CMRU() : CMRU
  • ~CMRUFolder() : CMRUFolder
  • ~CMutex() : CMutex
  • ~CNormalProcess() : CNormalProcess
  • ~COleLibrary() : COleLibrary
  • ~COpe() : COpe
  • ~COpeBlk() : COpeBlk
  • ~COpeBuf() : COpeBuf
  • ~CPPA() : CPPA
  • ~CPPAMacroMgr() : CPPAMacroMgr
  • ~CPrint() : CPrint
  • ~CPrintPreview() : CPrintPreview
  • ~CProcess() : CProcess
  • ~CProfile() : CProfile
  • ~CPropCommon() : CPropCommon
  • ~CPropTypes() : CPropTypes
  • ~CRecent() : CRecent
  • ~CRegexKeyword() : CRegexKeyword
  • ~CRunningTimer() : CRunningTimer
  • ~CShareData() : CShareData
  • ~CSMacroMgr() : CSMacroMgr
  • ~CSortedTagJumpList() : CSortedTagJumpList
  • ~CSplitBoxWnd() : CSplitBoxWnd
  • ~CSplitterWnd() : CSplitterWnd
  • ~CTabWnd() : CTabWnd
  • ~CTipWnd() : CTipWnd
  • ~CUrlWnd() : CUrlWnd
  • ~CUxTheme() : CUxTheme
  • ~CWaitCursor() : CWaitCursor
  • ~CWnd() : CWnd
  • ~CWSHClient() : CWSHClient
  • ~CWSHMacroManager() : CWSHMacroManager
  • ~CYbInterfaceBase() : CYbInterfaceBase
  • ~ImplementsIUnknown() : ImplementsIUnknown< Base >
  • ~LockGuard() : LockGuard< EXCLUSIVE_OBJECT >
  • ~RcCvt() : RcCvt
  • ~SysString() : SysString
  • ~Variant() : Variant
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- a -

  • Abort() : CPPA
  • ActiveView() : CEditDoc
  • Add() : CMRUFolder, CMRU, CAutoMarkMgr, CMarkMgr
  • AddCurrentLineToHistory() : CEditView
  • AddData() : CMemory
  • addDelta() : CMemoryIterator< T >
  • AddEditWndList() : CShareData
  • AddIntObj() : CPPA
  • AddIntVar() : CPPA
  • AddKeyWord() : CKeyWordSetMgr
  • AddKeyWordSet() : CKeyWordSetMgr
  • AddLineBottom() : CLayoutMgr
  • AddLineStrX() : CDocLineMgr
  • AddLParam() : CMacro
  • AddMethod() : CInterfaceObject
  • AddParam() : CSortedTagJumpList, CMacro, CDlgTagJumpList
  • AddRealObj() : CPPA
  • AddRealVar() : CPPA
  • AddRef() : ImplementsIUnknown< Base >, CWSHSite
  • AddressOfMember() : CInterfaceObjectTypeInfo
  • AddStrObj() : CPPA
  • AddStrVar() : CPPA
  • AddToCmdArr() : CEditView
  • AddToGrepFileArr() : CShareData
  • AddToGrepFolderArr() : CShareData
  • AddToMRU() : CEditDoc
  • AddToReplaceKeyArr() : CShareData
  • AddToSearchKeyArr() : CShareData
  • AdjustScrollBars() : CEditView
  • AdjustWindowPlacement() : CTabWnd
  • AfterCreateWindow() : CWnd, CTipWnd, CTabWnd, CFuncKeyWnd
  • AllocBuffer() : CMemory
  • AnalyzeDiffInfo() : CEditView
  • Append() : CSMacroMgr, CMemory, CKeyMacroMgr
  • AppendData() : CFuncInfoArr
  • AppendExt() : CFileExt
  • AppendExtRaw() : CFileExt
  • AppendItem() : CRecent
  • AppendOpe() : COpeBlk
  • AppendOpeBlk() : COpeBuf
  • AppendSz() : CMemory
  • ApplyData() : CPropCommon
  • AtoiOptionInt() : CCommandLine
  • AUTOToSJIS() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- b -

  • BASE64Decode() : CMemory
  • BeginSelectArea() : CEditView
  • BeReloadWhenExecuteMacro() : CShareData
  • BOOL() : CUxTheme, CEditView, CDataObject
  • BreakDrag() : CTabWnd
  • Buffering() : CFileLoad
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- c -

  • CalcButtonSize() : CFuncKeyWnd
  • CallDefWndProc() : CWnd
  • CallHandleFunction() : CPPA
  • CanAddKeyWord() : CKeyWordSetMgr
  • CanFuncIsKeyMacro() : CSMacroMgr
  • CaretPos_Log2Phys() : CLayoutMgr
  • CaretPos_Phys2Log() : CLayoutMgr
  • CaretUnderLineOFF() : CEditView, CCaretUnderLine
  • CaretUnderLineON() : CEditView, CCaretUnderLine
  • Category2Name() : CFuncLookup
  • CBlockComment() : CBlockComment
  • CBregexp() : CBregexp
  • CCaretUnderLine() : CCaretUnderLine
  • CCommandLine() : CCommandLine
  • CControlProcess() : CControlProcess
  • CCppPreprocessMng() : CCppPreprocessMng
  • CDataObject() : CDataObject
  • CDialog() : CDialog
  • CDicMgr() : CDicMgr
  • CDlgCancel() : CDlgCancel
  • CDlgCompare() : CDlgCompare
  • CDlgCtrlCode() : CDlgCtrlCode
  • CDlgDebug() : CDlgDebug
  • CDlgDiff() : CDlgDiff
  • CDlgExec() : CDlgExec
  • CDlgFavorite() : CDlgFavorite
  • CDlgFileUpdateQuery() : CDlgFileUpdateQuery
  • CDlgFind() : CDlgFind
  • CDlgFuncList() : CDlgFuncList
  • CDlgGrep() : CDlgGrep
  • CDlgInput1() : CDlgInput1
  • CDlgJump() : CDlgJump
  • CDlgKeywordSelect() : CDlgKeywordSelect
  • CDlgOpenFile() : CDlgOpenFile
  • CDlgPrintPage() : CDlgPrintPage
  • CDlgReplace() : CDlgReplace
  • CDlgSameColor() : CDlgSameColor
  • CDlgTagJumpList() : CDlgTagJumpList
  • CDlgTagsMake() : CDlgTagsMake
  • CDlgWinSize() : CDlgWinSize
  • CDllHandler() : CDllHandler
  • CDocLine() : CDocLine
  • CDocLineMgr() : CDocLineMgr
  • CDropSource() : CDropSource
  • CDropTarget() : CDropTarget
  • CEditApp() : CEditApp
  • CEditDoc() : CEditDoc
  • CEditView() : CEditView
  • CEditWnd() : CEditWnd
  • CEOL() : CEOL
  • CESI() : CESI
  • CFileExt() : CFileExt
  • CFileLoad() : CFileLoad
  • CFileWrite() : CFileWrite
  • CFuncInfo() : CFuncInfo
  • CFuncInfoArr() : CFuncInfoArr
  • CFuncKeyWnd() : CFuncKeyWnd
  • CFuncLookup() : CFuncLookup
  • ChangeCurRegexp() : CEditView
  • ChangeDateExample() : CPropCommon
  • ChangeFileNameNotify() : CEditWnd
  • ChangeFont() : CTipWnd
  • ChangeLayoutParam() : CLayoutMgr, CEditDoc
  • ChangeSelectAreaByCurrentCursor() : CEditView
  • ChangeSelectAreaByCurrentCursorTEST() : CEditView
  • ChangeTimeExample() : CPropCommon
  • ChangeView() : CHokanMgr, CDlgReplace, CDlgFuncList, CDlgFind
  • ChangeViewCount() : CRecent
  • CheckAction() : CPassiveTimer
  • CheckAutoSave() : CEditDoc
  • CheckColorMODE() : CLayoutMgr
  • CheckCommandLine() : CCommandLine
  • CheckCurrent() : CMarkMgr
  • CheckFileTimeStamp() : CEditDoc
  • CheckKanjiCode() : CMemory
  • CheckKanjiCodeOfFile() : CMemory
  • CheckListPosition_Macro() : CPropCommon
  • CheckListType() : CDlgFuncList
  • CheckNext() : CMarkMgr
  • CheckPattern() : CBregexp
  • CheckPrev() : CMarkMgr
  • CHokanMgr() : CHokanMgr
  • ChooseFontHandle() : CEditView
  • CHtmlHelp() : CHtmlHelp
  • CImageListMgr() : CImageListMgr
  • CInterfaceObject() : CInterfaceObject
  • CInterfaceObjectTypeInfo() : CInterfaceObjectTypeInfo
  • CKeyBind() : CKeyBind
  • CKeyMacroMgr() : CKeyMacroMgr
  • CKeyWordSetMgr() : CKeyWordSetMgr
  • CLayout() : CLayout
  • CLayoutMgr() : CLayoutMgr
  • CleanKeyWords() : CKeyWordSetMgr
  • Clear() : CSMacroMgr
  • ClearAll() : CSMacroMgr, COpeBuf, CMRUFolder, CMRU, CKeyMacroMgr
  • CLineComment() : CLineComment
  • Close() : CTabWnd, CFuncKeyWnd
  • CloseAllEditor() : CEditApp
  • CloseDialog() : CDialog
  • CMacro() : CMacro
  • CMacroFactory() : CMacroFactory
  • CMacroManagerBase() : CMacroManagerBase
  • CMark() : CMarkMgr::CMark
  • CMarkMgr() : CMarkMgr
  • CMemory() : CMemory
  • CMemoryIterator() : CMemoryIterator< T >
  • CMenuDrawer() : CMenuDrawer
  • CMigemo() : CMigemo
  • CMRU() : CMRU
  • CMRUFolder() : CMRUFolder
  • CMutex() : CMutex
  • CNormalProcess() : CNormalProcess
  • COleLibrary() : COleLibrary
  • ColorList_SubclassProc() : CDlgSameColor
  • ColorStatic_SubclassProc() : CDlgSameColor
  • Command_1PageDown() : CEditView
  • Command_1PageUp() : CEditView
  • Command_ABOUT() : CEditView
  • Command_ACTIVATE_SQLPLUS() : CEditView
  • Command_ADDTAIL() : CEditView
  • Command_BASE64DECODE() : CEditView
  • Command_BEGIN_BOXSELECT() : CEditView
  • Command_BEGIN_SELECT() : CEditView
  • Command_BIND_WINDOW() : CEditView
  • Command_BOOKMARK_NEXT() : CEditView
  • Command_BOOKMARK_PATTERN() : CEditView
  • Command_BOOKMARK_PREV() : CEditView
  • Command_BOOKMARK_RESET() : CEditView
  • Command_BOOKMARK_SET() : CEditView
  • Command_BRACKETPAIR() : CEditView
  • Command_BROWSE() : CEditView
  • Command_CANCEL_MODE() : CEditView
  • Command_CASCADE() : CEditView
  • Command_CHAR() : CEditView
  • Command_CHGMOD_EOL() : CEditView
  • Command_CHGMOD_INS() : CEditView
  • Command_CODECNV_AUTO2SJIS() : CEditView
  • Command_CODECNV_EMAIL() : CEditView
  • Command_CODECNV_EUC2SJIS() : CEditView
  • Command_CODECNV_SJIS2EUC() : CEditView
  • Command_CODECNV_SJIS2JIS() : CEditView
  • Command_CODECNV_SJIS2UTF7() : CEditView
  • Command_CODECNV_SJIS2UTF8() : CEditView
  • Command_CODECNV_UNICODE2SJIS() : CEditView
  • Command_CODECNV_UNICODEBE2SJIS() : CEditView
  • Command_CODECNV_UTF72SJIS() : CEditView
  • Command_CODECNV_UTF82SJIS() : CEditView
  • Command_COMPARE() : CEditView
  • Command_COPY() : CEditView
  • Command_COPYFILENAME() : CEditView
  • Command_COPYLINES() : CEditView
  • Command_COPYLINESASPASSAGE() : CEditView
  • Command_COPYLINESWITHLINENUMBER() : CEditView
  • Command_COPYPATH() : CEditView
  • Command_COPYTAG() : CEditView
  • Command_CREATEKEYBINDLIST() : CEditView
  • Command_CtrlCode_Dialog() : CEditView
  • Command_CURLINECENTER() : CEditView
  • Command_CUSTMENU() : CEditView
  • Command_CUT() : CEditView
  • Command_CUT_LINE() : CEditView
  • Command_DELETE() : CEditView
  • Command_DELETE_BACK() : CEditView
  • Command_DELETE_LINE() : CEditView
  • Command_Diff() : CEditView
  • Command_Diff_Dialog() : CEditView
  • Command_Diff_Next() : CEditView
  • Command_Diff_Prev() : CEditView
  • Command_Diff_Reset() : CEditView
  • Command_DOWN() : CEditView
  • Command_DOWN2() : CEditView
  • Command_DUPLICATELINE() : CEditView
  • Command_EXECCOMMAND() : CEditView
  • Command_EXECCOMMAND_DIALOG() : CEditView
  • Command_EXECKEYMACRO() : CEditView
  • Command_EXITALL() : CEditView
  • Command_EXITALLEDITORS() : CEditView
  • Command_EXTHELP1() : CEditView
  • Command_EXTHTMLHELP() : CEditView
  • Command_Favorite() : CEditView
  • Command_FILE_REOPEN() : CEditView
  • Command_FILECLOSE() : CEditView
  • Command_FILECLOSE_OPEN() : CEditView
  • Command_FILECLOSEALL() : CEditView
  • Command_FILENEW() : CEditView
  • Command_FILEOPEN() : CEditView
  • Command_FILESAVE() : CEditView
  • Command_FILESAVEALL() : CEditView
  • Command_FILESAVEAS() : CEditView
  • Command_FILESAVEAS_DIALOG() : CEditView
  • Command_FONT() : CEditView
  • Command_FUNCLIST() : CEditView
  • Command_GOFILEEND() : CEditView
  • Command_GOFILETOP() : CEditView
  • Command_GOLINEEND() : CEditView
  • Command_GOLINETOP() : CEditView
  • Command_GONEXTPARAGRAPH() : CEditView
  • Command_GOPREVPARAGRAPH() : CEditView
  • Command_GREP() : CEditView
  • Command_GREP_DIALOG() : CEditView
  • Command_GROUPCLOSE() : CEditView
  • Command_HalfPageDown() : CEditView
  • Command_HalfPageUp() : CEditView
  • Command_HANKATATOZENKAKUHIRA() : CEditView
  • Command_HANKATATOZENKAKUKATA() : CEditView
  • Command_HELP_CONTENTS() : CEditView
  • Command_HELP_SEARCH() : CEditView
  • Command_HOKAN() : CEditView
  • Command_IME_CHAR() : CEditView
  • Command_INDENT() : CEditView
  • Command_INDENT_TAB() : CEditView
  • Command_INS_DATE() : CEditView
  • Command_INS_TIME() : CEditView
  • Command_INSFILE() : CEditView
  • Command_INSTEXT() : CEditView
  • Command_JUMP() : CEditView
  • Command_JUMP_DIALOG() : CEditView
  • Command_JUMP_SRCHSTARTPOS() : CEditView
  • Command_JUMPHIST_NEXT() : CEditView
  • Command_JUMPHIST_PREV() : CEditView
  • Command_JUMPHIST_SET() : CEditView
  • Command_LEFT() : CEditView
  • Command_LineCutToEnd() : CEditView
  • Command_LineCutToStart() : CEditView
  • Command_LineDeleteToEnd() : CEditView
  • Command_LineDeleteToStart() : CEditView
  • Command_LOADKEYMACRO() : CEditView
  • Command_MAXIMIZE_H() : CEditView
  • Command_MAXIMIZE_V() : CEditView
  • Command_MENU_ALLFUNC() : CEditView
  • Command_MENU_RBUTTON() : CEditView
  • Command_MERGE() : CEditView
  • Command_MINIMIZE_ALL() : CEditView
  • Command_NEXTGROUP() : CEditView
  • Command_OPEN_CCPP() : CEditView
  • Command_OPEN_HfromtoC() : CEditView
  • Command_OPEN_HHPP() : CEditView
  • Command_OPTION() : CEditView
  • Command_OPTION_TYPE() : CEditView
  • Command_PASTE() : CEditView
  • Command_PASTEBOX() : CEditView
  • Command_PLSQL_COMPILE_ON_SQLPLUS() : CEditView
  • Command_PREVGROUP() : CEditView
  • Command_PRINT() : CEditView
  • Command_PRINT_PAGESETUP() : CEditView
  • Command_PRINT_PREVIEW() : CEditView
  • Command_PROPERTY_FILE() : CEditView
  • Command_PUTFILE() : CEditView
  • Command_READONLY() : CEditView
  • Command_RECKEYMACRO() : CEditView
  • Command_Reconvert() : CEditView
  • Command_REDO() : CEditView
  • Command_REDRAW() : CEditView
  • Command_REPLACE() : CEditView
  • Command_REPLACE_ALL() : CEditView
  • Command_REPLACE_DIALOG() : CEditView
  • Command_RIGHT() : CEditView
  • Command_SAVEKEYMACRO() : CEditView
  • Command_SEARCH_BOX() : CEditView
  • Command_SEARCH_CLEARMARK() : CEditView
  • Command_SEARCH_DIALOG() : CEditView
  • Command_SEARCH_NEXT() : CEditView
  • Command_SEARCH_PREV() : CEditView
  • Command_SELECTALL() : CEditView
  • Command_SELECTWORD() : CEditView
  • Command_SET_QUOTESTRING() : CEditView
  • Command_SHOWFUNCKEY() : CEditView
  • Command_SHOWSTATUSBAR() : CEditView
  • Command_SHOWTAB() : CEditView
  • Command_SHOWTOOLBAR() : CEditView
  • Command_SORT() : CEditView
  • Command_SPACETOTAB() : CEditView
  • Command_SPLIT_H() : CEditView
  • Command_SPLIT_V() : CEditView
  • Command_SPLIT_VH() : CEditView
  • Command_TAB_JOINTNEXT() : CEditView
  • Command_TAB_JOINTPREV() : CEditView
  • Command_TAB_MOVELEFT() : CEditView
  • Command_TAB_MOVERIGHT() : CEditView
  • Command_TAB_SEPARATE() : CEditView
  • Command_TABTOSPACE() : CEditView
  • Command_TAGJUMP() : CEditView
  • Command_TAGJUMPBACK() : CEditView
  • Command_TagJumpByTagsFile() : CEditView
  • Command_TagJumpByTagsFileKeyword() : CEditView
  • Command_TagsMake() : CEditView
  • Command_TILE_H() : CEditView
  • Command_TILE_V() : CEditView
  • Command_ToggleKeySearch() : CEditView
  • Command_TOHANEI() : CEditView
  • Command_TOHANKAKU() : CEditView
  • Command_TOHANKATA() : CEditView
  • Command_TOLOWER() : CEditView
  • Command_TOUPPER() : CEditView
  • Command_TOZENEI() : CEditView
  • Command_TOZENKAKUHIRA() : CEditView
  • Command_TOZENKAKUKATA() : CEditView
  • Command_TRACEOUT() : CEditView
  • Command_TRIM() : CEditView
  • Command_TRIM2() : CEditView
  • Command_TYPE_LIST() : CEditView
  • Command_UNDO() : CEditView
  • Command_UNINDENT() : CEditView
  • Command_UP() : CEditView
  • Command_UP2() : CEditView
  • Command_UP_BOX() : CEditView
  • Command_UUDECODE() : CEditView
  • Command_WIN_OUTPUT() : CEditView
  • Command_WINCLOSE() : CEditView
  • Command_WINLIST() : CEditView
  • Command_WINTOPMOST() : CEditView
  • Command_WndScrollDown() : CEditView
  • Command_WndScrollUp() : CEditView
  • Command_WordCut() : CEditView
  • Command_WordDelete() : CEditView
  • Command_WordDeleteToEnd() : CEditView
  • Command_WordDeleteToStart() : CEditView
  • Command_WORDLEFT() : CEditView
  • Command_WORDRIGHT() : CEditView
  • Command_WRAPWINDOWWIDTH() : CEditView
  • Compile() : CBregexp
  • ComputeWindowSize() : CTipWnd
  • convert() : RcCvt
  • ConvertTypesExtToDlgExt() : CFileExt
  • ConvMemory() : CEditView
  • ConvSelectedArea() : CEditView
  • COpe() : COpe
  • COpeBlk() : COpeBlk
  • COpeBuf() : COpeBuf
  • CopyItem() : CRecent
  • CopySelectedAllLines() : CEditView
  • CopyTo() : CLineComment, CBlockComment
  • CopyViewStatus() : CEditView
  • COsVersionInfo() : COsVersionInfo
  • Count() : CMarkMgr, CImageListMgr
  • COutlinePython() : COutlinePython
  • CPassiveTimer() : CPassiveTimer
  • CPPA() : CPPA
  • CPPAMacroMgr() : CPPAMacroMgr
  • CPrint() : CPrint
  • CPrintPreview() : CPrintPreview
  • CProcess() : CProcess
  • CProfile() : CProfile
  • CPropCommon() : CPropCommon
  • CPropTypes() : CPropTypes
  • Create() : CWnd, CTipWnd, CSplitterWnd, CSplitBoxWnd, CRecent, CPropTypes, CPropCommon, CProcessFactory, CMenuDrawer, CMacroFactory, CLayoutMgr, CImageListMgr, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgOpenFile
  • CreateAccerelator() : CKeyBind
  • CreateButtons() : CFuncKeyWnd
  • CreateCharCharsArr() : CDocLineMgr
  • CreateDC() : CPrint
  • CreateEditCaret() : CEditView
  • CreateFileDropDownMenu() : CEditWnd
  • CreateInstance() : CInterfaceObjectTypeInfo
  • CreateKeyBindList() : CKeyBind
  • CreateLayout() : CLayoutMgr
  • CreateMenu() : CMRUFolder, CMRU
  • CreateMenuFont() : CTabWnd
  • CreatePopUpMenu_L() : CEditApp
  • CreatePopUpMenu_R() : CEditView, CEditApp
  • CreatePrintPreviewControls() : CPrintPreview
  • CreateScrollBar() : CEditView
  • CreateSizeBox() : CDialog
  • CreateStatusBar() : CEditWnd
  • CreateToolBar() : CEditWnd
  • CreateTrayIcon() : CEditApp
  • Creator() : CWSHMacroManager, CPPAMacroMgr, CKeyMacroMgr, CMacroFactory
  • CRecent() : CRecent
  • CRegexKeyword() : CRegexKeyword
  • CRunningTimer() : CRunningTimer
  • CShareData() : CShareData
  • CSMacroMgr() : CSMacroMgr
  • CSortedTagJumpList() : CSortedTagJumpList
  • CSplitBoxWnd() : CSplitBoxWnd
  • CSplitterWnd() : CSplitterWnd
  • CTabWnd() : CTabWnd
  • CTipWnd() : CTipWnd
  • CUrlWnd() : CUrlWnd
  • Cursor_UPDOWN() : CEditView
  • CUxTheme() : CUxTheme
  • CWaitCursor() : CWaitCursor
  • CWnd() : CWnd
  • CWSHClient() : CWSHClient
  • CWSHMacroManager() : CWSHMacroManager
  • CWSHSite() : CWSHSite
  • cx() : CImageListMgr
  • cy() : CImageListMgr
  • CYbInterfaceBase() : CYbInterfaceBase, COleLibrary
  • CYbInterfaceImpl() : CYbInterfaceImpl< BASEINTERFACE >
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- d -

  • DataCheckAndCrrect() : CDlgPrintSetting
  • declare() : CWSHMacroManager, CPPAMacroMgr, CKeyMacroMgr
  • DECLH() : CWnd
  • DecodeUTF8toUnicode() : CMemory
  • DeInitDll() : CMigemo
  • DeinitDll() : CPPA, CDllHandler, CBregexp
  • DeleteAllItem() : CRecent
  • DeleteData() : CEditView
  • DeleteData2() : CEditView
  • DeleteData_CDocLineMgr() : CDocLineMgr
  • DeleteData_CLayoutMgr() : CLayoutMgr
  • DeleteEditWndList() : CShareData
  • DeleteItem() : CRecent
  • DeleteLayoutAsLogical() : CLayoutMgr
  • DeleteNode() : CDocLineMgr
  • DeleteVar() : CPPA
  • DelKeyWord() : CKeyWordSetMgr
  • DelKeyWordSet() : CKeyWordSetMgr
  • DestroyCaret() : CEditView
  • DestroyMenu() : CMRUFolder, CMRU
  • DestroyPrintPreviewControls() : CPrintPreview
  • DestroyScrollBar() : CEditView
  • DestroyStatusBar() : CEditWnd
  • DestroyToolBar() : CEditWnd
  • DetectMultibyte() : CESI
  • DetectUnicode() : CESI
  • DetectWidthOfLineNumberArea() : CEditView
  • DetectWidthOfLineNumberArea_calculate() : CEditView
  • DetectWidthOfLineNumberAreaAllPane() : CEditDoc
  • DirCallback_Macro() : CPropCommon
  • DisableSelectArea() : CEditView
  • DispatchEvent() : CWnd, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgSameColor, CDlgInput1, CDlgDebug, CDlgAbout, CDialog
  • DispatchEvent_KeyHelp() : CPropTypes
  • DispatchEvent_p1() : CPropTypes, CPropCommon
  • DispatchEvent_p10() : CPropCommon
  • DispatchEvent_p2() : CPropTypes, CPropCommon
  • DispatchEvent_p3() : CPropTypes
  • DispatchEvent_p3_new() : CPropTypes
  • DispatchEvent_p5() : CPropCommon
  • DispatchEvent_p7() : CPropCommon
  • DispatchEvent_p8() : CPropCommon
  • DispatchEvent_p9() : CPropCommon
  • DispatchEvent_PPB() : CPrintPreview
  • DispatchEvent_PROP_BACKUP() : CPropCommon
  • DispatchEvent_PROP_EDIT() : CPropCommon
  • DispatchEvent_PROP_FILENAME() : CPropCommon
  • DispatchEvent_PROP_GREP() : CPropCommon
  • DispatchEvent_PROP_Macro() : CPropCommon
  • DispatchEvent_PROP_TAB() : CPropCommon
  • DispatchEvent_PROP_TOOLBAR() : CPropCommon
  • DispatchEvent_PROP_WIN() : CPropCommon
  • DispatchEvent_Regex() : CPropTypes
  • DispatchEvent_WM_APP() : CWnd, CSplitterWnd
  • DispEOF() : CEditView
  • DispKeywordCount() : CPropCommon
  • DispLineNew() : CEditView
  • DispLineNumber() : CEditView
  • DispRuler() : CEditView
  • DispText() : CEditView
  • DispTextSelected() : CEditView
  • DispVerticalLines() : CEditView
  • DitherBlt2() : CImageListMgr
  • DlgOpenFail() : CDlgOpenFile
  • DlgProc() : CPropCommon
  • DlgProc_PROP_BACKUP() : CPropCommon
  • DlgProc_PROP_CUSTMENU() : CPropCommon
  • DlgProc_PROP_EDIT() : CPropCommon
  • DlgProc_PROP_FILE() : CPropCommon
  • DlgProc_PROP_FILENAME() : CPropCommon
  • DlgProc_PROP_FORMAT() : CPropCommon
  • DlgProc_PROP_GENERAL() : CPropCommon
  • DlgProc_PROP_GREP() : CPropCommon
  • DlgProc_PROP_HELPER() : CPropCommon
  • DlgProc_PROP_KEYBIND() : CPropCommon
  • DlgProc_PROP_KEYWORD() : CPropCommon
  • DlgProc_PROP_MACRO() : CPropCommon
  • DlgProc_PROP_TAB() : CPropCommon
  • DlgProc_PROP_TOOLBAR() : CPropCommon
  • DlgProc_PROP_WIN() : CPropCommon
  • DoFileLock() : CEditDoc
  • DoFileUnLock() : CEditDoc
  • DoGrep() : CEditView, CEditApp
  • DoGrepFile() : CEditView
  • DoGrepTree() : CEditView
  • DoHokan() : CHokanMgr
  • DoLayout() : CLayoutMgr
  • DoLayout_Range() : CLayoutMgr
  • DoModal() : CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgSameColor, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgInput1, CDlgGrep, CDlgFavorite, CDlgExec, CDlgDiff, CDlgDebug, CDlgCtrlCode, CDlgCompare, CDlgCancel, CDlgAbout, CDialog
  • DoModal_GetOpenFileName() : CDlgOpenFile
  • DoModal_GetSaveFileName() : CDlgOpenFile
  • DoModalOpenDlg() : CDlgOpenFile
  • DoModalSaveDlg() : CDlgOpenFile
  • DoModeless() : CHokanMgr, CDlgReplace, CDlgFuncList, CDlgFind, CDlgCancel, CDialog
  • DoPropertySheet() : CPropTypes, CPropCommon
  • DoRedo() : COpeBuf
  • DoScanLine() : COutlinePython
  • DoSplit() : CSplitterWnd
  • DoUndo() : COpeBuf
  • DragDrop() : CDataObject
  • DragEnter() : CEditView, CDropTarget
  • DragLeave() : CEditView, CDropTarget
  • DragOver() : CEditView, CDropTarget
  • Draw() : CImageListMgr
  • Draw3dRect() : CSplitBoxWnd
  • DrawBracketPair() : CEditView
  • DrawBtnBkgnd() : CTabWnd
  • DrawCaretPosInfo() : CEditView
  • DrawCloseBtn() : CTabWnd
  • DrawColorButton() : CPropTypes
  • DrawColorListItem() : CPropTypes
  • DrawEOL() : CEditView
  • DrawFooter() : CPrintPreview
  • DrawFrame() : CSplitterWnd
  • DrawHeader() : CPrintPreview
  • DrawItem() : CMenuDrawer
  • DrawListBtn() : CTabWnd
  • DrawPageText() : CPrintPreview
  • DrawRulerCaret() : CEditView
  • DrawSelectArea() : CEditView
  • DrawSelectAreaLine() : CEditView
  • DrawSplitter() : CSplitterWnd
  • DrawTabArrow() : CEditView
  • DrawTipText() : CTipWnd
  • DrawToolBarItemList() : CPropCommon
  • Drop() : CEditView, CDropTarget
  • DUMP() : CProfile, COpeBuf, COpeBlk, COpe, CLayoutMgr, CLayout, CFuncInfoArr, CDocLineMgr
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- e -

  • EasyCreate() : CRecent
  • Empty() : CSortedTagJumpList, COpeBlk, CMemory, CLayoutMgr, CFuncInfoArr, CDocLineMgr, CDlgTagJumpList
  • Enable() : CPassiveTimer
  • EnableAutoBackup() : Common
  • EnableBackupInput() : CPropCommon
  • EnableFilePropInput() : CPropCommon
  • EnableFormatPropInput() : CPropCommon
  • EnableModeless() : CWSHSite
  • EnableTabPropInput() : CPropCommon
  • EnableTypesPropInput() : CPropTypes
  • EnableWinPropInput() : CPropCommon
  • end() : CMemoryIterator< T >
  • EndLayoutBars() : CEditWnd
  • EnterString() : COutlinePython
  • EnumEngines() : CWSHMacroManager
  • Error() : CWSHClient
  • EUCToSJIS() : CMemory
  • Exec() : CSMacroMgr, CMacro
  • ExecCmd() : CEditView
  • ExecKeyMacro() : CWSHMacroManager, CPPAMacroMgr, CMacroManagerBase, CKeyMacroMgr
  • ExecTabCommand() : CTabWnd
  • Execute() : CWSHClient, CPPA
  • ExitingDlgProc() : CEditApp
  • ExpandMetaToFolder() : CShareData
  • ExpandParameter() : CEditDoc
  • ExParam_Evaluate() : CEditDoc
  • ExParam_SkipCond() : CEditDoc
  • Expire() : CAutoMarkMgr, CMarkMgr
  • Export_KeyHelp() : CPropTypes
  • Export_Regex() : CPropTypes
  • Ext2Key() : CMacroFactory
  • ExtHTMLHelpIsSet() : CShareData
  • ExtWinHelpIsSet() : CShareData
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- f -

  • FileClose() : CFileLoad, CEditDoc
  • FileCloseOpen() : CEditDoc
  • FileInfo() : FileInfo
  • FileOpen() : CFileLoad
  • FilePointer() : CFileLoad
  • FileRead() : CEditDoc
  • FileSave() : CEditDoc
  • FileSaveAs() : CEditDoc
  • FileSaveAs_Dialog() : CEditDoc
  • FileWrite() : CEditDoc
  • FillSolidRect() : CSplitBoxWnd
  • Find() : CMenuDrawer
  • find_key() : CDlgTagJumpList
  • FindIndexFromCommandId() : CMenuDrawer
  • FindItem() : CRecent
  • FindPaperInfo() : CPrint
  • FindTabIndexByHWND() : CTabWnd
  • first() : CMemoryIterator< T >
  • Flush() : CMarkMgr
  • font() : RcCvt
  • ForceActiveWindow() : CTabWnd
  • FormatBackUpPath() : CEditDoc
  • Free() : CSortedTagJumpList
  • FreeLibrary() : CDllHandler
  • Funccode2Name() : CFuncLookup
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- g -

  • Get() : SysString
  • GetAccelCharFromLabel() : CMenuDrawer
  • GetActivePane() : CEditDoc
  • GetActualTabSpace() : CLayoutMgr
  • GetAdjustCursorPos() : CEditView
  • GetAlertIfFileNotExist() : Common
  • GetAllData() : CDocLineMgr
  • GetAllocSize() : CKeyWordSetMgr
  • GetAllPageNum() : CPrintPreview
  • GetAllSplitCols() : CSplitterWnd
  • GetAllSplitRows() : CSplitterWnd
  • GetArgBStr() : CPPA
  • GetArgInt() : CPPA
  • GetArgReal() : CPPA
  • GetArgStr() : CPPA
  • GetArrayCount() : CRecent
  • GetArrayOffset() : CRecent
  • GetAt() : CFuncInfoArr
  • GetAutoBackupInterval() : Common
  • GetAutoMIMEdecode() : Common
  • GetBackupCount() : Common
  • GetBackupExtChar() : Common
  • GetBackupOpt() : Common
  • GetBackupType() : Common
  • GetBackupTypeAdv() : Common
  • getBlockCommentFrom() : CBlockComment
  • getBlockCommentTo() : CBlockComment
  • getBlockFromLen() : CBlockComment
  • getBlockToLen() : CBlockComment
  • GetBookMarks() : CDocLineMgr
  • GetBStrVar() : CPPA
  • getButton() : CMenuDrawer
  • GetCapacity() : CSortedTagJumpList
  • GetCaretType() : Common
  • GetCategoryCount() : CFuncLookup
  • GetCloseBtnRect() : CTabWnd
  • GetColorIndex() : CEditView
  • getColumn() : CMemoryIterator< T >
  • getColumnDelta() : CMemoryIterator< T >
  • GetContainingTypeLib() : CInterfaceObjectTypeInfo
  • GetCount() : CSortedTagJumpList, CFileExt
  • GetCurPageNum() : CPrintPreview
  • GetCurrent() : CMarkMgr
  • getCurrentChar() : CMemoryIterator< T >
  • GetCurrentIdx() : CSMacroMgr
  • getCurrentPos() : CMemoryIterator< T >
  • GetCurrentTextForSearch() : CEditView
  • GetCurrentTextForSearchDlg() : CEditView
  • GetCurrentWord() : CEditView
  • GetData() : CMenuDrawer, CDlgWinSize, CDlgTagsMake, CDlgTagJumpList, CDlgReplace, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDialog
  • GetData_KeyHelp() : CPropTypes
  • GetData_p1() : CPropTypes, CPropCommon
  • GetData_p10() : CPropCommon
  • GetData_p2() : CPropTypes, CPropCommon
  • GetData_p3() : CPropTypes
  • GetData_p3_new() : CPropTypes
  • GetData_p5() : CPropCommon
  • GetData_p7() : CPropCommon
  • GetData_p7_KeyWordSet() : CPropCommon
  • GetData_p8() : CPropCommon
  • GetData_p9() : CPropCommon
  • GetData_PROP_BACKUP() : CPropCommon
  • GetData_PROP_EDIT() : CPropCommon
  • GetData_PROP_FILENAME() : CPropCommon
  • GetData_PROP_GREP() : CPropCommon
  • GetData_PROP_Macro() : CPropCommon
  • GetData_PROP_TAB() : CPropCommon
  • GetData_PROP_TOOLBAR() : CPropCommon
  • GetData_PROP_WIN() : CPropCommon
  • GetData_Regex() : CPropTypes
  • GetDataOfItem() : CRecent
  • GetDeclarations() : CPPA
  • GetDefaultIcon() : CEditWnd
  • GetDefaultPrinter() : CPrint
  • GetDefaultPrinterInfo() : CPrintPreview
  • GetDefFuncCode() : CKeyBind
  • GetDllEntry() : CInterfaceObjectTypeInfo
  • GetDllName() : CUxTheme, CPPA, CMigemo, CHtmlHelp, CDllHandler
  • GetDllNameInOrder() : CDllHandler, CBregexp
  • GetDocLineBottom() : CDocLineMgr
  • GetDocLineTop() : CDocLineMgr
  • GetDocumentation() : CInterfaceObjectTypeInfo
  • GetDocumentAttribute() : CEditDoc
  • GetDocumentLockState() : CEditDoc
  • GetDocumentType() : CShareData, CEditDoc
  • GetDocumentTypeExt() : CShareData
  • GetDocVersionString() : CWSHSite
  • GetEditNode() : CShareData
  • GetEditNodeAt() : CShareData
  • GetEditorWindowsNum() : CShareData
  • GetEndLayoutPos() : CLayoutMgr
  • GetEOLType() : CEOL
  • GetEOLTypeUni() : CEOL
  • GetEOLTypeUniBE() : CEOL
  • GetExt() : CFileExt
  • GetExtFilter() : CFileExt
  • GetExtHTMLHelp() : CShareData
  • GetExtWinHelp() : CShareData
  • GetFile() : CSMacroMgr
  • GetFileInfo() : CMRU, CCommandLine
  • GetFileName() : CEditDoc, CDlgTagJumpList
  • GetFilePath() : CEditDoc, CDlgTagJumpList
  • GetFilePathFormat() : CShareData
  • GetFileSize() : CFileLoad
  • GetFileTime() : CFileLoad
  • GetFirstLinrStr() : CLayoutMgr, CDocLineMgr
  • GetFirstPane() : CSplitterWnd
  • GetFreeSize() : CKeyWordSetMgr
  • GetFuncCode() : CKeyBind
  • GetFuncCodeAt() : CKeyBind
  • GetFuncDesc() : CInterfaceObjectTypeInfo
  • GetFuncInfoByID() : CSMacroMgr
  • GetFuncInfoByName() : CSMacroMgr
  • GetGrepInfo() : CCommandLine
  • GetGroupId() : CShareData, CCommandLine
  • GetHelpIdTable() : CHokanMgr, CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgSameColor, CDlgReplace, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDlgCancel, CDlgAbout, CDialog
  • GetIconId() : CMenuDrawer
  • GetIDsOfNames() : CInterfaceObject, CInterfaceObjectTypeInfo
  • GetImageIndex() : CTabWnd
  • GetImplTypeFlags() : CInterfaceObjectTypeInfo
  • GetIndent() : CLayout, CDocLine
  • getIndentOffset_LeftSpace() : CLayoutMgr
  • getIndentOffset_Normal() : CLayoutMgr
  • getIndentOffset_Tx2x() : CLayoutMgr
  • getIndex() : CMemoryIterator< T >
  • GetIndex() : CBregexp
  • getIndexDelta() : CMemoryIterator< T >
  • GetIniFileName() : CShareData
  • GetIniFileNameDirect() : CShareData
  • GetInitializeMutex() : CNormalProcess
  • getInstance() : CUxTheme, CShareData, CMigemo
  • GetInstance() : CDllHandler
  • GetInterval() : CPassiveTimer
  • GetIntVar() : CPPA
  • GetItem() : CRecent
  • GetItemCount() : CRecent, CFuncLookup
  • GetItemInfo() : CWSHSite
  • GetKeyStr() : CKeyBind
  • GetKeyStrList() : CKeyBind
  • GetKeyWord() : CKeyWordSetMgr
  • GetKeyWordCase() : CKeyWordSetMgr
  • GetKeyWordNum() : CKeyWordSetMgr
  • GetLabel() : CMenuDrawer
  • GetLastIndex() : CBregexp
  • GetLastMessage() : CPPA, CBregexp
  • GetLastPane() : CSplitterWnd
  • GetLCID() : CWSHSite
  • GetLeftWord() : CEditView
  • GetLen() : CEOL
  • GetLength() : CMemory, CLayout, CDocLine
  • GetLengthWithEOL() : CLayout
  • GetLengthWithoutEOL() : CLayout, CDocLine
  • GetLine() : CMarkMgr::CMark
  • getLineComment() : CLineComment
  • getLineCommentPos() : CLineComment
  • GetLineCount() : CLayoutMgr, CDocLineMgr
  • GetLineInfo() : CDocLineMgr
  • GetLineStr() : CLayoutMgr, CDocLineMgr
  • GetLineStrWithoutEOL() : CDocLineMgr
  • GetListBtnRect() : CTabWnd
  • GetListViewItem_FILENAME() : CPropCommon
  • GetMacroFilename() : CShareData
  • GetMatchLen() : CBregexp
  • GetMax() : CMarkMgr
  • GetMaxLineSize() : CLayoutMgr
  • GetMenuLabel() : CKeyBind
  • GetMops() : CInterfaceObjectTypeInfo
  • GetName() : CSMacroMgr, CFileExt, CEOL
  • GetNameByType() : CDlgTagJumpList
  • GetNames() : CInterfaceObjectTypeInfo
  • GetNewLineCode() : CEditDoc
  • GetNext() : CMacro
  • GetNextGroupWnd() : CTabWnd
  • GetNextLineCharCode() : CFileLoad
  • GetNextLineW() : CFileLoad
  • GetNextLineWB() : CFileLoad
  • GetNextLinrStr() : CLayoutMgr, CDocLineMgr
  • GetNextPane() : CSplitterWnd
  • GetNum() : COpeBlk, CFuncInfoArr
  • GetOffset() : CRecent
  • GetOldestItem() : CRecent
  • GetOpe() : COpeBlk
  • GetOpenedWindowArr() : CShareData
  • GetOpenedWindowArrCore() : CShareData
  • GetOpenFileNameRecover() : CDlgOpenFile
  • GetPaperName() : CPrint
  • GetPaperSize() : CPrint
  • GetParam() : CSortedTagJumpList
  • GetPath() : CMRUFolder
  • GetPathList() : CMRUFolder, CMRU
  • GetPercent() : CFileLoad
  • GetPos() : CMarkMgr::CMark
  • GetPrevGroupWnd() : CTabWnd
  • GetPrevPane() : CSplitterWnd
  • GetPrintMetrics() : CPrint
  • GetPrintPreviewBarHANDLE() : CPrintPreview
  • GetProfileData() : CProfile
  • GetPtr() : CSortedTagJumpList, CMemory, CLayout, CDocLine
  • GetQueryIfCodeChange() : Common
  • GetRealVar() : CPPA
  • GetRefTypeInfo() : CInterfaceObjectTypeInfo
  • GetRefTypeOfImplType() : CInterfaceObjectTypeInfo
  • GetRelatedIcon() : CEditWnd
  • GetRestoreBookmarks() : Common
  • GetRestoreCurPosition() : Common
  • GetSaveFileNameRecover() : CDlgOpenFile
  • GetSelectedData() : CEditView
  • GetSelectedParam() : CDlgTagJumpList
  • GetShareData() : CShareData
  • GetSizeOfChar() : CMemory
  • GetString() : CBregexp
  • GetStringLen() : CBregexp
  • GetStrVar() : CPPA
  • GetTabName() : CTabWnd
  • GetTabSpace() : CLayoutMgr
  • GetTitle() : CSMacroMgr
  • GetTopEditNode() : CShareData
  • GetTopEditWnd() : CShareData
  • GetTransformFileNameFast() : CShareData
  • GetType() : CEOL
  • GetTypeAttr() : CInterfaceObjectTypeInfo
  • GetTypeComp() : CInterfaceObjectTypeInfo
  • GetTypeData() : CPropTypes
  • GetTypeFromString() : CEOL
  • GetTypeInfo() : CInterfaceObject
  • GetTypeInfoCount() : CInterfaceObject
  • GetTypeName() : CKeyWordSetMgr
  • GetUnicodeBEValue() : CEOL
  • GetUnicodeValue() : CEOL
  • GetValue() : CEOL
  • GetVarDesc() : CInterfaceObjectTypeInfo
  • GetVersion() : CPPA, COsVersionInfo, CBregexp
  • GetViewCount() : CRecent
  • GetWindow() : CWSHSite
  • GetWindowSize() : CTipWnd
  • GetWrapMode() : CEditView
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- h -

  • HandleCommand() : CMacro, CEditView, CEditDoc
  • HandleFunction() : CMacro
  • HasWinHelpContentsProblem() : COsVersionInfo
  • Hide() : CTipWnd, CHokanMgr
  • HideCaret_() : CEditView
  • HideOtherWindows() : CTabWnd
  • HIMAGELIST() : CTabWnd
  • HitTestSplitter() : CSplitterWnd
  • HokanSearch() : CDicMgr
  • HokanSearchByFile() : CEditView
  • HRESULT() : CUxTheme
  • HSplitOnOff() : CSplitterWnd
  • HTMLHelpIsSingle() : CShareData
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- i -

  • Idx2Ptr() : CSMacroMgr
  • ImageList_Duplicate() : CTabWnd
  • ImplementsIUnknown() : ImplementsIUnknown< Base >
  • Import_KeyHelp() : CPropTypes
  • Import_Regex() : CPropTypes
  • include() : RcCvt
  • Init() : CWnd, CUxTheme, CShareData, CProfile, COpeBlk, CLayoutMgr, CFuncLookup, CEOL, CEditDoc, CDocLineMgr, CDllHandler
  • init() : RcCvt
  • InitAllView() : CEditDoc
  • InitData() : CPropCommon
  • InitDialog_PROP_Macro() : CPropCommon
  • InitDll() : CUxTheme, CPPA, CMigemo, CHtmlHelp, CDllHandler, CBregexp
  • Initialize() : CProcess, CNormalProcess, COleLibrary, CControlProcess
  • InitImageList() : CTabWnd
  • InitKeyAssign() : CShareData
  • InitKeyword() : CShareData
  • InitLayout() : CDlgOpenFile
  • InitMenu() : CEditWnd
  • InitMenubarMessageFont() : CEditWnd
  • InitOfn() : CDlgOpenFile
  • InitPopupMenu() : CShareData
  • InitPreviewScrollBar() : CPrintPreview
  • InitToolButtons() : CShareData
  • InitTypeConfig() : CShareData
  • InsertData_CDocLineMgr() : CDocLineMgr
  • InsertData_CEditView() : CEditView
  • InsertData_CLayoutMgr() : CLayoutMgr
  • InsertLineNext() : CLayoutMgr
  • InsertNode() : CDocLineMgr
  • Instance() : CMacroFactory, CCommandLine
  • INT_PTR() : ComPropSheetInfo
  • Invoke() : CInterfaceObject, CInterfaceObjectTypeInfo
  • IO_ColorSet() : CShareData
  • IOProfileData() : CProfile
  • IsActiveApp() : CEditWnd
  • IsAddClipText() : CFuncInfo
  • IsAutoBackupEnabled() : Common
  • IsAvailable() : CRecent, CDllHandler
  • IsBASE64Char() : CMemory
  • IsBomExist() : CFileLoad
  • IsBookMarked() : CDocLine
  • IsBracket() : CEditView
  • IsCanceled() : CDlgCancel
  • IsCurrentPositionSelected() : CEditView
  • IsCurrentPositionSelectedTEST() : CEditView
  • IsCurrentPositionURL() : CEditView
  • IsDebugMode() : CCommandLine
  • IsDiffMarked() : CDocLine
  • IsDiffUse() : CDocLineMgr
  • ISearchBack() : CEditView
  • ISearchEnter() : CEditView
  • ISearchExec() : CEditView
  • ISearchExit() : CEditView
  • ISearchSetStatusMsg() : CEditView
  • ISearchWordMake() : CEditView
  • IsEditWnd() : CShareData
  • IsEmptyLine() : CDocLine
  • IsEnabled() : CSMacroMgr, MacroRec, CPassiveTimer
  • IsEnablePaste() : CEditDoc
  • IsEnableRedo() : COpeBuf, CEditDoc
  • IsEnableUndo() : COpeBuf, CEditDoc
  • IsEndOfLine() : CLayoutMgr
  • IsEqual() : CMemory
  • IsExistControlProcess() : CProcessFactory
  • IsFavorite() : CRecent
  • IsFileOpenInThisWindow() : CEditDoc
  • IsFilePathAvailable() : CEditDoc
  • IsFuncChecked() : CEditWnd
  • IsFuncEnable() : CEditWnd
  • IsGrepDlg() : CCommandLine
  • IsGrepMode() : CCommandLine
  • IsImeON() : CEditView
  • IsInsMode() : CEditView, CEditDoc
  • IsISearchEnabled() : CEditView
  • IsKinsokuHead() : CLayoutMgr
  • IsKinsokuKuto() : CLayoutMgr
  • IsKinsokuPosHead() : CLayoutMgr
  • IsKinsokuPosKuto() : CLayoutMgr
  • IsKinsokuPosTail() : CLayoutMgr
  • IsKinsokuTail() : CLayoutMgr
  • IsKutoTen() : CLayoutMgr
  • IsLogicalLineTop() : COutlinePython
  • IsLookAhead() : CBregexp
  • IsModificationForbidden() : CEditDoc
  • IsModified() : CEditDoc
  • IsModify() : CKeyWordSetMgr
  • IsModifyed() : CDocLine
  • IsNoWindow() : CCommandLine
  • IsOfnV5() : CDlgOpenFile
  • IsOverflow() : CSortedTagJumpList
  • IsPathOpened() : CShareData
  • IsPrivateSettings() : CShareData
  • IsReadingMode() : CProfile
  • IsReadOnly() : CEditDoc, CCommandLine
  • IsReady() : CMacroManagerBase
  • IsRemovableDrive() : CMRU
  • IsRunning() : CPPA
  • IsSameGroup() : CShareData
  • IsSaveOk() : CSMacroMgr
  • IsSearchString() : CEditView
  • IsStartingControlProcess() : CProcessFactory
  • IsTextSelected() : CEditView, CEditDoc
  • IsTextSelecting() : CEditView
  • IsThemeActive() : CUxTheme
  • IsTopEditWnd() : CShareData
  • IsUTF7Direct() : CMemory
  • IsUTF8() : CMemory
  • IsValid() : CMarkMgr::CMark
  • IsValidVersion() : CProcessFactory
  • IsWin2000_or_later() : COsVersionInfo
  • IsWin32NT() : COsVersionInfo
  • IsWin32Windows() : COsVersionInfo
  • IsWinMe() : COsVersionInfo
  • IsWinVista_or_later() : COsVersionInfo
  • IsWinXP_or_later() : COsVersionInfo
  • IsWriteQuit() : CCommandLine
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- p -

  • p3_Export_Colors() : CPropTypes
  • p3_Import_Colors() : CPropTypes
  • p5_ChangeKeyList() : CPropCommon
  • p5_Export_KeySetting() : CPropCommon
  • p5_Import_KeySetting() : CPropCommon
  • p7_Clean_List_KeyWord() : CPropCommon
  • p7_Delete_List_KeyWord() : CPropCommon
  • p7_Edit_List_KeyWord() : CPropCommon
  • p7_Export_List_KeyWord() : CPropCommon
  • p7_Import_List_KeyWord() : CPropCommon
  • p8_Export_CustMenuSetting() : CPropCommon
  • p8_Import_CustMenuSetting() : CPropCommon
  • ParseCommandLine() : CCommandLine
  • PopTagJump() : CShareData
  • PopupWinList() : CEditWnd
  • Pos2FuncCode() : CFuncLookup
  • Pos2FuncName() : CFuncLookup
  • PostMessageToAllEditors() : CShareData
  • PostprocessCommand_hokan() : CEditView
  • PreprocessCommand_hokan() : CEditView
  • PrevGroup() : CTabWnd
  • PreviCreateWindow() : CWnd
  • PrevOrNextWord() : CLayoutMgr, CDocLineMgr
  • PrevValid() : CMarkMgr
  • PrevWord() : CLayoutMgr
  • Print_DrawLine() : CPrintPreview
  • PrintClose() : CPrint
  • PrintDlg() : CPrint
  • PrintEndPage() : CPrint
  • PrintMenubarMessage() : CEditWnd
  • PrintOpen() : CPrint
  • PrintPreviewBar_DlgProc() : CPrintPreview
  • PrintPreviewModeONOFF() : CEditWnd
  • PrintSelectionInfoMsg() : CEditView
  • PrintStartPage() : CPrint
  • ProcessCommand_isearch() : CEditView
  • ProcSearchBox() : CEditWnd
  • PropTypesKeyHelp() : CPropTypes
  • PropTypesRegex() : CPropTypes
  • PushTagJump() : CShareData
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- q -

  • QueryInterface() : CInterfaceObject, ImplementsIUnknown< Base >, CWSHSite
  • QueryInterfaceImpl() : CYbInterfaceBase
  • QuotedPrintable_Decode() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- r -

  • RcCvt() : RcCvt
  • Read() : CRunningTimer, CFileLoad
  • ReadBufEmpty() : CFileLoad
  • ReadFile() : CDocLineMgr
  • ReadLine() : CFileLoad
  • ReadOneline() : CProfile
  • ReadProfile() : CProfile
  • ReadRuleFile() : CEditDoc
  • ReadyCommands() : CWSHMacroManager
  • RearrangeKeywordSet() : CPropTypes
  • Receive() : Variant
  • Redraw() : CEditView, CDlgFuncList
  • RedrawAll() : CEditView
  • RedrawInactivePane() : CEditDoc
  • Refresh() : CTabWnd
  • RefreshList() : CDlgFavorite
  • RefreshListOne() : CDlgFavorite
  • RegexIsKeyword() : CRegexKeyword
  • RegexKakomiCheck() : CPropTypes
  • RegexKeyCheckSyntax() : CRegexKeyword
  • RegexKeyCompile() : CRegexKeyword
  • RegexKeyInit() : CRegexKeyword
  • RegexKeyLineStart() : CRegexKeyword
  • RegexKeySetTypes() : CRegexKeyword
  • Register_DropTarget() : CDropTarget
  • RegisterCreator() : CMacroFactory
  • RegisterEntries() : CDllHandler
  • RegisterWC() : CWnd
  • Release() : ImplementsIUnknown< Base >, CWSHSite
  • ReleaseCompileBuffer() : CBregexp
  • ReleaseFuncDesc() : CInterfaceObjectTypeInfo
  • ReleaseTypeAttr() : CInterfaceObjectTypeInfo
  • ReleaseVarDesc() : CInterfaceObjectTypeInfo
  • ReloadAutoSaveParam() : CEditDoc
  • ReloadCurrentFile() : CEditDoc
  • RenewItemState() : CDlgWinSize
  • ReorderTab() : CTabWnd, CShareData
  • Replace() : CMemory, CBregexp
  • Replace_j() : CMemory
  • ReplaceData() : CDocLineMgr
  • ReplaceData_CEditView() : CEditView
  • ReplaceData_CLayoutMgr() : CLayoutMgr
  • RequestCloseAllEditor() : CShareData
  • ReserveMethods() : CInterfaceObject
  • Reset() : CRunningTimer, CPassiveTimer
  • ResetAllBookMark() : CDocLineMgr
  • ResetAllDiffMark() : CDocLineMgr
  • ResetAllFavorite() : CRecent
  • ResetAllKeyWordSet() : CKeyWordSetMgr
  • ResetAllModifyFlag() : CDocLineMgr
  • ResetContents() : CMenuDrawer
  • ResetFavorite() : CRecent
  • ResetGroupId() : CShareData
  • RestorePhysPosOfAllView() : CEditDoc
  • Revoke_DropTarget() : CDropTarget
  • RTrimPrevLine() : CEditView
  • Run() : CProcess
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- s -

  • Save() : CSMacroMgr, CMacro
  • SaveFile() : CEditDoc
  • SaveFileDialog() : CEditDoc
  • SaveKeyMacro() : CKeyMacroMgr
  • SavePhysPosOfAllView() : CEditDoc
  • SaveShareData() : CShareData
  • ScanEncoding() : CESI
  • ScanLine() : CCppPreprocessMng
  • scanNext() : CMemoryIterator< T >
  • ScanNormal() : COutlinePython
  • ScanString() : COutlinePython
  • ScrollAtH() : CEditView
  • ScrollAtV() : CEditView
  • ScrollByH() : CEditView
  • ScrollByV() : CEditView
  • Search() : CLayoutMgr, CHokanMgr, CDicMgr
  • SearchBestTag() : CDlgTagJumpList
  • SearchBookMark() : CDocLineMgr
  • SearchBracket() : CEditView
  • SearchBracketBackward() : CEditView
  • SearchBracketBackward2() : CEditView
  • SearchBracketForward() : CEditView
  • SearchBracketForward2() : CEditView
  • SearchDiffMark() : CDocLineMgr
  • SearchIntArr() : CPropCommon
  • SearchKeyWord2() : CKeyWordSetMgr
  • SearchNextWordPosition() : CDocLineMgr
  • SearchString() : CDocLineMgr
  • SearchWord() : CLayoutMgr, CDocLineMgr
  • SelectBaseDir_Macro() : CPropCommon
  • SelectColor() : CPropTypes, CPropCommon
  • SelectFolder() : CDlgTagsMake
  • SelectFont() : CEditDoc
  • SendMessageToAllEditors() : CShareData
  • SendStatusMessage() : CEditWnd, CEditView
  • SendStatusMessage2() : CEditWnd, CEditView
  • SendStatusMessage2IsEffective() : CEditWnd
  • Separate() : CTabWnd
  • SeparateGroup() : CTabWnd, CShareData
  • SetActivePane() : CSplitterWnd, CEditDoc
  • SetAlertIfFileNotExist() : Common
  • SetAutoBackupInterval() : Common
  • SetAutoMIMEdecode() : Common
  • SetBackupCount() : Common
  • SetBackupExtChar() : Common
  • SetBackupOpt() : Common
  • SetBackupType() : Common
  • SetBackupTypeAdv() : Common
  • SetBookMark() : CDocLine
  • SetBookMarks() : CDocLineMgr
  • SetBracketPairPos() : CEditView
  • SetCaretType() : Common
  • SetCategory2Combo() : CFuncLookup
  • SetChildWndArr() : CSplitterWnd
  • SetCurrentColor() : CEditView
  • SetCurrentIdx() : CSMacroMgr
  • SetData() : CMemory, CDlgWinSize, CDlgTypeList, CDlgTagsMake, CDlgTagJumpList, CDlgReplace, CDlgProperty, CDlgPrintSetting, CDlgPrintPage, CDlgKeywordSelect, CDlgJump, CDlgGrep, CDlgFuncList, CDlgFind, CDlgFavorite, CDlgExec, CDlgDiff, CDlgCtrlCode, CDlgCompare, CDialog
  • SetData_KeyHelp() : CPropTypes
  • SetData_p1() : CPropTypes, CPropCommon
  • SetData_p10() : CPropCommon
  • SetData_p2() : CPropTypes, CPropCommon
  • SetData_p3() : CPropTypes
  • SetData_p3_new() : CPropTypes
  • SetData_p5() : CPropCommon
  • SetData_p7() : CPropCommon
  • SetData_p7_KeyWordSet() : CPropCommon
  • SetData_p8() : CPropCommon
  • SetData_p9() : CPropCommon
  • SetData_PROP_BACKUP() : CPropCommon
  • SetData_PROP_EDIT() : CPropCommon
  • SetData_PROP_FILENAME() : CPropCommon
  • SetData_PROP_GREP() : CPropCommon
  • SetData_PROP_Macro() : CPropCommon
  • SetData_PROP_TAB() : CPropCommon
  • SetData_PROP_TOOLBAR() : CPropCommon
  • SetData_PROP_WIN() : CPropCommon
  • SetData_Regex() : CPropTypes
  • SetDataOne() : CDlgFavorite
  • SetDataSz() : CMemory
  • SetDebugModeOFF() : CEditWnd
  • SetDebugModeON() : CEditWnd
  • SetDeclare() : CPPA
  • SetDefine() : CPPA
  • SetDefProc() : CPPA
  • SetDiffMark() : CDocLine
  • SetDiffMarkRange() : CDocLineMgr
  • SetDocumentIcon() : CEditDoc
  • SetDocumentType() : CEditDoc
  • setErr() : RcCvt
  • SetErrProc() : CPPA
  • SetFavorite() : CRecent
  • SetFileInfo() : CEditDoc
  • SetFileName() : CDlgTagJumpList
  • SetFilePath() : CEditDoc
  • SetFinishProc() : CPPA
  • SetFocusSearchBox() : CEditWnd
  • SetFocusToPrintPreviewBar() : CPrintPreview
  • SetFont() : CEditView
  • SetFooter() : CPrintPreview
  • SetGrepResult() : CEditView
  • SetHeader() : CPrintPreview
  • SetIMECompFormFont() : CEditView
  • SetIMECompFormPos() : CEditView
  • SetImeMode() : CEditDoc
  • SetInsMode() : CEditView, CEditDoc
  • SetInterval() : CPassiveTimer
  • SetIntFunc() : CPPA
  • SetIntObj() : CPPA
  • SetIntVar() : CPPA
  • SetKeyNameArrVal() : CShareData
  • SetKeyword() : CDlgTagJumpList
  • SetKeyWordArr() : CKeyWordSetMgr
  • SetKeyWordCase() : CKeyWordSetMgr
  • SetLayoutInfo() : CLayoutMgr
  • SetListItem() : CFuncLookup
  • SetListVB() : CDlgFuncList
  • SetListViewItem_FILENAME() : CPropCommon
  • SetMacro2List_Macro() : CPropCommon
  • SetMax() : CMarkMgr
  • SetModified() : CEditDoc
  • SetModifyFlg() : CDocLine
  • SetNewLineCode() : CEditDoc
  • SetNext() : CMacro
  • SetNoModified() : COpeBuf
  • SetParentCaption() : CEditView, CEditDoc
  • SetPosition() : CMarkMgr::CMark
  • SetPreviewFontHan() : CPrintPreview
  • SetPreviewFontZen() : CPrintPreview
  • SetPrintSetting() : CPrintPreview
  • SetProc() : CPPA
  • SetProfileData() : CProfile
  • SetQueryIfCodeChange() : Common
  • SetReadingMode() : CProfile
  • SetReadOnly() : CEditDoc
  • SetRealFunc() : CPPA
  • SetRealObj() : CPPA
  • SetRealVar() : CPPA
  • SetReconvertStruct() : CEditView
  • SetRegexpVersion() : CPropCommon
  • SetRestoreBookmarks() : Common
  • SetRestoreCurPosition() : Common
  • SetSelectArea() : CEditView
  • SetSelectionFromReonvert() : CEditView
  • SetSource() : CPPA
  • SetStrFunc() : CPPA
  • SetStrObj() : CPPA
  • SetStrVar() : CPPA
  • SetTBBUTTONVal() : CMenuDrawer
  • SetText() : CDataObject
  • SettingInitialize() : CPrint
  • SetToolBarImages() : CImageListMgr
  • SetTraceOutSource() : CShareData
  • SetTree() : CDlgFuncList
  • SetTreeCpp() : CDlgFuncList
  • SetTreeJava() : CDlgFuncList
  • SetType() : CEOL
  • SetTypeData() : CPropTypes
  • SetTypeName() : CKeyWordSetMgr
  • SetView() : CCaretUnderLine
  • SetWindowIcon() : CEditWnd
  • SetWindowTheme() : CUxTheme
  • SetWritingMode() : CProfile
  • ShareData_IO_2() : CShareData
  • ShareData_IO_Cmd() : CShareData
  • ShareData_IO_Common() : CShareData
  • ShareData_IO_CustMenu() : CShareData
  • ShareData_IO_Folders() : CShareData
  • ShareData_IO_Font() : CShareData
  • ShareData_IO_Grep() : CShareData
  • ShareData_IO_KeyBind() : CShareData
  • ShareData_IO_Keys() : CShareData
  • ShareData_IO_KeyWords() : CShareData
  • ShareData_IO_Macro() : CShareData
  • ShareData_IO_Mru() : CShareData
  • ShareData_IO_Nickname() : CShareData
  • ShareData_IO_Other() : CShareData
  • ShareData_IO_Print() : CShareData
  • ShareData_IO_Toolbar() : CShareData
  • ShareData_IO_Types() : CShareData
  • ShiftLogicalLineNum() : CLayoutMgr
  • Show() : CTipWnd
  • ShowCaret_() : CEditView
  • ShowEditCaret() : CEditView
  • ShowHideWindow() : CTabWnd
  • ShowHokanMgr() : CEditView
  • ShowKeywordHelp() : CEditView
  • ShowTip() : CHokanMgr
  • SizeBox_ONOFF() : CFuncKeyWnd
  • SJISToEUC() : CMemory
  • SJIStoJIS() : CMemory
  • SJISToUnicode() : CMemory
  • SJISToUnicodeBE() : CMemory
  • SJISToUTF7() : CMemory
  • SJISToUTF8() : CMemory
  • SmartIndent_CPP() : CEditView
  • SortKeyWord() : CKeyWordSetMgr
  • SortListView() : CDlgFuncList
  • SortTree() : CDlgFuncList
  • SPACEToTAB() : CMemory
  • SplitBoxOnOff() : CEditView
  • StartControlProcess() : CProcessFactory
  • StartTimer() : CDlgTagJumpList
  • stdError() : CPPA
  • stdFinishProc() : CPPA
  • stdIntFunc() : CPPA
  • STDMETHOD() : CDataObject, CDropSource, CYbInterfaceImpl< BASEINTERFACE >
  • stdProc() : CPPA
  • stdStrFunc() : CPPA
  • stdStrObj() : CPPA
  • StopTimer() : CDlgTagJumpList
  • StrSJIStoJIS() : CMemory
  • SubclassWindow() : CUrlWnd
  • SwapHLByte() : CMemory
  • SyncScrollH() : CEditView
  • SyncScrollV() : CEditView
  • SysString() : SysString
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- t -

  • TabListMenu() : CTabWnd
  • TABToSPACE() : CMemory
  • TabWindowNotify() : CTabWnd
  • TabWnd_ActivateFrameWindow() : CTabWnd
  • TabWndDispatchEvent() : CTabWnd
  • TagJumpSub() : CEditView
  • Terminate() : CRecent, CProcess, CNormalProcess, CControlProcess
  • TerminateApplication() : CEditApp
  • TestWriteQuit() : CProcessFactory
  • Timer_ONOFF() : CFuncKeyWnd, CEditWnd
  • ToHankaku() : CMemory
  • ToLower() : CMemory
  • ToolBarOwnerDraw() : CEditWnd
  • ToUpper() : CMemory
  • ToZenkaku() : CMemory
  • TraceOut() : CShareData
  • TransformFileName_MakeCache() : CShareData
  • TranslateCommand_grep() : CEditView
  • TranslateCommand_isearch() : CEditView
  • TrayMessage() : CEditApp
  • TwoPointToRect() : CEditView
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- u -

  • UnicodeBEToSJIS() : CMemory
  • UnicodeToSJIS() : CMemory
  • UnicodeToUTF7() : CMemory
  • UnicodeToUTF8() : CMemory
  • UnInitialize() : COleLibrary
  • Unlock() : CMutex
  • UnLock() : CCaretUnderLine
  • UnlockDocumentType() : CEditDoc
  • Unregister() : CMacroFactory
  • UpdateBackupFile() : CPropCommon
  • UpdateData() : CDlgTagJumpList
  • UpdateKeyWord() : CKeyWordSetMgr
  • UpdateView() : CRecent
  • UrlWndProc() : CUrlWnd
  • UTF7ToSJIS() : CMemory
  • UTF8ToSJIS() : CMemory
  • UUDECODE() : CMemory
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- v -

  • Variant() : Variant
  • VHSplitOnOff() : CSplitterWnd
  • ViewDiffInfo() : CEditView
  • VSplitOnOff() : CSplitterWnd
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- w -

  • WaitForInitializedControlProcess() : CProcessFactory
  • WhatKindOfChar() : CDocLineMgr
  • WhereCurrentWord() : CLayoutMgr, CDocLineMgr
  • WhereCurrentWord_2() : CDocLineMgr
  • WindowTopMost() : CEditWnd
  • WinListMenu() : CEditWnd
  • Write() : CFileWrite
  • WriteFile() : CProfile, CDocLineMgr
  • WriteProfile() : CProfile
  • WriteTrace() : CRunningTimer
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z
  • ~

- x -

  • XYLogicalToLayout() : CLayoutMgr
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 関連する関数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数

  • CYbInterfaceBase : CYbInterfaceBase, COleLibrary
  • OFNHookProc : CDlgOpenFile
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 型定義

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • b
  • c
  • f
  • m
  • p
  • t

- b -

  • BREGEXP_BMatch : CBregexp
  • BREGEXP_BMatchEx : CBregexp
  • BREGEXP_BRegexpVersion : CBregexp
  • BREGEXP_BRegfree : CBregexp
  • BREGEXP_BSplit : CBregexp
  • BREGEXP_BSubst : CBregexp
  • BREGEXP_BSubstEx : CBregexp
  • BREGEXP_BTrans : CBregexp

- c -

  • CMarkChain : CMarkMgr
  • CMarkIterator : CMarkMgr
  • CMethodInfoList : CInterfaceObject
  • Creator : CWSHMacroManager, CPPAMacroMgr, CKeyMacroMgr, CMacroFactory

- f -

  • FavoriteInfoTag : CDlgFavorite

- m -

  • MacroEngineRep : CMacroFactory
  • MAP_STR_STR : CProfile

- p -

  • PAIR_STR_STR : CProfile
  • PPA_Abort : CPPA
  • PPA_AddIntObj : CPPA
  • PPA_AddIntVar : CPPA
  • PPA_AddRealObj : CPPA
  • PPA_AddRealVar : CPPA
  • PPA_AddStrObj : CPPA
  • PPA_AddStrVar : CPPA
  • PPA_DeleteVar : CPPA
  • PPA_Execute : CPPA
  • PPA_GetArgBStr : CPPA
  • PPA_GetArgInt : CPPA
  • PPA_GetArgReal : CPPA
  • PPA_GetArgStr : CPPA
  • PPA_GetBStrVar : CPPA
  • PPA_GetIntVar : CPPA
  • PPA_GetRealVar : CPPA
  • PPA_GetStrVar : CPPA
  • PPA_GetVersion : CPPA
  • PPA_IsRunning : CPPA
  • PPA_SetDeclare : CPPA
  • PPA_SetDefine : CPPA
  • PPA_SetDefProc : CPPA
  • PPA_SetErrProc : CPPA
  • PPA_SetFinishProc : CPPA
  • PPA_SetIntFunc : CPPA
  • PPA_SetIntObj : CPPA
  • PPA_SetIntVar : CPPA
  • PPA_SetProc : CPPA
  • PPA_SetRealFunc : CPPA
  • PPA_SetRealObj : CPPA
  • PPA_SetRealVar : CPPA
  • PPA_SetSource : CPPA
  • PPA_SetStrFunc : CPPA
  • PPA_SetStrObj : CPPA
  • PPA_SetStrVar : CPPA
  • Proc_HtmlHelp : CHtmlHelp
  • Proc_migemo_close : CMigemo
  • Proc_migemo_get_operator : CMigemo
  • Proc_migemo_is_enable : CMigemo
  • Proc_migemo_load : CMigemo
  • Proc_migemo_open : CMigemo
  • Proc_migemo_query : CMigemo
  • Proc_migemo_release : CMigemo
  • Proc_migemo_set_operator : CMigemo
  • Proc_migemo_setproc_char2int : CMigemo
  • Proc_migemo_setproc_int2char : CMigemo

- t -

  • TagJumpInfo : CSortedTagJumpList
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- _ -

  • _instance : CShareData, CMigemo, CCommandLine
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- j -

  • jname : ctrl_info_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- k -

  • keyword : CSortedTagJumpList::tagjump_info_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- l -

  • LPADVISESINK : CDataObject
  • LPARAM : ComPropSheetInfo
  • LPDWORD : CDataObject
  • LPFORMATETC : CDataObject
  • LPSTGMEDIUM : CDataObject
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- m -

  • m_bActivateByMouse : CEditView
  • m_bAddCRLFWhenCopy : Common
  • m_bAlertIfFileNotExist : Common
  • m_bAllMark : CDocLine
  • m_bAllPage : CDlgPrintPage
  • m_bAutoCloseDlgFind : Common
  • m_bAutoCloseDlgFuncList : Common
  • m_bAutoCloseDlgReplace : Common
  • m_bAutoColmnPaste : Common
  • m_bAutoIndent : Types
  • m_bAutoIndent_ZENSPACE : Types
  • m_bAutoMIMEdecode : Common
  • m_bBackUp : Common
  • m_bBackUpDialog : Common
  • m_bBackUpDustBox : Common
  • m_bBackUpFolder : Common
  • m_bBackUpPathAdvanced : Common
  • m_bBeginBoxSelect : CEditView
  • m_bBeginLineSelect : CEditView
  • m_bBeginSelect : CEditView
  • m_bBeginWordSelect : CEditView
  • m_bBom : CDlgOpenFile
  • m_bBomExist : CFileLoad, CEditDoc
  • m_bBookMark : CDocLine
  • m_bCANCEL : CDlgCancel
  • m_bCanceled : CDlgReplace
  • m_bCaretShowFlag : CEditView
  • m_bCaretTextForSearch : Common
  • m_bCheckFileTimeStamp : Common
  • m_bChgWndByWheel : Common
  • m_bCloseAllConfirm : Common
  • m_bCloseBtnHilighted : CTabWnd
  • m_bClosing : EditNode
  • m_bCommandRunning : CEditView
  • m_bCompareAndTileHorz : Common, CDlgCompare
  • m_bConsecutiveAll : Common, CDlgReplace
  • m_bCopyAndDisablSelection : Common
  • m_bCreate : CRecent
  • m_bCreatedTrayIcon : CEditApp
  • m_bCurSrchKeyMark : CEditView
  • m_bCurSrchLoHiCase : CEditView
  • m_bCurSrchRegularExp : CEditView
  • m_bCurSrchWordOnly : CEditView
  • m_bDebugMode : CEditDoc, CCommandLine
  • m_bDiffMark : CDocLine
  • m_bDisp : ColorInfoIni, ColorInfo
  • m_bDispComment : CLayoutMgr
  • m_bDispExitingDialog : Common
  • m_bDispFUNCKEYWND : Common
  • m_bDispSString : CLayoutMgr
  • m_bDispSTATUSBAR : Common
  • m_bDispTabIcon : Common
  • m_bDispTabWnd : Common
  • m_bDispTabWndMultiWin : Common
  • m_bDispTOOLBAR : Common
  • m_bDispWString : CLayoutMgr
  • m_bDoing_UndoRedo : CEditView, CEditDoc
  • m_bDragging : CSplitterWnd
  • m_bDragMode : CEditWnd, CEditView
  • m_bDragSource : CEditView
  • m_bDrawBracketPairFlag : CEditView
  • m_bDrawSelectArea : CEditView
  • m_bDrawSWITCH : CEditView
  • m_bDropFileAndClose : Common
  • m_bEditWndChanging : DLLSHAREDATA
  • m_bEnableUnmodifiedOverwrite : Common
  • m_bError : CPPA
  • m_bExecutingKeyMacro : CEditView
  • m_bExitConfirm : Common
  • m_bFatFont : ColorInfoIni, ColorInfo
  • m_bFontIs_FIXED_PITCH : Common
  • m_bFooterUse : PRINTSETTING
  • m_bFromThisText : CDlgGrep
  • m_bFunclistSetFocusOnJump : Common
  • m_bGrepDefaultFolder : Common
  • m_bGrepDlg : CCommandLine
  • m_bGrepExitConfirm : Common
  • m_bGrepMode : CEditDoc, CCommandLine
  • m_bGrepOutputLine : Common, CDlgGrep
  • m_bGrepRealTimeView : Common
  • m_bGrepRunning : CEditDoc
  • m_bGrepSubFolder : Common
  • m_bGTJW_LDBLCLK : Common
  • m_bGTJW_RETURN : Common
  • m_bHaveFavorite : CDlgFavorite::FavoriteInfoTag
  • m_bHaveView : CDlgFavorite::FavoriteInfoTag
  • m_bHeaderUse : PRINTSETTING
  • m_bHilighted : CUrlWnd
  • m_bHokan : CEditView
  • m_bHokanKey_RETURN : Common
  • m_bHokanKey_RIGHT : Common
  • m_bHokanKey_SPACE : Common
  • m_bHokanKey_TAB : Common
  • m_bHokanLoHiCase : Types
  • m_bHovering : CTabWnd
  • m_bHtmlHelpIsSingle : Common, Types
  • m_bInit : IniFolder
  • m_bInited : CDialog
  • m_bInitialized : CUxTheme
  • m_bInMenuLoop : CEditView
  • m_bInsMode : CEditDoc
  • m_bInsSpace : Types
  • m_bIsActiveApp : CEditWnd
  • m_bIsDebug : FileInfo
  • m_bIsDiffUse : CDocLineMgr
  • m_bISearchFirst : CEditView
  • m_bISearchFlagHistory : CEditView
  • m_bISearchWrap : CEditView
  • m_bIsFreeCursorMode : Common
  • m_bIsGrep : EditNode, FileInfo
  • m_bIsINSMode : Common
  • m_bIsModified : FileInfo, CEditDoc, CDlgDiff, CDlgCompare
  • m_bIsModifiedDst : CDlgDiff
  • m_bitpattern : CCppPreprocessMng
  • m_bJumpSingleClickURL : Common
  • m_bKinsokuHead : Types, CLayoutMgr
  • m_bKinsokuKuto : Types, CLayoutMgr
  • m_bKinsokuRet : Types, CLayoutMgr
  • m_bKinsokuTail : Types, CLayoutMgr
  • m_bLeft : CDropSource
  • m_bLineNumIsCRLF : DLLSHAREDATA, Types, CDlgFuncList
  • m_bListBtnHilighted : CTabWnd
  • m_bLoHiCase : Common, CDlgReplace, CDlgGrep, CDlgFind
  • m_bMark : CDocLine
  • m_bMarkArray : CDocLine
  • m_bMarkUpBlankLineEnable : Common
  • m_bMenuIcon : Common
  • m_bModal : CDialog
  • m_bModified : CDlgFileUpdateQuery
  • m_bModify : CDocLine
  • m_bMRUArrFavorite : DLLSHAREDATA
  • m_bNoCaretMoveByActivation : Common
  • m_bNoFilterSaveFile : Common
  • m_bNoFilterSaveNew : Common
  • m_bNOTIFYNOTFOUND : Common, CDlgReplace, CDlgFind
  • m_bNotOverWriteCRLF : Common
  • m_bNoWindow : CCommandLine
  • m_bOPENFOLDERArrFavorite : DLLSHAREDATA
  • m_bOverflow : CSortedTagJumpList
  • m_bPLSQL : CDlgJump
  • m_bPrevCommand : CEditView
  • m_bPreview_EnableColms : CPrintPreview
  • m_bPreview_EnableLines : CPrintPreview
  • m_bPrinterNotFound : MYDEVMODE
  • m_bPrintKinsokuHead : PRINTSETTING
  • m_bPrintKinsokuKuto : PRINTSETTING
  • m_bPrintKinsokuRet : PRINTSETTING
  • m_bPrintKinsokuTail : PRINTSETTING
  • m_bPrintLineNumber : PRINTSETTING
  • m_bPrintWordWrap : PRINTSETTING
  • m_bQueryIfCodeChange : Common
  • m_bRead : CProfile
  • m_bReadOnly : CEditDoc, CCommandLine
  • m_bReadPrivate : IniFolder
  • m_bRecordingKeyMacro : DLLSHAREDATA
  • m_bRedrawRuler : CEditView
  • m_bRegularExp : Common, CDlgReplace, CDlgGrep, CDlgFind
  • m_bReloadWhenExecute : MacroRec
  • m_bRememberOutlineWindowPos : Common
  • m_bRestoreBookmarks : Common
  • m_bRestoreCurPosition : Common
  • m_bRTrimPrevLine : Types
  • m_bSameTabWidth : Common
  • m_bScrollBarHorz : Common
  • m_bSearch : CEditView
  • m_bSearchAll : Common
  • m_bSelectClickedURL : Common
  • m_bSelected : CDlgReplace
  • m_bSelectedArea : Common, CDlgReplace
  • m_bSelectingLock : CEditView
  • m_bSizeBox : CFuncKeyWnd
  • m_bSortTabList : Common
  • m_bSplitterWndHScroll : Common
  • m_bSplitterWndVScroll : Common
  • m_bStayTaskTray : Common
  • m_bStopsBothEndsWhenSearchParagraph : Common
  • m_bStopsBothEndsWhenSearchWord : Common
  • m_bSubFolder : CDlgGrep
  • m_bSuccess : COsVersionInfo
  • m_bTab_CloseOneWin : Common
  • m_bTab_ListFull : Common
  • m_bTab_RetainEmptyWin : Common
  • m_bTabArrow : Types
  • m_bTagJumpAnyWhere : DLLSHAREDATA, CDlgTagJumpList
  • m_bTagJumpICase : DLLSHAREDATA, CDlgTagJumpList
  • m_bTimerFlag : CHokanMgr
  • m_bToolBarIsFlat : Common
  • m_bUIPI : CEditWnd
  • m_bUnderLine : ColorInfoIni, ColorInfo
  • m_bUnderLineON : CEditView
  • m_bUseBom : CDlgOpenFile
  • m_bUseCaretKeyWord : Common
  • m_bUseDocumentIcon : Types
  • m_bUseEol : CDlgOpenFile
  • m_bUseHokan : Common
  • m_bUseHokanByFile : Types
  • m_bUseKeyHelpAllSearch : Types
  • m_bUseKeyHelpKeyDisp : Types
  • m_bUseKeyHelpPrefix : Types
  • m_bUseKeyWordHelp : Types
  • m_bUseOLE_DragDrop : Common
  • m_bUseOLE_DropSource : Common
  • m_bUseRegexKeyword : Types, CRegexKeyword
  • m_bUseTaskTray : Common
  • m_bUseTrayMenu : CEditApp
  • m_bVertical : CSplitBoxWnd
  • m_bVisualStyle : CTabWnd
  • m_bWaitTreeProcess : CDlgFuncList
  • m_bWordOnly : Common, CDlgReplace, CDlgGrep, CDlgFind
  • m_bWordWrap : Types, CLayoutMgr
  • m_bWritePrivate : IniFolder
  • m_bWriteQuit : CCommandLine
  • m_cAutoSave : CEditDoc
  • m_cBlockComment : Types, CLayoutMgr
  • m_cBuffer : CPPAMacroMgr
  • m_cDicMgr : CEditView
  • m_cDlgFind : CEditDoc
  • m_cDlgFuncList : CEditDoc
  • m_cDlgGrep : CEditDoc, CEditApp
  • m_cDlgJump : CEditDoc
  • m_cDlgOpenFile : CEditDoc
  • m_cDlgReplace : CEditDoc
  • m_cDocLineMgr : CEditDoc
  • m_cEditDoc : CEditWnd
  • m_cEditViewArr : CEditDoc
  • m_cEol : CLayout, CDocLine, CDlgOpenFile
  • m_cfFormat : CDataObject
  • m_CFuncKeyWnd : CEditWnd
  • m_cFuncLookup : CEditDoc
  • m_ChangeAttribute : CFileWrite
  • m_CharCode : CFileLoad
  • m_ChildWndArr : CSplitterWnd
  • m_cHistory : CEditView
  • m_cHokanMgr : CEditDoc
  • m_cIcons : CEditWnd
  • m_cInfo : CTipWnd
  • m_cKey : CTipWnd
  • m_CKeyWordSetMgr : DLLSHAREDATA, CPropCommon
  • m_cLayoutMgr : CEditDoc
  • m_Client : CWSHSite
  • m_cLineComment : Types, CLayoutMgr
  • m_cLineTermChar : Types
  • m_cList : CDlgTagJumpList
  • m_cLookup : CPropCommon
  • m_cMarkChain : CMarkMgr
  • m_cmemClipText : CDlgFuncList
  • m_cmemCurWord : CHokanMgr
  • m_cMemDebug : CPPA
  • m_cmemDebugInfo : CDlgDebug
  • m_cmemFuncName : CFuncInfo
  • m_cmemLine : CFileLoad
  • m_cmemMenuItemStrArr : CMenuDrawer
  • m_cMemRet : CPPA
  • m_cmemText : CDlgInput1
  • m_CMenuDrawer : CEditWnd, CEditApp
  • m_cMigemo : CNormalProcess
  • m_cNewLineCode : CEditDoc
  • m_colBACK : ColorInfoIni, ColorInfo
  • m_ColorInfoArr : Types
  • m_colTEXT : ColorInfoIni, ColorInfo
  • m_CommandLine : CProcess
  • m_Common : DLLSHAREDATA, CPropCommon
  • m_cOpeBuf : CEditDoc
  • m_cOsVer : CDlgOpenFile
  • m_cOsVersionInfo : COsVersionInfo
  • m_cPPA : CPPAMacroMgr
  • m_cPrint : CPrintPreview
  • m_cPropCommon : CEditDoc
  • m_cPropTypes : CEditDoc
  • m_cr : CDlgSameColor
  • m_crBack : CEditView
  • m_crCaret : CEditView
  • m_cRecent : CMRUFolder, CMRU
  • m_cRecentCmd : CDlgFavorite
  • m_cRecentFile : CDlgFavorite
  • m_cRecentFolder : CDlgFavorite
  • m_cRecentGrepFile : CDlgFavorite
  • m_cRecentGrepFolder : CDlgFavorite
  • m_cRecentReplace : CDlgFavorite
  • m_cRecentSearch : CDlgFavorite
  • m_cRegexKeyword : CEditView
  • m_cReserved : ColorInfo
  • m_cSavedKeyMacro : CSMacroMgr
  • m_cSaveLineCode : CEditDoc
  • m_cShareData : CProcess
  • m_cSplitterWnd : CEditDoc
  • m_cTabWnd : CEditWnd
  • m_cTipWnd : CEditView
  • m_cTrans : CImageListMgr
  • m_cUnderLine : CEditView
  • m_CurRegexp : CEditView
  • m_CurrentIdx : CSMacroMgr
  • m_cUxTheme : CUxTheme
  • m_cx : CImageListMgr
  • m_cy : CImageListMgr
  • m_Data : CWSHClient
  • m_dwCount : COleLibrary
  • m_dwCustColors : CPropTypes
  • m_dwFileAttribute : CFileWrite
  • m_dwProductVersionLS : DLLSHAREDATA
  • m_dwProductVersionMS : DLLSHAREDATA
  • m_dwTipTimer : CEditView
  • m_eCaptureSrc : CTabWnd
  • m_eDragState : CTabWnd
  • m_eMode : CFileLoad
  • m_enablebuf : CCppPreprocessMng
  • m_Engine : CWSHClient
  • m_EngineName : CWSHMacroManager
  • m_enumEOLType : CEOL
  • m_ePatType : CBregexp
  • m_eWatchUpdate : CEditDoc
  • m_fi : CCommandLine
  • m_FileInfo_MYWM_GETFILEINFO : DLLSHAREDATA
  • m_FileTime : CEditDoc
  • m_fiMRUArr : DLLSHAREDATA
  • m_fnAbort : CPPA
  • m_fnAddIntObj : CPPA
  • m_fnAddIntVar : CPPA
  • m_fnAddRealObj : CPPA
  • m_fnAddRealVar : CPPA
  • m_fnAddStrObj : CPPA
  • m_fnAddStrVar : CPPA
  • m_fnDeleteVar : CPPA
  • m_fnExecute : CPPA
  • m_fnGetArgBStr : CPPA
  • m_fnGetArgInt : CPPA
  • m_fnGetArgReal : CPPA
  • m_fnGetArgStr : CPPA
  • m_fnGetBStrVar : CPPA
  • m_fnGetIntVar : CPPA
  • m_fnGetRealVar : CPPA
  • m_fnGetStrVar : CPPA
  • m_fnGetVersion : CPPA
  • m_fnIsRunning : CPPA
  • m_fnSetDeclare : CPPA
  • m_fnSetDefine : CPPA
  • m_fnSetDefProc : CPPA
  • m_fnSetErrProc : CPPA
  • m_fnSetFinishProc : CPPA
  • m_fnSetIntFunc : CPPA
  • m_fnSetIntObj : CPPA
  • m_fnSetIntVar : CPPA
  • m_fnSetProc : CPPA
  • m_fnSetRealFunc : CPPA
  • m_fnSetRealObj : CPPA
  • m_fnSetRealVar : CPPA
  • m_fnSetSource : CPPA
  • m_fnSetStrFunc : CPPA
  • m_fnSetStrObj : CPPA
  • m_fnSetStrVar : CPPA
  • m_fontSearchBox : CEditWnd
  • m_gi : CCommandLine
  • m_hAccel : DLLSHAREDATA
  • m_hAtokModule : CEditView
  • m_hbmpCaret : CEditView
  • m_hbmpCompatBMP : CPrintPreview, CEditView
  • m_hbmpCompatBMPOld : CPrintPreview, CEditView
  • m_hcurOld : CSplitterWnd
  • m_hCursor : CWaitCursor
  • m_hCursorOld : CWaitCursor
  • m_hdcCompatDC : CPrintPreview, CEditView
  • m_hDevMode : CPrint
  • m_hDevNames : CPrint
  • m_heightOutlineWindow : Common
  • m_hEventCPInitialized : CControlProcess
  • m_hFile : CFileWrite, CFileLoad
  • m_hFileMap : CShareData
  • m_hFont : CTipWnd, CTabWnd, CFuncKeyWnd, CUrlWnd
  • m_hFont_HAN : CEditView
  • m_hFont_HAN_FAT : CEditView
  • m_hFont_HAN_FAT_UL : CEditView
  • m_hFont_HAN_UL : CEditView
  • m_hFontCaretPosInfo : CEditWnd
  • m_hFontMenu : CMenuDrawer
  • m_hFontMenuUndelLine : CMenuDrawer
  • m_hFontOld : CEditView
  • m_hIconApp : CTabWnd
  • m_hIconBitmap : CImageListMgr
  • m_hIconGrep : CTabWnd
  • m_hIcons : CEditApp
  • m_hIml : CTabWnd
  • m_hInstance : CWnd, CPropTypes, CPropCommon, CProcess, CMenuDrawer, CFuncLookup, CEditWnd, CEditView, CEditDoc, CEditApp, CDllHandler, CDlgOpenFile, CDlgInput1, CDlgDebug, CDialog
  • m_hLockedFile : CEditDoc
  • m_hMutex : CControlProcess
  • m_hMutexCP : CControlProcess
  • m_hObj : CMutex
  • m_hWnd : CWnd, EditNode, CProcess, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgOpenFile, CDlgInput1, CDlgDebug, CUrlWnd, CDialog
  • m_hWnd_DropTarget : CDropTarget
  • m_hWnd_Dst : CDlgDiff
  • m_hwndButtonArr : CFuncKeyWnd
  • m_hwndDebug : DLLSHAREDATA
  • m_hwndHScrollBar : CPrintPreview, CEditView
  • m_hWndOwner : CMenuDrawer
  • m_hwndParent : CWnd, CPropTypes, CPropCommon, CEditWnd, CEditView, CEditDoc, CDlgOpenFile, CDlgInput1, CDlgDebug, CDialog
  • m_hwndPrintPreviewBar : CPrintPreview
  • m_hwndProgressBar : CEditWnd
  • m_hwndReBar : CEditWnd
  • m_hwndRecordingKeyMacro : DLLSHAREDATA
  • m_hwndSearchBox : CEditWnd
  • m_hwndSizeBox : CPrintPreview, CFuncKeyWnd, CEditView, CDialog
  • m_hwndStatusBar : CEditWnd
  • m_hwndTab : CTabWnd
  • m_hwndThis : CPropTypes, CPropCommon
  • m_hwndToolBar : CEditWnd
  • m_hwndToolTip : CTabWnd
  • m_hwndTraceOutSource : CShareData
  • m_hwndTray : DLLSHAREDATA
  • m_hwndVScrollBar : CPrintPreview, CEditView
  • m_IconClicked : CEditWnd
  • m_iIconApp : CTabWnd
  • m_iIconGrep : CTabWnd
  • m_IniFolder : DLLSHAREDATA
  • m_InterfaceObject : CWSHClient
  • m_ismultiline : CCppPreprocessMng
  • m_IsSorted : CKeyWordSetMgr
  • m_KeyHelpArr : Types
  • m_KeyWasHit : CTipWnd
  • m_lf : Common
  • m_lf_kh : Common
  • m_lfPreviewHan : CPrintPreview
  • m_lfPreviewZen : CPrintPreview
  • m_line : CMarkMgr::CMark
  • m_long_string : COutlinePython
  • m_lParam : CDialog
  • m_MacroFuncInfoArr : CSMacroMgr
  • m_MacroFuncInfoNotCommandArr : CSMacroMgr
  • m_MacroTable : DLLSHAREDATA, CPropCommon
  • m_MAX_TAGJUMPLIST : CSortedTagJumpList
  • m_maxnestlevel : CCppPreprocessMng
  • m_mdmDevMode : PRINTSETTING
  • m_Methods : CInterfaceObject
  • m_migemo : CMigemo
  • m_migemo_close : CMigemo
  • m_migemo_get_operator : CMigemo
  • m_migemo_is_enable : CMigemo
  • m_migemo_load : CMigemo
  • m_migemo_open : CMigemo
  • m_migemo_query : CMigemo
  • m_migemo_release : CMigemo
  • m_migemo_set_operator : CMigemo
  • m_migemo_setproc_char2int : CMigemo
  • m_migemo_setproc_int2char : CMigemo
  • m_mMacroCreators : CMacroFactory
  • m_nActivePane : CSplitterWnd
  • m_nActivePaneIndex : CEditDoc
  • m_nAllHeight : PAPER_INFO
  • m_nAllPageNum : CPrintPreview
  • m_nAllSplitCols : CSplitterWnd
  • m_nAllSplitRows : CSplitterWnd
  • m_nAllWidth : PAPER_INFO
  • m_nArrayCount : CRecent
  • m_nBackUpType : Common
  • m_nBackUpType_Opt1 : Common
  • m_nBackUpType_Opt2 : Common
  • m_nBackUpType_Opt3 : Common
  • m_nBackUpType_Opt4 : Common
  • m_nBackUpType_Opt5 : Common
  • m_nBackUpType_Opt6 : Common
  • m_nBlockFromLen : CBlockComment
  • m_nBlockToLen : CBlockComment
  • m_nbmpCompatScale : CPrintPreview
  • m_nBracketCaretPosX_PHY : CEditView
  • m_nBracketCaretPosY_PHY : CEditView
  • m_nBracketPairPosX_PHY : CEditView
  • m_nBracketPairPosY_PHY : CEditView
  • m_nButtonGroupNum : CFuncKeyWnd
  • m_nCaretHeight : CEditView
  • m_nCaretPosInfoCharHeight : CEditWnd
  • m_nCaretPosInfoCharWidth : CEditWnd
  • m_nCaretPosX : CEditView
  • m_nCaretPosX_PHY : CEditView
  • m_nCaretPosX_PHY_After : COpe
  • m_nCaretPosX_PHY_Before : COpe
  • m_nCaretPosX_PHY_To : COpe
  • m_nCaretPosX_Prev : CEditView
  • m_nCaretPosY : CEditView
  • m_nCaretPosY_PHY : CEditView
  • m_nCaretPosY_PHY_After : COpe
  • m_nCaretPosY_PHY_Before : COpe
  • m_nCaretPosY_PHY_To : COpe
  • m_nCaretType : Common
  • m_nCaretWidth : CEditView
  • m_nCharCode : FileInfo, CEditDoc, CDlgOpenFile
  • m_nCharHeight : CEditView
  • m_nCharSize : CEditView
  • m_nCharWidth : CEditView
  • m_nCmdArrNum : DLLSHAREDATA
  • m_nCmpSize : CRecent
  • m_nCmpType : CRecent
  • m_nCode : CDlgCtrlCode
  • m_nColmSpace : Types
  • m_nColmWidth : CHokanMgr
  • m_nColorIdx : ColorInfo
  • m_nColorIndex : RegexKeywordInfo
  • m_nColorInfoArrNum : Types
  • m_nColumn : CMemoryIterator< T >
  • m_nColumn_Delta : CMemoryIterator< T >
  • m_nCommandExecNum : CEditDoc
  • m_nCompiledMagicNumber : CRegexKeyword
  • m_nCOpeArrNum : COpeBlk
  • m_nCOpeBlkArrNum : COpeBuf
  • m_nCount : CSortedTagJumpList, CFileExt
  • m_nCurKouhoIdx : CHokanMgr
  • m_nCurLine : CDlgFuncList
  • m_nCurPageNum : CPrintPreview
  • m_nCurpos : CMarkMgr
  • m_nCurrentColorType : CPropTypes
  • m_nCurrentFocus : CEditWnd
  • m_nCurrentKeyState : CFuncKeyWnd
  • m_nCurrentKeyWordSetIdx : CKeyWordSetMgr
  • m_nCurrentPointer : COpeBuf
  • m_nCurrentPrintSetting : Types, CDlgPrintSetting
  • m_nCurrentTab : CDlgFavorite
  • m_nCustMenuItemFuncArr : Common
  • m_nCustMenuItemKeyArr : Common
  • m_nCustMenuItemNumArr : Common
  • m_nDataBufSize : CMemory
  • m_nDataLen : COpe, CMemory
  • m_nDateFormatType : Common
  • m_nDeapth : CRunningTimer
  • m_nDefaultOutline : Types
  • m_nDepth : CFuncInfo
  • m_nDiffFlgOpt : DLLSHAREDATA, CDlgDiff
  • m_nDragPosOrgX : CEditWnd
  • m_nDragPosOrgY : CEditWnd
  • m_nDragPosX : CSplitterWnd, CSplitBoxWnd
  • m_nDragPosY : CSplitterWnd, CSplitBoxWnd
  • m_nDropFileNumMax : Common
  • m_nEditArrNum : DLLSHAREDATA
  • m_nEOFColumn : CLayoutMgr
  • m_nEOFLine : CLayoutMgr
  • m_nEscCaretPosX_PHY : CDlgReplace, CDlgFind
  • m_nEscCaretPosY_PHY : CDlgReplace, CDlgFind
  • m_nExecFlgOpt : DLLSHAREDATA
  • m_nFileDataLen : CFileLoad
  • m_nFileShareMode : Common
  • m_nFileShareModeOld : CEditDoc
  • m_nFileSize : CFileLoad
  • m_nFlag : CFileLoad
  • m_nFuncCodeArr : KEYDATA, CFuncKeyWnd
  • m_nFuncID : MacroFuncInfo, CMacro
  • m_nFuncInfoArrNum : CFuncInfoArr
  • m_nFUNCKEYWND_GroupNum : Common
  • m_nFUNCKEYWND_Place : Common
  • m_nFuncLineCRLF : CFuncInfo
  • m_nFuncLineLAYOUT : CFuncInfo
  • m_nGrepCharSet : Common, CDlgGrep
  • m_nGREPFILEArrNum : DLLSHAREDATA
  • m_nGREPFOLDERArrNum : DLLSHAREDATA
  • m_nGrepOutputStyle : Common, CDlgGrep
  • m_nGroup : EditNode, CCommandLine
  • m_nGroupSequences : DLLSHAREDATA
  • m_nHeight : CDialog
  • m_nHSplitPos : CSplitterWnd
  • m_nId : PAPER_INFO, CDlgFavorite::FavoriteInfoTag
  • m_nIdx : Types
  • m_nImeState : Types
  • m_nIndent : CMemoryIterator< T >, CLayout
  • m_nIndentLayout : Types
  • m_nIndex : EditNode, CMemoryIterator< T >, CDlgTagJumpList
  • m_nIndex_Delta : CMemoryIterator< T >
  • m_nIndexSave : CDlgDiff
  • m_nInfo : CFuncInfo
  • m_nISearchDirection : CEditView
  • m_nISearchHistoryCount : CEditView
  • m_nISearchMode : CEditView
  • m_nISearchX1History : CEditView
  • m_nISearchX2History : CEditView
  • m_nISearchY1History : CEditView
  • m_nISearchY2History : CEditView
  • m_nItemSize : CRecent
  • m_nKeyCode : KEYDATA
  • m_nKeyHelpNum : Types
  • m_nKeyNameArrNum : DLLSHAREDATA, CPropCommon
  • m_nKEYWORDCASEArr : CKeyWordSetMgr
  • m_nKeyWordMaxLenArr : CKeyWordSetMgr
  • m_nKeyWordNumArr : CKeyWordSetMgr
  • m_nKeyWordSetIdx : Types
  • m_nKeyWordSetNum : CKeyWordSetMgr
  • m_nKouhoNum : CHokanMgr
  • m_nLastPos_FILENAME : CPropCommon
  • m_nLastReconvIndex : CEditView
  • m_nLastReconvLine : CEditView
  • m_nLength : CLayout
  • m_nLineCommentLen : CLineComment
  • m_nLineCommentPos : CLineComment
  • m_nLineIndex : CFileLoad
  • m_nLineLen : CMemoryIterator< T >
  • m_nLineNum : CDlgJump
  • m_nLineNumRightSpace : Common
  • m_nLinePhysical : CLayout
  • m_nLines : CLayoutMgr, CDocLineMgr
  • m_nLineSpace : Types
  • m_nLineTermType : Types
  • m_nLineTypeBot : CLayoutMgr
  • m_nListType : CDlgFuncList
  • m_nLockCounter : CCaretUnderLine
  • m_nLoop : CDlgTagJumpList
  • m_nMaxitem : CMarkMgr
  • m_nMaxLineSize : Types, CLayoutMgr
  • m_nMaxLineSize_org : CPropTypes
  • m_nMaxTextLen : CDlgInput1
  • m_nMenuHeight : CMenuDrawer
  • m_nMenuItemBitmapIdxArr : CMenuDrawer
  • m_nMenuItemFuncArr : CMenuDrawer
  • m_nMenuItemNum : CMenuDrawer
  • m_nMouseRollPosXOld : CEditView
  • m_nMouseRollPosYOld : CEditView
  • m_nMRUArrNum : DLLSHAREDATA
  • m_nMRUArrNum_MAX : Common
  • m_nMyButtonNum : CMenuDrawer
  • m_nMyIndex : CEditView
  • m_nNestCount : CRunningTimer
  • m_nNoModifiedIndex : COpeBuf
  • m_nOffset : CRecent, CLayout
  • m_nOldCaretPosX : CEditView
  • m_nOldCaretWidth : CEditView
  • m_nOldUnderLineY : CEditView
  • m_nOpe : COpe
  • m_nOPENFOLDERArrNum : DLLSHAREDATA
  • m_nOPENFOLDERArrNum_MAX : Common
  • m_nPageFrom : CDlgPrintPage
  • m_nPageMax : CDlgPrintPage
  • m_nPageMin : CDlgPrintPage
  • m_nPageNum : CPropTypes, CPropCommon
  • m_nPageTo : CDlgPrintPage
  • m_nPaperInfoArrNum : CPrint
  • m_nPaste : CDlgReplace
  • m_nPLSQL_E1 : CDlgJump
  • m_nPLSQL_E2 : CDlgJump
  • m_nPreview_LineNumberColmns : CPrintPreview
  • m_nPreview_PaperAllHeight : CPrintPreview
  • m_nPreview_PaperAllWidth : CPrintPreview
  • m_nPreview_PaperHeight : CPrintPreview
  • m_nPreview_PaperOffsetLeft : CPrintPreview
  • m_nPreview_PaperOffsetTop : CPrintPreview
  • m_nPreview_PaperWidth : CPrintPreview
  • m_nPreview_ViewHeight : CPrintPreview
  • m_nPreview_ViewMarginLeft : CPrintPreview
  • m_nPreview_ViewMarginTop : CPrintPreview
  • m_nPreview_ViewWidth : CPrintPreview
  • m_nPreview_Zoom : CPrintPreview
  • m_nPreviewHScrollPos : CPrintPreview
  • m_nPreviewVScrollPos : CPrintPreview
  • m_nPrevReferLine : CLayoutMgr, CDocLineMgr
  • m_nPrintDanSpace : PRINTSETTING
  • m_nPrintDansuu : PRINTSETTING
  • m_nPrintFontHeight : PRINTSETTING
  • m_nPrintFontWidth : PRINTSETTING
  • m_nPrintLineSpacing : PRINTSETTING
  • m_nPrintMarginBY : PRINTSETTING
  • m_nPrintMarginLX : PRINTSETTING
  • m_nPrintMarginRX : PRINTSETTING
  • m_nPrintMarginTY : PRINTSETTING
  • m_nPrintPaperOrientation : PRINTSETTING
  • m_nPrintPaperSize : PRINTSETTING
  • m_nReadBufOffSet : CFileLoad
  • m_nReadBufSize : CFileLoad
  • m_nReadDataLen : CFileLoad
  • m_nReadLength : CFileLoad
  • m_nReady : CMacroManagerBase
  • m_nRegexKeyCount : CRegexKeyword
  • m_nRegexKeyMagicNumber : Types
  • m_nRepeatedScroll_Smooth : Common
  • m_nRepeatedScrollLineNum : Common
  • m_nReplaceCnt : CDlgReplace
  • m_nREPLACEKEYArrNum : DLLSHAREDATA
  • m_nReplaceTarget : CDlgReplace
  • m_nRulerBottomSpace : Common
  • m_nRulerHeight : Common
  • m_nRulerType : Common
  • m_nSaveWindowPos : Common
  • m_nSaveWindowSize : Common
  • m_nSaveWinPos : CDlgWinSize
  • m_nSaveWinSize : CDlgWinSize
  • m_nSearchDict : CTipWnd
  • m_nSEARCHKEYArrNum : DLLSHAREDATA
  • m_nSearchLine : CTipWnd
  • m_nSelectColmBgnFrom : CEditView
  • m_nSelectColmBgnTo : CEditView
  • m_nSelectColmFrom : CEditView
  • m_nSelectColmFromOld : CEditView
  • m_nSelectColmTo : CEditView
  • m_nSelectColmToOld : CEditView
  • m_nSelectLineBgnFrom : CEditView
  • m_nSelectLineBgnTo : CEditView
  • m_nSelectLineFrom : CEditView
  • m_nSelectLineFromOld : CEditView
  • m_nSelectLineTo : CEditView
  • m_nSelectLineToOld : CEditView
  • m_nSequences : DLLSHAREDATA
  • m_nSet : CPropTypes, CDlgKeywordSelect
  • m_nSettingType : CPropCommon, CEditDoc, CDlgTypeList, CDlgReplace
  • m_nSettingTypeLocked : CEditDoc
  • m_nShowCmd : CDialog
  • m_nSmartIndent : Types
  • m_nSortCol : CDlgFuncList
  • m_nSortType : CDlgFuncList
  • m_nSrchStartPosX_PHY : CEditView
  • m_nSrchStartPosY_PHY : CEditView
  • m_nSrcTab : CTabWnd
  • m_nStartIdx : CKeyWordSetMgr
  • m_nStartTime : CRunningTimer
  • m_nStringType : Types, CLayoutMgr
  • m_nTabSpace : Types, CMemoryIterator< T >, CLayoutMgr
  • m_nTagJumpKeywordArrNum : DLLSHAREDATA
  • m_nTagsOpt : DLLSHAREDATA, CDlgTagsMake
  • m_nTimeFormatType : Common
  • m_nTimerCount : CFuncKeyWnd, CEditWnd
  • m_nTimerId : CDlgTagJumpList
  • m_nToolBarButtonIdxArr : Common
  • m_nToolBarButtonNum : Common
  • m_nTopYohaku : CEditView
  • m_nTransformFileNameArrNum : DLLSHAREDATA, CPropCommon
  • m_nTransformFileNameCount : CShareData
  • m_nTransformFileNameOrgId : CShareData
  • m_nTypeIndex : CRegexKeyword
  • m_nTypePrev : CLayout
  • m_nUse : KeyHelpInfo
  • m_nVertLineIdx : Types
  • m_nVertLineOffset : Common
  • m_nViewAlignLeft : CEditView
  • m_nViewAlignLeftCols : CEditView
  • m_nViewAlignTop : CEditView
  • m_nViewColNum : CEditView
  • m_nViewCount : CDlgFavorite::FavoriteInfoTag
  • m_nViewCx : CEditView
  • m_nViewCy : CEditView
  • m_nViewLeftCol : FileInfo, CEditView
  • m_nViewRowNum : CEditView
  • m_nViewTopLine : FileInfo, CEditView
  • m_nViewType : CDlgFuncList
  • m_nVScrollRate : CEditView
  • m_nVSplitPos : CSplitterWnd
  • m_nWidth : CDialog
  • m_nWindowOriginX : FileInfo
  • m_nWindowOriginY : FileInfo
  • m_nWindowSizeX : FileInfo
  • m_nWindowSizeY : FileInfo
  • m_nWinHeight : CHokanMgr
  • m_nWinPosX : Common
  • m_nWinPosY : Common
  • m_nWinSizeCX : Common
  • m_nWinSizeCY : Common
  • m_nWinSizeType : Common, CEditWnd, CDlgWinSize
  • m_nX : FileInfo
  • m_nY : FileInfo
  • m_Object : CInterfaceObjectTypeInfo
  • m_ofn : CDlgOpenFile
  • m_olelib : CYbInterfaceBase
  • m_OnError : CWSHClient
  • m_Owner : CInterfaceObject
  • m_owniid : CYbInterfaceImpl< BASEINTERFACE >
  • m_paperInfoArr : CPrint
  • m_pBot : CKeyMacroMgr
  • m_pbUserItemFavorite : CRecent
  • m_pCDocLine : CLayout
  • m_pcDocLineMgr : CLayoutMgr
  • m_pcDropTarget : CEditView
  • m_pcEditApp : CControlProcess
  • m_pCEditDoc : CFuncKeyWnd
  • m_pcEditDoc : CLayoutMgr, CEditView
  • m_pcEditView : CPPA, CCaretUnderLine
  • m_pCEditView : CDropTarget
  • m_pCEditWnd : CSplitterWnd
  • m_pcEditWnd : CNormalProcess, CEditDoc
  • m_pcFuncInfoArr : CDlgFuncList
  • m_pcIcons : CPropCommon, CMenuDrawer
  • m_pCKeyWordSetMgr : CPropTypes, CDlgKeywordSelect
  • m_pcmemData : COpe
  • m_pcmemKouho : CHokanMgr
  • m_pcMenuDrawer : CPropCommon
  • m_pcmigemo : CEditView
  • m_pCodePrevRefer : CDocLineMgr
  • m_pCommon : CFuncLookup
  • m_pcOpeBlk : CEditView
  • m_pcsbwHSplitBox : CEditView
  • m_pcsbwVSplitBox : CEditView
  • m_pcSMacro : CPropCommon
  • m_pcSMacroMgr : CFuncLookup, CEditDoc
  • m_pData : CMemory, CMacro::CMacroParam
  • m_pDataObject : CDropTarget
  • m_pDocLineBot : CDocLineMgr
  • m_pDocLineCurrent : CDocLineMgr
  • m_pDocLineTop : CDocLineMgr
  • m_pEditArr : DLLSHAREDATA
  • m_pEI : CESI
  • m_pFilename : CDlgFileUpdateQuery
  • m_phwndCompareWnd : CDlgCompare
  • m_pKeyMacro : CSMacroMgr
  • m_pKeyNameArr : DLLSHAREDATA, CPropCommon
  • m_pLayoutBot : CLayoutMgr
  • m_pLayoutMgr_Print : CPrintPreview
  • m_pLayoutPrevRefer : CLayoutMgr
  • m_pLayoutTop : CLayoutMgr
  • m_pLine : CMemoryIterator< T >, CDocLine
  • m_pnCaretPosInfoDx : CEditWnd
  • m_pnDx : CPrintPreview, CEditView
  • m_pNext : CMacro, CMacro::CMacroParam, CLayout, CDocLine
  • m_pnUserItemCount : CRecent
  • m_pnUserViewCount : CRecent
  • m_pOldProc : CUrlWnd
  • m_pos : CMarkMgr::CMark
  • m_poTipCurPos : CEditView
  • m_poWin : CHokanMgr
  • m_pParamBot : CMacro
  • m_pParamTop : CMacro
  • m_pParentWnd : CPrintPreview
  • m_ppcFuncInfoArr : CFuncInfoArr
  • m_ppCOpeArr : COpeBlk
  • m_ppCOpeBlkArr : COpeBuf
  • m_pPrev : CLayout, CDocLine
  • m_pPrintPreview : CEditWnd
  • m_pPrintSetting : CPrintPreview
  • m_pReadBuf : CFileLoad
  • m_pRecent : CDlgFavorite::FavoriteInfoTag
  • m_pRegExp : CBregexp
  • m_PrintSettingArr : DLLSHAREDATA, CDlgPrintSetting
  • m_ProfileData : CProfile
  • m_pShareData : CTabWnd, CSplitterWnd, CSMacroMgr, CShareData, CRecent, CPropTypes, CPropCommon, CProcess, CPPA, CMRUFolder, CMRU, CMenuDrawer, CFuncKeyWnd, CEditWnd, CEditView, CEditDoc, CEditApp, CDlgOpenFile, CDialog
  • m_pszAppName : CEditWnd, CEditView, CEditDoc, CEditApp
  • m_pszCaption : CDlgFavorite::FavoriteInfoTag
  • m_pszClassName : CTipWnd, CTabWnd, CSplitterWnd, CSplitBoxWnd, CFuncKeyWnd
  • m_pszCmdLineSrc : CCommandLine
  • m_pszComparePath : CDlgCompare
  • m_pszCurKouho : CHokanMgr
  • m_pszData : MacroFuncInfo
  • m_pszFileName : CDlgTagJumpList
  • m_pszFuncName : MacroFuncInfo
  • m_pszKeyword : CDlgTagJumpList
  • m_pszKinsokuHead_1 : CLayoutMgr
  • m_pszKinsokuHead_2 : CLayoutMgr
  • m_pszKinsokuKuto_1 : CLayoutMgr
  • m_pszKinsokuKuto_2 : CLayoutMgr
  • m_pszKinsokuTail_1 : CLayoutMgr
  • m_pszKinsokuTail_2 : CLayoutMgr
  • m_pszLastCaption : CEditWnd
  • m_pszLineComment : CLineComment
  • m_pszMessage : CDlgInput1
  • m_pszMigemoWord : CEditView
  • m_pszName : ColorInfoIni, PAPER_INFO
  • m_pszPath : CFileWrite, CDlgCompare
  • m_pszTitle : CDlgInput1
  • m_pTagjump : CSortedTagJumpList
  • m_pTop : CKeyMacroMgr
  • m_ptSrcCursor : CTabWnd
  • m_pTypes : CRegexKeyword, CDlgSameColor
  • m_puFileExtInfo : CFileExt
  • m_puUserItemData : CRecent
  • m_quote_char : COutlinePython
  • m_raw_string : COutlinePython
  • m_rc : CDlgWinSize
  • m_rcOpenDialog : Common
  • m_RefCount : ImplementsIUnknown< Base >, CWSHSite
  • m_RegexKeywordArr : Types
  • m_SCROLLBAR_HORZ : CPrintPreview
  • m_SCROLLBAR_VERT : CPrintPreview
  • m_showCmdRestore : EditNode
  • m_sInfo : CRegexKeyword
  • m_SizeBoxCanMove : CPrintPreview
  • m_Source : CWSHMacroManager
  • m_stackptr : CCppPreprocessMng
  • m_state : COutlinePython
  • m_strProfileName : CProfile
  • m_szAbout : KeyHelpInfo
  • m_szBackUpFolder : Common
  • m_szBackUpPathAdvanced : Common
  • m_szBlockCommentFrom : CBlockComment
  • m_szBlockCommentTo : CBlockComment
  • m_szClassInheritances : CWnd
  • m_szCmdArr : DLLSHAREDATA
  • m_szCommand : CDlgExec
  • m_szCurrentFilePath : CDlgGrep
  • m_szCurSrchKey : CEditView
  • m_szCustMenuNameArr : Common
  • m_szDateFormat : Common
  • m_szDefaultWildCard : CDlgOpenFile
  • m_szDocType : FileInfo
  • m_szExt : CFileExt::FileExtInfoTag
  • m_szExtHelp : Common, Types
  • m_szExtHtmlHelp : Common, Types
  • m_szFile : MacroRec, CDlgGrep
  • m_szFile1 : CDlgDiff
  • m_szFile2 : CDlgDiff
  • m_szFilePath : EditNode, CFuncInfoArr, CEditDoc
  • m_szFilter : CFileExt
  • m_szFolder : CDlgGrep
  • m_szFooterForm : PRINTSETTING
  • m_szFuncNameArr : CFuncKeyWnd
  • m_szGREPFILEArr : DLLSHAREDATA
  • m_szGREPFOLDERArr : DLLSHAREDATA
  • m_szGrepKey : FileInfo, CEditDoc
  • m_szHeaderForm : PRINTSETTING
  • m_szHelpFile : CPropTypes, CPropCommon, CDlgInput1, CDialog
  • m_szHokanFile : Types
  • m_szIMPORTFOLDER : DLLSHAREDATA
  • m_szIndentChars : Types
  • m_szIniFile : IniFolder
  • m_szInitialDir : CDlgOpenFile
  • m_szInyouKigou : Common
  • m_szKeyMacroFileName : DLLSHAREDATA
  • m_szKeyName : KEYDATA
  • m_szKeyword : RegexKeywordInfo
  • m_szKeyWordArr : CKeyWordSetMgr
  • m_szKeyWordSetDir : DLLSHAREDATA
  • m_szKinsokuHead : Types
  • m_szKinsokuTail : Types
  • m_szMACROFOLDER : DLLSHAREDATA, CPropCommon
  • m_szMarkLines : FileInfo
  • m_szMidashiKigou : Common
  • m_szMigemoDict : Common
  • m_szMigemoDll : Common
  • m_szMsg : CRegexKeyword, CPPA, CDlgFavorite, CBregexp
  • m_szName : MacroRec, ColorInfo, CFileExt::FileExtInfoTag
  • m_szOPENFOLDERArr : DLLSHAREDATA
  • m_szOutlineRuleFilename : Types
  • m_szPath : KeyHelpInfo, FileInfo, CDlgTagsMake, CDlgOpenFile
  • m_szPrinterDeviceName : MYDEVMODE
  • m_szPrinterDriverName : MYDEVMODE
  • m_szPrinterOutputName : MYDEVMODE
  • m_szPrintFontFaceHan : PRINTSETTING
  • m_szPrintFontFaceZen : PRINTSETTING
  • m_szPrintSettingName : PRINTSETTING
  • m_szPrivateIniFile : IniFolder
  • m_szRegexpLib : Common
  • m_szREPLACEKEYArr : DLLSHAREDATA
  • m_szSEARCHKEYArr : DLLSHAREDATA
  • m_szSetNameArr : CKeyWordSetMgr
  • m_szTabCaption : EditNode
  • m_szTabViewString : Types
  • m_szTabWndCaption : Common
  • m_szTagJumpKeywordArr : DLLSHAREDATA
  • m_szTagsCmdLine : DLLSHAREDATA, CDlgTagsMake
  • m_szTarget : CBregexp
  • m_szText : CRunningTimer, CDlgReplace, CDlgGrep, CDlgFind
  • m_szText2 : CDlgReplace
  • m_szTextTip1 : CTabWnd
  • m_szTextTip2 : CTabWnd
  • m_szTimeFormat : Common
  • m_szTransformFileNameFrom : DLLSHAREDATA, CPropCommon
  • m_szTransformFileNameFromExp : CShareData
  • m_szTransformFileNameTo : DLLSHAREDATA, CPropCommon
  • m_szTypeExts : Types
  • m_szTypeName : Types
  • m_szWindowCaptionActive : Common
  • m_szWindowCaptionInactive : Common
  • m_szWork : DLLSHAREDATA
  • m_TagJump : DLLSHAREDATA
  • m_TagJumpNum : DLLSHAREDATA
  • m_TagJumpTop : DLLSHAREDATA
  • m_tbMyButton : CMenuDrawer
  • m_tmpBuf : CBregexp
  • m_TypeAttr : CInterfaceObjectTypeInfo
  • m_TypeInfo : CInterfaceObject, CWSHSite
  • m_Types : DLLSHAREDATA, CPropTypes
  • m_Types_nKeyWordSetIdx : CPropCommon
  • m_uATOKReconvertMsg : CEditWnd, CEditView
  • m_uCreateTaskBarMsg : CEditApp
  • m_uMSIMEReconvertMsg : CEditWnd, CEditView
  • m_UrlOrgWnd : CDlgAbout
  • m_UrlUrWnd : CDlgAbout
  • m_uWM_MSIME_RECONVERTREQUEST : CEditView
  • m_Valid : CWSHClient
  • m_varArguments : MacroFuncInfo
  • m_varResult : MacroFuncInfo
  • m_vStructureVersion : DLLSHAREDATA
  • m_WEI : CESI
  • m_wID : CDlgSameColor
  • m_widthOutlineWindow : Common
  • m_wpColorListProc : CDlgSameColor
  • m_wpColorStaticProc : CDlgSameColor
  • m_wTrayMenuHotKeyCode : Common
  • m_wTrayMenuHotKeyMods : Common
  • m_xOutlineWindowPos : Common
  • m_xPos : CDialog
  • m_yOutlineWindowPos : Common
  • m_yPos : CDialog
  • mapEntries : CProfile::Section
  • Method : CInterfaceObject::CMethodInfo
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- n -

  • nAddLineNum : LayoutReplaceArg
  • Name : CInterfaceObject::CMethodInfo
  • name : CDllHandler::ImportTable, ctrl_info_t
  • nCRorLF : WC_EncodingInfo_t
  • nCRorLF_ascii : UnicodeInfo_t
  • nDelColmFrom : LayoutReplaceArg
  • nDelColmTo : LayoutReplaceArg
  • nDeletedLineNum : DocLineReplaceArg
  • nDelLineFrom : LayoutReplaceArg, DocLineReplaceArg
  • nDelLineTo : LayoutReplaceArg, DocLineReplaceArg
  • nDelPosFrom : DocLineReplaceArg
  • nDelPosTo : DocLineReplaceArg
  • nDiff : EncodingInfo_t
  • next : CSortedTagJumpList::tagjump_info_t
  • nFlag : RegexInfo_t
  • nGrepCharSet : GrepInfo
  • nGrepOutputStyle : GrepInfo
  • nGroupMru : EditNodeEx
  • nHead : RegexInfo_t
  • nInsDataLen : LayoutReplaceArg, DocLineReplaceArg
  • nInsLineNum : DocLineReplaceArg
  • nInterval : CPassiveTimer
  • nItemNum : ARRHEAD
  • nLastPos_Macro : CPropCommon
  • nLastTick : CPassiveTimer
  • nLength : ARRHEAD, RegexInfo_t, oneRule
  • nLine : RcCvt
  • nLostBytes : WC_EncodingInfo_t
  • nMatch : RegexInfo_t
  • nMethod : TYPE_NAME
  • nModLineFrom : LayoutReplaceArg
  • nModLineTo : LayoutReplaceArg
  • nNewLine : LayoutReplaceArg, DocLineReplaceArg
  • nNewPos : LayoutReplaceArg, DocLineReplaceArg
  • no : CSortedTagJumpList::tagjump_info_t
  • nOffset : RegexInfo_t
  • note : CSortedTagJumpList::tagjump_info_t
  • nparens : bregexp
  • nSpecBytes : EncodingInfo_t
  • nStatus : RegexInfo_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- o -

  • o_ : LockGuard< EXCLUSIVE_OBJECT >
  • outendp : bregexp
  • outp : bregexp
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- a -

  • Arguments : CInterfaceObject::CMethodInfo
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- b -

  • bEnabled : CPassiveTimer
  • bGrepNoIgnoreCase : GrepInfo
  • bGrepOutputLine : GrepInfo
  • bGrepRegularExp : GrepInfo
  • bGrepSubFolder : GrepInfo
  • bGrepWordOnly : GrepInfo
  • BMatch : CBregexp
  • BMatchEx : CBregexp
  • BOOL : CUxTheme, CEditView, CDataObject
  • BRegexpVersion : CBregexp
  • BRegfree : CBregexp
  • BSplit : CBregexp
  • BSubst : CBregexp
  • BSubstEx : CBregexp
  • bText : VS_VERSION_INFO_HEAD
  • BTrans : CBregexp
  • buffer : RcCvt
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- c -

  • cmGrepFile : GrepInfo
  • cmGrepFolder : GrepInfo
  • cmGrepKey : GrepInfo
  • code : ctrl_info_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- d -

  • Data : Variant, SysString
  • data : CDataObject
  • depth : CSortedTagJumpList::tagjump_info_t
  • Desc : CInterfaceObject::CMethodInfo
  • dmBitsPerPel : MYDEVMODE
  • dmCollate : MYDEVMODE
  • dmColor : MYDEVMODE
  • dmCopies : MYDEVMODE
  • dmDefaultSource : MYDEVMODE
  • dmDisplayFlags : MYDEVMODE
  • dmDisplayFrequency : MYDEVMODE
  • dmDuplex : MYDEVMODE
  • dmFields : MYDEVMODE
  • dmFormName : MYDEVMODE
  • dmLogPixels : MYDEVMODE
  • dmOrientation : MYDEVMODE
  • dmPaperLength : MYDEVMODE
  • dmPaperSize : MYDEVMODE
  • dmPaperWidth : MYDEVMODE
  • dmPelsHeight : MYDEVMODE
  • dmPelsWidth : MYDEVMODE
  • dmPrintQuality : MYDEVMODE
  • dmScale : MYDEVMODE
  • dmTTOption : MYDEVMODE
  • dmYResolution : MYDEVMODE
  • dwCompStrLen : tagRECONVERTSTRING
  • dwCompStrOffset : tagRECONVERTSTRING
  • dwKeyState : CDropSource
  • DWORD : CEditView, CDataObject
  • dwReserved : OPENFILENAMEZ
  • dwSize : tagRECONVERTSTRING
  • dwStrLen : tagRECONVERTSTRING
  • dwStrOffset : tagRECONVERTSTRING
  • dwTargetStrLen : tagRECONVERTSTRING
  • dwTargetStrOffset : tagRECONVERTSTRING
  • dwVersion : tagRECONVERTSTRING
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- e -

  • eCodeID : WC_EncodingInfo_t, EncodingInfo_t
  • endp : bregexp
  • eStr : HANKAKKO_T, ZENKAKKO_T
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- f -

  • fAttribute : ColorAttributeData_t
  • filename : CSortedTagJumpList::tagjump_info_t
  • FlagsEx : OPENFILENAMEZ
  • fpi : RcCvt
  • fpo : RcCvt
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- g -

  • g_cEditArrMutex : CShareData
  • getIndentOffset : CLayoutMgr
  • gm_nBufSizeDef : CFileLoad
  • gm_pnEolLenArr : CEOL
  • gm_pszEolDataArr : CEOL
  • gm_pszEolNameArr : CEOL
  • gm_pszEolUnicodeBEDataArr : CEOL
  • gm_pszEolUnicodeDataArr : CEOL
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- h -

  • HtmlHelp : CHtmlHelp
  • hwnd : TABMENU_DATA
  • hwndReferer : TagJump
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- i -

  • ID : CInterfaceObject::CMethodInfo
  • iImage : TABMENU_DATA
  • iItem : TABMENU_DATA
  • int : CEditView
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- p -

  • p : EditNodeEx
  • p_favorite_info : CDlgFavorite
  • paraendp : bregexp
  • parap : bregexp
  • pBregexp : RegexInfo_t
  • pcmemDeleted : LayoutReplaceArg, DocLineReplaceArg
  • pInsData : LayoutReplaceArg, DocLineReplaceArg
  • point : TagJump
  • PRECONVERTSTRING : CEditView
  • proc : CDllHandler::ImportTable
  • pszName : TYPE_NAME
  • pszSubAppName : CUxTheme
  • pszSubIdList : CUxTheme
  • pvReserved : OPENFILENAMEZ
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- r -

  • resId : ComPropSheetInfo
  • rsv1 : bregexp
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- s -

  • size : CDataObject
  • sKey1 : _SORTTABLE
  • sKey2 : _SORTTABLE
  • splitctr : bregexp
  • splitp : bregexp
  • sStr : HANKAKKO_T, ZENKAKKO_T
  • startp : bregexp
  • strerr : RcCvt
  • strSectionName : CProfile::Section
  • szGroupName : oneRule
  • szKey : VS_VERSION_INFO_HEAD
  • szMatch : oneRule
  • szName : ColorAttributeData_t
  • szTabname : ComPropSheetInfo
  • szText : TABMENU_DATA
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- t -

  • transtblp : bregexp
  • type : CSortedTagJumpList::tagjump_info_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- u -

  • UINT : ComPropSheetInfo
  • Uni : UnicodeInfo_t
  • UniBe : UnicodeInfo_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- v -

  • Value : VS_VERSION_INFO_HEAD
  • vKey : ctrl_info_t
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ - 変数

  • 構成
  • クラス階層
  • 構成メンバ
  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • 関連する関数
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- w -

  • wLength : VS_VERSION_INFO_HEAD
  • WPARAM : ComPropSheetInfo
  • wValueLength : VS_VERSION_INFO_HEAD
Sakura-Editorに対してSat Oct 27 02:34:14 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: ネームスペース索引

  • ネームスペース一覧
  • ネームスペースメンバ

Sakura-Editor ネームスペース一覧

ネームスペースの一覧です。
Charcode |
nsFuncCode |
std | 2002/2/3 aroka to here
Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: ネームスペース Charcode

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース Charcode

関数

bool __fastcall | IsSJisKan1 (const uchar_t c)
bool __fastcall | IsSJisKan2 (const uchar_t c)
bool __fastcall | IsSJisKan (const uchar_t *pC)
bool __fastcall | IsSJisHanKata (const uchar_t c)
bool __fastcall | IsEucKan1 (const uchar_t c)
bool __fastcall | IsEucKan2 (const uchar_t c)
bool __fastcall | IsEucKan (const uchar_t *pC)
bool __fastcall | IsEucHanKana2 (const uchar_t c)
bool __fastcall | IsUtf16SurrogHi (const uchar16_t wc)
bool __fastcall | IsUtf16SurrogLow (const uchar16_t wc)
bool __fastcall | IsBase64Char (const uchar_t c)
bool __fastcall | IsUtf7SetDChar (const uchar_t c)
uchar_t __fastcall | Base64_CharToVal (const uchar_t c)
uchar_t __fastcall | Base64_ValToChar (const uchar_t v)
uchar_t __fastcall | Uu_CharToVal (const uchar_t c)
int __fastcall | GetJisESCSeqLen (const enumJisESCSeqType eEscType)
const char *__fastcall | GetJisESCSeqData (const enumJisESCSeqType eEscType)
int | CheckUtf7SetDPart (const uchar_t *pS, const int nLen, uchar_t *&ref_pNext)
int | CheckUtf7SetBPart (const uchar_t *pS, const int nLen, uchar_t *&ref_pNext)
void | GetEncdInf_Utf7 (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | CheckUtf8Char (const uchar_t *pC, const int nLen)
int | GuessCharLen_utf8 (const uchar_t *pC, const int nlen)
void | GetEncdInf_Utf8 (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | imp_CheckUtf16Char (const uchar_t *pC, const int nLen, bool bBigEndian)
int | CheckUtf16Char (const uchar_t *pC, const int nLen)
int | CheckUtf16BeChar (const uchar_t *pC, const int nLen)
void | GetEncdInf_Uni (const char *pS, const int nLen, UNICODE_INFO *pWEI)
int | CheckSJisChar (const uchar_t *pS, const int nLen)
int | CheckSJisCharR (const uchar_t *pS, const int nLen)
int | GuessCharLen_sjis (const uchar_t *pC, const int nLen)
void | GetEncdInf_SJis (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | CheckEucJpChar (const uchar_t *pS, const int nLen)
int | GuessCharLen_eucjp (const uchar_t *pC, const int nlen)
void | GetEncdInf_EucJp (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | GetCharLen_sjis (const uchar_t *pC, const int nLen)
int | GetCharLenR_sjis (const uchar_t *pC, const int nLen)
int | GetCharLen_eucjp (const uchar_t *pC, const int nLen)
int | GetCharLen_utf8 (const uchar_t *pC, const int nLen)
int | DetectJisESCSeq (const uchar_t *pS, const int nLen, int *pnEscType)
void | GetEncdInf_Jis (const char *pS, const int nLen, MBCODE_INFO *pEI)
int | DetectUnicodeBom (const char *pS, int nLen)
bool __fastcall | IsEucHanKata2 (const uchar_t)

変数

const uchar_t | ucNA = 0xff
const bool | bNA = false
const uchar_t | BASE64CHAR []
const uchar_t | BASE64VAL []
const bool | UTF7SetD []
const char | JISESCDATA_ASCII [] = "\x1b""(B"
const char | JISESCDATA_JISX0201Latin [] = "\x1b""(J"
const char | JISESCDATA_JISX0201Latin_OLD [] = "\x1b""(H"
const char | JISESCDATA_JISX0201Katakana [] = "\x1b""(I"
const char | JISESCDATA_JISX0208_1978 [] = "\x1b""$@"
const char | JISESCDATA_JISX0208_1983 [] = "\x1b""$B"
const char | JISESCDATA_JISX0208_1990 [] = "\x1b""&@""\x1b""$B"
const int | TABLE_JISESCLEN []
const char * | TABLE_JISESCDATA []
const uchar_t | BASE64CHAR []
const uchar_t | BASE64VAL []
const bool | UTF7SetD []
const char | JISESCDATA_ASCII []
const char | JISESCDATA_JISX0201Latin []
const char | JISESCDATA_JISX0201Latin_OLD []
const char | JISESCDATA_JISX0201Katakana []
const char | JISESCDATA_JISX0208_1978 []
const char | JISESCDATA_JISX0208_1983 []
const char | JISESCDATA_JISX0208_1990 []
const int | TABLE_JISESCLEN []
const char * | TABLE_JISESCDATA []

関数

uchar_t __fastcall Charcode::Base64_CharToVal ( const uchar_t c )

charcode.cpp の 188 行で定義されています。

参照先 BASE64VAL.

uchar_t __fastcall Charcode::Base64_ValToChar ( const uchar_t v )

charcode.cpp の 191 行で定義されています。

参照先 BASE64CHAR.

int Charcode::CheckEucJpChar | ( | const uchar_t * | pS,
 |  | const int | nLen
 | ) |

EUC-JP の文字か

fix: 2006.09.23 genta EUCJP 半角カタカナ判別が間違っていたのを修正．

charcode.cpp の 906 行で定義されています。

参照先 IsEucHanKana2()・IsEucKan().

参照元 GetCharLen_eucjp()・GetEncdInf_EucJp().

int Charcode::CheckSJisChar | ( | const uchar_t * | pS,
 |  | const int | nLen
 | ) |

SJIS の文字か

charcode.cpp の 793 行で定義されています。

参照先 IsSJisHanKata()・IsSJisKan().

参照元 GetCharLen_sjis()・GetEncdInf_SJis().

int Charcode::CheckSJisCharR | ( | const uchar_t * | pS,
 |  | const int | nLen
 | ) |

charcode.cpp の 812 行で定義されています。

参照先 IsSJisHanKata()・IsSJisKan1().

参照元 GetCharLenR_sjis().

int Charcode::CheckUtf16BeChar | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |

charcode.cpp の 644 行で定義されています。

参照先 imp_CheckUtf16Char().

参照元 GetEncdInf_Uni().

int Charcode::CheckUtf16Char | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |

charcode.cpp の 641 行で定義されています。

参照先 imp_CheckUtf16Char().

参照元 GetEncdInf_Uni().

int Charcode::CheckUtf7SetBPart | ( | const uchar_t * | pS,
 |  | const int | nLen,
 |  | uchar_t *& | ref_pNext
 | ) |

UTF-7 セットＢの文字列か

引数:
[out] ref_pNext : 最後に読み込んだ次の文字へのポインタを返す．
戻り値:
不正バイト数を返す．
覚え書き:
この関数を実行する前に必ず CheckUtf7SetDPart() を実行すること.

charcode.cpp の 259 行で定義されています。

参照先 IsBase64Char().

参照元 GetEncdInf_Utf7().

int Charcode::CheckUtf7SetDPart | ( | const uchar_t * | pS,
 |  | const int | nLen,
 |  | uchar_t *& | ref_pNext
 | ) |

UTF-7 セットＤの文字列か

引数:
[out] ref_pNext : 最後に読み込んだ次の文字へのポインタを返す．
戻り値:
不正バイト数を返す．

charcode.cpp の 228 行で定義されています。

参照先 IsUtf7SetDChar().

参照元 GetEncdInf_Utf7().

int Charcode::CheckUtf8Char | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |

UTF-8 の文字か

戻り値:
正の数 | : 正常な UTF-8 バイト列.
負の数 | : 不正な UTF-8 バイト列. (往復変換不可とか範囲不正とか)
0 | : 検査データがなくなった.

charcode.cpp の 397 行で定義されています。

参照元 GetCharLen_utf8()・GetEncdInf_Utf8().

int Charcode::DetectJisESCSeq | ( | const uchar_t * | pS,
 |  | const int | nLen,
 |  | int * | pnEscType
 | ) |

JIS の エスケープ文字列を検出する

引数:
[in] | pS | 検出対象データ
[in] | nLen | 検出対象データ長
[out] | pnEscType | 検出されたエスケープ文字列の種類
戻り値:
検出された場合は，検出されたエスケープ文字列長 検出されなかった場合は， -1 検出データがない場合は， 0
覚え書き:
戻り値がゼロより大きい場合に限り，*pnEscType が更新される． pnEscType は NULL でも良い．
符号化文字集合 16進表現 文字列表現 ------------------------------------------------------------ JIS C 6226-1978 1b 24 40 ESC $ @ JIS X 0208-1983 1b 24 42 ESC $ B JIS X 0208-1990 1b 26 40 1b 24 42 ESC & @ ESC $ B JIS X 0212-1990 1b 24 28 44 ESC $ ( D JIS X 0213:2000 1面 1b 24 28 4f ESC $ ( O JIS X 0213:2004 1面 1b 24 28 51 ESC $ ( Q JIS X 0213:2000 2面 1b 24 28 50 ESC $ ( P JIS X 0201 ラテン 1b 28 4a ESC ( J JIS X 0201 ラテン 1b 28 48 ESC ( H 歴史的 [*] JIS X 0201 片仮名 1b 28 49 ESC ( I ISO/IEC 646 IRV 1b 28 42 ESC ( B

[*] 歴史的な理由により出現したエスケープシーケンス． JIS X 0201の指示としては使用すべきでない．

出展：http://www.asahi-net.or.jp/~wq6k-yn/code/ 参考：http://homepage2.nifty.com/zaco/code/

charcode.cpp の 1064 行で定義されています。

参照先 ESC・JISESC_ASCII・JISESC_JISX0201Katakana・JISESC_JISX0201Latin・JISESC_JISX0201Latin_OLD・JISESC_JISX0208_1978・JISESC_JISX0208_1983・JISESC_JISX0208_1990・JISESC_UNKNOWN・JISESCDATA_JISX0208_1990.

参照元 GetEncdInf_Jis().

int Charcode::DetectUnicodeBom | ( | const char * | pS,
 |  | int | nLen
 | ) |

文字列の先頭にUnicode系BOMが付いているか？

戻り値:
0 | なし,未検出
3 | (CODE_UNICODE) Unicode
4 | (CODE_UTF8) UTF-8
6 | (CODE_UNICODEBE) UnicodeBE

charcode.cpp の 1187 行で定義されています。

参照先 CODE_UNICODE・CODE_UNICODEBE・CODE_UTF8・NULL.

参照元 CMemory::CheckKanjiCodeOfFile()・CFileLoad::FileOpen().

int Charcode::GetCharLen_eucjp | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |

charcode.cpp の 1016 行で定義されています。

参照先 CheckEucJpChar().

int Charcode::GetCharLen_sjis | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |

マルチバイト文字の長さを取得

引数:
[in] | pC | データ
[in] | nLen | データ長
戻り値:
検出された文字のバイト数
覚え書き:
データ pC の最初の一文字を検査する．

charcode.cpp の 1008 行で定義されています。

参照先 CheckSJisChar().

int Charcode::GetCharLen_utf8 | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |

charcode.cpp の 1020 行で定義されています。

参照先 CheckUtf8Char().

int Charcode::GetCharLenR_sjis | ( | const uchar_t * | pC,
 |  | const int | nLen
 | ) |

charcode.cpp の 1012 行で定義されています。

参照先 CheckSJisCharR().

void Charcode::GetEncdInf_EucJp | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |

EUC-JP の文字コード判定情報を取得する

charcode.cpp の 961 行で定義されています。

参照先 CheckEucJpChar()・CODE_EUC・EncodingInfo_t::eCodeID・GuessCharLen_eucjp()・EncodingInfo_t::nDiff・EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding().

void Charcode::GetEncdInf_Jis | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |

JIS の文字コード判定情報を取得する

charcode.cpp の 1146 行で定義されています。

参照先 DetectJisESCSeq()・JISESC_ASCII.

参照元 CESI::ScanEncoding().

void Charcode::GetEncdInf_SJis | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |

SJIS の文字コード判定情報を取得する

charcode.cpp の 848 行で定義されています。

参照先 CheckSJisChar()・CODE_SJIS・EncodingInfo_t::eCodeID・GuessCharLen_sjis()・EncodingInfo_t::nDiff・EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding().

void Charcode::GetEncdInf_Uni | ( | const char * | pS,
 |  | const int | nLen,
 |  | UNICODE_INFO * | pWEI
 | ) |

UNICODE の文字コード判定情報を取得する

charcode.cpp の 682 行で定義されています。

参照先 CheckUtf16BeChar()・CheckUtf16Char()・CODE_UNICODE・CODE_UNICODEBE・WC_EncodingInfo_t::eCodeID・WC_EncodingInfo_t::nCRorLF・UnicodeInfo_t::nCRorLF_ascii・WC_EncodingInfo_t::nLostBytes・UnicodeInfo_t::Uni・UnicodeInfo_t::UniBe.

参照元 CESI::ScanEncoding().

void Charcode::GetEncdInf_Utf7 | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |

UTF-7 の文字コード判定情報を取得する

charcode.cpp の 318 行で定義されています。

参照先 CheckUtf7SetBPart()・CheckUtf7SetDPart()・CODE_UTF7・EncodingInfo_t::eCodeID・EncodingInfo_t::nDiff・EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding().

void Charcode::GetEncdInf_Utf8 | ( | const char * | pS,
 |  | const int | nLen,
 |  | MBCODE_INFO * | pEI
 | ) |

UTF-8 の文字コード判定情報を取得する

charcode.cpp の 540 行で定義されています。

参照先 CheckUtf8Char()・CODE_UTF8・EncodingInfo_t::eCodeID・GuessCharLen_utf8()・EncodingInfo_t::nDiff・EncodingInfo_t::nSpecBytes.

参照元 CESI::ScanEncoding().

const char *__fastcall Charcode::GetJisESCSeqData ( const enumJisESCSeqType eEscType )

charcode.cpp の 200 行で定義されています。

参照先 TABLE_JISESCDATA.

int __fastcall Charcode::GetJisESCSeqLen ( const enumJisESCSeqType eEscType )

charcode.cpp の 197 行で定義されています。

参照先 TABLE_JISESCLEN.

int Charcode::GuessCharLen_eucjp | ( | const uchar_t * | pC,
 |  | const int | nlen = 3
 | ) |

charcode.cpp の 940 行で定義されています。

参照先 IsEucKan1().

参照元 GetEncdInf_EucJp().

int Charcode::GuessCharLen_sjis | ( | const uchar_t * | pC,
 |  | const int | nLen = 2
 | ) |

charcode.cpp の 834 行で定義されています。

参照先 IsSJisKan1().

参照元 GetEncdInf_SJis().

int Charcode::GuessCharLen_utf8 | ( | const uchar_t * | pC,
 |  | const int | nlen = 4
 | ) |

charcode.cpp の 516 行で定義されています。

参照元 GetEncdInf_Utf8().

int Charcode::imp_CheckUtf16Char | ( | const uchar_t * | pC,
 |  | const int | nLen,
 |  | bool | bBigEndian
 | ) |

UTF-16 の文字か 主にサロゲートペアのチェックをする.

覚え書き:
返却値は ２の倍数であること．

charcode.cpp の 606 行で定義されています。

参照先 IsUtf16SurrogHi()・IsUtf16SurrogLow().

参照元 CheckUtf16BeChar()・CheckUtf16Char().

bool __fastcall Charcode::IsBase64Char ( const uchar_t c )

charcode.cpp の 181 行で定義されています。

参照先 BASE64VAL.

参照元 CheckUtf7SetBPart().

bool __fastcall Charcode::IsEucHanKana2 ( const uchar_t c )

charcode.cpp の 161 行で定義されています。

参照元 CheckEucJpChar().

bool __fastcall Charcode::IsEucHanKata2 ( const uchar_t )

bool __fastcall Charcode::IsEucKan ( const uchar_t * pC )

charcode.cpp の 158 行で定義されています。

参照先 IsEucKan1()・IsEucKan2().

参照元 CheckEucJpChar().

bool __fastcall Charcode::IsEucKan1 ( const uchar_t c )

charcode.cpp の 152 行で定義されています。

参照元 CMemory::EUCToSJIS()・GuessCharLen_eucjp()・IsEucKan().

bool __fastcall Charcode::IsEucKan2 ( const uchar_t c )

charcode.cpp の 155 行で定義されています。

参照元 CMemory::EUCToSJIS()・IsEucKan().

bool __fastcall Charcode::IsSJisHanKata ( const uchar_t c )

charcode.cpp の 149 行で定義されています。

参照元 CheckSJisChar()・CheckSJisCharR().

bool __fastcall Charcode::IsSJisKan ( const uchar_t * pC )

charcode.cpp の 146 行で定義されています。

参照先 IsSJisKan1()・IsSJisKan2().

参照元 CheckSJisChar().

bool __fastcall Charcode::IsSJisKan1 ( const uchar_t c )

charcode.cpp の 138 行で定義されています。

参照元 CheckSJisCharR()・GuessCharLen_sjis()・IsSJisKan().

bool __fastcall Charcode::IsSJisKan2 ( const uchar_t c )

charcode.cpp の 143 行で定義されています。

参照元 IsSJisKan().

bool __fastcall Charcode::IsUtf16SurrogHi ( const uchar16_t wc )

charcode.cpp の 164 行で定義されています。

参照元 imp_CheckUtf16Char().

bool __fastcall Charcode::IsUtf16SurrogLow ( const uchar16_t wc )

charcode.cpp の 168 行で定義されています。

参照元 imp_CheckUtf16Char().

bool __fastcall Charcode::IsUtf7SetDChar ( const uchar_t c )

charcode.cpp の 184 行で定義されています。

参照先 UTF7SetD.

参照元 CheckUtf7SetDPart()・CMemory::IsUTF7Direct().

uchar_t __fastcall Charcode::Uu_CharToVal ( const uchar_t c )

charcode.cpp の 194 行で定義されています。

変数

const uchar_t Charcode::BASE64CHAR[]

BASE64 変換テーブル その１

charcode.cpp の 50 行で定義されています。

参照元 Base64_ValToChar().

const uchar_t Charcode::BASE64CHAR[]

初期値:

 {
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
        'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
        'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
        'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
        'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
        'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
        'w', 'x', 'y', 'z', '0', '1', '2', '3',
        '4', '5', '6', '7', '8', '9', '+', '/'
    }
BASE64 変換テーブル その１

charcode.cpp の 50 行で定義されています。

参照元 Base64_ValToChar().

const uchar_t Charcode::BASE64VAL[]

BASE64 変換テーブル その２

charcode.cpp の 64 行で定義されています。

参照元 Base64_CharToVal()・IsBase64Char()・CMemory::IsBASE64Char().

const uchar_t Charcode::BASE64VAL[]

初期値:

 {
        ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA,
        ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA,
        ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA,
        ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA,
        ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA,
        ucNA, ucNA, ucNA,   62, ucNA, ucNA, ucNA,   63,
          52,   53,   54,   55,   56,   57,   58,   59,
          60,   61, ucNA, ucNA, ucNA, ucNA, ucNA, ucNA,
        ucNA,    0,    1,    2,    3,    4,    5,    6,
           7,    8,    9,   10,   11,   12,   13,   14,
          15,   16,   17,   18,   19,   20,   21,   22,
          23,   24,   25, ucNA, ucNA, ucNA, ucNA, ucNA,
           0,   26,   27,   28,   29,   30,   31,   32,
          33,   34,   35,   36,   37,   38,   39,   40,
          41,   42,   43,   44,   45,   46,   47,   48,
          49,   50,   51, ucNA, ucNA, ucNA, ucNA, ucNA,
    }
BASE64 変換テーブル その２

charcode.cpp の 64 行で定義されています。

参照元 Base64_CharToVal()・CMemory::IsBASE64Char()・IsBase64Char().

const bool Charcode::bNA = false

charcode.cpp の 45 行で定義されています。

const char Charcode::JISESCDATA_ASCII[]

charcode.cpp の 105 行で定義されています。

const char Charcode::JISESCDATA_ASCII[] = "\x1b""(B"

charcode.cpp の 105 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Katakana[]

charcode.cpp の 108 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Katakana[] = "\x1b""(I"

charcode.cpp の 108 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Latin[]

charcode.cpp の 106 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Latin[] = "\x1b""(J"

charcode.cpp の 106 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Latin_OLD[]

charcode.cpp の 107 行で定義されています。

const char Charcode::JISESCDATA_JISX0201Latin_OLD[] = "\x1b""(H"

charcode.cpp の 107 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1978[]

charcode.cpp の 109 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1978[] = "\x1b""$@"

charcode.cpp の 109 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1983[]

charcode.cpp の 110 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1983[] = "\x1b""$B"

charcode.cpp の 110 行で定義されています。

const char Charcode::JISESCDATA_JISX0208_1990[]

charcode.cpp の 111 行で定義されています。

参照元 DetectJisESCSeq().

const char Charcode::JISESCDATA_JISX0208_1990[] = "\x1b""&@""\x1b""$B"

charcode.cpp の 111 行で定義されています。

参照元 DetectJisESCSeq().

const char* Charcode::TABLE_JISESCDATA[]

charcode.cpp の 127 行で定義されています。

参照元 GetJisESCSeqData().

const char* Charcode::TABLE_JISESCDATA[]

初期値:

 {
        NULL,
        JISESCDATA_ASCII,
        JISESCDATA_JISX0201Latin,
        JISESCDATA_JISX0201Latin_OLD,
        JISESCDATA_JISX0201Katakana,
        JISESCDATA_JISX0208_1978,
        JISESCDATA_JISX0208_1983,
        JISESCDATA_JISX0208_1990,
    }

charcode.cpp の 127 行で定義されています。

参照元 GetJisESCSeqData().

const int Charcode::TABLE_JISESCLEN[]

charcode.cpp の 117 行で定義されています。

参照元 GetJisESCSeqLen().

const int Charcode::TABLE_JISESCLEN[]

初期値:

 {
        0,
        3,
        3,
        3,
        3,
        3,
        3,
        6,
    }

charcode.cpp の 117 行で定義されています。

参照元 GetJisESCSeqLen().

const uchar_t Charcode::ucNA = 0xff

charcode.cpp の 44 行で定義されています。

const bool Charcode::UTF7SetD[]

UTF-7 セットD の文字たち

charcode.cpp の 86 行で定義されています。

参照元 IsUtf7SetDChar().

const bool Charcode::UTF7SetD[]

初期値:

 {
        bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,
        bNA,  true, true, bNA,  bNA,  true, bNA,  bNA,
        bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,
        bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  bNA,
        true, bNA,  bNA,  bNA,  bNA,  bNA,  bNA,  true,
        true, true, bNA,  bNA,  true, true, true, true,
        true, true, true, true, true, true, true, true,
        true, true, true, bNA,  bNA,  bNA,  bNA,  true,
        bNA,  true, true, true, true, true, true, true,
        true, true, true, true, true, true, true, true,
        true, true, true, true, true, true, true, true,
        true, true, true, bNA,  bNA,  bNA,  bNA,  bNA,
        bNA,  true, true, true, true, true, true, true,
        true, true, true, true, true, true, true, true,
        true, true, true, true, true, true, true, true,
        true, true, true, bNA,  bNA,  bNA,  bNA,  bNA,
    }
UTF-7 セットD の文字たち

charcode.cpp の 86 行で定義されています。

参照元 IsUtf7SetDChar().

Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: ネームスペース nsFuncCode

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース nsFuncCode

変数

const char * | ppszFuncKind []
const int | nFuncKindNum = sizeof(nsFuncCode::ppszFuncKind) / sizeof(nsFuncCode::ppszFuncKind[0])
const int | pnFuncListNumArr []
const int * | ppnFuncListArr []
const int | nFincListNumArrNum = sizeof( nsFuncCode::pnFuncListNumArr ) / sizeof( nsFuncCode::pnFuncListNumArr[0] )

変数

const int nsFuncCode::nFincListNumArrNum = sizeof( nsFuncCode::pnFuncListNumArr ) / sizeof( nsFuncCode::pnFuncListNumArr[0] )

Funccode.cpp の 501 行で定義されています。

const int nsFuncCode::nFuncKindNum = sizeof(nsFuncCode::ppszFuncKind) / sizeof(nsFuncCode::ppszFuncKind[0])

Funccode.cpp の 53 行で定義されています。

参照元 CFuncLookup::Category2Name()・CFuncLookup::GetCategoryCount()・CFuncLookup::GetItemCount()・CFuncLookup::Pos2FuncCode()・CFuncLookup::Pos2FuncName()・CFuncLookup::SetCategory2Combo()・CPropCommon::SetData_p5()・CPropCommon::SetData_p8()・CFuncLookup::SetListItem().

const int nsFuncCode::pnFuncListNumArr

初期値:

 {

    nFincList_File_Num,
    nFincList_Edit_Num,
    nFincList_Move_Num,
    nFincList_Select_Num,
    nFincList_Box_Num,
    nFincList_Clip_Num,
    nFincList_Insert_Num,
    nFincList_Convert_Num,
    nFincList_Search_Num,
    nFincList_Mode_Num,
    nFincList_Set_Num,
    nFincList_Macro_Num,

    nFincList_Win_Num,
    nFincList_Support_Num,
    nFincList_Others_Num
}

Funccode.cpp の 461 行で定義されています。

参照元 CFuncLookup::GetItemCount()・CFuncLookup::SetListItem().

const int * nsFuncCode::ppnFuncListArr

初期値:

 {

    (int*)pnFuncList_File,
    (int*)pnFuncList_Edit,
    (int*)pnFuncList_Move,
    (int*)pnFuncList_Select,
    (int*)pnFuncList_Box,
    (int*)pnFuncList_Clip,
    (int*)pnFuncList_Insert,
    (int*)pnFuncList_Convert,
    (int*)pnFuncList_Search,
    (int*)pnFuncList_Mode,
    (int*)pnFuncList_Set,
    (int*)pnFuncList_Macro,

    (int*)pnFuncList_Win,
    (int*)pnFuncList_Support,
    (int*)pnFuncList_Others
}

Funccode.cpp の 481 行で定義されています。

参照元 CFuncLookup::Pos2FuncCode()・CFuncLookup::Pos2FuncName()・CFuncLookup::SetListItem().

const char * nsFuncCode::ppszFuncKind

初期値:

 {

    "ファイル操作系",
    "編集系",
    "カーソル移動系",
    "選択系",
    "矩形選択系",
    "クリップボード系",
    "挿入系",
    "変換系",
    "検索系",
    "モード切り替え系",
    "設定系",
    "マクロ系",

    "ウィンドウ系",
    "支援",
    "その他"
}

Funccode.cpp の 32 行で定義されています。

参照元 CFuncLookup::Category2Name()・CFuncLookup::SetCategory2Combo()・CPropCommon::SetData_p5()・CPropCommon::SetData_p8().

Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: ネームスペース std

  • ネームスペース一覧
  • ネームスペースメンバ

ネームスペース std

2002/2/3 aroka to here [詳細]

説明

2002/2/3 aroka to here
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- _ -

  • _ALT : Keycode.h
  • _CARETMARGINRATE : CEditView.h
  • _CompareFunc_() : CDlgFuncList.cpp
  • _CTRL : Keycode.h
  • _IS_REL_PATH() : etc_uty.h
  • _IS_SJIS_1 : MY_SP.C, charcode.h
  • _IS_SJIS_2 : charcode.h
  • _MAX_DIR : MY_SP.C
  • _MAX_DRIVE : MY_SP.C
  • _MAX_EXT : MY_SP.C
  • _MAX_FNAME : MY_SP.C
  • _MAX_PATH : MY_SP.C
  • _memicmp : my_icmp.h
  • _SHIFT : Keycode.h
  • _stricmp : my_icmp.h
  • _strnicmp : my_icmp.h
  • _tfopen_absexe() : etc_uty.h, etc_uty.cpp
  • _tfopen_absini() : etc_uty.h, etc_uty.cpp
  • _tmemcpy : my_tchar.h
  • _USE_META_ALIAS : CShareData.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- j -

  • JISESC_ASCII : charcode.h
  • JISESC_JISX0201Katakana : charcode.h
  • JISESC_JISX0201Latin : charcode.h
  • JISESC_JISX0201Latin_OLD : charcode.h
  • JISESC_JISX0208_1978 : charcode.h
  • JISESC_JISX0208_1983 : charcode.h
  • JISESC_JISX0208_1990 : charcode.h
  • JISESC_UNKNOWN : charcode.h
  • JISESCDATA_ASCII : charcode.h, charcode.cpp
  • JISESCDATA_JISX0201Katakana : charcode.h, charcode.cpp
  • JISESCDATA_JISX0201Latin : charcode.h, charcode.cpp
  • JISESCDATA_JISX0201Latin_OLD : charcode.h, charcode.cpp
  • JISESCDATA_JISX0208_1978 : charcode.h, charcode.cpp
  • JISESCDATA_JISX0208_1983 : charcode.h, charcode.cpp
  • JISESCDATA_JISX0208_1990 : charcode.h, charcode.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- k -

  • KEYWORD_SELECT_NUM : CDlgKeywordSelect.h
  • keyword_select_target_combo : CDlgKeywordSelect.cpp
  • KINSOKU_TYPE_KINSOKU_HEAD : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_KINSOKU_KUTO : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_KINSOKU_TAIL : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_NONE : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_WORDWRAP : CLayoutMgr_New.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- l -

  • LEN_EOL_CR : global.h
  • LEN_EOL_CRLF : global.h
  • LEN_EOL_LF : global.h
  • LEN_EOL_LFCR : global.h
  • LEN_EOL_NONE : global.h
  • LF : charcode.h
  • LFCR : charcode.h
  • LimitStringLengthB() : etc_uty.h, etc_uty.cpp
  • LINE_RANGE_X : CPrintPreview.cpp
  • LINE_RANGE_Y : CPrintPreview.cpp
  • LINEREADBUFSIZE : global.h
  • LINESPACE_MAX : global.h
  • Listbox_ADDDATA() : CPropComToolbar.cpp
  • Listbox_INSERTDATA() : CPropComToolbar.cpp
  • ListView_SetCheckState : CDlgFavorite.cpp
  • LONG_PTR : global.h
  • LUOFFSET_CUSTMENU : CFuncLookup.cpp
  • LUOFFSET_MACRO : CFuncLookup.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- m -

  • m_bIsSaveDialog : CDlgOpenFile.cpp
  • m_bReadOnly : CDlgOpenFile.cpp
  • m_nHelpTopicID : CDlgOpenFile.cpp
  • m_ppszMRU : CDlgOpenFile.cpp
  • m_ppszOPENFOLDER : CDlgOpenFile.cpp
  • m_szHelpFile : CDlgOpenFile.cpp
  • m_wpColorListProc : CPropTypes.cpp
  • m_wpOpenDialogProc : CDlgOpenFile.cpp
  • MacroCommand() : CWSH.cpp
  • MacroError() : CWSH.cpp
  • MACRONAME_MAX : CShareData.h
  • main() : mrc2brc.cpp
  • MakeRGBStr() : CPropTypes.cpp
  • MARK_DIFF_APPEND : CDocLine.h
  • MARK_DIFF_CHANGE : CDocLine.h
  • MARK_DIFF_DEL_EX : CDocLine.h
  • MARK_DIFF_DELETE : CDocLine.h
  • MAX_ASM_TOKEN : CEditDoc.cpp
  • MAX_CAPTION_CONF_LEN : CShareData.h
  • MAX_CMDARR : CShareData.h
  • MAX_CMDLEN : CShareData.h
  • MAX_CUSTMACRO : CShareData.h
  • MAX_CUSTOM_MENU : CShareData.h
  • MAX_CUSTOM_MENU_ITEMS : CShareData.h
  • MAX_CUSTOM_MENU_NAME_LEN : CShareData.h
  • MAX_DATETIMEFOREMAT_LEN : CShareData.h
  • MAX_DOCTYPE_LEN : CShareData.h
  • MAX_EDITWINDOWS : CShareData.h
  • MAX_EXTCMDLEN : CShareData.h
  • MAX_EXTCMDMRUNUM : CShareData.h
  • MAX_GREPFILE : CShareData.h
  • MAX_GREPFOLDER : CShareData.h
  • MAX_KEYHELP_FILE : CShareData.h
  • MAX_KEYWORDLEN : CKeyWordSetMgr.h
  • MAX_KEYWORDNUM : CKeyWordSetMgr.h
  • MAX_KEYWORDSET_PER_TYPE : CShareData.h
  • MAX_MARKLINES_LEN : CShareData.h
  • MAX_MENUITEMS : CMenuDrawer.h
  • MAX_MRU : CMRU.h
  • MAX_OPENFOLDER : CMRUFolder.h
  • MAX_PREVIEW_ZOOM : CPrintPreview.cpp
  • MAX_PRINTSETTINGARR : CShareData.h
  • MAX_REGEX_KEYWORD : CShareData.h
  • MAX_REPLACEKEY : CShareData.h
  • MAX_SEARCHKEY : CShareData.h
  • MAX_SETNAMELEN : CKeyWordSetMgr.h
  • MAX_SETNUM : CKeyWordSetMgr.h
  • MAX_TABITEM_WIDTH : CTabWnd.cpp
  • MAX_TAG_STRING_LENGTH : CSortedTagJumpList.h
  • MAX_TAGJUMP_KEYWORD : CShareData.h
  • MAX_TAGJUMPNUM : CShareData.h
  • MAX_TOOLBARBUTTONS : CShareData.h
  • MAX_TRANSFORM_FILENAME : CShareData.h
  • MAX_TYPES : CShareData.h
  • MAX_VERTLINES : CShareData.h
  • MAX_X : CImageListMgr.cpp
  • MAX_Y : CImageListMgr.cpp
  • MAXCOUNTOFVIEW : CSplitterWnd.h
  • maxdata : CShareData.h
  • MAXLINESIZE : global.h
  • MBCODE_INFO : charcode.h
  • memicmp : my_icmp.h
  • migemo : CMigemo.h
  • MIGEMO_DICTID_HAN2ZEN : CMigemo.h
  • MIGEMO_DICTID_HIRA2KATA : CMigemo.h
  • MIGEMO_DICTID_INVALID : CMigemo.h
  • MIGEMO_DICTID_MIGEMO : CMigemo.h
  • MIGEMO_DICTID_ROMA2HIRA : CMigemo.h
  • MIGEMO_OPINDEX_NEST_IN : CMigemo.h
  • MIGEMO_OPINDEX_NEST_OUT : CMigemo.h
  • MIGEMO_OPINDEX_NEWLINE : CMigemo.h
  • MIGEMO_OPINDEX_OR : CMigemo.h
  • MIGEMO_OPINDEX_SELECT_IN : CMigemo.h
  • MIGEMO_OPINDEX_SELECT_OUT : CMigemo.h
  • MIGEMO_PROC_CHAR2INT : CMigemo.h
  • MIGEMO_PROC_INT2CHAR : CMigemo.h
  • MIGEMO_VERSION : CMigemo.h
  • MIME_BASE64 : CMemory.cpp
  • MIME_QUOTED : CMemory.cpp
  • MIN_PREVIEW_ZOOM : CPrintPreview.cpp
  • MIN_TABITEM_WIDTH : CTabWnd.cpp
  • MINLINESIZE : global.h
  • MRU_maxdata : CMRU.h
  • MRUFolder_maxdata : CMRUFolder.h
  • MSec2Min : CAutoSave.h
  • MSGNAME_ATOK_RECONVERT : mymessage.h
  • MY_ICMP_MBS : my_icmp.h
  • MY_INLINE : my_icmp.h
  • my_internal_icmp() : my_icmp.h, my_icmp.cpp
  • my_iskanji1() : my_icmp.h, my_icmp.cpp
  • my_iskanji2() : my_icmp.h, my_icmp.cpp
  • my_memicmp() : my_icmp.h, my_icmp.cpp
  • MY_RUNNINGTIMER : CRunningTimer.h
  • my_splitpath() : MY_SP.h, MY_SP.C
  • my_strchr() : my_icmp.h, my_icmp.cpp
  • my_strchri() : my_icmp.h, my_icmp.cpp
  • my_stricmp() : my_icmp.h, my_icmp.cpp
  • my_strnicmp() : my_icmp.h, my_icmp.cpp
  • my_strstr() : my_icmp.h, my_icmp.cpp
  • my_strstri() : my_icmp.h, my_icmp.cpp
  • my_strtok() : etc_uty.h, etc_uty.cpp
  • my_tcsicmp : my_tchar.h
  • my_tcsnicmp : my_tchar.h
  • my_tmemicmp : my_tchar.h
  • my_tolower() : my_icmp.h, my_icmp.cpp
  • my_toupper() : my_icmp.h, my_icmp.cpp
  • MY_TRACETIME : CRunningTimer.h
  • MYASSERT : Debug.h
  • MYBCN_FUNCKEY : global.h
  • MYBCN_STATUSBAR : global.h
  • MYBCN_TAB : global.h
  • MYBCN_TOOLBAR : global.h
  • MYBrowseCallbackProc() : etc_uty.cpp
  • MYDBGMSG : CRegexKeyword.cpp
  • MyDialogProc() : CDialog.cpp
  • MyGetAncestor() : etc_uty.h, etc_uty.cpp
  • MyInitCommonControls() : etc_uty.h, etc_uty.cpp
  • MYMESSAGEBOX : Debug.h
  • MyPropertySheet() : etc_uty.h, etc_uty.cpp
  • MYTRACE : Debug.h
  • MyWinHelp() : etc_uty.h, etc_uty.cpp
  • MYWM_ADDSTRING : mymessage.h
  • MYWM_BAR_CHANGE_NOTIFY : mymessage.h
  • MYWM_CHANGESETTING : mymessage.h
  • MYWM_CLOSE : mymessage.h
  • MYWM_DELETE_ME : mymessage.h
  • MYWM_DOSPLIT : mymessage.h
  • MYWM_GETCARETPOS : mymessage.h
  • MYWM_GETFILEINFO : mymessage.h
  • MYWM_GETLINEDATA : mymessage.h
  • MYWM_HTMLHELP : mymessage.h
  • MYWM_IME_REQUEST : mymessage.h
  • MYWM_NOTIFYICON : mymessage.h
  • MYWM_OPENNEWEDITOR : mymessage.h
  • MYWM_SETACTIVEPANE : mymessage.h
  • MYWM_SETCARETPOS : mymessage.h
  • MYWM_SETREFERER : mymessage.h
  • MYWM_TAB_WINDOW_NOTIFY : mymessage.h
  • MYWM_UIPI_CHECK : mymessage.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- n -

  • nCheckBoxID : CPropTypes.cpp
  • nEditID : CPropTypes.cpp
  • NetConnect() : etc_uty.h, etc_uty.cpp
  • NEVER_USED_PARAM : CPPA.cpp
  • nFincList_Box_Num : Funccode.cpp
  • nFincList_Clip_Num : Funccode.cpp
  • nFincList_Convert_Num : Funccode.cpp
  • nFincList_Edit_Num : Funccode.cpp
  • nFincList_File_Num : Funccode.cpp
  • nFincList_Insert_Num : Funccode.cpp
  • nFincList_Macro_Num : Funccode.cpp
  • nFincList_Mode_Num : Funccode.cpp
  • nFincList_Move_Num : Funccode.cpp
  • nFincList_Others_Num : Funccode.cpp
  • nFincList_Search_Num : Funccode.cpp
  • nFincList_Select_Num : Funccode.cpp
  • nFincList_Set_Num : Funccode.cpp
  • nFincList_Support_Num : Funccode.cpp
  • nFincList_Win_Num : Funccode.cpp
  • nFincListNumArrNum : Funccode.h
  • nFuncKindNum : Funccode.h
  • nImeStateArrNum : CPropTypes.cpp
  • nImeSwitchArrNum : CPropTypes.cpp
  • nIndentTypeArrNum : CPropTypes.cpp
  • nKeyWordSetBlockSize : CKeyWordSetMgr.cpp
  • nOlmArrNum : CPropTypes.cpp
  • nSmartIndentArrNum : CPropTypes.cpp
  • nTextID : CPropTypes.cpp
  • NULL : global.h
  • NULSTR : CMacroFactory.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- o -

  • OFN_ENABLESIZING : CDlgOpenFile.cpp
  • OFNHookProc() : CDlgOpenFile.cpp
  • OFNHookProcMain() : CDlgOpenFile.cpp
  • OlmArr : CPropTypes.cpp
  • omGet : CPPA.cpp
  • omSet : CPPA.cpp
  • OnFolderProc() : CDlgGrep.cpp
  • OPE_DELETE : COpeBuf.h
  • OPE_INSERT : COpeBuf.h
  • OPE_MOVECARET : COpeBuf.h
  • OPENFILENAME_SIZE_VERSION_400 : CDlgOpenFile.h
  • OpenHtmlHelp() : etc_uty.h, etc_uty.cpp
  • OUTLINE_ASM : global.h
  • OUTLINE_BOOKMARK : global.h
  • OUTLINE_C : global.h
  • OUTLINE_COBOL : global.h
  • OUTLINE_CODEMAX : global.h
  • OUTLINE_CPP : global.h
  • OUTLINE_DEFAULT : global.h
  • OUTLINE_FILE : global.h
  • OUTLINE_HTML : global.h
  • OUTLINE_JAVA : global.h
  • OUTLINE_PERL : global.h
  • OUTLINE_PLSQL : global.h
  • OUTLINE_PYTHON : global.h
  • OUTLINE_TEX : global.h
  • OUTLINE_TEXT : global.h
  • OUTLINE_UNKNOWN : global.h
  • OUTLINE_VB : global.h
  • OUTLINE_WZTXT : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- z -

  • zenkakkoarr : CEditView_New2.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- a -

  • ActivateFrameWindow() : etc_uty.h, etc_uty.cpp
  • AddLastChar() : etc_uty.h, etc_uty.cpp
  • AddLastYenFromDirectoryPath() : etc_uty.h, etc_uty.cpp
  • AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_ : StdAfx.h
  • AssertError() : Debug.h, Debug.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- b -

  • Base64_CharToVal() : charcode.cpp
  • Base64_ValToChar() : charcode.cpp
  • BASE64CHAR : charcode.h, charcode.cpp
  • BASE64VAL : charcode.h, charcode.cpp
  • BFT_BITMAP : CEditView.cpp
  • BKUP_AUTO : CShareData.h
  • BKUP_DAY : CShareData.h
  • BKUP_HOUR : CShareData.h
  • BKUP_MIN : CShareData.h
  • BKUP_MONTH : CShareData.h
  • BKUP_SEC : CShareData.h
  • BKUP_YEAR : CShareData.h
  • BLOCKCOMMENT_BUFFERSIZE : CBlockComment.h
  • BLOCKCOMMENT_NUM : CBlockComment.h
  • BlockingHook() : etc_uty.h, etc_uty.cpp
  • bNA : charcode.cpp
  • BOOL : global.h
  • BREGEXP : CBregexp.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- c -

  • C_IsLineEsc() : CEditDoc_FuncList1.cpp
  • C_IsOperator() : CEditDoc_FuncList1.cpp
  • C_IsSpace() : CEditDoc_FuncList2.cpp, CEditDoc_FuncList1.cpp
  • C_IsWordChar() : CEditDoc_FuncList1.cpp
  • CalcDirectoryDepth() : etc_uty.h, etc_uty.cpp
  • CALLH : CWnd.cpp
  • CDlgDebug_Proc() : CDlgDebug.cpp
  • CDlgInput1Proc() : CDlgInput1.cpp
  • CEditAppWndProc() : CEditApp.cpp
  • CEditWndProc() : CEditWnd.cpp
  • cescape() : etc_uty.h, etc_uty.cpp
  • cescape_j() : etc_uty.h, etc_uty.cpp
  • CHAR_8BITCODE : CMemory.cpp
  • CHAR_ASCII : CMemory.cpp
  • CHAR_NULL : CMemory.cpp
  • CHAR_ZENKAKU : CMemory.cpp
  • CheckEucJpChar() : charcode.cpp
  • CheckEXT() : etc_uty.h, etc_uty.cpp
  • CheckKanjiCode_MAXREADLENGTH : CMemory.h
  • CheckRegexpSyntax() : etc_uty.h, etc_uty.cpp
  • CheckRegexpVersion() : etc_uty.h, etc_uty.cpp
  • CheckSJisChar() : charcode.cpp
  • CheckSJisCharR() : charcode.cpp
  • CheckSystemResources() : etc_uty.h, etc_uty.cpp
  • CheckUtf16BeChar() : charcode.cpp
  • CheckUtf16Char() : charcode.cpp
  • CheckUtf7SetBPart() : charcode.cpp
  • CheckUtf7SetDPart() : charcode.cpp
  • CheckUtf8Char() : charcode.cpp
  • CInterfaceObjectMethod : CWSH.h
  • CK_CR : CDocLineMgr.cpp
  • CK_CSYM : CDocLineMgr.cpp
  • CK_ETC : CDocLineMgr.cpp
  • CK_KATA : CDocLineMgr.cpp
  • CK_LF : CDocLineMgr.cpp
  • CK_MBC_CSYM : CDocLineMgr.cpp
  • CK_MBC_ETC : CDocLineMgr.cpp
  • CK_MBC_GIRI : CDocLineMgr.cpp
  • CK_MBC_HIRA : CDocLineMgr.cpp
  • CK_MBC_KATA : CDocLineMgr.cpp
  • CK_MBC_KIGO : CDocLineMgr.cpp
  • CK_MBC_NOVASU : CDocLineMgr.cpp
  • CK_MBC_ROS : CDocLineMgr.cpp
  • CK_MBC_SKIGO : CDocLineMgr.cpp
  • CK_MBC_SPACE : CDocLineMgr.cpp
  • CK_NULL : CDocLineMgr.cpp
  • CK_SPACE : CDocLineMgr.cpp
  • CK_TAB : CDocLineMgr.cpp
  • cLineComment : CPropTypes.cpp
  • CMD_FROM_MOUSE : CEditView.h
  • CMDLINEOPT_CODE : CCommandLine.cpp
  • CMDLINEOPT_DEBUGMODE : CCommandLine.cpp
  • CMDLINEOPT_GCODE : CCommandLine.cpp
  • CMDLINEOPT_GFILE : CCommandLine.cpp
  • CMDLINEOPT_GFOLDER : CCommandLine.cpp
  • CMDLINEOPT_GKEY : CCommandLine.cpp
  • CMDLINEOPT_GOPT : CCommandLine.cpp
  • CMDLINEOPT_GREPDLG : CCommandLine.cpp
  • CMDLINEOPT_GREPMODE : CCommandLine.cpp
  • CMDLINEOPT_GROUP : CCommandLine.cpp
  • CMDLINEOPT_NOMOREOPT : CCommandLine.cpp
  • CMDLINEOPT_NOWIN : CCommandLine.cpp
  • CMDLINEOPT_R : CCommandLine.cpp
  • CMDLINEOPT_SX : CCommandLine.cpp
  • CMDLINEOPT_SY : CCommandLine.cpp
  • CMDLINEOPT_TYPE : CCommandLine.cpp
  • CMDLINEOPT_VX : CCommandLine.cpp
  • CMDLINEOPT_VY : CCommandLine.cpp
  • CMDLINEOPT_WRITEQUIT : CCommandLine.cpp
  • CMDLINEOPT_WX : CCommandLine.cpp
  • CMDLINEOPT_WY : CCommandLine.cpp
  • CMDLINEOPT_X : CCommandLine.cpp
  • CMDLINEOPT_Y : CCommandLine.cpp
  • cmpGetOpenedWindowArr() : CShareData.cpp
  • CODE_AUTODETECT : global.h
  • CODE_CODEMAX : global.h
  • CODE_EUC : global.h
  • CODE_JIS : global.h
  • CODE_SJIS : global.h
  • CODE_UNICODE : global.h
  • CODE_UNICODEBE : global.h
  • CODE_UTF7 : global.h
  • CODE_UTF8 : global.h
  • COLOR_ATTRIB_FORCE_DISP : global.h
  • COLOR_ATTRIB_NO_BACK : global.h
  • COLOR_ATTRIB_NO_BOLD : global.h
  • COLOR_ATTRIB_NO_EFFECTS : global.h
  • COLOR_ATTRIB_NO_UNDERLINE : global.h
  • COLOR_MENUBAR : global.h
  • COLOR_MENUHILIGHT : global.h
  • ColorAttributeData : global.h
  • COLORIDX_BLOCK1 : global.h
  • COLORIDX_BLOCK2 : global.h
  • COLORIDX_BRACKET_PAIR : global.h
  • COLORIDX_CARET : global.h
  • COLORIDX_CARET_IME : global.h
  • COLORIDX_COMMENT : global.h
  • COLORIDX_CRLF : global.h
  • COLORIDX_CTRLCODE : global.h
  • COLORIDX_DIFF_APPEND : global.h
  • COLORIDX_DIFF_CHANGE : global.h
  • COLORIDX_DIFF_DELETE : global.h
  • COLORIDX_DIGIT : global.h
  • COLORIDX_EOF : global.h
  • COLORIDX_GYOU : global.h
  • COLORIDX_GYOU_MOD : global.h
  • COLORIDX_KEYWORD1 : global.h
  • COLORIDX_KEYWORD10 : global.h
  • COLORIDX_KEYWORD2 : global.h
  • COLORIDX_KEYWORD3 : global.h
  • COLORIDX_KEYWORD4 : global.h
  • COLORIDX_KEYWORD5 : global.h
  • COLORIDX_KEYWORD6 : global.h
  • COLORIDX_KEYWORD7 : global.h
  • COLORIDX_KEYWORD8 : global.h
  • COLORIDX_KEYWORD9 : global.h
  • COLORIDX_LAST : global.h
  • COLORIDX_MARK : global.h
  • COLORIDX_REGEX1 : global.h
  • COLORIDX_REGEX10 : global.h
  • COLORIDX_REGEX2 : global.h
  • COLORIDX_REGEX3 : global.h
  • COLORIDX_REGEX4 : global.h
  • COLORIDX_REGEX5 : global.h
  • COLORIDX_REGEX6 : global.h
  • COLORIDX_REGEX7 : global.h
  • COLORIDX_REGEX8 : global.h
  • COLORIDX_REGEX9 : global.h
  • COLORIDX_RULER : global.h
  • COLORIDX_SEARCH : global.h
  • COLORIDX_SPACE : global.h
  • COLORIDX_SSTRING : global.h
  • COLORIDX_TAB : global.h
  • COLORIDX_TEXT : global.h
  • COLORIDX_UNDERLINE : global.h
  • COLORIDX_URL : global.h
  • COLORIDX_VERTLINE : global.h
  • COLORIDX_WRAP : global.h
  • COLORIDX_WSTRING : global.h
  • COLORIDX_ZENSPACE : global.h
  • ColorList_SubclassProc() : CPropTypes.cpp
  • COLUMNSPACE_MAX : global.h
  • COMMENT_DELIMITER_BUFFERSIZE : CLineComment.h
  • COMMENT_DELIMITER_NUM : CLineComment.h
  • Compare_by_ItemData() : CDlgFuncList.cpp
  • COMPAT_BMP_BASE : CPrintPreview.cpp
  • COMPAT_BMP_SCALE : CPrintPreview.cpp
  • COMPILE_MULTIMON_STUBS : etc_uty.cpp
  • COMPILE_NEWAPIS_STUBS : etc_uty.cpp
  • COMPILER_TYPE : CDlgAbout.cpp
  • COMPILER_VER : CDlgAbout.cpp
  • compTABMENU_DATA() : CTabWnd.cpp
  • CPropComKeybindWndProc() : CPropComKeybind.cpp
  • CR : charcode.h
  • CRLF : charcode.h
  • CTAGS_COMMAND : CEditView_Command.cpp
  • CUSTMENU_INDEX_FOR_RBUTTONUP : global.h
  • CUSTMENU_INDEX_FOR_TABWND : global.h
  • CutLastYenFromDirectoryPath() : etc_uty.h, etc_uty.cpp
  • CWndProc() : CWnd.cpp
  • CX_SMICON : CTabWnd.cpp
  • CY_SMICON : CTabWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- d -

  • DDASTEXT : CEditWnd.cpp
  • DebugOut() : Debug.h, Debug.cpp
  • DebugOutDialog() : Debug.h, Debug.cpp
  • DECLARE_YB_INTERFACEIMPL : CDropTarget.cpp
  • DECLH : CWnd.h
  • DetectJisESCSeq() : charcode.cpp
  • DetectUnicodeBom() : charcode.cpp
  • DICT_ABOUT_LEN : CShareData.h
  • dupamp() : etc_uty.h
  • DWLP_USER : global.h
  • DWORD_PTR : global.h
  • DynCategory : CFuncLookup.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- e -

  • e_PM_SETCARETPOS_SELECTSTATE : mymessage.h
  • EditViewTimerProc() : CEditView.cpp
  • EditViewWndProc() : CEditView.cpp
  • EngineCallback : CWSHManager.h
  • enumBarChangeNotifyType : global.h
  • enumCodeType : global.h
  • enumColorIndexType : global.h
  • enumEOLLen : global.h
  • enumEOLType : global.h
  • enumJisESCSeqType : charcode.h
  • enumOPECODE : COpeBuf.h
  • enumOutlineType : global.h
  • enumRecentCmp : CRecent.h
  • enumRecentFor : CRecent.h
  • enumShowDlg : global.h
  • enumSmartIndentType : global.h
  • enumTabWndNotifyType : global.h
  • EOL_CODEMAX : global.h
  • EOL_CR : global.h
  • EOL_CRLF : global.h
  • EOL_LF : global.h
  • EOL_LFCR : global.h
  • EOL_NONE : global.h
  • EOL_TYPE_NUM : global.h
  • EOL_UNKNOWN : global.h
  • ESC : charcode.h
  • ESC_8BIT : CMemory.cpp
  • ESC_ASCII : CMemory.cpp
  • ESC_JIS : CMemory.cpp
  • eWINSIZEMODE : CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- f -

  • F_1PageDown : Funccode.h
  • F_1PageDown_Sel : Funccode.h
  • F_1PageUp : Funccode.h
  • F_1PageUp_Sel : Funccode.h
  • F_ABOUT : Funccode.h
  • F_ACTIVATE_SQLPLUS : Funccode.h
  • F_ADDTAIL : Funccode.h
  • F_BASE64DECODE : Funccode.h
  • F_BEGIN_BOX : Funccode.h
  • F_BEGIN_SEL : Funccode.h
  • F_BIND_WINDOW : Funccode.h
  • F_BOOKMARK_NEXT : Funccode.h
  • F_BOOKMARK_PATTERN : Funccode.h
  • F_BOOKMARK_PREV : Funccode.h
  • F_BOOKMARK_RESET : Funccode.h
  • F_BOOKMARK_SET : Funccode.h
  • F_BOOKMARK_VIEW : Funccode.h
  • F_BRACKETPAIR : Funccode.h
  • F_BROWSE : Funccode.h
  • F_CANCEL_MODE : Funccode.h
  • F_CASCADE : Funccode.h
  • F_CHAR : Funccode.h
  • F_CHGMOD_EOL : Funccode.h
  • F_CHGMOD_EOL_CR : Funccode.h
  • F_CHGMOD_EOL_CRLF : Funccode.h
  • F_CHGMOD_EOL_LF : Funccode.h
  • F_CHGMOD_INS : Funccode.h
  • F_CHGTABWIDTH : Funccode.h
  • F_CODECNV_AUTO2SJIS : Funccode.h
  • F_CODECNV_EMAIL : Funccode.h
  • F_CODECNV_EUC2SJIS : Funccode.h
  • F_CODECNV_SJIS2EUC : Funccode.h
  • F_CODECNV_SJIS2JIS : Funccode.h
  • F_CODECNV_SJIS2UTF7 : Funccode.h
  • F_CODECNV_SJIS2UTF8 : Funccode.h
  • F_CODECNV_UNICODE2SJIS : Funccode.h
  • F_CODECNV_UNICODEBE2SJIS : Funccode.h
  • F_CODECNV_UTF72SJIS : Funccode.h
  • F_CODECNV_UTF82SJIS : Funccode.h
  • F_COMPARE : Funccode.h
  • F_COPY : Funccode.h
  • F_COPY_ADDCRLF : Funccode.h
  • F_COPY_CRLF : Funccode.h
  • F_COPYFNAME : Funccode.h
  • F_COPYLINES : Funccode.h
  • F_COPYLINESASPASSAGE : Funccode.h
  • F_COPYLINESWITHLINENUMBER : Funccode.h
  • F_COPYPATH : Funccode.h
  • F_COPYTAG : Funccode.h
  • F_CREATEKEYBINDLIST : Funccode.h
  • F_CTRL_CODE_DIALOG : Funccode.h
  • F_CURLINECENTER : Funccode.h
  • F_CUSTMENU_1 : Funccode.h
  • F_CUSTMENU_10 : Funccode.h
  • F_CUSTMENU_11 : Funccode.h
  • F_CUSTMENU_12 : Funccode.h
  • F_CUSTMENU_13 : Funccode.h
  • F_CUSTMENU_14 : Funccode.h
  • F_CUSTMENU_15 : Funccode.h
  • F_CUSTMENU_16 : Funccode.h
  • F_CUSTMENU_17 : Funccode.h
  • F_CUSTMENU_18 : Funccode.h
  • F_CUSTMENU_19 : Funccode.h
  • F_CUSTMENU_2 : Funccode.h
  • F_CUSTMENU_20 : Funccode.h
  • F_CUSTMENU_21 : Funccode.h
  • F_CUSTMENU_22 : Funccode.h
  • F_CUSTMENU_23 : Funccode.h
  • F_CUSTMENU_24 : Funccode.h
  • F_CUSTMENU_3 : Funccode.h
  • F_CUSTMENU_4 : Funccode.h
  • F_CUSTMENU_5 : Funccode.h
  • F_CUSTMENU_6 : Funccode.h
  • F_CUSTMENU_7 : Funccode.h
  • F_CUSTMENU_8 : Funccode.h
  • F_CUSTMENU_9 : Funccode.h
  • F_CUSTMENU_BASE : Funccode.h
  • F_CUT : Funccode.h
  • F_CUT_LINE : Funccode.h
  • F_DELETE : Funccode.h
  • F_DELETE_BACK : Funccode.h
  • F_DELETE_LINE : Funccode.h
  • F_DIFF : Funccode.h
  • F_DIFF_DIALOG : Funccode.h
  • F_DIFF_NEXT : Funccode.h
  • F_DIFF_PREV : Funccode.h
  • F_DIFF_RESET : Funccode.h
  • F_DIRECT_TAGJUMP : Funccode.h
  • F_DISABLE : Funccode.h
  • F_DOWN : Funccode.h
  • F_DOWN2 : Funccode.h
  • F_DOWN2_SEL : Funccode.h
  • F_DOWN_SEL : Funccode.h
  • F_DUPLICATELINE : Funccode.h
  • F_EXECCOMMAND : Funccode.h
  • F_EXECCOMMAND_DIALOG : Funccode.h
  • F_EXECKEYMACRO : Funccode.h
  • F_EXITALL : Funccode.h
  • F_EXITALLEDITORS : Funccode.h
  • F_EXPANDPARAMETER : Funccode.h
  • F_EXTHELP1 : Funccode.h
  • F_EXTHTMLHELP : Funccode.h
  • F_FAVORITE : Funccode.h
  • F_FILE_REOPEN : Funccode.h
  • F_FILE_REOPEN_EUC : Funccode.h
  • F_FILE_REOPEN_JIS : Funccode.h
  • F_FILE_REOPEN_SJIS : Funccode.h
  • F_FILE_REOPEN_UNICODE : Funccode.h
  • F_FILE_REOPEN_UNICODEBE : Funccode.h
  • F_FILE_REOPEN_UTF7 : Funccode.h
  • F_FILE_REOPEN_UTF8 : Funccode.h
  • F_FILECLOSE : Funccode.h
  • F_FILECLOSE_OPEN : Funccode.h
  • F_FILENEW : Funccode.h
  • F_FILEOPEN : Funccode.h
  • F_FILEOPEN_DROPDOWN : Funccode.h
  • F_FILESAVE : Funccode.h
  • F_FILESAVE_QUIET : Funccode.h
  • F_FILESAVEALL : Funccode.h
  • F_FILESAVEAS : Funccode.h
  • F_FILESAVEAS_DIALOG : Funccode.h
  • F_FILESAVECLOSE : Funccode.h
  • F_FONT : Funccode.h
  • F_FUNCTION_FIRST : Funccode.h
  • F_GETCHARCODE : Funccode.h
  • F_GETFILENAME : Funccode.h
  • F_GETLINECODE : Funccode.h
  • F_GETLINECOUNT : Funccode.h
  • F_GETLINESTR : Funccode.h
  • F_GETSELCOLMFROM : Funccode.h
  • F_GETSELCOLMTO : Funccode.h
  • F_GETSELECTED : Funccode.h
  • F_GETSELLINEFROM : Funccode.h
  • F_GETSELLINETO : Funccode.h
  • F_GOFILEEND : Funccode.h
  • F_GOFILEEND_SEL : Funccode.h
  • F_GOFILETOP : Funccode.h
  • F_GOFILETOP_SEL : Funccode.h
  • F_GOLINEEND : Funccode.h
  • F_GOLINEEND_SEL : Funccode.h
  • F_GOLINETOP : Funccode.h
  • F_GOLINETOP_SEL : Funccode.h
  • F_GONEXTPARAGRAPH : Funccode.h
  • F_GONEXTPARAGRAPH_SEL : Funccode.h
  • F_GOPREVPARAGRAPH : Funccode.h
  • F_GOPREVPARAGRAPH_SEL : Funccode.h
  • F_GREP : Funccode.h
  • F_GREP_DIALOG : Funccode.h
  • F_GROUPCLOSE : Funccode.h
  • F_HalfPageDown : Funccode.h
  • F_HalfPageDown_Sel : Funccode.h
  • F_HalfPageUp : Funccode.h
  • F_HalfPageUp_Sel : Funccode.h
  • F_HANKATATOZENKAKUHIRA : Funccode.h
  • F_HANKATATOZENKAKUKATA : Funccode.h
  • F_HELP_CONTENTS : Funccode.h
  • F_HELP_SEARCH : Funccode.h
  • F_HOKAN : Funccode.h
  • F_IME_CHAR : Funccode.h
  • F_INDENT_SPACE : Funccode.h
  • F_INDENT_TAB : Funccode.h
  • F_INS_DATE : Funccode.h
  • F_INS_TIME : Funccode.h
  • F_INSFILE : Funccode.h
  • F_INSTEXT : Funccode.h
  • F_ISEARCH_ADD_CHAR : Funccode.h
  • F_ISEARCH_ADD_STR : Funccode.h
  • F_ISEARCH_DEL_BACK : Funccode.h
  • F_ISEARCH_MIGEMO_NEXT : Funccode.h
  • F_ISEARCH_MIGEMO_PREV : Funccode.h
  • F_ISEARCH_NEXT : Funccode.h
  • F_ISEARCH_PREV : Funccode.h
  • F_ISEARCH_REGEXP_NEXT : Funccode.h
  • F_ISEARCH_REGEXP_PREV : Funccode.h
  • F_ISINSMODE : Funccode.h
  • F_ISPOSSIBLEREDO : Funccode.h
  • F_ISPOSSIBLEUNDO : Funccode.h
  • F_ISTEXTSELECTED : Funccode.h
  • F_JUMP : Funccode.h
  • F_JUMP_DIALOG : Funccode.h
  • F_JUMP_SRCHSTARTPOS : Funccode.h
  • F_JUMPHIST_NEXT : Funccode.h
  • F_JUMPHIST_PREV : Funccode.h
  • F_JUMPHIST_SET : Funccode.h
  • F_LEFT : Funccode.h
  • F_LEFT_SEL : Funccode.h
  • F_LineCutToEnd : Funccode.h
  • F_LineCutToStart : Funccode.h
  • F_LineDeleteToEnd : Funccode.h
  • F_LineDeleteToStart : Funccode.h
  • F_LOADKEYMACRO : Funccode.h
  • F_LTRIM : Funccode.h
  • F_MAXIMIZE_H : Funccode.h
  • F_MAXIMIZE_V : Funccode.h
  • F_MENU_ALLFUNC : Funccode.h
  • F_MENU_NOT_USED_FIRST : Funccode.h
  • F_MENU_RBUTTON : Funccode.h
  • F_MERGE : Funccode.h
  • F_MINIMIZE_ALL : Funccode.h
  • F_NEXTGROUP : Funccode.h
  • F_NEXTWINDOW : Funccode.h
  • F_NOWOPENFILE : Funccode.h
  • F_OPEN_CCPP : Funccode.h
  • F_OPEN_HfromtoC : Funccode.h
  • F_OPEN_HHPP : Funccode.h
  • F_OPTION : Funccode.h
  • F_OPTION_BACKUP : Funccode.h
  • F_OPTION_CUSTMENU : Funccode.h
  • F_OPTION_EDIT : Funccode.h
  • F_OPTION_FILE : Funccode.h
  • F_OPTION_FNAME : Funccode.h
  • F_OPTION_FORMAT : Funccode.h
  • F_OPTION_GENERAL : Funccode.h
  • F_OPTION_GREP : Funccode.h
  • F_OPTION_HELPER : Funccode.h
  • F_OPTION_KEYBIND : Funccode.h
  • F_OPTION_KEYWORD : Funccode.h
  • F_OPTION_MACRO : Funccode.h
  • F_OPTION_TAB : Funccode.h
  • F_OPTION_TOOLBAR : Funccode.h
  • F_OPTION_TYPE : Funccode.h
  • F_OPTION_WINDOW : Funccode.h
  • F_OUTLINE : Funccode.h
  • F_OUTLINE_TOGGLE : Funccode.h
  • F_PASTE : Funccode.h
  • F_PASTEBOX : Funccode.h
  • F_PLSQL_COMPILE_ON_SQLPLUS : Funccode.h
  • F_PREVGROUP : Funccode.h
  • F_PREVWINDOW : Funccode.h
  • F_PRINT : Funccode.h
  • F_PRINT_PAGESETUP : Funccode.h
  • F_PRINT_PREVIEW : Funccode.h
  • F_PROPERTY_FILE : Funccode.h
  • F_PUTFILE : Funccode.h
  • F_READONLY : Funccode.h
  • F_RECENTFILE : Funccode.h
  • F_RECENTFOLDER : Funccode.h
  • F_RECKEYMACRO : Funccode.h
  • F_RECONVERT : Funccode.h
  • F_REDO : Funccode.h
  • F_REDRAW : Funccode.h
  • F_REPLACE : Funccode.h
  • F_REPLACE_ALL : Funccode.h
  • F_REPLACE_DIALOG : Funccode.h
  • F_RIGHT : Funccode.h
  • F_RIGHT_SEL : Funccode.h
  • F_RTRIM : Funccode.h
  • F_SAVEKEYMACRO : Funccode.h
  • F_SEARCH_BOX : Funccode.h
  • F_SEARCH_CLEARMARK : Funccode.h
  • F_SEARCH_DIALOG : Funccode.h
  • F_SEARCH_NEXT : Funccode.h
  • F_SEARCH_PREV : Funccode.h
  • F_SELECTALL : Funccode.h
  • F_SELECTWORD : Funccode.h
  • F_SEPARATOR : Funccode.h
  • F_SET_QUOTESTRING : Funccode.h
  • F_SHOWFUNCKEY : Funccode.h
  • F_SHOWSTATUSBAR : Funccode.h
  • F_SHOWTAB : Funccode.h
  • F_SHOWTOOLBAR : Funccode.h
  • F_SORT_ASC : Funccode.h
  • F_SORT_DESC : Funccode.h
  • F_SPACETOTAB : Funccode.h
  • F_SPLIT_H : Funccode.h
  • F_SPLIT_V : Funccode.h
  • F_SPLIT_VH : Funccode.h
  • F_TAB_JOINTNEXT : Funccode.h
  • F_TAB_JOINTPREV : Funccode.h
  • F_TAB_MOVELEFT : Funccode.h
  • F_TAB_MOVERIGHT : Funccode.h
  • F_TAB_SEPARATE : Funccode.h
  • F_TABTOSPACE : Funccode.h
  • F_TAGJUMP : Funccode.h
  • F_TAGJUMP_CLOSE : Funccode.h
  • F_TAGJUMP_KEYWORD : Funccode.h
  • F_TAGJUMP_LIST : Funccode.h
  • F_TAGJUMPBACK : Funccode.h
  • F_TAGS_MAKE : Funccode.h
  • F_TILE_H : Funccode.h
  • F_TILE_V : Funccode.h
  • F_TOGGLE_KEY_SEARCH : Funccode.h
  • F_TOHANEI : Funccode.h
  • F_TOHANKAKU : Funccode.h
  • F_TOHANKATA : Funccode.h
  • F_TOLOWER : Funccode.h
  • F_TOPMOST : Funccode.h
  • F_TOUPPER : Funccode.h
  • F_TOZENEI : Funccode.h
  • F_TOZENKAKUHIRA : Funccode.h
  • F_TOZENKAKUKATA : Funccode.h
  • F_TRACEOUT : Funccode.h
  • F_TYPE_COLOR : Funccode.h
  • F_TYPE_HELPER : Funccode.h
  • F_TYPE_KEYHELP : Funccode.h
  • F_TYPE_LIST : Funccode.h
  • F_TYPE_REGEX_KEYWORD : Funccode.h
  • F_TYPE_SCREEN : Funccode.h
  • F_UNDO : Funccode.h
  • F_UNINDENT_SPACE : Funccode.h
  • F_UNINDENT_TAB : Funccode.h
  • F_UP : Funccode.h
  • F_UP2 : Funccode.h
  • F_UP2_SEL : Funccode.h
  • F_UP_SEL : Funccode.h
  • F_USERMACRO_0 : Funccode.h
  • F_UUDECODE : Funccode.h
  • F_WIN_CLOSEALL : Funccode.h
  • F_WIN_OUTPUT : Funccode.h
  • F_WINCLOSE : Funccode.h
  • F_WINLIST : Funccode.h
  • F_WndScrollDown : Funccode.h
  • F_WndScrollUp : Funccode.h
  • F_WordCut : Funccode.h
  • F_WordDelete : Funccode.h
  • F_WordDeleteToEnd : Funccode.h
  • F_WordDeleteToStart : Funccode.h
  • F_WORDLEFT : Funccode.h
  • F_WORDLEFT_SEL : Funccode.h
  • F_WORDRIGHT : Funccode.h
  • F_WORDRIGHT_SEL : Funccode.h
  • F_WRAPWINDOWWIDTH : Funccode.h
  • FALSE : global.h
  • FID_RECONVERT_VERSION : CEditView_Command_New.cpp
  • FillSolidRect() : CMenuDrawer.cpp, CImageListMgr.cpp
  • FN_APP_ICON : global.h
  • FN_GREP_ICON : global.h
  • FN_TOOL_BMP : global.h
  • FOOTER_MAX : CShareData.h
  • FuncID_To_HelpContextID() : etc_uty.h, etc_uty.cpp
  • FUNCINFO_NOCLIPTEXT : CFuncInfo.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- g -

  • g_cHtmlHelp : etc_uty.cpp
  • g_ColorAttributeArr : global.h, global.cpp
  • g_m_pCEditApp : CEditApp.cpp
  • g_m_pcEditView : CEditView.cpp
  • g_pOldToolBarWndProc : CEditWnd.cpp
  • g_pOnFolderProc : CDlgGrep.cpp
  • GA_PARENT : etc_uty.h
  • GA_ROOT : etc_uty.h
  • GA_ROOTOWNER : etc_uty.h
  • GetAbsolutePath() : etc_uty.h
  • GetAlignmentSize() : CKeyWordSetMgr.cpp
  • GetAppIcon() : etc_uty.h, etc_uty.cpp
  • GetAppVersionInfo() : etc_uty.h, etc_uty.cpp
  • GetCharLen_eucjp() : charcode.cpp
  • GetCharLen_sjis() : charcode.cpp
  • GetCharLen_utf8() : charcode.cpp
  • GetCharLenR_sjis() : charcode.cpp
  • GetColorIndexByName() : etc_uty.h, etc_uty.cpp
  • GetColorNameByIndex() : etc_uty.h, etc_uty.cpp
  • GetComctl32Version() : etc_uty.h, etc_uty.cpp
  • getCtrlKeyState() : etc_uty.h, etc_uty.cpp
  • GetDateTimeFormat() : etc_uty.h, etc_uty.cpp
  • GetDllVersion() : etc_uty.h, etc_uty.cpp
  • GetEncdInf_EucJp() : charcode.cpp
  • GetEncdInf_Jis() : charcode.cpp
  • GetEncdInf_SJis() : charcode.cpp
  • GetEncdInf_Uni() : charcode.cpp
  • GetEncdInf_Utf7() : charcode.cpp
  • GetEncdInf_Utf8() : charcode.cpp
  • GetExedir() : etc_uty.h, etc_uty.cpp
  • GetExistPath() : MY_SP.C
  • GetExistPath_AV_Drive : MY_SP.C
  • GetExistPath_IV_Drive : MY_SP.C
  • GetExistPath_NO_DriveLetter : MY_SP.C
  • GetFileName() : CPropTypesKeyHelp.cpp
  • GetGlobalData() : CEditView.cpp
  • GetHelpFilePath() : etc_uty.h, etc_uty.cpp
  • GetInidir() : etc_uty.h, etc_uty.cpp
  • GetInidirOrExedir() : etc_uty.h, etc_uty.cpp
  • GetJisESCSeqData() : charcode.cpp
  • GetJisESCSeqLen() : charcode.cpp
  • GetLastWriteTimestamp() : etc_uty.h, etc_uty.cpp
  • GetLineColm() : etc_uty.h, etc_uty.cpp
  • GetLongFileName() : etc_uty.h, etc_uty.cpp
  • GetMonitorWorkRect() : etc_uty.h, etc_uty.cpp
  • GetNextLimitedLengthText() : etc_uty.h, etc_uty.cpp
  • GetNextLine() : etc_uty.h, etc_uty.cpp
  • GetSpecialFolderPath() : etc_uty.h, etc_uty.cpp
  • GetSystemResources() : etc_uty.h, etc_uty.cpp
  • GetWindowLongPtr : global.h
  • GFSR_GDIRESOURCES : etc_uty.cpp
  • GFSR_SYSTEMRESOURCES : etc_uty.cpp
  • GFSR_USERRESOURCES : etc_uty.cpp
  • gm_keyword_char : global.h, global.cpp
  • gm_nCodeComboNameArrNum : global.h, global.cpp
  • gm_nCodeComboValueArr : global.h, global.cpp
  • gm_pCWnd : CWnd.h, CWnd.cpp
  • gm_pnEolTypeArr : global.h, global.cpp
  • gm_pOldWndProc : CTabWnd.cpp
  • gm_pszCodeComboNameArr : global.h, global.cpp
  • gm_pszCodeNameArr_1 : global.h, global.cpp
  • gm_pszCodeNameArr_2 : global.h, global.cpp
  • gm_pszCodeNameArr_3 : global.h, global.cpp
  • gm_wpHokanListProc : CHokanMgr.cpp
  • GSTR_APPNAME : global.h, global.cpp
  • GSTR_CEDITAPP : global.h
  • GSTR_CSHAREDATA : global.h
  • GSTR_EDITWINDOWNAME : global.h
  • GSTR_EVENT_SAKURA_CP_INITIALIZED : global.h
  • GSTR_MUTEX_SAKURA : global.h
  • GSTR_MUTEX_SAKURA_CP : global.h
  • GSTR_MUTEX_SAKURA_EDITARR : global.h
  • GSTR_MUTEX_SAKURA_INIT : global.h
  • GuessCharLen_eucjp() : charcode.cpp
  • GuessCharLen_sjis() : charcode.cpp
  • GuessCharLen_utf8() : charcode.cpp
  • GWLP_HINSTANCE : global.h
  • GWLP_USERDATA : global.h
  • GWLP_WNDPROC : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- h -

  • hankakkoarr : CEditView_New2.cpp
  • HDIC_TAGJUMPLIST_KEYWORD : sakura.hh
  • HEADER_MAX : CShareData.h
  • HIDC_ABOUT_BUTTON_CONTACT : sakura.hh
  • HIDC_ABOUT_EDIT_ABOUT : sakura.hh
  • HIDC_BUTTON_ADD : sakura.hh
  • HIDC_BUTTON_ADD_TOOLBAR : sakura.hh
  • HIDC_BUTTON_ADDKEYWORD : sakura.hh
  • HIDC_BUTTON_ADDSET : sakura.hh
  • HIDC_BUTTON_ASSIGN : sakura.hh
  • HIDC_BUTTON_BACKCOLOR : sakura.hh
  • HIDC_BUTTON_BACKUP_FOLDER_REF : sakura.hh
  • HIDC_BUTTON_CLEAR_MRU_FILE : sakura.hh
  • HIDC_BUTTON_CLEAR_MRU_FOLDER : sakura.hh
  • HIDC_BUTTON_CTRLCODE_HELP : sakura.hh
  • HIDC_BUTTON_DELETE : sakura.hh
  • HIDC_BUTTON_DELETE_TOOLBAR : sakura.hh
  • HIDC_BUTTON_DELKEYWORD : sakura.hh
  • HIDC_BUTTON_DELSET : sakura.hh
  • HIDC_BUTTON_DIFF_DST : sakura.hh
  • HIDC_BUTTON_DIFF_HELP : sakura.hh
  • HIDC_BUTTON_DOWN : sakura.hh
  • HIDC_BUTTON_DOWN_TOOLBAR : sakura.hh
  • HIDC_BUTTON_EDITKEYWORD : sakura.hh
  • HIDC_BUTTON_EXPORT : sakura.hh
  • HIDC_BUTTON_EXPORT_COLOR : sakura.hh
  • HIDC_BUTTON_EXPORT_KEYBIND : sakura.hh
  • HIDC_BUTTON_EXPORT_KEYWORD : sakura.hh
  • HIDC_BUTTON_FAVORITE_CLEAR : sakura.hh
  • HIDC_BUTTON_FAVORITE_HELP : sakura.hh
  • HIDC_BUTTON_FNAME_ADD : sakura.hh
  • HIDC_BUTTON_FNAME_DEL : sakura.hh
  • HIDC_BUTTON_FNAME_DOWN : sakura.hh
  • HIDC_BUTTON_FNAME_INS : sakura.hh
  • HIDC_BUTTON_FNAME_LAST : sakura.hh
  • HIDC_BUTTON_FNAME_TOP : sakura.hh
  • HIDC_BUTTON_FNAME_UP : sakura.hh
  • HIDC_BUTTON_FNAME_UPD : sakura.hh
  • HIDC_BUTTON_HOKANFILE_REF : sakura.hh
  • HIDC_BUTTON_IMPORT : sakura.hh
  • HIDC_BUTTON_IMPORT_COLOR : sakura.hh
  • HIDC_BUTTON_IMPORT_KEYBIND : sakura.hh
  • HIDC_BUTTON_IMPORT_KEYWORD : sakura.hh
  • HIDC_BUTTON_INSERT : sakura.hh
  • HIDC_BUTTON_INSERT_TOOLBAR : sakura.hh
  • HIDC_BUTTON_INSERTSEPARATOR : sakura.hh
  • HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR : sakura.hh
  • HIDC_BUTTON_INSERTWRAP : sakura.hh
  • HIDC_BUTTON_KEYCLEAN : sakura.hh
  • HIDC_BUTTON_KEYHELP_DEL : sakura.hh
  • HIDC_BUTTON_KEYHELP_DOWN : sakura.hh
  • HIDC_BUTTON_KEYHELP_EXPORT : sakura.hh
  • HIDC_BUTTON_KEYHELP_IMPORT : sakura.hh
  • HIDC_BUTTON_KEYHELP_INS : sakura.hh
  • HIDC_BUTTON_KEYHELP_LAST : sakura.hh
  • HIDC_BUTTON_KEYHELP_REF : sakura.hh
  • HIDC_BUTTON_KEYHELP_TOP : sakura.hh
  • HIDC_BUTTON_KEYHELP_UP : sakura.hh
  • HIDC_BUTTON_KEYHELP_UPD : sakura.hh
  • HIDC_BUTTON_KEYSETRENAME : sakura.hh
  • HIDC_BUTTON_KEYWORD_SELECT : sakura.hh
  • HIDC_BUTTON_KEYWORDHELPFONT : sakura.hh
  • HIDC_BUTTON_OPENEXTHTMLHELP : sakura.hh
  • HIDC_BUTTON_OPENHELP1 : sakura.hh
  • HIDC_BUTTON_OPENMDICT : sakura.hh
  • HIDC_BUTTON_OPENMDLL : sakura.hh
  • HIDC_BUTTON_REGEX_ADD : sakura.hh
  • HIDC_BUTTON_REGEX_DEL : sakura.hh
  • HIDC_BUTTON_REGEX_DOWN : sakura.hh
  • HIDC_BUTTON_REGEX_EXPORT : sakura.hh
  • HIDC_BUTTON_REGEX_IMPORT : sakura.hh
  • HIDC_BUTTON_REGEX_INS : sakura.hh
  • HIDC_BUTTON_REGEX_LAST : sakura.hh
  • HIDC_BUTTON_REGEX_TOP : sakura.hh
  • HIDC_BUTTON_REGEX_UP : sakura.hh
  • HIDC_BUTTON_REGEX_UPD : sakura.hh
  • HIDC_BUTTON_RELEASE : sakura.hh
  • HIDC_BUTTON_RULEFILE_REF : sakura.hh
  • HIDC_BUTTON_SAMEBKCOLOR : sakura.hh
  • HIDC_BUTTON_SAMECOLOR_HELP : sakura.hh
  • HIDC_BUTTON_SAMECOLOR_SELALL : sakura.hh
  • HIDC_BUTTON_SAMECOLOR_SELNOTING : sakura.hh
  • HIDC_BUTTON_SAMETEXTCOLOR : sakura.hh
  • HIDC_BUTTON_TAG_MAKE_HELP : sakura.hh
  • HIDC_BUTTON_TAG_MAKE_REF : sakura.hh
  • HIDC_BUTTON_TAGJUMPLIST_HELP : sakura.hh
  • HIDC_BUTTON_TEXTCOLOR : sakura.hh
  • HIDC_BUTTON_TYPEOPENEXTHTMLHELP : sakura.hh
  • HIDC_BUTTON_TYPEOPENHELP : sakura.hh
  • HIDC_BUTTON_UP : sakura.hh
  • HIDC_BUTTON_UP_TOOLBAR : sakura.hh
  • HIDC_BUTTON_WINSIZE : sakura.hh
  • HIDC_BUTTON_WINSIZE_HELP : sakura.hh
  • HIDC_CHECK_ADDCRLFWHENCOPY : sakura.hh
  • HIDC_CHECK_AlertIfFileNotExist : sakura.hh
  • HIDC_CHECK_ALT : sakura.hh
  • HIDC_CHECK_AutoMIMEDecode : sakura.hh
  • HIDC_CHECK_AUTOSAVE : sakura.hh
  • HIDC_CHECK_BACKUP : sakura.hh
  • HIDC_CHECK_BACKUP_ADVANCED : sakura.hh
  • HIDC_CHECK_BACKUP_DAY : sakura.hh
  • HIDC_CHECK_BACKUP_DUSTBOX : sakura.hh
  • HIDC_CHECK_BACKUP_HOUR : sakura.hh
  • HIDC_CHECK_BACKUP_MIN : sakura.hh
  • HIDC_CHECK_BACKUP_MONTH : sakura.hh
  • HIDC_CHECK_BACKUP_RETAINEXT : sakura.hh
  • HIDC_CHECK_BACKUP_SEC : sakura.hh
  • HIDC_CHECK_BACKUP_YEAR : sakura.hh
  • HIDC_CHECK_BACKUPDIALOG : sakura.hh
  • HIDC_CHECK_BACKUPFOLDER : sakura.hh
  • HIDC_CHECK_bCaretTextForSearch : sakura.hh
  • HIDC_CHECK_bCheckFileTimeStamp : sakura.hh
  • HIDC_CHECK_bDropFileAndClose : sakura.hh
  • HIDC_CHECK_bGrepExitConfirm : sakura.hh
  • HIDC_CHECK_bMenuIcon : sakura.hh
  • HIDC_CHECK_bNotOverWriteCRLF : sakura.hh
  • HIDC_CHECK_bScrollBarHorz : sakura.hh
  • HIDC_CHECK_bSelectClickedURL : sakura.hh
  • HIDC_CHECK_ChgWndByWheel : sakura.hh
  • HIDC_CHECK_CLICKKEYSEARCH : sakura.hh
  • HIDC_CHECK_CLOSEALLCONFIRM : sakura.hh
  • HIDC_CHECK_CloseOneWin : sakura.hh
  • HIDC_CHECK_COPYnDISABLESELECTEDAREA : sakura.hh
  • HIDC_CHECK_CTRL : sakura.hh
  • HIDC_CHECK_DIFF_EXEC_STATE : sakura.hh
  • HIDC_CHECK_DIFF_NOTIFYNOTFOUND : sakura.hh
  • HIDC_CHECK_DIFF_OPT_BLINE : sakura.hh
  • HIDC_CHECK_DIFF_OPT_CASE : sakura.hh
  • HIDC_CHECK_DIFF_OPT_SPACE : sakura.hh
  • HIDC_CHECK_DIFF_OPT_SPCCHG : sakura.hh
  • HIDC_CHECK_DIFF_OPT_TABSPC : sakura.hh
  • HIDC_CHECK_DIFF_SEARCHALL : sakura.hh
  • HIDC_CHECK_DISP : sakura.hh
  • HIDC_CHECK_DispFUNCKEYWND : sakura.hh
  • HIDC_CHECK_DispSTATUSBAR : sakura.hh
  • HIDC_CHECK_DispTabIcon : sakura.hh
  • HIDC_CHECK_DispTabWnd : sakura.hh
  • HIDC_CHECK_DispTabWndMultiWin : sakura.hh
  • HIDC_CHECK_DispTOOLBAR : sakura.hh
  • HIDC_CHECK_DOCICON : sakura.hh
  • HIDC_CHECK_DRAGDROP : sakura.hh
  • HIDC_CHECK_DROPSOURCE : sakura.hh
  • HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE : sakura.hh
  • HIDC_CHECK_EXCVLUSIVE_NO : sakura.hh
  • HIDC_CHECK_EXCVLUSIVE_READWRITE : sakura.hh
  • HIDC_CHECK_EXCVLUSIVE_WRITE : sakura.hh
  • HIDC_CHECK_EXITCONFIRM : sakura.hh
  • HIDC_CHECK_FAT : sakura.hh
  • HIDC_CHECK_FREECARET : sakura.hh
  • HIDC_CHECK_GREPREALTIME : sakura.hh
  • HIDC_CHECK_GTJW_LDBLCLK : sakura.hh
  • HIDC_CHECK_GTJW_RETURN : sakura.hh
  • HIDC_CHECK_HOKANBYFILE : sakura.hh
  • HIDC_CHECK_HOKANLOHICASE : sakura.hh
  • HIDC_CHECK_HTMLHELPISSINGLE : sakura.hh
  • HIDC_CHECK_INDENT : sakura.hh
  • HIDC_CHECK_INDENT_WSPACE : sakura.hh
  • HIDC_CHECK_INS_SPACE : sakura.hh
  • HIDC_CHECK_KEYHELP : sakura.hh
  • HIDC_CHECK_KEYHELP_ALLSEARCH : sakura.hh
  • HIDC_CHECK_KEYHELP_KEYDISP : sakura.hh
  • HIDC_CHECK_KEYHELP_PREFIX : sakura.hh
  • HIDC_CHECK_KEYWORDCASE : sakura.hh
  • HIDC_CHECK_KINSOKUHEAD : sakura.hh
  • HIDC_CHECK_KINSOKUKUTO : sakura.hh
  • HIDC_CHECK_KINSOKURET : sakura.hh
  • HIDC_CHECK_KINSOKUTAIL : sakura.hh
  • HIDC_CHECK_LCPOS : sakura.hh
  • HIDC_CHECK_LCPOS2 : sakura.hh
  • HIDC_CHECK_LCPOS3 : sakura.hh
  • HIDC_CHECK_m_bHokanKey_RETURN : sakura.hh
  • HIDC_CHECK_m_bHokanKey_RIGHT : sakura.hh
  • HIDC_CHECK_m_bHokanKey_SPACE : sakura.hh
  • HIDC_CHECK_m_bHokanKey_TAB : sakura.hh
  • HIDC_CHECK_NoFilterSaveFile : sakura.hh
  • HIDC_CHECK_NoFilterSaveNew : sakura.hh
  • HIDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE : sakura.hh
  • HIDC_CHECK_QueryIfCodeChange : sakura.hh
  • HIDC_CHECK_REGEX : sakura.hh
  • HIDC_CHECK_RELOADWHENEXECUTE : sakura.hh
  • HIDC_CHECK_REPEATEDSCROLLSMOOTH : sakura.hh
  • HIDC_CHECK_RestoreBookmarks : sakura.hh
  • HIDC_CHECK_RestoreCurPosition : sakura.hh
  • HIDC_CHECK_RetainEmptyWindow : sakura.hh
  • HIDC_CHECK_RTRIM_PREVLINE : sakura.hh
  • HIDC_CHECK_SameTabWidth : sakura.hh
  • HIDC_CHECK_SENDSTDIN : sakura.hh
  • HIDC_CHECK_SHIFT : sakura.hh
  • HIDC_CHECK_SortTabList : sakura.hh
  • HIDC_CHECK_SplitterWndHScroll : sakura.hh
  • HIDC_CHECK_SplitterWndVScroll : sakura.hh
  • HIDC_CHECK_STAYTASKTRAY : sakura.hh
  • HIDC_CHECK_STOPS_PARAGRAPH : sakura.hh
  • HIDC_CHECK_STOPS_WORD : sakura.hh
  • HIDC_CHECK_TAB_ARROW : sakura.hh
  • HIDC_CHECK_TAG_MAKE_RECURSE : sakura.hh
  • HIDC_CHECK_TOOLBARISFLAT : sakura.hh
  • HIDC_CHECK_TYPEHTMLHELPISSINGLE : sakura.hh
  • HIDC_CHECK_UNDERLINE : sakura.hh
  • HIDC_CHECK_USEHOKAN : sakura.hh
  • HIDC_CHECK_USETRAYICON : sakura.hh
  • HIDC_CHECK_WINPOS : sakura.hh
  • HIDC_CHECK_WORDWRAP : sakura.hh
  • HIDC_CMP_BUTTON1 : sakura.hh
  • HIDC_CMP_BUTTON_HELP : sakura.hh
  • HIDC_CMP_CHECK_TILE_H : sakura.hh
  • HIDC_CMP_LIST_FILES : sakura.hh
  • HIDC_CMP_STATIC_COMPARESRC : sakura.hh
  • HIDC_COMBO_FUNCKIND : sakura.hh
  • HIDC_COMBO_FUNCKIND_KEYBIND : sakura.hh
  • HIDC_COMBO_FUNCKIND_TOOLBAR : sakura.hh
  • HIDC_COMBO_IMESTATE : sakura.hh
  • HIDC_COMBO_IMESWITCH : sakura.hh
  • HIDC_COMBO_INDENTLAYOUT : sakura.hh
  • HIDC_COMBO_KEYWORD_SELECT : sakura.hh
  • HIDC_COMBO_MACROID : sakura.hh
  • HIDC_COMBO_MENU : sakura.hh
  • HIDC_COMBO_nSortType : sakura.hh
  • HIDC_COMBO_OUTLINES : sakura.hh
  • HIDC_COMBO_REGEX_COLOR : sakura.hh
  • HIDC_COMBO_SET : sakura.hh
  • HIDC_COMBO_SET2_COLOR : sakura.hh
  • HIDC_COMBO_SET_COLOR : sakura.hh
  • HIDC_COMBO_SMARTINDENT : sakura.hh
  • HIDC_COMBO_WINTYPE : sakura.hh
  • HIDC_CTRLCODE_IDCANCEL : sakura.hh
  • HIDC_CTRLCODE_IDOK : sakura.hh
  • HIDC_DIFF_IDCANCEL : sakura.hh
  • HIDC_DIFF_IDOK : sakura.hh
  • HIDC_DLG1_EDIT1 : sakura.hh
  • HIDC_EDIT_AUTOBACKUP_INTERVAL : sakura.hh
  • HIDC_EDIT_BACKUP_3 : sakura.hh
  • HIDC_EDIT_BACKUPFILE : sakura.hh
  • HIDC_EDIT_BACKUPFOLDER : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_FROM : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_FROM2 : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_TO : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_TO2 : sakura.hh
  • HIDC_EDIT_CHARSPACE : sakura.hh
  • HIDC_EDIT_DFORM : sakura.hh
  • HIDC_EDIT_DFORM_EX : sakura.hh
  • HIDC_EDIT_DIFF_DST : sakura.hh
  • HIDC_EDIT_EXTHELP1 : sakura.hh
  • HIDC_EDIT_EXTHTMLHELP : sakura.hh
  • HIDC_EDIT_FNAME_FROM : sakura.hh
  • HIDC_EDIT_FNAME_TO : sakura.hh
  • HIDC_EDIT_FUNCKEYWND_GROUPNUM : sakura.hh
  • HIDC_EDIT_HOKANFILE : sakura.hh
  • HIDC_EDIT_INDENTCHARS : sakura.hh
  • HIDC_EDIT_INYOUKIGOU : sakura.hh
  • HIDC_EDIT_KEYHELP : sakura.hh
  • HIDC_EDIT_KEYSFUNC : sakura.hh
  • HIDC_EDIT_KEYWORDHELPFILE : sakura.hh
  • HIDC_EDIT_KINSOKUHEAD : sakura.hh
  • HIDC_EDIT_KINSOKUTAIL : sakura.hh
  • HIDC_EDIT_LINECOMMENT : sakura.hh
  • HIDC_EDIT_LINECOMMENT2 : sakura.hh
  • HIDC_EDIT_LINECOMMENT3 : sakura.hh
  • HIDC_EDIT_LINECOMMENTPOS : sakura.hh
  • HIDC_EDIT_LINECOMMENTPOS2 : sakura.hh
  • HIDC_EDIT_LINECOMMENTPOS3 : sakura.hh
  • HIDC_EDIT_LINESPACE : sakura.hh
  • HIDC_EDIT_LINETERMCHAR : sakura.hh
  • HIDC_EDIT_MAX_MRU_FILE : sakura.hh
  • HIDC_EDIT_MAX_MRU_FOLDER : sakura.hh
  • HIDC_EDIT_MAXLINELEN : sakura.hh
  • HIDC_EDIT_MIDASHIKIGOU : sakura.hh
  • HIDC_EDIT_MIGEMO_DICT : sakura.hh
  • HIDC_EDIT_MIGEMO_DLL : sakura.hh
  • HIDC_EDIT_nDropFileNumMax : sakura.hh
  • HIDC_EDIT_nLineNumberRightSpace : sakura.hh
  • HIDC_EDIT_nRulerBottomSpace : sakura.hh
  • HIDC_EDIT_nRulerHeight : sakura.hh
  • HIDC_EDIT_OUTLINERULEFILE : sakura.hh
  • HIDC_EDIT_REGEX : sakura.hh
  • HIDC_EDIT_REGEXPLIB : sakura.hh
  • HIDC_EDIT_REPEATEDSCROLLLINENUM : sakura.hh
  • HIDC_EDIT_SX : sakura.hh
  • HIDC_EDIT_SY : sakura.hh
  • HIDC_EDIT_TABSPACE : sakura.hh
  • HIDC_EDIT_TABVIEWSTRING : sakura.hh
  • HIDC_EDIT_TAG_MAKE_CMDLINE : sakura.hh
  • HIDC_EDIT_TAG_MAKE_FOLDER : sakura.hh
  • HIDC_EDIT_TFORM : sakura.hh
  • HIDC_EDIT_TFORM_EX : sakura.hh
  • HIDC_EDIT_TYPEEXTHELP : sakura.hh
  • HIDC_EDIT_TYPEEXTHTMLHELP : sakura.hh
  • HIDC_EDIT_TYPEEXTS : sakura.hh
  • HIDC_EDIT_TYPENAME : sakura.hh
  • HIDC_EDIT_VERTLINE : sakura.hh
  • HIDC_EDIT_WX : sakura.hh
  • HIDC_EDIT_WY : sakura.hh
  • HIDC_EXEC_BUTTON_HELP : sakura.hh
  • HIDC_EXEC_BUTTON_REFERENCE : sakura.hh
  • HIDC_EXEC_CHECK_GETSTDOUT : sakura.hh
  • HIDC_EXEC_COMBO_m_szCommand : sakura.hh
  • HIDC_FAVORITE_IDCANCEL : sakura.hh
  • HIDC_FAVORITE_IDOK : sakura.hh
  • HIDC_FIND_BUTTON_HELP : sakura.hh
  • HIDC_FIND_BUTTON_SEARCHNEXT : sakura.hh
  • HIDC_FIND_BUTTON_SEARCHPREV : sakura.hh
  • HIDC_FIND_BUTTON_SETMARK : sakura.hh
  • HIDC_FIND_CHECK_bAutoCloseDlgFind : sakura.hh
  • HIDC_FIND_CHECK_NOTIFYNOTFOUND : sakura.hh
  • HIDC_FIND_CHECK_SEARCHALL : sakura.hh
  • HIDC_FIND_CHK_LOHICASE : sakura.hh
  • HIDC_FIND_CHK_REGULAREXP : sakura.hh
  • HIDC_FIND_CHK_WORD : sakura.hh
  • HIDC_FIND_COMBO_TEXT : sakura.hh
  • HIDC_FIND_STATIC_JRE32VER : sakura.hh
  • HIDC_FL_BUTTON_COPY : sakura.hh
  • HIDC_FL_BUTTON_HELP : sakura.hh
  • HIDC_FL_BUTTON_WINSIZE : sakura.hh
  • HIDC_FL_CHECK_bAutoCloseDlgFuncList : sakura.hh
  • HIDC_FL_CHECK_bFunclistSetFocusOnJump : sakura.hh
  • HIDC_FL_CHECK_bMarkUpBlankLineEnable : sakura.hh
  • HIDC_FL_LIST1 : sakura.hh
  • HIDC_FL_TREE1 : sakura.hh
  • HIDC_GREP_BUTTON_CURRENTFOLDER : sakura.hh
  • HIDC_GREP_BUTTON_FOLDER : sakura.hh
  • HIDC_GREP_BUTTON_HELP : sakura.hh
  • HIDC_GREP_CHK_DEFAULTFOLDER : sakura.hh
  • HIDC_GREP_CHK_FROMTHISTEXT : sakura.hh
  • HIDC_GREP_CHK_LOHICASE : sakura.hh
  • HIDC_GREP_CHK_REGULAREXP : sakura.hh
  • HIDC_GREP_CHK_SUBFOLDER : sakura.hh
  • HIDC_GREP_CHK_WORD : sakura.hh
  • HIDC_GREP_COMBO_CHARSET : sakura.hh
  • HIDC_GREP_COMBO_FILE : sakura.hh
  • HIDC_GREP_COMBO_FOLDER : sakura.hh
  • HIDC_GREP_COMBO_TEXT : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTLINE : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTMARKED : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTSTYLE1 : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTSTYLE2 : sakura.hh
  • HIDC_GREP_STATIC_JRE32VER : sakura.hh
  • HIDC_HOTKEY_TRAYMENU : sakura.hh
  • HIDC_JUMP_BUTTON_HELP : sakura.hh
  • HIDC_JUMP_BUTTON_JUMP : sakura.hh
  • HIDC_JUMP_CHECK_PLSQL : sakura.hh
  • HIDC_JUMP_COMBO_PLSQLBLOCKS : sakura.hh
  • HIDC_JUMP_EDIT_LINENUM : sakura.hh
  • HIDC_JUMP_EDIT_PLSQL_E1 : sakura.hh
  • HIDC_JUMP_RADIO_LINENUM_CRLF : sakura.hh
  • HIDC_JUMP_RADIO_LINENUM_LAYOUT : sakura.hh
  • HIDC_LABEL_REGEX_VERSION : sakura.hh
  • HIDC_LABEL_REGEXPVER : sakura.hh
  • HIDC_LIST_ASSIGNEDKEYS : sakura.hh
  • HIDC_LIST_COLORS : sakura.hh
  • HIDC_LIST_CTRLCODE : sakura.hh
  • HIDC_LIST_DIFF_FILES : sakura.hh
  • HIDC_LIST_FAVORITE_CMD : sakura.hh
  • HIDC_LIST_FAVORITE_FILE : sakura.hh
  • HIDC_LIST_FAVORITE_FOLDER : sakura.hh
  • HIDC_LIST_FAVORITE_GREPFILE : sakura.hh
  • HIDC_LIST_FAVORITE_GREPFOLDER : sakura.hh
  • HIDC_LIST_FAVORITE_REPLACE : sakura.hh
  • HIDC_LIST_FAVORITE_SEARCH : sakura.hh
  • HIDC_LIST_FNAME : sakura.hh
  • HIDC_LIST_FUNC : sakura.hh
  • HIDC_LIST_FUNC_KEYBIND : sakura.hh
  • HIDC_LIST_FUNC_TOOLBAR : sakura.hh
  • HIDC_LIST_KEY : sakura.hh
  • HIDC_LIST_KEYHELP : sakura.hh
  • HIDC_LIST_KEYWORD : sakura.hh
  • HIDC_LIST_REGEX : sakura.hh
  • HIDC_LIST_RES : sakura.hh
  • HIDC_LIST_RES_TOOLBAR : sakura.hh
  • HIDC_LIST_SAMECOLOR_COLORS : sakura.hh
  • HIDC_LIST_SAMECOLOR_ITEMINFO : sakura.hh
  • HIDC_LIST_TAGJUMPLIST : sakura.hh
  • HIDC_MACRO_REG : sakura.hh
  • HIDC_MACRODIR : sakura.hh
  • HIDC_MACRODIRREF : sakura.hh
  • HIDC_MACROLIST : sakura.hh
  • HIDC_MACRONAME : sakura.hh
  • HIDC_MACROPATH : sakura.hh
  • HIDC_OPENDLG_BUTTON_HELP : sakura.hh
  • HIDC_OPENDLG_CHECK_BOM : sakura.hh
  • HIDC_OPENDLG_COMBO_CODE : sakura.hh
  • HIDC_OPENDLG_COMBO_EOL : sakura.hh
  • HIDC_OPENDLG_COMBO_MRU : sakura.hh
  • HIDC_OPENDLG_COMBO_OPENFOLDER : sakura.hh
  • HIDC_PP_EDIT_FROM : sakura.hh
  • HIDC_PP_EDIT_TO : sakura.hh
  • HIDC_PP_RADIO_ALL : sakura.hh
  • HIDC_PP_RADIO_FROMTO : sakura.hh
  • HIDC_PROP_BUTTON_HELP : sakura.hh
  • HIDC_PROP_EDIT1 : sakura.hh
  • HIDC_PS_BUTTON_EDITSETTINGNAME : sakura.hh
  • HIDC_PS_BUTTON_HELP : sakura.hh
  • HIDC_PS_CHECK_KINSOKUHEAD : sakura.hh
  • HIDC_PS_CHECK_KINSOKUKUTO : sakura.hh
  • HIDC_PS_CHECK_KINSOKURET : sakura.hh
  • HIDC_PS_CHECK_KINSOKUTAIL : sakura.hh
  • HIDC_PS_CHECK_LINENUMBER : sakura.hh
  • HIDC_PS_CHECK_WORDWRAP : sakura.hh
  • HIDC_PS_COMBO_FONT_HAN : sakura.hh
  • HIDC_PS_COMBO_FONT_ZEN : sakura.hh
  • HIDC_PS_COMBO_PAPER : sakura.hh
  • HIDC_PS_COMBO_PAPERORIENT : sakura.hh
  • HIDC_PS_COMBO_SETTINGNAME : sakura.hh
  • HIDC_PS_EDIT_DANSPACE : sakura.hh
  • HIDC_PS_EDIT_DANSUU : sakura.hh
  • HIDC_PS_EDIT_FONTWIDTH : sakura.hh
  • HIDC_PS_EDIT_FOOT1 : sakura.hh
  • HIDC_PS_EDIT_FOOT2 : sakura.hh
  • HIDC_PS_EDIT_FOOT3 : sakura.hh
  • HIDC_PS_EDIT_HEAD1 : sakura.hh
  • HIDC_PS_EDIT_HEAD2 : sakura.hh
  • HIDC_PS_EDIT_HEAD3 : sakura.hh
  • HIDC_PS_EDIT_LINESPACE : sakura.hh
  • HIDC_PS_EDIT_MARGINBY : sakura.hh
  • HIDC_PS_EDIT_MARGINLX : sakura.hh
  • HIDC_PS_EDIT_MARGINRX : sakura.hh
  • HIDC_PS_EDIT_MARGINTY : sakura.hh
  • HIDC_RADIO_BACKUP_DATETYPE1 : sakura.hh
  • HIDC_RADIO_BACKUP_DATETYPE2 : sakura.hh
  • HIDC_RADIO_BACKUP_TYPE1 : sakura.hh
  • HIDC_RADIO_BACKUP_TYPE2NEWHID : sakura.hh
  • HIDC_RADIO_BACKUP_TYPE3NEWHID : sakura.hh
  • HIDC_RADIO_CARETTYPE0 : sakura.hh
  • HIDC_RADIO_CARETTYPE1 : sakura.hh
  • HIDC_RADIO_DFORM_0 : sakura.hh
  • HIDC_RADIO_DFORM_1 : sakura.hh
  • HIDC_RADIO_DIFF_DST1 : sakura.hh
  • HIDC_RADIO_DIFF_DST2 : sakura.hh
  • HIDC_RADIO_DIFF_FILE1 : sakura.hh
  • HIDC_RADIO_DIFF_FILE2 : sakura.hh
  • HIDC_RADIO_EDITWINDOW : sakura.hh
  • HIDC_RADIO_ESCAPETYPE_1 : sakura.hh
  • HIDC_RADIO_ESCAPETYPE_2 : sakura.hh
  • HIDC_RADIO_FUNCKEYWND_PLACE1 : sakura.hh
  • HIDC_RADIO_FUNCKEYWND_PLACE2 : sakura.hh
  • HIDC_RADIO_LINENUM_CRLF : sakura.hh
  • HIDC_RADIO_LINENUM_LAYOUT : sakura.hh
  • HIDC_RADIO_LINETERMTYPE0 : sakura.hh
  • HIDC_RADIO_LINETERMTYPE1 : sakura.hh
  • HIDC_RADIO_LINETERMTYPE2 : sakura.hh
  • HIDC_RADIO_OUTLINEDEFAULT : sakura.hh
  • HIDC_RADIO_OUTLINERULEFILE : sakura.hh
  • HIDC_RADIO_OUTPUT : sakura.hh
  • HIDC_RADIO_TFORM_0 : sakura.hh
  • HIDC_RADIO_TFORM_1 : sakura.hh
  • HIDC_RADIO_WINPOS_DEF : sakura.hh
  • HIDC_RADIO_WINPOS_SAVE : sakura.hh
  • HIDC_RADIO_WINPOS_SET : sakura.hh
  • HIDC_RADIO_WINSIZE_DEF : sakura.hh
  • HIDC_RADIO_WINSIZE_SAVE : sakura.hh
  • HIDC_RADIO_WINSIZE_SET : sakura.hh
  • HIDC_REP_BUTTON_HELP : sakura.hh
  • HIDC_REP_BUTTON_REPALCE : sakura.hh
  • HIDC_REP_BUTTON_REPALCEALL : sakura.hh
  • HIDC_REP_BUTTON_SEARCHNEXT : sakura.hh
  • HIDC_REP_BUTTON_SEARCHPREV : sakura.hh
  • HIDC_REP_BUTTON_SETMARK : sakura.hh
  • HIDC_REP_CHECK_bAutoCloseDlgReplace : sakura.hh
  • HIDC_REP_CHECK_CONSECUTIVEALL : sakura.hh
  • HIDC_REP_CHECK_NOTIFYNOTFOUND : sakura.hh
  • HIDC_REP_CHECK_SEARCHALL : sakura.hh
  • HIDC_REP_CHK_LOHICASE : sakura.hh
  • HIDC_REP_CHK_PASTE : sakura.hh
  • HIDC_REP_CHK_REGULAREXP : sakura.hh
  • HIDC_REP_CHK_WORD : sakura.hh
  • HIDC_REP_COMBO_TEXT : sakura.hh
  • HIDC_REP_COMBO_TEXT2 : sakura.hh
  • HIDC_REP_RADIO_ADD : sakura.hh
  • HIDC_REP_RADIO_ALLAREA : sakura.hh
  • HIDC_REP_RADIO_INSERT : sakura.hh
  • HIDC_REP_RADIO_REPLACE : sakura.hh
  • HIDC_REP_RADIO_SELECTEDAREA : sakura.hh
  • HIDC_REP_STATIC_JRE32VER : sakura.hh
  • HIDC_STATIC : sakura.hh
  • HIDC_STATIC_COLOR : sakura.hh
  • HIDC_STATIC_DIFF_SRC : sakura.hh
  • HIDC_TAB_FAVORITE : sakura.hh
  • HIDC_TABWND_CAPTION : sakura.hh
  • HIDC_TAG_MAKE_IDCANCEL : sakura.hh
  • HIDC_TAG_MAKE_IDOK : sakura.hh
  • HIDC_TAGJUMPLIST_IDCANCEL : sakura.hh
  • HIDC_TAGJUMPLIST_IDOK : sakura.hh
  • HIDC_TL_BUTTON_HELP : sakura.hh
  • HIDC_TL_BUTTON_TEMPCHANGE : sakura.hh
  • HIDC_TL_LIST_TYPES : sakura.hh
  • HIDC_WINCAPTION_ACTIVE : sakura.hh
  • HIDC_WINCAPTION_INACTIVE : sakura.hh
  • HIDCANCEL_CMP : sakura.hh
  • HIDCANCEL_DLG1 : sakura.hh
  • HIDCANCEL_EXEC : sakura.hh
  • HIDCANCEL_FIND : sakura.hh
  • HIDCANCEL_FL : sakura.hh
  • HIDCANCEL_GREP : sakura.hh
  • HIDCANCEL_JUMP : sakura.hh
  • HIDCANCEL_KEYWORD_SELECT : sakura.hh
  • HIDCANCEL_OPENDLG : sakura.hh
  • HIDCANCEL_PP : sakura.hh
  • HIDCANCEL_PROP : sakura.hh
  • HIDCANCEL_PS : sakura.hh
  • HIDCANCEL_REP : sakura.hh
  • HIDCANCEL_SAMECOLOR : sakura.hh
  • HIDCANCEL_TL : sakura.hh
  • HIDOK2_CMP : sakura.hh
  • HIDOK_ABOUT : sakura.hh
  • HIDOK_CMP : sakura.hh
  • HIDOK_DLG1 : sakura.hh
  • HIDOK_EXEC : sakura.hh
  • HIDOK_FL : sakura.hh
  • HIDOK_GREP : sakura.hh
  • HIDOK_KEYWORD_SELECT : sakura.hh
  • HIDOK_OPENDLG : sakura.hh
  • HIDOK_PP : sakura.hh
  • HIDOK_PROP : sakura.hh
  • HIDOK_PS : sakura.hh
  • HIDOK_SAMECOLOR : sakura.hh
  • HIDOK_TL : sakura.hh
  • HIDOK_WINSIZE : sakura.hh
  • HLP000001 : sakura.hh
  • HLP000002 : sakura.hh
  • HLP000003 : sakura.hh
  • HLP000004 : sakura.hh
  • HLP000005 : sakura.hh
  • HLP000006 : sakura.hh
  • HLP000007 : sakura.hh
  • HLP000008 : sakura.hh
  • HLP000009 : sakura.hh
  • HLP000010 : sakura.hh
  • HLP000011 : sakura.hh
  • HLP000012 : sakura.hh
  • HLP000013 : sakura.hh
  • HLP000014 : sakura.hh
  • HLP000015 : sakura.hh
  • HLP000016 : sakura.hh
  • HLP000017 : sakura.hh
  • HLP000018 : sakura.hh
  • HLP000019 : sakura.hh
  • HLP000020 : sakura.hh
  • HLP000021 : sakura.hh
  • HLP000022 : sakura.hh
  • HLP000023 : sakura.hh
  • HLP000024 : sakura.hh
  • HLP000025 : sakura.hh
  • HLP000026 : sakura.hh
  • HLP000027 : sakura.hh
  • HLP000028 : sakura.hh
  • HLP000029 : sakura.hh
  • HLP000030 : sakura.hh
  • HLP000031 : sakura.hh
  • HLP000032 : sakura.hh
  • HLP000033 : sakura.hh
  • HLP000034 : sakura.hh
  • HLP000035 : sakura.hh
  • HLP000036 : sakura.hh
  • HLP000037 : sakura.hh
  • HLP000038 : sakura.hh
  • HLP000039 : sakura.hh
  • HLP000040 : sakura.hh
  • HLP000041 : sakura.hh
  • HLP000042 : sakura.hh
  • HLP000043 : sakura.hh
  • HLP000044 : sakura.hh
  • HLP000045 : sakura.hh
  • HLP000046 : sakura.hh
  • HLP000047 : sakura.hh
  • HLP000048 : sakura.hh
  • HLP000049 : sakura.hh
  • HLP000050 : sakura.hh
  • HLP000051 : sakura.hh
  • HLP000052 : sakura.hh
  • HLP000053 : sakura.hh
  • HLP000054 : sakura.hh
  • HLP000055 : sakura.hh
  • HLP000056 : sakura.hh
  • HLP000057 : sakura.hh
  • HLP000058 : sakura.hh
  • HLP000059 : sakura.hh
  • HLP000060 : sakura.hh
  • HLP000061 : sakura.hh
  • HLP000062 : sakura.hh
  • HLP000063 : sakura.hh
  • HLP000064 : sakura.hh
  • HLP000065 : sakura.hh
  • HLP000066 : sakura.hh
  • HLP000067 : sakura.hh
  • HLP000068 : sakura.hh
  • HLP000069 : sakura.hh
  • HLP000070 : sakura.hh
  • HLP000071 : sakura.hh
  • HLP000072 : sakura.hh
  • HLP000073 : sakura.hh
  • HLP000074 : sakura.hh
  • HLP000075 : sakura.hh
  • HLP000076 : sakura.hh
  • HLP000077 : sakura.hh
  • HLP000078 : sakura.hh
  • HLP000079 : sakura.hh
  • HLP000080 : sakura.hh
  • HLP000081 : sakura.hh
  • HLP000082 : sakura.hh
  • HLP000083 : sakura.hh
  • HLP000084 : sakura.hh
  • HLP000085 : sakura.hh
  • HLP000086 : sakura.hh
  • HLP000087 : sakura.hh
  • HLP000088 : sakura.hh
  • HLP000089 : sakura.hh
  • HLP000090 : sakura.hh
  • HLP000091 : sakura.hh
  • HLP000092 : sakura.hh
  • HLP000093 : sakura.hh
  • HLP000094 : sakura.hh
  • HLP000095 : sakura.hh
  • HLP000096 : sakura.hh
  • HLP000097 : sakura.hh
  • HLP000098 : sakura.hh
  • HLP000099 : sakura.hh
  • HLP000100 : sakura.hh
  • HLP000101 : sakura.hh
  • HLP000102 : sakura.hh
  • HLP000103 : sakura.hh
  • HLP000104 : sakura.hh
  • HLP000105 : sakura.hh
  • HLP000106 : sakura.hh
  • HLP000107 : sakura.hh
  • HLP000109 : sakura.hh
  • HLP000111 : sakura.hh
  • HLP000112 : sakura.hh
  • HLP000113 : sakura.hh
  • HLP000114 : sakura.hh
  • HLP000115 : sakura.hh
  • HLP000116 : sakura.hh
  • HLP000117 : sakura.hh
  • HLP000118 : sakura.hh
  • HLP000119 : sakura.hh
  • HLP000120 : sakura.hh
  • HLP000121 : sakura.hh
  • HLP000122 : sakura.hh
  • HLP000123 : sakura.hh
  • HLP000124 : sakura.hh
  • HLP000125 : sakura.hh
  • HLP000126 : sakura.hh
  • HLP000127 : sakura.hh
  • HLP000128 : sakura.hh
  • HLP000129 : sakura.hh
  • HLP000131 : sakura.hh
  • HLP000132 : sakura.hh
  • HLP000133 : sakura.hh
  • HLP000134 : sakura.hh
  • HLP000135 : sakura.hh
  • HLP000136 : sakura.hh
  • HLP000137 : sakura.hh
  • HLP000138 : sakura.hh
  • HLP000139 : sakura.hh
  • HLP000140 : sakura.hh
  • HLP000141 : sakura.hh
  • HLP000142 : sakura.hh
  • HLP000143 : sakura.hh
  • HLP000144 : sakura.hh
  • HLP000145 : sakura.hh
  • HLP000146 : sakura.hh
  • HLP000148 : sakura.hh
  • HLP000149 : sakura.hh
  • HLP000150 : sakura.hh
  • HLP000156 : sakura.hh
  • HLP000157 : sakura.hh
  • HLP000158 : sakura.hh
  • HLP000159 : sakura.hh
  • HLP000160 : sakura.hh
  • HLP000161 : sakura.hh
  • HLP000162 : sakura.hh
  • HLP000163 : sakura.hh
  • HLP000164 : sakura.hh
  • HLP000165 : sakura.hh
  • HLP000166 : sakura.hh
  • HLP000167 : sakura.hh
  • HLP000168 : sakura.hh
  • HLP000169 : sakura.hh
  • HLP000170 : sakura.hh
  • HLP000171 : sakura.hh
  • HLP000172 : sakura.hh
  • HLP000173 : sakura.hh
  • HLP000174 : sakura.hh
  • HLP000175 : sakura.hh
  • HLP000176 : sakura.hh
  • HLP000177 : sakura.hh
  • HLP000178 : sakura.hh
  • HLP000179 : sakura.hh
  • HLP000180 : sakura.hh
  • HLP000181 : sakura.hh
  • HLP000182 : sakura.hh
  • HLP000183 : sakura.hh
  • HLP000184 : sakura.hh
  • HLP000186 : sakura.hh
  • HLP000187 : sakura.hh
  • HLP000188 : sakura.hh
  • HLP000189 : sakura.hh
  • HLP000190 : sakura.hh
  • HLP000191 : sakura.hh
  • HLP000192 : sakura.hh
  • HLP000193 : sakura.hh
  • HLP000194 : sakura.hh
  • HLP000195 : sakura.hh
  • HLP000196 : sakura.hh
  • HLP000197 : sakura.hh
  • HLP000198 : sakura.hh
  • HLP000199 : sakura.hh
  • HLP000200 : sakura.hh
  • HLP000201 : sakura.hh
  • HLP000202 : sakura.hh
  • HLP000203 : sakura.hh
  • HLP000204 : sakura.hh
  • HLP000205 : sakura.hh
  • HLP000206 : sakura.hh
  • HLP000207 : sakura.hh
  • HLP000208 : sakura.hh
  • HLP000209 : sakura.hh
  • HLP000210 : sakura.hh
  • HLP000211 : sakura.hh
  • HLP000212 : sakura.hh
  • HLP000213 : sakura.hh
  • HLP000214 : sakura.hh
  • HLP000215 : sakura.hh
  • HLP000218 : sakura.hh
  • HLP000219 : sakura.hh
  • HLP000220 : sakura.hh
  • HLP000221 : sakura.hh
  • HLP000222 : sakura.hh
  • HLP000223 : sakura.hh
  • HLP000224 : sakura.hh
  • HLP000225 : sakura.hh
  • HLP000226 : sakura.hh
  • HLP000227 : sakura.hh
  • HLP000228 : sakura.hh
  • HLP000229 : sakura.hh
  • HLP000230 : sakura.hh
  • HLP000231 : sakura.hh
  • HLP000232 : sakura.hh
  • HLP000233 : sakura.hh
  • HLP000234 : sakura.hh
  • HLP000235 : sakura.hh
  • HLP000236 : sakura.hh
  • HLP000237 : sakura.hh
  • HLP000238 : sakura.hh
  • HLP000239 : sakura.hh
  • HLP000240 : sakura.hh
  • HLP000241 : sakura.hh
  • HLP000242 : sakura.hh
  • HLP000243 : sakura.hh
  • HLP000244 : sakura.hh
  • HLP000245 : sakura.hh
  • HLP000246 : sakura.hh
  • HLP000247 : sakura.hh
  • HLP000248 : sakura.hh
  • HLP000249 : sakura.hh
  • HLP000250 : sakura.hh
  • HLP000251 : sakura.hh
  • HLP000252 : sakura.hh
  • HLP000253 : sakura.hh
  • HLP000254 : sakura.hh
  • HLP000255 : sakura.hh
  • HLP000256 : sakura.hh
  • HLP000257 : sakura.hh
  • HLP000258 : sakura.hh
  • HLP000259 : sakura.hh
  • HLP000260 : sakura.hh
  • HLP000261 : sakura.hh
  • HLP000262 : sakura.hh
  • HLP000263 : sakura.hh
  • HLP000264 : sakura.hh
  • HLP000265 : sakura.hh
  • HLP000266 : sakura.hh
  • HLP000267 : sakura.hh
  • HLP000268 : sakura.hh
  • HLP000269 : sakura.hh
  • HLP000270 : sakura.hh
  • HLP000271 : sakura.hh
  • HLP000272 : sakura.hh
  • HLP000273 : sakura.hh
  • HLP000274 : sakura.hh
  • HLP000275 : sakura.hh
  • HLP000276 : sakura.hh
  • HLP000277 : sakura.hh
  • HLP000278 : sakura.hh
  • HLP000279 : sakura.hh
  • HLP000280 : sakura.hh
  • HLP000281 : sakura.hh
  • HLP000282 : sakura.hh
  • HLP000283 : sakura.hh
  • HLP000285 : sakura.hh
  • HLP000286 : sakura.hh
  • HLP000287 : sakura.hh
  • HLP000289 : sakura.hh
  • HLP000290 : sakura.hh
  • HLP000291 : sakura.hh
  • HLP000300 : sakura.hh
  • HLP000301 : sakura.hh
  • HLP000302 : sakura.hh
  • HLP000303 : sakura.hh
  • HLP000304 : sakura.hh
  • HLP000305 : sakura.hh
  • HLP000306 : sakura.hh
  • HLP000307 : sakura.hh
  • HLP000308 : sakura.hh
  • HLP000309 : sakura.hh
  • HLP000310 : sakura.hh
  • HLP000311 : sakura.hh
  • HLP000312 : sakura.hh
  • HLP000313 : sakura.hh
  • HLP000314 : sakura.hh
  • HLP000315 : sakura.hh
  • HLP000316 : sakura.hh
  • HLP000317 : sakura.hh
  • HLP000318 : sakura.hh
  • HLP000320 : sakura.hh
  • HLP000321 : sakura.hh
  • HLP000322 : sakura.hh
  • HLP000323 : sakura.hh
  • HLP000324 : sakura.hh
  • HLP000325 : sakura.hh
  • HLP000326 : sakura.hh
  • HLP000327 : sakura.hh
  • HLP000328 : sakura.hh
  • HLP000329 : sakura.hh
  • HLP000330 : sakura.hh
  • HLP000331 : sakura.hh
  • HLP_HISTORY : sakura.hh
  • HLP_LISENCE : sakura.hh
  • HLP_UR000 : sakura.hh
  • HLP_UR001 : sakura.hh
  • HLP_UR002 : sakura.hh
  • HLP_UR003 : sakura.hh
  • HLP_UR004 : sakura.hh
  • HLP_UR005 : sakura.hh
  • HLP_UR006 : sakura.hh
  • HLP_UR007 : sakura.hh
  • HLP_UR008 : sakura.hh
  • HLP_UR009 : sakura.hh
  • HLP_UR010 : sakura.hh
  • HLP_UR011 : sakura.hh
  • HLP_UR012 : sakura.hh
  • HLP_UR013 : sakura.hh
  • HLP_UR014 : sakura.hh
  • HokanList_SubclassProc() : CHokanMgr.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- i -

  • ICON_DEFAULT_APP : global.h
  • ICON_DEFAULT_GREP : global.h
  • ID_HOTKEY_TRAYMENU : CEditApp.cpp
  • ID_IS4072 : sakura_rc.h
  • ID_PAGENUM_BACKUP : CPropCommon.h
  • ID_PAGENUM_CUSTMENU : CPropCommon.h
  • ID_PAGENUM_EDIT : CPropCommon.h
  • ID_PAGENUM_FILE : CPropCommon.h
  • ID_PAGENUM_FILENAME : CPropCommon.h
  • ID_PAGENUM_FORMAT : CPropCommon.h
  • ID_PAGENUM_GREP : CPropCommon.h
  • ID_PAGENUM_HELPER : CPropCommon.h
  • ID_PAGENUM_KEYBOARD : CPropCommon.h
  • ID_PAGENUM_KEYWORD : CPropCommon.h
  • ID_PAGENUM_MACRO : CPropCommon.h
  • ID_PAGENUM_TAB : CPropCommon.h
  • ID_PAGENUM_TOOLBAR : CPropCommon.h
  • ID_PAGENUM_WIN : CPropCommon.h
  • ID_PAGENUM_ZENPAN : CPropCommon.h
  • ID_TOOLBAR : CEditWnd.cpp
  • IDB_MYTOOL : sakura_rc.h
  • IDB_OPENED : sakura_rc.h
  • IDB_OPENED_THIS : sakura_rc.h
  • IDB_PRINTER : sakura_rc.h
  • IDC_BTN_CLOSE : sakura_rc.h
  • IDC_BTN_NOSUPERVISION : sakura_rc.h
  • IDC_BTN_NOTIFYONLY : sakura_rc.h
  • IDC_BTN_RELOAD : sakura_rc.h
  • IDC_BUTTON1 : sakura_rc.h
  • IDC_BUTTON_ADD : sakura_rc.h
  • IDC_BUTTON_ADDKEYWORD : sakura_rc.h
  • IDC_BUTTON_ADDSET : sakura_rc.h
  • IDC_BUTTON_ASSIGN : sakura_rc.h
  • IDC_BUTTON_BACKCOLOR : sakura_rc.h
  • IDC_BUTTON_BACKUP_FOLDER_REF : sakura_rc.h
  • IDC_BUTTON_CLEAR : sakura_rc.h
  • IDC_BUTTON_CLEAR_MRU_FILE : sakura_rc.h
  • IDC_BUTTON_CLEAR_MRU_FOLDER : sakura_rc.h
  • IDC_BUTTON_COPY : sakura_rc.h
  • IDC_BUTTON_CURRENTFOLDER : sakura_rc.h
  • IDC_BUTTON_DELETE : sakura_rc.h
  • IDC_BUTTON_DELKEYWORD : sakura_rc.h
  • IDC_BUTTON_DELSET : sakura_rc.h
  • IDC_BUTTON_DIFF_DST : sakura_rc.h
  • IDC_BUTTON_DIRECTPAGE : sakura_rc.h
  • IDC_BUTTON_DOWN : sakura_rc.h
  • IDC_BUTTON_EDITKEYWORD : sakura_rc.h
  • IDC_BUTTON_EDITSETTINGNAME : sakura_rc.h
  • IDC_BUTTON_EXPORT : sakura_rc.h
  • IDC_BUTTON_FNAME_ADD : sakura_rc.h
  • IDC_BUTTON_FNAME_DEL : sakura_rc.h
  • IDC_BUTTON_FNAME_DOWN : sakura_rc.h
  • IDC_BUTTON_FNAME_INS : sakura_rc.h
  • IDC_BUTTON_FNAME_LAST : sakura_rc.h
  • IDC_BUTTON_FNAME_TOP : sakura_rc.h
  • IDC_BUTTON_FNAME_UP : sakura_rc.h
  • IDC_BUTTON_FNAME_UPD : sakura_rc.h
  • IDC_BUTTON_FOLDER : sakura_rc.h
  • IDC_BUTTON_HELP : sakura_rc.h
  • IDC_BUTTON_HOKANFILE_REF : sakura_rc.h
  • IDC_BUTTON_IMPORT : sakura_rc.h
  • IDC_BUTTON_INSERT : sakura_rc.h
  • IDC_BUTTON_INSERTSEPARATOR : sakura_rc.h
  • IDC_BUTTON_INSERTWRAP : sakura_rc.h
  • IDC_BUTTON_JUMP : sakura_rc.h
  • IDC_BUTTON_KEYCLEAN : sakura_rc.h
  • IDC_BUTTON_KEYHELP_ADD : sakura_rc.h
  • IDC_BUTTON_KEYHELP_DEL : sakura_rc.h
  • IDC_BUTTON_KEYHELP_DOWN : sakura_rc.h
  • IDC_BUTTON_KEYHELP_EXPORT : sakura_rc.h
  • IDC_BUTTON_KEYHELP_IMPORT : sakura_rc.h
  • IDC_BUTTON_KEYHELP_INS : sakura_rc.h
  • IDC_BUTTON_KEYHELP_LAST : sakura_rc.h
  • IDC_BUTTON_KEYHELP_REF : sakura_rc.h
  • IDC_BUTTON_KEYHELP_TOP : sakura_rc.h
  • IDC_BUTTON_KEYHELP_UP : sakura_rc.h
  • IDC_BUTTON_KEYHELP_UPD : sakura_rc.h
  • IDC_BUTTON_KEYSETRENAME : sakura_rc.h
  • IDC_BUTTON_KEYWORD_SELECT : sakura_rc.h
  • IDC_BUTTON_KEYWORDHELPFILE_REF : sakura_rc.h
  • IDC_BUTTON_KEYWORDHELPFONT : sakura_rc.h
  • IDC_BUTTON_MENUNAME : sakura_rc.h
  • IDC_BUTTON_NEXTPAGE : sakura_rc.h
  • IDC_BUTTON_OPENEXTHTMLHELP : sakura_rc.h
  • IDC_BUTTON_OPENHELP1 : sakura_rc.h
  • IDC_BUTTON_OPENHELP3 : sakura_rc.h
  • IDC_BUTTON_OPENMDICT : sakura_rc.h
  • IDC_BUTTON_OPENMDLL : sakura_rc.h
  • IDC_BUTTON_PREVPAGE : sakura_rc.h
  • IDC_BUTTON_PRINTERSELECT : sakura_rc.h
  • IDC_BUTTON_PRINTSETTING : sakura_rc.h
  • IDC_BUTTON_REFERENCE : sakura_rc.h
  • IDC_BUTTON_REGEX_ADD : sakura_rc.h
  • IDC_BUTTON_REGEX_DEL : sakura_rc.h
  • IDC_BUTTON_REGEX_DOWN : sakura_rc.h
  • IDC_BUTTON_REGEX_EXPORT : sakura_rc.h
  • IDC_BUTTON_REGEX_IMPORT : sakura_rc.h
  • IDC_BUTTON_REGEX_INS : sakura_rc.h
  • IDC_BUTTON_REGEX_LAST : sakura_rc.h
  • IDC_BUTTON_REGEX_TOP : sakura_rc.h
  • IDC_BUTTON_REGEX_UP : sakura_rc.h
  • IDC_BUTTON_REGEX_UPD : sakura_rc.h
  • IDC_BUTTON_RELEASE : sakura_rc.h
  • IDC_BUTTON_REPALCE : sakura_rc.h
  • IDC_BUTTON_REPALCEALL : sakura_rc.h
  • IDC_BUTTON_RULEFILE_REF : sakura_rc.h
  • IDC_BUTTON_SAMEBKCOLOR : sakura_rc.h
  • IDC_BUTTON_SAMETEXTCOLOR : sakura_rc.h
  • IDC_BUTTON_SEARCHNEXT : sakura_rc.h
  • IDC_BUTTON_SEARCHPREV : sakura_rc.h
  • IDC_BUTTON_SELALL : sakura_rc.h
  • IDC_BUTTON_SELNOTING : sakura_rc.h
  • IDC_BUTTON_SETMARK : sakura_rc.h
  • IDC_BUTTON_TAG_MAKE_REF : sakura_rc.h
  • IDC_BUTTON_TEMPCHANGE : sakura_rc.h
  • IDC_BUTTON_TEXTCOLOR : sakura_rc.h
  • IDC_BUTTON_TOP : sakura_rc.h
  • IDC_BUTTON_TYPEOPENEXTHTMLHELP : sakura_rc.h
  • IDC_BUTTON_TYPEOPENHELP : sakura_rc.h
  • IDC_BUTTON_UP : sakura_rc.h
  • IDC_BUTTON_VIEW : sakura_rc.h
  • IDC_BUTTON_WINSIZE : sakura_rc.h
  • IDC_BUTTON_ZOOMDOWN : sakura_rc.h
  • IDC_BUTTON_ZOOMUP : sakura_rc.h
  • IDC_CHECK_ADDCRLFWHENCOPY : sakura_rc.h
  • IDC_CHECK_AlertIfFileNotExist : sakura_rc.h
  • IDC_CHECK_ALT : sakura_rc.h
  • IDC_CHECK_ANTIALIAS : sakura_rc.h
  • IDC_CHECK_ANYWHERE : sakura_rc.h
  • IDC_CHECK_AutoMIMEDecode : sakura_rc.h
  • IDC_CHECK_AUTOSAVE : sakura_rc.h
  • IDC_CHECK_BACKUP : sakura_rc.h
  • IDC_CHECK_BACKUP_ADVANCED : sakura_rc.h
  • IDC_CHECK_BACKUP_DAY : sakura_rc.h
  • IDC_CHECK_BACKUP_DUSTBOX : sakura_rc.h
  • IDC_CHECK_BACKUP_HOUR : sakura_rc.h
  • IDC_CHECK_BACKUP_MIN : sakura_rc.h
  • IDC_CHECK_BACKUP_MONTH : sakura_rc.h
  • IDC_CHECK_BACKUP_RETAINEXT : sakura_rc.h
  • IDC_CHECK_BACKUP_SEC : sakura_rc.h
  • IDC_CHECK_BACKUP_YEAR : sakura_rc.h
  • IDC_CHECK_BACKUPDIALOG : sakura_rc.h
  • IDC_CHECK_BACKUPFOLDER : sakura_rc.h
  • IDC_CHECK_bAutoCloseDlgFind : sakura_rc.h
  • IDC_CHECK_bAutoCloseDlgFuncList : sakura_rc.h
  • IDC_CHECK_bAutoCloseDlgReplace : sakura_rc.h
  • IDC_CHECK_bCaretTextForSearch : sakura_rc.h
  • IDC_CHECK_bCheckFileTimeStamp : sakura_rc.h
  • IDC_CHECK_bDropFileAndClose : sakura_rc.h
  • IDC_CHECK_bFunclistSetFocusOnJump : sakura_rc.h
  • IDC_CHECK_bGrepExitConfirm : sakura_rc.h
  • IDC_CHECK_bMarkUpBlankLineEnable : sakura_rc.h
  • IDC_CHECK_bMenuIcon : sakura_rc.h
  • IDC_CHECK_bNotOverWriteCRLF : sakura_rc.h
  • IDC_CHECK_BOM : sakura_rc.h
  • IDC_CHECK_bScrollBarHorz : sakura_rc.h
  • IDC_CHECK_bSelectClickedURL : sakura_rc.h
  • IDC_CHECK_ChgWndByWheel : sakura_rc.h
  • IDC_CHECK_CLICKKEYSEARCH : sakura_rc.h
  • IDC_CHECK_CLOSEALLCONFIRM : sakura_rc.h
  • IDC_CHECK_CloseOneWin : sakura_rc.h
  • IDC_CHECK_CONSECUTIVEALL : sakura_rc.h
  • IDC_CHECK_COPYnDISABLESELECTEDAREA : sakura_rc.h
  • IDC_CHECK_CTRL : sakura_rc.h
  • IDC_CHECK_DIFF_EXEC_STATE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_BLINE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_CASE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_SPACE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_SPCCHG : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_TABSPC : sakura_rc.h
  • IDC_CHECK_DISP : sakura_rc.h
  • IDC_CHECK_DispFUNCKEYWND : sakura_rc.h
  • IDC_CHECK_DispSTATUSBAR : sakura_rc.h
  • IDC_CHECK_DispTabIcon : sakura_rc.h
  • IDC_CHECK_DispTabWnd : sakura_rc.h
  • IDC_CHECK_DispTabWndMultiWin : sakura_rc.h
  • IDC_CHECK_DispTOOLBAR : sakura_rc.h
  • IDC_CHECK_DOCICON : sakura_rc.h
  • IDC_CHECK_DRAGDROP : sakura_rc.h
  • IDC_CHECK_DROPSOURCE : sakura_rc.h
  • IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE : sakura_rc.h
  • IDC_CHECK_EXCVLUSIVE_NO : sakura_rc.h
  • IDC_CHECK_EXCVLUSIVE_READWRITE : sakura_rc.h
  • IDC_CHECK_EXCVLUSIVE_WRITE : sakura_rc.h
  • IDC_CHECK_EXITCONFIRM : sakura_rc.h
  • IDC_CHECK_FAT : sakura_rc.h
  • IDC_CHECK_FNAME : sakura_rc.h
  • IDC_CHECK_FREECARET : sakura_rc.h
  • IDC_CHECK_GETSTDOUT : sakura_rc.h
  • IDC_CHECK_GREPREALTIME : sakura_rc.h
  • IDC_CHECK_GTJW_LDBLCLK : sakura_rc.h
  • IDC_CHECK_GTJW_RETURN : sakura_rc.h
  • IDC_CHECK_HOKANBYFILE : sakura_rc.h
  • IDC_CHECK_HOKANLOHICASE : sakura_rc.h
  • IDC_CHECK_HTMLHELPISSINGLE : sakura_rc.h
  • IDC_CHECK_ICASE : sakura_rc.h
  • IDC_CHECK_INDENT : sakura_rc.h
  • IDC_CHECK_INDENT_WSPACE : sakura_rc.h
  • IDC_CHECK_INS_SPACE : sakura_rc.h
  • IDC_CHECK_KEYHELP : sakura_rc.h
  • IDC_CHECK_KEYHELP_ALLSEARCH : sakura_rc.h
  • IDC_CHECK_KEYHELP_KEYDISP : sakura_rc.h
  • IDC_CHECK_KEYHELP_PREFIX : sakura_rc.h
  • IDC_CHECK_KEYWORDCASE : sakura_rc.h
  • IDC_CHECK_KINSOKUHEAD : sakura_rc.h
  • IDC_CHECK_KINSOKUKUTO : sakura_rc.h
  • IDC_CHECK_KINSOKURET : sakura_rc.h
  • IDC_CHECK_KINSOKUTAIL : sakura_rc.h
  • IDC_CHECK_LCPOS : sakura_rc.h
  • IDC_CHECK_LCPOS2 : sakura_rc.h
  • IDC_CHECK_LCPOS3 : sakura_rc.h
  • IDC_CHECK_LINENUMBER : sakura_rc.h
  • IDC_CHECK_m_bHokanKey_RETURN : sakura_rc.h
  • IDC_CHECK_m_bHokanKey_RIGHT : sakura_rc.h
  • IDC_CHECK_m_bHokanKey_TAB : sakura_rc.h
  • IDC_CHECK_MultiWin : sakura_rc.h
  • IDC_CHECK_NoFilterSaveFile : sakura_rc.h
  • IDC_CHECK_NoFilterSaveNew : sakura_rc.h
  • IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE : sakura_rc.h
  • IDC_CHECK_NOTIFYNOTFOUND : sakura_rc.h
  • IDC_CHECK_PLSQL : sakura_rc.h
  • IDC_CHECK_PS_KINSOKUHEAD : sakura_rc.h
  • IDC_CHECK_PS_KINSOKUKUTO : sakura_rc.h
  • IDC_CHECK_PS_KINSOKURET : sakura_rc.h
  • IDC_CHECK_PS_KINSOKUTAIL : sakura_rc.h
  • IDC_CHECK_QueryIfCodeChange : sakura_rc.h
  • IDC_CHECK_REALTIMEVIEW : sakura_rc.h
  • IDC_CHECK_REGEX : sakura_rc.h
  • IDC_CHECK_RELOADWHENEXECUTE : sakura_rc.h
  • IDC_CHECK_REPEATEDSCROLLSMOOTH : sakura_rc.h
  • IDC_CHECK_RestoreBookmarks : sakura_rc.h
  • IDC_CHECK_RestoreCurPosition : sakura_rc.h
  • IDC_CHECK_RetainEmptyWindow : sakura_rc.h
  • IDC_CHECK_RTRIM_PREVLINE : sakura_rc.h
  • IDC_CHECK_SameTabWidth : sakura_rc.h
  • IDC_CHECK_SEARCHALL : sakura_rc.h
  • IDC_CHECK_SENDSTDIN : sakura_rc.h
  • IDC_CHECK_SHIFT : sakura_rc.h
  • IDC_CHECK_SortTabList : sakura_rc.h
  • IDC_CHECK_SplitterWndHScroll : sakura_rc.h
  • IDC_CHECK_SplitterWndVScroll : sakura_rc.h
  • IDC_CHECK_STAYTASKTRAY : sakura_rc.h
  • IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH : sakura_rc.h
  • IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD : sakura_rc.h
  • IDC_CHECK_TAB_ARROW : sakura_rc.h
  • IDC_CHECK_TAG_MAKE_RECURSE : sakura_rc.h
  • IDC_CHECK_TILE_H : sakura_rc.h
  • IDC_CHECK_TOOLBARISFLAT : sakura_rc.h
  • IDC_CHECK_TYPE_KEYHELPUSE : sakura_rc.h
  • IDC_CHECK_TYPEHTMLHELPISSINGLE : sakura_rc.h
  • IDC_CHECK_UNDERLINE : sakura_rc.h
  • IDC_CHECK_USETRAYICON : sakura_rc.h
  • IDC_CHECK_WORDWRAP : sakura_rc.h
  • IDC_CHK_DEFAULTFOLDER : sakura_rc.h
  • IDC_CHK_FROMTHISTEXT : sakura_rc.h
  • IDC_CHK_LOHICASE : sakura_rc.h
  • IDC_CHK_PASTE : sakura_rc.h
  • IDC_CHK_REGULAREXP : sakura_rc.h
  • IDC_CHK_SUBFOLDER : sakura_rc.h
  • IDC_CHK_WORD : sakura_rc.h
  • IDC_COMBO1 : sakura_rc.h
  • IDC_COMBO10 : sakura_rc.h
  • IDC_COMBO2 : sakura_rc.h
  • IDC_COMBO3 : sakura_rc.h
  • IDC_COMBO4 : sakura_rc.h
  • IDC_COMBO5 : sakura_rc.h
  • IDC_COMBO6 : sakura_rc.h
  • IDC_COMBO7 : sakura_rc.h
  • IDC_COMBO8 : sakura_rc.h
  • IDC_COMBO9 : sakura_rc.h
  • IDC_COMBO_CHARSET : sakura_rc.h
  • IDC_COMBO_CODE : sakura_rc.h
  • IDC_COMBO_EOL : sakura_rc.h
  • IDC_COMBO_FILE : sakura_rc.h
  • IDC_COMBO_FOLDER : sakura_rc.h
  • IDC_COMBO_FONT_HAN : sakura_rc.h
  • IDC_COMBO_FONT_ZEN : sakura_rc.h
  • IDC_COMBO_FUNCKIND : sakura_rc.h
  • IDC_COMBO_IMESTATE : sakura_rc.h
  • IDC_COMBO_IMESWITCH : sakura_rc.h
  • IDC_COMBO_INDENTLAYOUT : sakura_rc.h
  • IDC_COMBO_KEYHELP_COLOR : sakura_rc.h
  • IDC_COMBO_m_szCommand : sakura_rc.h
  • IDC_COMBO_MACROID : sakura_rc.h
  • IDC_COMBO_MENU : sakura_rc.h
  • IDC_COMBO_MRU : sakura_rc.h
  • IDC_COMBO_nSortType : sakura_rc.h
  • IDC_COMBO_OPENFOLDER : sakura_rc.h
  • IDC_COMBO_OUTLINES : sakura_rc.h
  • IDC_COMBO_PAPER : sakura_rc.h
  • IDC_COMBO_PLSQLBLOCKS : sakura_rc.h
  • IDC_COMBO_REGEX_COLOR : sakura_rc.h
  • IDC_COMBO_SET : sakura_rc.h
  • IDC_COMBO_SET2 : sakura_rc.h
  • IDC_COMBO_SETTINGNAME : sakura_rc.h
  • IDC_COMBO_SMARTINDENT : sakura_rc.h
  • IDC_COMBO_TEXT : sakura_rc.h
  • IDC_COMBO_TEXT2 : sakura_rc.h
  • IDC_COMBO_WINTYPE : sakura_rc.h
  • IDC_CURSOR_COPYARROW : sakura_rc.h
  • IDC_CURSOR_HAND : sakura_rc.h
  • IDC_CURSOR_ISEARCH_B : sakura_rc.h
  • IDC_CURSOR_ISEARCH_F : sakura_rc.h
  • IDC_CURSOR_MOVEARROW : sakura_rc.h
  • IDC_CURSOR_RVARROW : sakura_rc.h
  • IDC_CURSOR_TAB_JOIN : sakura_rc.h
  • IDC_CURSOR_TAB_LEFT : sakura_rc.h
  • IDC_CURSOR_TAB_RIGHT : sakura_rc.h
  • IDC_CURSOR_TAB_SEPARATE : sakura_rc.h
  • IDC_EDIT1 : sakura_rc.h
  • IDC_EDIT2 : sakura_rc.h
  • IDC_EDIT_ABOUT : sakura_rc.h
  • IDC_EDIT_AUTOBACKUP_INTERVAL : sakura_rc.h
  • IDC_EDIT_BACKUP_3 : sakura_rc.h
  • IDC_EDIT_BACKUPFILE : sakura_rc.h
  • IDC_EDIT_BACKUPFOLDER : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_FROM : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_FROM2 : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_TO : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_TO2 : sakura_rc.h
  • IDC_EDIT_CHARSPACE : sakura_rc.h
  • IDC_EDIT_DANSPACE : sakura_rc.h
  • IDC_EDIT_DANSUU : sakura_rc.h
  • IDC_EDIT_DEBUG : sakura_rc.h
  • IDC_EDIT_DFORM : sakura_rc.h
  • IDC_EDIT_DFORM_EX : sakura_rc.h
  • IDC_EDIT_DIFF_DST : sakura_rc.h
  • IDC_EDIT_EXTHELP1 : sakura_rc.h
  • IDC_EDIT_EXTHTMLHELP : sakura_rc.h
  • IDC_EDIT_FNAME_FROM : sakura_rc.h
  • IDC_EDIT_FNAME_TO : sakura_rc.h
  • IDC_EDIT_FONTWIDTH : sakura_rc.h
  • IDC_EDIT_FOOT1 : sakura_rc.h
  • IDC_EDIT_FOOT2 : sakura_rc.h
  • IDC_EDIT_FOOT3 : sakura_rc.h
  • IDC_EDIT_FROM : sakura_rc.h
  • IDC_EDIT_FUNCKEYWND_GROUPNUM : sakura_rc.h
  • IDC_EDIT_HEAD1 : sakura_rc.h
  • IDC_EDIT_HEAD2 : sakura_rc.h
  • IDC_EDIT_HEAD3 : sakura_rc.h
  • IDC_EDIT_HOKANFILE : sakura_rc.h
  • IDC_EDIT_INDENTCHARS : sakura_rc.h
  • IDC_EDIT_INYOUKIGOU : sakura_rc.h
  • IDC_EDIT_KEYHELP : sakura_rc.h
  • IDC_EDIT_KEYSFUNC : sakura_rc.h
  • IDC_EDIT_KEYWORDHELPFILE : sakura_rc.h
  • IDC_EDIT_KINSOKUHEAD : sakura_rc.h
  • IDC_EDIT_KINSOKUTAIL : sakura_rc.h
  • IDC_EDIT_LINECOMMENT : sakura_rc.h
  • IDC_EDIT_LINECOMMENT2 : sakura_rc.h
  • IDC_EDIT_LINECOMMENT3 : sakura_rc.h
  • IDC_EDIT_LINECOMMENTPOS : sakura_rc.h
  • IDC_EDIT_LINECOMMENTPOS2 : sakura_rc.h
  • IDC_EDIT_LINECOMMENTPOS3 : sakura_rc.h
  • IDC_EDIT_LINENUM : sakura_rc.h
  • IDC_EDIT_LINESPACE : sakura_rc.h
  • IDC_EDIT_LINETERMCHAR : sakura_rc.h
  • IDC_EDIT_MARGINBY : sakura_rc.h
  • IDC_EDIT_MARGINLX : sakura_rc.h
  • IDC_EDIT_MARGINRX : sakura_rc.h
  • IDC_EDIT_MARGINTY : sakura_rc.h
  • IDC_EDIT_MAX_MRU_FILE : sakura_rc.h
  • IDC_EDIT_MAX_MRU_FOLDER : sakura_rc.h
  • IDC_EDIT_MAXLINELEN : sakura_rc.h
  • IDC_EDIT_MENUNAME : sakura_rc.h
  • IDC_EDIT_MIDASHIKIGOU : sakura_rc.h
  • IDC_EDIT_MIGEMO_DICT : sakura_rc.h
  • IDC_EDIT_MIGEMO_DLL : sakura_rc.h
  • IDC_EDIT_nDropFileNumMax : sakura_rc.h
  • IDC_EDIT_nLineNumberRightSpace : sakura_rc.h
  • IDC_EDIT_nRulerBottomSpace : sakura_rc.h
  • IDC_EDIT_nRulerHeight : sakura_rc.h
  • IDC_EDIT_OUTLINERULEFILE : sakura_rc.h
  • IDC_EDIT_PLSQL_E1 : sakura_rc.h
  • IDC_EDIT_REGEX : sakura_rc.h
  • IDC_EDIT_REGEXPLIB : sakura_rc.h
  • IDC_EDIT_REPEATEDSCROLLLINENUM : sakura_rc.h
  • IDC_EDIT_SX : sakura_rc.h
  • IDC_EDIT_SY : sakura_rc.h
  • IDC_EDIT_TABSPACE : sakura_rc.h
  • IDC_EDIT_TABVIEWSTRING : sakura_rc.h
  • IDC_EDIT_TAG_MAKE_CMDLINE : sakura_rc.h
  • IDC_EDIT_TAG_MAKE_FOLDER : sakura_rc.h
  • IDC_EDIT_TFORM : sakura_rc.h
  • IDC_EDIT_TFORM_EX : sakura_rc.h
  • IDC_EDIT_TO : sakura_rc.h
  • IDC_EDIT_TYPEEXTHELP : sakura_rc.h
  • IDC_EDIT_TYPEEXTHTMLHELP : sakura_rc.h
  • IDC_EDIT_TYPEEXTS : sakura_rc.h
  • IDC_EDIT_TYPENAME : sakura_rc.h
  • IDC_EDIT_VERTLINE : sakura_rc.h
  • IDC_EDIT_WX : sakura_rc.h
  • IDC_EDIT_WY : sakura_rc.h
  • IDC_FILEUPDATEMSG : sakura_rc.h
  • IDC_FRAME_DIFF_DST : sakura_rc.h
  • IDC_FRAME_DIFF_FILE12 : sakura_rc.h
  • IDC_FRAME_KEYHELP : sakura_rc.h
  • IDC_FRAME_REGEX : sakura_rc.h
  • IDC_FRAME_SEARCH_MSG : sakura_rc.h
  • IDC_GROUP_FUNCKEYWND_POSITION : sakura_rc.h
  • IDC_HIDE : sakura_rc.h
  • IDC_HOTKEY1 : sakura_rc.h
  • IDC_HOTKEY_TRAYMENU : sakura_rc.h
  • IDC_KEYWORD : sakura_rc.h
  • IDC_LABEL_AUTOSAVE : sakura_rc.h
  • IDC_LABEL_AUTOSAVE2 : sakura_rc.h
  • IDC_LABEL_AUTOSAVE3 : sakura_rc.h
  • IDC_LABEL_AUTOSAVE4 : sakura_rc.h
  • IDC_LABEL_BACKUP_3 : sakura_rc.h
  • IDC_LABEL_BACKUP_4 : sakura_rc.h
  • IDC_LABEL_BACKUP_HELP : sakura_rc.h
  • IDC_LABEL_BACKUP_HELP2 : sakura_rc.h
  • IDC_LABEL_DFORM : sakura_rc.h
  • IDC_LABEL_FROM : sakura_rc.h
  • IDC_LABEL_FUNCtoKEY : sakura_rc.h
  • IDC_LABEL_KEYHELP_ABOUT : sakura_rc.h
  • IDC_LABEL_KEYHELP_KEYWORD : sakura_rc.h
  • IDC_LABEL_KEYHELP_PRIOR : sakura_rc.h
  • IDC_LABEL_KEYHELP_TITLE : sakura_rc.h
  • IDC_LABEL_KEYKIND : sakura_rc.h
  • IDC_LABEL_KEYtoFUNC : sakura_rc.h
  • IDC_LABEL_KEYWORDHELPFILE : sakura_rc.h
  • IDC_LABEL_LCPOS : sakura_rc.h
  • IDC_LABEL_LCPOS2 : sakura_rc.h
  • IDC_LABEL_LCPOS3 : sakura_rc.h
  • IDC_LABEL_LINETERMCHAR : sakura_rc.h
  • IDC_LABEL_MENU : sakura_rc.h
  • IDC_LABEL_MENUCHOICE : sakura_rc.h
  • IDC_LABEL_MENUFUNC : sakura_rc.h
  • IDC_LABEL_MENUFUNCKIND : sakura_rc.h
  • IDC_LABEL_MENUKEYCHANGE : sakura_rc.h
  • IDC_LABEL_MENUNAME : sakura_rc.h
  • IDC_LABEL_PLSQL1 : sakura_rc.h
  • IDC_LABEL_PLSQL2 : sakura_rc.h
  • IDC_LABEL_PLSQL3 : sakura_rc.h
  • IDC_LABEL_REGEX_COLOR : sakura_rc.h
  • IDC_LABEL_REGEX_KEYWORD : sakura_rc.h
  • IDC_LABEL_REGEX_VERSION : sakura_rc.h
  • IDC_LABEL_REGEXP : sakura_rc.h
  • IDC_LABEL_REGEXP_VER : sakura_rc.h
  • IDC_LABEL_TFORM : sakura_rc.h
  • IDC_LABEL_TO : sakura_rc.h
  • IDC_LABEL_TOOLBAR : sakura_rc.h
  • IDC_LANEL_NOTE : sakura_rc.h
  • IDC_LIST1 : sakura_rc.h
  • IDC_LIST_ASSIGNEDKEYS : sakura_rc.h
  • IDC_LIST_COLORS : sakura_rc.h
  • IDC_LIST_CTRLCODE : sakura_rc.h
  • IDC_LIST_DIFF_FILES : sakura_rc.h
  • IDC_LIST_FAVORITE_CMD : sakura_rc.h
  • IDC_LIST_FAVORITE_FILE : sakura_rc.h
  • IDC_LIST_FAVORITE_FOLDER : sakura_rc.h
  • IDC_LIST_FAVORITE_GREP_FILE : sakura_rc.h
  • IDC_LIST_FAVORITE_GREP_FOLDER : sakura_rc.h
  • IDC_LIST_FAVORITE_REPLACE : sakura_rc.h
  • IDC_LIST_FAVORITE_SEARCH : sakura_rc.h
  • IDC_LIST_FILES : sakura_rc.h
  • IDC_LIST_FNAME : sakura_rc.h
  • IDC_LIST_FUNC : sakura_rc.h
  • IDC_LIST_ITEMINFO : sakura_rc.h
  • IDC_LIST_KEY : sakura_rc.h
  • IDC_LIST_KEYHELP : sakura_rc.h
  • IDC_LIST_KEYWORD : sakura_rc.h
  • IDC_LIST_REGEX : sakura_rc.h
  • IDC_LIST_RES : sakura_rc.h
  • IDC_LIST_TAGJUMP : sakura_rc.h
  • IDC_LIST_TYPES : sakura_rc.h
  • IDC_LIST_WORDS : sakura_rc.h
  • IDC_MACRO_REG : sakura_rc.h
  • IDC_MACRODIR : sakura_rc.h
  • IDC_MACRODIRREF : sakura_rc.h
  • IDC_MACROLIST : sakura_rc.h
  • IDC_MACRONAME : sakura_rc.h
  • IDC_MACROPATH : sakura_rc.h
  • IDC_PROGRESS : sakura_rc.h
  • IDC_PROGRESS_REPLACE : sakura_rc.h
  • IDC_QUERYRELOADMSG : sakura_rc.h
  • IDC_RADIO_ADD : sakura_rc.h
  • IDC_RADIO_ALL : sakura_rc.h
  • IDC_RADIO_ALLAREA : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE1 : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE1A : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE2 : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE2A : sakura_rc.h
  • IDC_RADIO_BACKUP_TYPE1 : sakura_rc.h
  • IDC_RADIO_BACKUP_TYPE2 : sakura_rc.h
  • IDC_RADIO_BACKUP_TYPE3 : sakura_rc.h
  • IDC_RADIO_CARETTYPE0 : sakura_rc.h
  • IDC_RADIO_CARETTYPE1 : sakura_rc.h
  • IDC_RADIO_DFORM_0 : sakura_rc.h
  • IDC_RADIO_DFORM_1 : sakura_rc.h
  • IDC_RADIO_DIFF_DST1 : sakura_rc.h
  • IDC_RADIO_DIFF_DST2 : sakura_rc.h
  • IDC_RADIO_DIFF_FILE1 : sakura_rc.h
  • IDC_RADIO_DIFF_FILE2 : sakura_rc.h
  • IDC_RADIO_EDITWINDOW : sakura_rc.h
  • IDC_RADIO_ESCAPETYPE_1 : sakura_rc.h
  • IDC_RADIO_ESCAPETYPE_2 : sakura_rc.h
  • IDC_RADIO_FROMTO : sakura_rc.h
  • IDC_RADIO_FUNCKEYWND_PLACE1 : sakura_rc.h
  • IDC_RADIO_FUNCKEYWND_PLACE2 : sakura_rc.h
  • IDC_RADIO_INSERT : sakura_rc.h
  • IDC_RADIO_LANDSCAPE : sakura_rc.h
  • IDC_RADIO_LINENUM_CRLF : sakura_rc.h
  • IDC_RADIO_LINENUM_LAYOUT : sakura_rc.h
  • IDC_RADIO_LINETERMTYPE0 : sakura_rc.h
  • IDC_RADIO_LINETERMTYPE1 : sakura_rc.h
  • IDC_RADIO_LINETERMTYPE2 : sakura_rc.h
  • IDC_RADIO_nRulerType_0 : sakura_rc.h
  • IDC_RADIO_nRulerType_1 : sakura_rc.h
  • IDC_RADIO_OUTLINEDEFAULT : sakura_rc.h
  • IDC_RADIO_OUTLINERULEFILE : sakura_rc.h
  • IDC_RADIO_OUTPUT : sakura_rc.h
  • IDC_RADIO_OUTPUTLINE : sakura_rc.h
  • IDC_RADIO_OUTPUTMARKED : sakura_rc.h
  • IDC_RADIO_OUTPUTSTYLE1 : sakura_rc.h
  • IDC_RADIO_OUTPUTSTYLE2 : sakura_rc.h
  • IDC_RADIO_PORTRAIT : sakura_rc.h
  • IDC_RADIO_REPLACE : sakura_rc.h
  • IDC_RADIO_SELECTEDAREA : sakura_rc.h
  • IDC_RADIO_TFORM_0 : sakura_rc.h
  • IDC_RADIO_TFORM_1 : sakura_rc.h
  • IDC_RADIO_WINPOS_DEF : sakura_rc.h
  • IDC_RADIO_WINPOS_SAVE : sakura_rc.h
  • IDC_RADIO_WINPOS_SET : sakura_rc.h
  • IDC_RADIO_WINSIZE_DEF : sakura_rc.h
  • IDC_RADIO_WINSIZE_SAVE : sakura_rc.h
  • IDC_RADIO_WINSIZE_SET : sakura_rc.h
  • IDC_SLIDER_VIEW : sakura_rc.h
  • IDC_SPIN_AUTOBACKUP_INTERVAL : sakura_rc.h
  • IDC_SPIN_BACKUP_GENS : sakura_rc.h
  • IDC_SPIN_CHARSPACE : sakura_rc.h
  • IDC_SPIN_DANSPACE : sakura_rc.h
  • IDC_SPIN_DANSUU : sakura_rc.h
  • IDC_SPIN_FONTWIDTH : sakura_rc.h
  • IDC_SPIN_FUNCKEYWND_GROUPNUM : sakura_rc.h
  • IDC_SPIN_LCColNum : sakura_rc.h
  • IDC_SPIN_LCColNum2 : sakura_rc.h
  • IDC_SPIN_LCColNum3 : sakura_rc.h
  • IDC_SPIN_LINENUM : sakura_rc.h
  • IDC_SPIN_LINESPACE : sakura_rc.h
  • IDC_SPIN_MARGINBY : sakura_rc.h
  • IDC_SPIN_MARGINLX : sakura_rc.h
  • IDC_SPIN_MARGINRX : sakura_rc.h
  • IDC_SPIN_MARGINTY : sakura_rc.h
  • IDC_SPIN_MAX_MRU_FILE : sakura_rc.h
  • IDC_SPIN_MAX_MRU_FOLDER : sakura_rc.h
  • IDC_SPIN_MAXLINELEN : sakura_rc.h
  • IDC_SPIN_nDropFileNumMax : sakura_rc.h
  • IDC_SPIN_nLineNumberRightSpace : sakura_rc.h
  • IDC_SPIN_nRulerBottomSpace : sakura_rc.h
  • IDC_SPIN_nRulerHeight : sakura_rc.h
  • IDC_SPIN_nRulerHeight_MAX : global.h
  • IDC_SPIN_nRulerHeight_MIN : global.h
  • IDC_SPIN_PLSQL_E1 : sakura_rc.h
  • IDC_SPIN_REPEATEDSCROLLLINENUM : sakura_rc.h
  • IDC_SPIN_SX : sakura_rc.h
  • IDC_SPIN_SY : sakura_rc.h
  • IDC_SPIN_TABSPACE : sakura_rc.h
  • IDC_SPIN_WX : sakura_rc.h
  • IDC_SPIN_WY : sakura_rc.h
  • IDC_STATIC : sakura_rc.h
  • IDC_STATIC_ALL : sakura_rc.h
  • IDC_STATIC_CMD : sakura_rc.h
  • IDC_STATIC_COLOR : sakura_rc.h
  • IDC_STATIC_COMPARESRC : sakura_rc.h
  • IDC_STATIC_CURFILE : sakura_rc.h
  • IDC_STATIC_CURPATH : sakura_rc.h
  • IDC_STATIC_DIFF_SRC : sakura_rc.h
  • IDC_STATIC_ENABLECOLMNS : sakura_rc.h
  • IDC_STATIC_ENABLELINES : sakura_rc.h
  • IDC_STATIC_EOL : sakura_rc.h
  • IDC_STATIC_FAVORITE_MSG : sakura_rc.h
  • IDC_STATIC_HAIKEI : sakura_rc.h
  • IDC_STATIC_HITCOUNT : sakura_rc.h
  • IDC_STATIC_JOBNAME : sakura_rc.h
  • IDC_STATIC_JRE32VER : sakura_rc.h
  • IDC_STATIC_KENSUU : sakura_rc.h
  • IDC_STATIC_KEYWORD : sakura_rc.h
  • IDC_STATIC_KEYWORD_COUNT : sakura_rc.h
  • IDC_STATIC_MSG : sakura_rc.h
  • IDC_STATIC_MYICON : sakura_rc.h
  • IDC_STATIC_nSortType : sakura_rc.h
  • IDC_STATIC_PAGENUM : sakura_rc.h
  • IDC_STATIC_PAPER : sakura_rc.h
  • IDC_STATIC_PRNDEV : sakura_rc.h
  • IDC_STATIC_PROGRESS : sakura_rc.h
  • IDC_STATIC_STC32 : sakura_rc.h
  • IDC_STATIC_UPDATE : sakura_rc.h
  • IDC_STATIC_URL_CAPTION : sakura_rc.h
  • IDC_STATIC_URL_ORG : sakura_rc.h
  • IDC_STATIC_URL_UR : sakura_rc.h
  • IDC_STATIC_VER : sakura_rc.h
  • IDC_STATIC_ZOOM : sakura_rc.h
  • IDC_TAB2 : sakura_rc.h
  • IDC_TAB_FAVORITE : sakura_rc.h
  • IDC_TABWND_CAPTION : sakura_rc.h
  • IDC_TREE1 : sakura_rc.h
  • IDC_UPDATEDFILENAME : sakura_rc.h
  • IDC_WINCAPTION_ACTIVE : sakura_rc.h
  • IDC_WINCAPTION_INACTIVE : sakura_rc.h
  • IDD_ABOUT : sakura_rc.h
  • IDD_COMPARE : sakura_rc.h
  • IDD_CTRLCODE : sakura_rc.h
  • IDD_DEBUG : sakura_rc.h
  • IDD_DIALOG_KEYWORD_SELECT : sakura_rc.h
  • IDD_DIFF : sakura_rc.h
  • IDD_EXEC : sakura_rc.h
  • IDD_EXECCMD_TEST : sakura_rc.h
  • IDD_EXECRUNNING : sakura_rc.h
  • IDD_EXITING : sakura_rc.h
  • IDD_FAVORITE : sakura_rc.h
  • IDD_FILEUPDATEQUERY : sakura_rc.h
  • IDD_FIND : sakura_rc.h
  • IDD_FUNCLIST : sakura_rc.h
  • IDD_GREP : sakura_rc.h
  • IDD_GREPRUNNING : sakura_rc.h
  • IDD_HOKAN : sakura_rc.h
  • IDD_INPUT1 : sakura_rc.h
  • IDD_JUMP : sakura_rc.h
  • IDD_OPERATIONRUNNING : sakura_rc.h
  • IDD_PRINTING : sakura_rc.h
  • IDD_PRINTPAGE : sakura_rc.h
  • IDD_PRINTPREVIEWBAR : sakura_rc.h
  • IDD_PRINTSETTING : sakura_rc.h
  • IDD_PROP1P1 : sakura_rc.h
  • IDD_PROP_BACKUP : sakura_rc.h
  • IDD_PROP_COLOR : sakura_rc.h
  • IDD_PROP_CUSTMENU : sakura_rc.h
  • IDD_PROP_EDIT : sakura_rc.h
  • IDD_PROP_FILE : sakura_rc.h
  • IDD_PROP_FNAME : sakura_rc.h
  • IDD_PROP_FORMAT : sakura_rc.h
  • IDD_PROP_GREP : sakura_rc.h
  • IDD_PROP_HELPER : sakura_rc.h
  • IDD_PROP_KEYBIND : sakura_rc.h
  • IDD_PROP_KEYBIND1 : sakura_rc.h
  • IDD_PROP_KEYHELP : sakura_rc.h
  • IDD_PROP_KEYWORD : sakura_rc.h
  • IDD_PROP_MACRO : sakura_rc.h
  • IDD_PROP_REGEX : sakura_rc.h
  • IDD_PROP_TAB : sakura_rc.h
  • IDD_PROP_TOOLBAR : sakura_rc.h
  • IDD_PROP_WIN : sakura_rc.h
  • IDD_PROPERTY_FILE : sakura_rc.h
  • IDD_PROPTYPESP1 : sakura_rc.h
  • IDD_PROPTYPESP2 : sakura_rc.h
  • IDD_REPLACE : sakura_rc.h
  • IDD_REPLACERUNNING : sakura_rc.h
  • IDD_SAMECOLOR : sakura_rc.h
  • IDD_TAG_MAKE : sakura_rc.h
  • IDD_TAGJUMPLIST : sakura_rc.h
  • IDD_TYPELIST : sakura_rc.h
  • IDD_WINPOSSIZE : sakura_rc.h
  • IDI_ICON_DEBUG : sakura_rc.h
  • IDI_ICON_GREP : sakura_rc.h
  • IDI_ICON_STD : sakura_rc.h
  • IDM_COPYDICINFO : CEditView.h
  • IDM_JUMPDICT : CEditView.h
  • IDM_POPLAST : sakura_rc.h
  • IDM_POPLAST2 : sakura_rc.h
  • IDM_SELMRU : global.h
  • IDM_SELOPENFOLDER : global.h
  • IDM_SELWINDOW : global.h
  • IDOK2 : sakura_rc.h
  • IDR_MENU1 : sakura_rc.h
  • IDR_TRAYMENU_L : sakura_rc.h
  • IDS_ABOUT_DESCRIPTION : sakura_rc.h
  • IDS_AUTHOR_MAIL : sakura_rc.h
  • IDS_AUTHOR_PAGE : sakura_rc.h
  • IDT_CAPTION : CEditWnd.cpp
  • IDT_EDIT : CEditWnd.cpp
  • IDT_FUNCWND : CFuncKeyWnd.cpp
  • IDT_PRINTSETTING : CDlgPrintSetting.cpp
  • IDT_ROLLMOUSE : CEditView.cpp, CEditDoc.cpp
  • IDT_SYSMENU : CEditWnd.cpp
  • IDT_TOOLBAR : CEditWnd.cpp
  • IDW_STATUSBAR : global.h
  • ImeStateArr : CPropTypes.cpp
  • ImeSwitchArr : CPropTypes.cpp
  • imp_CheckUtf16Char() : charcode.cpp
  • IMR_CONFIRMRECONVERTSTRING : CEditView.cpp
  • IMR_RECONVERTSTRING : CEditView.cpp
  • IndentTypeArr : CPropTypes.cpp
  • InitRegexp() : etc_uty.h, etc_uty.cpp
  • INT_PTR : global.h
  • INVALID_MACRO_IDX : CSMacroMgr.h
  • INVALID_SET_FILE_POINTER : CFileLoad.h
  • IS_KEYWORD_CHAR : global.h
  • IsBase64Char() : charcode.cpp
  • IsDataAvailable() : CEditView.cpp
  • ISDIB : CEditView.cpp
  • IsEucHanKana2() : charcode.cpp
  • IsEucHanKata2() : charcode.h
  • IsEucKan() : charcode.cpp
  • IsEucKan1() : charcode.cpp
  • IsEucKan2() : charcode.cpp
  • IsFileExists() : etc_uty.h, etc_uty.cpp
  • IsFilePath() : etc_uty.h, etc_uty.cpp
  • IsLocalDrive() : etc_uty.h, etc_uty.cpp
  • IsMailAddress() : etc_uty.h, etc_uty.cpp
  • IsNumber() : etc_uty.h, etc_uty.cpp
  • IsSJisHanKata() : charcode.cpp
  • IsSJisKan() : charcode.cpp
  • IsSJisKan1() : charcode.cpp
  • IsSJisKan2() : charcode.cpp
  • IsURL() : etc_uty.h, etc_uty.cpp
  • IsUtf16SurrogHi() : charcode.cpp
  • IsUtf16SurrogLow() : charcode.cpp
  • IsUtf7SetDChar() : charcode.cpp
  • IsVisualStyle() : etc_uty.h, etc_uty.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- p -

  • P_BREG : CBregexp.cpp
  • p_ctrl_list : CDlgCtrlCode.cpp
  • p_ctrl_list_num : CDlgCtrlCode.cpp
  • p_date_form : CPropComFormat.cpp
  • p_extentions : CDlgTagJumpList.cpp
  • p_helpids : CPropTypesRegex.cpp, CPropTypesKeyHelp.cpp, CPropComWin.cpp, CPropComToolbar.cpp, CPropComTab.cpp, CPropCommon.cpp, CPropComMacro.cpp, CPropComKeyword.cpp, CPropComKeybind.cpp, CPropComHelper.cpp, CPropComGrep.cpp, CPropComFormat.cpp, CPropComFileName.cpp, CPropComFile.cpp, CPropComEdit.cpp, CPropComCustmenu.cpp, CPropComBackup.cpp, CHokanMgr.cpp, CDlgWinSize.cpp, CDlgTypeList.cpp, CDlgTagsMake.cpp, CDlgTagJumpList.cpp, CDlgSameColor.cpp, CDlgReplace.cpp, CDlgProperty.cpp, CDlgPrintSetting.cpp, CDlgPrintPage.cpp, CDlgOpenFile.cpp, CDlgKeywordSelect.cpp, CDlgJump.cpp, CDlgInput1.cpp, CDlgGrep.cpp, CDlgFuncList.cpp, CDlgFind.cpp, CDlgFavorite.cpp, CDlgExec.cpp, CDlgDiff.cpp, CDlgCtrlCode.cpp, CDlgCompare.cpp, CDlgCancel.cpp, CDlgAbout.cpp, CDialog.cpp
  • p_helpids1 : CPropTypes.cpp
  • p_helpids2 : CPropTypes.cpp
  • p_helpids3 : CPropTypes.cpp
  • P_ONIG : CBregexp.cpp
  • p_time_form : CPropComFormat.cpp
  • PACKVERSION : etc_uty.h
  • PAGE_RANGE_X : CPrintPreview.cpp
  • PAGE_RANGE_Y : CPrintPreview.cpp
  • PM_SETCARETPOS_KEEPSELECT : mymessage.h
  • PM_SETCARETPOS_NOSELECT : mymessage.h
  • PM_SETCARETPOS_SELECT : mymessage.h
  • pnFuncList_Box : Funccode.cpp
  • pnFuncList_Clip : Funccode.cpp
  • pnFuncList_Convert : Funccode.cpp
  • pnFuncList_Edit : Funccode.cpp
  • pnFuncList_File : Funccode.cpp
  • pnFuncList_Insert : Funccode.cpp
  • pnFuncList_Macro : Funccode.cpp
  • pnFuncList_Mode : Funccode.cpp
  • pnFuncList_Move : Funccode.cpp
  • pnFuncList_Others : Funccode.cpp
  • pnFuncList_Search : Funccode.cpp
  • pnFuncList_Select : Funccode.cpp
  • pnFuncList_Set : Funccode.cpp
  • pnFuncList_Support : Funccode.cpp
  • pnFuncList_Win : Funccode.cpp
  • pnFuncListNumArr : Funccode.h
  • PopulateKeyword : CShareData.cpp
  • POS_CENTER : CShareData.h
  • POS_LEFT : CShareData.h
  • POS_RIGHT : CShareData.h
  • PPADLL_VER : CPPA.h
  • ppnFuncListArr : Funccode.h
  • ppszFuncKind : Funccode.h
  • ppszKeyWordsAWK : CShareData.cpp
  • ppszKeyWordsBAT : CShareData.cpp
  • ppszKeyWordsCOBOL : CShareData.cpp
  • ppszKeyWordsCORBA_IDL : CShareData.cpp
  • ppszKeyWordsCPP : CShareData.cpp
  • ppszKeyWordsHTML : CShareData.cpp
  • ppszKeyWordsJAVA : CShareData.cpp
  • ppszKeyWordsPASCAL : CShareData.cpp
  • ppszKeyWordsPERL : CShareData.cpp
  • ppszKeyWordsPERL2 : CShareData.cpp
  • ppszKeyWordsPLSQL : CShareData.cpp
  • ppszKeyWordsRTF : CShareData.cpp
  • ppszKeyWordsTEX : CShareData.cpp
  • ppszKeyWordsTEX2 : CShareData.cpp
  • ppszKeyWordsVB : CShareData.cpp
  • ppszKeyWordsVB2 : CShareData.cpp
  • PRECONVERTSTRING : CEditView.h
  • PreventVisualStyle() : etc_uty.h, etc_uty.cpp
  • PROP_TEMPCHANGE_FLAG : CDlgTypeList.h
  • PropSheetProc() : etc_uty.cpp
  • PropSheetWndProc() : etc_uty.cpp
  • PropTypesP1Proc() : CPropTypes.cpp
  • PropTypesP2Proc() : CPropTypes.cpp
  • PropTypesP3_newProc() : CPropTypes.cpp
  • Python_IsWordChar() : CEditDoc_FuncList2.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- r -

  • rcBtnBase : CTabWnd.cpp
  • ReadRegistry() : etc_uty.h, etc_uty.cpp
  • RECENT_CMP_MEMCMP : CRecent.h
  • RECENT_CMP_MEMICMP : CRecent.h
  • RECENT_CMP_STRCMP : CRecent.h
  • RECENT_CMP_STRICMP : CRecent.h
  • RECENT_CMP_STRNCMP : CRecent.h
  • RECENT_CMP_STRNICMP : CRecent.h
  • RECENT_FOR_CMD : CRecent.h
  • RECENT_FOR_EDITNODE : CRecent.h
  • RECENT_FOR_FILE : CRecent.h
  • RECENT_FOR_FOLDER : CRecent.h
  • RECENT_FOR_GREP_FILE : CRecent.h
  • RECENT_FOR_GREP_FOLDER : CRecent.h
  • RECENT_FOR_REPLACE : CRecent.h
  • RECENT_FOR_SEARCH : CRecent.h
  • RECENT_FOR_TAGJUMP_KEYWORD : CRecent.h
  • RECONVERTSTRING : CEditView.h
  • REGEX_INFO : CRegexKeyword.h
  • ResolveShortcutLink() : etc_uty.h, etc_uty.cpp
  • RK_ACTIVE : CRegexKeyword.h
  • RK_CLOSE : CRegexKeyword.h
  • RK_EMPTY : CRegexKeyword.h
  • RK_ERROR : CRegexKeyword.h
  • RK_HEAD_STR1 : CRegexKeyword.h
  • RK_HEAD_STR1_LEN : CRegexKeyword.h
  • RK_HEAD_STR2 : CRegexKeyword.h
  • RK_HEAD_STR2_LEN : CRegexKeyword.h
  • RK_HEAD_STR3 : CRegexKeyword.h
  • RK_HEAD_STR3_LEN : CRegexKeyword.h
  • RK_KAKOMI_1_END : CRegexKeyword.h
  • RK_KAKOMI_1_START : CRegexKeyword.h
  • RK_KAKOMI_2_END : CRegexKeyword.h
  • RK_KAKOMI_2_START : CRegexKeyword.h
  • RK_KAKOMI_3_END : CRegexKeyword.h
  • RK_KAKOMI_3_START : CRegexKeyword.h
  • RK_MATCH : CRegexKeyword.h
  • RK_NOMATCH : CRegexKeyword.h
  • RK_OPEN : CRegexKeyword.h
  • RK_SIZE : CRegexKeyword.h
  • RWM_RECONVERT : mymessage.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- s -

  • s_bGSort : CShareData.cpp
  • s_bSort : CShareData.cpp
  • s_dwComctl32Version : etc_uty.cpp
  • s_pOldPropSheetWndProc : etc_uty.cpp
  • SAKURA_CORE_API : global.h
  • SAKURA_DIFF_TEMP_PREFIX : CEditView_Diff.cpp
  • SAVED_KEYMACRO : CSMacroMgr.h
  • ScriptErrorHandler : CWSH.h
  • SelectDir() : etc_uty.h, etc_uty.cpp
  • SELECTEDAREA_RGB : global.h, global.cpp
  • SELECTEDAREA_ROP2 : global.h, global.cpp
  • SetClipboardText() : etc_uty.h, etc_uty.cpp
  • SetData_EnumFontFamProc() : CDlgPrintSetting.cpp
  • SetWindowLongPtr : global.h
  • SHOW_NORMAL : global.h
  • SHOW_RELOAD : global.h
  • SHOW_TOGGLE : global.h
  • ShowWinHelpContents() : etc_uty.h, etc_uty.cpp
  • SIZEOF_MENUITEMINFO : CMenuDrawer.cpp
  • sjis_strrchr2() : MY_SP.h, MY_SP.C
  • SMARTINDENT_CPP : global.h
  • SMARTINDENT_NONE : global.h
  • SmartIndentArr : CPropTypes.cpp
  • SortByKeyAsc() : CEditView_Command_New.cpp
  • SortByKeyDesc() : CEditView_Command_New.cpp
  • SORTDATA : CEditView_Command_New.cpp
  • SORTTABLE : CEditView_Command_New.cpp
  • SPACE : charcode.h
  • SPI_GETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • SPI_SETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • SplitPath_FolderAndFile() : etc_uty.h, etc_uty.cpp
  • STAND_KEYMACRO : CSMacroMgr.h
  • STR_ALT_PLUS : CPropComKeybind.cpp
  • STR_COLORDATA_HEAD : CPropTypes.cpp
  • STR_COLORDATA_HEAD3 : CShareData_new.cpp, CPropTypes.cpp
  • STR_COLORDATA_HEAD_LEN : CPropTypes.cpp
  • STR_COLORDATA_SECTION : CPropTypes.cpp
  • STR_CTRL_PLUS : CPropComKeybind.cpp
  • STR_CUSTMENU_HEAD : CPropComCustmenu.cpp
  • STR_CUSTMENU_HEAD_LEN : CPropComCustmenu.cpp
  • STR_KEYDATA_HEAD : CPropComKeybind.cpp
  • STR_KEYDATA_HEAD2 : CPropComKeybind.cpp
  • STR_KEYDATA_HEAD_LEN : CPropComKeybind.cpp
  • STR_SHIFT_PLUS : CPropComKeybind.cpp
  • strchri : my_icmp.h
  • strcnv() : CPropTypesKeyHelp.cpp
  • stricmp : my_icmp.h
  • STRNCMP_MAX : CEditView.cpp
  • strncpy_ex() : etc_uty.h, etc_uty.cpp
  • strnicmp : my_icmp.h
  • strstri : my_icmp.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- t -

  • TAB : charcode.h
  • TAB_ITEM_HEIGHT : CTabWnd.cpp
  • TAB_MARGIN_LEFT : CTabWnd.cpp
  • TAB_MARGIN_RIGHT : CTabWnd.cpp
  • TAB_MARGIN_TOP : CTabWnd.cpp
  • TAB_WINDOW_HEIGHT : CTabWnd.cpp
  • TABLE_JISESCDATA : charcode.h, charcode.cpp
  • TABLE_JISESCLEN : charcode.h, charcode.cpp
  • TabWndProc() : CTabWnd.cpp
  • TAG_FILENAME : CDlgTagJumpList.h
  • TAG_FORMAT : CDlgTagJumpList.h
  • TAGJUMP_EDITBOX_IS_COMBO : CDlgTagJumpList.h
  • TAGJUMP_TIMER_DELAY : CDlgTagJumpList.h
  • TB_SETEXTENDEDSTYLE : CMenuDrawer.h
  • TBSTYLE_ALTDRAG : CEditWnd.cpp
  • TBSTYLE_COMBOBOX : CMenuDrawer.h
  • TBSTYLE_DROPDOWN : CMenuDrawer.h
  • TBSTYLE_EX_DRAWDDARROWS : CMenuDrawer.h
  • TBSTYLE_FLAT : CEditWnd.cpp
  • TBSTYLE_LIST : CEditWnd.cpp
  • TIMER_CHECKFUNCENABLE : CFuncKeyWnd.cpp
  • TIMER_TIMEOUT : CFuncKeyWnd.cpp
  • TO_EISU : CMemory.cpp
  • TO_HIRAGANA : CMemory.cpp
  • TO_KATAKANA : CMemory.cpp
  • ToolBarWndProc() : CEditWnd.cpp
  • trail : RcCvt.cpp, mrc2brc.cpp
  • TRUE : global.h
  • TWNT_ADD : global.h
  • TWNT_DEL : global.h
  • TWNT_FILE : global.h
  • TWNT_MODE_DISABLE : global.h
  • TWNT_MODE_ENABLE : global.h
  • TWNT_ORDER : global.h
  • TWNT_REFRESH : global.h
  • TWNT_WNDPL_ADJUST : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- u -

  • uchar16_t : charcode.h
  • uchar32_t : charcode.h
  • uchar_t : charcode.h
  • ucNA : charcode.cpp
  • UINT_PTR : global.h
  • ULONG_PTR : global.h
  • UNICODE_INFO : charcode.h
  • usage() : mrc2brc.cpp
  • USE_PARENT : CRegexKeyword.h
  • uShareDataVersion : CShareData.cpp
  • UTF7SetD : charcode.h, charcode.cpp
  • Uu_CharToVal() : charcode.cpp
  • UUDECODE_CHAR : charcode.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- w -

  • WANT_GETLONGPATHNAME_WRAPPER : etc_uty.h
  • WCCODE_INFO : charcode.h
  • wchar32_t : charcode.h
  • WIDTHBYTES : CEditView.cpp
  • WIN32_LEAN_AND_MEAN : StdAfx.h
  • WinMain() : WinMain.cpp
  • WINSIZEMODE_DEF : CShareData.h
  • WINSIZEMODE_SAVE : CShareData.h
  • WINSIZEMODE_SET : CShareData.h
  • WM_MOUSEWHEEL : CWnd.cpp, CEditWnd.cpp, CEditView.cpp
  • WM_THEMECHANGED : CTabWnd.cpp, CEditWnd.cpp
  • WM_XBUTTONDBLCLK : CEditView.cpp
  • WM_XBUTTONDOWN : CEditView.cpp
  • WM_XBUTTONUP : CEditView.cpp
  • Wrap() : OleTypes.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- x -

  • XBUTTON1 : CEditView.cpp
  • XBUTTON2 : CEditView.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y
  • z

これはファイルメンバの一覧です。それぞれが属しているファイルの説明へリンクしています。

- y -

  • YOHAKU_X : CEditWnd.cpp
  • YOHAKU_Y : CEditWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- _ -

  • _ALT : Keycode.h
  • _CARETMARGINRATE : CEditView.h
  • _CTRL : Keycode.h
  • _IS_SJIS_1 : MY_SP.C, charcode.h
  • _IS_SJIS_2 : charcode.h
  • _MAX_DIR : MY_SP.C
  • _MAX_DRIVE : MY_SP.C
  • _MAX_EXT : MY_SP.C
  • _MAX_FNAME : MY_SP.C
  • _MAX_PATH : MY_SP.C
  • _memicmp : my_icmp.h
  • _SHIFT : Keycode.h
  • _stricmp : my_icmp.h
  • _strnicmp : my_icmp.h
  • _tmemcpy : my_tchar.h
  • _USE_META_ALIAS : CShareData.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- k -

  • KINSOKU_TYPE_KINSOKU_HEAD : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_KINSOKU_KUTO : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_KINSOKU_TAIL : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_NONE : CLayoutMgr_New.cpp
  • KINSOKU_TYPE_WORDWRAP : CLayoutMgr_New.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- l -

  • LF : charcode.h
  • LFCR : charcode.h
  • LINE_RANGE_X : CPrintPreview.cpp
  • LINE_RANGE_Y : CPrintPreview.cpp
  • ListView_SetCheckState : CDlgFavorite.cpp
  • LONG_PTR : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- m -

  • MARK_DIFF_APPEND : CDocLine.h
  • MARK_DIFF_CHANGE : CDocLine.h
  • MARK_DIFF_DEL_EX : CDocLine.h
  • MARK_DIFF_DELETE : CDocLine.h
  • MAX_ASM_TOKEN : CEditDoc.cpp
  • MAX_KEYWORDLEN : CKeyWordSetMgr.h
  • MAX_KEYWORDNUM : CKeyWordSetMgr.h
  • MAX_MENUITEMS : CMenuDrawer.h
  • MAX_PREVIEW_ZOOM : CPrintPreview.cpp
  • MAX_SETNAMELEN : CKeyWordSetMgr.h
  • MAX_SETNUM : CKeyWordSetMgr.h
  • MAX_TABITEM_WIDTH : CTabWnd.cpp
  • MAX_TAG_STRING_LENGTH : CSortedTagJumpList.h
  • MAXCOUNTOFVIEW : CSplitterWnd.h
  • memicmp : my_icmp.h
  • MIGEMO_DICTID_HAN2ZEN : CMigemo.h
  • MIGEMO_DICTID_HIRA2KATA : CMigemo.h
  • MIGEMO_DICTID_INVALID : CMigemo.h
  • MIGEMO_DICTID_MIGEMO : CMigemo.h
  • MIGEMO_DICTID_ROMA2HIRA : CMigemo.h
  • MIGEMO_OPINDEX_NEST_IN : CMigemo.h
  • MIGEMO_OPINDEX_NEST_OUT : CMigemo.h
  • MIGEMO_OPINDEX_NEWLINE : CMigemo.h
  • MIGEMO_OPINDEX_OR : CMigemo.h
  • MIGEMO_OPINDEX_SELECT_IN : CMigemo.h
  • MIGEMO_OPINDEX_SELECT_OUT : CMigemo.h
  • MIGEMO_VERSION : CMigemo.h
  • MIME_BASE64 : CMemory.cpp
  • MIME_QUOTED : CMemory.cpp
  • MIN_PREVIEW_ZOOM : CPrintPreview.cpp
  • MIN_TABITEM_WIDTH : CTabWnd.cpp
  • MSGNAME_ATOK_RECONVERT : mymessage.h
  • MY_ICMP_MBS : my_icmp.h
  • MY_INLINE : my_icmp.h
  • MY_RUNNINGTIMER : CRunningTimer.h
  • my_tcsicmp : my_tchar.h
  • my_tcsnicmp : my_tchar.h
  • my_tmemicmp : my_tchar.h
  • MY_TRACETIME : CRunningTimer.h
  • MYASSERT : Debug.h
  • MYDBGMSG : CRegexKeyword.cpp
  • MYMESSAGEBOX : Debug.h
  • MYTRACE : Debug.h
  • MYWM_ADDSTRING : mymessage.h
  • MYWM_BAR_CHANGE_NOTIFY : mymessage.h
  • MYWM_CHANGESETTING : mymessage.h
  • MYWM_CLOSE : mymessage.h
  • MYWM_DELETE_ME : mymessage.h
  • MYWM_DOSPLIT : mymessage.h
  • MYWM_GETCARETPOS : mymessage.h
  • MYWM_GETFILEINFO : mymessage.h
  • MYWM_GETLINEDATA : mymessage.h
  • MYWM_HTMLHELP : mymessage.h
  • MYWM_IME_REQUEST : mymessage.h
  • MYWM_NOTIFYICON : mymessage.h
  • MYWM_OPENNEWEDITOR : mymessage.h
  • MYWM_SETACTIVEPANE : mymessage.h
  • MYWM_SETCARETPOS : mymessage.h
  • MYWM_SETREFERER : mymessage.h
  • MYWM_TAB_WINDOW_NOTIFY : mymessage.h
  • MYWM_UIPI_CHECK : mymessage.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- n -

  • NEVER_USED_PARAM : CPPA.cpp
  • NULL : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- o -

  • OFN_ENABLESIZING : CDlgOpenFile.cpp
  • omGet : CPPA.cpp
  • omSet : CPPA.cpp
  • OPENFILENAME_SIZE_VERSION_400 : CDlgOpenFile.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- a -

  • AFX_STDAFX_H__11490042_E569_11D3_BCE2_444553540001__INCLUDED_ : StdAfx.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- b -

  • BFT_BITMAP : CEditView.cpp
  • BLOCKCOMMENT_BUFFERSIZE : CBlockComment.h
  • BLOCKCOMMENT_NUM : CBlockComment.h
  • BOOL : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- c -

  • CALLH : CWnd.cpp
  • CHAR_8BITCODE : CMemory.cpp
  • CHAR_ASCII : CMemory.cpp
  • CHAR_NULL : CMemory.cpp
  • CHAR_ZENKAKU : CMemory.cpp
  • CheckKanjiCode_MAXREADLENGTH : CMemory.h
  • CK_CR : CDocLineMgr.cpp
  • CK_CSYM : CDocLineMgr.cpp
  • CK_ETC : CDocLineMgr.cpp
  • CK_KATA : CDocLineMgr.cpp
  • CK_LF : CDocLineMgr.cpp
  • CK_MBC_CSYM : CDocLineMgr.cpp
  • CK_MBC_ETC : CDocLineMgr.cpp
  • CK_MBC_GIRI : CDocLineMgr.cpp
  • CK_MBC_HIRA : CDocLineMgr.cpp
  • CK_MBC_KATA : CDocLineMgr.cpp
  • CK_MBC_KIGO : CDocLineMgr.cpp
  • CK_MBC_NOVASU : CDocLineMgr.cpp
  • CK_MBC_ROS : CDocLineMgr.cpp
  • CK_MBC_SKIGO : CDocLineMgr.cpp
  • CK_MBC_SPACE : CDocLineMgr.cpp
  • CK_NULL : CDocLineMgr.cpp
  • CK_SPACE : CDocLineMgr.cpp
  • CK_TAB : CDocLineMgr.cpp
  • CMDLINEOPT_CODE : CCommandLine.cpp
  • CMDLINEOPT_DEBUGMODE : CCommandLine.cpp
  • CMDLINEOPT_GCODE : CCommandLine.cpp
  • CMDLINEOPT_GFILE : CCommandLine.cpp
  • CMDLINEOPT_GFOLDER : CCommandLine.cpp
  • CMDLINEOPT_GKEY : CCommandLine.cpp
  • CMDLINEOPT_GOPT : CCommandLine.cpp
  • CMDLINEOPT_GREPDLG : CCommandLine.cpp
  • CMDLINEOPT_GREPMODE : CCommandLine.cpp
  • CMDLINEOPT_GROUP : CCommandLine.cpp
  • CMDLINEOPT_NOMOREOPT : CCommandLine.cpp
  • CMDLINEOPT_NOWIN : CCommandLine.cpp
  • CMDLINEOPT_R : CCommandLine.cpp
  • CMDLINEOPT_SX : CCommandLine.cpp
  • CMDLINEOPT_SY : CCommandLine.cpp
  • CMDLINEOPT_TYPE : CCommandLine.cpp
  • CMDLINEOPT_VX : CCommandLine.cpp
  • CMDLINEOPT_VY : CCommandLine.cpp
  • CMDLINEOPT_WRITEQUIT : CCommandLine.cpp
  • CMDLINEOPT_WX : CCommandLine.cpp
  • CMDLINEOPT_WY : CCommandLine.cpp
  • CMDLINEOPT_X : CCommandLine.cpp
  • CMDLINEOPT_Y : CCommandLine.cpp
  • COLOR_ATTRIB_FORCE_DISP : global.h
  • COLOR_ATTRIB_NO_BACK : global.h
  • COLOR_ATTRIB_NO_BOLD : global.h
  • COLOR_ATTRIB_NO_EFFECTS : global.h
  • COLOR_ATTRIB_NO_UNDERLINE : global.h
  • COLOR_MENUBAR : global.h
  • COLOR_MENUHILIGHT : global.h
  • COMMENT_DELIMITER_BUFFERSIZE : CLineComment.h
  • COMMENT_DELIMITER_NUM : CLineComment.h
  • COMPAT_BMP_BASE : CPrintPreview.cpp
  • COMPAT_BMP_SCALE : CPrintPreview.cpp
  • COMPILE_MULTIMON_STUBS : etc_uty.cpp
  • COMPILE_NEWAPIS_STUBS : etc_uty.cpp
  • COMPILER_TYPE : CDlgAbout.cpp
  • COMPILER_VER : CDlgAbout.cpp
  • CR : charcode.h
  • CRLF : charcode.h
  • CTAGS_COMMAND : CEditView_Command.cpp
  • CUSTMENU_INDEX_FOR_RBUTTONUP : global.h
  • CUSTMENU_INDEX_FOR_TABWND : global.h
  • CX_SMICON : CTabWnd.cpp
  • CY_SMICON : CTabWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- d -

  • DDASTEXT : CEditWnd.cpp
  • DECLARE_YB_INTERFACEIMPL : CDropTarget.cpp
  • DECLH : CWnd.h
  • DWLP_USER : global.h
  • DWORD_PTR : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- e -

  • EOL_TYPE_NUM : global.h
  • ESC : charcode.h
  • ESC_8BIT : CMemory.cpp
  • ESC_ASCII : CMemory.cpp
  • ESC_JIS : CMemory.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- f -

  • F_1PageDown : Funccode.h
  • F_1PageDown_Sel : Funccode.h
  • F_1PageUp : Funccode.h
  • F_1PageUp_Sel : Funccode.h
  • F_ABOUT : Funccode.h
  • F_ACTIVATE_SQLPLUS : Funccode.h
  • F_ADDTAIL : Funccode.h
  • F_BASE64DECODE : Funccode.h
  • F_BEGIN_BOX : Funccode.h
  • F_BEGIN_SEL : Funccode.h
  • F_BIND_WINDOW : Funccode.h
  • F_BOOKMARK_NEXT : Funccode.h
  • F_BOOKMARK_PATTERN : Funccode.h
  • F_BOOKMARK_PREV : Funccode.h
  • F_BOOKMARK_RESET : Funccode.h
  • F_BOOKMARK_SET : Funccode.h
  • F_BOOKMARK_VIEW : Funccode.h
  • F_BRACKETPAIR : Funccode.h
  • F_BROWSE : Funccode.h
  • F_CANCEL_MODE : Funccode.h
  • F_CASCADE : Funccode.h
  • F_CHAR : Funccode.h
  • F_CHGMOD_EOL : Funccode.h
  • F_CHGMOD_EOL_CR : Funccode.h
  • F_CHGMOD_EOL_CRLF : Funccode.h
  • F_CHGMOD_EOL_LF : Funccode.h
  • F_CHGMOD_INS : Funccode.h
  • F_CHGTABWIDTH : Funccode.h
  • F_CODECNV_AUTO2SJIS : Funccode.h
  • F_CODECNV_EMAIL : Funccode.h
  • F_CODECNV_EUC2SJIS : Funccode.h
  • F_CODECNV_SJIS2EUC : Funccode.h
  • F_CODECNV_SJIS2JIS : Funccode.h
  • F_CODECNV_SJIS2UTF7 : Funccode.h
  • F_CODECNV_SJIS2UTF8 : Funccode.h
  • F_CODECNV_UNICODE2SJIS : Funccode.h
  • F_CODECNV_UNICODEBE2SJIS : Funccode.h
  • F_CODECNV_UTF72SJIS : Funccode.h
  • F_CODECNV_UTF82SJIS : Funccode.h
  • F_COMPARE : Funccode.h
  • F_COPY : Funccode.h
  • F_COPY_ADDCRLF : Funccode.h
  • F_COPY_CRLF : Funccode.h
  • F_COPYFNAME : Funccode.h
  • F_COPYLINES : Funccode.h
  • F_COPYLINESASPASSAGE : Funccode.h
  • F_COPYLINESWITHLINENUMBER : Funccode.h
  • F_COPYPATH : Funccode.h
  • F_COPYTAG : Funccode.h
  • F_CREATEKEYBINDLIST : Funccode.h
  • F_CTRL_CODE_DIALOG : Funccode.h
  • F_CURLINECENTER : Funccode.h
  • F_CUSTMENU_1 : Funccode.h
  • F_CUSTMENU_10 : Funccode.h
  • F_CUSTMENU_11 : Funccode.h
  • F_CUSTMENU_12 : Funccode.h
  • F_CUSTMENU_13 : Funccode.h
  • F_CUSTMENU_14 : Funccode.h
  • F_CUSTMENU_15 : Funccode.h
  • F_CUSTMENU_16 : Funccode.h
  • F_CUSTMENU_17 : Funccode.h
  • F_CUSTMENU_18 : Funccode.h
  • F_CUSTMENU_19 : Funccode.h
  • F_CUSTMENU_2 : Funccode.h
  • F_CUSTMENU_20 : Funccode.h
  • F_CUSTMENU_21 : Funccode.h
  • F_CUSTMENU_22 : Funccode.h
  • F_CUSTMENU_23 : Funccode.h
  • F_CUSTMENU_24 : Funccode.h
  • F_CUSTMENU_3 : Funccode.h
  • F_CUSTMENU_4 : Funccode.h
  • F_CUSTMENU_5 : Funccode.h
  • F_CUSTMENU_6 : Funccode.h
  • F_CUSTMENU_7 : Funccode.h
  • F_CUSTMENU_8 : Funccode.h
  • F_CUSTMENU_9 : Funccode.h
  • F_CUSTMENU_BASE : Funccode.h
  • F_CUT : Funccode.h
  • F_CUT_LINE : Funccode.h
  • F_DELETE : Funccode.h
  • F_DELETE_BACK : Funccode.h
  • F_DELETE_LINE : Funccode.h
  • F_DIFF : Funccode.h
  • F_DIFF_DIALOG : Funccode.h
  • F_DIFF_NEXT : Funccode.h
  • F_DIFF_PREV : Funccode.h
  • F_DIFF_RESET : Funccode.h
  • F_DIRECT_TAGJUMP : Funccode.h
  • F_DISABLE : Funccode.h
  • F_DOWN : Funccode.h
  • F_DOWN2 : Funccode.h
  • F_DOWN2_SEL : Funccode.h
  • F_DOWN_SEL : Funccode.h
  • F_DUPLICATELINE : Funccode.h
  • F_EXECCOMMAND : Funccode.h
  • F_EXECCOMMAND_DIALOG : Funccode.h
  • F_EXECKEYMACRO : Funccode.h
  • F_EXITALL : Funccode.h
  • F_EXITALLEDITORS : Funccode.h
  • F_EXPANDPARAMETER : Funccode.h
  • F_EXTHELP1 : Funccode.h
  • F_EXTHTMLHELP : Funccode.h
  • F_FAVORITE : Funccode.h
  • F_FILE_REOPEN : Funccode.h
  • F_FILE_REOPEN_EUC : Funccode.h
  • F_FILE_REOPEN_JIS : Funccode.h
  • F_FILE_REOPEN_SJIS : Funccode.h
  • F_FILE_REOPEN_UNICODE : Funccode.h
  • F_FILE_REOPEN_UNICODEBE : Funccode.h
  • F_FILE_REOPEN_UTF7 : Funccode.h
  • F_FILE_REOPEN_UTF8 : Funccode.h
  • F_FILECLOSE : Funccode.h
  • F_FILECLOSE_OPEN : Funccode.h
  • F_FILENEW : Funccode.h
  • F_FILEOPEN : Funccode.h
  • F_FILEOPEN_DROPDOWN : Funccode.h
  • F_FILESAVE : Funccode.h
  • F_FILESAVE_QUIET : Funccode.h
  • F_FILESAVEALL : Funccode.h
  • F_FILESAVEAS : Funccode.h
  • F_FILESAVEAS_DIALOG : Funccode.h
  • F_FILESAVECLOSE : Funccode.h
  • F_FONT : Funccode.h
  • F_FUNCTION_FIRST : Funccode.h
  • F_GETCHARCODE : Funccode.h
  • F_GETFILENAME : Funccode.h
  • F_GETLINECODE : Funccode.h
  • F_GETLINECOUNT : Funccode.h
  • F_GETLINESTR : Funccode.h
  • F_GETSELCOLMFROM : Funccode.h
  • F_GETSELCOLMTO : Funccode.h
  • F_GETSELECTED : Funccode.h
  • F_GETSELLINEFROM : Funccode.h
  • F_GETSELLINETO : Funccode.h
  • F_GOFILEEND : Funccode.h
  • F_GOFILEEND_SEL : Funccode.h
  • F_GOFILETOP : Funccode.h
  • F_GOFILETOP_SEL : Funccode.h
  • F_GOLINEEND : Funccode.h
  • F_GOLINEEND_SEL : Funccode.h
  • F_GOLINETOP : Funccode.h
  • F_GOLINETOP_SEL : Funccode.h
  • F_GONEXTPARAGRAPH : Funccode.h
  • F_GONEXTPARAGRAPH_SEL : Funccode.h
  • F_GOPREVPARAGRAPH : Funccode.h
  • F_GOPREVPARAGRAPH_SEL : Funccode.h
  • F_GREP : Funccode.h
  • F_GREP_DIALOG : Funccode.h
  • F_GROUPCLOSE : Funccode.h
  • F_HalfPageDown : Funccode.h
  • F_HalfPageDown_Sel : Funccode.h
  • F_HalfPageUp : Funccode.h
  • F_HalfPageUp_Sel : Funccode.h
  • F_HANKATATOZENKAKUHIRA : Funccode.h
  • F_HANKATATOZENKAKUKATA : Funccode.h
  • F_HELP_CONTENTS : Funccode.h
  • F_HELP_SEARCH : Funccode.h
  • F_HOKAN : Funccode.h
  • F_IME_CHAR : Funccode.h
  • F_INDENT_SPACE : Funccode.h
  • F_INDENT_TAB : Funccode.h
  • F_INS_DATE : Funccode.h
  • F_INS_TIME : Funccode.h
  • F_INSFILE : Funccode.h
  • F_INSTEXT : Funccode.h
  • F_ISEARCH_ADD_CHAR : Funccode.h
  • F_ISEARCH_ADD_STR : Funccode.h
  • F_ISEARCH_DEL_BACK : Funccode.h
  • F_ISEARCH_MIGEMO_NEXT : Funccode.h
  • F_ISEARCH_MIGEMO_PREV : Funccode.h
  • F_ISEARCH_NEXT : Funccode.h
  • F_ISEARCH_PREV : Funccode.h
  • F_ISEARCH_REGEXP_NEXT : Funccode.h
  • F_ISEARCH_REGEXP_PREV : Funccode.h
  • F_ISINSMODE : Funccode.h
  • F_ISPOSSIBLEREDO : Funccode.h
  • F_ISPOSSIBLEUNDO : Funccode.h
  • F_ISTEXTSELECTED : Funccode.h
  • F_JUMP : Funccode.h
  • F_JUMP_DIALOG : Funccode.h
  • F_JUMP_SRCHSTARTPOS : Funccode.h
  • F_JUMPHIST_NEXT : Funccode.h
  • F_JUMPHIST_PREV : Funccode.h
  • F_JUMPHIST_SET : Funccode.h
  • F_LEFT : Funccode.h
  • F_LEFT_SEL : Funccode.h
  • F_LineCutToEnd : Funccode.h
  • F_LineCutToStart : Funccode.h
  • F_LineDeleteToEnd : Funccode.h
  • F_LineDeleteToStart : Funccode.h
  • F_LOADKEYMACRO : Funccode.h
  • F_LTRIM : Funccode.h
  • F_MAXIMIZE_H : Funccode.h
  • F_MAXIMIZE_V : Funccode.h
  • F_MENU_ALLFUNC : Funccode.h
  • F_MENU_NOT_USED_FIRST : Funccode.h
  • F_MENU_RBUTTON : Funccode.h
  • F_MERGE : Funccode.h
  • F_MINIMIZE_ALL : Funccode.h
  • F_NEXTGROUP : Funccode.h
  • F_NEXTWINDOW : Funccode.h
  • F_NOWOPENFILE : Funccode.h
  • F_OPEN_CCPP : Funccode.h
  • F_OPEN_HfromtoC : Funccode.h
  • F_OPEN_HHPP : Funccode.h
  • F_OPTION : Funccode.h
  • F_OPTION_BACKUP : Funccode.h
  • F_OPTION_CUSTMENU : Funccode.h
  • F_OPTION_EDIT : Funccode.h
  • F_OPTION_FILE : Funccode.h
  • F_OPTION_FNAME : Funccode.h
  • F_OPTION_FORMAT : Funccode.h
  • F_OPTION_GENERAL : Funccode.h
  • F_OPTION_GREP : Funccode.h
  • F_OPTION_HELPER : Funccode.h
  • F_OPTION_KEYBIND : Funccode.h
  • F_OPTION_KEYWORD : Funccode.h
  • F_OPTION_MACRO : Funccode.h
  • F_OPTION_TAB : Funccode.h
  • F_OPTION_TOOLBAR : Funccode.h
  • F_OPTION_TYPE : Funccode.h
  • F_OPTION_WINDOW : Funccode.h
  • F_OUTLINE : Funccode.h
  • F_OUTLINE_TOGGLE : Funccode.h
  • F_PASTE : Funccode.h
  • F_PASTEBOX : Funccode.h
  • F_PLSQL_COMPILE_ON_SQLPLUS : Funccode.h
  • F_PREVGROUP : Funccode.h
  • F_PREVWINDOW : Funccode.h
  • F_PRINT : Funccode.h
  • F_PRINT_PAGESETUP : Funccode.h
  • F_PRINT_PREVIEW : Funccode.h
  • F_PROPERTY_FILE : Funccode.h
  • F_PUTFILE : Funccode.h
  • F_READONLY : Funccode.h
  • F_RECENTFILE : Funccode.h
  • F_RECENTFOLDER : Funccode.h
  • F_RECKEYMACRO : Funccode.h
  • F_RECONVERT : Funccode.h
  • F_REDO : Funccode.h
  • F_REDRAW : Funccode.h
  • F_REPLACE : Funccode.h
  • F_REPLACE_ALL : Funccode.h
  • F_REPLACE_DIALOG : Funccode.h
  • F_RIGHT : Funccode.h
  • F_RIGHT_SEL : Funccode.h
  • F_RTRIM : Funccode.h
  • F_SAVEKEYMACRO : Funccode.h
  • F_SEARCH_BOX : Funccode.h
  • F_SEARCH_CLEARMARK : Funccode.h
  • F_SEARCH_DIALOG : Funccode.h
  • F_SEARCH_NEXT : Funccode.h
  • F_SEARCH_PREV : Funccode.h
  • F_SELECTALL : Funccode.h
  • F_SELECTWORD : Funccode.h
  • F_SEPARATOR : Funccode.h
  • F_SET_QUOTESTRING : Funccode.h
  • F_SHOWFUNCKEY : Funccode.h
  • F_SHOWSTATUSBAR : Funccode.h
  • F_SHOWTAB : Funccode.h
  • F_SHOWTOOLBAR : Funccode.h
  • F_SORT_ASC : Funccode.h
  • F_SORT_DESC : Funccode.h
  • F_SPACETOTAB : Funccode.h
  • F_SPLIT_H : Funccode.h
  • F_SPLIT_V : Funccode.h
  • F_SPLIT_VH : Funccode.h
  • F_TAB_JOINTNEXT : Funccode.h
  • F_TAB_JOINTPREV : Funccode.h
  • F_TAB_MOVELEFT : Funccode.h
  • F_TAB_MOVERIGHT : Funccode.h
  • F_TAB_SEPARATE : Funccode.h
  • F_TABTOSPACE : Funccode.h
  • F_TAGJUMP : Funccode.h
  • F_TAGJUMP_CLOSE : Funccode.h
  • F_TAGJUMP_KEYWORD : Funccode.h
  • F_TAGJUMP_LIST : Funccode.h
  • F_TAGJUMPBACK : Funccode.h
  • F_TAGS_MAKE : Funccode.h
  • F_TILE_H : Funccode.h
  • F_TILE_V : Funccode.h
  • F_TOGGLE_KEY_SEARCH : Funccode.h
  • F_TOHANEI : Funccode.h
  • F_TOHANKAKU : Funccode.h
  • F_TOHANKATA : Funccode.h
  • F_TOLOWER : Funccode.h
  • F_TOPMOST : Funccode.h
  • F_TOUPPER : Funccode.h
  • F_TOZENEI : Funccode.h
  • F_TOZENKAKUHIRA : Funccode.h
  • F_TOZENKAKUKATA : Funccode.h
  • F_TRACEOUT : Funccode.h
  • F_TYPE_COLOR : Funccode.h
  • F_TYPE_HELPER : Funccode.h
  • F_TYPE_KEYHELP : Funccode.h
  • F_TYPE_LIST : Funccode.h
  • F_TYPE_REGEX_KEYWORD : Funccode.h
  • F_TYPE_SCREEN : Funccode.h
  • F_UNDO : Funccode.h
  • F_UNINDENT_SPACE : Funccode.h
  • F_UNINDENT_TAB : Funccode.h
  • F_UP : Funccode.h
  • F_UP2 : Funccode.h
  • F_UP2_SEL : Funccode.h
  • F_UP_SEL : Funccode.h
  • F_USERMACRO_0 : Funccode.h
  • F_UUDECODE : Funccode.h
  • F_WIN_CLOSEALL : Funccode.h
  • F_WIN_OUTPUT : Funccode.h
  • F_WINCLOSE : Funccode.h
  • F_WINLIST : Funccode.h
  • F_WndScrollDown : Funccode.h
  • F_WndScrollUp : Funccode.h
  • F_WordCut : Funccode.h
  • F_WordDelete : Funccode.h
  • F_WordDeleteToEnd : Funccode.h
  • F_WordDeleteToStart : Funccode.h
  • F_WORDLEFT : Funccode.h
  • F_WORDLEFT_SEL : Funccode.h
  • F_WORDRIGHT : Funccode.h
  • F_WORDRIGHT_SEL : Funccode.h
  • F_WRAPWINDOWWIDTH : Funccode.h
  • FALSE : global.h
  • FID_RECONVERT_VERSION : CEditView_Command_New.cpp
  • FN_APP_ICON : global.h
  • FN_GREP_ICON : global.h
  • FN_TOOL_BMP : global.h
  • FOOTER_MAX : CShareData.h
  • FUNCINFO_NOCLIPTEXT : CFuncInfo.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- g -

  • GA_PARENT : etc_uty.h
  • GA_ROOT : etc_uty.h
  • GA_ROOTOWNER : etc_uty.h
  • GetExistPath_AV_Drive : MY_SP.C
  • GetExistPath_IV_Drive : MY_SP.C
  • GetExistPath_NO_DriveLetter : MY_SP.C
  • GetWindowLongPtr : global.h
  • GFSR_GDIRESOURCES : etc_uty.cpp
  • GFSR_SYSTEMRESOURCES : etc_uty.cpp
  • GFSR_USERRESOURCES : etc_uty.cpp
  • GSTR_CEDITAPP : global.h
  • GSTR_CSHAREDATA : global.h
  • GSTR_EDITWINDOWNAME : global.h
  • GSTR_EVENT_SAKURA_CP_INITIALIZED : global.h
  • GSTR_MUTEX_SAKURA : global.h
  • GSTR_MUTEX_SAKURA_CP : global.h
  • GSTR_MUTEX_SAKURA_EDITARR : global.h
  • GSTR_MUTEX_SAKURA_INIT : global.h
  • GWLP_HINSTANCE : global.h
  • GWLP_USERDATA : global.h
  • GWLP_WNDPROC : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- h -

  • HDIC_TAGJUMPLIST_KEYWORD : sakura.hh
  • HEADER_MAX : CShareData.h
  • HIDC_ABOUT_BUTTON_CONTACT : sakura.hh
  • HIDC_ABOUT_EDIT_ABOUT : sakura.hh
  • HIDC_BUTTON_ADD : sakura.hh
  • HIDC_BUTTON_ADD_TOOLBAR : sakura.hh
  • HIDC_BUTTON_ADDKEYWORD : sakura.hh
  • HIDC_BUTTON_ADDSET : sakura.hh
  • HIDC_BUTTON_ASSIGN : sakura.hh
  • HIDC_BUTTON_BACKCOLOR : sakura.hh
  • HIDC_BUTTON_BACKUP_FOLDER_REF : sakura.hh
  • HIDC_BUTTON_CLEAR_MRU_FILE : sakura.hh
  • HIDC_BUTTON_CLEAR_MRU_FOLDER : sakura.hh
  • HIDC_BUTTON_CTRLCODE_HELP : sakura.hh
  • HIDC_BUTTON_DELETE : sakura.hh
  • HIDC_BUTTON_DELETE_TOOLBAR : sakura.hh
  • HIDC_BUTTON_DELKEYWORD : sakura.hh
  • HIDC_BUTTON_DELSET : sakura.hh
  • HIDC_BUTTON_DIFF_DST : sakura.hh
  • HIDC_BUTTON_DIFF_HELP : sakura.hh
  • HIDC_BUTTON_DOWN : sakura.hh
  • HIDC_BUTTON_DOWN_TOOLBAR : sakura.hh
  • HIDC_BUTTON_EDITKEYWORD : sakura.hh
  • HIDC_BUTTON_EXPORT : sakura.hh
  • HIDC_BUTTON_EXPORT_COLOR : sakura.hh
  • HIDC_BUTTON_EXPORT_KEYBIND : sakura.hh
  • HIDC_BUTTON_EXPORT_KEYWORD : sakura.hh
  • HIDC_BUTTON_FAVORITE_CLEAR : sakura.hh
  • HIDC_BUTTON_FAVORITE_HELP : sakura.hh
  • HIDC_BUTTON_FNAME_ADD : sakura.hh
  • HIDC_BUTTON_FNAME_DEL : sakura.hh
  • HIDC_BUTTON_FNAME_DOWN : sakura.hh
  • HIDC_BUTTON_FNAME_INS : sakura.hh
  • HIDC_BUTTON_FNAME_LAST : sakura.hh
  • HIDC_BUTTON_FNAME_TOP : sakura.hh
  • HIDC_BUTTON_FNAME_UP : sakura.hh
  • HIDC_BUTTON_FNAME_UPD : sakura.hh
  • HIDC_BUTTON_HOKANFILE_REF : sakura.hh
  • HIDC_BUTTON_IMPORT : sakura.hh
  • HIDC_BUTTON_IMPORT_COLOR : sakura.hh
  • HIDC_BUTTON_IMPORT_KEYBIND : sakura.hh
  • HIDC_BUTTON_IMPORT_KEYWORD : sakura.hh
  • HIDC_BUTTON_INSERT : sakura.hh
  • HIDC_BUTTON_INSERT_TOOLBAR : sakura.hh
  • HIDC_BUTTON_INSERTSEPARATOR : sakura.hh
  • HIDC_BUTTON_INSERTSEPARATOR_TOOLBAR : sakura.hh
  • HIDC_BUTTON_INSERTWRAP : sakura.hh
  • HIDC_BUTTON_KEYCLEAN : sakura.hh
  • HIDC_BUTTON_KEYHELP_DEL : sakura.hh
  • HIDC_BUTTON_KEYHELP_DOWN : sakura.hh
  • HIDC_BUTTON_KEYHELP_EXPORT : sakura.hh
  • HIDC_BUTTON_KEYHELP_IMPORT : sakura.hh
  • HIDC_BUTTON_KEYHELP_INS : sakura.hh
  • HIDC_BUTTON_KEYHELP_LAST : sakura.hh
  • HIDC_BUTTON_KEYHELP_REF : sakura.hh
  • HIDC_BUTTON_KEYHELP_TOP : sakura.hh
  • HIDC_BUTTON_KEYHELP_UP : sakura.hh
  • HIDC_BUTTON_KEYHELP_UPD : sakura.hh
  • HIDC_BUTTON_KEYSETRENAME : sakura.hh
  • HIDC_BUTTON_KEYWORD_SELECT : sakura.hh
  • HIDC_BUTTON_KEYWORDHELPFONT : sakura.hh
  • HIDC_BUTTON_OPENEXTHTMLHELP : sakura.hh
  • HIDC_BUTTON_OPENHELP1 : sakura.hh
  • HIDC_BUTTON_OPENMDICT : sakura.hh
  • HIDC_BUTTON_OPENMDLL : sakura.hh
  • HIDC_BUTTON_REGEX_ADD : sakura.hh
  • HIDC_BUTTON_REGEX_DEL : sakura.hh
  • HIDC_BUTTON_REGEX_DOWN : sakura.hh
  • HIDC_BUTTON_REGEX_EXPORT : sakura.hh
  • HIDC_BUTTON_REGEX_IMPORT : sakura.hh
  • HIDC_BUTTON_REGEX_INS : sakura.hh
  • HIDC_BUTTON_REGEX_LAST : sakura.hh
  • HIDC_BUTTON_REGEX_TOP : sakura.hh
  • HIDC_BUTTON_REGEX_UP : sakura.hh
  • HIDC_BUTTON_REGEX_UPD : sakura.hh
  • HIDC_BUTTON_RELEASE : sakura.hh
  • HIDC_BUTTON_RULEFILE_REF : sakura.hh
  • HIDC_BUTTON_SAMEBKCOLOR : sakura.hh
  • HIDC_BUTTON_SAMECOLOR_HELP : sakura.hh
  • HIDC_BUTTON_SAMECOLOR_SELALL : sakura.hh
  • HIDC_BUTTON_SAMECOLOR_SELNOTING : sakura.hh
  • HIDC_BUTTON_SAMETEXTCOLOR : sakura.hh
  • HIDC_BUTTON_TAG_MAKE_HELP : sakura.hh
  • HIDC_BUTTON_TAG_MAKE_REF : sakura.hh
  • HIDC_BUTTON_TAGJUMPLIST_HELP : sakura.hh
  • HIDC_BUTTON_TEXTCOLOR : sakura.hh
  • HIDC_BUTTON_TYPEOPENEXTHTMLHELP : sakura.hh
  • HIDC_BUTTON_TYPEOPENHELP : sakura.hh
  • HIDC_BUTTON_UP : sakura.hh
  • HIDC_BUTTON_UP_TOOLBAR : sakura.hh
  • HIDC_BUTTON_WINSIZE : sakura.hh
  • HIDC_BUTTON_WINSIZE_HELP : sakura.hh
  • HIDC_CHECK_ADDCRLFWHENCOPY : sakura.hh
  • HIDC_CHECK_AlertIfFileNotExist : sakura.hh
  • HIDC_CHECK_ALT : sakura.hh
  • HIDC_CHECK_AutoMIMEDecode : sakura.hh
  • HIDC_CHECK_AUTOSAVE : sakura.hh
  • HIDC_CHECK_BACKUP : sakura.hh
  • HIDC_CHECK_BACKUP_ADVANCED : sakura.hh
  • HIDC_CHECK_BACKUP_DAY : sakura.hh
  • HIDC_CHECK_BACKUP_DUSTBOX : sakura.hh
  • HIDC_CHECK_BACKUP_HOUR : sakura.hh
  • HIDC_CHECK_BACKUP_MIN : sakura.hh
  • HIDC_CHECK_BACKUP_MONTH : sakura.hh
  • HIDC_CHECK_BACKUP_RETAINEXT : sakura.hh
  • HIDC_CHECK_BACKUP_SEC : sakura.hh
  • HIDC_CHECK_BACKUP_YEAR : sakura.hh
  • HIDC_CHECK_BACKUPDIALOG : sakura.hh
  • HIDC_CHECK_BACKUPFOLDER : sakura.hh
  • HIDC_CHECK_bCaretTextForSearch : sakura.hh
  • HIDC_CHECK_bCheckFileTimeStamp : sakura.hh
  • HIDC_CHECK_bDropFileAndClose : sakura.hh
  • HIDC_CHECK_bGrepExitConfirm : sakura.hh
  • HIDC_CHECK_bMenuIcon : sakura.hh
  • HIDC_CHECK_bNotOverWriteCRLF : sakura.hh
  • HIDC_CHECK_bScrollBarHorz : sakura.hh
  • HIDC_CHECK_bSelectClickedURL : sakura.hh
  • HIDC_CHECK_ChgWndByWheel : sakura.hh
  • HIDC_CHECK_CLICKKEYSEARCH : sakura.hh
  • HIDC_CHECK_CLOSEALLCONFIRM : sakura.hh
  • HIDC_CHECK_CloseOneWin : sakura.hh
  • HIDC_CHECK_COPYnDISABLESELECTEDAREA : sakura.hh
  • HIDC_CHECK_CTRL : sakura.hh
  • HIDC_CHECK_DIFF_EXEC_STATE : sakura.hh
  • HIDC_CHECK_DIFF_NOTIFYNOTFOUND : sakura.hh
  • HIDC_CHECK_DIFF_OPT_BLINE : sakura.hh
  • HIDC_CHECK_DIFF_OPT_CASE : sakura.hh
  • HIDC_CHECK_DIFF_OPT_SPACE : sakura.hh
  • HIDC_CHECK_DIFF_OPT_SPCCHG : sakura.hh
  • HIDC_CHECK_DIFF_OPT_TABSPC : sakura.hh
  • HIDC_CHECK_DIFF_SEARCHALL : sakura.hh
  • HIDC_CHECK_DISP : sakura.hh
  • HIDC_CHECK_DispFUNCKEYWND : sakura.hh
  • HIDC_CHECK_DispSTATUSBAR : sakura.hh
  • HIDC_CHECK_DispTabIcon : sakura.hh
  • HIDC_CHECK_DispTabWnd : sakura.hh
  • HIDC_CHECK_DispTabWndMultiWin : sakura.hh
  • HIDC_CHECK_DispTOOLBAR : sakura.hh
  • HIDC_CHECK_DOCICON : sakura.hh
  • HIDC_CHECK_DRAGDROP : sakura.hh
  • HIDC_CHECK_DROPSOURCE : sakura.hh
  • HIDC_CHECK_ENABLEUNMODIFIEDOVERWRITE : sakura.hh
  • HIDC_CHECK_EXCVLUSIVE_NO : sakura.hh
  • HIDC_CHECK_EXCVLUSIVE_READWRITE : sakura.hh
  • HIDC_CHECK_EXCVLUSIVE_WRITE : sakura.hh
  • HIDC_CHECK_EXITCONFIRM : sakura.hh
  • HIDC_CHECK_FAT : sakura.hh
  • HIDC_CHECK_FREECARET : sakura.hh
  • HIDC_CHECK_GREPREALTIME : sakura.hh
  • HIDC_CHECK_GTJW_LDBLCLK : sakura.hh
  • HIDC_CHECK_GTJW_RETURN : sakura.hh
  • HIDC_CHECK_HOKANBYFILE : sakura.hh
  • HIDC_CHECK_HOKANLOHICASE : sakura.hh
  • HIDC_CHECK_HTMLHELPISSINGLE : sakura.hh
  • HIDC_CHECK_INDENT : sakura.hh
  • HIDC_CHECK_INDENT_WSPACE : sakura.hh
  • HIDC_CHECK_INS_SPACE : sakura.hh
  • HIDC_CHECK_KEYHELP : sakura.hh
  • HIDC_CHECK_KEYHELP_ALLSEARCH : sakura.hh
  • HIDC_CHECK_KEYHELP_KEYDISP : sakura.hh
  • HIDC_CHECK_KEYHELP_PREFIX : sakura.hh
  • HIDC_CHECK_KEYWORDCASE : sakura.hh
  • HIDC_CHECK_KINSOKUHEAD : sakura.hh
  • HIDC_CHECK_KINSOKUKUTO : sakura.hh
  • HIDC_CHECK_KINSOKURET : sakura.hh
  • HIDC_CHECK_KINSOKUTAIL : sakura.hh
  • HIDC_CHECK_LCPOS : sakura.hh
  • HIDC_CHECK_LCPOS2 : sakura.hh
  • HIDC_CHECK_LCPOS3 : sakura.hh
  • HIDC_CHECK_m_bHokanKey_RETURN : sakura.hh
  • HIDC_CHECK_m_bHokanKey_RIGHT : sakura.hh
  • HIDC_CHECK_m_bHokanKey_SPACE : sakura.hh
  • HIDC_CHECK_m_bHokanKey_TAB : sakura.hh
  • HIDC_CHECK_NoFilterSaveFile : sakura.hh
  • HIDC_CHECK_NoFilterSaveNew : sakura.hh
  • HIDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE : sakura.hh
  • HIDC_CHECK_QueryIfCodeChange : sakura.hh
  • HIDC_CHECK_REGEX : sakura.hh
  • HIDC_CHECK_RELOADWHENEXECUTE : sakura.hh
  • HIDC_CHECK_REPEATEDSCROLLSMOOTH : sakura.hh
  • HIDC_CHECK_RestoreBookmarks : sakura.hh
  • HIDC_CHECK_RestoreCurPosition : sakura.hh
  • HIDC_CHECK_RetainEmptyWindow : sakura.hh
  • HIDC_CHECK_RTRIM_PREVLINE : sakura.hh
  • HIDC_CHECK_SameTabWidth : sakura.hh
  • HIDC_CHECK_SENDSTDIN : sakura.hh
  • HIDC_CHECK_SHIFT : sakura.hh
  • HIDC_CHECK_SortTabList : sakura.hh
  • HIDC_CHECK_SplitterWndHScroll : sakura.hh
  • HIDC_CHECK_SplitterWndVScroll : sakura.hh
  • HIDC_CHECK_STAYTASKTRAY : sakura.hh
  • HIDC_CHECK_STOPS_PARAGRAPH : sakura.hh
  • HIDC_CHECK_STOPS_WORD : sakura.hh
  • HIDC_CHECK_TAB_ARROW : sakura.hh
  • HIDC_CHECK_TAG_MAKE_RECURSE : sakura.hh
  • HIDC_CHECK_TOOLBARISFLAT : sakura.hh
  • HIDC_CHECK_TYPEHTMLHELPISSINGLE : sakura.hh
  • HIDC_CHECK_UNDERLINE : sakura.hh
  • HIDC_CHECK_USEHOKAN : sakura.hh
  • HIDC_CHECK_USETRAYICON : sakura.hh
  • HIDC_CHECK_WINPOS : sakura.hh
  • HIDC_CHECK_WORDWRAP : sakura.hh
  • HIDC_CMP_BUTTON1 : sakura.hh
  • HIDC_CMP_BUTTON_HELP : sakura.hh
  • HIDC_CMP_CHECK_TILE_H : sakura.hh
  • HIDC_CMP_LIST_FILES : sakura.hh
  • HIDC_CMP_STATIC_COMPARESRC : sakura.hh
  • HIDC_COMBO_FUNCKIND : sakura.hh
  • HIDC_COMBO_FUNCKIND_KEYBIND : sakura.hh
  • HIDC_COMBO_FUNCKIND_TOOLBAR : sakura.hh
  • HIDC_COMBO_IMESTATE : sakura.hh
  • HIDC_COMBO_IMESWITCH : sakura.hh
  • HIDC_COMBO_INDENTLAYOUT : sakura.hh
  • HIDC_COMBO_KEYWORD_SELECT : sakura.hh
  • HIDC_COMBO_MACROID : sakura.hh
  • HIDC_COMBO_MENU : sakura.hh
  • HIDC_COMBO_nSortType : sakura.hh
  • HIDC_COMBO_OUTLINES : sakura.hh
  • HIDC_COMBO_REGEX_COLOR : sakura.hh
  • HIDC_COMBO_SET : sakura.hh
  • HIDC_COMBO_SET2_COLOR : sakura.hh
  • HIDC_COMBO_SET_COLOR : sakura.hh
  • HIDC_COMBO_SMARTINDENT : sakura.hh
  • HIDC_COMBO_WINTYPE : sakura.hh
  • HIDC_CTRLCODE_IDCANCEL : sakura.hh
  • HIDC_CTRLCODE_IDOK : sakura.hh
  • HIDC_DIFF_IDCANCEL : sakura.hh
  • HIDC_DIFF_IDOK : sakura.hh
  • HIDC_DLG1_EDIT1 : sakura.hh
  • HIDC_EDIT_AUTOBACKUP_INTERVAL : sakura.hh
  • HIDC_EDIT_BACKUP_3 : sakura.hh
  • HIDC_EDIT_BACKUPFILE : sakura.hh
  • HIDC_EDIT_BACKUPFOLDER : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_FROM : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_FROM2 : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_TO : sakura.hh
  • HIDC_EDIT_BLOCKCOMMENT_TO2 : sakura.hh
  • HIDC_EDIT_CHARSPACE : sakura.hh
  • HIDC_EDIT_DFORM : sakura.hh
  • HIDC_EDIT_DFORM_EX : sakura.hh
  • HIDC_EDIT_DIFF_DST : sakura.hh
  • HIDC_EDIT_EXTHELP1 : sakura.hh
  • HIDC_EDIT_EXTHTMLHELP : sakura.hh
  • HIDC_EDIT_FNAME_FROM : sakura.hh
  • HIDC_EDIT_FNAME_TO : sakura.hh
  • HIDC_EDIT_FUNCKEYWND_GROUPNUM : sakura.hh
  • HIDC_EDIT_HOKANFILE : sakura.hh
  • HIDC_EDIT_INDENTCHARS : sakura.hh
  • HIDC_EDIT_INYOUKIGOU : sakura.hh
  • HIDC_EDIT_KEYHELP : sakura.hh
  • HIDC_EDIT_KEYSFUNC : sakura.hh
  • HIDC_EDIT_KEYWORDHELPFILE : sakura.hh
  • HIDC_EDIT_KINSOKUHEAD : sakura.hh
  • HIDC_EDIT_KINSOKUTAIL : sakura.hh
  • HIDC_EDIT_LINECOMMENT : sakura.hh
  • HIDC_EDIT_LINECOMMENT2 : sakura.hh
  • HIDC_EDIT_LINECOMMENT3 : sakura.hh
  • HIDC_EDIT_LINECOMMENTPOS : sakura.hh
  • HIDC_EDIT_LINECOMMENTPOS2 : sakura.hh
  • HIDC_EDIT_LINECOMMENTPOS3 : sakura.hh
  • HIDC_EDIT_LINESPACE : sakura.hh
  • HIDC_EDIT_LINETERMCHAR : sakura.hh
  • HIDC_EDIT_MAX_MRU_FILE : sakura.hh
  • HIDC_EDIT_MAX_MRU_FOLDER : sakura.hh
  • HIDC_EDIT_MAXLINELEN : sakura.hh
  • HIDC_EDIT_MIDASHIKIGOU : sakura.hh
  • HIDC_EDIT_MIGEMO_DICT : sakura.hh
  • HIDC_EDIT_MIGEMO_DLL : sakura.hh
  • HIDC_EDIT_nDropFileNumMax : sakura.hh
  • HIDC_EDIT_nLineNumberRightSpace : sakura.hh
  • HIDC_EDIT_nRulerBottomSpace : sakura.hh
  • HIDC_EDIT_nRulerHeight : sakura.hh
  • HIDC_EDIT_OUTLINERULEFILE : sakura.hh
  • HIDC_EDIT_REGEX : sakura.hh
  • HIDC_EDIT_REGEXPLIB : sakura.hh
  • HIDC_EDIT_REPEATEDSCROLLLINENUM : sakura.hh
  • HIDC_EDIT_SX : sakura.hh
  • HIDC_EDIT_SY : sakura.hh
  • HIDC_EDIT_TABSPACE : sakura.hh
  • HIDC_EDIT_TABVIEWSTRING : sakura.hh
  • HIDC_EDIT_TAG_MAKE_CMDLINE : sakura.hh
  • HIDC_EDIT_TAG_MAKE_FOLDER : sakura.hh
  • HIDC_EDIT_TFORM : sakura.hh
  • HIDC_EDIT_TFORM_EX : sakura.hh
  • HIDC_EDIT_TYPEEXTHELP : sakura.hh
  • HIDC_EDIT_TYPEEXTHTMLHELP : sakura.hh
  • HIDC_EDIT_TYPEEXTS : sakura.hh
  • HIDC_EDIT_TYPENAME : sakura.hh
  • HIDC_EDIT_VERTLINE : sakura.hh
  • HIDC_EDIT_WX : sakura.hh
  • HIDC_EDIT_WY : sakura.hh
  • HIDC_EXEC_BUTTON_HELP : sakura.hh
  • HIDC_EXEC_BUTTON_REFERENCE : sakura.hh
  • HIDC_EXEC_CHECK_GETSTDOUT : sakura.hh
  • HIDC_EXEC_COMBO_m_szCommand : sakura.hh
  • HIDC_FAVORITE_IDCANCEL : sakura.hh
  • HIDC_FAVORITE_IDOK : sakura.hh
  • HIDC_FIND_BUTTON_HELP : sakura.hh
  • HIDC_FIND_BUTTON_SEARCHNEXT : sakura.hh
  • HIDC_FIND_BUTTON_SEARCHPREV : sakura.hh
  • HIDC_FIND_BUTTON_SETMARK : sakura.hh
  • HIDC_FIND_CHECK_bAutoCloseDlgFind : sakura.hh
  • HIDC_FIND_CHECK_NOTIFYNOTFOUND : sakura.hh
  • HIDC_FIND_CHECK_SEARCHALL : sakura.hh
  • HIDC_FIND_CHK_LOHICASE : sakura.hh
  • HIDC_FIND_CHK_REGULAREXP : sakura.hh
  • HIDC_FIND_CHK_WORD : sakura.hh
  • HIDC_FIND_COMBO_TEXT : sakura.hh
  • HIDC_FIND_STATIC_JRE32VER : sakura.hh
  • HIDC_FL_BUTTON_COPY : sakura.hh
  • HIDC_FL_BUTTON_HELP : sakura.hh
  • HIDC_FL_BUTTON_WINSIZE : sakura.hh
  • HIDC_FL_CHECK_bAutoCloseDlgFuncList : sakura.hh
  • HIDC_FL_CHECK_bFunclistSetFocusOnJump : sakura.hh
  • HIDC_FL_CHECK_bMarkUpBlankLineEnable : sakura.hh
  • HIDC_FL_LIST1 : sakura.hh
  • HIDC_FL_TREE1 : sakura.hh
  • HIDC_GREP_BUTTON_CURRENTFOLDER : sakura.hh
  • HIDC_GREP_BUTTON_FOLDER : sakura.hh
  • HIDC_GREP_BUTTON_HELP : sakura.hh
  • HIDC_GREP_CHK_DEFAULTFOLDER : sakura.hh
  • HIDC_GREP_CHK_FROMTHISTEXT : sakura.hh
  • HIDC_GREP_CHK_LOHICASE : sakura.hh
  • HIDC_GREP_CHK_REGULAREXP : sakura.hh
  • HIDC_GREP_CHK_SUBFOLDER : sakura.hh
  • HIDC_GREP_CHK_WORD : sakura.hh
  • HIDC_GREP_COMBO_CHARSET : sakura.hh
  • HIDC_GREP_COMBO_FILE : sakura.hh
  • HIDC_GREP_COMBO_FOLDER : sakura.hh
  • HIDC_GREP_COMBO_TEXT : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTLINE : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTMARKED : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTSTYLE1 : sakura.hh
  • HIDC_GREP_RADIO_OUTPUTSTYLE2 : sakura.hh
  • HIDC_GREP_STATIC_JRE32VER : sakura.hh
  • HIDC_HOTKEY_TRAYMENU : sakura.hh
  • HIDC_JUMP_BUTTON_HELP : sakura.hh
  • HIDC_JUMP_BUTTON_JUMP : sakura.hh
  • HIDC_JUMP_CHECK_PLSQL : sakura.hh
  • HIDC_JUMP_COMBO_PLSQLBLOCKS : sakura.hh
  • HIDC_JUMP_EDIT_LINENUM : sakura.hh
  • HIDC_JUMP_EDIT_PLSQL_E1 : sakura.hh
  • HIDC_JUMP_RADIO_LINENUM_CRLF : sakura.hh
  • HIDC_JUMP_RADIO_LINENUM_LAYOUT : sakura.hh
  • HIDC_LABEL_REGEX_VERSION : sakura.hh
  • HIDC_LABEL_REGEXPVER : sakura.hh
  • HIDC_LIST_ASSIGNEDKEYS : sakura.hh
  • HIDC_LIST_COLORS : sakura.hh
  • HIDC_LIST_CTRLCODE : sakura.hh
  • HIDC_LIST_DIFF_FILES : sakura.hh
  • HIDC_LIST_FAVORITE_CMD : sakura.hh
  • HIDC_LIST_FAVORITE_FILE : sakura.hh
  • HIDC_LIST_FAVORITE_FOLDER : sakura.hh
  • HIDC_LIST_FAVORITE_GREPFILE : sakura.hh
  • HIDC_LIST_FAVORITE_GREPFOLDER : sakura.hh
  • HIDC_LIST_FAVORITE_REPLACE : sakura.hh
  • HIDC_LIST_FAVORITE_SEARCH : sakura.hh
  • HIDC_LIST_FNAME : sakura.hh
  • HIDC_LIST_FUNC : sakura.hh
  • HIDC_LIST_FUNC_KEYBIND : sakura.hh
  • HIDC_LIST_FUNC_TOOLBAR : sakura.hh
  • HIDC_LIST_KEY : sakura.hh
  • HIDC_LIST_KEYHELP : sakura.hh
  • HIDC_LIST_KEYWORD : sakura.hh
  • HIDC_LIST_REGEX : sakura.hh
  • HIDC_LIST_RES : sakura.hh
  • HIDC_LIST_RES_TOOLBAR : sakura.hh
  • HIDC_LIST_SAMECOLOR_COLORS : sakura.hh
  • HIDC_LIST_SAMECOLOR_ITEMINFO : sakura.hh
  • HIDC_LIST_TAGJUMPLIST : sakura.hh
  • HIDC_MACRO_REG : sakura.hh
  • HIDC_MACRODIR : sakura.hh
  • HIDC_MACRODIRREF : sakura.hh
  • HIDC_MACROLIST : sakura.hh
  • HIDC_MACRONAME : sakura.hh
  • HIDC_MACROPATH : sakura.hh
  • HIDC_OPENDLG_BUTTON_HELP : sakura.hh
  • HIDC_OPENDLG_CHECK_BOM : sakura.hh
  • HIDC_OPENDLG_COMBO_CODE : sakura.hh
  • HIDC_OPENDLG_COMBO_EOL : sakura.hh
  • HIDC_OPENDLG_COMBO_MRU : sakura.hh
  • HIDC_OPENDLG_COMBO_OPENFOLDER : sakura.hh
  • HIDC_PP_EDIT_FROM : sakura.hh
  • HIDC_PP_EDIT_TO : sakura.hh
  • HIDC_PP_RADIO_ALL : sakura.hh
  • HIDC_PP_RADIO_FROMTO : sakura.hh
  • HIDC_PROP_BUTTON_HELP : sakura.hh
  • HIDC_PROP_EDIT1 : sakura.hh
  • HIDC_PS_BUTTON_EDITSETTINGNAME : sakura.hh
  • HIDC_PS_BUTTON_HELP : sakura.hh
  • HIDC_PS_CHECK_KINSOKUHEAD : sakura.hh
  • HIDC_PS_CHECK_KINSOKUKUTO : sakura.hh
  • HIDC_PS_CHECK_KINSOKURET : sakura.hh
  • HIDC_PS_CHECK_KINSOKUTAIL : sakura.hh
  • HIDC_PS_CHECK_LINENUMBER : sakura.hh
  • HIDC_PS_CHECK_WORDWRAP : sakura.hh
  • HIDC_PS_COMBO_FONT_HAN : sakura.hh
  • HIDC_PS_COMBO_FONT_ZEN : sakura.hh
  • HIDC_PS_COMBO_PAPER : sakura.hh
  • HIDC_PS_COMBO_PAPERORIENT : sakura.hh
  • HIDC_PS_COMBO_SETTINGNAME : sakura.hh
  • HIDC_PS_EDIT_DANSPACE : sakura.hh
  • HIDC_PS_EDIT_DANSUU : sakura.hh
  • HIDC_PS_EDIT_FONTWIDTH : sakura.hh
  • HIDC_PS_EDIT_FOOT1 : sakura.hh
  • HIDC_PS_EDIT_FOOT2 : sakura.hh
  • HIDC_PS_EDIT_FOOT3 : sakura.hh
  • HIDC_PS_EDIT_HEAD1 : sakura.hh
  • HIDC_PS_EDIT_HEAD2 : sakura.hh
  • HIDC_PS_EDIT_HEAD3 : sakura.hh
  • HIDC_PS_EDIT_LINESPACE : sakura.hh
  • HIDC_PS_EDIT_MARGINBY : sakura.hh
  • HIDC_PS_EDIT_MARGINLX : sakura.hh
  • HIDC_PS_EDIT_MARGINRX : sakura.hh
  • HIDC_PS_EDIT_MARGINTY : sakura.hh
  • HIDC_RADIO_BACKUP_DATETYPE1 : sakura.hh
  • HIDC_RADIO_BACKUP_DATETYPE2 : sakura.hh
  • HIDC_RADIO_BACKUP_TYPE1 : sakura.hh
  • HIDC_RADIO_BACKUP_TYPE2NEWHID : sakura.hh
  • HIDC_RADIO_BACKUP_TYPE3NEWHID : sakura.hh
  • HIDC_RADIO_CARETTYPE0 : sakura.hh
  • HIDC_RADIO_CARETTYPE1 : sakura.hh
  • HIDC_RADIO_DFORM_0 : sakura.hh
  • HIDC_RADIO_DFORM_1 : sakura.hh
  • HIDC_RADIO_DIFF_DST1 : sakura.hh
  • HIDC_RADIO_DIFF_DST2 : sakura.hh
  • HIDC_RADIO_DIFF_FILE1 : sakura.hh
  • HIDC_RADIO_DIFF_FILE2 : sakura.hh
  • HIDC_RADIO_EDITWINDOW : sakura.hh
  • HIDC_RADIO_ESCAPETYPE_1 : sakura.hh
  • HIDC_RADIO_ESCAPETYPE_2 : sakura.hh
  • HIDC_RADIO_FUNCKEYWND_PLACE1 : sakura.hh
  • HIDC_RADIO_FUNCKEYWND_PLACE2 : sakura.hh
  • HIDC_RADIO_LINENUM_CRLF : sakura.hh
  • HIDC_RADIO_LINENUM_LAYOUT : sakura.hh
  • HIDC_RADIO_LINETERMTYPE0 : sakura.hh
  • HIDC_RADIO_LINETERMTYPE1 : sakura.hh
  • HIDC_RADIO_LINETERMTYPE2 : sakura.hh
  • HIDC_RADIO_OUTLINEDEFAULT : sakura.hh
  • HIDC_RADIO_OUTLINERULEFILE : sakura.hh
  • HIDC_RADIO_OUTPUT : sakura.hh
  • HIDC_RADIO_TFORM_0 : sakura.hh
  • HIDC_RADIO_TFORM_1 : sakura.hh
  • HIDC_RADIO_WINPOS_DEF : sakura.hh
  • HIDC_RADIO_WINPOS_SAVE : sakura.hh
  • HIDC_RADIO_WINPOS_SET : sakura.hh
  • HIDC_RADIO_WINSIZE_DEF : sakura.hh
  • HIDC_RADIO_WINSIZE_SAVE : sakura.hh
  • HIDC_RADIO_WINSIZE_SET : sakura.hh
  • HIDC_REP_BUTTON_HELP : sakura.hh
  • HIDC_REP_BUTTON_REPALCE : sakura.hh
  • HIDC_REP_BUTTON_REPALCEALL : sakura.hh
  • HIDC_REP_BUTTON_SEARCHNEXT : sakura.hh
  • HIDC_REP_BUTTON_SEARCHPREV : sakura.hh
  • HIDC_REP_BUTTON_SETMARK : sakura.hh
  • HIDC_REP_CHECK_bAutoCloseDlgReplace : sakura.hh
  • HIDC_REP_CHECK_CONSECUTIVEALL : sakura.hh
  • HIDC_REP_CHECK_NOTIFYNOTFOUND : sakura.hh
  • HIDC_REP_CHECK_SEARCHALL : sakura.hh
  • HIDC_REP_CHK_LOHICASE : sakura.hh
  • HIDC_REP_CHK_PASTE : sakura.hh
  • HIDC_REP_CHK_REGULAREXP : sakura.hh
  • HIDC_REP_CHK_WORD : sakura.hh
  • HIDC_REP_COMBO_TEXT : sakura.hh
  • HIDC_REP_COMBO_TEXT2 : sakura.hh
  • HIDC_REP_RADIO_ADD : sakura.hh
  • HIDC_REP_RADIO_ALLAREA : sakura.hh
  • HIDC_REP_RADIO_INSERT : sakura.hh
  • HIDC_REP_RADIO_REPLACE : sakura.hh
  • HIDC_REP_RADIO_SELECTEDAREA : sakura.hh
  • HIDC_REP_STATIC_JRE32VER : sakura.hh
  • HIDC_STATIC : sakura.hh
  • HIDC_STATIC_COLOR : sakura.hh
  • HIDC_STATIC_DIFF_SRC : sakura.hh
  • HIDC_TAB_FAVORITE : sakura.hh
  • HIDC_TABWND_CAPTION : sakura.hh
  • HIDC_TAG_MAKE_IDCANCEL : sakura.hh
  • HIDC_TAG_MAKE_IDOK : sakura.hh
  • HIDC_TAGJUMPLIST_IDCANCEL : sakura.hh
  • HIDC_TAGJUMPLIST_IDOK : sakura.hh
  • HIDC_TL_BUTTON_HELP : sakura.hh
  • HIDC_TL_BUTTON_TEMPCHANGE : sakura.hh
  • HIDC_TL_LIST_TYPES : sakura.hh
  • HIDC_WINCAPTION_ACTIVE : sakura.hh
  • HIDC_WINCAPTION_INACTIVE : sakura.hh
  • HIDCANCEL_CMP : sakura.hh
  • HIDCANCEL_DLG1 : sakura.hh
  • HIDCANCEL_EXEC : sakura.hh
  • HIDCANCEL_FIND : sakura.hh
  • HIDCANCEL_FL : sakura.hh
  • HIDCANCEL_GREP : sakura.hh
  • HIDCANCEL_JUMP : sakura.hh
  • HIDCANCEL_KEYWORD_SELECT : sakura.hh
  • HIDCANCEL_OPENDLG : sakura.hh
  • HIDCANCEL_PP : sakura.hh
  • HIDCANCEL_PROP : sakura.hh
  • HIDCANCEL_PS : sakura.hh
  • HIDCANCEL_REP : sakura.hh
  • HIDCANCEL_SAMECOLOR : sakura.hh
  • HIDCANCEL_TL : sakura.hh
  • HIDOK2_CMP : sakura.hh
  • HIDOK_ABOUT : sakura.hh
  • HIDOK_CMP : sakura.hh
  • HIDOK_DLG1 : sakura.hh
  • HIDOK_EXEC : sakura.hh
  • HIDOK_FL : sakura.hh
  • HIDOK_GREP : sakura.hh
  • HIDOK_KEYWORD_SELECT : sakura.hh
  • HIDOK_OPENDLG : sakura.hh
  • HIDOK_PP : sakura.hh
  • HIDOK_PROP : sakura.hh
  • HIDOK_PS : sakura.hh
  • HIDOK_SAMECOLOR : sakura.hh
  • HIDOK_TL : sakura.hh
  • HIDOK_WINSIZE : sakura.hh
  • HLP000001 : sakura.hh
  • HLP000002 : sakura.hh
  • HLP000003 : sakura.hh
  • HLP000004 : sakura.hh
  • HLP000005 : sakura.hh
  • HLP000006 : sakura.hh
  • HLP000007 : sakura.hh
  • HLP000008 : sakura.hh
  • HLP000009 : sakura.hh
  • HLP000010 : sakura.hh
  • HLP000011 : sakura.hh
  • HLP000012 : sakura.hh
  • HLP000013 : sakura.hh
  • HLP000014 : sakura.hh
  • HLP000015 : sakura.hh
  • HLP000016 : sakura.hh
  • HLP000017 : sakura.hh
  • HLP000018 : sakura.hh
  • HLP000019 : sakura.hh
  • HLP000020 : sakura.hh
  • HLP000021 : sakura.hh
  • HLP000022 : sakura.hh
  • HLP000023 : sakura.hh
  • HLP000024 : sakura.hh
  • HLP000025 : sakura.hh
  • HLP000026 : sakura.hh
  • HLP000027 : sakura.hh
  • HLP000028 : sakura.hh
  • HLP000029 : sakura.hh
  • HLP000030 : sakura.hh
  • HLP000031 : sakura.hh
  • HLP000032 : sakura.hh
  • HLP000033 : sakura.hh
  • HLP000034 : sakura.hh
  • HLP000035 : sakura.hh
  • HLP000036 : sakura.hh
  • HLP000037 : sakura.hh
  • HLP000038 : sakura.hh
  • HLP000039 : sakura.hh
  • HLP000040 : sakura.hh
  • HLP000041 : sakura.hh
  • HLP000042 : sakura.hh
  • HLP000043 : sakura.hh
  • HLP000044 : sakura.hh
  • HLP000045 : sakura.hh
  • HLP000046 : sakura.hh
  • HLP000047 : sakura.hh
  • HLP000048 : sakura.hh
  • HLP000049 : sakura.hh
  • HLP000050 : sakura.hh
  • HLP000051 : sakura.hh
  • HLP000052 : sakura.hh
  • HLP000053 : sakura.hh
  • HLP000054 : sakura.hh
  • HLP000055 : sakura.hh
  • HLP000056 : sakura.hh
  • HLP000057 : sakura.hh
  • HLP000058 : sakura.hh
  • HLP000059 : sakura.hh
  • HLP000060 : sakura.hh
  • HLP000061 : sakura.hh
  • HLP000062 : sakura.hh
  • HLP000063 : sakura.hh
  • HLP000064 : sakura.hh
  • HLP000065 : sakura.hh
  • HLP000066 : sakura.hh
  • HLP000067 : sakura.hh
  • HLP000068 : sakura.hh
  • HLP000069 : sakura.hh
  • HLP000070 : sakura.hh
  • HLP000071 : sakura.hh
  • HLP000072 : sakura.hh
  • HLP000073 : sakura.hh
  • HLP000074 : sakura.hh
  • HLP000075 : sakura.hh
  • HLP000076 : sakura.hh
  • HLP000077 : sakura.hh
  • HLP000078 : sakura.hh
  • HLP000079 : sakura.hh
  • HLP000080 : sakura.hh
  • HLP000081 : sakura.hh
  • HLP000082 : sakura.hh
  • HLP000083 : sakura.hh
  • HLP000084 : sakura.hh
  • HLP000085 : sakura.hh
  • HLP000086 : sakura.hh
  • HLP000087 : sakura.hh
  • HLP000088 : sakura.hh
  • HLP000089 : sakura.hh
  • HLP000090 : sakura.hh
  • HLP000091 : sakura.hh
  • HLP000092 : sakura.hh
  • HLP000093 : sakura.hh
  • HLP000094 : sakura.hh
  • HLP000095 : sakura.hh
  • HLP000096 : sakura.hh
  • HLP000097 : sakura.hh
  • HLP000098 : sakura.hh
  • HLP000099 : sakura.hh
  • HLP000100 : sakura.hh
  • HLP000101 : sakura.hh
  • HLP000102 : sakura.hh
  • HLP000103 : sakura.hh
  • HLP000104 : sakura.hh
  • HLP000105 : sakura.hh
  • HLP000106 : sakura.hh
  • HLP000107 : sakura.hh
  • HLP000109 : sakura.hh
  • HLP000111 : sakura.hh
  • HLP000112 : sakura.hh
  • HLP000113 : sakura.hh
  • HLP000114 : sakura.hh
  • HLP000115 : sakura.hh
  • HLP000116 : sakura.hh
  • HLP000117 : sakura.hh
  • HLP000118 : sakura.hh
  • HLP000119 : sakura.hh
  • HLP000120 : sakura.hh
  • HLP000121 : sakura.hh
  • HLP000122 : sakura.hh
  • HLP000123 : sakura.hh
  • HLP000124 : sakura.hh
  • HLP000125 : sakura.hh
  • HLP000126 : sakura.hh
  • HLP000127 : sakura.hh
  • HLP000128 : sakura.hh
  • HLP000129 : sakura.hh
  • HLP000131 : sakura.hh
  • HLP000132 : sakura.hh
  • HLP000133 : sakura.hh
  • HLP000134 : sakura.hh
  • HLP000135 : sakura.hh
  • HLP000136 : sakura.hh
  • HLP000137 : sakura.hh
  • HLP000138 : sakura.hh
  • HLP000139 : sakura.hh
  • HLP000140 : sakura.hh
  • HLP000141 : sakura.hh
  • HLP000142 : sakura.hh
  • HLP000143 : sakura.hh
  • HLP000144 : sakura.hh
  • HLP000145 : sakura.hh
  • HLP000146 : sakura.hh
  • HLP000148 : sakura.hh
  • HLP000149 : sakura.hh
  • HLP000150 : sakura.hh
  • HLP000156 : sakura.hh
  • HLP000157 : sakura.hh
  • HLP000158 : sakura.hh
  • HLP000159 : sakura.hh
  • HLP000160 : sakura.hh
  • HLP000161 : sakura.hh
  • HLP000162 : sakura.hh
  • HLP000163 : sakura.hh
  • HLP000164 : sakura.hh
  • HLP000165 : sakura.hh
  • HLP000166 : sakura.hh
  • HLP000167 : sakura.hh
  • HLP000168 : sakura.hh
  • HLP000169 : sakura.hh
  • HLP000170 : sakura.hh
  • HLP000171 : sakura.hh
  • HLP000172 : sakura.hh
  • HLP000173 : sakura.hh
  • HLP000174 : sakura.hh
  • HLP000175 : sakura.hh
  • HLP000176 : sakura.hh
  • HLP000177 : sakura.hh
  • HLP000178 : sakura.hh
  • HLP000179 : sakura.hh
  • HLP000180 : sakura.hh
  • HLP000181 : sakura.hh
  • HLP000182 : sakura.hh
  • HLP000183 : sakura.hh
  • HLP000184 : sakura.hh
  • HLP000186 : sakura.hh
  • HLP000187 : sakura.hh
  • HLP000188 : sakura.hh
  • HLP000189 : sakura.hh
  • HLP000190 : sakura.hh
  • HLP000191 : sakura.hh
  • HLP000192 : sakura.hh
  • HLP000193 : sakura.hh
  • HLP000194 : sakura.hh
  • HLP000195 : sakura.hh
  • HLP000196 : sakura.hh
  • HLP000197 : sakura.hh
  • HLP000198 : sakura.hh
  • HLP000199 : sakura.hh
  • HLP000200 : sakura.hh
  • HLP000201 : sakura.hh
  • HLP000202 : sakura.hh
  • HLP000203 : sakura.hh
  • HLP000204 : sakura.hh
  • HLP000205 : sakura.hh
  • HLP000206 : sakura.hh
  • HLP000207 : sakura.hh
  • HLP000208 : sakura.hh
  • HLP000209 : sakura.hh
  • HLP000210 : sakura.hh
  • HLP000211 : sakura.hh
  • HLP000212 : sakura.hh
  • HLP000213 : sakura.hh
  • HLP000214 : sakura.hh
  • HLP000215 : sakura.hh
  • HLP000218 : sakura.hh
  • HLP000219 : sakura.hh
  • HLP000220 : sakura.hh
  • HLP000221 : sakura.hh
  • HLP000222 : sakura.hh
  • HLP000223 : sakura.hh
  • HLP000224 : sakura.hh
  • HLP000225 : sakura.hh
  • HLP000226 : sakura.hh
  • HLP000227 : sakura.hh
  • HLP000228 : sakura.hh
  • HLP000229 : sakura.hh
  • HLP000230 : sakura.hh
  • HLP000231 : sakura.hh
  • HLP000232 : sakura.hh
  • HLP000233 : sakura.hh
  • HLP000234 : sakura.hh
  • HLP000235 : sakura.hh
  • HLP000236 : sakura.hh
  • HLP000237 : sakura.hh
  • HLP000238 : sakura.hh
  • HLP000239 : sakura.hh
  • HLP000240 : sakura.hh
  • HLP000241 : sakura.hh
  • HLP000242 : sakura.hh
  • HLP000243 : sakura.hh
  • HLP000244 : sakura.hh
  • HLP000245 : sakura.hh
  • HLP000246 : sakura.hh
  • HLP000247 : sakura.hh
  • HLP000248 : sakura.hh
  • HLP000249 : sakura.hh
  • HLP000250 : sakura.hh
  • HLP000251 : sakura.hh
  • HLP000252 : sakura.hh
  • HLP000253 : sakura.hh
  • HLP000254 : sakura.hh
  • HLP000255 : sakura.hh
  • HLP000256 : sakura.hh
  • HLP000257 : sakura.hh
  • HLP000258 : sakura.hh
  • HLP000259 : sakura.hh
  • HLP000260 : sakura.hh
  • HLP000261 : sakura.hh
  • HLP000262 : sakura.hh
  • HLP000263 : sakura.hh
  • HLP000264 : sakura.hh
  • HLP000265 : sakura.hh
  • HLP000266 : sakura.hh
  • HLP000267 : sakura.hh
  • HLP000268 : sakura.hh
  • HLP000269 : sakura.hh
  • HLP000270 : sakura.hh
  • HLP000271 : sakura.hh
  • HLP000272 : sakura.hh
  • HLP000273 : sakura.hh
  • HLP000274 : sakura.hh
  • HLP000275 : sakura.hh
  • HLP000276 : sakura.hh
  • HLP000277 : sakura.hh
  • HLP000278 : sakura.hh
  • HLP000279 : sakura.hh
  • HLP000280 : sakura.hh
  • HLP000281 : sakura.hh
  • HLP000282 : sakura.hh
  • HLP000283 : sakura.hh
  • HLP000285 : sakura.hh
  • HLP000286 : sakura.hh
  • HLP000287 : sakura.hh
  • HLP000289 : sakura.hh
  • HLP000290 : sakura.hh
  • HLP000291 : sakura.hh
  • HLP000300 : sakura.hh
  • HLP000301 : sakura.hh
  • HLP000302 : sakura.hh
  • HLP000303 : sakura.hh
  • HLP000304 : sakura.hh
  • HLP000305 : sakura.hh
  • HLP000306 : sakura.hh
  • HLP000307 : sakura.hh
  • HLP000308 : sakura.hh
  • HLP000309 : sakura.hh
  • HLP000310 : sakura.hh
  • HLP000311 : sakura.hh
  • HLP000312 : sakura.hh
  • HLP000313 : sakura.hh
  • HLP000314 : sakura.hh
  • HLP000315 : sakura.hh
  • HLP000316 : sakura.hh
  • HLP000317 : sakura.hh
  • HLP000318 : sakura.hh
  • HLP000320 : sakura.hh
  • HLP000321 : sakura.hh
  • HLP000322 : sakura.hh
  • HLP000323 : sakura.hh
  • HLP000324 : sakura.hh
  • HLP000325 : sakura.hh
  • HLP000326 : sakura.hh
  • HLP000327 : sakura.hh
  • HLP000328 : sakura.hh
  • HLP000329 : sakura.hh
  • HLP000330 : sakura.hh
  • HLP000331 : sakura.hh
  • HLP_HISTORY : sakura.hh
  • HLP_LISENCE : sakura.hh
  • HLP_UR000 : sakura.hh
  • HLP_UR001 : sakura.hh
  • HLP_UR002 : sakura.hh
  • HLP_UR003 : sakura.hh
  • HLP_UR004 : sakura.hh
  • HLP_UR005 : sakura.hh
  • HLP_UR006 : sakura.hh
  • HLP_UR007 : sakura.hh
  • HLP_UR008 : sakura.hh
  • HLP_UR009 : sakura.hh
  • HLP_UR010 : sakura.hh
  • HLP_UR011 : sakura.hh
  • HLP_UR012 : sakura.hh
  • HLP_UR013 : sakura.hh
  • HLP_UR014 : sakura.hh
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- i -

  • ICON_DEFAULT_APP : global.h
  • ICON_DEFAULT_GREP : global.h
  • ID_HOTKEY_TRAYMENU : CEditApp.cpp
  • ID_IS4072 : sakura_rc.h
  • ID_PAGENUM_BACKUP : CPropCommon.h
  • ID_PAGENUM_CUSTMENU : CPropCommon.h
  • ID_PAGENUM_EDIT : CPropCommon.h
  • ID_PAGENUM_FILE : CPropCommon.h
  • ID_PAGENUM_FILENAME : CPropCommon.h
  • ID_PAGENUM_FORMAT : CPropCommon.h
  • ID_PAGENUM_GREP : CPropCommon.h
  • ID_PAGENUM_HELPER : CPropCommon.h
  • ID_PAGENUM_KEYBOARD : CPropCommon.h
  • ID_PAGENUM_KEYWORD : CPropCommon.h
  • ID_PAGENUM_MACRO : CPropCommon.h
  • ID_PAGENUM_TAB : CPropCommon.h
  • ID_PAGENUM_TOOLBAR : CPropCommon.h
  • ID_PAGENUM_WIN : CPropCommon.h
  • ID_PAGENUM_ZENPAN : CPropCommon.h
  • ID_TOOLBAR : CEditWnd.cpp
  • IDB_MYTOOL : sakura_rc.h
  • IDB_OPENED : sakura_rc.h
  • IDB_OPENED_THIS : sakura_rc.h
  • IDB_PRINTER : sakura_rc.h
  • IDC_BTN_CLOSE : sakura_rc.h
  • IDC_BTN_NOSUPERVISION : sakura_rc.h
  • IDC_BTN_NOTIFYONLY : sakura_rc.h
  • IDC_BTN_RELOAD : sakura_rc.h
  • IDC_BUTTON1 : sakura_rc.h
  • IDC_BUTTON_ADD : sakura_rc.h
  • IDC_BUTTON_ADDKEYWORD : sakura_rc.h
  • IDC_BUTTON_ADDSET : sakura_rc.h
  • IDC_BUTTON_ASSIGN : sakura_rc.h
  • IDC_BUTTON_BACKCOLOR : sakura_rc.h
  • IDC_BUTTON_BACKUP_FOLDER_REF : sakura_rc.h
  • IDC_BUTTON_CLEAR : sakura_rc.h
  • IDC_BUTTON_CLEAR_MRU_FILE : sakura_rc.h
  • IDC_BUTTON_CLEAR_MRU_FOLDER : sakura_rc.h
  • IDC_BUTTON_COPY : sakura_rc.h
  • IDC_BUTTON_CURRENTFOLDER : sakura_rc.h
  • IDC_BUTTON_DELETE : sakura_rc.h
  • IDC_BUTTON_DELKEYWORD : sakura_rc.h
  • IDC_BUTTON_DELSET : sakura_rc.h
  • IDC_BUTTON_DIFF_DST : sakura_rc.h
  • IDC_BUTTON_DIRECTPAGE : sakura_rc.h
  • IDC_BUTTON_DOWN : sakura_rc.h
  • IDC_BUTTON_EDITKEYWORD : sakura_rc.h
  • IDC_BUTTON_EDITSETTINGNAME : sakura_rc.h
  • IDC_BUTTON_EXPORT : sakura_rc.h
  • IDC_BUTTON_FNAME_ADD : sakura_rc.h
  • IDC_BUTTON_FNAME_DEL : sakura_rc.h
  • IDC_BUTTON_FNAME_DOWN : sakura_rc.h
  • IDC_BUTTON_FNAME_INS : sakura_rc.h
  • IDC_BUTTON_FNAME_LAST : sakura_rc.h
  • IDC_BUTTON_FNAME_TOP : sakura_rc.h
  • IDC_BUTTON_FNAME_UP : sakura_rc.h
  • IDC_BUTTON_FNAME_UPD : sakura_rc.h
  • IDC_BUTTON_FOLDER : sakura_rc.h
  • IDC_BUTTON_HELP : sakura_rc.h
  • IDC_BUTTON_HOKANFILE_REF : sakura_rc.h
  • IDC_BUTTON_IMPORT : sakura_rc.h
  • IDC_BUTTON_INSERT : sakura_rc.h
  • IDC_BUTTON_INSERTSEPARATOR : sakura_rc.h
  • IDC_BUTTON_INSERTWRAP : sakura_rc.h
  • IDC_BUTTON_JUMP : sakura_rc.h
  • IDC_BUTTON_KEYCLEAN : sakura_rc.h
  • IDC_BUTTON_KEYHELP_ADD : sakura_rc.h
  • IDC_BUTTON_KEYHELP_DEL : sakura_rc.h
  • IDC_BUTTON_KEYHELP_DOWN : sakura_rc.h
  • IDC_BUTTON_KEYHELP_EXPORT : sakura_rc.h
  • IDC_BUTTON_KEYHELP_IMPORT : sakura_rc.h
  • IDC_BUTTON_KEYHELP_INS : sakura_rc.h
  • IDC_BUTTON_KEYHELP_LAST : sakura_rc.h
  • IDC_BUTTON_KEYHELP_REF : sakura_rc.h
  • IDC_BUTTON_KEYHELP_TOP : sakura_rc.h
  • IDC_BUTTON_KEYHELP_UP : sakura_rc.h
  • IDC_BUTTON_KEYHELP_UPD : sakura_rc.h
  • IDC_BUTTON_KEYSETRENAME : sakura_rc.h
  • IDC_BUTTON_KEYWORD_SELECT : sakura_rc.h
  • IDC_BUTTON_KEYWORDHELPFILE_REF : sakura_rc.h
  • IDC_BUTTON_KEYWORDHELPFONT : sakura_rc.h
  • IDC_BUTTON_MENUNAME : sakura_rc.h
  • IDC_BUTTON_NEXTPAGE : sakura_rc.h
  • IDC_BUTTON_OPENEXTHTMLHELP : sakura_rc.h
  • IDC_BUTTON_OPENHELP1 : sakura_rc.h
  • IDC_BUTTON_OPENHELP3 : sakura_rc.h
  • IDC_BUTTON_OPENMDICT : sakura_rc.h
  • IDC_BUTTON_OPENMDLL : sakura_rc.h
  • IDC_BUTTON_PREVPAGE : sakura_rc.h
  • IDC_BUTTON_PRINTERSELECT : sakura_rc.h
  • IDC_BUTTON_PRINTSETTING : sakura_rc.h
  • IDC_BUTTON_REFERENCE : sakura_rc.h
  • IDC_BUTTON_REGEX_ADD : sakura_rc.h
  • IDC_BUTTON_REGEX_DEL : sakura_rc.h
  • IDC_BUTTON_REGEX_DOWN : sakura_rc.h
  • IDC_BUTTON_REGEX_EXPORT : sakura_rc.h
  • IDC_BUTTON_REGEX_IMPORT : sakura_rc.h
  • IDC_BUTTON_REGEX_INS : sakura_rc.h
  • IDC_BUTTON_REGEX_LAST : sakura_rc.h
  • IDC_BUTTON_REGEX_TOP : sakura_rc.h
  • IDC_BUTTON_REGEX_UP : sakura_rc.h
  • IDC_BUTTON_REGEX_UPD : sakura_rc.h
  • IDC_BUTTON_RELEASE : sakura_rc.h
  • IDC_BUTTON_REPALCE : sakura_rc.h
  • IDC_BUTTON_REPALCEALL : sakura_rc.h
  • IDC_BUTTON_RULEFILE_REF : sakura_rc.h
  • IDC_BUTTON_SAMEBKCOLOR : sakura_rc.h
  • IDC_BUTTON_SAMETEXTCOLOR : sakura_rc.h
  • IDC_BUTTON_SEARCHNEXT : sakura_rc.h
  • IDC_BUTTON_SEARCHPREV : sakura_rc.h
  • IDC_BUTTON_SELALL : sakura_rc.h
  • IDC_BUTTON_SELNOTING : sakura_rc.h
  • IDC_BUTTON_SETMARK : sakura_rc.h
  • IDC_BUTTON_TAG_MAKE_REF : sakura_rc.h
  • IDC_BUTTON_TEMPCHANGE : sakura_rc.h
  • IDC_BUTTON_TEXTCOLOR : sakura_rc.h
  • IDC_BUTTON_TOP : sakura_rc.h
  • IDC_BUTTON_TYPEOPENEXTHTMLHELP : sakura_rc.h
  • IDC_BUTTON_TYPEOPENHELP : sakura_rc.h
  • IDC_BUTTON_UP : sakura_rc.h
  • IDC_BUTTON_VIEW : sakura_rc.h
  • IDC_BUTTON_WINSIZE : sakura_rc.h
  • IDC_BUTTON_ZOOMDOWN : sakura_rc.h
  • IDC_BUTTON_ZOOMUP : sakura_rc.h
  • IDC_CHECK_ADDCRLFWHENCOPY : sakura_rc.h
  • IDC_CHECK_AlertIfFileNotExist : sakura_rc.h
  • IDC_CHECK_ALT : sakura_rc.h
  • IDC_CHECK_ANTIALIAS : sakura_rc.h
  • IDC_CHECK_ANYWHERE : sakura_rc.h
  • IDC_CHECK_AutoMIMEDecode : sakura_rc.h
  • IDC_CHECK_AUTOSAVE : sakura_rc.h
  • IDC_CHECK_BACKUP : sakura_rc.h
  • IDC_CHECK_BACKUP_ADVANCED : sakura_rc.h
  • IDC_CHECK_BACKUP_DAY : sakura_rc.h
  • IDC_CHECK_BACKUP_DUSTBOX : sakura_rc.h
  • IDC_CHECK_BACKUP_HOUR : sakura_rc.h
  • IDC_CHECK_BACKUP_MIN : sakura_rc.h
  • IDC_CHECK_BACKUP_MONTH : sakura_rc.h
  • IDC_CHECK_BACKUP_RETAINEXT : sakura_rc.h
  • IDC_CHECK_BACKUP_SEC : sakura_rc.h
  • IDC_CHECK_BACKUP_YEAR : sakura_rc.h
  • IDC_CHECK_BACKUPDIALOG : sakura_rc.h
  • IDC_CHECK_BACKUPFOLDER : sakura_rc.h
  • IDC_CHECK_bAutoCloseDlgFind : sakura_rc.h
  • IDC_CHECK_bAutoCloseDlgFuncList : sakura_rc.h
  • IDC_CHECK_bAutoCloseDlgReplace : sakura_rc.h
  • IDC_CHECK_bCaretTextForSearch : sakura_rc.h
  • IDC_CHECK_bCheckFileTimeStamp : sakura_rc.h
  • IDC_CHECK_bDropFileAndClose : sakura_rc.h
  • IDC_CHECK_bFunclistSetFocusOnJump : sakura_rc.h
  • IDC_CHECK_bGrepExitConfirm : sakura_rc.h
  • IDC_CHECK_bMarkUpBlankLineEnable : sakura_rc.h
  • IDC_CHECK_bMenuIcon : sakura_rc.h
  • IDC_CHECK_bNotOverWriteCRLF : sakura_rc.h
  • IDC_CHECK_BOM : sakura_rc.h
  • IDC_CHECK_bScrollBarHorz : sakura_rc.h
  • IDC_CHECK_bSelectClickedURL : sakura_rc.h
  • IDC_CHECK_ChgWndByWheel : sakura_rc.h
  • IDC_CHECK_CLICKKEYSEARCH : sakura_rc.h
  • IDC_CHECK_CLOSEALLCONFIRM : sakura_rc.h
  • IDC_CHECK_CloseOneWin : sakura_rc.h
  • IDC_CHECK_CONSECUTIVEALL : sakura_rc.h
  • IDC_CHECK_COPYnDISABLESELECTEDAREA : sakura_rc.h
  • IDC_CHECK_CTRL : sakura_rc.h
  • IDC_CHECK_DIFF_EXEC_STATE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_BLINE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_CASE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_SPACE : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_SPCCHG : sakura_rc.h
  • IDC_CHECK_DIFF_OPT_TABSPC : sakura_rc.h
  • IDC_CHECK_DISP : sakura_rc.h
  • IDC_CHECK_DispFUNCKEYWND : sakura_rc.h
  • IDC_CHECK_DispSTATUSBAR : sakura_rc.h
  • IDC_CHECK_DispTabIcon : sakura_rc.h
  • IDC_CHECK_DispTabWnd : sakura_rc.h
  • IDC_CHECK_DispTabWndMultiWin : sakura_rc.h
  • IDC_CHECK_DispTOOLBAR : sakura_rc.h
  • IDC_CHECK_DOCICON : sakura_rc.h
  • IDC_CHECK_DRAGDROP : sakura_rc.h
  • IDC_CHECK_DROPSOURCE : sakura_rc.h
  • IDC_CHECK_ENABLEUNMODIFIEDOVERWRITE : sakura_rc.h
  • IDC_CHECK_EXCVLUSIVE_NO : sakura_rc.h
  • IDC_CHECK_EXCVLUSIVE_READWRITE : sakura_rc.h
  • IDC_CHECK_EXCVLUSIVE_WRITE : sakura_rc.h
  • IDC_CHECK_EXITCONFIRM : sakura_rc.h
  • IDC_CHECK_FAT : sakura_rc.h
  • IDC_CHECK_FNAME : sakura_rc.h
  • IDC_CHECK_FREECARET : sakura_rc.h
  • IDC_CHECK_GETSTDOUT : sakura_rc.h
  • IDC_CHECK_GREPREALTIME : sakura_rc.h
  • IDC_CHECK_GTJW_LDBLCLK : sakura_rc.h
  • IDC_CHECK_GTJW_RETURN : sakura_rc.h
  • IDC_CHECK_HOKANBYFILE : sakura_rc.h
  • IDC_CHECK_HOKANLOHICASE : sakura_rc.h
  • IDC_CHECK_HTMLHELPISSINGLE : sakura_rc.h
  • IDC_CHECK_ICASE : sakura_rc.h
  • IDC_CHECK_INDENT : sakura_rc.h
  • IDC_CHECK_INDENT_WSPACE : sakura_rc.h
  • IDC_CHECK_INS_SPACE : sakura_rc.h
  • IDC_CHECK_KEYHELP : sakura_rc.h
  • IDC_CHECK_KEYHELP_ALLSEARCH : sakura_rc.h
  • IDC_CHECK_KEYHELP_KEYDISP : sakura_rc.h
  • IDC_CHECK_KEYHELP_PREFIX : sakura_rc.h
  • IDC_CHECK_KEYWORDCASE : sakura_rc.h
  • IDC_CHECK_KINSOKUHEAD : sakura_rc.h
  • IDC_CHECK_KINSOKUKUTO : sakura_rc.h
  • IDC_CHECK_KINSOKURET : sakura_rc.h
  • IDC_CHECK_KINSOKUTAIL : sakura_rc.h
  • IDC_CHECK_LCPOS : sakura_rc.h
  • IDC_CHECK_LCPOS2 : sakura_rc.h
  • IDC_CHECK_LCPOS3 : sakura_rc.h
  • IDC_CHECK_LINENUMBER : sakura_rc.h
  • IDC_CHECK_m_bHokanKey_RETURN : sakura_rc.h
  • IDC_CHECK_m_bHokanKey_RIGHT : sakura_rc.h
  • IDC_CHECK_m_bHokanKey_TAB : sakura_rc.h
  • IDC_CHECK_MultiWin : sakura_rc.h
  • IDC_CHECK_NoFilterSaveFile : sakura_rc.h
  • IDC_CHECK_NoFilterSaveNew : sakura_rc.h
  • IDC_CHECK_NOMOVE_ACTIVATE_BY_MOUSE : sakura_rc.h
  • IDC_CHECK_NOTIFYNOTFOUND : sakura_rc.h
  • IDC_CHECK_PLSQL : sakura_rc.h
  • IDC_CHECK_PS_KINSOKUHEAD : sakura_rc.h
  • IDC_CHECK_PS_KINSOKUKUTO : sakura_rc.h
  • IDC_CHECK_PS_KINSOKURET : sakura_rc.h
  • IDC_CHECK_PS_KINSOKUTAIL : sakura_rc.h
  • IDC_CHECK_QueryIfCodeChange : sakura_rc.h
  • IDC_CHECK_REALTIMEVIEW : sakura_rc.h
  • IDC_CHECK_REGEX : sakura_rc.h
  • IDC_CHECK_RELOADWHENEXECUTE : sakura_rc.h
  • IDC_CHECK_REPEATEDSCROLLSMOOTH : sakura_rc.h
  • IDC_CHECK_RestoreBookmarks : sakura_rc.h
  • IDC_CHECK_RestoreCurPosition : sakura_rc.h
  • IDC_CHECK_RetainEmptyWindow : sakura_rc.h
  • IDC_CHECK_RTRIM_PREVLINE : sakura_rc.h
  • IDC_CHECK_SameTabWidth : sakura_rc.h
  • IDC_CHECK_SEARCHALL : sakura_rc.h
  • IDC_CHECK_SENDSTDIN : sakura_rc.h
  • IDC_CHECK_SHIFT : sakura_rc.h
  • IDC_CHECK_SortTabList : sakura_rc.h
  • IDC_CHECK_SplitterWndHScroll : sakura_rc.h
  • IDC_CHECK_SplitterWndVScroll : sakura_rc.h
  • IDC_CHECK_STAYTASKTRAY : sakura_rc.h
  • IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_PARAGRAPH : sakura_rc.h
  • IDC_CHECK_STOPS_BOTH_ENDS_WHEN_SEARCH_WORD : sakura_rc.h
  • IDC_CHECK_TAB_ARROW : sakura_rc.h
  • IDC_CHECK_TAG_MAKE_RECURSE : sakura_rc.h
  • IDC_CHECK_TILE_H : sakura_rc.h
  • IDC_CHECK_TOOLBARISFLAT : sakura_rc.h
  • IDC_CHECK_TYPE_KEYHELPUSE : sakura_rc.h
  • IDC_CHECK_TYPEHTMLHELPISSINGLE : sakura_rc.h
  • IDC_CHECK_UNDERLINE : sakura_rc.h
  • IDC_CHECK_USETRAYICON : sakura_rc.h
  • IDC_CHECK_WORDWRAP : sakura_rc.h
  • IDC_CHK_DEFAULTFOLDER : sakura_rc.h
  • IDC_CHK_FROMTHISTEXT : sakura_rc.h
  • IDC_CHK_LOHICASE : sakura_rc.h
  • IDC_CHK_PASTE : sakura_rc.h
  • IDC_CHK_REGULAREXP : sakura_rc.h
  • IDC_CHK_SUBFOLDER : sakura_rc.h
  • IDC_CHK_WORD : sakura_rc.h
  • IDC_COMBO1 : sakura_rc.h
  • IDC_COMBO10 : sakura_rc.h
  • IDC_COMBO2 : sakura_rc.h
  • IDC_COMBO3 : sakura_rc.h
  • IDC_COMBO4 : sakura_rc.h
  • IDC_COMBO5 : sakura_rc.h
  • IDC_COMBO6 : sakura_rc.h
  • IDC_COMBO7 : sakura_rc.h
  • IDC_COMBO8 : sakura_rc.h
  • IDC_COMBO9 : sakura_rc.h
  • IDC_COMBO_CHARSET : sakura_rc.h
  • IDC_COMBO_CODE : sakura_rc.h
  • IDC_COMBO_EOL : sakura_rc.h
  • IDC_COMBO_FILE : sakura_rc.h
  • IDC_COMBO_FOLDER : sakura_rc.h
  • IDC_COMBO_FONT_HAN : sakura_rc.h
  • IDC_COMBO_FONT_ZEN : sakura_rc.h
  • IDC_COMBO_FUNCKIND : sakura_rc.h
  • IDC_COMBO_IMESTATE : sakura_rc.h
  • IDC_COMBO_IMESWITCH : sakura_rc.h
  • IDC_COMBO_INDENTLAYOUT : sakura_rc.h
  • IDC_COMBO_KEYHELP_COLOR : sakura_rc.h
  • IDC_COMBO_m_szCommand : sakura_rc.h
  • IDC_COMBO_MACROID : sakura_rc.h
  • IDC_COMBO_MENU : sakura_rc.h
  • IDC_COMBO_MRU : sakura_rc.h
  • IDC_COMBO_nSortType : sakura_rc.h
  • IDC_COMBO_OPENFOLDER : sakura_rc.h
  • IDC_COMBO_OUTLINES : sakura_rc.h
  • IDC_COMBO_PAPER : sakura_rc.h
  • IDC_COMBO_PLSQLBLOCKS : sakura_rc.h
  • IDC_COMBO_REGEX_COLOR : sakura_rc.h
  • IDC_COMBO_SET : sakura_rc.h
  • IDC_COMBO_SET2 : sakura_rc.h
  • IDC_COMBO_SETTINGNAME : sakura_rc.h
  • IDC_COMBO_SMARTINDENT : sakura_rc.h
  • IDC_COMBO_TEXT : sakura_rc.h
  • IDC_COMBO_TEXT2 : sakura_rc.h
  • IDC_COMBO_WINTYPE : sakura_rc.h
  • IDC_CURSOR_COPYARROW : sakura_rc.h
  • IDC_CURSOR_HAND : sakura_rc.h
  • IDC_CURSOR_ISEARCH_B : sakura_rc.h
  • IDC_CURSOR_ISEARCH_F : sakura_rc.h
  • IDC_CURSOR_MOVEARROW : sakura_rc.h
  • IDC_CURSOR_RVARROW : sakura_rc.h
  • IDC_CURSOR_TAB_JOIN : sakura_rc.h
  • IDC_CURSOR_TAB_LEFT : sakura_rc.h
  • IDC_CURSOR_TAB_RIGHT : sakura_rc.h
  • IDC_CURSOR_TAB_SEPARATE : sakura_rc.h
  • IDC_EDIT1 : sakura_rc.h
  • IDC_EDIT2 : sakura_rc.h
  • IDC_EDIT_ABOUT : sakura_rc.h
  • IDC_EDIT_AUTOBACKUP_INTERVAL : sakura_rc.h
  • IDC_EDIT_BACKUP_3 : sakura_rc.h
  • IDC_EDIT_BACKUPFILE : sakura_rc.h
  • IDC_EDIT_BACKUPFOLDER : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_FROM : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_FROM2 : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_TO : sakura_rc.h
  • IDC_EDIT_BLOCKCOMMENT_TO2 : sakura_rc.h
  • IDC_EDIT_CHARSPACE : sakura_rc.h
  • IDC_EDIT_DANSPACE : sakura_rc.h
  • IDC_EDIT_DANSUU : sakura_rc.h
  • IDC_EDIT_DEBUG : sakura_rc.h
  • IDC_EDIT_DFORM : sakura_rc.h
  • IDC_EDIT_DFORM_EX : sakura_rc.h
  • IDC_EDIT_DIFF_DST : sakura_rc.h
  • IDC_EDIT_EXTHELP1 : sakura_rc.h
  • IDC_EDIT_EXTHTMLHELP : sakura_rc.h
  • IDC_EDIT_FNAME_FROM : sakura_rc.h
  • IDC_EDIT_FNAME_TO : sakura_rc.h
  • IDC_EDIT_FONTWIDTH : sakura_rc.h
  • IDC_EDIT_FOOT1 : sakura_rc.h
  • IDC_EDIT_FOOT2 : sakura_rc.h
  • IDC_EDIT_FOOT3 : sakura_rc.h
  • IDC_EDIT_FROM : sakura_rc.h
  • IDC_EDIT_FUNCKEYWND_GROUPNUM : sakura_rc.h
  • IDC_EDIT_HEAD1 : sakura_rc.h
  • IDC_EDIT_HEAD2 : sakura_rc.h
  • IDC_EDIT_HEAD3 : sakura_rc.h
  • IDC_EDIT_HOKANFILE : sakura_rc.h
  • IDC_EDIT_INDENTCHARS : sakura_rc.h
  • IDC_EDIT_INYOUKIGOU : sakura_rc.h
  • IDC_EDIT_KEYHELP : sakura_rc.h
  • IDC_EDIT_KEYSFUNC : sakura_rc.h
  • IDC_EDIT_KEYWORDHELPFILE : sakura_rc.h
  • IDC_EDIT_KINSOKUHEAD : sakura_rc.h
  • IDC_EDIT_KINSOKUTAIL : sakura_rc.h
  • IDC_EDIT_LINECOMMENT : sakura_rc.h
  • IDC_EDIT_LINECOMMENT2 : sakura_rc.h
  • IDC_EDIT_LINECOMMENT3 : sakura_rc.h
  • IDC_EDIT_LINECOMMENTPOS : sakura_rc.h
  • IDC_EDIT_LINECOMMENTPOS2 : sakura_rc.h
  • IDC_EDIT_LINECOMMENTPOS3 : sakura_rc.h
  • IDC_EDIT_LINENUM : sakura_rc.h
  • IDC_EDIT_LINESPACE : sakura_rc.h
  • IDC_EDIT_LINETERMCHAR : sakura_rc.h
  • IDC_EDIT_MARGINBY : sakura_rc.h
  • IDC_EDIT_MARGINLX : sakura_rc.h
  • IDC_EDIT_MARGINRX : sakura_rc.h
  • IDC_EDIT_MARGINTY : sakura_rc.h
  • IDC_EDIT_MAX_MRU_FILE : sakura_rc.h
  • IDC_EDIT_MAX_MRU_FOLDER : sakura_rc.h
  • IDC_EDIT_MAXLINELEN : sakura_rc.h
  • IDC_EDIT_MENUNAME : sakura_rc.h
  • IDC_EDIT_MIDASHIKIGOU : sakura_rc.h
  • IDC_EDIT_MIGEMO_DICT : sakura_rc.h
  • IDC_EDIT_MIGEMO_DLL : sakura_rc.h
  • IDC_EDIT_nDropFileNumMax : sakura_rc.h
  • IDC_EDIT_nLineNumberRightSpace : sakura_rc.h
  • IDC_EDIT_nRulerBottomSpace : sakura_rc.h
  • IDC_EDIT_nRulerHeight : sakura_rc.h
  • IDC_EDIT_OUTLINERULEFILE : sakura_rc.h
  • IDC_EDIT_PLSQL_E1 : sakura_rc.h
  • IDC_EDIT_REGEX : sakura_rc.h
  • IDC_EDIT_REGEXPLIB : sakura_rc.h
  • IDC_EDIT_REPEATEDSCROLLLINENUM : sakura_rc.h
  • IDC_EDIT_SX : sakura_rc.h
  • IDC_EDIT_SY : sakura_rc.h
  • IDC_EDIT_TABSPACE : sakura_rc.h
  • IDC_EDIT_TABVIEWSTRING : sakura_rc.h
  • IDC_EDIT_TAG_MAKE_CMDLINE : sakura_rc.h
  • IDC_EDIT_TAG_MAKE_FOLDER : sakura_rc.h
  • IDC_EDIT_TFORM : sakura_rc.h
  • IDC_EDIT_TFORM_EX : sakura_rc.h
  • IDC_EDIT_TO : sakura_rc.h
  • IDC_EDIT_TYPEEXTHELP : sakura_rc.h
  • IDC_EDIT_TYPEEXTHTMLHELP : sakura_rc.h
  • IDC_EDIT_TYPEEXTS : sakura_rc.h
  • IDC_EDIT_TYPENAME : sakura_rc.h
  • IDC_EDIT_VERTLINE : sakura_rc.h
  • IDC_EDIT_WX : sakura_rc.h
  • IDC_EDIT_WY : sakura_rc.h
  • IDC_FILEUPDATEMSG : sakura_rc.h
  • IDC_FRAME_DIFF_DST : sakura_rc.h
  • IDC_FRAME_DIFF_FILE12 : sakura_rc.h
  • IDC_FRAME_KEYHELP : sakura_rc.h
  • IDC_FRAME_REGEX : sakura_rc.h
  • IDC_FRAME_SEARCH_MSG : sakura_rc.h
  • IDC_GROUP_FUNCKEYWND_POSITION : sakura_rc.h
  • IDC_HIDE : sakura_rc.h
  • IDC_HOTKEY1 : sakura_rc.h
  • IDC_HOTKEY_TRAYMENU : sakura_rc.h
  • IDC_KEYWORD : sakura_rc.h
  • IDC_LABEL_AUTOSAVE : sakura_rc.h
  • IDC_LABEL_AUTOSAVE2 : sakura_rc.h
  • IDC_LABEL_AUTOSAVE3 : sakura_rc.h
  • IDC_LABEL_AUTOSAVE4 : sakura_rc.h
  • IDC_LABEL_BACKUP_3 : sakura_rc.h
  • IDC_LABEL_BACKUP_4 : sakura_rc.h
  • IDC_LABEL_BACKUP_HELP : sakura_rc.h
  • IDC_LABEL_BACKUP_HELP2 : sakura_rc.h
  • IDC_LABEL_DFORM : sakura_rc.h
  • IDC_LABEL_FROM : sakura_rc.h
  • IDC_LABEL_FUNCtoKEY : sakura_rc.h
  • IDC_LABEL_KEYHELP_ABOUT : sakura_rc.h
  • IDC_LABEL_KEYHELP_KEYWORD : sakura_rc.h
  • IDC_LABEL_KEYHELP_PRIOR : sakura_rc.h
  • IDC_LABEL_KEYHELP_TITLE : sakura_rc.h
  • IDC_LABEL_KEYKIND : sakura_rc.h
  • IDC_LABEL_KEYtoFUNC : sakura_rc.h
  • IDC_LABEL_KEYWORDHELPFILE : sakura_rc.h
  • IDC_LABEL_LCPOS : sakura_rc.h
  • IDC_LABEL_LCPOS2 : sakura_rc.h
  • IDC_LABEL_LCPOS3 : sakura_rc.h
  • IDC_LABEL_LINETERMCHAR : sakura_rc.h
  • IDC_LABEL_MENU : sakura_rc.h
  • IDC_LABEL_MENUCHOICE : sakura_rc.h
  • IDC_LABEL_MENUFUNC : sakura_rc.h
  • IDC_LABEL_MENUFUNCKIND : sakura_rc.h
  • IDC_LABEL_MENUKEYCHANGE : sakura_rc.h
  • IDC_LABEL_MENUNAME : sakura_rc.h
  • IDC_LABEL_PLSQL1 : sakura_rc.h
  • IDC_LABEL_PLSQL2 : sakura_rc.h
  • IDC_LABEL_PLSQL3 : sakura_rc.h
  • IDC_LABEL_REGEX_COLOR : sakura_rc.h
  • IDC_LABEL_REGEX_KEYWORD : sakura_rc.h
  • IDC_LABEL_REGEX_VERSION : sakura_rc.h
  • IDC_LABEL_REGEXP : sakura_rc.h
  • IDC_LABEL_REGEXP_VER : sakura_rc.h
  • IDC_LABEL_TFORM : sakura_rc.h
  • IDC_LABEL_TO : sakura_rc.h
  • IDC_LABEL_TOOLBAR : sakura_rc.h
  • IDC_LANEL_NOTE : sakura_rc.h
  • IDC_LIST1 : sakura_rc.h
  • IDC_LIST_ASSIGNEDKEYS : sakura_rc.h
  • IDC_LIST_COLORS : sakura_rc.h
  • IDC_LIST_CTRLCODE : sakura_rc.h
  • IDC_LIST_DIFF_FILES : sakura_rc.h
  • IDC_LIST_FAVORITE_CMD : sakura_rc.h
  • IDC_LIST_FAVORITE_FILE : sakura_rc.h
  • IDC_LIST_FAVORITE_FOLDER : sakura_rc.h
  • IDC_LIST_FAVORITE_GREP_FILE : sakura_rc.h
  • IDC_LIST_FAVORITE_GREP_FOLDER : sakura_rc.h
  • IDC_LIST_FAVORITE_REPLACE : sakura_rc.h
  • IDC_LIST_FAVORITE_SEARCH : sakura_rc.h
  • IDC_LIST_FILES : sakura_rc.h
  • IDC_LIST_FNAME : sakura_rc.h
  • IDC_LIST_FUNC : sakura_rc.h
  • IDC_LIST_ITEMINFO : sakura_rc.h
  • IDC_LIST_KEY : sakura_rc.h
  • IDC_LIST_KEYHELP : sakura_rc.h
  • IDC_LIST_KEYWORD : sakura_rc.h
  • IDC_LIST_REGEX : sakura_rc.h
  • IDC_LIST_RES : sakura_rc.h
  • IDC_LIST_TAGJUMP : sakura_rc.h
  • IDC_LIST_TYPES : sakura_rc.h
  • IDC_LIST_WORDS : sakura_rc.h
  • IDC_MACRO_REG : sakura_rc.h
  • IDC_MACRODIR : sakura_rc.h
  • IDC_MACRODIRREF : sakura_rc.h
  • IDC_MACROLIST : sakura_rc.h
  • IDC_MACRONAME : sakura_rc.h
  • IDC_MACROPATH : sakura_rc.h
  • IDC_PROGRESS : sakura_rc.h
  • IDC_PROGRESS_REPLACE : sakura_rc.h
  • IDC_QUERYRELOADMSG : sakura_rc.h
  • IDC_RADIO_ADD : sakura_rc.h
  • IDC_RADIO_ALL : sakura_rc.h
  • IDC_RADIO_ALLAREA : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE1 : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE1A : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE2 : sakura_rc.h
  • IDC_RADIO_BACKUP_DATETYPE2A : sakura_rc.h
  • IDC_RADIO_BACKUP_TYPE1 : sakura_rc.h
  • IDC_RADIO_BACKUP_TYPE2 : sakura_rc.h
  • IDC_RADIO_BACKUP_TYPE3 : sakura_rc.h
  • IDC_RADIO_CARETTYPE0 : sakura_rc.h
  • IDC_RADIO_CARETTYPE1 : sakura_rc.h
  • IDC_RADIO_DFORM_0 : sakura_rc.h
  • IDC_RADIO_DFORM_1 : sakura_rc.h
  • IDC_RADIO_DIFF_DST1 : sakura_rc.h
  • IDC_RADIO_DIFF_DST2 : sakura_rc.h
  • IDC_RADIO_DIFF_FILE1 : sakura_rc.h
  • IDC_RADIO_DIFF_FILE2 : sakura_rc.h
  • IDC_RADIO_EDITWINDOW : sakura_rc.h
  • IDC_RADIO_ESCAPETYPE_1 : sakura_rc.h
  • IDC_RADIO_ESCAPETYPE_2 : sakura_rc.h
  • IDC_RADIO_FROMTO : sakura_rc.h
  • IDC_RADIO_FUNCKEYWND_PLACE1 : sakura_rc.h
  • IDC_RADIO_FUNCKEYWND_PLACE2 : sakura_rc.h
  • IDC_RADIO_INSERT : sakura_rc.h
  • IDC_RADIO_LANDSCAPE : sakura_rc.h
  • IDC_RADIO_LINENUM_CRLF : sakura_rc.h
  • IDC_RADIO_LINENUM_LAYOUT : sakura_rc.h
  • IDC_RADIO_LINETERMTYPE0 : sakura_rc.h
  • IDC_RADIO_LINETERMTYPE1 : sakura_rc.h
  • IDC_RADIO_LINETERMTYPE2 : sakura_rc.h
  • IDC_RADIO_nRulerType_0 : sakura_rc.h
  • IDC_RADIO_nRulerType_1 : sakura_rc.h
  • IDC_RADIO_OUTLINEDEFAULT : sakura_rc.h
  • IDC_RADIO_OUTLINERULEFILE : sakura_rc.h
  • IDC_RADIO_OUTPUT : sakura_rc.h
  • IDC_RADIO_OUTPUTLINE : sakura_rc.h
  • IDC_RADIO_OUTPUTMARKED : sakura_rc.h
  • IDC_RADIO_OUTPUTSTYLE1 : sakura_rc.h
  • IDC_RADIO_OUTPUTSTYLE2 : sakura_rc.h
  • IDC_RADIO_PORTRAIT : sakura_rc.h
  • IDC_RADIO_REPLACE : sakura_rc.h
  • IDC_RADIO_SELECTEDAREA : sakura_rc.h
  • IDC_RADIO_TFORM_0 : sakura_rc.h
  • IDC_RADIO_TFORM_1 : sakura_rc.h
  • IDC_RADIO_WINPOS_DEF : sakura_rc.h
  • IDC_RADIO_WINPOS_SAVE : sakura_rc.h
  • IDC_RADIO_WINPOS_SET : sakura_rc.h
  • IDC_RADIO_WINSIZE_DEF : sakura_rc.h
  • IDC_RADIO_WINSIZE_SAVE : sakura_rc.h
  • IDC_RADIO_WINSIZE_SET : sakura_rc.h
  • IDC_SLIDER_VIEW : sakura_rc.h
  • IDC_SPIN_AUTOBACKUP_INTERVAL : sakura_rc.h
  • IDC_SPIN_BACKUP_GENS : sakura_rc.h
  • IDC_SPIN_CHARSPACE : sakura_rc.h
  • IDC_SPIN_DANSPACE : sakura_rc.h
  • IDC_SPIN_DANSUU : sakura_rc.h
  • IDC_SPIN_FONTWIDTH : sakura_rc.h
  • IDC_SPIN_FUNCKEYWND_GROUPNUM : sakura_rc.h
  • IDC_SPIN_LCColNum : sakura_rc.h
  • IDC_SPIN_LCColNum2 : sakura_rc.h
  • IDC_SPIN_LCColNum3 : sakura_rc.h
  • IDC_SPIN_LINENUM : sakura_rc.h
  • IDC_SPIN_LINESPACE : sakura_rc.h
  • IDC_SPIN_MARGINBY : sakura_rc.h
  • IDC_SPIN_MARGINLX : sakura_rc.h
  • IDC_SPIN_MARGINRX : sakura_rc.h
  • IDC_SPIN_MARGINTY : sakura_rc.h
  • IDC_SPIN_MAX_MRU_FILE : sakura_rc.h
  • IDC_SPIN_MAX_MRU_FOLDER : sakura_rc.h
  • IDC_SPIN_MAXLINELEN : sakura_rc.h
  • IDC_SPIN_nDropFileNumMax : sakura_rc.h
  • IDC_SPIN_nLineNumberRightSpace : sakura_rc.h
  • IDC_SPIN_nRulerBottomSpace : sakura_rc.h
  • IDC_SPIN_nRulerHeight : sakura_rc.h
  • IDC_SPIN_PLSQL_E1 : sakura_rc.h
  • IDC_SPIN_REPEATEDSCROLLLINENUM : sakura_rc.h
  • IDC_SPIN_SX : sakura_rc.h
  • IDC_SPIN_SY : sakura_rc.h
  • IDC_SPIN_TABSPACE : sakura_rc.h
  • IDC_SPIN_WX : sakura_rc.h
  • IDC_SPIN_WY : sakura_rc.h
  • IDC_STATIC : sakura_rc.h
  • IDC_STATIC_ALL : sakura_rc.h
  • IDC_STATIC_CMD : sakura_rc.h
  • IDC_STATIC_COLOR : sakura_rc.h
  • IDC_STATIC_COMPARESRC : sakura_rc.h
  • IDC_STATIC_CURFILE : sakura_rc.h
  • IDC_STATIC_CURPATH : sakura_rc.h
  • IDC_STATIC_DIFF_SRC : sakura_rc.h
  • IDC_STATIC_ENABLECOLMNS : sakura_rc.h
  • IDC_STATIC_ENABLELINES : sakura_rc.h
  • IDC_STATIC_EOL : sakura_rc.h
  • IDC_STATIC_FAVORITE_MSG : sakura_rc.h
  • IDC_STATIC_HAIKEI : sakura_rc.h
  • IDC_STATIC_HITCOUNT : sakura_rc.h
  • IDC_STATIC_JOBNAME : sakura_rc.h
  • IDC_STATIC_JRE32VER : sakura_rc.h
  • IDC_STATIC_KENSUU : sakura_rc.h
  • IDC_STATIC_KEYWORD : sakura_rc.h
  • IDC_STATIC_KEYWORD_COUNT : sakura_rc.h
  • IDC_STATIC_MSG : sakura_rc.h
  • IDC_STATIC_MYICON : sakura_rc.h
  • IDC_STATIC_nSortType : sakura_rc.h
  • IDC_STATIC_PAGENUM : sakura_rc.h
  • IDC_STATIC_PAPER : sakura_rc.h
  • IDC_STATIC_PRNDEV : sakura_rc.h
  • IDC_STATIC_PROGRESS : sakura_rc.h
  • IDC_STATIC_STC32 : sakura_rc.h
  • IDC_STATIC_UPDATE : sakura_rc.h
  • IDC_STATIC_URL_CAPTION : sakura_rc.h
  • IDC_STATIC_URL_ORG : sakura_rc.h
  • IDC_STATIC_URL_UR : sakura_rc.h
  • IDC_STATIC_VER : sakura_rc.h
  • IDC_STATIC_ZOOM : sakura_rc.h
  • IDC_TAB2 : sakura_rc.h
  • IDC_TAB_FAVORITE : sakura_rc.h
  • IDC_TABWND_CAPTION : sakura_rc.h
  • IDC_TREE1 : sakura_rc.h
  • IDC_UPDATEDFILENAME : sakura_rc.h
  • IDC_WINCAPTION_ACTIVE : sakura_rc.h
  • IDC_WINCAPTION_INACTIVE : sakura_rc.h
  • IDD_ABOUT : sakura_rc.h
  • IDD_COMPARE : sakura_rc.h
  • IDD_CTRLCODE : sakura_rc.h
  • IDD_DEBUG : sakura_rc.h
  • IDD_DIALOG_KEYWORD_SELECT : sakura_rc.h
  • IDD_DIFF : sakura_rc.h
  • IDD_EXEC : sakura_rc.h
  • IDD_EXECCMD_TEST : sakura_rc.h
  • IDD_EXECRUNNING : sakura_rc.h
  • IDD_EXITING : sakura_rc.h
  • IDD_FAVORITE : sakura_rc.h
  • IDD_FILEUPDATEQUERY : sakura_rc.h
  • IDD_FIND : sakura_rc.h
  • IDD_FUNCLIST : sakura_rc.h
  • IDD_GREP : sakura_rc.h
  • IDD_GREPRUNNING : sakura_rc.h
  • IDD_HOKAN : sakura_rc.h
  • IDD_INPUT1 : sakura_rc.h
  • IDD_JUMP : sakura_rc.h
  • IDD_OPERATIONRUNNING : sakura_rc.h
  • IDD_PRINTING : sakura_rc.h
  • IDD_PRINTPAGE : sakura_rc.h
  • IDD_PRINTPREVIEWBAR : sakura_rc.h
  • IDD_PRINTSETTING : sakura_rc.h
  • IDD_PROP1P1 : sakura_rc.h
  • IDD_PROP_BACKUP : sakura_rc.h
  • IDD_PROP_COLOR : sakura_rc.h
  • IDD_PROP_CUSTMENU : sakura_rc.h
  • IDD_PROP_EDIT : sakura_rc.h
  • IDD_PROP_FILE : sakura_rc.h
  • IDD_PROP_FNAME : sakura_rc.h
  • IDD_PROP_FORMAT : sakura_rc.h
  • IDD_PROP_GREP : sakura_rc.h
  • IDD_PROP_HELPER : sakura_rc.h
  • IDD_PROP_KEYBIND : sakura_rc.h
  • IDD_PROP_KEYBIND1 : sakura_rc.h
  • IDD_PROP_KEYHELP : sakura_rc.h
  • IDD_PROP_KEYWORD : sakura_rc.h
  • IDD_PROP_MACRO : sakura_rc.h
  • IDD_PROP_REGEX : sakura_rc.h
  • IDD_PROP_TAB : sakura_rc.h
  • IDD_PROP_TOOLBAR : sakura_rc.h
  • IDD_PROP_WIN : sakura_rc.h
  • IDD_PROPERTY_FILE : sakura_rc.h
  • IDD_PROPTYPESP1 : sakura_rc.h
  • IDD_PROPTYPESP2 : sakura_rc.h
  • IDD_REPLACE : sakura_rc.h
  • IDD_REPLACERUNNING : sakura_rc.h
  • IDD_SAMECOLOR : sakura_rc.h
  • IDD_TAG_MAKE : sakura_rc.h
  • IDD_TAGJUMPLIST : sakura_rc.h
  • IDD_TYPELIST : sakura_rc.h
  • IDD_WINPOSSIZE : sakura_rc.h
  • IDI_ICON_DEBUG : sakura_rc.h
  • IDI_ICON_GREP : sakura_rc.h
  • IDI_ICON_STD : sakura_rc.h
  • IDM_COPYDICINFO : CEditView.h
  • IDM_JUMPDICT : CEditView.h
  • IDM_POPLAST : sakura_rc.h
  • IDM_POPLAST2 : sakura_rc.h
  • IDM_SELMRU : global.h
  • IDM_SELOPENFOLDER : global.h
  • IDM_SELWINDOW : global.h
  • IDOK2 : sakura_rc.h
  • IDR_MENU1 : sakura_rc.h
  • IDR_TRAYMENU_L : sakura_rc.h
  • IDS_ABOUT_DESCRIPTION : sakura_rc.h
  • IDS_AUTHOR_MAIL : sakura_rc.h
  • IDS_AUTHOR_PAGE : sakura_rc.h
  • IDT_CAPTION : CEditWnd.cpp
  • IDT_EDIT : CEditWnd.cpp
  • IDT_FUNCWND : CFuncKeyWnd.cpp
  • IDT_PRINTSETTING : CDlgPrintSetting.cpp
  • IDT_ROLLMOUSE : CEditView.cpp, CEditDoc.cpp
  • IDT_SYSMENU : CEditWnd.cpp
  • IDT_TOOLBAR : CEditWnd.cpp
  • IDW_STATUSBAR : global.h
  • IMR_CONFIRMRECONVERTSTRING : CEditView.cpp
  • IMR_RECONVERTSTRING : CEditView.cpp
  • INT_PTR : global.h
  • INVALID_SET_FILE_POINTER : CFileLoad.h
  • IS_KEYWORD_CHAR : global.h
  • ISDIB : CEditView.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- p -

  • PACKVERSION : etc_uty.h
  • PAGE_RANGE_X : CPrintPreview.cpp
  • PAGE_RANGE_Y : CPrintPreview.cpp
  • PopulateKeyword : CShareData.cpp
  • POS_CENTER : CShareData.h
  • POS_LEFT : CShareData.h
  • POS_RIGHT : CShareData.h
  • PPADLL_VER : CPPA.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- r -

  • RK_ACTIVE : CRegexKeyword.h
  • RK_CLOSE : CRegexKeyword.h
  • RK_EMPTY : CRegexKeyword.h
  • RK_ERROR : CRegexKeyword.h
  • RK_HEAD_STR1 : CRegexKeyword.h
  • RK_HEAD_STR1_LEN : CRegexKeyword.h
  • RK_HEAD_STR2 : CRegexKeyword.h
  • RK_HEAD_STR2_LEN : CRegexKeyword.h
  • RK_HEAD_STR3 : CRegexKeyword.h
  • RK_HEAD_STR3_LEN : CRegexKeyword.h
  • RK_KAKOMI_1_END : CRegexKeyword.h
  • RK_KAKOMI_1_START : CRegexKeyword.h
  • RK_KAKOMI_2_END : CRegexKeyword.h
  • RK_KAKOMI_2_START : CRegexKeyword.h
  • RK_KAKOMI_3_END : CRegexKeyword.h
  • RK_KAKOMI_3_START : CRegexKeyword.h
  • RK_MATCH : CRegexKeyword.h
  • RK_NOMATCH : CRegexKeyword.h
  • RK_OPEN : CRegexKeyword.h
  • RK_SIZE : CRegexKeyword.h
  • RWM_RECONVERT : mymessage.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- s -

  • SAKURA_CORE_API : global.h
  • SAKURA_DIFF_TEMP_PREFIX : CEditView_Diff.cpp
  • SAVED_KEYMACRO : CSMacroMgr.h
  • SetWindowLongPtr : global.h
  • SPACE : charcode.h
  • SPI_GETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • SPI_SETFOREGROUNDLOCKTIMEOUT : CTabWnd.cpp
  • STAND_KEYMACRO : CSMacroMgr.h
  • STR_ALT_PLUS : CPropComKeybind.cpp
  • STR_COLORDATA_HEAD : CPropTypes.cpp
  • STR_COLORDATA_HEAD3 : CShareData_new.cpp, CPropTypes.cpp
  • STR_COLORDATA_HEAD_LEN : CPropTypes.cpp
  • STR_COLORDATA_SECTION : CPropTypes.cpp
  • STR_CTRL_PLUS : CPropComKeybind.cpp
  • STR_CUSTMENU_HEAD : CPropComCustmenu.cpp
  • STR_CUSTMENU_HEAD_LEN : CPropComCustmenu.cpp
  • STR_KEYDATA_HEAD : CPropComKeybind.cpp
  • STR_KEYDATA_HEAD_LEN : CPropComKeybind.cpp
  • STR_SHIFT_PLUS : CPropComKeybind.cpp
  • strchri : my_icmp.h
  • stricmp : my_icmp.h
  • strnicmp : my_icmp.h
  • strstri : my_icmp.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- t -

  • TAB : charcode.h
  • TAB_ITEM_HEIGHT : CTabWnd.cpp
  • TAB_MARGIN_LEFT : CTabWnd.cpp
  • TAB_MARGIN_RIGHT : CTabWnd.cpp
  • TAB_MARGIN_TOP : CTabWnd.cpp
  • TAB_WINDOW_HEIGHT : CTabWnd.cpp
  • TAG_FILENAME : CDlgTagJumpList.h
  • TAG_FORMAT : CDlgTagJumpList.h
  • TAGJUMP_EDITBOX_IS_COMBO : CDlgTagJumpList.h
  • TAGJUMP_TIMER_DELAY : CDlgTagJumpList.h
  • TB_SETEXTENDEDSTYLE : CMenuDrawer.h
  • TBSTYLE_ALTDRAG : CEditWnd.cpp
  • TBSTYLE_COMBOBOX : CMenuDrawer.h
  • TBSTYLE_DROPDOWN : CMenuDrawer.h
  • TBSTYLE_EX_DRAWDDARROWS : CMenuDrawer.h
  • TBSTYLE_FLAT : CEditWnd.cpp
  • TBSTYLE_LIST : CEditWnd.cpp
  • TIMER_CHECKFUNCENABLE : CFuncKeyWnd.cpp
  • TIMER_TIMEOUT : CFuncKeyWnd.cpp
  • TO_EISU : CMemory.cpp
  • TO_HIRAGANA : CMemory.cpp
  • TO_KATAKANA : CMemory.cpp
  • trail : RcCvt.cpp, mrc2brc.cpp
  • TRUE : global.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- u -

  • UINT_PTR : global.h
  • ULONG_PTR : global.h
  • USE_PARENT : CRegexKeyword.h
  • UUDECODE_CHAR : charcode.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- w -

  • WANT_GETLONGPATHNAME_WRAPPER : etc_uty.h
  • WIDTHBYTES : CEditView.cpp
  • WIN32_LEAN_AND_MEAN : StdAfx.h
  • WM_MOUSEWHEEL : CWnd.cpp, CEditWnd.cpp, CEditView.cpp
  • WM_THEMECHANGED : CTabWnd.cpp, CEditWnd.cpp
  • WM_XBUTTONDBLCLK : CEditView.cpp
  • WM_XBUTTONDOWN : CEditView.cpp
  • WM_XBUTTONUP : CEditView.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- x -

  • XBUTTON1 : CEditView.cpp
  • XBUTTON2 : CEditView.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w
  • x
  • y

- y -

  • YOHAKU_X : CEditWnd.cpp
  • YOHAKU_Y : CEditWnd.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義

  • e_PM_SETCARETPOS_SELECTSTATE : mymessage.h
  • enumBarChangeNotifyType : global.h
  • enumCodeType : global.h
  • enumColorIndexType : global.h
  • enumEOLLen : global.h
  • enumEOLType : global.h
  • enumJisESCSeqType : charcode.h
  • enumOPECODE : COpeBuf.h
  • enumOutlineType : global.h
  • enumRecentCmp : CRecent.h
  • enumRecentFor : CRecent.h
  • enumShowDlg : global.h
  • enumSmartIndentType : global.h
  • enumTabWndNotifyType : global.h
  • eWINSIZEMODE : CShareData.h
  • maxdata : CShareData.h
  • MRU_maxdata : CMRU.h
  • MRUFolder_maxdata : CMRUFolder.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • c
  • e
  • j
  • l
  • m
  • o
  • p
  • r
  • s
  • t
  • w

- c -

  • CODE_AUTODETECT : global.h
  • CODE_CODEMAX : global.h
  • CODE_EUC : global.h
  • CODE_JIS : global.h
  • CODE_SJIS : global.h
  • CODE_UNICODE : global.h
  • CODE_UNICODEBE : global.h
  • CODE_UTF7 : global.h
  • CODE_UTF8 : global.h
  • COLORIDX_BLOCK1 : global.h
  • COLORIDX_BLOCK2 : global.h
  • COLORIDX_BRACKET_PAIR : global.h
  • COLORIDX_CARET : global.h
  • COLORIDX_CARET_IME : global.h
  • COLORIDX_COMMENT : global.h
  • COLORIDX_CRLF : global.h
  • COLORIDX_CTRLCODE : global.h
  • COLORIDX_DIFF_APPEND : global.h
  • COLORIDX_DIFF_CHANGE : global.h
  • COLORIDX_DIFF_DELETE : global.h
  • COLORIDX_DIGIT : global.h
  • COLORIDX_EOF : global.h
  • COLORIDX_GYOU : global.h
  • COLORIDX_GYOU_MOD : global.h
  • COLORIDX_KEYWORD1 : global.h
  • COLORIDX_KEYWORD10 : global.h
  • COLORIDX_KEYWORD2 : global.h
  • COLORIDX_KEYWORD3 : global.h
  • COLORIDX_KEYWORD4 : global.h
  • COLORIDX_KEYWORD5 : global.h
  • COLORIDX_KEYWORD6 : global.h
  • COLORIDX_KEYWORD7 : global.h
  • COLORIDX_KEYWORD8 : global.h
  • COLORIDX_KEYWORD9 : global.h
  • COLORIDX_LAST : global.h
  • COLORIDX_MARK : global.h
  • COLORIDX_REGEX1 : global.h
  • COLORIDX_REGEX10 : global.h
  • COLORIDX_REGEX2 : global.h
  • COLORIDX_REGEX3 : global.h
  • COLORIDX_REGEX4 : global.h
  • COLORIDX_REGEX5 : global.h
  • COLORIDX_REGEX6 : global.h
  • COLORIDX_REGEX7 : global.h
  • COLORIDX_REGEX8 : global.h
  • COLORIDX_REGEX9 : global.h
  • COLORIDX_RULER : global.h
  • COLORIDX_SEARCH : global.h
  • COLORIDX_SPACE : global.h
  • COLORIDX_SSTRING : global.h
  • COLORIDX_TAB : global.h
  • COLORIDX_TEXT : global.h
  • COLORIDX_UNDERLINE : global.h
  • COLORIDX_URL : global.h
  • COLORIDX_VERTLINE : global.h
  • COLORIDX_WRAP : global.h
  • COLORIDX_WSTRING : global.h
  • COLORIDX_ZENSPACE : global.h

- e -

  • EOL_CODEMAX : global.h
  • EOL_CR : global.h
  • EOL_CRLF : global.h
  • EOL_LF : global.h
  • EOL_LFCR : global.h
  • EOL_NONE : global.h
  • EOL_UNKNOWN : global.h

- j -

  • JISESC_ASCII : charcode.h
  • JISESC_JISX0201Katakana : charcode.h
  • JISESC_JISX0201Latin : charcode.h
  • JISESC_JISX0201Latin_OLD : charcode.h
  • JISESC_JISX0208_1978 : charcode.h
  • JISESC_JISX0208_1983 : charcode.h
  • JISESC_JISX0208_1990 : charcode.h
  • JISESC_UNKNOWN : charcode.h

- l -

  • LEN_EOL_CR : global.h
  • LEN_EOL_CRLF : global.h
  • LEN_EOL_LF : global.h
  • LEN_EOL_LFCR : global.h
  • LEN_EOL_NONE : global.h

- m -

  • MACRONAME_MAX : CShareData.h
  • MAX_CMDARR : CShareData.h
  • MAX_CMDLEN : CShareData.h
  • MAX_CUSTMACRO : CShareData.h
  • MAX_CUSTOM_MENU : CShareData.h
  • MAX_CUSTOM_MENU_ITEMS : CShareData.h
  • MAX_CUSTOM_MENU_NAME_LEN : CShareData.h
  • MAX_DATETIMEFOREMAT_LEN : CShareData.h
  • MAX_DOCTYPE_LEN : CShareData.h
  • MAX_EDITWINDOWS : CShareData.h
  • MAX_EXTCMDLEN : CShareData.h
  • MAX_EXTCMDMRUNUM : CShareData.h
  • MAX_GREPFILE : CShareData.h
  • MAX_GREPFOLDER : CShareData.h
  • MAX_KEYHELP_FILE : CShareData.h
  • MAX_KEYWORDSET_PER_TYPE : CShareData.h
  • MAX_MARKLINES_LEN : CShareData.h
  • MAX_MRU : CMRU.h
  • MAX_OPENFOLDER : CMRUFolder.h
  • MAX_PRINTSETTINGARR : CShareData.h
  • MAX_REGEX_KEYWORD : CShareData.h
  • MAX_REPLACEKEY : CShareData.h
  • MAX_SEARCHKEY : CShareData.h
  • MAX_TAGJUMP_KEYWORD : CShareData.h
  • MAX_TAGJUMPNUM : CShareData.h
  • MAX_TOOLBARBUTTONS : CShareData.h
  • MAX_TRANSFORM_FILENAME : CShareData.h
  • MAX_TYPES : CShareData.h
  • MAX_VERTLINES : CShareData.h
  • MYBCN_FUNCKEY : global.h
  • MYBCN_STATUSBAR : global.h
  • MYBCN_TAB : global.h
  • MYBCN_TOOLBAR : global.h

- o -

  • OPE_DELETE : COpeBuf.h
  • OPE_INSERT : COpeBuf.h
  • OPE_MOVECARET : COpeBuf.h
  • OUTLINE_ASM : global.h
  • OUTLINE_BOOKMARK : global.h
  • OUTLINE_C : global.h
  • OUTLINE_COBOL : global.h
  • OUTLINE_CODEMAX : global.h
  • OUTLINE_CPP : global.h
  • OUTLINE_DEFAULT : global.h
  • OUTLINE_FILE : global.h
  • OUTLINE_HTML : global.h
  • OUTLINE_JAVA : global.h
  • OUTLINE_PERL : global.h
  • OUTLINE_PLSQL : global.h
  • OUTLINE_PYTHON : global.h
  • OUTLINE_TEX : global.h
  • OUTLINE_TEXT : global.h
  • OUTLINE_UNKNOWN : global.h
  • OUTLINE_VB : global.h
  • OUTLINE_WZTXT : global.h

- p -

  • PM_SETCARETPOS_KEEPSELECT : mymessage.h
  • PM_SETCARETPOS_NOSELECT : mymessage.h
  • PM_SETCARETPOS_SELECT : mymessage.h

- r -

  • RECENT_CMP_MEMCMP : CRecent.h
  • RECENT_CMP_MEMICMP : CRecent.h
  • RECENT_CMP_STRCMP : CRecent.h
  • RECENT_CMP_STRICMP : CRecent.h
  • RECENT_CMP_STRNCMP : CRecent.h
  • RECENT_CMP_STRNICMP : CRecent.h
  • RECENT_FOR_CMD : CRecent.h
  • RECENT_FOR_EDITNODE : CRecent.h
  • RECENT_FOR_FILE : CRecent.h
  • RECENT_FOR_FOLDER : CRecent.h
  • RECENT_FOR_GREP_FILE : CRecent.h
  • RECENT_FOR_GREP_FOLDER : CRecent.h
  • RECENT_FOR_REPLACE : CRecent.h
  • RECENT_FOR_SEARCH : CRecent.h
  • RECENT_FOR_TAGJUMP_KEYWORD : CRecent.h

- s -

  • SHOW_NORMAL : global.h
  • SHOW_RELOAD : global.h
  • SHOW_TOGGLE : global.h
  • SMARTINDENT_CPP : global.h
  • SMARTINDENT_NONE : global.h

- t -

  • TWNT_ADD : global.h
  • TWNT_DEL : global.h
  • TWNT_FILE : global.h
  • TWNT_MODE_DISABLE : global.h
  • TWNT_MODE_ENABLE : global.h
  • TWNT_ORDER : global.h
  • TWNT_REFRESH : global.h
  • TWNT_WNDPL_ADJUST : global.h

- w -

  • WINSIZEMODE_DEF : CShareData.h
  • WINSIZEMODE_SAVE : CShareData.h
  • WINSIZEMODE_SET : CShareData.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • w

- _ -

  • _CompareFunc_() : CDlgFuncList.cpp
  • _IS_REL_PATH() : etc_uty.h
  • _tfopen_absexe() : etc_uty.h, etc_uty.cpp
  • _tfopen_absini() : etc_uty.h, etc_uty.cpp

- a -

  • ActivateFrameWindow() : etc_uty.h, etc_uty.cpp
  • AddLastChar() : etc_uty.h, etc_uty.cpp
  • AddLastYenFromDirectoryPath() : etc_uty.h, etc_uty.cpp
  • AssertError() : Debug.h, Debug.cpp

- b -

  • Base64_CharToVal() : charcode.cpp
  • Base64_ValToChar() : charcode.cpp
  • BlockingHook() : etc_uty.h, etc_uty.cpp

- c -

  • C_IsLineEsc() : CEditDoc_FuncList1.cpp
  • C_IsOperator() : CEditDoc_FuncList1.cpp
  • C_IsSpace() : CEditDoc_FuncList2.cpp, CEditDoc_FuncList1.cpp
  • C_IsWordChar() : CEditDoc_FuncList1.cpp
  • CalcDirectoryDepth() : etc_uty.h, etc_uty.cpp
  • CDlgDebug_Proc() : CDlgDebug.cpp
  • CDlgInput1Proc() : CDlgInput1.cpp
  • CEditAppWndProc() : CEditApp.cpp
  • CEditWndProc() : CEditWnd.cpp
  • cescape() : etc_uty.h, etc_uty.cpp
  • cescape_j() : etc_uty.h, etc_uty.cpp
  • CheckEucJpChar() : charcode.cpp
  • CheckEXT() : etc_uty.h, etc_uty.cpp
  • CheckRegexpSyntax() : etc_uty.h, etc_uty.cpp
  • CheckRegexpVersion() : etc_uty.h, etc_uty.cpp
  • CheckSJisChar() : charcode.cpp
  • CheckSJisCharR() : charcode.cpp
  • CheckSystemResources() : etc_uty.h, etc_uty.cpp
  • CheckUtf16BeChar() : charcode.cpp
  • CheckUtf16Char() : charcode.cpp
  • CheckUtf7SetBPart() : charcode.cpp
  • CheckUtf7SetDPart() : charcode.cpp
  • CheckUtf8Char() : charcode.cpp
  • cmpGetOpenedWindowArr() : CShareData.cpp
  • ColorList_SubclassProc() : CPropTypes.cpp
  • Compare_by_ItemData() : CDlgFuncList.cpp
  • compTABMENU_DATA() : CTabWnd.cpp
  • CPropComKeybindWndProc() : CPropComKeybind.cpp
  • CutLastYenFromDirectoryPath() : etc_uty.h, etc_uty.cpp
  • CWndProc() : CWnd.cpp

- d -

  • DebugOut() : Debug.h, Debug.cpp
  • DebugOutDialog() : Debug.h, Debug.cpp
  • DetectJisESCSeq() : charcode.cpp
  • DetectUnicodeBom() : charcode.cpp
  • dupamp() : etc_uty.h

- e -

  • EditViewTimerProc() : CEditView.cpp
  • EditViewWndProc() : CEditView.cpp

- f -

  • FillSolidRect() : CMenuDrawer.cpp, CImageListMgr.cpp
  • FuncID_To_HelpContextID() : etc_uty.h, etc_uty.cpp

- g -

  • GetAbsolutePath() : etc_uty.h
  • GetAlignmentSize() : CKeyWordSetMgr.cpp
  • GetAppIcon() : etc_uty.h, etc_uty.cpp
  • GetAppVersionInfo() : etc_uty.h, etc_uty.cpp
  • GetCharLen_eucjp() : charcode.cpp
  • GetCharLen_sjis() : charcode.cpp
  • GetCharLen_utf8() : charcode.cpp
  • GetCharLenR_sjis() : charcode.cpp
  • GetColorIndexByName() : etc_uty.h, etc_uty.cpp
  • GetColorNameByIndex() : etc_uty.h, etc_uty.cpp
  • GetComctl32Version() : etc_uty.h, etc_uty.cpp
  • getCtrlKeyState() : etc_uty.h, etc_uty.cpp
  • GetDateTimeFormat() : etc_uty.h, etc_uty.cpp
  • GetDllVersion() : etc_uty.h, etc_uty.cpp
  • GetEncdInf_EucJp() : charcode.cpp
  • GetEncdInf_Jis() : charcode.cpp
  • GetEncdInf_SJis() : charcode.cpp
  • GetEncdInf_Uni() : charcode.cpp
  • GetEncdInf_Utf7() : charcode.cpp
  • GetEncdInf_Utf8() : charcode.cpp
  • GetExedir() : etc_uty.h, etc_uty.cpp
  • GetExistPath() : MY_SP.C
  • GetFileName() : CPropTypesKeyHelp.cpp
  • GetGlobalData() : CEditView.cpp
  • GetHelpFilePath() : etc_uty.h, etc_uty.cpp
  • GetInidir() : etc_uty.h, etc_uty.cpp
  • GetInidirOrExedir() : etc_uty.h, etc_uty.cpp
  • GetJisESCSeqData() : charcode.cpp
  • GetJisESCSeqLen() : charcode.cpp
  • GetLastWriteTimestamp() : etc_uty.h, etc_uty.cpp
  • GetLineColm() : etc_uty.h, etc_uty.cpp
  • GetLongFileName() : etc_uty.h, etc_uty.cpp
  • GetMonitorWorkRect() : etc_uty.h, etc_uty.cpp
  • GetNextLimitedLengthText() : etc_uty.h, etc_uty.cpp
  • GetNextLine() : etc_uty.h, etc_uty.cpp
  • GetSpecialFolderPath() : etc_uty.h, etc_uty.cpp
  • GetSystemResources() : etc_uty.h, etc_uty.cpp
  • GuessCharLen_eucjp() : charcode.cpp
  • GuessCharLen_sjis() : charcode.cpp
  • GuessCharLen_utf8() : charcode.cpp

- h -

  • HokanList_SubclassProc() : CHokanMgr.cpp

- i -

  • imp_CheckUtf16Char() : charcode.cpp
  • InitRegexp() : etc_uty.h, etc_uty.cpp
  • IsBase64Char() : charcode.cpp
  • IsDataAvailable() : CEditView.cpp
  • IsEucHanKana2() : charcode.cpp
  • IsEucHanKata2() : charcode.h
  • IsEucKan() : charcode.cpp
  • IsEucKan1() : charcode.cpp
  • IsEucKan2() : charcode.cpp
  • IsFileExists() : etc_uty.h, etc_uty.cpp
  • IsFilePath() : etc_uty.h, etc_uty.cpp
  • IsLocalDrive() : etc_uty.h, etc_uty.cpp
  • IsMailAddress() : etc_uty.h, etc_uty.cpp
  • IsNumber() : etc_uty.h, etc_uty.cpp
  • IsSJisHanKata() : charcode.cpp
  • IsSJisKan() : charcode.cpp
  • IsSJisKan1() : charcode.cpp
  • IsSJisKan2() : charcode.cpp
  • IsURL() : etc_uty.h, etc_uty.cpp
  • IsUtf16SurrogHi() : charcode.cpp
  • IsUtf16SurrogLow() : charcode.cpp
  • IsUtf7SetDChar() : charcode.cpp
  • IsVisualStyle() : etc_uty.h, etc_uty.cpp

- l -

  • LimitStringLengthB() : etc_uty.h, etc_uty.cpp
  • Listbox_ADDDATA() : CPropComToolbar.cpp
  • Listbox_INSERTDATA() : CPropComToolbar.cpp

- m -

  • MacroCommand() : CWSH.cpp
  • MacroError() : CWSH.cpp
  • main() : mrc2brc.cpp
  • MakeRGBStr() : CPropTypes.cpp
  • my_internal_icmp() : my_icmp.h, my_icmp.cpp
  • my_iskanji1() : my_icmp.h, my_icmp.cpp
  • my_iskanji2() : my_icmp.h, my_icmp.cpp
  • my_memicmp() : my_icmp.h, my_icmp.cpp
  • my_splitpath() : MY_SP.h, MY_SP.C
  • my_strchr() : my_icmp.h, my_icmp.cpp
  • my_strchri() : my_icmp.h, my_icmp.cpp
  • my_stricmp() : my_icmp.h, my_icmp.cpp
  • my_strnicmp() : my_icmp.h, my_icmp.cpp
  • my_strstr() : my_icmp.h, my_icmp.cpp
  • my_strstri() : my_icmp.h, my_icmp.cpp
  • my_strtok() : etc_uty.h, etc_uty.cpp
  • my_tolower() : my_icmp.h, my_icmp.cpp
  • my_toupper() : my_icmp.h, my_icmp.cpp
  • MYBrowseCallbackProc() : etc_uty.cpp
  • MyDialogProc() : CDialog.cpp
  • MyGetAncestor() : etc_uty.h, etc_uty.cpp
  • MyInitCommonControls() : etc_uty.h, etc_uty.cpp
  • MyPropertySheet() : etc_uty.h, etc_uty.cpp
  • MyWinHelp() : etc_uty.h, etc_uty.cpp

- n -

  • NetConnect() : etc_uty.h, etc_uty.cpp

- o -

  • OFNHookProc() : CDlgOpenFile.cpp
  • OFNHookProcMain() : CDlgOpenFile.cpp
  • OnFolderProc() : CDlgGrep.cpp
  • OpenHtmlHelp() : etc_uty.h, etc_uty.cpp

- p -

  • PreventVisualStyle() : etc_uty.h, etc_uty.cpp
  • PropSheetProc() : etc_uty.cpp
  • PropSheetWndProc() : etc_uty.cpp
  • PropTypesP1Proc() : CPropTypes.cpp
  • PropTypesP2Proc() : CPropTypes.cpp
  • PropTypesP3_newProc() : CPropTypes.cpp
  • Python_IsWordChar() : CEditDoc_FuncList2.cpp

- r -

  • ReadRegistry() : etc_uty.h, etc_uty.cpp
  • ResolveShortcutLink() : etc_uty.h, etc_uty.cpp

- s -

  • SelectDir() : etc_uty.h, etc_uty.cpp
  • SetClipboardText() : etc_uty.h, etc_uty.cpp
  • SetData_EnumFontFamProc() : CDlgPrintSetting.cpp
  • ShowWinHelpContents() : etc_uty.h, etc_uty.cpp
  • sjis_strrchr2() : MY_SP.h, MY_SP.C
  • SortByKeyAsc() : CEditView_Command_New.cpp
  • SortByKeyDesc() : CEditView_Command_New.cpp
  • SplitPath_FolderAndFile() : etc_uty.h, etc_uty.cpp
  • strcnv() : CPropTypesKeyHelp.cpp
  • strncpy_ex() : etc_uty.h, etc_uty.cpp

- t -

  • TabWndProc() : CTabWnd.cpp
  • ToolBarWndProc() : CEditWnd.cpp

- u -

  • usage() : mrc2brc.cpp
  • Uu_CharToVal() : charcode.cpp

- w -

  • WinMain() : WinMain.cpp
  • Wrap() : OleTypes.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義

  • BREGEXP : CBregexp.h
  • CInterfaceObjectMethod : CWSH.h
  • ColorAttributeData : global.h
  • EngineCallback : CWSHManager.h
  • MBCODE_INFO : charcode.h
  • migemo : CMigemo.h
  • MIGEMO_PROC_CHAR2INT : CMigemo.h
  • MIGEMO_PROC_INT2CHAR : CMigemo.h
  • PRECONVERTSTRING : CEditView.h
  • RECONVERTSTRING : CEditView.h
  • REGEX_INFO : CRegexKeyword.h
  • ScriptErrorHandler : CWSH.h
  • SORTDATA : CEditView_Command_New.cpp
  • SORTTABLE : CEditView_Command_New.cpp
  • uchar16_t : charcode.h
  • uchar32_t : charcode.h
  • uchar_t : charcode.h
  • UNICODE_INFO : charcode.h
  • WCCODE_INFO : charcode.h
  • wchar32_t : charcode.h
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • 全て
  • 関数
  • 変数
  • 型定義
  • 列挙型
  • 列挙型の値
  • マクロ定義
  • b
  • c
  • d
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • z

- b -

  • BASE64CHAR : charcode.h, charcode.cpp
  • BASE64VAL : charcode.h, charcode.cpp
  • BKUP_AUTO : CShareData.h
  • BKUP_DAY : CShareData.h
  • BKUP_HOUR : CShareData.h
  • BKUP_MIN : CShareData.h
  • BKUP_MONTH : CShareData.h
  • BKUP_SEC : CShareData.h
  • BKUP_YEAR : CShareData.h
  • bNA : charcode.cpp

- c -

  • cLineComment : CPropTypes.cpp
  • CMD_FROM_MOUSE : CEditView.h
  • COLUMNSPACE_MAX : global.h

- d -

  • DICT_ABOUT_LEN : CShareData.h
  • DynCategory : CFuncLookup.cpp

- g -

  • g_cHtmlHelp : etc_uty.cpp
  • g_ColorAttributeArr : global.h, global.cpp
  • g_m_pCEditApp : CEditApp.cpp
  • g_m_pcEditView : CEditView.cpp
  • g_pOldToolBarWndProc : CEditWnd.cpp
  • g_pOnFolderProc : CDlgGrep.cpp
  • gm_keyword_char : global.h, global.cpp
  • gm_nCodeComboNameArrNum : global.h, global.cpp
  • gm_nCodeComboValueArr : global.h, global.cpp
  • gm_pCWnd : CWnd.h, CWnd.cpp
  • gm_pnEolTypeArr : global.h, global.cpp
  • gm_pOldWndProc : CTabWnd.cpp
  • gm_pszCodeComboNameArr : global.h, global.cpp
  • gm_pszCodeNameArr_1 : global.h, global.cpp
  • gm_pszCodeNameArr_2 : global.h, global.cpp
  • gm_pszCodeNameArr_3 : global.h, global.cpp
  • gm_wpHokanListProc : CHokanMgr.cpp
  • GSTR_APPNAME : global.h, global.cpp

- h -

  • hankakkoarr : CEditView_New2.cpp

- i -

  • IDC_SPIN_nRulerHeight_MAX : global.h
  • IDC_SPIN_nRulerHeight_MIN : global.h
  • ImeStateArr : CPropTypes.cpp
  • ImeSwitchArr : CPropTypes.cpp
  • IndentTypeArr : CPropTypes.cpp
  • INVALID_MACRO_IDX : CSMacroMgr.h

- j -

  • JISESCDATA_ASCII : charcode.h, charcode.cpp
  • JISESCDATA_JISX0201Katakana : charcode.h, charcode.cpp
  • JISESCDATA_JISX0201Latin : charcode.h, charcode.cpp
  • JISESCDATA_JISX0201Latin_OLD : charcode.h, charcode.cpp
  • JISESCDATA_JISX0208_1978 : charcode.h, charcode.cpp
  • JISESCDATA_JISX0208_1983 : charcode.h, charcode.cpp
  • JISESCDATA_JISX0208_1990 : charcode.h, charcode.cpp

- k -

  • KEYWORD_SELECT_NUM : CDlgKeywordSelect.h
  • keyword_select_target_combo : CDlgKeywordSelect.cpp

- l -

  • LINEREADBUFSIZE : global.h
  • LINESPACE_MAX : global.h
  • LUOFFSET_CUSTMENU : CFuncLookup.cpp
  • LUOFFSET_MACRO : CFuncLookup.cpp

- m -

  • m_bIsSaveDialog : CDlgOpenFile.cpp
  • m_bReadOnly : CDlgOpenFile.cpp
  • m_nHelpTopicID : CDlgOpenFile.cpp
  • m_ppszMRU : CDlgOpenFile.cpp
  • m_ppszOPENFOLDER : CDlgOpenFile.cpp
  • m_szHelpFile : CDlgOpenFile.cpp
  • m_wpColorListProc : CPropTypes.cpp
  • m_wpOpenDialogProc : CDlgOpenFile.cpp
  • MAX_CAPTION_CONF_LEN : CShareData.h
  • MAX_X : CImageListMgr.cpp
  • MAX_Y : CImageListMgr.cpp
  • MAXLINESIZE : global.h
  • MINLINESIZE : global.h
  • MSec2Min : CAutoSave.h

- n -

  • nCheckBoxID : CPropTypes.cpp
  • nEditID : CPropTypes.cpp
  • nFincList_Box_Num : Funccode.cpp
  • nFincList_Clip_Num : Funccode.cpp
  • nFincList_Convert_Num : Funccode.cpp
  • nFincList_Edit_Num : Funccode.cpp
  • nFincList_File_Num : Funccode.cpp
  • nFincList_Insert_Num : Funccode.cpp
  • nFincList_Macro_Num : Funccode.cpp
  • nFincList_Mode_Num : Funccode.cpp
  • nFincList_Move_Num : Funccode.cpp
  • nFincList_Others_Num : Funccode.cpp
  • nFincList_Search_Num : Funccode.cpp
  • nFincList_Select_Num : Funccode.cpp
  • nFincList_Set_Num : Funccode.cpp
  • nFincList_Support_Num : Funccode.cpp
  • nFincList_Win_Num : Funccode.cpp
  • nFincListNumArrNum : Funccode.h
  • nFuncKindNum : Funccode.h
  • nImeStateArrNum : CPropTypes.cpp
  • nImeSwitchArrNum : CPropTypes.cpp
  • nIndentTypeArrNum : CPropTypes.cpp
  • nKeyWordSetBlockSize : CKeyWordSetMgr.cpp
  • nOlmArrNum : CPropTypes.cpp
  • nSmartIndentArrNum : CPropTypes.cpp
  • nTextID : CPropTypes.cpp
  • NULSTR : CMacroFactory.cpp

- o -

  • OlmArr : CPropTypes.cpp

- p -

  • P_BREG : CBregexp.cpp
  • p_ctrl_list : CDlgCtrlCode.cpp
  • p_ctrl_list_num : CDlgCtrlCode.cpp
  • p_date_form : CPropComFormat.cpp
  • p_extentions : CDlgTagJumpList.cpp
  • p_helpids : CPropTypesRegex.cpp, CPropTypesKeyHelp.cpp, CPropComWin.cpp, CPropComToolbar.cpp, CPropComTab.cpp, CPropCommon.cpp, CPropComMacro.cpp, CPropComKeyword.cpp, CPropComKeybind.cpp, CPropComHelper.cpp, CPropComGrep.cpp, CPropComFormat.cpp, CPropComFileName.cpp, CPropComFile.cpp, CPropComEdit.cpp, CPropComCustmenu.cpp, CPropComBackup.cpp, CHokanMgr.cpp, CDlgWinSize.cpp, CDlgTypeList.cpp, CDlgTagsMake.cpp, CDlgTagJumpList.cpp, CDlgSameColor.cpp, CDlgReplace.cpp, CDlgProperty.cpp, CDlgPrintSetting.cpp, CDlgPrintPage.cpp, CDlgOpenFile.cpp, CDlgKeywordSelect.cpp, CDlgJump.cpp, CDlgInput1.cpp, CDlgGrep.cpp, CDlgFuncList.cpp, CDlgFind.cpp, CDlgFavorite.cpp, CDlgExec.cpp, CDlgDiff.cpp, CDlgCtrlCode.cpp, CDlgCompare.cpp, CDlgCancel.cpp, CDlgAbout.cpp, CDialog.cpp
  • p_helpids1 : CPropTypes.cpp
  • p_helpids2 : CPropTypes.cpp
  • p_helpids3 : CPropTypes.cpp
  • P_ONIG : CBregexp.cpp
  • p_time_form : CPropComFormat.cpp
  • pnFuncList_Box : Funccode.cpp
  • pnFuncList_Clip : Funccode.cpp
  • pnFuncList_Convert : Funccode.cpp
  • pnFuncList_Edit : Funccode.cpp
  • pnFuncList_File : Funccode.cpp
  • pnFuncList_Insert : Funccode.cpp
  • pnFuncList_Macro : Funccode.cpp
  • pnFuncList_Mode : Funccode.cpp
  • pnFuncList_Move : Funccode.cpp
  • pnFuncList_Others : Funccode.cpp
  • pnFuncList_Search : Funccode.cpp
  • pnFuncList_Select : Funccode.cpp
  • pnFuncList_Set : Funccode.cpp
  • pnFuncList_Support : Funccode.cpp
  • pnFuncList_Win : Funccode.cpp
  • pnFuncListNumArr : Funccode.h
  • ppnFuncListArr : Funccode.h
  • ppszFuncKind : Funccode.h
  • ppszKeyWordsAWK : CShareData.cpp
  • ppszKeyWordsBAT : CShareData.cpp
  • ppszKeyWordsCOBOL : CShareData.cpp
  • ppszKeyWordsCORBA_IDL : CShareData.cpp
  • ppszKeyWordsCPP : CShareData.cpp
  • ppszKeyWordsHTML : CShareData.cpp
  • ppszKeyWordsJAVA : CShareData.cpp
  • ppszKeyWordsPASCAL : CShareData.cpp
  • ppszKeyWordsPERL : CShareData.cpp
  • ppszKeyWordsPERL2 : CShareData.cpp
  • ppszKeyWordsPLSQL : CShareData.cpp
  • ppszKeyWordsRTF : CShareData.cpp
  • ppszKeyWordsTEX : CShareData.cpp
  • ppszKeyWordsTEX2 : CShareData.cpp
  • ppszKeyWordsVB : CShareData.cpp
  • ppszKeyWordsVB2 : CShareData.cpp
  • PROP_TEMPCHANGE_FLAG : CDlgTypeList.h

- r -

  • rcBtnBase : CTabWnd.cpp

- s -

  • s_bGSort : CShareData.cpp
  • s_bSort : CShareData.cpp
  • s_dwComctl32Version : etc_uty.cpp
  • s_pOldPropSheetWndProc : etc_uty.cpp
  • SELECTEDAREA_RGB : global.h, global.cpp
  • SELECTEDAREA_ROP2 : global.h, global.cpp
  • SIZEOF_MENUITEMINFO : CMenuDrawer.cpp
  • SmartIndentArr : CPropTypes.cpp
  • STR_KEYDATA_HEAD2 : CPropComKeybind.cpp
  • STRNCMP_MAX : CEditView.cpp

- t -

  • TABLE_JISESCDATA : charcode.h, charcode.cpp
  • TABLE_JISESCLEN : charcode.h, charcode.cpp

- u -

  • ucNA : charcode.cpp
  • uShareDataVersion : CShareData.cpp
  • UTF7SetD : charcode.h, charcode.cpp

- z -

  • zenkakkoarr : CEditView_New2.cpp
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • ネームスペース一覧
  • ネームスペースメンバ
  • 全て
  • 関数
  • 変数
  • b
  • c
  • d
  • g
  • i
  • j
  • n
  • p
  • t
  • u

これはネームスペースの一覧です。それぞれのネームスペースへリンクしています。

- b -

  • Base64_CharToVal() : Charcode
  • Base64_ValToChar() : Charcode
  • BASE64CHAR : Charcode
  • BASE64VAL : Charcode
  • bNA : Charcode

- c -

  • CheckEucJpChar() : Charcode
  • CheckSJisChar() : Charcode
  • CheckSJisCharR() : Charcode
  • CheckUtf16BeChar() : Charcode
  • CheckUtf16Char() : Charcode
  • CheckUtf7SetBPart() : Charcode
  • CheckUtf7SetDPart() : Charcode
  • CheckUtf8Char() : Charcode

- d -

  • DetectJisESCSeq() : Charcode
  • DetectUnicodeBom() : Charcode

- g -

  • GetCharLen_eucjp() : Charcode
  • GetCharLen_sjis() : Charcode
  • GetCharLen_utf8() : Charcode
  • GetCharLenR_sjis() : Charcode
  • GetEncdInf_EucJp() : Charcode
  • GetEncdInf_Jis() : Charcode
  • GetEncdInf_SJis() : Charcode
  • GetEncdInf_Uni() : Charcode
  • GetEncdInf_Utf7() : Charcode
  • GetEncdInf_Utf8() : Charcode
  • GetJisESCSeqData() : Charcode
  • GetJisESCSeqLen() : Charcode
  • GuessCharLen_eucjp() : Charcode
  • GuessCharLen_sjis() : Charcode
  • GuessCharLen_utf8() : Charcode

- i -

  • imp_CheckUtf16Char() : Charcode
  • IsBase64Char() : Charcode
  • IsEucHanKana2() : Charcode
  • IsEucHanKata2() : Charcode
  • IsEucKan() : Charcode
  • IsEucKan1() : Charcode
  • IsEucKan2() : Charcode
  • IsSJisHanKata() : Charcode
  • IsSJisKan() : Charcode
  • IsSJisKan1() : Charcode
  • IsSJisKan2() : Charcode
  • IsUtf16SurrogHi() : Charcode
  • IsUtf16SurrogLow() : Charcode
  • IsUtf7SetDChar() : Charcode

- j -

  • JISESCDATA_ASCII : Charcode
  • JISESCDATA_JISX0201Katakana : Charcode
  • JISESCDATA_JISX0201Latin : Charcode
  • JISESCDATA_JISX0201Latin_OLD : Charcode
  • JISESCDATA_JISX0208_1978 : Charcode
  • JISESCDATA_JISX0208_1983 : Charcode
  • JISESCDATA_JISX0208_1990 : Charcode

- n -

  • nFincListNumArrNum : nsFuncCode
  • nFuncKindNum : nsFuncCode

- p -

  • pnFuncListNumArr : nsFuncCode
  • ppnFuncListArr : nsFuncCode
  • ppszFuncKind : nsFuncCode

- t -

  • TABLE_JISESCDATA : Charcode
  • TABLE_JISESCLEN : Charcode

- u -

  • ucNA : Charcode
  • UTF7SetD : Charcode
  • Uu_CharToVal() : Charcode
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • ネームスペース一覧
  • ネームスペースメンバ
  • 全て
  • 関数
  • 変数
  • b
  • c
  • d
  • g
  • i
  • u

- b -

  • Base64_CharToVal() : Charcode
  • Base64_ValToChar() : Charcode

- c -

  • CheckEucJpChar() : Charcode
  • CheckSJisChar() : Charcode
  • CheckSJisCharR() : Charcode
  • CheckUtf16BeChar() : Charcode
  • CheckUtf16Char() : Charcode
  • CheckUtf7SetBPart() : Charcode
  • CheckUtf7SetDPart() : Charcode
  • CheckUtf8Char() : Charcode

- d -

  • DetectJisESCSeq() : Charcode
  • DetectUnicodeBom() : Charcode

- g -

  • GetCharLen_eucjp() : Charcode
  • GetCharLen_sjis() : Charcode
  • GetCharLen_utf8() : Charcode
  • GetCharLenR_sjis() : Charcode
  • GetEncdInf_EucJp() : Charcode
  • GetEncdInf_Jis() : Charcode
  • GetEncdInf_SJis() : Charcode
  • GetEncdInf_Uni() : Charcode
  • GetEncdInf_Utf7() : Charcode
  • GetEncdInf_Utf8() : Charcode
  • GetJisESCSeqData() : Charcode
  • GetJisESCSeqLen() : Charcode
  • GuessCharLen_eucjp() : Charcode
  • GuessCharLen_sjis() : Charcode
  • GuessCharLen_utf8() : Charcode

- i -

  • imp_CheckUtf16Char() : Charcode
  • IsBase64Char() : Charcode
  • IsEucHanKana2() : Charcode
  • IsEucHanKata2() : Charcode
  • IsEucKan() : Charcode
  • IsEucKan1() : Charcode
  • IsEucKan2() : Charcode
  • IsSJisHanKata() : Charcode
  • IsSJisKan() : Charcode
  • IsSJisKan1() : Charcode
  • IsSJisKan2() : Charcode
  • IsUtf16SurrogHi() : Charcode
  • IsUtf16SurrogLow() : Charcode
  • IsUtf7SetDChar() : Charcode

- u -

  • Uu_CharToVal() : Charcode
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: 構成メンバ

  • ネームスペース一覧
  • ネームスペースメンバ
  • 全て
  • 関数
  • 変数

  • BASE64CHAR : Charcode
  • BASE64VAL : Charcode
  • bNA : Charcode
  • JISESCDATA_ASCII : Charcode
  • JISESCDATA_JISX0201Katakana : Charcode
  • JISESCDATA_JISX0201Latin : Charcode
  • JISESCDATA_JISX0201Latin_OLD : Charcode
  • JISESCDATA_JISX0208_1978 : Charcode
  • JISESCDATA_JISX0208_1983 : Charcode
  • JISESCDATA_JISX0208_1990 : Charcode
  • nFincListNumArrNum : nsFuncCode
  • nFuncKindNum : nsFuncCode
  • pnFuncListNumArr : nsFuncCode
  • ppnFuncListArr : nsFuncCode
  • ppszFuncKind : nsFuncCode
  • TABLE_JISESCDATA : Charcode
  • TABLE_JISESCLEN : Charcode
  • ucNA : Charcode
  • UTF7SetD : Charcode
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: ページ索引

Sakura-Editor 関連ページ

関連ページの一覧です。
  • TODO一覧
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: TODO一覧

TODO一覧

メンバ CEditDoc::FormatBackUpPath (char *szNewPath, const char *target_file)
Advanced modeでの世代管理

メンバ CEditDoc::MakeBackUp (const char *target_file)
Advanced modeでの世代管理

メンバ GetDateTimeFormat
出力バッファのサイズチェックを行う
Sakura-Editorに対してSat Oct 27 02:36:35 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: クラス階層図

  • 構成
  • クラス階層
  • 構成メンバ

Sakura-Editor クラス階層図

クラス階層図を見る。

Sakura-Editorに対してSat Oct 27 02:36:57 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: グラフの凡例

グラフの凡例

このページでは、doxygen で生成されたグラフをどのようにみたらよいかを説明します。

次の例を考えてみます。

/*! 省略されて見えないクラス */
class Invisible { };

/*! 省略されたクラス(継承関係は隠されている) */
class Truncated : public Invisible { };

/* doxygen コメントによるドキュメントがないクラス */
class Undocumented { };

/*! public で継承されたクラス */
class PublicBase : public Truncated { };

/*! protected で継承されたクラス */
class ProtectedBase { };

/*! private で継承されたクラス */
class PrivateBase { };

/*! 継承されたクラスで使われているクラス */
class Used { };

/*! 複数のクラスを継承している上位クラス */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented
{
  private:
    Used *m_usedClass;
};
設定ファイル中で、タグ MAX_DOT_GRAPH_HEIGHT が 200 にセットされた場合、次のようなグラフとなります。

上のグラフ内のボックスには次のような意味があります。

  • 黒く塗りつぶされたボックスは、このグラフに対応する構造体やクラスを表します。
  • 黒枠のボックスはドキュメントがある構造体やクラスを表します。
  • 灰色の枠のボックスはドキュメントがない構造体やクラスを表します。
  • 赤枠のボックスはドキュメントがある構造体やクラスを表しますが、指定されたサイズに収まらないために継承・包含関係をすべて図示することができなかったことを示します。
矢印には次のような意味があります。
  • 青い矢印は二つのクラス間の public 継承関係を示します。
  • 緑の矢印は protected 継承関係を示します。
  • 赤の矢印は private 継承関係を示します。
  • 紫の破線矢印は、そのクラスが他のクラスに含まれていたり、利用されていることを示します。また、矢印が指しているクラスや構造体をどの変数でアクセスできるかを矢印のラベルとして示しています。
Sakura-Editorに対してSat Oct 27 02:36:36 2007に生成されました。 doxygen 1.4.6-NO


Sakura-Editor: メインページ

Sakura-Editor ドキュメント

1.6.1.0

Sakura-Editorに対してSat Oct 27 02:14:46 2007に生成されました。 doxygen 1.4.6-NO